TrinityCore
Loading...
Searching...
No Matches
OutdoorPvPEP.cpp
Go to the documentation of this file.
1/*
2 * This file is part of the TrinityCore Project. See AUTHORS file for Copyright information
3 *
4 * This program is free software; you can redistribute it and/or modify it
5 * under the terms of the GNU General Public License as published by the
6 * Free Software Foundation; either version 2 of the License, or (at your
7 * option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
12 * more details.
13 *
14 * You should have received a copy of the GNU General Public License along
15 * with this program. If not, see <http://www.gnu.org/licenses/>.
16 */
17
18#include "OutdoorPvPEP.h"
19#include "Creature.h"
20#include "GameObject.h"
21#include "GossipDef.h"
22#include "MapManager.h"
23#include "ObjectAccessor.h"
24#include "ObjectMgr.h"
25#include "OutdoorPvPMgr.h"
26#include "ScriptMgr.h"
27#include "Player.h"
28#include "WorldStatePackets.h"
29
30uint32 const EP_AllianceBuffs[4] = { 11413, 11414, 11415, 1386 };
31uint32 const EP_HordeBuffs[4] = { 30880, 30683, 30682, 29520 };
35uint32 const EP_EWT_CM = 17690;
36uint32 const EP_CGT_CM = 17689;
37uint32 const EP_NPT_CM = 17696;
38uint32 const EP_PWT_CM = 17698;
39uint32 const EPBuffZones[EPBuffZonesNum] = { 139, 2017, 2057 };
40//uint32 const EPTowerPlayerEnterEvents[EP_TOWER_NUM] = { 10691, 10699, 10701, 10705 };
41//uint32 const EPTowerPlayerLeaveEvents[EP_TOWER_NUM] = { 10692, 10698, 10700, 10704 };
42
44{
45 { 182097, 0, { 2574.51f, -4794.89f, 144.704f, -1.45003f }, { -0.097056f, 0.095578f, -0.656229f, 0.742165f } },
46 { 181899, 0, { 3181.08f, -4379.36f, 174.123f, -2.03472f }, { -0.065392f, 0.119494f, -0.842275f, 0.521553f } },
47 { 182098, 0, { 2962.71f, -3042.31f, 154.789f, 2.08426f }, { -0.074807f, -0.113837f, 0.855928f, 0.498830f } },
48 { 182096, 0, { 1860.85f, -3731.23f, 196.716f, -2.53214f }, { 0.033967f, -0.131914f, 0.944741f, -0.298177f } }
49};
50
52{
53 { 182106, 0, { 2569.60f, -4772.93f, 115.399f, 2.722710f }, { 0.0f, 0.0f, 0.978148f, 0.207912f } },
54 { 182106, 0, { 3148.17f, -4365.51f, 145.029f, 1.535890f }, { 0.0f, 0.0f, 0.694658f, 0.719340f } },
55 { 182106, 0, { 2992.63f, -3022.95f, 125.593f, 3.036870f }, { 0.0f, 0.0f, 0.998630f, 0.052336f } },
56 { 182106, 0, { 1838.42f, -3703.56f, 167.713f, 0.890118f }, { 0.0f, 0.0f, 0.430511f, 0.902585f } }
57};
58
59// uint8 const EP_NUM_CREATURES = 6;
61
62// one lordaeron commander, 4 soldiers
63// should be spawned at EWT and follow a path, but trans-grid pathing isn't safe, so summon them directly at NPT
65{
66 { 17635, 0, { 3167.61f, -4352.09f, 138.20f, 4.5811f } },
67 { 17647, 0, { 3172.74f, -4352.99f, 139.14f, 4.9873f } },
68 { 17647, 0, { 3165.89f, -4354.46f, 138.67f, 3.7244f } },
69 { 17647, 0, { 3164.65f, -4350.26f, 138.22f, 2.4794f } },
70 { 17647, 0, { 3169.91f, -4349.68f, 138.37f, 0.7444f } }
71};
72
74{
75 { 17995, 0, { 3167.61f, -4352.09f, 138.20f, 4.5811f } },
76 { 17996, 0, { 3172.74f, -4352.99f, 139.14f, 4.9873f } },
77 { 17996, 0, { 3165.89f, -4354.46f, 138.67f, 3.7244f } },
78 { 17996, 0, { 3164.65f, -4350.26f, 138.22f, 2.4794f } },
79 { 17996, 0, { 3169.91f, -4349.68f, 138.37f, 0.7444f } }
80};
81
82// when spawning, pay attention at setting the faction manually!
83creature_type const EP_PWT_FlightMaster = { 17209, 0, { 2987.5f, -3049.11f, 120.126f, 5.75959f } };
84
85// after spawning, modify the faction so that only the controller will be able to use it with SetUInt32Value(GAMEOBJECT_FACTION, faction_id);
86go_type const EP_NPT_LordaeronShrine = { 181682, 0, { 3167.72f, -4355.91f, 138.785f, 1.69297f }, { 0.0f, 0.0f, 0.748956f, 0.66262f } };
87
93
95{
96 // if changing from controlling alliance to horde or vice versa
98 ((OutdoorPvPEP*)m_PvP)->SetControlledState(EP_EWT, 0);
99
100 uint32 artkit = 21;
101
102 switch (m_State)
103 {
106 artkit = 2;
108 ((OutdoorPvPEP*)m_PvP)->SetControlledState(EP_EWT, ALLIANCE);
110 break;
113 artkit = 1;
115 ((OutdoorPvPEP*)m_PvP)->SetControlledState(EP_EWT, HORDE);
117 break;
120 break;
124 break;
128 break;
129 }
130
131 Map* map = sMapMgr->FindMap(0, 0);
132 auto bounds = map->GetGameObjectBySpawnIdStore().equal_range(m_capturePointSpawnId);
133 for (auto itr = bounds.first; itr != bounds.second; ++itr)
134 itr->second->SetGoArtKit(artkit);
135
136 bounds = map->GetGameObjectBySpawnIdStore().equal_range(m_Objects[EP_EWT_FLAGS]);
137 for (auto itr = bounds.first; itr != bounds.second; ++itr)
138 itr->second->SetGoArtKit(artkit);
139
141
142 // complete quest objective
145}
146
148{
149 packet.Worldstates.emplace_back(EP_EWT_A, (m_TowerState & EP_TS_A) != 0 ? 1 : 0);
150 packet.Worldstates.emplace_back(EP_EWT_H, (m_TowerState & EP_TS_H) != 0 ? 1 : 0);
151 packet.Worldstates.emplace_back(EP_EWT_N_A, (m_TowerState & EP_TS_N_A) != 0 ? 1 : 0);
152 packet.Worldstates.emplace_back(EP_EWT_N_H, (m_TowerState & EP_TS_N_H) != 0 ? 1 : 0);
153 packet.Worldstates.emplace_back(EP_EWT_N, (m_TowerState & EP_TS_N) != 0 ? 1 : 0);
154}
155
164
166{
167 if (m_UnitsSummonedSide != team)
168 {
169 m_UnitsSummonedSide = team;
170 creature_type const* ct = nullptr;
171 if (team == ALLIANCE)
172 ct = EP_EWT_Summons_A;
173 else
174 ct = EP_EWT_Summons_H;
175
176 for (uint8 i = 0; i < EP_EWT_NUM_CREATURES; ++i)
177 {
178 DelCreature(i);
179 AddCreature(i, ct[i].entry, ct[i].map, ct[i].pos, OutdoorPvP::GetTeamIdByTeam(team), 1000000);
180 }
181 }
182}
183
184// NPT
191
193{
194 // if changing from controlling alliance to horde or vice versa
196 ((OutdoorPvPEP*)m_PvP)->SetControlledState(EP_NPT, 0);
197
198 uint32 artkit = 21;
199
200 switch (m_State)
201 {
204 artkit = 2;
206 ((OutdoorPvPEP*)m_PvP)->SetControlledState(EP_NPT, ALLIANCE);
208 break;
211 artkit = 1;
213 ((OutdoorPvPEP*)m_PvP)->SetControlledState(EP_NPT, HORDE);
215 break;
220 break;
223 break;
228 break;
231 break;
236 break;
237 }
238
239 Map* map = sMapMgr->FindMap(0, 0);
240 auto bounds = map->GetGameObjectBySpawnIdStore().equal_range(m_capturePointSpawnId);
241 for (auto itr = bounds.first; itr != bounds.second; ++itr)
242 itr->second->SetGoArtKit(artkit);
243
244 bounds = map->GetGameObjectBySpawnIdStore().equal_range(m_Objects[EP_NPT_FLAGS]);
245 for (auto itr = bounds.first; itr != bounds.second; ++itr)
246 itr->second->SetGoArtKit(artkit);
247
249
250 // complete quest objective
253}
254
256{
257 packet.Worldstates.emplace_back(EP_NPT_A, (m_TowerState & EP_TS_A) != 0 ? 1 : 0);
258 packet.Worldstates.emplace_back(EP_NPT_H, (m_TowerState & EP_TS_H) != 0 ? 1 : 0);
259 packet.Worldstates.emplace_back(EP_NPT_N_A, (m_TowerState & EP_TS_N_A) != 0 ? 1 : 0);
260 packet.Worldstates.emplace_back(EP_NPT_N_H, (m_TowerState & EP_TS_N_H) != 0 ? 1 : 0);
261 packet.Worldstates.emplace_back(EP_NPT_N, (m_TowerState & EP_TS_N) != 0 ? 1 : 0);
262}
263
272
274{
275 if (m_SummonedGOSide != team)
276 {
277 m_SummonedGOSide = team;
280
281 Map* map = sMapMgr->FindMap(0, 0);
282 auto bounds = map->GetGameObjectBySpawnIdStore().equal_range(m_Objects[EP_NPT_BUFF]);
283 for (auto itr = bounds.first; itr != bounds.second; ++itr)
284 if (GameObject* go = itr->second)
285 go->SetFaction(team == ALLIANCE ? FACTION_ALLIANCE_GENERIC : FACTION_HORDE_GENERIC);
286 }
287}
288
289// CGT
296
298{
299 // if changing from controlling alliance to horde or vice versa
301 ((OutdoorPvPEP*)m_PvP)->SetControlledState(EP_CGT, 0);
302
303 uint32 artkit = 21;
304
305 switch (m_State)
306 {
309 artkit = 2;
311 ((OutdoorPvPEP*)m_PvP)->SetControlledState(EP_CGT, ALLIANCE);
313 break;
316 artkit = 1;
318 ((OutdoorPvPEP*)m_PvP)->SetControlledState(EP_CGT, HORDE);
320 break;
323 break;
327 break;
331 break;
332 }
333
334 Map* map = sMapMgr->FindMap(0, 0);
335 auto bounds = map->GetGameObjectBySpawnIdStore().equal_range(m_capturePointSpawnId);
336 for (auto itr = bounds.first; itr != bounds.second; ++itr)
337 itr->second->SetGoArtKit(artkit);
338
339 bounds = map->GetGameObjectBySpawnIdStore().equal_range(m_Objects[EP_CGT_FLAGS]);
340 for (auto itr = bounds.first; itr != bounds.second; ++itr)
341 itr->second->SetGoArtKit(artkit);
342
344
345 // complete quest objective
348}
349
351{
352 packet.Worldstates.emplace_back(EP_CGT_A, (m_TowerState & EP_TS_A) != 0 ? 1 : 0);
353 packet.Worldstates.emplace_back(EP_CGT_H, (m_TowerState & EP_TS_H) != 0 ? 1 : 0);
354 packet.Worldstates.emplace_back(EP_CGT_N_A, (m_TowerState & EP_TS_N_A) != 0 ? 1 : 0);
355 packet.Worldstates.emplace_back(EP_CGT_N_H, (m_TowerState & EP_TS_N_H) != 0 ? 1 : 0);
356 packet.Worldstates.emplace_back(EP_CGT_N, (m_TowerState & EP_TS_N) != 0 ? 1 : 0);
357}
358
367
369{
370 if (m_GraveyardSide != team)
371 {
372 m_GraveyardSide = team;
373 sObjectMgr->RemoveGraveyardLink(EP_GraveyardId, EP_GraveyardZone, team, false);
374 sObjectMgr->AddGraveyardLink(EP_GraveyardId, EP_GraveyardZone, team, false);
375 }
376}
377
378// PWT
385
387{
388 // if changing from controlling alliance to horde or vice versa
390 ((OutdoorPvPEP*)m_PvP)->SetControlledState(EP_PWT, 0);
391
392 uint32 artkit = 21;
393
394 switch (m_State)
395 {
399 artkit = 2;
400 ((OutdoorPvPEP*)m_PvP)->SetControlledState(EP_PWT, ALLIANCE);
402 break;
406 artkit = 1;
407 ((OutdoorPvPEP*)m_PvP)->SetControlledState(EP_PWT, HORDE);
409 break;
414 break;
417 break;
422 break;
425 break;
430 break;
431 }
432
433 Map* map = sMapMgr->FindMap(0, 0);
434 auto bounds = map->GetGameObjectBySpawnIdStore().equal_range(m_capturePointSpawnId);
435 for (auto itr = bounds.first; itr != bounds.second; ++itr)
436 itr->second->SetGoArtKit(artkit);
437
438 bounds = map->GetGameObjectBySpawnIdStore().equal_range(m_Objects[EP_PWT_FLAGS]);
439 for (auto itr = bounds.first; itr != bounds.second; ++itr)
440 itr->second->SetGoArtKit(artkit);
441
443
444 // complete quest objective
447}
448
450{
451 packet.Worldstates.emplace_back(EP_PWT_A, (m_TowerState & EP_TS_A) != 0 ? 1 : 0);
452 packet.Worldstates.emplace_back(EP_PWT_H, (m_TowerState & EP_TS_H) != 0 ? 1 : 0);
453 packet.Worldstates.emplace_back(EP_PWT_N_A, (m_TowerState & EP_TS_N_A) != 0 ? 1 : 0);
454 packet.Worldstates.emplace_back(EP_PWT_N_H, (m_TowerState & EP_TS_N_H) != 0 ? 1 : 0);
455 packet.Worldstates.emplace_back(EP_PWT_N, (m_TowerState & EP_TS_N) != 0 ? 1 : 0);
456}
457
466
468{
469 if (m_FlightMasterSpawned != team)
470 {
474 /*
475 // sky - we need update gso code
476
477 Creature* c = HashMapHolder<Creature>::Find(m_Creatures[EP_PWT_FLIGHTMASTER]);
478 //Spawn flight master as friendly to capturing team
479 c->SetUInt32Value(GAMEOBJECT_FACTION, (team == ALLIANCE ? 55 : 68));
480 if (c)
481 {
482 GossipOption gso;
483 gso.Action = GOSSIP_OPTION_OUTDOORPVP;
484 gso.GossipId = 0;
485 gso.OptionText.assign(sObjectMgr->GetTrinityStringForDBCLocale(LANG_OPVP_EP_FLIGHT_NPT));
486 gso.Id = 50;
487 gso.Icon = 0;
488 gso.NpcFlag = 0;
489 gso.BoxMoney = 0;
490 gso.Coded = false;
491 c->addGossipOption(gso);
492
493 gso.Action = GOSSIP_OPTION_OUTDOORPVP;
494 gso.GossipId = 0;
495 gso.OptionText.assign(sObjectMgr->GetTrinityStringForDBCLocale(LANG_OPVP_EP_FLIGHT_EWT));
496 gso.Id = 50;
497 gso.Icon = 0;
498 gso.NpcFlag = 0;
499 gso.BoxMoney = 0;
500 gso.Coded = false;
501 c->addGossipOption(gso);
502
503 gso.Action = GOSSIP_OPTION_OUTDOORPVP;
504 gso.GossipId = 0;
505 gso.OptionText.assign(sObjectMgr->GetTrinityStringForDBCLocale(LANG_OPVP_EP_FLIGHT_CGT));
506 gso.Id = 50;
507 gso.Icon = 0;
508 gso.NpcFlag = 0;
509 gso.BoxMoney = 0;
510 gso.Coded = false;
511 c->addGossipOption(gso);
512 }
513 */
514 }
515}
516
517// ep
525
538
540{
541 if (OutdoorPvP::Update(diff))
542 {
545 for (int i = 0; i < EP_TOWER_NUM; ++i)
546 {
547 if (EP_Controls[i] == ALLIANCE)
549 else if (EP_Controls[i] == HORDE)
553 BuffTeams();
554 }
555 return true;
556 }
557 return false;
558}
559
561{
562 // add buffs
563 if (player->GetTeam() == ALLIANCE)
564 {
566 player->CastSpell(player, EP_AllianceBuffs[m_AllianceTowersControlled-1], true);
567 }
568 else
569 {
571 player->CastSpell(player, EP_HordeBuffs[m_HordeTowersControlled-1], true);
572 }
574}
575
577{
578 // remove buffs
579 if (player->GetTeam() == ALLIANCE)
580 {
581 for (int i = 0; i < 4; ++i)
583 }
584 else
585 {
586 for (int i = 0; i < 4; ++i)
588 }
590}
591
593{
594 for (GuidSet::iterator itr = m_players[0].begin(); itr != m_players[0].end(); ++itr)
595 {
596 if (Player* player = ObjectAccessor::FindPlayer(*itr))
597 {
598 for (int i = 0; i < 4; ++i)
599 player->RemoveAurasDueToSpell(EP_AllianceBuffs[i]);
601 player->CastSpell(player, EP_AllianceBuffs[m_AllianceTowersControlled-1], true);
602 }
603 }
604 for (GuidSet::iterator itr = m_players[1].begin(); itr != m_players[1].end(); ++itr)
605 {
606 if (Player* player = ObjectAccessor::FindPlayer(*itr))
607 {
608 for (int i = 0; i < 4; ++i)
609 player->RemoveAurasDueToSpell(EP_HordeBuffs[i]);
611 player->CastSpell(player, EP_HordeBuffs[m_HordeTowersControlled-1], true);
612 }
613 }
614}
615
617{
618 EP_Controls[index] = state;
619}
620
622{
625
626 for (OPvPCapturePointMap::iterator itr = m_capturePoints.begin(); itr != m_capturePoints.end(); ++itr)
627 itr->second->FillInitialWorldStates(packet);
628}
629
659
661{
662 public:
664
665 OutdoorPvP* GetOutdoorPvP() const override
666 {
667 return new OutdoorPvPEP();
668 }
669};
670
uint8_t uint8
Definition Define.h:135
uint32_t uint32
Definition Define.h:133
#define sMapMgr
Definition MapManager.h:211
#define sObjectMgr
Definition ObjectMgr.h:1721
uint32 const EP_AllianceBuffs[4]
go_type const EP_NPT_LordaeronShrine
uint8 const EP_EWT_NUM_CREATURES
uint8 const EPBuffZonesNum
uint32 const EP_CGT_CM
uint32 const EP_NPT_CM
uint32 const EPBuffZones[EPBuffZonesNum]
go_type const EPTowerFlags[EP_TOWER_NUM]
uint32 const EP_EWT_CM
uint32 const EP_HordeBuffs[4]
uint32 const EP_PWT_CM
uint32 const EP_GraveyardZone
creature_type const EP_EWT_Summons_A[EP_EWT_NUM_CREATURES]
void AddSC_outdoorpvp_ep()
go_type const EPCapturePoints[EP_TOWER_NUM]
creature_type const EP_PWT_FlightMaster
uint32 const EP_GraveyardId
creature_type const EP_EWT_Summons_H[EP_EWT_NUM_CREATURES]
@ EP_NPT_FLAGS
@ EP_EWT_FLAGS
@ EP_CGT_FLAGS
@ EP_NPT_BUFF
@ EP_PWT_FLAGS
@ EP_UI_TOWER_COUNT_H
@ EP_UI_TOWER_COUNT_A
@ EP_PWT_N_A
@ EP_PWT_A
@ EP_PWT_H
@ EP_PWT_N
@ EP_PWT_N_H
@ EP_EWT_H
@ EP_EWT_N
@ EP_EWT_A
@ EP_EWT_N_H
@ EP_EWT_N_A
@ EP_TS_N
@ EP_TS_A
@ EP_TS_N_A
@ EP_TS_N_H
@ EP_TS_H
@ EP_CGT_N
@ EP_CGT_H
@ EP_CGT_N_H
@ EP_CGT_A
@ EP_CGT_N_A
@ TEXT_NORTHPASS_TOWER_TAKEN_HORDE
@ TEXT_PLAGUEWOOD_TOWER_TAKEN_ALLIANCE
@ TEXT_CROWN_GUARD_TOWER_TAKEN_HORDE
@ TEXT_NORTHPASS_TOWER_TAKEN_ALLIANCE
@ TEXT_CROWN_GUARD_TOWER_TAKEN_ALLIANCE
@ TEXT_EASTWALL_TOWER_TAKEN_HORDE
@ TEXT_EASTWALL_TOWER_TAKEN_ALLIANCE
@ TEXT_PLAGUEWOOD_TOWER_TAKEN_HORDE
@ EP_PWT
@ EP_NPT
@ EP_TOWER_NUM
@ EP_CGT
@ EP_EWT
@ EP_PWT_FLIGHTMASTER
@ EP_NPT_A
@ EP_NPT_N
@ EP_NPT_N_H
@ EP_NPT_H
@ EP_NPT_N_A
@ OUTDOOR_PVP_EP
Definition OutdoorPvP.h:34
@ OBJECTIVESTATE_HORDE
Definition OutdoorPvP.h:43
@ OBJECTIVESTATE_NEUTRAL_HORDE_CHALLENGE
Definition OutdoorPvP.h:45
@ OBJECTIVESTATE_ALLIANCE
Definition OutdoorPvP.h:42
@ OBJECTIVESTATE_NEUTRAL_ALLIANCE_CHALLENGE
Definition OutdoorPvP.h:44
@ OBJECTIVESTATE_HORDE_ALLIANCE_CHALLENGE
Definition OutdoorPvP.h:47
@ OBJECTIVESTATE_NEUTRAL
Definition OutdoorPvP.h:41
@ OBJECTIVESTATE_ALLIANCE_HORDE_CHALLENGE
Definition OutdoorPvP.h:46
@ ALLIANCE
@ HORDE
@ FACTION_ALLIANCE_GENERIC
@ FACTION_HORDE_GENERIC
Definition Map.h:281
GameObjectBySpawnIdContainer & GetGameObjectBySpawnIdStore()
Definition Map.h:496
OPvPCapturePointEP_CGT(OutdoorPvP *pvp)
void ChangeState() override
void FillInitialWorldStates(WorldPackets::WorldState::InitWorldStates &packet) override
void LinkGraveyard(uint32 team)
void SummonSupportUnitAtNorthpassTower(uint32 team)
OPvPCapturePointEP_EWT(OutdoorPvP *pvp)
void FillInitialWorldStates(WorldPackets::WorldState::InitWorldStates &packet) override
void ChangeState() override
OPvPCapturePointEP_NPT(OutdoorPvP *pvp)
void ChangeState() override
void FillInitialWorldStates(WorldPackets::WorldState::InitWorldStates &packet) override
void SummonGO(uint32 team)
OPvPCapturePointEP_PWT(OutdoorPvP *pvp)
void ChangeState() override
void SummonFlightMaster(uint32 team)
void FillInitialWorldStates(WorldPackets::WorldState::InitWorldStates &packet) override
ObjectiveStates m_OldState
Definition OutdoorPvP.h:167
OutdoorPvP * m_PvP
Definition OutdoorPvP.h:174
bool AddCreature(uint32 type, uint32 entry, uint32 map, Position const &pos, TeamId teamId=TEAM_NEUTRAL, uint32 spawntimedelay=0)
ObjectiveStates m_State
Definition OutdoorPvP.h:168
std::map< uint32, ObjectGuid::LowType > m_Objects
Definition OutdoorPvP.h:178
void SendObjectiveComplete(uint32 id, ObjectGuid guid)
ObjectGuid::LowType m_capturePointSpawnId
Definition OutdoorPvP.h:130
bool SetCapturePointData(uint32 entry, uint32 map, Position const &pos, QuaternionData const &rot)
bool DelCreature(uint32 type)
bool AddObject(uint32 type, uint32 entry, uint32 map, Position const &pos, QuaternionData const &rot)
bool DelObject(uint32 type)
static ObjectGuid const Empty
Definition ObjectGuid.h:140
uint32 m_AllianceTowersControlled
void SetControlledState(uint32 index, uint32 state)
void HandlePlayerLeaveZone(Player *player, uint32 zone) override
uint32 m_HordeTowersControlled
bool Update(uint32 diff) override
void HandlePlayerEnterZone(Player *player, uint32 zone) override
uint32 EP_Controls[EP_TOWER_NUM]
void FillInitialWorldStates(WorldPackets::WorldState::InitWorldStates &packet) override
bool SetupOutdoorPvP() override
void SendRemoveWorldStates(Player *player) override
OutdoorPvP * GetOutdoorPvP() const override
virtual void HandlePlayerEnterZone(Player *player, uint32 zone)
OPvPCapturePointMap m_capturePoints
Definition OutdoorPvP.h:269
GuidSet m_players[2]
Definition OutdoorPvP.h:271
uint32 m_TypeId
Definition OutdoorPvP.h:273
virtual bool Update(uint32 diff)
void RegisterZone(uint32 zoneid)
static TeamId GetTeamIdByTeam(uint32 team)
Definition OutdoorPvP.h:249
virtual void HandlePlayerLeaveZone(Player *player, uint32 zone)
void SendUpdateWorldState(uint32 field, uint32 value)
void SetMapFromZone(uint32 zone)
void SendDefenseMessage(uint32 zoneId, uint32 id)
void AddCapturePoint(OPvPCapturePoint *cp)
Definition OutdoorPvP.h:287
uint32 GetTeam() const
Definition Player.h:1832
void SendUpdateWorldState(uint32 variable, uint32 value) const
Definition Player.cpp:8493
void RemoveAurasDueToSpell(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, uint8 reqEffMask=0, AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)
Definition Unit.cpp:3784
SpellCastResult CastSpell(CastSpellTargetArg const &targets, uint32 spellId, CastSpellExtraArgs const &args={ })
Definition Object.cpp:2832
std::vector< WorldStateInfo > Worldstates
TC_GAME_API Player * FindPlayer(ObjectGuid const &)
Position pos
Definition OutdoorPvP.h:66
uint32 map
Definition OutdoorPvP.h:56
uint32 entry
Definition OutdoorPvP.h:55
Position pos
Definition OutdoorPvP.h:57
QuaternionData rot
Definition OutdoorPvP.h:58