mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-15 23:20:36 +01:00
* Fix remaining errors in scripts project
* Remove now obsolete ScriptedInstance.h file --HG-- branch : trunk
This commit is contained in:
@@ -1,18 +0,0 @@
|
||||
/* Copyright (C) 2006 - 2009 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>
|
||||
* This program is free software licensed under GPL version 2
|
||||
* Please see the included DOCS/LICENSE.TXT for more information */
|
||||
|
||||
#ifndef SC_INSTANCE_H
|
||||
#define SC_INSTANCE_H
|
||||
|
||||
#include "InstanceScript.h"
|
||||
#include "Map.h"
|
||||
|
||||
#define OUT_SAVE_INST_DATA sLog.outDebug("TSCR: Saving Instance Data for Instance %s (Map %d, Instance Id %d)", instance->GetMapName(), instance->GetId(), instance->GetInstanceId())
|
||||
#define OUT_SAVE_INST_DATA_COMPLETE sLog.outDebug("TSCR: Saving Instance Data for Instance %s (Map %d, Instance Id %d) completed.", instance->GetMapName(), instance->GetId(), instance->GetInstanceId())
|
||||
#define OUT_LOAD_INST_DATA(a) sLog.outDebug("TSCR: Loading Instance Data for Instance %s (Map %d, Instance Id %d). Input is '%s'", instance->GetMapName(), instance->GetId(), instance->GetInstanceId(), a)
|
||||
#define OUT_LOAD_INST_DATA_COMPLETE sLog.outDebug("TSCR: Instance Data Load for Instance %s (Map %d, Instance Id: %d) is complete.",instance->GetMapName(), instance->GetId(), instance->GetInstanceId())
|
||||
#define OUT_LOAD_INST_DATA_FAIL sLog.outError("TSCR: Unable to load Instance Data for Instance %s (Map %d, Instance Id: %d).",instance->GetMapName(), instance->GetId(), instance->GetInstanceId())
|
||||
|
||||
#endif
|
||||
|
||||
@@ -58,165 +58,13 @@ EndScriptData */
|
||||
#define SAY_DANCE "I always thought I was a good dancer"
|
||||
#define SAY_SALUTE "Move out Soldier!"
|
||||
|
||||
struct TRINITY_DLL_DECL custom_exampleAI : public ScriptedAI
|
||||
{
|
||||
//*** HANDLED FUNCTION ***
|
||||
//This is the constructor, called only once when the Creature is first created
|
||||
custom_exampleAI(Creature *c) : ScriptedAI(c) {}
|
||||
|
||||
//*** CUSTOM VARIABLES ****
|
||||
//These variables are for use only by this individual script.
|
||||
//Nothing else will ever call them but us.
|
||||
|
||||
uint32 Say_Timer; //Timer for random chat
|
||||
uint32 Rebuff_Timer; //Timer for rebuffing
|
||||
uint32 Spell_1_Timer; //Timer for spell 1 when in combat
|
||||
uint32 Spell_2_Timer; //Timer for spell 1 when in combat
|
||||
uint32 Spell_3_Timer; //Timer for spell 1 when in combat
|
||||
uint32 Beserk_Timer; //Timer until we go into Beserk (enraged) mode
|
||||
uint32 Phase; //The current battle phase we are in
|
||||
uint32 Phase_Timer; //Timer until phase transition
|
||||
|
||||
//*** HANDLED FUNCTION ***
|
||||
//This is called whenever the core decides we need to evade
|
||||
void Reset()
|
||||
{
|
||||
Phase = 1; //Start in phase 1
|
||||
Phase_Timer = 60000; //60 seconds
|
||||
Spell_1_Timer = 5000; //5 seconds
|
||||
Spell_2_Timer = 37000; //37 seconds
|
||||
Spell_3_Timer = 19000; //19 seconds
|
||||
Beserk_Timer = 120000; //2 minutes
|
||||
}
|
||||
|
||||
//*** HANDLED FUNCTION ***
|
||||
//Attack Start is called whenever someone hits us.
|
||||
void EnterCombat(Unit *who)
|
||||
{
|
||||
//Say some stuff
|
||||
DoSay(SAY_AGGRO,LANG_UNIVERSAL,NULL);
|
||||
DoPlaySoundToSet(me,8280);
|
||||
}
|
||||
|
||||
//*** HANDLED FUNCTION ***
|
||||
//Update AI is called Every single map update (roughly once every 100ms if a player is within the grid)
|
||||
void UpdateAI(const uint32 diff)
|
||||
{
|
||||
//Out of combat timers
|
||||
if (!me->getVictim())
|
||||
{
|
||||
//Random Say timer
|
||||
if (Say_Timer < diff)
|
||||
{
|
||||
//Random switch between 5 outcomes
|
||||
switch (rand()%5)
|
||||
{
|
||||
case 0:
|
||||
DoYell(SAY_RANDOM_0,LANG_UNIVERSAL,NULL);
|
||||
DoPlaySoundToSet(me,8831); //8831 is the index of the sound we are playing. You find these numbers in SoundEntries.dbc
|
||||
break;
|
||||
|
||||
case 1:
|
||||
DoYell(SAY_RANDOM_1,LANG_UNIVERSAL,NULL);
|
||||
DoPlaySoundToSet(me,8818);
|
||||
break;
|
||||
|
||||
case 2:
|
||||
DoYell(SAY_RANDOM_2,LANG_UNIVERSAL,NULL);
|
||||
DoPlaySoundToSet(me,8041);
|
||||
break;
|
||||
|
||||
case 3:
|
||||
DoYell(SAY_RANDOM_3,LANG_UNIVERSAL,NULL);
|
||||
DoPlaySoundToSet(me,8581);
|
||||
break;
|
||||
|
||||
case 4:
|
||||
DoYell(SAY_RANDOM_4,LANG_UNIVERSAL,NULL);
|
||||
DoPlaySoundToSet(me,8791);
|
||||
break;
|
||||
}
|
||||
|
||||
Say_Timer = 45000; //Say something agian in 45 seconds
|
||||
}else Say_Timer -= diff;
|
||||
|
||||
//Rebuff timer
|
||||
if (Rebuff_Timer < diff)
|
||||
{
|
||||
DoCast(me,SPELL_BUFF);
|
||||
Rebuff_Timer = 900000; //Rebuff agian in 15 minutes
|
||||
}else Rebuff_Timer -= diff;
|
||||
}
|
||||
|
||||
//Return since we have no target
|
||||
if (!UpdateVictim())
|
||||
return;
|
||||
|
||||
//Spell 1 timer
|
||||
if (Spell_1_Timer < diff)
|
||||
{
|
||||
//Cast spell one on our current target.
|
||||
if (rand()%50 > 10)
|
||||
DoCast(me->getVictim(),SPELL_ONE_ALT);
|
||||
else if (me->IsWithinDist(me->getVictim(), 25))
|
||||
DoCast(me->getVictim(),SPELL_ONE);
|
||||
|
||||
Spell_1_Timer = 5000;
|
||||
}else Spell_1_Timer -= diff;
|
||||
|
||||
//Spell 2 timer
|
||||
if (Spell_2_Timer < diff)
|
||||
{
|
||||
//Cast spell one on our current target.
|
||||
DoCast(me->getVictim(),SPELL_TWO);
|
||||
|
||||
Spell_2_Timer = 37000;
|
||||
}else Spell_2_Timer -= diff;
|
||||
|
||||
//Spell 3 timer
|
||||
if (Phase > 1)
|
||||
if (Spell_3_Timer < diff)
|
||||
{
|
||||
//Cast spell one on our current target.
|
||||
DoCast(me->getVictim(),SPELL_THREE);
|
||||
|
||||
Spell_3_Timer = 19000;
|
||||
}else Spell_3_Timer -= diff;
|
||||
|
||||
//Beserk timer
|
||||
if (Phase > 1)
|
||||
if (Beserk_Timer < diff)
|
||||
{
|
||||
//Say our line then cast uber death spell
|
||||
DoPlaySoundToSet(me,8588);
|
||||
DoYell(SAY_BESERK,LANG_UNIVERSAL,me->getVictim());
|
||||
DoCast(me->getVictim(),SPELL_BESERK);
|
||||
|
||||
//Cast our beserk spell agian in 12 seconds if we didn't kill everyone
|
||||
Beserk_Timer = 12000;
|
||||
}else Beserk_Timer -= diff;
|
||||
|
||||
//Phase timer
|
||||
if (Phase == 1)
|
||||
if (Phase_Timer < diff)
|
||||
{
|
||||
//Go to next phase
|
||||
Phase++;
|
||||
DoYell(SAY_PHASE,LANG_UNIVERSAL,NULL);
|
||||
DoCast(me,SPELL_ENRAGE);
|
||||
}else Phase_Timer -= diff;
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
};
|
||||
|
||||
//This is the GetAI method used by all scripts that involve AI
|
||||
//It is called every time a new Creature using this script is created
|
||||
class custom_example : public CreatureScript
|
||||
{
|
||||
public:
|
||||
custom_example() : CreatureScript("custom_example") { }
|
||||
|
||||
|
||||
bool OnReceiveEmote(Player* pPlayer, Creature* pCreature, uint32 emote)
|
||||
{
|
||||
pCreature->HandleEmoteCommand(emote);
|
||||
@@ -229,7 +77,7 @@ public:
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
bool OnGossipSelect(Player* pPlayer, Creature* pCreature, uint32 uiSender, uint32 uiAction)
|
||||
{
|
||||
if (uiSender == GOSSIP_SENDER_MAIN)
|
||||
@@ -237,7 +85,7 @@ public:
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
bool OnGossipHello(Player* pPlayer, Creature* pCreature)
|
||||
{
|
||||
pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM , GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
@@ -245,30 +93,176 @@ public:
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
//This function is called when the player clicks an option on the gossip menu
|
||||
void SendDefaultMenu(Player* pPlayer, Creature* pCreature, uint32 uiAction)
|
||||
{
|
||||
if (uiAction == GOSSIP_ACTION_INFO_DEF + 1) //Fight time
|
||||
{
|
||||
//Set our faction to hostile twoards all
|
||||
pCreature->setFaction(24);
|
||||
pCreature->Attack(pPlayer, true);
|
||||
pPlayer->PlayerTalkClass->CloseGossip();
|
||||
}
|
||||
}
|
||||
|
||||
CreatureAI* GetAI(Creature* pCreature)
|
||||
{
|
||||
return new custom_exampleAI (pCreature);
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
//This function is called when the player clicks an option on the gossip menu
|
||||
void SendDefaultMenu_custom_example(Player* pPlayer, Creature* pCreature, uint32 uiAction)
|
||||
{
|
||||
|
||||
struct custom_exampleAI : public ScriptedAI
|
||||
{
|
||||
//Set our faction to hostile twoards all
|
||||
pCreature->setFaction(24);
|
||||
pCreature->Attack(pPlayer, true);
|
||||
pPlayer->PlayerTalkClass->CloseGossip();
|
||||
}
|
||||
{
|
||||
//*** HANDLED FUNCTION ***
|
||||
//This is the constructor, called only once when the Creature is first created
|
||||
custom_exampleAI(Creature *c) : ScriptedAI(c) {}
|
||||
|
||||
|
||||
//*** CUSTOM VARIABLES ****
|
||||
//These variables are for use only by this individual script.
|
||||
//Nothing else will ever call them but us.
|
||||
|
||||
|
||||
uint32 Say_Timer; //Timer for random chat
|
||||
uint32 Rebuff_Timer; //Timer for rebuffing
|
||||
uint32 Spell_1_Timer; //Timer for spell 1 when in combat
|
||||
uint32 Spell_2_Timer; //Timer for spell 1 when in combat
|
||||
uint32 Spell_3_Timer; //Timer for spell 1 when in combat
|
||||
uint32 Beserk_Timer; //Timer until we go into Beserk (enraged) mode
|
||||
uint32 Phase; //The current battle phase we are in
|
||||
uint32 Phase_Timer; //Timer until phase transition
|
||||
|
||||
|
||||
//*** HANDLED FUNCTION ***
|
||||
//This is called whenever the core decides we need to evade
|
||||
void Reset()
|
||||
{
|
||||
Phase = 1; //Start in phase 1
|
||||
Phase_Timer = 60000; //60 seconds
|
||||
Spell_1_Timer = 5000; //5 seconds
|
||||
Spell_2_Timer = 37000; //37 seconds
|
||||
Spell_3_Timer = 19000; //19 seconds
|
||||
Beserk_Timer = 120000; //2 minutes
|
||||
}
|
||||
|
||||
//*** HANDLED FUNCTION ***
|
||||
//Attack Start is called whenever someone hits us.
|
||||
void EnterCombat(Unit *who)
|
||||
{
|
||||
//Say some stuff
|
||||
DoSay(SAY_AGGRO,LANG_UNIVERSAL,NULL);
|
||||
DoPlaySoundToSet(me,8280);
|
||||
}
|
||||
|
||||
//*** HANDLED FUNCTION ***
|
||||
//Update AI is called Every single map update (roughly once every 100ms if a player is within the grid)
|
||||
void UpdateAI(const uint32 diff)
|
||||
{
|
||||
//Out of combat timers
|
||||
if (!me->getVictim())
|
||||
{
|
||||
//Random Say timer
|
||||
if (Say_Timer < diff)
|
||||
{
|
||||
//Random switch between 5 outcomes
|
||||
switch (rand()%5)
|
||||
{
|
||||
case 0:
|
||||
DoYell(SAY_RANDOM_0,LANG_UNIVERSAL,NULL);
|
||||
DoPlaySoundToSet(me,8831); //8831 is the index of the sound we are playing. You find these numbers in SoundEntries.dbc
|
||||
break;
|
||||
|
||||
case 1:
|
||||
DoYell(SAY_RANDOM_1,LANG_UNIVERSAL,NULL);
|
||||
DoPlaySoundToSet(me,8818);
|
||||
break;
|
||||
|
||||
case 2:
|
||||
DoYell(SAY_RANDOM_2,LANG_UNIVERSAL,NULL);
|
||||
DoPlaySoundToSet(me,8041);
|
||||
break;
|
||||
|
||||
case 3:
|
||||
DoYell(SAY_RANDOM_3,LANG_UNIVERSAL,NULL);
|
||||
DoPlaySoundToSet(me,8581);
|
||||
break;
|
||||
|
||||
case 4:
|
||||
DoYell(SAY_RANDOM_4,LANG_UNIVERSAL,NULL);
|
||||
DoPlaySoundToSet(me,8791);
|
||||
break;
|
||||
}
|
||||
|
||||
Say_Timer = 45000; //Say something agian in 45 seconds
|
||||
}else Say_Timer -= diff;
|
||||
|
||||
//Rebuff timer
|
||||
if (Rebuff_Timer < diff)
|
||||
{
|
||||
DoCast(me,SPELL_BUFF);
|
||||
Rebuff_Timer = 900000; //Rebuff agian in 15 minutes
|
||||
}else Rebuff_Timer -= diff;
|
||||
}
|
||||
|
||||
//Return since we have no target
|
||||
if (!UpdateVictim())
|
||||
return;
|
||||
|
||||
//Spell 1 timer
|
||||
if (Spell_1_Timer < diff)
|
||||
{
|
||||
//Cast spell one on our current target.
|
||||
if (rand()%50 > 10)
|
||||
DoCast(me->getVictim(),SPELL_ONE_ALT);
|
||||
else if (me->IsWithinDist(me->getVictim(), 25))
|
||||
DoCast(me->getVictim(),SPELL_ONE);
|
||||
|
||||
Spell_1_Timer = 5000;
|
||||
}else Spell_1_Timer -= diff;
|
||||
|
||||
//Spell 2 timer
|
||||
if (Spell_2_Timer < diff)
|
||||
{
|
||||
//Cast spell one on our current target.
|
||||
DoCast(me->getVictim(),SPELL_TWO);
|
||||
|
||||
Spell_2_Timer = 37000;
|
||||
}else Spell_2_Timer -= diff;
|
||||
|
||||
//Spell 3 timer
|
||||
if (Phase > 1)
|
||||
if (Spell_3_Timer < diff)
|
||||
{
|
||||
//Cast spell one on our current target.
|
||||
DoCast(me->getVictim(),SPELL_THREE);
|
||||
|
||||
Spell_3_Timer = 19000;
|
||||
}else Spell_3_Timer -= diff;
|
||||
|
||||
//Beserk timer
|
||||
if (Phase > 1)
|
||||
if (Beserk_Timer < diff)
|
||||
{
|
||||
//Say our line then cast uber death spell
|
||||
DoPlaySoundToSet(me,8588);
|
||||
DoYell(SAY_BESERK,LANG_UNIVERSAL,me->getVictim());
|
||||
DoCast(me->getVictim(),SPELL_BESERK);
|
||||
|
||||
//Cast our beserk spell agian in 12 seconds if we didn't kill everyone
|
||||
Beserk_Timer = 12000;
|
||||
}else Beserk_Timer -= diff;
|
||||
|
||||
//Phase timer
|
||||
if (Phase == 1)
|
||||
if (Phase_Timer < diff)
|
||||
{
|
||||
//Go to next phase
|
||||
Phase++;
|
||||
DoYell(SAY_PHASE,LANG_UNIVERSAL,NULL);
|
||||
DoCast(me,SPELL_ENRAGE);
|
||||
}else Phase_Timer -= diff;
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
//This is the actual function called only once durring InitScripts()
|
||||
|
||||
@@ -43,7 +43,8 @@ EndContentData */
|
||||
/*######
|
||||
+## go_shadowforge_brazier
|
||||
+######*/
|
||||
|
||||
|
||||
class go_shadowforge_brazier : public GameObjectScript
|
||||
{
|
||||
public:
|
||||
go_shadowforge_brazier() : GameObjectScript("go_shadowforge_brazier") { }
|
||||
@@ -99,7 +100,8 @@ uint32 RingBoss[]=
|
||||
9031, // Anub'shiah
|
||||
9032, // Hedrum
|
||||
};
|
||||
};
|
||||
|
||||
class at_ring_of_law : public AreaTriggerScript
|
||||
{
|
||||
public:
|
||||
at_ring_of_law() : AreaTriggerScript("at_ring_of_law") { }
|
||||
@@ -135,7 +137,8 @@ enum GrimstoneTexts
|
||||
SCRIPT_TEXT6 = -1000005
|
||||
};
|
||||
|
||||
};
|
||||
//TODO: implement quest part of event (different end boss)
|
||||
class npc_grimstone : public CreatureScript
|
||||
{
|
||||
public:
|
||||
npc_grimstone() : CreatureScript("npc_grimstone") { }
|
||||
@@ -375,7 +378,8 @@ enum PhalanxSpells
|
||||
SPELL_FIREBALLVOLLEY = 22425,
|
||||
SPELL_MIGHTYBLOW = 14099
|
||||
};
|
||||
SPELL_FIREBALLVOLLEY = 22425,
|
||||
|
||||
class mob_phalanx : public CreatureScript
|
||||
{
|
||||
public:
|
||||
mob_phalanx() : CreatureScript("mob_phalanx") { }
|
||||
@@ -457,7 +461,8 @@ enum KharamQuests
|
||||
#define GOSSIP_ITEM_KHARAN_8 "Continue with your story please."
|
||||
#define GOSSIP_ITEM_KHARAN_9 "Indeed."
|
||||
#define GOSSIP_ITEM_KHARAN_10 "The door is open, Kharan. You are a free man."
|
||||
#define GOSSIP_ITEM_KHARAN_7 "So you suspect that someone on the inside was involved? That they were tipped off?"
|
||||
|
||||
class npc_kharan_mighthammer : public CreatureScript
|
||||
{
|
||||
public:
|
||||
npc_kharan_mighthammer() : CreatureScript("npc_kharan_mighthammer") { }
|
||||
@@ -554,7 +559,8 @@ enum LokhtosSpells
|
||||
|
||||
#define GOSSIP_ITEM_SHOW_ACCESS "Show me what I have access to, Lothos."
|
||||
#define GOSSIP_ITEM_GET_CONTRACT "Get Thorium Brotherhood Contract"
|
||||
SPELL_CREATE_THORIUM_BROTHERHOOD_CONTRACT_DND = 23059
|
||||
|
||||
class npc_lokhtos_darkbargainer : public CreatureScript
|
||||
{
|
||||
public:
|
||||
npc_lokhtos_darkbargainer() : CreatureScript("npc_lokhtos_darkbargainer") { }
|
||||
@@ -610,7 +616,8 @@ enum DughalQuests
|
||||
#define SAY_DUGHAL_FREE "Thank you, $N! I'm free!!!"
|
||||
#define GOSSIP_DUGHAL "You're free, Dughal! Get out of here!"
|
||||
|
||||
QUEST_JAIL_BREAK = 4322
|
||||
/*
|
||||
class npc_dughal_stormwing : public CreatureScript
|
||||
{
|
||||
public:
|
||||
npc_dughal_stormwing() : CreatureScript("npc_dughal_stormwing") { }
|
||||
@@ -719,7 +726,8 @@ public:
|
||||
#define MOB_ENTRY_REGINALD_WINDSOR 9682
|
||||
|
||||
Player* pPlayerStart;
|
||||
#define SAY_WINDSOR_4_2 "Get him out of there!"
|
||||
/*
|
||||
class npc_marshal_windsor : public CreatureScript
|
||||
{
|
||||
public:
|
||||
npc_marshal_windsor() : CreatureScript("npc_marshal_windsor") { }
|
||||
@@ -892,7 +900,8 @@ public:
|
||||
#define MOB_ENTRY_CREST_KILLER 9680
|
||||
|
||||
int wp = 0;
|
||||
#define SAY_REGINALD_WINDSOR_14_1 "Get him out of there!"
|
||||
/*
|
||||
class npc_marshal_reginald_windsor : public CreatureScript
|
||||
{
|
||||
public:
|
||||
npc_marshal_reginald_windsor() : CreatureScript("npc_marshal_reginald_windsor") { }
|
||||
@@ -1094,7 +1103,8 @@ public:
|
||||
######*/
|
||||
|
||||
#define SAY_TOBIAS_FREE "Thank you! I will run for safety immediately!"
|
||||
};
|
||||
/*
|
||||
class npc_tobias_seecher : public CreatureScript
|
||||
{
|
||||
public:
|
||||
npc_tobias_seecher() : CreatureScript("npc_tobias_seecher") { }
|
||||
@@ -1211,7 +1221,8 @@ enum RocknotQuests
|
||||
{
|
||||
QUEST_ALE = 4295
|
||||
};
|
||||
|
||||
|
||||
class npc_rocknot : public CreatureScript
|
||||
{
|
||||
public:
|
||||
npc_rocknot() : CreatureScript("npc_rocknot") { }
|
||||
|
||||
@@ -95,7 +95,8 @@ static InfernalPoint InfernalPoints[] =
|
||||
|
||||
#define EQUIP_ID_AXE 33542 //Axes info
|
||||
|
||||
//---------Infernal code first
|
||||
//---------Infernal code first
|
||||
class netherspite_infernal : public CreatureScript
|
||||
{
|
||||
public:
|
||||
netherspite_infernal() : CreatureScript("netherspite_infernal") { }
|
||||
@@ -161,17 +162,12 @@ public:
|
||||
damage = 0;
|
||||
}
|
||||
|
||||
|
||||
void Cleanup()
|
||||
{
|
||||
Unit *pMalchezaar = Unit::GetUnit(*me, malchezaar);
|
||||
|
||||
if (pMalchezaar && pMalchezaar->isAlive())
|
||||
CAST_AI(boss_malchezaar::boss_malchezaarAI, CAST_CRE(pMalchezaar)->AI())->Cleanup(me, point);
|
||||
void Cleanup();
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
|
||||
class boss_malchezaar : public CreatureScript
|
||||
{
|
||||
public:
|
||||
boss_malchezaar() : CreatureScript("boss_malchezaar") { }
|
||||
@@ -600,6 +596,14 @@ public:
|
||||
|
||||
};
|
||||
|
||||
void netherspite_infernal::netherspite_infernalAI::Cleanup()
|
||||
{
|
||||
Unit *pMalchezaar = Unit::GetUnit(*me, malchezaar);
|
||||
|
||||
if (pMalchezaar && pMalchezaar->isAlive())
|
||||
CAST_AI(boss_malchezaar::boss_malchezaarAI, CAST_CRE(pMalchezaar)->AI())->Cleanup(me, point);
|
||||
}
|
||||
|
||||
void AddSC_boss_malchezaar()
|
||||
{
|
||||
new boss_malchezaar();
|
||||
|
||||
@@ -80,7 +80,8 @@ enum SuperSpell
|
||||
SUPER_BLIZZARD,
|
||||
SUPER_AE,
|
||||
};
|
||||
|
||||
|
||||
class boss_shade_of_aran : public CreatureScript
|
||||
{
|
||||
public:
|
||||
boss_shade_of_aran() : CreatureScript("boss_shade_of_aran") { }
|
||||
@@ -507,7 +508,8 @@ public:
|
||||
};
|
||||
|
||||
};
|
||||
};
|
||||
|
||||
class mob_aran_elemental : public CreatureScript
|
||||
{
|
||||
public:
|
||||
mob_aran_elemental() : CreatureScript("mob_aran_elemental") { }
|
||||
@@ -545,7 +547,8 @@ public:
|
||||
|
||||
};
|
||||
|
||||
};
|
||||
// CONVERT TO ACID
|
||||
class mob_shadow_of_aran : public CreatureScript
|
||||
{
|
||||
public:
|
||||
mob_shadow_of_aran() : CreatureScript("mob_shadow_of_aran") { }
|
||||
|
||||
@@ -50,7 +50,8 @@ const float afKaelLandPoint[] = {225.045, -276.236, -5.434};
|
||||
#define GOSSIP_ITEM_KAEL_5 "What would Kil'jaeden want with a mortal woman?"
|
||||
|
||||
// This is friendly keal that appear after used Orb.
|
||||
// If we assume DB handle summon, summon appear somewhere outside the platform where Orb is
|
||||
// If we assume DB handle summon, summon appear somewhere outside the platform where Orb is
|
||||
class npc_kalecgos : public CreatureScript
|
||||
{
|
||||
public:
|
||||
npc_kalecgos() : CreatureScript("npc_kalecgos") { }
|
||||
|
||||
@@ -238,7 +238,8 @@ static Speech Speeches[]=
|
||||
{SAY_KALECGOS_GOODBYE, DATA_KALECGOS_KJ, 12000},
|
||||
};
|
||||
|
||||
//AI for Kalecgos
|
||||
//AI for Kalecgos
|
||||
class boss_kalecgos_kj : public CreatureScript
|
||||
{
|
||||
public:
|
||||
boss_kalecgos_kj() : CreatureScript("boss_kalecgos_kj") { }
|
||||
@@ -367,7 +368,8 @@ public:
|
||||
};
|
||||
|
||||
};
|
||||
};
|
||||
|
||||
class go_orb_of_the_blue_flight : public GameObjectScript
|
||||
{
|
||||
public:
|
||||
go_orb_of_the_blue_flight() : GameObjectScript("go_orb_of_the_blue_flight") { }
|
||||
@@ -391,7 +393,8 @@ public:
|
||||
|
||||
};
|
||||
|
||||
};
|
||||
//AI for Kil'jaeden Event Controller
|
||||
class mob_kiljaeden_controller : public CreatureScript
|
||||
{
|
||||
public:
|
||||
mob_kiljaeden_controller() : CreatureScript("mob_kiljaeden_controller") { }
|
||||
@@ -491,7 +494,8 @@ public:
|
||||
};
|
||||
|
||||
|
||||
};
|
||||
//AI for Kil'jaeden
|
||||
class boss_kiljaeden : public CreatureScript
|
||||
{
|
||||
public:
|
||||
boss_kiljaeden() : CreatureScript("boss_kiljaeden") { }
|
||||
@@ -904,7 +908,8 @@ public:
|
||||
};
|
||||
|
||||
|
||||
|
||||
//AI for Hand of the Deceiver
|
||||
class mob_hand_of_the_deceiver : public CreatureScript
|
||||
{
|
||||
public:
|
||||
mob_hand_of_the_deceiver() : CreatureScript("mob_hand_of_the_deceiver") { }
|
||||
@@ -1005,7 +1010,8 @@ public:
|
||||
};
|
||||
|
||||
|
||||
};
|
||||
//AI for Felfire Portal
|
||||
class mob_felfire_portal : public CreatureScript
|
||||
{
|
||||
public:
|
||||
mob_felfire_portal() : CreatureScript("mob_felfire_portal") { }
|
||||
@@ -1050,7 +1056,8 @@ public:
|
||||
};
|
||||
|
||||
|
||||
}
|
||||
//AI for Felfire Fiend
|
||||
class mob_volatile_felfire_fiend : public CreatureScript
|
||||
{
|
||||
public:
|
||||
mob_volatile_felfire_fiend() : CreatureScript("mob_volatile_felfire_fiend") { }
|
||||
@@ -1108,7 +1115,8 @@ public:
|
||||
};
|
||||
|
||||
|
||||
}
|
||||
//AI for Armageddon target
|
||||
class mob_armageddon : public CreatureScript
|
||||
{
|
||||
public:
|
||||
mob_armageddon() : CreatureScript("mob_armageddon") { }
|
||||
@@ -1163,7 +1171,8 @@ public:
|
||||
};
|
||||
|
||||
|
||||
}
|
||||
//AI for Shield Orbs
|
||||
class mob_shield_orb : public CreatureScript
|
||||
{
|
||||
public:
|
||||
mob_shield_orb() : CreatureScript("mob_shield_orb") { }
|
||||
@@ -1251,7 +1260,8 @@ public:
|
||||
};
|
||||
|
||||
|
||||
return;
|
||||
//AI for Sinister Reflection
|
||||
class mob_sinster_reflection : public CreatureScript
|
||||
{
|
||||
public:
|
||||
mob_sinster_reflection() : CreatureScript("mob_sinster_reflection") { }
|
||||
|
||||
@@ -300,6 +300,7 @@ static float m_fVorshaCoord[]={3633.056885, 1172.924072, -5.388};
|
||||
class npc_muglash : public CreatureScript
|
||||
{
|
||||
public:
|
||||
npc_muglash() : CreatureScript("npc_muglash") { }
|
||||
|
||||
struct npc_muglashAI : public npc_escortAI
|
||||
{
|
||||
@@ -425,7 +426,7 @@ class npc_muglash : public CreatureScript
|
||||
}
|
||||
};
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const
|
||||
CreatureAI* GetAI(Creature* pCreature) const
|
||||
{
|
||||
return new npc_muglashAI(pCreature);
|
||||
}
|
||||
@@ -455,11 +456,11 @@ class go_naga_brazier : public GameObjectScript
|
||||
{
|
||||
}
|
||||
|
||||
bool GOHello_go_naga_brazier(Player* player, GameObject* go)
|
||||
bool OnGossipHello(Player* player, GameObject* go)
|
||||
{
|
||||
if (Creature* creature = GetClosestCreatureWithEntry(go, NPC_MUGLASH, INTERACTION_DISTANCE*2))
|
||||
{
|
||||
if (npc_muglash::npc_muglashAI* pEscortAI = CAST_AI(npc_muglashAI, creature->AI()))
|
||||
if (npc_muglash::npc_muglashAI* pEscortAI = CAST_AI(npc_muglash::npc_muglashAI, creature->AI()))
|
||||
{
|
||||
DoScriptText(SAY_MUG_BRAZIER_WAIT, creature);
|
||||
|
||||
|
||||
@@ -64,7 +64,8 @@ enum eKerlonian
|
||||
FACTION_KER_ESCORTEE = 113
|
||||
};
|
||||
|
||||
//TODO: make concept similar as "ringo" -escort. Find a way to run the scripted attacks, _if_ player are choosing road.
|
||||
//TODO: make concept similar as "ringo" -escort. Find a way to run the scripted attacks, _if_ player are choosing road.
|
||||
class npc_kerlonian : public CreatureScript
|
||||
{
|
||||
public:
|
||||
npc_kerlonian() : CreatureScript("npc_kerlonian") { }
|
||||
@@ -204,7 +205,8 @@ enum eRemtravel
|
||||
NPC_GRAVEL_BONE = 2159,
|
||||
NPC_GRAVEL_GEO = 2160
|
||||
};
|
||||
};
|
||||
|
||||
class npc_prospector_remtravel : public CreatureScript
|
||||
{
|
||||
public:
|
||||
npc_prospector_remtravel() : CreatureScript("npc_prospector_remtravel") { }
|
||||
@@ -327,7 +329,8 @@ enum eThreshwackonator
|
||||
};
|
||||
|
||||
#define GOSSIP_ITEM_INSERT_KEY "[PH] Insert key"
|
||||
|
||||
|
||||
class npc_threshwackonator : public CreatureScript
|
||||
{
|
||||
public:
|
||||
npc_threshwackonator() : CreatureScript("npc_threshwackonator") { }
|
||||
|
||||
@@ -51,7 +51,8 @@ enum eHuskSpirit
|
||||
NPC_RISEN_SPIRIT = 23554,
|
||||
NPC_RESTLESS_APPARITION = 23861
|
||||
};
|
||||
|
||||
|
||||
class mobs_risen_husk_spirit : public CreatureScript
|
||||
{
|
||||
public:
|
||||
mobs_risen_husk_spirit() : CreatureScript("mobs_risen_husk_spirit") { }
|
||||
@@ -126,7 +127,8 @@ enum eRestlessApparition
|
||||
SAY_RESTLESS_2 = -1000470,
|
||||
SAY_RESTLESS_3 = -1000471
|
||||
};
|
||||
};
|
||||
|
||||
class npc_restless_apparition : public CreatureScript
|
||||
{
|
||||
public:
|
||||
npc_restless_apparition() : CreatureScript("npc_restless_apparition") { }
|
||||
@@ -158,7 +160,8 @@ enum eAgitator
|
||||
QUEST_TRAITORS_AMONG_US = 11126,
|
||||
FACTION_THER_DESERTER = 1883
|
||||
};
|
||||
FACTION_THER_DESERTER = 1883
|
||||
|
||||
class npc_deserter_agitator : public CreatureScript
|
||||
{
|
||||
public:
|
||||
npc_deserter_agitator() : CreatureScript("npc_deserter_agitator") { }
|
||||
@@ -206,7 +209,8 @@ enum eLadyJaina
|
||||
};
|
||||
|
||||
#define GOSSIP_ITEM_JAINA "I know this is rather silly but i have a young ward who is a bit shy and would like your autograph."
|
||||
};
|
||||
|
||||
class npc_lady_jaina_proudmoore : public CreatureScript
|
||||
{
|
||||
public:
|
||||
npc_lady_jaina_proudmoore() : CreatureScript("npc_lady_jaina_proudmoore") { }
|
||||
@@ -245,7 +249,8 @@ enum eNatPagle
|
||||
{
|
||||
QUEST_NATS_MEASURING_TAPE = 8227
|
||||
};
|
||||
enum eNatPagle
|
||||
|
||||
class npc_nat_pagle : public CreatureScript
|
||||
{
|
||||
public:
|
||||
npc_nat_pagle() : CreatureScript("npc_nat_pagle") { }
|
||||
@@ -298,7 +303,8 @@ enum eHendel
|
||||
NPC_TERVOSH = 4967
|
||||
};
|
||||
|
||||
NPC_SENTRY = 5184, //helps hendel
|
||||
//TODO: develop this further, end event not created
|
||||
class npc_private_hendel : public CreatureScript
|
||||
{
|
||||
public:
|
||||
npc_private_hendel() : CreatureScript("npc_private_hendel") { }
|
||||
@@ -366,7 +372,8 @@ enum eZelfrax
|
||||
SAY_ZELFRAX = -1000472,
|
||||
SAY_ZELFRAX_2 = -1000473
|
||||
};
|
||||
|
||||
|
||||
class npc_zelfrax : public CreatureScript
|
||||
{
|
||||
public:
|
||||
npc_zelfrax() : CreatureScript("npc_zelfrax") { }
|
||||
|
||||
@@ -38,7 +38,8 @@ EndContentData */
|
||||
#define QUEST_5727 5727
|
||||
|
||||
#define GOSSIP_HNF "You may speak frankly, Neeru..."
|
||||
#define GOSSIP_SNF "[PH] ..."
|
||||
#define GOSSIP_SNF "[PH] ..."
|
||||
class npc_neeru_fireblade : public CreatureScript
|
||||
{
|
||||
public:
|
||||
npc_neeru_fireblade() : CreatureScript("npc_neeru_fireblade") { }
|
||||
@@ -82,7 +83,8 @@ enum eShenthul
|
||||
{
|
||||
QUEST_SHATTERED_SALUTE = 2460
|
||||
};
|
||||
};
|
||||
|
||||
class npc_shenthul : public CreatureScript
|
||||
{
|
||||
public:
|
||||
npc_shenthul() : CreatureScript("npc_shenthul") { }
|
||||
@@ -188,7 +190,8 @@ public:
|
||||
#define GOSSIP_STW5 "I live only to serve, Warchief! My life is empty and meaningless without your guidance."
|
||||
#define GOSSIP_STW6 "Of course, Warchief!"
|
||||
|
||||
#define GOSSIP_STW6 "Of course, Warchief!"
|
||||
//TODO: verify abilities/timers
|
||||
class npc_thrall_warchief : public CreatureScript
|
||||
{
|
||||
public:
|
||||
npc_thrall_warchief() : CreatureScript("npc_thrall_warchief") { }
|
||||
|
||||
@@ -36,7 +36,8 @@ EndScriptData */
|
||||
#define SPELL_UPPERCUT 22916
|
||||
|
||||
#define GOSSIP_HCB "I know this is rather silly but a young ward who is a bit shy would like your hoofprint."
|
||||
//TODO: verify abilities/timers
|
||||
//TODO: verify abilities/timers
|
||||
class npc_cairne_bloodhoof : public CreatureScript
|
||||
{
|
||||
public:
|
||||
npc_cairne_bloodhoof() : CreatureScript("npc_cairne_bloodhoof") { }
|
||||
|
||||
@@ -217,7 +217,8 @@ Locations TwilightEggsSarth[] =
|
||||
/*######
|
||||
## Boss Sartharion
|
||||
######*/
|
||||
|
||||
|
||||
class boss_sartharion : public CreatureScript
|
||||
{
|
||||
public:
|
||||
boss_sartharion() : CreatureScript("boss_sartharion") { }
|
||||
@@ -1001,7 +1002,8 @@ struct dummy_dragonAI : public ScriptedAI
|
||||
/*######
|
||||
## Mob Tenebron
|
||||
######*/
|
||||
######*/
|
||||
|
||||
class mob_tenebron : public CreatureScript
|
||||
{
|
||||
public:
|
||||
mob_tenebron() : CreatureScript("mob_tenebron") { }
|
||||
@@ -1095,7 +1097,8 @@ public:
|
||||
/*######
|
||||
## Mob Shadron
|
||||
######*/
|
||||
## Mob Shadron
|
||||
|
||||
class mob_shadron : public CreatureScript
|
||||
{
|
||||
public:
|
||||
mob_shadron() : CreatureScript("mob_shadron") { }
|
||||
@@ -1204,7 +1207,8 @@ public:
|
||||
/*######
|
||||
## Mob Vesperon
|
||||
######*/
|
||||
/*######
|
||||
|
||||
class mob_vesperon : public CreatureScript
|
||||
{
|
||||
public:
|
||||
mob_vesperon() : CreatureScript("mob_vesperon") { }
|
||||
@@ -1304,7 +1308,8 @@ public:
|
||||
/*######
|
||||
## Mob Acolyte of Shadron
|
||||
######*/
|
||||
|
||||
|
||||
class mob_acolyte_of_shadron : public CreatureScript
|
||||
{
|
||||
public:
|
||||
mob_acolyte_of_shadron() : CreatureScript("mob_acolyte_of_shadron") { }
|
||||
@@ -1412,7 +1417,8 @@ public:
|
||||
/*######
|
||||
## Mob Acolyte of Vesperon
|
||||
######*/
|
||||
|
||||
|
||||
class mob_acolyte_of_vesperon : public CreatureScript
|
||||
{
|
||||
public:
|
||||
mob_acolyte_of_vesperon() : CreatureScript("mob_acolyte_of_vesperon") { }
|
||||
@@ -1507,7 +1513,8 @@ public:
|
||||
/*######
|
||||
## Mob Twilight Eggs
|
||||
######*/
|
||||
};
|
||||
|
||||
class mob_twilight_eggs : public CreatureScript
|
||||
{
|
||||
public:
|
||||
mob_twilight_eggs() : CreatureScript("mob_twilight_eggs") { }
|
||||
@@ -1578,7 +1585,8 @@ public:
|
||||
|
||||
/*######
|
||||
## Mob Flame Tsunami
|
||||
};
|
||||
######*/
|
||||
class npc_flame_tsunami : public CreatureScript
|
||||
{
|
||||
public:
|
||||
npc_flame_tsunami() : CreatureScript("npc_flame_tsunami") { }
|
||||
@@ -1628,7 +1636,8 @@ public:
|
||||
|
||||
};
|
||||
|
||||
LavaBlaze->CastSpell(LavaBlaze, SPELL_FLAME_TSUNAMI_BUFF, true);
|
||||
// Twilight Fissure
|
||||
class npc_twilight_fissure : public CreatureScript
|
||||
{
|
||||
public:
|
||||
npc_twilight_fissure() : CreatureScript("npc_twilight_fissure") { }
|
||||
@@ -1679,7 +1688,8 @@ public:
|
||||
/*######
|
||||
## Mob Twilight Whelps
|
||||
######*/
|
||||
|
||||
|
||||
class mob_twilight_whelp : public CreatureScript
|
||||
{
|
||||
public:
|
||||
mob_twilight_whelp() : CreatureScript("mob_twilight_whelp") { }
|
||||
|
||||
@@ -80,7 +80,8 @@ enum Yells
|
||||
SAY_SUMMON_2 = -1603018,
|
||||
SAY_SUMMON_3 = -1603019,
|
||||
};
|
||||
|
||||
|
||||
class boss_algalon : public CreatureScript
|
||||
{
|
||||
public:
|
||||
boss_algalon() : CreatureScript("boss_algalon") { }
|
||||
@@ -338,7 +339,8 @@ public:
|
||||
|
||||
};
|
||||
|
||||
|
||||
//Collapsing Star
|
||||
class mob_collapsing_star : public CreatureScript
|
||||
{
|
||||
public:
|
||||
mob_collapsing_star() : CreatureScript("mob_collapsing_star") { }
|
||||
@@ -379,8 +381,6 @@ public:
|
||||
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
void AddSC_boss_Algalon()
|
||||
{
|
||||
new boss_algalon();
|
||||
|
||||
@@ -196,7 +196,8 @@ const Position PosDemolisher[5] =
|
||||
{-756.01,-219.23,430.50,2.369},
|
||||
{-798.01,-227.24,429.84,1.446},
|
||||
};
|
||||
|
||||
|
||||
class boss_flame_leviathan : public CreatureScript
|
||||
{
|
||||
public:
|
||||
boss_flame_leviathan() : CreatureScript("boss_flame_leviathan") { }
|
||||
@@ -525,7 +526,8 @@ public:
|
||||
};
|
||||
|
||||
//#define BOSS_DEBUG
|
||||
//#define BOSS_DEBUG
|
||||
|
||||
class boss_flame_leviathan_seat : public CreatureScript
|
||||
{
|
||||
public:
|
||||
boss_flame_leviathan_seat() : CreatureScript("boss_flame_leviathan_seat") { }
|
||||
@@ -593,7 +595,8 @@ public:
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
|
||||
class boss_flame_leviathan_defense_turret : public CreatureScript
|
||||
{
|
||||
public:
|
||||
boss_flame_leviathan_defense_turret() : CreatureScript("boss_flame_leviathan_defense_turret") { }
|
||||
@@ -622,7 +625,8 @@ public:
|
||||
};
|
||||
|
||||
};
|
||||
};
|
||||
|
||||
class boss_flame_leviathan_overload_device : public CreatureScript
|
||||
{
|
||||
public:
|
||||
boss_flame_leviathan_overload_device() : CreatureScript("boss_flame_leviathan_overload_device") { }
|
||||
@@ -663,7 +667,8 @@ public:
|
||||
};
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
class boss_flame_leviathan_safety_container : public CreatureScript
|
||||
{
|
||||
public:
|
||||
boss_flame_leviathan_safety_container() : CreatureScript("boss_flame_leviathan_safety_container") { }
|
||||
@@ -691,7 +696,8 @@ public:
|
||||
void UpdateAI(const uint32 diff)
|
||||
{
|
||||
}
|
||||
}
|
||||
};
|
||||
};
|
||||
|
||||
class npc_mechanolift : public CreatureScript
|
||||
{
|
||||
@@ -761,7 +767,8 @@ public:
|
||||
|
||||
};
|
||||
|
||||
MoveTimer-=diff;
|
||||
|
||||
class spell_pool_of_tar : public CreatureScript
|
||||
{
|
||||
public:
|
||||
spell_pool_of_tar() : CreatureScript("spell_pool_of_tar") { }
|
||||
@@ -791,7 +798,8 @@ public:
|
||||
};
|
||||
|
||||
};
|
||||
{
|
||||
|
||||
class npc_colossus : public CreatureScript
|
||||
{
|
||||
public:
|
||||
npc_colossus() : CreatureScript("npc_colossus") { }
|
||||
@@ -828,7 +836,8 @@ public:
|
||||
};
|
||||
|
||||
};
|
||||
{
|
||||
|
||||
class npc_thorims_hammer : public CreatureScript
|
||||
{
|
||||
public:
|
||||
npc_thorims_hammer() : CreatureScript("npc_thorims_hammer") { }
|
||||
@@ -870,7 +879,8 @@ public:
|
||||
};
|
||||
|
||||
};
|
||||
if (!me->HasAura(AURA_DUMMY_BLUE))
|
||||
|
||||
class npc_mimirons_inferno : public CreatureScript
|
||||
{
|
||||
public:
|
||||
npc_mimirons_inferno() : CreatureScript("npc_mimirons_inferno") { }
|
||||
@@ -929,7 +939,8 @@ public:
|
||||
|
||||
};
|
||||
|
||||
infernoTimer -= diff;
|
||||
|
||||
class npc_hodirs_fury : public CreatureScript
|
||||
{
|
||||
public:
|
||||
npc_hodirs_fury() : CreatureScript("npc_hodirs_fury") { }
|
||||
@@ -971,7 +982,8 @@ public:
|
||||
};
|
||||
|
||||
};
|
||||
void UpdateAI(const uint32 diff)
|
||||
|
||||
class npc_freyas_ward : public CreatureScript
|
||||
{
|
||||
public:
|
||||
npc_freyas_ward() : CreatureScript("npc_freyas_ward") { }
|
||||
@@ -1015,7 +1027,8 @@ public:
|
||||
};
|
||||
|
||||
};
|
||||
else
|
||||
|
||||
class npc_freya_ward_summon : public CreatureScript
|
||||
{
|
||||
public:
|
||||
npc_freya_ward_summon() : CreatureScript("npc_freya_ward_summon") { }
|
||||
@@ -1060,7 +1073,8 @@ public:
|
||||
|
||||
//npc lore keeper
|
||||
#define GOSSIP_ITEM_1 "Activate secondary defensive systems"
|
||||
lashTimer = 20000;
|
||||
#define GOSSIP_ITEM_2 "Confirmed"
|
||||
class npc_lorekeeper : public CreatureScript
|
||||
{
|
||||
public:
|
||||
npc_lorekeeper() : CreatureScript("npc_lorekeeper") { }
|
||||
@@ -1154,7 +1168,9 @@ public:
|
||||
////npc_brann_bronzebeard this requires more work involving area triggers. if reached this guy speaks through his radio..
|
||||
//#define GOSSIP_ITEM_1 "xxxxx"
|
||||
//#define GOSSIP_ITEM_2 "xxxxx"
|
||||
DoSummon(VEHICLE_CHOPPER, PosChopper[i],3000,TEMPSUMMON_CORPSE_TIMED_DESPAWN);
|
||||
//
|
||||
/*
|
||||
class npc_brann_bronzebeard : public CreatureScript
|
||||
{
|
||||
public:
|
||||
npc_brann_bronzebeard() : CreatureScript("npc_brann_bronzebeard") { }
|
||||
@@ -1193,7 +1209,11 @@ public:
|
||||
// }
|
||||
// return true;
|
||||
//}
|
||||
// break;
|
||||
//
|
||||
}
|
||||
*/
|
||||
|
||||
class go_ulduar_tower : public GameObjectScript
|
||||
{
|
||||
public:
|
||||
go_ulduar_tower() : GameObjectScript("go_ulduar_tower") { }
|
||||
@@ -1222,7 +1242,8 @@ public:
|
||||
}
|
||||
|
||||
};
|
||||
{
|
||||
|
||||
class at_RX_214_repair_o_matic_station : public AreaTriggerScript
|
||||
{
|
||||
public:
|
||||
at_RX_214_repair_o_matic_station() : AreaTriggerScript("at_RX_214_repair_o_matic_station") { }
|
||||
|
||||
@@ -574,7 +574,8 @@ public:
|
||||
*
|
||||
* XS-013 SCRAPBOT
|
||||
*
|
||||
*///----------------------------------------------------
|
||||
*///----------------------------------------------------
|
||||
class mob_scrapbot : public CreatureScript
|
||||
{
|
||||
public:
|
||||
mob_scrapbot() : CreatureScript("mob_scrapbot") { }
|
||||
@@ -626,7 +627,8 @@ public:
|
||||
*
|
||||
* XM-024 PUMMELLER
|
||||
*
|
||||
*
|
||||
*///----------------------------------------------------
|
||||
class mob_pummeller : public CreatureScript
|
||||
{
|
||||
public:
|
||||
mob_pummeller() : CreatureScript("mob_pummeller") { }
|
||||
@@ -692,7 +694,8 @@ public:
|
||||
*
|
||||
* XE-321 BOOMBOT
|
||||
*
|
||||
* XE-321 BOOMBOT
|
||||
*///----------------------------------------------------
|
||||
class mob_boombot : public CreatureScript
|
||||
{
|
||||
public:
|
||||
mob_boombot() : CreatureScript("mob_boombot") { }
|
||||
@@ -747,7 +750,8 @@ public:
|
||||
*
|
||||
* VOID ZONE
|
||||
*
|
||||
*
|
||||
*///----------------------------------------------------
|
||||
class mob_void_zone : public CreatureScript
|
||||
{
|
||||
public:
|
||||
mob_void_zone() : CreatureScript("mob_void_zone") { }
|
||||
@@ -810,7 +814,8 @@ public:
|
||||
*
|
||||
* LIFE SPARK
|
||||
*
|
||||
/*-------------------------------------------------------
|
||||
*///----------------------------------------------------
|
||||
class mob_life_spark : public CreatureScript
|
||||
{
|
||||
public:
|
||||
mob_life_spark() : CreatureScript("mob_life_spark") { }
|
||||
|
||||
@@ -93,7 +93,8 @@ EndScriptData */
|
||||
#define OLUM_Z -7.54773f
|
||||
#define OLUM_O 0.401581f
|
||||
|
||||
//Fathom-Lord Karathress AI
|
||||
//Fathom-Lord Karathress AI
|
||||
class boss_fathomlord_karathress : public CreatureScript
|
||||
{
|
||||
public:
|
||||
boss_fathomlord_karathress() : CreatureScript("boss_fathomlord_karathress") { }
|
||||
@@ -303,7 +304,8 @@ public:
|
||||
|
||||
};
|
||||
|
||||
|
||||
//Fathom-Guard Sharkkis AI
|
||||
class boss_fathomguard_sharkkis : public CreatureScript
|
||||
{
|
||||
public:
|
||||
boss_fathomguard_sharkkis() : CreatureScript("boss_fathomguard_sharkkis") { }
|
||||
@@ -456,7 +458,8 @@ public:
|
||||
|
||||
};
|
||||
|
||||
};
|
||||
//Fathom-Guard Tidalvess AI
|
||||
class boss_fathomguard_tidalvess : public CreatureScript
|
||||
{
|
||||
public:
|
||||
boss_fathomguard_tidalvess() : CreatureScript("boss_fathomguard_tidalvess") { }
|
||||
@@ -582,7 +585,8 @@ public:
|
||||
|
||||
};
|
||||
|
||||
|
||||
//Fathom-Guard Caribdis AI
|
||||
class boss_fathomguard_caribdis : public CreatureScript
|
||||
{
|
||||
public:
|
||||
boss_fathomguard_caribdis() : CreatureScript("boss_fathomguard_caribdis") { }
|
||||
|
||||
@@ -132,7 +132,8 @@ float ShieldGeneratorChannelPos[4][4] =
|
||||
{49.3126, -943.398, 42.5501, 2.40174}
|
||||
};
|
||||
|
||||
//Lady Vashj AI
|
||||
//Lady Vashj AI
|
||||
class boss_lady_vashj : public CreatureScript
|
||||
{
|
||||
public:
|
||||
boss_lady_vashj() : CreatureScript("boss_lady_vashj") { }
|
||||
@@ -575,7 +576,8 @@ public:
|
||||
};
|
||||
|
||||
//Enchanted Elemental
|
||||
//Enchanted Elemental
|
||||
//If one of them reaches Vashj he will increase her damage done by 5%.
|
||||
class mob_enchanted_elemental : public CreatureScript
|
||||
{
|
||||
public:
|
||||
mob_enchanted_elemental() : CreatureScript("mob_enchanted_elemental") { }
|
||||
@@ -676,7 +678,8 @@ public:
|
||||
};
|
||||
|
||||
//Tainted Elemental
|
||||
|
||||
//This mob has 7,900 life, doesn't move, and shoots Poison Bolts at one person anywhere in the area, doing 3,000 nature damage and placing a posion doing 2,000 damage every 2 seconds. He will switch targets often, or sometimes just hang on a single player, but there is nothing you can do about it except heal the damage and kill the Tainted Elemental
|
||||
class mob_tainted_elemental : public CreatureScript
|
||||
{
|
||||
public:
|
||||
mob_tainted_elemental() : CreatureScript("mob_tainted_elemental") { }
|
||||
@@ -750,7 +753,8 @@ public:
|
||||
};
|
||||
|
||||
//Toxic Sporebat
|
||||
};
|
||||
//Toxic Spores: Used in Phase 3 by the Spore Bats, it creates a contaminated green patch of ground, dealing about 2775-3225 nature damage every second to anyone who stands in it.
|
||||
class mob_toxic_sporebat : public CreatureScript
|
||||
{
|
||||
public:
|
||||
mob_toxic_sporebat() : CreatureScript("mob_toxic_sporebat") { }
|
||||
@@ -857,7 +861,8 @@ public:
|
||||
};
|
||||
|
||||
//Coilfang Elite
|
||||
|
||||
//It's an elite Naga mob with 170,000 HP. It does about 5000 damage on plate, and has a nasty cleave hitting for about 7500 damage
|
||||
class mob_coilfang_elite : public CreatureScript
|
||||
{
|
||||
public:
|
||||
mob_coilfang_elite() : CreatureScript("mob_coilfang_elite") { }
|
||||
@@ -881,7 +886,8 @@ public:
|
||||
};
|
||||
|
||||
//Coilfang Strider
|
||||
}
|
||||
//It hits plate for about 8000 damage, has a Mind Blast spell doing about 3000 shadow damage, and a Psychic Scream Aura, which fears everybody in a 8 yard range of it every 2-3 seconds , for 5 seconds and increasing their movement speed by 150% during the fear.
|
||||
class mob_coilfang_strider : public CreatureScript
|
||||
{
|
||||
public:
|
||||
mob_coilfang_strider() : CreatureScript("mob_coilfang_strider") { }
|
||||
@@ -905,7 +911,8 @@ public:
|
||||
}
|
||||
|
||||
};
|
||||
ai->EnterEvadeMode();
|
||||
|
||||
class mob_shield_generator_channel : public CreatureScript
|
||||
{
|
||||
public:
|
||||
mob_shield_generator_channel() : CreatureScript("mob_shield_generator_channel") { }
|
||||
@@ -963,7 +970,8 @@ public:
|
||||
};
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
class item_tainted_core : public ItemScript
|
||||
{
|
||||
public:
|
||||
item_tainted_core() : ItemScript("item_tainted_core") { }
|
||||
|
||||
@@ -66,7 +66,8 @@ EndScriptData */
|
||||
#define SAY_FINAL_FORM -1548018
|
||||
#define SAY_FREE -1548019
|
||||
#define SAY_DEATH -1548020
|
||||
|
||||
|
||||
class mob_inner_demon : public CreatureScript
|
||||
{
|
||||
public:
|
||||
mob_inner_demon() : CreatureScript("mob_inner_demon") { }
|
||||
@@ -156,7 +157,8 @@ public:
|
||||
|
||||
};
|
||||
|
||||
|
||||
//Original Leotheras the Blind AI
|
||||
class boss_leotheras_the_blind : public CreatureScript
|
||||
{
|
||||
public:
|
||||
boss_leotheras_the_blind() : CreatureScript("boss_leotheras_the_blind") { }
|
||||
@@ -581,7 +583,8 @@ public:
|
||||
|
||||
};
|
||||
|
||||
};
|
||||
//Leotheras the Blind Demon Form AI
|
||||
class boss_leotheras_the_blind_demonform : public CreatureScript
|
||||
{
|
||||
public:
|
||||
boss_leotheras_the_blind_demonform() : CreatureScript("boss_leotheras_the_blind_demonform") { }
|
||||
@@ -651,9 +654,10 @@ public:
|
||||
|
||||
//Do NOT deal any melee damage to the target.
|
||||
}
|
||||
|
||||
//Do NOT deal any melee damage to the target.
|
||||
};
|
||||
};
|
||||
|
||||
class mob_greyheart_spellbinder : public CreatureScript
|
||||
{
|
||||
public:
|
||||
mob_greyheart_spellbinder() : CreatureScript("mob_greyheart_spellbinder") { }
|
||||
|
||||
@@ -97,7 +97,8 @@ float MurlocCords[10][5] =
|
||||
#define WATER_GLOBULE 21913
|
||||
#define TIDEWALKER_LURKER 21920
|
||||
|
||||
//Morogrim Tidewalker AI
|
||||
//Morogrim Tidewalker AI
|
||||
class boss_morogrim_tidewalker : public CreatureScript
|
||||
{
|
||||
public:
|
||||
boss_morogrim_tidewalker() : CreatureScript("boss_morogrim_tidewalker") { }
|
||||
@@ -301,7 +302,8 @@ public:
|
||||
|
||||
//Water Globule AI
|
||||
#define SPELL_GLOBULE_EXPLOSION 37871
|
||||
#define SPELL_GLOBULE_EXPLOSION 37871
|
||||
|
||||
class mob_water_globule : public CreatureScript
|
||||
{
|
||||
public:
|
||||
mob_water_globule() : CreatureScript("mob_water_globule") { }
|
||||
|
||||
@@ -105,7 +105,8 @@ bool CheckAllBossDied(InstanceScript* pInstance, Creature* me)
|
||||
return false;
|
||||
}
|
||||
|
||||
//High King Maulgar AI
|
||||
//High King Maulgar AI
|
||||
class boss_high_king_maulgar : public CreatureScript
|
||||
{
|
||||
public:
|
||||
boss_high_king_maulgar() : CreatureScript("boss_high_king_maulgar") { }
|
||||
@@ -303,7 +304,8 @@ public:
|
||||
|
||||
};
|
||||
|
||||
|
||||
//Olm The Summoner AI
|
||||
class boss_olm_the_summoner : public CreatureScript
|
||||
{
|
||||
public:
|
||||
boss_olm_the_summoner() : CreatureScript("boss_olm_the_summoner") { }
|
||||
@@ -430,7 +432,8 @@ public:
|
||||
|
||||
};
|
||||
|
||||
};
|
||||
//Kiggler The Crazed AI
|
||||
class boss_kiggler_the_crazed : public CreatureScript
|
||||
{
|
||||
public:
|
||||
boss_kiggler_the_crazed() : CreatureScript("boss_kiggler_the_crazed") { }
|
||||
@@ -551,7 +554,8 @@ public:
|
||||
|
||||
};
|
||||
|
||||
|
||||
//Blindeye The Seer AI
|
||||
class boss_blindeye_the_seer : public CreatureScript
|
||||
{
|
||||
public:
|
||||
boss_blindeye_the_seer() : CreatureScript("boss_blindeye_the_seer") { }
|
||||
@@ -660,7 +664,8 @@ public:
|
||||
|
||||
};
|
||||
|
||||
};
|
||||
//Krosh Firehand AI
|
||||
class boss_krosh_firehand : public CreatureScript
|
||||
{
|
||||
public:
|
||||
boss_krosh_firehand() : CreatureScript("boss_krosh_firehand") { }
|
||||
|
||||
@@ -47,7 +47,8 @@ bool obelisk_one, obelisk_two, obelisk_three, obelisk_four, obelisk_five;
|
||||
## mobs_bladespire_ogre
|
||||
######*/
|
||||
|
||||
//TODO: add support for quest 10512 + Creature abilities
|
||||
//TODO: add support for quest 10512 + Creature abilities
|
||||
class mobs_bladespire_ogre : public CreatureScript
|
||||
{
|
||||
public:
|
||||
mobs_bladespire_ogre() : CreatureScript("mobs_bladespire_ogre") { }
|
||||
@@ -98,7 +99,8 @@ enum eNetherdrake
|
||||
SPELL_MANA_BURN = 38884,
|
||||
SPELL_INTANGIBLE_PRESENCE = 36513
|
||||
};
|
||||
};
|
||||
|
||||
class mobs_nether_drake : public CreatureScript
|
||||
{
|
||||
public:
|
||||
mobs_nether_drake() : CreatureScript("mobs_nether_drake") { }
|
||||
@@ -263,7 +265,8 @@ enum eDaranelle
|
||||
SAY_SPELL_INFLUENCE = -1000174,
|
||||
SPELL_LASHHAN_CHANNEL = 36904
|
||||
};
|
||||
SPELL_LASHHAN_CHANNEL = 36904
|
||||
|
||||
class npc_daranelle : public CreatureScript
|
||||
{
|
||||
public:
|
||||
npc_daranelle() : CreatureScript("npc_daranelle") { }
|
||||
@@ -305,7 +308,8 @@ public:
|
||||
######*/
|
||||
|
||||
#define GOSSIP_HELLO_ON "Overseer, I am here to negotiate on behalf of the Cenarion Expedition."
|
||||
######*/
|
||||
|
||||
class npc_overseer_nuaar : public CreatureScript
|
||||
{
|
||||
public:
|
||||
npc_overseer_nuaar() : CreatureScript("npc_overseer_nuaar") { }
|
||||
@@ -339,7 +343,8 @@ public:
|
||||
|
||||
#define GOSSIP_HELLO_STE "Yes... yes, it's me."
|
||||
#define GOSSIP_SELECT_STE "Yes elder. Tell me more of the book."
|
||||
######*/
|
||||
|
||||
class npc_saikkal_the_elder : public CreatureScript
|
||||
{
|
||||
public:
|
||||
npc_saikkal_the_elder() : CreatureScript("npc_saikkal_the_elder") { }
|
||||
@@ -376,7 +381,8 @@ public:
|
||||
/*######
|
||||
## go_legion_obelisk
|
||||
######*/
|
||||
|
||||
|
||||
class go_legion_obelisk : public GameObjectScript
|
||||
{
|
||||
public:
|
||||
go_legion_obelisk() : GameObjectScript("go_legion_obelisk") { }
|
||||
@@ -433,7 +439,8 @@ enum eBloodmaul
|
||||
NPC_QUEST_CREDIT = 21241,
|
||||
GO_KEG = 184315
|
||||
};
|
||||
enum eBloodmaul
|
||||
|
||||
class npc_bloodmaul_brutebane : public CreatureScript
|
||||
{
|
||||
public:
|
||||
npc_bloodmaul_brutebane() : CreatureScript("npc_bloodmaul_brutebane") { }
|
||||
@@ -470,7 +477,8 @@ public:
|
||||
/*######
|
||||
## npc_ogre_brute
|
||||
######*/
|
||||
|
||||
|
||||
class npc_ogre_brute : public CreatureScript
|
||||
{
|
||||
public:
|
||||
npc_ogre_brute() : CreatureScript("npc_ogre_brute") { }
|
||||
|
||||
@@ -41,7 +41,8 @@ EndContentData */
|
||||
/*######
|
||||
## mob_shattered_rumbler - this should be done with ACID
|
||||
######*/
|
||||
|
||||
|
||||
class mob_shattered_rumbler : public CreatureScript
|
||||
{
|
||||
public:
|
||||
mob_shattered_rumbler() : CreatureScript("mob_shattered_rumbler") { }
|
||||
@@ -100,7 +101,8 @@ public:
|
||||
#define GOSSIP_SL1 "Why are Boulderfist out this far? You know that this is Kurenai territory."
|
||||
#define GOSSIP_SL2 "And you think you can just eat anything you want? You're obviously trying to eat the Broken of Telaar."
|
||||
#define GOSSIP_SL3 "This means war, Lump! War I say!"
|
||||
#define GOSSIP_SL3 "This means war, Lump! War I say!"
|
||||
|
||||
class mob_lump : public CreatureScript
|
||||
{
|
||||
public:
|
||||
mob_lump() : CreatureScript("mob_lump") { }
|
||||
@@ -246,7 +248,8 @@ public:
|
||||
/*####
|
||||
# mob_sunspring_villager - should be done with ACID
|
||||
####*/
|
||||
# mob_sunspring_villager - should be done with ACID
|
||||
|
||||
class mob_sunspring_villager : public CreatureScript
|
||||
{
|
||||
public:
|
||||
mob_sunspring_villager() : CreatureScript("mob_sunspring_villager") { }
|
||||
@@ -294,7 +297,8 @@ public:
|
||||
#define GOSSIP_SATS4 "Forge camps?"
|
||||
#define GOSSIP_SATS5 "Ok."
|
||||
#define GOSSIP_SATS6 "[PH] Story done"
|
||||
#define GOSSIP_SATS4 "Forge camps?"
|
||||
|
||||
class npc_altruis_the_sufferer : public CreatureScript
|
||||
{
|
||||
public:
|
||||
npc_altruis_the_sufferer() : CreatureScript("npc_altruis_the_sufferer") { }
|
||||
@@ -399,7 +403,8 @@ public:
|
||||
#define GOSSIP_SGG10 "It is my Warchief, Greatmother. The leader of my people. From my world. He ... He is the son of Durotan. He is your grandchild."
|
||||
#define GOSSIP_SGG11 "I will return to Azeroth at once, Greatmother."
|
||||
|
||||
#define GOSSIP_SGG9 "Greatmother, I never had the honor. Durotan died long before my time, but his heroics are known to all on my world. The orcs of Azeroth reside in a place known as Durotar, named after your son. And ... (You take a moment to breathe and think through what you are about to tell the Greatmother.)"
|
||||
//all the textId's for the below is unknown, but i do believe the gossip item texts are proper.
|
||||
class npc_greatmother_geyah : public CreatureScript
|
||||
{
|
||||
public:
|
||||
npc_greatmother_geyah() : CreatureScript("npc_greatmother_geyah") { }
|
||||
@@ -502,7 +507,8 @@ public:
|
||||
#define GOSSIP_SLB5 "My people ask that you pull back your Boulderfist ogres and cease all attacks on our territories. In return, we will also pull back our forces."
|
||||
#define GOSSIP_SLB6 "We will fight you until the end, then, Lantresor. We will not stand idly by as you pillage our towns and kill our people."
|
||||
#define GOSSIP_SLB7 "What do I need to do?"
|
||||
#define GOSSIP_SLB3 "I have heard of your kind, but I never thought to see the day when I would meet a half-breed."
|
||||
|
||||
class npc_lantresor_of_the_blade : public CreatureScript
|
||||
{
|
||||
public:
|
||||
npc_lantresor_of_the_blade() : CreatureScript("npc_lantresor_of_the_blade") { }
|
||||
@@ -595,7 +601,8 @@ enum eMagharCaptive
|
||||
|
||||
static float m_afAmbushA[]= {-1568.805786, 8533.873047, 1.958};
|
||||
static float m_afAmbushB[]= {-1491.554321, 8506.483398, 1.248};
|
||||
NPC_MURK_SCAVENGER = 18207,
|
||||
|
||||
class npc_maghar_captive : public CreatureScript
|
||||
{
|
||||
public:
|
||||
npc_maghar_captive() : CreatureScript("npc_maghar_captive") { }
|
||||
@@ -741,7 +748,8 @@ public:
|
||||
/*######
|
||||
## npc_creditmarker_visist_with_ancestors
|
||||
######*/
|
||||
};
|
||||
|
||||
class npc_creditmarker_visit_with_ancestors : public CreatureScript
|
||||
{
|
||||
public:
|
||||
npc_creditmarker_visit_with_ancestors() : CreatureScript("npc_creditmarker_visit_with_ancestors") { }
|
||||
@@ -789,7 +797,8 @@ public:
|
||||
|
||||
#define SPELL_SPARROWHAWK_NET 39810
|
||||
#define SPELL_ITEM_CAPTIVE_SPARROWHAWK 39812
|
||||
|
||||
|
||||
class mob_sparrowhawk : public CreatureScript
|
||||
{
|
||||
public:
|
||||
mob_sparrowhawk() : CreatureScript("mob_sparrowhawk") { }
|
||||
|
||||
@@ -60,7 +60,8 @@ EndContentData */
|
||||
#define SPELL_DISABLE_VISUAL 35031
|
||||
#define SPELL_INTERRUPT_1 35016 //ACID mobs should cast this
|
||||
#define SPELL_INTERRUPT_2 35176 //ACID mobs should cast this (Manaforge Ara-version)
|
||||
|
||||
|
||||
class npc_manaforge_control_console : public CreatureScript
|
||||
{
|
||||
public:
|
||||
npc_manaforge_control_console() : CreatureScript("npc_manaforge_control_console") { }
|
||||
@@ -296,7 +297,8 @@ public:
|
||||
## go_manaforge_control_console
|
||||
######*/
|
||||
|
||||
|
||||
//TODO: clean up this workaround when Trinity adds support to do it properly (with gossip selections instead of instant summon)
|
||||
class go_manaforge_control_console : public GameObjectScript
|
||||
{
|
||||
public:
|
||||
go_manaforge_control_console() : GameObjectScript("go_manaforge_control_console") { }
|
||||
@@ -373,7 +375,8 @@ const uint32 CreatureEntry[3] =
|
||||
19831, // Dawnforge
|
||||
21504 // Pathaleon
|
||||
};
|
||||
21504 // Pathaleon
|
||||
|
||||
class npc_commander_dawnforge : public CreatureScript
|
||||
{
|
||||
public:
|
||||
npc_commander_dawnforge() : CreatureScript("npc_commander_dawnforge") { }
|
||||
@@ -625,7 +628,8 @@ public:
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
class at_commander_dawnforge : public AreaTriggerScript
|
||||
{
|
||||
public:
|
||||
at_commander_dawnforge() : AreaTriggerScript("at_commander_dawnforge") { }
|
||||
@@ -661,7 +665,8 @@ public:
|
||||
|
||||
#define QUEST_DIMENSIUS 10439
|
||||
#define QUEST_ON_NETHERY_WINGS 10438
|
||||
#define WHISPER_DABIRI -1000302
|
||||
|
||||
class npc_professor_dabiri : public CreatureScript
|
||||
{
|
||||
public:
|
||||
npc_professor_dabiri() : CreatureScript("npc_professor_dabiri") { }
|
||||
@@ -719,7 +724,8 @@ public:
|
||||
#define SPELL_MANA_BURN 13321
|
||||
#define SPELL_MATERIALIZE 34804
|
||||
#define SPELL_DE_MATERIALIZE 34814
|
||||
#define SPELL_RECHARGING_BATTERY 34219
|
||||
|
||||
class mob_phase_hunter : public CreatureScript
|
||||
{
|
||||
public:
|
||||
mob_phase_hunter() : CreatureScript("mob_phase_hunter") { }
|
||||
@@ -848,7 +854,8 @@ public:
|
||||
#define SPAWN_SECOND 19881
|
||||
#define SAY_THADELL_1 -1000304
|
||||
#define SAY_THADELL_2 -1000305
|
||||
#define Q_ALMABTRIEB 10337
|
||||
|
||||
class npc_bessy : public CreatureScript
|
||||
{
|
||||
public:
|
||||
npc_bessy() : CreatureScript("npc_bessy") { }
|
||||
|
||||
Reference in New Issue
Block a user