//*************************************************************************//
// функция запуска триггера
//*************************************************************************//
func void Start_Trigger_Attribute_TimeBonus(var c_npc slf,var int attribute,var int value,var int time)
{
Attribute_TimeBonus = attribute;
var C_Trigger trigger;
//*************************************************************************//
//- Func - функция, которую будет вызывать триггер.
//- Self - NPC, который при вызове функции будет помещаться в self.
//- Other - NPC, который при вызове функции будет помещаться в other.
//- Victim - NPC, который при вызове функции будет помещаться в victim.
//AI_StartTriggerScriptEx(имя функции, задержка, self, other, victim) - расширенная функция, если необходимо указать в нее определенных участников
trigger = AI_StartTriggerScriptEx("Trigger_Attribute_TimeBonus", 1, slf, null, null);
trigger.AIVariables[0] = time; // число повторов(секунд) триггера
trigger.AIVariables[1] = attribute; // атрибут
trigger.AIVariables[2] = value; // бонус к атрибуту
};
//*************************************************************************//
// сам Trigger
//*************************************************************************//
func int Trigger_Attribute_TimeBonus()
{
if (SelfTrigger.Delay < 1000)
{
SelfTrigger.Delay = 1000; // раз в секунду
B_RaiseAttribute(self,SelfTrigger.AIVariables[1],SelfTrigger.AIVariables[2]);
};
Hlp_msg = Str_Format("Trigger_Attribute_TimeBonus[%s]. Счётчик %i", self.name, SelfTrigger.AIVariables[0]);
Hlp_PrintConsole(Hlp_msg);
SelfTrigger.AIVariables[0] -= 1; // счётчик времени
if (SelfTrigger.AIVariables[0] <= 0)
{
B_RaiseAttribute(self,SelfTrigger.AIVariables[1], -SelfTrigger.AIVariables[2]);
attribute_TimeBonus = 0;
return LOOP_END;
};
return LOOP_CONTINUE;
};