From b5e9c0f996b63fb3210a3e9f49a1677579b72622 Mon Sep 17 00:00:00 2001 From: "Michael Cook (mackal)" Date: Mon, 12 Feb 2018 19:41:48 -0500 Subject: [PATCH] Fix PVP arenas --- zone/client.cpp | 14 ++++++++------ zone/client.h | 3 ++- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/zone/client.cpp b/zone/client.cpp index 844188edb..69c43ef5a 100644 --- a/zone/client.cpp +++ b/zone/client.cpp @@ -336,6 +336,8 @@ Client::Client(EQStreamInterface* ieqs) for (int i = 0; i < InnateSkillMax; ++i) m_pp.InnateSkills[i] = InnateDisabled; + temp_pvp = false; + AI_Init(); } @@ -462,8 +464,8 @@ void Client::SendZoneInPackets() if (!GetHideMe()) entity_list.QueueClients(this, outapp, true); safe_delete(outapp); SetSpawned(); - if (GetPVP()) //force a PVP update until we fix the spawn struct - SendAppearancePacket(AT_PVP, GetPVP(), true, false); + if (GetPVP(false)) //force a PVP update until we fix the spawn struct + SendAppearancePacket(AT_PVP, GetPVP(false), true, false); //Send AA Exp packet: if (GetLevel() >= 51) @@ -1955,7 +1957,7 @@ void Client::FillSpawnStruct(NewSpawn_Struct* ns, Mob* ForWho) ns->spawn.gm = GetGM() ? 1 : 0; ns->spawn.guildID = GuildID(); // ns->spawn.linkdead = IsLD() ? 1 : 0; -// ns->spawn.pvp = GetPVP() ? 1 : 0; +// ns->spawn.pvp = GetPVP(false) ? 1 : 0; ns->spawn.show_name = true; @@ -8889,9 +8891,9 @@ void Client::CheckRegionTypeChanges() return; if (last_region_type == RegionTypePVP) - SetPVP(true, false); - else if (GetPVP()) - SetPVP(false, false); + temp_pvp = true; + else if (temp_pvp) + temp_pvp = false; } void Client::ProcessAggroMeter() diff --git a/zone/client.h b/zone/client.h index e0732fd92..039844f82 100644 --- a/zone/client.h +++ b/zone/client.h @@ -395,7 +395,7 @@ public: void SetGM(bool toggle); void SetPVP(bool toggle, bool message = true); - inline bool GetPVP() const { return m_pp.pvp != 0; } + inline bool GetPVP(bool inc_temp = true) const { return m_pp.pvp != 0 || (inc_temp && temp_pvp); } inline bool GetGM() const { return m_pp.gm != 0; } inline void SetBaseClass(uint32 i) { m_pp.class_=i; } @@ -1466,6 +1466,7 @@ private: PetInfo m_suspendedminion; // pet data for our suspended minion. MercInfo m_mercinfo[MAXMERCS]; // current mercenary InspectMessage_Struct m_inspect_message; + bool temp_pvp; void NPCSpawn(const Seperator* sep); uint32 GetEXPForLevel(uint16 level);