AzerothCore 3.3.5a
OpenSource WoW Emulator
Loading...
Searching...
No Matches
zone_dalaran.cpp File Reference
#include "AreaDefines.h"
#include "CreatureScript.h"
#include "Map.h"
#include "MoveSplineInit.h"
#include "Player.h"
#include "ScriptedCreature.h"
#include "TaskScheduler.h"
#include "World.h"
#include <algorithm>
#include <array>

Go to the source code of this file.

Classes

class  npc_steam_powered_auctioneer
 
struct  npc_steam_powered_auctioneer::npc_steam_powered_auctioneerAI
 
class  npc_mei_francis_mount
 
struct  npc_mei_francis_mount::npc_mei_francis_mountAI
 
class  npc_archmage_landalock
 
struct  npc_archmage_landalock::npc_archmage_landalockAI
 
class  npc_mageguard_dalaran
 
struct  npc_mageguard_dalaran::npc_mageguard_dalaranAI
 
struct  npc_minigob_manabonk
 
class  npc_dalaran_mage
 
struct  npc_dalaran_mage::npc_dalaran_mageAI
 
class  npc_dalaran_warrior
 
struct  npc_dalaran_warrior::npc_dalaran_warriorAI
 
struct  npc_cosmetic_toy_plane
 

Enumerations

enum  spells {
  SPELL_WARRIOR_BATTLESHOUT = 9128 ,
  SPELL_WARRIOR_DISARM = 6713 ,
  SPELL_WARRIOR_SHOUT = 19134 ,
  SPELL_WARRIOR_HAMSTRING = 9080 ,
  SPELL_BLINK = 14514 ,
  SPELL_BLIZZARD = 44178 ,
  SPELL_COC = 12611 ,
  SPELL_FROST_NOVA = 15532 ,
  SPELL_FROSTFIRE = 44614
}
 
enum  ArchmageLandalockQuests {
  QUEST_SARTHARION_MUST_DIE = 24579 ,
  QUEST_ANUBREKHAN_MUST_DIE = 24580 ,
  QUEST_NOTH_THE_PLAGUEBINGER_MUST_DIE = 24581 ,
  QUEST_INSTRUCTOR_RAZUVIOUS_MUST_DIE = 24582 ,
  QUEST_PATCHWERK_MUST_DIE = 24583 ,
  QUEST_MALYGOS_MUST_DIE = 24584 ,
  QUEST_FLAME_LEVIATHAN_MUST_DIE = 24585 ,
  QUEST_RAZORSCALE_MUST_DIE = 24586 ,
  QUEST_IGNIS_THE_FURNACE_MASTER_MUST_DIE = 24587 ,
  QUEST_XT_002_DECONSTRUCTOR_MUST_DIE = 24588 ,
  QUEST_LORD_JARAXXUS_MUST_DIE = 24589 ,
  QUEST_LORD_MARROWGAR_MUST_DIE = 24590
}
 
enum  ArchmageLandalockImages {
  NPC_SARTHARION_IMAGE = 37849 ,
  NPC_ANUBREKHAN_IMAGE = 37850 ,
  NPC_NOTH_THE_PLAGUEBINGER_IMAGE = 37851 ,
  NPC_INSTRUCTOR_RAZUVIOUS_IMAGE = 37853 ,
  NPC_PATCHWERK_IMAGE = 37854 ,
  NPC_MALYGOS_IMAGE = 37855 ,
  NPC_FLAME_LEVIATHAN_IMAGE = 37856 ,
  NPC_RAZORSCALE_IMAGE = 37858 ,
  NPC_IGNIS_THE_FURNACE_MASTER_IMAGE = 37859 ,
  NPC_XT_002_DECONSTRUCTOR_IMAGE = 37861 ,
  NPC_LORD_JARAXXUS_IMAGE = 37862 ,
  NPC_LORD_MARROWGAR_IMAGE = 37864
}
 
enum  Spells {
  SPELL_TRESPASSER_A = 54028 ,
  SPELL_TRESPASSER_H = 54029 ,
  SPELL_SUNREAVER_DISGUISE_FEMALE = 70973 ,
  SPELL_SUNREAVER_DISGUISE_MALE = 70974 ,
  SPELL_SILVER_COVENANT_DISGUISE_FEMALE = 70971 ,
  SPELL_SILVER_COVENANT_DISGUISE_MALE = 70972
}
 
enum  NPCs {
  NPC_SILVER_COVENANT_GUARDIAN_MAGE = 29254 ,
  NPC_SUNREAVER_GUARDIAN_MAGE = 29255
}
 
