Перейти к содержимому


Фотография

Темное братство


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 8

#1 Tramp

Tramp

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 87 сообщений

Отправлено 15 Сентябрь 2005 - 16:48

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

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


Заранее спасибо!

Это сообщение отредактировано Infernal knight - 17 сентября 2005 | 13:06


#2 Artem13

Artem13

    13-й воин

  • Пользователи
  • PipPipPip
  • 2 390 сообщений

Отправлено 15 Сентябрь 2005 - 19:56

По-моему, это не тот скрипт...


#3 Tramp

Tramp

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 87 сообщений

Отправлено 17 Сентябрь 2005 - 09: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

правильный скрипт привел?
Некто не хочет помочь?

Это сообщение отредактировано Tramp - 17 сентября 2005 | 10:27


#4 Infernal knight

Infernal knight

    Аццкий модератор

  • Пользователи
  • PipPipPip
  • 1 137 сообщений

Отправлено 17 Сентябрь 2005 - 12:06

Так:
1) старый тот скрипт я удалю, который не надо
2) тот, что ты нашел вроде правильный.
Делать то, что ты сказал - как два пальца:
после объявления переменных и до первого их if вставь:

if ( GetJournalIndex JI < N )
return
endif

Вместо JI - найди и поставь журнальный индекс соответствующий выполнению квеста получения кольца.
N - номер последей записи квеста...


#5 Tramp

Tramp

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 87 сообщений

Отправлено 20 Сентябрь 2005 - 11:26

2Infernal knight:
Если тебя не затруднит, ответь на несколько, не слишком сложных вопросов:
как или где найти индекс выполненного квеста и определить номер последней записи квеста.

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


#6 Artem13

Artem13

    13-й воин

  • Пользователи
  • PipPipPip
  • 2 390 сообщений

Отправлено 20 Сентябрь 2005 - 11:49

Я маненько покомментирую :)
1. Номера квеста можно найти в редакторе диалогов (в ТЕС КС) - там есть вкладка Журнал.

2. Я давненько не играл, но ЕМНИП, не всегда нападение происходит в первую же ночь. Кроме того, убедись, что Триб подключен.
2.1. Даже если ты что то изменил в КС, то эти изменения сохраняются в отд. файле - плагине, который по умолчанию НЕ подключен, так что если ты сам его не подключишь, то твои изменения в игре не отразятся..
2.2. Бадмун, а не Блудмун


#7 Tramp

Tramp

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 87 сообщений

Отправлено 20 Сентябрь 2005 - 16:37

возможно скрипт надо писать так?
QUOTE
if ( GetJournalIndex A2_6_Incarnate <= 50; )
return
endif

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


#8 Infernal knight

Infernal knight

    Аццкий модератор

  • Пользователи
  • PipPipPip
  • 1 137 сообщений

Отправлено 21 Сентябрь 2005 - 00:04

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

Это твой мод :) Ты можешь двигать момент нападения в любую сторону, так что тебе решать.


#9 Tramp

Tramp

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 87 сообщений

Отправлено 06 Октябрь 2005 - 04:52

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




Похожие темы Свернуть

  Название темы Форум Автор Статистика Последнее сообщение


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных

Рейтинг@Mail.ru