|
Re: М: Скриптинг в Готике
Похоже разобрался. Я изменял скрипт в файле DIA_PC_Thief.d А именно: делал копию диалога с Диего (из самого начала игры) instance Info_Diego_Brief(C_Info), переименовывал функции диалога и изменял текст субтитров.
instance Info_Diego_Brief_New(C_Info) { * * *npc = PC_Thief; * * *nr = 9; * * *condition = Info_Diego_Brief_Condition_New; * * *information = Info_Diego_Brief_Info_New; * * *permanent = 1; * * *description = "У меня есть письмо."; };
func int Info_Diego_Brief_Condition_New() { * * *if(Kapitel < 2) * * *{ * * * * * *return TRUE; * * *}; };
func void Info_Diego_Brief_Info_New() { * * *AI_Output(hero,self,"Info_Diego_Brief_15_00"); * * *//Я должен передать письмо одному из магов. * * *AI_Output(self,hero,"Info_Diego_Brief_11_01"); * * *//Письмо...? * * *AI_Output(hero,self,"Info_Diego_Brief_15_02"); * * *//Мне его дали прежде, чем стражники сбросили меня со скалы. * * *AI_Output(self,hero,"Info_Diego_Brief_11_03"); * * *//Тебе повезло, что я не могу теперь иметь дело с магами... * * *AI_Output(self,hero,"Info_Diego_Brief_11_04"); * * *//Ведь это прекрасная возможность неплохо устроиться в этом месте. * * *AI_Output(self,hero,"Info_Diego_Brief_11_05"); * * *//Не советую рассказывать об этом письме каждому встречному... * * *AI_Output(hero,self,"Info_Diego_Brief_15_06"); * * *//Но как...? * * *AI_Output(self,hero,"Info_Diego_Brief_11_07"); * * *//...потому что это может закончиться для тебя очень плохо. };
2Vam: Видимо при компиляции создается таблица соответствий между, например, идентификатором Info_Diego_Brief_15_00 и текстом субтитра. И если использовать данный идентификатор в тексте скрипта более одного раза, то соответствие уже не будет однозначным.
p.s.: GothicSourcer очень понравился :) хотя, поначалу озадачило сообщение о наличии ошибки "функция должна возвращать значение" в конструкциях вида
func int func1() { * *if(условие) * *{ * * *return 1; * *} * *else * *{ * * *return 0; * *}; };
хотя, действительно, можно ли говорить в данном примере об изяществе скрипта.. *;)
|