TrinityCore
OutdoorPvPNA.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 "OutdoorPvPNA.h"
19#include "CellImpl.h"
20#include "Creature.h"
21#include "GameObject.h"
22#include "GridNotifiersImpl.h"
23#include "Map.h"
24#include "ObjectMgr.h"
25#include "Player.h"
26#include "ScriptMgr.h"
27#include "WorldStatePackets.h"
28
29uint32 const NA_CREDIT_MARKER = 24867; // kill credit for pks
31uint32 const NA_BUFF_ZONE = 3518;
32uint32 const NA_HALAA_GRAVEYARD_ZONE = 3518; // need to add zone id, not area id
33uint32 const NA_RESPAWN_TIME = 3600000; // one hour to capture after defeating all guards
34uint32 const NA_GUARD_CHECK_TIME = 500; // every half second
36uint32 const FlightPathStartNodes[FLIGHT_NODES_NUM] = { 103, 105, 107, 109 };
37uint32 const FlightPathEndNodes[FLIGHT_NODES_NUM] = { 104, 106, 108, 110 };
38
40{
42 m_obj = nullptr;
43 ControlZoneHandlers[182210] = std::make_unique<NAControlZoneHandler>(this);
44}
45
47{
48 switch (go->GetEntry())
49 {
50 case 182210:
52 break;
53 }
54
56}
57
59{
60 if (killed->GetTypeId() == TYPEID_PLAYER && player->GetTeam() != killed->ToPlayer()->GetTeam())
61 {
62 player->KilledMonsterCredit(NA_CREDIT_MARKER); // 0 guid, btw it isn't even used in killedmonster function :S
63 if (player->GetTeam() == ALLIANCE)
64 player->CastSpell(player, NA_KILL_TOKEN_ALLIANCE, true);
65 else
66 player->CastSpell(player, NA_KILL_TOKEN_HORDE, true);
67 }
68}
69
71{
72}
73
75{
77
78 if (GetOutdoorPvPNA()->GetCapturePoint()->GetControllingFaction() != HORDE)
79 {
80 GetOutdoorPvPNA()->SendMapWorldStates(0, 0, 0, 1, 0);
82 }
83}
84
86{
88
89 if (GetOutdoorPvPNA()->GetCapturePoint()->GetControllingFaction() != ALLIANCE)
90 {
91 GetOutdoorPvPNA()->SendMapWorldStates(0, 0, 0, 0, 1);
93 }
94}
95
97{
99
100 GetOutdoorPvPNA()->SendMapWorldStates(0, 1, 0, 0, 0);
101}
102
104{
106
107 GetOutdoorPvPNA()->SendMapWorldStates(0, 0, 1, 0, 0);
108}
109
111{
113
114 controlZone->SetGoArtKit(1);
115 GetOutdoorPvPNA()->SendMapWorldStates(0, 1, 0, 0, 0);
116}
117
119{
121
122 controlZone->SetGoArtKit(2);
123 GetOutdoorPvPNA()->SendMapWorldStates(0, 0, 1, 0, 0);
124}
125
127{
129}
130
132{
134}
135
137{
139}
140
142{
144}
145
146void OutdoorPvPNA::SendMapWorldStates(int32 neutral, int32 progressHorde, int32 progressAlliance, int32 capturedHorde, int32 captureAlliance)
147{
149 SetWorldState(NA_MAP_HALAA_NEU_H, progressHorde);
150 SetWorldState(NA_MAP_HALAA_NEU_A, progressAlliance);
151 SetWorldState(NA_MAP_HALAA_HORDE, capturedHorde);
152 SetWorldState(NA_MAP_HALAA_ALLIANCE, captureAlliance);
153}
154
156{
157 Position searchCenter = { -1572.57f, 7945.3f, -22.475f, 2.05949f };
158
159 std::vector<WorldObject*> guards;
162 Cell::VisitGridObjects(searchCenter.GetPositionX(), searchCenter.GetPositionY(), m_PvP->GetMap(), searcher, SIZE_OF_GRIDS);
163
164 return std::count_if(guards.begin(), guards.end(), [](WorldObject* guard) { return guard->IsUnit() && guard->ToUnit()->IsAlive(); });
165}
166
168{
170}
171
173{
176 m_capturable = false;
178 gameObject->ActivateObject(GameObjectActions::MakeInert, 0);
179
180 if (team == ALLIANCE)
181 {
191 }
192 else
193 {
203 }
208}
209
210OPvPCapturePointNA::OPvPCapturePointNA(OutdoorPvP* pvp) : OPvPCapturePoint(pvp), m_capturable(true), m_GuardsAlive(0), m_ControllingFaction(TEAM_OTHER), m_WyvernStateNorth(0), m_WyvernStateSouth(0), m_WyvernStateEast(0),
211 m_WyvernStateWest(0), m_RespawnTimer(NA_RESPAWN_TIME), m_GuardCheckTimer(NA_GUARD_CHECK_TIME)
212{
213
214}
215
217{
218// m_TypeId = OUTDOOR_PVP_NA; _MUST_ be set in ctor, because of spawns cleanup
219 // add the zones affected by the pvp buff
221
222 // halaa
223 m_obj = new OPvPCapturePointNA(this);
224
225 return true;
226}
227
229{
230 // add buffs
231 if (player->GetTeam() == m_obj->GetControllingFaction())
232 player->CastSpell(player, NA_CAPTURE_BUFF, true);
234}
235
237{
238 // remove buffs
241}
242
244{
246 initWorldStates.MapID = player->GetMapId();
247 initWorldStates.AreaID = player->GetZoneId();
248 initWorldStates.SubareaID = player->GetAreaId();
249 initWorldStates.Worldstates.emplace_back(NA_UI_HORDE_GUARDS_SHOW, 0);
250 initWorldStates.Worldstates.emplace_back(NA_UI_ALLIANCE_GUARDS_SHOW, 0);
251 initWorldStates.Worldstates.emplace_back(NA_UI_GUARDS_MAX, 0);
252 initWorldStates.Worldstates.emplace_back(NA_UI_GUARDS_LEFT, 0);
253 initWorldStates.Worldstates.emplace_back(NA_MAP_WYVERN_NORTH_NEU_H, 0);
254 initWorldStates.Worldstates.emplace_back(NA_MAP_WYVERN_NORTH_NEU_A, 0);
255 initWorldStates.Worldstates.emplace_back(NA_MAP_WYVERN_NORTH_H, 0);
256 initWorldStates.Worldstates.emplace_back(NA_MAP_WYVERN_NORTH_A, 0);
257 initWorldStates.Worldstates.emplace_back(NA_MAP_WYVERN_SOUTH_NEU_H, 0);
258 initWorldStates.Worldstates.emplace_back(NA_MAP_WYVERN_SOUTH_NEU_A, 0);
259 initWorldStates.Worldstates.emplace_back(NA_MAP_WYVERN_SOUTH_H, 0);
260 initWorldStates.Worldstates.emplace_back(NA_MAP_WYVERN_SOUTH_A, 0);
261 initWorldStates.Worldstates.emplace_back(NA_MAP_WYVERN_WEST_NEU_H, 0);
262 initWorldStates.Worldstates.emplace_back(NA_MAP_WYVERN_WEST_NEU_A, 0);
263 initWorldStates.Worldstates.emplace_back(NA_MAP_WYVERN_WEST_H, 0);
264 initWorldStates.Worldstates.emplace_back(NA_MAP_WYVERN_WEST_A, 0);
265 initWorldStates.Worldstates.emplace_back(NA_MAP_WYVERN_EAST_NEU_H, 0);
266 initWorldStates.Worldstates.emplace_back(NA_MAP_WYVERN_EAST_NEU_A, 0);
267 initWorldStates.Worldstates.emplace_back(NA_MAP_WYVERN_EAST_H, 0);
268 initWorldStates.Worldstates.emplace_back(NA_MAP_WYVERN_EAST_A, 0);
269 initWorldStates.Worldstates.emplace_back(NA_MAP_HALAA_NEUTRAL, 0);
270 initWorldStates.Worldstates.emplace_back(NA_MAP_HALAA_NEU_A, 0);
271 initWorldStates.Worldstates.emplace_back(NA_MAP_HALAA_NEU_H, 0);
272 initWorldStates.Worldstates.emplace_back(NA_MAP_HALAA_HORDE, 0);
273 initWorldStates.Worldstates.emplace_back(NA_MAP_HALAA_ALLIANCE, 0);
274 player->SendDirectMessage(initWorldStates.Write());
275}
276
278{
279 m_obj->Update(diff);
280}
281
283{
284 std::vector<uint32> nodes;
285 nodes.resize(2);
286 bool retval = false;
287 switch (spellId)
288 {
291 nodes[1] = FlightPathEndNodes[NA_ROOST_N];
292 player->ActivateTaxiPathTo(nodes);
294 player->UpdatePvP(true, true);
295 retval = true;
296 break;
299 nodes[1] = FlightPathEndNodes[NA_ROOST_S];
300 player->ActivateTaxiPathTo(nodes);
302 player->UpdatePvP(true, true);
303 retval = true;
304 break;
307 nodes[1] = FlightPathEndNodes[NA_ROOST_W];
308 player->ActivateTaxiPathTo(nodes);
310 player->UpdatePvP(true, true);
311 retval = true;
312 break;
315 nodes[1] = FlightPathEndNodes[NA_ROOST_E];
316 player->ActivateTaxiPathTo(nodes);
318 player->UpdatePvP(true, true);
319 retval = true;
320 break;
321 default:
322 break;
323 }
324
325 if (retval)
326 {
327 //Adding items
328 uint32 noSpaceForCount = 0;
329
330 // check space and find places
331 ItemPosCountVec dest;
332
333 int32 count = 10;
334 uint32 itemid = 24538;
335 // bomb id count
336 InventoryResult msg = player->CanStoreNewItem(NULL_BAG, NULL_SLOT, dest, itemid, count, &noSpaceForCount);
337 if (msg != EQUIP_ERR_OK) // convert to possible store amount
338 count -= noSpaceForCount;
339
340 if (count == 0 || dest.empty()) // can't add any
341 {
342 return true;
343 }
344
345 Item* item = player->StoreNewItem(dest, itemid, true);
346
347 if (count > 0 && item)
348 {
349 player->SendNewItem(item, count, true, false);
350 }
351
352 return true;
353 }
354 return false;
355}
356
358{
359 switch (go->GetEntry())
360 {
361 case 182222:
364 break;
365 case 182272:
368 break;
369 case 182273:
372 break;
373 case 182274:
376 break;
377 case 182266:
380 break;
381 case 182275:
384 break;
385 case 182276:
388 break;
389 case 182277:
392 break;
393 case 182305:
396 break;
397 case 182306:
400 break;
401 case 182307:
404 break;
405 case 182308:
408 break;
409 case 182297:
412 break;
413 case 182298:
416 break;
417 case 182299:
420 break;
421 case 182300:
424 break;
425 default:
426 return OPvPCapturePoint::HandleOpenGo(player, go);
427 }
428
429 return 0;
430}
431
433{
434 if (m_GuardCheckTimer < diff)
435 {
438 if (m_GuardsAlive == 0)
439 {
440 m_capturable = true;
443 gameObject->ActivateObject(GameObjectActions::MakeActive, 0);
444 }
445 else if (GameObject* gameObject = m_PvP->GetMap()->GetGameObject(_controlZoneGUID))
446 gameObject->ActivateObject(GameObjectActions::MakeInert, 0);
447 // update the guard count for the players in zone
449 }
450 else
451 m_GuardCheckTimer -= diff;
452
453 if (m_capturable)
454 {
455 if (m_RespawnTimer < diff)
456 {
457 // if the guards have been killed, then the challenger has one hour to take over halaa.
458 // in case they fail to do it, the guards are respawned, and they have to start again.
460 {
463 }
464 }
465 else
466 m_RespawnTimer -= diff;
467 }
468
469 if (m_capturable)
471}
472
474{
475 switch (roost)
476 {
477 case NA_ROOST_S:
482 break;
483 case NA_ROOST_N:
488 break;
489 case NA_ROOST_W:
494 break;
495 case NA_ROOST_E:
500 break;
501 }
502}
503
505{
506 public:
507 OutdoorPvP_nagrand() : OutdoorPvPScript("outdoorpvp_na") { }
508
509 OutdoorPvP* GetOutdoorPvP(Map* map) const override
510 {
511 return new OutdoorPvPNA(map);
512 }
513};
514
516{
517 new OutdoorPvP_nagrand();
518}
int32_t int32
Definition: Define.h:138
uint32_t uint32
Definition: Define.h:142
#define SIZE_OF_GRIDS
Definition: GridDefines.h:40
@ GRID_MAP_TYPE_MASK_CREATURE
Definition: GridDefines.h:82
InventoryResult
Definition: ItemDefines.h:25
@ EQUIP_ERR_OK
Definition: ItemDefines.h:26
@ TYPEID_PLAYER
Definition: ObjectGuid.h:41
void AddSC_outdoorpvp_na()
uint32 const NA_HALAA_GRAVEYARD_ZONE
uint32 const NA_GUARDS_MAX
uint32 const FlightPathEndNodes[FLIGHT_NODES_NUM]
uint32 const NA_BUFF_ZONE
uint32 const NA_RESPAWN_TIME
uint32 const FlightPathStartNodes[FLIGHT_NODES_NUM]
uint32 const FLIGHT_NODES_NUM
uint32 const NA_CREDIT_MARKER
uint32 const NA_GUARD_CHECK_TIME
@ WYVERN_NEU_HORDE
Definition: OutdoorPvPNA.h:101
@ WYVERN_NEU_ALLIANCE
Definition: OutdoorPvPNA.h:102
@ WYVERN_ALLIANCE
Definition: OutdoorPvPNA.h:104
@ WYVERN_HORDE
Definition: OutdoorPvPNA.h:103
@ NA_ROOST_W
Definition: OutdoorPvPNA.h:80
@ NA_ROOST_E
Definition: OutdoorPvPNA.h:82
@ NA_ROOST_N
Definition: OutdoorPvPNA.h:81
@ NA_ROOST_S
Definition: OutdoorPvPNA.h:79
@ NA_SPELL_FLY_SOUTH
Definition: OutdoorPvPNA.h:87
@ NA_SPELL_FLY_WEST
Definition: OutdoorPvPNA.h:88
@ NA_SPELL_FLY_EAST
Definition: OutdoorPvPNA.h:90
@ NA_SPELL_FLY_NORTH
Definition: OutdoorPvPNA.h:89
@ NA_CAPTURE_BUFF
Definition: OutdoorPvPNA.h:39
@ NA_KILL_TOKEN_HORDE
Definition: OutdoorPvPNA.h:38
@ NA_KILL_TOKEN_ALLIANCE
Definition: OutdoorPvPNA.h:37
@ NA_MAP_HALAA_NEU_A
Definition: OutdoorPvPNA.h:70
@ NA_MAP_WYVERN_SOUTH_NEU_H
Definition: OutdoorPvPNA.h:54
@ NA_MAP_HALAA_HORDE
Definition: OutdoorPvPNA.h:72
@ NA_UI_ALLIANCE_GUARDS_SHOW
Definition: OutdoorPvPNA.h:45
@ NA_MAP_WYVERN_NORTH_NEU_A
Definition: OutdoorPvPNA.h:50
@ NA_MAP_HALAA_NEUTRAL
Definition: OutdoorPvPNA.h:69
@ NA_MAP_WYVERN_WEST_NEU_A
Definition: OutdoorPvPNA.h:60
@ NA_MAP_WYVERN_SOUTH_NEU_A
Definition: OutdoorPvPNA.h:55
@ NA_MAP_WYVERN_WEST_H
Definition: OutdoorPvPNA.h:61
@ NA_MAP_WYVERN_NORTH_NEU_H
Definition: OutdoorPvPNA.h:49
@ NA_UI_HORDE_GUARDS_SHOW
Definition: OutdoorPvPNA.h:44
@ NA_MAP_HALAA_ALLIANCE
Definition: OutdoorPvPNA.h:73
@ NA_MAP_WYVERN_EAST_H
Definition: OutdoorPvPNA.h:66
@ NA_MAP_WYVERN_SOUTH_A
Definition: OutdoorPvPNA.h:57
@ NA_UI_GUARDS_MAX
Definition: OutdoorPvPNA.h:46
@ NA_MAP_WYVERN_EAST_A
Definition: OutdoorPvPNA.h:67
@ NA_MAP_WYVERN_NORTH_H
Definition: OutdoorPvPNA.h:51
@ NA_UI_GUARDS_LEFT
Definition: OutdoorPvPNA.h:47
@ NA_MAP_WYVERN_WEST_A
Definition: OutdoorPvPNA.h:62
@ NA_MAP_WYVERN_EAST_NEU_A
Definition: OutdoorPvPNA.h:65
@ NA_MAP_WYVERN_EAST_NEU_H
Definition: OutdoorPvPNA.h:64
@ NA_MAP_HALAA_NEU_H
Definition: OutdoorPvPNA.h:71
@ NA_MAP_WYVERN_WEST_NEU_H
Definition: OutdoorPvPNA.h:59
@ NA_MAP_WYVERN_NORTH_A
Definition: OutdoorPvPNA.h:52
@ NA_MAP_WYVERN_SOUTH_H
Definition: OutdoorPvPNA.h:56
@ TEXT_HALAA_TAKEN_ALLIANCE
Definition: OutdoorPvPNA.h:26
@ TEXT_HALAA_TAKEN_HORDE
Definition: OutdoorPvPNA.h:27
@ SPAWN_GROUP_HORDE_GUARDS
Definition: OutdoorPvPNA.h:95
@ SPAWN_GROUP_ALLIANCE_GUARDS
Definition: OutdoorPvPNA.h:96
@ OUTDOOR_PVP_NA
Definition: OutdoorPvP.h:31
std::vector< ItemPosCount > ItemPosCountVec
Definition: Player.h:750
@ PLAYER_FLAGS_IN_PVP
Definition: Player.h:437
@ TEAM_ALLIANCE
@ TEAM_HORDE
Team
@ TEAM_OTHER
@ ALLIANCE
@ HORDE
@ NULL_BAG
Definition: Unit.h:62
@ NULL_SLOT
Definition: Unit.h:63
virtual void HandleNeutralEventHorde(GameObject *controlZone)
Definition: ZoneScript.h:53
virtual void HandleProgressEventAlliance(GameObject *controlZone)
Definition: ZoneScript.h:52
virtual void HandleContestedEventAlliance(GameObject *controlZone)
Definition: ZoneScript.h:50
virtual void HandleNeutralEventAlliance(GameObject *controlZone)
Definition: ZoneScript.h:54
virtual void HandleCaptureEventHorde(GameObject *controlZone)
Definition: ZoneScript.h:47
virtual void HandleProgressEventHorde(GameObject *controlZone)
Definition: ZoneScript.h:51
virtual void HandleNeutralEvent(GameObject *controlZone)
Definition: ZoneScript.h:55
virtual void HandleContestedEventHorde(GameObject *controlZone)
Definition: ZoneScript.h:49
virtual void HandleCaptureEventAlliance(GameObject *controlZone)
Definition: ZoneScript.h:48
void SetGoArtKit(uint32 artkit)
Definition: Item.h:170
Definition: Map.h:189
bool SpawnGroupSpawn(uint32 groupId, bool ignoreRespawn=false, bool force=false, std::vector< WorldObject * > *spawnedObjects=nullptr)
Definition: Map.cpp:2348
GameObject * GetGameObject(ObjectGuid const &guid)
Definition: Map.cpp:3489
void HandleContestedEventHorde(GameObject *controlZone) override
void HandleNeutralEvent(GameObject *controlZone) override
void HandleProgressEventAlliance(GameObject *controlZone) override
void HandleCaptureEventHorde(GameObject *controlZone) override
OutdoorPvPNA * GetOutdoorPvPNA() const
void HandleCaptureEventAlliance(GameObject *controlZone) override
void HandleContestedEventAlliance(GameObject *controlZone) override
void HandleProgressEventHorde(GameObject *controlZone) override
void HandleNeutralEventAlliance(GameObject *controlZone) override
void HandleNeutralEventHorde(GameObject *controlZone) override
NAControlZoneHandler(OutdoorPvPNA *pvp)
void UpdateWyvernRoostWorldState(uint32 roost)
uint32 GetAliveGuardsCount() const
bool HandleCustomSpell(Player *player, uint32 spellId, GameObject *go) override
void SetControlZoneGUID(ObjectGuid guid)
Definition: OutdoorPvPNA.h:165
OPvPCapturePointNA(OutdoorPvP *pvp)
int32 HandleOpenGo(Player *player, GameObject *go) override
Team GetControllingFaction() const
ObjectGuid _controlZoneGUID
Definition: OutdoorPvPNA.h:176
void FactionTakeOver(Team team)
void Update(uint32 diff) override
virtual void Update(uint32 diff)
Definition: OutdoorPvP.h:91
OutdoorPvP * m_PvP
Definition: OutdoorPvP.h:112
virtual int32 HandleOpenGo(Player *player, GameObject *go)
Definition: OutdoorPvP.cpp:159
static ObjectGuid const Empty
Definition: ObjectGuid.h:274
TypeID GetTypeId() const
Definition: Object.h:173
uint32 GetEntry() const
Definition: Object.h:161
static ObjectGuid GetGUID(Object const *o)
Definition: Object.h:159
static Player * ToPlayer(Object *o)
Definition: Object.h:213
OutdoorPvP * GetOutdoorPvP() const
Definition: OutdoorPvP.h:121
bool SetupOutdoorPvP() override
void SendMapWorldStates(int32 neutral, int32 progressHorde, int32 progressAlliance, int32 capturedHorde, int32 captureAlliance)
OutdoorPvPNA(Map *map)
void HandleKillImpl(Player *player, Unit *killed) override
void HandlePlayerEnterZone(Player *player, uint32 zone) override
void OnGameObjectCreate(GameObject *go) override
void Update(uint32 diff) override
OPvPCapturePointNA * GetCapturePoint() const
Definition: OutdoorPvPNA.h:193
OPvPCapturePointNA * m_obj
Definition: OutdoorPvPNA.h:195
void HandlePlayerLeaveZone(Player *player, uint32 zone) override
void SendRemoveWorldStates(Player *player) override
OutdoorPvP * GetOutdoorPvP(Map *map) const override
virtual void HandlePlayerEnterZone(Player *player, uint32 zone)
Definition: OutdoorPvP.cpp:64
uint32 m_TypeId
Definition: OutdoorPvP.h:208
void TeamApplyBuff(TeamId team, uint32 spellId, uint32 spellId2=0)
Definition: OutdoorPvP.cpp:200
void RegisterZone(uint32 zoneid)
Definition: OutdoorPvP.cpp:173
void SetWorldState(int32 worldStateId, int32 value)
Definition: OutdoorPvP.cpp:91
virtual void HandlePlayerLeaveZone(Player *player, uint32 zone)
Definition: OutdoorPvP.cpp:69
Map * GetMap() const
Definition: OutdoorPvP.h:195
ControlZoneHandlerMap ControlZoneHandlers
Definition: OutdoorPvP.h:204
void SendDefenseMessage(uint32 zoneId, uint32 id)
Definition: OutdoorPvP.cpp:206
void KilledMonsterCredit(uint32 entry, ObjectGuid guid=ObjectGuid::Empty)
Definition: Player.cpp:16680
Item * StoreNewItem(ItemPosCountVec const &pos, uint32 itemId, bool update, ItemRandomBonusListId randomBonusListId=0, GuidSet const &allowedLooters=GuidSet(), ItemContext context=ItemContext::NONE, std::vector< int32 > const *bonusListIDs=nullptr, bool addToCollection=true)
Definition: Player.cpp:11537
void SetPlayerFlag(PlayerFlags flags)
Definition: Player.h:2738
void SendDirectMessage(WorldPacket const *data) const
Definition: Player.cpp:6324
bool ActivateTaxiPathTo(std::vector< uint32 > const &nodes, Creature *npc=nullptr, uint32 spellid=0, uint32 preferredMountDisplay=0)
Definition: Player.cpp:22506
void UpdatePvP(bool state, bool override=false)
Definition: Player.cpp:23360
InventoryResult CanStoreNewItem(uint8 bag, uint8 slot, ItemPosCountVec &dest, uint32 item, uint32 count, uint32 *no_space_count=nullptr) const
Definition: Player.cpp:10032
Team GetTeam() const
Definition: Player.h:2235
void SendNewItem(Item *item, uint32 quantity, bool received, bool created, bool broadcast=false, uint32 dungeonEncounterId=0)
Definition: Player.cpp:13990
Definition: Unit.h:627
void RemoveAurasDueToSpell(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, uint32 reqEffMask=0, AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)
Definition: Unit.cpp:3831
constexpr uint32 GetMapId() const
Definition: Position.h:201
SpellCastResult CastSpell(CastSpellTargetArg const &targets, uint32 spellId, CastSpellExtraArgs const &args={ })
Definition: Object.cpp:2896
uint32 GetAreaId() const
Definition: Object.h:546
uint32 GetZoneId() const
Definition: Object.h:545
std::vector< WorldStateInfo > Worldstates
WorldPacket const * Write() override
virtual void OnGameObjectCreate(GameObject *)
Definition: ZoneScript.h:74
static void VisitGridObjects(WorldObject const *obj, T &visitor, float radius, bool dont_load=true)
Definition: CellImpl.h:179
constexpr float GetPositionX() const
Definition: Position.h:76
constexpr float GetPositionY() const
Definition: Position.h:77