diff --git a/src/game/g_player.pas b/src/game/g_player.pas
index 88070c61c04866a6c79bcea7dc8d39f88545fa12..71a202301fbc3b20aeeea1df5496eae2a60c4b9c 100644 (file)
--- a/src/game/g_player.pas
+++ b/src/game/g_player.pas
begin
if FAlive then
begin
begin
if FAlive then
begin
- indX := FObj.X+FObj.Rect.X;
- indY := FObj.Y;
if g_Texture_Get('TEXTURE_PLAYER_INDICATOR', ID) then
begin
e_GetTextureSize(ID, @indW, @indH);
if g_Texture_Get('TEXTURE_PLAYER_INDICATOR', ID) then
begin
e_GetTextureSize(ID, @indW, @indH);
- e_Draw(ID, indX + indW div 2, indY - indH, 0, True, False);
+ indX := FObj.X + FObj.Rect.X + (FObj.Rect.Width - indW) div 2;
+ indY := FObj.Y;
+ e_Draw(ID, indX, indY - indH, 0, True, False);
end;
end;
//e_TextureFontPrint(indX, indY, FName, gStdFont); // Shows player name overhead
end;
end;
//e_TextureFontPrint(indX, indY, FName, gStdFont); // Shows player name overhead
procedure TPlayer.CatchFire(Attacker: Word);
begin
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 FFireTime <= 0 then
g_Sound_PlayExAt('SOUND_IGNITE', FObj.X, FObj.Y);
FFireTime := 100;
if FFirePainTime <= 0 then
begin
if g_Game_IsServer then
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;
FFirePainTime := 18;
end;
FFirePainTime := FFirePainTime - 1;
FFireTime := FFireTime - 1;
+ if ((FFireTime mod 33) = 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;
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);
else if FHealth > -50 then Kill(K_HARDKILL, FLastSpawnerUID, FLastHit)
else Kill(K_EXTRAHARDKILL, FLastSpawnerUID, FLastHit);
- if FAlive then
+ if FAlive and ((FLastHit <> HIT_FLAME) or (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)
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)