Tramp
15 September 2005 | 17:48
Как только я начал играть в Трибунал, я не пойму логику игры.
В самом начале на меня напал Ассассин Темного братства, но вот зачем
и почему не пойму, разве жизнь просто перса даже не члена в какой нить
гильдии стоит так много... Вот я и хочу исправить эту оплошность разработчиков.
Предлагаю перенести акт нападения скажем на то время, к которому наш
герой получит кольцо Луна-и-Звезда.
К тому же фикс будет очень полезным антиманчкинским инструментом, я думаю
все согласятся, с тем, что Броня Тёмного Братства для персонажа первого
уровня слишком круто.
Дык проблема в том, что я пока не слишком силён в cинтаксисе скриптах, прошу кого-нибудь
помочь разобраться, тут привожу скрипт ассисcина:
QUOTE |
Левый скрипт удален Модератором |
Заранее спасибо!
Artem13
15 September 2005 | 20:56
По-моему, это не тот скрипт...
Tramp
17 September 2005 | 10:26
Zmey Artem совершенно верно, ошибся, это скрипт привязанный к Ассиссину,
мне же нужен глобальный скрипт?
помоему это оно?
QUOTE |
Begin dbattackScript
float dbchance short journalOnce short attackOnce short playerLevel short attackmod short othermod short dbnumber short temp short sleepOnce
if ( GetJournalIndex TR_dbAttack >= 50 ) return endif ;как я понял здесь определяется уровень Ассиссина, в зависимости от уровня героя if ( player->GetLevel >= 30 ) set playerLevel to 5 else if ( player->GetLevel >=20 ) set playerLevel to 4 else if ( player->GetLevel >= 10 ) set playerLevel to 3 else if ( player->GetLevel >=4 ) set playerLevel to 2 else set playerLevel to 1 endif endif endif endif
if ( GetPCCell "Seyda Neen, Census and Excise Office" == 1 ) return endif
if ( journalOnce == 1 ) ;Journal TR_DBAttack 10 set journalOnce to -1 endif ;а здесь вероятность нападения во время сна? if ( GetPCSleep == 1 ) if ( sleepOnce == 1 ) return endif set sleepOnce to 1 set dbchance to Random 100 set attackmod to ( attackonce * 10 ) if ( playerlevel == 5 ) set othermod to ( 90- attackmod ) if ( dbchance <= othermod ) WakeUpPC MessageBox "Вы пробудились от громкого шума." set dbnumber to ( dbnumber + 1 ) if ( dbnumber > 2 ) set dbnumber to 2 endif set temp to dbnumber while ( temp != 0 ) PlaceAtPC "db_assassin4" 1 128 1 set temp to ( temp - 1 ) endwhile set attackonce to ( attackonce + 1 ) if ( journalOnce == -1 ) return endif set journalOnce to 1 set DBAttack to 1 endif else if ( playerLevel == 4 ) set othermod to ( 70 - attackmod ) if ( dbchance <= othermod ) WakeUpPC MessageBox "Вы пробудились от громкого шума." set dbnumber to ( dbnumber + 1 ) if ( dbnumber > 2 ) set dbnumber to 2 endif set temp to dbnumber while ( temp != 0 ) PlaceAtPC "db_assassin3" 1 128 1 set temp to ( temp - 1 ) endwhile set attackonce to ( attackonce + 1 ) if ( journalOnce == -1 ) return endif set journalOnce to 1 set DBAttack to 1 endif else if ( playerLevel == 3 ) set othermod to ( 50 - attackmod ) if ( dbchance <= othermod ) WakeUpPC MessageBox "Вы пробудились от громкого шума." PlaceAtPC "db_assassin2" 1 128 1 set attackonce to ( attackonce + 1 ) if ( journalOnce == -1 ) return endif set journalOnce to 1 set DBAttack to 1 endif else if ( playerLevel == 2 ) set othermod to ( 40 - attackmod ) if ( dbchance <= othermod ) WakeUpPC MessageBox "Вы пробудились от громкого шума." PlaceAtPC "db_assassin1" 1 128 1 set attackonce to ( attackonce + 1 ) if ( journalOnce == -1 ) return endif set journalOnce to 1 set DBAttack to 1 endif else if ( playerLevel == 1 ) set othermod to ( 20 - attackmod ) if ( dbchance <= othermod ) WakeUpPC MessageBox "Вы пробудились от громкого шума." PlaceAtPC "db_assassin1b" 1 128 1 set attackonce to ( attackonce + 1 ) if ( journalOnce == -1 ) return endif set journalOnce to 1 set DBAttack to 1 endif endif endif endif endif endif else set sleepOnce to 0 endif
End |
правильный скрипт привел?
Некто не хочет помочь?
Infernal knight
17 September 2005 | 13:06
Так:
1) старый тот скрипт я удалю, который не надо
2) тот, что ты нашел вроде правильный.
Делать то, что ты сказал - как два пальца:
после объявления переменных и до первого их if вставь:
if ( GetJournalIndex JI < N )
return
endif
Вместо JI - найди и поставь журнальный индекс соответствующий выполнению квеста получения кольца.
N - номер последей записи квеста...
Tramp
20 September 2005 | 12:26
2Infernal knight:
Если тебя не затруднит, ответь на несколько, не слишком сложных вопросов:
как или где найти индекс выполненного квеста и определить номер последней записи квеста.
И ещё у меня тут проблема... я абсолютно не чего не изменял в TES Construction Set,
но у меня пропало Тёмное братство ;)
Обясняю... создал новую игру, получил 1 уровень, поспал... и не чего.
С нетерпением жду ваших комментариев.
зы. Забыл Морр от 1ц+Трибунал+Блудмун+Grand Fix Mod+Ring Texture Fix
Artem13
20 September 2005 | 12:49
Я маненько покомментирую :)
1. Номера квеста можно найти в редакторе диалогов (в ТЕС КС) - там есть вкладка Журнал.
2. Я давненько не играл, но ЕМНИП, не всегда нападение происходит в первую же ночь. Кроме того, убедись, что Триб подключен.
2.1. Даже если ты что то изменил в КС, то эти изменения сохраняются в отд. файле - плагине, который по умолчанию НЕ подключен, так что если ты сам его не подключишь, то твои изменения в игре не отразятся..
2.2. Бадмун, а не Блудмун
Tramp
20 September 2005 | 17:37
возможно скрипт надо писать так?
QUOTE |
if ( GetJournalIndex A2_6_Incarnate <= 50; ) return endif |
Т.е. если вас не объявили Неревариным на вас не должны наподать?
Infernal knight
21 September 2005 | 01:04
QUOTE |
возможно скрипт надо писать так? ... Т.е. если вас не объявили Неревариным на вас не должны наподать? |
Это твой мод :) Ты можешь двигать момент нападения в любую сторону, так что тебе решать.
Tramp
6 October 2005 | 05:52
Кому интересно вот сделал фикс (1K):
ФиксНо пока назвал бетой, т.к. ещё не было возможность проверить реальную
работоспособность, хотя в теории должно пахать,
единственное что могу сказать, это то что Ассиссин в начале не нападает
это точно.