AzerothCore 3.3.5a
OpenSource WoW Emulator
Loading...
Searching...
No Matches
OutdoorPvPNA Class Reference

#include "OutdoorPvPNA.h"

Inheritance diagram for OutdoorPvPNA:
OutdoorPvP ZoneScript

Public Member Functions

 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 HandleKill (Player *killer, Unit *killed) override
 
void HandleKillImpl (Player *player, Unit *killed) override
 
OPvPCapturePointNAGetCapturePoint ()
 
- Public Member Functions inherited from OutdoorPvP
 OutdoorPvP ()=default
 
 ~OutdoorPvP () override
 
void DeleteSpawns ()
 
virtual bool HandleAreaTrigger (Player *player, uint32 trigger)
 
virtual bool HandleCustomSpell (Player *player, uint32 spellId, GameObject *go)
 
virtual bool HandleOpenGo (Player *player, GameObject *go)
 
void OnGameObjectCreate (GameObject *go) override
 
void OnGameObjectRemove (GameObject *go) override
 
void OnCreatureCreate (Creature *creature) override
 
void OnCreatureRemove (Creature *creature) override
 
void SendUpdateWorldState (uint32 field, uint32 value)
 
bool IsInsideObjective (Player *player) const
 
virtual void AwardKillBonus (Player *)
 
uint32 GetTypeId () const
 
virtual bool HandleDropFlag (Player *player, uint32 spellId)
 
virtual bool HandleGossipOption (Player *player, Creature *creature, uint32 gossipId)
 
virtual bool CanTalkTo (Player *player, Creature *c, GossipMenuItems const &gso)
 
void TeamApplyBuff (TeamId teamId, uint32 spellId, uint32 spellId2=0, Player *sameMapPlr=nullptr)
 
MapGetMap () const
 
- Public Member Functions inherited from ZoneScript
 ZoneScript ()
 
virtual ~ZoneScript ()
 
virtual uint32 GetCreatureEntry (ObjectGuid::LowType, CreatureData const *data)
 
virtual uint32 GetGameObjectEntry (ObjectGuid::LowType, uint32 entry)
 
virtual void OnUnitDeath (Unit *)
 
virtual void OnCreatureEvade (Creature *)
 
virtual ObjectGuid GetGuidData (uint32) const
 
virtual void SetGuidData (uint32, ObjectGuid)
 
virtual uint64 GetData64 (uint32) const
 
virtual void SetData64 (uint32, uint64)
 
virtual uint32 GetData (uint32) const
 
virtual void SetData (uint32, uint32)
 
virtual void ProcessEvent (WorldObject *, uint32)
 

Private Attributes

OPvPCapturePointNAm_obj
 

Additional Inherited Members

- Public Types inherited from OutdoorPvP
typedef std::map< ObjectGuid::LowType, OPvPCapturePoint * > OPvPCapturePointMap
 
typedef std::pair< ObjectGuid::LowType, GameObject * > GoScriptPair
 
typedef std::pair< ObjectGuid::LowType, Creature * > CreatureScriptPair
 
- Protected Member Functions inherited from OutdoorPvP
void BroadcastPacket (WorldPacket &data) const
 
virtual void HandlePlayerResurrects (Player *player, uint32 zone)
 
void AddCapturePoint (OPvPCapturePoint *cp)
 
OPvPCapturePointGetCapturePoint (ObjectGuid::LowType spawnId) const
 
void RegisterZone (uint32 zoneid)
 
bool HasPlayer (Player const *player) const
 
void TeamCastSpell (TeamId team, int32 spellId, Player *sameMapPlr=nullptr)
 
void SetMapFromZone (uint32 zone)
 
- Protected Attributes inherited from OutdoorPvP
OPvPCapturePointMap _capturePoints
 
std::array< PlayerSet, 2 > _players
 
uint32 _typeId {}
 
bool _sendUpdate { true }
 
Map_map {}
 