enum  MinigobData {
  SPELL_MANABONKED = 61834 ,
  SPELL_TELEPORT_VISUAL = 51347 ,
  SPELL_IMPROVED_BLINK = 61995 ,
  EVENT_SELECT_TARGET = 1 ,
  EVENT_POLYMORPH = 2 ,
  EVENT_LAUGH = 3 ,
  EVENT_MOVE = 4 ,
  EVENT_DESPAWN_VISUAL = 5 ,
  EVENT_DESPAWN = 6 ,
  MAIL_MINIGOB_ENTRY = 264 ,
  MAIL_DELIVER_DELAY_MIN = 5 * MINUTE ,
  MAIL_DELIVER_DELAY_MAX = 15 * MINUTE
}
 
enum  ToyPlane {
  NPC_DND_DALARAN_TOY_STORE_PLANE_STRING_HOOK = 29807 ,
  SPELL_TOY_PLANE_CABLE = 55281
}
 

Functions

template<std::size_t N>
bool IsInsideWMOGroups (WorldObject const *who, std::array< int32, N > const &groups)
 
void AddSC_dalaran ()
 

Variables

constexpr float GUARD_WATCH_RANGE = 40.0f
 
constexpr std::array< int32, 11 > WMO_GROUPS_SILVER_ENCLAVE
 
constexpr std::array< int32, 7 > WMO_GROUPS_SUNREAVERS_SANCTUARY
 

Enumeration Type Documentation

◆ ArchmageLandalockImages

Enumerator
NPC_SARTHARION_IMAGE 
NPC_ANUBREKHAN_IMAGE 
NPC_NOTH_THE_PLAGUEBINGER_IMAGE 
NPC_INSTRUCTOR_RAZUVIOUS_IMAGE 
NPC_PATCHWERK_IMAGE 
NPC_MALYGOS_IMAGE 
NPC_FLAME_LEVIATHAN_IMAGE 
NPC_RAZORSCALE_IMAGE 
NPC_IGNIS_THE_FURNACE_MASTER_IMAGE 
NPC_XT_002_DECONSTRUCTOR_IMAGE 
NPC_LORD_JARAXXUS_IMAGE 
NPC_LORD_MARROWGAR_IMAGE 
110{
111 NPC_SARTHARION_IMAGE = 37849,
112 NPC_ANUBREKHAN_IMAGE = 37850,
115 NPC_PATCHWERK_IMAGE = 37854,
116 NPC_MALYGOS_IMAGE = 37855,
118 NPC_RAZORSCALE_IMAGE = 37858,
123};
@ NPC_ANUBREKHAN_IMAGE
Definition zone_dalaran.cpp:112
@ NPC_LORD_MARROWGAR_IMAGE
Definition zone_dalaran.cpp:122
@ NPC_IGNIS_THE_FURNACE_MASTER_IMAGE
Definition zone_dalaran.cpp:119
@ NPC_XT_002_DECONSTRUCTOR_IMAGE
Definition zone_dalaran.cpp:120
@ NPC_SARTHARION_IMAGE
Definition zone_dalaran.cpp:111
@ NPC_PATCHWERK_IMAGE
Definition zone_dalaran.cpp:115
@ NPC_INSTRUCTOR_RAZUVIOUS_IMAGE
Definition zone_dalaran.cpp:114
@ NPC_NOTH_THE_PLAGUEBINGER_IMAGE
Definition zone_dalaran.cpp:113
@ NPC_LORD_JARAXXUS_IMAGE
Definition zone_dalaran.cpp:121
@ NPC_MALYGOS_IMAGE
Definition zone_dalaran.cpp:116
@ NPC_FLAME_LEVIATHAN_IMAGE
Definition zone_dalaran.cpp:117
@ NPC_RAZORSCALE_IMAGE
Definition zone_dalaran.cpp:118

◆ ArchmageLandalockQuests

Enumerator
QUEST_SARTHARION_MUST_DIE 
QUEST_ANUBREKHAN_MUST_DIE 
QUEST_NOTH_THE_PLAGUEBINGER_MUST_DIE 
QUEST_INSTRUCTOR_RAZUVIOUS_MUST_DIE 
QUEST_PATCHWERK_MUST_DIE 
QUEST_MALYGOS_MUST_DIE 
QUEST_FLAME_LEVIATHAN_MUST_DIE 
QUEST_RAZORSCALE_MUST_DIE 
QUEST_IGNIS_THE_FURNACE_MASTER_MUST_DIE 
QUEST_XT_002_DECONSTRUCTOR_MUST_DIE 
QUEST_LORD_JARAXXUS_MUST_DIE 
QUEST_LORD_MARROWGAR_MUST_DIE 
94{
107};
@ QUEST_INSTRUCTOR_RAZUVIOUS_MUST_DIE
Definition zone_dalaran.cpp:98
@ QUEST_MALYGOS_MUST_DIE
Definition zone_dalaran.cpp:100
@ QUEST_LORD_MARROWGAR_MUST_DIE
Definition zone_dalaran.cpp:106
@ QUEST_ANUBREKHAN_MUST_DIE
Definition zone_dalaran.cpp:96
@ QUEST_FLAME_LEVIATHAN_MUST_DIE
Definition zone_dalaran.cpp:101
@ QUEST_IGNIS_THE_FURNACE_MASTER_MUST_DIE
Definition zone_dalaran.cpp:103
@ QUEST_LORD_JARAXXUS_MUST_DIE
Definition zone_dalaran.cpp:105
@ QUEST_RAZORSCALE_MUST_DIE
Definition zone_dalaran.cpp:102
@ QUEST_XT_002_DECONSTRUCTOR_MUST_DIE
Definition zone_dalaran.cpp:104
@ QUEST_SARTHARION_MUST_DIE
Definition zone_dalaran.cpp:95
@ QUEST_PATCHWERK_MUST_DIE
Definition zone_dalaran.cpp:99
@ QUEST_NOTH_THE_PLAGUEBINGER_MUST_DIE
Definition zone_dalaran.cpp:97

