Entities/Player: Restore old checks for UpdatePvPFlag

Port From (https://github.com/TrinityCore/TrinityCore/commit/a4b3e694e822315a635b9ea598d1fab9e2069c3d)
This commit is contained in:
hondacrx
2022-02-22 19:53:53 -05:00
parent 87d3646a83
commit 55e9ab5d39
2 changed files with 13 additions and 13 deletions
+11 -11
View File
@@ -613,14 +613,19 @@ namespace Game.Entities
public void UpdatePvPFlag(long currTime)
{
if (!IsPvP())
return;
if (pvpInfo.EndTimer == 0 || (currTime < pvpInfo.EndTimer + 300) || pvpInfo.IsHostile)
return;
if (pvpInfo.EndTimer != 0 && pvpInfo.EndTimer <= currTime)
{
pvpInfo.EndTimer = 0;
RemovePlayerFlag(PlayerFlags.PVPTimer);
}
if (IsPvP() && !pvpInfo.IsHostile && !HasPlayerFlag(PlayerFlags.InPVP | PlayerFlags.PVPTimer))
UpdatePvP(false);
UpdatePvP(false);
}
public void UpdatePvP(bool state, bool Override = false)
@@ -632,21 +637,16 @@ namespace Game.Entities
}
else
{
pvpInfo.EndTimer = GameTime.GetGameTime() + 300;
pvpInfo.EndTimer = GameTime.GetGameTime();
SetPvP(state);
}
}
void InitPvP()
{
// pvp flag should stay after relog
if (HasPlayerFlag(PlayerFlags.InPVP))
UpdatePvP(true, true);
else if (HasPlayerFlag(PlayerFlags.PVPTimer))
{
UpdatePvP(true, true);
if (!pvpInfo.IsHostile)
pvpInfo.EndTimer = GameTime.GetGameTime() + 300;
}
}
public void UpdatePvPState(bool onlyFFA = false)
@@ -681,7 +681,7 @@ namespace Game.Entities
else // in friendly area
{
if (IsPvP() && !HasPlayerFlag(PlayerFlags.InPVP) && pvpInfo.EndTimer == 0)
pvpInfo.EndTimer = GameTime.GetGameTime() + 300; // start toggle-off
pvpInfo.EndTimer = GameTime.GetGameTime(); // start toggle-off
}
}
+2 -2
View File
@@ -518,7 +518,7 @@ namespace Game
GetPlayer().RemovePlayerFlag(PlayerFlags.InPVP);
GetPlayer().AddPlayerFlag(PlayerFlags.PVPTimer);
if (!GetPlayer().pvpInfo.IsHostile && GetPlayer().IsPvP())
GetPlayer().pvpInfo.EndTimer = GameTime.GetGameTime() + 300; // start toggle-off
GetPlayer().pvpInfo.EndTimer = GameTime.GetGameTime(); // start toggle-off
}
}
@@ -537,7 +537,7 @@ namespace Game
GetPlayer().RemovePlayerFlag(PlayerFlags.InPVP);
GetPlayer().AddPlayerFlag(PlayerFlags.PVPTimer);
if (!GetPlayer().pvpInfo.IsHostile && GetPlayer().IsPvP())
GetPlayer().pvpInfo.EndTimer = GameTime.GetGameTime() + 300; // start toggle-off
GetPlayer().pvpInfo.EndTimer = GameTime.GetGameTime(); // start toggle-off
}
}