Показать сообщение отдельно
Старый 13.10.2006, 10:41   #1474
Riven

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

По умолчанию 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;
* *};
};


хотя, действительно, можно ли говорить в данном примере об изяществе скрипта.. *;)
Ответить с цитированием