◆ MinigobData

Enumerator
SPELL_MANABONKED 
SPELL_TELEPORT_VISUAL 
SPELL_IMPROVED_BLINK 
EVENT_SELECT_TARGET 
EVENT_POLYMORPH 
EVENT_LAUGH 
EVENT_MOVE 
EVENT_DESPAWN_VISUAL 
EVENT_DESPAWN 
MAIL_MINIGOB_ENTRY 
MAIL_DELIVER_DELAY_MIN 
MAIL_DELIVER_DELAY_MAX 
356{
357 SPELL_MANABONKED = 61834,
358 SPELL_TELEPORT_VISUAL = 51347,
359 SPELL_IMPROVED_BLINK = 61995,
360
362 EVENT_POLYMORPH = 2,
363 EVENT_LAUGH = 3,
364 EVENT_MOVE = 4,
366 EVENT_DESPAWN = 6,
367
368 MAIL_MINIGOB_ENTRY = 264,
371};
constexpr auto MINUTE
Definition Common.h:47
@ MAIL_DELIVER_DELAY_MIN
Definition zone_dalaran.cpp:369
@ SPELL_MANABONKED
Definition zone_dalaran.cpp:357
@ MAIL_DELIVER_DELAY_MAX
Definition zone_dalaran.cpp:370
@ EVENT_DESPAWN
Definition zone_dalaran.cpp:366
@ MAIL_MINIGOB_ENTRY
Definition zone_dalaran.cpp:368
@ EVENT_SELECT_TARGET
Definition zone_dalaran.cpp:361
@ SPELL_TELEPORT_VISUAL
Definition zone_dalaran.cpp:358
@ EVENT_POLYMORPH
Definition zone_dalaran.cpp:362
@ EVENT_MOVE
Definition zone_dalaran.cpp:364
@ EVENT_DESPAWN_VISUAL
Definition zone_dalaran.cpp:365
@ SPELL_IMPROVED_BLINK
Definition zone_dalaran.cpp:359
@ EVENT_LAUGH
Definition zone_dalaran.cpp:363

◆ NPCs

enum NPCs
Enumerator
NPC_SILVER_COVENANT_GUARDIAN_MAGE 
NPC_SUNREAVER_GUARDIAN_MAGE 
236{
239};
@ NPC_SILVER_COVENANT_GUARDIAN_MAGE
Definition zone_dalaran.cpp:237
@ NPC_SUNREAVER_GUARDIAN_MAGE
Definition zone_dalaran.cpp:238

◆ spells

enum spells
Enumerator
SPELL_WARRIOR_BATTLESHOUT 
SPELL_WARRIOR_DISARM 
SPELL_WARRIOR_SHOUT 
SPELL_WARRIOR_HAMSTRING 
SPELL_BLINK 
SPELL_BLIZZARD 
SPELL_COC 
SPELL_FROST_NOVA 
SPELL_FROSTFIRE 
78{
79 // Sewers Warrior Spells
82 SPELL_WARRIOR_SHOUT = 19134,
84
85 // Sewers Mage Spells
86 SPELL_BLINK = 14514,
87 SPELL_BLIZZARD = 44178,
88 SPELL_COC = 12611,
89 SPELL_FROST_NOVA = 15532,
90 SPELL_FROSTFIRE = 44614
91};
@ SPELL_BLINK
Definition zone_dalaran.cpp:86
@ SPELL_WARRIOR_BATTLESHOUT
Definition zone_dalaran.cpp:80
@ SPELL_WARRIOR_DISARM
Definition zone_dalaran.cpp:81
@ SPELL_COC
Definition zone_dalaran.cpp:88
@ SPELL_WARRIOR_HAMSTRING
Definition zone_dalaran.cpp:83
@ SPELL_BLIZZARD
Definition zone_dalaran.cpp:87
@ SPELL_FROST_NOVA
Definition zone_dalaran.cpp:89
@ SPELL_WARRIOR_SHOUT
Definition zone_dalaran.cpp:82
@ SPELL_FROSTFIRE
Definition zone_dalaran.cpp:90

