Показать сообщение отдельно
Старый 26.03.2008, 00:10   #2017
halogene

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

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

2FiG: *А вы ниже по контексту смотрите.
Взаимодействие с MOBом вызывает ф-цию (указывается в спейсере) в вашем случае это ф-ция potionalchemy_s1. Функция проверяет, взаимодействует ли герой с мобом - в этом случае начинается диалог.

Диалог с мобом выглядит практичесики так же как и с нпц:
//Добавляем (например) выход из диалога.

instance PC_MakeSome_End(C_Info)
{
* * *npc = PC_Hero;
* * *nr = 999;
* * *condition = PC_MakeSome_End_Condition;
* * *information = PC_MakeSome_End_Info;
* * *permanent = TRUE;
* * *description = Dialog_Ende;
};

//Условие, проверяем переменную PLAYER_MOBSI_PRODUCTION, в вашем случае написано MOBSI_PotionAlchemy, но константу можно задать любую, в т.ч. и пользовательскую, обработка же её происходит именно здесь. Именно здесь происходит привязка диалога к взаимодейтсвию с конкретным мобом.

func int PC_MakeSome_End_Condition()
{
* * *if(PLAYER_MOBSI_PRODUCTION == MOBSI_PotionAlchemy)
* * *{
* * * * * *return TRUE;
* * *};
};

//Сам выход

func void PC_MakeSome_End_Info()
{
AI_StopProcessInfos(self);
self.aivar[AIV_INVINCIBLE] = FALSE;
PLAYER_MOBSI_PRODUCTION = MOBSI_NONE;
};
Ответить с цитированием