Полная Версия: Темное братство
Tramp
Как только я начал играть в Трибунал, я не пойму логику игры.
В самом начале на меня напал Ассассин Темного братства, но вот зачем
и почему не пойму, разве жизнь просто перса даже не члена в какой нить
гильдии стоит так много... Вот я и хочу исправить эту оплошность разработчиков.
Предлагаю перенести акт нападения скажем на то время, к которому наш
герой получит кольцо Луна-и-Звезда.
К тому же фикс будет очень полезным антиманчкинским инструментом, я думаю
все согласятся, с тем, что Броня Тёмного Братства для персонажа первого
уровня слишком круто.
Дык проблема в том, что я пока не слишком силён в cинтаксисе скриптах, прошу кого-нибудь
помочь разобраться, тут привожу скрипт ассисcина:

QUOTE
Левый скрипт удален Модератором


Заранее спасибо!
Artem13
По-моему, это не тот скрипт...
Tramp
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
Так:
1) старый тот скрипт я удалю, который не надо
2) тот, что ты нашел вроде правильный.
Делать то, что ты сказал - как два пальца:
после объявления переменных и до первого их if вставь:

if ( GetJournalIndex JI < N )
return
endif

Вместо JI - найди и поставь журнальный индекс соответствующий выполнению квеста получения кольца.
N - номер последей записи квеста...
Tramp
2Infernal knight:
Если тебя не затруднит, ответь на несколько, не слишком сложных вопросов:
как или где найти индекс выполненного квеста и определить номер последней записи квеста.

И ещё у меня тут проблема... я абсолютно не чего не изменял в TES Construction Set,
но у меня пропало Тёмное братство ;)
Обясняю... создал новую игру, получил 1 уровень, поспал... и не чего.
С нетерпением жду ваших комментариев.
зы. Забыл Морр от 1ц+Трибунал+Блудмун+Grand Fix Mod+Ring Texture Fix
Artem13
Я маненько покомментирую :)
1. Номера квеста можно найти в редакторе диалогов (в ТЕС КС) - там есть вкладка Журнал.

2. Я давненько не играл, но ЕМНИП, не всегда нападение происходит в первую же ночь. Кроме того, убедись, что Триб подключен.
2.1. Даже если ты что то изменил в КС, то эти изменения сохраняются в отд. файле - плагине, который по умолчанию НЕ подключен, так что если ты сам его не подключишь, то твои изменения в игре не отразятся..
2.2. Бадмун, а не Блудмун
Tramp
возможно скрипт надо писать так?
QUOTE
if ( GetJournalIndex A2_6_Incarnate <= 50; )
return
endif

Т.е. если вас не объявили Неревариным на вас не должны наподать?
Infernal knight
QUOTE
возможно скрипт надо писать так?
...
Т.е. если вас не объявили Неревариным на вас не должны наподать?

Это твой мод :) Ты можешь двигать момент нападения в любую сторону, так что тебе решать.
Tramp
Кому интересно вот сделал фикс (1K):
Фикс
Но пока назвал бетой, т.к. ещё не было возможность проверить реальную
работоспособность, хотя в теории должно пахать,
единственное что могу сказать, это то что Ассиссин в начале не нападает
это точно.
Ваш ответ: