mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-20 09:17:36 +01:00
Merge pull request #8371 from Gacko/creaturetext
Core/DB: Some script to creature text conversions...
This commit is contained in:
@@ -30,9 +30,9 @@ EndScriptData */
|
||||
|
||||
enum Says
|
||||
{
|
||||
SAY_GAMESBEGIN_1 = -1469004,
|
||||
SAY_GAMESBEGIN_2 = -1469005,
|
||||
SAY_VAEL_INTRO = -1469006 //when he corrupts Vaelastrasz
|
||||
SAY_GAMESBEGIN_1 = 0,
|
||||
SAY_GAMESBEGIN_2 = 1,
|
||||
//SAY_VAEL_INTRO = 2, Not used - when he corrupts Vaelastrasz
|
||||
};
|
||||
|
||||
#define GOSSIP_ITEM_1 "I've made no mistakes."
|
||||
@@ -101,7 +101,7 @@ public:
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF+3:
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
DoScriptText(SAY_GAMESBEGIN_1, creature);
|
||||
creature->AI()->Talk(SAY_GAMESBEGIN_1);
|
||||
CAST_AI(boss_victor_nefarius::boss_victor_nefariusAI, creature->AI())->BeginEvent(player);
|
||||
break;
|
||||
}
|
||||
@@ -238,7 +238,7 @@ public:
|
||||
|
||||
void BeginEvent(Player* target)
|
||||
{
|
||||
DoScriptText(SAY_GAMESBEGIN_2, me);
|
||||
Talk(SAY_GAMESBEGIN_2);
|
||||
|
||||
//Trinity::Singleton<MapManager>::Instance().GetMap(me->GetMapId(), me)->GetPlayers().begin();
|
||||
/*
|
||||
|
||||
@@ -26,23 +26,27 @@ EndScriptData */
|
||||
#include "ScriptMgr.h"
|
||||
#include "ScriptedCreature.h"
|
||||
|
||||
#define SAY_AGGRO -1532057
|
||||
#define SAY_SUMMON1 -1532058
|
||||
#define SAY_SUMMON2 -1532059
|
||||
#define SAY_EVOCATE -1532060
|
||||
#define SAY_ENRAGE -1532061
|
||||
#define SAY_KILL1 -1532062
|
||||
#define SAY_KILL2 -1532063
|
||||
#define SAY_DEATH -1532064
|
||||
enum Curator
|
||||
{
|
||||
SAY_AGGRO = 0,
|
||||
SAY_SUMMON = 1,
|
||||
SAY_EVOCATE = 2,
|
||||
SAY_ENRAGE = 3,
|
||||
SAY_KILL = 4,
|
||||
SAY_DEATH = 5,
|
||||
|
||||
//Flare spell info
|
||||
SPELL_ASTRAL_FLARE_PASSIVE = 30234, //Visual effect + Flare damage
|
||||
|
||||
//Curator spell info
|
||||
SPELL_HATEFUL_BOLT = 30383,
|
||||
SPELL_EVOCATION = 30254,
|
||||
SPELL_ENRAGE = 30403, //Arcane Infusion: Transforms Curator and adds damage.
|
||||
SPELL_BERSERK = 26662,
|
||||
};
|
||||
|
||||
|
||||
//Flare spell info
|
||||
#define SPELL_ASTRAL_FLARE_PASSIVE 30234 //Visual effect + Flare damage
|
||||
|
||||
//Curator spell info
|
||||
#define SPELL_HATEFUL_BOLT 30383
|
||||
#define SPELL_EVOCATION 30254
|
||||
#define SPELL_ENRAGE 30403 //Arcane Infusion: Transforms Curator and adds damage.
|
||||
#define SPELL_BERSERK 26662
|
||||
|
||||
class boss_curator : public CreatureScript
|
||||
{
|
||||
@@ -78,17 +82,17 @@ public:
|
||||
|
||||
void KilledUnit(Unit* /*victim*/)
|
||||
{
|
||||
DoScriptText(RAND(SAY_KILL1, SAY_KILL2), me);
|
||||
Talk(SAY_KILL);
|
||||
}
|
||||
|
||||
void JustDied(Unit* /*killer*/)
|
||||
{
|
||||
DoScriptText(SAY_DEATH, me);
|
||||
Talk(SAY_DEATH);
|
||||
}
|
||||
|
||||
void EnterCombat(Unit* /*who*/)
|
||||
{
|
||||
DoScriptText(SAY_AGGRO, me);
|
||||
Talk(SAY_AGGRO);
|
||||
}
|
||||
|
||||
void UpdateAI(const uint32 diff)
|
||||
@@ -109,7 +113,7 @@ public:
|
||||
}
|
||||
|
||||
//may not be correct SAY (generic hard enrage)
|
||||
DoScriptText(SAY_ENRAGE, me);
|
||||
Talk(SAY_ENRAGE);
|
||||
|
||||
me->InterruptNonMeleeSpells(true);
|
||||
DoCast(me, SPELL_BERSERK);
|
||||
@@ -151,7 +155,7 @@ public:
|
||||
//if this get's us below 10%, then we evocate (the 10th should be summoned now)
|
||||
if (me->GetPower(POWER_MANA)*100 / me->GetMaxPower(POWER_MANA) < 10)
|
||||
{
|
||||
DoScriptText(SAY_EVOCATE, me);
|
||||
Talk(SAY_EVOCATE);
|
||||
me->InterruptNonMeleeSpells(false);
|
||||
DoCast(me, SPELL_EVOCATION);
|
||||
Evocating = true;
|
||||
@@ -162,7 +166,7 @@ public:
|
||||
{
|
||||
if (urand(0, 1) == 0)
|
||||
{
|
||||
DoScriptText(RAND(SAY_SUMMON1, SAY_SUMMON2), me);
|
||||
Talk(SAY_SUMMON);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -174,7 +178,7 @@ public:
|
||||
{
|
||||
Enraged = true;
|
||||
DoCast(me, SPELL_ENRAGE);
|
||||
DoScriptText(SAY_ENRAGE, me);
|
||||
Talk(SAY_ENRAGE);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -26,19 +26,19 @@ EndScriptData */
|
||||
#include "ScriptMgr.h"
|
||||
#include "ScriptedCreature.h"
|
||||
|
||||
#define SAY_AGGRO -1532018
|
||||
#define SAY_SLAY1 -1532019
|
||||
#define SAY_SLAY2 -1532020
|
||||
#define SAY_SLAY3 -1532021
|
||||
#define SAY_REPENTANCE1 -1532022
|
||||
#define SAY_REPENTANCE2 -1532023
|
||||
#define SAY_DEATH -1532024
|
||||
enum MaidenOfVirtue
|
||||
{
|
||||
SAY_AGGRO = 0,
|
||||
SAY_SLAY = 1,
|
||||
SAY_REPENTANCE = 2,
|
||||
SAY_DEATH = 3,
|
||||
|
||||
#define SPELL_REPENTANCE 29511
|
||||
#define SPELL_HOLYFIRE 29522
|
||||
#define SPELL_HOLYWRATH 32445
|
||||
#define SPELL_HOLYGROUND 29512
|
||||
#define SPELL_BERSERK 26662
|
||||
SPELL_REPENTANCE = 29511,
|
||||
SPELL_HOLYFIRE = 29522,
|
||||
SPELL_HOLYWRATH = 32445,
|
||||
SPELL_HOLYGROUND = 29512,
|
||||
SPELL_BERSERK = 26662,
|
||||
};
|
||||
|
||||
class boss_maiden_of_virtue : public CreatureScript
|
||||
{
|
||||
@@ -76,17 +76,17 @@ public:
|
||||
void KilledUnit(Unit* /*Victim*/)
|
||||
{
|
||||
if (urand(0, 1) == 0)
|
||||
DoScriptText(RAND(SAY_SLAY1, SAY_SLAY2, SAY_SLAY3), me);
|
||||
Talk(SAY_SLAY);
|
||||
}
|
||||
|
||||
void JustDied(Unit* /*killer*/)
|
||||
{
|
||||
DoScriptText(SAY_DEATH, me);
|
||||
Talk(SAY_DEATH);
|
||||
}
|
||||
|
||||
void EnterCombat(Unit* /*who*/)
|
||||
{
|
||||
DoScriptText(SAY_AGGRO, me);
|
||||
Talk(SAY_AGGRO);
|
||||
}
|
||||
|
||||
void UpdateAI(const uint32 diff)
|
||||
@@ -109,7 +109,7 @@ public:
|
||||
if (Repentance_Timer <= diff)
|
||||
{
|
||||
DoCast(me->getVictim(), SPELL_REPENTANCE);
|
||||
DoScriptText(RAND(SAY_REPENTANCE1, SAY_REPENTANCE2), me);
|
||||
Talk(SAY_REPENTANCE);
|
||||
|
||||
Repentance_Timer = urand(25000, 35000); //A little randomness on that spell
|
||||
} else Repentance_Timer -= diff;
|
||||
|
||||
@@ -27,26 +27,25 @@ EndScriptData */
|
||||
#include "ScriptedCreature.h"
|
||||
#include "SpellInfo.h"
|
||||
|
||||
#define SAY_MIDNIGHT_KILL -1532000
|
||||
#define SAY_APPEAR1 -1532001
|
||||
#define SAY_APPEAR2 -1532002
|
||||
#define SAY_APPEAR3 -1532003
|
||||
#define SAY_MOUNT -1532004
|
||||
#define SAY_KILL1 -1532005
|
||||
#define SAY_KILL2 -1532006
|
||||
#define SAY_DISARMED -1532007
|
||||
#define SAY_DEATH -1532008
|
||||
#define SAY_RANDOM1 -1532009
|
||||
#define SAY_RANDOM2 -1532010
|
||||
enum Midnight
|
||||
{
|
||||
SAY_MIDNIGHT_KILL = 0,
|
||||
SAY_APPEAR = 1,
|
||||
SAY_MOUNT = 2,
|
||||
SAY_KILL = 3,
|
||||
SAY_DISARMED = 4,
|
||||
SAY_DEATH = 5,
|
||||
SAY_RANDOM = 6,
|
||||
|
||||
#define SPELL_SHADOWCLEAVE 29832
|
||||
#define SPELL_INTANGIBLE_PRESENCE 29833
|
||||
#define SPELL_BERSERKER_CHARGE 26561 //Only when mounted
|
||||
SPELL_SHADOWCLEAVE = 29832,
|
||||
SPELL_INTANGIBLE_PRESENCE = 29833,
|
||||
SPELL_BERSERKER_CHARGE = 26561, //Only when mounted
|
||||
|
||||
#define MOUNTED_DISPLAYID 16040
|
||||
MOUNTED_DISPLAYID = 16040,
|
||||
|
||||
//Attumen (TODO: Use the summoning spell instead of Creature id. It works, but is not convenient for us)
|
||||
#define SUMMON_ATTUMEN 15550
|
||||
//Attumen (TODO: Use the summoning spell instead of Creature id. It works, but is not convenient for us)
|
||||
SUMMON_ATTUMEN = 15550,
|
||||
};
|
||||
|
||||
class boss_attumen : public CreatureScript
|
||||
{
|
||||
@@ -94,14 +93,14 @@ public:
|
||||
|
||||
void KilledUnit(Unit* /*victim*/)
|
||||
{
|
||||
DoScriptText(RAND(SAY_KILL1, SAY_KILL2), me);
|
||||
Talk(SAY_KILL);
|
||||
}
|
||||
|
||||
void JustDied(Unit* /*killer*/)
|
||||
{
|
||||
DoScriptText(SAY_DEATH, me);
|
||||
if (Unit* pMidnight = Unit::GetUnit(*me, Midnight))
|
||||
pMidnight->Kill(pMidnight);
|
||||
Talk(SAY_DEATH);
|
||||
if (Unit* midnight = Unit::GetUnit(*me, Midnight))
|
||||
midnight->Kill(midnight);
|
||||
}
|
||||
|
||||
void UpdateAI(const uint32 diff);
|
||||
@@ -109,7 +108,7 @@ public:
|
||||
void SpellHit(Unit* /*source*/, const SpellInfo* spell)
|
||||
{
|
||||
if (spell->Mechanic == MECHANIC_DISARM)
|
||||
DoScriptText(SAY_DISARMED, me);
|
||||
Talk(SAY_DISARMED);
|
||||
}
|
||||
};
|
||||
};
|
||||
@@ -149,7 +148,7 @@ public:
|
||||
if (Phase == 2)
|
||||
{
|
||||
if (Unit* unit = Unit::GetUnit(*me, Attumen))
|
||||
DoScriptText(SAY_MIDNIGHT_KILL, unit);
|
||||
Talk(SAY_MIDNIGHT_KILL, unit->GetGUID());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -161,12 +160,12 @@ public:
|
||||
if (Phase == 1 && HealthBelowPct(95))
|
||||
{
|
||||
Phase = 2;
|
||||
if (Creature* pAttumen = me->SummonCreature(SUMMON_ATTUMEN, 0.0f, 0.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 30000))
|
||||
if (Creature* attumen = me->SummonCreature(SUMMON_ATTUMEN, 0.0f, 0.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 30000))
|
||||
{
|
||||
Attumen = pAttumen->GetGUID();
|
||||
pAttumen->AI()->AttackStart(me->getVictim());
|
||||
SetMidnight(pAttumen, me->GetGUID());
|
||||
DoScriptText(RAND(SAY_APPEAR1, SAY_APPEAR2, SAY_APPEAR3), pAttumen);
|
||||
Attumen = attumen->GetGUID();
|
||||
attumen->AI()->AttackStart(me->getVictim());
|
||||
SetMidnight(attumen, me->GetGUID());
|
||||
Talk(SAY_APPEAR, Attumen);
|
||||
}
|
||||
}
|
||||
else if (Phase == 2 && HealthBelowPct(25))
|
||||
@@ -204,7 +203,7 @@ public:
|
||||
|
||||
void Mount(Unit* pAttumen)
|
||||
{
|
||||
DoScriptText(SAY_MOUNT, pAttumen);
|
||||
Talk(SAY_MOUNT, pAttumen->GetGUID());
|
||||
Phase = 3;
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
pAttumen->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
@@ -274,7 +273,7 @@ void boss_attumen::boss_attumenAI::UpdateAI(const uint32 diff)
|
||||
|
||||
if (RandomYellTimer <= diff)
|
||||
{
|
||||
DoScriptText(RAND(SAY_RANDOM1, SAY_RANDOM2), me);
|
||||
Talk(SAY_RANDOM);
|
||||
RandomYellTimer = urand(30000, 60000);
|
||||
} else RandomYellTimer -= diff;
|
||||
|
||||
|
||||
@@ -27,19 +27,20 @@ EndScriptData */
|
||||
#include "ScriptedCreature.h"
|
||||
#include "karazhan.h"
|
||||
|
||||
#define SAY_AGGRO -1532011
|
||||
#define SAY_SPECIAL_1 -1532012
|
||||
#define SAY_SPECIAL_2 -1532013
|
||||
#define SAY_KILL_1 -1532014
|
||||
#define SAY_KILL_2 -1532015
|
||||
#define SAY_KILL_3 -1532016
|
||||
#define SAY_DEATH -1532017
|
||||
enum Moroes
|
||||
{
|
||||
SAY_AGGRO = 0,
|
||||
SAY_SPECIAL = 1,
|
||||
SAY_KILL = 2,
|
||||
SAY_DEATH = 3,
|
||||
|
||||
SPELL_VANISH = 29448,
|
||||
SPELL_GARROTE = 37066,
|
||||
SPELL_BLIND = 34694,
|
||||
SPELL_GOUGE = 29425,
|
||||
SPELL_FRENZY = 37023,
|
||||
};
|
||||
|
||||
#define SPELL_VANISH 29448
|
||||
#define SPELL_GARROTE 37066
|
||||
#define SPELL_BLIND 34694
|
||||
#define SPELL_GOUGE 29425
|
||||
#define SPELL_FRENZY 37023
|
||||
|
||||
#define POS_Z 81.73f
|
||||
|
||||
@@ -124,19 +125,19 @@ public:
|
||||
{
|
||||
StartEvent();
|
||||
|
||||
DoScriptText(SAY_AGGRO, me);
|
||||
Talk(SAY_AGGRO);
|
||||
AddsAttack();
|
||||
DoZoneInCombat();
|
||||
}
|
||||
|
||||
void KilledUnit(Unit* /*victim*/)
|
||||
{
|
||||
DoScriptText(RAND(SAY_KILL_1, SAY_KILL_2, SAY_KILL_3), me);
|
||||
Talk(SAY_KILL);
|
||||
}
|
||||
|
||||
void JustDied(Unit* /*killer*/)
|
||||
{
|
||||
DoScriptText(SAY_DEATH, me);
|
||||
Talk(SAY_DEATH);
|
||||
|
||||
if (instance)
|
||||
instance->SetData(TYPE_MOROES, DONE);
|
||||
@@ -294,7 +295,7 @@ public:
|
||||
{
|
||||
if (Wait_Timer <= diff)
|
||||
{
|
||||
DoScriptText(RAND(SAY_SPECIAL_1, SAY_SPECIAL_2), me);
|
||||
Talk(SAY_SPECIAL);
|
||||
|
||||
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
|
||||
target->CastSpell(target, SPELL_GARROTE, true);
|
||||
|
||||
@@ -28,17 +28,21 @@ EndScriptData */
|
||||
#include "karazhan.h"
|
||||
#include "Player.h"
|
||||
|
||||
#define EMOTE_PHASE_PORTAL -1532089
|
||||
#define EMOTE_PHASE_BANISH -1532090
|
||||
enum Netherspite
|
||||
{
|
||||
EMOTE_PHASE_PORTAL = 0,
|
||||
EMOTE_PHASE_BANISH = 1,
|
||||
|
||||
SPELL_NETHERBURN_AURA = 30522,
|
||||
SPELL_VOIDZONE = 37063,
|
||||
SPELL_NETHER_INFUSION = 38688,
|
||||
SPELL_NETHERBREATH = 38523,
|
||||
SPELL_BANISH_VISUAL = 39833,
|
||||
SPELL_BANISH_ROOT = 42716,
|
||||
SPELL_EMPOWERMENT = 38549,
|
||||
SPELL_NETHERSPITE_ROAR = 38684,
|
||||
};
|
||||
|
||||
#define SPELL_NETHERBURN_AURA 30522
|
||||
#define SPELL_VOIDZONE 37063
|
||||
#define SPELL_NETHER_INFUSION 38688
|
||||
#define SPELL_NETHERBREATH 38523
|
||||
#define SPELL_BANISH_VISUAL 39833
|
||||
#define SPELL_BANISH_ROOT 42716
|
||||
#define SPELL_EMPOWERMENT 38549
|
||||
#define SPELL_NETHERSPITE_ROAR 38684
|
||||
|
||||
const float PortalCoord[3][3] =
|
||||
{
|
||||
@@ -229,7 +233,7 @@ public:
|
||||
PortalPhase = true;
|
||||
PortalTimer = 10000;
|
||||
EmpowermentTimer = 10000;
|
||||
DoScriptText(EMOTE_PHASE_PORTAL, me);
|
||||
Talk(EMOTE_PHASE_PORTAL);
|
||||
}
|
||||
|
||||
void SwitchToBanishPhase()
|
||||
@@ -241,7 +245,7 @@ public:
|
||||
DestroyPortals();
|
||||
PhaseTimer = 30000;
|
||||
PortalPhase = false;
|
||||
DoScriptText(EMOTE_PHASE_BANISH, me);
|
||||
Talk(EMOTE_PHASE_BANISH);
|
||||
|
||||
for (int i=0; i<3; ++i)
|
||||
me->RemoveAurasDueToSpell(NetherBuff[i]);
|
||||
|
||||
@@ -28,19 +28,6 @@ EndScriptData */
|
||||
#include "karazhan.h"
|
||||
#include "SpellInfo.h"
|
||||
|
||||
#define SAY_AGGRO -1532091
|
||||
#define SAY_AXE_TOSS1 -1532092
|
||||
#define SAY_AXE_TOSS2 -1532093
|
||||
#define SAY_SPECIAL1 -1532094
|
||||
#define SAY_SPECIAL2 -1532095
|
||||
#define SAY_SPECIAL3 -1532096
|
||||
#define SAY_SLAY1 -1532097
|
||||
#define SAY_SLAY2 -1532098
|
||||
#define SAY_SLAY3 -1532099
|
||||
#define SAY_SUMMON1 -1532100
|
||||
#define SAY_SUMMON2 -1532101
|
||||
#define SAY_DEATH -1532102
|
||||
|
||||
// 18 Coordinates for Infernal spawns
|
||||
struct InfernalPoint
|
||||
{
|
||||
@@ -71,31 +58,43 @@ static InfernalPoint InfernalPoints[] =
|
||||
{-10935.7f, -1996.0f}
|
||||
};
|
||||
|
||||
#define TOTAL_INFERNAL_POINTS 18
|
||||
|
||||
//Enfeeble is supposed to reduce hp to 1 and then heal player back to full when it ends
|
||||
//Along with reducing healing and regen while enfeebled to 0%
|
||||
//This spell effect will only reduce healing
|
||||
enum PrinceMalchezaar
|
||||
{
|
||||
SAY_AGGRO = 0,
|
||||
SAY_AXE_TOSS1 = 1,
|
||||
SAY_AXE_TOSS2 = 2,
|
||||
// SAY_SPECIAL1 = 3, Not used, needs to be implemented, but I don't know where it should be used.
|
||||
// SAY_SPECIAL2 = 4, Not used, needs to be implemented, but I don't know where it should be used.
|
||||
// SAY_SPECIAL3 = 5, Not used, needs to be implemented, but I don't know where it should be used.
|
||||
SAY_SLAY = 6,
|
||||
SAY_SUMMON = 7,
|
||||
SAY_DEATH = 8,
|
||||
|
||||
#define SPELL_ENFEEBLE 30843 //Enfeeble during phase 1 and 2
|
||||
#define SPELL_ENFEEBLE_EFFECT 41624
|
||||
TOTAL_INFERNAL_POINTS = 18,
|
||||
|
||||
#define SPELL_SHADOWNOVA 30852 //Shadownova used during all phases
|
||||
#define SPELL_SW_PAIN 30854 //Shadow word pain during phase 1 and 3 (different targeting rules though)
|
||||
#define SPELL_THRASH_PASSIVE 12787 //Extra attack chance during phase 2
|
||||
#define SPELL_SUNDER_ARMOR 30901 //Sunder armor during phase 2
|
||||
#define SPELL_THRASH_AURA 12787 //Passive proc chance for thrash
|
||||
#define SPELL_EQUIP_AXES 30857 //Visual for axe equiping
|
||||
#define SPELL_AMPLIFY_DAMAGE 39095 //Amplifiy during phase 3
|
||||
#define SPELL_CLEAVE 30131 //Same as Nightbane.
|
||||
#define SPELL_HELLFIRE 30859 //Infenals' hellfire aura
|
||||
#define NETHERSPITE_INFERNAL 17646 //The netherspite infernal creature
|
||||
#define MALCHEZARS_AXE 17650 //Malchezar's axes (creatures), summoned during phase 3
|
||||
SPELL_ENFEEBLE = 30843, //Enfeeble during phase 1 and 2
|
||||
SPELL_ENFEEBLE_EFFECT = 41624,
|
||||
|
||||
#define INFERNAL_MODEL_INVISIBLE 11686 //Infernal Effects
|
||||
#define SPELL_INFERNAL_RELAY 30834
|
||||
SPELL_SHADOWNOVA = 30852, //Shadownova used during all phases
|
||||
SPELL_SW_PAIN = 30854, //Shadow word pain during phase 1 and 3 (different targeting rules though)
|
||||
SPELL_THRASH_PASSIVE = 12787, //Extra attack chance during phase 2
|
||||
SPELL_SUNDER_ARMOR = 30901, //Sunder armor during phase 2
|
||||
SPELL_THRASH_AURA = 12787, //Passive proc chance for thrash
|
||||
SPELL_EQUIP_AXES = 30857, //Visual for axe equiping
|
||||
SPELL_AMPLIFY_DAMAGE = 39095, //Amplifiy during phase 3
|
||||
SPELL_CLEAVE = 30131, //Same as Nightbane.
|
||||
SPELL_HELLFIRE = 30859, //Infenals' hellfire aura
|
||||
NETHERSPITE_INFERNAL = 17646, //The netherspite infernal creature
|
||||
MALCHEZARS_AXE = 17650, //Malchezar's axes (creatures), summoned during phase 3
|
||||
|
||||
#define EQUIP_ID_AXE 33542 //Axes info
|
||||
INFERNAL_MODEL_INVISIBLE = 11686, //Infernal Effects
|
||||
SPELL_INFERNAL_RELAY = 30834,
|
||||
|
||||
EQUIP_ID_AXE = 33542, //Axes info
|
||||
};
|
||||
|
||||
//---------Infernal code first
|
||||
class netherspite_infernal : public CreatureScript
|
||||
@@ -245,12 +244,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);
|
||||
|
||||
AxesCleanup();
|
||||
ClearWeapons();
|
||||
@@ -266,7 +265,7 @@ public:
|
||||
|
||||
void EnterCombat(Unit* /*who*/)
|
||||
{
|
||||
DoScriptText(SAY_AGGRO, me);
|
||||
Talk(SAY_AGGRO);
|
||||
|
||||
if (instance)
|
||||
instance->HandleGameObject(instance->GetData64(DATA_GO_NETHER_DOOR), false); // Open the door leading further in
|
||||
@@ -384,7 +383,7 @@ public:
|
||||
DoCast(Infernal, SPELL_INFERNAL_RELAY);
|
||||
}
|
||||
|
||||
DoScriptText(RAND(SAY_SUMMON1, SAY_SUMMON2), me);
|
||||
Talk(SAY_SUMMON);
|
||||
}
|
||||
|
||||
void UpdateAI(const uint32 diff)
|
||||
@@ -416,7 +415,7 @@ public:
|
||||
DoCast(me, SPELL_EQUIP_AXES);
|
||||
|
||||
//text
|
||||
DoScriptText(SAY_AXE_TOSS1, me);
|
||||
Talk(SAY_AXE_TOSS1);
|
||||
|
||||
//passive thrash aura
|
||||
DoCast(me, SPELL_THRASH_AURA, true);
|
||||
@@ -452,7 +451,7 @@ public:
|
||||
//remove thrash
|
||||
me->RemoveAurasDueToSpell(SPELL_THRASH_AURA);
|
||||
|
||||
DoScriptText(SAY_AXE_TOSS2, me);
|
||||
Talk(SAY_AXE_TOSS2);
|
||||
|
||||
Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true);
|
||||
for (uint8 i = 0; i < 2; ++i)
|
||||
|
||||
@@ -29,51 +29,48 @@ EndScriptData */
|
||||
#include "GameObject.h"
|
||||
#include "SpellInfo.h"
|
||||
|
||||
#define SAY_AGGRO1 -1532073
|
||||
#define SAY_AGGRO2 -1532074
|
||||
#define SAY_AGGRO3 -1532075
|
||||
#define SAY_FLAMEWREATH1 -1532076
|
||||
#define SAY_FLAMEWREATH2 -1532077
|
||||
#define SAY_BLIZZARD1 -1532078
|
||||
#define SAY_BLIZZARD2 -1532079
|
||||
#define SAY_EXPLOSION1 -1532080
|
||||
#define SAY_EXPLOSION2 -1532081
|
||||
#define SAY_DRINK -1532082 //Low Mana / AoE Pyroblast
|
||||
#define SAY_ELEMENTALS -1532083
|
||||
#define SAY_KILL1 -1532084
|
||||
#define SAY_KILL2 -1532085
|
||||
#define SAY_TIMEOVER -1532086
|
||||
#define SAY_DEATH -1532087
|
||||
#define SAY_ATIESH -1532088 //Atiesh is equipped by a raid member
|
||||
enum ShadeOfAran
|
||||
{
|
||||
SAY_AGGRO = 0,
|
||||
SAY_FLAMEWREATH = 1,
|
||||
SAY_BLIZZARD = 2,
|
||||
SAY_EXPLOSION = 3,
|
||||
SAY_DRINK = 4,
|
||||
SAY_ELEMENTALS = 5,
|
||||
SAY_KILL = 6,
|
||||
SAY_TIMEOVER = 7,
|
||||
SAY_DEATH = 8,
|
||||
// SAY_ATIESH = 9, Unused
|
||||
|
||||
//Spells
|
||||
#define SPELL_FROSTBOLT 29954
|
||||
#define SPELL_FIREBALL 29953
|
||||
#define SPELL_ARCMISSLE 29955
|
||||
#define SPELL_CHAINSOFICE 29991
|
||||
#define SPELL_DRAGONSBREATH 29964
|
||||
#define SPELL_MASSSLOW 30035
|
||||
#define SPELL_FLAME_WREATH 29946
|
||||
#define SPELL_AOE_CS 29961
|
||||
#define SPELL_PLAYERPULL 32265
|
||||
#define SPELL_AEXPLOSION 29973
|
||||
#define SPELL_MASS_POLY 29963
|
||||
#define SPELL_BLINK_CENTER 29967
|
||||
#define SPELL_ELEMENTALS 29962
|
||||
#define SPELL_CONJURE 29975
|
||||
#define SPELL_DRINK 30024
|
||||
#define SPELL_POTION 32453
|
||||
#define SPELL_AOE_PYROBLAST 29978
|
||||
//Spells
|
||||
SPELL_FROSTBOLT = 29954,
|
||||
SPELL_FIREBALL = 29953,
|
||||
SPELL_ARCMISSLE = 29955,
|
||||
SPELL_CHAINSOFICE = 29991,
|
||||
SPELL_DRAGONSBREATH = 29964,
|
||||
SPELL_MASSSLOW = 30035,
|
||||
SPELL_FLAME_WREATH = 29946,
|
||||
SPELL_AOE_CS = 29961,
|
||||
SPELL_PLAYERPULL = 32265,
|
||||
SPELL_AEXPLOSION = 29973,
|
||||
SPELL_MASS_POLY = 29963,
|
||||
SPELL_BLINK_CENTER = 29967,
|
||||
SPELL_ELEMENTALS = 29962,
|
||||
SPELL_CONJURE = 29975,
|
||||
SPELL_DRINK = 30024,
|
||||
SPELL_POTION = 32453,
|
||||
SPELL_AOE_PYROBLAST = 29978,
|
||||
|
||||
//Creature Spells
|
||||
#define SPELL_CIRCULAR_BLIZZARD 29951 //29952 is the REAL circular blizzard that leaves persistant blizzards that last for 10 seconds
|
||||
#define SPELL_WATERBOLT 31012
|
||||
#define SPELL_SHADOW_PYRO 29978
|
||||
//Creature Spells
|
||||
SPELL_CIRCULAR_BLIZZARD = 29951,
|
||||
SPELL_WATERBOLT = 31012,
|
||||
SPELL_SHADOW_PYRO = 29978,
|
||||
|
||||
//Creatures
|
||||
#define CREATURE_WATER_ELEMENTAL 17167
|
||||
#define CREATURE_SHADOW_OF_ARAN 18254
|
||||
#define CREATURE_ARAN_BLIZZARD 17161
|
||||
//Creatures
|
||||
CREATURE_WATER_ELEMENTAL = 17167,
|
||||
CREATURE_SHADOW_OF_ARAN = 18254,
|
||||
CREATURE_ARAN_BLIZZARD = 17161,
|
||||
};
|
||||
|
||||
enum SuperSpell
|
||||
{
|
||||
@@ -160,12 +157,12 @@ public:
|
||||
|
||||
void KilledUnit(Unit* /*victim*/)
|
||||
{
|
||||
DoScriptText(RAND(SAY_KILL1, SAY_KILL2), me);
|
||||
Talk(SAY_KILL);
|
||||
}
|
||||
|
||||
void JustDied(Unit* /*killer*/)
|
||||
{
|
||||
DoScriptText(SAY_DEATH, me);
|
||||
Talk(SAY_DEATH);
|
||||
|
||||
if (instance)
|
||||
{
|
||||
@@ -176,7 +173,7 @@ public:
|
||||
|
||||
void EnterCombat(Unit* /*who*/)
|
||||
{
|
||||
DoScriptText(RAND(SAY_AGGRO1, SAY_AGGRO2, SAY_AGGRO3), me);
|
||||
Talk(SAY_AGGRO);
|
||||
|
||||
if (instance)
|
||||
{
|
||||
@@ -264,7 +261,7 @@ public:
|
||||
Drinking = true;
|
||||
me->InterruptNonMeleeSpells(false);
|
||||
|
||||
DoScriptText(SAY_DRINK, me);
|
||||
Talk(SAY_DRINK);
|
||||
|
||||
if (!DrinkInturrupted)
|
||||
{
|
||||
@@ -384,7 +381,7 @@ public:
|
||||
switch (LastSuperSpell)
|
||||
{
|
||||
case SUPER_AE:
|
||||
DoScriptText(RAND(SAY_EXPLOSION1, SAY_EXPLOSION2), me);
|
||||
Talk(SAY_EXPLOSION);
|
||||
|
||||
DoCast(me, SPELL_BLINK_CENTER, true);
|
||||
DoCast(me, SPELL_PLAYERPULL, true);
|
||||
@@ -393,7 +390,7 @@ public:
|
||||
break;
|
||||
|
||||
case SUPER_FLAME:
|
||||
DoScriptText(RAND(SAY_FLAMEWREATH1, SAY_FLAMEWREATH2), me);
|
||||
Talk(SAY_FLAMEWREATH);
|
||||
|
||||
FlameWreathTimer = 20000;
|
||||
FlameWreathCheckTime = 500;
|
||||
@@ -406,7 +403,7 @@ public:
|
||||
break;
|
||||
|
||||
case SUPER_BLIZZARD:
|
||||
DoScriptText(RAND(SAY_BLIZZARD1, SAY_BLIZZARD2), me);
|
||||
Talk(SAY_BLIZZARD);
|
||||
|
||||
if (Creature* pSpawn = me->SummonCreature(CREATURE_ARAN_BLIZZARD, 0.0f, 0.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_DESPAWN, 25000))
|
||||
{
|
||||
@@ -432,7 +429,7 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
DoScriptText(SAY_ELEMENTALS, me);
|
||||
Talk(SAY_ELEMENTALS);
|
||||
}
|
||||
|
||||
if (BerserkTimer <= diff)
|
||||
@@ -446,7 +443,7 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
DoScriptText(SAY_TIMEOVER, me);
|
||||
Talk(SAY_TIMEOVER);
|
||||
|
||||
BerserkTimer = 60000;
|
||||
} else BerserkTimer -= diff;
|
||||
|
||||
@@ -28,35 +28,36 @@ EndScriptData */
|
||||
#include "karazhan.h"
|
||||
#include "PassiveAI.h"
|
||||
|
||||
#define SAY_SLAY1 -1532065
|
||||
#define SAY_SLAY2 -1532066
|
||||
#define SAY_DEATH -1532067
|
||||
#define SAY_AGGRO -1532068
|
||||
#define SAY_SACRIFICE1 -1532069
|
||||
#define SAY_SACRIFICE2 -1532070
|
||||
#define SAY_SUMMON1 -1532071
|
||||
#define SAY_SUMMON2 -1532072
|
||||
enum TerestianIllhoof
|
||||
{
|
||||
SAY_SLAY = 1,
|
||||
SAY_DEATH = 2,
|
||||
SAY_AGGRO = 3,
|
||||
SAY_SACRIFICE = 4,
|
||||
SAY_SUMMON = 5,
|
||||
|
||||
#define SPELL_SUMMON_DEMONCHAINS 30120 // Summons demonic chains that maintain the ritual of sacrifice.
|
||||
#define SPELL_DEMON_CHAINS 30206 // Instant - Visual Effect
|
||||
#define SPELL_ENRAGE 23537 // Increases the caster's attack speed by 50% and the Physical damage it deals by 219 to 281 for 10 min.
|
||||
#define SPELL_SHADOW_BOLT 30055 // Hurls a bolt of dark magic at an enemy, inflicting Shadow damage.
|
||||
#define SPELL_SACRIFICE 30115 // Teleports and adds the debuff
|
||||
#define SPELL_BERSERK 32965 // Increases attack speed by 75%. Periodically casts Shadow Bolt Volley.
|
||||
#define SPELL_SUMMON_FIENDISIMP 30184 // Summons a Fiendish Imp.
|
||||
#define SPELL_SUMMON_IMP 30066 // Summons Kil'rek
|
||||
SPELL_SUMMON_DEMONCHAINS = 30120, // Summons demonic chains that maintain the ritual of sacrifice.
|
||||
SPELL_DEMON_CHAINS = 30206, // Instant - Visual Effect
|
||||
SPELL_ENRAGE = 23537, // Increases the caster's attack speed by 50% and the Physical damage it deals by 219 to 281 for 10 min.
|
||||
SPELL_SHADOW_BOLT = 30055, // Hurls a bolt of dark magic at an enemy, inflicting Shadow damage.
|
||||
SPELL_SACRIFICE = 30115, // Teleports and adds the debuff
|
||||
SPELL_BERSERK = 32965, // Increases attack speed by 75%. Periodically casts Shadow Bolt Volley.
|
||||
SPELL_SUMMON_FIENDISIMP = 30184, // Summons a Fiendish Imp.
|
||||
SPELL_SUMMON_IMP = 30066, // Summons Kil'rek
|
||||
|
||||
#define SPELL_FIENDISH_PORTAL 30171 // Opens portal and summons Fiendish Portal, 2 sec cast
|
||||
#define SPELL_FIENDISH_PORTAL_1 30179 // Opens portal and summons Fiendish Portal, instant cast
|
||||
SPELL_FIENDISH_PORTAL = 30171, // Opens portal and summons Fiendish Portal, 2 sec cast
|
||||
SPELL_FIENDISH_PORTAL_1 = 30179, // Opens portal and summons Fiendish Portal, instant cast
|
||||
|
||||
#define SPELL_FIREBOLT 30050 // Blasts a target for 150 Fire damage.
|
||||
#define SPELL_BROKEN_PACT 30065 // All damage taken increased by 25%.
|
||||
#define SPELL_AMPLIFY_FLAMES 30053 // Increases the Fire damage taken by an enemy by 500 for 25 sec.
|
||||
SPELL_FIREBOLT = 30050, // Blasts a target for 150 Fire damage.
|
||||
SPELL_BROKEN_PACT = 30065, // All damage taken increased by 25%.
|
||||
SPELL_AMPLIFY_FLAMES = 30053, // Increases the Fire damage taken by an enemy by 500 for 25 sec.
|
||||
|
||||
CREATURE_DEMONCHAINS = 17248,
|
||||
CREATURE_FIENDISHIMP = 17267,
|
||||
CREATURE_PORTAL = 17265,
|
||||
CREATURE_KILREK = 17229,
|
||||
};
|
||||
|
||||
#define CREATURE_DEMONCHAINS 17248
|
||||
#define CREATURE_FIENDISHIMP 17267
|
||||
#define CREATURE_PORTAL 17265
|
||||
#define CREATURE_KILREK 17229
|
||||
|
||||
class mob_kilrek : public CreatureScript
|
||||
{
|
||||
@@ -319,7 +320,7 @@ public:
|
||||
|
||||
void EnterCombat(Unit* /*who*/)
|
||||
{
|
||||
DoScriptText(SAY_AGGRO, me);
|
||||
Talk(SAY_AGGRO);
|
||||
}
|
||||
|
||||
void JustSummoned(Creature* summoned)
|
||||
@@ -331,7 +332,7 @@ public:
|
||||
|
||||
if (summoned->GetUInt32Value(UNIT_CREATED_BY_SPELL) == SPELL_FIENDISH_PORTAL_1)
|
||||
{
|
||||
DoScriptText(RAND(SAY_SUMMON1, SAY_SUMMON2), me);
|
||||
Talk(SAY_SUMMON);
|
||||
SummonedPortals = true;
|
||||
}
|
||||
}
|
||||
@@ -339,7 +340,7 @@ public:
|
||||
|
||||
void KilledUnit(Unit* /*victim*/)
|
||||
{
|
||||
DoScriptText(RAND(SAY_SLAY1, SAY_SLAY2), me);
|
||||
Talk(SAY_SLAY);
|
||||
}
|
||||
|
||||
void JustDied(Unit* /*killer*/)
|
||||
@@ -355,7 +356,7 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
DoScriptText(SAY_DEATH, me);
|
||||
Talk(SAY_DEATH);
|
||||
|
||||
if (instance)
|
||||
instance->SetData(TYPE_TERESTIAN, DONE);
|
||||
@@ -378,7 +379,7 @@ public:
|
||||
{
|
||||
CAST_AI(mob_demon_chain::mob_demon_chainAI, Chains->AI())->SacrificeGUID = target->GetGUID();
|
||||
Chains->CastSpell(Chains, SPELL_DEMON_CHAINS, true);
|
||||
DoScriptText(RAND(SAY_SACRIFICE1, SAY_SACRIFICE2), me);
|
||||
Talk(SAY_SACRIFICE);
|
||||
SacrificeTimer = 30000;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -33,64 +33,69 @@ EndScriptData */
|
||||
/***********************************/
|
||||
/*** OPERA WIZARD OF OZ EVENT *****/
|
||||
/*********************************/
|
||||
enum Says
|
||||
{
|
||||
SAY_DOROTHEE_DEATH = 0,
|
||||
SAY_DOROTHEE_SUMMON = 1,
|
||||
SAY_DOROTHEE_TITO_DEATH = 2,
|
||||
SAY_DOROTHEE_AGGRO = 3,
|
||||
|
||||
#define SAY_DOROTHEE_DEATH -1532025
|
||||
#define SAY_DOROTHEE_SUMMON -1532026
|
||||
#define SAY_DOROTHEE_TITO_DEATH -1532027
|
||||
#define SAY_DOROTHEE_AGGRO -1532028
|
||||
SAY_ROAR_AGGRO = 0,
|
||||
SAY_ROAR_DEATH = 1,
|
||||
SAY_ROAR_SLAY = 2,
|
||||
|
||||
#define SAY_ROAR_AGGRO -1532029
|
||||
#define SAY_ROAR_DEATH -1532030
|
||||
#define SAY_ROAR_SLAY -1532031
|
||||
SAY_STRAWMAN_AGGRO = 0,
|
||||
SAY_STRAWMAN_DEATH = 1,
|
||||
SAY_STRAWMAN_SLAY = 2,
|
||||
|
||||
#define SAY_STRAWMAN_AGGRO -1532032
|
||||
#define SAY_STRAWMAN_DEATH -1532033
|
||||
#define SAY_STRAWMAN_SLAY -1532034
|
||||
SAY_TINHEAD_AGGRO = 0,
|
||||
SAY_TINHEAD_DEATH = 1,
|
||||
SAY_TINHEAD_SLAY = 2,
|
||||
EMOTE_RUST = 3,
|
||||
|
||||
#define SAY_TINHEAD_AGGRO -1532035
|
||||
#define SAY_TINHEAD_DEATH -1532036
|
||||
#define SAY_TINHEAD_SLAY -1532037
|
||||
#define EMOTE_RUST -1532038
|
||||
SAY_CRONE_AGGRO = 0,
|
||||
SAY_CRONE_DEATH = 1,
|
||||
SAY_CRONE_SLAY = 2,
|
||||
};
|
||||
|
||||
#define SAY_CRONE_AGGRO -1532039
|
||||
#define SAY_CRONE_AGGRO2 -1532040
|
||||
#define SAY_CRONE_DEATH -1532041
|
||||
#define SAY_CRONE_SLAY -1532042
|
||||
enum Spells
|
||||
{
|
||||
// Dorothee
|
||||
SPELL_WATERBOLT = 31012,
|
||||
SPELL_SCREAM = 31013,
|
||||
SPELL_SUMMONTITO = 31014,
|
||||
|
||||
/**** Spells ****/
|
||||
// Dorothee
|
||||
#define SPELL_WATERBOLT 31012
|
||||
#define SPELL_SCREAM 31013
|
||||
#define SPELL_SUMMONTITO 31014
|
||||
// Tito
|
||||
SPELL_YIPPING = 31015,
|
||||
|
||||
// Tito
|
||||
#define SPELL_YIPPING 31015
|
||||
// Strawman
|
||||
SPELL_BRAIN_BASH = 31046,
|
||||
SPELL_BRAIN_WIPE = 31069,
|
||||
SPELL_BURNING_STRAW = 31075,
|
||||
|
||||
// Strawman
|
||||
#define SPELL_BRAIN_BASH 31046
|
||||
#define SPELL_BRAIN_WIPE 31069
|
||||
#define SPELL_BURNING_STRAW 31075
|
||||
// Tinhead
|
||||
SPELL_CLEAVE = 31043,
|
||||
SPELL_RUST = 31086,
|
||||
|
||||
// Tinhead
|
||||
#define SPELL_CLEAVE 31043
|
||||
#define SPELL_RUST 31086
|
||||
// Roar
|
||||
SPELL_MANGLE = 31041,
|
||||
SPELL_SHRED = 31042,
|
||||
SPELL_FRIGHTENED_SCREAM = 31013,
|
||||
|
||||
// Roar
|
||||
#define SPELL_MANGLE 31041
|
||||
#define SPELL_SHRED 31042
|
||||
#define SPELL_FRIGHTENED_SCREAM 31013
|
||||
// Crone
|
||||
SPELL_CHAIN_LIGHTNING = 32337,
|
||||
|
||||
// Crone
|
||||
#define SPELL_CHAIN_LIGHTNING 32337
|
||||
// Cyclone
|
||||
SPELL_KNOCKBACK = 32334,
|
||||
SPELL_CYCLONE_VISUAL = 32332,
|
||||
};
|
||||
|
||||
// Cyclone
|
||||
#define SPELL_KNOCKBACK 32334
|
||||
#define SPELL_CYCLONE_VISUAL 32332
|
||||
|
||||
/** Creature Entries **/
|
||||
#define CREATURE_TITO 17548
|
||||
#define CREATURE_CYCLONE 18412
|
||||
#define CREATURE_CRONE 18168
|
||||
enum Creatures
|
||||
{
|
||||
CREATURE_TITO = 17548,
|
||||
CREATURE_CYCLONE = 18412,
|
||||
CREATURE_CRONE = 18168,
|
||||
};
|
||||
|
||||
void SummonCroneIfReady(InstanceScript* instance, Creature* creature)
|
||||
{
|
||||
@@ -148,7 +153,7 @@ public:
|
||||
|
||||
void EnterCombat(Unit* /*who*/)
|
||||
{
|
||||
DoScriptText(SAY_DOROTHEE_AGGRO, me);
|
||||
Talk(SAY_DOROTHEE_AGGRO);
|
||||
}
|
||||
|
||||
void JustReachedHome()
|
||||
@@ -160,7 +165,7 @@ public:
|
||||
|
||||
void JustDied(Unit* /*killer*/)
|
||||
{
|
||||
DoScriptText(SAY_DOROTHEE_DEATH, me);
|
||||
Talk(SAY_DOROTHEE_DEATH);
|
||||
|
||||
if (instance)
|
||||
SummonCroneIfReady(instance, me);
|
||||
@@ -253,7 +258,7 @@ public:
|
||||
if (Dorothee && Dorothee->isAlive())
|
||||
{
|
||||
CAST_AI(boss_dorothee::boss_dorotheeAI, Dorothee->AI())->TitoDied = true;
|
||||
DoScriptText(SAY_DOROTHEE_TITO_DEATH, Dorothee);
|
||||
Talk(SAY_DOROTHEE_TITO_DEATH, Dorothee->GetGUID());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -278,7 +283,7 @@ void boss_dorothee::boss_dorotheeAI::SummonTito()
|
||||
{
|
||||
if (Creature* pTito = me->SummonCreature(CREATURE_TITO, 0.0f, 0.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000))
|
||||
{
|
||||
DoScriptText(SAY_DOROTHEE_SUMMON, me);
|
||||
Talk(SAY_DOROTHEE_SUMMON);
|
||||
CAST_AI(mob_tito::mob_titoAI, pTito->AI())->DorotheeGUID = me->GetGUID();
|
||||
pTito->AI()->AttackStart(me->getVictim());
|
||||
SummonedTito = true;
|
||||
@@ -334,7 +339,7 @@ public:
|
||||
|
||||
void EnterCombat(Unit* /*who*/)
|
||||
{
|
||||
DoScriptText(SAY_STRAWMAN_AGGRO, me);
|
||||
Talk(SAY_STRAWMAN_AGGRO);
|
||||
}
|
||||
|
||||
void JustReachedHome()
|
||||
@@ -357,7 +362,7 @@ public:
|
||||
|
||||
void JustDied(Unit* /*killer*/)
|
||||
{
|
||||
DoScriptText(SAY_STRAWMAN_DEATH, me);
|
||||
Talk(SAY_STRAWMAN_DEATH);
|
||||
|
||||
if (instance)
|
||||
SummonCroneIfReady(instance, me);
|
||||
@@ -365,7 +370,7 @@ public:
|
||||
|
||||
void KilledUnit(Unit* /*victim*/)
|
||||
{
|
||||
DoScriptText(SAY_STRAWMAN_SLAY, me);
|
||||
Talk(SAY_STRAWMAN_SLAY);
|
||||
}
|
||||
|
||||
void UpdateAI(const uint32 diff)
|
||||
@@ -436,7 +441,7 @@ public:
|
||||
|
||||
void EnterCombat(Unit* /*who*/)
|
||||
{
|
||||
DoScriptText(SAY_TINHEAD_AGGRO, me);
|
||||
Talk(SAY_TINHEAD_AGGRO);
|
||||
}
|
||||
|
||||
void JustReachedHome()
|
||||
@@ -462,7 +467,7 @@ public:
|
||||
|
||||
void JustDied(Unit* /*killer*/)
|
||||
{
|
||||
DoScriptText(SAY_TINHEAD_DEATH, me);
|
||||
Talk(SAY_TINHEAD_DEATH);
|
||||
|
||||
if (instance)
|
||||
SummonCroneIfReady(instance, me);
|
||||
@@ -470,7 +475,7 @@ public:
|
||||
|
||||
void KilledUnit(Unit* /*victim*/)
|
||||
{
|
||||
DoScriptText(SAY_TINHEAD_SLAY, me);
|
||||
Talk(SAY_TINHEAD_SLAY);
|
||||
}
|
||||
|
||||
void UpdateAI(const uint32 diff)
|
||||
@@ -498,7 +503,7 @@ public:
|
||||
if (RustTimer <= diff)
|
||||
{
|
||||
++RustCount;
|
||||
DoScriptText(EMOTE_RUST, me);
|
||||
Talk(EMOTE_RUST);
|
||||
DoCast(me, SPELL_RUST);
|
||||
RustTimer = 6000;
|
||||
} else RustTimer -= diff;
|
||||
@@ -559,7 +564,7 @@ public:
|
||||
|
||||
void EnterCombat(Unit* /*who*/)
|
||||
{
|
||||
DoScriptText(SAY_ROAR_AGGRO, me);
|
||||
Talk(SAY_ROAR_AGGRO);
|
||||
}
|
||||
|
||||
void JustReachedHome()
|
||||
@@ -569,7 +574,7 @@ public:
|
||||
|
||||
void JustDied(Unit* /*killer*/)
|
||||
{
|
||||
DoScriptText(SAY_ROAR_DEATH, me);
|
||||
Talk(SAY_ROAR_DEATH);
|
||||
|
||||
if (instance)
|
||||
SummonCroneIfReady(instance, me);
|
||||
@@ -577,7 +582,7 @@ public:
|
||||
|
||||
void KilledUnit(Unit* /*victim*/)
|
||||
{
|
||||
DoScriptText(SAY_ROAR_SLAY, me);
|
||||
Talk(SAY_ROAR_SLAY);
|
||||
}
|
||||
|
||||
void UpdateAI(const uint32 diff)
|
||||
@@ -650,16 +655,21 @@ public:
|
||||
me->DespawnOrUnsummon();
|
||||
}
|
||||
|
||||
void KilledUnit(Unit* /*victim*/)
|
||||
{
|
||||
Talk(SAY_CRONE_SLAY);
|
||||
}
|
||||
|
||||
void EnterCombat(Unit* /*who*/)
|
||||
{
|
||||
DoScriptText(RAND(SAY_CRONE_AGGRO, SAY_CRONE_AGGRO2), me);
|
||||
Talk(SAY_CRONE_AGGRO);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
|
||||
}
|
||||
|
||||
void JustDied(Unit* /*killer*/)
|
||||
{
|
||||
DoScriptText(SAY_CRONE_DEATH, me);
|
||||
Talk(SAY_CRONE_DEATH);
|
||||
|
||||
if (instance)
|
||||
{
|
||||
@@ -744,22 +754,24 @@ public:
|
||||
/**************************************/
|
||||
/**** Opera Red Riding Hood Event* ***/
|
||||
/************************************/
|
||||
enum RedRidingHood
|
||||
{
|
||||
SAY_WOLF_AGGRO = 0,
|
||||
SAY_WOLF_SLAY = 1,
|
||||
SAY_WOLF_HOOD = 2,
|
||||
SOUND_WOLF_DEATH = 9275,
|
||||
|
||||
/**** Yells for the Wolf ****/
|
||||
#define SAY_WOLF_AGGRO -1532043
|
||||
#define SAY_WOLF_SLAY -1532044
|
||||
#define SAY_WOLF_HOOD -1532045
|
||||
#define SOUND_WOLF_DEATH 9275 //Only sound on death, no text.
|
||||
SPELL_LITTLE_RED_RIDING_HOOD = 30768,
|
||||
SPELL_TERRIFYING_HOWL = 30752,
|
||||
SPELL_WIDE_SWIPE = 30761,
|
||||
|
||||
CREATURE_BIG_BAD_WOLF = 17521,
|
||||
};
|
||||
|
||||
/**** Spells For The Wolf ****/
|
||||
#define SPELL_LITTLE_RED_RIDING_HOOD 30768
|
||||
#define SPELL_TERRIFYING_HOWL 30752
|
||||
#define SPELL_WIDE_SWIPE 30761
|
||||
|
||||
#define GOSSIP_GRANDMA "What phat lewtz you have grandmother?"
|
||||
|
||||
/**** The Wolf's Entry* ***/
|
||||
#define CREATURE_BIG_BAD_WOLF 17521
|
||||
|
||||
|
||||
class npc_grandmother : public CreatureScript
|
||||
{
|
||||
@@ -831,7 +843,12 @@ public:
|
||||
|
||||
void EnterCombat(Unit* /*who*/)
|
||||
{
|
||||
DoScriptText(SAY_WOLF_AGGRO, me);
|
||||
Talk(SAY_WOLF_AGGRO);
|
||||
}
|
||||
|
||||
void KilledUnit(Unit* /*victim*/)
|
||||
{
|
||||
Talk(SAY_WOLF_SLAY);
|
||||
}
|
||||
|
||||
void JustReachedHome()
|
||||
@@ -867,7 +884,7 @@ public:
|
||||
{
|
||||
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
|
||||
{
|
||||
DoScriptText(SAY_WOLF_HOOD, me);
|
||||
Talk(SAY_WOLF_HOOD);
|
||||
DoCast(target, SPELL_LITTLE_RED_RIDING_HOOD, true);
|
||||
TempThreat = DoGetThreat(target);
|
||||
if (TempThreat)
|
||||
@@ -917,41 +934,41 @@ public:
|
||||
/******** Opera Romeo and Juliet Event* ******/
|
||||
/********************************************/
|
||||
|
||||
/**** Speech *****/
|
||||
#define SAY_JULIANNE_AGGRO -1532046
|
||||
#define SAY_JULIANNE_ENTER -1532047
|
||||
#define SAY_JULIANNE_DEATH01 -1532048
|
||||
#define SAY_JULIANNE_DEATH02 -1532049
|
||||
#define SAY_JULIANNE_RESURRECT -1532050
|
||||
#define SAY_JULIANNE_SLAY -1532051
|
||||
enum JulianneRomulo
|
||||
{
|
||||
/**** Speech *****/
|
||||
SAY_JULIANNE_AGGRO = 0,
|
||||
SAY_JULIANNE_ENTER = 1,
|
||||
SAY_JULIANNE_DEATH01 = 2,
|
||||
SAY_JULIANNE_DEATH02 = 3,
|
||||
SAY_JULIANNE_RESURRECT = 4,
|
||||
SAY_JULIANNE_SLAY = 5,
|
||||
|
||||
#define SAY_ROMULO_AGGRO -1532052
|
||||
#define SAY_ROMULO_DEATH -1532053
|
||||
#define SAY_ROMULO_ENTER -1532054
|
||||
#define SAY_ROMULO_RESURRECT -1532055
|
||||
#define SAY_ROMULO_SLAY -1532056
|
||||
SAY_ROMULO_AGGRO = 0,
|
||||
SAY_ROMULO_DEATH = 1,
|
||||
SAY_ROMULO_ENTER = 2,
|
||||
SAY_ROMULO_RESURRECT = 3,
|
||||
SAY_ROMULO_SLAY = 4,
|
||||
|
||||
/***** Spells For Julianne *****/
|
||||
#define SPELL_BLINDING_PASSION 30890
|
||||
#define SPELL_DEVOTION 30887
|
||||
#define SPELL_ETERNAL_AFFECTION 30878
|
||||
#define SPELL_POWERFUL_ATTRACTION 30889
|
||||
#define SPELL_DRINK_POISON 30907
|
||||
SPELL_BLINDING_PASSION = 30890,
|
||||
SPELL_DEVOTION = 30887,
|
||||
SPELL_ETERNAL_AFFECTION = 30878,
|
||||
SPELL_POWERFUL_ATTRACTION = 30889,
|
||||
SPELL_DRINK_POISON = 30907,
|
||||
|
||||
/***** Spells For Romulo ****/
|
||||
#define SPELL_BACKWARD_LUNGE 30815
|
||||
#define SPELL_DARING 30841
|
||||
#define SPELL_DEADLY_SWATHE 30817
|
||||
#define SPELL_POISON_THRUST 30822
|
||||
SPELL_BACKWARD_LUNGE = 30815,
|
||||
SPELL_DARING = 30841,
|
||||
SPELL_DEADLY_SWATHE = 30817,
|
||||
SPELL_POISON_THRUST = 30822,
|
||||
|
||||
/**** Other Misc. Spells ****/
|
||||
#define SPELL_UNDYING_LOVE 30951
|
||||
#define SPELL_RES_VISUAL 24171
|
||||
SPELL_UNDYING_LOVE = 30951,
|
||||
SPELL_RES_VISUAL = 24171,
|
||||
|
||||
CREATURE_ROMULO = 17533,
|
||||
ROMULO_X = -10900,
|
||||
ROMULO_Y = -1758,
|
||||
};
|
||||
|
||||
/*** Misc. Information ****/
|
||||
#define CREATURE_ROMULO 17533
|
||||
#define ROMULO_X -10900
|
||||
#define ROMULO_Y -1758
|
||||
|
||||
enum RAJPhase
|
||||
{
|
||||
@@ -1078,7 +1095,7 @@ public:
|
||||
{
|
||||
if (Spell->Id == SPELL_DRINK_POISON)
|
||||
{
|
||||
DoScriptText(SAY_JULIANNE_DEATH01, me);
|
||||
Talk(SAY_JULIANNE_DEATH01);
|
||||
DrinkPoisonTimer = 2500;
|
||||
}
|
||||
}
|
||||
@@ -1087,7 +1104,7 @@ public:
|
||||
|
||||
void JustDied(Unit* /*killer*/)
|
||||
{
|
||||
DoScriptText(SAY_JULIANNE_DEATH02, me);
|
||||
Talk(SAY_JULIANNE_DEATH02);
|
||||
|
||||
if (instance)
|
||||
{
|
||||
@@ -1101,7 +1118,7 @@ public:
|
||||
|
||||
void KilledUnit(Unit* /*victim*/)
|
||||
{
|
||||
DoScriptText(SAY_JULIANNE_SLAY, me);
|
||||
Talk(SAY_JULIANNE_SLAY);
|
||||
}
|
||||
|
||||
void UpdateAI(const uint32 diff);
|
||||
@@ -1172,7 +1189,7 @@ public:
|
||||
|
||||
if (Phase == PHASE_ROMULO)
|
||||
{
|
||||
DoScriptText(SAY_ROMULO_DEATH, me);
|
||||
Talk(SAY_ROMULO_DEATH);
|
||||
PretendToDie(me);
|
||||
IsFakingDeath = true;
|
||||
Phase = PHASE_BOTH;
|
||||
@@ -1219,7 +1236,7 @@ public:
|
||||
|
||||
void EnterCombat(Unit* /*who*/)
|
||||
{
|
||||
DoScriptText(SAY_ROMULO_AGGRO, me);
|
||||
Talk(SAY_ROMULO_AGGRO);
|
||||
if (JulianneGUID)
|
||||
{
|
||||
Creature* Julianne = (Unit::GetCreature((*me), JulianneGUID));
|
||||
@@ -1241,7 +1258,7 @@ public:
|
||||
|
||||
void JustDied(Unit* /*killer*/)
|
||||
{
|
||||
DoScriptText(SAY_ROMULO_DEATH, me);
|
||||
Talk(SAY_ROMULO_DEATH);
|
||||
|
||||
if (instance)
|
||||
{
|
||||
@@ -1256,7 +1273,7 @@ public:
|
||||
|
||||
void KilledUnit(Unit* /*victim*/)
|
||||
{
|
||||
DoScriptText(SAY_ROMULO_SLAY, me);
|
||||
Talk(SAY_ROMULO_SLAY);
|
||||
}
|
||||
|
||||
void UpdateAI(const uint32 diff)
|
||||
@@ -1271,7 +1288,7 @@ public:
|
||||
Creature* Julianne = (Unit::GetCreature((*me), JulianneGUID));
|
||||
if (Julianne && CAST_AI(boss_julianne::boss_julianneAI, Julianne->AI())->IsFakingDeath)
|
||||
{
|
||||
DoScriptText(SAY_ROMULO_RESURRECT, me);
|
||||
Talk(SAY_ROMULO_RESURRECT);
|
||||
Resurrect(Julianne);
|
||||
CAST_AI(boss_julianne::boss_julianneAI, Julianne->AI())->IsFakingDeath = false;
|
||||
JulianneDead = false;
|
||||
@@ -1320,7 +1337,7 @@ void boss_julianne::boss_julianneAI::UpdateAI(const uint32 diff)
|
||||
{
|
||||
if (EntryYellTimer <= diff)
|
||||
{
|
||||
DoScriptText(SAY_JULIANNE_ENTER, me);
|
||||
Talk(SAY_JULIANNE_ENTER);
|
||||
EntryYellTimer = 0;
|
||||
} else EntryYellTimer -= diff;
|
||||
}
|
||||
@@ -1329,7 +1346,7 @@ void boss_julianne::boss_julianneAI::UpdateAI(const uint32 diff)
|
||||
{
|
||||
if (AggroYellTimer <= diff)
|
||||
{
|
||||
DoScriptText(SAY_JULIANNE_AGGRO, me);
|
||||
Talk(SAY_JULIANNE_AGGRO);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->setFaction(16);
|
||||
AggroYellTimer = 0;
|
||||
@@ -1391,7 +1408,7 @@ void boss_julianne::boss_julianneAI::UpdateAI(const uint32 diff)
|
||||
Creature* Romulo = (Unit::GetCreature((*me), RomuloGUID));
|
||||
if (Romulo && CAST_AI(boss_romulo::boss_romuloAI, Romulo->AI())->IsFakingDeath)
|
||||
{
|
||||
DoScriptText(SAY_JULIANNE_RESURRECT, me);
|
||||
Talk(SAY_JULIANNE_RESURRECT);
|
||||
Resurrect(Romulo);
|
||||
CAST_AI(boss_romulo::boss_romuloAI, Romulo->AI())->IsFakingDeath = false;
|
||||
RomuloDead = false;
|
||||
|
||||
@@ -63,26 +63,26 @@ struct Dialogue
|
||||
|
||||
static Dialogue OzDialogue[]=
|
||||
{
|
||||
{-1532103, 6000},
|
||||
{-1532104, 18000},
|
||||
{-1532105, 9000},
|
||||
{-1532106, 15000}
|
||||
{0, 6000},
|
||||
{1, 18000},
|
||||
{2, 9000},
|
||||
{3, 15000}
|
||||
};
|
||||
|
||||
static Dialogue HoodDialogue[]=
|
||||
{
|
||||
{-1532107, 6000},
|
||||
{-1532108, 10000},
|
||||
{-1532109, 14000},
|
||||
{-1532110, 15000}
|
||||
{4, 6000},
|
||||
{5, 10000},
|
||||
{6, 14000},
|
||||
{7, 15000}
|
||||
};
|
||||
|
||||
static Dialogue RAJDialogue[]=
|
||||
{
|
||||
{-1532111, 5000},
|
||||
{-1532112, 7000},
|
||||
{-1532113, 14000},
|
||||
{-1532114, 14000}
|
||||
{8, 5000},
|
||||
{9, 7000},
|
||||
{10, 14000},
|
||||
{11, 14000}
|
||||
};
|
||||
|
||||
// Entries and spawn locations for creatures in Oz event
|
||||
@@ -225,7 +225,8 @@ public:
|
||||
}
|
||||
|
||||
if (text)
|
||||
DoScriptText(text, me);
|
||||
CreatureAI::Talk(text);
|
||||
|
||||
}
|
||||
|
||||
void PrepareEncounter()
|
||||
|
||||
@@ -28,8 +28,8 @@ EndScriptData */
|
||||
|
||||
enum eEnums
|
||||
{
|
||||
SAY_AGGRO = -1189019,
|
||||
SAY_SPECIALAE = -1189020,
|
||||
SAY_AGGRO = 0,
|
||||
SAY_SPECIALAE = 1,
|
||||
|
||||
SPELL_POLYMORPH = 13323,
|
||||
SPELL_AOESILENCE = 8988,
|
||||
@@ -69,7 +69,7 @@ public:
|
||||
|
||||
void EnterCombat(Unit* /*who*/)
|
||||
{
|
||||
DoScriptText(SAY_AGGRO, me);
|
||||
Talk(SAY_AGGRO);
|
||||
}
|
||||
|
||||
void UpdateAI(const uint32 diff)
|
||||
@@ -93,7 +93,7 @@ public:
|
||||
if (me->IsNonMeleeSpellCasted(false))
|
||||
return;
|
||||
|
||||
DoScriptText(SAY_SPECIALAE, me);
|
||||
Talk(SAY_SPECIALAE);
|
||||
DoCast(me, SPELL_ARCANEBUBBLE);
|
||||
|
||||
bCanDetonate = true;
|
||||
|
||||
@@ -28,9 +28,9 @@ EndScriptData */
|
||||
|
||||
enum eEnums
|
||||
{
|
||||
SAY_AGGRO = -1189016,
|
||||
SAY_HEALTH = -1189017,
|
||||
SAY_KILL = -1189018,
|
||||
SAY_AGGRO = 0,
|
||||
SAY_HEALTH = 1,
|
||||
SAY_KILL = 2,
|
||||
|
||||
SPELL_FLAMESHOCK = 8053,
|
||||
SPELL_SHADOWBOLT = 1106,
|
||||
@@ -69,12 +69,12 @@ public:
|
||||
|
||||
void EnterCombat(Unit* /*who*/)
|
||||
{
|
||||
DoScriptText(SAY_AGGRO, me);
|
||||
Talk(SAY_AGGRO);
|
||||
}
|
||||
|
||||
void KilledUnit(Unit* /*Victim*/)
|
||||
{
|
||||
DoScriptText(SAY_KILL, me);
|
||||
Talk(SAY_KILL);
|
||||
}
|
||||
|
||||
void UpdateAI(const uint32 diff)
|
||||
@@ -85,7 +85,7 @@ public:
|
||||
//If we are <35% hp
|
||||
if (!HpYell && !HealthAbovePct(35))
|
||||
{
|
||||
DoScriptText(SAY_HEALTH, me);
|
||||
Talk(SAY_HEALTH);
|
||||
HpYell = true;
|
||||
}
|
||||
|
||||
|
||||
@@ -34,13 +34,14 @@ EndScriptData */
|
||||
//this texts are already used by 3975 and 3976
|
||||
enum Says
|
||||
{
|
||||
SAY_ENTRANCE = -1189001,
|
||||
SAY_REJOINED = -1189002,
|
||||
SAY_LOST_HEAD = -1189003,
|
||||
SAY_CONFLAGRATION = -1189004,
|
||||
SAY_SPROUTING_PUMPKINS = -1189005,
|
||||
SAY_PLAYER_DEATH = -1189006,
|
||||
SAY_DEATH = -1189007
|
||||
SAY_LOST_HEAD = 0,
|
||||
SAY_PLAYER_DEATH = 1,
|
||||
|
||||
SAY_ENTRANCE = 0,
|
||||
SAY_REJOINED = 1,
|
||||
SAY_CONFLAGRATION = 2,
|
||||
SAY_SPROUTING_PUMPKINS = 3,
|
||||
SAY_DEATH = 4,
|
||||
};
|
||||
|
||||
uint32 RandomLaugh[] = {11965, 11975, 11976};
|
||||
@@ -254,7 +255,14 @@ public:
|
||||
void EnterCombat(Unit* /*who*/) {}
|
||||
void SaySound(int32 textEntry, Unit* target = 0)
|
||||
{
|
||||
DoScriptText(textEntry, me, target);
|
||||
if (target)
|
||||
{
|
||||
Talk(textEntry, target->GetGUID());
|
||||
}
|
||||
else
|
||||
{
|
||||
Talk(textEntry);
|
||||
}
|
||||
//DoCast(me, SPELL_HEAD_SPEAKS, true);
|
||||
Creature* speaker = DoSpawnCreature(HELPER, 0, 0, 0, 0, TEMPSUMMON_TIMED_DESPAWN, 1000);
|
||||
if (speaker)
|
||||
@@ -519,7 +527,14 @@ public:
|
||||
|
||||
void SaySound(int32 textEntry, Unit* target = 0)
|
||||
{
|
||||
DoScriptText(textEntry, me, target);
|
||||
if (target)
|
||||
{
|
||||
Talk(textEntry, target->GetGUID());
|
||||
}
|
||||
else
|
||||
{
|
||||
Talk(textEntry);
|
||||
}
|
||||
laugh += 4000;
|
||||
}
|
||||
|
||||
|
||||
@@ -29,15 +29,11 @@ EndScriptData */
|
||||
|
||||
enum Says
|
||||
{
|
||||
SAY_AGGRO = -1189000,
|
||||
SAY_WHIRLWIND = -1189001,
|
||||
SAY_ENRAGE = -1189002,
|
||||
SAY_KILL = -1189003
|
||||
};
|
||||
|
||||
enum Emotes
|
||||
{
|
||||
EMOTE_ENRAGE = -1189004
|
||||
SAY_AGGRO = 0,
|
||||
SAY_WHIRLWIND = 1,
|
||||
SAY_ENRAGE = 2,
|
||||
SAY_KILL = 3,
|
||||
EMOTE_ENRAGE = 4
|
||||
};
|
||||
|
||||
enum Spells
|
||||
@@ -82,13 +78,13 @@ public:
|
||||
|
||||
void EnterCombat(Unit* /*who*/)
|
||||
{
|
||||
DoScriptText(SAY_AGGRO, me);
|
||||
Talk(SAY_AGGRO);
|
||||
DoCast(me, SPELL_RUSHINGCHARGE);
|
||||
}
|
||||
|
||||
void KilledUnit(Unit* /*victim*/)
|
||||
{
|
||||
DoScriptText(SAY_KILL, me);
|
||||
Talk(SAY_KILL);
|
||||
}
|
||||
|
||||
void JustDied(Unit* /*killer*/)
|
||||
@@ -105,8 +101,8 @@ public:
|
||||
//If we are <30% hp goes Enraged
|
||||
if (!Enrage && !HealthAbovePct(30) && !me->IsNonMeleeSpellCasted(false))
|
||||
{
|
||||
DoScriptText(EMOTE_ENRAGE, me);
|
||||
DoScriptText(SAY_ENRAGE, me);
|
||||
Talk(EMOTE_ENRAGE);
|
||||
Talk(SAY_ENRAGE);
|
||||
DoCast(me, SPELL_FRENZY);
|
||||
Enrage = true;
|
||||
}
|
||||
@@ -122,7 +118,7 @@ public:
|
||||
// Whirlwind_Timer
|
||||
if (Whirlwind_Timer <= diff)
|
||||
{
|
||||
DoScriptText(SAY_WHIRLWIND, me);
|
||||
Talk(SAY_WHIRLWIND);
|
||||
DoCast(me->getVictim(), SPELL_WHIRLWIND);
|
||||
Whirlwind_Timer = 30000;
|
||||
}
|
||||
|
||||
@@ -28,7 +28,7 @@ EndScriptData */
|
||||
|
||||
enum eEnums
|
||||
{
|
||||
SAY_AGGRO = -1189021,
|
||||
SAY_AGGRO = 0,
|
||||
SPELL_SUMMONSCARLETHOUND = 17164,
|
||||
SPELL_BLOODLUST = 6742
|
||||
};
|
||||
@@ -56,7 +56,7 @@ public:
|
||||
|
||||
void EnterCombat(Unit* /*who*/)
|
||||
{
|
||||
DoScriptText(SAY_AGGRO, me);
|
||||
Talk(SAY_AGGRO);
|
||||
}
|
||||
|
||||
void UpdateAI(const uint32 diff)
|
||||
|
||||
@@ -29,11 +29,11 @@ EndScriptData */
|
||||
|
||||
enum Says
|
||||
{
|
||||
SAY_AGGRO = -1189011,
|
||||
SAY_HEALTH1 = -1189012,
|
||||
SAY_HEALTH2 = -1189013,
|
||||
SAY_KILL = -1189014,
|
||||
SAY_TRIGGER_VORREL = -1189015
|
||||
SAY_AGGRO = 0,
|
||||
SAY_HEALTH1 = 1,
|
||||
SAY_HEALTH2 = 2,
|
||||
SAY_KILL = 3,
|
||||
SAY_TRIGGER_VORREL = 0
|
||||
};
|
||||
|
||||
enum Spells
|
||||
@@ -71,12 +71,12 @@ public:
|
||||
|
||||
void EnterCombat(Unit* /*who*/)
|
||||
{
|
||||
DoScriptText(SAY_AGGRO, me);
|
||||
Talk(SAY_AGGRO);
|
||||
}
|
||||
|
||||
void KilledUnit(Unit* /*Victim*/)
|
||||
{
|
||||
DoScriptText(SAY_KILL, me);
|
||||
Talk(SAY_KILL);
|
||||
}
|
||||
|
||||
void JustDied(Unit* /*killer*/)
|
||||
@@ -85,8 +85,8 @@ public:
|
||||
return;
|
||||
|
||||
//Any other Actions to do with vorrel? setStandState?
|
||||
if (Unit* vorrel = Unit::GetUnit(*me, instance->GetData64(DATA_VORREL)))
|
||||
DoScriptText(SAY_TRIGGER_VORREL, vorrel);
|
||||
if (Creature* vorrel = Creature::GetCreature(*me, instance->GetData64(DATA_VORREL)))
|
||||
vorrel->AI()->Talk(SAY_TRIGGER_VORREL);
|
||||
}
|
||||
|
||||
void UpdateAI(const uint32 diff)
|
||||
@@ -97,13 +97,13 @@ public:
|
||||
//If we are low on hp Do sayings
|
||||
if (!Yell60 && !HealthAbovePct(60))
|
||||
{
|
||||
DoScriptText(SAY_HEALTH1, me);
|
||||
Talk(SAY_HEALTH1);
|
||||
Yell60 = true;
|
||||
}
|
||||
|
||||
if (!Yell30 && !HealthAbovePct(30))
|
||||
{
|
||||
DoScriptText(SAY_HEALTH2, me);
|
||||
Talk(SAY_HEALTH2);
|
||||
Yell30 = true;
|
||||
}
|
||||
|
||||
|
||||
@@ -31,14 +31,14 @@ EndScriptData */
|
||||
enum Says
|
||||
{
|
||||
//Mograine says
|
||||
SAY_MO_AGGRO = -1189005,
|
||||
SAY_MO_KILL = -1189006,
|
||||
SAY_MO_RESSURECTED = -1189007,
|
||||
SAY_MO_AGGRO = 0,
|
||||
SAY_MO_KILL = 1,
|
||||
SAY_MO_RESSURECTED = 2,
|
||||
|
||||
//Whitemane says
|
||||
SAY_WH_INTRO = -1189008,
|
||||
SAY_WH_KILL = -1189009,
|
||||
SAY_WH_RESSURECT = -1189010,
|
||||
SAY_WH_INTRO = 0,
|
||||
SAY_WH_KILL = 1,
|
||||
SAY_WH_RESSURECT = 2,
|
||||
};
|
||||
|
||||
enum Spells
|
||||
@@ -114,7 +114,7 @@ public:
|
||||
|
||||
void EnterCombat(Unit* /*who*/)
|
||||
{
|
||||
DoScriptText(SAY_MO_AGGRO, me);
|
||||
Talk(SAY_MO_AGGRO);
|
||||
DoCast(me, SPELL_RETRIBUTIONAURA);
|
||||
|
||||
me->CallForHelp(VISIBLE_RANGE);
|
||||
@@ -122,7 +122,7 @@ public:
|
||||
|
||||
void KilledUnit(Unit* /*victim*/)
|
||||
{
|
||||
DoScriptText(SAY_MO_KILL, me);
|
||||
Talk(SAY_MO_KILL);
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*doneBy*/, uint32 &damage)
|
||||
@@ -167,7 +167,7 @@ public:
|
||||
//When hit with ressurection say text
|
||||
if (spell->Id == SPELL_SCARLETRESURRECTION)
|
||||
{
|
||||
DoScriptText(SAY_MO_RESSURECTED, me);
|
||||
Talk(SAY_MO_RESSURECTED);
|
||||
_bFakeDeath = false;
|
||||
|
||||
if (instance)
|
||||
@@ -276,12 +276,12 @@ public:
|
||||
|
||||
void EnterCombat(Unit* /*who*/)
|
||||
{
|
||||
DoScriptText(SAY_WH_INTRO, me);
|
||||
Talk(SAY_WH_INTRO);
|
||||
}
|
||||
|
||||
void KilledUnit(Unit* /*victim*/)
|
||||
{
|
||||
DoScriptText(SAY_WH_KILL, me);
|
||||
Talk(SAY_WH_KILL);
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage)
|
||||
@@ -303,7 +303,7 @@ public:
|
||||
if (Unit* Mograine = Unit::GetUnit(*me, instance->GetData64(DATA_MOGRAINE)))
|
||||
{
|
||||
DoCast(Mograine, SPELL_SCARLETRESURRECTION);
|
||||
DoScriptText(SAY_WH_RESSURECT, me);
|
||||
Talk(SAY_WH_RESSURECT);
|
||||
_bCanResurrect = false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -32,9 +32,9 @@ EndScriptData */
|
||||
|
||||
enum eEnums
|
||||
{
|
||||
SAY_BOSS_DIE_AD = -1033007,
|
||||
SAY_BOSS_DIE_AS = -1033008,
|
||||
SAY_ARCHMAGE = -1033009,
|
||||
SAY_BOSS_DIE_AD = 0,
|
||||
SAY_BOSS_DIE_AS = 0,
|
||||
SAY_ARCHMAGE = 0,
|
||||
|
||||
NPC_ASH = 3850,
|
||||
NPC_ADA = 3849,
|
||||
@@ -139,8 +139,8 @@ public:
|
||||
|
||||
if (pAda && pAda->isAlive() && pAsh && pAsh->isAlive())
|
||||
{
|
||||
DoScriptText(SAY_BOSS_DIE_AD, pAda);
|
||||
DoScriptText(SAY_BOSS_DIE_AS, pAsh);
|
||||
pAda->AI()->Talk(SAY_BOSS_DIE_AD);
|
||||
pAsh->AI()->Talk(SAY_BOSS_DIE_AS);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -257,7 +257,7 @@ public:
|
||||
summon->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
|
||||
summon->SetReactState(REACT_DEFENSIVE);
|
||||
summon->CastSpell(summon, SPELL_ASHCROMBE_TELEPORT, true);
|
||||
DoScriptText(SAY_ARCHMAGE, summon);
|
||||
summon->AI()->Talk(SAY_ARCHMAGE);
|
||||
uiTimer = 2000;
|
||||
uiPhase = 2;
|
||||
break;
|
||||
|
||||
@@ -42,13 +42,13 @@ EndContentData */
|
||||
|
||||
enum eEnums
|
||||
{
|
||||
SAY_FREE_AS = -1033000,
|
||||
SAY_OPEN_DOOR_AS = -1033001,
|
||||
SAY_POST_DOOR_AS = -1033002,
|
||||
SAY_FREE_AD = -1033003,
|
||||
SAY_OPEN_DOOR_AD = -1033004,
|
||||
SAY_POST1_DOOR_AD = -1033005,
|
||||
SAY_POST2_DOOR_AD = -1033006,
|
||||
SAY_FREE_AS = 0,
|
||||
SAY_OPEN_DOOR_AS = 1,
|
||||
SAY_POST_DOOR_AS = 2,
|
||||
SAY_FREE_AD = 0,
|
||||
SAY_OPEN_DOOR_AD = 1,
|
||||
SAY_POST1_DOOR_AD = 2,
|
||||
SAY_POST2_DOOR_AD = 3,
|
||||
|
||||
SPELL_UNLOCK = 6421,
|
||||
NPC_ASH = 3850,
|
||||
@@ -110,15 +110,15 @@ public:
|
||||
{
|
||||
case 0:
|
||||
if (uiNpcEntry == NPC_ASH)
|
||||
DoScriptText(SAY_FREE_AS, me);
|
||||
Talk(SAY_FREE_AS);
|
||||
else
|
||||
DoScriptText(SAY_FREE_AD, me);
|
||||
Talk(SAY_FREE_AD);
|
||||
break;
|
||||
case 10:
|
||||
if (uiNpcEntry == NPC_ASH)
|
||||
DoScriptText(SAY_OPEN_DOOR_AS, me);
|
||||
Talk(SAY_OPEN_DOOR_AS);
|
||||
else
|
||||
DoScriptText(SAY_OPEN_DOOR_AD, me);
|
||||
Talk(SAY_OPEN_DOOR_AD);
|
||||
break;
|
||||
case 11:
|
||||
if (uiNpcEntry == NPC_ASH)
|
||||
@@ -126,16 +126,16 @@ public:
|
||||
break;
|
||||
case 12:
|
||||
if (uiNpcEntry == NPC_ASH)
|
||||
DoScriptText(SAY_POST_DOOR_AS, me);
|
||||
Talk(SAY_POST_DOOR_AS);
|
||||
else
|
||||
DoScriptText(SAY_POST1_DOOR_AD, me);
|
||||
Talk(SAY_POST1_DOOR_AD);
|
||||
|
||||
if (instance)
|
||||
instance->SetData(TYPE_FREE_NPC, DONE);
|
||||
break;
|
||||
case 13:
|
||||
if (uiNpcEntry != NPC_ASH)
|
||||
DoScriptText(SAY_POST2_DOOR_AD, me);
|
||||
Talk(SAY_POST2_DOOR_AD);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -28,41 +28,37 @@ EndScriptData */
|
||||
|
||||
enum Quotes
|
||||
{
|
||||
YELL_INTRO = -1580017,
|
||||
YELL_INTRO_BREAK_ICE = -1580018,
|
||||
YELL_INTRO_CHARGE = -1580019,
|
||||
YELL_INTRO_KILL_MADRIGOSA = -1580020,
|
||||
YELL_INTRO_TAUNT = -1580021,
|
||||
YELL_INTRO = 0,
|
||||
YELL_INTRO_BREAK_ICE = 1,
|
||||
YELL_INTRO_CHARGE = 2,
|
||||
YELL_INTRO_KILL_MADRIGOSA = 3,
|
||||
YELL_INTRO_TAUNT = 4,
|
||||
|
||||
YELL_MADR_ICE_BARRIER = -1580031,
|
||||
YELL_MADR_INTRO = -1580032,
|
||||
YELL_MADR_ICE_BLOCK = -1580033,
|
||||
YELL_MADR_TRAP = -1580034,
|
||||
YELL_MADR_DEATH = -1580035,
|
||||
YELL_AGGRO = 5,
|
||||
YELL_KILL = 6,
|
||||
YELL_LOVE = 7,
|
||||
YELL_BERSERK = 8,
|
||||
YELL_DEATH = 9,
|
||||
|
||||
YELL_AGGRO = -1580022,
|
||||
YELL_KILL1 = -1580023,
|
||||
YELL_KILL2 = -1580024,
|
||||
YELL_KILL3 = -1580025,
|
||||
YELL_LOVE1 = -1580026,
|
||||
YELL_LOVE2 = -1580027,
|
||||
YELL_LOVE3 = -1580028,
|
||||
YELL_BERSERK = -1580029,
|
||||
YELL_DEATH = -1580030
|
||||
YELL_MADR_ICE_BARRIER = 0,
|
||||
YELL_MADR_INTRO = 1,
|
||||
YELL_MADR_ICE_BLOCK = 2,
|
||||
YELL_MADR_TRAP = 3,
|
||||
YELL_MADR_DEATH = 4,
|
||||
};
|
||||
|
||||
enum Spells
|
||||
{
|
||||
SPELL_METEOR_SLASH = 45150,
|
||||
SPELL_BURN = 46394,
|
||||
SPELL_STOMP = 45185,
|
||||
SPELL_BERSERK = 26662,
|
||||
SPELL_DUAL_WIELD = 42459,
|
||||
SPELL_METEOR_SLASH = 45150,
|
||||
SPELL_BURN = 46394,
|
||||
SPELL_STOMP = 45185,
|
||||
SPELL_BERSERK = 26662,
|
||||
SPELL_DUAL_WIELD = 42459,
|
||||
|
||||
SPELL_INTRO_FROST_BLAST = 45203,
|
||||
SPELL_INTRO_FROSTBOLT = 44843,
|
||||
SPELL_INTRO_ENCAPSULATE = 45665,
|
||||
SPELL_INTRO_ENCAPSULATE_CHANELLING = 45661
|
||||
SPELL_INTRO_FROST_BLAST = 45203,
|
||||
SPELL_INTRO_FROSTBOLT = 44843,
|
||||
SPELL_INTRO_ENCAPSULATE = 45665,
|
||||
SPELL_INTRO_ENCAPSULATE_CHANELLING = 45661
|
||||
};
|
||||
|
||||
#define FELMYST 25038
|
||||
@@ -122,7 +118,7 @@ public:
|
||||
|
||||
void EnterCombat(Unit* /*who*/)
|
||||
{
|
||||
DoScriptText(YELL_AGGRO, me);
|
||||
Talk(YELL_AGGRO);
|
||||
|
||||
if (instance)
|
||||
instance->SetData(DATA_BRUTALLUS_EVENT, IN_PROGRESS);
|
||||
@@ -130,12 +126,12 @@ public:
|
||||
|
||||
void KilledUnit(Unit* /*victim*/)
|
||||
{
|
||||
DoScriptText(RAND(YELL_KILL1, YELL_KILL2, YELL_KILL3), me);
|
||||
Talk(YELL_KILL);
|
||||
}
|
||||
|
||||
void JustDied(Unit* /*killer*/)
|
||||
{
|
||||
DoScriptText(YELL_DEATH, me);
|
||||
Talk(YELL_DEATH);
|
||||
|
||||
if (instance)
|
||||
{
|
||||
@@ -199,19 +195,19 @@ public:
|
||||
switch (IntroPhase)
|
||||
{
|
||||
case 0:
|
||||
DoScriptText(YELL_MADR_ICE_BARRIER, Madrigosa);
|
||||
Madrigosa->AI()->Talk(YELL_MADR_ICE_BARRIER);
|
||||
IntroPhaseTimer = 7000;
|
||||
++IntroPhase;
|
||||
break;
|
||||
case 1:
|
||||
me->SetInFront(Madrigosa);
|
||||
Madrigosa->SetInFront(me);
|
||||
DoScriptText(YELL_MADR_INTRO, Madrigosa, me);
|
||||
Madrigosa->AI()->Talk(YELL_MADR_INTRO, me->GetGUID());
|
||||
IntroPhaseTimer = 9000;
|
||||
++IntroPhase;
|
||||
break;
|
||||
case 2:
|
||||
DoScriptText(YELL_INTRO, me, Madrigosa);
|
||||
Talk(YELL_INTRO, Madrigosa->GetGUID());
|
||||
IntroPhaseTimer = 13000;
|
||||
++IntroPhase;
|
||||
break;
|
||||
@@ -225,32 +221,32 @@ public:
|
||||
++IntroPhase;
|
||||
break;
|
||||
case 4:
|
||||
DoScriptText(YELL_INTRO_BREAK_ICE, me);
|
||||
Talk(YELL_INTRO_BREAK_ICE);
|
||||
IntroPhaseTimer = 6000;
|
||||
++IntroPhase;
|
||||
break;
|
||||
case 5:
|
||||
Madrigosa->CastSpell(me, SPELL_INTRO_ENCAPSULATE_CHANELLING, false);
|
||||
DoScriptText(YELL_MADR_TRAP, Madrigosa);
|
||||
Madrigosa->AI()->Talk(YELL_MADR_TRAP);
|
||||
DoCast(me, SPELL_INTRO_ENCAPSULATE);
|
||||
IntroPhaseTimer = 11000;
|
||||
++IntroPhase;
|
||||
break;
|
||||
case 6:
|
||||
DoScriptText(YELL_INTRO_CHARGE, me);
|
||||
Talk(YELL_INTRO_CHARGE);
|
||||
IntroPhaseTimer = 5000;
|
||||
++IntroPhase;
|
||||
break;
|
||||
case 7:
|
||||
me->Kill(Madrigosa);
|
||||
DoScriptText(YELL_MADR_DEATH, Madrigosa);
|
||||
Madrigosa->AI()->Talk(YELL_MADR_DEATH);
|
||||
me->SetFullHealth();
|
||||
me->AttackStop();
|
||||
IntroPhaseTimer = 4000;
|
||||
++IntroPhase;
|
||||
break;
|
||||
case 8:
|
||||
DoScriptText(YELL_INTRO_KILL_MADRIGOSA, me);
|
||||
Talk(YELL_INTRO_KILL_MADRIGOSA);
|
||||
me->SetOrientation(0.14f);
|
||||
me->StopMoving();
|
||||
Madrigosa->setDeathState(CORPSE);
|
||||
@@ -258,7 +254,7 @@ public:
|
||||
++IntroPhase;
|
||||
break;
|
||||
case 9:
|
||||
DoScriptText(YELL_INTRO_TAUNT, me);
|
||||
Talk(YELL_INTRO_TAUNT);
|
||||
IntroPhaseTimer = 5000;
|
||||
++IntroPhase;
|
||||
break;
|
||||
@@ -316,7 +312,7 @@ public:
|
||||
|
||||
if (StompTimer <= diff)
|
||||
{
|
||||
DoScriptText(RAND(YELL_LOVE1, YELL_LOVE2, YELL_LOVE3), me);
|
||||
Talk(YELL_LOVE);
|
||||
DoCast(me->getVictim(), SPELL_STOMP);
|
||||
StompTimer = 30000;
|
||||
} else StompTimer -= diff;
|
||||
@@ -336,7 +332,7 @@ public:
|
||||
|
||||
if (BerserkTimer < diff && !Enraged)
|
||||
{
|
||||
DoScriptText(YELL_BERSERK, me);
|
||||
Talk(YELL_BERSERK);
|
||||
DoCast(me, SPELL_BERSERK);
|
||||
Enraged = true;
|
||||
} else BerserkTimer -= diff;
|
||||
|
||||
@@ -28,35 +28,27 @@ EndScriptData */
|
||||
|
||||
enum Quotes
|
||||
{
|
||||
//Alytesh
|
||||
YELL_CANFLAGRATION = -1580044,
|
||||
YELL_SISTER_SACROLASH_DEAD = -1580045,
|
||||
YELL_ALY_KILL_1 = -1580046,
|
||||
YELL_ALY_KILL_2 = -1580047,
|
||||
YELL_ALY_DEAD = -1580048,
|
||||
YELL_BERSERK = -1580049,
|
||||
YELL_INTRO_SAC_1 = 0,
|
||||
YELL_INTRO_SAC_3 = 1,
|
||||
YELL_INTRO_SAC_5 = 2,
|
||||
YELL_INTRO_SAC_7 = 3,
|
||||
YELL_SAC_DEAD = 4,
|
||||
EMOTE_SHADOW_NOVA = 5,
|
||||
YELL_ENRAGE = 6,
|
||||
YELL_SISTER_ALYTHESS_DEAD = 7,
|
||||
YELL_SAC_KILL = 8,
|
||||
YELL_SHADOW_NOVA = 9,
|
||||
|
||||
//Sacrolash
|
||||
YELL_SHADOW_NOVA = -1580050,
|
||||
YELL_SISTER_ALYTHESS_DEAD = -1580051,
|
||||
YELL_SAC_KILL_1 = -1580052,
|
||||
YELL_SAC_KILL_2 = -1580053,
|
||||
SAY_SAC_DEAD = -1580054,
|
||||
YELL_ENRAGE = -1580055,
|
||||
|
||||
//Intro
|
||||
YELL_INTRO_SAC_1 = -1580056,
|
||||
YELL_INTRO_ALY_2 = -1580057,
|
||||
YELL_INTRO_SAC_3 = -1580058,
|
||||
YELL_INTRO_ALY_4 = -1580059,
|
||||
YELL_INTRO_SAC_5 = -1580060,
|
||||
YELL_INTRO_ALY_6 = -1580061,
|
||||
YELL_INTRO_SAC_7 = -1580062,
|
||||
YELL_INTRO_ALY_8 = -1580063,
|
||||
|
||||
//Emote
|
||||
EMOTE_SHADOW_NOVA = -1580064,
|
||||
EMOTE_CONFLAGRATION = -1580065
|
||||
YELL_INTRO_ALY_2 = 0,
|
||||
YELL_INTRO_ALY_4 = 1,
|
||||
YELL_INTRO_ALY_6 = 2,
|
||||
YELL_INTRO_ALY_8 = 3,
|
||||
EMOTE_CONFLAGRATION = 4,
|
||||
YELL_ALY_KILL = 5,
|
||||
YELL_ALY_DEAD = 6,
|
||||
YELL_SISTER_SACROLASH_DEAD = 7,
|
||||
YELL_CANFLAGRATION = 8,
|
||||
YELL_BERSERK = 9,
|
||||
};
|
||||
|
||||
enum Spells
|
||||
@@ -165,7 +157,7 @@ public:
|
||||
void KilledUnit(Unit* /*victim*/)
|
||||
{
|
||||
if (rand()%4 == 0)
|
||||
DoScriptText(RAND(YELL_SAC_KILL_1, YELL_SAC_KILL_2), me);
|
||||
Talk(YELL_SAC_KILL);
|
||||
}
|
||||
|
||||
void JustDied(Unit* /*killer*/)
|
||||
@@ -173,7 +165,7 @@ public:
|
||||
// only if ALY death
|
||||
if (SisterDeath)
|
||||
{
|
||||
DoScriptText(SAY_SAC_DEAD, me);
|
||||
Talk(YELL_SAC_DEAD);
|
||||
|
||||
if (instance)
|
||||
instance->SetData(DATA_EREDAR_TWINS_EVENT, DONE);
|
||||
@@ -235,7 +227,7 @@ public:
|
||||
Temp = Unit::GetUnit(*me, instance->GetData64(DATA_ALYTHESS));
|
||||
if (Temp && Temp->isDead())
|
||||
{
|
||||
DoScriptText(YELL_SISTER_ALYTHESS_DEAD, me);
|
||||
Talk(YELL_SISTER_ALYTHESS_DEAD);
|
||||
DoCast(me, SPELL_EMPOWER);
|
||||
me->InterruptSpell(CURRENT_GENERIC_SPELL);
|
||||
SisterDeath = true;
|
||||
@@ -275,8 +267,8 @@ public:
|
||||
if (!SisterDeath)
|
||||
{
|
||||
if (target)
|
||||
DoScriptText(EMOTE_SHADOW_NOVA, me, target);
|
||||
DoScriptText(YELL_SHADOW_NOVA, me);
|
||||
Talk(EMOTE_SHADOW_NOVA, target->GetGUID());
|
||||
Talk(YELL_SHADOW_NOVA);
|
||||
}
|
||||
ShadownovaTimer = 30000+(rand()%5000);
|
||||
}
|
||||
@@ -324,7 +316,7 @@ public:
|
||||
if (EnrageTimer < diff && !Enraged)
|
||||
{
|
||||
me->InterruptSpell(CURRENT_GENERIC_SPELL);
|
||||
DoScriptText(YELL_ENRAGE, me);
|
||||
Talk(YELL_ENRAGE);
|
||||
DoCast(me, SPELL_ENRAGE);
|
||||
Enraged = true;
|
||||
} else EnrageTimer -= diff;
|
||||
@@ -457,7 +449,7 @@ public:
|
||||
{
|
||||
if (rand()%4 == 0)
|
||||
{
|
||||
DoScriptText(RAND(YELL_ALY_KILL_1, YELL_ALY_KILL_2), me);
|
||||
Talk(YELL_ALY_KILL);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -465,7 +457,7 @@ public:
|
||||
{
|
||||
if (SisterDeath)
|
||||
{
|
||||
DoScriptText(YELL_ALY_DEAD, me);
|
||||
Talk(YELL_ALY_DEAD);
|
||||
|
||||
if (instance)
|
||||
instance->SetData(DATA_EREDAR_TWINS_EVENT, DONE);
|
||||
@@ -528,24 +520,24 @@ public:
|
||||
case 0: return 0;
|
||||
case 1:
|
||||
if (Sacrolash)
|
||||
DoScriptText(YELL_INTRO_SAC_1, Sacrolash);
|
||||
Sacrolash->AI()->Talk(YELL_INTRO_SAC_1);
|
||||
return 1000;
|
||||
case 2: DoScriptText(YELL_INTRO_ALY_2, me); return 1000;
|
||||
case 2: Talk(YELL_INTRO_ALY_2); return 1000;
|
||||
case 3:
|
||||
if (Sacrolash)
|
||||
DoScriptText(YELL_INTRO_SAC_3, Sacrolash);
|
||||
Sacrolash->AI()->Talk(YELL_INTRO_SAC_3);
|
||||
return 2000;
|
||||
case 4: DoScriptText(YELL_INTRO_ALY_4, me); return 1000;
|
||||
case 4: Talk(YELL_INTRO_ALY_4); return 1000;
|
||||
case 5:
|
||||
if (Sacrolash)
|
||||
DoScriptText(YELL_INTRO_SAC_5, Sacrolash);
|
||||
Sacrolash->AI()->Talk(YELL_INTRO_SAC_5);
|
||||
return 2000;
|
||||
case 6: DoScriptText(YELL_INTRO_ALY_6, me); return 1000;
|
||||
case 6: Talk(YELL_INTRO_ALY_6); return 1000;
|
||||
case 7:
|
||||
if (Sacrolash)
|
||||
DoScriptText(YELL_INTRO_SAC_7, Sacrolash);
|
||||
Sacrolash->AI()->Talk(YELL_INTRO_SAC_7);
|
||||
return 3000;
|
||||
case 8: DoScriptText(YELL_INTRO_ALY_8, me); return 900000;
|
||||
case 8: Talk(YELL_INTRO_ALY_8); return 900000;
|
||||
}
|
||||
return 10000;
|
||||
}
|
||||
@@ -568,7 +560,7 @@ public:
|
||||
Temp = Unit::GetUnit(*me, instance->GetData64(DATA_SACROLASH));
|
||||
if (Temp && Temp->isDead())
|
||||
{
|
||||
DoScriptText(YELL_SISTER_SACROLASH_DEAD, me);
|
||||
Talk(YELL_SISTER_SACROLASH_DEAD);
|
||||
DoCast(me, SPELL_EMPOWER);
|
||||
me->InterruptSpell(CURRENT_GENERIC_SPELL);
|
||||
SisterDeath = true;
|
||||
@@ -622,8 +614,8 @@ public:
|
||||
if (!SisterDeath)
|
||||
{
|
||||
if (target)
|
||||
DoScriptText(EMOTE_CONFLAGRATION, me, target);
|
||||
DoScriptText(YELL_CANFLAGRATION, me);
|
||||
Talk(EMOTE_CONFLAGRATION, target->GetGUID());
|
||||
Talk(YELL_CANFLAGRATION);
|
||||
}
|
||||
|
||||
BlazeTimer = 4000;
|
||||
@@ -661,7 +653,7 @@ public:
|
||||
if (EnrageTimer < diff && !Enraged)
|
||||
{
|
||||
me->InterruptSpell(CURRENT_GENERIC_SPELL);
|
||||
DoScriptText(YELL_BERSERK, me);
|
||||
Talk(YELL_BERSERK);
|
||||
DoCast(me, SPELL_ENRAGE);
|
||||
Enraged = true;
|
||||
} else EnrageTimer -= diff;
|
||||
|
||||
@@ -31,14 +31,13 @@ EndScriptData */
|
||||
|
||||
enum Yells
|
||||
{
|
||||
YELL_BIRTH = -1580036,
|
||||
YELL_KILL1 = -1580037,
|
||||
YELL_KILL2 = -1580038,
|
||||
YELL_BREATH = -1580039,
|
||||
YELL_TAKEOFF = -1580040,
|
||||
YELL_BERSERK = -1580041,
|
||||
YELL_DEATH = -1580042,
|
||||
YELL_KALECGOS = -1580043, // after felmyst's death spawned and say this
|
||||
YELL_BIRTH = 0,
|
||||
YELL_KILL1 = 1,
|
||||
YELL_BREATH = 2,
|
||||
YELL_TAKEOFF = 3,
|
||||
YELL_BERSERK = 4,
|
||||
YELL_DEATH = 5,
|
||||
//YELL_KALECGOS = 6, Not used. After felmyst's death spawned and say this
|
||||
};
|
||||
|
||||
enum Spells
|
||||
@@ -181,17 +180,17 @@ public:
|
||||
|
||||
void KilledUnit(Unit* /*victim*/)
|
||||
{
|
||||
DoScriptText(RAND(YELL_KILL1, YELL_KILL2), me);
|
||||
Talk(YELL_KILL);
|
||||
}
|
||||
|
||||
void JustRespawned()
|
||||
{
|
||||
DoScriptText(YELL_BIRTH, me);
|
||||
Talk(YELL_BIRTH);
|
||||
}
|
||||
|
||||
void JustDied(Unit* /*killer*/)
|
||||
{
|
||||
DoScriptText(YELL_DEATH, me);
|
||||
Talk(YELL_DEATH);
|
||||
|
||||
if (instance)
|
||||
instance->SetData(DATA_FELMYST_EVENT, DONE);
|
||||
@@ -279,7 +278,7 @@ public:
|
||||
me->GetMotionMaster()->Clear(false);
|
||||
me->HandleEmoteCommand(EMOTE_ONESHOT_LIFTOFF);
|
||||
me->StopMoving();
|
||||
DoScriptText(YELL_TAKEOFF, me);
|
||||
Talk(YELL_TAKEOFF);
|
||||
events.ScheduleEvent(EVENT_FLIGHT_SEQUENCE, 2000);
|
||||
break;
|
||||
case 1:
|
||||
@@ -424,7 +423,7 @@ public:
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_BERSERK:
|
||||
DoScriptText(YELL_BERSERK, me);
|
||||
Talk(YELL_BERSERK);
|
||||
DoCast(me, SPELL_BERSERK, true);
|
||||
events.ScheduleEvent(EVENT_BERSERK, 10000);
|
||||
break;
|
||||
@@ -459,7 +458,7 @@ public:
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_BERSERK:
|
||||
DoScriptText(YELL_BERSERK, me);
|
||||
Talk(YELL_BERSERK);
|
||||
DoCast(me, SPELL_BERSERK, true);
|
||||
break;
|
||||
case EVENT_FLIGHT_SEQUENCE:
|
||||
|
||||
@@ -31,60 +31,52 @@ EndScriptData */
|
||||
|
||||
enum Yells
|
||||
{
|
||||
//Kalecgos dragon form
|
||||
SAY_EVIL_AGGRO = -1580000,
|
||||
SAY_EVIL_SPELL1 = -1580001,
|
||||
SAY_EVIL_SPELL2 = -1580002,
|
||||
SAY_EVIL_SLAY1 = -1580003,
|
||||
SAY_EVIL_SLAY2 = -1580004,
|
||||
SAY_EVIL_ENRAGE = -1580005,
|
||||
SAY_SATH_AGGRO = 0,
|
||||
SAY_SATH_SLAY = 1,
|
||||
SAY_SATH_DEATH = 2,
|
||||
SAY_SATH_SPELL1 = 3,
|
||||
SAY_SATH_SPELL2 = 4,
|
||||
|
||||
//Kalecgos humanoid form
|
||||
SAY_GOOD_AGGRO = -1580006,
|
||||
SAY_GOOD_NEAR_DEATH = -1580007,
|
||||
SAY_GOOD_NEAR_DEATH2 = -1580008,
|
||||
SAY_GOOD_PLRWIN = -1580009,
|
||||
SAY_EVIL_AGGRO = 0,
|
||||
SAY_EVIL_SLAY = 1,
|
||||
SAY_GOOD_PLRWIN = 2,
|
||||
SAY_EVIL_ENRAGE = 3,
|
||||
|
||||
//Sathrovarr
|
||||
SAY_SATH_AGGRO = -1580010,
|
||||
SAY_SATH_DEATH = -1580011,
|
||||
SAY_SATH_SPELL1 = -1580012,
|
||||
SAY_SATH_SPELL2 = -1580013,
|
||||
SAY_SATH_SLAY1 = -1580014,
|
||||
SAY_SATH_SLAY2 = -1580015,
|
||||
SAY_SATH_ENRAGE = -1580016,
|
||||
SAY_GOOD_AGGRO = 0,
|
||||
SAY_GOOD_NEAR_DEATH = 1,
|
||||
SAY_GOOD_NEAR_DEATH2 = 2,
|
||||
};
|
||||
|
||||
enum Spells
|
||||
{
|
||||
AURA_SUNWELL_RADIANCE = 45769,
|
||||
AURA_SPECTRAL_EXHAUSTION = 44867,
|
||||
AURA_SPECTRAL_REALM = 46021,
|
||||
AURA_SPECTRAL_INVISIBILITY = 44801,
|
||||
AURA_DEMONIC_VISUAL = 44800,
|
||||
AURA_SUNWELL_RADIANCE = 45769,
|
||||
AURA_SPECTRAL_EXHAUSTION = 44867,
|
||||
AURA_SPECTRAL_REALM = 46021,
|
||||
AURA_SPECTRAL_INVISIBILITY = 44801,
|
||||
AURA_DEMONIC_VISUAL = 44800,
|
||||
|
||||
SPELL_SPECTRAL_BLAST = 44869,
|
||||
SPELL_TELEPORT_SPECTRAL = 46019,
|
||||
SPELL_ARCANE_BUFFET = 45018,
|
||||
SPELL_FROST_BREATH = 44799,
|
||||
SPELL_TAIL_LASH = 45122,
|
||||
|
||||
SPELL_SPECTRAL_BLAST = 44869,
|
||||
SPELL_TELEPORT_SPECTRAL = 46019,
|
||||
SPELL_ARCANE_BUFFET = 45018,
|
||||
SPELL_FROST_BREATH = 44799,
|
||||
SPELL_TAIL_LASH = 45122,
|
||||
SPELL_BANISH = 44836,
|
||||
SPELL_TRANSFORM_KALEC = 44670,
|
||||
SPELL_ENRAGE = 44807,
|
||||
|
||||
SPELL_BANISH = 44836,
|
||||
SPELL_TRANSFORM_KALEC = 44670,
|
||||
SPELL_ENRAGE = 44807,
|
||||
SPELL_CORRUPTION_STRIKE = 45029,
|
||||
SPELL_AGONY_CURSE = 45032,
|
||||
SPELL_SHADOW_BOLT = 45031,
|
||||
|
||||
SPELL_CORRUPTION_STRIKE = 45029,
|
||||
SPELL_AGONY_CURSE = 45032,
|
||||
SPELL_SHADOW_BOLT = 45031,
|
||||
|
||||
SPELL_HEROIC_STRIKE = 45026,
|
||||
SPELL_REVITALIZE = 45027
|
||||
SPELL_HEROIC_STRIKE = 45026,
|
||||
SPELL_REVITALIZE = 45027
|
||||
};
|
||||
|
||||
enum SWPActions
|
||||
{
|
||||
DO_ENRAGE = 1,
|
||||
DO_BANISH = 2,
|
||||
DO_ENRAGE = 1,
|
||||
DO_BANISH = 2,
|
||||
};
|
||||
|
||||
#define GO_FAILED "You are unable to use this currently."
|
||||
@@ -360,7 +352,7 @@ public:
|
||||
void EnterCombat(Unit* /*who*/)
|
||||
{
|
||||
me->SetStandState(UNIT_STAND_STATE_STAND);
|
||||
DoScriptText(SAY_EVIL_AGGRO, me);
|
||||
Talk(SAY_EVIL_AGGRO);
|
||||
DoZoneInCombat();
|
||||
|
||||
if (instance)
|
||||
@@ -369,7 +361,7 @@ public:
|
||||
|
||||
void KilledUnit(Unit* /*victim*/)
|
||||
{
|
||||
DoScriptText(RAND(SAY_EVIL_SLAY1, SAY_EVIL_SLAY2), me);
|
||||
Talk(SAY_EVIL_SLAY);
|
||||
}
|
||||
|
||||
void MovementInform(uint32 type, uint32 /*id*/)
|
||||
@@ -408,7 +400,7 @@ public:
|
||||
TalkTimer = 1000;
|
||||
break;
|
||||
case 2:
|
||||
DoScriptText(SAY_GOOD_PLRWIN, me);
|
||||
Talk(SAY_GOOD_PLRWIN);
|
||||
TalkTimer = 10000;
|
||||
break;
|
||||
case 3:
|
||||
@@ -426,7 +418,7 @@ public:
|
||||
switch (TalkSequence)
|
||||
{
|
||||
case 1:
|
||||
DoScriptText(SAY_EVIL_ENRAGE, me);
|
||||
Talk(SAY_EVIL_ENRAGE);
|
||||
TalkTimer = 3000;
|
||||
break;
|
||||
case 2:
|
||||
@@ -505,20 +497,20 @@ public:
|
||||
switch (YellSequence)
|
||||
{
|
||||
case 0:
|
||||
DoScriptText(SAY_GOOD_AGGRO, me);
|
||||
Talk(SAY_GOOD_AGGRO);
|
||||
++YellSequence;
|
||||
break;
|
||||
case 1:
|
||||
if (HealthBelowPct(50))
|
||||
{
|
||||
DoScriptText(SAY_GOOD_NEAR_DEATH, me);
|
||||
Talk(SAY_GOOD_NEAR_DEATH);
|
||||
++YellSequence;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if (HealthBelowPct(10))
|
||||
{
|
||||
DoScriptText(SAY_GOOD_NEAR_DEATH2, me);
|
||||
Talk(SAY_GOOD_NEAR_DEATH2);
|
||||
++YellSequence;
|
||||
}
|
||||
break;
|
||||
@@ -642,7 +634,7 @@ public:
|
||||
me->AddThreat(Kalec, 100.0f);
|
||||
Kalec->setActive(true);
|
||||
}
|
||||
DoScriptText(SAY_SATH_AGGRO, me);
|
||||
Talk(SAY_SATH_AGGRO);
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* done_by, uint32 &damage)
|
||||
@@ -664,12 +656,12 @@ public:
|
||||
EnterEvadeMode();
|
||||
return;
|
||||
}
|
||||
DoScriptText(RAND(SAY_SATH_SLAY1, SAY_SATH_SLAY2), me);
|
||||
Talk(SAY_SATH_SLAY);
|
||||
}
|
||||
|
||||
void JustDied(Unit* /*killer*/)
|
||||
{
|
||||
DoScriptText(SAY_SATH_DEATH, me);
|
||||
Talk(SAY_SATH_DEATH);
|
||||
me->SetPosition(me->GetPositionX(), me->GetPositionY(), DRAGON_REALM_Z, me->GetOrientation());
|
||||
TeleportAllPlayersBack();
|
||||
if (Creature* Kalecgos = Unit::GetCreature(*me, KalecgosGUID))
|
||||
@@ -781,7 +773,7 @@ public:
|
||||
|
||||
if (ShadowBoltTimer <= diff)
|
||||
{
|
||||
if (!(rand()%5))DoScriptText(SAY_SATH_SPELL1, me);
|
||||
if (!(rand()%5))Talk(SAY_SATH_SPELL1);
|
||||
DoCast(me, SPELL_SHADOW_BOLT);
|
||||
ShadowBoltTimer = 7000+(rand()%3000);
|
||||
} else ShadowBoltTimer -= diff;
|
||||
@@ -796,7 +788,7 @@ public:
|
||||
|
||||
if (CorruptionStrikeTimer <= diff)
|
||||
{
|
||||
if (!(rand()%5))DoScriptText(SAY_SATH_SPELL2, me);
|
||||
if (!(rand()%5))Talk(SAY_SATH_SPELL2);
|
||||
DoCast(me->getVictim(), SPELL_CORRUPTION_STRIKE);
|
||||
CorruptionStrikeTimer = 13000;
|
||||
} else CorruptionStrikeTimer -= diff;
|
||||
|
||||
@@ -33,46 +33,34 @@ EndScriptData */
|
||||
/*** Speech and sounds***/
|
||||
enum Yells
|
||||
{
|
||||
// These are used throughout Sunwell and Magisters(?). Players can hear this while running through the instances.
|
||||
SAY_KJ_OFFCOMBAT1 = -1580066,
|
||||
SAY_KJ_OFFCOMBAT2 = -1580067,
|
||||
SAY_KJ_OFFCOMBAT3 = -1580068,
|
||||
SAY_KJ_OFFCOMBAT4 = -1580069,
|
||||
SAY_KJ_OFFCOMBAT5 = -1580070,
|
||||
SAY_KJ_OFFCOMBAT = 0,
|
||||
|
||||
SAY_KALECGOS_ENCOURAGE = 0,
|
||||
SAY_KALECGOS_READY1 = 1,
|
||||
SAY_KALECGOS_READY2 = 2,
|
||||
SAY_KALECGOS_READY3 = 3,
|
||||
SAY_KALECGOS_READY4 = 4,
|
||||
SAY_KALECGOS_AWAKEN = 5,
|
||||
SAY_KALECGOS_LETGO = 6,
|
||||
SAY_KALECGOS_FOCUS = 7,
|
||||
SAY_KALECGOS_FATE = 8,
|
||||
SAY_KALECGOS_GOODBYE = 9,
|
||||
SAY_KALECGOS_JOIN = 10,
|
||||
|
||||
// Encounter speech and sounds
|
||||
SAY_KJ_EMERGE = -1580071,
|
||||
SAY_KJ_SLAY1 = -1580072,
|
||||
SAY_KJ_SLAY2 = -1580073,
|
||||
SAY_KJ_REFLECTION1 = -1580074,
|
||||
SAY_KJ_REFLECTION2 = -1580075,
|
||||
SAY_KJ_DARKNESS1 = -1580076,
|
||||
SAY_KJ_DARKNESS2 = -1580077,
|
||||
SAY_KJ_DARKNESS3 = -1580078,
|
||||
SAY_KJ_PHASE3 = -1580079,
|
||||
SAY_KJ_PHASE4 = -1580080,
|
||||
SAY_KJ_PHASE5 = -1580081,
|
||||
SAY_KJ_DEATH = -1580093,
|
||||
EMOTE_KJ_DARKNESS = -1580094,
|
||||
SAY_KJ_DEATH = 0,
|
||||
SAY_KJ_SLAY = 1,
|
||||
SAY_KJ_REFLECTION = 2,
|
||||
SAY_KJ_EMERGE = 3,
|
||||
SAY_KJ_DARKNESS = 4,
|
||||
SAY_KJ_PHASE3 = 5,
|
||||
SAY_KJ_PHASE4 = 6,
|
||||
SAY_KJ_PHASE5 = 7,
|
||||
EMOTE_KJ_DARKNESS = 8,
|
||||
|
||||
/*** Kalecgos - Anveena speech at the beginning of Phase 5; Anveena's sacrifice ***/
|
||||
SAY_KALECGOS_AWAKEN = -1580082,
|
||||
SAY_ANVEENA_IMPRISONED = -1580083,
|
||||
SAY_KALECGOS_LETGO = -1580084,
|
||||
SAY_ANVEENA_LOST = -1580085,
|
||||
SAY_KALECGOS_FOCUS = -1580086,
|
||||
SAY_ANVEENA_KALEC = -1580087,
|
||||
SAY_KALECGOS_FATE = -1580088,
|
||||
SAY_ANVEENA_GOODBYE = -1580089,
|
||||
SAY_KALECGOS_GOODBYE = -1580090,
|
||||
SAY_KALECGOS_ENCOURAGE = -1580091,
|
||||
|
||||
/*** Kalecgos says throughout the fight ***/
|
||||
SAY_KALECGOS_JOIN = -1580092,
|
||||
SAY_KALEC_ORB_READY1 = -1580095,
|
||||
SAY_KALEC_ORB_READY2 = -1580096,
|
||||
SAY_KALEC_ORB_READY3 = -1580097,
|
||||
SAY_KALEC_ORB_READY4 = -1580098
|
||||
SAY_ANVEENA_IMPRISONED = 0,
|
||||
SAY_ANVEENA_LOST = 1,
|
||||
SAY_ANVEENA_KALEC = 2,
|
||||
SAY_ANVEENA_GOODBYE = 3,
|
||||
};
|
||||
|
||||
/*** Spells used during the encounter ***/
|
||||
@@ -322,7 +310,7 @@ public:
|
||||
pOrb->Refresh();
|
||||
}
|
||||
}
|
||||
DoScriptText(SAY_KALECGOS_ENCOURAGE, me);
|
||||
Talk(SAY_KALECGOS_ENCOURAGE);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -338,10 +326,10 @@ public:
|
||||
++EmpowerCount;
|
||||
switch (EmpowerCount)
|
||||
{
|
||||
case 1: DoScriptText(SAY_KALEC_ORB_READY1, me); break;
|
||||
case 2: DoScriptText(SAY_KALEC_ORB_READY2, me); break;
|
||||
case 3: DoScriptText(SAY_KALEC_ORB_READY3, me); break;
|
||||
case 4: DoScriptText(SAY_KALEC_ORB_READY4, me); break;
|
||||
case 1: Talk(SAY_KALECGOS_READY1); break;
|
||||
case 2: Talk(SAY_KALECGOS_READY2); break;
|
||||
case 3: Talk(SAY_KALECGOS_READY3); break;
|
||||
case 4: Talk(SAY_KALECGOS_READY4); break;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -469,7 +457,7 @@ public:
|
||||
if (uiRandomSayTimer < diff)
|
||||
{
|
||||
if (instance && instance->GetData(DATA_MURU_EVENT) != DONE && instance->GetData(DATA_KILJAEDEN_EVENT) == NOT_STARTED)
|
||||
DoScriptText(RAND(SAY_KJ_OFFCOMBAT1, SAY_KJ_OFFCOMBAT2, SAY_KJ_OFFCOMBAT3, SAY_KJ_OFFCOMBAT4, SAY_KJ_OFFCOMBAT5), me);
|
||||
Talk(SAY_KJ_OFFCOMBAT);
|
||||
uiRandomSayTimer = 30000;
|
||||
} else uiRandomSayTimer -= diff;
|
||||
|
||||
@@ -613,7 +601,7 @@ public:
|
||||
|
||||
void JustDied(Unit* /*killer*/)
|
||||
{
|
||||
DoScriptText(SAY_KJ_DEATH, me);
|
||||
Talk(SAY_KJ_DEATH);
|
||||
summons.DespawnAll();
|
||||
|
||||
if (instance)
|
||||
@@ -622,7 +610,7 @@ public:
|
||||
|
||||
void KilledUnit(Unit* /*victim*/)
|
||||
{
|
||||
DoScriptText(RAND(SAY_KJ_SLAY1, SAY_KJ_SLAY2), me);
|
||||
Talk(SAY_KJ_SLAY);
|
||||
}
|
||||
|
||||
void EnterEvadeMode()
|
||||
@@ -657,7 +645,7 @@ public:
|
||||
|
||||
void CastSinisterReflection()
|
||||
{
|
||||
DoScriptText(RAND(SAY_KJ_REFLECTION1, SAY_KJ_REFLECTION2), me);
|
||||
Talk(SAY_KJ_REFLECTION);
|
||||
for (uint8 i = 0; i < 4; ++i)
|
||||
{
|
||||
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true, -SPELL_VENGEANCE_OF_THE_BLUE_FLIGHT))
|
||||
@@ -717,8 +705,8 @@ public:
|
||||
{
|
||||
SpeechTimer = 0;
|
||||
if (instance)
|
||||
if (Creature* pSpeechCreature = Unit::GetCreature(*me, instance->GetData64(Speeches[speechCount].creature)))
|
||||
DoScriptText(Speeches[speechCount].textid, pSpeechCreature);
|
||||
if (Creature* speechCreature = Unit::GetCreature(*me, instance->GetData64(Speeches[speechCount].creature)))
|
||||
speechCreature->AI()->Talk(Speeches[speechCount].textid);
|
||||
if (speechCount == 12)
|
||||
if (Creature* pAnveena = Unit::GetCreature(*me, instance->GetData64(DATA_ANVEENA)))
|
||||
pAnveena->CastSpell(me, SPELL_SACRIFICE_OF_ANVEENA, false);
|
||||
@@ -799,7 +787,7 @@ public:
|
||||
// Begins to channel for 8 seconds, then deals 50'000 damage to all raid members.
|
||||
if (!IsInDarkness)
|
||||
{
|
||||
DoScriptText(EMOTE_KJ_DARKNESS, me);
|
||||
Talk(EMOTE_KJ_DARKNESS);
|
||||
DoCastAOE(SPELL_DARKNESS_OF_A_THOUSAND_SOULS, false);
|
||||
ChangeTimers(true, 9000);
|
||||
Timer[TIMER_DARKNESS] = 8750;
|
||||
@@ -813,7 +801,7 @@ public:
|
||||
Timer[TIMER_DARKNESS] = (Phase == PHASE_SACRIFICE) ? 15000 : urand(40000, 70000);
|
||||
IsInDarkness = false;
|
||||
DoCastAOE(SPELL_DARKNESS_OF_A_THOUSAND_SOULS_DAMAGE);
|
||||
DoScriptText(RAND(SAY_KJ_DARKNESS1, SAY_KJ_DARKNESS2, SAY_KJ_DARKNESS3), me);
|
||||
Talk(SAY_KJ_DARKNESS);
|
||||
}
|
||||
Timer[TIMER_SOUL_FLAY] = 9000;
|
||||
}
|
||||
|
||||
@@ -26,11 +26,13 @@ EndScriptData */
|
||||
#include "ScriptMgr.h"
|
||||
#include "ScriptedCreature.h"
|
||||
|
||||
#define SAY_AGGRO -1070000
|
||||
|
||||
#define SPELL_ARCINGSMASH 8374
|
||||
#define SPELL_KNOCKAWAY 10101
|
||||
#define SPELL_WSTOMP 11876
|
||||
enum Ironaya
|
||||
{
|
||||
SAY_AGGRO = 0,
|
||||
SPELL_ARCINGSMASH = 8374,
|
||||
SPELL_KNOCKAWAY = 10101,
|
||||
SPELL_WSTOMP = 11876,
|
||||
};
|
||||
|
||||
class boss_ironaya : public CreatureScript
|
||||
{
|
||||
@@ -58,7 +60,7 @@ class boss_ironaya : public CreatureScript
|
||||
|
||||
void EnterCombat(Unit* /*who*/)
|
||||
{
|
||||
DoScriptText(SAY_AGGRO, me);
|
||||
Talk(SAY_AGGRO);
|
||||
}
|
||||
|
||||
void UpdateAI(const uint32 uiDiff)
|
||||
|
||||
@@ -31,16 +31,15 @@ EndScriptData */
|
||||
|
||||
enum eEnums
|
||||
{
|
||||
SAY_AGGRO = -1568000,
|
||||
SAY_FIRE_BOMBS = -1568001,
|
||||
SAY_SUMMON_HATCHER = -1568002,
|
||||
SAY_ALL_EGGS = -1568003,
|
||||
SAY_BERSERK = -1568004,
|
||||
SAY_SLAY_1 = -1568005,
|
||||
SAY_SLAY_2 = -1568006,
|
||||
SAY_DEATH = -1568007,
|
||||
SAY_EVENT_STRANGERS = -1568008,
|
||||
SAY_EVENT_FRIENDS = -1568009,
|
||||
SAY_AGGRO = 0,
|
||||
SAY_FIRE_BOMBS = 1,
|
||||
SAY_SUMMON_HATCHER = 2,
|
||||
SAY_ALL_EGGS = 3,
|
||||
SAY_BERSERK = 4,
|
||||
SAY_SLAY = 5,
|
||||
SAY_DEATH = 6,
|
||||
SAY_EVENT_STRANGERS = 7,
|
||||
SAY_EVENT_FRIENDS = 8,
|
||||
|
||||
// Jan'alai
|
||||
SPELL_FLAME_BREATH = 43140,
|
||||
@@ -163,7 +162,7 @@ class boss_janalai : public CreatureScript
|
||||
|
||||
void JustDied(Unit* /*killer*/)
|
||||
{
|
||||
DoScriptText(SAY_DEATH, me);
|
||||
Talk(SAY_DEATH);
|
||||
|
||||
if (instance)
|
||||
instance->SetData(DATA_JANALAIEVENT, DONE);
|
||||
@@ -171,7 +170,7 @@ class boss_janalai : public CreatureScript
|
||||
|
||||
void KilledUnit(Unit* /*victim*/)
|
||||
{
|
||||
DoScriptText(RAND(SAY_SLAY_1, SAY_SLAY_2), me);
|
||||
Talk(SAY_SLAY);
|
||||
}
|
||||
|
||||
void EnterCombat(Unit* /*who*/)
|
||||
@@ -179,7 +178,7 @@ class boss_janalai : public CreatureScript
|
||||
if (instance)
|
||||
instance->SetData(DATA_JANALAIEVENT, IN_PROGRESS);
|
||||
|
||||
DoScriptText(SAY_AGGRO, me);
|
||||
Talk(SAY_AGGRO);
|
||||
// DoZoneInCombat();
|
||||
}
|
||||
|
||||
@@ -352,7 +351,7 @@ class boss_janalai : public CreatureScript
|
||||
}
|
||||
else
|
||||
{
|
||||
DoScriptText(SAY_BERSERK, me);
|
||||
Talk(SAY_BERSERK);
|
||||
DoCast(me, SPELL_BERSERK, true);
|
||||
EnrageTimer = 300000;
|
||||
}
|
||||
@@ -360,7 +359,7 @@ class boss_janalai : public CreatureScript
|
||||
|
||||
if (BombTimer <= diff)
|
||||
{
|
||||
DoScriptText(SAY_FIRE_BOMBS, me);
|
||||
Talk(SAY_FIRE_BOMBS);
|
||||
|
||||
me->AttackStop();
|
||||
me->GetMotionMaster()->Clear();
|
||||
@@ -393,7 +392,7 @@ class boss_janalai : public CreatureScript
|
||||
{
|
||||
if (HealthBelowPct(35))
|
||||
{
|
||||
DoScriptText(SAY_ALL_EGGS, me);
|
||||
Talk(SAY_ALL_EGGS);
|
||||
|
||||
me->AttackStop();
|
||||
me->GetMotionMaster()->Clear();
|
||||
@@ -407,7 +406,7 @@ class boss_janalai : public CreatureScript
|
||||
{
|
||||
if (HatchAllEggs(0))
|
||||
{
|
||||
DoScriptText(SAY_SUMMON_HATCHER, me);
|
||||
Talk(SAY_SUMMON_HATCHER);
|
||||
me->SummonCreature(MOB_AMANI_HATCHER, hatcherway[0][0][0], hatcherway[0][0][1], hatcherway[0][0][2], 0, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 10000);
|
||||
me->SummonCreature(MOB_AMANI_HATCHER, hatcherway[1][0][0], hatcherway[1][0][1], hatcherway[1][0][2], 0, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 10000);
|
||||
HatcherTimer = 90000;
|
||||
|
||||
@@ -39,11 +39,11 @@ EndContentData */
|
||||
|
||||
enum eOOX
|
||||
{
|
||||
SAY_OOX_START = -1000287,
|
||||
SAY_OOX_AGGRO1 = -1000288,
|
||||
SAY_OOX_AGGRO2 = -1000289,
|
||||
SAY_OOX_AMBUSH = -1000290,
|
||||
SAY_OOX_END = -1000292,
|
||||
SAY_OOX_START = 0,
|
||||
SAY_OOX_AGGRO = 1,
|
||||
SAY_OOX_AMBUSH = 3,
|
||||
SAY_OOX_AMBUSH_REPLY = 4,
|
||||
SAY_OOX_END = 5,
|
||||
|
||||
QUEST_RESQUE_OOX_09 = 836,
|
||||
|
||||
@@ -70,7 +70,7 @@ public:
|
||||
else if (player->GetTeam() == HORDE)
|
||||
creature->setFaction(FACTION_ESCORTEE_H);
|
||||
|
||||
DoScriptText(SAY_OOX_START, creature, player);
|
||||
creature->AI()->Talk(SAY_OOX_START, player->GetGUID());
|
||||
|
||||
if (npc_00x09hlAI* pEscortAI = CAST_AI(npc_00x09hl::npc_00x09hlAI, creature->AI()))
|
||||
pEscortAI->Start(false, false, player->GetGUID(), quest);
|
||||
@@ -94,13 +94,13 @@ public:
|
||||
switch (waypointId)
|
||||
{
|
||||
case 26:
|
||||
DoScriptText(SAY_OOX_AMBUSH, me);
|
||||
Talk(SAY_OOX_AMBUSH);
|
||||
break;
|
||||
case 43:
|
||||
DoScriptText(SAY_OOX_AMBUSH, me);
|
||||
Talk(SAY_OOX_AMBUSH);
|
||||
break;
|
||||
case 64:
|
||||
DoScriptText(SAY_OOX_END, me);
|
||||
Talk(SAY_OOX_END);
|
||||
if (Player* player = GetPlayerForEscort())
|
||||
player->GroupEventHappens(QUEST_RESQUE_OOX_09, me);
|
||||
break;
|
||||
@@ -137,10 +137,7 @@ public:
|
||||
if (who->GetEntry() == NPC_MARAUDING_OWL || who->GetEntry() == NPC_VILE_AMBUSHER)
|
||||
return;
|
||||
|
||||
if (rand()%1)
|
||||
DoScriptText(SAY_OOX_AGGRO1, me);
|
||||
else
|
||||
DoScriptText(SAY_OOX_AGGRO2, me);
|
||||
Talk(SAY_OOX_AGGRO);
|
||||
}
|
||||
|
||||
void JustSummoned(Creature* summoned)
|
||||
@@ -156,13 +153,13 @@ public:
|
||||
|
||||
enum eRinji
|
||||
{
|
||||
SAY_RIN_FREE = -1000403, //from here
|
||||
SAY_RIN_BY_OUTRUNNER = -1000404,
|
||||
SAY_RIN_HELP_1 = -1000405,
|
||||
SAY_RIN_HELP_2 = -1000406, //to here, are used also by 6182 but this is wrong...
|
||||
SAY_RIN_COMPLETE = -1000407,
|
||||
SAY_RIN_PROGRESS_1 = -1000408,
|
||||
SAY_RIN_PROGRESS_2 = -1000409,
|
||||
SAY_RIN_BY_OUTRUNNER = 0,
|
||||
|
||||
SAY_RIN_FREE = 0, //from here
|
||||
SAY_RIN_HELP = 1,
|
||||
SAY_RIN_COMPLETE = 2,
|
||||
SAY_RIN_PROGRESS_1 = 3,
|
||||
SAY_RIN_PROGRESS_2 = 4,
|
||||
|
||||
QUEST_RINJI_TRAPPED = 2742,
|
||||
NPC_RANGER = 2694,
|
||||
@@ -243,7 +240,8 @@ public:
|
||||
{
|
||||
if (who->GetEntry() == NPC_OUTRUNNER && !m_bIsByOutrunner)
|
||||
{
|
||||
DoScriptText(SAY_RIN_BY_OUTRUNNER, who);
|
||||
if (Creature* talker = who->ToCreature())
|
||||
talker->AI()->Talk(SAY_RIN_BY_OUTRUNNER);
|
||||
m_bIsByOutrunner = true;
|
||||
}
|
||||
|
||||
@@ -251,7 +249,7 @@ public:
|
||||
return;
|
||||
|
||||
//only if attacked and escorter is not in combat?
|
||||
DoScriptText(RAND(SAY_RIN_HELP_1, SAY_RIN_HELP_2), me);
|
||||
Talk(SAY_RIN_HELP);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -287,7 +285,7 @@ public:
|
||||
switch (waypointId)
|
||||
{
|
||||
case 1:
|
||||
DoScriptText(SAY_RIN_FREE, me, player);
|
||||
Talk(SAY_RIN_FREE, player->GetGUID());
|
||||
break;
|
||||
case 7:
|
||||
DoSpawnAmbush(true);
|
||||
@@ -296,7 +294,7 @@ public:
|
||||
DoSpawnAmbush(false);
|
||||
break;
|
||||
case 17:
|
||||
DoScriptText(SAY_RIN_COMPLETE, me, player);
|
||||
Talk(SAY_RIN_COMPLETE, player->GetGUID());
|
||||
player->GroupEventHappens(QUEST_RINJI_TRAPPED, me);
|
||||
SetRun();
|
||||
m_uiPostEventCount = 1;
|
||||
@@ -320,11 +318,11 @@ public:
|
||||
switch (m_uiPostEventCount)
|
||||
{
|
||||
case 1:
|
||||
DoScriptText(SAY_RIN_PROGRESS_1, me, player);
|
||||
Talk(SAY_RIN_PROGRESS_1, player->GetGUID());
|
||||
++m_uiPostEventCount;
|
||||
break;
|
||||
case 2:
|
||||
DoScriptText(SAY_RIN_PROGRESS_2, me, player);
|
||||
Talk(SAY_RIN_PROGRESS_2, player->GetGUID());
|
||||
m_uiPostEventCount = 0;
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -41,8 +41,8 @@ EndContentData */
|
||||
enum Sylvanas
|
||||
{
|
||||
QUEST_JOURNEY_TO_UNDERCITY = 9180,
|
||||
SAY_LAMENT_END = -1000196,
|
||||
EMOTE_LAMENT_END = -1000197,
|
||||
EMOTE_LAMENT_END = 0,
|
||||
SAY_LAMENT_END = 1,
|
||||
|
||||
SOUND_CREDIT = 10896,
|
||||
ENTRY_HIGHBORNE_LAMENTER = 21628,
|
||||
@@ -153,8 +153,8 @@ public:
|
||||
LamentEventTimer = 2000;
|
||||
if (!me->HasAura(SPELL_SYLVANAS_CAST))
|
||||
{
|
||||
DoScriptText(SAY_LAMENT_END, me);
|
||||
DoScriptText(EMOTE_LAMENT_END, me);
|
||||
Talk(SAY_LAMENT_END);
|
||||
Talk(EMOTE_LAMENT_END);
|
||||
LamentEvent = false;
|
||||
}
|
||||
} else LamentEventTimer -= diff;
|
||||
|
||||
Reference in New Issue
Block a user