diff --git a/src/game/g_player.pas b/src/game/g_player.pas
index 88070c61c04866a6c79bcea7dc8d39f88545fa12..7db6de1ed38b0f592bbf5ea1fc77e9c21b7d6033 100644 (file)
--- a/src/game/g_player.pas
+++ b/src/game/g_player.pas
procedure TPlayer.CatchFire(Attacker: Word);
begin
+ if (FMegaRulez[MR_SUIT] > gTime) or (FMegaRulez[MR_INVUL] > gTime) then
+ exit; // Íå çàãîðàåìñÿ êîãäà åñòü çàùèòà
if FFireTime <= 0 then
g_Sound_PlayExAt('SOUND_IGNITE', FObj.X, FObj.Y);
FFireTime := 100;
if FFirePainTime <= 0 then
begin
if g_Game_IsServer then
- Damage(5, FFireAttacker, 0, 0, HIT_FLAME);
+ Damage(6, FFireAttacker, 0, 0, HIT_FLAME);
FFirePainTime := 18;
end;
FFirePainTime := FFirePainTime - 1;
FFireTime := FFireTime - 1;
+ if ((FFireTime mod 36) = 0) and (FMegaRulez[MR_INVUL] < gTime) then
+ FModel.PlaySound(MODELSOUND_PAIN, 1, FObj.X, FObj.Y);
if (FFireTime = 0) and g_Game_IsNet and g_Game_IsServer then
MH_SEND_PlayerStats(FUID);
end;
else if FHealth > -50 then Kill(K_HARDKILL, FLastSpawnerUID, FLastHit)
else Kill(K_EXTRAHARDKILL, FLastSpawnerUID, FLastHit);
- if FAlive then
+ if FAlive and (FFireTime <= 0) then
begin
if FDamageBuffer <= 20 then FModel.PlaySound(MODELSOUND_PAIN, 1, FObj.X, FObj.Y)
else if FDamageBuffer <= 55 then FModel.PlaySound(MODELSOUND_PAIN, 2, FObj.X, FObj.Y)