Core/Player: Initial War Mode support

Port From (https://github.com/TrinityCore/TrinityCore/commit/b821a729733db0d3742b4aefe05e5a8305724f66)
This commit is contained in:
hondacrx
2022-01-07 21:49:50 -05:00
parent 73b456b5a0
commit 4c922933de
10 changed files with 304 additions and 26 deletions
+22 -16
View File
@@ -506,39 +506,45 @@ namespace Game
[WorldPacketHandler(ClientOpcodes.TogglePvp)]
void HandleTogglePvP(TogglePvP packet)
{
if (GetPlayer().HasPlayerFlag(PlayerFlags.InPVP))
{
GetPlayer().RemovePlayerFlag(PlayerFlags.InPVP);
GetPlayer().AddPlayerFlag(PlayerFlags.PVPTimer);
if (!GetPlayer().pvpInfo.IsHostile && GetPlayer().IsPvP())
GetPlayer().pvpInfo.EndTimer = GameTime.GetGameTime() + 300; // start toggle-off
}
else
if (!GetPlayer().HasPlayerFlag(PlayerFlags.InPVP))
{
GetPlayer().AddPlayerFlag(PlayerFlags.InPVP);
GetPlayer().RemovePlayerFlag(PlayerFlags.PVPTimer);
if (!GetPlayer().IsPvP() || GetPlayer().pvpInfo.EndTimer != 0)
GetPlayer().UpdatePvP(true, true);
}
else if (!GetPlayer().IsWarModeLocalActive())
{
GetPlayer().RemovePlayerFlag(PlayerFlags.InPVP);
GetPlayer().AddPlayerFlag(PlayerFlags.PVPTimer);
if (!GetPlayer().pvpInfo.IsHostile && GetPlayer().IsPvP())
GetPlayer().pvpInfo.EndTimer = GameTime.GetGameTime() + 300; // start toggle-off
}
}
[WorldPacketHandler(ClientOpcodes.SetPvp)]
void HandleSetPvP(SetPvP packet)
{
if (!packet.EnablePVP)
{
GetPlayer().RemovePlayerFlag(PlayerFlags.InPVP);
GetPlayer().AddPlayerFlag(PlayerFlags.PVPTimer);
if (!GetPlayer().pvpInfo.IsHostile && GetPlayer().IsPvP())
GetPlayer().pvpInfo.EndTimer = GameTime.GetGameTime() + 300; // start toggle-off
}
else
if (packet.EnablePVP)
{
GetPlayer().AddPlayerFlag(PlayerFlags.InPVP);
GetPlayer().RemovePlayerFlag(PlayerFlags.PVPTimer);
if (!GetPlayer().IsPvP() || GetPlayer().pvpInfo.EndTimer != 0)
GetPlayer().UpdatePvP(true, true);
}
else if (!GetPlayer().IsWarModeLocalActive())
{
GetPlayer().RemovePlayerFlag(PlayerFlags.InPVP);
GetPlayer().AddPlayerFlag(PlayerFlags.PVPTimer);
if (!GetPlayer().pvpInfo.IsHostile && GetPlayer().IsPvP())
GetPlayer().pvpInfo.EndTimer = GameTime.GetGameTime() + 300; // start toggle-off
}
}
[WorldPacketHandler(ClientOpcodes.SetWarMode)]
void HandleSetWarMode(SetWarMode packet)
{
_player.SetWarModeDesired(packet.Enable);
}
[WorldPacketHandler(ClientOpcodes.FarSight)]