У меня появилось несколько вопросов по кодированию диалогов. Для примера, внизу приведен полное кодирование диалога с Халлом из пролога первого БГ. Вопрос вот в чем. В игре после первой фразы, в которой он просит принести ему меч, он до тех пор, пока не принесешь ему этот меч, говорит
~Тсс, дитя. Я на дежурстве.~ #15987
а не следующую фразу, которая подходит логически:
~Не заставляй меня упрашивать тебя! Принеси мне мой меч, пока Привратник не заметил!~ #15984
Я так подозреваю, что все дело в WEIGHT? Кто-нибудь может доходчиво объяснить, откуда они берутся и что с ними сделать, чтобы все работало правильно.
И что означают условия True() и False().
BEGIN ~HULL~ ////////////////////////////////////////////////// // WARNING: this file contains non-trivial WEIGHTs //////////////////////////////////////////////////
IF WEIGHT #0 ~NumTimesTalkedTo(0) ~ THEN BEGIN 0 // from: SAY @1 /* ~Эй, я забыл свой меч в казарме, когда сегодня утром собирался на службу. Если сможешь, принеси его мне, он лежит в сундуке у подножья кровати, в правой части казарм. Поторопись, пока Привратник не увидел меня без меча. Там еще лежит противоядие. По-моему Дреппину оно бы пригодилось для старой Нэсси.~ #15952 */ IF ~~ THEN DO ~~ JOURNAL @2 /* ~Халл, один из вездесущих стражников, здесь в Кэндлкипе, забыл свой меч утром в казарме. Он попросил меня забрать его из сундука в казарме, что около правой стены.~ #15965 */ EXIT END
IF WEIGHT #1 ~ReactionGT(LastTalkedToBy,NEUTRAL_UPPER) HasItem("SW1H12",LastTalkedToBy) ~ THEN BEGIN 1 // from: SAY @3 /* ~Спасибо, малыш. Горион хорошо воспитал тебя... Честно сказать, это удача - вырасти здесь в Кэндлкипе. Иногда мне кажется, что мир за воротами сошел с ума из-за нехваток железа и прочего. Амн и Врата Балдура скоро вступят в войну, поверь мне. Ну ладно, я на службе. Вот тебе 20 золотых за то, что спас мою шкуру от Привратника.~ #15983 */ IF ~~ THEN DO ~AddexperienceParty(50) TakePartyItem("SW1H12") GivePartyGold(20) SetGlobal("HelpHull","GLOBAL",1) ~ JOURNAL @4 /* ~Халл заплатил мне целых 20 золотых за свой забытый меч. Наверное Привратник сегодня не в духе.~ #16529 */ EXIT END
IF WEIGHT #5 /* Triggers after states #: 3 4 5 even though they appear after this state */ ~Global("HelpHull","GLOBAL",0) ~ THEN BEGIN 2 // from: SAY @5 /* ~Не заставляй меня упрашивать тебя! Принеси мне мой меч, пока Привратник не заметил!~ #15984 */ IF ~~ THEN DO ~~ EXIT END
IF WEIGHT #2 ~ReactionLT(LastTalkedToBy,FRIENDLY_LOWER) HasItem("SW1H12",LastTalkedToBy) ~ THEN BEGIN 3 // from: SAY @6 /* ~Неплохо провели время, да? Горион сглупил, пытаясь научить тебя справедливости, и можешь ему передать, что я это сказал. Если хочешь знать, я думаю что этот кризис с железом начался из-за таких отморозков как ты, разгуливающих с чужими мечами. Вот 10 золотых. И не мешай, я на службе.~ #15985 */ IF ~~ THEN DO ~AddexperienceParty(50) TakePartyItem("SW1H12") GivePartyGold(10) SetGlobal("HelpHull","GLOBAL",1) ~ JOURNAL @7 /* ~Халл заплатил мне всего 10 золотых за свой тупой меч. И почему мне еще пришлось выслушивать его брань?~ #16530 */ EXIT END
IF WEIGHT #3 ~True() ~ THEN BEGIN 4 // from: SAY @8 /* ~Тсс, дитя. Я на дежурстве.~ #15987 */ IF ~~ THEN DO ~~ EXIT END
IF WEIGHT #4 ~False()~ THEN BEGIN 5 // from: SAY @9 /* ~Эй ты, дитя! Ты что, связываешься со стражником? ...Охрана! У нас враги!~ #16032 */ IF ~~ THEN DO ~~ EXIT END
|