aboutsummaryrefslogtreecommitdiff
path: root/src/server/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/scripts')
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/instance_culling_of_stratholme.cpp14
-rw-r--r--src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_skeram.cpp10
-rw-r--r--src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/instance_ruby_sanctum.cpp10
-rw-r--r--src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/instance_halls_of_reflection.cpp6
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp10
-rw-r--r--src/server/scripts/Northrend/Nexus/Oculus/instance_oculus.cpp12
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_auriaya.cpp12
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_kologarn.cpp12
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_thorim.cpp18
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp19
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/ulduar.h18
-rw-r--r--src/server/scripts/Northrend/VioletHold/instance_violet_hold.cpp12
-rw-r--r--src/server/scripts/OutdoorPvP/OutdoorPvPHP.cpp47
-rw-r--r--src/server/scripts/OutdoorPvP/OutdoorPvPHP.h8
-rw-r--r--src/server/scripts/OutdoorPvP/OutdoorPvPNA.cpp86
-rw-r--r--src/server/scripts/OutdoorPvP/OutdoorPvPNA.h26
-rw-r--r--src/server/scripts/OutdoorPvP/OutdoorPvPSI.cpp14
-rw-r--r--src/server/scripts/OutdoorPvP/OutdoorPvPSI.h9
-rw-r--r--src/server/scripts/OutdoorPvP/OutdoorPvPTF.cpp33
-rw-r--r--src/server/scripts/OutdoorPvP/OutdoorPvPTF.h11
-rw-r--r--src/server/scripts/OutdoorPvP/OutdoorPvPZM.cpp41
-rw-r--r--src/server/scripts/OutdoorPvP/OutdoorPvPZM.h31
22 files changed, 194 insertions, 265 deletions
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/instance_culling_of_stratholme.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/instance_culling_of_stratholme.cpp
index 5714aa88b0a..a16cfdf95ea 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/instance_culling_of_stratholme.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/instance_culling_of_stratholme.cpp
@@ -15,15 +15,15 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#include "ScriptMgr.h"
+#include "culling_of_stratholme.h"
#include "Creature.h"
#include "CreatureAI.h"
-#include "culling_of_stratholme.h"
#include "EventMap.h"
#include "GameObject.h"
#include "InstanceScript.h"
#include "Map.h"
#include "MotionMaster.h"
+#include "ScriptMgr.h"
#include "TemporarySummon.h"
#include "WorldStatePackets.h"
@@ -72,11 +72,11 @@ class instance_culling_of_stratholme : public InstanceMapScript
void FillInitialWorldStates(WorldPackets::WorldState::InitWorldStates& packet) override
{
- packet.Worldstates.emplace_back(uint32(WORLDSTATE_SHOW_CRATES), 1);
- packet.Worldstates.emplace_back(uint32(WORLDSTATE_CRATES_REVEALED), int32(_crateCount));
- packet.Worldstates.emplace_back(uint32(WORLDSTATE_WAVE_COUNT), 0);
- packet.Worldstates.emplace_back(uint32(WORLDSTATE_TIME_GUARDIAN), 25);
- packet.Worldstates.emplace_back(uint32(WORLDSTATE_TIME_GUARDIAN_SHOW), 0);
+ packet.Worldstates.emplace_back(WORLDSTATE_SHOW_CRATES, 1);
+ packet.Worldstates.emplace_back(WORLDSTATE_CRATES_REVEALED, _crateCount);
+ packet.Worldstates.emplace_back(WORLDSTATE_WAVE_COUNT, 0);
+ packet.Worldstates.emplace_back(WORLDSTATE_TIME_GUARDIAN, 25);
+ packet.Worldstates.emplace_back(WORLDSTATE_TIME_GUARDIAN_SHOW, 0);
}
void OnCreatureCreate(Creature* creature) override
diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_skeram.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_skeram.cpp
index 40cd1ab08aa..82884269013 100644
--- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_skeram.cpp
+++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_skeram.cpp
@@ -220,9 +220,15 @@ class spell_skeram_arcane_explosion : public SpellScriptLoader
void FilterTargets(std::list<WorldObject*>& targets)
{
- targets.remove_if([](WorldObject* target)
+ targets.remove_if([](WorldObject* object) -> bool
{
- return target->GetTypeId() != TYPEID_PLAYER && (target->GetTypeId() != TYPEID_UNIT || !target->ToUnit()->IsPet());
+ if (object->GetTypeId() == TYPEID_PLAYER)
+ return false;
+
+ if (Creature* creature = object->ToCreature())
+ return !creature->IsPet();
+
+ return true;
});
}
diff --git a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/instance_ruby_sanctum.cpp b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/instance_ruby_sanctum.cpp
index 5302117a7e6..c298e93ffee 100644
--- a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/instance_ruby_sanctum.cpp
+++ b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/instance_ruby_sanctum.cpp
@@ -15,13 +15,13 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#include "ScriptMgr.h"
+#include "ruby_sanctum.h"
#include "AreaBoundary.h"
#include "CreatureAI.h"
#include "GameObject.h"
#include "InstanceScript.h"
#include "Map.h"
-#include "ruby_sanctum.h"
+#include "ScriptMgr.h"
#include "TemporarySummon.h"
#include "WorldStatePackets.h"
@@ -199,9 +199,9 @@ class instance_ruby_sanctum : public InstanceMapScript
void FillInitialWorldStates(WorldPackets::WorldState::InitWorldStates& packet) override
{
- packet.Worldstates.emplace_back(uint32(WORLDSTATE_CORPOREALITY_MATERIAL), 50);
- packet.Worldstates.emplace_back(uint32(WORLDSTATE_CORPOREALITY_TWILIGHT), 50);
- packet.Worldstates.emplace_back(uint32(WORLDSTATE_CORPOREALITY_TOGGLE), 0);
+ packet.Worldstates.emplace_back(WORLDSTATE_CORPOREALITY_MATERIAL, 50);
+ packet.Worldstates.emplace_back(WORLDSTATE_CORPOREALITY_TWILIGHT, 50);
+ packet.Worldstates.emplace_back(WORLDSTATE_CORPOREALITY_TOGGLE, 0);
}
protected:
diff --git a/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/instance_halls_of_reflection.cpp b/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/instance_halls_of_reflection.cpp
index 9dd60470569..1dceae62f90 100644
--- a/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/instance_halls_of_reflection.cpp
+++ b/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/instance_halls_of_reflection.cpp
@@ -15,13 +15,13 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#include "ScriptMgr.h"
#include "halls_of_reflection.h"
#include "InstanceScript.h"
#include "Map.h"
#include "PhasingHandler.h"
#include "Player.h"
#include "ScriptedCreature.h"
+#include "ScriptMgr.h"
#include "TemporarySummon.h"
#include "Transport.h"
#include "WorldStatePackets.h"
@@ -296,8 +296,8 @@ class instance_halls_of_reflection : public InstanceMapScript
void FillInitialWorldStates(WorldPackets::WorldState::InitWorldStates& packet) override
{
- packet.Worldstates.emplace_back(uint32(WORLD_STATE_HOR_WAVES_ENABLED), int32(_introState == DONE && GetBossState(DATA_MARWYN) != DONE));
- packet.Worldstates.emplace_back(uint32(WORLD_STATE_HOR_WAVE_COUNT), int32(_waveCount));
+ packet.Worldstates.emplace_back(WORLD_STATE_HOR_WAVES_ENABLED, (_introState == DONE && GetBossState(DATA_MARWYN) != DONE) ? 1 : 0);
+ packet.Worldstates.emplace_back(WORLD_STATE_HOR_WAVE_COUNT, _waveCount);
}
bool SetBossState(uint32 type, EncounterState state) override
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp b/src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp
index e8946cadb07..e671efb4b80 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp
@@ -168,11 +168,11 @@ class instance_icecrown_citadel : public InstanceMapScript
void FillInitialWorldStates(WorldPackets::WorldState::InitWorldStates& packet) override
{
- packet.Worldstates.emplace_back(uint32(WORLDSTATE_SHOW_TIMER), int32(BloodQuickeningState == IN_PROGRESS));
- packet.Worldstates.emplace_back(uint32(WORLDSTATE_EXECUTION_TIME), int32(BloodQuickeningMinutes));
- packet.Worldstates.emplace_back(uint32(WORLDSTATE_SHOW_ATTEMPTS), int32(instance->IsHeroic()));
- packet.Worldstates.emplace_back(uint32(WORLDSTATE_ATTEMPTS_REMAINING), int32(HeroicAttempts));
- packet.Worldstates.emplace_back(uint32(WORLDSTATE_ATTEMPTS_MAX), int32(MaxHeroicAttempts));
+ packet.Worldstates.emplace_back(WORLDSTATE_SHOW_TIMER, BloodQuickeningState == IN_PROGRESS ? 1 : 0);
+ packet.Worldstates.emplace_back(WORLDSTATE_EXECUTION_TIME, BloodQuickeningMinutes);
+ packet.Worldstates.emplace_back(WORLDSTATE_SHOW_ATTEMPTS, instance->IsHeroic() ? 1 : 0);
+ packet.Worldstates.emplace_back(WORLDSTATE_ATTEMPTS_REMAINING, HeroicAttempts);
+ packet.Worldstates.emplace_back(WORLDSTATE_ATTEMPTS_MAX, MaxHeroicAttempts);
}
void OnPlayerEnter(Player* player) override
diff --git a/src/server/scripts/Northrend/Nexus/Oculus/instance_oculus.cpp b/src/server/scripts/Northrend/Nexus/Oculus/instance_oculus.cpp
index 8250298c4be..0b7e8e890f0 100644
--- a/src/server/scripts/Northrend/Nexus/Oculus/instance_oculus.cpp
+++ b/src/server/scripts/Northrend/Nexus/Oculus/instance_oculus.cpp
@@ -15,14 +15,14 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#include "ScriptMgr.h"
+#include "oculus.h"
#include "Creature.h"
#include "CreatureAI.h"
#include "GameObject.h"
#include "InstanceScript.h"
#include "Map.h"
#include "MotionMaster.h"
-#include "oculus.h"
+#include "ScriptMgr.h"
#include "PhasingHandler.h"
#include "TemporarySummon.h"
#include "WorldStatePackets.h"
@@ -155,13 +155,13 @@ class instance_oculus : public InstanceMapScript
{
if (GetBossState(DATA_DRAKOS) == DONE && GetBossState(DATA_VAROS) != DONE)
{
- packet.Worldstates.emplace_back(uint32(WORLD_STATE_CENTRIFUGE_CONSTRUCT_SHOW), 1);
- packet.Worldstates.emplace_back(uint32(WORLD_STATE_CENTRIFUGE_CONSTRUCT_AMOUNT), int32(CentrifugueConstructCounter));
+ packet.Worldstates.emplace_back(WORLD_STATE_CENTRIFUGE_CONSTRUCT_SHOW, 1);
+ packet.Worldstates.emplace_back(WORLD_STATE_CENTRIFUGE_CONSTRUCT_AMOUNT, CentrifugueConstructCounter);
}
else
{
- packet.Worldstates.emplace_back(uint32(WORLD_STATE_CENTRIFUGE_CONSTRUCT_SHOW), 0);
- packet.Worldstates.emplace_back(uint32(WORLD_STATE_CENTRIFUGE_CONSTRUCT_AMOUNT), 0);
+ packet.Worldstates.emplace_back(WORLD_STATE_CENTRIFUGE_CONSTRUCT_SHOW, 0);
+ packet.Worldstates.emplace_back(WORLD_STATE_CENTRIFUGE_CONSTRUCT_AMOUNT, 0);
}
}
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_auriaya.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_auriaya.cpp
index 80942896008..bbe5b03e5c1 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_auriaya.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_auriaya.cpp
@@ -526,11 +526,17 @@ class spell_auriaya_sentinel_blast : public SpellScript
{
PrepareSpellScript(spell_auriaya_sentinel_blast);
- void FilterTargets(std::list<WorldObject*>& unitList)
+ void FilterTargets(std::list<WorldObject*>& targets)
{
- unitList.remove_if([](WorldObject* target)
+ targets.remove_if([](WorldObject* object) -> bool
{
- return target->GetTypeId() != TYPEID_PLAYER && (target->GetTypeId() != TYPEID_UNIT || !target->ToUnit()->IsPet());
+ if (object->GetTypeId() == TYPEID_PLAYER)
+ return false;
+
+ if (Creature* creature = object->ToCreature())
+ return !creature->IsPet();
+
+ return true;
});
}
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_kologarn.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_kologarn.cpp
index e1b931e0991..54b31a8a812 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_kologarn.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_kologarn.cpp
@@ -615,11 +615,17 @@ class spell_kologarn_stone_shout : public SpellScriptLoader
{
PrepareSpellScript(spell_kologarn_stone_shout_SpellScript);
- void FilterTargets(std::list<WorldObject*>& unitList)
+ void FilterTargets(std::list<WorldObject*>& targets)
{
- unitList.remove_if([](WorldObject* target)
+ targets.remove_if([](WorldObject* object) -> bool
{
- return target->GetTypeId() != TYPEID_PLAYER && (target->GetTypeId() != TYPEID_UNIT || !target->ToUnit()->IsPet());
+ if (object->GetTypeId() == TYPEID_PLAYER)
+ return false;
+
+ if (Creature* creature = object->ToCreature())
+ return !creature->IsPet();
+
+ return true;
});
}
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_thorim.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_thorim.cpp
index 5904d93ccfc..eff9c455cd0 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_thorim.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_thorim.cpp
@@ -580,7 +580,7 @@ class boss_thorim : public CreatureScript
events.ScheduleEvent(EVENT_OUTRO_2, _hardMode ? 8000 : 11000);
events.ScheduleEvent(EVENT_OUTRO_3, _hardMode ? 19000 : 21000);
- me->m_Events.AddEvent(new KeeperDespawnEvent(me), me->m_Events.CalculateTime(35000));
+ me->m_Events.AddEvent(new UlduarKeeperDespawnEvent(me), me->m_Events.CalculateTime(35000));
}
void MovementInform(uint32 type, uint32 id) override
@@ -1711,12 +1711,18 @@ class spell_thorim_frostbolt_volley : public SpellScriptLoader
{
PrepareSpellScript(spell_thorim_frostbolt_volley_SpellScript);
- void FilterTargets(std::list<WorldObject*>& unitList)
+ void FilterTargets(std::list<WorldObject*>& targets)
{
- unitList.remove_if([](WorldObject* target)
- {
- return target->GetTypeId() != TYPEID_PLAYER && (target->GetTypeId() != TYPEID_UNIT || !target->ToUnit()->IsPet());
- });
+ targets.remove_if([](WorldObject* object) -> bool
+ {
+ if (object->GetTypeId() == TYPEID_PLAYER)
+ return false;
+
+ if (Creature* creature = object->ToCreature())
+ return !creature->IsPet();
+
+ return true;
+ });
}
void Register() override
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp
index 9260d5307b6..690bb6e053b 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp
@@ -15,7 +15,7 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#include "ScriptMgr.h"
+#include "ulduar.h"
#include "AreaBoundary.h"
#include "CreatureAI.h"
#include "GameObject.h"
@@ -23,10 +23,10 @@
#include "Item.h"
#include "Map.h"
#include "Player.h"
+#include "ScriptMgr.h"
#include "Spell.h"
#include "SpellScript.h"
#include "TemporarySummon.h"
-#include "ulduar.h"
#include "Vehicle.h"
#include "WorldStatePackets.h"
#include <sstream>
@@ -143,6 +143,17 @@ ObjectData const objectData[] =
{ 0, 0 }
};
+UlduarKeeperDespawnEvent::UlduarKeeperDespawnEvent(Creature* owner, uint32 despawnTimerOffset) : _owner(owner), _despawnTimer(despawnTimerOffset)
+{
+}
+
+bool UlduarKeeperDespawnEvent::Execute(uint64 /*eventTime*/, uint32 /*updateTime*/)
+{
+ _owner->CastSpell(_owner, SPELL_TELEPORT_KEEPER_VISUAL);
+ _owner->DespawnOrUnsummon(1000 + _despawnTimer);
+ return true;
+}
+
class instance_ulduar : public InstanceMapScript
{
public:
@@ -218,8 +229,8 @@ class instance_ulduar : public InstanceMapScript
void FillInitialWorldStates(WorldPackets::WorldState::InitWorldStates& packet) override
{
- packet.Worldstates.emplace_back(uint32(WORLD_STATE_ALGALON_TIMER_ENABLED), int32(_algalonTimer && _algalonTimer <= 60));
- packet.Worldstates.emplace_back(uint32(WORLD_STATE_ALGALON_DESPAWN_TIMER), int32(std::min<uint32>(_algalonTimer, 60)));
+ packet.Worldstates.emplace_back(WORLD_STATE_ALGALON_TIMER_ENABLED, (_algalonTimer && _algalonTimer <= 60) ? 1 : 0);
+ packet.Worldstates.emplace_back(WORLD_STATE_ALGALON_DESPAWN_TIMER, std::min<int32>(_algalonTimer, 60));
}
void OnPlayerEnter(Player* player) override
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/ulduar.h b/src/server/scripts/Northrend/Ulduar/Ulduar/ulduar.h
index d332dad74a4..6875d6c4a65 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/ulduar.h
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/ulduar.h
@@ -19,6 +19,7 @@
#define DEF_ULDUAR_H
#include "CreatureAIImpl.h"
+#include "EventProcessor.h"
struct Position;
@@ -508,17 +509,14 @@ enum YoggSaronIllusions
STORMWIND_ILLUSION = 2,
};
-class KeeperDespawnEvent : public BasicEvent
+class Creature;
+
+class UlduarKeeperDespawnEvent : public BasicEvent
{
-public:
- KeeperDespawnEvent(Creature* owner, uint32 despawnTimerOffset = 500) : _owner(owner), _despawnTimer(despawnTimerOffset) { }
-
- bool Execute(uint64 /*eventTime*/, uint32 /*updateTime*/) override
- {
- _owner->CastSpell(_owner, SPELL_TELEPORT_KEEPER_VISUAL);
- _owner->DespawnOrUnsummon(1000 + _despawnTimer);
- return true;
- }
+ public:
+ UlduarKeeperDespawnEvent(Creature* owner, uint32 despawnTimerOffset = 500);
+
+ bool Execute(uint64 /*eventTime*/, uint32 /*updateTime*/) override;
private:
Creature* _owner;
diff --git a/src/server/scripts/Northrend/VioletHold/instance_violet_hold.cpp b/src/server/scripts/Northrend/VioletHold/instance_violet_hold.cpp
index b321c3ebfec..233b3d7f301 100644
--- a/src/server/scripts/Northrend/VioletHold/instance_violet_hold.cpp
+++ b/src/server/scripts/Northrend/VioletHold/instance_violet_hold.cpp
@@ -15,7 +15,7 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#include "ScriptMgr.h"
+#include "violet_hold.h"
#include "Creature.h"
#include "CreatureAI.h"
#include "GameObject.h"
@@ -24,8 +24,8 @@
#include "MotionMaster.h"
#include "Player.h"
#include "TaskScheduler.h"
+#include "ScriptMgr.h"
#include "TemporarySummon.h"
-#include "violet_hold.h"
#include "WorldStatePackets.h"
#include <sstream>
@@ -293,11 +293,11 @@ class instance_violet_hold : public InstanceMapScript
}
}
- void FillInitialWorldStates(WorldPackets::WorldState::InitWorldStates& data) override
+ void FillInitialWorldStates(WorldPackets::WorldState::InitWorldStates& packet) override
{
- data.Worldstates.emplace_back(uint32(WORLD_STATE_VH_SHOW), uint32(EventState == IN_PROGRESS ? 1 : 0));
- data.Worldstates.emplace_back(uint32(WORLD_STATE_VH_PRISON_STATE), uint32(DoorIntegrity));
- data.Worldstates.emplace_back(uint32(WORLD_STATE_VH_WAVE_COUNT), uint32(WaveCount));
+ packet.Worldstates.emplace_back(WORLD_STATE_VH_SHOW, EventState == IN_PROGRESS ? 1 : 0);
+ packet.Worldstates.emplace_back(WORLD_STATE_VH_PRISON_STATE, DoorIntegrity);
+ packet.Worldstates.emplace_back(WORLD_STATE_VH_WAVE_COUNT, WaveCount);
}
bool CheckRequiredBosses(uint32 bossId, Player const* player = nullptr) const override
diff --git a/src/server/scripts/OutdoorPvP/OutdoorPvPHP.cpp b/src/server/scripts/OutdoorPvP/OutdoorPvPHP.cpp
index 3a52febaafd..91ffbaca3ec 100644
--- a/src/server/scripts/OutdoorPvP/OutdoorPvPHP.cpp
+++ b/src/server/scripts/OutdoorPvP/OutdoorPvPHP.cpp
@@ -15,28 +15,21 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#include "ScriptMgr.h"
+#include "OutdoorPvPHP.h"
#include "GameObject.h"
#include "MapManager.h"
-#include "OutdoorPvPHP.h"
#include "Player.h"
+#include "ScriptMgr.h"
#include "WorldStatePackets.h"
uint32 const OutdoorPvPHPBuffZonesNum = 6;
- // HP, citadel, ramparts, blood furnace, shattered halls, mag's lair
-uint32 const OutdoorPvPHPBuffZones[OutdoorPvPHPBuffZonesNum] = { 3483, 3563, 3562, 3713, 3714, 3836 };
-
+uint32 const OutdoorPvPHPBuffZones[OutdoorPvPHPBuffZonesNum] = { 3483, 3563, 3562, 3713, 3714, 3836 }; // HP, citadel, ramparts, blood furnace, shattered halls, mag's lair
uint32 const HP_CREDITMARKER[HP_TOWER_NUM] = { 19032, 19028, 19029 };
-
-/*
-uint32 const HP_CapturePointEvent_Enter[HP_TOWER_NUM] = { 11404, 11396, 11388 };
-uint32 const HP_CapturePointEvent_Leave[HP_TOWER_NUM] = { 11403, 11395, 11387 };
-*/
-
+//uint32 const HP_CapturePointEvent_Enter[HP_TOWER_NUM] = { 11404, 11396, 11388 };
+//uint32 const HP_CapturePointEvent_Leave[HP_TOWER_NUM] = { 11403, 11395, 11387 };
uint32 const HP_MAP_N[HP_TOWER_NUM] = { 0x9b5, 0x9b2, 0x9a8 };
uint32 const HP_MAP_A[HP_TOWER_NUM] = { 0x9b3, 0x9b0, 0x9a7 };
uint32 const HP_MAP_H[HP_TOWER_NUM] = { 0x9b4, 0x9b1, 0x9a6 };
-
uint32 const HP_TowerArtKit_A[HP_TOWER_NUM] = { 65, 62, 67 };
uint32 const HP_TowerArtKit_H[HP_TOWER_NUM] = { 64, 61, 68 };
uint32 const HP_TowerArtKit_N[HP_TOWER_NUM] = { 66, 63, 69 };
@@ -58,13 +51,11 @@ go_type const HPTowerFlags[HP_TOWER_NUM] =
uint32 const HP_LANG_CAPTURE_A[HP_TOWER_NUM] = { TEXT_BROKEN_HILL_TAKEN_ALLIANCE, TEXT_OVERLOOK_TAKEN_ALLIANCE, TEXT_STADIUM_TAKEN_ALLIANCE };
uint32 const HP_LANG_CAPTURE_H[HP_TOWER_NUM] = { TEXT_BROKEN_HILL_TAKEN_HORDE, TEXT_OVERLOOK_TAKEN_HORDE, TEXT_STADIUM_TAKEN_HORDE };
-OPvPCapturePointHP::OPvPCapturePointHP(OutdoorPvP* pvp, OutdoorPvPHPTowerType type)
-: OPvPCapturePoint(pvp), m_TowerType(type)
+OPvPCapturePointHP::OPvPCapturePointHP(OutdoorPvP* pvp, OutdoorPvPHPTowerType type) : OPvPCapturePoint(pvp), m_TowerType(type)
{
SetCapturePointData(HPCapturePoints[type].entry, HPCapturePoints[type].map, HPCapturePoints[type].pos, HPCapturePoints[type].rot);
AddObject(type, HPTowerFlags[type].entry, HPTowerFlags[type].map, HPTowerFlags[type].pos, HPTowerFlags[type].rot);
}
-
OutdoorPvPHP::OutdoorPvPHP()
{
m_TypeId = OUTDOOR_PVP_HP;
@@ -158,10 +149,10 @@ void OutdoorPvPHP::SendRemoveWorldStates(Player* player)
void OutdoorPvPHP::FillInitialWorldStates(WorldPackets::WorldState::InitWorldStates& packet)
{
- packet.Worldstates.emplace_back(uint32(HP_UI_TOWER_DISPLAY_A), 1);
- packet.Worldstates.emplace_back(uint32(HP_UI_TOWER_DISPLAY_H), 1);
- packet.Worldstates.emplace_back(uint32(HP_UI_TOWER_COUNT_A), int32(m_AllianceTowersControlled));
- packet.Worldstates.emplace_back(uint32(HP_UI_TOWER_COUNT_H), int32(m_HordeTowersControlled));
+ packet.Worldstates.emplace_back(HP_UI_TOWER_DISPLAY_A, 1);
+ packet.Worldstates.emplace_back(HP_UI_TOWER_DISPLAY_H, 1);
+ packet.Worldstates.emplace_back(HP_UI_TOWER_COUNT_A, m_AllianceTowersControlled);
+ packet.Worldstates.emplace_back(HP_UI_TOWER_COUNT_H, m_HordeTowersControlled);
for (OPvPCapturePointMap::iterator itr = m_capturePoints.begin(); itr != m_capturePoints.end(); ++itr)
itr->second->FillInitialWorldStates(packet);
@@ -276,23 +267,23 @@ void OPvPCapturePointHP::FillInitialWorldStates(WorldPackets::WorldState::InitWo
{
case OBJECTIVESTATE_ALLIANCE:
case OBJECTIVESTATE_ALLIANCE_HORDE_CHALLENGE:
- packet.Worldstates.emplace_back(uint32(HP_MAP_N[m_TowerType]), 0);
- packet.Worldstates.emplace_back(uint32(HP_MAP_A[m_TowerType]), 1);
- packet.Worldstates.emplace_back(uint32(HP_MAP_H[m_TowerType]), 0);
+ packet.Worldstates.emplace_back(HP_MAP_N[m_TowerType], 0);
+ packet.Worldstates.emplace_back(HP_MAP_A[m_TowerType], 1);
+ packet.Worldstates.emplace_back(HP_MAP_H[m_TowerType], 0);
break;
case OBJECTIVESTATE_HORDE:
case OBJECTIVESTATE_HORDE_ALLIANCE_CHALLENGE:
- packet.Worldstates.emplace_back(uint32(HP_MAP_N[m_TowerType]), 0);
- packet.Worldstates.emplace_back(uint32(HP_MAP_A[m_TowerType]), 0);
- packet.Worldstates.emplace_back(uint32(HP_MAP_H[m_TowerType]), 1);
+ packet.Worldstates.emplace_back(HP_MAP_N[m_TowerType], 0);
+ packet.Worldstates.emplace_back(HP_MAP_A[m_TowerType], 0);
+ packet.Worldstates.emplace_back(HP_MAP_H[m_TowerType], 1);
break;
case OBJECTIVESTATE_NEUTRAL:
case OBJECTIVESTATE_NEUTRAL_ALLIANCE_CHALLENGE:
case OBJECTIVESTATE_NEUTRAL_HORDE_CHALLENGE:
default:
- packet.Worldstates.emplace_back(uint32(HP_MAP_N[m_TowerType]), 1);
- packet.Worldstates.emplace_back(uint32(HP_MAP_A[m_TowerType]), 0);
- packet.Worldstates.emplace_back(uint32(HP_MAP_H[m_TowerType]), 0);
+ packet.Worldstates.emplace_back(HP_MAP_N[m_TowerType], 1);
+ packet.Worldstates.emplace_back(HP_MAP_A[m_TowerType], 0);
+ packet.Worldstates.emplace_back(HP_MAP_H[m_TowerType], 0);
break;
}
}
diff --git a/src/server/scripts/OutdoorPvP/OutdoorPvPHP.h b/src/server/scripts/OutdoorPvP/OutdoorPvPHP.h
index f02d46b99af..a6d3b4e5c93 100644
--- a/src/server/scripts/OutdoorPvP/OutdoorPvPHP.h
+++ b/src/server/scripts/OutdoorPvP/OutdoorPvPHP.h
@@ -61,7 +61,6 @@ class OPvPCapturePointHP : public OPvPCapturePoint
OPvPCapturePointHP(OutdoorPvP* pvp, OutdoorPvPHPTowerType type);
void ChangeState() override;
-
void FillInitialWorldStates(WorldPackets::WorldState::InitWorldStates& packet) override;
private:
@@ -79,22 +78,17 @@ class OutdoorPvPHP : public OutdoorPvP
void HandlePlayerLeaveZone(Player* player, uint32 zone) override;
bool Update(uint32 diff) override;
-
void FillInitialWorldStates(WorldPackets::WorldState::InitWorldStates& packet) override;
-
void SendRemoveWorldStates(Player* player) override;
-
void HandleKillImpl(Player* player, Unit* killed) override;
uint32 GetAllianceTowersControlled() const;
void SetAllianceTowersControlled(uint32 count);
-
uint32 GetHordeTowersControlled() const;
void SetHordeTowersControlled(uint32 count);
private:
- // how many towers are controlled
- uint32 m_AllianceTowersControlled;
+ uint32 m_AllianceTowersControlled; // how many towers are controlled
uint32 m_HordeTowersControlled;
};
diff --git a/src/server/scripts/OutdoorPvP/OutdoorPvPNA.cpp b/src/server/scripts/OutdoorPvP/OutdoorPvPNA.cpp
index 5c85f1e6213..55c78d1826d 100644
--- a/src/server/scripts/OutdoorPvP/OutdoorPvPNA.cpp
+++ b/src/server/scripts/OutdoorPvP/OutdoorPvPNA.cpp
@@ -15,32 +15,23 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#include "ScriptMgr.h"
+#include "OutdoorPvPNA.h"
#include "Creature.h"
#include "GameObject.h"
-#include "ObjectMgr.h"
-#include "OutdoorPvPNA.h"
#include "Map.h"
+#include "ObjectMgr.h"
#include "Player.h"
+#include "ScriptMgr.h"
#include "WorldStatePackets.h"
- // kill credit for pks
-uint32 const NA_CREDIT_MARKER = 24867;
-
+uint32 const NA_CREDIT_MARKER = 24867; // kill credit for pks
uint32 const NA_GUARDS_MAX = 15;
-
uint32 const NA_BUFF_ZONE = 3518;
-
uint32 const NA_HALAA_GRAVEYARD = 993;
-
uint32 const NA_HALAA_GRAVEYARD_ZONE = 3518; // need to add zone id, not area id
-
uint32 const NA_RESPAWN_TIME = 3600000; // one hour to capture after defeating all guards
-
uint32 const NA_GUARD_CHECK_TIME = 500; // every half second
-
uint32 const FLIGHT_NODES_NUM = 4;
-
uint32 const FlightPathStartNodes[FLIGHT_NODES_NUM] = { 103, 105, 107, 109 };
uint32 const FlightPathEndNodes[FLIGHT_NODES_NUM] = { 104, 106, 108, 110 };
@@ -284,10 +275,8 @@ void OPvPCapturePointNA::FactionTakeOver(uint32 team)
UpdateWyvernRoostWorldState(NA_ROOST_E);
}
-OPvPCapturePointNA::OPvPCapturePointNA(OutdoorPvP* pvp) :
-OPvPCapturePoint(pvp), m_capturable(true), m_GuardsAlive(0), m_ControllingFaction(0),
-m_WyvernStateNorth(0), m_WyvernStateSouth(0), m_WyvernStateEast(0), m_WyvernStateWest(0),
-m_HalaaState(HALAA_N), m_RespawnTimer(NA_RESPAWN_TIME), m_GuardCheckTimer(NA_GUARD_CHECK_TIME)
+OPvPCapturePointNA::OPvPCapturePointNA(OutdoorPvP* pvp) : OPvPCapturePoint(pvp), m_capturable(true), m_GuardsAlive(0), m_ControllingFaction(0), m_WyvernStateNorth(0), m_WyvernStateSouth(0), m_WyvernStateEast(0),
+ m_WyvernStateWest(0), m_HalaaState(HALAA_N), m_RespawnTimer(NA_RESPAWN_TIME), m_GuardCheckTimer(NA_GUARD_CHECK_TIME)
{
SetCapturePointData(182210, 530, { -1572.57f, 7945.3f, -22.475f, 2.05949f }, { 0.0f, 0.0f, 0.857167f, 0.515038f });
}
@@ -330,48 +319,43 @@ void OPvPCapturePointNA::FillInitialWorldStates(WorldPackets::WorldState::InitWo
{
if (m_ControllingFaction == ALLIANCE)
{
- packet.Worldstates.emplace_back(uint32(NA_UI_HORDE_GUARDS_SHOW), 0);
- packet.Worldstates.emplace_back(uint32(NA_UI_ALLIANCE_GUARDS_SHOW), 1);
+ packet.Worldstates.emplace_back(NA_UI_HORDE_GUARDS_SHOW, 0);
+ packet.Worldstates.emplace_back(NA_UI_ALLIANCE_GUARDS_SHOW, 1);
}
else if (m_ControllingFaction == HORDE)
{
- packet.Worldstates.emplace_back(uint32(NA_UI_HORDE_GUARDS_SHOW), 1);
- packet.Worldstates.emplace_back(uint32(NA_UI_ALLIANCE_GUARDS_SHOW), 1);
+ packet.Worldstates.emplace_back(NA_UI_HORDE_GUARDS_SHOW, 1);
+ packet.Worldstates.emplace_back(NA_UI_ALLIANCE_GUARDS_SHOW, 0);
}
else
{
- packet.Worldstates.emplace_back(uint32(NA_UI_HORDE_GUARDS_SHOW), 0);
- packet.Worldstates.emplace_back(uint32(NA_UI_ALLIANCE_GUARDS_SHOW), 0);
+ packet.Worldstates.emplace_back(NA_UI_HORDE_GUARDS_SHOW, 0);
+ packet.Worldstates.emplace_back(NA_UI_ALLIANCE_GUARDS_SHOW, 0);
}
- packet.Worldstates.emplace_back(uint32(NA_UI_GUARDS_MAX), int32(NA_GUARDS_MAX));
- packet.Worldstates.emplace_back(uint32(NA_UI_GUARDS_LEFT), int32(m_GuardsAlive));
-
- packet.Worldstates.emplace_back(uint32(NA_MAP_WYVERN_NORTH_NEU_A), int32((m_WyvernStateNorth & WYVERN_NEU_HORDE) != 0));
- packet.Worldstates.emplace_back(uint32(NA_MAP_WYVERN_NORTH_NEU_A), int32((m_WyvernStateNorth & WYVERN_NEU_ALLIANCE) != 0));
- packet.Worldstates.emplace_back(uint32(NA_MAP_WYVERN_NORTH_H), int32((m_WyvernStateNorth & WYVERN_HORDE) != 0));
- packet.Worldstates.emplace_back(uint32(NA_MAP_WYVERN_NORTH_A), int32((m_WyvernStateNorth & WYVERN_ALLIANCE) != 0));
-
- packet.Worldstates.emplace_back(uint32(NA_MAP_WYVERN_SOUTH_NEU_H), int32((m_WyvernStateSouth & WYVERN_NEU_HORDE) != 0));
- packet.Worldstates.emplace_back(uint32(NA_MAP_WYVERN_SOUTH_NEU_A), int32((m_WyvernStateSouth & WYVERN_NEU_ALLIANCE) != 0));
- packet.Worldstates.emplace_back(uint32(NA_MAP_WYVERN_SOUTH_H), int32((m_WyvernStateSouth & WYVERN_HORDE) != 0));
- packet.Worldstates.emplace_back(uint32(NA_MAP_WYVERN_SOUTH_A), int32((m_WyvernStateSouth & WYVERN_ALLIANCE) != 0));
-
- packet.Worldstates.emplace_back(uint32(NA_MAP_WYVERN_WEST_NEU_H), int32((m_WyvernStateWest & WYVERN_NEU_HORDE) != 0));
- packet.Worldstates.emplace_back(uint32(NA_MAP_WYVERN_WEST_NEU_A), int32((m_WyvernStateWest & WYVERN_NEU_ALLIANCE) != 0));
- packet.Worldstates.emplace_back(uint32(NA_MAP_WYVERN_WEST_H), int32((m_WyvernStateWest & WYVERN_HORDE) != 0));
- packet.Worldstates.emplace_back(uint32(NA_MAP_WYVERN_WEST_A), int32((m_WyvernStateWest & WYVERN_ALLIANCE) != 0));
-
- packet.Worldstates.emplace_back(uint32(NA_MAP_WYVERN_EAST_NEU_H), int32((m_WyvernStateEast & WYVERN_NEU_HORDE) != 0));
- packet.Worldstates.emplace_back(uint32(NA_MAP_WYVERN_EAST_NEU_A), int32((m_WyvernStateEast & WYVERN_NEU_ALLIANCE) != 0));
- packet.Worldstates.emplace_back(uint32(NA_MAP_WYVERN_EAST_H), int32((m_WyvernStateEast & WYVERN_HORDE) != 0));
- packet.Worldstates.emplace_back(uint32(NA_MAP_WYVERN_EAST_A), int32((m_WyvernStateEast & WYVERN_ALLIANCE) != 0));
-
- packet.Worldstates.emplace_back(uint32(NA_MAP_HALAA_NEUTRAL), int32((m_HalaaState & HALAA_N) != 0));
- packet.Worldstates.emplace_back(uint32(NA_MAP_HALAA_NEU_A), int32((m_HalaaState & HALAA_N_A) != 0));
- packet.Worldstates.emplace_back(uint32(NA_MAP_HALAA_NEU_H), int32((m_HalaaState & HALAA_N_H) != 0));
- packet.Worldstates.emplace_back(uint32(NA_MAP_HALAA_HORDE), int32((m_HalaaState & HALAA_H) != 0));
- packet.Worldstates.emplace_back(uint32(NA_MAP_HALAA_ALLIANCE), int32((m_HalaaState & HALAA_A) != 0));
+ packet.Worldstates.emplace_back(NA_UI_GUARDS_MAX, NA_GUARDS_MAX);
+ packet.Worldstates.emplace_back(NA_UI_GUARDS_LEFT, m_GuardsAlive);
+ packet.Worldstates.emplace_back(NA_MAP_WYVERN_NORTH_NEU_H, (m_WyvernStateNorth & WYVERN_NEU_HORDE) != 0 ? 1 : 0);
+ packet.Worldstates.emplace_back(NA_MAP_WYVERN_NORTH_NEU_A, (m_WyvernStateNorth & WYVERN_NEU_ALLIANCE) != 0 ? 1 : 0);
+ packet.Worldstates.emplace_back(NA_MAP_WYVERN_NORTH_H, (m_WyvernStateNorth & WYVERN_HORDE) != 0 ? 1 : 0);
+ packet.Worldstates.emplace_back(NA_MAP_WYVERN_NORTH_A, (m_WyvernStateNorth & WYVERN_ALLIANCE) != 0 ? 1 : 0);
+ packet.Worldstates.emplace_back(NA_MAP_WYVERN_SOUTH_NEU_H, (m_WyvernStateSouth & WYVERN_NEU_HORDE) != 0 ? 1 : 0);
+ packet.Worldstates.emplace_back(NA_MAP_WYVERN_SOUTH_NEU_A, (m_WyvernStateSouth & WYVERN_NEU_ALLIANCE) != 0 ? 1 : 0);
+ packet.Worldstates.emplace_back(NA_MAP_WYVERN_SOUTH_H, (m_WyvernStateSouth & WYVERN_HORDE) != 0 ? 1 : 0);
+ packet.Worldstates.emplace_back(NA_MAP_WYVERN_SOUTH_A, (m_WyvernStateSouth & WYVERN_ALLIANCE) != 0 ? 1 : 0);
+ packet.Worldstates.emplace_back(NA_MAP_WYVERN_WEST_NEU_H, (m_WyvernStateWest & WYVERN_NEU_HORDE) != 0 ? 1 : 0);
+ packet.Worldstates.emplace_back(NA_MAP_WYVERN_WEST_NEU_A, (m_WyvernStateWest & WYVERN_NEU_ALLIANCE) != 0 ? 1 : 0);
+ packet.Worldstates.emplace_back(NA_MAP_WYVERN_WEST_H, (m_WyvernStateWest & WYVERN_HORDE) != 0 ? 1 : 0);
+ packet.Worldstates.emplace_back(NA_MAP_WYVERN_WEST_A, (m_WyvernStateWest & WYVERN_ALLIANCE) != 0 ? 1 : 0);
+ packet.Worldstates.emplace_back(NA_MAP_WYVERN_EAST_NEU_H, (m_WyvernStateEast & WYVERN_NEU_HORDE) != 0 ? 1 : 0);
+ packet.Worldstates.emplace_back(NA_MAP_WYVERN_EAST_NEU_A, (m_WyvernStateEast & WYVERN_NEU_ALLIANCE) != 0 ? 1 : 0);
+ packet.Worldstates.emplace_back(NA_MAP_WYVERN_EAST_H, (m_WyvernStateEast & WYVERN_HORDE) != 0 ? 1 : 0);
+ packet.Worldstates.emplace_back(NA_MAP_WYVERN_EAST_A, (m_WyvernStateEast & WYVERN_ALLIANCE) != 0 ? 1 : 0);
+ packet.Worldstates.emplace_back(NA_MAP_HALAA_NEUTRAL, (m_HalaaState & HALAA_N) != 0 ? 1 : 0);
+ packet.Worldstates.emplace_back(NA_MAP_HALAA_NEU_A, (m_HalaaState & HALAA_N_A) != 0 ? 1 : 0);
+ packet.Worldstates.emplace_back(NA_MAP_HALAA_NEU_H, (m_HalaaState & HALAA_N_H) != 0 ? 1 : 0);
+ packet.Worldstates.emplace_back(NA_MAP_HALAA_HORDE, (m_HalaaState & HALAA_H) != 0 ? 1 : 0);
+ packet.Worldstates.emplace_back(NA_MAP_HALAA_ALLIANCE, (m_HalaaState & HALAA_A) != 0 ? 1 : 0);
}
void OutdoorPvPNA::SendRemoveWorldStates(Player* player)
diff --git a/src/server/scripts/OutdoorPvP/OutdoorPvPNA.h b/src/server/scripts/OutdoorPvP/OutdoorPvPNA.h
index 3769bb5f850..593d5c9d730 100644
--- a/src/server/scripts/OutdoorPvP/OutdoorPvPNA.h
+++ b/src/server/scripts/OutdoorPvP/OutdoorPvPNA.h
@@ -148,7 +148,6 @@ enum HalaaStates
class Unit;
class Creature;
-class OutdoorPvPNA;
class OPvPCapturePointNA : public OPvPCapturePoint
{
@@ -156,47 +155,31 @@ class OPvPCapturePointNA : public OPvPCapturePoint
OPvPCapturePointNA(OutdoorPvP* pvp);
bool Update(uint32 diff) override;
-
void ChangeState() override;
-
void FillInitialWorldStates(WorldPackets::WorldState::InitWorldStates& packet) override;
-
bool HandleCustomSpell(Player* player, uint32 spellId, GameObject* go) override;
-
int32 HandleOpenGo(Player* player, GameObject* go) override;
uint32 GetAliveGuardsCount();
uint32 GetControllingFaction() const;
-
- protected:
- // called when a faction takes control
- void FactionTakeOver(uint32 team);
-
+ void FactionTakeOver(uint32 team); // called when a faction takes control
void DeSpawnNPCs();
void DeSpawnGOs();
-
void SpawnNPCsForTeam(uint32 team);
void SpawnGOsForTeam(uint32 team);
-
void UpdateWyvernRoostWorldState(uint32 roost);
void UpdateHalaaWorldState();
private:
bool m_capturable;
-
uint32 m_GuardsAlive;
-
uint32 m_ControllingFaction;
-
uint32 m_WyvernStateNorth;
uint32 m_WyvernStateSouth;
uint32 m_WyvernStateEast;
uint32 m_WyvernStateWest;
-
uint32 m_HalaaState;
-
uint32 m_RespawnTimer;
-
uint32 m_GuardCheckTimer;
};
@@ -206,20 +189,15 @@ class OutdoorPvPNA : public OutdoorPvP
OutdoorPvPNA();
bool SetupOutdoorPvP() override;
-
void HandlePlayerEnterZone(Player* player, uint32 zone) override;
void HandlePlayerLeaveZone(Player* player, uint32 zone) override;
-
bool Update(uint32 diff) override;
-
void FillInitialWorldStates(WorldPackets::WorldState::InitWorldStates& packet) override;
-
void SendRemoveWorldStates(Player* player) override;
-
void HandleKillImpl(Player* player, Unit* killed) override;
private:
- OPvPCapturePointNA * m_obj;
+ OPvPCapturePointNA* m_obj;
};
#endif
diff --git a/src/server/scripts/OutdoorPvP/OutdoorPvPSI.cpp b/src/server/scripts/OutdoorPvP/OutdoorPvPSI.cpp
index 56957a53e9a..304088585cb 100644
--- a/src/server/scripts/OutdoorPvP/OutdoorPvPSI.cpp
+++ b/src/server/scripts/OutdoorPvP/OutdoorPvPSI.cpp
@@ -15,29 +15,25 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#include "ScriptMgr.h"
+#include "OutdoorPvPSI.h"
#include "DB2Stores.h"
#include "GameObject.h"
#include "Language.h"
#include "Map.h"
#include "ObjectMgr.h"
-#include "OutdoorPvPSI.h"
#include "PhasingHandler.h"
#include "Player.h"
#include "ReputationMgr.h"
+#include "ScriptMgr.h"
#include "World.h"
#include "WorldStatePackets.h"
uint32 const SI_MAX_RESOURCES = 200;
-
uint32 const SI_AREATRIGGER_H = 4168;
uint32 const SI_AREATRIGGER_A = 4162;
-
uint32 const SI_TURNIN_QUEST_CM_A = 17090;
uint32 const SI_TURNIN_QUEST_CM_H = 18199;
-
uint32 const SI_SILITHYST_MOUND = 181597;
-
uint8 const OutdoorPvPSIBuffZonesNum = 3;
uint32 const OutdoorPvPSIBuffZones[OutdoorPvPSIBuffZonesNum] = { 1377, 3428, 3429 };
@@ -51,9 +47,9 @@ OutdoorPvPSI::OutdoorPvPSI()
void OutdoorPvPSI::FillInitialWorldStates(WorldPackets::WorldState::InitWorldStates& packet)
{
- packet.Worldstates.emplace_back(uint32(SI_GATHERED_A), int32(m_Gathered_A));
- packet.Worldstates.emplace_back(uint32(SI_GATHERED_H), int32(m_Gathered_H));
- packet.Worldstates.emplace_back(uint32(SI_SILITHYST_MAX), int32(SI_MAX_RESOURCES));
+ packet.Worldstates.emplace_back(SI_GATHERED_A, m_Gathered_A);
+ packet.Worldstates.emplace_back(SI_GATHERED_H, m_Gathered_H);
+ packet.Worldstates.emplace_back(SI_SILITHYST_MAX, SI_MAX_RESOURCES);
}
void OutdoorPvPSI::SendRemoveWorldStates(Player* player)
diff --git a/src/server/scripts/OutdoorPvP/OutdoorPvPSI.h b/src/server/scripts/OutdoorPvP/OutdoorPvPSI.h
index e3b72535123..3f21b407086 100644
--- a/src/server/scripts/OutdoorPvP/OutdoorPvPSI.h
+++ b/src/server/scripts/OutdoorPvP/OutdoorPvPSI.h
@@ -41,28 +41,19 @@ class OutdoorPvPSI : public OutdoorPvP
OutdoorPvPSI();
bool SetupOutdoorPvP() override;
-
void HandlePlayerEnterZone(Player* player, uint32 zone) override;
void HandlePlayerLeaveZone(Player* player, uint32 zone) override;
-
bool Update(uint32 diff) override;
-
void FillInitialWorldStates(WorldPackets::WorldState::InitWorldStates& packet) override;
-
void SendRemoveWorldStates(Player* player) override;
-
bool HandleAreaTrigger(Player* player, uint32 trigger, bool entered) override;
-
bool HandleDropFlag(Player* player, uint32 spellId) override;
-
bool HandleCustomSpell(Player* player, uint32 spellId, GameObject* go) override;
-
void UpdateWorldState();
private:
uint32 m_Gathered_A;
uint32 m_Gathered_H;
-
uint32 m_LastController;
};
diff --git a/src/server/scripts/OutdoorPvP/OutdoorPvPTF.cpp b/src/server/scripts/OutdoorPvP/OutdoorPvPTF.cpp
index 639ab1cd704..b99aa96816f 100644
--- a/src/server/scripts/OutdoorPvP/OutdoorPvPTF.cpp
+++ b/src/server/scripts/OutdoorPvP/OutdoorPvPTF.cpp
@@ -15,12 +15,12 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#include "ScriptMgr.h"
#include "GameObject.h"
#include "Map.h"
#include "ObjectAccessor.h"
#include "OutdoorPvPTF.h"
#include "Player.h"
+#include "ScriptMgr.h"
#include "WorldStatePackets.h"
uint8 const OutdoorPvPTFBuffZonesNum = 5;
@@ -93,44 +93,39 @@ uint32 const TFTowerPlayerLeaveEvents[TF_TOWER_NUM] =
OutdoorPvPTF::OutdoorPvPTF()
{
m_TypeId = OUTDOOR_PVP_TF;
-
m_IsLocked = false;
m_LockTimer = TF_LOCK_TIME;
m_LockTimerUpdate = 0;
-
m_AllianceTowersControlled = 0;
m_HordeTowersControlled = 0;
-
hours_left = 6;
second_digit = 0;
first_digit = 0;
}
-OPvPCapturePointTF::OPvPCapturePointTF(OutdoorPvP* pvp, OutdoorPvPTF_TowerType type)
-: OPvPCapturePoint(pvp), m_TowerType(type), m_TowerState(TF_TOWERSTATE_N)
+OPvPCapturePointTF::OPvPCapturePointTF(OutdoorPvP* pvp, OutdoorPvPTF_TowerType type) : OPvPCapturePoint(pvp), m_TowerType(type), m_TowerState(TF_TOWERSTATE_N)
{
SetCapturePointData(TFCapturePoints[type].entry, TFCapturePoints[type].map, TFCapturePoints[type].pos, TFCapturePoints[type].rot);
}
void OPvPCapturePointTF::FillInitialWorldStates(WorldPackets::WorldState::InitWorldStates& packet)
{
- packet.Worldstates.emplace_back(uint32(TFTowerWorldStates[m_TowerType].n), int32((m_TowerState & TF_TOWERSTATE_N) != 0));
- packet.Worldstates.emplace_back(uint32(TFTowerWorldStates[m_TowerType].h), int32((m_TowerState & TF_TOWERSTATE_H) != 0));
- packet.Worldstates.emplace_back(uint32(TFTowerWorldStates[m_TowerType].a), int32((m_TowerState & TF_TOWERSTATE_A) != 0));
+ packet.Worldstates.emplace_back(TFTowerWorldStates[m_TowerType].n, (m_TowerState & TF_TOWERSTATE_N) != 0 ? 1 : 0);
+ packet.Worldstates.emplace_back(TFTowerWorldStates[m_TowerType].h, (m_TowerState & TF_TOWERSTATE_H) != 0 ? 1 : 0);
+ packet.Worldstates.emplace_back(TFTowerWorldStates[m_TowerType].a, (m_TowerState & TF_TOWERSTATE_A) != 0 ? 1 : 0);
}
void OutdoorPvPTF::FillInitialWorldStates(WorldPackets::WorldState::InitWorldStates& packet)
{
- packet.Worldstates.emplace_back(uint32(TF_UI_TOWER_COUNT_H), int32(m_HordeTowersControlled));
- packet.Worldstates.emplace_back(uint32(TF_UI_TOWER_COUNT_A), int32(m_AllianceTowersControlled));
- packet.Worldstates.emplace_back(uint32(TF_UI_TOWERS_CONTROLLED_DISPLAY), int32(!m_IsLocked));
- packet.Worldstates.emplace_back(uint32(TF_UI_LOCKED_TIME_MINUTES_FIRST_DIGIT), int32(first_digit));
- packet.Worldstates.emplace_back(uint32(TF_UI_LOCKED_TIME_MINUTES_SECOND_DIGIT), int32(second_digit));
- packet.Worldstates.emplace_back(uint32(TF_UI_LOCKED_TIME_HOURS), int32(hours_left));
-
- packet.Worldstates.emplace_back(uint32(TF_UI_LOCKED_DISPLAY_NEUTRAL), int32(m_IsLocked && !m_HordeTowersControlled && !m_AllianceTowersControlled));
- packet.Worldstates.emplace_back(uint32(TF_UI_LOCKED_DISPLAY_HORDE), int32(m_IsLocked && (m_HordeTowersControlled > m_AllianceTowersControlled)));
- packet.Worldstates.emplace_back(uint32(TF_UI_LOCKED_DISPLAY_ALLIANCE), int32(m_IsLocked && (m_HordeTowersControlled < m_AllianceTowersControlled)));
+ packet.Worldstates.emplace_back(TF_UI_TOWER_COUNT_H, m_HordeTowersControlled);
+ packet.Worldstates.emplace_back(TF_UI_TOWER_COUNT_A, m_AllianceTowersControlled);
+ packet.Worldstates.emplace_back(TF_UI_TOWERS_CONTROLLED_DISPLAY, !m_IsLocked);
+ packet.Worldstates.emplace_back(TF_UI_LOCKED_TIME_MINUTES_FIRST_DIGIT, first_digit);
+ packet.Worldstates.emplace_back(TF_UI_LOCKED_TIME_MINUTES_SECOND_DIGIT, second_digit);
+ packet.Worldstates.emplace_back(TF_UI_LOCKED_TIME_HOURS, hours_left);
+ packet.Worldstates.emplace_back(TF_UI_LOCKED_DISPLAY_NEUTRAL, (m_IsLocked && !m_HordeTowersControlled && !m_AllianceTowersControlled) ? 1 : 0);
+ packet.Worldstates.emplace_back(TF_UI_LOCKED_DISPLAY_HORDE, (m_IsLocked && (m_HordeTowersControlled > m_AllianceTowersControlled)) ? 1 : 0);
+ packet.Worldstates.emplace_back(TF_UI_LOCKED_DISPLAY_ALLIANCE, (m_IsLocked && (m_HordeTowersControlled < m_AllianceTowersControlled)) ? 1 : 0);
for (OPvPCapturePointMap::iterator itr = m_capturePoints.begin(); itr != m_capturePoints.end(); ++itr)
itr->second->FillInitialWorldStates(packet);
diff --git a/src/server/scripts/OutdoorPvP/OutdoorPvPTF.h b/src/server/scripts/OutdoorPvP/OutdoorPvPTF.h
index 22865c5a8b0..d7c384627d1 100644
--- a/src/server/scripts/OutdoorPvP/OutdoorPvPTF.h
+++ b/src/server/scripts/OutdoorPvP/OutdoorPvPTF.h
@@ -67,16 +67,13 @@ class OPvPCapturePointTF : public OPvPCapturePoint
OPvPCapturePointTF(OutdoorPvP* pvp, OutdoorPvPTF_TowerType type);
bool Update(uint32 diff) override;
-
void ChangeState() override;
-
void FillInitialWorldStates(WorldPackets::WorldState::InitWorldStates& packet) override;
void UpdateTowerState();
protected:
OutdoorPvPTF_TowerType m_TowerType;
-
uint32 m_TowerState;
};
@@ -86,32 +83,24 @@ class OutdoorPvPTF : public OutdoorPvP
OutdoorPvPTF();
bool SetupOutdoorPvP() override;
-
void HandlePlayerEnterZone(Player* player, uint32 zone) override;
void HandlePlayerLeaveZone(Player* player, uint32 zone) override;
-
bool Update(uint32 diff) override;
-
void FillInitialWorldStates(WorldPackets::WorldState::InitWorldStates& packet) override;
-
void SendRemoveWorldStates(Player* player) override;
uint32 GetAllianceTowersControlled() const;
void SetAllianceTowersControlled(uint32 count);
-
uint32 GetHordeTowersControlled() const;
void SetHordeTowersControlled(uint32 count);
-
bool IsLocked() const;
private:
bool m_IsLocked;
uint32 m_LockTimer;
uint32 m_LockTimerUpdate;
-
uint32 m_AllianceTowersControlled;
uint32 m_HordeTowersControlled;
-
uint32 hours_left, second_digit, first_digit;
};
diff --git a/src/server/scripts/OutdoorPvP/OutdoorPvPZM.cpp b/src/server/scripts/OutdoorPvP/OutdoorPvPZM.cpp
index c181fd53902..5c60a49e569 100644
--- a/src/server/scripts/OutdoorPvP/OutdoorPvPZM.cpp
+++ b/src/server/scripts/OutdoorPvP/OutdoorPvPZM.cpp
@@ -15,13 +15,14 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#include "ScriptMgr.h"
+#include "OutdoorPvPZM.h"
#include "Creature.h"
#include "GossipDef.h"
+#include "MapManager.h"
#include "ObjectAccessor.h"
#include "ObjectMgr.h"
-#include "OutdoorPvPZM.h"
#include "Player.h"
+#include "ScriptMgr.h"
#include "WorldStatePackets.h"
uint8 const OutdoorPvPZMBuffZonesNum = 5;
@@ -83,20 +84,19 @@ go_type const ZMCapturePoints[ZM_NUM_BEACONS] =
{ 182522, 530, { 336.466f, 7340.26f, 41.4984f, -1.58825f }, { 0.0f, 0.0f, 0.71325f, -0.700909f } }
};
-OPvPCapturePointZM_Beacon::OPvPCapturePointZM_Beacon(OutdoorPvP* pvp, ZM_BeaconType type)
-: OPvPCapturePoint(pvp), m_TowerType(type), m_TowerState(ZM_TOWERSTATE_N)
+OPvPCapturePointZM_Beacon::OPvPCapturePointZM_Beacon(OutdoorPvP* pvp, ZM_BeaconType type) : OPvPCapturePoint(pvp), m_TowerType(type), m_TowerState(ZM_TOWERSTATE_N)
{
SetCapturePointData(ZMCapturePoints[type].entry, ZMCapturePoints[type].map, ZMCapturePoints[type].pos, ZMCapturePoints[type].rot);
}
void OPvPCapturePointZM_Beacon::FillInitialWorldStates(WorldPackets::WorldState::InitWorldStates& packet)
{
- packet.Worldstates.emplace_back(ZMBeaconInfo[m_TowerType].ui_tower_n, (m_TowerState & ZM_TOWERSTATE_N) != 0);
- packet.Worldstates.emplace_back(ZMBeaconInfo[m_TowerType].map_tower_n, (m_TowerState & ZM_TOWERSTATE_N) != 0);
- packet.Worldstates.emplace_back(ZMBeaconInfo[m_TowerType].ui_tower_a, (m_TowerState & ZM_TOWERSTATE_A) != 0);
- packet.Worldstates.emplace_back(ZMBeaconInfo[m_TowerType].map_tower_a, 0);
- packet.Worldstates.emplace_back(ZMBeaconInfo[m_TowerType].ui_tower_h, (m_TowerState & ZM_TOWERSTATE_H) != 0);
- packet.Worldstates.emplace_back(ZMBeaconInfo[m_TowerType].map_tower_h, (m_TowerState & ZM_TOWERSTATE_H) != 0);
+ packet.Worldstates.emplace_back(ZMBeaconInfo[m_TowerType].ui_tower_n, (m_TowerState & ZM_TOWERSTATE_N) != 0 ? 1 : 0);
+ packet.Worldstates.emplace_back(ZMBeaconInfo[m_TowerType].map_tower_n, (m_TowerState & ZM_TOWERSTATE_N) != 0 ? 1 : 0);
+ packet.Worldstates.emplace_back(ZMBeaconInfo[m_TowerType].ui_tower_a, (m_TowerState & ZM_TOWERSTATE_A) != 0 ? 1 : 0);
+ packet.Worldstates.emplace_back(ZMBeaconInfo[m_TowerType].map_tower_a, (m_TowerState & ZM_TOWERSTATE_A) != 0 ? 1 : 0);
+ packet.Worldstates.emplace_back(ZMBeaconInfo[m_TowerType].ui_tower_h, (m_TowerState & ZM_TOWERSTATE_H) != 0 ? 1 : 0);
+ packet.Worldstates.emplace_back(ZMBeaconInfo[m_TowerType].map_tower_h, (m_TowerState & ZM_TOWERSTATE_H) != 0 ? 1 : 0);
}
void OPvPCapturePointZM_Beacon::UpdateTowerState()
@@ -273,8 +273,7 @@ int32 OPvPCapturePointZM_Graveyard::HandleOpenGo(Player* player, GameObject* go)
return retval;
}
-OPvPCapturePointZM_Graveyard::OPvPCapturePointZM_Graveyard(OutdoorPvP* pvp)
-: OPvPCapturePoint(pvp)
+OPvPCapturePointZM_Graveyard::OPvPCapturePointZM_Graveyard(OutdoorPvP* pvp) : OPvPCapturePoint(pvp)
{
m_BothControllingFaction = 0;
m_GraveyardState = ZM_GRAVEYARD_N;
@@ -300,14 +299,13 @@ void OPvPCapturePointZM_Graveyard::UpdateTowerState()
void OPvPCapturePointZM_Graveyard::FillInitialWorldStates(WorldPackets::WorldState::InitWorldStates& packet)
{
- packet.Worldstates.emplace_back(uint32(ZM_MAP_GRAVEYARD_N), int32((m_GraveyardState & ZM_GRAVEYARD_N) != 0));
- packet.Worldstates.emplace_back(uint32(ZM_MAP_GRAVEYARD_H), int32((m_GraveyardState & ZM_GRAVEYARD_H) != 0));
- packet.Worldstates.emplace_back(uint32(ZM_MAP_GRAVEYARD_A), int32((m_GraveyardState & ZM_GRAVEYARD_A) != 0));
-
- packet.Worldstates.emplace_back(uint32(ZM_MAP_ALLIANCE_FLAG_READY), int32(m_BothControllingFaction == ALLIANCE));
- packet.Worldstates.emplace_back(uint32(ZM_MAP_ALLIANCE_FLAG_NOT_READY), int32(m_BothControllingFaction != ALLIANCE));
- packet.Worldstates.emplace_back(uint32(ZM_MAP_HORDE_FLAG_READY), int32(m_BothControllingFaction == HORDE));
- packet.Worldstates.emplace_back(uint32(ZM_MAP_HORDE_FLAG_NOT_READY), int32(m_BothControllingFaction != HORDE));
+ packet.Worldstates.emplace_back(ZM_MAP_GRAVEYARD_N, (m_GraveyardState & ZM_GRAVEYARD_N) != 0 ? 1 : 0);
+ packet.Worldstates.emplace_back(ZM_MAP_GRAVEYARD_H, (m_GraveyardState & ZM_GRAVEYARD_H) != 0 ? 1 : 0);
+ packet.Worldstates.emplace_back(ZM_MAP_GRAVEYARD_A, (m_GraveyardState & ZM_GRAVEYARD_A) != 0 ? 1 : 0);
+ packet.Worldstates.emplace_back(ZM_MAP_ALLIANCE_FLAG_READY, m_BothControllingFaction == ALLIANCE ? 1 : 0);
+ packet.Worldstates.emplace_back(ZM_MAP_ALLIANCE_FLAG_NOT_READY, m_BothControllingFaction != ALLIANCE ? 1 : 0);
+ packet.Worldstates.emplace_back(ZM_MAP_HORDE_FLAG_READY, m_BothControllingFaction == HORDE ? 1 : 0);
+ packet.Worldstates.emplace_back(ZM_MAP_HORDE_FLAG_NOT_READY, m_BothControllingFaction != HORDE ? 1 : 0);
}
void OPvPCapturePointZM_Graveyard::SetBeaconState(uint32 controlling_faction)
@@ -434,7 +432,8 @@ void OutdoorPvPZM::SetHordeTowersControlled(uint32 count)
void OutdoorPvPZM::FillInitialWorldStates(WorldPackets::WorldState::InitWorldStates& packet)
{
- packet.Worldstates.emplace_back(uint32(ZM_WORLDSTATE_UNK_1), 1);
+ packet.Worldstates.emplace_back(ZM_WORLDSTATE_UNK_1, 1);
+
for (OPvPCapturePointMap::iterator itr = m_capturePoints.begin(); itr != m_capturePoints.end(); ++itr)
itr->second->FillInitialWorldStates(packet);
}
diff --git a/src/server/scripts/OutdoorPvP/OutdoorPvPZM.h b/src/server/scripts/OutdoorPvP/OutdoorPvPZM.h
index 0b6e144af2a..db7c455b532 100644
--- a/src/server/scripts/OutdoorPvP/OutdoorPvPZM.h
+++ b/src/server/scripts/OutdoorPvP/OutdoorPvPZM.h
@@ -96,15 +96,12 @@ enum ZM_TowerStateMask
ZM_TOWERSTATE_H = 4
};
-class OutdoorPvPZM;
-
class OPvPCapturePointZM_Beacon : public OPvPCapturePoint
{
public:
OPvPCapturePointZM_Beacon(OutdoorPvP* pvp, ZM_BeaconType type);
void ChangeState() override;
-
void FillInitialWorldStates(WorldPackets::WorldState::InitWorldStates& packet) override;
void UpdateTowerState();
@@ -127,64 +124,46 @@ class OPvPCapturePointZM_Graveyard : public OPvPCapturePoint
OPvPCapturePointZM_Graveyard(OutdoorPvP* pvp);
bool Update(uint32 diff) override;
-
void ChangeState() override { }
-
void FillInitialWorldStates(WorldPackets::WorldState::InitWorldStates& packet) override;
-
- void UpdateTowerState();
-
int32 HandleOpenGo(Player* player, GameObject* go) override;
-
- void SetBeaconState(uint32 controlling_team); // not good atm
-
bool HandleGossipOption(Player* player, Creature* creature, uint32 gossipid) override;
-
bool HandleDropFlag(Player* player, uint32 spellId) override;
-
bool CanTalkTo(Player* player, Creature* creature, GossipMenuItems const& gso) override;
+ void UpdateTowerState();
+ void SetBeaconState(uint32 controlling_team); // not good atm
uint32 GetGraveyardState() const;
- private:
- uint32 m_GraveyardState;
-
protected:
uint32 m_BothControllingFaction;
-
ObjectGuid m_FlagCarrierGUID;
+ uint32 m_GraveyardState;
};
+/// @todo flag carrier death/leave/mount/activitychange should give back the gossip options
class OutdoorPvPZM : public OutdoorPvP
{
public:
OutdoorPvPZM();
bool SetupOutdoorPvP() override;
-
void HandlePlayerEnterZone(Player* player, uint32 zone) override;
void HandlePlayerLeaveZone(Player* player, uint32 zone) override;
-
bool Update(uint32 diff) override;
-
void FillInitialWorldStates(WorldPackets::WorldState::InitWorldStates& packet) override;
-
void SendRemoveWorldStates(Player* player) override;
-
void HandleKillImpl(Player* player, Unit* killed) override;
uint32 GetAllianceTowersControlled() const;
void SetAllianceTowersControlled(uint32 count);
-
uint32 GetHordeTowersControlled() const;
void SetHordeTowersControlled(uint32 count);
private:
- OPvPCapturePointZM_Graveyard * m_Graveyard;
-
+ OPvPCapturePointZM_Graveyard* m_Graveyard;
uint32 m_AllianceTowersControlled;
uint32 m_HordeTowersControlled;
};
-/// @todo flag carrier death/leave/mount/activitychange should give back the gossip options
#endif