◆ Spells

enum Spells
Enumerator
SPELL_TRESPASSER_A 
SPELL_TRESPASSER_H 
SPELL_SUNREAVER_DISGUISE_FEMALE 
SPELL_SUNREAVER_DISGUISE_MALE 
SPELL_SILVER_COVENANT_DISGUISE_FEMALE 
SPELL_SILVER_COVENANT_DISGUISE_MALE 
225{
226 SPELL_TRESPASSER_A = 54028,
227 SPELL_TRESPASSER_H = 54029,
228
233};
@ SPELL_SUNREAVER_DISGUISE_MALE
Definition zone_dalaran.cpp:230
@ SPELL_SILVER_COVENANT_DISGUISE_FEMALE
Definition zone_dalaran.cpp:231
@ SPELL_TRESPASSER_H
Definition zone_dalaran.cpp:227
@ SPELL_SILVER_COVENANT_DISGUISE_MALE
Definition zone_dalaran.cpp:232
@ SPELL_TRESPASSER_A
Definition zone_dalaran.cpp:226
@ SPELL_SUNREAVER_DISGUISE_FEMALE
Definition zone_dalaran.cpp:229

◆ ToyPlane

enum ToyPlane
Enumerator
NPC_DND_DALARAN_TOY_STORE_PLANE_STRING_HOOK 
SPELL_TOY_PLANE_CABLE 
664{
666
667 SPELL_TOY_PLANE_CABLE = 55281,
668};
@ NPC_DND_DALARAN_TOY_STORE_PLANE_STRING_HOOK
Definition zone_dalaran.cpp:665
@ SPELL_TOY_PLANE_CABLE
Definition zone_dalaran.cpp:667

Function Documentation

◆ AddSC_dalaran()

void AddSC_dalaran ( )
719{
720 // our
724 new npc_dalaran_mage();
729}
#define RegisterCreatureAI(ai_name)
Definition CreatureScript.h:71
Definition zone_dalaran.cpp:126
Definition zone_dalaran.cpp:478
Definition zone_dalaran.cpp:582
Definition zone_dalaran.cpp:282
Definition zone_dalaran.cpp:54
Definition zone_dalaran.cpp:30
Definition zone_dalaran.cpp:671
Definition zone_dalaran.cpp:374

References RegisterCreatureAI.

Referenced by AddNorthrendScripts().

◆ IsInsideWMOGroups()

template<std::size_t N>
bool IsInsideWMOGroups ( WorldObject const *  who,
std::array< int32, N > const &  groups 
)
270{
271 uint32 mogpFlags;
272 int32 adtId, rootId, groupId;
273 if (!who->GetMap()->GetAreaInfo(who->GetPhaseMask(),
274 who->GetPositionX(), who->GetPositionY(), who->GetPositionZ(),
275 mogpFlags, adtId, rootId, groupId))
276 return false;
277
278 return std::find(groups.begin(), groups.end(), groupId) != groups.end();
279}
std::int32_t int32
Definition Define.h:103
std::uint32_t uint32
Definition Define.h:107

References Map::GetAreaInfo(), WorldObject::GetMap(), WorldObject::GetPhaseMask(), Position::GetPositionX(), Position::GetPositionY(), and Position::GetPositionZ().

Referenced by npc_mageguard_dalaran::npc_mageguard_dalaranAI::MoveInLineOfSight().

Variable Documentation

◆ GUARD_WATCH_RANGE

constexpr float GUARD_WATCH_RANGE = 40.0f
constexpr

◆ WMO_GROUPS_SILVER_ENCLAVE

constexpr std::array<int32, 11> WMO_GROUPS_SILVER_ENCLAVE
constexpr
Initial value:
=
{
24537, 24704, 24713, 25067, 25177, 25367, 25368, 25369, 25370, 25371, 25768
}
260{
261 24537, 24704, 24713, 25067, 25177, 25367, 25368, 25369, 25370, 25371, 25768
262};

Referenced by npc_mageguard_dalaran::npc_mageguard_dalaranAI::MoveInLineOfSight().

◆ WMO_GROUPS_SUNREAVERS_SANCTUARY

constexpr std::array<int32, 7> WMO_GROUPS_SUNREAVERS_SANCTUARY
constexpr
Initial value:
=
{
24725, 25066, 25145, 25381, 25383, 25384, 25406
}
264{
265 24725, 25066, 25145, 25381, 25383, 25384, 25406
266};

Referenced by npc_mageguard_dalaran::npc_mageguard_dalaranAI::MoveInLineOfSight().