Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Toggle main menu visibility
Loading...
Searching...
No Matches
zone_isle_of_queldanas.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
/* ScriptData
7
SDName: Isle_of_Queldanas
8
SD%Complete: 100
9
SDComment: Quest support: 11524, 11525, 11532, 11533, 11542, 11543, 11541
10
SDCategory: Isle Of Quel'Danas
11
EndScriptData */
12
13
/* ContentData
14
npc_converted_sentry
15
npc_greengill_slave
16
EndContentData */
17
18
#include "
ScriptMgr.h
"
19
#include "
ScriptedCreature.h
"
20
#include "
Player.h
"
21
#include "
Pet.h
"
22
#include "
SpellInfo.h
"
23
24
/*######
25
## npc_converted_sentry
26
######*/
27
enum
ConvertedSentry
28
{
29
SAY_CONVERTED
= 0,
30
31
SPELL_CONVERT_CREDIT
= 45009
32
};
33
34
class
npc_converted_sentry
:
public
CreatureScript
35
{
36
public
:
37
npc_converted_sentry
() :
CreatureScript
(
"npc_converted_sentry"
) { }
38
39
CreatureAI
*
GetAI
(
Creature
* creature)
const
OVERRIDE
40
{
41
return
new
npc_converted_sentryAI
(creature);
42
}
43
44
struct
npc_converted_sentryAI
:
public
ScriptedAI
45
{
46
npc_converted_sentryAI
(
Creature
* creature) :
ScriptedAI
(creature)
47
{
48
Credit
=
false
;
49
Timer
= 0;
50
}
51
52
void
Reset
()
OVERRIDE
53
{
54
Credit
=
false
;
55
Timer
= 2500;
56
}
57
58
void
MoveInLineOfSight
(
Unit
*
/*who*/
)
OVERRIDE
{ }
59
60
void
EnterCombat
(
Unit
*
/*who*/
)
OVERRIDE
{ }
61
62
void
UpdateAI
(
uint32
diff)
OVERRIDE
63
{
64
if
(!
Credit
)
65
{
66
if
(
Timer
<= diff)
67
{
68
Talk
(
SAY_CONVERTED
);
69
70
DoCast
(
me
,
SPELL_CONVERT_CREDIT
);
71
if
(
me
->IsPet())
72
me
->ToPet()->SetDuration(7500);
73
Credit
=
true
;
74
}
else
Timer
-= diff;
75
}
76
}
77
78
private
:
79
bool
Credit
;
80
uint32
Timer
;
81
};
82
};
83
84
/*######
85
## npc_greengill_slave
86
######*/
87
88
#define ENRAGE 45111
89
#define ORB 45109
90
#define QUESTG 11541
91
#define DM 25060
92
93
class
npc_greengill_slave
:
public
CreatureScript
94
{
95
public
:
96
npc_greengill_slave
() :
CreatureScript
(
"npc_greengill_slave"
) { }
97
98
CreatureAI
*
GetAI
(
Creature
* creature)
const
OVERRIDE
99
{
100
return
new
npc_greengill_slaveAI
(creature);
101
}
102
103
struct
npc_greengill_slaveAI
:
public
ScriptedAI
104
{
105
npc_greengill_slaveAI
(
Creature
* creature) :
ScriptedAI
(creature) { }
106
107
void
EnterCombat
(
Unit
*
/*who*/
)
OVERRIDE
{ }
108
109
void
SpellHit
(
Unit
* caster,
SpellInfo
const
* spellInfo)
OVERRIDE
110
{
111
Player
* player = caster->
ToPlayer
();
112
if
(!player)
113
return
;
114
115
if
(spellInfo->Id ==
ORB
&& !
me
->HasAura(
ENRAGE
))
116
{
117
if
(player->
GetQuestStatus
(
QUESTG
) ==
QUEST_STATUS_INCOMPLETE
)
118
DoCast
(player, 45110,
true
);
119
120
DoCast
(
me
,
ENRAGE
);
121
122
if
(
Creature
* Myrmidon =
me
->FindNearestCreature(
DM
, 70))
123
{
124
me
->AddThreat(Myrmidon, 100000.0f);
125
AttackStart
(Myrmidon);
126
}
127
}
128
}
129
130
void
UpdateAI
(
uint32
/*diff*/
)
OVERRIDE
131
{
132
DoMeleeAttackIfReady
();
133
}
134
};
135
};
136
137
void
AddSC_isle_of_queldanas
()
138
{
139
new
npc_converted_sentry
();
140
new
npc_greengill_slave
();
141
}
uint32
std::uint32_t uint32
Definition
Define.h:77
OVERRIDE
#define OVERRIDE
Definition
Define.h:60
Pet.h
Player.h
QUEST_STATUS_INCOMPLETE
@ QUEST_STATUS_INCOMPLETE
Definition
QuestDef.h:89
ScriptMgr.h
ScriptedCreature.h
SpellInfo.h
CreatureAI
Definition
CreatureAI.h:54
CreatureAI::Talk
void Talk(uint8 id, WorldObject const *whisperTarget=NULL)
Definition
CreatureAI.cpp:28
Creature
Definition
Creature.h:427
CreatureScript::CreatureScript
CreatureScript(const char *name)
Definition
ScriptMgr.cpp:1436
Object::ToPlayer
Player * ToPlayer()
Definition
Object.h:204
Player
Definition
Player.h:1289
Player::GetQuestStatus
QuestStatus GetQuestStatus(uint32 quest_id) const
Definition
PlayerQuestState.cpp:1375
SpellInfo
Definition
SpellInfo.h:158
UnitAI::DoMeleeAttackIfReady
void DoMeleeAttackIfReady()
Definition
UnitAI.cpp:28
UnitAI::DoCast
void DoCast(uint32 spellId)
Definition
UnitAI.cpp:110
Unit
Definition
Unit.h:1367
npc_converted_sentry
Definition
zone_isle_of_queldanas.cpp:35
npc_converted_sentry::GetAI
CreatureAI * GetAI(Creature *creature) const OVERRIDE
Definition
zone_isle_of_queldanas.cpp:39
npc_converted_sentry::npc_converted_sentry
npc_converted_sentry()
Definition
zone_isle_of_queldanas.cpp:37
npc_greengill_slave
Definition
zone_isle_of_queldanas.cpp:94
npc_greengill_slave::npc_greengill_slave
npc_greengill_slave()
Definition
zone_isle_of_queldanas.cpp:96
npc_greengill_slave::GetAI
CreatureAI * GetAI(Creature *creature) const OVERRIDE
Definition
zone_isle_of_queldanas.cpp:98
ScriptedAI::me
Creature * me
Definition
ScriptedCreature.h:182
ScriptedAI::ScriptedAI
ScriptedAI(Creature *creature)
Definition
ScriptedCreature.cpp:85
ScriptedAI::AttackStart
void AttackStart(Unit *) OVERRIDE
Definition
ScriptedCreature.cpp:118
npc_converted_sentry::npc_converted_sentryAI
Definition
zone_isle_of_queldanas.cpp:45
npc_converted_sentry::npc_converted_sentryAI::Reset
void Reset() OVERRIDE
Definition
zone_isle_of_queldanas.cpp:52
npc_converted_sentry::npc_converted_sentryAI::Timer
uint32 Timer
Definition
zone_isle_of_queldanas.cpp:80
npc_converted_sentry::npc_converted_sentryAI::Credit
bool Credit
Definition
zone_isle_of_queldanas.cpp:79
npc_converted_sentry::npc_converted_sentryAI::npc_converted_sentryAI
npc_converted_sentryAI(Creature *creature)
Definition
zone_isle_of_queldanas.cpp:46
npc_converted_sentry::npc_converted_sentryAI::MoveInLineOfSight
void MoveInLineOfSight(Unit *) OVERRIDE
Definition
zone_isle_of_queldanas.cpp:58
npc_converted_sentry::npc_converted_sentryAI::EnterCombat
void EnterCombat(Unit *) OVERRIDE
Definition
zone_isle_of_queldanas.cpp:60
npc_converted_sentry::npc_converted_sentryAI::UpdateAI
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
Definition
zone_isle_of_queldanas.cpp:62
npc_greengill_slave::npc_greengill_slaveAI
Definition
zone_isle_of_queldanas.cpp:104
npc_greengill_slave::npc_greengill_slaveAI::EnterCombat
void EnterCombat(Unit *) OVERRIDE
Definition
zone_isle_of_queldanas.cpp:107
npc_greengill_slave::npc_greengill_slaveAI::npc_greengill_slaveAI
npc_greengill_slaveAI(Creature *creature)
Definition
zone_isle_of_queldanas.cpp:105
npc_greengill_slave::npc_greengill_slaveAI::SpellHit
void SpellHit(Unit *caster, SpellInfo const *spellInfo) OVERRIDE
Definition
zone_isle_of_queldanas.cpp:109
npc_greengill_slave::npc_greengill_slaveAI::UpdateAI
void UpdateAI(uint32) OVERRIDE
== Triggered Actions Requested ==================
Definition
zone_isle_of_queldanas.cpp:130
AddSC_isle_of_queldanas
void AddSC_isle_of_queldanas()
Definition
zone_isle_of_queldanas.cpp:137
ORB
#define ORB
Definition
zone_isle_of_queldanas.cpp:89
ENRAGE
#define ENRAGE
Definition
zone_isle_of_queldanas.cpp:88
DM
#define DM
Definition
zone_isle_of_queldanas.cpp:91
QUESTG
#define QUESTG
Definition
zone_isle_of_queldanas.cpp:90
ConvertedSentry
ConvertedSentry
Definition
zone_isle_of_queldanas.cpp:28
SPELL_CONVERT_CREDIT
@ SPELL_CONVERT_CREDIT
Definition
zone_isle_of_queldanas.cpp:31
SAY_CONVERTED
@ SAY_CONVERTED
Definition
zone_isle_of_queldanas.cpp:29
src
server
scripts
EasternKingdoms
zone_isle_of_queldanas.cpp
Generated on
for Project SkyFire Core by
1.17.0