Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Loading...
Searching...
No Matches
OutdoorPvPNA.h
Go to the documentation of this file.
1/*
2* This file is part of Project SkyFire https://www.projectskyfire.org.
3* See LICENSE.md file for Copyright information
4*/
5
6#ifndef OUTDOOR_PVP_NA_
7#define OUTDOOR_PVP_NA_
8
9#include "OutdoorPvP.h"
10
12
14{
17 NA_CAPTURE_BUFF = 33795 // strength of the halaani
18};
19
20// kill credit for pks
22
24
25const uint32 NA_BUFF_ZONE = 3518;
26
28
29const uint32 NA_HALAA_GRAVEYARD_ZONE = 3518; // need to add zone id, not area id
30
31const uint32 NA_RESPAWN_TIME = 3600000; // one hour to capture after defeating all guards
32
33const uint32 NA_GUARD_CHECK_TIME = 500; // every half second
34
72
74
75// used to access the elements of Horde/AllyControlGOs
95
96const uint32 FlightPathStartNodes[FLIGHT_NODES_NUM] = {103, 105, 107, 109};
97const uint32 FlightPathEndNodes[FLIGHT_NODES_NUM] = {104, 106, 108, 110};
98
106
107// spawned when the alliance is attacking, horde is in control
109{
110 {182267, 530, -1815.8f, 8036.51f, -26.2354f, -2.89725f, 0.0f, 0.0f, 0.992546f, -0.121869f}, //ALLY_ROOST_SOUTH
111 {182280, 530, -1507.95f, 8132.1f, -19.5585f, -1.3439f, 0.0f, 0.0f, 0.622515f, -0.782608f}, //ALLY_ROOST_WEST
112 {182281, 530, -1384.52f, 7779.33f, -11.1663f, -0.575959f, 0.0f, 0.0f, 0.284015f, -0.95882f}, //ALLY_ROOST_NORTH
113 {182282, 530, -1650.11f, 7732.56f, -15.4505f, -2.80998f, 0.0f, 0.0f, 0.986286f, -0.165048f}, //ALLY_ROOST_EAST
114
115 {182222, 530, -1825.4022f, 8039.2602f, -26.08f, -2.89725f, 0.0f, 0.0f, 0.992546f, -0.121869f}, //HORDE_BOMB_WAGON_SOUTH
116 {182272, 530, -1515.37f, 8136.91f, -20.42f, -1.3439f, 0.0f, 0.0f, 0.622515f, -0.782608f}, //HORDE_BOMB_WAGON_WEST
117 {182273, 530, -1377.95f, 7773.44f, -10.31f, -0.575959f, 0.0f, 0.0f, 0.284015f, -0.95882f}, //HORDE_BOMB_WAGON_NORTH
118 {182274, 530, -1659.87f, 7733.15f, -15.75f, -2.80998f, 0.0f, 0.0f, 0.986286f, -0.165048f}, //HORDE_BOMB_WAGON_EAST
119
120 {182266, 530, -1815.8f, 8036.51f, -26.2354f, -2.89725f, 0.0f, 0.0f, 0.992546f, -0.121869f}, //DESTROYED_ALLY_ROOST_SOUTH
121 {182275, 530, -1507.95f, 8132.1f, -19.5585f, -1.3439f, 0.0f, 0.0f, 0.622515f, -0.782608f}, //DESTROYED_ALLY_ROOST_WEST
122 {182276, 530, -1384.52f, 7779.33f, -11.1663f, -0.575959f, 0.0f, 0.0f, 0.284015f, -0.95882f}, //DESTROYED_ALLY_ROOST_NORTH
123 {182277, 530, -1650.11f, 7732.56f, -15.4505f, -2.80998f, 0.0f, 0.0f, 0.986286f, -0.165048f} //DESTROYED_ALLY_ROOST_EAST
124};
125
126// spawned when the horde is attacking, alliance is in control
128{
129 {182301, 530, -1815.8f, 8036.51f, -26.2354f, -2.89725f, 0.0f, 0.0f, 0.992546f, -0.121869f}, //HORDE_ROOST_SOUTH
130 {182302, 530, -1507.95f, 8132.1f, -19.5585f, -1.3439f, 0.0f, 0.0f, 0.622515f, -0.782608f}, //HORDE_ROOST_WEST
131 {182303, 530, -1384.52f, 7779.33f, -11.1663f, -0.575959f, 0.0f, 0.0f, 0.284015f, -0.95882f}, //HORDE_ROOST_NORTH
132 {182304, 530, -1650.11f, 7732.56f, -15.4505f, -2.80998f, 0.0f, 0.0f, 0.986286f, -0.165048f}, //HORDE_ROOST_EAST
133
134 {182305, 530, -1825.4022f, 8039.2602f, -26.08f, -2.89725f, 0.0f, 0.0f, 0.992546f, -0.121869f}, //ALLY_BOMB_WAGON_SOUTH
135 {182306, 530, -1515.37f, 8136.91f, -20.42f, -1.3439f, 0.0f, 0.0f, 0.622515f, -0.782608f}, //ALLY_BOMB_WAGON_WEST
136 {182307, 530, -1377.95f, 7773.44f, -10.31f, -0.575959f, 0.0f, 0.0f, 0.284015f, -0.95882f}, //ALLY_BOMB_WAGON_NORTH
137 {182308, 530, -1659.87f, 7733.15f, -15.75f, -2.80998f, 0.0f, 0.0f, 0.986286f, -0.165048f}, //ALLY_BOMB_WAGON_EAST
138
139 {182297, 530, -1815.8f, 8036.51f, -26.2354f, -2.89725f, 0.0f, 0.0f, 0.992546f, -0.121869f}, //DESTROYED_HORDE_ROOST_SOUTH
140 {182298, 530, -1507.95f, 8132.1f, -19.5585f, -1.3439f, 0.0f, 0.0f, 0.622515f, -0.782608f}, //DESTROYED_HORDE_ROOST_WEST
141 {182299, 530, -1384.52f, 7779.33f, -11.1663f, -0.575959f, 0.0f, 0.0f, 0.284015f, -0.95882f}, //DESTROYED_HORDE_ROOST_NORTH
142 {182300, 530, -1650.11f, 7732.56f, -15.4505f, -2.80998f, 0.0f, 0.0f, 0.986286f, -0.165048f} //DESTROYED_HORDE_ROOST_EAST
143};
144
171
173{
174 {18816, 67, 530, -1523.92f, 7951.76f, -17.6942f, 3.51172f},
175 {18821, 67, 530, -1527.75f, 7952.46f, -17.6948f, 3.99317f},
176 {21474, 67, 530, -1520.14f, 7927.11f, -20.2527f, 3.39389f},
177 {21484, 67, 530, -1524.84f, 7930.34f, -20.182f, 3.6405f},
178 {21483, 67, 530, -1570.01f, 7993.8f, -22.4505f, 5.02655f},
179 {18192, 67, 530, -1654.06f, 8000.46f, -26.59f, 3.37f},
180 {18192, 67, 530, -1487.18f, 7899.1f, -19.53f, 0.954f},
181 {18192, 67, 530, -1480.88f, 7908.79f, -19.19f, 4.485f},
182 {18192, 67, 530, -1540.56f, 7995.44f, -20.45f, 0.947f},
183 {18192, 67, 530, -1546.95f, 8000.85f, -20.72f, 6.035f},
184 {18192, 67, 530, -1595.31f, 7860.53f, -21.51f, 3.747f},
185 {18192, 67, 530, -1642.31f, 7995.59f, -25.8f, 3.317f},
186 {18192, 67, 530, -1545.46f, 7995.35f, -20.63f, 1.094f},
187 {18192, 67, 530, -1487.58f, 7907.99f, -19.27f, 5.567f},
188 {18192, 67, 530, -1651.54f, 7988.56f, -26.5289f, 2.98451f},
189 {18192, 67, 530, -1602.46f, 7866.43f, -22.1177f, 4.74729f},
190 {18192, 67, 530, -1591.22f, 7875.29f, -22.3536f, 4.34587f},
191 {18192, 67, 530, -1550.6f, 7944.45f, -21.63f, 3.559f},
192 {18192, 67, 530, -1545.57f, 7935.83f, -21.13f, 3.448f},
193 {18192, 67, 530, -1550.86f, 7937.56f, -21.7f, 3.801f}
194};
195
197{
198 {18817, 469, 530, -1591.18f, 8020.39f, -22.2042f, 4.59022f},
199 {18822, 469, 530, -1588.0f, 8019.0f, -22.2042f, 4.06662f},
200 {21485, 469, 530, -1521.93f, 7927.37f, -20.2299f, 3.24631f},
201 {21487, 469, 530, -1540.33f, 7971.95f, -20.7186f, 3.07178f},
202 {21488, 469, 530, -1570.01f, 7993.8f, -22.4505f, 5.02655f},
203 {18256, 469, 530, -1654.06f, 8000.46f, -26.59f, 3.37f},
204 {18256, 469, 530, -1487.18f, 7899.1f, -19.53f, 0.954f},
205 {18256, 469, 530, -1480.88f, 7908.79f, -19.19f, 4.485f},
206 {18256, 469, 530, -1540.56f, 7995.44f, -20.45f, 0.947f},
207 {18256, 469, 530, -1546.95f, 8000.85f, -20.72f, 6.035f},
208 {18256, 469, 530, -1595.31f, 7860.53f, -21.51f, 3.747f},
209 {18256, 469, 530, -1642.31f, 7995.59f, -25.8f, 3.317f},
210 {18256, 469, 530, -1545.46f, 7995.35f, -20.63f, 1.094f},
211 {18256, 469, 530, -1487.58f, 7907.99f, -19.27f, 5.567f},
212 {18256, 469, 530, -1651.54f, 7988.56f, -26.5289f, 2.98451f},
213 {18256, 469, 530, -1602.46f, 7866.43f, -22.1177f, 4.74729f},
214 {18256, 469, 530, -1591.22f, 7875.29f, -22.3536f, 4.34587f},
215 {18256, 469, 530, -1603.75f, 8000.36f, -24.18f, 4.516f},
216 {18256, 469, 530, -1585.73f, 7994.68f, -23.29f, 4.439f},
217 {18256, 469, 530, -1595.5f, 7991.27f, -23.53f, 4.738f}
218};
219
227
236
237class Unit;
238class Creature;
239class OutdoorPvPNA;
240
242{
243 public:
245
246 bool Update(uint32 diff) OVERRIDE;
247 void ChangeState() OVERRIDE;
250
251 // used when player is activated/inactivated in the area
252 bool HandlePlayerEnter(Player* player) OVERRIDE;
253 void HandlePlayerLeave(Player* player) OVERRIDE;
254 bool HandleCustomSpell(Player* player, uint32 spellId, GameObject* go) OVERRIDE;
255 int32 HandleOpenGo(Player* player, uint64 guid) OVERRIDE;
256
259
260 protected:
261 // called when a faction takes control
262 void FactionTakeOver(uint32 team);
263 void DeSpawnNPCs();
264 void DeSpawnGOs();
265 void SpawnNPCsForTeam(uint32 team);
266 void SpawnGOsForTeam(uint32 team);
269
270 private:
281};
282
284{
285 public:
286 OutdoorPvPNA();
287
289 void HandlePlayerEnterZone(Player* player, uint32 zone) OVERRIDE;
290 void HandlePlayerLeaveZone(Player* player, uint32 zone) OVERRIDE;
291 bool Update(uint32 diff) OVERRIDE;
294 void HandleKillImpl(Player* player, Unit* killed) OVERRIDE;
295
296 private:
298};
299
300#endif
std::int32_t int32
Definition Define.h:73
std::uint32_t uint32
Definition Define.h:77
#define OVERRIDE
Definition Define.h:60
std::uint64_t uint64
Definition Define.h:76
const uint32 NA_GUARD_CHECK_TIME
const uint32 NA_HALAA_GRAVEYARD
HalaaStates
@ HALAA_N
@ HALAA_N_A
@ HALAA_H
@ HALAA_A
@ HALAA_N_H
const go_type HordeControlGOs[NA_CONTROL_GO_NUM]
const uint32 NA_GUARDS_MAX
WyvernStates
@ WYVERN_NEU_HORDE
@ WYVERN_NEU_ALLIANCE
@ WYVERN_ALLIANCE
@ WYVERN_HORDE
ControlGOTypes
@ NA_ROOST_W
@ NA_BOMB_WAGON_E
@ NA_DESTROYED_ROOST_S
@ NA_BOMB_WAGON_N
@ NA_BOMB_WAGON_W
@ NA_DESTROYED_ROOST_E
@ NA_BOMB_WAGON_S
@ NA_DESTROYED_ROOST_N
@ NA_DESTROYED_ROOST_W
@ NA_ROOST_E
@ NA_CONTROL_GO_NUM
@ NA_ROOST_N
@ NA_ROOST_S
FlightSpellsNA
@ NA_SPELL_FLY_SOUTH
@ NA_SPELL_FLY_WEST
@ NA_SPELL_FLY_EAST
@ NA_SPELL_FLY_NORTH
const creature_type AllianceControlNPCs[NA_CONTROL_NPC_NUM]
const go_type AllianceControlGOs[NA_CONTROL_GO_NUM]
const uint32 NA_RESPAWN_TIME
const uint32 NA_HALAA_GRAVEYARD_ZONE
const creature_type HordeControlNPCs[NA_CONTROL_NPC_NUM]
const uint32 FLIGHT_NODES_NUM
ControlNPCTypes
@ NA_NPC_BLADE_MERCHANT
@ NA_NPC_GUARD_10
@ NA_CONTROL_NPC_NUM
@ NA_NPC_GUARD_14
@ NA_NPC_GUARD_03
@ NA_NPC_GUARD_12
@ NA_NPC_GUARD_09
@ NA_NPC_QUARTERMASTER
@ NA_NPC_GUARD_11
@ NA_NPC_GUARD_07
@ NA_NPC_GUARD_05
@ NA_NPC_GUARD_08
@ NA_NPC_GUARD_02
@ NA_NPC_GUARD_01
@ NA_NPC_RESEARCHER
@ NA_NPC_GUARD_13
@ NA_NPC_GUARD_06
@ NA_NPC_FOOD_MERCHANT
@ NA_NPC_AMMO
@ NA_NPC_GUARD_15
@ NA_NPC_GUARD_04
const uint32 NA_CREDIT_MARKER
OutdoorPvPNASpells
@ NA_CAPTURE_BUFF
@ NA_KILL_TOKEN_HORDE
@ NA_KILL_TOKEN_ALLIANCE
OutdoorPvPNAWorldStates
@ NA_MAP_HALAA_NEU_A
@ NA_MAP_WYVERN_SOUTH_NEU_H
@ NA_MAP_HALAA_HORDE
@ NA_UI_ALLIANCE_GUARDS_SHOW
@ NA_MAP_WYVERN_NORTH_NEU_A
@ NA_UI_TOWER_SLIDER_DISPLAY
@ NA_MAP_HALAA_NEUTRAL
@ NA_MAP_WYVERN_WEST_NEU_A
@ NA_MAP_WYVERN_SOUTH_NEU_A
@ NA_MAP_WYVERN_WEST_H
@ NA_MAP_WYVERN_NORTH_NEU_H
@ NA_UI_HORDE_GUARDS_SHOW
@ NA_MAP_HALAA_ALLIANCE
@ NA_MAP_WYVERN_EAST_H
@ NA_MAP_WYVERN_SOUTH_A
@ NA_UI_TOWER_SLIDER_N
@ NA_UI_GUARDS_MAX
@ NA_MAP_WYVERN_EAST_A
@ NA_UI_TOWER_SLIDER_POS
@ NA_MAP_WYVERN_NORTH_H
@ NA_UI_GUARDS_LEFT
@ NA_MAP_WYVERN_WEST_A
@ NA_MAP_WYVERN_EAST_NEU_A
@ NA_MAP_WYVERN_EAST_NEU_H
@ NA_MAP_HALAA_NEU_H
@ NA_MAP_WYVERN_WEST_NEU_H
@ NA_MAP_WYVERN_NORTH_A
@ NA_MAP_WYVERN_SOUTH_H
const uint32 FlightPathEndNodes[FLIGHT_NODES_NUM]
const uint32 FlightPathStartNodes[FLIGHT_NODES_NUM]
const uint32 NA_BUFF_ZONE
OPvPCapturePoint(OutdoorPvP *pvp)
void UpdateWyvernRoostWorldState(uint32 roost)
void SendChangePhase() OVERRIDE
void FillInitialWorldStates(WorldStateBuilder &builder) OVERRIDE
int32 HandleOpenGo(Player *player, uint64 guid) OVERRIDE
OPvPCapturePointNA(OutdoorPvP *pvp)
uint32 GetAliveGuardsCount()
bool Update(uint32 diff) OVERRIDE
void HandlePlayerLeave(Player *player) OVERRIDE
uint32 GetControllingFaction() const
void SpawnGOsForTeam(uint32 team)
void ChangeState() OVERRIDE
void SpawnNPCsForTeam(uint32 team)
void FactionTakeOver(uint32 team)
bool HandleCustomSpell(Player *player, uint32 spellId, GameObject *go) OVERRIDE
bool HandlePlayerEnter(Player *player) OVERRIDE
void HandlePlayerEnterZone(Player *player, uint32 zone) OVERRIDE
void SendRemoveWorldStates(Player *player) OVERRIDE
bool Update(uint32 diff) OVERRIDE
void FillInitialWorldStates(WorldStateBuilder &builder) OVERRIDE
OPvPCapturePointNA * m_obj
void HandleKillImpl(Player *player, Unit *killed) OVERRIDE
bool SetupOutdoorPvP() OVERRIDE
void HandlePlayerLeaveZone(Player *player, uint32 zone) OVERRIDE
Definition Unit.h:1367