std::unordered_map< ObjectGuid::LowType, GameObject * > _goScriptStore
 
std::unordered_map< ObjectGuid::LowType, Creature * > _creatureScriptStore
 

Detailed Description

Constructor & Destructor Documentation

◆ OutdoorPvPNA()

OutdoorPvPNA::OutdoorPvPNA ( )
36{
38 m_obj = nullptr;
39}
@ OUTDOOR_PVP_NA
Definition OutdoorPvP.h:31
OPvPCapturePointNA * m_obj
Definition OutdoorPvPNA.h:263
uint32 _typeId
Definition OutdoorPvP.h:270

References OutdoorPvP::_typeId, m_obj, and OUTDOOR_PVP_NA.

Member Function Documentation

◆ FillInitialWorldStates()

void OutdoorPvPNA::FillInitialWorldStates ( WorldPackets::WorldState::InitWorldStates packet)
overridevirtual

Reimplemented from OutdoorPvP.

306{
308}
void FillInitialWorldStates(WorldPackets::WorldState::InitWorldStates &packet) override
Definition OutdoorPvPNA.cpp:310

References OPvPCapturePointNA::FillInitialWorldStates(), and m_obj.

◆ GetCapturePoint()

OPvPCapturePointNA * OutdoorPvPNA::GetCapturePoint ( )
inline
260{ return m_obj; }

References m_obj.

◆ HandleKill()

void OutdoorPvPNA::HandleKill ( Player killer,
Unit killed 
)
overridevirtual

Reimplemented from OutdoorPvP.

46{
47 if (Group* group = killer->GetGroup())
48 {
49 for (GroupReference* itr = group->GetFirstMember(); itr != nullptr; itr = itr->next())
50 {
51 Player* groupGuy = itr->GetSource();
52
53 if (!groupGuy)
54 continue;
55
56 // skip if too far away
57 if (!groupGuy->IsAtGroupRewardDistance(killed) && killer != groupGuy)
58 continue;
59
60 // creature kills must be notified, even if not inside objective / not outdoor pvp active
61 // player kills only count if active and inside objective
62 if ((groupGuy->IsOutdoorPvPActive() && groupGuy->GetAreaId() == NA_HALAA_ZONE_ID) || killed->IsCreature())
63 {
64 HandleKillImpl(groupGuy, killed);
65 }
66 }
67 }
68 else
69 {
70 // creature kills must be notified, even if not inside objective / not outdoor pvp active
71 if (killer && ((killer->IsOutdoorPvPActive() && killer->ToPlayer()->GetAreaId() == NA_HALAA_ZONE_ID) || killed->IsCreature()))
72 {
73 HandleKillImpl(killer, killed);
74 }
75 }
76}
uint32 const NA_HALAA_ZONE_ID
Definition OutdoorPvPNA.h:43
Definition GroupReference.h:27
Definition Group.h:169
Player * ToPlayer()
Definition Object.h:201
bool IsCreature() const
Definition Object.h:204
void HandleKillImpl(Player *player, Unit *killed) override
Definition OutdoorPvPNA.cpp:78
Definition Player.h:1081
bool IsAtGroupRewardDistance(WorldObject const *pRewardSource) const
Definition Player.cpp:12820
Group * GetGroup()
Definition Player.h:2476
bool IsOutdoorPvPActive()
Definition Player.cpp:6446
uint32 GetAreaId() const
Definition Object.cpp:3156

References WorldObject::GetAreaId(), Player::GetGroup(), HandleKillImpl(), Player::IsAtGroupRewardDistance(), Object::IsCreature(), Player::IsOutdoorPvPActive(), NA_HALAA_ZONE_ID, and Object::ToPlayer().

◆ HandleKillImpl()

void OutdoorPvPNA::HandleKillImpl ( Player player,
Unit killed 
)
overridevirtual

Reimplemented from OutdoorPvP.

