Показать сообщение отдельно
Старый 07.10.2007, 09:47   #1853
HikeR

AGFC
Гость
 
Сообщений: n/a

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

1. смотрю на скрипт по вступлению в новый лагерь (DIA_Org_801_Lares, func void ORG_801_Lares_Reicht_Info()).
Ларс проверяет условие вступления, если все в порядке, то выдает новую броню. вызывает вопрос одно действие:
Cпойлер(щелкните, чтобы прочесть):
[table]
[tr][td]hero.guild = GIL_ORG;[/td][td][/td][/tr]
[tr][td]Npc_SetTrueGuild (hero, GIL_ORG);[/td][td]//устанавливаем принадлежность к ворам[/td][/tr]
[tr][td]CreateInvItem (hero, org_armor_l);[/td][td]//создаем "Легкое одеяние вора" у героя[/td][/tr]
[tr][td]CreateInvItem (self, ItAmArrow);[/td][td]//создаем стрелу у Ларса[/td][/tr]
[tr][td]B_GiveInvItems (self, hero, ItAmArrow, 1);[/td][td]//передаем стрелу герою[/td][/tr]
[tr][td]Npc_RemoveInvItem (hero, ItAmArrow);[/td][td]//уничтожаем стрелу у героя[/td][/tr]
[tr][td]AI_EquipBestArmor (hero);[/td][td]//одеваем самую навороченную защиту[/td][/tr]
[/table]

вот махинации со стрелой и непонятны.

2. по вступлению в новый лагерь автоматом помечают проваленными некоторые квесты, даже если они уже были выполнены и сданы. я решил добавить условие проверки, если квест сдан, то не помечать его как проваленный.
чем можно проверить состояние конкретного квеста? нашел только ф-ии записи в дневник. пока приходится искать переменную состояния конкретного квеста и проверять ее, то есть вместо одной строки
Код:
Log_SetTopicStatus (CH1_LostNek, LOG_FAILED);
делать такую проверку:
Код:
if (Sly_LostNek != LOG_SUCCESS || Sly_LostNek == LOG_RUNNING) { * * *Log_SetTopicStatus (CH1_LostNek, LOG_FAILED); * * *B_LogEntry (CH1_LostNek, "Теперь я в Новом Лагере");};
Ответить с цитированием