Converting EasternKingdoms/ZulAman and EasternKingdoms/ZulGurub.

Need to recheck tomorrow. :)

--HG--
branch : trunk
This commit is contained in:
John Holiver
2010-08-08 05:01:17 -03:00
parent 0ce01cdb63
commit 99a054bfd2
24 changed files with 5403 additions and 5149 deletions
@@ -374,12 +374,12 @@ EndScriptData */
#define SPELL_BOSS_OBJECT_VISUAL 11206 #define SPELL_BOSS_OBJECT_VISUAL 11206
class go_altar_of_archaedas : public CreatureScript class go_altar_of_archaedas : public GameObjectScript
{ {
public: public:
go_altar_of_archaedas() go_altar_of_archaedas()
: CreatureScript("go_altar_of_archaedas") : GameObjectScript("go_altar_of_archaedas")
{ {
} }
@@ -406,12 +406,12 @@ EndScriptData */
#define SPELL_BOSS_OBJECT_VISUAL 11206 #define SPELL_BOSS_OBJECT_VISUAL 11206
class go_altar_of_the_keepers : public CreatureScript class go_altar_of_the_keepers : public GameObjectScript
{ {
public: public:
go_altar_of_the_keepers() go_altar_of_the_keepers()
: CreatureScript("go_altar_of_the_keepers") : GameObjectScript("go_altar_of_the_keepers")
{ {
} }
@@ -298,5 +298,5 @@ class instance_uldaman : public InstanceMapScript
void AddSC_instance_uldaman() void AddSC_instance_uldaman()
{ {
new instance_uldaman; new instance_uldaman();
} }
@@ -59,8 +59,17 @@ EndScriptData */
#define SE_LOC_Y_MAX 1435 #define SE_LOC_Y_MAX 1435
#define SE_LOC_Y_MIN 1370 #define SE_LOC_Y_MIN 1370
struct boss_akilzonAI : public ScriptedAI class boss_akilzon : public CreatureScript
{ {
public:
boss_akilzon()
: CreatureScript("boss_akilzon")
{
}
struct boss_akilzonAI : public ScriptedAI
{
boss_akilzonAI(Creature *c) : ScriptedAI(c) boss_akilzonAI(Creature *c) : ScriptedAI(c)
{ {
SpellEntry *TempSpell = GET_SPELL(SPELL_ELECTRICAL_DAMAGE); SpellEntry *TempSpell = GET_SPELL(SPELL_ELECTRICAL_DAMAGE);
@@ -372,11 +381,26 @@ struct boss_akilzonAI : public ScriptedAI
DoMeleeAttackIfReady(); DoMeleeAttackIfReady();
} }
};
CreatureAI* GetAI(Creature* creature) const
{
return new boss_akilzonAI(creature);
}
}; };
struct mob_soaring_eagleAI : public ScriptedAI class mob_akilzon_eagle : public CreatureScript
{ {
mob_soaring_eagleAI(Creature *c) : ScriptedAI(c) {} public:
mob_akilzon_eagle()
: CreatureScript("mob_akilzon_eagle")
{
}
struct mob_akilzon_eagleAI : public ScriptedAI
{
mob_akilzon_eagleAI(Creature *c) : ScriptedAI(c) {}
uint32 EagleSwoop_Timer; uint32 EagleSwoop_Timer;
bool arrived; bool arrived;
@@ -439,31 +463,17 @@ struct mob_soaring_eagleAI : public ScriptedAI
} }
} }
} }
};
CreatureAI* GetAI(Creature* creature) const
{
return new mob_akilzon_eagleAI(creature);
}
}; };
//Soaring Eagle
CreatureAI* GetAI_mob_soaring_eagle(Creature* pCreature)
{
return new mob_soaring_eagleAI(pCreature);
}
CreatureAI* GetAI_boss_akilzon(Creature* pCreature)
{
return new boss_akilzonAI(pCreature);
}
void AddSC_boss_akilzon() void AddSC_boss_akilzon()
{ {
Script *newscript = NULL; new boss_akilzon();
new mob_akilzon_eagle();
newscript = new Script;
newscript->Name = "boss_akilzon";
newscript->GetAI = &GetAI_boss_akilzon;
newscript->RegisterSelf();
newscript = new Script;
newscript->Name = "mob_akilzon_eagle";
newscript->GetAI = &GetAI_mob_soaring_eagle;
newscript->RegisterSelf();
} }
@@ -73,8 +73,17 @@ enum PhaseHalazzi
PHASE_ENRAGE = 5 PHASE_ENRAGE = 5
}; };
struct boss_halazziAI : public ScriptedAI class boss_halazzi : public CreatureScript
{ {
public:
boss_halazzi()
: CreatureScript("boss_halazzi")
{
}
struct boss_halazziAI : public ScriptedAI
{
boss_halazziAI(Creature *c) : ScriptedAI(c) boss_halazziAI(Creature *c) : ScriptedAI(c)
{ {
pInstance = c->GetInstanceData(); pInstance = c->GetInstanceData();
@@ -324,13 +333,27 @@ struct boss_halazziAI : public ScriptedAI
me->MonsterYell(YELL_DEATH, LANG_UNIVERSAL, NULL); me->MonsterYell(YELL_DEATH, LANG_UNIVERSAL, NULL);
DoPlaySoundToSet(me, SOUND_DEATH); DoPlaySoundToSet(me, SOUND_DEATH);
} }
};
CreatureAI* GetAI(Creature* creature) const
{
return new boss_halazziAI(creature);
}
}; };
// Spirits Lynx AI // Spirits Lynx AI
class mob_halazzi_lynx : public CreatureScript
struct boss_spiritlynxAI : public ScriptedAI
{ {
boss_spiritlynxAI(Creature *c) : ScriptedAI(c) {} public:
mob_halazzi_lynx()
: CreatureScript("mob_halazzi_lynx")
{
}
struct mob_halazzi_lynxAI : public ScriptedAI
{
mob_halazzi_lynxAI(Creature *c) : ScriptedAI(c) {}
uint32 FrenzyTimer; uint32 FrenzyTimer;
uint32 shredder_timer; uint32 shredder_timer;
@@ -375,29 +398,17 @@ struct boss_spiritlynxAI : public ScriptedAI
DoMeleeAttackIfReady(); DoMeleeAttackIfReady();
} }
};
CreatureAI* GetAI(Creature* creature) const
{
return new mob_halazzi_lynxAI(creature);
}
}; };
CreatureAI* GetAI_boss_halazziAI(Creature* pCreature)
{
return new boss_halazziAI (pCreature);
}
CreatureAI* GetAI_boss_spiritlynxAI(Creature* pCreature)
{
return new boss_spiritlynxAI (pCreature);
}
void AddSC_boss_halazzi() void AddSC_boss_halazzi()
{ {
Script *newscript; new boss_halazzi();
newscript = new Script; new mob_halazzi_lynx();
newscript->Name = "boss_halazzi";
newscript->GetAI = &GetAI_boss_halazziAI;
newscript->RegisterSelf();
newscript = new Script;
newscript->Name = "mob_halazzi_lynx";
newscript->GetAI = &GetAI_boss_spiritlynxAI;
newscript->RegisterSelf();
} }
@@ -200,8 +200,17 @@ struct boss_hexlord_addAI : public ScriptedAI
} }
}; };
struct boss_hex_lord_malacrassAI : public ScriptedAI class boss_hexlord_malacrass : public CreatureScript
{ {
public:
boss_hexlord_malacrass()
: CreatureScript("boss_hexlord_malacrass")
{
}
struct boss_hex_lord_malacrassAI : public ScriptedAI
{
boss_hex_lord_malacrassAI(Creature *c) : ScriptedAI(c) boss_hex_lord_malacrassAI(Creature *c) : ScriptedAI(c)
{ {
pInstance = c->GetInstanceData(); pInstance = c->GetInstanceData();
@@ -456,13 +465,28 @@ struct boss_hex_lord_malacrassAI : public ScriptedAI
if (pTarget) if (pTarget)
DoCast(pTarget, PlayerAbility[PlayerClass][random].spell, false); DoCast(pTarget, PlayerAbility[PlayerClass][random].spell, false);
} }
};
CreatureAI* GetAI(Creature* creature) const
{
return new boss_hexlord_malacrassAI(creature);
}
}; };
#define SPELL_BLOODLUST 43578 #define SPELL_BLOODLUST 43578
#define SPELL_CLEAVE 15496 #define SPELL_CLEAVE 15496
struct boss_thurgAI : public boss_hexlord_addAI class boss_thurg : public CreatureScript
{ {
public:
boss_thurg()
: CreatureScript("boss_thurg")
{
}
struct boss_thurgAI : public boss_hexlord_addAI
{
boss_thurgAI(Creature *c) : boss_hexlord_addAI(c) {} boss_thurgAI(Creature *c) : boss_hexlord_addAI(c) {}
@@ -501,13 +525,28 @@ struct boss_thurgAI : public boss_hexlord_addAI
boss_hexlord_addAI::UpdateAI(diff); boss_hexlord_addAI::UpdateAI(diff);
} }
};
CreatureAI* GetAI(Creature* creature) const
{
return new boss_thurgAI(creature);
}
}; };
#define SPELL_FLASH_HEAL 43575 #define SPELL_FLASH_HEAL 43575
#define SPELL_DISPEL_MAGIC 43577 #define SPELL_DISPEL_MAGIC 43577
struct boss_alyson_antilleAI : public boss_hexlord_addAI class boss_alyson_antille : public CreatureScript
{ {
public:
boss_alyson_antille()
: CreatureScript("boss_alyson_antille")
{
}
struct boss_alyson_antilleAI : public boss_hexlord_addAI
{
//Holy Priest //Holy Priest
boss_alyson_antilleAI(Creature *c) : boss_hexlord_addAI(c) {} boss_alyson_antilleAI(Creature *c) : boss_hexlord_addAI(c) {}
@@ -586,6 +625,12 @@ struct boss_alyson_antilleAI : public boss_hexlord_addAI
boss_hexlord_addAI::UpdateAI(diff); boss_hexlord_addAI::UpdateAI(diff);
} }
};
CreatureAI* GetAI(Creature* creature) const
{
return new boss_alyson_antilleAI(creature);
}
}; };
#define SPELL_FIREBOLT 43584 #define SPELL_FIREBOLT 43584
@@ -635,8 +680,17 @@ struct boss_gazakrothAI : public boss_hexlord_addAI
#define SPELL_FLAME_BREATH 43582 #define SPELL_FLAME_BREATH 43582
#define SPELL_THUNDERCLAP 43583 #define SPELL_THUNDERCLAP 43583
struct boss_lord_raadanAI : public boss_hexlord_addAI class boss_lord_raadan : public CreatureScript
{ {
public:
boss_lord_raadan()
: CreatureScript("boss_lord_raadan")
{
}
struct boss_lord_raadanAI : public boss_hexlord_addAI
{
boss_lord_raadanAI(Creature *c) : boss_hexlord_addAI(c) {} boss_lord_raadanAI(Creature *c) : boss_hexlord_addAI(c) {}
uint32 flamebreath_timer; uint32 flamebreath_timer;
@@ -669,12 +723,27 @@ struct boss_lord_raadanAI : public boss_hexlord_addAI
boss_hexlord_addAI::UpdateAI(diff); boss_hexlord_addAI::UpdateAI(diff);
} }
};
CreatureAI* GetAI(Creature* creature) const
{
return new boss_lord_raadanAI(creature);
}
}; };
#define SPELL_PSYCHIC_WAIL 43590 #define SPELL_PSYCHIC_WAIL 43590
struct boss_darkheartAI : public boss_hexlord_addAI class boss_darkheart : public CreatureScript
{ {
public:
boss_darkheart()
: CreatureScript("boss_darkheart")
{
}
struct boss_darkheartAI : public boss_hexlord_addAI
{
boss_darkheartAI(Creature *c) : boss_hexlord_addAI(c) {} boss_darkheartAI(Creature *c) : boss_hexlord_addAI(c) {}
uint32 psychicwail_timer; uint32 psychicwail_timer;
@@ -697,12 +766,27 @@ struct boss_darkheartAI : public boss_hexlord_addAI
boss_hexlord_addAI::UpdateAI(diff); boss_hexlord_addAI::UpdateAI(diff);
} }
};
CreatureAI* GetAI(Creature* creature) const
{
return new boss_darkheartAI(creature);
}
}; };
#define SPELL_VENOM_SPIT 43579 #define SPELL_VENOM_SPIT 43579
struct boss_slitherAI : public boss_hexlord_addAI class boss_slither : public CreatureScript
{ {
public:
boss_slither()
: CreatureScript("boss_slither")
{
}
struct boss_slitherAI : public boss_hexlord_addAI
{
boss_slitherAI(Creature *c) : boss_hexlord_addAI(c) {} boss_slitherAI(Creature *c) : boss_hexlord_addAI(c) {}
uint32 venomspit_timer; uint32 venomspit_timer;
@@ -742,13 +826,27 @@ struct boss_slitherAI : public boss_hexlord_addAI
boss_hexlord_addAI::UpdateAI(diff); boss_hexlord_addAI::UpdateAI(diff);
} }
};
CreatureAI* GetAI(Creature* creature) const
{
return new boss_slitherAI(creature);
}
}; };
//Fenstalker //Fenstalker
#define SPELL_VOLATILE_INFECTION 43586 #define SPELL_VOLATILE_INFECTION 43586
class boss_fenstalker : public CreatureScript
struct boss_fenstalkerAI : public boss_hexlord_addAI
{ {
public:
boss_fenstalker()
: CreatureScript("boss_fenstalker")
{
}
struct boss_fenstalkerAI : public boss_hexlord_addAI
{
boss_fenstalkerAI(Creature *c) : boss_hexlord_addAI(c) {} boss_fenstalkerAI(Creature *c) : boss_hexlord_addAI(c) {}
uint32 volatileinf_timer; uint32 volatileinf_timer;
@@ -773,14 +871,29 @@ struct boss_fenstalkerAI : public boss_hexlord_addAI
boss_hexlord_addAI::UpdateAI(diff); boss_hexlord_addAI::UpdateAI(diff);
} }
};
CreatureAI* GetAI(Creature* creature) const
{
return new boss_fenstalkerAI(creature);
}
}; };
//Koragg //Koragg
#define SPELL_COLD_STARE 43593 #define SPELL_COLD_STARE 43593
#define SPELL_MIGHTY_BLOW 43592 #define SPELL_MIGHTY_BLOW 43592
struct boss_koraggAI : public boss_hexlord_addAI class boss_koragg : public CreatureScript
{ {
public:
boss_koragg()
: CreatureScript("boss_koragg")
{
}
struct boss_koraggAI : public boss_hexlord_addAI
{
boss_koraggAI(Creature *c) : boss_hexlord_addAI(c) {} boss_koraggAI(Creature *c) : boss_hexlord_addAI(c) {}
uint32 coldstare_timer; uint32 coldstare_timer;
@@ -812,98 +925,24 @@ struct boss_koraggAI : public boss_hexlord_addAI
boss_hexlord_addAI::UpdateAI(diff); boss_hexlord_addAI::UpdateAI(diff);
} }
};
CreatureAI* GetAI(Creature* creature) const
{
return new boss_koraggAI(creature);
}
}; };
CreatureAI* GetAI_boss_hex_lord_malacrass(Creature* pCreature)
{
return new boss_hex_lord_malacrassAI (pCreature);
}
CreatureAI* GetAI_boss_thurg(Creature* pCreature)
{
return new boss_thurgAI (pCreature);
}
CreatureAI* GetAI_boss_alyson_antille(Creature* pCreature)
{
return new boss_alyson_antilleAI (pCreature);
}
CreatureAI* GetAI_boss_gazakroth(Creature* pCreature)
{
return new boss_gazakrothAI (pCreature);
}
CreatureAI* GetAI_boss_lord_raadan(Creature* pCreature)
{
return new boss_lord_raadanAI (pCreature);
}
CreatureAI* GetAI_boss_darkheart(Creature* pCreature)
{
return new boss_darkheartAI (pCreature);
}
CreatureAI* GetAI_boss_slither(Creature* pCreature)
{
return new boss_slitherAI (pCreature);
}
CreatureAI* GetAI_boss_fenstalker(Creature* pCreature)
{
return new boss_fenstalkerAI (pCreature);
}
CreatureAI* GetAI_boss_koragg(Creature* pCreature)
{
return new boss_koraggAI (pCreature);
}
void AddSC_boss_hex_lord_malacrass() void AddSC_boss_hex_lord_malacrass()
{ {
Script *newscript; new boss_hexlord_malacrass();
newscript = new Script; new boss_thurg();
newscript->Name = "boss_hexlord_malacrass"; new boss_gazakroth();
newscript->GetAI = &GetAI_boss_hex_lord_malacrass; new boss_lord_raadan();
newscript->RegisterSelf(); new boss_darkheart();
new boss_slither();
newscript = new Script; new boss_fenstalker();
newscript->Name = "boss_thurg"; new boss_koragg();
newscript->GetAI = &GetAI_boss_thurg; new boss_alyson_antille();
newscript->RegisterSelf();
newscript = new Script;
newscript->Name = "boss_gazakroth";
newscript->GetAI = &GetAI_boss_gazakroth;
newscript->RegisterSelf();
newscript = new Script;
newscript->Name = "boss_lord_raadan";
newscript->GetAI = &GetAI_boss_lord_raadan;
newscript->RegisterSelf();
newscript = new Script;
newscript->Name = "boss_darkheart";
newscript->GetAI = &GetAI_boss_darkheart;
newscript->RegisterSelf();
newscript = new Script;
newscript->Name = "boss_slither";
newscript->GetAI = &GetAI_boss_slither;
newscript->RegisterSelf();
newscript = new Script;
newscript->Name = "boss_fenstalker";
newscript->GetAI = &GetAI_boss_fenstalker;
newscript->RegisterSelf();
newscript = new Script;
newscript->Name = "boss_koragg";
newscript->GetAI = &GetAI_boss_koragg;
newscript->RegisterSelf();
newscript = new Script;
newscript->Name = "boss_alyson_antille";
newscript->GetAI = &GetAI_boss_alyson_antille;
newscript->RegisterSelf();
} }
@@ -101,9 +101,17 @@ float hatcherway[2][5][3] =
{-34.29,1095.22,19} {-34.29,1095.22,19}
} }
}; };
class boss_janalai : public CreatureScript
struct boss_janalaiAI : public ScriptedAI
{ {
public:
boss_janalai()
: CreatureScript("boss_janalai")
{
}
struct boss_janalaiAI : public ScriptedAI
{
boss_janalaiAI(Creature *c) : ScriptedAI(c) boss_janalaiAI(Creature *c) : ScriptedAI(c)
{ {
pInstance =c->GetInstanceData(); pInstance =c->GetInstanceData();
@@ -176,7 +184,7 @@ struct boss_janalaiAI : public ScriptedAI
pInstance->SetData(DATA_JANALAIEVENT, IN_PROGRESS); pInstance->SetData(DATA_JANALAIEVENT, IN_PROGRESS);
DoScriptText(SAY_AGGRO, me); DoScriptText(SAY_AGGRO, me);
// DoZoneInCombat(); // DoZoneInCombat();
} }
void DamageDealt(Unit *pTarget, uint32 &damage) void DamageDealt(Unit *pTarget, uint32 &damage)
@@ -429,15 +437,26 @@ struct boss_janalaiAI : public ScriptedAI
FireBreathTimer = 8000; FireBreathTimer = 8000;
} else FireBreathTimer -= diff; } else FireBreathTimer -= diff;
} }
};
CreatureAI* GetAI(Creature* creature) const
{
return new boss_janalaiAI(creature);
}
}; };
CreatureAI* GetAI_boss_janalaiAI(Creature* pCreature) class mob_janalai_firebomb : public CreatureScript
{ {
return new boss_janalaiAI(pCreature); public:
}
struct mob_janalai_firebombAI : public ScriptedAI mob_janalai_firebomb()
{ : CreatureScript("mob_janalai_firebomb")
{
}
struct mob_janalai_firebombAI : public ScriptedAI
{
mob_janalai_firebombAI(Creature *c) : ScriptedAI(c){} mob_janalai_firebombAI(Creature *c) : ScriptedAI(c){}
void Reset() {} void Reset() {}
@@ -455,15 +474,25 @@ struct mob_janalai_firebombAI : public ScriptedAI
void MoveInLineOfSight(Unit* /*who*/) {} void MoveInLineOfSight(Unit* /*who*/) {}
void UpdateAI(const uint32 /*diff*/) {} void UpdateAI(const uint32 /*diff*/) {}
};
CreatureAI* GetAI(Creature* creature) const
{
return new mob_janalai_firebombAI(creature);
}
}; };
CreatureAI* GetAI_mob_janalai_firebombAI(Creature* pCreature) class mob_janalai_hatcher : public CreatureScript
{ {
return new mob_janalai_firebombAI(pCreature); public:
}
struct mob_amanishi_hatcherAI : public ScriptedAI mob_janalai_hatcher()
{ : CreatureScript("mob_janalai_hatcher")
{
}
struct mob_janalai_hatcherAI : public ScriptedAI
{
mob_amanishi_hatcherAI(Creature *c) : ScriptedAI(c) mob_amanishi_hatcherAI(Creature *c) : ScriptedAI(c)
{ {
pInstance =c->GetInstanceData(); pInstance =c->GetInstanceData();
@@ -578,16 +607,26 @@ struct mob_amanishi_hatcherAI : public ScriptedAI
} else WaitTimer -= diff; } else WaitTimer -= diff;
} }
} }
};
CreatureAI* GetAI(Creature* creature) const
{
return new mob_janalai_hatcherAI(creature);
}
}; };
CreatureAI* GetAI_mob_amanishi_hatcherAI(Creature* pCreature) class mob_janalai_hatchling : public CreatureScript
{ {
return new mob_amanishi_hatcherAI(pCreature); public:
}
struct mob_hatchlingAI : public ScriptedAI mob_janalai_hatchling()
{ : CreatureScript("mob_janalai_hatchling")
mob_hatchlingAI(Creature *c) : ScriptedAI(c) {
}
struct mob_janalai_hatchlingAI : public ScriptedAI
{
mob_janalai_hatchlingAI(Creature *c) : ScriptedAI(c)
{ {
pInstance =c->GetInstanceData(); pInstance =c->GetInstanceData();
} }
@@ -627,12 +666,30 @@ struct mob_hatchlingAI : public ScriptedAI
DoMeleeAttackIfReady(); DoMeleeAttackIfReady();
} }
};
CreatureAI* GetAI(Creature* creature) const
{
return new mob_janalai_hatchlingAI(creature);
}
}; };
CreatureAI* GetAI_mob_hatchlingAI(Creature* pCreature) class mob_janalai_egg : public CreatureScript
{ {
return new mob_hatchlingAI(pCreature); public:
}
mob_janalai_egg()
: CreatureScript("mob_janalai_egg")
{
}
CreatureAI* GetAI(Creature* creature) const
{
return new mob_janalai_eggAI(creature);
}
};
struct mob_eggAI : public ScriptedAI struct mob_eggAI : public ScriptedAI
{ {
@@ -653,37 +710,12 @@ struct mob_eggAI : public ScriptedAI
} }
}; };
CreatureAI* GetAI_mob_eggAI(Creature* pCreature)
{
return new mob_eggAI(pCreature);
}
void AddSC_boss_janalai() void AddSC_boss_janalai()
{ {
Script *newscript; new boss_janalai();
newscript = new Script; new mob_janalai_firebomb();
newscript->Name = "boss_janalai"; new mob_janalai_hatcher();
newscript->GetAI = &GetAI_boss_janalaiAI; new mob_janalai_hatchling();
newscript->RegisterSelf(); new mob_janalai_egg();
newscript = new Script;
newscript->Name = "mob_janalai_firebomb";
newscript->GetAI = &GetAI_mob_janalai_firebombAI;
newscript->RegisterSelf();
newscript = new Script;
newscript->Name = "mob_janalai_hatcher";
newscript->GetAI = &GetAI_mob_amanishi_hatcherAI;
newscript->RegisterSelf();
newscript = new Script;
newscript->Name = "mob_janalai_hatchling";
newscript->GetAI = &GetAI_mob_hatchlingAI;
newscript->RegisterSelf();
newscript = new Script;
newscript->Name = "mob_janalai_egg";
newscript->GetAI = &GetAI_mob_eggAI;
newscript->RegisterSelf();
} }
@@ -90,8 +90,17 @@ float NalorakkWay[8][3] =
#define YELL_SHIFTEDTOBEAR "You call on da beast, you gonna get more dan you bargain for!" #define YELL_SHIFTEDTOBEAR "You call on da beast, you gonna get more dan you bargain for!"
#define SOUND_YELL_TOBEAR 12072 #define SOUND_YELL_TOBEAR 12072
struct boss_nalorakkAI : public ScriptedAI class boss_nalorakk : public CreatureScript
{ {
public:
boss_nalorakk()
: CreatureScript("boss_nalorakk")
{
}
struct boss_nalorakkAI : public ScriptedAI
{
boss_nalorakkAI(Creature *c) : ScriptedAI(c) boss_nalorakkAI(Creature *c) : ScriptedAI(c)
{ {
MoveEvent = true; MoveEvent = true;
@@ -435,19 +444,17 @@ struct boss_nalorakkAI : public ScriptedAI
DoMeleeAttackIfReady(); DoMeleeAttackIfReady();
} }
}; };
CreatureAI* GetAI_boss_nalorakk(Creature* pCreature)
{ CreatureAI* GetAI(Creature* creature) const
return new boss_nalorakkAI (pCreature); {
} return new boss_nalorakkAI(creature);
}
};
void AddSC_boss_nalorakk() void AddSC_boss_nalorakk()
{ {
Script *newscript; new boss_nalorakk();
newscript = new Script;
newscript->Name = "boss_nalorakk";
newscript->GetAI = &GetAI_boss_nalorakk;
newscript->RegisterSelf();
} }
@@ -140,8 +140,17 @@ static TransformStruct Transform[] =
{SOUND_TRANSFORM_TO_DRAGONHAWK, YELL_TRANSFORM_TO_DRAGONHAWK, SPELL_SHAPE_OF_THE_DRAGONHAWK, SPELL_SHAPE_OF_THE_LYNX} {SOUND_TRANSFORM_TO_DRAGONHAWK, YELL_TRANSFORM_TO_DRAGONHAWK, SPELL_SHAPE_OF_THE_DRAGONHAWK, SPELL_SHAPE_OF_THE_LYNX}
}; };
struct boss_zuljinAI : public ScriptedAI class boss_zuljin : public CreatureScript
{ {
public:
boss_zuljin()
: CreatureScript("boss_zuljin")
{
}
struct boss_zuljinAI : public ScriptedAI
{
boss_zuljinAI(Creature *c) : ScriptedAI(c), Summons(me) boss_zuljinAI(Creature *c) : ScriptedAI(c), Summons(me)
{ {
pInstance = c->GetInstanceData(); pInstance = c->GetInstanceData();
@@ -575,16 +584,27 @@ struct boss_zuljinAI : public ScriptedAI
if (!TankGUID) if (!TankGUID)
DoMeleeAttackIfReady(); DoMeleeAttackIfReady();
} }
};
CreatureAI* GetAI(Creature* creature) const
{
return new boss_zuljinAI(creature);
}
}; };
CreatureAI* GetAI_boss_zuljin(Creature* pCreature) class mob_zuljin_vortex : public CreatureScript
{ {
return new boss_zuljinAI (pCreature); public:
}
struct feather_vortexAI : public ScriptedAI mob_zuljin_vortex()
{ : CreatureScript("mob_zuljin_vortex")
feather_vortexAI(Creature *c) : ScriptedAI(c) {} {
}
struct mob_zuljin_vortexAI : public ScriptedAI
{
mob_zuljin_vortexAI(Creature *c) : ScriptedAI(c) {}
void Reset() {} void Reset() {}
@@ -602,24 +622,18 @@ struct feather_vortexAI : public ScriptedAI
if (me->IsWithinMeleeRange(me->getVictim())) if (me->IsWithinMeleeRange(me->getVictim()))
AttackStart(SelectUnit(SELECT_TARGET_RANDOM, 0)); AttackStart(SelectUnit(SELECT_TARGET_RANDOM, 0));
} }
};
CreatureAI* GetAI(Creature* creature) const
{
return new mob_zuljin_vortexAI(creature);
}
}; };
CreatureAI* GetAI_feather_vortexAI(Creature* pCreature)
{
return new feather_vortexAI (pCreature);
}
void AddSC_boss_zuljin() void AddSC_boss_zuljin()
{ {
Script *newscript; new boss_zuljin();
newscript = new Script; new mob_zuljin_vortex();
newscript->Name = "boss_zuljin";
newscript->GetAI = &GetAI_boss_zuljin;
newscript->RegisterSelf();
newscript = new Script;
newscript->Name = "mob_zuljin_vortex";
newscript->GetAI = &GetAI_feather_vortexAI;
newscript->RegisterSelf();
} }
@@ -51,9 +51,17 @@ static SHostageInfo HostageInfo[] =
}; };
struct instance_zulaman : public ScriptedInstance class instance_zulaman : public InstanceMapScript
{ {
instance_zulaman(Map* pMap) : ScriptedInstance(pMap) {Initialize();}; public:
instance_zulaman()
: InstanceMapScript("instance_zulaman")
{
}
struct instance_zulaman_InstanceMapScript : public ScriptedInstance
{
instance_zulaman_InstanceMapScript(Map* pMap) : ScriptedInstance(pMap) {Initialize();};
uint64 HarkorsSatchelGUID; uint64 HarkorsSatchelGUID;
uint64 TanzarsTrunkGUID; uint64 TanzarsTrunkGUID;
@@ -304,19 +312,16 @@ struct instance_zulaman : public ScriptedInstance
QuestTimer -= diff; QuestTimer -= diff;
} }
} }
}; };
InstanceData* GetInstanceData_instance_zulaman(Map* pMap) InstanceData* GetInstanceData(InstanceMap* pMap) const
{ {
return new instance_zulaman(pMap); return new instance_zulaman_InstanceMapScript(pMap);
} }
};
void AddSC_instance_zulaman() void AddSC_instance_zulaman()
{ {
Script *newscript; new instance_zulaman();
newscript = new Script;
newscript->Name = "instance_zulaman";
newscript->GetInstanceData = &GetInstanceData_instance_zulaman;
newscript->RegisterSelf();
} }
@@ -38,8 +38,17 @@ EndContentData */
#define SPELL_PUSH_MOJO 43923 #define SPELL_PUSH_MOJO 43923
#define ENTRY_FOREST_FROG 24396 #define ENTRY_FOREST_FROG 24396
struct npc_forest_frogAI : public ScriptedAI class npc_forest_frog : public CreatureScript
{ {
public:
npc_forest_frog()
: CreatureScript("npc_forest_frog")
{
}
struct npc_forest_frogAI : public ScriptedAI
{
npc_forest_frogAI(Creature* c) : ScriptedAI(c) npc_forest_frogAI(Creature* c) : ScriptedAI(c)
{ {
pInstance = c->GetInstanceData(); pInstance = c->GetInstanceData();
@@ -91,11 +100,13 @@ struct npc_forest_frogAI : public ScriptedAI
else DoSpawnRandom(); else DoSpawnRandom();
} }
} }
};
CreatureAI* GetAI(Creature* creature) const
{
return new npc_forest_frogAI(creature);
}
}; };
CreatureAI* GetAI_npc_forest_frog(Creature* pCreature)
{
return new npc_forest_frogAI (pCreature);
}
/*###### /*######
## npc_zulaman_hostage ## npc_zulaman_hostage
@@ -106,8 +117,17 @@ CreatureAI* GetAI_npc_forest_frog(Creature* pCreature)
static uint32 HostageEntry[] = {23790, 23999, 24024, 24001}; static uint32 HostageEntry[] = {23790, 23999, 24024, 24001};
static uint32 ChestEntry[] = {186648, 187021, 186672, 186667}; static uint32 ChestEntry[] = {186648, 187021, 186672, 186667};
struct npc_zulaman_hostageAI : public ScriptedAI class npc_zulaman_hostage : public CreatureScript
{ {
public:
npc_zulaman_hostage()
: CreatureScript("npc_zulaman_hostage")
{
}
struct npc_zulaman_hostageAI : public ScriptedAI
{
npc_zulaman_hostageAI(Creature *c) : ScriptedAI(c) {IsLoot = false;} npc_zulaman_hostageAI(Creature *c) : ScriptedAI(c) {IsLoot = false;}
bool IsLoot; bool IsLoot;
uint64 PlayerGUID; uint64 PlayerGUID;
@@ -123,17 +143,22 @@ struct npc_zulaman_hostageAI : public ScriptedAI
if (IsLoot) if (IsLoot)
DoCast(me, 7, false); DoCast(me, 7, false);
} }
}; };
bool GossipHello_npc_zulaman_hostage(Player* pPlayer, Creature* pCreature) CreatureAI* GetAI(Creature* creature) const
{ {
return new npc_zulaman_hostageAI(creature);
}
bool OnGossipHello(Player* pPlayer, Creature* pCreature)
{
pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_HOSTAGE1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1); pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_HOSTAGE1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
pPlayer->SEND_GOSSIP_MENU(pPlayer->GetGossipTextId(pCreature), pCreature->GetGUID()); pPlayer->SEND_GOSSIP_MENU(pPlayer->GetGossipTextId(pCreature), pCreature->GetGUID());
return true; return true;
} }
bool GossipSelect_npc_zulaman_hostage(Player* pPlayer, Creature* pCreature, uint32 /*uiSender*/, uint32 uiAction) bool OnGossipSelect(Player* pPlayer, Creature* pCreature, uint32 /*uiSender*/, uint32 uiAction)
{ {
if (uiAction == GOSSIP_ACTION_INFO_DEF + 1) if (uiAction == GOSSIP_ACTION_INFO_DEF + 1)
pPlayer->CLOSE_GOSSIP_MENU(); pPlayer->CLOSE_GOSSIP_MENU();
@@ -157,38 +182,14 @@ bool GossipSelect_npc_zulaman_hostage(Player* pPlayer, Creature* pCreature, uint
break; break;
} }
} }
/*Creature* summon = pCreature->SummonCreature(HostageInfo[progress], x-2, y, z, 0, TEMPSUMMON_DEAD_DESPAWN, 0);
if (summon)
{
CAST_AI(npc_zulaman_hostageAI, summon->AI())->PlayerGUID = pPlayer->GetGUID();
CAST_AI(npc_zulaman_hostageAI, summon->AI())->IsLoot = true;
summon->SetDisplayId(10056);
summon->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
summon->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
}*/
} }
return true; return true;
} }
};
CreatureAI* GetAI_npc_zulaman_hostage(Creature* pCreature)
{
return new npc_zulaman_hostageAI(pCreature);
}
void AddSC_zulaman() void AddSC_zulaman()
{ {
Script *newscript; new npc_forest_frog();
new npc_zulaman_hostage();
newscript = new Script;
newscript->Name = "npc_forest_frog";
newscript->GetAI = &GetAI_npc_forest_frog;
newscript->RegisterSelf();
newscript = new Script;
newscript->Name = "npc_zulaman_hostage";
newscript->GetAI = &GetAI_npc_zulaman_hostage;
newscript->pGossipHello = &GossipHello_npc_zulaman_hostage;
newscript->pGossipSelect = &GossipSelect_npc_zulaman_hostage;
newscript->RegisterSelf();
} }
@@ -26,26 +26,15 @@ EndScriptData */
#include "ScriptPCH.h" #include "ScriptPCH.h"
#include "zulgurub.h" #include "zulgurub.h"
bool GOHello_go_gong_of_bethekk(Player* /*pPlayer*/, GameObject* pGo) enum eYells
{
if (ScriptedInstance* m_pInstance = pGo->GetInstanceData())
{
if (m_pInstance->GetData(TYPE_ARLOKK) == DONE || m_pInstance->GetData(TYPE_ARLOKK) == IN_PROGRESS)
return true;
m_pInstance->SetData(TYPE_ARLOKK, IN_PROGRESS);
return true;
}
return true;
}
enum eEnums
{ {
SAY_AGGRO = -1309011, SAY_AGGRO = -1309011,
SAY_FEAST_PANTHER = -1309012, SAY_FEAST_PANTHER = -1309012,
SAY_DEATH = -1309013, SAY_DEATH = -1309013,
};
enum eSpells
{
SPELL_SHADOWWORDPAIN = 23952, SPELL_SHADOWWORDPAIN = 23952,
SPELL_GOUGE = 24698, SPELL_GOUGE = 24698,
SPELL_MARK = 24210, SPELL_MARK = 24210,
@@ -59,8 +48,17 @@ enum eEnums
NPC_ZULIAN_PROWLER = 15101 NPC_ZULIAN_PROWLER = 15101
}; };
struct boss_arlokkAI : public ScriptedAI class boss_arlokk : public CreatureScript
{ {
public:
boss_arlokk()
: CreatureScript("boss_arlokk")
{
}
struct boss_arlokkAI : public ScriptedAI
{
boss_arlokkAI(Creature* pCreature) : ScriptedAI(pCreature) boss_arlokkAI(Creature* pCreature) : ScriptedAI(pCreature)
{ {
m_pInstance = pCreature->GetInstanceData(); m_pInstance = pCreature->GetInstanceData();
@@ -256,25 +254,39 @@ struct boss_arlokkAI : public ScriptedAI
else else
DoMeleeAttackIfReady(); DoMeleeAttackIfReady();
} }
};
CreatureAI* GetAI(Creature* creature) const
{
return new boss_arlokkAI(creature);
}
}; };
CreatureAI* GetAI_boss_arlokk(Creature* pCreature) class go_gong_of_bethekk : public GameObjectScript
{ {
return new boss_arlokkAI (pCreature); public:
} go_gong_of_bethekk() : GameObjectScript("go_gong_of_bethekk")
{
}
bool OnGossipHello(Player* /*pPlayer*/, GameObject* pGo)
{
if (ScriptedInstance* m_pInstance = pGo->GetInstanceData())
{
if (m_pInstance->GetData(TYPE_ARLOKK) == DONE || m_pInstance->GetData(TYPE_ARLOKK) == IN_PROGRESS)
return true;
m_pInstance->SetData(TYPE_ARLOKK, IN_PROGRESS);
return true;
}
return true;
}
};
void AddSC_boss_arlokk() void AddSC_boss_arlokk()
{ {
Script *newscript; new boss_arlokk();
new go_gong_of_bethekk();
newscript = new Script;
newscript->Name = "go_gong_of_bethekk";
newscript->pGOHello = &GOHello_go_gong_of_bethekk;
newscript->RegisterSelf();
newscript = new Script;
newscript->Name = "boss_arlokk";
newscript->GetAI = &GetAI_boss_arlokk;
newscript->RegisterSelf();
} }
@@ -29,8 +29,17 @@ EndScriptData */
#define SPELL_MASSIVEGEYSER 22421 //Not working. Cause its a summon... #define SPELL_MASSIVEGEYSER 22421 //Not working. Cause its a summon...
#define SPELL_SLAM 24326 #define SPELL_SLAM 24326
struct boss_gahzrankaAI : public ScriptedAI class boss_gahzranka : public CreatureScript
{ {
public:
boss_gahzranka()
: CreatureScript("boss_gahzranka")
{
}
struct boss_gahzrankaAI : public ScriptedAI
{
boss_gahzrankaAI(Creature *c) : ScriptedAI(c) {} boss_gahzrankaAI(Creature *c) : ScriptedAI(c) {}
uint32 Frostbreath_Timer; uint32 Frostbreath_Timer;
uint32 MassiveGeyser_Timer; uint32 MassiveGeyser_Timer;
@@ -78,18 +87,16 @@ struct boss_gahzrankaAI : public ScriptedAI
DoMeleeAttackIfReady(); DoMeleeAttackIfReady();
} }
};
CreatureAI* GetAI(Creature* creature) const
{
return new boss_gahzrankaAI(creature);
}
}; };
CreatureAI* GetAI_boss_gahzranka(Creature* pCreature)
{
return new boss_gahzrankaAI (pCreature);
}
void AddSC_boss_gahzranka() void AddSC_boss_gahzranka()
{ {
Script *newscript; new boss_gahzranka();
newscript = new Script;
newscript->Name = "boss_gahzranka";
newscript->GetAI = &GetAI_boss_gahzranka;
newscript->RegisterSelf();
} }
@@ -29,8 +29,17 @@ EndScriptData */
#define SPELL_AVARTAR 24646 //The Enrage Spell #define SPELL_AVARTAR 24646 //The Enrage Spell
#define SPELL_GROUNDTREMOR 6524 #define SPELL_GROUNDTREMOR 6524
struct boss_grilekAI : public ScriptedAI class boss_grilek : public CreatureScript
{ {
public:
boss_grilek()
: CreatureScript("boss_grilek")
{
}
struct boss_grilekAI : public ScriptedAI
{
boss_grilekAI(Creature *c) : ScriptedAI(c) {} boss_grilekAI(Creature *c) : ScriptedAI(c) {}
uint32 Avartar_Timer; uint32 Avartar_Timer;
@@ -78,18 +87,16 @@ struct boss_grilekAI : public ScriptedAI
DoMeleeAttackIfReady(); DoMeleeAttackIfReady();
} }
};
CreatureAI* GetAI(Creature* creature) const
{
return new boss_grilekAI(creature);
}
}; };
CreatureAI* GetAI_boss_grilek(Creature* pCreature)
{
return new boss_grilekAI (pCreature);
}
void AddSC_boss_grilek() void AddSC_boss_grilek()
{ {
Script *newscript; new boss_grilek();
newscript = new Script;
newscript->Name = "boss_grilek";
newscript->GetAI = &GetAI_boss_grilek;
newscript->RegisterSelf();
} }
@@ -44,8 +44,17 @@ EndScriptData */
#define SPELL_ASPECT_OF_THEKAL 24689 #define SPELL_ASPECT_OF_THEKAL 24689
#define SPELL_ASPECT_OF_ARLOKK 24690 #define SPELL_ASPECT_OF_ARLOKK 24690
struct boss_hakkarAI : public ScriptedAI class boss_hakkar : public CreatureScript
{ {
public:
boss_hakkar()
: CreatureScript("boss_hakkar")
{
}
struct boss_hakkarAI : public ScriptedAI
{
boss_hakkarAI(Creature *c) : ScriptedAI(c) boss_hakkarAI(Creature *c) : ScriptedAI(c)
{ {
m_pInstance = c->GetInstanceData(); m_pInstance = c->GetInstanceData();
@@ -234,19 +243,16 @@ struct boss_hakkarAI : public ScriptedAI
DoMeleeAttackIfReady(); DoMeleeAttackIfReady();
} }
}; };
CreatureAI* GetAI_boss_hakkar(Creature* pCreature) CreatureAI* GetAI(Creature* creature) const
{ {
return new boss_hakkarAI (pCreature); return new boss_hakkarAI(creature);
} }
};
void AddSC_boss_hakkar() void AddSC_boss_hakkar()
{ {
Script *newscript; new boss_hakkar();
newscript = new Script;
newscript->Name = "boss_hakkar";
newscript->GetAI = &GetAI_boss_hakkar;
newscript->RegisterSelf();
} }
@@ -29,8 +29,17 @@ EndScriptData */
#define SPELL_MANABURN 26046 #define SPELL_MANABURN 26046
#define SPELL_SLEEP 24664 #define SPELL_SLEEP 24664
struct boss_hazzarahAI : public ScriptedAI class boss_hazzarah : public CreatureScript
{ {
public:
boss_hazzarah()
: CreatureScript("boss_hazzarah")
{
}
struct boss_hazzarahAI : public ScriptedAI
{
boss_hazzarahAI(Creature *c) : ScriptedAI(c) {} boss_hazzarahAI(Creature *c) : ScriptedAI(c) {}
uint32 ManaBurn_Timer; uint32 ManaBurn_Timer;
@@ -89,18 +98,16 @@ struct boss_hazzarahAI : public ScriptedAI
DoMeleeAttackIfReady(); DoMeleeAttackIfReady();
} }
};
CreatureAI* GetAI(Creature* creature) const
{
return new boss_hazzarahAI(creature);
}
}; };
CreatureAI* GetAI_boss_hazzarah(Creature* pCreature)
{
return new boss_hazzarahAI (pCreature);
}
void AddSC_boss_hazzarah() void AddSC_boss_hazzarah()
{ {
Script *newscript; new boss_hazzarah();
newscript = new Script;
newscript->Name = "boss_hazzarah";
newscript->GetAI = &GetAI_boss_hazzarah;
newscript->RegisterSelf();
} }
@@ -43,8 +43,17 @@ EndScriptData */
#define SPELL_BOMB 40332 //Wrong ID but Magmadars bomb is not working... #define SPELL_BOMB 40332 //Wrong ID but Magmadars bomb is not working...
struct boss_jeklikAI : public ScriptedAI class boss_jeklik : public CreatureScript
{ {
public:
boss_jeklik()
: CreatureScript("boss_jeklik")
{
}
struct boss_jeklikAI : public ScriptedAI
{
boss_jeklikAI(Creature *c) : ScriptedAI(c) boss_jeklikAI(Creature *c) : ScriptedAI(c)
{ {
m_pInstance = c->GetInstanceData(); m_pInstance = c->GetInstanceData();
@@ -207,11 +216,26 @@ struct boss_jeklikAI : public ScriptedAI
DoMeleeAttackIfReady(); DoMeleeAttackIfReady();
} }
} }
};
CreatureAI* GetAI(Creature* creature) const
{
return new boss_jeklikAI(creature);
}
}; };
//Flying Bat //Flying Bat
struct mob_batriderAI : public ScriptedAI class mob_batrider : public CreatureScript
{ {
public:
mob_batrider()
: CreatureScript("mob_batrider")
{
}
struct mob_batriderAI : public ScriptedAI
{
mob_batriderAI(Creature *c) : ScriptedAI(c) mob_batriderAI(Creature *c) : ScriptedAI(c)
{ {
m_pInstance = c->GetInstanceData(); m_pInstance = c->GetInstanceData();
@@ -265,29 +289,17 @@ struct mob_batriderAI : public ScriptedAI
DoMeleeAttackIfReady(); DoMeleeAttackIfReady();
} }
};
CreatureAI* GetAI(Creature* creature) const
{
return new mob_batriderAI(creature);
}
}; };
CreatureAI* GetAI_boss_jeklik(Creature* pCreature)
{
return new boss_jeklikAI (pCreature);
}
CreatureAI* GetAI_mob_batrider(Creature* pCreature)
{
return new mob_batriderAI (pCreature);
}
void AddSC_boss_jeklik() void AddSC_boss_jeklik()
{ {
Script *newscript; new boss_jeklik();
newscript = new Script; new mob_batrider();
newscript->Name = "boss_jeklik";
newscript->GetAI = &GetAI_boss_jeklik;
newscript->RegisterSelf();
newscript = new Script;
newscript->Name = "mob_batrider";
newscript->GetAI = &GetAI_mob_batrider;
newscript->RegisterSelf();
} }
@@ -41,8 +41,17 @@ EndScriptData */
#define SPELL_SHADOWSHOCK 19460 #define SPELL_SHADOWSHOCK 19460
#define SPELL_INVISIBLE 24699 #define SPELL_INVISIBLE 24699
struct boss_jindoAI : public ScriptedAI class boss_jindo : public CreatureScript
{ {
public:
boss_jindo()
: CreatureScript("boss_jindo")
{
}
struct boss_jindoAI : public ScriptedAI
{
boss_jindoAI(Creature *c) : ScriptedAI(c) {} boss_jindoAI(Creature *c) : ScriptedAI(c) {}
uint32 BrainWashTotem_Timer; uint32 BrainWashTotem_Timer;
@@ -158,11 +167,26 @@ struct boss_jindoAI : public ScriptedAI
DoMeleeAttackIfReady(); DoMeleeAttackIfReady();
} }
};
CreatureAI* GetAI(Creature* creature) const
{
return new boss_jindoAI(creature);
}
}; };
//Healing Ward //Healing Ward
struct mob_healing_wardAI : public ScriptedAI class mob_healing_ward : public CreatureScript
{ {
public:
mob_healing_ward()
: CreatureScript("mob_healing_ward")
{
}
struct mob_healing_wardAI : public ScriptedAI
{
mob_healing_wardAI(Creature *c) : ScriptedAI(c) mob_healing_wardAI(Creature *c) : ScriptedAI(c)
{ {
pInstance = c->GetInstanceData(); pInstance = c->GetInstanceData();
@@ -197,11 +221,26 @@ struct mob_healing_wardAI : public ScriptedAI
DoMeleeAttackIfReady(); DoMeleeAttackIfReady();
} }
};
CreatureAI* GetAI(Creature* creature) const
{
return new mob_healing_wardAI(creature);
}
}; };
//Shade of Jindo //Shade of Jindo
struct mob_shade_of_jindoAI : public ScriptedAI class mob_shade_of_jindo : public CreatureScript
{ {
public:
mob_shade_of_jindo()
: CreatureScript("mob_shade_of_jindo")
{
}
struct mob_shade_of_jindoAI : public ScriptedAI
{
mob_shade_of_jindoAI(Creature *c) : ScriptedAI(c) {} mob_shade_of_jindoAI(Creature *c) : ScriptedAI(c) {}
uint32 ShadowShock_Timer; uint32 ShadowShock_Timer;
@@ -226,40 +265,18 @@ struct mob_shade_of_jindoAI : public ScriptedAI
DoMeleeAttackIfReady(); DoMeleeAttackIfReady();
} }
};
CreatureAI* GetAI(Creature* creature) const
{
return new mob_shade_of_jindoAI(creature);
}
}; };
CreatureAI* GetAI_boss_jindo(Creature* pCreature)
{
return new boss_jindoAI (pCreature);
}
CreatureAI* GetAI_mob_healing_ward(Creature* pCreature)
{
return new mob_healing_wardAI (pCreature);
}
CreatureAI* GetAI_mob_shade_of_jindo(Creature* pCreature)
{
return new mob_shade_of_jindoAI (pCreature);
}
void AddSC_boss_jindo() void AddSC_boss_jindo()
{ {
Script *newscript; new boss_jindo();
new mob_healing_ward();
newscript = new Script; new mob_shade_of_jindo();
newscript->Name = "boss_jindo";
newscript->GetAI = &GetAI_boss_jindo;
newscript->RegisterSelf();
newscript = new Script;
newscript->Name = "mob_healing_ward";
newscript->GetAI = &GetAI_mob_healing_ward;
newscript->RegisterSelf();
newscript = new Script;
newscript->Name = "mob_shade_of_jindo";
newscript->GetAI = &GetAI_mob_shade_of_jindo;
newscript->RegisterSelf();
} }
@@ -44,8 +44,17 @@ EndScriptData */
//Ohgans Spells //Ohgans Spells
#define SPELL_SUNDERARMOR 24317 #define SPELL_SUNDERARMOR 24317
struct boss_mandokirAI : public ScriptedAI class boss_mandokir : public CreatureScript
{ {
public:
boss_mandokir()
: CreatureScript("boss_mandokir")
{
}
struct boss_mandokirAI : public ScriptedAI
{
boss_mandokirAI(Creature *c) : ScriptedAI(c) boss_mandokirAI(Creature *c) : ScriptedAI(c)
{ {
m_pInstance = c->GetInstanceData(); m_pInstance = c->GetInstanceData();
@@ -265,11 +274,26 @@ struct boss_mandokirAI : public ScriptedAI
DoMeleeAttackIfReady(); DoMeleeAttackIfReady();
} }
} }
};
CreatureAI* GetAI(Creature* creature) const
{
return new boss_mandokirAI(creature);
}
}; };
//Ohgan //Ohgan
struct mob_ohganAI : public ScriptedAI class mob_ohgan : public CreatureScript
{ {
public:
mob_ohgan()
: CreatureScript("mob_ohgan")
{
}
struct mob_ohganAI : public ScriptedAI
{
mob_ohganAI(Creature *c) : ScriptedAI(c) mob_ohganAI(Creature *c) : ScriptedAI(c)
{ {
m_pInstance = c->GetInstanceData(); m_pInstance = c->GetInstanceData();
@@ -306,30 +330,17 @@ struct mob_ohganAI : public ScriptedAI
DoMeleeAttackIfReady(); DoMeleeAttackIfReady();
} }
};
CreatureAI* GetAI(Creature* creature) const
{
return new mob_ohganAI(creature);
}
}; };
CreatureAI* GetAI_boss_mandokir(Creature* pCreature)
{
return new boss_mandokirAI (pCreature);
}
CreatureAI* GetAI_mob_ohgan(Creature* pCreature)
{
return new mob_ohganAI (pCreature);
}
void AddSC_boss_mandokir() void AddSC_boss_mandokir()
{ {
Script *newscript; new boss_mandokir();
new mob_ohgan();
newscript = new Script;
newscript->Name = "boss_mandokir";
newscript->GetAI = &GetAI_boss_mandokir;
newscript->RegisterSelf();
newscript = new Script;
newscript->Name = "mob_ohgan";
newscript->GetAI = &GetAI_mob_ohgan;
newscript->RegisterSelf();
} }
@@ -40,8 +40,17 @@ EndScriptData */
//The Spider Spells //The Spider Spells
#define SPELL_LEVELUP 24312 //Not right Spell. #define SPELL_LEVELUP 24312 //Not right Spell.
struct boss_marliAI : public ScriptedAI class boss_marli : public CreatureScript
{ {
public:
boss_marli()
: CreatureScript("boss_marli")
{
}
struct boss_marliAI : public ScriptedAI
{
boss_marliAI(Creature *c) : ScriptedAI(c) boss_marliAI(Creature *c) : ScriptedAI(c)
{ {
m_pInstance = c->GetInstanceData(); m_pInstance = c->GetInstanceData();
@@ -201,11 +210,27 @@ struct boss_marliAI : public ScriptedAI
DoMeleeAttackIfReady(); DoMeleeAttackIfReady();
} }
} }
};
CreatureAI* GetAI(Creature* creature) const
{
return new example_creatureAI(creature);
}
}; };
//Spawn of Marli //Spawn of Marli
struct mob_spawn_of_marliAI : public ScriptedAI class mob_spawn_of_marli : public CreatureScript
{ {
public:
mob_spawn_of_marli()
: CreatureScript("mob_spawn_of_marli")
{
}
struct mob_spawn_of_marliAI : public ScriptedAI
{
mob_spawn_of_marliAI(Creature *c) : ScriptedAI(c) {} mob_spawn_of_marliAI(Creature *c) : ScriptedAI(c) {}
uint32 LevelUp_Timer; uint32 LevelUp_Timer;
@@ -234,30 +259,17 @@ struct mob_spawn_of_marliAI : public ScriptedAI
DoMeleeAttackIfReady(); DoMeleeAttackIfReady();
} }
};
CreatureAI* GetAI(Creature* creature) const
{
return new mob_spawn_of_marliAI(creature);
}
}; };
CreatureAI* GetAI_boss_marli(Creature* pCreature)
{
return new boss_marliAI (pCreature);
}
CreatureAI* GetAI_mob_spawn_of_marli(Creature* pCreature)
{
return new mob_spawn_of_marliAI (pCreature);
}
void AddSC_boss_marli() void AddSC_boss_marli()
{ {
Script *newscript; new boss_marli();
new mob_spawn_of_marli();
newscript = new Script;
newscript->Name = "boss_marli";
newscript->GetAI = &GetAI_boss_marli;
newscript->RegisterSelf();
newscript = new Script;
newscript->Name = "mob_spawn_of_marli";
newscript->GetAI = &GetAI_mob_spawn_of_marli;
newscript->RegisterSelf();
} }
@@ -31,8 +31,17 @@ EndScriptData */
#define EQUIP_ID_MAIN_HAND 0 //was item display id 31818, but this id does not exist #define EQUIP_ID_MAIN_HAND 0 //was item display id 31818, but this id does not exist
struct boss_renatakiAI : public ScriptedAI class boss_renataki : public CreatureScript
{ {
public:
boss_renataki()
: CreatureScript("boss_renataki")
{
}
struct boss_renatakiAI : public ScriptedAI
{
boss_renatakiAI(Creature *c) : ScriptedAI(c) {} boss_renatakiAI(Creature *c) : ScriptedAI(c) {}
uint32 Invisible_Timer; uint32 Invisible_Timer;
@@ -137,18 +146,16 @@ struct boss_renatakiAI : public ScriptedAI
DoMeleeAttackIfReady(); DoMeleeAttackIfReady();
} }
};
CreatureAI* GetAI(Creature* creature) const
{
return new boss_renatakiAI(creature);
}
}; };
CreatureAI* GetAI_boss_renataki(Creature* pCreature)
{
return new boss_renatakiAI (pCreature);
}
void AddSC_boss_renataki() void AddSC_boss_renataki()
{ {
Script *newscript; new boss_renataki();
newscript = new Script;
newscript->Name = "boss_renataki";
newscript->GetAI = &GetAI_boss_renataki;
newscript->RegisterSelf();
} }
@@ -29,31 +29,43 @@ EndScriptData */
#define SAY_AGGRO -1309009 #define SAY_AGGRO -1309009
#define SAY_DEATH -1309010 #define SAY_DEATH -1309010
#define SPELL_MORTALCLEAVE 22859 enum eSpells
#define SPELL_SILENCE 23207
#define SPELL_FRENZY 23342
#define SPELL_FORCEPUNCH 24189
#define SPELL_CHARGE 24408
#define SPELL_ENRAGE 23537
#define SPELL_SUMMONTIGERS 24183
#define SPELL_TIGER_FORM 24169
#define SPELL_RESURRECT 24173 //We will not use this spell.
//Zealot Lor'Khan Spells
#define SPELL_SHIELD 25020
#define SPELL_BLOODLUST 24185
#define SPELL_GREATERHEAL 24208
#define SPELL_DISARM 22691
//Zealot Lor'Khan Spells
#define SPELL_SWEEPINGSTRIKES 18765
#define SPELL_SINISTERSTRIKE 15667
#define SPELL_GOUGE 24698
#define SPELL_KICK 15614
#define SPELL_BLIND 21060
struct boss_thekalAI : public ScriptedAI
{ {
SPELL_MORTALCLEAVE = 22859,
SPELL_SILENCE = 23207,
SPELL_FRENZY = 23342,
SPELL_FORCEPUNCH = 24189,
SPELL_CHARGE = 24408,
SPELL_ENRAGE = 23537,
SPELL_SUMMONTIGERS = 24183,
SPELL_TIGER_FORM = 24169,
SPELL_RESURRECT = 24173, //We will not use this spell.
//Zealot Lor'Khan Spells
SPELL_SHIELD = 25020,
SPELL_BLOODLUST = 24185,
SPELL_GREATERHEAL = 24208,
SPELL_DISARM = 22691,
//Zealot Lor'Khan Spells
SPELL_SWEEPINGSTRIKES = 18765,
SPELL_SINISTERSTRIKE = 15667,
SPELL_GOUGE = 24698,
SPELL_KICK = 15614,
SPELL_BLIND = 21060,
};
class boss_thekal : public CreatureScript
{
public:
boss_thekal()
: CreatureScript("boss_thekal")
{
}
struct boss_thekalAI : public ScriptedAI
{
boss_thekalAI(Creature *c) : ScriptedAI(c) boss_thekalAI(Creature *c) : ScriptedAI(c)
{ {
m_pInstance = c->GetInstanceData(); m_pInstance = c->GetInstanceData();
@@ -242,11 +254,26 @@ struct boss_thekalAI : public ScriptedAI
DoMeleeAttackIfReady(); DoMeleeAttackIfReady();
} }
};
CreatureAI* GetAI(Creature* creature) const
{
return new boss_thekalAI(creature);
}
}; };
//Zealot Lor'Khan //Zealot Lor'Khan
struct mob_zealot_lorkhanAI : public ScriptedAI class mob_zealot_lorkhan : public CreatureScript
{ {
public:
mob_zealot_lorkhan()
: CreatureScript("mob_zealot_lorkhan")
{
}
struct mob_zealot_lorkhanAI : public ScriptedAI
{
mob_zealot_lorkhanAI(Creature *c) : ScriptedAI(c) mob_zealot_lorkhanAI(Creature *c) : ScriptedAI(c)
{ {
m_pInstance = c->GetInstanceData(); m_pInstance = c->GetInstanceData();
@@ -384,11 +411,26 @@ struct mob_zealot_lorkhanAI : public ScriptedAI
DoMeleeAttackIfReady(); DoMeleeAttackIfReady();
} }
};
CreatureAI* GetAI(Creature* creature) const
{
return new mob_zealot_lorkhanAI(creature);
}
}; };
//Zealot Zath //Zealot Zath
struct mob_zealot_zathAI : public ScriptedAI class mob_zealot_zath : public CreatureScript
{ {
public:
mob_zealot_zath()
: CreatureScript("mob_zealot_zath")
{
}
struct mob_zealot_zathAI : public ScriptedAI
{
mob_zealot_zathAI(Creature *c) : ScriptedAI(c) mob_zealot_zathAI(Creature *c) : ScriptedAI(c)
{ {
m_pInstance = c->GetInstanceData(); m_pInstance = c->GetInstanceData();
@@ -519,40 +561,18 @@ struct mob_zealot_zathAI : public ScriptedAI
DoMeleeAttackIfReady(); DoMeleeAttackIfReady();
} }
};
CreatureAI* GetAI(Creature* creature) const
{
return new mob_zealot_zathAI(creature);
}
}; };
CreatureAI* GetAI_boss_thekal(Creature* pCreature)
{
return new boss_thekalAI (pCreature);
}
CreatureAI* GetAI_mob_zealot_lorkhan(Creature* pCreature)
{
return new mob_zealot_lorkhanAI (pCreature);
}
CreatureAI* GetAI_mob_zealot_zath(Creature* pCreature)
{
return new mob_zealot_zathAI (pCreature);
}
void AddSC_boss_thekal() void AddSC_boss_thekal()
{ {
Script *newscript; new boss_thekal();
new mob_zealot_lorkhan();
newscript = new Script; new mob_zealot_zath();
newscript->Name = "boss_thekal";
newscript->GetAI = &GetAI_boss_thekal;
newscript->RegisterSelf();
newscript = new Script;
newscript->Name = "mob_zealot_lorkhan";
newscript->GetAI = &GetAI_mob_zealot_lorkhan;
newscript->RegisterSelf();
newscript = new Script;
newscript->Name = "mob_zealot_zath";
newscript->GetAI = &GetAI_mob_zealot_zath;
newscript->RegisterSelf();
} }
@@ -39,8 +39,17 @@ EndScriptData */
#define SPELL_BERSERK 23537 #define SPELL_BERSERK 23537
#define SPELL_DISPELL 23859 #define SPELL_DISPELL 23859
struct boss_venoxisAI : public ScriptedAI class boss_venoxis : public CreatureScript
{ {
public:
boss_venoxis()
: CreatureScript("boss_venoxis")
{
}
struct boss_venoxisAI : public ScriptedAI
{
boss_venoxisAI(Creature *c) : ScriptedAI(c) boss_venoxisAI(Creature *c) : ScriptedAI(c)
{ {
m_pInstance = c->GetInstanceData(); m_pInstance = c->GetInstanceData();
@@ -183,19 +192,16 @@ struct boss_venoxisAI : public ScriptedAI
} }
DoMeleeAttackIfReady(); DoMeleeAttackIfReady();
} }
}; };
CreatureAI* GetAI_boss_venoxis(Creature* pCreature) CreatureAI* GetAI(Creature* creature) const
{ {
return new boss_venoxisAI (pCreature); return new boss_venoxisAI(creature);
} }
};
void AddSC_boss_venoxis() void AddSC_boss_venoxis()
{ {
Script *newscript; new boss_venoxis();
newscript = new Script;
newscript->Name = "boss_venoxis";
newscript->GetAI = &GetAI_boss_venoxis;
newscript->RegisterSelf();
} }
@@ -29,8 +29,17 @@ EndScriptData */
#define SPELL_LIGHTNINGCLOUD 25033 #define SPELL_LIGHTNINGCLOUD 25033
#define SPELL_LIGHTNINGWAVE 24819 #define SPELL_LIGHTNINGWAVE 24819
struct boss_wushoolayAI : public ScriptedAI class boss_wushoolay : public CreatureScript
{ {
public:
boss_wushoolay()
: CreatureScript("boss_wushoolay")
{
}
struct boss_wushoolayAI : public ScriptedAI
{
boss_wushoolayAI(Creature *c) : ScriptedAI(c) {} boss_wushoolayAI(Creature *c) : ScriptedAI(c) {}
uint32 LightningCloud_Timer; uint32 LightningCloud_Timer;
@@ -70,18 +79,16 @@ struct boss_wushoolayAI : public ScriptedAI
DoMeleeAttackIfReady(); DoMeleeAttackIfReady();
} }
};
CreatureAI* GetAI(Creature* creature) const
{
return new boss_wushoolayAI(creature);
}
}; };
CreatureAI* GetAI_boss_wushoolay(Creature* pCreature)
{
return new boss_wushoolayAI (pCreature);
}
void AddSC_boss_wushoolay() void AddSC_boss_wushoolay()
{ {
Script *newscript; new boss_wushoolay();
newscript = new Script;
newscript->Name = "boss_wushoolay";
newscript->GetAI = &GetAI_boss_wushoolay;
newscript->RegisterSelf();
} }
@@ -26,8 +26,16 @@ EndScriptData */
#include "ScriptPCH.h" #include "ScriptPCH.h"
#include "zulgurub.h" #include "zulgurub.h"
struct instance_zulgurub : public ScriptedInstance class instance_zulgurub : public InstanceMapScript
{ {
public:
instance_zulgurub()
: InstanceMapScript("instance_zulgurub")
{
}
struct instance_zulgurub_InstanceMapScript : public ScriptedInstance
{
instance_zulgurub(Map* pMap) : ScriptedInstance(pMap) {Initialize();}; instance_zulgurub(Map* pMap) : ScriptedInstance(pMap) {Initialize();};
//If all High Priest bosses were killed. Lorkhan, Zath and Ohgan are added too. //If all High Priest bosses were killed. Lorkhan, Zath and Ohgan are added too.
@@ -143,19 +151,15 @@ struct instance_zulgurub : public ScriptedInstance
} }
return 0; return 0;
} }
}; };
InstanceData* GetInstanceData_instance_zulgurub(Map* pMap) InstanceData* OnGetInstanceData(InstanceMap* pMap)
{ {
return new instance_zulgurub(pMap); return new instance_zulgurub_InstanceMapScript(pMap);
} }
};
void AddSC_instance_zulgurub() void AddSC_instance_zulgurub()
{ {
Script *newscript; new instance_zulgurub();
newscript = new Script;
newscript->Name = "instance_zulgurub";
newscript->GetInstanceData = &GetInstanceData_instance_zulgurub;
newscript->RegisterSelf();
} }