25.03.2020, 12:13:48
(24.03.2020, 10:59:54)N1kX napisał(a): Jeśli chcesz, aby pułapka zadała obrażenia ogniem, można zastosować Ikarus i wykonać następujące czynności, tylko w Spacer2 będzie musiał usunąć obrażenia.
Если охота, чтобы ловушка наносила урон огнем можно применить Ikarus и сделать следующее, только в Spacer2 надо будет убрать урон.
var int one_time_02;
func void CHEST_ZUCHWALI_02_S1()
{
if(one_time_02 == FALSE)
{
Wld_SendTrigger("CHESTDAMAGE");
//Wld_PlayEffect("VOB_BURN", hero, hero, 0, 0, 0, FALSE );
FireDamageChest();
one_time_02 = true;
};
};
var C_NPC global_fired_npc_self;
func void FireDamageChest()
{
Wld_PlayEffect("VOB_BURN",self,self,0,0,0,FALSE);
if(!FF_Active(FireDamage))
{
global_fired_npc_self = Hlp_GetNpc(self);
FF_ApplyOnceExt(FireDamage, 1000, 3);
};
if(slf.attribute[ATR_HITPOINTS] <= 0)
{
if(FF_Active(FireDamage))
{
FF_Remove(FireDamage);
};
};
};
func void FireDamage()
{
var int realdamage;
realdamage = b_calculatefiredamage(self, 30);
if(realdamage > 0)
{
global_fired_npc_self.attribute[ATR_HITPOINTS] = global_fired_npc_self.attribute[ATR_HITPOINTS] - realdamage;
if((global_fired_npc_self.attribute[ATR_HITPOINTS] <= 0)
{
if (FF_Active(FireDamage))
{
FF_Remove(FireDamage);
};
};
};
};
Po otwarciu kufera Bezimienny otrzyma obrażenia wynoszące 30 (jeśli bohater nie ma ochrony przed ogniem) przez 3 sekundy.
Aby dostosować obrażenia, musisz zmienić tutaj
realdamage = b_calculatefiredamage(self, 30); //dowolna liczba
Czas trwania zmienia się tutaj
FF_ApplyOnceExt(FireDamage, 1000, 3);
//FF_ApplyOnceExt(wywoływana funkcja, długotrwałość w mks, liczba działanie)
Generalnie, jeśli działa - dobrze.
Przeniosę sobię to tutaj, bo chciałbym zgłębić temat i na pewno będę miał jakieś pytania. Na razie nie mogę tego uruchomić.