79{
80 if (killed->IsPlayer() && player->GetTeamId() != killed->ToPlayer()->GetTeamId())
81 {
83 player->CastSpell(player, player->GetTeamId() == TEAM_ALLIANCE ? NA_KILL_TOKEN_ALLIANCE : NA_KILL_TOKEN_HORDE, true);
84 }
85}
const uint32 NA_CREDIT_MARKER
Definition OutdoorPvPNA.h:33
@ NA_KILL_TOKEN_HORDE
Definition OutdoorPvPNA.h:28
@ NA_KILL_TOKEN_ALLIANCE
Definition OutdoorPvPNA.h:27
@ TEAM_ALLIANCE
Definition SharedDefines.h:760
bool IsPlayer() const
Definition Object.h:200
void KilledMonsterCredit(uint32 entry, ObjectGuid guid=ObjectGuid::Empty)
Definition PlayerQuest.cpp:1927
TeamId GetTeamId(bool original=false) const
Definition Player.h:2116
SpellCastResult CastSpell(SpellCastTargets const &targets, SpellInfo const *spellInfo, CustomSpellValues const *value, TriggerCastFlags triggerFlags=TRIGGERED_NONE, Item *castItem=nullptr, AuraEffect const *triggeredByAura=nullptr, ObjectGuid originalCaster=ObjectGuid::Empty)
Definition Unit.cpp:1178

References Unit::CastSpell(), Player::GetTeamId(), Object::IsPlayer(), Player::KilledMonsterCredit(), NA_CREDIT_MARKER, NA_KILL_TOKEN_ALLIANCE, NA_KILL_TOKEN_HORDE, TEAM_ALLIANCE, and Object::ToPlayer().

Referenced by HandleKill().

◆ HandlePlayerEnterZone()

void OutdoorPvPNA::HandlePlayerEnterZone ( Player player,
uint32  zone 
)
overridevirtual

Reimplemented from OutdoorPvP.

291{
292 // add buffs
293 if (player->GetTeamId() == m_obj->GetControllingFaction())
294 player->CastSpell(player, NA_CAPTURE_BUFF, true);
296}
@ NA_CAPTURE_BUFF
Definition OutdoorPvPNA.h:29
TeamId GetControllingFaction() const
Definition OutdoorPvPNA.cpp:119
virtual void HandlePlayerEnterZone(Player *player, uint32 zone)
Definition OutdoorPvP.cpp:277

References Unit::CastSpell(), OPvPCapturePointNA::GetControllingFaction(), Player::GetTeamId(), OutdoorPvP::HandlePlayerEnterZone(), m_obj, and NA_CAPTURE_BUFF.

◆ HandlePlayerLeaveZone()

void OutdoorPvPNA::HandlePlayerLeaveZone ( Player player,
uint32  zone 
)
overridevirtual

Reimplemented from OutdoorPvP.

299{
300 // remove buffs
303}
virtual void HandlePlayerLeaveZone(Player *player, uint32 zone)
Definition OutdoorPvP.cpp:282
void RemoveAurasDueToSpell(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, uint8 reqEffMask=0, AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)
Definition Unit.cpp:4941

References OutdoorPvP::HandlePlayerLeaveZone(), NA_CAPTURE_BUFF, and Unit::RemoveAurasDueToSpell().

◆ SendRemoveWorldStates()

void OutdoorPvPNA::SendRemoveWorldStates ( Player player)
overridevirtual

Reimplemented from OutdoorPvP.

