- Регистрация
- 23 Апр 2015
- Сообщения
- 249
- Реакции
- 191
- Баллы
- 78
- Лучшие ответы
- 0



по моему я всё уже перепробовал
material = MAT_GLAS;
instance OrcMedicine(C_Item)
{
name = "Орочье снадобье";
mainflag = ITEM_KAT_POTIONS;
flags = ITEM_MISSION;
value = 0;
visual = "ITMI_ALCHEMY_STONEOIL_01.3DS";
material = MAT_GLAS;
on_state[0] = UseOrcMedicine;
scemeName = "POTION";
description = name;
text[2] = "Эффект неизвестен!";
};
func void UseOrcMedicine()
{
if(Hlp_GetInstanceID(FreemineOrc) == Hlp_GetInstanceID(self))
{
self.attribute[ATR_HITPOINTS] = self.attribute[ATR_HITPOINTS_MAX];
}
else
{
if(Npc_IsPlayer(self))
{
hero.aivar[AIV_TALKBEFOREATTACK] = 97;
};
};
};
func void B_CYCLE_FUNCTION()
{
...
if(hero.aivar[AIV_TALKBEFOREATTACK]) // Обработчик разовых событий.
{
...
else if(hero.aivar[AIV_TALKBEFOREATTACK] == 97) // Начало отравления после выпивания орочьего снадобья.
{
if(!C_BodyStateContains(hero,BS_ITEMINTERACT))
{
hero.aivar[AIV_TALKBEFOREATTACK] = 98;
AI_OutputSVM_Overlay(hero,NULL,"$DEAD");
AI_PlayAni(hero,"T_DEAD");
};
}
else if(hero.aivar[AIV_TALKBEFOREATTACK] == 98) // Состояние отравления после выпивания орочьего снадобья.
{
if(hero.attribute[ATR_HITPOINTS])
{
Npc_ChangeAttribute(hero,ATR_HITPOINTS,-(1 + hero.attribute[ATR_HITPOINTS_MAX]/50));
}
else
{
hero.aivar[AIV_TALKBEFOREATTACK] = FALSE;
};
}
...
};
Wld_SendTrigger("CYCLE_TRIGGER");
};