aboutsummaryrefslogtreecommitdiff
path: root/src/server/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/scripts')
-rw-r--r--src/server/scripts/EasternKingdoms/BlackwingLair/boss_victor_nefarius.cpp10
-rw-r--r--src/server/scripts/EasternKingdoms/Karazhan/boss_curator.cpp52
-rw-r--r--src/server/scripts/EasternKingdoms/Karazhan/boss_maiden_of_virtue.cpp34
-rw-r--r--src/server/scripts/EasternKingdoms/Karazhan/boss_midnight.cpp65
-rw-r--r--src/server/scripts/EasternKingdoms/Karazhan/boss_moroes.cpp35
-rw-r--r--src/server/scripts/EasternKingdoms/Karazhan/boss_netherspite.cpp30
-rw-r--r--src/server/scripts/EasternKingdoms/Karazhan/boss_prince_malchezaar.cpp81
-rw-r--r--src/server/scripts/EasternKingdoms/Karazhan/boss_shade_of_aran.cpp105
-rw-r--r--src/server/scripts/EasternKingdoms/Karazhan/boss_terestian_illhoof.cpp69
-rw-r--r--src/server/scripts/EasternKingdoms/Karazhan/bosses_opera.cpp279
-rw-r--r--src/server/scripts/EasternKingdoms/Karazhan/karazhan.cpp27
-rw-r--r--src/server/scripts/EasternKingdoms/ScarletMonastery/boss_arcanist_doan.cpp8
-rw-r--r--src/server/scripts/EasternKingdoms/ScarletMonastery/boss_bloodmage_thalnos.cpp12
-rw-r--r--src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp36
-rw-r--r--src/server/scripts/EasternKingdoms/ScarletMonastery/boss_herod.cpp24
-rw-r--r--src/server/scripts/EasternKingdoms/ScarletMonastery/boss_houndmaster_loksey.cpp4
-rw-r--r--src/server/scripts/EasternKingdoms/ScarletMonastery/boss_interrogator_vishas.cpp22
-rw-r--r--src/server/scripts/EasternKingdoms/ScarletMonastery/boss_mograine_and_whitemane.cpp24
-rw-r--r--src/server/scripts/EasternKingdoms/ShadowfangKeep/instance_shadowfang_keep.cpp13
-rw-r--r--src/server/scripts/EasternKingdoms/ShadowfangKeep/shadowfang_keep.cpp28
-rw-r--r--src/server/scripts/EasternKingdoms/SunwellPlateau/boss_brutallus.cpp86
-rw-r--r--src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp90
-rw-r--r--src/server/scripts/EasternKingdoms/SunwellPlateau/boss_felmyst.cpp27
-rw-r--r--src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kalecgos.cpp108
-rw-r--r--src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp94
-rw-r--r--src/server/scripts/EasternKingdoms/Uldaman/boss_ironaya.cpp14
-rw-r--r--src/server/scripts/EasternKingdoms/Uldaman/instance_uldaman.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/ZulAman/boss_janalai.cpp33
-rw-r--r--src/server/scripts/EasternKingdoms/hinterlands.cpp224
-rw-r--r--src/server/scripts/EasternKingdoms/undercity.cpp8
-rwxr-xr-xsrc/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp2
-rwxr-xr-xsrc/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp2
-rwxr-xr-xsrc/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_lord_jaraxxus.cpp2
-rwxr-xr-xsrc/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp4
-rwxr-xr-xsrc/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp2
-rwxr-xr-xsrc/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/instance_trial_of_the_crusader.cpp10
-rw-r--r--src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.h2
37 files changed, 931 insertions, 737 deletions
diff --git a/src/server/scripts/EasternKingdoms/BlackwingLair/boss_victor_nefarius.cpp b/src/server/scripts/EasternKingdoms/BlackwingLair/boss_victor_nefarius.cpp
index a93519bcbe7..1335f189286 100644
--- a/src/server/scripts/EasternKingdoms/BlackwingLair/boss_victor_nefarius.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackwingLair/boss_victor_nefarius.cpp
@@ -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();
/*
diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_curator.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_curator.cpp
index 2c7e1b9c48a..13c70630c7a 100644
--- a/src/server/scripts/EasternKingdoms/Karazhan/boss_curator.cpp
+++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_curator.cpp
@@ -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
-
-//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
+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,
+};
+
+
+
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);
}
}
diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_maiden_of_virtue.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_maiden_of_virtue.cpp
index 5f974a890bf..026524108b3 100644
--- a/src/server/scripts/EasternKingdoms/Karazhan/boss_maiden_of_virtue.cpp
+++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_maiden_of_virtue.cpp
@@ -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
-
-#define SPELL_REPENTANCE 29511
-#define SPELL_HOLYFIRE 29522
-#define SPELL_HOLYWRATH 32445
-#define SPELL_HOLYGROUND 29512
-#define SPELL_BERSERK 26662
+enum MaidenOfVirtue
+{
+ SAY_AGGRO = 0,
+ SAY_SLAY = 1,
+ SAY_REPENTANCE = 2,
+ SAY_DEATH = 3,
+
+ 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;
diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_midnight.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_midnight.cpp
index 580acf2c489..73fefe210df 100644
--- a/src/server/scripts/EasternKingdoms/Karazhan/boss_midnight.cpp
+++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_midnight.cpp
@@ -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
-
-#define SPELL_SHADOWCLEAVE 29832
-#define SPELL_INTANGIBLE_PRESENCE 29833
-#define SPELL_BERSERKER_CHARGE 26561 //Only when mounted
-
-#define 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
+enum Midnight
+{
+ SAY_MIDNIGHT_KILL = 0,
+ SAY_APPEAR = 1,
+ SAY_MOUNT = 2,
+ SAY_KILL = 3,
+ SAY_DISARMED = 4,
+ SAY_DEATH = 5,
+ SAY_RANDOM = 6,
+
+ SPELL_SHADOWCLEAVE = 29832,
+ SPELL_INTANGIBLE_PRESENCE = 29833,
+ SPELL_BERSERKER_CHARGE = 26561, //Only when mounted
+
+ MOUNTED_DISPLAYID = 16040,
+
+ //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;
diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_moroes.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_moroes.cpp
index 99f2cb51c85..38eb3289ec4 100644
--- a/src/server/scripts/EasternKingdoms/Karazhan/boss_moroes.cpp
+++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_moroes.cpp
@@ -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
-
-#define SPELL_VANISH 29448
-#define SPELL_GARROTE 37066
-#define SPELL_BLIND 34694
-#define SPELL_GOUGE 29425
-#define SPELL_FRENZY 37023
+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 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);
diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_netherspite.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_netherspite.cpp
index c3e571ad376..37506d9fd0e 100644
--- a/src/server/scripts/EasternKingdoms/Karazhan/boss_netherspite.cpp
+++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_netherspite.cpp
@@ -28,17 +28,21 @@ EndScriptData */
#include "karazhan.h"
#include "Player.h"
-#define EMOTE_PHASE_PORTAL -1532089
-#define EMOTE_PHASE_BANISH -1532090
-
-#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
+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,
+};
+
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]);
diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_prince_malchezaar.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_prince_malchezaar.cpp
index 242940bd5e7..845a773c108 100644
--- a/src/server/scripts/EasternKingdoms/Karazhan/boss_prince_malchezaar.cpp
+++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_prince_malchezaar.cpp
@@ -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
-
-#define SPELL_ENFEEBLE 30843 //Enfeeble during phase 1 and 2
-#define SPELL_ENFEEBLE_EFFECT 41624
-
-#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
-
-#define INFERNAL_MODEL_INVISIBLE 11686 //Infernal Effects
-#define SPELL_INFERNAL_RELAY 30834
-
-#define EQUIP_ID_AXE 33542 //Axes info
+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,
+
+ TOTAL_INFERNAL_POINTS = 18,
+
+ SPELL_ENFEEBLE = 30843, //Enfeeble during phase 1 and 2
+ SPELL_ENFEEBLE_EFFECT = 41624,
+
+ 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
+
+ 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)
diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_shade_of_aran.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_shade_of_aran.cpp
index 8eecc5618ee..843220663b7 100644
--- a/src/server/scripts/EasternKingdoms/Karazhan/boss_shade_of_aran.cpp
+++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_shade_of_aran.cpp
@@ -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
-
-//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
-
-//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
-
-//Creatures
-#define CREATURE_WATER_ELEMENTAL 17167
-#define CREATURE_SHADOW_OF_ARAN 18254
-#define CREATURE_ARAN_BLIZZARD 17161
+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
+ 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
+ SPELL_CIRCULAR_BLIZZARD = 29951,
+ SPELL_WATERBOLT = 31012,
+ SPELL_SHADOW_PYRO = 29978,
+
+ //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;
diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_terestian_illhoof.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_terestian_illhoof.cpp
index 688a678060f..cb5a1b7b914 100644
--- a/src/server/scripts/EasternKingdoms/Karazhan/boss_terestian_illhoof.cpp
+++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_terestian_illhoof.cpp
@@ -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
-
-#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
-
-#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
-
-#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.
-
-#define CREATURE_DEMONCHAINS 17248
-#define CREATURE_FIENDISHIMP 17267
-#define CREATURE_PORTAL 17265
-#define CREATURE_KILREK 17229
+enum TerestianIllhoof
+{
+ SAY_SLAY = 1,
+ SAY_DEATH = 2,
+ SAY_AGGRO = 3,
+ SAY_SACRIFICE = 4,
+ SAY_SUMMON = 5,
+
+ 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
+
+ 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
+
+ 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,
+};
+
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;
}
}
diff --git a/src/server/scripts/EasternKingdoms/Karazhan/bosses_opera.cpp b/src/server/scripts/EasternKingdoms/Karazhan/bosses_opera.cpp
index cd1a803e478..7053cbb3ed7 100644
--- a/src/server/scripts/EasternKingdoms/Karazhan/bosses_opera.cpp
+++ b/src/server/scripts/EasternKingdoms/Karazhan/bosses_opera.cpp
@@ -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,
+
+ SAY_ROAR_AGGRO = 0,
+ SAY_ROAR_DEATH = 1,
+ SAY_ROAR_SLAY = 2,
+
+ SAY_STRAWMAN_AGGRO = 0,
+ SAY_STRAWMAN_DEATH = 1,
+ SAY_STRAWMAN_SLAY = 2,
+
+ SAY_TINHEAD_AGGRO = 0,
+ SAY_TINHEAD_DEATH = 1,
+ SAY_TINHEAD_SLAY = 2,
+ EMOTE_RUST = 3,
+
+ SAY_CRONE_AGGRO = 0,
+ SAY_CRONE_DEATH = 1,
+ SAY_CRONE_SLAY = 2,
+};
-#define SAY_DOROTHEE_DEATH -1532025
-#define SAY_DOROTHEE_SUMMON -1532026
-#define SAY_DOROTHEE_TITO_DEATH -1532027
-#define SAY_DOROTHEE_AGGRO -1532028
-
-#define SAY_ROAR_AGGRO -1532029
-#define SAY_ROAR_DEATH -1532030
-#define SAY_ROAR_SLAY -1532031
-
-#define SAY_STRAWMAN_AGGRO -1532032
-#define SAY_STRAWMAN_DEATH -1532033
-#define SAY_STRAWMAN_SLAY -1532034
-
-#define SAY_TINHEAD_AGGRO -1532035
-#define SAY_TINHEAD_DEATH -1532036
-#define SAY_TINHEAD_SLAY -1532037
-#define EMOTE_RUST -1532038
-
-#define SAY_CRONE_AGGRO -1532039
-#define SAY_CRONE_AGGRO2 -1532040
-#define SAY_CRONE_DEATH -1532041
-#define SAY_CRONE_SLAY -1532042
-
-/**** Spells ****/
-// Dorothee
-#define SPELL_WATERBOLT 31012
-#define SPELL_SCREAM 31013
-#define SPELL_SUMMONTITO 31014
-
-// Tito
-#define SPELL_YIPPING 31015
-
-// Strawman
-#define SPELL_BRAIN_BASH 31046
-#define SPELL_BRAIN_WIPE 31069
-#define SPELL_BURNING_STRAW 31075
-
-// Tinhead
-#define SPELL_CLEAVE 31043
-#define SPELL_RUST 31086
-
-// Roar
-#define SPELL_MANGLE 31041
-#define SPELL_SHRED 31042
-#define SPELL_FRIGHTENED_SCREAM 31013
-
-// Crone
-#define SPELL_CHAIN_LIGHTNING 32337
-
-// Cyclone
-#define SPELL_KNOCKBACK 32334
-#define SPELL_CYCLONE_VISUAL 32332
+enum Spells
+{
+ // Dorothee
+ SPELL_WATERBOLT = 31012,
+ SPELL_SCREAM = 31013,
+ SPELL_SUMMONTITO = 31014,
+
+ // Tito
+ SPELL_YIPPING = 31015,
+
+ // Strawman
+ SPELL_BRAIN_BASH = 31046,
+ SPELL_BRAIN_WIPE = 31069,
+ SPELL_BURNING_STRAW = 31075,
+
+ // Tinhead
+ SPELL_CLEAVE = 31043,
+ SPELL_RUST = 31086,
+
+ // Roar
+ SPELL_MANGLE = 31041,
+ SPELL_SHRED = 31042,
+ SPELL_FRIGHTENED_SCREAM = 31013,
+
+ // Crone
+ SPELL_CHAIN_LIGHTNING = 32337,
+
+ // Cyclone
+ SPELL_KNOCKBACK = 32334,
+ 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
-
-#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
-
-/***** 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
-
-/***** Spells For Romulo ****/
-#define SPELL_BACKWARD_LUNGE 30815
-#define SPELL_DARING 30841
-#define SPELL_DEADLY_SWATHE 30817
-#define SPELL_POISON_THRUST 30822
-
-/**** Other Misc. Spells ****/
-#define SPELL_UNDYING_LOVE 30951
-#define SPELL_RES_VISUAL 24171
-
-/*** Misc. Information ****/
-#define CREATURE_ROMULO 17533
-#define ROMULO_X -10900
-#define ROMULO_Y -1758
+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,
+
+ SAY_ROMULO_AGGRO = 0,
+ SAY_ROMULO_DEATH = 1,
+ SAY_ROMULO_ENTER = 2,
+ SAY_ROMULO_RESURRECT = 3,
+ SAY_ROMULO_SLAY = 4,
+
+ SPELL_BLINDING_PASSION = 30890,
+ SPELL_DEVOTION = 30887,
+ SPELL_ETERNAL_AFFECTION = 30878,
+ SPELL_POWERFUL_ATTRACTION = 30889,
+ SPELL_DRINK_POISON = 30907,
+
+ SPELL_BACKWARD_LUNGE = 30815,
+ SPELL_DARING = 30841,
+ SPELL_DEADLY_SWATHE = 30817,
+ SPELL_POISON_THRUST = 30822,
+
+ SPELL_UNDYING_LOVE = 30951,
+ SPELL_RES_VISUAL = 24171,
+
+ CREATURE_ROMULO = 17533,
+ ROMULO_X = -10900,
+ 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;
diff --git a/src/server/scripts/EasternKingdoms/Karazhan/karazhan.cpp b/src/server/scripts/EasternKingdoms/Karazhan/karazhan.cpp
index d2b83c6ac54..660b8f6c460 100644
--- a/src/server/scripts/EasternKingdoms/Karazhan/karazhan.cpp
+++ b/src/server/scripts/EasternKingdoms/Karazhan/karazhan.cpp
@@ -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()
diff --git a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_arcanist_doan.cpp b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_arcanist_doan.cpp
index c39a647d5e1..33335c32d05 100644
--- a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_arcanist_doan.cpp
+++ b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_arcanist_doan.cpp
@@ -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;
diff --git a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_bloodmage_thalnos.cpp b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_bloodmage_thalnos.cpp
index ff1a0867de0..b97e1d15dc0 100644
--- a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_bloodmage_thalnos.cpp
+++ b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_bloodmage_thalnos.cpp
@@ -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;
}
diff --git a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp
index aecd29b34b0..5bedf1e99b2 100644
--- a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp
+++ b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp
@@ -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};
@@ -251,13 +252,17 @@ public:
laugh = urand(15000, 30000);
}
- void EnterCombat(Unit* /*who*/) {}
- void SaySound(int32 textEntry, Unit* target = 0)
+ void EnterCombat(Unit* /*who*/) { }
+
+ void SaySound(uint8 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)
+ if (Creature* speaker = DoSpawnCreature(HELPER, 0, 0, 0, 0, TEMPSUMMON_TIMED_DESPAWN, 1000))
speaker->CastSpell(speaker, SPELL_HEAD_SPEAKS, false);
laugh += 3000;
}
@@ -517,9 +522,12 @@ public:
}
}
- void SaySound(int32 textEntry, Unit* target = 0)
+ void SaySound(uint8 textEntry, Unit* target = 0)
{
- DoScriptText(textEntry, me, target);
+ if (target)
+ Talk(textEntry, target->GetGUID());
+ else
+ Talk(textEntry);
laugh += 4000;
}
diff --git a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_herod.cpp b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_herod.cpp
index dbbbb7fb0dd..8c1b22e9871 100644
--- a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_herod.cpp
+++ b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_herod.cpp
@@ -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;
}
diff --git a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_houndmaster_loksey.cpp b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_houndmaster_loksey.cpp
index 9a66c9ba728..0d08431d39c 100644
--- a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_houndmaster_loksey.cpp
+++ b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_houndmaster_loksey.cpp
@@ -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)
diff --git a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_interrogator_vishas.cpp b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_interrogator_vishas.cpp
index 07b5ec5d584..f0e7ac94703 100644
--- a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_interrogator_vishas.cpp
+++ b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_interrogator_vishas.cpp
@@ -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;
}
diff --git a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_mograine_and_whitemane.cpp b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_mograine_and_whitemane.cpp
index 4b3c8f2160e..651ca453916 100644
--- a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_mograine_and_whitemane.cpp
+++ b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_mograine_and_whitemane.cpp
@@ -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;
}
}
diff --git a/src/server/scripts/EasternKingdoms/ShadowfangKeep/instance_shadowfang_keep.cpp b/src/server/scripts/EasternKingdoms/ShadowfangKeep/instance_shadowfang_keep.cpp
index 509fcdd845e..5d9df239870 100644
--- a/src/server/scripts/EasternKingdoms/ShadowfangKeep/instance_shadowfang_keep.cpp
+++ b/src/server/scripts/EasternKingdoms/ShadowfangKeep/instance_shadowfang_keep.cpp
@@ -23,6 +23,7 @@ SDComment:
SDCategory: Shadowfang Keep
EndScriptData */
+#include "ScriptedCreature.h"
#include "ScriptMgr.h"
#include "InstanceScript.h"
#include "shadowfang_keep.h"
@@ -32,9 +33,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 +140,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 +258,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;
diff --git a/src/server/scripts/EasternKingdoms/ShadowfangKeep/shadowfang_keep.cpp b/src/server/scripts/EasternKingdoms/ShadowfangKeep/shadowfang_keep.cpp
index 5fc41b3b267..c98148e645b 100644
--- a/src/server/scripts/EasternKingdoms/ShadowfangKeep/shadowfang_keep.cpp
+++ b/src/server/scripts/EasternKingdoms/ShadowfangKeep/shadowfang_keep.cpp
@@ -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;
}
}
diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_brutallus.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_brutallus.cpp
index c763cb69dec..3e9d2e991fc 100644
--- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_brutallus.cpp
+++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_brutallus.cpp
@@ -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_MADR_ICE_BARRIER = -1580031,
- YELL_MADR_INTRO = -1580032,
- YELL_MADR_ICE_BLOCK = -1580033,
- YELL_MADR_TRAP = -1580034,
- YELL_MADR_DEATH = -1580035,
-
- 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_INTRO = 0,
+ YELL_INTRO_BREAK_ICE = 1,
+ YELL_INTRO_CHARGE = 2,
+ YELL_INTRO_KILL_MADRIGOSA = 3,
+ YELL_INTRO_TAUNT = 4,
+
+ YELL_AGGRO = 5,
+ YELL_KILL = 6,
+ YELL_LOVE = 7,
+ YELL_BERSERK = 8,
+ YELL_DEATH = 9,
+
+ 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_INTRO_FROST_BLAST = 45203,
- SPELL_INTRO_FROSTBOLT = 44843,
- SPELL_INTRO_ENCAPSULATE = 45665,
- SPELL_INTRO_ENCAPSULATE_CHANELLING = 45661
+ 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
};
#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;
diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp
index 95dde4f0ada..23a83a7ee8f 100644
--- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp
+++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp
@@ -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,
-
- //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_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,
+
+ 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;
diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_felmyst.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_felmyst.cpp
index bc841d76714..35fabb7a195 100644
--- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_felmyst.cpp
+++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_felmyst.cpp
@@ -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_KILL = 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:
diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kalecgos.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kalecgos.cpp
index 1239ca88d03..c7db80c7f22 100644
--- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kalecgos.cpp
+++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kalecgos.cpp
@@ -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,
-
- //Kalecgos humanoid form
- SAY_GOOD_AGGRO = -1580006,
- SAY_GOOD_NEAR_DEATH = -1580007,
- SAY_GOOD_NEAR_DEATH2 = -1580008,
- SAY_GOOD_PLRWIN = -1580009,
-
- //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_SATH_AGGRO = 0,
+ SAY_SATH_SLAY = 1,
+ SAY_SATH_DEATH = 2,
+ SAY_SATH_SPELL1 = 3,
+ SAY_SATH_SPELL2 = 4,
+
+ SAY_EVIL_AGGRO = 0,
+ SAY_EVIL_SLAY = 1,
+ SAY_GOOD_PLRWIN = 2,
+ SAY_EVIL_ENRAGE = 3,
+
+ 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,
-
- 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_CORRUPTION_STRIKE = 45029,
- SPELL_AGONY_CURSE = 45032,
- SPELL_SHADOW_BOLT = 45031,
-
- SPELL_HEROIC_STRIKE = 45026,
- SPELL_REVITALIZE = 45027
+ 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_BANISH = 44836,
+ SPELL_TRANSFORM_KALEC = 44670,
+ SPELL_ENRAGE = 44807,
+
+ SPELL_CORRUPTION_STRIKE = 45029,
+ SPELL_AGONY_CURSE = 45032,
+ SPELL_SHADOW_BOLT = 45031,
+
+ 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;
diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp
index febbc8bc18e..814588fdf68 100644
--- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp
+++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp
@@ -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,
-
- // 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,
-
- /*** 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_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,
+
+ 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,
+
+ 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;
}
diff --git a/src/server/scripts/EasternKingdoms/Uldaman/boss_ironaya.cpp b/src/server/scripts/EasternKingdoms/Uldaman/boss_ironaya.cpp
index c05a36f93a7..1537f0eeb88 100644
--- a/src/server/scripts/EasternKingdoms/Uldaman/boss_ironaya.cpp
+++ b/src/server/scripts/EasternKingdoms/Uldaman/boss_ironaya.cpp
@@ -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)
diff --git a/src/server/scripts/EasternKingdoms/Uldaman/instance_uldaman.cpp b/src/server/scripts/EasternKingdoms/Uldaman/instance_uldaman.cpp
index eeb1df7b693..efbc4f75ae1 100644
--- a/src/server/scripts/EasternKingdoms/Uldaman/instance_uldaman.cpp
+++ b/src/server/scripts/EasternKingdoms/Uldaman/instance_uldaman.cpp
@@ -476,7 +476,7 @@ class instance_uldaman : public InstanceMapScript
case 2:
case 3:
case 4:
- return vVaultWalker.at(identifier);
+ return vVaultWalker.at(identifier - 1);
case 5:
case 6:
case 7:
diff --git a/src/server/scripts/EasternKingdoms/ZulAman/boss_janalai.cpp b/src/server/scripts/EasternKingdoms/ZulAman/boss_janalai.cpp
index 8a102757036..ed10dec97dd 100644
--- a/src/server/scripts/EasternKingdoms/ZulAman/boss_janalai.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulAman/boss_janalai.cpp
@@ -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;
diff --git a/src/server/scripts/EasternKingdoms/hinterlands.cpp b/src/server/scripts/EasternKingdoms/hinterlands.cpp
index 0398779655f..618491c8c7b 100644
--- a/src/server/scripts/EasternKingdoms/hinterlands.cpp
+++ b/src/server/scripts/EasternKingdoms/hinterlands.cpp
@@ -38,11 +38,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,
@@ -69,7 +69,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);
@@ -93,13 +93,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;
@@ -136,10 +136,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)
@@ -149,6 +146,207 @@ public:
};
};
+<<<<<<< HEAD
+=======
+/*######
+## npc_rinji
+######*/
+
+enum eRinji
+{
+ 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,
+ NPC_OUTRUNNER = 2691,
+ GO_RINJI_CAGE = 142036
+};
+
+struct Location
+{
+ float m_fX, m_fY, m_fZ;
+};
+
+Location m_afAmbushSpawn[] =
+{
+ {191.296204f, -2839.329346f, 107.388f},
+ {70.972466f, -2848.674805f, 109.459f}
+};
+
+Location m_afAmbushMoveTo[] =
+{
+ {166.630386f, -2824.780273f, 108.153f},
+ {70.886589f, -2874.335449f, 116.675f}
+};
+
+class npc_rinji : public CreatureScript
+{
+public:
+ npc_rinji() : CreatureScript("npc_rinji") { }
+
+ bool OnQuestAccept(Player* player, Creature* creature, const Quest* quest)
+ {
+ if (quest->GetQuestId() == QUEST_RINJI_TRAPPED)
+ {
+ if (GameObject* go = creature->FindNearestGameObject(GO_RINJI_CAGE, INTERACTION_DISTANCE))
+ go->UseDoorOrButton();
+
+ if (npc_rinjiAI* pEscortAI = CAST_AI(npc_rinji::npc_rinjiAI, creature->AI()))
+ pEscortAI->Start(false, false, player->GetGUID(), quest);
+ }
+ return true;
+ }
+
+ CreatureAI* GetAI(Creature* creature) const
+ {
+ return new npc_rinjiAI(creature);
+ }
+
+ struct npc_rinjiAI : public npc_escortAI
+ {
+ npc_rinjiAI(Creature* creature) : npc_escortAI(creature)
+ {
+ m_bIsByOutrunner = false;
+ m_iSpawnId = 0;
+ }
+
+ bool m_bIsByOutrunner;
+ uint32 m_uiPostEventCount;
+ uint32 m_uiPostEventTimer;
+ int m_iSpawnId;
+
+ void Reset()
+ {
+ m_uiPostEventCount = 0;
+ m_uiPostEventTimer = 3000;
+ }
+
+ void JustRespawned()
+ {
+ m_bIsByOutrunner = false;
+ m_iSpawnId = 0;
+
+ npc_escortAI::JustRespawned();
+ }
+
+ void EnterCombat(Unit* who)
+ {
+ if (HasEscortState(STATE_ESCORT_ESCORTING))
+ {
+ if (who->GetEntry() == NPC_OUTRUNNER && !m_bIsByOutrunner)
+ {
+ if (Creature* talker = who->ToCreature())
+ talker->AI()->Talk(SAY_RIN_BY_OUTRUNNER);
+ m_bIsByOutrunner = true;
+ }
+
+ if (rand()%4)
+ return;
+
+ //only if attacked and escorter is not in combat?
+ Talk(SAY_RIN_HELP);
+ }
+ }
+
+ void DoSpawnAmbush(bool bFirst)
+ {
+ if (!bFirst)
+ m_iSpawnId = 1;
+
+ me->SummonCreature(NPC_RANGER,
+ m_afAmbushSpawn[m_iSpawnId].m_fX, m_afAmbushSpawn[m_iSpawnId].m_fY, m_afAmbushSpawn[m_iSpawnId].m_fZ, 0.0f,
+ TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 60000);
+
+ for (int i = 0; i < 2; ++i)
+ {
+ me->SummonCreature(NPC_OUTRUNNER,
+ m_afAmbushSpawn[m_iSpawnId].m_fX, m_afAmbushSpawn[m_iSpawnId].m_fY, m_afAmbushSpawn[m_iSpawnId].m_fZ, 0.0f,
+ TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 60000);
+ }
+ }
+
+ void JustSummoned(Creature* summoned)
+ {
+ summoned->SetWalk(false);
+ summoned->GetMotionMaster()->MovePoint(0, m_afAmbushMoveTo[m_iSpawnId].m_fX, m_afAmbushMoveTo[m_iSpawnId].m_fY, m_afAmbushMoveTo[m_iSpawnId].m_fZ);
+ }
+
+ void WaypointReached(uint32 waypointId)
+ {
+ Player* player = GetPlayerForEscort();
+ if (!player)
+ return;
+
+ switch (waypointId)
+ {
+ case 1:
+ Talk(SAY_RIN_FREE, player->GetGUID());
+ break;
+ case 7:
+ DoSpawnAmbush(true);
+ break;
+ case 13:
+ DoSpawnAmbush(false);
+ break;
+ case 17:
+ Talk(SAY_RIN_COMPLETE, player->GetGUID());
+ player->GroupEventHappens(QUEST_RINJI_TRAPPED, me);
+ SetRun();
+ m_uiPostEventCount = 1;
+ break;
+ }
+ }
+
+ void UpdateEscortAI(const uint32 uiDiff)
+ {
+ //Check if we have a current target
+ if (!UpdateVictim())
+ {
+ if (HasEscortState(STATE_ESCORT_ESCORTING) && m_uiPostEventCount)
+ {
+ if (m_uiPostEventTimer <= uiDiff)
+ {
+ m_uiPostEventTimer = 3000;
+
+ if (Player* player = GetPlayerForEscort())
+ {
+ switch (m_uiPostEventCount)
+ {
+ case 1:
+ Talk(SAY_RIN_PROGRESS_1, player->GetGUID());
+ ++m_uiPostEventCount;
+ break;
+ case 2:
+ Talk(SAY_RIN_PROGRESS_2, player->GetGUID());
+ m_uiPostEventCount = 0;
+ break;
+ }
+ }
+ else
+ {
+ me->DespawnOrUnsummon();
+ return;
+ }
+ }
+ else
+ m_uiPostEventTimer -= uiDiff;
+ }
+
+ return;
+ }
+
+ DoMeleeAttackIfReady();
+ }
+ };
+};
+
+>>>>>>> master
void AddSC_hinterlands()
{
new npc_00x09hl();
diff --git a/src/server/scripts/EasternKingdoms/undercity.cpp b/src/server/scripts/EasternKingdoms/undercity.cpp
index 6aaf2df0b22..05938452520 100644
--- a/src/server/scripts/EasternKingdoms/undercity.cpp
+++ b/src/server/scripts/EasternKingdoms/undercity.cpp
@@ -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;
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp
index a77f341a49b..f618d0e04e7 100755
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp
@@ -203,7 +203,7 @@ class boss_anubarak_trial : public CreatureScript
{
Talk(SAY_KILL_PLAYER);
if (instance)
- instance->SetData(DATA_TRIBUTE_TO_IMMORTALITY_ELEGIBLE, 0);
+ instance->SetData(DATA_TRIBUTE_TO_IMMORTALITY_ELIGIBLE, 0);
}
}
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp
index 70fd93df824..a99aa373602 100755
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp
@@ -647,7 +647,7 @@ struct boss_faction_championsAI : public BossAI
temp->AI()->Talk(SAY_KILL_PLAYER);
- instance->SetData(DATA_TRIBUTE_TO_IMMORTALITY_ELEGIBLE, 0);
+ instance->SetData(DATA_TRIBUTE_TO_IMMORTALITY_ELIGIBLE, 0);
}
}
}
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_lord_jaraxxus.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_lord_jaraxxus.cpp
index f8017980766..e2068cabb95 100755
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_lord_jaraxxus.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_lord_jaraxxus.cpp
@@ -128,7 +128,7 @@ class boss_jaraxxus : public CreatureScript
{
Talk(SAY_KILL_PLAYER);
if (instance)
- instance->SetData(DATA_TRIBUTE_TO_IMMORTALITY_ELEGIBLE, 0);
+ instance->SetData(DATA_TRIBUTE_TO_IMMORTALITY_ELIGIBLE, 0);
}
}
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp
index 106abe6fa52..2d09feef089 100755
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp
@@ -550,7 +550,7 @@ struct boss_jormungarAI : public BossAI
{
if (who->GetTypeId() == TYPEID_PLAYER)
if (instance)
- instance->SetData(DATA_TRIBUTE_TO_IMMORTALITY_ELEGIBLE, 0);
+ instance->SetData(DATA_TRIBUTE_TO_IMMORTALITY_ELIGIBLE, 0);
}
void EnterCombat(Unit* /*who*/)
@@ -952,7 +952,7 @@ class boss_icehowl : public CreatureScript
if (who->GetTypeId() == TYPEID_PLAYER)
{
if (instance)
- instance->SetData(DATA_TRIBUTE_TO_IMMORTALITY_ELEGIBLE, 0);
+ instance->SetData(DATA_TRIBUTE_TO_IMMORTALITY_ELIGIBLE, 0);
}
}
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp
index 0c081da5204..01d3bcbfe90 100755
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp
@@ -194,7 +194,7 @@ struct boss_twin_baseAI : public BossAI
{
Talk(SAY_KILL_PLAYER);
if (instance)
- instance->SetData(DATA_TRIBUTE_TO_IMMORTALITY_ELEGIBLE, 0);
+ instance->SetData(DATA_TRIBUTE_TO_IMMORTALITY_ELIGIBLE, 0);
}
}
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/instance_trial_of_the_crusader.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/instance_trial_of_the_crusader.cpp
index 6623d8e8765..fb084ec1e3c 100755
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/instance_trial_of_the_crusader.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/instance_trial_of_the_crusader.cpp
@@ -42,7 +42,7 @@ class instance_trial_of_the_crusader : public InstanceMapScript
ResilienceWillFixItTimer = 0;
SnoboldCount = 0;
MistressOfPainCount = 0;
- TributeToImmortalityElegible = true;
+ TributeToImmortalityEligible = true;
NeedSave = false;
TirionFordringGUID = 0;
@@ -462,8 +462,8 @@ class instance_trial_of_the_crusader : public InstanceMapScript
else if (data == DECREASE)
--MistressOfPainCount;
break;
- case DATA_TRIBUTE_TO_IMMORTALITY_ELEGIBLE:
- TributeToImmortalityElegible = false;
+ case DATA_TRIBUTE_TO_IMMORTALITY_ELIGIBLE:
+ TributeToImmortalityEligible = false;
break;
default:
break;
@@ -722,7 +722,7 @@ class instance_trial_of_the_crusader : public InstanceMapScript
return TrialCounter == 50;
case A_TRIBUTE_TO_IMMORTALITY_HORDE:
case A_TRIBUTE_TO_IMMORTALITY_ALLIANCE:
- return TrialCounter == 50 && TributeToImmortalityElegible;
+ return TrialCounter == 50 && TributeToImmortalityEligible;
case A_TRIBUTE_TO_DEDICATED_INSANITY:
return false/*uiGrandCrusaderAttemptsLeft == 50 && !bHasAtAnyStagePlayerEquippedTooGoodItem*/;
default:
@@ -769,7 +769,7 @@ class instance_trial_of_the_crusader : public InstanceMapScript
uint32 ResilienceWillFixItTimer;
uint8 SnoboldCount;
uint8 MistressOfPainCount;
- bool TributeToImmortalityElegible;
+ bool TributeToImmortalityEligible;
};
InstanceScript* GetInstanceScript(InstanceMap* map) const
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.h b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.h
index fa38b6b46c1..70fe03c5e0f 100644
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.h
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.h
@@ -24,7 +24,7 @@ enum
DATA_SNOBOLD_COUNT = 301,
DATA_MISTRESS_OF_PAIN_COUNT = 302,
- DATA_TRIBUTE_TO_IMMORTALITY_ELEGIBLE = 303,
+ DATA_TRIBUTE_TO_IMMORTALITY_ELIGIBLE = 303,
INCREASE = 501,
DECREASE = 502,