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; };
|