Core/DB: Creature text for 53 script files

This commit is contained in:
Gacko committed 2012-12-06 18:08:21 +01:00
1 parent 57e9a97bc4
commit f9c0e3c91b
54 files changed
+1717 -1148

No files matched your search

@@ -1176,7 +1176,7 @@ class npc_lorekeeper : public CreatureScript
if (Creature* Branz = creature->FindNearestCreature(NPC_BRANZ_BRONZBEARD, 1000, true))
{
Delorah->GetMotionMaster()->MovePoint(0, Branz->GetPositionX()-4, Branz->GetPositionY(), Branz->GetPositionZ());
//TODO DoScriptText(xxxx, Delorah, Branz); when reached at branz
//TODO Delorah->AI()->Talk(xxxx, Branz->GetGUID()); when reached at branz
}
}
}
@@ -56,7 +56,7 @@ class boss_thorim : public CreatureScript
void EnterEvadeMode()
{
DoScriptText(SAY_WIPE, me);
Talk(SAY_WIPE);
_EnterEvadeMode();
}
@@ -68,7 +68,7 @@ class boss_thorim : public CreatureScript
void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DEATH, me);
Talk(SAY_DEATH);
_JustDied();
}
@@ -29,14 +29,14 @@ EndScriptData */
enum Yells
{
//Yells Ingvar
YELL_AGGRO_1 = -1574005,
YELL_AGGRO_2 = -1574006,
YELL_AGGRO_1 = 0,
YELL_AGGRO_2 = 1,
YELL_DEAD_1 = -1574007,
YELL_DEAD_2 = -1574008,
YELL_DEAD_1 = 2,
YELL_DEAD_2 = 3,
YELL_KILL_1 = -1574009,
YELL_KILL_2 = -1574010,
YELL_KILL_1 = 4,
YELL_KILL_2 = 5,
};
enum Creatures
@@ -151,7 +151,7 @@ public:
events.SetPhase(PHASE_EVENT);
events.ScheduleEvent(EVENT_SUMMON_BANSHEE, 3 * IN_MILLISECONDS, 0, PHASE_EVENT);
DoScriptText(YELL_DEAD_1, me);
Talk(YELL_DEAD_1);
}
if (events.GetPhaseMask() & (1 << PHASE_EVENT))
@@ -164,13 +164,13 @@ public:
me->UpdateEntry(MOB_INGVAR_UNDEAD);
events.ScheduleEvent(EVENT_JUST_TRANSFORMED, 2 * IN_MILLISECONDS, 0, PHASE_EVENT);
DoScriptText(YELL_AGGRO_2, me);
Talk(YELL_AGGRO_2);
}
void EnterCombat(Unit* /*who*/)
{
if (!bIsUndead)
DoScriptText(YELL_AGGRO_1, me);
Talk(YELL_AGGRO_1);
if (instance)
instance->SetData(DATA_INGVAR_EVENT, IN_PROGRESS);
@@ -180,7 +180,7 @@ public:
void JustDied(Unit* /*killer*/)
{
DoScriptText(YELL_DEAD_2, me);
Talk(YELL_DEAD_2);
if (instance)
{
@@ -201,10 +201,7 @@ public:
void KilledUnit(Unit* /*victim*/)
{
if (bIsUndead)
DoScriptText(YELL_KILL_1, me);
else
DoScriptText(YELL_KILL_2, me);
Talk(bIsUndead ? YELL_KILL_1 : YELL_KILL_2);
}
void UpdateAI(const uint32 diff)
@@ -329,7 +326,7 @@ public:
{
me->GetMotionMaster()->MovePoint(1, x, y, z+15);
// DoScriptText(YELL_RESSURECT, me);
// Talk(YELL_RESSURECT);
}
}
@@ -29,18 +29,18 @@ EndScriptData */
enum eEnums
{
//signed for 24200, but used by 24200, 27390
YELL_SKARVALD_AGGRO = -1574011,
YELL_SKARVALD_DAL_DIED = -1574012,
YELL_SKARVALD_SKA_DIEDFIRST = -1574013,
YELL_SKARVALD_KILL = -1574014,
YELL_SKARVALD_DAL_DIEDFIRST = -1574015,
YELL_SKARVALD_AGGRO = 0,
YELL_SKARVALD_DAL_DIED = 1,
YELL_SKARVALD_SKA_DIEDFIRST = 2,
YELL_SKARVALD_KILL = 3,
YELL_SKARVALD_DAL_DIEDFIRST = 4,
//signed for 24201, but used by 24201, 27389
YELL_DALRONN_AGGRO = -1574016,
YELL_DALRONN_SKA_DIED = -1574017,
YELL_DALRONN_DAL_DIEDFIRST = -1574018,
YELL_DALRONN_KILL = -1574019,
YELL_DALRONN_SKA_DIEDFIRST = -1574020,
YELL_DALRONN_AGGRO = 0,
YELL_DALRONN_SKA_DIED = 1,
YELL_DALRONN_DAL_DIEDFIRST = 2,
YELL_DALRONN_KILL = 3,
YELL_DALRONN_SKA_DIEDFIRST = 4,
//Spells of Skarvald and his Ghost
MOB_SKARVALD_THE_CONSTRUCTOR = 24200,
@@ -123,7 +123,7 @@ public:
{
if (!ghost && instance)
{
DoScriptText(YELL_SKARVALD_AGGRO, me);
Talk(YELL_SKARVALD_AGGRO);
Unit* dalronn = Unit::GetUnit(*me, instance->GetData64(DATA_DALRONN));
if (dalronn && dalronn->isAlive() && !dalronn->getVictim())
@@ -151,13 +151,13 @@ public:
{
if (dalronn->isDead())
{
DoScriptText(YELL_SKARVALD_DAL_DIED, me);
Talk(YELL_SKARVALD_DAL_DIED);
instance->SetData(DATA_SKARVALD_DALRONN_EVENT, DONE);
}
else
{
DoScriptText(YELL_SKARVALD_SKA_DIEDFIRST, me);
Talk(YELL_SKARVALD_SKA_DIEDFIRST);
me->RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE);
//DoCast(me, SPELL_SUMMON_SKARVALD_GHOST, true);
@@ -176,7 +176,7 @@ public:
{
if (!ghost)
{
DoScriptText(YELL_SKARVALD_KILL, me);
Talk(YELL_SKARVALD_KILL);
}
}
@@ -211,7 +211,7 @@ public:
{
if (Response_Timer <= diff)
{
DoScriptText(YELL_SKARVALD_DAL_DIEDFIRST, me);
Talk(YELL_SKARVALD_DAL_DIEDFIRST);
Response_Timer = 0;
} else Response_Timer -= diff;
@@ -310,14 +310,14 @@ public:
{
if (skarvald->isDead())
{
DoScriptText(YELL_DALRONN_SKA_DIED, me);
Talk(YELL_DALRONN_SKA_DIED);
if (instance)
instance->SetData(DATA_SKARVALD_DALRONN_EVENT, DONE);
}
else
{
DoScriptText(YELL_DALRONN_DAL_DIEDFIRST, me);
Talk(YELL_DALRONN_DAL_DIEDFIRST);
me->RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE);
//DoCast(me, SPELL_SUMMON_DALRONN_GHOST, true);
@@ -336,7 +336,7 @@ public:
{
if (!ghost)
{
DoScriptText(YELL_DALRONN_KILL, me);
Talk(YELL_DALRONN_KILL);
}
}
@@ -355,7 +355,7 @@ public:
{
if (AggroYell_Timer <= diff)
{
DoScriptText(YELL_DALRONN_AGGRO, me);
Talk(YELL_DALRONN_AGGRO);
AggroYell_Timer = 0;
} else AggroYell_Timer -= diff;
@@ -382,7 +382,7 @@ public:
{
if (Response_Timer <= diff)
{
DoScriptText(YELL_DALRONN_SKA_DIEDFIRST, me);
Talk(YELL_DALRONN_SKA_DIEDFIRST);
Response_Timer = 0;
} else Response_Timer -= diff;
}
@@ -47,10 +47,9 @@ enum OrbSpells
//not in db
enum Yells
{
SAY_AGGRO = -1575000,
SAY_SLAY_1 = -1575001,
SAY_SLAY_2 = -1575002,
SAY_DEATH = -1575003
SAY_AGGRO = 0,
SAY_SLAY = 1
//SAY_DEATH = 2 Missing in database
};
enum Creatures
@@ -155,7 +154,7 @@ public:
void EnterCombat(Unit* /*who*/)
{
DoScriptText(SAY_AGGRO, me);
Talk(SAY_AGGRO);
}
void AttackStart(Unit* who)
@@ -212,7 +211,7 @@ public:
void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DEATH, me);
//Talk(SAY_DEATH);
if (instance)
instance->SetData(DATA_GORTOK_PALEHOOF_EVENT, DONE);
Creature* temp = Unit::GetCreature((*me), instance ? instance->GetData64(DATA_MOB_ORB) : 0);
@@ -222,7 +221,7 @@ public:
void KilledUnit(Unit* /*victim*/)
{
DoScriptText(RAND(SAY_SLAY_1, SAY_SLAY_2), me);
Talk(SAY_SLAY);
}
void NextPhase()
@@ -34,16 +34,13 @@ Script Data End */
//Yell
enum eYells
{
SAY_AGGRO = -1575004,
SAY_KILL_1 = -1575005,
SAY_KILL_2 = -1575006,
EMOTE_RANGE = -1575007, //Skadi
SAY_DEATH = -1575008,
SAY_DRAKE_DEATH = -1575009,
EMOTE_BREATH = -1575010, //Grauf
SAY_DRAKE_BREATH_1 = -1575011,
SAY_DRAKE_BREATH_2 = -1575012,
SAY_DRAKE_BREATH_3 = -1575013,
SAY_AGGRO = 0,
SAY_KILL = 1,
EMOTE_RANGE = 2,
SAY_DEATH = 3,
SAY_DRAKE_DEATH = 4,
EMOTE_BREATH = 5,
SAY_DRAKE_BREATH = 6
};
static Position SpawnLoc = {468.931f, -513.555f, 104.723f, 0};
@@ -230,7 +227,7 @@ public:
void EnterCombat(Unit* /*who*/)
{
DoScriptText(SAY_AGGRO, me);
Talk(SAY_AGGRO);
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_NON_ATTACKABLE);
@@ -297,7 +294,7 @@ public:
}
me->GetMotionMaster()->MoveJump(Location[4].GetPositionX(), Location[4].GetPositionY(), Location[4].GetPositionZ(), 5.0f, 10.0f);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_NON_ATTACKABLE);
DoScriptText(SAY_DRAKE_DEATH, me);
Talk(SAY_DRAKE_DEATH);
m_uiCrushTimer = 8000;
m_uiPoisonedSpearTimer = 10000;
m_uiWhirlwindTimer = 20000;
@@ -319,7 +316,7 @@ public:
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_NON_ATTACKABLE);
if (!m_bSaidEmote)
{
DoScriptText(EMOTE_RANGE, me);
Talk(EMOTE_RANGE);
m_bSaidEmote = true;
}
}
@@ -360,8 +357,8 @@ public:
break;
case 3:
me->GetMotionMaster()->MovePoint(0, Location[69].GetPositionX(), Location[69].GetPositionY(), Location[69].GetPositionZ());
DoScriptText(RAND(SAY_DRAKE_BREATH_1, SAY_DRAKE_BREATH_2), me);
DoScriptText(EMOTE_BREATH, me);
Talk(SAY_DRAKE_BREATH);
Talk(EMOTE_BREATH);
m_uiMovementTimer = 2500;
break;
case 4:
@@ -413,7 +410,7 @@ public:
void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DEATH, me);
Talk(SAY_DEATH);
Summons.DespawnAll();
if (instance)
instance->SetData(DATA_SKADI_THE_RUTHLESS_EVENT, DONE);
@@ -421,7 +418,7 @@ public:
void KilledUnit(Unit* /*victim*/)
{
DoScriptText(RAND(SAY_KILL_1, SAY_KILL_2), me);
Talk(SAY_KILL);
}
void SpawnMobs()
@@ -55,16 +55,13 @@ enum Spells
//not in db
enum Yells
{
SAY_AGGRO = -1575028,
SAY_SLAY_1 = -1575029,
SAY_SLAY_2 = -1575030,
SAY_SLAY_3 = -1575031,
SAY_SLAY_4 = -1575032,
SAY_DEATH = -1575033,
SAY_SUMMON_BJORN = -1575034,
SAY_SUMMON_HALDOR = -1575035,
SAY_SUMMON_RANULF = -1575036,
SAY_SUMMON_TORGYN = -1575037
SAY_AGGRO = 0,
SAY_SLAY = 1,
SAY_DEATH = 2,
SAY_SUMMON_BJORN = 3,
SAY_SUMMON_HALDOR = 4,
SAY_SUMMON_RANULF = 5,
SAY_SUMMON_TORGYN = 6
};
enum Creatures
@@ -190,7 +187,7 @@ public:
void EnterCombat(Unit* /*who*/)
{
DoScriptText(SAY_AGGRO, me);
Talk(SAY_AGGRO);
if (instance)
instance->SetData(DATA_KING_YMIRON_EVENT, IN_PROGRESS);
@@ -216,7 +213,7 @@ public:
{
if (m_uiPause_Timer <= diff)
{
DoScriptText(ActiveBoat[m_uiActiveOrder[m_uiActivedNumber]].say, me);
Talk(ActiveBoat[m_uiActiveOrder[m_uiActivedNumber]].say);
DoCast(me, SPELL_CHANNEL_YMIRON_TO_SPIRIT); // should be on spirit
if (Creature* temp = me->SummonCreature(ActiveBoat[m_uiActiveOrder[m_uiActivedNumber]].npc, ActiveBoat[m_uiActiveOrder[m_uiActivedNumber]].SpawnX, ActiveBoat[m_uiActiveOrder[m_uiActivedNumber]].SpawnY, ActiveBoat[m_uiActiveOrder[m_uiActivedNumber]].SpawnZ, ActiveBoat[m_uiActiveOrder[m_uiActivedNumber]].SpawnO, TEMPSUMMON_CORPSE_DESPAWN, 0))
{
@@ -370,7 +367,7 @@ public:
void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DEATH, me);
Talk(SAY_DEATH);
DespawnBoatGhosts(m_uiActivedCreatureGUID);
DespawnBoatGhosts(m_uiOrbGUID);
@@ -381,7 +378,7 @@ public:
void KilledUnit(Unit* /*victim*/)
{
DoScriptText(RAND(SAY_SLAY_1, SAY_SLAY_2, SAY_SLAY_3, SAY_SLAY_4), me);
Talk(SAY_SLAY);
}
void DespawnBoatGhosts(uint64 m_uiCreatureGUID)
@@ -19,7 +19,10 @@
#include "ScriptedCreature.h"
#include "vault_of_archavon.h"
#define EMOTE_BERSERK -1590002
enum
{
EMOTE_BERSERK = 0
};
//Spells Archavon
#define SPELL_ROCK_SHARDS 58678
@@ -109,7 +112,7 @@ class boss_archavon : public CreatureScript
break;
case EVENT_BERSERK:
DoCast(me, SPELL_BERSERK);
DoScriptText(EMOTE_BERSERK, me);
Talk(EMOTE_BERSERK);
break;
default:
break;
@@ -37,9 +37,9 @@ enum Spells
enum BossEmotes
{
EMOTE_OVERCHARGE = -1590000,
EMOTE_MINION_RESPAWN = -1590001,
EMOTE_BERSERK = -1590002,
EMOTE_OVERCHARGE = 0,
EMOTE_MINION_RESPAWN = 1,
EMOTE_BERSERK = 2
};
enum Events
@@ -146,14 +146,14 @@ class boss_emalon : public CreatureScript
{
minion->CastSpell(me, SPELL_OVERCHARGED, true);
minion->SetFullHealth();
DoScriptText(EMOTE_OVERCHARGE, me);
Talk(EMOTE_OVERCHARGE);
events.ScheduleEvent(EVENT_OVERCHARGE, 45000);
}
}
break;
case EVENT_BERSERK:
DoCast(me, SPELL_BERSERK);
DoScriptText(EMOTE_BERSERK, me);
Talk(EMOTE_BERSERK);
break;
default:
break;
@@ -198,7 +198,7 @@ class mob_tempest_minion : public CreatureScript
if (emalon->isAlive())
{
emalon->SummonCreature(MOB_TEMPEST_MINION, 0, 0, 0, 0, TEMPSUMMON_CORPSE_DESPAWN, 0);
DoScriptText(EMOTE_MINION_RESPAWN, me);
Talk(EMOTE_MINION_RESPAWN);
}
}
}
@@ -244,7 +244,7 @@ class mob_tempest_minion : public CreatureScript
{
DoCast(me, SPELL_OVERCHARGED_BLAST);
me->DespawnOrUnsummon();
DoScriptText(EMOTE_MINION_RESPAWN, me);
Talk(EMOTE_MINION_RESPAWN);
}
}
}
@@ -34,16 +34,13 @@ enum Spells
enum Yells
{
SAY_AGGRO = -1608000,
SAY_SLAY_1 = -1608001,
SAY_SLAY_2 = -1608002,
SAY_SLAY_3 = -1608003,
SAY_DEATH = -1608004,
SAY_SPAWN = -1608005,
SAY_DISRUPTION = -1608006,
SAY_BREATH_ATTACK = -1608007,
SAY_SPECIAL_ATTACK_1 = -1608008,
SAY_SPECIAL_ATTACK_2 = -1608009
SAY_AGGRO = 0,
SAY_SLAY = 1,
SAY_DEATH = 2,
SAY_SPAWN = 3,
SAY_DISRUPTION = 4,
SAY_BREATH_ATTACK = 5,
SAY_SPECIAL_ATTACK = 6
};
class boss_cyanigosa : public CreatureScript
@@ -84,7 +81,7 @@ public:
void EnterCombat(Unit* /*who*/)
{
DoScriptText(SAY_AGGRO, me);
Talk(SAY_AGGRO);
if (instance)
instance->SetData(DATA_CYANIGOSA_EVENT, IN_PROGRESS);
@@ -144,7 +141,7 @@ public:
void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DEATH, me);
Talk(SAY_DEATH);
if (instance)
instance->SetData(DATA_CYANIGOSA_EVENT, DONE);
@@ -154,7 +151,7 @@ public:
{
if (victim == me)
return;
DoScriptText(RAND(SAY_SLAY_1, SAY_SLAY_2, SAY_SLAY_3), me);
Talk(SAY_SLAY);
}
};
@@ -34,14 +34,12 @@ enum Spells
enum Yells
{
SAY_AGGRO = -1608010,
SAY_SLAY_1 = -1608011,
SAY_SLAY_2 = -1608012,
SAY_SLAY_3 = -1608013,
SAY_DEATH = -1608014,
SAY_SPAWN = -1608015,
SAY_ADD_KILLED = -1608016,
SAY_BOTH_ADDS_KILLED = -1608017
SAY_AGGRO = 0,
SAY_SLAY = 1,
SAY_DEATH = 2,
SAY_SPAWN = 3,
SAY_ADD_KILLED = 4,
SAY_BOTH_ADDS_KILLED = 5
};
class boss_erekem : public CreatureScript
@@ -125,7 +123,7 @@ public:
void EnterCombat(Unit* /*who*/)
{
DoScriptText(SAY_AGGRO, me);
Talk(SAY_AGGRO);
DoCast(me, SPELL_EARTH_SHIELD);
if (instance)
@@ -209,7 +207,7 @@ public:
void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DEATH, me);
Talk(SAY_DEATH);
if (instance)
{
@@ -230,7 +228,7 @@ public:
{
if (victim == me)
return;
DoScriptText(RAND(SAY_SLAY_1, SAY_SLAY_2, SAY_SLAY_3), me);
Talk(SAY_SLAY);
}
uint64 GetChainHealTargetGUID()
@@ -40,15 +40,13 @@ enum IchoronCreatures
enum Yells
{
SAY_AGGRO = -1608018,
SAY_SLAY_1 = -1608019,
SAY_SLAY_2 = -1608020,
SAY_SLAY_3 = -1608021,
SAY_DEATH = -1608022,
SAY_SPAWN = -1608023,
SAY_ENRAGE = -1608024,
SAY_SHATTER = -1608025,
SAY_BUBBLE = -1608026
SAY_AGGRO = 0,
SAY_SLAY = 1,
SAY_DEATH = 2,
SAY_SPAWN = 3,
SAY_ENRAGE = 4,
SAY_SHATTER = 5,
SAY_BUBBLE = 6
};
enum Actions
@@ -120,7 +118,7 @@ public:
void EnterCombat(Unit* /*who*/)
{
DoScriptText(SAY_AGGRO, me);
Talk(SAY_AGGRO);
DoCast(me, SPELL_PROTECTIVE_BUBBLE);
@@ -189,7 +187,7 @@ public:
if (!HealthBelowPct(25))
{
DoScriptText(SAY_BUBBLE, me);
Talk(SAY_BUBBLE);
DoCast(me, SPELL_PROTECTIVE_BUBBLE, true);
}
@@ -214,7 +212,7 @@ public:
if (!bIsFrenzy && HealthBelowPct(25) && !bIsExploded)
{
DoScriptText(SAY_ENRAGE, me);
Talk(SAY_ENRAGE);
DoCast(me, SPELL_FRENZY, true);
bIsFrenzy = true;
}
@@ -227,7 +225,7 @@ public:
{
if (!me->HasAura(SPELL_PROTECTIVE_BUBBLE, 0))
{
DoScriptText(SAY_SHATTER, me);
Talk(SAY_SHATTER);
DoCast(me, SPELL_WATER_BLAST);
DoCast(me, SPELL_DRAINED);
bIsExploded = true;
@@ -277,7 +275,7 @@ public:
void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DEATH, me);
Talk(SAY_DEATH);
if (bIsExploded)
{
@@ -326,7 +324,7 @@ public:
{
if (victim == me)
return;
DoScriptText(RAND(SAY_SLAY_1, SAY_SLAY_2, SAY_SLAY_3), me);
Talk(SAY_SLAY);
}
};
@@ -22,41 +22,38 @@
enum Spells
{
SPELL_ARCANE_BARRAGE_VOLLEY = 54202,
SPELL_ARCANE_BARRAGE_VOLLEY_H = 59483,
SPELL_ARCANE_BUFFET = 54226,
SPELL_ARCANE_BUFFET_H = 59485,
SPELL_SUMMON_ETHEREAL_SPHERE_1 = 54102,
SPELL_SUMMON_ETHEREAL_SPHERE_2 = 54137,
SPELL_SUMMON_ETHEREAL_SPHERE_3 = 54138,
SPELL_ARCANE_BARRAGE_VOLLEY = 54202,
SPELL_ARCANE_BARRAGE_VOLLEY_H = 59483,
SPELL_ARCANE_BUFFET = 54226,
SPELL_ARCANE_BUFFET_H = 59485,
SPELL_SUMMON_ETHEREAL_SPHERE_1 = 54102,
SPELL_SUMMON_ETHEREAL_SPHERE_2 = 54137,
SPELL_SUMMON_ETHEREAL_SPHERE_3 = 54138,
};
enum NPCs
{
NPC_ETHEREAL_SPHERE = 29271,
//NPC_ETHEREAL_SPHERE2 = 32582, // heroic only?
NPC_ETHEREAL_SPHERE = 29271,
//NPC_ETHEREAL_SPHERE2 = 32582, // heroic only?
};
enum CreatureSpells
{
SPELL_ARCANE_POWER = 54160,
H_SPELL_ARCANE_POWER = 59474,
SPELL_SUMMON_PLAYERS = 54164,
SPELL_POWER_BALL_VISUAL = 54141,
SPELL_ARCANE_POWER = 54160,
H_SPELL_ARCANE_POWER = 59474,
SPELL_SUMMON_PLAYERS = 54164,
SPELL_POWER_BALL_VISUAL = 54141,
};
enum Yells
{
SAY_AGGRO = -1608027,
SAY_SLAY_1 = -1608028,
SAY_SLAY_2 = -1608029,
SAY_SLAY_3 = -1608030,
SAY_DEATH = -1608031,
SAY_SPAWN = -1608032,
SAY_CHARGED = -1608033,
SAY_REPEAT_SUMMON_1 = -1608034,
SAY_REPEAT_SUMMON_2 = -1608035,
SAY_SUMMON_ENERGY = -1608036
SAY_AGGRO = 0,
SAY_SLAY = 1,
SAY_DEATH = 2,
SAY_SPAWN = 3,
SAY_CHARGED = 4,
SAY_REPEAT_SUMMON = 5,
SAY_SUMMON_ENERGY = 6
};
class boss_xevozz : public CreatureScript
@@ -139,7 +136,7 @@ public:
void EnterCombat(Unit* /*who*/)
{
DoScriptText(SAY_AGGRO, me);
Talk(SAY_AGGRO);
if (instance)
{
if (GameObject* pDoor = instance->instance->GetGameObject(instance->GetData64(DATA_XEVOZZ_CELL)))
@@ -182,7 +179,7 @@ public:
if (uiSummonEtherealSphere_Timer < uiDiff)
{
DoScriptText(SAY_SPAWN, me);
Talk(SAY_SPAWN);
DoCast(me, SPELL_SUMMON_ETHEREAL_SPHERE_1);
if (IsHeroic()) // extra one for heroic
me->SummonCreature(NPC_ETHEREAL_SPHERE, me->GetPositionX()-5+rand()%10, me->GetPositionY()-5+rand()%10, me->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN, 40000);
@@ -197,7 +194,7 @@ public:
void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DEATH, me);
Talk(SAY_DEATH);
DespawnSphere();
@@ -220,7 +217,7 @@ public:
if (victim == me)
return;
DoScriptText(RAND(SAY_SLAY_1, SAY_SLAY_2, SAY_SLAY_3), me);
Talk(SAY_SLAY);
}
};
@@ -38,14 +38,12 @@ enum ZuramatCreatures
enum Yells
{
SAY_AGGRO = -1608037,
SAY_SLAY_1 = -1608038,
SAY_SLAY_2 = -1608039,
SAY_SLAY_3 = -1608040,
SAY_DEATH = -1608041,
SAY_SPAWN = -1608042,
SAY_SHIELD = -1608043,
SAY_WHISPER = -1608044
SAY_AGGRO = 0,
SAY_SLAY = 1,
SAY_DEATH = 2,
SAY_SPAWN = 3,
SAY_SHIELD = 4,
SAY_WHISPER = 5
};
#define DATA_VOID_DANCE 2153
@@ -106,7 +104,7 @@ public:
void EnterCombat(Unit* /*who*/)
{
DoScriptText(SAY_AGGRO, me);
Talk(SAY_AGGRO);
if (instance)
{
if (GameObject* pDoor = instance->instance->GetGameObject(instance->GetData64(DATA_ZURAMAT_CELL)))
@@ -168,7 +166,7 @@ public:
void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DEATH, me);
Talk(SAY_DEATH);
if (instance)
{
@@ -190,7 +188,7 @@ public:
if (victim == me)
return;
DoScriptText(RAND(SAY_SLAY_1, SAY_SLAY_2, SAY_SLAY_3), me);
Talk(SAY_SLAY);
}
void JustSummoned(Creature* summon)
@@ -94,7 +94,7 @@ const Position MiddleRoomPortalSaboLocation = {1896.622925f, 804.854126f, 38.504
//Cyanigosa's prefight event data
enum Yells
{
CYANIGOSA_SAY_SPAWN = -1608005
CYANIGOSA_SAY_SPAWN = 0
};
enum Spells
@@ -742,7 +742,7 @@ public:
{
case 1:
pCyanigosa->CastSpell(pCyanigosa, CYANIGOSA_BLUE_AURA, false);
DoScriptText(CYANIGOSA_SAY_SPAWN, pCyanigosa);
pCyanigosa->AI()->Talk(CYANIGOSA_SAY_SPAWN);
uiCyanigosaEventTimer = 7*IN_MILLISECONDS;
++uiCyanigosaEventPhase;
break;
@@ -125,7 +125,7 @@ enum Spells
enum eSinclari
{
SAY_SINCLARI_1 = -1608045
SAY_SINCLARI_1 = 0
};
float FirstPortalWPs [6][3] =
@@ -353,7 +353,7 @@ public:
switch (uiPhase)
{
case 1:
DoScriptText(SAY_SINCLARI_1, me);
Talk(SAY_SINCLARI_1);
uiTimer = 4000;
uiPhase = 2;
break;
+23 -27
View File
@@ -121,9 +121,9 @@ enum eRageclaw
SPELL_KNEEL = 39656
};
const char * SAY_RAGECLAW_1 = "I poop on you, trollses!";
const char * SAY_RAGECLAW_2 = "ARRRROOOOGGGGAAAA!";
const char * SAY_RAGECLAW_3 = "No more mister nice wolvar!";
const char* SAY_RAGECLAW_1 = "I poop on you, trollses!";
const char* SAY_RAGECLAW_2 = "ARRRROOOOGGGGAAAA!";
const char* SAY_RAGECLAW_3 = "No more mister nice wolvar!";
#define SAY_RAGECLAW RAND(SAY_RAGECLAW_1, SAY_RAGECLAW_2, SAY_RAGECLAW_3)
@@ -265,14 +265,16 @@ enum eGurgthock
NPC_FIEND_FIRE = 30042,
NPC_FIEND_EARTH = 30043,
SAY_QUEST_ACCEPT_TUSKARRMAGEDON = -1571031,
SAY_QUEST_ACCEPT_KORRAK_1 = -1571033,
SAY_QUEST_ACCEPT_KORRAK_2 = -1571034,
SAY_QUEST_ACCEPT_MAGNATAUR = -1571035,
SAY_QUEST_ACCEPT_TUSKARRMAGEDON = 0,
SAY_QUEST_ACCEPT_KORRAK_1 = 1,
SAY_QUEST_ACCEPT_KORRAK_2 = 2,
SAY_QUEST_ACCEPT_MAGNATAUR = 3,
EMOTE_YGGDRAS_SPAWN = 4,
SAY_STINKBEARD_SPAWN = 5,
SAY_GURGTHOCK_ELEMENTAL_SPAWN = 6,
EMOTE_YGGDRAS_SPAWN = -1571039,
SAY_STINKBEARD_SPAWN = -1571040,
SAY_GURGTHOCK_ELEMENTAL_SPAWN = -1571041,
SAY_CALL_FOR_HELP = 0,
SAY_RECRUIT = 0,
SPELL_CRASHING_WAVE = 55909, // water
SPELL_SHOCKWAVE = 55918, // earth
@@ -380,12 +382,12 @@ public:
switch (uiValue)
{
case QUEST_AMPHITHEATER_ANGUISH_TUSKARRMAGEDDON:
DoScriptText(SAY_QUEST_ACCEPT_TUSKARRMAGEDON, me);
Talk(SAY_QUEST_ACCEPT_TUSKARRMAGEDON);
uiPhase = 1;
uiTimer = 4000;
break;
case QUEST_AMPHITHEATER_ANGUISH_KORRAK_BLOODRAGER:
DoScriptText(SAY_QUEST_ACCEPT_KORRAK_1, me);
Talk(SAY_QUEST_ACCEPT_KORRAK_1);
uiPhase = 3;
uiTimer = 3000;
break;
@@ -443,7 +445,7 @@ public:
SummonGUID = 0;
break;
case 3:
DoScriptText(SAY_QUEST_ACCEPT_KORRAK_2, me);
Talk(SAY_QUEST_ACCEPT_KORRAK_2);
uiTimer = 3000;
uiPhase = 4;
break;
@@ -477,7 +479,7 @@ public:
}
break;
case 8:
DoScriptText(SAY_QUEST_ACCEPT_MAGNATAUR, me);
Talk(SAY_QUEST_ACCEPT_MAGNATAUR);
uiTimer = 5000;
uiPhase = 11;
break;
@@ -494,12 +496,12 @@ public:
break;
case 10:
me->SummonCreature(NPC_YGGDRAS, SpawnPosition[1], TEMPSUMMON_CORPSE_DESPAWN, 1000);
DoScriptText(EMOTE_YGGDRAS_SPAWN, me);
Talk(EMOTE_YGGDRAS_SPAWN);
uiPhase = 0;
break;
case 11:
if (Creature* creature = me->SummonCreature(NPC_STINKBEARD, SpawnPosition[0], TEMPSUMMON_CORPSE_DESPAWN, 1000))
DoScriptText(SAY_STINKBEARD_SPAWN, creature);
creature->AI()->Talk(SAY_STINKBEARD_SPAWN);
uiPhase = 0;
break;
case 12:
@@ -514,7 +516,7 @@ public:
}
break;
case 13:
DoScriptText(SAY_GURGTHOCK_ELEMENTAL_SPAWN, me);
Talk(SAY_GURGTHOCK_ELEMENTAL_SPAWN);
uiTimer = 3000;
uiPhase = 14;
break;
@@ -575,9 +577,7 @@ enum eOrinokoTuskbreaker
SPELL_SUMMON_WHISKER = 55946,
NPC_WHISKER = 30113,
NPC_HUNGRY_PENGUIN = 30110,
SAY_CALL_FOR_HELP = -1571032
NPC_HUNGRY_PENGUIN = 30110
};
class npc_orinoko_tuskbreaker : public CreatureScript
@@ -659,7 +659,7 @@ public:
if (!bSummoned && !HealthAbovePct(50))
{
DoScriptText(SAY_CALL_FOR_HELP, me);
Talk(SAY_CALL_FOR_HELP);
//DoCast(me->getVictim(), SPELL_SUMMON_WHISKER); petai is not working correctly???
if (Creature* pWhisker = me->SummonCreature(NPC_WHISKER, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 0))
@@ -1282,11 +1282,7 @@ enum eCrusade_recruit
QUEST_TROLL_PATROL_INTESTINAL_FORTITUDE = 12509,
GOSSIP_CRUSADE_TEXT = 13069,
SAY_RECRUIT_1 = -1571036,
SAY_RECRUIT_2 = -1571037,
SAY_RECRUIT_3 = -1571038
GOSSIP_CRUSADE_TEXT = 13069
};
#define GOSSIP_ITEM_1 "Get out there and make those Scourge wish they were never reborn!"
@@ -1325,7 +1321,7 @@ public:
// say random text
me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE);
DoScriptText(RAND(SAY_RECRUIT_1, SAY_RECRUIT_2, SAY_RECRUIT_3), me);
Talk(SAY_RECRUIT);
m_uiTimer = 3000;
m_uiPhase = 2;
break;
@@ -126,30 +126,23 @@ public:
};
#define SAY_INTRO -1558000
#define SAY_SUMMON -1558001
enum ExarchMaladaar
{
SAY_INTRO = 0,
SAY_SUMMON = 1,
SAY_AGGRO = 2,
SAY_ROAR = 3,
SAY_SLAY = 4,
SAY_DEATH = 5,
#define SAY_AGGRO_1 -1558002
#define SAY_AGGRO_2 -1558003
#define SAY_AGGRO_3 -1558004
SPELL_RIBBON_OF_SOULS = 32422,
SPELL_SOUL_SCREAM = 32421,
SPELL_STOLEN_SOUL = 32346,
SPELL_STOLEN_SOUL_VISUAL = 32395,
SPELL_SUMMON_AVATAR = 32424,
#define SAY_ROAR -1558005
#define SAY_SOUL_CLEAVE -1558006
#define SAY_SLAY_1 -1558007
#define SAY_SLAY_2 -1558008
#define SAY_DEATH -1558009
#define SPELL_RIBBON_OF_SOULS 32422
#define SPELL_SOUL_SCREAM 32421
#define SPELL_STOLEN_SOUL 32346
#define SPELL_STOLEN_SOUL_VISUAL 32395
#define SPELL_SUMMON_AVATAR 32424
#define ENTRY_STOLEN_SOUL 18441
ENTRY_STOLEN_SOUL = 18441
};
class boss_exarch_maladaar : public CreatureScript
{
@@ -196,7 +189,7 @@ public:
{
if (!HasTaunted && me->IsWithinDistInMap(who, 150.0f))
{
DoScriptText(SAY_INTRO, me);
Talk(SAY_INTRO);
HasTaunted = true;
}
@@ -205,7 +198,7 @@ public:
void EnterCombat(Unit* /*who*/)
{
DoScriptText(RAND(SAY_AGGRO_1, SAY_AGGRO_2, SAY_AGGRO_3), me);
Talk(SAY_AGGRO);
}
void JustSummoned(Creature* summoned)
@@ -231,12 +224,12 @@ public:
if (rand()%2)
return;
DoScriptText(RAND(SAY_SLAY_1, SAY_SLAY_2), me);
Talk(SAY_SLAY);
}
void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DEATH, me);
Talk(SAY_DEATH);
//When Exarch Maladar is defeated D'ore appear.
me->SummonCreature(19412, 0.0f, 0.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_DESPAWN, 600000);
}
@@ -251,7 +244,7 @@ public:
if (me->IsNonMeleeSpellCasted(false))
me->InterruptNonMeleeSpells(true);
DoScriptText(SAY_SUMMON, me);
Talk(SAY_SUMMON);
DoCast(me, SPELL_SUMMON_AVATAR);
Avatar_summoned = true;
@@ -267,11 +260,7 @@ public:
if (me->IsNonMeleeSpellCasted(false))
me->InterruptNonMeleeSpells(true);
uint32 i = urand(1, 2);
if (i == 1)
DoScriptText(SAY_ROAR, me);
else
DoScriptText(SAY_SOUL_CLEAVE, me);
Talk(SAY_ROAR);
soulmodel = target->GetDisplayId();
soulholder = target->GetGUID();
@@ -33,14 +33,11 @@ EndContentData */
enum ePrince
{
SAY_INTRO = -1557000,
SAY_AGGRO_1 = -1557001,
SAY_AGGRO_2 = -1557002,
SAY_AGGRO_3 = -1557003,
SAY_SLAY_1 = -1557004,
SAY_SLAY_2 = -1557005,
SAY_SUMMON = -1557006,
SAY_DEAD = -1557007,
SAY_INTRO = 0,
SAY_AGGRO = 1,
SAY_SLAY = 2,
SAY_SUMMON = 3,
SAY_DEAD = 4,
SPELL_BLINK = 34605,
SPELL_FROSTBOLT = 32364,
@@ -110,14 +107,14 @@ public:
{
if (!HasTaunted && who->GetTypeId() == TYPEID_PLAYER && me->IsWithinDistInMap(who, 100.0f))
{
DoScriptText(SAY_INTRO, me);
Talk(SAY_INTRO);
HasTaunted = true;
}
}
void EnterCombat(Unit* /*who*/)
{
DoScriptText(RAND(SAY_AGGRO_1, SAY_AGGRO_2, SAY_AGGRO_3), me);
Talk(SAY_AGGRO);
DoZoneInCombat();
summons.DoZoneInCombat();
@@ -143,12 +140,12 @@ public:
void KilledUnit(Unit* /*victim*/)
{
DoScriptText(RAND(SAY_SLAY_1, SAY_SLAY_2), me);
Talk(SAY_SLAY);
}
void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DEAD, me);
Talk(SAY_DEAD);
summons.DespawnAll();
}
@@ -203,7 +200,7 @@ public:
me->InterruptNonMeleeSpells(true);
if (!urand(0, 3))
DoScriptText(SAY_SUMMON, me);
Talk(SAY_SUMMON);
DoCast(me, SPELL_ETHEREAL_BEACON, true);
@@ -26,21 +26,19 @@ EndScriptData */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#define SAY_AGGRO_1 -1557008
#define SAY_AGGRO_2 -1557009
#define SAY_AGGRO_3 -1557010
enum Pandemonius
{
SAY_AGGRO = 0,
SAY_KILL = 1,
SAY_DEATH = 2,
EMOTE_DARK_SHELL = 3,
#define SAY_KILL_1 -1557011
#define SAY_KILL_2 -1557012
SPELL_VOID_BLAST = 32325,
H_SPELL_VOID_BLAST = 38760,
SPELL_DARK_SHELL = 32358,
H_SPELL_DARK_SHELL = 38759
};
#define SAY_DEATH -1557013
#define EMOTE_DARK_SHELL -1557014
#define SPELL_VOID_BLAST 32325
#define H_SPELL_VOID_BLAST 38760
#define SPELL_DARK_SHELL 32358
#define H_SPELL_DARK_SHELL 38759
class boss_pandemonius : public CreatureScript
{
@@ -71,17 +69,17 @@ public:
void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DEATH, me);
Talk(SAY_DEATH);
}
void KilledUnit(Unit* /*victim*/)
{
DoScriptText(RAND(SAY_KILL_1, SAY_KILL_2), me);
Talk(SAY_KILL);
}
void EnterCombat(Unit* /*who*/)
{
DoScriptText(RAND(SAY_AGGRO_1, SAY_AGGRO_2, SAY_AGGRO_3), me);
Talk(SAY_AGGRO);
}
void UpdateAI(const uint32 diff)
@@ -112,7 +110,7 @@ public:
if (me->IsNonMeleeSpellCasted(false))
me->InterruptNonMeleeSpells(true);
DoScriptText(EMOTE_DARK_SHELL, me);
Talk(EMOTE_DARK_SHELL);
DoCast(me, SPELL_DARK_SHELL);
DarkShell_Timer = 20000;
@@ -26,28 +26,25 @@ EndScriptData */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#define SAY_SUMMON -1556000
enum DarkweaverSyth
{
SAY_SUMMON = 0,
SAY_AGGRO = 1,
SAY_SLAY = 2,
SAY_DEATH = 3,
#define SAY_AGGRO_1 -1556001
#define SAY_AGGRO_2 -1556002
#define SAY_AGGRO_3 -1556003
SPELL_FROST_SHOCK = 21401, //37865
SPELL_FLAME_SHOCK = 34354,
SPELL_SHADOW_SHOCK = 30138,
SPELL_ARCANE_SHOCK = 37132,
#define SAY_SLAY_1 -1556004
#define SAY_SLAY_2 -1556005
SPELL_CHAIN_LIGHTNING = 15659, //15305
#define SAY_DEATH -1556006
#define SPELL_FROST_SHOCK 21401 //37865
#define SPELL_FLAME_SHOCK 34354
#define SPELL_SHADOW_SHOCK 30138
#define SPELL_ARCANE_SHOCK 37132
#define SPELL_CHAIN_LIGHTNING 15659 //15305
#define SPELL_SUMMON_SYTH_FIRE 33537 // Spawns 19203
#define SPELL_SUMMON_SYTH_ARCANE 33538 // Spawns 19205
#define SPELL_SUMMON_SYTH_FROST 33539 // Spawns 19204
#define SPELL_SUMMON_SYTH_SHADOW 33540 // Spawns 19206
SPELL_SUMMON_SYTH_FIRE = 33537, // Spawns 19203
SPELL_SUMMON_SYTH_ARCANE = 33538, // Spawns 19205
SPELL_SUMMON_SYTH_FROST = 33539, // Spawns 19204
SPELL_SUMMON_SYTH_SHADOW = 33540 // Spawns 19206
};
#define SPELL_FLAME_BUFFET DUNGEON_MODE(33526, 38141)
#define SPELL_ARCANE_BUFFET DUNGEON_MODE(33527, 38138)
@@ -95,12 +92,12 @@ public:
void EnterCombat(Unit* /*who*/)
{
DoScriptText(RAND(SAY_AGGRO_1, SAY_AGGRO_2, SAY_AGGRO_3), me);
Talk(SAY_AGGRO);
}
void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DEATH, me);
Talk(SAY_DEATH);
}
void KilledUnit(Unit* /*victim*/)
@@ -108,7 +105,7 @@ public:
if (rand()%2)
return;
DoScriptText(RAND(SAY_SLAY_1, SAY_SLAY_2), me);
Talk(SAY_SLAY);
}
void JustSummoned(Creature* summoned)
@@ -119,7 +116,7 @@ public:
void SythSummoning()
{
DoScriptText(SAY_SUMMON, me);
Talk(SAY_SUMMON);
if (me->IsNonMeleeSpellCasted(false))
me->InterruptNonMeleeSpells(false);
@@ -27,31 +27,26 @@ EndScriptData */
#include "ScriptedCreature.h"
#include "sethekk_halls.h"
#define SAY_INTRO -1556007
enum TailonkingIkiss
{
SAY_INTRO = 0,
SAY_AGGRO = 1,
SAY_SLAY = 2,
SAY_DEATH = 3,
EMOTE_ARCANE_EXP = 4,
#define SAY_AGGRO_1 -1556008
#define SAY_AGGRO_2 -1556009
#define SAY_AGGRO_3 -1556010
#define SAY_SLAY_1 -1556011
#define SAY_SLAY_2 -1556012
#define SAY_DEATH -1556013
#define EMOTE_ARCANE_EXP -1556015
#define SPELL_BLINK 38194
#define SPELL_BLINK_TELEPORT 38203
#define SPELL_MANA_SHIELD 38151
#define SPELL_ARCANE_BUBBLE 9438
#define H_SPELL_SLOW 35032
#define SPELL_POLYMORPH 38245
#define H_SPELL_POLYMORPH 43309
#define SPELL_ARCANE_VOLLEY 35059
#define H_SPELL_ARCANE_VOLLEY 40424
#define SPELL_ARCANE_EXPLOSION 38197
#define H_SPELL_ARCANE_EXPLOSION 40425
SPELL_BLINK = 38194,
SPELL_BLINK_TELEPORT = 38203,
SPELL_MANA_SHIELD = 38151,
SPELL_ARCANE_BUBBLE = 9438,
H_SPELL_SLOW = 35032,
SPELL_POLYMORPH = 38245,
H_SPELL_POLYMORPH = 43309,
SPELL_ARCANE_VOLLEY = 35059,
H_SPELL_ARCANE_VOLLEY = 40424,
SPELL_ARCANE_EXPLOSION = 38197,
H_SPELL_ARCANE_EXPLOSION = 40425
};
class boss_talon_king_ikiss : public CreatureScript
{
@@ -99,7 +94,7 @@ public:
if (!Intro && me->IsWithinDistInMap(who, 100))
{
Intro = true;
DoScriptText(SAY_INTRO, me);
Talk(SAY_INTRO);
}
if (!me->CanFly() && me->GetDistanceZ(who) > CREATURE_Z_ATTACK_RANGE)
@@ -116,12 +111,12 @@ public:
void EnterCombat(Unit* /*who*/)
{
DoScriptText(RAND(SAY_AGGRO_1, SAY_AGGRO_2, SAY_AGGRO_3), me);
Talk(SAY_AGGRO);
}
void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DEATH, me);
Talk(SAY_DEATH);
if (instance)
instance->SetData(DATA_IKISSDOOREVENT, DONE);
@@ -129,7 +124,7 @@ public:
void KilledUnit(Unit* /*victim*/)
{
DoScriptText(RAND(SAY_SLAY_1, SAY_SLAY_2), me);
Talk(SAY_SLAY);
}
void UpdateAI(const uint32 diff)
@@ -183,7 +178,7 @@ public:
if (Blink_Timer <= diff)
{
DoScriptText(EMOTE_ARCANE_EXP, me);
Talk(EMOTE_ARCANE_EXP);
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
{
@@ -30,14 +30,11 @@ EndScriptData */
enum eEnums
{
SAY_INTRO = -1555000,
SAY_AGGRO1 = -1555001,
SAY_AGGRO2 = -1555002,
SAY_AGGRO3 = -1555003,
SAY_HELP = -1555004,
SAY_SLAY1 = -1555005,
SAY_SLAY2 = -1555006,
SAY_DEATH = -1555007,
SAY_INTRO = 0,
SAY_AGGRO = 1,
SAY_HELP = 2,
SAY_SLAY = 3,
SAY_DEATH = 4,
SPELL_BANISH = 30231,
SPELL_CORROSIVE_ACID = 33551,
@@ -119,7 +116,7 @@ public:
{
if (instance->GetData(TYPE_HELLMAW) != FAIL)
{
DoScriptText(SAY_INTRO, me);
Talk(SAY_INTRO);
Start(true, false, 0, NULL, false, true);
}
@@ -129,17 +126,17 @@ public:
void EnterCombat(Unit* /*who*/)
{
DoScriptText(RAND(SAY_AGGRO1, SAY_AGGRO2, SAY_AGGRO3), me);
Talk(SAY_AGGRO);
}
void KilledUnit(Unit* /*victim*/)
{
DoScriptText(RAND(SAY_SLAY1, SAY_SLAY2), me);
Talk(SAY_SLAY);
}
void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DEATH, me);
Talk(SAY_DEATH);
if (instance)
instance->SetData(TYPE_HELLMAW, DONE);
@@ -27,33 +27,26 @@ EndScriptData */
#include "ScriptedCreature.h"
#include "shadow_labyrinth.h"
#define SPELL_INCITE_CHAOS 33676
#define SPELL_INCITE_CHAOS_B 33684 //debuff applied to each member of party
#define SPELL_CHARGE 33709
#define SPELL_WAR_STOMP 33707
enum BlackheartTheInciter
{
SPELL_INCITE_CHAOS = 33676,
SPELL_INCITE_CHAOS_B = 33684, //debuff applied to each member of party
SPELL_CHARGE = 33709,
SPELL_WAR_STOMP = 33707,
#define SAY_INTRO1 -1555008 //not used
#define SAY_INTRO2 -1555009 //not used
#define SAY_INTRO3 -1555010 //not used
#define SAY_AGGRO1 -1555011
#define SAY_AGGRO2 -1555012
#define SAY_AGGRO3 -1555013
#define SAY_SLAY1 -1555014
#define SAY_SLAY2 -1555015
#define SAY_HELP -1555016 //not used
#define SAY_DEATH -1555017
SAY_INTRO = 0,
SAY_AGGRO = 1,
SAY_SLAY = 2,
SAY_HELP = 3,
SAY_DEATH = 4,
//below, not used
#define SAY2_INTRO1 -1555018
#define SAY2_INTRO2 -1555019
#define SAY2_INTRO3 -1555020
#define SAY2_AGGRO1 -1555021
#define SAY2_AGGRO2 -1555022
#define SAY2_AGGRO3 -1555023
#define SAY2_SLAY1 -1555024
#define SAY2_SLAY2 -1555025
#define SAY2_HELP -1555026
#define SAY2_DEATH -1555027
//below, not used
SAY2_INTRO = 5,
SAY2_AGGRO = 6,
SAY2_SLAY = 7,
SAY2_HELP = 8,
SAY2_DEATH = 9
};
class boss_blackheart_the_inciter : public CreatureScript
{
@@ -94,12 +87,12 @@ public:
void KilledUnit(Unit* /*victim*/)
{
DoScriptText(RAND(SAY_SLAY1, SAY_SLAY2), me);
Talk(SAY_SLAY);
}
void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DEATH, me);
Talk(SAY_DEATH);
if (instance)
instance->SetData(DATA_BLACKHEARTTHEINCITEREVENT, DONE);
@@ -107,7 +100,7 @@ public:
void EnterCombat(Unit* /*who*/)
{
DoScriptText(RAND(SAY_AGGRO1, SAY_AGGRO2, SAY_AGGRO3), me);
Talk(SAY_AGGRO);
if (instance)
instance->SetData(DATA_BLACKHEARTTHEINCITEREVENT, IN_PROGRESS);
@@ -28,30 +28,30 @@ EndScriptData */
#include "shadow_labyrinth.h"
#include "Player.h"
#define SAY_INTRO -1555028
#define SAY_AGGRO1 -1555029
#define SAY_AGGRO2 -1555030
#define SAY_AGGRO3 -1555031
#define SAY_HELP -1555032
#define SAY_SLAY1 -1555033
#define SAY_SLAY2 -1555034
#define SAY_DEATH -1555035
enum GrandmasterVorpil
{
SAY_INTRO = 0,
SAY_AGGRO = 1,
SAY_HELP = 2,
SAY_SLAY = 3,
SAY_DEATH = 4,
#define SPELL_RAIN_OF_FIRE 33617
#define H_SPELL_RAIN_OF_FIRE 39363
SPELL_RAIN_OF_FIRE = 33617,
H_SPELL_RAIN_OF_FIRE = 39363,
#define SPELL_DRAW_SHADOWS 33563
#define SPELL_SHADOWBOLT_VOLLEY 33841
#define SPELL_BANISH 38791
SPELL_DRAW_SHADOWS = 33563,
SPELL_SHADOWBOLT_VOLLEY = 33841,
SPELL_BANISH = 38791,
#define MOB_VOID_TRAVELER 19226
#define SPELL_SACRIFICE 33587
#define SPELL_SHADOW_NOVA 33846
#define SPELL_EMPOWERING_SHADOWS 33783
#define H_SPELL_EMPOWERING_SHADOWS 39364
MOB_VOID_TRAVELER = 19226,
SPELL_SACRIFICE = 33587,
SPELL_SHADOW_NOVA = 33846,
SPELL_EMPOWERING_SHADOWS = 33783,
H_SPELL_EMPOWERING_SHADOWS = 39364,
#define MOB_VOID_PORTAL 19224
#define SPELL_VOID_PORTAL_VISUAL 33569
MOB_VOID_PORTAL = 19224,
SPELL_VOID_PORTAL_VISUAL = 33569
};
float VorpilPosition[3] = {-252.8820f, -264.3030f, 17.1f};
@@ -219,7 +219,7 @@ public:
me->SummonCreature(MOB_VOID_TRAVELER, VoidPortalCoords[pos][0], VoidPortalCoords[pos][1], VoidPortalCoords[pos][2], 0, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 5000);
if (!HelpYell)
{
DoScriptText(SAY_HELP, me);
Talk(SAY_HELP);
HelpYell = true;
}
}
@@ -232,12 +232,12 @@ public:
void KilledUnit(Unit* /*victim*/)
{
DoScriptText(RAND(SAY_SLAY1, SAY_SLAY2), me);
Talk(SAY_SLAY);
}
void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DEATH, me);
Talk(SAY_DEATH);
destroyPortals();
if (instance)
@@ -246,7 +246,7 @@ public:
void EnterCombat(Unit* /*who*/)
{
DoScriptText(RAND(SAY_AGGRO1, SAY_AGGRO2, SAY_AGGRO3), me);
Talk(SAY_AGGRO);
summonPortals();
if (instance)
@@ -259,7 +259,7 @@ public:
if (!Intro && me->IsWithinLOSInMap(who)&& me->IsWithinDistInMap(who, 100) && me->IsValidAttackTarget(who))
{
DoScriptText(SAY_INTRO, me);
Talk(SAY_INTRO);
Intro = true;
}
}
@@ -28,15 +28,20 @@ EndScriptData */
#include "shadow_labyrinth.h"
#include "SpellInfo.h"
#define EMOTE_SONIC_BOOM -1555036
enum Murmur
{
SPELL_RESONANCE = 33657,
SPELL_MAGNETIC_PULL = 33689,
SPELL_SONIC_SHOCK = 38797,
SPELL_THUNDERING_STORM = 39365,
EMOTE_SONIC_BOOM = 0
};
#define SPELL_SONIC_BOOM_CAST DUNGEON_MODE(33923, 38796)
#define SPELL_SONIC_BOOM_EFFECT DUNGEON_MODE(33666, 38795)
#define SPELL_RESONANCE 33657
#define SPELL_MURMURS_TOUCH DUNGEON_MODE(33711, 38794)
#define SPELL_MAGNETIC_PULL 33689
#define SPELL_SONIC_SHOCK 38797
#define SPELL_THUNDERING_STORM 39365
class boss_murmur : public CreatureScript
{
@@ -123,7 +128,7 @@ public:
}
if (SonicBoom_Timer <= diff)
{
DoScriptText(EMOTE_SONIC_BOOM, me);
Talk(EMOTE_SONIC_BOOM);
DoCast(me, SPELL_SONIC_BOOM_CAST);
SonicBoom_Timer = 30000;
SonicBoom = true;
@@ -27,32 +27,33 @@ EndScriptData */
#include "ScriptedCreature.h"
#include "black_temple.h"
//Speech'n'Sound
#define SAY_AGGRO -1564029
#define SAY_SLAY1 -1564030
#define SAY_SLAY2 -1564031
#define SAY_SPECIAL1 -1564032
#define SAY_SPECIAL2 -1564033
#define SAY_ENRAGE1 -1564034
#define SAY_ENRAGE2 -1564035
#define SAY_DEATH -1564036
enum Bloodboil
{
//Speech'n'Sound
SAY_AGGRO = 0,
SAY_SLAY = 1,
SAY_SPECIAL = 2,
SAY_ENRAGE = 3,
SAY_DEATH = 4,
//Spells
SPELL_ACID_GEYSER = 40630,
SPELL_ACIDIC_WOUND = 40481,
SPELL_ARCING_SMASH = 40599,
SPELL_BLOODBOIL = 42005, // This spell is AoE whereas it shouldn't be
SPELL_FEL_ACID = 40508,
SPELL_FEL_RAGE_SELF = 40594,
SPELL_FEL_RAGE_TARGET = 40604,
SPELL_FEL_RAGE_2 = 40616,
SPELL_FEL_RAGE_3 = 41625,
SPELL_BEWILDERING_STRIKE = 40491,
SPELL_EJECT1 = 40486, // 1000 Physical damage + knockback + script effect (should handle threat reduction I think)
SPELL_EJECT2 = 40597, // 1000 Physical damage + Stun (used in phase 2?)
SPELL_TAUNT_GURTOGG = 40603,
SPELL_INSIGNIFIGANCE = 40618,
SPELL_BERSERK = 45078
};
//Spells
#define SPELL_ACID_GEYSER 40630
#define SPELL_ACIDIC_WOUND 40481
#define SPELL_ARCING_SMASH 40599
#define SPELL_BLOODBOIL 42005 // This spell is AoE whereas it shouldn't be
#define SPELL_FEL_ACID 40508
#define SPELL_FEL_RAGE_SELF 40594
#define SPELL_FEL_RAGE_TARGET 40604
#define SPELL_FEL_RAGE_2 40616
#define SPELL_FEL_RAGE_3 41625
#define SPELL_BEWILDERING_STRIKE 40491
#define SPELL_EJECT1 40486 // 1000 Physical damage + knockback + script effect (should handle threat reduction I think)
#define SPELL_EJECT2 40597 // 1000 Physical damage + Stun (used in phase 2?)
#define SPELL_TAUNT_GURTOGG 40603
#define SPELL_INSIGNIFIGANCE 40618
#define SPELL_BERSERK 45078
//This is used to sort the players by distance in preparation for the Bloodboil cast.
@@ -121,14 +122,14 @@ public:
void EnterCombat(Unit* /*who*/)
{
DoZoneInCombat();
DoScriptText(SAY_AGGRO, me);
Talk(SAY_AGGRO);
if (instance)
instance->SetData(DATA_GURTOGGBLOODBOILEVENT, IN_PROGRESS);
}
void KilledUnit(Unit* /*victim*/)
{
DoScriptText(RAND(SAY_SLAY1, SAY_SLAY2), me);
Talk(SAY_SLAY);
}
void JustDied(Unit* /*killer*/)
@@ -136,7 +137,7 @@ public:
if (instance)
instance->SetData(DATA_GURTOGGBLOODBOILEVENT, DONE);
DoScriptText(SAY_DEATH, me);
Talk(SAY_DEATH);
}
// Note: This seems like a very complicated fix. The fix needs to be handled by the core, as implementation of limited-target AoE spells are still not limited.
@@ -219,7 +220,7 @@ public:
if (EnrageTimer <= diff)
{
DoCast(me, SPELL_BERSERK);
DoScriptText(RAND(SAY_ENRAGE1, SAY_ENRAGE2), me);
Talk(SAY_ENRAGE);
} else EnrageTimer -= diff;
}
@@ -302,7 +303,7 @@ public:
//Cast this without triggered so that it appears in combat logs and shows visual.
DoCast(me, SPELL_FEL_RAGE_SELF);
DoScriptText(RAND(SAY_SPECIAL1, SAY_SPECIAL2), me);
Talk(SAY_SPECIAL);
AcidGeyserTimer = 1000;
PhaseChangeTimer = 30000;
@@ -27,31 +27,29 @@ EndScriptData */
#include "ScriptedCreature.h"
#include "black_temple.h"
//Speech'n'Sounds
#define SAY_TAUNT1 -1564018
#define SAY_TAUNT2 -1564019
#define SAY_TAUNT3 -1564020
#define SAY_AGGRO -1564021
#define SAY_SPELL1 -1564022
#define SAY_SPELL2 -1564023
#define SAY_SPELL3 -1564024
#define SAY_SLAY1 -1564025
#define SAY_SLAY2 -1564026
#define SAY_ENRAGE -1564027
#define SAY_DEATH -1564028
enum MotherShahraz
{
//Speech'n'Sounds
SAY_TAUNT = 0,
SAY_AGGRO = 1,
SAY_SPELL = 2,
SAY_SLAY = 3,
SAY_ENRAGE = 4,
SAY_DEATH = 5,
//Spells
#define SPELL_BEAM_SINISTER 40859
#define SPELL_BEAM_VILE 40860
#define SPELL_BEAM_WICKED 40861
#define SPELL_BEAM_SINFUL 40827
#define SPELL_ATTRACTION 40871
#define SPELL_SILENCING_SHRIEK 40823
#define SPELL_ENRAGE 23537
#define SPELL_SABER_LASH 40810//43267
#define SPELL_SABER_LASH_IMM 43690
#define SPELL_TELEPORT_VISUAL 40869
#define SPELL_BERSERK 45078
//Spells
SPELL_BEAM_SINISTER = 40859,
SPELL_BEAM_VILE = 40860,
SPELL_BEAM_WICKED = 40861,
SPELL_BEAM_SINFUL = 40827,
SPELL_ATTRACTION = 40871,
SPELL_SILENCING_SHRIEK = 40823,
SPELL_ENRAGE = 23537,
SPELL_SABER_LASH = 40810,//43267
SPELL_SABER_LASH_IMM = 43690,
SPELL_TELEPORT_VISUAL = 40869,
SPELL_BERSERK = 45078
};
uint32 PrismaticAuras[]=
{
@@ -142,12 +140,12 @@ public:
instance->SetData(DATA_MOTHERSHAHRAZEVENT, IN_PROGRESS);
DoZoneInCombat();
DoScriptText(SAY_AGGRO, me);
Talk(SAY_AGGRO);
}
void KilledUnit(Unit* /*victim*/)
{
DoScriptText(RAND(SAY_SLAY1, SAY_SLAY2), me);
Talk(SAY_SLAY);
}
void JustDied(Unit* /*killer*/)
@@ -155,7 +153,7 @@ public:
if (instance)
instance->SetData(DATA_MOTHERSHAHRAZEVENT, DONE);
DoScriptText(SAY_DEATH, me);
Talk(SAY_DEATH);
}
void TeleportPlayers()
@@ -185,7 +183,7 @@ public:
{
Enraged = true;
DoCast(me, SPELL_ENRAGE, true);
DoScriptText(SAY_ENRAGE, me);
Talk(SAY_ENRAGE);
}
//Randomly cast one beam.
@@ -236,7 +234,7 @@ public:
TeleportPlayers();
DoScriptText(RAND(SAY_SPELL2, SAY_SPELL3), me);
Talk(SAY_SPELL);
FatalAttractionExplodeTimer = 2000;
FatalAttractionTimer = urand(40, 71) * 1000;
} else FatalAttractionTimer -= diff;
@@ -284,14 +282,14 @@ public:
if (EnrageTimer <= diff)
{
DoCast(me, SPELL_BERSERK);
DoScriptText(SAY_ENRAGE, me);
Talk(SAY_ENRAGE);
} else EnrageTimer -= diff;
}
//Random taunts
if (RandomYellTimer <= diff)
{
DoScriptText(RAND(SAY_TAUNT1, SAY_TAUNT2, SAY_TAUNT3), me);
Talk(SAY_TAUNT);
RandomYellTimer = urand(60, 151) * 1000;
} else RandomYellTimer -= diff;
@@ -28,64 +28,61 @@ EndScriptData */
#include "black_temple.h"
#include "Spell.h"
//Sound'n'speech
//Suffering
#define SUFF_SAY_FREED -1564047
#define SUFF_SAY_AGGRO -1564048
#define SUFF_SAY_SLAY1 -1564049
#define SUFF_SAY_SLAY2 -1564050
#define SUFF_SAY_SLAY3 -1564051
#define SUFF_SAY_RECAP -1564052
#define SUFF_SAY_AFTER -1564053
#define SUFF_EMOTE_ENRAGE -1564054
enum ReliquaryOfSouls
{
//Sound'n'speech
//Suffering
SUFF_SAY_FREED = 0,
SUFF_SAY_AGGRO = 1,
SUFF_SAY_SLAY = 2,
SUFF_SAY_RECAP = 3,
SUFF_SAY_AFTER = 4,
SUFF_EMOTE_ENRAGE = 5,
//Desire
#define DESI_SAY_FREED -1564055
#define DESI_SAY_SLAY1 -1564056
#define DESI_SAY_SLAY2 -1564057
#define DESI_SAY_SLAY3 -1564058
#define DESI_SAY_SPEC -1564059
#define DESI_SAY_RECAP -1564060
#define DESI_SAY_AFTER -1564061
//Desire
DESI_SAY_FREED = 0,
DESI_SAY_SLAY = 1,
DESI_SAY_SPEC = 2,
DESI_SAY_RECAP = 3,
DESI_SAY_AFTER = 4,
//Anger
#define ANGER_SAY_FREED -1564062
#define ANGER_SAY_FREED2 -1564063
#define ANGER_SAY_SLAY1 -1564064
#define ANGER_SAY_SLAY2 -1564065
#define ANGER_SAY_SPEC -1564066
#define ANGER_SAY_BEFORE -1564067
#define ANGER_SAY_DEATH -1564068
//Anger
ANGER_SAY_FREED = 0,
ANGER_SAY_SLAY = 1,
ANGER_SAY_SPEC = 2,
ANGER_SAY_BEFORE = 3,
ANGER_SAY_DEATH = 4,
//Spells
#define AURA_OF_SUFFERING 41292
#define AURA_OF_SUFFERING_ARMOR 42017 // linked aura, need core support
#define ESSENCE_OF_SUFFERING_PASSIVE 41296 // periodic trigger 41294
#define ESSENCE_OF_SUFFERING_PASSIVE2 41623
#define SPELL_FIXATE_TARGET 41294 // dummy, select target
#define SPELL_FIXATE_TAUNT 41295 // force taunt
#define SPELL_ENRAGE 41305
#define SPELL_SOUL_DRAIN 41303
//Spells
AURA_OF_SUFFERING = 41292,
AURA_OF_SUFFERING_ARMOR = 42017, // linked aura, need core support
ESSENCE_OF_SUFFERING_PASSIVE = 41296, // periodic trigger 41294
ESSENCE_OF_SUFFERING_PASSIVE2 = 41623,
SPELL_FIXATE_TARGET = 41294, // dummy, select target
SPELL_FIXATE_TAUNT = 41295, // force taunt
SPELL_ENRAGE = 41305,
SPELL_SOUL_DRAIN = 41303,
#define AURA_OF_DESIRE 41350
#define AURA_OF_DESIRE_DAMAGE 41352
#define SPELL_RUNE_SHIELD 41431
#define SPELL_DEADEN 41410
#define SPELL_SOUL_SHOCK 41426
AURA_OF_DESIRE = 41350,
AURA_OF_DESIRE_DAMAGE = 41352,
SPELL_RUNE_SHIELD = 41431,
SPELL_DEADEN = 41410,
SPELL_SOUL_SHOCK = 41426,
#define AURA_OF_ANGER 41337
#define SPELL_SELF_SEETHE 41364 // force cast 41520
#define SPELL_ENEMY_SEETHE 41520
#define SPELL_SOUL_SCREAM 41545
#define SPELL_SPITE_TARGET 41376 // cast 41377 after 6 sec
#define SPELL_SPITE_DAMAGE 41377
AURA_OF_ANGER = 41337,
SPELL_SELF_SEETHE = 41364, // force cast 41520
SPELL_ENEMY_SEETHE = 41520,
SPELL_SOUL_SCREAM = 41545,
SPELL_SPITE_TARGET = 41376, // cast 41377 after 6 sec
SPELL_SPITE_DAMAGE = 41377,
#define ENSLAVED_SOUL_PASSIVE 41535
#define SPELL_SOUL_RELEASE 41542
#define SPELL_SUBMERGE 37550 //dropout 'head'
ENSLAVED_SOUL_PASSIVE = 41535,
SPELL_SOUL_RELEASE = 41542,
SPELL_SUBMERGE = 37550, //dropout 'head'
#define CREATURE_ENSLAVED_SOUL 23469
#define NUMBER_ENSLAVED_SOUL 8
CREATURE_ENSLAVED_SOUL = 23469,
NUMBER_ENSLAVED_SOUL = 8
};
struct Position2d
{
@@ -337,11 +334,11 @@ public:
case 5:
if (Phase == 1)
{
DoScriptText(SUFF_SAY_AFTER, Essence);
Essence->AI()->Talk(SUFF_SAY_AFTER);
}
else
{
DoScriptText(DESI_SAY_AFTER, Essence);
Essence->AI()->Talk(DESI_SAY_AFTER);
}
Essence->DespawnOrUnsummon();
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, 0);
@@ -425,7 +422,7 @@ public:
damage = 0;
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
me->Yell(SUFF_SAY_RECAP, LANG_UNIVERSAL, 0);
DoScriptText(SUFF_SAY_RECAP, me);
Talk(SUFF_SAY_RECAP);
me->SetReactState(REACT_PASSIVE);
}
}
@@ -434,7 +431,7 @@ public:
{
if (!me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE))
{
DoScriptText(SUFF_SAY_FREED, me);
Talk(SUFF_SAY_FREED);
DoZoneInCombat();
DoCast(me, AURA_OF_SUFFERING, true); // linked aura need core support
DoCast(me, ESSENCE_OF_SUFFERING_PASSIVE, true);
@@ -445,7 +442,7 @@ public:
void KilledUnit(Unit* /*victim*/)
{
DoScriptText(RAND(SUFF_SAY_SLAY1, SUFF_SAY_SLAY2, SUFF_SAY_SLAY3), me);
Talk(SUFF_SAY_SLAY);
}
void CastFixate()
@@ -483,7 +480,7 @@ public:
FixateTimer = 5000;
if (!(rand()%16))
{
DoScriptText(SUFF_SAY_AGGRO, me);
Talk(SUFF_SAY_AGGRO);
}
} else FixateTimer -= diff;
}
@@ -496,7 +493,7 @@ public:
{
DoCast(me, SPELL_ENRAGE);
EnrageTimer = 60000;
DoScriptText(SUFF_EMOTE_ENRAGE, me);
Talk(SUFF_EMOTE_ENRAGE);
} else EnrageTimer -= diff;
if (SoulDrainTimer <= diff)
@@ -545,7 +542,7 @@ public:
{
damage = 0;
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
DoScriptText(SUFF_SAY_RECAP, me);
Talk(SUFF_SAY_RECAP);
me->SetReactState(REACT_PASSIVE);
}
else
@@ -567,14 +564,14 @@ public:
void EnterCombat(Unit* /*who*/)
{
DoScriptText(DESI_SAY_FREED, me);
Talk(DESI_SAY_FREED);
DoZoneInCombat();
DoCast(me, AURA_OF_DESIRE, true);
}
void KilledUnit(Unit* /*victim*/)
{
DoScriptText(RAND(DESI_SAY_SLAY1, DESI_SAY_SLAY2, DESI_SAY_SLAY3), me);
Talk(DESI_SAY_SLAY);
}
void UpdateAI(const uint32 diff)
@@ -604,7 +601,7 @@ public:
DeadenTimer = urand(25000, 35000);
if (!(rand()%2))
{
DoScriptText(DESI_SAY_SPEC, me);
Talk(DESI_SAY_SPEC);
}
} else DeadenTimer -= diff;
@@ -652,7 +649,7 @@ public:
void EnterCombat(Unit* /*who*/)
{
DoScriptText(RAND(ANGER_SAY_FREED, ANGER_SAY_FREED2), me);
Talk(ANGER_SAY_FREED);
DoZoneInCombat();
DoCast(me, AURA_OF_ANGER, true);
@@ -660,12 +657,12 @@ public:
void JustDied(Unit* /*killer*/)
{
DoScriptText(ANGER_SAY_DEATH, me);
Talk(ANGER_SAY_DEATH);
}
void KilledUnit(Unit* /*victim*/)
{
DoScriptText(RAND(ANGER_SAY_SLAY1, ANGER_SAY_SLAY2), me);
Talk(ANGER_SAY_SLAY);
}
void UpdateAI(const uint32 diff)
@@ -684,7 +681,7 @@ public:
{
if (me->getVictim()->GetGUID() != AggroTargetGUID)
{
DoScriptText(ANGER_SAY_BEFORE, me);
Talk(ANGER_SAY_BEFORE);
DoCast(me, SPELL_SELF_SEETHE, true);
AggroTargetGUID = me->getVictim()->GetGUID();
}
@@ -697,7 +694,7 @@ public:
SoulScreamTimer = urand(9000, 11000);
if (!(rand()%3))
{
DoScriptText(ANGER_SAY_SPEC, me);
Talk(ANGER_SAY_SPEC);
}
} else SoulScreamTimer -= diff;
@@ -705,7 +702,7 @@ public:
{
DoCast(me, SPELL_SPITE_TARGET);
SpiteTimer = 30000;
DoScriptText(ANGER_SAY_SPEC, me);
Talk(ANGER_SAY_SPEC);
} else SpiteTimer -= diff;
DoMeleeAttackIfReady();
@@ -29,12 +29,15 @@ EndScriptData */
#include "black_temple.h"
#include "Player.h"
#define SAY_DEATH -1564013
#define SAY_LOW_HEALTH -1564014
// Ending cinematic text
#define SAY_FREE -1564015
#define SAY_BROKEN_FREE_01 -1564016
#define SAY_BROKEN_FREE_02 -1564017
enum ShadeOfAkama
{
SAY_DEATH = 0,
SAY_LOW_HEALTH = 1,
// Ending cinematic text
SAY_FREE = 2,
SAY_BROKEN_FREE_01 = 0,
SAY_BROKEN_FREE_02 = 1
};
#define GOSSIP_ITEM "We are ready to fight alongside you, Akama"
@@ -704,7 +707,7 @@ public:
void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DEATH, me);
Talk(SAY_DEATH);
EventBegun = false;
ShadeHasDied = false;
StartCombat = false;
@@ -729,7 +732,7 @@ public:
if (HealthBelowPct(15) && !HasYelledOnce)
{
DoScriptText(SAY_LOW_HEALTH, me);
Talk(SAY_LOW_HEALTH);
HasYelledOnce = true;
}
@@ -825,7 +828,7 @@ public:
SummonBrokenTimer = 1;
break;
case 1:
DoScriptText(SAY_FREE, me);
Talk(SAY_FREE);
++EndingTalkCount;
SoulRetrieveTimer = 25000;
break;
@@ -838,7 +841,7 @@ public:
{
if (!Yelled)
{
DoScriptText(SAY_BROKEN_FREE_01, unit);
unit->AI()->Talk(SAY_BROKEN_FREE_01);
Yelled = true;
}
unit->HandleEmoteCommand(EMOTE_ONESHOT_KNEEL);
@@ -863,7 +866,7 @@ public:
{
for (std::list<uint64>::const_iterator itr = BrokenList.begin(); itr != BrokenList.end(); ++itr)
if (Creature* unit = Unit::GetCreature((*me), *itr))
unit->MonsterYell(SAY_BROKEN_FREE_02, LANG_UNIVERSAL, 0);
unit->AI()->Talk(SAY_BROKEN_FREE_02);
}
SoulRetrieveTimer = 0;
break;
@@ -28,32 +28,35 @@ EndScriptData */
#include "PassiveAI.h"
#include "black_temple.h"
#define EMOTE_NEW_TARGET -1564010
#define EMOTE_PUNCH_GROUND -1564011 //DoScriptText(EMOTE_PUNCH_GROUND, me);
#define EMOTE_GROUND_CRACK -1564012
enum Supremus
{
EMOTE_NEW_TARGET = 0,
EMOTE_PUNCH_GROUND = 1, //Talk(EMOTE_PUNCH_GROUND);
EMOTE_GROUND_CRACK = 2,
//Spells
#define SPELL_MOLTEN_PUNCH 40126
#define SPELL_HATEFUL_STRIKE 41926
#define SPELL_MOLTEN_FLAME 40980
#define SPELL_VOLCANIC_ERUPTION 40117
#define SPELL_VOLCANIC_SUMMON 40276
#define SPELL_BERSERK 45078
//Spells
SPELL_MOLTEN_PUNCH = 40126,
SPELL_HATEFUL_STRIKE = 41926,
SPELL_MOLTEN_FLAME = 40980,
SPELL_VOLCANIC_ERUPTION = 40117,
SPELL_VOLCANIC_SUMMON = 40276,
SPELL_BERSERK = 45078,
#define CREATURE_VOLCANO 23085
#define CREATURE_STALKER 23095
CREATURE_VOLCANO = 23085,
CREATURE_STALKER = 23095,
#define PHASE_STRIKE 1
#define PHASE_CHASE 2
PHASE_STRIKE = 1,
PHASE_CHASE = 2,
#define EVENT_BERSERK 1
#define EVENT_SWITCH_PHASE 2
#define EVENT_FLAME 3
#define EVENT_VOLCANO 4
#define EVENT_SWITCH_TARGET 5
#define EVENT_HATEFUL_STRIKE 6
EVENT_BERSERK = 1,
EVENT_SWITCH_PHASE = 2,
EVENT_FLAME = 3,
EVENT_VOLCANO = 4,
EVENT_SWITCH_TARGET = 5,
EVENT_HATEFUL_STRIKE = 6,
#define GCD_CAST 1
GCD_CAST = 1
};
class molten_flame : public CreatureScript
{
@@ -230,7 +233,7 @@ public:
{
DoResetThreat();
me->AddThreat(target, 5000000.0f);
DoScriptText(EMOTE_NEW_TARGET, me);
Talk(EMOTE_NEW_TARGET);
}
events.ScheduleEvent(EVENT_SWITCH_TARGET, 10000, 0, PHASE_CHASE);
break;
@@ -242,7 +245,7 @@ public:
{
//DoCast(target, SPELL_VOLCANIC_SUMMON);//movement bugged
me->SummonCreature(CREATURE_VOLCANO, target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN, 30000);
DoScriptText(EMOTE_GROUND_CRACK, me);
Talk(EMOTE_GROUND_CRACK);
events.DelayEvents(1500, GCD_CAST);
}
events.ScheduleEvent(EVENT_VOLCANO, 10000, GCD_CAST, PHASE_CHASE);
@@ -27,30 +27,29 @@ EndScriptData */
#include "ScriptedCreature.h"
#include "black_temple.h"
//Speech'n'sound
#define SAY_INTRO -1564037
#define SAY_AGGRO -1564038
#define SAY_SLAY1 -1564039
#define SAY_SLAY2 -1564040
#define SAY_SPELL1 -1564041
#define SAY_SPELL2 -1564042
#define SAY_SPECIAL1 -1564043
#define SAY_SPECIAL2 -1564044
#define SAY_ENRAGE -1564045
#define SAY_DEATH -1564046
enum DoomBlossom
{
//Speech'n'sound
SAY_INTRO = 0,
SAY_AGGRO = 1,
SAY_SLAY = 2,
SAY_SPELL = 3,
SAY_SPECIAL = 4,
SAY_ENRAGE = 5,
SAY_DEATH = 6,
//Spells
#define SPELL_INCINERATE 40239
#define SPELL_CRUSHING_SHADOWS 40243
#define SPELL_SHADOWBOLT 40185
#define SPELL_PASSIVE_SHADOWFORM 40326
#define SPELL_SHADOW_OF_DEATH 40251
#define SPELL_BERSERK 45078
//Spells
SPELL_INCINERATE = 40239,
SPELL_CRUSHING_SHADOWS = 40243,
SPELL_SHADOWBOLT = 40185,
SPELL_PASSIVE_SHADOWFORM = 40326,
SPELL_SHADOW_OF_DEATH = 40251,
SPELL_BERSERK = 45078,
SPELL_ATROPHY = 40327, // Shadowy Constructs use this when they get within melee range of a player
#define SPELL_ATROPHY 40327 // Shadowy Constructs use this when they get within melee range of a player
#define CREATURE_DOOM_BLOSSOM 23123
#define CREATURE_SHADOWY_CONSTRUCT 23111
CREATURE_DOOM_BLOSSOM = 23123,
CREATURE_SHADOWY_CONSTRUCT = 23111
};
class mob_doom_blossom : public CreatureScript
{
@@ -278,7 +277,7 @@ public:
me->GetMotionMaster()->Clear(false);
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
DoScriptText(SAY_INTRO, me);
Talk(SAY_INTRO);
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_TALK);
AggroTargetGUID = who->GetGUID();
Intro = true;
@@ -290,7 +289,7 @@ public:
void KilledUnit(Unit* /*victim*/)
{
DoScriptText(RAND(SAY_SLAY1, SAY_SLAY2), me);
Talk(SAY_SLAY);
}
void JustDied(Unit* /*killer*/)
@@ -298,7 +297,7 @@ public:
if (instance)
instance->SetData(DATA_TERONGOREFIENDEVENT, DONE);
DoScriptText(SAY_DEATH, me);
Talk(SAY_DEATH);
}
float CalculateRandomLocation(float Loc, uint32 radius)
@@ -387,7 +386,7 @@ public:
{
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
DoScriptText(SAY_AGGRO, me);
Talk(SAY_AGGRO);
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_NONE);
Done = true;
if (AggroTargetGUID)
@@ -461,7 +460,7 @@ public:
if (target)
{
DoScriptText(RAND(SAY_SPECIAL1, SAY_SPECIAL2), me);
Talk(SAY_SPECIAL);
DoCast(target, SPELL_INCINERATE);
IncinerateTimer = urand(20, 51) * 1000;
}
@@ -494,7 +493,7 @@ public:
if (RandomYellTimer <= diff)
{
DoScriptText(RAND(SAY_SPELL1, SAY_SPELL2), me);
Talk(SAY_SPELL);
RandomYellTimer = urand(50, 101) * 1000;
} else RandomYellTimer -= diff;
@@ -503,7 +502,7 @@ public:
if (EnrageTimer <= diff)
{
DoCast(me, SPELL_BERSERK);
DoScriptText(SAY_ENRAGE, me);
Talk(SAY_ENRAGE);
} else EnrageTimer -= diff;
}
@@ -31,16 +31,12 @@ EndScriptData */
enum eEnums
{
SAY_AGGRO = -1564000,
SAY_NEEDLE1 = -1564001,
SAY_NEEDLE2 = -1564002,
SAY_SLAY1 = -1564003,
SAY_SLAY2 = -1564004,
SAY_SPECIAL1 = -1564005,
SAY_SPECIAL2 = -1564006,
SAY_ENRAGE1 = -1564007, //is this text actually in use?
SAY_ENRAGE2 = -1564008,
SAY_DEATH = -1564009,
SAY_AGGRO = 0,
SAY_NEEDLE = 1,
SAY_SLAY = 2,
SAY_SPECIAL = 3,
SAY_ENRAGE = 4,
SAY_DEATH = 5,
//Spells
SPELL_NEEDLE_SPINE = 39992,
@@ -97,7 +93,7 @@ public:
void KilledUnit(Unit* /*victim*/)
{
DoScriptText(urand(0, 1) ? SAY_SLAY1 : SAY_SLAY2, me);
Talk(SAY_SLAY);
events.DelayEvents(5000, GCD_YELL);
}
@@ -106,7 +102,7 @@ public:
if (instance)
instance->SetData(DATA_HIGHWARLORDNAJENTUSEVENT, DONE);
DoScriptText(SAY_DEATH, me);
Talk(SAY_DEATH);
}
void SpellHit(Unit* /*caster*/, const SpellInfo* spell)
@@ -124,7 +120,7 @@ public:
if (instance)
instance->SetData(DATA_HIGHWARLORDNAJENTUSEVENT, IN_PROGRESS);
DoScriptText(SAY_AGGRO, me);
Talk(SAY_AGGRO);
DoZoneInCombat();
events.ScheduleEvent(EVENT_BERSERK, 480000, GCD_CAST);
events.ScheduleEvent(EVENT_YELL, 45000 + (rand()%76)*1000, GCD_YELL);
@@ -166,7 +162,7 @@ public:
ResetTimer(45000);
break;
case EVENT_BERSERK:
DoScriptText(SAY_ENRAGE2, me);
Talk(SAY_ENRAGE);
DoCast(me, SPELL_BERSERK, true);
events.DelayEvents(15000, GCD_YELL);
break;
@@ -180,7 +176,7 @@ public:
SpineTargetGUID = target->GetGUID();
//must let target summon, otherwise you cannot click the spine
target->SummonGameObject(GOBJECT_SPINE, target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(), me->GetOrientation(), 0, 0, 0, 0, 30);
DoScriptText(urand(0, 1) ? SAY_NEEDLE1 : SAY_NEEDLE2, me);
Talk(SAY_NEEDLE);
events.DelayEvents(1500, GCD_CAST);
events.DelayEvents(15000, GCD_YELL);
}
@@ -199,7 +195,7 @@ public:
return;
}
case EVENT_YELL:
DoScriptText(RAND(SAY_SPECIAL1, SAY_SPECIAL2), me);
Talk(SAY_SPECIAL);
events.ScheduleEvent(EVENT_YELL, urand(25000, 100000), GCD_YELL);
events.DelayEvents(15000, GCD_YELL);
break;
@@ -29,35 +29,69 @@ EndScriptData */
#include "SpellAuraEffects.h"
#include "black_temple.h"
//Speech'n'Sounds
#define SAY_GATH_SLAY -1564085
#define SAY_GATH_SLAY_COMNT -1564089
#define SAY_GATH_DEATH -1564093
#define SAY_GATH_SPECIAL1 -1564077
#define SAY_GATH_SPECIAL2 -1564081
enum IllidariCouncil
{
//Speech'n'Sounds
SAY_GATH_SPECIAL1 = 2,
SAY_GATH_SPECIAL2 = 3,
SAY_GATH_SLAY = 4,
SAY_GATH_COMNT = 5,
SAY_GATH_DEATH = 6,
SAY_MALA_SPECIAL1 = 2,
SAY_MALA_SPECIAL2 = 3,
SAY_MALA_SLAY = 4,
SAY_MALA_COMNT = 5,
SAY_MALA_DEATH = 6,
#define SAY_VERA_SLAY -1564086
#define SAY_VERA_COMNT -1564089 //signed for 22949
#define SAY_VERA_DEATH -1564094
#define SAY_VERA_SPECIAL1 -1564078
#define SAY_VERA_SPECIAL2 -1564082
SAY_ZERE_SPECIAL1 = 2,
SAY_ZERE_SPECIAL2 = 3,
SAY_ZERE_SLAY = 4,
SAY_ZERE_COMNT = 5,
SAY_ZERE_DEATH = 6,
#define SAY_MALA_SLAY -1564087
#define SAY_MALA_COMNT -1564090
#define SAY_MALA_DEATH -1564095
#define SAY_MALA_SPECIAL1 -1564079
#define SAY_MALA_SPECIAL2 -1564083
SAY_VERA_SPECIAL1 = 2,
SAY_VERA_SPECIAL2 = 3,
SAY_VERA_SLAY = 4,
SAY_VERA_COMNT = 5,
SAY_VERA_DEATH = 6,
#define SAY_ZERE_SLAY -1564088
#define SAY_ZERE_COMNT -1564091
#define SAY_ZERE_DEATH -1564096
#define SAY_ZERE_SPECIAL1 -1564080
#define SAY_ZERE_SPECIAL2 -1564084
AKAMAID = 23089,
// High Nethermancer Zerevor's spells
SPELL_FLAMESTRIKE = 41481,
SPELL_BLIZZARD = 41482,
SPELL_ARCANE_BOLT = 41483,
SPELL_ARCANE_EXPLOSION = 41524,
SPELL_DAMPEN_MAGIC = 41478,
// Lady Malande's spells
SPELL_EMPOWERED_SMITE = 41471,
SPELL_CIRCLE_OF_HEALING = 41455,
SPELL_REFLECTIVE_SHIELD = 41475,
SPELL_REFLECTIVE_SHIELD_T = 33619,
SPELL_DIVINE_WRATH = 41472,
SPELL_HEAL_VISUAL = 24171,
// Gathios the Shatterer's spells
SPELL_BLESS_PROTECTION = 41450,
SPELL_BLESS_SPELLWARD = 41451,
SPELL_CONSECRATION = 41541,
SPELL_HAMMER_OF_JUSTICE = 41468,
SPELL_SEAL_OF_COMMAND = 41469,
SPELL_SEAL_OF_BLOOD = 41459,
SPELL_CHROMATIC_AURA = 41453,
SPELL_DEVOTION_AURA = 41452,
// Veras Darkshadow's spells
SPELL_DEADLY_POISON = 41485,
SPELL_ENVENOM = 41487,
SPELL_VANISH = 41479,
SPELL_BERSERK = 45078
};
#define ERROR_INST_DATA "SD2 ERROR: Instance Data for Black Temple not set properly; Illidari Council event will not function properly."
#define AKAMAID 23089
struct CouncilYells
{
int32 entry;
@@ -66,53 +100,21 @@ struct CouncilYells
static CouncilYells CouncilAggro[]=
{
{-1564069, 5000}, // Gathios
{-1564070, 5500}, // Veras
{-1564071, 5000}, // Malande
{-1564072, 0}, // Zerevor
{0, 5000}, // Gathios
{0, 5500}, // Veras
{0, 5000}, // Malande
{0, 0}, // Zerevor
};
// Need to get proper timers for this later
static CouncilYells CouncilEnrage[]=
{
{-1564073, 2000}, // Gathios
{-1564074, 6000}, // Veras
{-1564075, 5000}, // Malande
{-1564076, 0}, // Zerevor
{1, 2000}, // Gathios
{1, 6000}, // Veras
{1, 5000}, // Malande
{1, 0}, // Zerevor
};
// High Nethermancer Zerevor's spells
#define SPELL_FLAMESTRIKE 41481
#define SPELL_BLIZZARD 41482
#define SPELL_ARCANE_BOLT 41483
#define SPELL_ARCANE_EXPLOSION 41524
#define SPELL_DAMPEN_MAGIC 41478
// Lady Malande's spells
#define SPELL_EMPOWERED_SMITE 41471
#define SPELL_CIRCLE_OF_HEALING 41455
#define SPELL_REFLECTIVE_SHIELD 41475
#define SPELL_REFLECTIVE_SHIELD_T 33619
#define SPELL_DIVINE_WRATH 41472
#define SPELL_HEAL_VISUAL 24171
// Gathios the Shatterer's spells
#define SPELL_BLESS_PROTECTION 41450
#define SPELL_BLESS_SPELLWARD 41451
#define SPELL_CONSECRATION 41541
#define SPELL_HAMMER_OF_JUSTICE 41468
#define SPELL_SEAL_OF_COMMAND 41469
#define SPELL_SEAL_OF_BLOOD 41459
#define SPELL_CHROMATIC_AURA 41453
#define SPELL_DEVOTION_AURA 41452
// Veras Darkshadow's spells
#define SPELL_DEADLY_POISON 41485
#define SPELL_ENVENOM 41487
#define SPELL_VANISH 41479
#define SPELL_BERSERK 45078
class mob_blood_elf_council_voice_trigger : public CreatureScript
{
public:
@@ -179,9 +181,9 @@ public:
{
if (AggroYellTimer <= diff)
{
if (Unit* pMember = Unit::GetUnit(*me, Council[YellCounter]))
if (Creature* pMember = Creature::GetCreature(*me, Council[YellCounter]))
{
DoScriptText(CouncilAggro[YellCounter].entry, pMember);
pMember->AI()->Talk(CouncilAggro[YellCounter].entry);
AggroYellTimer = CouncilAggro[YellCounter].timer;
}
++YellCounter;
@@ -194,10 +196,10 @@ public:
{
if (EnrageTimer <= diff)
{
if (Unit* pMember = Unit::GetUnit(*me, Council[YellCounter]))
if (Creature* pMember = Creature::GetCreature(*me, Council[YellCounter]))
{
pMember->CastSpell(pMember, SPELL_BERSERK, true);
DoScriptText(CouncilEnrage[YellCounter].entry, pMember);
pMember->AI()->Talk(CouncilEnrage[YellCounter].entry);
EnrageTimer = CouncilEnrage[YellCounter].timer;
}
++YellCounter;
@@ -497,12 +499,12 @@ public:
void KilledUnit(Unit* /*victim*/)
{
DoScriptText(SAY_GATH_SLAY, me);
Talk(SAY_GATH_SLAY);
}
void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_GATH_DEATH, me);
Talk(SAY_GATH_DEATH);
}
Unit* SelectCouncilMember()
@@ -631,12 +633,12 @@ public:
void KilledUnit(Unit* /*victim*/)
{
DoScriptText(SAY_ZERE_SLAY, me);
Talk(SAY_ZERE_SLAY);
}
void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_ZERE_DEATH, me);
Talk(SAY_ZERE_DEATH);
}
void UpdateAI(const uint32 diff)
@@ -731,12 +733,12 @@ public:
void KilledUnit(Unit* /*victim*/)
{
DoScriptText(SAY_MALA_SLAY, me);
Talk(SAY_MALA_SLAY);
}
void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_MALA_DEATH, me);
Talk(SAY_MALA_DEATH);
}
void UpdateAI(const uint32 diff)
@@ -817,12 +819,12 @@ public:
void KilledUnit(Unit* /*victim*/)
{
DoScriptText(SAY_VERA_SLAY, me);
Talk(SAY_VERA_SLAY);
}
void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_VERA_DEATH, me);
Talk(SAY_VERA_DEATH);
}
void UpdateAI(const uint32 diff)
@@ -28,64 +28,62 @@ EndScriptData */
#include "serpent_shrine.h"
#include "ScriptedEscortAI.h"
#define SAY_AGGRO -1548021
#define SAY_GAIN_BLESSING -1548022
#define SAY_GAIN_ABILITY1 -1548023
#define SAY_GAIN_ABILITY2 -1548024
#define SAY_GAIN_ABILITY3 -1548025
#define SAY_SLAY1 -1548026
#define SAY_SLAY2 -1548027
#define SAY_SLAY3 -1548028
#define SAY_DEATH -1548029
enum FathomlordKarathress
{
SAY_AGGRO = 0,
SAY_GAIN_BLESSING = 1,
SAY_GAIN_ABILITY1 = 2,
SAY_GAIN_ABILITY2 = 3,
SAY_GAIN_ABILITY3 = 4,
SAY_SLAY = 5,
SAY_DEATH = 6,
//Karathress spells
#define SPELL_CATACLYSMIC_BOLT 38441
#define SPELL_POWER_OF_SHARKKIS 38455
#define SPELL_POWER_OF_TIDALVESS 38452
#define SPELL_POWER_OF_CARIBDIS 38451
#define SPELL_ENRAGE 24318
#define SPELL_SEAR_NOVA 38445
#define SPELL_BLESSING_OF_THE_TIDES 38449
//Karathress spells
SPELL_CATACLYSMIC_BOLT = 38441,
SPELL_POWER_OF_SHARKKIS = 38455,
SPELL_POWER_OF_TIDALVESS = 38452,
SPELL_POWER_OF_CARIBDIS = 38451,
SPELL_ENRAGE = 24318,
SPELL_SEAR_NOVA = 38445,
SPELL_BLESSING_OF_THE_TIDES = 38449,
//Sharkkis spells
#define SPELL_LEECHING_THROW 29436
#define SPELL_THE_BEAST_WITHIN 38373
#define SPELL_MULTISHOT 38366
#define SPELL_SUMMON_FATHOM_LURKER 38433
#define SPELL_SUMMON_FATHOM_SPOREBAT 38431
#define SPELL_PET_ENRAGE 19574
//Sharkkis spells
SPELL_LEECHING_THROW = 29436,
SPELL_THE_BEAST_WITHIN = 38373,
SPELL_MULTISHOT = 38366,
SPELL_SUMMON_FATHOM_LURKER = 38433,
SPELL_SUMMON_FATHOM_SPOREBAT = 38431,
SPELL_PET_ENRAGE = 19574,
//Tidalvess spells
#define SPELL_FROST_SHOCK 38234
#define SPELL_SPITFIRE_TOTEM 38236
#define SPELL_POISON_CLEANSING_TOTEM 38306
// Spell obsolete
// #define SPELL_POISON_CLEANSING_EFFECT 8167
#define SPELL_EARTHBIND_TOTEM 38304
#define SPELL_EARTHBIND_TOTEM_EFFECT 6474
#define SPELL_WINDFURY_WEAPON 38184
//Tidalvess spells
SPELL_FROST_SHOCK = 38234,
SPELL_SPITFIRE_TOTEM = 38236,
SPELL_POISON_CLEANSING_TOTEM = 38306,
// Spell obsolete
SPELL_EARTHBIND_TOTEM = 38304,
SPELL_EARTHBIND_TOTEM_EFFECT = 6474,
SPELL_WINDFURY_WEAPON = 38184,
//Caribdis Spells
#define SPELL_WATER_BOLT_VOLLEY 38335
#define SPELL_TIDAL_SURGE 38358
#define SPELL_TIDAL_SURGE_FREEZE 38357
#define SPELL_HEAL 38330
#define SPELL_SUMMON_CYCLONE 38337
#define SPELL_CYCLONE_CYCLONE 29538
//Caribdis Spells
SPELL_WATER_BOLT_VOLLEY = 38335,
SPELL_TIDAL_SURGE = 38358,
SPELL_TIDAL_SURGE_FREEZE = 38357,
SPELL_HEAL = 38330,
SPELL_SUMMON_CYCLONE = 38337,
SPELL_CYCLONE_CYCLONE = 29538,
//Yells and Quotes
#define SAY_GAIN_BLESSING_OF_TIDES "Your overconfidence will be your undoing! Guards, lend me your strength!"
#define SOUND_GAIN_BLESSING_OF_TIDES 11278
#define SAY_MISC "Alana be'lendor!" //don't know what use this
#define SOUND_MISC 11283
//Yells and Quotes
SOUND_GAIN_BLESSING_OF_TIDES = 11278,
SOUND_MISC = 11283,
//Summoned Unit GUIDs
#define CREATURE_CYCLONE 22104
#define CREATURE_FATHOM_SPOREBAT 22120
#define CREATURE_FATHOM_LURKER 22119
#define CREATURE_SPITFIRE_TOTEM 22091
#define CREATURE_EARTHBIND_TOTEM 22486
#define CREATURE_POISON_CLEANSING_TOTEM 22487
//Summoned Unit GUIDs
CREATURE_CYCLONE = 22104,
CREATURE_FATHOM_SPOREBAT = 22120,
CREATURE_FATHOM_LURKER = 22119,
CREATURE_SPITFIRE_TOTEM = 22091,
CREATURE_EARTHBIND_TOTEM = 22486,
CREATURE_POISON_CLEANSING_TOTEM = 22487,
};
//entry and position for Seer Olum
#define SEER_OLUM 22820
@@ -94,6 +92,9 @@ EndScriptData */
#define OLUM_Z -7.54773f
#define OLUM_O 0.401581f
#define SAY_GAIN_BLESSING_OF_TIDES "Your overconfidence will be your undoing! Guards, lend me your strength!"
#define SAY_MISC "Alana be'lendor!" //don't know what use this
#define MAX_ADVISORS 3
//Fathom-Lord Karathress AI
class boss_fathomlord_karathress : public CreatureScript
@@ -160,19 +161,19 @@ public:
void EventSharkkisDeath()
{
DoScriptText(SAY_GAIN_ABILITY1, me);
Talk(SAY_GAIN_ABILITY1);
DoCast(me, SPELL_POWER_OF_SHARKKIS);
}
void EventTidalvessDeath()
{
DoScriptText(SAY_GAIN_ABILITY2, me);
Talk(SAY_GAIN_ABILITY2);
DoCast(me, SPELL_POWER_OF_TIDALVESS);
}
void EventCaribdisDeath()
{
DoScriptText(SAY_GAIN_ABILITY3, me);
Talk(SAY_GAIN_ABILITY3);
DoCast(me, SPELL_POWER_OF_CARIBDIS);
}
@@ -193,7 +194,7 @@ public:
GetAdvisors();
DoScriptText(SAY_AGGRO, me);
Talk(SAY_AGGRO);
DoZoneInCombat();
instance->SetData64(DATA_KARATHRESSEVENT_STARTER, who->GetGUID());
@@ -202,12 +203,12 @@ public:
void KilledUnit(Unit* /*victim*/)
{
DoScriptText(RAND(SAY_SLAY1, SAY_SLAY2, SAY_SLAY3), me);
Talk(SAY_SLAY);
}
void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DEATH, me);
Talk(SAY_DEATH);
if (instance)
instance->SetData(DATA_FATHOMLORDKARATHRESSEVENT, DONE);
@@ -27,43 +27,45 @@ EndScriptData */
#include "ScriptedCreature.h"
#include "serpent_shrine.h"
#define SAY_AGGRO -1548000
#define SAY_SWITCH_TO_CLEAN -1548001
#define SAY_CLEAN_SLAY1 -1548002
#define SAY_CLEAN_SLAY2 -1548003
#define SAY_CLEAN_DEATH -1548004
#define SAY_SWITCH_TO_CORRUPT -1548005
#define SAY_CORRUPT_SLAY1 -1548006
#define SAY_CORRUPT_SLAY2 -1548007
#define SAY_CORRUPT_DEATH -1548008
enum HydrossTheUnstable
{
SAY_AGGRO = 0,
SAY_SWITCH_TO_CLEAN = 1,
SAY_CLEAN_SLAY = 2,
SAY_CLEAN_DEATH = 3,
SAY_SWITCH_TO_CORRUPT = 4,
SAY_CORRUPT_SLAY = 5,
SAY_CORRUPT_DEATH = 6,
#define SWITCH_RADIUS 18
SWITCH_RADIUS = 18,
#define MODEL_CORRUPT 20609
#define MODEL_CLEAN 20162
MODEL_CORRUPT = 20609,
MODEL_CLEAN = 20162,
#define SPELL_WATER_TOMB 38235
#define SPELL_MARK_OF_HYDROSS1 38215
#define SPELL_MARK_OF_HYDROSS2 38216
#define SPELL_MARK_OF_HYDROSS3 38217
#define SPELL_MARK_OF_HYDROSS4 38218
#define SPELL_MARK_OF_HYDROSS5 38231
#define SPELL_MARK_OF_HYDROSS6 40584
#define SPELL_MARK_OF_CORRUPTION1 38219
#define SPELL_MARK_OF_CORRUPTION2 38220
#define SPELL_MARK_OF_CORRUPTION3 38221
#define SPELL_MARK_OF_CORRUPTION4 38222
#define SPELL_MARK_OF_CORRUPTION5 38230
#define SPELL_MARK_OF_CORRUPTION6 40583
#define SPELL_VILE_SLUDGE 38246
#define SPELL_ENRAGE 27680 //this spell need verification
#define SPELL_SUMMON_WATER_ELEMENT 36459 //not in use yet(in use ever?)
#define SPELL_ELEMENTAL_SPAWNIN 25035
#define SPELL_BLUE_BEAM 40227 //channeled Hydross Beam Helper (not in use yet)
SPELL_WATER_TOMB = 38235,
SPELL_MARK_OF_HYDROSS1 = 38215,
SPELL_MARK_OF_HYDROSS2 = 38216,
SPELL_MARK_OF_HYDROSS3 = 38217,
SPELL_MARK_OF_HYDROSS4 = 38218,
SPELL_MARK_OF_HYDROSS5 = 38231,
SPELL_MARK_OF_HYDROSS6 = 40584,
SPELL_MARK_OF_CORRUPTION1 = 38219,
SPELL_MARK_OF_CORRUPTION2 = 38220,
SPELL_MARK_OF_CORRUPTION3 = 38221,
SPELL_MARK_OF_CORRUPTION4 = 38222,
SPELL_MARK_OF_CORRUPTION5 = 38230,
SPELL_MARK_OF_CORRUPTION6 = 40583,
SPELL_VILE_SLUDGE = 38246,
SPELL_ENRAGE = 27680, //this spell need verification
SPELL_SUMMON_WATER_ELEMENT = 36459, //not in use yet(in use ever?)
SPELL_ELEMENTAL_SPAWNIN = 25035,
SPELL_BLUE_BEAM = 40227, //channeled Hydross Beam Helper (not in use yet)
ENTRY_PURE_SPAWN = 22035,
ENTRY_TAINTED_SPAWN = 22036,
ENTRY_BEAM_DUMMY = 21934
};
#define ENTRY_PURE_SPAWN 22035
#define ENTRY_TAINTED_SPAWN 22036
#define ENTRY_BEAM_DUMMY 21934
#define HYDROSS_X -239.439f
#define HYDROSS_Y -363.481f
@@ -169,7 +171,7 @@ public:
}
void EnterCombat(Unit* /*who*/)
{
DoScriptText(SAY_AGGRO, me);
Talk(SAY_AGGRO);
if (instance)
instance->SetData(DATA_HYDROSSTHEUNSTABLEEVENT, IN_PROGRESS);
@@ -177,10 +179,7 @@ public:
void KilledUnit(Unit* /*victim*/)
{
if (CorruptedForm)
DoScriptText(RAND(SAY_CORRUPT_SLAY1, SAY_CORRUPT_SLAY2), me);
else
DoScriptText(RAND(SAY_CLEAN_SLAY1, SAY_CLEAN_SLAY2), me);
Talk(CorruptedForm ? SAY_CORRUPT_SLAY : SAY_CLEAN_SLAY);
}
void JustSummoned(Creature* summoned)
@@ -206,10 +205,7 @@ public:
void JustDied(Unit* /*killer*/)
{
if (CorruptedForm)
DoScriptText(SAY_CORRUPT_DEATH, me);
else
DoScriptText(SAY_CLEAN_DEATH, me);
Talk(CorruptedForm ? SAY_CORRUPT_DEATH : SAY_CLEAN_DEATH);
if (instance)
instance->SetData(DATA_HYDROSSTHEUNSTABLEEVENT, DONE);
@@ -293,7 +289,7 @@ public:
CorruptedForm = false;
MarkOfHydross_Count = 0;
DoScriptText(SAY_SWITCH_TO_CLEAN, me);
Talk(SAY_SWITCH_TO_CLEAN);
DoResetThreat();
SummonBeams();
@@ -377,7 +373,7 @@ public:
MarkOfCorruption_Count = 0;
CorruptedForm = true;
DoScriptText(SAY_SWITCH_TO_CORRUPT, me);
Talk(SAY_SWITCH_TO_CORRUPT);
DoResetThreat();
DeSummonBeams();
@@ -30,48 +30,47 @@ EndScriptData */
#include "Player.h"
#include "WorldSession.h"
#define SAY_INTRO -1548042
#define SAY_AGGRO1 -1548043
#define SAY_AGGRO2 -1548044
#define SAY_AGGRO3 -1548045
#define SAY_AGGRO4 -1548046
#define SAY_PHASE1 -1548047
#define SAY_PHASE2 -1548048
#define SAY_PHASE3 -1548049
#define SAY_BOWSHOT1 -1548050
#define SAY_BOWSHOT2 -1548051
#define SAY_SLAY1 -1548052
#define SAY_SLAY2 -1548053
#define SAY_SLAY3 -1548054
#define SAY_DEATH -1548055
enum LadyVashj
{
SAY_INTRO = 0,
SAY_AGGRO = 1,
SAY_PHASE1 = 2,
SAY_PHASE2 = 3,
SAY_PHASE3 = 4,
SAY_BOWSHOT = 5,
SAY_SLAY = 6,
SAY_DEATH = 7,
#define SPELL_SURGE 38044
#define SPELL_MULTI_SHOT 38310
#define SPELL_SHOCK_BLAST 38509
#define SPELL_ENTANGLE 38316
#define SPELL_STATIC_CHARGE_TRIGGER 38280
#define SPELL_FORKED_LIGHTNING 40088
#define SPELL_SHOOT 40873
#define SPELL_POISON_BOLT 40095
#define SPELL_TOXIC_SPORES 38575
#define SPELL_MAGIC_BARRIER 38112
SPELL_SURGE = 38044,
SPELL_MULTI_SHOT = 38310,
SPELL_SHOCK_BLAST = 38509,
SPELL_ENTANGLE = 38316,
SPELL_STATIC_CHARGE_TRIGGER = 38280,
SPELL_FORKED_LIGHTNING = 40088,
SPELL_SHOOT = 40873,
SPELL_POISON_BOLT = 40095,
SPELL_TOXIC_SPORES = 38575,
SPELL_MAGIC_BARRIER = 38112,
#define MIDDLE_X 30.134f
#define MIDDLE_Y -923.65f
#define MIDDLE_Z 42.9f
SHIED_GENERATOR_CHANNEL = 19870,
ENCHANTED_ELEMENTAL = 21958,
TAINTED_ELEMENTAL = 22009,
COILFANG_STRIDER = 22056,
COILFANG_ELITE = 22055,
TOXIC_SPOREBAT = 22140,
TOXIC_SPORES_TRIGGER = 22207
};
#define SPOREBAT_X 30.977156f
#define MIDDLE_X 30.134f
#define MIDDLE_Y -923.65f
#define MIDDLE_Z 42.9f
#define SPOREBAT_X 30.977156f
#define SPOREBAT_Y -925.297761f
#define SPOREBAT_Z 77.176567f
#define SPOREBAT_O 5.223932f
#define SHIED_GENERATOR_CHANNEL 19870
#define ENCHANTED_ELEMENTAL 21958
#define TAINTED_ELEMENTAL 22009
#define COILFANG_STRIDER 22056
#define COILFANG_ELITE 22055
#define TOXIC_SPOREBAT 22140
#define TOXIC_SPORES_TRIGGER 22207
#define TEXT_NOT_INITIALIZED "Instance script not initialized"
#define TEXT_ALREADY_DEACTIVATED "Already deactivated"
@@ -226,12 +225,12 @@ public:
}
void KilledUnit(Unit* /*victim*/)
{
DoScriptText(RAND(SAY_SLAY1, SAY_SLAY2, SAY_SLAY3), me);
Talk(SAY_SLAY);
}
void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DEATH, me);
Talk(SAY_DEATH);
if (instance)
instance->SetData(DATA_LADYVASHJEVENT, DONE);
@@ -239,7 +238,7 @@ public:
void StartEvent()
{
DoScriptText(RAND(SAY_AGGRO1, SAY_AGGRO2, SAY_AGGRO3, SAY_AGGRO4), me);
Talk(SAY_AGGRO);
Phase = 1;
@@ -269,7 +268,7 @@ public:
if (!Intro)
{
Intro = true;
DoScriptText(SAY_INTRO, me);
Talk(SAY_INTRO);
}
if (!CanAttack)
return;
@@ -307,7 +306,7 @@ public:
}
if (rand()%3)
{
DoScriptText(RAND(SAY_BOWSHOT1, SAY_BOWSHOT2), me);
Talk(SAY_BOWSHOT);
}
}
@@ -397,7 +396,7 @@ public:
if (Creature* creature = me->SummonCreature(SHIED_GENERATOR_CHANNEL, ShieldGeneratorChannelPos[i][0], ShieldGeneratorChannelPos[i][1], ShieldGeneratorChannelPos[i][2], ShieldGeneratorChannelPos[i][3], TEMPSUMMON_CORPSE_DESPAWN, 0))
ShieldGeneratorChannel[i] = creature->GetGUID();
DoScriptText(SAY_PHASE2, me);
Talk(SAY_PHASE2);
}
}
// Phase 3
@@ -527,7 +526,7 @@ public:
me->RemoveAurasDueToSpell(SPELL_MAGIC_BARRIER);
DoScriptText(SAY_PHASE3, me);
Talk(SAY_PHASE3);
Phase = 3;
@@ -28,47 +28,46 @@ EndScriptData */
#include "serpent_shrine.h"
#include "Player.h"
// --- Spells used by Leotheras The Blind
#define SPELL_WHIRLWIND 37640
#define SPELL_CHAOS_BLAST 37674
#define SPELL_BERSERK 26662
#define SPELL_INSIDIOUS_WHISPER 37676
#define SPELL_DUAL_WIELD 42459
enum LeotherasTheBlind
{
// Spells used by Leotheras The Blind
SPELL_WHIRLWIND = 37640,
SPELL_CHAOS_BLAST = 37674,
SPELL_BERSERK = 26662,
SPELL_INSIDIOUS_WHISPER = 37676,
SPELL_DUAL_WIELD = 42459,
// --- Spells used in banish phase ---
#define BANISH_BEAM 38909
#define AURA_BANISH 37833
// Spells used in banish phase
BANISH_BEAM = 38909,
AURA_BANISH = 37833,
// --- Spells used by Greyheart Spellbinders
#define SPELL_EARTHSHOCK 39076
#define SPELL_MINDBLAST 37531
// Spells used by Greyheart Spellbinders
SPELL_EARTHSHOCK = 39076,
SPELL_MINDBLAST = 37531,
// --- Spells used by Inner Demons and Creature ID
#define INNER_DEMON_ID 21857
#define AURA_DEMONIC_ALIGNMENT 37713
#define SPELL_SHADOWBOLT 39309
#define SPELL_SOUL_LINK 38007
#define SPELL_CONSUMING_MADNESS 37749 //not supported by core yet
// Spells used by Inner Demons and Creature ID
INNER_DEMON_ID = 21857,
AURA_DEMONIC_ALIGNMENT = 37713,
SPELL_SHADOWBOLT = 39309,
SPELL_SOUL_LINK = 38007,
SPELL_CONSUMING_MADNESS = 37749,
//Misc.
#define MODEL_DEMON 20125
#define MODEL_NIGHTELF 20514
#define DEMON_FORM 21875
#define MOB_SPELLBINDER 21806
#define INNER_DEMON_VICTIM 1
//Misc.
MODEL_DEMON = 20125,
MODEL_NIGHTELF = 20514,
DEMON_FORM = 21875,
MOB_SPELLBINDER = 21806,
INNER_DEMON_VICTIM = 1,
#define SAY_AGGRO -1548009
#define SAY_SWITCH_TO_DEMON -1548010
#define SAY_INNER_DEMONS -1548011
#define SAY_DEMON_SLAY1 -1548012
#define SAY_DEMON_SLAY2 -1548013
#define SAY_DEMON_SLAY3 -1548014
#define SAY_NIGHTELF_SLAY1 -1548015
#define SAY_NIGHTELF_SLAY2 -1548016
#define SAY_NIGHTELF_SLAY3 -1548017
#define SAY_FINAL_FORM -1548018
#define SAY_FREE -1548019
#define SAY_DEATH -1548020
SAY_AGGRO = 0,
SAY_SWITCH_TO_DEMON = 1,
SAY_INNER_DEMONS = 2,
SAY_DEMON_SLAY = 3,
SAY_NIGHTELF_SLAY = 4,
SAY_FINAL_FORM = 5,
SAY_FREE = 6,
SAY_DEATH = 7
};
class mob_inner_demon : public CreatureScript
{
@@ -289,7 +288,7 @@ public:
void StartEvent()
{
DoScriptText(SAY_AGGRO, me);
Talk(SAY_AGGRO);
if (instance)
instance->SetData(DATA_LEOTHERASTHEBLINDEVENT, IN_PROGRESS);
}
@@ -388,20 +387,13 @@ public:
{
if (victim->GetTypeId() != TYPEID_PLAYER)
return;
if (DemonForm)
{
DoScriptText(RAND(SAY_DEMON_SLAY1, SAY_DEMON_SLAY2, SAY_DEMON_SLAY3), me);
}
else
{
DoScriptText(RAND(SAY_NIGHTELF_SLAY1, SAY_NIGHTELF_SLAY2, SAY_NIGHTELF_SLAY3), me);
}
Talk(DemonForm ? SAY_DEMON_SLAY : SAY_NIGHTELF_SLAY);
}
void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DEATH, me);
Talk(SAY_DEATH);
//despawn copy
if (Demon)
@@ -493,7 +485,7 @@ public:
//switch to demon form
me->RemoveAurasDueToSpell(SPELL_WHIRLWIND, 0);
me->SetDisplayId(MODEL_DEMON);
DoScriptText(SAY_SWITCH_TO_DEMON, me);
Talk(SAY_SWITCH_TO_DEMON);
me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID , 0);
me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID+1, 0);
DemonForm = true;
@@ -556,7 +548,7 @@ public:
}
}
}
DoScriptText(SAY_INNER_DEMONS, me);
Talk(SAY_INNER_DEMONS);
InnerDemons_Timer = 999999;
} else InnerDemons_Timer -= diff;
@@ -595,7 +587,7 @@ public:
IsFinalForm = true;
DemonForm = false;
DoScriptText(SAY_FINAL_FORM, me);
Talk(SAY_FINAL_FORM);
me->SetDisplayId(MODEL_NIGHTELF);
me->LoadEquipment(me->GetEquipmentId());
}
@@ -629,7 +621,7 @@ public:
void StartEvent()
{
DoScriptText(SAY_FREE, me);
Talk(SAY_FREE);
}
void KilledUnit(Unit* victim)
@@ -637,7 +629,7 @@ public:
if (victim->GetTypeId() != TYPEID_PLAYER)
return;
DoScriptText(RAND(SAY_DEMON_SLAY1, SAY_DEMON_SLAY2, SAY_DEMON_SLAY3), me);
Talk(SAY_DEMON_SLAY);
}
void JustDied(Unit* /*killer*/)
@@ -30,37 +30,33 @@ EndScriptData */
enum eEnums
{
// Yell
SAY_AGGRO = -1548030,
SAY_SUMMON1 = -1548031,
SAY_SUMMON2 = -1548032,
SAY_SUMMON_BUBL1 = -1548033,
SAY_SUMMON_BUBL2 = -1548034,
SAY_SLAY1 = -1548035,
SAY_SLAY2 = -1548036,
SAY_SLAY3 = -1548037,
SAY_DEATH = -1548038,
SAY_AGGRO = 0,
SAY_SUMMON = 1,
SAY_SUMMON_BUBL = 2,
SAY_SLAY = 3,
SAY_DEATH = 4,
// Emotes
EMOTE_WATERY_GRAVE = -1548039,
EMOTE_EARTHQUAKE = -1548040,
EMOTE_WATERY_GLOBULES = -1548041,
EMOTE_WATERY_GRAVE = 5,
EMOTE_EARTHQUAKE = 6,
EMOTE_WATERY_GLOBULES = 7,
// Spells
SPELL_TIDAL_WAVE = 37730,
SPELL_WATERY_GRAVE = 38049,
SPELL_EARTHQUAKE = 37764,
SPELL_WATERY_GRAVE_EXPLOSION = 37852,
SPELL_TIDAL_WAVE = 37730,
SPELL_WATERY_GRAVE = 38049,
SPELL_EARTHQUAKE = 37764,
SPELL_WATERY_GRAVE_EXPLOSION = 37852,
SPELL_WATERY_GRAVE_1 = 38023,
SPELL_WATERY_GRAVE_2 = 38024,
SPELL_WATERY_GRAVE_3 = 38025,
SPELL_WATERY_GRAVE_4 = 37850,
SPELL_WATERY_GRAVE_1 = 38023,
SPELL_WATERY_GRAVE_2 = 38024,
SPELL_WATERY_GRAVE_3 = 38025,
SPELL_WATERY_GRAVE_4 = 37850,
SPELL_SUMMON_WATER_GLOBULE_1 = 37854,
SPELL_SUMMON_WATER_GLOBULE_2 = 37858,
SPELL_SUMMON_WATER_GLOBULE_3 = 37860,
SPELL_SUMMON_WATER_GLOBULE_4 = 37861,
SPELL_SUMMON_WATER_GLOBULE_1 = 37854,
SPELL_SUMMON_WATER_GLOBULE_2 = 37858,
SPELL_SUMMON_WATER_GLOBULE_3 = 37860,
SPELL_SUMMON_WATER_GLOBULE_4 = 37861,
// Creatures
NPC_WATER_GLOBULE = 21913,
NPC_TIDEWALKER_LURKER = 21920,
NPC_WATER_GLOBULE = 21913,
NPC_TIDEWALKER_LURKER = 21920
};
float MurlocCords[10][4] =
@@ -130,7 +126,7 @@ public:
void StartEvent()
{
DoScriptText(SAY_AGGRO, me);
Talk(SAY_AGGRO);
if (instance)
instance->SetData(DATA_MOROGRIMTIDEWALKEREVENT, IN_PROGRESS);
@@ -138,12 +134,12 @@ public:
void KilledUnit(Unit* /*victim*/)
{
DoScriptText(RAND(SAY_SLAY1, SAY_SLAY2, SAY_SLAY3), me);
Talk(SAY_SLAY);
}
void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DEATH, me);
Talk(SAY_DEATH);
if (instance)
instance->SetData(DATA_MOROGRIMTIDEWALKEREVENT, DONE);
@@ -184,7 +180,7 @@ public:
}
else
{
DoScriptText(RAND(SAY_SUMMON1, SAY_SUMMON2), me);
Talk(SAY_SUMMON);
for (uint8 i = 0; i < 10; ++i)
{
@@ -193,7 +189,7 @@ public:
if (target && Murloc)
Murloc->AI()->AttackStart(target);
}
DoScriptText(EMOTE_EARTHQUAKE, me);
Talk(EMOTE_EARTHQUAKE);
Earthquake = false;
Earthquake_Timer = 40000+rand()%5000;
}
@@ -235,9 +231,9 @@ public:
}
}
DoScriptText(RAND(SAY_SUMMON_BUBL1, SAY_SUMMON_BUBL2), me);
Talk(SAY_SUMMON_BUBL);
DoScriptText(EMOTE_WATERY_GRAVE, me);
Talk(EMOTE_WATERY_GRAVE);
WateryGrave_Timer = 30000;
} else WateryGrave_Timer -= diff;
@@ -271,7 +267,7 @@ public:
pGlobuleTarget->CastSpell(pGlobuleTarget, globulespell[g], true);
}
}
DoScriptText(EMOTE_WATERY_GLOBULES, me);
Talk(EMOTE_WATERY_GLOBULES);
WateryGlobules_Timer = 25000;
} else WateryGlobules_Timer -= diff;
}
@@ -32,20 +32,20 @@ EndContentData */
#include "ScriptedCreature.h"
#include "steam_vault.h"
#define SAY_SUMMON -1545000
#define SAY_AGGRO_1 -1545001
#define SAY_AGGRO_2 -1545002
#define SAY_AGGRO_3 -1545003
#define SAY_SLAY_1 -1545004
#define SAY_SLAY_2 -1545005
#define SAY_DEAD -1545006
enum HydromancerThespia
{
SAY_SUMMON = 0,
SAY_AGGRO = 1,
SAY_SLAY = 2,
SAY_DEAD = 3,
#define SPELL_LIGHTNING_CLOUD 25033
#define SPELL_LUNG_BURST 31481
#define SPELL_ENVELOPING_WINDS 31718
SPELL_LIGHTNING_CLOUD = 25033,
SPELL_LUNG_BURST = 31481,
SPELL_ENVELOPING_WINDS = 31718,
#define SPELL_WATER_BOLT_VOLLEY 34449
#define H_SPELL_WATER_BOLT_VOLLEY 37924
SPELL_WATER_BOLT_VOLLEY = 34449,
H_SPELL_WATER_BOLT_VOLLEY = 37924
};
class boss_hydromancer_thespia : public CreatureScript
{
@@ -82,7 +82,7 @@ public:
void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DEAD, me);
Talk(SAY_DEAD);
if (instance)
instance->SetData(TYPE_HYDROMANCER_THESPIA, DONE);
@@ -90,12 +90,12 @@ public:
void KilledUnit(Unit* /*victim*/)
{
DoScriptText(RAND(SAY_SLAY_1, SAY_SLAY_2), me);
Talk(SAY_SLAY);
}
void EnterCombat(Unit* /*who*/)
{
DoScriptText(RAND(SAY_AGGRO_1, SAY_AGGRO_2, SAY_AGGRO_3), me);
Talk(SAY_AGGRO);
if (instance)
instance->SetData(TYPE_HYDROMANCER_THESPIA, IN_PROGRESS);
@@ -32,22 +32,19 @@ EndContentData */
#include "ScriptedCreature.h"
#include "steam_vault.h"
#define SAY_MECHANICS -1545007
#define SAY_AGGRO_1 -1545008
#define SAY_AGGRO_2 -1545009
#define SAY_AGGRO_3 -1545010
#define SAY_AGGRO_4 -1545011
#define SAY_SLAY_1 -1545012
#define SAY_SLAY_2 -1545013
#define SAY_SLAY_3 -1545014
#define SAY_DEATH -1545015
enum MekgineerSteamrigger
{
SAY_MECHANICS = 0,
SAY_AGGRO = 1,
SAY_SLAY = 2,
SAY_DEATH = 3,
#define SPELL_SUPER_SHRINK_RAY 31485
#define SPELL_SAW_BLADE 31486
#define SPELL_ELECTRIFIED_NET 35107
#define H_SPELL_ENRAGE 1 //corrent enrage spell not known
SPELL_SUPER_SHRINK_RAY = 31485,
SPELL_SAW_BLADE = 31486,
SPELL_ELECTRIFIED_NET = 35107,
#define ENTRY_STREAMRIGGER_MECHANIC 17951
ENTRY_STREAMRIGGER_MECHANIC = 17951
};
class boss_mekgineer_steamrigger : public CreatureScript
{
@@ -91,7 +88,7 @@ public:
void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DEATH, me);
Talk(SAY_DEATH);
if (instance)
instance->SetData(TYPE_MEKGINEER_STEAMRIGGER, DONE);
@@ -99,12 +96,12 @@ public:
void KilledUnit(Unit* /*victim*/)
{
DoScriptText(RAND(SAY_SLAY_1, SAY_SLAY_2, SAY_SLAY_3), me);
Talk(SAY_SLAY);
}
void EnterCombat(Unit* /*who*/)
{
DoScriptText(RAND(SAY_AGGRO_1, SAY_AGGRO_2, SAY_AGGRO_3), me);
Talk(SAY_AGGRO);
if (instance)
instance->SetData(TYPE_MEKGINEER_STEAMRIGGER, IN_PROGRESS);
@@ -113,7 +110,7 @@ public:
//no known summon spells exist
void SummonMechanichs()
{
DoScriptText(SAY_MECHANICS, me);
Talk(SAY_MECHANICS);
DoSpawnCreature(ENTRY_STREAMRIGGER_MECHANIC, 5, 5, 0, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 240000);
DoSpawnCreature(ENTRY_STREAMRIGGER_MECHANIC, -5, 5, 0, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 240000);
@@ -28,21 +28,21 @@ EndScriptData */
#include "steam_vault.h"
#include "SpellInfo.h"
#define SAY_INTRO -1545016
#define SAY_REGEN -1545017
#define SAY_AGGRO1 -1545018
#define SAY_AGGRO2 -1545019
#define SAY_AGGRO3 -1545020
#define SAY_SLAY1 -1545021
#define SAY_SLAY2 -1545022
#define SAY_DEATH -1545023
enum NagaDistiller
{
SAY_INTRO = 0,
SAY_REGEN = 1,
SAY_AGGRO = 2,
SAY_SLAY = 3,
SAY_DEATH = 4,
#define SPELL_SPELL_REFLECTION 31534
#define SPELL_IMPALE 39061
#define SPELL_WARLORDS_RAGE 37081
#define SPELL_WARLORDS_RAGE_NAGA 31543
SPELL_SPELL_REFLECTION = 31534,
SPELL_IMPALE = 39061,
SPELL_WARLORDS_RAGE = 37081,
SPELL_WARLORDS_RAGE_NAGA = 31543,
#define SPELL_WARLORDS_RAGE_PROC 36453
SPELL_WARLORDS_RAGE_PROC = 36453
};
class mob_naga_distiller : public CreatureScript
{
@@ -139,7 +139,7 @@ public:
void EnterCombat(Unit* /*who*/)
{
DoScriptText(RAND(SAY_AGGRO1, SAY_AGGRO2, SAY_AGGRO3), me);
Talk(SAY_AGGRO);
if (instance)
instance->SetData(TYPE_WARLORD_KALITHRESH, IN_PROGRESS);
@@ -147,7 +147,7 @@ public:
void KilledUnit(Unit* /*victim*/)
{
DoScriptText(RAND(SAY_SLAY1, SAY_SLAY2), me);
Talk(SAY_SLAY);
}
void SpellHit(Unit* /*caster*/, const SpellInfo* spell)
@@ -161,7 +161,7 @@ public:
void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DEATH, me);
Talk(SAY_DEATH);
if (instance)
instance->SetData(TYPE_WARLORD_KALITHRESH, DONE);
@@ -176,7 +176,7 @@ public:
{
if (Creature* distiller = me->FindNearestCreature(17954, 100.0f))
{
DoScriptText(SAY_REGEN, me);
Talk(SAY_REGEN);
DoCast(me, SPELL_WARLORDS_RAGE);
CAST_AI(mob_naga_distiller::mob_naga_distillerAI, distiller->AI())->StartRageGen(me);
}
@@ -30,17 +30,13 @@ EndScriptData */
enum eEnums
{
SAY_AGGRO = -1565010,
SAY_SLAM1 = -1565011,
SAY_SLAM2 = -1565012,
SAY_SHATTER1 = -1565013,
SAY_SHATTER2 = -1565014,
SAY_SLAY1 = -1565015,
SAY_SLAY2 = -1565016,
SAY_SLAY3 = -1565017,
SAY_DEATH = -1565018,
SAY_AGGRO = 0,
SAY_SLAM = 1,
SAY_SHATTER = 2,
SAY_SLAY = 3,
SAY_DEATH = 4,
EMOTE_GROW = -1565019,
EMOTE_GROW = 5,
SPELL_GROWTH = 36300,
SPELL_CAVE_IN = 36240,
@@ -100,7 +96,7 @@ public:
void EnterCombat(Unit* /*who*/)
{
DoScriptText(SAY_AGGRO, me);
Talk(SAY_AGGRO);
if (instance)
instance->SetData(DATA_GRUULEVENT, IN_PROGRESS);
@@ -108,12 +104,12 @@ public:
void KilledUnit(Unit* /*victim*/)
{
DoScriptText(RAND(SAY_SLAY1, SAY_SLAY2, SAY_SLAY3), me);
Talk(SAY_SLAY);
}
void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DEATH, me);
Talk(SAY_DEATH);
if (instance)
{
@@ -172,7 +168,7 @@ public:
// Gruul can cast this spell up to 30 times
if (m_uiGrowth_Timer <= uiDiff)
{
DoScriptText(EMOTE_GROW, me);
Talk(EMOTE_GROW);
DoCast(me, SPELL_GROWTH);
m_uiGrowth_Timer = 30000;
}
@@ -27,46 +27,44 @@ EndScriptData */
#include "ScriptedCreature.h"
#include "gruuls_lair.h"
#define SAY_AGGRO -1565000
#define SAY_ENRAGE -1565001
#define SAY_OGRE_DEATH1 -1565002
#define SAY_OGRE_DEATH2 -1565003
#define SAY_OGRE_DEATH3 -1565004
#define SAY_OGRE_DEATH4 -1565005
#define SAY_SLAY1 -1565006
#define SAY_SLAY2 -1565007
#define SAY_SLAY3 -1565008
#define SAY_DEATH -1565009
enum HighKingMaulgar
{
SAY_AGGRO = 0,
SAY_ENRAGE = 1,
SAY_OGRE_DEATH = 2,
SAY_SLAY = 3,
SAY_DEATH = 4,
// High King Maulgar
#define SPELL_ARCING_SMASH 39144
#define SPELL_MIGHTY_BLOW 33230
#define SPELL_WHIRLWIND 33238
#define SPELL_BERSERKER_C 26561
#define SPELL_ROAR 16508
#define SPELL_FLURRY 33232
#define SPELL_DUAL_WIELD 29651 //used in phase
// High King Maulgar
SPELL_ARCING_SMASH = 39144,
SPELL_MIGHTY_BLOW = 33230,
SPELL_WHIRLWIND = 33238,
SPELL_BERSERKER_C = 26561,
SPELL_ROAR = 16508,
SPELL_FLURRY = 33232,
SPELL_DUAL_WIELD = 29651,
// Olm the Summoner
#define SPELL_DARK_DECAY 33129
#define SPELL_DEATH_COIL 33130
#define SPELL_SUMMON_WFH 33131
// Olm the Summoner
SPELL_DARK_DECAY = 33129,
SPELL_DEATH_COIL = 33130,
SPELL_SUMMON_WFH = 33131,
//Kiggler the Craed
#define SPELL_GREATER_POLYMORPH 33173
#define SPELL_LIGHTNING_BOLT 36152
#define SPELL_ARCANE_SHOCK 33175
#define SPELL_ARCANE_EXPLOSION 33237
//Kiggler the Craed
SPELL_GREATER_POLYMORPH = 33173,
SPELL_LIGHTNING_BOLT = 36152,
SPELL_ARCANE_SHOCK = 33175,
SPELL_ARCANE_EXPLOSION = 33237,
//Blindeye the Seer
#define SPELL_GREATER_PW_SHIELD 33147
#define SPELL_HEAL 33144
#define SPELL_PRAYER_OH 33152
//Blindeye the Seer
SPELL_GREATER_PW_SHIELD = 33147,
SPELL_HEAL = 33144,
SPELL_PRAYER_OH = 33152,
//Krosh Firehand
#define SPELL_GREATER_FIREBALL 33051
#define SPELL_SPELLSHIELD 33054
#define SPELL_BLAST_WAVE 33061
//Krosh Firehand
SPELL_GREATER_FIREBALL = 33051,
SPELL_SPELLSHIELD = 33054,
SPELL_BLAST_WAVE = 33061
};
bool CheckAllBossDied(InstanceScript* instance, Creature* me)
{
@@ -171,12 +169,12 @@ public:
void KilledUnit(Unit* /*victim*/)
{
DoScriptText(RAND(SAY_SLAY1, SAY_SLAY2, SAY_SLAY3), me);
Talk(SAY_SLAY);
}
void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DEATH, me);
Talk(SAY_DEATH);
if (CheckAllBossDied(instance, me))
instance->SetData(DATA_MAULGAREVENT, DONE);
@@ -184,7 +182,7 @@ public:
void AddDeath()
{
DoScriptText(RAND(SAY_OGRE_DEATH1, SAY_OGRE_DEATH2, SAY_OGRE_DEATH3, SAY_OGRE_DEATH4), me);
Talk(SAY_OGRE_DEATH);
}
void EnterCombat(Unit* who)
@@ -211,7 +209,7 @@ public:
GetCouncil();
DoScriptText(SAY_AGGRO, me);
Talk(SAY_AGGRO);
instance->SetData64(DATA_MAULGAREVENT_TANK, who->GetGUID());
instance->SetData(DATA_MAULGAREVENT, IN_PROGRESS);
@@ -269,7 +267,7 @@ public:
if (!Phase2 && HealthBelowPct(50))
{
Phase2 = true;
DoScriptText(SAY_ENRAGE, me);
Talk(SAY_ENRAGE);
DoCast(me, SPELL_DUAL_WIELD, true);
me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID, 0);
@@ -29,7 +29,7 @@ EndScriptData */
enum eEnums
{
SAY_AGGRO = -1542008,
SAY_AGGRO = 0,
SPELL_SLIME_SPRAY = 30913,
SPELL_POISON_CLOUD = 30916,
@@ -73,7 +73,7 @@ class boss_broggok : public CreatureScript
void EnterCombat(Unit* /*who*/)
{
DoScriptText(SAY_AGGRO, me);
Talk(SAY_AGGRO);
}
void JustSummoned(Creature* summoned)
@@ -35,14 +35,11 @@ EndContentData */
enum eKelidan
{
SAY_WAKE = -1542000,
SAY_ADD_AGGRO_1 = -1542001,
SAY_ADD_AGGRO_2 = -1542002,
SAY_ADD_AGGRO_3 = -1542003,
SAY_KILL_1 = -1542004,
SAY_KILL_2 = -1542005,
SAY_NOVA = -1542006,
SAY_DIE = -1542007,
SAY_WAKE = 0,
SAY_ADD_AGGRO = 1,
SAY_KILL = 2,
SAY_NOVA = 3,
SAY_DIE = 4,
SPELL_CORRUPTION = 30938,
SPELL_EVOCATION = 30935,
@@ -117,7 +114,7 @@ class boss_kelidan_the_breaker : public CreatureScript
void EnterCombat(Unit* who)
{
DoScriptText(SAY_WAKE, me);
Talk(SAY_WAKE);
if (me->IsNonMeleeSpellCasted(false))
me->InterruptNonMeleeSpells(true);
DoStartMovement(who);
@@ -130,7 +127,7 @@ class boss_kelidan_the_breaker : public CreatureScript
if (rand()%2)
return;
DoScriptText(RAND(SAY_KILL_1, SAY_KILL_2), me);
Talk(SAY_KILL);
}
void ChannelerEngaged(Unit* who)
@@ -138,7 +135,7 @@ class boss_kelidan_the_breaker : public CreatureScript
if (who && !addYell)
{
addYell = true;
DoScriptText(RAND(SAY_ADD_AGGRO_1, SAY_ADD_AGGRO_2, SAY_ADD_AGGRO_3), me);
Talk(SAY_ADD_AGGRO);
}
for (uint8 i=0; i<5; ++i)
{
@@ -194,7 +191,7 @@ class boss_kelidan_the_breaker : public CreatureScript
void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DIE, me);
Talk(SAY_DIE);
if (!instance)
return;
@@ -254,7 +251,7 @@ class boss_kelidan_the_breaker : public CreatureScript
if (me->IsNonMeleeSpellCasted(false))
me->InterruptNonMeleeSpells(true);
DoScriptText(SAY_NOVA, me);
Talk(SAY_NOVA);
if (SpellInfo const* nova = sSpellMgr->GetSpellInfo(SPELL_BURNING_NOVA))
{
@@ -29,17 +29,14 @@ EndScriptData */
enum eEnums
{
SAY_AGGRO_1 = -1542009,
SAY_AGGRO_2 = -1542010,
SAY_AGGRO_3 = -1542011,
SAY_KILL_1 = -1542012,
SAY_KILL_2 = -1542013,
SAY_DIE = -1542014,
SAY_AGGRO = 0,
SAY_KILL = 1,
SAY_DIE = 2,
SPELL_ACID_SPRAY = 38153, // heroic 38973 ??? 38153
SPELL_ACID_SPRAY = 38153,
SPELL_EXPLODING_BREAKER = 30925,
SPELL_KNOCKDOWN = 20276,
SPELL_DOMINATION = 25772 // ???
SPELL_DOMINATION = 25772
};
class boss_the_maker : public CreatureScript
@@ -81,7 +78,7 @@ class boss_the_maker : public CreatureScript
void EnterCombat(Unit* /*who*/)
{
DoScriptText(RAND(SAY_AGGRO_1, SAY_AGGRO_2, SAY_AGGRO_3), me);
Talk(SAY_AGGRO);
if (!instance)
return;
@@ -92,12 +89,12 @@ class boss_the_maker : public CreatureScript
void KilledUnit(Unit* /*victim*/)
{
DoScriptText(RAND(SAY_KILL_1, SAY_KILL_2), me);
Talk(SAY_KILL);
}
void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DIE, me);
Talk(SAY_DIE);
if (!instance)
return;
@@ -29,14 +29,12 @@ EndScriptData */
enum eSays
{
SAY_AGGRO_1 = -1543009,
SAY_AGGRO_2 = -1543010,
SAY_AGGRO_3 = -1543011,
SAY_SUMMON = -1543012,
SAY_CURSE = -1543013,
SAY_KILL_1 = -1543014,
SAY_DIE = -1543015,
SAY_WIPE = -1543016,
SAY_AGGRO = 0,
SAY_SUMMON = 1,
SAY_CURSE = 2,
SAY_KILL_1 = 3,
SAY_DIE = 4,
SAY_WIPE = 5,
};
enum eSpells
@@ -79,7 +77,7 @@ class boss_omor_the_unscarred : public CreatureScript
void Reset()
{
DoScriptText(SAY_WIPE, me);
Talk(SAY_WIPE);
OrbitalStrike_Timer = 25000;
ShadowWhip_Timer = 2000;
@@ -94,7 +92,7 @@ class boss_omor_the_unscarred : public CreatureScript
void EnterCombat(Unit* /*who*/)
{
DoScriptText(RAND(SAY_AGGRO_1, SAY_AGGRO_2, SAY_AGGRO_3), me);
Talk(SAY_AGGRO);
}
void KilledUnit(Unit* /*victim*/)
@@ -102,12 +100,12 @@ class boss_omor_the_unscarred : public CreatureScript
if (rand()%2)
return;
DoScriptText(SAY_KILL_1, me);
Talk(SAY_KILL_1);
}
void JustSummoned(Creature* summoned)
{
DoScriptText(SAY_SUMMON, me);
Talk(SAY_SUMMON);
if (Unit* random = SelectTarget(SELECT_TARGET_RANDOM, 0))
summoned->AI()->AttackStart(random);
@@ -117,7 +115,7 @@ class boss_omor_the_unscarred : public CreatureScript
void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DIE, me);
Talk(SAY_DIE);
}
void UpdateAI(const uint32 diff)
@@ -192,7 +190,7 @@ class boss_omor_the_unscarred : public CreatureScript
if (Aura_Timer <= diff)
{
DoScriptText(SAY_CURSE, me);
Talk(SAY_CURSE);
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
{
@@ -39,7 +39,7 @@ enum eSpells
SPELL_REVENGE = 19130,
SPELL_REVENGE_H = 40392,
SPELL_KIDNEY_SHOT = 30621,
SPELL_FIRE_NOVA_VISUAL = 19823,
SPELL_FIRE_NOVA_VISUAL = 19823
};
enum eUnits
@@ -50,20 +50,17 @@ enum eUnits
ENTRY_NAZAN = 17536,
ENTRY_LIQUID_FIRE = 22515,
ENTRY_REINFORCED_FEL_IRON_CHEST = 185168,
ENTRY_REINFORCED_FEL_IRON_CHEST_H = 185169,
ENTRY_REINFORCED_FEL_IRON_CHEST_H = 185169
};
enum eSays
{
SAY_INTRO = -1543017,
SAY_WIPE = -1543018,
SAY_AGGRO_1 = -1543019,
SAY_AGGRO_2 = -1543020,
SAY_AGGRO_3 = -1543021,
SAY_KILL_1 = -1543022,
SAY_KILL_2 = -1543023,
SAY_DIE = -1543024,
EMOTE = -1543025,
SAY_INTRO = 0,
SAY_WIPE = 1,
SAY_AGGRO = 2,
SAY_KILL = 3,
SAY_DIE = 4,
EMOTE = 5
};
const float VazrudenMiddle[3] = {-1406.5f, 1746.5f, 81.2f};
@@ -153,7 +150,7 @@ class boss_nazan : public CreatureScript
if (Unit* victim = SelectTarget(SELECT_TARGET_NEAREST, 0))
me->AI()->AttackStart(victim);
DoStartMovement(me->getVictim());
DoScriptText(EMOTE, me);
Talk(EMOTE);
return;
}
else
@@ -229,19 +226,19 @@ class boss_vazruden : public CreatureScript
void EnterCombat(Unit* /*who*/)
{
DoScriptText(RAND(SAY_AGGRO_1, SAY_AGGRO_2, SAY_AGGRO_3), me);
Talk(SAY_AGGRO);
}
void KilledUnit(Unit* who)
{
if (who && who->GetEntry() != ENTRY_VAZRUDEN)
DoScriptText(RAND(SAY_KILL_1, SAY_KILL_2), me);
Talk(SAY_KILL);
}
void JustDied(Unit* killer)
{
if (killer && killer != me)
DoScriptText(SAY_DIE, me);
Talk(SAY_DIE);
}
void UpdateAI(const uint32 diff)
@@ -252,7 +249,7 @@ class boss_vazruden : public CreatureScript
{
if (!WipeSaid)
{
DoScriptText(SAY_WIPE, me);
Talk(SAY_WIPE);
WipeSaid = true;
}
me->DisappearAndDie();
@@ -364,7 +361,7 @@ class boss_vazruden_the_herald : public CreatureScript
{
phase = 1;
check = 0;
DoScriptText(SAY_INTRO, me);
Talk(SAY_INTRO);
}
}
@@ -28,15 +28,12 @@ EndScriptData */
enum eSays
{
SAY_TAUNT = -1543000,
SAY_HEAL = -1543001,
SAY_SURGE = -1543002,
SAY_AGGRO_1 = -1543003,
SAY_AGGRO_2 = -1543004,
SAY_AGGRO_3 = -1543005,
SAY_KILL_1 = -1543006,
SAY_KILL_2 = -1543007,
SAY_DIE = -1543008,
SAY_TAUNT = 0,
SAY_HEAL = 1,
SAY_SURGE = 2,
SAY_AGGRO = 3,
SAY_KILL = 4,
SAY_DIE = 5
};
enum eSpells
@@ -81,7 +78,7 @@ class boss_watchkeeper_gargolmar : public CreatureScript
void EnterCombat(Unit* /*who*/)
{
DoScriptText(RAND(SAY_AGGRO_1, SAY_AGGRO_2, SAY_AGGRO_3), me);
Talk(SAY_AGGRO);
}
void MoveInLineOfSight(Unit* who)
@@ -99,7 +96,7 @@ class boss_watchkeeper_gargolmar : public CreatureScript
}
else if (!HasTaunted && me->IsWithinDistInMap(who, 60.0f))
{
DoScriptText(SAY_TAUNT, me);
Talk(SAY_TAUNT);
HasTaunted = true;
}
}
@@ -107,12 +104,12 @@ class boss_watchkeeper_gargolmar : public CreatureScript
void KilledUnit(Unit* /*victim*/)
{
DoScriptText(RAND(SAY_KILL_1, SAY_KILL_2), me);
Talk(SAY_KILL);
}
void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DIE, me);
Talk(SAY_DIE);
}
void UpdateAI(const uint32 diff)
@@ -130,7 +127,7 @@ class boss_watchkeeper_gargolmar : public CreatureScript
if (Surge_Timer <= diff)
{
DoScriptText(SAY_SURGE, me);
Talk(SAY_SURGE);
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
DoCast(target, SPELL_SURGE);
@@ -155,7 +152,7 @@ class boss_watchkeeper_gargolmar : public CreatureScript
{
if (HealthBelowPct(40))
{
DoScriptText(SAY_HEAL, me);
Talk(SAY_HEAL);
YelledForHeal = true;
}
}
@@ -29,36 +29,22 @@ EndScriptData */
#include "Player.h"
#include "SpellInfo.h"
struct Yell
{
int32 id;
};
static Yell RandomTaunt[]=
{
{-1544000},
{-1544001},
{-1544002},
{-1544003},
{-1544004},
{-1544005},
};
enum eSays
{
SAY_FREED = -1544006,
SAY_AGGRO = -1544007,
SAY_BANISH = -1544008,
SAY_CHAMBER_DESTROY = -1544009,
SAY_PLAYER_KILLED = -1544010,
SAY_DEATH = -1544011,
SAY_TAUNT = 0,
SAY_FREED = 1,
SAY_AGGRO = 2,
SAY_BANISH = 3,
SAY_CHAMBER_DESTROY = 4,
SAY_PLAYER_KILLED = 5,
SAY_DEATH = 6
};
enum eEmotes
{
EMOTE_BERSERK = -1544012,
EMOTE_BLASTNOVA = -1544013,
EMOTE_BEGIN = -1544014,
EMOTE_BERSERK = 7,
EMOTE_BLASTNOVA = 8,
EMOTE_BEGIN = 9
};
enum eCreatures
@@ -309,7 +295,7 @@ class boss_magtheridon : public CreatureScript
// if 5 clickers from other cubes apply shadow cage
if (ClickerNum >= CLICKERS_COUNT && !me->HasAura(SPELL_SHADOW_CAGE))
{
DoScriptText(SAY_BANISH, me);
Talk(SAY_BANISH);
DoCast(me, SPELL_SHADOW_CAGE, true);
}
else
@@ -322,7 +308,7 @@ class boss_magtheridon : public CreatureScript
void KilledUnit(Unit* /*victim*/)
{
DoScriptText(SAY_PLAYER_KILLED, me);
Talk(SAY_PLAYER_KILLED);
}
void JustDied(Unit* /*killer*/)
@@ -330,7 +316,7 @@ class boss_magtheridon : public CreatureScript
if (instance)
instance->SetData(DATA_MAGTHERIDON_EVENT, DONE);
DoScriptText(SAY_DEATH, me);
Talk(SAY_DEATH);
}
void MoveInLineOfSight(Unit* /*who*/) {}
@@ -350,7 +336,7 @@ class boss_magtheridon : public CreatureScript
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
me->RemoveAurasDueToSpell(SPELL_SHADOW_CAGE_C);
DoScriptText(SAY_FREED, me);
Talk(SAY_FREED);
}
void UpdateAI(const uint32 diff)
@@ -359,7 +345,7 @@ class boss_magtheridon : public CreatureScript
{
if (RandChat_Timer <= diff)
{
DoScriptText(RandomTaunt[rand()%6].id, me);
Talk(SAY_TAUNT);
RandChat_Timer = 90000;
}
else
@@ -374,7 +360,7 @@ class boss_magtheridon : public CreatureScript
if (Berserk_Timer <= diff)
{
DoCast(me, SPELL_BERSERK, true);
DoScriptText(EMOTE_BERSERK, me);
Talk(EMOTE_BERSERK);
Berserk_Timer = 60000;
}
else
@@ -393,7 +379,7 @@ class boss_magtheridon : public CreatureScript
// to avoid earthquake interruption
if (!me->HasUnitState(UNIT_STATE_STUNNED))
{
DoScriptText(EMOTE_BLASTNOVA, me);
Talk(EMOTE_BLASTNOVA);
DoCast(me, SPELL_BLASTNOVA);
BlastNova_Timer = 60000;
}
@@ -437,7 +423,7 @@ class boss_magtheridon : public CreatureScript
&& !me->HasUnitState(UNIT_STATE_STUNNED)) // shadow cage and earthquake
{
Phase3 = true;
DoScriptText(SAY_CHAMBER_DESTROY, me);
Talk(SAY_CHAMBER_DESTROY);
DoCast(me, SPELL_CAMERA_SHAKE, true);
DoCast(me, SPELL_DEBRIS_KNOCKDOWN, true);
@@ -33,38 +33,15 @@ EndContentData */
#include "ScriptedCreature.h"
#include "shattered_halls.h"
struct Say
{
int32 id;
};
static Say PeonAttacked[]=
{
{-1540001},
{-1540002},
{-1540003},
{-1540004},
};
static Say PeonDies[]=
{
{-1540005},
{-1540006},
{-1540007},
{-1540008},
};
enum eSays
{
SAY_INTRO = -1540000,
SAY_TAUNT_1 = -1540009,
SAY_TAUNT_2 = -1540010,
SAY_TAUNT_3 = -1540011,
SAY_AGGRO_1 = -1540012,
SAY_AGGRO_2 = -1540013,
SAY_AGGRO_3 = -1540014,
SAY_SLAY_1 = -1540015,
SAY_SLAY_2 = -1540016,
SAY_DIE = -1540017,
SAY_INTRO = 0,
SAY_PEON_ATTACKED = 1,
SAY_PEON_DIES = 2,
SAY_TAUNT = 3,
SAY_AGGRO = 4,
SAY_SLAY = 5,
SAY_DIE = 6
};
enum eSpells
@@ -137,7 +114,7 @@ class boss_grand_warlock_nethekurse : public CreatureScript
if (PeonEngagedCount >= 4)
return;
DoScriptText(PeonAttacked[PeonEngagedCount].id, me);
Talk(SAY_PEON_ATTACKED);
++PeonEngagedCount;
}
@@ -146,7 +123,7 @@ class boss_grand_warlock_nethekurse : public CreatureScript
if (PeonKilledCount >= 4)
return;
DoScriptText(PeonDies[PeonKilledCount].id, me);
Talk(SAY_PEON_DIES);
++PeonKilledCount;
if (PeonKilledCount == 4)
@@ -159,7 +136,7 @@ class boss_grand_warlock_nethekurse : public CreatureScript
void DoTauntPeons()
{
DoScriptText(RAND(SAY_TAUNT_1, SAY_TAUNT_2, SAY_TAUNT_3), me);
Talk(SAY_TAUNT);
//TODO: kill the peons first
IsIntroEvent = false;
@@ -190,7 +167,7 @@ class boss_grand_warlock_nethekurse : public CreatureScript
if (who->GetTypeId() != TYPEID_PLAYER)
return;
DoScriptText(SAY_INTRO, me);
Talk(SAY_INTRO);
IntroOnce = true;
IsIntroEvent = true;
@@ -206,7 +183,7 @@ class boss_grand_warlock_nethekurse : public CreatureScript
void EnterCombat(Unit* /*who*/)
{
DoScriptText(RAND(SAY_AGGRO_1, SAY_AGGRO_2, SAY_AGGRO_3), me);
Talk(SAY_AGGRO);
}
void JustSummoned(Creature* summoned)
@@ -222,12 +199,12 @@ class boss_grand_warlock_nethekurse : public CreatureScript
void KilledUnit(Unit* /*victim*/)
{
DoScriptText(RAND(SAY_SLAY_1, SAY_SLAY_2), me);
Talk(SAY_SLAY);
}
void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DIE, me);
Talk(SAY_DIE);
if (!instance)
return;
@@ -87,11 +87,12 @@ public:
enum eNetherdrake
{
SAY_NIHIL_1 = -1000169, //signed for 5955
SAY_NIHIL_2 = -1000170, //signed for 5955
SAY_NIHIL_3 = -1000171, //signed for 5955
SAY_NIHIL_4 = -1000172, //signed for 20021, used by 20021, 21817, 21820, 21821, 21823
SAY_NIHIL_INTERRUPT = -1000173, //signed for 20021, used by 20021, 21817, 21820, 21821, 21823
//Used by 20021, 21817, 21820, 21821, 21823 but not existing in database
SAY_NIHIL_1 = 0,
SAY_NIHIL_2 = 1,
SAY_NIHIL_3 = 2,
SAY_NIHIL_4 = 3,
SAY_NIHIL_INTERRUPT = 4,
ENTRY_WHELP = 20021,
ENTRY_PROTO = 21821,
@@ -176,7 +177,7 @@ public:
//we are nihil, so say before transform
if (me->GetEntry() == ENTRY_NIHIL)
{
DoScriptText(SAY_NIHIL_INTERRUPT, me);
Talk(SAY_NIHIL_INTERRUPT);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
IsNihil = false;
}
@@ -203,19 +204,19 @@ public:
switch (NihilSpeech_Phase)
{
case 0:
DoScriptText(SAY_NIHIL_1, me);
Talk(SAY_NIHIL_1);
++NihilSpeech_Phase;
break;
case 1:
DoScriptText(SAY_NIHIL_2, me);
Talk(SAY_NIHIL_2);
++NihilSpeech_Phase;
break;
case 2:
DoScriptText(SAY_NIHIL_3, me);
Talk(SAY_NIHIL_3);
++NihilSpeech_Phase;
break;
case 3:
DoScriptText(SAY_NIHIL_4, me);
Talk(SAY_NIHIL_4);
++NihilSpeech_Phase;
break;
case 4:
@@ -266,7 +267,7 @@ public:
enum eDaranelle
{
SAY_SPELL_INFLUENCE = -1000174,
SAY_SPELL_INFLUENCE = 0,
SPELL_LASHHAN_CHANNEL = 36904
};
@@ -294,7 +295,7 @@ public:
{
if (who->HasAura(SPELL_LASHHAN_CHANNEL) && me->IsWithinDistInMap(who, 10.0f))
{
DoScriptText(SAY_SPELL_INFLUENCE, me, who);
Talk(SAY_SPELL_INFLUENCE, who->GetGUID());
//TODO: Move the below to updateAI and run if this statement == true
DoCast(who, 37028, true);
}