Closed dosinabox closed 4 years ago
Потому что померший персонаж не умеет кричать и проигрывать анимации.
а если слезами инноса ему уменьшить жизни к примеру до 10 и поджечь?
Есть такой вариант
IsPainfulDeath = true;
Wld_PlayEffect("VOB_MAGICBURN", self, self, 0, 0, 0, FALSE);
AI_StartState(self, ZS_MagicFreeze, 0, "");
func void ZS_MagicFreeze()
{
if (IsPainfulDeath == TRUE)
{
PainfulDeathState = 0;
return;
};
func int ZS_MagicFreeze_Loop()
{
if (IsPainfulDeath)
{
return PainfulDeath_Loop();
};
func int PainfulDeath_Loop()
{
var int time;
time = Npc_GetStateTime(self);
if (time == 0 && PainfulDeathState == 0)
{
B_Say(self, self, "$DEAD");
Npc_PlayAni(self, "S_FIRE_VICTIM");
PainfulDeathState = 1;
} else if (time == 2 && PainfulDeathState == 1)
{
Npc_StopAni(self, "S_FIRE_VICTIM");
B_KillNpc(self);
PainfulDeathState = 2;
};
if (PainfulDeathState >= 2)
{
IsPainfulDeath = false;
return LOOP_END;
};
return LOOP_CONTINUE;
};
IsPainfulDeath лучше в аивары затолкать, а то вдруг игрок слёзы выпьет во время чьей-нибудь заморозки.
Вот так идеально:
const int AIV_ReadyForPainfulDeath = 89;
self.aivar[AIV_ReadyForPainfulDeath] = TRUE;
AI_StartState(self,ZS_MagicFreeze,0,"");
func void ZS_MagicFreeze()
{
if(self.aivar[AIV_ReadyForPainfulDeath] == TRUE)
{
PainfulDeathState = 0;
return;
};
func int ZS_MagicFreeze_Loop()
{
if(self.aivar[AIV_ReadyForPainfulDeath] == TRUE)
{
return PainfulDeath_Loop();
};
var int PainfulDeathState;
func int PainfulDeath_Loop()
{
var int time;
time = Npc_GetStateTime(self);
if((time == 0) && (PainfulDeathState == 0))
{
Wld_PlayEffect("VOB_MAGICBURN",self,self,0,0,0,FALSE);
B_Say(self,self,"$AARGH_1");
Npc_PlayAni(self,"S_FIRE_VICTIM");
PainfulDeathState = 1;
}
else if((time == 2) && (PainfulDeathState == 1))
{
B_Say(self,self,"$DEAD");
PainfulDeathState = 2;
}
else if((time == 3) && (PainfulDeathState == 2))
{
Npc_StopAni(self,"S_FIRE_VICTIM");
B_KillNpc(self);
PainfulDeathState = 3;
};
if(PainfulDeathState >= 3)
{
self.aivar[AIV_ReadyForPainfulDeath] = false;
return LOOP_END;
};
return LOOP_CONTINUE;
};
ГГ неправильно умирает от Слез Инноса - пропускается анимация горения и крики. См. UseItPo_PotionOfDeath().