355{
384}
@ WORLD_STATE_OPVP_NA_UI_GUARDS_LEFT
Definition WorldStateDefines.h:474
@ WORLD_STATE_OPVP_NA_MAP_WYVERN_EAST_H
Definition WorldStateDefines.h:482
@ WORLD_STATE_OPVP_NA_MAP_WYVERN_SOUTH_NEU_H
Definition WorldStateDefines.h:498
@ WORLD_STATE_OPVP_NA_MAP_WYVERN_SOUTH_NEU_A
Definition WorldStateDefines.h:492
@ WORLD_STATE_OPVP_NA_UI_HORDE_GUARDS_SHOW
Definition WorldStateDefines.h:480
@ WORLD_STATE_OPVP_NA_MAP_WYVERN_NORTH_A
Definition WorldStateDefines.h:486
@ WORLD_STATE_OPVP_NA_MAP_WYVERN_WEST_H
Definition WorldStateDefines.h:487
@ WORLD_STATE_OPVP_NA_MAP_WYVERN_NORTH_NEU_A
Definition WorldStateDefines.h:484
@ WORLD_STATE_OPVP_NA_UI_TOWER_SLIDER_POS
Definition WorldStateDefines.h:476
@ WORLD_STATE_OPVP_NA_MAP_HALAA_NEU_A
Definition WorldStateDefines.h:496
@ WORLD_STATE_OPVP_NA_MAP_WYVERN_EAST_NEU_A
Definition WorldStateDefines.h:481
@ WORLD_STATE_OPVP_NA_MAP_WYVERN_WEST_NEU_A
Definition WorldStateDefines.h:489
@ WORLD_STATE_OPVP_NA_MAP_HALAA_ALLIANCE
Definition WorldStateDefines.h:495
@ WORLD_STATE_OPVP_NA_MAP_WYVERN_WEST_NEU_H
Definition WorldStateDefines.h:499
@ WORLD_STATE_OPVP_NA_MAP_WYVERN_SOUTH_A
Definition WorldStateDefines.h:491
@ WORLD_STATE_OPVP_NA_MAP_WYVERN_NORTH_H
Definition WorldStateDefines.h:485
@ WORLD_STATE_OPVP_NA_UI_SLIDER_N
Definition WorldStateDefines.h:478
@ WORLD_STATE_OPVP_NA_UI_TOWER_SLIDER_DISPLAY
Definition WorldStateDefines.h:477
@ WORLD_STATE_OPVP_NA_MAP_WYVERN_NORTH_NEU_H
Definition WorldStateDefines.h:500
@ WORLD_STATE_OPVP_NA_UI_GUARDS_MAX
Definition WorldStateDefines.h:475
@ WORLD_STATE_OPVP_NA_MAP_HALAA_NEUTRAL
Definition WorldStateDefines.h:493
@ WORLD_STATE_OPVP_NA_MAP_WYVERN_EAST_NEU_H
Definition WorldStateDefines.h:501
@ WORLD_STATE_OPVP_NA_MAP_HALAA_HORDE
Definition WorldStateDefines.h:494
@ WORLD_STATE_OPVP_NA_MAP_HALAA_NEU_H
Definition WorldStateDefines.h:497
@ WORLD_STATE_OPVP_NA_MAP_WYVERN_EAST_A
Definition WorldStateDefines.h:483
@ WORLD_STATE_OPVP_NA_MAP_WYVERN_WEST_A
Definition WorldStateDefines.h:488
@ WORLD_STATE_OPVP_NA_MAP_WYVERN_SOUTH_H
Definition WorldStateDefines.h:490
@ WORLD_STATE_OPVP_NA_UI_ALLIANCE_GUARDS_SHOW
Definition WorldStateDefines.h:479
void SendUpdateWorldState(uint32 variable, uint32 value) const
Definition PlayerUpdates.cpp:2243

