Показать сообщение отдельно
Старый 10.10.2005, 11:18   #976
marazmus
A.G.F.C.
 
Регистрация: 02.09.2005
Сообщений: 6
marazmus вне форума

По умолчанию Re: Скриптинг в Готике

Цитата:
Сообщение от basilio58 link=board=gothic&t=1105030050&start=950#971 date=10/09/05, в 21:18:01
Во какая лабуда:
Функция "Npc_KnowsInfo" не работает! Или через раз работает!
Элементарный скрипт, а на тебе!
Исходя из своего небогатого опыта, могу сказать, что для корректной работы функции NPC_KnowsInfo требуется, чтобы параметр диалога permanent был равен FALSE.
Честно говоря, не знаю, как именно реализована эта функция, но что для нее permanent нужно ставить в FALSE, и что она возвращает TRUE только когда диалог c флагом permanent=FALSE "отработал" - это точно.

Добавление от 10/10/05, в 11:26:02
Вдогонку:

Та вот на DIA_Addon_HammerPirate_Privet не работает, а на DIA_Addon_HammerPirate_Anheuern работает!
DIA_Addon_HammerPirate_Anheuern -  в condition-функции этого диалога никаких доп. условий нет, она просто возвращает TRUE; отсюда - этот диалог будет доступен без особых проблем (всегда).

DIA_Addon_HammerPirate_Privet - в condition-функции данного диалога есть условия на наличие предмета и на "отработку" другого диалога. Так вот, чтобы проверка с помощью NPC_KnowsInfo сработала, тот "другой" диалог нужно сделать не постоянным (permanent = FALSE). Это должно решить проблему.
Другой вопрос, если по логике сюжета/диалогов тот диалог, на который мы делаем проверку функцией NPC_KnowsInfo должен быть доступен всегда (не исчезать после "отработки"). В этом случае придется завести переменную, в которой будет отражаться, отработал диалог хоть один раз или нет (например, var_DIA_PirateHowAreYou = TRUE).

Успехов в модостроении. :)

Добавление от 10/10/05, в 11:28:05
Опять вдогонку :(

Другой вопрос, если по логике сюжета/диалогов тот диалог, на который мы делаем проверку функцией NPC_KnowsInfo должен быть доступен всегда (не исчезать после "отработки"). В этом случае придется завести переменную, в которой будет отражаться, отработал диалог хоть один раз или нет (например, var_DIA_PirateHowAreYou = TRUE).
И проверять этот диалог уже не функцией NPC_KnowsInfo (она не сработает как надо), а через проверку переменной на TRUE/FALSE.
Отправить личное сообщение для Ответить с цитированием