Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Toggle main menu visibility
Loading...
Searching...
No Matches
uldaman.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: Uldaman
8
SD%Complete: 100
9
SDComment: Quest support: 2240, 2278 + 1 trash mob.
10
SDCategory: Uldaman
11
EndScriptData */
12
13
/* ContentData
14
npc_jadespine_basilisk
15
go_keystone_chamber
16
at_map_chamber
17
EndContentData */
18
19
#include "
ScriptMgr.h
"
20
#include "
ScriptedCreature.h
"
21
#include "
uldaman.h
"
22
#include "
Player.h
"
23
24
/*######
25
## npc_jadespine_basilisk
26
######*/
27
28
enum
Spells
29
{
30
SPELL_CRYSTALLINE_SLUMBER
= 3636,
31
};
32
33
class
npc_jadespine_basilisk
:
public
CreatureScript
34
{
35
public
:
36
npc_jadespine_basilisk
()
37
:
CreatureScript
(
"npc_jadespine_basilisk"
) { }
38
39
struct
npc_jadespine_basiliskAI
:
public
ScriptedAI
40
{
41
npc_jadespine_basiliskAI
(
Creature
* creature) :
ScriptedAI
(creature) { }
42
43
uint32
uiCslumberTimer
;
44
45
void
Reset
()
OVERRIDE
46
{
47
uiCslumberTimer
= 2000;
48
}
49
50
void
EnterCombat
(
Unit
*
/*who*/
)
OVERRIDE
{ }
51
52
void
UpdateAI
(
uint32
uiDiff)
OVERRIDE
53
{
54
//Return since we have no target
55
if
(!
UpdateVictim
())
56
return
;
57
58
//uiCslumberTimer
59
if
(
uiCslumberTimer
<= uiDiff)
60
{
61
//Cast
62
DoCastVictim
(
SPELL_CRYSTALLINE_SLUMBER
,
true
);
63
64
//Stop attacking target thast asleep and pick new target
65
uiCslumberTimer
= 28000;
66
67
Unit
* target =
SelectTarget
(
SELECT_TARGET_TOPAGGRO
, 0);
68
69
if
(!target || target ==
me
->GetVictim())
70
target =
SelectTarget
(
SELECT_TARGET_RANDOM
, 0, 100,
true
);
71
72
if
(target)
73
me
->TauntApply(target);
74
75
}
else
uiCslumberTimer
-= uiDiff;
76
77
DoMeleeAttackIfReady
();
78
}
79
};
80
81
CreatureAI
*
GetAI
(
Creature
* creature)
const
OVERRIDE
82
{
83
return
new
npc_jadespine_basiliskAI
(creature);
84
}
85
};
86
87
/*######
88
## go_keystone_chamber
89
######*/
90
91
class
go_keystone_chamber
:
public
GameObjectScript
92
{
93
public
:
94
go_keystone_chamber
() :
GameObjectScript
(
"go_keystone_chamber"
) { }
95
96
bool
OnGossipHello
(
Player
*
/*player*/
,
GameObject
* go)
OVERRIDE
97
{
98
if
(
InstanceScript
* instance = go->GetInstanceScript())
99
instance->SetData(
DATA_IRONAYA_SEAL
,
IN_PROGRESS
);
//door animation and save state.
100
101
return
false
;
102
}
103
};
104
105
/*######
106
## at_map_chamber
107
######*/
108
109
#define QUEST_HIDDEN_CHAMBER 2240
110
111
class
AreaTrigger_at_map_chamber
:
public
AreaTriggerScript
112
{
113
public
:
114
AreaTrigger_at_map_chamber
() :
AreaTriggerScript
(
"at_map_chamber"
) { }
115
116
bool
OnTrigger
(
Player
* player,
AreaTriggerEntry
const
*
/*trigger*/
)
OVERRIDE
117
{
118
if
(player->GetQuestStatus(
QUEST_HIDDEN_CHAMBER
) ==
QUEST_STATUS_INCOMPLETE
)
119
player->AreaExploredOrEventHappens(
QUEST_HIDDEN_CHAMBER
);
120
121
return
true
;
122
}
123
};
124
125
void
AddSC_uldaman
()
126
{
127
new
npc_jadespine_basilisk
();
128
new
go_keystone_chamber
();
129
new
AreaTrigger_at_map_chamber
();
130
}
131
Spells
Spells
Definition
BattlegroundIC.h:645
uint32
std::uint32_t uint32
Definition
Define.h:77
OVERRIDE
#define OVERRIDE
Definition
Define.h:60
IN_PROGRESS
@ IN_PROGRESS
Definition
InstanceScript.h:47
Player.h
QUEST_STATUS_INCOMPLETE
@ QUEST_STATUS_INCOMPLETE
Definition
QuestDef.h:89
ScriptMgr.h
ScriptedCreature.h
SELECT_TARGET_TOPAGGRO
@ SELECT_TARGET_TOPAGGRO
Definition
UnitAI.h:24
SELECT_TARGET_RANDOM
@ SELECT_TARGET_RANDOM
Definition
UnitAI.h:23
AreaTrigger_at_map_chamber
Definition
uldaman.cpp:112
AreaTrigger_at_map_chamber::OnTrigger
bool OnTrigger(Player *player, AreaTriggerEntry const *) OVERRIDE
Definition
uldaman.cpp:116
AreaTrigger_at_map_chamber::AreaTrigger_at_map_chamber
AreaTrigger_at_map_chamber()
Definition
uldaman.cpp:114
AreaTriggerScript::AreaTriggerScript
AreaTriggerScript(const char *name)
Definition
ScriptMgr.cpp:1448
CreatureAI
Definition
CreatureAI.h:54
CreatureAI::UpdateVictim
bool UpdateVictim()
Definition
CreatureAI.cpp:192
Creature
Definition
Creature.h:427
CreatureScript::CreatureScript
CreatureScript(const char *name)
Definition
ScriptMgr.cpp:1436
GameObject
Definition
GameObject.h:629
GameObjectScript::GameObjectScript
GameObjectScript(const char *name)
Definition
ScriptMgr.cpp:1442
InstanceScript
Definition
InstanceScript.h:123
Player
Definition
Player.h:1289
UnitAI::DoMeleeAttackIfReady
void DoMeleeAttackIfReady()
Definition
UnitAI.cpp:28
UnitAI::SelectTarget
Unit * SelectTarget(SelectAggroTarget targetType, uint32 position=0, float dist=0.0f, bool playerOnly=false, int32 aura=0)
Definition
UnitAI.cpp:66
UnitAI::DoCastVictim
void DoCastVictim(uint32 spellId, bool triggered=false)
Definition
UnitAI.cpp:168
Unit
Definition
Unit.h:1367
go_keystone_chamber
Definition
uldaman.cpp:92
go_keystone_chamber::OnGossipHello
bool OnGossipHello(Player *, GameObject *go) OVERRIDE
Definition
uldaman.cpp:96
go_keystone_chamber::go_keystone_chamber
go_keystone_chamber()
Definition
uldaman.cpp:94
npc_jadespine_basilisk
Definition
uldaman.cpp:34
npc_jadespine_basilisk::GetAI
CreatureAI * GetAI(Creature *creature) const OVERRIDE
Definition
uldaman.cpp:81
npc_jadespine_basilisk::npc_jadespine_basilisk
npc_jadespine_basilisk()
Definition
uldaman.cpp:36
AreaTriggerEntry
Definition
DBCStructure.h:716
ScriptedAI::me
Creature * me
Definition
ScriptedCreature.h:182
ScriptedAI::ScriptedAI
ScriptedAI(Creature *creature)
Definition
ScriptedCreature.cpp:85
npc_jadespine_basilisk::npc_jadespine_basiliskAI
Definition
uldaman.cpp:40
npc_jadespine_basilisk::npc_jadespine_basiliskAI::npc_jadespine_basiliskAI
npc_jadespine_basiliskAI(Creature *creature)
Definition
uldaman.cpp:41
npc_jadespine_basilisk::npc_jadespine_basiliskAI::UpdateAI
void UpdateAI(uint32 uiDiff) OVERRIDE
== Triggered Actions Requested ==================
Definition
uldaman.cpp:52
npc_jadespine_basilisk::npc_jadespine_basiliskAI::Reset
void Reset() OVERRIDE
Definition
uldaman.cpp:45
npc_jadespine_basilisk::npc_jadespine_basiliskAI::uiCslumberTimer
uint32 uiCslumberTimer
Definition
uldaman.cpp:43
npc_jadespine_basilisk::npc_jadespine_basiliskAI::EnterCombat
void EnterCombat(Unit *) OVERRIDE
Definition
uldaman.cpp:50
SPELL_CRYSTALLINE_SLUMBER
@ SPELL_CRYSTALLINE_SLUMBER
Definition
uldaman.cpp:30
QUEST_HIDDEN_CHAMBER
#define QUEST_HIDDEN_CHAMBER
Definition
uldaman.cpp:109
AddSC_uldaman
void AddSC_uldaman()
Definition
uldaman.cpp:125
uldaman.h
DATA_IRONAYA_SEAL
@ DATA_IRONAYA_SEAL
Definition
uldaman.h:18
src
server
scripts
EasternKingdoms
Uldaman
uldaman.cpp
Generated on
for Project SkyFire Core by
1.17.0