References Player::SendUpdateWorldState(), WORLD_STATE_OPVP_NA_MAP_HALAA_ALLIANCE, WORLD_STATE_OPVP_NA_MAP_HALAA_HORDE, WORLD_STATE_OPVP_NA_MAP_HALAA_NEU_A, WORLD_STATE_OPVP_NA_MAP_HALAA_NEU_H, WORLD_STATE_OPVP_NA_MAP_HALAA_NEUTRAL, WORLD_STATE_OPVP_NA_MAP_WYVERN_EAST_A, WORLD_STATE_OPVP_NA_MAP_WYVERN_EAST_H, WORLD_STATE_OPVP_NA_MAP_WYVERN_EAST_NEU_A, WORLD_STATE_OPVP_NA_MAP_WYVERN_EAST_NEU_H, WORLD_STATE_OPVP_NA_MAP_WYVERN_NORTH_A, WORLD_STATE_OPVP_NA_MAP_WYVERN_NORTH_H, WORLD_STATE_OPVP_NA_MAP_WYVERN_NORTH_NEU_A, WORLD_STATE_OPVP_NA_MAP_WYVERN_NORTH_NEU_H, WORLD_STATE_OPVP_NA_MAP_WYVERN_SOUTH_A, WORLD_STATE_OPVP_NA_MAP_WYVERN_SOUTH_H, WORLD_STATE_OPVP_NA_MAP_WYVERN_SOUTH_NEU_A, WORLD_STATE_OPVP_NA_MAP_WYVERN_SOUTH_NEU_H, WORLD_STATE_OPVP_NA_MAP_WYVERN_WEST_A, WORLD_STATE_OPVP_NA_MAP_WYVERN_WEST_H, WORLD_STATE_OPVP_NA_MAP_WYVERN_WEST_NEU_A, WORLD_STATE_OPVP_NA_MAP_WYVERN_WEST_NEU_H, WORLD_STATE_OPVP_NA_UI_ALLIANCE_GUARDS_SHOW, WORLD_STATE_OPVP_NA_UI_GUARDS_LEFT, WORLD_STATE_OPVP_NA_UI_GUARDS_MAX, WORLD_STATE_OPVP_NA_UI_HORDE_GUARDS_SHOW, WORLD_STATE_OPVP_NA_UI_SLIDER_N, WORLD_STATE_OPVP_NA_UI_TOWER_SLIDER_DISPLAY, and WORLD_STATE_OPVP_NA_UI_TOWER_SLIDER_POS.

◆ SetupOutdoorPvP()

bool OutdoorPvPNA::SetupOutdoorPvP ( )
overridevirtual

Reimplemented from OutdoorPvP.

271{
272 // _typeId = OUTDOOR_PVP_NA; _MUST_ be set in ctor, because of spawns cleanup
273 // add the zones affected by the pvp buff
276
277 // halaa
278 m_obj = new OPvPCapturePointNA(this);
279 if (!m_obj)
280 return false;
282
283 //Remove linked graveyard at the server start to avoid players spawning in halaa
286
287 return true;
288}
#define sGraveyard
Definition GameGraveyard.h:74
const uint32 NA_HALAA_GRAVEYARD
Definition OutdoorPvPNA.h:39
const uint32 NA_HALAA_GRAVEYARD_ZONE
Definition OutdoorPvPNA.h:41
const uint32 NA_BUFF_ZONE
Definition OutdoorPvPNA.h:37
@ TEAM_HORDE
Definition SharedDefines.h:761
Definition OutdoorPvPNA.h:184
void RegisterZone(uint32 zoneid)
Definition OutdoorPvP.cpp:641
void SetMapFromZone(uint32 zone)
Definition OutdoorPvP.cpp:718
void AddCapturePoint(OPvPCapturePoint *cp)
Definition OutdoorPvP.h:254

References OutdoorPvP::AddCapturePoint(), m_obj, NA_BUFF_ZONE, NA_HALAA_GRAVEYARD, NA_HALAA_GRAVEYARD_ZONE, OutdoorPvP::RegisterZone(), OutdoorPvP::SetMapFromZone(), sGraveyard, TEAM_ALLIANCE, and TEAM_HORDE.

◆ Update()

bool OutdoorPvPNA::Update ( uint32  diff)
overridevirtual

Reimplemented from OutdoorPvP.

387{
388 return m_obj->Update(diff);
389}
bool Update(uint32 diff) override
Definition OutdoorPvPNA.cpp:597

References m_obj, and OPvPCapturePointNA::Update().

Member Data Documentation

◆ m_obj


The documentation for this class was generated from the following files: