Merge pull request #8371 from Gacko/creaturetext

Core/DB: Some script to creature text conversions...
This commit is contained in:
ZxBiohazardZx
2012-11-20 13:53:55 -08:00
30 changed files with 1114 additions and 687 deletions

View File

@@ -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();
/*

View File

@@ -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);
}
}

View File

@@ -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;

View File

@@ -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;

View File

@@ -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);

View File

@@ -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]);

View File

@@ -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)

View File

@@ -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;

View File

@@ -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;
}
}

View File

@@ -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;

View File

@@ -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()

View File

@@ -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;

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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)

View File

@@ -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;
}

View File

@@ -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;
}
}

View File

@@ -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;

View File

@@ -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;
}
}

View File

@@ -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;

View File

@@ -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;

View File

@@ -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:

View File

@@ -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;

View File

@@ -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;
}

View File

@@ -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)

View File

@@ -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;

View File

@@ -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;
}

View File

@@ -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;