Показать сообщение отдельно
Старый 14.03.2011, 00:32   #4239
Black_Phantom

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

По умолчанию Re: Gothic 1, 2, 3: Технические вопросы

Цитата:
Сообщение от Wandar link=board=gothic&t=1192576961&goto=6194829 date=03/13/11, в 13:03:03
2Black Phantom:
И LOG_SUCCESS, и TRUE - это всё внутриигровые константы. Если конкретно, то LOG_SUCCESS == 2, TRUE == 1. Также LOG_Running == 1, LOG_FAILED == 3, LOG_OBSOLETE == 4. Записи в дневнике закрываются (а также открываются и т.д.) только с помощью функции Log_SetTopicStatus(topic, status). Во многих диалогах она явно и вызывется, но это не всегда удобно, т.к. тогда нельзя проверить после, какой статус у квеста. Для этого и заводят промежуточные переменные, на основании которых потом в определённое время и меняются статусы в самом журнале.
Фух, надеюсь, понятно разъяснил. :)
Я так понимаю, что для того, чтобы запись пропала из дневника должны выполнится 2 команды:
1) Log_SetTopicStatus(topic, status)
2) B_CheckLog();
Но почему тогда нигде в скриптах команда B_CheckLog(); не идет сразу после  Log_SetTopicStatus(topic, status)? Ведь тогда бы квесты закрвались сразу, разве это не удобнее? Наверное, есть какое-то объяснение?

Например в скрипте Эрола (квест про каменные таблички) мне непонятен один момент
Cпойлер(щелкните, чтобы прочесть):

Log_CreateTopic(TOPIC_Addon_Erol,LOG_MISSION);
Log_SetTopicStatus(TOPIC_Addon_Erol,LOG_Running);
B_LogEntry(TOPIC_Addon_Erol,"...");
MIS_Addon_Erol_BanditStuff = LOG_Running;

Если Log_SetTopicStatus(TOPIC_Addon_Erol,LOG_Running); и MIS_Addon_Erol_BanditStuff = LOG_Running; - это одно и тоже, то зачем это дублирование.
P.S. И почему у меня все-таки этот квест не закрылся?





Добавление от 03/13/11, в 23:52:30
И никто не знает, что такое LOG_OBSOLETE?
Ответить с цитированием