Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Toggle main menu visibility
Loading...
Searching...
No Matches
instance_azjol_nerub.cpp
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
#include "
ScriptMgr.h
"
7
#include "
InstanceScript.h
"
8
#include "
azjol_nerub.h
"
9
10
DoorData
const
doorData
[] =
11
{
12
{
GO_KRIKTHIR_DOOR
,
DATA_KRIKTHIR_THE_GATEWATCHER
,
DOOR_TYPE_PASSAGE
,
BOUNDARY_NONE
},
13
{
GO_ANUBARAK_DOOR_1
,
DATA_ANUBARAK
,
DOOR_TYPE_ROOM
,
BOUNDARY_NONE
},
14
{
GO_ANUBARAK_DOOR_2
,
DATA_ANUBARAK
,
DOOR_TYPE_ROOM
,
BOUNDARY_NONE
},
15
{
GO_ANUBARAK_DOOR_3
,
DATA_ANUBARAK
,
DOOR_TYPE_ROOM
,
BOUNDARY_NONE
},
16
{ 0, 0,
DOOR_TYPE_ROOM
,
BOUNDARY_NONE
}
// END
17
};
18
19
class
instance_azjol_nerub
:
public
InstanceMapScript
20
{
21
public
:
22
instance_azjol_nerub
() :
InstanceMapScript
(
AzjolNerubScriptName
, 601) { }
23
24
struct
instance_azjol_nerub_InstanceScript
:
public
InstanceScript
25
{
26
instance_azjol_nerub_InstanceScript
(
Map
* map) :
InstanceScript
(map)
27
{
28
SetBossNumber
(
EncounterCount
);
29
LoadDoorData
(
doorData
);
30
31
KrikthirGUID
= 0;
32
HadronoxGUID
= 0;
33
AnubarakGUID
= 0;
34
WatcherGashraGUID
= 0;
35
WatcherSilthikGUID
= 0;
36
WatcherNarjilGUID
= 0;
37
}
38
39
void
OnCreatureCreate
(
Creature
* creature)
OVERRIDE
40
{
41
switch
(creature->GetEntry())
42
{
43
case
NPC_KRIKTHIR
:
44
KrikthirGUID
= creature->GetGUID();
45
break
;
46
case
NPC_HADRONOX
:
47
HadronoxGUID
= creature->GetGUID();
48
break
;
49
case
NPC_ANUBARAK
:
50
AnubarakGUID
= creature->GetGUID();
51
break
;
52
case
NPC_WATCHER_NARJIL
:
53
WatcherNarjilGUID
= creature->GetGUID();
54
break
;
55
case
NPC_WATCHER_GASHRA
:
56
WatcherGashraGUID
= creature->GetGUID();
57
break
;
58
case
NPC_WATCHER_SILTHIK
:
59
WatcherSilthikGUID
= creature->GetGUID();
60
break
;
61
default
:
62
break
;
63
}
64
}
65
66
void
OnGameObjectCreate
(
GameObject
* go)
OVERRIDE
67
{
68
switch
(go->GetEntry())
69
{
70
case
GO_KRIKTHIR_DOOR
:
71
case
GO_ANUBARAK_DOOR_1
:
72
case
GO_ANUBARAK_DOOR_2
:
73
case
GO_ANUBARAK_DOOR_3
:
74
AddDoor
(go,
true
);
75
break
;
76
default
:
77
break
;
78
}
79
}
80
81
void
OnGameObjectRemove
(
GameObject
* go)
OVERRIDE
82
{
83
switch
(go->GetEntry())
84
{
85
case
GO_KRIKTHIR_DOOR
:
86
case
GO_ANUBARAK_DOOR_1
:
87
case
GO_ANUBARAK_DOOR_2
:
88
case
GO_ANUBARAK_DOOR_3
:
89
AddDoor
(go,
false
);
90
break
;
91
default
:
92
break
;
93
}
94
}
95
96
uint64
GetData64
(
uint32
type)
const
OVERRIDE
97
{
98
switch
(type)
99
{
100
case
DATA_KRIKTHIR_THE_GATEWATCHER
:
101
return
KrikthirGUID
;
102
case
DATA_HADRONOX
:
103
return
HadronoxGUID
;
104
case
DATA_ANUBARAK
:
105
return
AnubarakGUID
;
106
case
DATA_WATCHER_GASHRA
:
107
return
WatcherGashraGUID
;
108
case
DATA_WATCHER_SILTHIK
:
109
return
WatcherSilthikGUID
;
110
case
DATA_WATCHER_NARJIL
:
111
return
WatcherNarjilGUID
;
112
default
:
113
break
;
114
}
115
116
return
0;
117
}
118
119
std::string
GetSaveData
()
OVERRIDE
120
{
121
OUT_SAVE_INST_DATA
;
122
123
std::ostringstream saveStream;
124
saveStream <<
"A N "
<<
GetBossSaveData
();
125
126
OUT_SAVE_INST_DATA_COMPLETE
;
127
return
saveStream.str();
128
}
129
130
void
Load
(
char
const
* str)
OVERRIDE
131
{
132
if
(!str)
133
{
134
OUT_LOAD_INST_DATA_FAIL
;
135
return
;
136
}
137
138
OUT_LOAD_INST_DATA
(str);
139
140
char
dataHead1, dataHead2;
141
142
std::istringstream loadStream(str);
143
loadStream >> dataHead1 >> dataHead2;
144
145
if
(dataHead1 ==
'A'
&& dataHead2 ==
'N'
)
146
{
147
for
(
uint32
i = 0; i <
EncounterCount
; ++i)
148
{
149
uint32
tmpState;
150
loadStream >> tmpState;
151
if
(tmpState ==
IN_PROGRESS
|| tmpState >
SPECIAL
)
152
tmpState =
NOT_STARTED
;
153
SetBossState
(i,
EncounterState
(tmpState));
154
}
155
}
156
else
157
OUT_LOAD_INST_DATA_FAIL
;
158
159
OUT_LOAD_INST_DATA_COMPLETE
;
160
}
161
162
protected
:
163
uint64
KrikthirGUID
;
164
uint64
HadronoxGUID
;
165
uint64
AnubarakGUID
;
166
uint64
WatcherGashraGUID
;
167
uint64
WatcherSilthikGUID
;
168
uint64
WatcherNarjilGUID
;
169
};
170
171
InstanceScript
*
GetInstanceScript
(
InstanceMap
* map)
const
OVERRIDE
172
{
173
return
new
instance_azjol_nerub_InstanceScript
(map);
174
}
175
};
176
177
void
AddSC_instance_azjol_nerub
()
178
{
179
new
instance_azjol_nerub
();
180
}
uint32
std::uint32_t uint32
Definition
Define.h:77
OVERRIDE
#define OVERRIDE
Definition
Define.h:60
uint64
std::uint64_t uint64
Definition
Define.h:76
InstanceScript.h
OUT_LOAD_INST_DATA_FAIL
#define OUT_LOAD_INST_DATA_FAIL
Definition
InstanceScript.h:18
EncounterState
EncounterState
Definition
InstanceScript.h:45
IN_PROGRESS
@ IN_PROGRESS
Definition
InstanceScript.h:47
SPECIAL
@ SPECIAL
Definition
InstanceScript.h:50
NOT_STARTED
@ NOT_STARTED
Definition
InstanceScript.h:46
OUT_SAVE_INST_DATA_COMPLETE
#define OUT_SAVE_INST_DATA_COMPLETE
Definition
InstanceScript.h:15
OUT_LOAD_INST_DATA_COMPLETE
#define OUT_LOAD_INST_DATA_COMPLETE
Definition
InstanceScript.h:17
OUT_SAVE_INST_DATA
#define OUT_SAVE_INST_DATA
Definition
InstanceScript.h:14
OUT_LOAD_INST_DATA
#define OUT_LOAD_INST_DATA(a)
Definition
InstanceScript.h:16
DOOR_TYPE_ROOM
@ DOOR_TYPE_ROOM
Definition
InstanceScript.h:56
DOOR_TYPE_PASSAGE
@ DOOR_TYPE_PASSAGE
Definition
InstanceScript.h:57
BOUNDARY_NONE
@ BOUNDARY_NONE
Definition
InstanceScript.h:64
ScriptMgr.h
azjol_nerub.h
AzjolNerubScriptName
#define AzjolNerubScriptName
Definition
azjol_nerub.h:9
GO_ANUBARAK_DOOR_1
@ GO_ANUBARAK_DOOR_1
Definition
azjol_nerub.h:40
GO_ANUBARAK_DOOR_3
@ GO_ANUBARAK_DOOR_3
Definition
azjol_nerub.h:42
GO_KRIKTHIR_DOOR
@ GO_KRIKTHIR_DOOR
Definition
azjol_nerub.h:39
GO_ANUBARAK_DOOR_2
@ GO_ANUBARAK_DOOR_2
Definition
azjol_nerub.h:41
NPC_KRIKTHIR
@ NPC_KRIKTHIR
Definition
azjol_nerub.h:28
NPC_WATCHER_GASHRA
@ NPC_WATCHER_GASHRA
Definition
azjol_nerub.h:33
NPC_ANUBARAK
@ NPC_ANUBARAK
Definition
azjol_nerub.h:30
NPC_WATCHER_NARJIL
@ NPC_WATCHER_NARJIL
Definition
azjol_nerub.h:32
NPC_HADRONOX
@ NPC_HADRONOX
Definition
azjol_nerub.h:29
NPC_WATCHER_SILTHIK
@ NPC_WATCHER_SILTHIK
Definition
azjol_nerub.h:34
DATA_WATCHER_SILTHIK
@ DATA_WATCHER_SILTHIK
Definition
azjol_nerub.h:22
DATA_ANUBARAK
@ DATA_ANUBARAK
Definition
azjol_nerub.h:18
DATA_HADRONOX
@ DATA_HADRONOX
Definition
azjol_nerub.h:17
DATA_WATCHER_GASHRA
@ DATA_WATCHER_GASHRA
Definition
azjol_nerub.h:21
DATA_KRIKTHIR_THE_GATEWATCHER
@ DATA_KRIKTHIR_THE_GATEWATCHER
Definition
azjol_nerub.h:16
DATA_WATCHER_NARJIL
@ DATA_WATCHER_NARJIL
Definition
azjol_nerub.h:23
EncounterCount
uint32 const EncounterCount
Definition
baradin_hold.h:15
Creature
Definition
Creature.h:427
GameObject
Definition
GameObject.h:629
InstanceMap
Definition
Map.h:637
InstanceMapScript::InstanceMapScript
InstanceMapScript(const char *name, uint32 mapId)
Definition
ScriptMgr.cpp:1412
InstanceScript
Definition
InstanceScript.h:123
InstanceScript::InstanceScript
InstanceScript(Map *map)
Definition
InstanceScript.h:125
InstanceScript::SetBossNumber
void SetBossNumber(uint32 number)
Definition
InstanceScript.h:212
InstanceScript::SetBossState
virtual bool SetBossState(uint32 id, EncounterState state)
Definition
InstanceScript.cpp:182
InstanceScript::GetBossSaveData
std::string GetBossSaveData()
Definition
InstanceScript.cpp:239
InstanceScript::AddDoor
void AddDoor(GameObject *door, bool add)
Definition
InstanceScript.cpp:126
InstanceScript::LoadDoorData
void LoadDoorData(DoorData const *data)
Definition
InstanceScript.cpp:64
Map
Definition
Map.h:238
instance_azjol_nerub
Definition
instance_azjol_nerub.cpp:20
instance_azjol_nerub::GetInstanceScript
InstanceScript * GetInstanceScript(InstanceMap *map) const OVERRIDE
Definition
instance_azjol_nerub.cpp:171
instance_azjol_nerub::instance_azjol_nerub
instance_azjol_nerub()
Definition
instance_azjol_nerub.cpp:22
AddSC_instance_azjol_nerub
void AddSC_instance_azjol_nerub()
Definition
instance_azjol_nerub.cpp:177
doorData
DoorData const doorData[]
Definition
instance_azjol_nerub.cpp:10
doorData
DoorData const doorData[]
Definition
instance_baradin_hold.cpp:10
DoorData
Definition
InstanceScript.h:82
instance_azjol_nerub::instance_azjol_nerub_InstanceScript
Definition
instance_azjol_nerub.cpp:25
instance_azjol_nerub::instance_azjol_nerub_InstanceScript::OnCreatureCreate
void OnCreatureCreate(Creature *creature) OVERRIDE
Definition
instance_azjol_nerub.cpp:39
instance_azjol_nerub::instance_azjol_nerub_InstanceScript::WatcherGashraGUID
uint64 WatcherGashraGUID
Definition
instance_azjol_nerub.cpp:166
instance_azjol_nerub::instance_azjol_nerub_InstanceScript::HadronoxGUID
uint64 HadronoxGUID
Definition
instance_azjol_nerub.cpp:164
instance_azjol_nerub::instance_azjol_nerub_InstanceScript::Load
void Load(char const *str) OVERRIDE
Definition
instance_azjol_nerub.cpp:130
instance_azjol_nerub::instance_azjol_nerub_InstanceScript::KrikthirGUID
uint64 KrikthirGUID
Definition
instance_azjol_nerub.cpp:163
instance_azjol_nerub::instance_azjol_nerub_InstanceScript::instance_azjol_nerub_InstanceScript
instance_azjol_nerub_InstanceScript(Map *map)
Definition
instance_azjol_nerub.cpp:26
instance_azjol_nerub::instance_azjol_nerub_InstanceScript::OnGameObjectRemove
void OnGameObjectRemove(GameObject *go) OVERRIDE
Definition
instance_azjol_nerub.cpp:81
instance_azjol_nerub::instance_azjol_nerub_InstanceScript::WatcherNarjilGUID
uint64 WatcherNarjilGUID
Definition
instance_azjol_nerub.cpp:168
instance_azjol_nerub::instance_azjol_nerub_InstanceScript::GetData64
uint64 GetData64(uint32 type) const OVERRIDE
Definition
instance_azjol_nerub.cpp:96
instance_azjol_nerub::instance_azjol_nerub_InstanceScript::OnGameObjectCreate
void OnGameObjectCreate(GameObject *go) OVERRIDE
Definition
instance_azjol_nerub.cpp:66
instance_azjol_nerub::instance_azjol_nerub_InstanceScript::WatcherSilthikGUID
uint64 WatcherSilthikGUID
Definition
instance_azjol_nerub.cpp:167
instance_azjol_nerub::instance_azjol_nerub_InstanceScript::GetSaveData
std::string GetSaveData() OVERRIDE
Definition
instance_azjol_nerub.cpp:119
instance_azjol_nerub::instance_azjol_nerub_InstanceScript::AnubarakGUID
uint64 AnubarakGUID
Definition
instance_azjol_nerub.cpp:165
src
server
scripts
Northrend
AzjolNerub
AzjolNerub
instance_azjol_nerub.cpp
Generated on
for Project SkyFire Core by
1.17.0