Core/DB: Creature text for 37 script files

This commit is contained in:
Gacko
2012-12-02 19:13:57 +01:00
parent f5bd0470d1
commit a73a7dc43f
38 changed files with 1919 additions and 1214 deletions

View File

@@ -78,7 +78,7 @@ public:
void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DEATH, me);
Talk(SAY_DEATH);
}
void UpdateAI(const uint32 diff)

View File

@@ -192,8 +192,8 @@ public:
enum Morridune
{
SAY_MORRIDUNE_1 = -1048003,
SAY_MORRIDUNE_2 = -1048004
SAY_MORRIDUNE_1 = 0,
SAY_MORRIDUNE_2 = 1
};
class npc_morridune : public CreatureScript
@@ -231,7 +231,7 @@ public:
{
npc_morriduneAI(Creature* creature) : npc_escortAI(creature)
{
DoScriptText(SAY_MORRIDUNE_1, creature);
creature->AI()->Talk(SAY_MORRIDUNE_1);
me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
Start(false, false, 0);
}
@@ -245,7 +245,7 @@ public:
me->SetOrientation(1.775791f);
me->SendMovementFlagUpdate();
me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
DoScriptText(SAY_MORRIDUNE_2, me);
Talk(SAY_MORRIDUNE_2);
break;
}
}

View File

@@ -21,16 +21,12 @@
enum Spells
{
SPELL_MIND_BLAST = 15587,
SPELL_SLEEP = 8399,
};
SPELL_MIND_BLAST = 15587,
SPELL_SLEEP = 8399,
//Id's from ACID
enum Yells
{
SAY_AGGRO = -1048002,
SAY_SLEEP = -1048001,
SAY_DEATH = -1048000
SAY_AGGRO = 0,
SAY_SLEEP = 1,
SAY_DEATH = 2
};
class boss_kelris : public CreatureScript
@@ -65,14 +61,14 @@ public:
void EnterCombat(Unit* /*who*/)
{
DoScriptText(SAY_AGGRO, me);
Talk(SAY_AGGRO);
if (instance)
instance->SetData(TYPE_KELRIS, IN_PROGRESS);
}
void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DEATH, me);
Talk(SAY_DEATH);
if (instance)
instance->SetData(TYPE_KELRIS, DONE);
}
@@ -92,7 +88,7 @@ public:
{
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
{
DoScriptText(SAY_SLEEP, me);
Talk(SAY_SLEEP);
DoCast(target, SPELL_SLEEP);
}
sleepTimer = urand(15000, 20000);

View File

@@ -33,20 +33,23 @@ EndContentData */
#include "razorfen_kraul.h"
#include "Player.h"
#define SAY_READY -1047000
#define SAY_POINT -1047001
#define SAY_AGGRO1 -1047002
#define SAY_BLUELEAF -1047003
#define SAY_DANGER -1047004
#define SAY_BAD -1047005
#define SAY_THINK -1047006
#define SAY_SOON -1047007
#define SAY_FINALY -1047008
#define SAY_WIN -1047009
#define SAY_END -1047010
enum Willix
{
SAY_READY = 0,
SAY_POINT = 1,
SAY_AGGRO1 = 2,
SAY_BLUELEAF = 3,
SAY_DANGER = 4,
SAY_BAD = 5,
SAY_THINK = 6,
SAY_SOON = 7,
SAY_FINALY = 8,
SAY_WIN = 9,
SAY_END = 10,
#define QUEST_WILLIX_THE_IMPORTER 1144
#define ENTRY_BOAR 4514
QUEST_WILLIX_THE_IMPORTER = 1144,
ENTRY_BOAR = 4514
};
class npc_willix : public CreatureScript
{
@@ -58,7 +61,7 @@ public:
if (quest->GetQuestId() == QUEST_WILLIX_THE_IMPORTER)
{
CAST_AI(npc_escortAI, (creature->AI()))->Start(true, false, player->GetGUID());
DoScriptText(SAY_READY, creature, player);
creature->AI()->Talk(SAY_READY, player->GetGUID());
creature->setFaction(113);
}
@@ -84,43 +87,43 @@ public:
{
case 3:
me->HandleEmoteCommand(EMOTE_STATE_POINT);
DoScriptText(SAY_POINT, me, player);
Talk(SAY_POINT, player->GetGUID());
break;
case 4:
me->SummonCreature(ENTRY_BOAR, 2137.66f, 1843.98f, 48.08f, 1.54f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000);
break;
case 8:
DoScriptText(SAY_BLUELEAF, me, player);
Talk(SAY_BLUELEAF, player->GetGUID());
break;
case 9:
DoScriptText(SAY_DANGER, me, player);
Talk(SAY_DANGER, player->GetGUID());
break;
case 13:
DoScriptText(SAY_BAD, me, player);
Talk(SAY_BAD, player->GetGUID());
break;
case 14:
me->SummonCreature(ENTRY_BOAR, 2078.91f, 1704.54f, 56.77f, 1.54f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000);
break;
case 25:
DoScriptText(SAY_THINK, me, player);
Talk(SAY_THINK, player->GetGUID());
break;
case 31:
DoScriptText(SAY_SOON, me, player);
Talk(SAY_SOON, player->GetGUID());
break;
case 42:
DoScriptText(SAY_FINALY, me, player);
Talk(SAY_FINALY, player->GetGUID());
break;
case 43:
me->SummonCreature(ENTRY_BOAR, 1956.43f, 1596.97f, 81.75f, 1.54f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000);
break;
case 45:
DoScriptText(SAY_WIN, me, player);
Talk(SAY_WIN, player->GetGUID());
me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER);
if (player->GetTypeId() == TYPEID_PLAYER)
CAST_PLR(player)->GroupEventHappens(QUEST_WILLIX_THE_IMPORTER, me);
break;
case 46:
DoScriptText(SAY_END, me, player);
Talk(SAY_END, player->GetGUID());
break;
}
}
@@ -129,7 +132,7 @@ public:
void EnterCombat(Unit* /*who*/)
{
DoScriptText(SAY_AGGRO1, me, NULL);
Talk(SAY_AGGRO1);
}
void JustSummoned(Creature* summoned)

View File

@@ -142,7 +142,7 @@ enum Actions
enum Yells
{
//Text emote
EMOTE_WEAKENED = -1531011,
EMOTE_WEAKENED = 0,
// ****** Out of Combat ******
// Random Wispers - No txt only sound
@@ -712,7 +712,7 @@ public:
{
instance->SetData(DATA_CTHUN_PHASE, PHASE_CTHUN_WEAK);
DoScriptText(EMOTE_WEAKENED, me);
Talk(EMOTE_WEAKENED);
PhaseTimer = 45000;
DoCast(me, SPELL_PURPLE_COLORATION, true);

View File

@@ -26,15 +26,18 @@ EndScriptData */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#define EMOTE_GENERIC_FRENZY_KILL -1000001
#define EMOTE_GENERIC_BERSERK -1000004
enum Huhuran
{
EMOTE_FRENZY_KILL = 0,
EMOTE_BERSERK = 1,
#define SPELL_FRENZY 26051
#define SPELL_BERSERK 26068
#define SPELL_POISONBOLT 26052
#define SPELL_NOXIOUSPOISON 26053
#define SPELL_WYVERNSTING 26180
#define SPELL_ACIDSPIT 26050
SPELL_FRENZY = 26051,
SPELL_BERSERK = 26068,
SPELL_POISONBOLT = 26052,
SPELL_NOXIOUSPOISON = 26053,
SPELL_WYVERNSTING = 26180,
SPELL_ACIDSPIT = 26050
};
class boss_huhuran : public CreatureScript
{
@@ -87,7 +90,7 @@ public:
if (!Frenzy && Frenzy_Timer <= diff)
{
DoCast(me, SPELL_FRENZY);
DoScriptText(EMOTE_GENERIC_FRENZY_KILL, me);
Talk(EMOTE_FRENZY_KILL);
Frenzy = true;
PoisonBolt_Timer = 3000;
Frenzy_Timer = urand(25000, 35000);
@@ -136,7 +139,7 @@ public:
if (!Berserk && HealthBelowPct(31))
{
me->InterruptNonMeleeSpells(false);
DoScriptText(EMOTE_GENERIC_BERSERK, me);
Talk(EMOTE_BERSERK);
DoCast(me, SPELL_BERSERK);
Berserk = true;
}

View File

@@ -26,17 +26,20 @@ EndScriptData */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#define SAY_AGGRO -1531008
#define SAY_SLAY -1531009
#define SAY_DEATH -1531010
enum Sartura
{
SAY_AGGRO = 0,
SAY_SLAY = 1,
SAY_DEATH = 2,
#define SPELL_WHIRLWIND 26083
#define SPELL_ENRAGE 28747 //Not sure if right ID.
#define SPELL_ENRAGEHARD 28798
SPELL_WHIRLWIND = 26083,
SPELL_ENRAGE = 28747, //Not sure if right ID.
SPELL_ENRAGEHARD = 28798,
//Guard Spell
#define SPELL_WHIRLWINDADD 26038
#define SPELL_KNOCKBACK 26027
SPELL_WHIRLWINDADD = 26038,
SPELL_KNOCKBACK = 26027
};
class boss_sartura : public CreatureScript
{
@@ -82,17 +85,17 @@ public:
void EnterCombat(Unit* /*who*/)
{
DoScriptText(SAY_AGGRO, me);
Talk(SAY_AGGRO);
}
void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DEATH, me);
Talk(SAY_DEATH);
}
void KilledUnit(Unit* /*victim*/)
{
DoScriptText(SAY_SLAY, me);
Talk(SAY_SLAY);
}
void UpdateAI(const uint32 diff)

View File

@@ -29,19 +29,18 @@ EndScriptData */
#include "Group.h"
#include "Player.h"
#define SAY_AGGRO1 -1531000
#define SAY_AGGRO2 -1531001
#define SAY_AGGRO3 -1531002
#define SAY_SLAY1 -1531003
#define SAY_SLAY2 -1531004
#define SAY_SLAY3 -1531005
#define SAY_SPLIT -1531006
#define SAY_DEATH -1531007
#define SPELL_ARCANE_EXPLOSION 25679
#define SPELL_EARTH_SHOCK 26194
#define SPELL_TRUE_FULFILLMENT 785
#define SPELL_BLINK 28391
enum Skeram
{
SAY_AGGRO = 0,
SAY_SLAY = 1,
SAY_SPLIT = 2,
SAY_DEATH = 3,
SPELL_ARCANE_EXPLOSION = 25679,
SPELL_EARTH_SHOCK = 26194,
SPELL_TRUE_FULFILLMENT = 785,
SPELL_BLINK = 28391
};
class ov_mycoordinates
{
@@ -104,20 +103,20 @@ public:
void KilledUnit(Unit* /*victim*/)
{
DoScriptText(RAND(SAY_SLAY1, SAY_SLAY2, SAY_SLAY3), me);
Talk(SAY_SLAY);
}
void JustDied(Unit* /*killer*/)
{
if (!IsImage)
DoScriptText(SAY_DEATH, me);
Talk(SAY_DEATH);
}
void EnterCombat(Unit* /*who*/)
{
if (IsImage || Images75)
return;
DoScriptText(RAND(SAY_AGGRO1, SAY_AGGRO2, SAY_AGGRO3), me);
Talk(SAY_AGGRO);
}
void UpdateAI(const uint32 diff)
@@ -209,7 +208,7 @@ public:
void DoSplit(int atPercent /* 75 50 25 */)
{
DoScriptText(SAY_SPLIT, me);
Talk(SAY_SPLIT);
ov_mycoordinates *place1 = new ov_mycoordinates(-8340.782227f, 2083.814453f, 125.648788f, 0);
ov_mycoordinates *place2 = new ov_mycoordinates(-8341.546875f, 2118.504639f, 133.058151f, 0);

View File

@@ -39,33 +39,30 @@ EndContentData */
enum Enums
{
//say
SAY_MAKE_PREPARATIONS = -1043001,
SAY_TEMPLE_OF_PROMISE = -1043002,
SAY_MUST_CONTINUE = -1043003,
SAY_BANISH_THE_SPIRITS = -1043004,
SAY_CAVERNS_PURIFIED = -1043005,
SAY_BEYOND_THIS_CORRIDOR = -1043006,
SAY_EMERALD_DREAM = -1043007,
SAY_MUTANUS_THE_DEVOURER = -1043012,
SAY_NARALEX_AWAKES = -1043014,
SAY_THANK_YOU = -1043015,
SAY_FAREWELL = -1043016,
SAY_ATTACKED = -1043017,
//yell
SAY_AT_LAST = -1043000,
SAY_I_AM_AWAKE = -1043013,
//emote
EMOTE_AWAKENING_RITUAL = -1043008,
EMOTE_TROUBLED_SLEEP = -1043009,
EMOTE_WRITHE_IN_AGONY = -1043010,
EMOTE_HORRENDOUS_VISION = -1043011,
//spell
SAY_AT_LAST = 0,
SAY_MAKE_PREPARATIONS = 1,
SAY_TEMPLE_OF_PROMISE = 2,
SAY_MUST_CONTINUE = 3,
SAY_BANISH_THE_SPIRITS = 4,
SAY_CAVERNS_PURIFIED = 5,
SAY_BEYOND_THIS_CORRIDOR = 6,
SAY_EMERALD_DREAM = 7,
EMOTE_AWAKENING_RITUAL = 8,
EMOTE_TROUBLED_SLEEP = 0,
EMOTE_WRITHE_IN_AGONY = 1,
EMOTE_HORRENDOUS_VISION = 2,
SAY_MUTANUS_THE_DEVOURER = 9,
SAY_I_AM_AWAKE = 3,
SAY_NARALEX_AWAKES = 10,
SAY_THANK_YOU = 4,
SAY_FAREWELL = 5,
SAY_ATTACKED = 11,
SPELL_MARK_OF_THE_WILD_RANK_2 = 5232,
SPELL_SERPENTINE_CLEANSING = 6270,
SPELL_NARALEXS_AWAKENING = 6271,
SPELL_FLIGHT_FORM = 33943,
//npc entry
NPC_DEVIATE_RAVAGER = 3636,
NPC_DEVIATE_VIPER = 5755,
NPC_DEVIATE_MOCCASIN = 5762,
@@ -97,7 +94,7 @@ public:
if (instance)
instance->SetData(TYPE_NARALEX_EVENT, IN_PROGRESS);
DoScriptText(SAY_MAKE_PREPARATIONS, creature);
creature->AI()->Talk(SAY_MAKE_PREPARATIONS);
creature->setFaction(250);
creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
@@ -124,7 +121,7 @@ public:
if (!instance->GetData(TYPE_NARALEX_YELLED))
{
DoScriptText(SAY_AT_LAST, creature);
creature->AI()->Talk(SAY_AT_LAST);
instance->SetData(TYPE_NARALEX_YELLED, 1);
}
}
@@ -166,7 +163,7 @@ public:
instance->SetData(TYPE_NARALEX_PART1, IN_PROGRESS);
break;
case 5:
DoScriptText(SAY_MUST_CONTINUE, me);
Talk(SAY_MUST_CONTINUE);
instance->SetData(TYPE_NARALEX_PART1, DONE);
break;
case 11:
@@ -175,7 +172,7 @@ public:
instance->SetData(TYPE_NARALEX_PART2, IN_PROGRESS);
break;
case 19:
DoScriptText(SAY_BEYOND_THIS_CORRIDOR, me);
Talk(SAY_BEYOND_THIS_CORRIDOR);
break;
case 24:
eventProgress = 1;
@@ -192,7 +189,7 @@ public:
void EnterCombat(Unit* who)
{
DoScriptText(SAY_ATTACKED, me, who);
Talk(SAY_ATTACKED, who->GetGUID());
}
void JustDied(Unit* /*slayer*/)
@@ -229,7 +226,7 @@ public:
if (eventProgress == 1)
{
++eventProgress;
DoScriptText(SAY_TEMPLE_OF_PROMISE, me);
Talk(SAY_TEMPLE_OF_PROMISE);
me->SummonCreature(NPC_DEVIATE_RAVAGER, -82.1763f, 227.874f, -93.3233f, 0, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 5000);
me->SummonCreature(NPC_DEVIATE_RAVAGER, -72.9506f, 216.645f, -93.6756f, 0, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 5000);
}
@@ -238,7 +235,7 @@ public:
if (eventProgress == 1)
{
++eventProgress;
DoScriptText(SAY_BANISH_THE_SPIRITS, me);
Talk(SAY_BANISH_THE_SPIRITS);
DoCast(me, SPELL_SERPENTINE_CLEANSING);
//CAST_AI(npc_escort::npc_escortAI, me->AI())->SetCanDefend(false);
eventTimer = 30000;
@@ -250,7 +247,7 @@ public:
if (eventProgress == 2)
{
//CAST_AI(npc_escort::npc_escortAI, me->AI())->SetCanDefend(true);
DoScriptText(SAY_CAVERNS_PURIFIED, me);
Talk(SAY_CAVERNS_PURIFIED);
instance->SetData(TYPE_NARALEX_PART2, DONE);
if (me->HasAura(SPELL_SERPENTINE_CLEANSING))
me->RemoveAura(SPELL_SERPENTINE_CLEANSING);
@@ -262,7 +259,7 @@ public:
++eventProgress;
eventTimer = 4000;
me->SetStandState(UNIT_STAND_STATE_KNEEL);
DoScriptText(SAY_EMERALD_DREAM, me);
Talk(SAY_EMERALD_DREAM);
}
else
if (eventProgress == 2)
@@ -272,7 +269,7 @@ public:
//CAST_AI(npc_escort::npc_escortAI, me->AI())->SetCanDefend(false);
if (Creature* naralex = instance->instance->GetCreature(instance->GetData64(DATA_NARALEX)))
DoCast(naralex, SPELL_NARALEXS_AWAKENING, true);
DoScriptText(EMOTE_AWAKENING_RITUAL, me);
Talk(EMOTE_AWAKENING_RITUAL);
}
else
if (eventProgress == 3)
@@ -280,7 +277,7 @@ public:
++eventProgress;
eventTimer = 15000;
if (Creature* naralex = instance->instance->GetCreature(instance->GetData64(DATA_NARALEX)))
DoScriptText(EMOTE_TROUBLED_SLEEP, naralex);
naralex->AI()->Talk(EMOTE_TROUBLED_SLEEP);
me->SummonCreature(NPC_DEVIATE_MOCCASIN, 135.943f, 199.701f, -103.529f, 0, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 15000);
me->SummonCreature(NPC_DEVIATE_MOCCASIN, 151.08f, 221.13f, -103.609f, 0, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 15000);
me->SummonCreature(NPC_DEVIATE_MOCCASIN, 128.007f, 227.428f, -97.421f, 0, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 15000);
@@ -291,7 +288,7 @@ public:
++eventProgress;
eventTimer = 30000;
if (Creature* naralex = instance->instance->GetCreature(instance->GetData64(DATA_NARALEX)))
DoScriptText(EMOTE_WRITHE_IN_AGONY, naralex);
naralex->AI()->Talk(EMOTE_WRITHE_IN_AGONY);
me->SummonCreature(NPC_NIGHTMARE_ECTOPLASM, 133.413f, 207.188f, -102.469f, 0, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 15000);
me->SummonCreature(NPC_NIGHTMARE_ECTOPLASM, 142.857f, 218.645f, -102.905f, 0, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 15000);
me->SummonCreature(NPC_NIGHTMARE_ECTOPLASM, 105.102f, 227.211f, -102.752f, 0, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 15000);
@@ -305,9 +302,9 @@ public:
{
++eventProgress;
if (Creature* naralex = instance->instance->GetCreature(instance->GetData64(DATA_NARALEX)))
DoScriptText(EMOTE_HORRENDOUS_VISION, naralex);
naralex->AI()->Talk(EMOTE_HORRENDOUS_VISION);
me->SummonCreature(NPC_MUTANUS_THE_DEVOURER, 150.872f, 262.905f, -103.503f, 0, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 300000);
DoScriptText(SAY_MUTANUS_THE_DEVOURER, me);
Talk(SAY_MUTANUS_THE_DEVOURER);
instance->SetData(TYPE_MUTANUS_THE_DEVOURER, IN_PROGRESS);
}
else
@@ -320,9 +317,9 @@ public:
if (me->HasAura(SPELL_NARALEXS_AWAKENING))
me->RemoveAura(SPELL_NARALEXS_AWAKENING);
naralex->SetStandState(UNIT_STAND_STATE_STAND);
DoScriptText(SAY_I_AM_AWAKE, naralex);
naralex->AI()->Talk(SAY_I_AM_AWAKE);
}
DoScriptText(SAY_NARALEX_AWAKES, me);
Talk(SAY_NARALEX_AWAKES);
}
else
if (eventProgress == 7)
@@ -330,7 +327,7 @@ public:
++eventProgress;
eventTimer = 6000;
if (Creature* naralex = instance->instance->GetCreature(instance->GetData64(DATA_NARALEX)))
DoScriptText(SAY_THANK_YOU, naralex);
naralex->AI()->Talk(SAY_THANK_YOU);
}
else
if (eventProgress == 8)
@@ -339,7 +336,7 @@ public:
eventTimer = 8000;
if (Creature* naralex = instance->instance->GetCreature(instance->GetData64(DATA_NARALEX)))
{
DoScriptText(SAY_FAREWELL, naralex);
naralex->AI()->Talk(SAY_FAREWELL);
naralex->AddAura(SPELL_FLIGHT_FORM, naralex);
}
SetRun();

View File

@@ -242,16 +242,16 @@ private:
enum weegliSpells
{
SPELL_BOMB = 8858,
SPELL_GOBLIN_LAND_MINE = 21688,
SPELL_SHOOT = 6660,
SPELL_WEEGLIS_BARREL = 10772
SPELL_BOMB = 8858,
SPELL_GOBLIN_LAND_MINE = 21688,
SPELL_SHOOT = 6660,
SPELL_WEEGLIS_BARREL = 10772
};
enum weegliSays
{
SAY_WEEGLI_OHNO = -1209000,
SAY_WEEGLI_OK_I_GO = -1209001
SAY_WEEGLI_OHNO = 0,
SAY_WEEGLI_OK_I_GO = 1
};
#define GOSSIP_WEEGLI "[PH] Please blow up the door."
@@ -363,7 +363,7 @@ public:
if (instance->GetData(EVENT_PYRAMID) == PYRAMID_CAGES_OPEN)
{
instance->SetData(EVENT_PYRAMID, PYRAMID_ARRIVED_AT_STAIR);
DoScriptText(SAY_WEEGLI_OHNO, me);
Talk(SAY_WEEGLI_OHNO);
me->SetHomePosition(1882.69f, 1272.28f, 41.87f, 0);
}
else
@@ -388,7 +388,7 @@ public:
me->setFaction(FACTION_FRIENDLY);
me->GetMotionMaster()->MovePoint(0, 1858.57f, 1146.35f, 14.745f);
me->SetHomePosition(1858.57f, 1146.35f, 14.745f, 3.85f); // in case he gets interrupted
DoScriptText(SAY_WEEGLI_OK_I_GO, me);
Talk(SAY_WEEGLI_OK_I_GO);
destroyingDoor=true;
}
}

View File

@@ -47,15 +47,9 @@ EndContentData */
enum draeneiSurvivor
{
SAY_HEAL1 = -1000176,
SAY_HEAL2 = -1000177,
SAY_HEAL3 = -1000178,
SAY_HEAL4 = -1000179,
SAY_HEAL = 0,
SAY_HELP1 = -1000180,
SAY_HELP2 = -1000181,
SAY_HELP3 = -1000182,
SAY_HELP4 = -1000183,
SAY_HELP = 1,
SPELL_IRRIDATION = 35046,
SPELL_STUNNED = 28630
@@ -108,7 +102,7 @@ public:
if (CanSayHelp && who->GetTypeId() == TYPEID_PLAYER && me->IsFriendlyTo(who) && me->IsWithinDistInMap(who, 25.0f))
{
//Random switch between 4 texts
DoScriptText(RAND(SAY_HELP1, SAY_HELP2, SAY_HELP3, SAY_HELP4), me, who);
Talk(SAY_HELP, who->GetGUID());
SayHelpTimer = 20000;
CanSayHelp = false;
@@ -140,7 +134,7 @@ public:
if (Player* player = Unit::GetPlayer(*me, pCaster))
{
DoScriptText(RAND(SAY_HEAL1, SAY_HEAL2, SAY_HEAL3, SAY_HEAL4), me, player);
Talk(SAY_HEAL, player->GetGUID());
player->TalkedToCreature(me->GetEntry(), me->GetGUID());
}
@@ -181,9 +175,9 @@ public:
enum Overgrind
{
SAY_TEXT = -1000184,
SAY_EMOTE = -1000185,
ATTACK_YELL = -1000186,
SAY_TEXT = 0,
SAY_EMOTE = 1,
ATTACK_YELL = 2,
AREA_COVE = 3579,
AREA_ISLE = 3639,
@@ -257,7 +251,7 @@ public:
void EnterCombat(Unit* who)
{
DoScriptText(ATTACK_YELL, me, who);
Talk(ATTACK_YELL, who->GetGUID());
}
void UpdateAI(const uint32 diff)
@@ -266,8 +260,8 @@ public:
{
if (EmoteTimer <= diff)
{
DoScriptText(SAY_TEXT, me);
DoScriptText(SAY_EMOTE, me);
Talk(SAY_TEXT);
Talk(SAY_EMOTE);
EmoteTimer = urand(120000, 150000);
} else EmoteTimer -= diff;
}
@@ -338,12 +332,12 @@ public:
enum Magwin
{
SAY_START = -1000111,
SAY_AGGRO = -1000112,
SAY_PROGRESS = -1000113,
SAY_END1 = -1000114,
SAY_END2 = -1000115,
EMOTE_HUG = -1000116,
SAY_START = 0,
SAY_AGGRO = 1,
SAY_PROGRESS = 2,
SAY_END1 = 3,
SAY_END2 = 4,
EMOTE_HUG = 5,
QUEST_A_CRY_FOR_SAY_HELP = 9528
};
@@ -380,17 +374,17 @@ public:
switch (waypointId)
{
case 0:
DoScriptText(SAY_START, me, player);
Talk(SAY_START, player->GetGUID());
break;
case 17:
DoScriptText(SAY_PROGRESS, me, player);
Talk(SAY_PROGRESS, player->GetGUID());
break;
case 28:
DoScriptText(SAY_END1, me, player);
Talk(SAY_END1, player->GetGUID());
break;
case 29:
DoScriptText(EMOTE_HUG, me, player);
DoScriptText(SAY_END2, me, player);
Talk(EMOTE_HUG, player->GetGUID());
Talk(SAY_END2, player->GetGUID());
player->GroupEventHappens(QUEST_A_CRY_FOR_SAY_HELP, me);
break;
}
@@ -399,7 +393,7 @@ public:
void EnterCombat(Unit* who)
{
DoScriptText(SAY_AGGRO, me, who);
Talk(SAY_AGGRO, who->GetGUID());
}
void Reset() {}
@@ -417,15 +411,15 @@ enum Geezle
SPELL_TREE_DISGUISE = 30298,
GEEZLE_SAY_1 = -1000629,
SPARK_SAY_2 = -1000630,
SPARK_SAY_3 = -1000631,
GEEZLE_SAY_4 = -1000632,
SPARK_SAY_5 = -1000633,
SPARK_SAY_6 = -1000634,
GEEZLE_SAY_7 = -1000635,
GEEZLE_SAY_1 = 0,
SPARK_SAY_2 = 0,
SPARK_SAY_3 = 1,
GEEZLE_SAY_4 = 1,
SPARK_SAY_5 = 2,
SPARK_SAY_6 = 3,
GEEZLE_SAY_7 = 2,
EMOTE_SPARK = -1000636,
EMOTE_SPARK = 4,
MOB_SPARK = 17243,
GO_NAGA_FLAG = 181694
@@ -479,41 +473,49 @@ public:
uint32 NextStep(uint8 Step)
{
Creature* Spark = Unit::GetCreature(*me, SparkGUID);
if (!Spark)
return 99999999;
switch (Step)
{
case 0:
if (Spark)
Spark->GetMotionMaster()->MovePoint(0, -5080.70f, -11253.61f, 0.56f);
Spark->GetMotionMaster()->MovePoint(0, -5080.70f, -11253.61f, 0.56f);
me->GetMotionMaster()->MovePoint(0, -5092.26f, -11252, 0.71f);
return 9000; // NPCs are walking up to fire
return 9000;
case 1:
DespawnNagaFlag(true);
DoScriptText(EMOTE_SPARK, Spark);
Spark->AI()->Talk(EMOTE_SPARK);
return 1000;
case 2:
DoScriptText(GEEZLE_SAY_1, me, Spark);
if (Spark)
{
Spark->SetInFront(me);
me->SetInFront(Spark);
}
Talk(GEEZLE_SAY_1, SparkGUID);
Spark->SetInFront(me);
me->SetInFront(Spark);
return 5000;
case 3: DoScriptText(SPARK_SAY_2, Spark); return 7000;
case 4: DoScriptText(SPARK_SAY_3, Spark); return 8000;
case 5: DoScriptText(GEEZLE_SAY_4, me, Spark); return 8000;
case 6: DoScriptText(SPARK_SAY_5, Spark); return 9000;
case 7: DoScriptText(SPARK_SAY_6, Spark); return 8000;
case 8: DoScriptText(GEEZLE_SAY_7, me, Spark); return 2000;
case 3:
Spark->AI()->Talk(SPARK_SAY_2);
return 7000;
case 4:
Spark->AI()->Talk(SPARK_SAY_3);
return 8000;
case 5:
Talk(GEEZLE_SAY_4, SparkGUID);
return 8000;
case 6:
Spark->AI()->Talk(SPARK_SAY_5);
return 9000;
case 7:
Spark->AI()->Talk(SPARK_SAY_6);
return 8000;
case 8:
Talk(GEEZLE_SAY_7, SparkGUID);
return 2000;
case 9:
me->GetMotionMaster()->MoveTargetedHome();
if (Spark)
Spark->GetMotionMaster()->MovePoint(0, SparkPos);
Spark->GetMotionMaster()->MovePoint(0, SparkPos);
CompleteQuest();
return 9000;
case 10:
if (Spark)
Spark->DisappearAndDie();
Spark->DisappearAndDie();
DespawnNagaFlag(false);
me->DisappearAndDie();
default: return 99999999;
@@ -658,9 +660,7 @@ enum BristlelimbCage
NPC_STILLPINE_CAPITIVE = 17375,
GO_BRISTELIMB_CAGE = 181714,
CAPITIVE_SAY_1 = -1000474,
CAPITIVE_SAY_2 = -1000475,
CAPITIVE_SAY_3 = -1000476,
CAPITIVE_SAY = 0,
POINT_INIT = 1,
EVENT_DESPAWN = 1,
@@ -673,9 +673,7 @@ class npc_stillpine_capitive : public CreatureScript
struct npc_stillpine_capitiveAI : public ScriptedAI
{
npc_stillpine_capitiveAI(Creature* creature) : ScriptedAI(creature)
{
}
npc_stillpine_capitiveAI(Creature* creature) : ScriptedAI(creature) {}
void Reset()
{
@@ -693,7 +691,7 @@ class npc_stillpine_capitive : public CreatureScript
{
if (owner)
{
DoScriptText(RAND(CAPITIVE_SAY_1, CAPITIVE_SAY_2, CAPITIVE_SAY_3), me, owner);
Talk(CAPITIVE_SAY, owner->GetGUID());
_player = owner;
}
Position pos;

View File

@@ -158,7 +158,7 @@ enum Stillpine
NPC_PRINCESS_STILLPINE = 17682,
GO_PRINCESS_STILLPINES_CAGE = 181928,
SPELL_OPENING_PRINCESS_STILLPINE_CREDIT = 31003,
SAY_DIRECTION = -1800074
SAY_DIRECTION = 0
};
class go_princess_stillpines_cage : public GameObjectScript
@@ -191,7 +191,7 @@ public:
{
if (type == POINT_MOTION_TYPE && id == 1)
{
DoScriptText(SAY_DIRECTION, me);
Talk(SAY_DIRECTION);
me->DespawnOrUnsummon();
}
}

View File

@@ -43,23 +43,12 @@ EndContentData */
enum Kerlonian
{
SAY_KER_START = -1000434,
EMOTE_KER_SLEEP_1 = -1000435,
EMOTE_KER_SLEEP_2 = -1000436,
EMOTE_KER_SLEEP_3 = -1000437,
SAY_KER_SLEEP_1 = -1000438,
SAY_KER_SLEEP_2 = -1000439,
SAY_KER_SLEEP_3 = -1000440,
SAY_KER_SLEEP_4 = -1000441,
EMOTE_KER_AWAKEN = -1000445,
SAY_KER_ALERT_1 = -1000442,
SAY_KER_ALERT_2 = -1000443,
SAY_KER_END = -1000444,
SAY_KER_START = 0,
EMOTE_KER_SLEEP = 1,
SAY_KER_SLEEP = 2,
SAY_KER_ALERT_1 = 3,
SAY_KER_END = 4,
EMOTE_KER_AWAKEN = 5,
SPELL_SLEEP_VISUAL = 25148,
SPELL_AWAKEN = 17536,
@@ -81,7 +70,7 @@ public:
if (npc_kerlonianAI* pKerlonianAI = CAST_AI(npc_kerlonian::npc_kerlonianAI, creature->AI()))
{
creature->SetStandState(UNIT_STAND_STATE_STAND);
DoScriptText(SAY_KER_START, creature, player);
creature->AI()->Talk(SAY_KER_START, player->GetGUID());
pKerlonianAI->StartFollow(player, FACTION_KER_ESCORTEE, quest);
}
}
@@ -118,7 +107,7 @@ public:
if (player->GetQuestStatus(QUEST_SLEEPER_AWAKENED) == QUEST_STATUS_INCOMPLETE)
player->GroupEventHappens(QUEST_SLEEPER_AWAKENED, me);
DoScriptText(SAY_KER_END, me);
Talk(SAY_KER_END);
}
SetFollowComplete();
@@ -136,9 +125,9 @@ public:
{
SetFollowPaused(true);
DoScriptText(RAND(EMOTE_KER_SLEEP_1, EMOTE_KER_SLEEP_2, EMOTE_KER_SLEEP_3), me);
Talk(EMOTE_KER_SLEEP);
DoScriptText(RAND(SAY_KER_SLEEP_1, SAY_KER_SLEEP_2, SAY_KER_SLEEP_3, SAY_KER_SLEEP_4), me);
Talk(SAY_KER_SLEEP);
me->SetStandState(UNIT_STAND_STATE_SLEEP);
DoCast(me, SPELL_SLEEP_VISUAL, false);
@@ -149,7 +138,7 @@ public:
me->RemoveAurasDueToSpell(SPELL_SLEEP_VISUAL);
me->SetStandState(UNIT_STAND_STATE_STAND);
DoScriptText(EMOTE_KER_AWAKEN, me);
Talk(EMOTE_KER_AWAKEN);
SetFollowPaused(false);
}
@@ -187,19 +176,19 @@ public:
enum Remtravel
{
SAY_REM_START = -1000327,
SAY_REM_AGGRO = -1000328,
SAY_REM_RAMP1_1 = -1000329,
SAY_REM_RAMP1_2 = -1000330,
SAY_REM_BOOK = -1000331,
SAY_REM_TENT1_1 = -1000332,
SAY_REM_TENT1_2 = -1000333,
SAY_REM_MOSS = -1000334,
EMOTE_REM_MOSS = -1000335,
SAY_REM_MOSS_PROGRESS = -1000336,
SAY_REM_PROGRESS = -1000337,
SAY_REM_REMEMBER = -1000338,
EMOTE_REM_END = -1000339,
SAY_REM_START = 0,
SAY_REM_AGGRO = 1,
SAY_REM_RAMP1_1 = 2,
SAY_REM_RAMP1_2 = 3,
SAY_REM_BOOK = 4,
SAY_REM_TENT1_1 = 5,
SAY_REM_TENT1_2 = 6,
SAY_REM_MOSS = 7,
EMOTE_REM_MOSS = 8,
SAY_REM_MOSS_PROGRESS = 9,
SAY_REM_PROGRESS = 10,
SAY_REM_REMEMBER = 11,
EMOTE_REM_END = 12,
FACTION_ESCORTEE = 10,
QUEST_ABSENT_MINDED_PT2 = 731,
@@ -242,40 +231,40 @@ public:
switch (waypointId)
{
case 0:
DoScriptText(SAY_REM_START, me, player);
Talk(SAY_REM_START, player->GetGUID());
break;
case 5:
DoScriptText(SAY_REM_RAMP1_1, me, player);
Talk(SAY_REM_RAMP1_1, player->GetGUID());
break;
case 6:
DoSpawnCreature(NPC_GRAVEL_SCOUT, -10.0f, 5.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000);
DoSpawnCreature(NPC_GRAVEL_BONE, -10.0f, 7.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000);
break;
case 9:
DoScriptText(SAY_REM_RAMP1_2, me, player);
Talk(SAY_REM_RAMP1_2, player->GetGUID());
break;
case 14:
//depend quest rewarded?
DoScriptText(SAY_REM_BOOK, me, player);
Talk(SAY_REM_BOOK, player->GetGUID());
break;
case 15:
DoScriptText(SAY_REM_TENT1_1, me, player);
Talk(SAY_REM_TENT1_1, player->GetGUID());
break;
case 16:
DoSpawnCreature(NPC_GRAVEL_SCOUT, -10.0f, 5.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000);
DoSpawnCreature(NPC_GRAVEL_BONE, -10.0f, 7.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000);
break;
case 17:
DoScriptText(SAY_REM_TENT1_2, me, player);
Talk(SAY_REM_TENT1_2, player->GetGUID());
break;
case 26:
DoScriptText(SAY_REM_MOSS, me, player);
Talk(SAY_REM_MOSS, player->GetGUID());
break;
case 27:
DoScriptText(EMOTE_REM_MOSS, me, player);
Talk(EMOTE_REM_MOSS, player->GetGUID());
break;
case 28:
DoScriptText(SAY_REM_MOSS_PROGRESS, me, player);
Talk(SAY_REM_MOSS_PROGRESS, player->GetGUID());
break;
case 29:
DoSpawnCreature(NPC_GRAVEL_SCOUT, -15.0f, 3.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000);
@@ -283,13 +272,13 @@ public:
DoSpawnCreature(NPC_GRAVEL_GEO, -15.0f, 7.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000);
break;
case 31:
DoScriptText(SAY_REM_PROGRESS, me, player);
Talk(SAY_REM_PROGRESS, player->GetGUID());
break;
case 41:
DoScriptText(SAY_REM_REMEMBER, me, player);
Talk(SAY_REM_REMEMBER, player->GetGUID());
break;
case 42:
DoScriptText(EMOTE_REM_END, me, player);
Talk(EMOTE_REM_END, player->GetGUID());
player->GroupEventHappens(QUEST_ABSENT_MINDED_PT2, me);
break;
}
@@ -301,7 +290,7 @@ public:
void EnterCombat(Unit* who)
{
if (urand(0, 1))
DoScriptText(SAY_REM_AGGRO, me, who);
Talk(SAY_REM_AGGRO, who->GetGUID());
}
void JustSummoned(Creature* /*pSummoned*/)
@@ -319,8 +308,8 @@ public:
enum Threshwackonator
{
EMOTE_START = -1000325, //signed for 4966
SAY_AT_CLOSE = -1000326, //signed for 4966
EMOTE_START = 0,
SAY_AT_CLOSE = 1,
QUEST_GYROMAST_REV = 2078,
NPC_GELKAK = 6667,
FACTION_HOSTILE = 14
@@ -342,7 +331,7 @@ public:
if (npc_threshwackonatorAI* pThreshAI = CAST_AI(npc_threshwackonator::npc_threshwackonatorAI, creature->AI()))
{
DoScriptText(EMOTE_START, creature);
creature->AI()->Talk(EMOTE_START);
pThreshAI->StartFollow(player);
}
}
@@ -378,7 +367,7 @@ public:
{
if (me->IsWithinDistInMap(who, 10.0f))
{
DoScriptText(SAY_AT_CLOSE, who);
Talk(SAY_AT_CLOSE, who->GetGUID());
DoAtEnd();
}
}

View File

@@ -138,22 +138,16 @@ class mobs_risen_husk_spirit : public CreatureScript
enum TheramoreGuard
{
SAY_QUEST1 = -1000641,
SAY_QUEST2 = -1000642,
SAY_QUEST3 = -1000643,
SAY_QUEST4 = -1000644,
SAY_QUEST5 = -1000645,
SAY_QUEST6 = -1000646,
SAY_QUEST7 = -1000647,
SAY_QUEST8 = -1000648,
SAY_QUEST9 = -1000649,
QUEST_DISCREDITING_THE_DESERTERS = 11133,
QUEST_DISCREDITING_THE_DESERTERS = 11133,
NPC_THERAMORE_GUARD = 4979,
NPC_THERAMORE_GUARD = 4979,
SPELL_DOCTORED_LEAFLET = 42725,
SPELL_PROPAGANDIZED = 42246,
SPELL_DOCTORED_LEAFLET = 42725,
SPELL_PROPAGANDIZED = 42246,
SAY_QUEST1 = 0,
SAY_QUEST2 = 1,
SAY_QUEST3 = 2
};
#define GOSSIP_ITEM_THERAMORE_GUARD "You look like an intelligent person. Why don't you read one of these leaflets and give it some thought?"
@@ -181,7 +175,7 @@ public:
{
player->CLOSE_GOSSIP_MENU();
player->KilledMonsterCredit(NPC_THERAMORE_GUARD, 0);
DoScriptText(SAY_QUEST1, creature);
creature->AI()->Talk(SAY_QUEST1);
creature->CastSpell(creature, SPELL_DOCTORED_LEAFLET, false);
creature->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
CAST_AI(npc_theramore_guard::npc_theramore_guardAI, creature->AI())->YellTimer = 4000;
@@ -220,12 +214,12 @@ public:
switch (Step)
{
case 0:
DoScriptText(RAND(SAY_QUEST2, SAY_QUEST3, SAY_QUEST4, SAY_QUEST5, SAY_QUEST6), me);
Talk(SAY_QUEST2);
YellTimer = 3000;
++Step;
break;
case 1:
DoScriptText(RAND(SAY_QUEST7, SAY_QUEST8, SAY_QUEST9), me);
Talk(SAY_QUEST3);
me->HandleEmoteCommand(EMOTE_ONESHOT_LAUGH);
Step = 0;
bYellTimer = false;
@@ -328,12 +322,11 @@ public:
enum Hendel
{
// looks like all this text ids are wrong.
SAY_PROGRESS_1_TER = -1000411, // signed for 3568
SAY_PROGRESS_2_HEN = -1000412, // signed for 3568
SAY_PROGRESS_3_TER = -1000413,
SAY_PROGRESS_4_TER = -1000414,
EMOTE_SURRENDER = -1000415,
SAY_PROGRESS_1_TER = 0,
SAY_PROGRESS_2_HEN = 1,
SAY_PROGRESS_3_TER = 2,
SAY_PROGRESS_4_TER = 3,
EMOTE_SURRENDER = 4,
QUEST_MISSING_DIPLO_PT16 = 1324,
FACTION_HOSTILE = 168, //guessed, may be different
@@ -391,7 +384,7 @@ public:
if (Player* player = pDoneBy->GetCharmerOrOwnerPlayerOrPlayerItself())
player->GroupEventHappens(QUEST_MISSING_DIPLO_PT16, me);
DoScriptText(EMOTE_SURRENDER, me);
Talk(EMOTE_SURRENDER);
EnterEvadeMode();
}
}
@@ -407,8 +400,8 @@ Position const MovePosition = {-2967.030f, -3872.1799f, 35.620f, 0.0f};
enum Zelfrax
{
SAY_ZELFRAX = -1000472,
SAY_ZELFRAX_2 = -1000473
SAY_ZELFRAX1 = 0,
SAY_ZELFRAX2 = 1
};
class npc_zelfrax : public CreatureScript
@@ -461,8 +454,8 @@ public:
{
SetCombatMovement(false);
me->GetMotionMaster()->MovePoint(0, MovePosition);
DoScriptText(SAY_ZELFRAX, me);
DoScriptText(SAY_ZELFRAX_2, me);
Talk(SAY_ZELFRAX1);
Talk(SAY_ZELFRAX2);
}
void UpdateAI(uint32 const /*Diff*/)
@@ -484,16 +477,16 @@ enum Stinky
{
QUEST_STINKYS_ESCAPE_H = 1270,
QUEST_STINKYS_ESCAPE_A = 1222,
SAY_QUEST_ACCEPTED = -1000507,
SAY_STAY_1 = -1000508,
SAY_STAY_2 = -1000509,
SAY_STAY_3 = -1000510,
SAY_STAY_4 = -1000511,
SAY_STAY_5 = -1000512,
SAY_STAY_6 = -1000513,
SAY_QUEST_COMPLETE = -1000514,
SAY_ATTACKED_1 = -1000515,
EMOTE_DISAPPEAR = -1000516
SAY_QUEST_ACCEPTED = 0,
SAY_STAY_1 = 1,
SAY_STAY_2 = 2,
SAY_STAY_3 = 3,
SAY_STAY_4 = 4,
SAY_STAY_5 = 5,
SAY_STAY_6 = 6,
SAY_QUEST_COMPLETE = 7,
SAY_ATTACKED_1 = 8,
EMOTE_DISAPPEAR = 9
};
class npc_stinky : public CreatureScript
@@ -514,7 +507,7 @@ public:
{
creature->setFaction(FACTION_ESCORT_N_NEUTRAL_ACTIVE);
creature->SetStandState(UNIT_STAND_STATE_STAND);
DoScriptText(SAY_QUEST_ACCEPTED, creature);
creature->AI()->Talk(SAY_QUEST_ACCEPTED);
pEscortAI->Start(false, false, player->GetGUID());
}
}
@@ -534,29 +527,29 @@ public:
switch (waypointId)
{
case 7:
DoScriptText(SAY_STAY_1, me, player);
Talk(SAY_STAY_1, player->GetGUID());
break;
case 11:
DoScriptText(SAY_STAY_2, me, player);
Talk(SAY_STAY_2, player->GetGUID());
break;
case 25:
DoScriptText(SAY_STAY_3, me, player);
Talk(SAY_STAY_3, player->GetGUID());
break;
case 26:
DoScriptText(SAY_STAY_4, me, player);
Talk(SAY_STAY_4, player->GetGUID());
break;
case 27:
DoScriptText(SAY_STAY_5, me, player);
Talk(SAY_STAY_5, player->GetGUID());
break;
case 28:
DoScriptText(SAY_STAY_6, me, player);
Talk(SAY_STAY_6, player->GetGUID());
me->SetStandState(UNIT_STAND_STATE_KNEEL);
break;
case 29:
me->SetStandState(UNIT_STAND_STATE_STAND);
break;
case 37:
DoScriptText(SAY_QUEST_COMPLETE, me, player);
Talk(SAY_QUEST_COMPLETE, player->GetGUID());
me->SetSpeed(MOVE_RUN, 1.2f, true);
me->SetWalk(false);
if (player->GetQuestStatus(QUEST_STINKYS_ESCAPE_H))
@@ -565,14 +558,14 @@ public:
player->GroupEventHappens(QUEST_STINKYS_ESCAPE_A, me);
break;
case 39:
DoScriptText(EMOTE_DISAPPEAR, me);
Talk(EMOTE_DISAPPEAR);
break;
}
}
void EnterCombat(Unit* who)
{
DoScriptText(SAY_ATTACKED_1, me, who);
Talk(SAY_ATTACKED_1, who->GetGUID());
}
void Reset() {}

View File

@@ -75,12 +75,10 @@ public:
enum OOX
{
//signed for 7806
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 = 2,
SAY_OOX_END = 3,
NPC_YETI = 7848,
NPC_GORILLA = 5260,
@@ -103,7 +101,7 @@ public:
{
if (quest->GetQuestId() == QUEST_RESCUE_OOX22FE)
{
DoScriptText(SAY_OOX_START, creature);
creature->AI()->Talk(SAY_OOX_START);
//change that the npc is not lying dead on the ground
creature->SetStandState(UNIT_STAND_STATE_STAND);
@@ -135,28 +133,28 @@ public:
{
// First Ambush(3 Yetis)
case 11:
DoScriptText(SAY_OOX_AMBUSH, me);
Talk(SAY_OOX_AMBUSH);
me->SummonCreature(NPC_YETI, -4841.01f, 1593.91f, 73.42f, 3.98f, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 10000);
me->SummonCreature(NPC_YETI, -4837.61f, 1568.58f, 78.21f, 3.13f, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 10000);
me->SummonCreature(NPC_YETI, -4841.89f, 1569.95f, 76.53f, 0.68f, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 10000);
break;
//Second Ambush(3 Gorillas)
case 21:
DoScriptText(SAY_OOX_AMBUSH, me);
Talk(SAY_OOX_AMBUSH);
me->SummonCreature(NPC_GORILLA, -4595.81f, 2005.99f, 53.08f, 3.74f, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 10000);
me->SummonCreature(NPC_GORILLA, -4597.53f, 2008.31f, 52.70f, 3.78f, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 10000);
me->SummonCreature(NPC_GORILLA, -4599.37f, 2010.59f, 52.77f, 3.84f, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 10000);
break;
//Third Ambush(4 Gnolls)
case 30:
DoScriptText(SAY_OOX_AMBUSH, me);
Talk(SAY_OOX_AMBUSH);
me->SummonCreature(NPC_WOODPAW_REAVER, -4425.14f, 2075.87f, 47.77f, 3.77f, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 10000);
me->SummonCreature(NPC_WOODPAW_BRUTE, -4426.68f, 2077.98f, 47.57f, 3.77f, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 10000);
me->SummonCreature(NPC_WOODPAW_MYSTIC, -4428.33f, 2080.24f, 47.43f, 3.87f, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 10000);
me->SummonCreature(NPC_WOODPAW_ALPHA, -4430.04f, 2075.54f, 46.83f, 3.81f, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 10000);
break;
case 37:
DoScriptText(SAY_OOX_END, me);
Talk(SAY_OOX_END);
// Award quest credit
if (Player* player = GetPlayerForEscort())
player->GroupEventHappens(QUEST_RESCUE_OOX22FE, me);
@@ -174,7 +172,7 @@ public:
{
//For an small probability the npc says something when he get aggro
if (urand(0, 9) > 7)
DoScriptText(RAND(SAY_OOX_AGGRO1, SAY_OOX_AGGRO2), me);
Talk(SAY_OOX_AGGRO);
}
void JustSummoned(Creature* summoned)

View File

@@ -76,10 +76,9 @@ public:
enum KyleFrenzied
{
//emote signed for 7780 but propably thats wrong id.
EMOTE_SEE_LUNCH = -1000340,
EMOTE_EAT_LUNCH = -1000341,
EMOTE_DANCE = -1000342,
EMOTE_SEE_LUNCH = 0,
EMOTE_EAT_LUNCH = 1,
EMOTE_DANCE = 2,
SPELL_LUNCH = 42222,
NPC_KYLE_FRENZIED = 23616,
@@ -134,7 +133,7 @@ public:
}
EventActive = true;
DoScriptText(EMOTE_SEE_LUNCH, me);
Talk(EMOTE_SEE_LUNCH);
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_CREATURE_SPECIAL);
}
}
@@ -173,7 +172,7 @@ public:
}
break;
case 2:
DoScriptText(EMOTE_EAT_LUNCH, me);
Talk(EMOTE_EAT_LUNCH);
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_USE_STANDING);
break;
case 3:
@@ -184,7 +183,7 @@ public:
break;
case 4:
EventTimer = 30000;
DoScriptText(EMOTE_DANCE, me);
Talk(EMOTE_DANCE);
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_DANCESPECIAL);
break;
case 5:

View File

@@ -101,9 +101,9 @@ enum Kaya
NPC_GRIMTOTEM_BRUTE = 11912,
NPC_GRIMTOTEM_SORCERER = 11913,
SAY_START = -1000357,
SAY_AMBUSH = -1000358,
SAY_END = -1000359,
SAY_START = 0,
SAY_AMBUSH = 1,
SAY_END = 2,
QUEST_PROTECT_KAYA = 6523
};
@@ -126,14 +126,14 @@ public:
switch (waypointId)
{
case 16:
DoScriptText(SAY_AMBUSH, me);
Talk(SAY_AMBUSH);
me->SummonCreature(NPC_GRIMTOTEM_BRUTE, -48.53f, -503.34f, -46.31f, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000);
me->SummonCreature(NPC_GRIMTOTEM_RUFFIAN, -38.85f, -503.77f, -45.90f, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000);
me->SummonCreature(NPC_GRIMTOTEM_SORCERER, -36.37f, -496.23f, -45.71f, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000);
break;
case 18:
me->SetInFront(player);
DoScriptText(SAY_END, me, player);
Talk(SAY_END);
player->GroupEventHappens(QUEST_PROTECT_KAYA, me);
break;
}
@@ -154,7 +154,7 @@ public:
if (npc_escortAI* pEscortAI = CAST_AI(npc_kaya_flathoof::npc_kaya_flathoofAI, creature->AI()))
pEscortAI->Start(true, false, player->GetGUID());
DoScriptText(SAY_START, creature);
creature->AI()->Talk(SAY_START);
creature->setFaction(113);
creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
}

View File

@@ -47,7 +47,7 @@ EndContentData */
enum Aquementas
{
AGGRO_YELL_AQUE = -1000350,
AGGRO_YELL_AQUE = 0,
SPELL_AQUA_JET = 13586,
SPELL_FROST_SHOCK = 15089
@@ -101,7 +101,7 @@ public:
void EnterCombat(Unit* who)
{
DoScriptText(AGGRO_YELL_AQUE, me, who);
Talk(AGGRO_YELL_AQUE, who->GetGUID());
}
void UpdateAI(const uint32 diff)
@@ -427,13 +427,11 @@ public:
enum Npc00X17
{
//texts are signed for 7806
SAY_OOX_START = -1000287,
SAY_OOX_AGGRO1 = -1000288,
SAY_OOX_AGGRO2 = -1000289,
SAY_OOX_AMBUSH = -1000290,
SAY_OOX17_AMBUSH_REPLY = -1000291,
SAY_OOX_END = -1000292,
SAY_OOX_START = 0,
SAY_OOX_AGGRO = 1,
SAY_OOX_AMBUSH = 2,
SAY_OOX17_AMBUSH_REPLY = 0,
SAY_OOX_END = 3,
Q_OOX17 = 648,
SPAWN_FIRST = 7803,
@@ -454,7 +452,7 @@ public:
creature->SetFullHealth();
creature->SetUInt32Value(UNIT_FIELD_BYTES_1, 0);
creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
DoScriptText(SAY_OOX_START, creature);
creature->AI()->Talk(SAY_OOX_START);
if (npc_escortAI* pEscortAI = CAST_AI(npc_OOX17::npc_OOX17AI, creature->AI()))
pEscortAI->Start(true, false, player->GetGUID());
@@ -481,18 +479,18 @@ public:
me->SummonCreature(SPAWN_FIRST, -8350.96f, -4445.79f, 10.10f, 6.20f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000);
me->SummonCreature(SPAWN_FIRST, -8355.96f, -4447.79f, 10.10f, 6.27f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000);
me->SummonCreature(SPAWN_FIRST, -8353.96f, -4442.79f, 10.10f, 6.08f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000);
DoScriptText(SAY_OOX_AMBUSH, me);
Talk(SAY_OOX_AMBUSH);
break;
case 56:
me->SummonCreature(SPAWN_SECOND_1, -7510.07f, -4795.50f, 9.35f, 6.06f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000);
me->SummonCreature(SPAWN_SECOND_2, -7515.07f, -4797.50f, 9.35f, 6.22f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000);
me->SummonCreature(SPAWN_SECOND_2, -7518.07f, -4792.50f, 9.35f, 6.22f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000);
DoScriptText(SAY_OOX_AMBUSH, me);
if (Unit* scoff = me->FindNearestCreature(SPAWN_SECOND_2, 30))
DoScriptText(SAY_OOX17_AMBUSH_REPLY, scoff);
Talk(SAY_OOX_AMBUSH);
if (Creature* scoff = me->FindNearestCreature(SPAWN_SECOND_2, 30))
scoff->AI()->Talk(SAY_OOX17_AMBUSH_REPLY);
break;
case 86:
DoScriptText(SAY_OOX_END, me);
Talk(SAY_OOX_END);
player->GroupEventHappens(Q_OOX17, me);
break;
}
@@ -503,7 +501,7 @@ public:
void EnterCombat(Unit* /*who*/)
{
DoScriptText(RAND(SAY_OOX_AGGRO1, SAY_OOX_AGGRO2), me);
Talk(SAY_OOX_AGGRO);
}
void JustSummoned(Creature* summoned)
@@ -519,14 +517,13 @@ public:
enum Tooga
{
SAY_TOOG_THIRST = -1000391,
SAY_TOOG_WORRIED = -1000392,
SAY_TOOG_POST_1 = -1000393,
SAY_TORT_POST_2 = -1000394,
SAY_TOOG_POST_3 = -1000395,
SAY_TORT_POST_4 = -1000396,
SAY_TOOG_POST_5 = -1000397,
SAY_TORT_POST_6 = -1000398,
SAY_TOOG_WORRIED = 0,
SAY_TOOG_POST_1 = 1,
SAY_TORT_POST_2 = 0,
SAY_TOOG_POST_3 = 2,
SAY_TORT_POST_4 = 1,
SAY_TOOG_POST_5 = 3,
SAY_TORT_POST_6 = 2,
QUEST_TOOGA = 1560,
NPC_TORTA = 6015,
@@ -617,8 +614,8 @@ public:
{
PostEventTimer = 5000;
Unit* pTorta = Unit::GetUnit(*me, TortaGUID);
if (!pTorta || !pTorta->isAlive())
Creature* torta = Creature::GetCreature(*me, TortaGUID);
if (!torta || !torta->isAlive())
{
//something happened, so just complete
SetFollowComplete();
@@ -628,22 +625,22 @@ public:
switch (PhasePostEvent)
{
case 1:
DoScriptText(SAY_TOOG_POST_1, me);
Talk(SAY_TOOG_POST_1);
break;
case 2:
DoScriptText(SAY_TORT_POST_2, pTorta);
torta->AI()->Talk(SAY_TORT_POST_2);
break;
case 3:
DoScriptText(SAY_TOOG_POST_3, me);
Talk(SAY_TOOG_POST_3);
break;
case 4:
DoScriptText(SAY_TORT_POST_4, pTorta);
torta->AI()->Talk(SAY_TORT_POST_4);
break;
case 5:
DoScriptText(SAY_TOOG_POST_5, me);
Talk(SAY_TOOG_POST_5);
break;
case 6:
DoScriptText(SAY_TORT_POST_6, pTorta);
torta->AI()->Talk(SAY_TORT_POST_6);
me->GetMotionMaster()->MovePoint(POINT_ID_TO_WATER, ToWaterLoc);
break;
}
@@ -661,7 +658,7 @@ public:
CheckSpeechTimer = 5000;
if (urand(0, 9) > 8)
DoScriptText(RAND(SAY_TOOG_THIRST, SAY_TOOG_WORRIED), me);
Talk(SAY_TOOG_WORRIED);
}
else
CheckSpeechTimer -= Diff;

View File

@@ -44,7 +44,7 @@ EndContentData */
enum Kanati
{
SAY_KAN_START = -1000410,
SAY_KAN_START = 0,
QUEST_PROTECT_KANATI = 4966,
NPC_GALAK_ASS = 10720
@@ -82,7 +82,7 @@ public:
switch (waypointId)
{
case 0:
DoScriptText(SAY_KAN_START, me);
Talk(SAY_KAN_START);
DoSpawnGalak();
break;
case 1:
@@ -112,11 +112,11 @@ public:
enum Lakota
{
SAY_LAKO_START = -1000365,
SAY_LAKO_LOOK_OUT = -1000366,
SAY_LAKO_HERE_COME = -1000367,
SAY_LAKO_MORE = -1000368,
SAY_LAKO_END = -1000369,
SAY_LAKO_START = 0,
SAY_LAKO_LOOK_OUT = 1,
SAY_LAKO_HERE_COME = 2,
SAY_LAKO_MORE = 3,
SAY_LAKO_END = 4,
QUEST_FREE_AT_LAST = 4904,
NPC_GRIM_BANDIT = 10758,
@@ -146,7 +146,7 @@ public:
{
if (quest->GetQuestId() == QUEST_FREE_AT_LAST)
{
DoScriptText(SAY_LAKO_START, creature, player);
creature->AI()->Talk(SAY_LAKO_START, player->GetGUID());
creature->setFaction(FACTION_ESCORTEE_LAKO);
if (npc_lakota_windsongAI* pEscortAI = CAST_AI(npc_lakota_windsong::npc_lakota_windsongAI, creature->AI()))
@@ -171,15 +171,15 @@ public:
switch (waypointId)
{
case 8:
DoScriptText(SAY_LAKO_LOOK_OUT, me);
Talk(SAY_LAKO_LOOK_OUT);
DoSpawnBandits(ID_AMBUSH_1);
break;
case 14:
DoScriptText(SAY_LAKO_HERE_COME, me);
Talk(SAY_LAKO_HERE_COME);
DoSpawnBandits(ID_AMBUSH_2);
break;
case 21:
DoScriptText(SAY_LAKO_MORE, me);
Talk(SAY_LAKO_MORE);
DoSpawnBandits(ID_AMBUSH_3);
break;
case 45:
@@ -204,9 +204,9 @@ public:
enum Packa
{
SAY_START = -1000362,
SAY_WYVERN = -1000363,
SAY_COMPLETE = -1000364,
SAY_START = 0,
SAY_WYVERN = 1,
SAY_COMPLETE = 2,
QUEST_HOMEWARD = 4770,
NPC_WYVERN = 4107,
@@ -229,7 +229,7 @@ public:
{
if (quest->GetQuestId() == QUEST_HOMEWARD)
{
DoScriptText(SAY_START, creature, player);
creature->AI()->Talk(SAY_START, player->GetGUID());
creature->setFaction(FACTION_ESCORTEE);
if (npc_paoka_swiftmountainAI* pEscortAI = CAST_AI(npc_paoka_swiftmountain::npc_paoka_swiftmountainAI, creature->AI()))
@@ -254,11 +254,11 @@ public:
switch (waypointId)
{
case 15:
DoScriptText(SAY_WYVERN, me);
Talk(SAY_WYVERN);
DoSpawnWyvern();
break;
case 26:
DoScriptText(SAY_COMPLETE, me);
Talk(SAY_COMPLETE);
break;
case 27:
if (Player* player = GetPlayerForEscort())

View File

@@ -44,17 +44,12 @@ enum Creatures
// not in db
enum Yells
{
SAY_INTRO = -1601010,
SAY_AGGRO = -1601000,
SAY_SLAY_1 = -1601001,
SAY_SLAY_2 = -1601002,
SAY_SLAY_3 = -1601003,
SAY_LOCUST_1 = -1601005,
SAY_LOCUST_2 = -1601006,
SAY_LOCUST_3 = -1601007,
SAY_SUBMERGE_1 = -1601008,
SAY_SUBMERGE_2 = -1601009,
SAY_DEATH = -1601004
SAY_AGGRO = 0,
SAY_SLAY = 1,
SAY_DEATH = 2,
SAY_LOCUST = 3,
SAY_SUBMERGE = 4,
SAY_INTRO = 5
};
enum
@@ -161,7 +156,7 @@ public:
void EnterCombat(Unit* /*who*/)
{
DoScriptText(SAY_AGGRO, me);
Talk(SAY_AGGRO);
DelayTimer = 0;
if (instance)
instance->DoStartTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, ACHIEV_TIMED_START_EVENT);
@@ -338,7 +333,7 @@ public:
void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DEATH, me);
Talk(SAY_DEATH);
Summons.DespawnAll();
if (instance)
instance->SetData(DATA_ANUBARAK_EVENT, DONE);
@@ -348,7 +343,7 @@ public:
{
if (victim == me)
return;
DoScriptText(RAND(SAY_SLAY_1, SAY_SLAY_2, SAY_SLAY_3), me);
Talk(SAY_SLAY);
}
void JustSummoned(Creature* summon)

View File

@@ -61,19 +61,12 @@ enum Mobs
enum Yells
{
SAY_AGGRO = -1601011,
SAY_SLAY_1 = -1601012,
SAY_SLAY_2 = -1601013,
SAY_DEATH = -1601014,
//Not in db
SAY_SEND_GROUP_1 = -1601020,
SAY_SEND_GROUP_2 = -1601021,
SAY_SEND_GROUP_3 = -1601022,
SAY_SWARM_1 = -1601015,
SAY_SWARM_2 = -1601016,
SAY_PREFIGHT_1 = -1601017,
SAY_PREFIGHT_2 = -1601018,
SAY_PREFIGHT_3 = -1601019
SAY_AGGRO = 0,
SAY_SLAY = 1,
SAY_DEATH = 2,
SAY_SWARM = 3,
SAY_PREFIGHT = 4,
SAY_SEND_GROUP = 5
};
const Position SpawnPoint[] =
@@ -117,7 +110,7 @@ public:
void EnterCombat(Unit* /*who*/)
{
DoScriptText(SAY_AGGRO, me);
Talk(SAY_AGGRO);
Summon();
uiSummonTimer = 15*IN_MILLISECONDS;
@@ -180,7 +173,7 @@ public:
}
void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DEATH, me);
Talk(SAY_DEATH);
if (instance)
instance->SetData(DATA_KRIKTHIR_THE_GATEWATCHER_EVENT, DONE);
@@ -191,7 +184,7 @@ public:
if (victim == me)
return;
DoScriptText(RAND(SAY_SLAY_1, SAY_SLAY_2), me);
Talk(SAY_SLAY);
}
void JustSummoned(Creature* summoned)

View File

@@ -26,27 +26,19 @@
enum eEnums
{
//Sartharion Yell
SAY_SARTHARION_AGGRO = -1615018,
SAY_SARTHARION_BERSERK = -1615019,
SAY_SARTHARION_BREATH = -1615020,
SAY_SARTHARION_CALL_SHADRON = -1615021,
SAY_SARTHARION_CALL_TENEBRON = -1615022,
SAY_SARTHARION_CALL_VESPERON = -1615023,
SAY_SARTHARION_DEATH = -1615024,
SAY_SARTHARION_SPECIAL_1 = -1615025,
SAY_SARTHARION_SPECIAL_2 = -1615026,
SAY_SARTHARION_SPECIAL_3 = -1615027,
SAY_SARTHARION_SPECIAL_4 = -1615028,
SAY_SARTHARION_SLAY_1 = -1615029,
SAY_SARTHARION_SLAY_2 = -1615030,
SAY_SARTHARION_SLAY_3 = -1615031,
SAY_SARTHARION_AGGRO = 0,
SAY_SARTHARION_BERSERK = 1,
SAY_SARTHARION_BREATH = 2,
SAY_SARTHARION_CALL_SHADRON = 3,
SAY_SARTHARION_CALL_TENEBRON = 4,
SAY_SARTHARION_CALL_VESPERON = 5,
SAY_SARTHARION_DEATH = 6,
SAY_SARTHARION_SPECIAL = 7,
SAY_SARTHARION_SLAY = 8,
WHISPER_LAVA_CHURN = 9,
WHISPER_LAVA_CHURN = -1615032,
WHISPER_SHADRON_DICIPLE = -1615008,
WHISPER_VESPERON_DICIPLE = -1615041,
WHISPER_HATCH_EGGS = -1615017,
WHISPER_OPEN_PORTAL = -1615042, // whisper, shared by two dragons
WHISPER_HATCH_EGGS = 6,
WHISPER_OPEN_PORTAL = 6, // whisper, shared by two dragons
//Sartharion Spells
SPELL_BERSERK = 61632, // Increases the caster's attack speed by 150% and all damage it deals by 500% for 5 min.
@@ -357,7 +349,7 @@ public:
void EnterCombat(Unit* /*who*/)
{
DoScriptText(SAY_SARTHARION_AGGRO, me);
Talk(SAY_SARTHARION_AGGRO);
DoZoneInCombat();
if (instance)
@@ -369,7 +361,7 @@ public:
void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_SARTHARION_DEATH, me);
Talk(SAY_SARTHARION_DEATH);
if (instance)
{
@@ -389,7 +381,7 @@ public:
void KilledUnit(Unit* /*victim*/)
{
DoScriptText(RAND(SAY_SARTHARION_SLAY_1, SAY_SARTHARION_SLAY_2, SAY_SARTHARION_SLAY_3), me);
Talk(SAY_SARTHARION_SLAY);
}
// me->ResetLootMode() is called from Reset()
@@ -511,7 +503,7 @@ public:
break;
}
DoScriptText(iTextId, me);
Talk(iTextId);
}
}
}
@@ -527,7 +519,7 @@ public:
if (!PlayerList.isEmpty())
for (Map::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i)
if (i->getSource() && i->getSource()->isAlive())
DoScriptText(WHISPER_LAVA_CHURN, me, i->getSource());
Talk(WHISPER_LAVA_CHURN, i->getSource()->GetGUID());
}
}
@@ -566,7 +558,7 @@ public:
if (!m_bIsBerserk && !HealthAbovePct(35)
&& ((pTene && pTene->isAlive()) || (pShad && pShad->isAlive()) || (pVesp && pVesp->isAlive())))
{
DoScriptText(SAY_SARTHARION_BERSERK, me);
Talk(SAY_SARTHARION_BERSERK);
DoCast(me, SPELL_BERSERK);
m_bIsBerserk = true;
}
@@ -624,7 +616,7 @@ public:
// flame breath
if (m_uiFlameBreathTimer <= uiDiff)
{
DoScriptText(SAY_SARTHARION_BREATH, me);
Talk(SAY_SARTHARION_BREATH);
DoCast(me->getVictim(), RAID_MODE(SPELL_FLAME_BREATH, SPELL_FLAME_BREATH_H));
m_uiFlameBreathTimer = urand(25000, 35000);
}
@@ -657,7 +649,7 @@ public:
CastLavaStrikeOnTarget(target);
if (urand(0, 5) == 0)
DoScriptText(RAND(SAY_SARTHARION_SPECIAL_1, SAY_SARTHARION_SPECIAL_2, SAY_SARTHARION_SPECIAL_3), me);
Talk(SAY_SARTHARION_SPECIAL);
}
m_uiLavaStrikeTimer = (m_bIsSoftEnraged ? urand(1400, 2000) : urand(5000, 20000));
}
@@ -701,38 +693,32 @@ public:
enum TeneText
{
SAY_TENEBRON_AGGRO = -1615009,
SAY_TENEBRON_SLAY_1 = -1615010,
SAY_TENEBRON_SLAY_2 = -1615011,
SAY_TENEBRON_DEATH = -1615012,
SAY_TENEBRON_BREATH = -1615013,
SAY_TENEBRON_RESPOND = -1615014,
SAY_TENEBRON_SPECIAL_1 = -1615015,
SAY_TENEBRON_SPECIAL_2 = -1615016
SAY_TENEBRON_AGGRO = 0,
SAY_TENEBRON_SLAY = 1,
SAY_TENEBRON_DEATH = 2,
SAY_TENEBRON_BREATH = 3,
SAY_TENEBRON_RESPOND = 4,
SAY_TENEBRON_SPECIAL = 5
};
enum ShadText
{
SAY_SHADRON_AGGRO = -1615000,
SAY_SHADRON_SLAY_1 = -1615001,
SAY_SHADRON_SLAY_2 = -1615002,
SAY_SHADRON_DEATH = -1615003,
SAY_SHADRON_BREATH = -1615004,
SAY_SHADRON_RESPOND = -1615005,
SAY_SHADRON_SPECIAL_1 = -1615006,
SAY_SHADRON_SPECIAL_2 = -1615007
SAY_SHADRON_AGGRO = 0,
SAY_SHADRON_SLAY = 1,
SAY_SHADRON_DEATH = 2,
SAY_SHADRON_BREATH = 3,
SAY_SHADRON_RESPOND = 4,
SAY_SHADRON_SPECIAL = 5
};
enum VespText
{
SAY_VESPERON_AGGRO = -1615033,
SAY_VESPERON_SLAY_1 = -1615034,
SAY_VESPERON_SLAY_2 = -1615035,
SAY_VESPERON_DEATH = -1615036,
SAY_VESPERON_BREATH = -1615037,
SAY_VESPERON_RESPOND = -1615038,
SAY_VESPERON_SPECIAL_1 = -1615039,
SAY_VESPERON_SPECIAL_2 = -1615040
SAY_VESPERON_AGGRO = 0,
SAY_VESPERON_SLAY = 1,
SAY_VESPERON_DEATH = 2,
SAY_VESPERON_BREATH = 3,
SAY_VESPERON_RESPOND = 4,
SAY_VESPERON_SPECIAL = 5,
};
//to control each dragons common abilities
@@ -829,7 +815,7 @@ struct dummy_dragonAI : public ScriptedAI
if (!PlayerList.isEmpty())
{
for (Map::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i)
DoScriptText(iTextId, me, i->getSource());
Talk(iTextId, i->getSource()->GetGUID());
}
}
}
@@ -943,7 +929,7 @@ struct dummy_dragonAI : public ScriptedAI
break;
}
DoScriptText(iTextId, me);
Talk(iTextId);
me->RemoveAurasDueToSpell(uiSpellId);
@@ -1019,13 +1005,13 @@ public:
void EnterCombat(Unit* /*who*/)
{
DoScriptText(SAY_TENEBRON_AGGRO, me);
Talk(SAY_TENEBRON_AGGRO);
DoZoneInCombat();
}
void KilledUnit(Unit* /*victim*/)
{
DoScriptText(RAND(SAY_TENEBRON_SLAY_1, SAY_TENEBRON_SLAY_2), me);
Talk(SAY_TENEBRON_SLAY);
}
void UpdateAI(const uint32 uiDiff)
@@ -1060,7 +1046,7 @@ public:
// shadow breath
if (m_uiShadowBreathTimer <= uiDiff)
{
DoScriptText(SAY_TENEBRON_BREATH, me);
Talk(SAY_TENEBRON_BREATH);
DoCast(me->getVictim(), RAID_MODE(SPELL_SHADOW_BREATH, SPELL_SHADOW_BREATH_H));
m_uiShadowBreathTimer = urand(20000, 25000);
}
@@ -1114,13 +1100,13 @@ public:
void EnterCombat(Unit* /*who*/)
{
DoScriptText(SAY_SHADRON_AGGRO, me);
Talk(SAY_SHADRON_AGGRO);
DoZoneInCombat();
}
void KilledUnit(Unit* /*victim*/)
{
DoScriptText(RAND(SAY_SHADRON_SLAY_1, SAY_SHADRON_SLAY_2), me);
Talk(SAY_SHADRON_SLAY);
}
void UpdateAI(const uint32 uiDiff)
@@ -1164,7 +1150,7 @@ public:
// shadow breath
if (m_uiShadowBreathTimer <= uiDiff)
{
DoScriptText(SAY_SHADRON_BREATH, me);
Talk(SAY_SHADRON_BREATH);
DoCast(me->getVictim(), RAID_MODE(SPELL_SHADOW_BREATH, SPELL_SHADOW_BREATH_H));
m_uiShadowBreathTimer = urand(20000, 25000);
}
@@ -1212,13 +1198,13 @@ public:
void EnterCombat(Unit* /*who*/)
{
DoScriptText(SAY_VESPERON_AGGRO, me);
Talk(SAY_VESPERON_AGGRO);
DoZoneInCombat();
}
void KilledUnit(Unit* /*victim*/)
{
DoScriptText(RAND(SAY_VESPERON_SLAY_1, SAY_VESPERON_SLAY_2), me);
Talk(SAY_VESPERON_SLAY);
}
void UpdateAI(const uint32 uiDiff)
@@ -1259,7 +1245,7 @@ public:
// shadow breath
if (m_uiShadowBreathTimer <= uiDiff)
{
DoScriptText(SAY_VESPERON_BREATH, me);
Talk(SAY_VESPERON_BREATH);
DoCast(me->getVictim(), RAID_MODE(SPELL_SHADOW_BREATH, SPELL_SHADOW_BREATH_H));
m_uiShadowBreathTimer = urand(20000, 25000);
}

View File

@@ -36,12 +36,11 @@ enum Spells
//not in db
enum Yells
{
SAY_AGGRO = -1600000,
SAY_KILL = -1600001,
SAY_DEATH = -1600002,
SAY_NECRO_ADD = -1600003,
SAY_REUBBLE_1 = -1600004,
SAY_REUBBLE_2 = -1600005
SAY_AGGRO = 0,
SAY_KILL = 1,
SAY_DEATH = 2,
SAY_NECRO_ADD = 3,
SAY_REUBBLE = 4
};
enum Creatures
@@ -123,7 +122,7 @@ public:
void EnterCombat(Unit* /*who*/)
{
DoScriptText(SAY_AGGRO, me);
Talk(SAY_AGGRO);
Phase = PHASE_1;
uiCrystalHandlerTimer = 30*IN_MILLISECONDS;
uiTimer = 1*IN_MILLISECONDS;
@@ -159,7 +158,7 @@ public:
{
if (uiCrystalHandlerTimer <= diff)
{
DoScriptText(SAY_NECRO_ADD, me);
Talk(SAY_NECRO_ADD);
Creature* pCrystalHandler = me->SummonCreature(CREATURE_CRYSTAL_HANDLER, CrystalHandlerSpawnPoint, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 20*IN_MILLISECONDS);
pCrystalHandler->GetMotionMaster()->MovePoint(0, AddDestinyPoint);
uiCrystalHandlerTimer = urand(20*IN_MILLISECONDS, 30*IN_MILLISECONDS);
@@ -181,7 +180,7 @@ public:
}
void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DEATH, me);
Talk(SAY_DEATH);
if (instance)
instance->SetData(DATA_NOVOS_EVENT, DONE);
lSummons.DespawnAll();
@@ -191,7 +190,7 @@ public:
{
if (victim == me)
return;
DoScriptText(SAY_KILL, me);
Talk(SAY_KILL);
}
void JustSummoned(Creature* summon)

View File

@@ -44,14 +44,11 @@ enum Spells
enum Yells
{
SAY_AGGRO = -1600011,
SAY_KILL_1 = -1600012,
SAY_KILL_2 = -1600013,
SAY_FLESH_1 = -1600014,
SAY_FLESH_2 = -1600015,
SAY_SKELETON_1 = -1600016,
SAY_SKELETON_2 = -1600017,
SAY_DEATH = -1600018
SAY_AGGRO = 0,
SAY_KILL = 1,
SAY_FLESH = 2,
SAY_SKELETON = 3,
SAY_DEATH = 4
};
enum Models
{
@@ -104,7 +101,7 @@ public:
void EnterCombat(Unit* /*who*/)
{
DoScriptText(SAY_AGGRO, me);
Talk(SAY_AGGRO);
if (instance)
instance->SetData(DATA_THARON_JA_EVENT, IN_PROGRESS);
@@ -150,7 +147,7 @@ public:
case GOING_FLESH:
if (uiPhaseTimer < diff)
{
DoScriptText(RAND(SAY_FLESH_1, SAY_FLESH_2), me);
Talk(SAY_FLESH);
me->SetDisplayId(MODEL_FLESH);
std::list<Unit*> playerList;
@@ -200,7 +197,7 @@ public:
case GOING_SKELETAL:
if (uiPhaseTimer < diff)
{
DoScriptText(RAND(SAY_SKELETON_1, SAY_SKELETON_2), me);
Talk(SAY_SKELETON);
me->DeMorph();
Phase = SKELETAL;
uiPhaseTimer = 20*IN_MILLISECONDS;
@@ -224,12 +221,12 @@ public:
void KilledUnit(Unit* /*victim*/)
{
DoScriptText(RAND(SAY_KILL_1, SAY_KILL_2), me);
Talk(SAY_KILL);
}
void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DEATH, me);
Talk(SAY_DEATH);
if (instance)
{

View File

@@ -39,11 +39,11 @@ enum Spells
enum Yells
{
SAY_AGGRO = -1600006,
SAY_KILL = -1600007,
SAY_CONSUME = -1600008,
SAY_EXPLODE = -1600009,
SAY_DEATH = -1600010
SAY_AGGRO = 0,
SAY_KILL = 1,
SAY_CONSUME = 2,
SAY_EXPLODE = 3,
SAY_DEATH = 4
};
enum Creatures
@@ -102,7 +102,7 @@ public:
void EnterCombat(Unit* /*who*/)
{
DoScriptText(SAY_AGGRO, me);
Talk(SAY_AGGRO);
if (instance)
instance->SetData(DATA_TROLLGORE_EVENT, IN_PROGRESS);
@@ -124,7 +124,7 @@ public:
if (uiConsumeTimer <= diff)
{
DoScriptText(SAY_CONSUME, me);
Talk(SAY_CONSUME);
DoCast(SPELL_CONSUME);
uiConsumeTimer = 15*IN_MILLISECONDS;
} else uiConsumeTimer -= diff;
@@ -151,7 +151,7 @@ public:
if (uiExplodeCorpseTimer <= diff)
{
DoCast(SPELL_CORPSE_EXPLODE);
DoScriptText(SAY_EXPLODE, me);
Talk(SAY_EXPLODE);
uiExplodeCorpseTimer = urand(15*IN_MILLISECONDS, 19*IN_MILLISECONDS);
} else uiExplodeCorpseTimer -= diff;
@@ -160,7 +160,7 @@ public:
void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DEATH, me);
Talk(SAY_DEATH);
lSummons.DespawnAll();
@@ -180,7 +180,7 @@ public:
{
if (victim == me)
return;
DoScriptText(SAY_KILL, me);
Talk(SAY_KILL);
}
void JustSummoned(Creature* summon)

View File

@@ -23,12 +23,11 @@
enum Yells
{
SAY_AGGRO = -1632001,
SAY_SLAY_1 = -1632002,
SAY_SLAY_2 = -1632003,
SAY_DEATH = -1632004,
SAY_SOUL_STORM = -1632005,
SAY_CORRUPT_SOUL = -1632006,
SAY_AGGRO = 0,
SAY_SLAY = 1,
SAY_DEATH = 2,
SAY_SOUL_STORM = 3,
SAY_CORRUPT_SOUL = 4,
};
enum Spells
@@ -98,7 +97,7 @@ class boss_bronjahm : public CreatureScript
void EnterCombat(Unit* /*who*/)
{
DoScriptText(SAY_AGGRO, me);
Talk(SAY_AGGRO);
me->RemoveAurasDueToSpell(SPELL_SOULSTORM_CHANNEL);
instance->SetBossState(DATA_BRONJAHM, IN_PROGRESS);
@@ -106,7 +105,7 @@ class boss_bronjahm : public CreatureScript
void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DEATH, me);
Talk(SAY_DEATH);
instance->SetBossState(DATA_BRONJAHM, DONE);
}
@@ -114,7 +113,7 @@ class boss_bronjahm : public CreatureScript
void KilledUnit(Unit* who)
{
if (who->GetTypeId() == TYPEID_PLAYER)
DoScriptText(RAND(SAY_SLAY_1, SAY_SLAY_2), me);
Talk(SAY_SLAY);
}
void DamageTaken(Unit* /*attacker*/, uint32& /*damage*/)
@@ -163,13 +162,13 @@ class boss_bronjahm : public CreatureScript
case EVENT_CORRUPT_SOUL:
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1, 0.0f, true))
{
DoScriptText(SAY_CORRUPT_SOUL, me);
Talk(SAY_CORRUPT_SOUL);
DoCast(target, SPELL_CORRUPT_SOUL);
}
events.ScheduleEvent(EVENT_CORRUPT_SOUL, urand(25000, 35000), 0, PHASE_1);
break;
case EVENT_SOULSTORM:
DoScriptText(SAY_SOUL_STORM, me);
Talk(SAY_SOUL_STORM);
me->CastSpell(me, SPELL_SOULSTORM_VISUAL, true);
me->CastSpell(me, SPELL_SOULSTORM, false);
break;

View File

@@ -29,40 +29,32 @@
enum Yells
{
SAY_FACE_ANGER_AGGRO = -1632010,
SAY_FACE_DESIRE_AGGRO = -1632011,
SAY_FACE_ANGER_SLAY_1 = -1632012,
SAY_FACE_SORROW_SLAY_1 = -1632013,
SAY_FACE_DESIRE_SLAY_1 = -1632014,
SAY_FACE_ANGER_SLAY_2 = -1632015,
SAY_FACE_SORROW_SLAY_2 = -1632016,
SAY_FACE_DESIRE_SLAY_2 = -1632017,
SAY_FACE_SORROW_DEATH = -1632019,
SAY_FACE_DESIRE_DEATH = -1632020,
EMOTE_MIRRORED_SOUL = -1632021,
EMOTE_UNLEASH_SOUL = -1632022,
SAY_FACE_ANGER_UNLEASH_SOUL = -1632023,
SAY_FACE_SORROW_UNLEASH_SOUL = -1632024,
SAY_FACE_DESIRE_UNLEASH_SOUL = -1632025,
EMOTE_WAILING_SOUL = -1632026,
SAY_FACE_ANGER_WAILING_SOUL = -1632027,
SAY_FACE_DESIRE_WAILING_SOUL = -1632028,
SAY_FACE_AGGRO = 0,
SAY_FACE_ANGER_SLAY = 1,
SAY_FACE_SORROW_SLAY = 2,
SAY_FACE_DESIRE_SLAY = 3,
SAY_FACE_DEATH = 4,
EMOTE_MIRRORED_SOUL = 5,
EMOTE_UNLEASH_SOUL = 6,
SAY_FACE_UNLEASH_SOUL = 7,
EMOTE_WAILING_SOUL = 8,
SAY_FACE_WAILING_SOUL = 9,
SAY_JAINA_OUTRO = -1632029,
SAY_SYLVANAS_OUTRO = -1632030,
SAY_JAINA_OUTRO = 0,
SAY_SYLVANAS_OUTRO = 0
};
enum Spells
{
SPELL_PHANTOM_BLAST = 68982,
H_SPELL_PHANTOM_BLAST = 70322,
SPELL_MIRRORED_SOUL = 69051,
SPELL_WELL_OF_SOULS = 68820,
SPELL_UNLEASHED_SOULS = 68939,
SPELL_WAILING_SOULS_STARTING = 68912, // Initial spell cast at begining of wailing souls phase
SPELL_WAILING_SOULS_BEAM = 68875, // the beam visual
SPELL_WAILING_SOULS = 68873, // the actual spell
H_SPELL_WAILING_SOULS = 70324,
SPELL_PHANTOM_BLAST = 68982,
H_SPELL_PHANTOM_BLAST = 70322,
SPELL_MIRRORED_SOUL = 69051,
SPELL_WELL_OF_SOULS = 68820,
SPELL_UNLEASHED_SOULS = 68939,
SPELL_WAILING_SOULS_STARTING = 68912, // Initial spell cast at begining of wailing souls phase
SPELL_WAILING_SOULS_BEAM = 68875, // the beam visual
SPELL_WAILING_SOULS = 68873, // the actual spell
H_SPELL_WAILING_SOULS = 70324,
// 68871, 68873, 68875, 68876, 68899, 68912, 70324,
// 68899 trigger 68871
};
@@ -157,7 +149,7 @@ class boss_devourer_of_souls : public CreatureScript
void EnterCombat(Unit* /*who*/)
{
DoScriptText(RAND(SAY_FACE_ANGER_AGGRO, SAY_FACE_DESIRE_AGGRO), me);
Talk(SAY_FACE_AGGRO);
if (!me->FindNearestCreature(NPC_CRUCIBLE_OF_SOULS, 60)) // Prevent double spawn
instance->instance->SummonCreature(NPC_CRUCIBLE_OF_SOULS, CrucibleSummonPos);
@@ -196,20 +188,20 @@ class boss_devourer_of_souls : public CreatureScript
switch (me->GetDisplayId())
{
case DISPLAY_ANGER:
textId = RAND(SAY_FACE_ANGER_SLAY_1, SAY_FACE_ANGER_SLAY_2);
textId = SAY_FACE_ANGER_SLAY;
break;
case DISPLAY_SORROW:
textId = RAND(SAY_FACE_SORROW_SLAY_1, SAY_FACE_SORROW_SLAY_2);
textId = SAY_FACE_SORROW_SLAY;
break;
case DISPLAY_DESIRE:
textId = RAND(SAY_FACE_DESIRE_SLAY_1, SAY_FACE_DESIRE_SLAY_2);
textId = SAY_FACE_DESIRE_SLAY;
break;
default:
break;
}
if (textId)
DoScriptText(textId, me);
Talk(textId);
}
void JustDied(Unit* /*killer*/)
@@ -218,7 +210,7 @@ class boss_devourer_of_souls : public CreatureScript
Position spawnPoint = {5618.139f, 2451.873f, 705.854f, 0};
DoScriptText(RAND(SAY_FACE_SORROW_DEATH, SAY_FACE_DESIRE_DEATH), me);
Talk(SAY_FACE_DEATH);
instance->SetData(DATA_DEVOURER_EVENT, DONE);
@@ -234,9 +226,9 @@ class boss_devourer_of_souls : public CreatureScript
{
summon->GetMotionMaster()->MovePoint(0, outroPositions[i].movePosition);
if (summon->GetEntry() == NPC_JAINA_PART2)
DoScriptText(SAY_JAINA_OUTRO, summon);
summon->AI()->Talk(SAY_JAINA_OUTRO);
else if (summon->GetEntry() == NPC_SYLVANAS_PART2)
DoScriptText(SAY_SYLVANAS_OUTRO, summon);
summon->AI()->Talk(SAY_SYLVANAS_OUTRO);
}
}
}
@@ -279,7 +271,7 @@ class boss_devourer_of_souls : public CreatureScript
{
mirroredSoulTarget = target->GetGUID();
DoCast(target, SPELL_MIRRORED_SOUL);
DoScriptText(EMOTE_MIRRORED_SOUL, me);
Talk(EMOTE_MIRRORED_SOUL);
}
events.ScheduleEvent(EVENT_MIRRORED_SOUL, urand(15000, 30000));
break;
@@ -292,8 +284,8 @@ class boss_devourer_of_souls : public CreatureScript
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
DoCast(target, SPELL_UNLEASHED_SOULS);
me->SetDisplayId(DISPLAY_SORROW);
DoScriptText(RAND(SAY_FACE_ANGER_UNLEASH_SOUL, SAY_FACE_SORROW_UNLEASH_SOUL, SAY_FACE_DESIRE_UNLEASH_SOUL), me);
DoScriptText(EMOTE_UNLEASH_SOUL, me);
Talk(SAY_FACE_UNLEASH_SOUL);
Talk(EMOTE_UNLEASH_SOUL);
events.ScheduleEvent(EVENT_UNLEASHED_SOULS, 30000);
events.ScheduleEvent(EVENT_FACE_ANGER, 5000);
break;
@@ -303,8 +295,8 @@ class boss_devourer_of_souls : public CreatureScript
case EVENT_WAILING_SOULS:
me->SetDisplayId(DISPLAY_DESIRE);
DoScriptText(RAND(SAY_FACE_ANGER_WAILING_SOUL, SAY_FACE_DESIRE_WAILING_SOUL), me);
DoScriptText(EMOTE_WAILING_SOUL, me);
Talk(SAY_FACE_WAILING_SOUL);
Talk(EMOTE_WAILING_SOUL);
DoCast(me, SPELL_WAILING_SOULS_STARTING);
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
{

View File

@@ -42,21 +42,21 @@ enum Events
enum Yells
{
SAY_JAINA_INTRO_1 = -1632040,
SAY_JAINA_INTRO_2 = -1632041,
SAY_JAINA_INTRO_3 = -1632042,
SAY_JAINA_INTRO_4 = -1632043,
SAY_JAINA_INTRO_5 = -1632044,
SAY_JAINA_INTRO_6 = -1632045,
SAY_JAINA_INTRO_7 = -1632046,
SAY_JAINA_INTRO_8 = -1632047,
SAY_JAINA_INTRO_1 = 0,
SAY_JAINA_INTRO_2 = 1,
SAY_JAINA_INTRO_3 = 2,
SAY_JAINA_INTRO_4 = 3,
SAY_JAINA_INTRO_5 = 4,
SAY_JAINA_INTRO_6 = 5,
SAY_JAINA_INTRO_7 = 6,
SAY_JAINA_INTRO_8 = 7,
SAY_SYLVANAS_INTRO_1 = -1632050,
SAY_SYLVANAS_INTRO_2 = -1632051,
SAY_SYLVANAS_INTRO_3 = -1632052,
SAY_SYLVANAS_INTRO_4 = -1632053,
SAY_SYLVANAS_INTRO_5 = -1632054,
SAY_SYLVANAS_INTRO_6 = -1632055,
SAY_SYLVANAS_INTRO_1 = 0,
SAY_SYLVANAS_INTRO_2 = 1,
SAY_SYLVANAS_INTRO_3 = 2,
SAY_SYLVANAS_INTRO_4 = 3,
SAY_SYLVANAS_INTRO_5 = 4,
SAY_SYLVANAS_INTRO_6 = 5,
};
enum eSylvanas
@@ -120,32 +120,32 @@ public:
switch (events.ExecuteEvent())
{
case EVENT_INTRO_1:
DoScriptText(SAY_SYLVANAS_INTRO_1, me);
Talk(SAY_SYLVANAS_INTRO_1);
events.ScheduleEvent(EVENT_INTRO_2, 11500);
break;
case EVENT_INTRO_2:
DoScriptText(SAY_SYLVANAS_INTRO_2, me);
Talk(SAY_SYLVANAS_INTRO_2);
events.ScheduleEvent(EVENT_INTRO_3, 10500);
break;
case EVENT_INTRO_3:
DoScriptText(SAY_SYLVANAS_INTRO_3, me);
Talk(SAY_SYLVANAS_INTRO_3);
events.ScheduleEvent(EVENT_INTRO_4, 9500);
break;
case EVENT_INTRO_4:
DoScriptText(SAY_SYLVANAS_INTRO_4, me);
Talk(SAY_SYLVANAS_INTRO_4);
events.ScheduleEvent(EVENT_INTRO_5, 10500);
break;
case EVENT_INTRO_5:
DoScriptText(SAY_SYLVANAS_INTRO_5, me);
Talk(SAY_SYLVANAS_INTRO_5);
events.ScheduleEvent(EVENT_INTRO_6, 9500);
break;
case EVENT_INTRO_6:
DoScriptText(SAY_SYLVANAS_INTRO_6, me);
Talk(SAY_SYLVANAS_INTRO_6);
// End of Intro
phase = PHASE_NORMAL;
break;
@@ -246,42 +246,42 @@ public:
switch (events.ExecuteEvent())
{
case EVENT_INTRO_1:
DoScriptText(SAY_JAINA_INTRO_1, me);
Talk(SAY_JAINA_INTRO_1);
events.ScheduleEvent(EVENT_INTRO_2, 8000);
break;
case EVENT_INTRO_2:
DoScriptText(SAY_JAINA_INTRO_2, me);
Talk(SAY_JAINA_INTRO_2);
events.ScheduleEvent(EVENT_INTRO_3, 8500);
break;
case EVENT_INTRO_3:
DoScriptText(SAY_JAINA_INTRO_3, me);
Talk(SAY_JAINA_INTRO_3);
events.ScheduleEvent(EVENT_INTRO_4, 8000);
break;
case EVENT_INTRO_4:
DoScriptText(SAY_JAINA_INTRO_4, me);
Talk(SAY_JAINA_INTRO_4);
events.ScheduleEvent(EVENT_INTRO_5, 10000);
break;
case EVENT_INTRO_5:
DoScriptText(SAY_JAINA_INTRO_5, me);
Talk(SAY_JAINA_INTRO_5);
events.ScheduleEvent(EVENT_INTRO_6, 8000);
break;
case EVENT_INTRO_6:
DoScriptText(SAY_JAINA_INTRO_6, me);
Talk(SAY_JAINA_INTRO_6);
events.ScheduleEvent(EVENT_INTRO_7, 12000);
break;
case EVENT_INTRO_7:
DoScriptText(SAY_JAINA_INTRO_7, me);
Talk(SAY_JAINA_INTRO_7);
events.ScheduleEvent(EVENT_INTRO_8, 8000);
break;
case EVENT_INTRO_8:
DoScriptText(SAY_JAINA_INTRO_8, me);
Talk(SAY_JAINA_INTRO_8);
// End of Intro
phase = PHASE_NORMAL;
break;

View File

@@ -21,12 +21,11 @@
enum Yells
{
SAY_AGGRO = -1668050,
SAY_SLAY_1 = -1668051,
SAY_SLAY_2 = -1668052,
SAY_DEATH = -1668053,
SAY_IMPENDING_DESPAIR = -1668054,
SAY_DEFILING_HORROR = -1668055,
SAY_AGGRO = 0,
SAY_SLAY = 1,
SAY_DEATH = 2,
SAY_IMPENDING_DESPAIR = 3,
SAY_DEFILING_HORROR = 4,
};
enum Spells
@@ -74,7 +73,7 @@ public:
void EnterCombat(Unit* /*who*/)
{
DoScriptText(SAY_AGGRO, me);
Talk(SAY_AGGRO);
if (instance)
instance->SetData(DATA_FALRIC_EVENT, IN_PROGRESS);
@@ -85,7 +84,7 @@ public:
void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DEATH, me);
Talk(SAY_DEATH);
if (instance)
instance->SetData(DATA_FALRIC_EVENT, DONE);
@@ -93,7 +92,7 @@ public:
void KilledUnit(Unit* /*victim*/)
{
DoScriptText(RAND(SAY_SLAY_1, SAY_SLAY_2), me);
Talk(SAY_SLAY);
}
void UpdateAI(const uint32 diff)
@@ -116,7 +115,7 @@ public:
case EVENT_IMPENDING_DESPAIR:
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM))
{
DoScriptText(SAY_IMPENDING_DESPAIR, me);
Talk(SAY_IMPENDING_DESPAIR);
DoCast(target, SPELL_IMPENDING_DESPAIR);
}
events.ScheduleEvent(EVENT_IMPENDING_DESPAIR, 13000);

View File

@@ -21,12 +21,10 @@
enum Yells
{
SAY_AGGRO = -1668060,
SAY_SLAY_1 = -1668061,
SAY_SLAY_2 = -1668062,
SAY_DEATH = -1668063,
SAY_CORRUPTED_FLESH_1 = -1668064,
SAY_CORRUPTED_FLESH_2 = -1668065,
SAY_AGGRO = 0,
SAY_SLAY = 1,
SAY_DEATH = 2,
SAY_CORRUPTED_FLESH = 3
};
enum Spells
@@ -70,7 +68,7 @@ public:
void EnterCombat(Unit* /*who*/)
{
DoScriptText(SAY_AGGRO, me);
Talk(SAY_AGGRO);
if (instance)
instance->SetData(DATA_MARWYN_EVENT, IN_PROGRESS);
@@ -82,7 +80,7 @@ public:
void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DEATH, me);
Talk(SAY_DEATH);
if (instance)
instance->SetData(DATA_MARWYN_EVENT, DONE);
@@ -90,7 +88,7 @@ public:
void KilledUnit(Unit* /*victim*/)
{
DoScriptText(RAND(SAY_SLAY_1, SAY_SLAY_2), me);
Talk(SAY_SLAY);
}
void UpdateAI(const uint32 diff)
@@ -115,7 +113,7 @@ public:
events.ScheduleEvent(EVENT_WELL_OF_CORRUPTION, 13000);
break;
case EVENT_CORRUPTED_FLESH:
DoScriptText(RAND(SAY_CORRUPTED_FLESH_1, SAY_CORRUPTED_FLESH_2), me);
Talk(SAY_CORRUPTED_FLESH);
DoCast(SPELL_CORRUPTED_FLESH);
events.ScheduleEvent(EVENT_CORRUPTED_FLESH, 20000);
break;

View File

@@ -23,52 +23,54 @@
enum Yells
{
SAY_JAINA_INTRO_1 = -1668001,
SAY_JAINA_INTRO_2 = -1668002,
SAY_JAINA_INTRO_3 = -1668003,
SAY_JAINA_INTRO_4 = -1668004,
SAY_UTHER_INTRO_A2_1 = -1668005,
SAY_JAINA_INTRO_5 = -1668006,
SAY_UTHER_INTRO_A2_2 = -1668007,
SAY_JAINA_INTRO_6 = -1668008,
SAY_UTHER_INTRO_A2_3 = -1668009,
SAY_JAINA_INTRO_7 = -1668010,
SAY_UTHER_INTRO_A2_4 = -1668011,
SAY_JAINA_INTRO_8 = -1668012,
SAY_UTHER_INTRO_A2_5 = -1668013,
SAY_JAINA_INTRO_9 = -1668014,
SAY_UTHER_INTRO_A2_6 = -1668015,
SAY_UTHER_INTRO_A2_7 = -1668016,
SAY_JAINA_INTRO_10 = -1668017,
SAY_UTHER_INTRO_A2_8 = -1668018,
SAY_JAINA_INTRO_11 = -1668019,
SAY_UTHER_INTRO_A2_9 = -1668020,
SAY_JAINA_INTRO_1 = 0,
SAY_JAINA_INTRO_2 = 1,
SAY_JAINA_INTRO_3 = 2,
SAY_JAINA_INTRO_4 = 3,
SAY_JAINA_INTRO_5 = 4,
SAY_JAINA_INTRO_6 = 5,
SAY_JAINA_INTRO_7 = 6,
SAY_JAINA_INTRO_8 = 7,
SAY_JAINA_INTRO_9 = 8,
SAY_JAINA_INTRO_10 = 9,
SAY_JAINA_INTRO_11 = 10,
SAY_JAINA_INTRO_END = 11,
SAY_SYLVANAS_INTRO_1 = -1668021,
SAY_SYLVANAS_INTRO_2 = -1668022,
SAY_SYLVANAS_INTRO_3 = -1668023,
SAY_UTHER_INTRO_H2_1 = -1668024,
SAY_SYLVANAS_INTRO_4 = -1668025,
SAY_UTHER_INTRO_H2_2 = -1668026,
SAY_SYLVANAS_INTRO_5 = -1668027,
SAY_UTHER_INTRO_H2_3 = -1668028,
SAY_SYLVANAS_INTRO_6 = -1668029,
SAY_UTHER_INTRO_H2_4 = -1668030,
SAY_SYLVANAS_INTRO_7 = -1668031,
SAY_UTHER_INTRO_H2_5 = -1668032,
SAY_UTHER_INTRO_H2_6 = -1668033,
SAY_SYLVANAS_INTRO_8 = -1668034,
SAY_UTHER_INTRO_H2_7 = -1668035,
SAY_SYLVANAS_INTRO_1 = 0,
SAY_SYLVANAS_INTRO_2 = 1,
SAY_SYLVANAS_INTRO_3 = 2,
SAY_SYLVANAS_INTRO_4 = 3,
SAY_SYLVANAS_INTRO_5 = 4,
SAY_SYLVANAS_INTRO_6 = 5,
SAY_SYLVANAS_INTRO_7 = 6,
SAY_SYLVANAS_INTRO_8 = 7,
SAY_SYLVANAS_INTRO_END = 8,
SAY_LK_INTRO_1 = -1668036,
SAY_LK_INTRO_2 = -1668037,
SAY_LK_INTRO_3 = -1668038,
SAY_FALRIC_INTRO_1 = -1668039,
SAY_MARWYN_INTRO_1 = -1668040,
SAY_FALRIC_INTRO_2 = -1668041,
SAY_UTHER_INTRO_A2_1 = 0,
SAY_UTHER_INTRO_A2_2 = 1,
SAY_UTHER_INTRO_A2_3 = 2,
SAY_UTHER_INTRO_A2_4 = 3,
SAY_UTHER_INTRO_A2_5 = 4,
SAY_UTHER_INTRO_A2_6 = 5,
SAY_UTHER_INTRO_A2_7 = 6,
SAY_UTHER_INTRO_A2_8 = 7,
SAY_UTHER_INTRO_A2_9 = 8,
SAY_UTHER_INTRO_H2_1 = 9,
SAY_UTHER_INTRO_H2_2 = 10,
SAY_UTHER_INTRO_H2_3 = 11,
SAY_UTHER_INTRO_H2_4 = 12,
SAY_UTHER_INTRO_H2_5 = 13,
SAY_UTHER_INTRO_H2_6 = 14,
SAY_UTHER_INTRO_H2_7 = 15,
SAY_JAINA_INTRO_END = -1668042,
SAY_SYLVANAS_INTRO_END = -1668043,
SAY_LK_INTRO_1 = 0,
SAY_LK_INTRO_2 = 1,
SAY_LK_INTRO_3 = 2,
SAY_FALRIC_INTRO_1 = 5,
SAY_FALRIC_INTRO_2 = 6,
SAY_MARWYN_INTRO_1 = 0
};
enum Events
@@ -214,8 +216,8 @@ public:
}
InstanceScript* instance;
uint64 uiUther;
uint64 uiLichKing;
uint64 utherGUID;
uint64 lichkingGUID;
EventMap events;
@@ -223,8 +225,8 @@ public:
{
events.Reset();
uiUther = 0;
uiLichKing = 0;
utherGUID = 0;
lichkingGUID = 0;
me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
me->SetStandState(UNIT_STAND_STATE_STAND);
@@ -260,11 +262,11 @@ public:
// A2 Intro Events
case EVENT_INTRO_A2_1:
DoScriptText(SAY_JAINA_INTRO_3, me);
Talk(SAY_JAINA_INTRO_3);
events.ScheduleEvent(EVENT_INTRO_A2_2, 5000);
break;
case EVENT_INTRO_A2_2:
DoScriptText(SAY_JAINA_INTRO_4, me);
Talk(SAY_JAINA_INTRO_4);
events.ScheduleEvent(EVENT_INTRO_A2_3, 10000);
break;
case EVENT_INTRO_A2_3:
@@ -274,197 +276,197 @@ public:
break;
case EVENT_INTRO_A2_4:
// spawn UTHER during speach 2
if (Creature* pUther = me->SummonCreature(NPC_UTHER, UtherSpawnPos, TEMPSUMMON_MANUAL_DESPAWN))
if (Creature* uther = me->SummonCreature(NPC_UTHER, UtherSpawnPos, TEMPSUMMON_MANUAL_DESPAWN))
{
pUther->GetMotionMaster()->MoveIdle();
pUther->SetReactState(REACT_PASSIVE); // be sure he will not aggro arthas
uiUther = pUther->GetGUID();
uther->GetMotionMaster()->MoveIdle();
uther->SetReactState(REACT_PASSIVE); // be sure he will not aggro arthas
utherGUID = uther->GetGUID();
}
events.ScheduleEvent(EVENT_INTRO_A2_5, 2000);
break;
case EVENT_INTRO_A2_5:
if (Creature* pUther = me->GetCreature(*me, uiUther))
DoScriptText(SAY_UTHER_INTRO_A2_1, pUther);
if (Creature* uther = me->GetCreature(*me, utherGUID))
uther->AI()->Talk(SAY_UTHER_INTRO_A2_1);
events.ScheduleEvent(EVENT_INTRO_A2_6, 3000);
break;
case EVENT_INTRO_A2_6:
DoScriptText(SAY_JAINA_INTRO_5, me);
Talk(SAY_JAINA_INTRO_5);
events.ScheduleEvent(EVENT_INTRO_A2_7, 6000);
break;
case EVENT_INTRO_A2_7:
if (Creature* pUther = me->GetCreature(*me, uiUther))
DoScriptText(SAY_UTHER_INTRO_A2_2, pUther);
if (Creature* uther = me->GetCreature(*me, utherGUID))
uther->AI()->Talk(SAY_UTHER_INTRO_A2_2);
events.ScheduleEvent(EVENT_INTRO_A2_8, 6500);
break;
case EVENT_INTRO_A2_8:
DoScriptText(SAY_JAINA_INTRO_6, me);
Talk(SAY_JAINA_INTRO_6);
events.ScheduleEvent(EVENT_INTRO_A2_9, 2000);
break;
case EVENT_INTRO_A2_9:
if (Creature* pUther = me->GetCreature(*me, uiUther))
DoScriptText(SAY_UTHER_INTRO_A2_3, pUther);
if (Creature* uther = me->GetCreature(*me, utherGUID))
uther->AI()->Talk(SAY_UTHER_INTRO_A2_3);
events.ScheduleEvent(EVENT_INTRO_A2_10, 9000);
break;
case EVENT_INTRO_A2_10:
DoScriptText(SAY_JAINA_INTRO_7, me);
Talk(SAY_JAINA_INTRO_7);
events.ScheduleEvent(EVENT_INTRO_A2_11, 5000);
break;
case EVENT_INTRO_A2_11:
if (Creature* pUther = me->GetCreature(*me, uiUther))
DoScriptText(SAY_UTHER_INTRO_A2_4, pUther);
if (Creature* uther = me->GetCreature(*me, utherGUID))
uther->AI()->Talk(SAY_UTHER_INTRO_A2_4);
events.ScheduleEvent(EVENT_INTRO_A2_12, 11000);
break;
case EVENT_INTRO_A2_12:
DoScriptText(SAY_JAINA_INTRO_8, me);
Talk(SAY_JAINA_INTRO_8);
events.ScheduleEvent(EVENT_INTRO_A2_13, 4000);
break;
case EVENT_INTRO_A2_13:
if (Creature* pUther = me->GetCreature(*me, uiUther))
DoScriptText(SAY_UTHER_INTRO_A2_5, pUther);
if (Creature* uther = me->GetCreature(*me, utherGUID))
uther->AI()->Talk(SAY_UTHER_INTRO_A2_5);
events.ScheduleEvent(EVENT_INTRO_A2_14, 12500);
break;
case EVENT_INTRO_A2_14:
DoScriptText(SAY_JAINA_INTRO_9, me);
Talk(SAY_JAINA_INTRO_9);
events.ScheduleEvent(EVENT_INTRO_A2_15, 10000);
break;
case EVENT_INTRO_A2_15:
if (Creature* pUther = me->GetCreature(*me, uiUther))
DoScriptText(SAY_UTHER_INTRO_A2_6, pUther);
if (Creature* uther = me->GetCreature(*me, utherGUID))
uther->AI()->Talk(SAY_UTHER_INTRO_A2_6);
events.ScheduleEvent(EVENT_INTRO_A2_16, 22000);
break;
case EVENT_INTRO_A2_16:
if (Creature* pUther = me->GetCreature(*me, uiUther))
DoScriptText(SAY_UTHER_INTRO_A2_7, pUther);
if (Creature* uther = me->GetCreature(*me, utherGUID))
uther->AI()->Talk(SAY_UTHER_INTRO_A2_7);
events.ScheduleEvent(EVENT_INTRO_A2_17, 4000);
break;
case EVENT_INTRO_A2_17:
DoScriptText(SAY_JAINA_INTRO_10, me);
Talk(SAY_JAINA_INTRO_10);
events.ScheduleEvent(EVENT_INTRO_A2_18, 2000);
break;
case EVENT_INTRO_A2_18:
if (Creature* pUther = me->GetCreature(*me, uiUther))
if (Creature* uther = me->GetCreature(*me, utherGUID))
{
pUther->HandleEmoteCommand(EMOTE_ONESHOT_NO);
DoScriptText(SAY_UTHER_INTRO_A2_8, pUther);
uther->HandleEmoteCommand(EMOTE_ONESHOT_NO);
uther->AI()->Talk(SAY_UTHER_INTRO_A2_8);
}
events.ScheduleEvent(EVENT_INTRO_A2_19, 11000);
break;
case EVENT_INTRO_A2_19:
DoScriptText(SAY_JAINA_INTRO_11, me);
Talk(SAY_JAINA_INTRO_11);
events.ScheduleEvent(EVENT_INTRO_LK_1, 2000);
break;
// H2 Intro Events
case EVENT_INTRO_H2_1:
DoScriptText(SAY_SYLVANAS_INTRO_1, me);
Talk(SAY_SYLVANAS_INTRO_1);
events.ScheduleEvent(EVENT_INTRO_H2_2, 8000);
break;
case EVENT_INTRO_H2_2:
DoScriptText(SAY_SYLVANAS_INTRO_2, me);
Talk(SAY_SYLVANAS_INTRO_2);
events.ScheduleEvent(EVENT_INTRO_H2_3, 6000);
break;
case EVENT_INTRO_H2_3:
DoScriptText(SAY_SYLVANAS_INTRO_3, me);
Talk(SAY_SYLVANAS_INTRO_3);
// TODO: she's doing some kind of spell casting emote
events.ScheduleEvent(EVENT_INTRO_H2_4, 6000);
break;
case EVENT_INTRO_H2_4:
// spawn UTHER during speach 2
if (Creature* pUther = me->SummonCreature(NPC_UTHER, UtherSpawnPos, TEMPSUMMON_MANUAL_DESPAWN))
if (Creature* uther = me->SummonCreature(NPC_UTHER, UtherSpawnPos, TEMPSUMMON_MANUAL_DESPAWN))
{
pUther->GetMotionMaster()->MoveIdle();
pUther->SetReactState(REACT_PASSIVE); // be sure he will not aggro arthas
uiUther = pUther->GetGUID();
uther->GetMotionMaster()->MoveIdle();
uther->SetReactState(REACT_PASSIVE); // be sure he will not aggro arthas
utherGUID = uther->GetGUID();
}
events.ScheduleEvent(EVENT_INTRO_H2_5, 2000);
break;
case EVENT_INTRO_H2_5:
if (Creature* pUther = me->GetCreature(*me, uiUther))
DoScriptText(SAY_UTHER_INTRO_H2_1, pUther);
if (Creature* uther = me->GetCreature(*me, utherGUID))
uther->AI()->Talk(SAY_UTHER_INTRO_H2_1);
events.ScheduleEvent(EVENT_INTRO_H2_6, 11000);
break;
case EVENT_INTRO_H2_6:
DoScriptText(SAY_SYLVANAS_INTRO_4, me);
Talk(SAY_SYLVANAS_INTRO_4);
events.ScheduleEvent(EVENT_INTRO_H2_7, 3000);
break;
case EVENT_INTRO_H2_7:
if (Creature* pUther = me->GetCreature(*me, uiUther))
DoScriptText(SAY_UTHER_INTRO_H2_2, pUther);
if (Creature* uther = me->GetCreature(*me, utherGUID))
uther->AI()->Talk(SAY_UTHER_INTRO_H2_2);
events.ScheduleEvent(EVENT_INTRO_H2_8, 6000);
break;
case EVENT_INTRO_H2_8:
DoScriptText(SAY_SYLVANAS_INTRO_5, me);
Talk(SAY_SYLVANAS_INTRO_5);
events.ScheduleEvent(EVENT_INTRO_H2_9, 5000);
break;
case EVENT_INTRO_H2_9:
if (Creature* pUther = me->GetCreature(*me, uiUther))
DoScriptText(SAY_UTHER_INTRO_H2_3, pUther);
if (Creature* uther = me->GetCreature(*me, utherGUID))
uther->AI()->Talk(SAY_UTHER_INTRO_H2_3);
events.ScheduleEvent(EVENT_INTRO_H2_10, 19000);
break;
case EVENT_INTRO_H2_10:
DoScriptText(SAY_SYLVANAS_INTRO_6, me);
Talk(SAY_SYLVANAS_INTRO_6);
events.ScheduleEvent(EVENT_INTRO_H2_11, 1500);
break;
case EVENT_INTRO_H2_11:
if (Creature* pUther = me->GetCreature(*me, uiUther))
DoScriptText(SAY_UTHER_INTRO_H2_4, pUther);
if (Creature* uther = me->GetCreature(*me, utherGUID))
uther->AI()->Talk(SAY_UTHER_INTRO_H2_4);
events.ScheduleEvent(EVENT_INTRO_H2_12, 19500);
break;
case EVENT_INTRO_H2_12:
DoScriptText(SAY_SYLVANAS_INTRO_7, me);
Talk(SAY_SYLVANAS_INTRO_7);
events.ScheduleEvent(EVENT_INTRO_H2_13, 2000);
break;
case EVENT_INTRO_H2_13:
if (Creature* pUther = me->GetCreature(*me, uiUther))
if (Creature* uther = me->GetCreature(*me, utherGUID))
{
pUther->HandleEmoteCommand(EMOTE_ONESHOT_NO);
DoScriptText(SAY_UTHER_INTRO_H2_5, pUther);
uther->HandleEmoteCommand(EMOTE_ONESHOT_NO);
uther->AI()->Talk(SAY_UTHER_INTRO_H2_5);
}
events.ScheduleEvent(EVENT_INTRO_H2_14, 12000);
break;
case EVENT_INTRO_H2_14:
if (Creature* pUther = me->GetCreature(*me, uiUther))
DoScriptText(SAY_UTHER_INTRO_H2_6, pUther);
if (Creature* uther = me->GetCreature(*me, utherGUID))
uther->AI()->Talk(SAY_UTHER_INTRO_H2_6);
events.ScheduleEvent(EVENT_INTRO_H2_15, 8000);
break;
case EVENT_INTRO_H2_15:
DoScriptText(SAY_SYLVANAS_INTRO_8, me);
Talk(SAY_SYLVANAS_INTRO_8);
events.ScheduleEvent(EVENT_INTRO_LK_1, 2000);
break;
// Remaining Intro Events common for both faction
case EVENT_INTRO_LK_1:
// Spawn LK in front of door, and make him move to the sword.
if (Creature* pLichKing = me->SummonCreature(NPC_LICH_KING_EVENT, LichKingSpawnPos, TEMPSUMMON_MANUAL_DESPAWN))
if (Creature* lichking = me->SummonCreature(NPC_LICH_KING_EVENT, LichKingSpawnPos, TEMPSUMMON_MANUAL_DESPAWN))
{
pLichKing->GetMotionMaster()->MovePoint(0, LichKingMoveThronePos);
pLichKing->SetReactState(REACT_PASSIVE);
uiLichKing = pLichKing->GetGUID();
lichking->GetMotionMaster()->MovePoint(0, LichKingMoveThronePos);
lichking->SetReactState(REACT_PASSIVE);
lichkingGUID = lichking->GetGUID();
}
if (Creature* pUther = me->GetCreature(*me, uiUther))
if (Creature* uther = me->GetCreature(*me, utherGUID))
{
if (instance->GetData(DATA_TEAM_IN_INSTANCE) == ALLIANCE)
DoScriptText(SAY_UTHER_INTRO_A2_9, pUther);
uther->AI()->Talk(SAY_UTHER_INTRO_A2_9);
else
DoScriptText(SAY_UTHER_INTRO_H2_7, pUther);
uther->AI()->Talk(SAY_UTHER_INTRO_H2_7);
}
events.ScheduleEvent(EVENT_INTRO_LK_2, 11000);
break;
case EVENT_INTRO_LK_2:
if (Creature* pLichKing = me->GetCreature(*me, uiLichKing))
DoScriptText(SAY_LK_INTRO_1, pLichKing);
if (Creature* lichking = me->GetCreature(*me, lichkingGUID))
lichking->AI()->Talk(SAY_LK_INTRO_1);
events.ScheduleEvent(EVENT_INTRO_LK_3, 2000);
break;
case EVENT_INTRO_LK_3:
// The Lich King banishes Uther to the abyss.
if (Creature* pUther = me->GetCreature(*me, uiUther))
if (Creature* uther = me->GetCreature(*me, utherGUID))
{
pUther->DisappearAndDie();
uiUther = 0;
uther->DisappearAndDie();
utherGUID = 0;
}
// He steps forward and removes the runeblade from the heap of skulls.
@@ -473,8 +475,8 @@ public:
break;
case EVENT_INTRO_LK_4:
if (Creature* pLichKing = me->GetCreature(*me, uiLichKing))
DoScriptText(SAY_LK_INTRO_2, pLichKing);
if (Creature* lichking = me->GetCreature(*me, lichkingGUID))
lichking->AI()->Talk(SAY_LK_INTRO_2);
events.ScheduleEvent(EVENT_INTRO_LK_5, 10000);
break;
@@ -485,41 +487,41 @@ public:
if (Creature* pMarwyn = me->GetCreature(*me, instance->GetData64(DATA_MARWYN)))
pMarwyn->SetVisible(true);
if (Creature* pLichKing = me->GetCreature(*me, uiLichKing))
if (Creature* lichking = me->GetCreature(*me, lichkingGUID))
{
pLichKing->GetMotionMaster()->MovePoint(0, LichKingSpawnPos);
DoScriptText(SAY_LK_INTRO_3, pLichKing);
lichking->GetMotionMaster()->MovePoint(0, LichKingSpawnPos);
lichking->AI()->Talk(SAY_LK_INTRO_3);
}
events.ScheduleEvent(EVENT_INTRO_LK_6, 8000);
break;
case EVENT_INTRO_LK_6:
if (Creature* pFalric = me->GetCreature(*me, instance->GetData64(DATA_FALRIC)))
DoScriptText(SAY_FALRIC_INTRO_1, pFalric);
if (Creature* falric = me->GetCreature(*me, instance->GetData64(DATA_FALRIC)))
falric->AI()->Talk(SAY_FALRIC_INTRO_1);
events.ScheduleEvent(EVENT_INTRO_LK_7, 2000);
break;
case EVENT_INTRO_LK_7:
if (Creature* pMarwyn = me->GetCreature(*me, instance->GetData64(DATA_MARWYN)))
DoScriptText(SAY_MARWYN_INTRO_1, pMarwyn);
if (Creature* marwyn = me->GetCreature(*me, instance->GetData64(DATA_MARWYN)))
marwyn->AI()->Talk(SAY_MARWYN_INTRO_1);
events.ScheduleEvent(EVENT_INTRO_LK_8, 2000);
break;
case EVENT_INTRO_LK_8:
if (Creature* pFalric = me->GetCreature(*me, instance->GetData64(DATA_FALRIC)))
DoScriptText(SAY_FALRIC_INTRO_2, pFalric);
if (Creature* falric = me->GetCreature(*me, instance->GetData64(DATA_FALRIC)))
falric->AI()->Talk(SAY_FALRIC_INTRO_2);
events.ScheduleEvent(EVENT_INTRO_LK_9, 5000);
break;
case EVENT_INTRO_LK_9:
if (instance->GetData(DATA_TEAM_IN_INSTANCE) == ALLIANCE)
DoScriptText(SAY_JAINA_INTRO_END, me);
Talk(SAY_JAINA_INTRO_END);
else
DoScriptText(SAY_SYLVANAS_INTRO_END, me);
Talk(SAY_SYLVANAS_INTRO_END);
me->GetMotionMaster()->MovePoint(0, LichKingSpawnPos);
// TODO: Loralen/Koreln shall run also

View File

@@ -23,15 +23,15 @@
enum Yells
{
SAY_AGGRO = 0,
SAY_PHASE2 = 1,
SAY_PHASE3 = 2,
SAY_DEATH = 3,
SAY_SLAY = 4,
SAY_THROW_SARONITE = 5,
SAY_CAST_DEEP_FREEZE = 6,
SAY_AGGRO = 0,
SAY_PHASE2 = 1,
SAY_PHASE3 = 2,
SAY_DEATH = 3,
SAY_SLAY = 4,
SAY_THROW_SARONITE = 5,
SAY_CAST_DEEP_FREEZE = 6,
SAY_TYRANNUS_DEATH = -1658007, // todo
SAY_TYRANNUS_DEATH = 0
};
enum Spells
@@ -129,7 +129,7 @@ enum Events
Talk(SAY_DEATH);
if (Creature* tyrannus = me->GetCreature(*me, instance->GetData64(DATA_TYRANNUS)))
DoScriptText(SAY_TYRANNUS_DEATH, tyrannus);
tyrannus->AI()->Talk(SAY_TYRANNUS_DEATH);
instance->SetBossState(DATA_GARFROST, DONE);
}

View File

@@ -48,33 +48,30 @@ enum Spells
enum Yells
{
// Krick
SAY_KRICK_AGGRO = -1658010,
SAY_KRICK_SLAY_1 = -1658011,
SAY_KRICK_SLAY_2 = -1658012,
SAY_KRICK_BARRAGE_1 = -1658013,
SAY_KRICK_BARRAGE_2 = -1658014,
SAY_KRICK_POISON_NOVA = -1658015,
SAY_KRICK_CHASE_1 = -1658016,
SAY_KRICK_CHASE_2 = -1658017,
SAY_KRICK_CHASE_3 = -1658018,
SAY_KRICK_AGGRO = 0,
SAY_KRICK_SLAY = 1,
SAY_KRICK_BARRAGE_1 = 2,
SAY_KRICK_BARRAGE_2 = 3,
SAY_KRICK_POISON_NOVA = 4,
SAY_KRICK_CHASE = 5,
SAY_KRICK_OUTRO_1 = 6,
SAY_KRICK_OUTRO_3 = 7,
SAY_KRICK_OUTRO_5 = 8,
SAY_KRICK_OUTRO_8 = 9,
// Ick
SAY_ICK_POISON_NOVA = -1658020,
SAY_ICK_CHASE_1 = -1658021,
SAY_ICK_POISON_NOVA = 0,
SAY_ICK_CHASE_1 = 1,
// OUTRO
SAY_KRICK_OUTRO_1 = -1658030,
SAY_JAYNA_OUTRO_2 = -1658031,
SAY_SYLVANAS_OUTRO_2 = -1658032,
SAY_KRICK_OUTRO_3 = -1658033,
SAY_JAYNA_OUTRO_4 = -1658034,
SAY_SYLVANAS_OUTRO_4 = -1658035,
SAY_KRICK_OUTRO_5 = -1658036,
SAY_TYRANNUS_OUTRO_7 = -1658037,
SAY_KRICK_OUTRO_8 = -1658038,
SAY_TYRANNUS_OUTRO_9 = -1658039,
SAY_JAYNA_OUTRO_10 = -1658040,
SAY_SYLVANAS_OUTRO_10 = -1658041,
SAY_JAYNA_OUTRO_2 = 0,
SAY_JAYNA_OUTRO_4 = 1,
SAY_JAYNA_OUTRO_10 = 2,
SAY_SYLVANAS_OUTRO_2 = 0,
SAY_SYLVANAS_OUTRO_4 = 1,
SAY_SYLVANAS_OUTRO_10 = 2,
SAY_TYRANNUS_OUTRO_7 = 1,
SAY_TYRANNUS_OUTRO_9 = 2,
};
enum Events
@@ -167,7 +164,7 @@ class boss_ick : public CreatureScript
void EnterCombat(Unit* /*who*/)
{
if (Creature* krick = GetKrick())
DoScriptText(SAY_KRICK_AGGRO, krick);
krick->AI()->Talk(SAY_KRICK_AGGRO);
events.ScheduleEvent(EVENT_MIGHTY_KICK, 20000);
events.ScheduleEvent(EVENT_TOXIC_WASTE, 5000);
@@ -250,8 +247,8 @@ class boss_ick : public CreatureScript
case EVENT_EXPLOSIVE_BARRAGE:
if (Creature* krick = GetKrick())
{
DoScriptText(SAY_KRICK_BARRAGE_1, krick);
DoScriptText(SAY_KRICK_BARRAGE_2, krick);
krick->AI()->Talk(SAY_KRICK_BARRAGE_1);
krick->AI()->Talk(SAY_KRICK_BARRAGE_2);
krick->CastSpell(krick, SPELL_EXPLOSIVE_BARRAGE_KRICK, true);
DoCast(me, SPELL_EXPLOSIVE_BARRAGE_ICK);
}
@@ -259,14 +256,14 @@ class boss_ick : public CreatureScript
break;
case EVENT_POISON_NOVA:
if (Creature* krick = GetKrick())
DoScriptText(SAY_KRICK_POISON_NOVA, krick);
krick->AI()->Talk(SAY_KRICK_POISON_NOVA);
DoScriptText(SAY_ICK_POISON_NOVA, me);
Talk(SAY_ICK_POISON_NOVA);
DoCast(me, SPELL_POISON_NOVA);
break;
case EVENT_PURSUIT:
if (Creature* krick = GetKrick())
DoScriptText(RAND(SAY_KRICK_CHASE_1, SAY_KRICK_CHASE_2, SAY_KRICK_CHASE_3), krick);
krick->AI()->Talk(SAY_KRICK_CHASE);
DoCast(me, SPELL_PURSUIT);
break;
default:
@@ -328,7 +325,7 @@ class boss_krick : public CreatureScript
if (victim == me)
return;
DoScriptText(RAND(SAY_KRICK_SLAY_1, SAY_KRICK_SLAY_2), me);
Talk(SAY_KRICK_SLAY);
}
void JustSummoned(Creature* summon)
@@ -362,7 +359,7 @@ class boss_krick : public CreatureScript
if (type != POINT_MOTION_TYPE || id != POINT_KRICK_INTRO)
return;
DoScriptText(SAY_KRICK_OUTRO_1, me);
Talk(SAY_KRICK_OUTRO_1);
_phase = PHASE_OUTRO;
_events.Reset();
_events.ScheduleEvent(EVENT_OUTRO_1, 1000);
@@ -404,28 +401,28 @@ class boss_krick : public CreatureScript
jainaOrSylvanas->SetFacingToObject(me);
me->SetFacingToObject(jainaOrSylvanas);
if (_instanceScript->GetData(DATA_TEAM_IN_INSTANCE) == ALLIANCE)
DoScriptText(SAY_JAYNA_OUTRO_2, jainaOrSylvanas);
jainaOrSylvanas->AI()->Talk(SAY_JAYNA_OUTRO_2);
else
DoScriptText(SAY_SYLVANAS_OUTRO_2, jainaOrSylvanas);
jainaOrSylvanas->AI()->Talk(SAY_SYLVANAS_OUTRO_2);
}
_events.ScheduleEvent(EVENT_OUTRO_3, 5000);
break;
case EVENT_OUTRO_3:
DoScriptText(SAY_KRICK_OUTRO_3, me);
Talk(SAY_KRICK_OUTRO_3);
_events.ScheduleEvent(EVENT_OUTRO_4, 18000);
break;
case EVENT_OUTRO_4:
if (Creature* jainaOrSylvanas = ObjectAccessor::GetCreature(*me, _outroNpcGUID))
{
if (_instanceScript->GetData(DATA_TEAM_IN_INSTANCE) == ALLIANCE)
DoScriptText(SAY_JAYNA_OUTRO_4, jainaOrSylvanas);
jainaOrSylvanas->AI()->Talk(SAY_JAYNA_OUTRO_4);
else
DoScriptText(SAY_SYLVANAS_OUTRO_4, jainaOrSylvanas);
jainaOrSylvanas->AI()->Talk(SAY_SYLVANAS_OUTRO_4);
}
_events.ScheduleEvent(EVENT_OUTRO_5, 5000);
break;
case EVENT_OUTRO_5:
DoScriptText(SAY_KRICK_OUTRO_5, me);
Talk(SAY_KRICK_OUTRO_5);
_events.ScheduleEvent(EVENT_OUTRO_6, 1000);
break;
case EVENT_OUTRO_6:
@@ -439,7 +436,7 @@ class boss_krick : public CreatureScript
break;
case EVENT_OUTRO_7:
if (Creature* tyrannus = ObjectAccessor::GetCreature(*me, _tyrannusGUID))
DoScriptText(SAY_TYRANNUS_OUTRO_7, tyrannus);
tyrannus->AI()->Talk(SAY_TYRANNUS_OUTRO_7);
_events.ScheduleEvent(EVENT_OUTRO_8, 5000);
break;
case EVENT_OUTRO_8:
@@ -450,7 +447,7 @@ class boss_krick : public CreatureScript
_events.ScheduleEvent(EVENT_OUTRO_9, 2000);
break;
case EVENT_OUTRO_9:
DoScriptText(SAY_KRICK_OUTRO_8, me);
Talk(SAY_KRICK_OUTRO_8);
// TODO: Tyrannus starts killing Krick.
// there shall be some visual spell effect
if (Creature* tyrannus = ObjectAccessor::GetCreature(*me, _tyrannusGUID))
@@ -472,16 +469,16 @@ class boss_krick : public CreatureScript
break;
case EVENT_OUTRO_12:
if (Creature* tyrannus = ObjectAccessor::GetCreature(*me, _tyrannusGUID))
DoScriptText(SAY_TYRANNUS_OUTRO_9, tyrannus);
tyrannus->AI()->Talk(SAY_TYRANNUS_OUTRO_9);
_events.ScheduleEvent(EVENT_OUTRO_13, 2000);
break;
case EVENT_OUTRO_13:
if (Creature* jainaOrSylvanas = ObjectAccessor::GetCreature(*me, _outroNpcGUID))
{
if (_instanceScript->GetData(DATA_TEAM_IN_INSTANCE) == ALLIANCE)
DoScriptText(SAY_JAYNA_OUTRO_10, jainaOrSylvanas);
jainaOrSylvanas->AI()->Talk(SAY_JAYNA_OUTRO_10);
else
DoScriptText(SAY_SYLVANAS_OUTRO_10, jainaOrSylvanas);
jainaOrSylvanas->AI()->Talk(SAY_SYLVANAS_OUTRO_10);
}
// End of OUTRO. for now...
_events.ScheduleEvent(EVENT_OUTRO_END, 3000);
@@ -636,19 +633,18 @@ class spell_krick_pursuit : public SpellScriptLoader
void HandleScriptEffect(SpellEffIndex /*effIndex*/)
{
if (GetCaster()->GetTypeId() != TYPEID_UNIT)
return;
Unit* caster = GetCaster();
CreatureAI* ickAI = caster->ToCreature()->AI();
if (Unit* target = ickAI->SelectTarget(SELECT_TARGET_RANDOM, 0, 200.0f, true))
{
DoScriptText(SAY_ICK_CHASE_1, caster, target);
caster->AddAura(GetSpellInfo()->Id, target);
CAST_AI(boss_ick::boss_ickAI, ickAI)->SetTempThreat(caster->getThreatManager().getThreat(target));
caster->AddThreat(target, float(GetEffectValue()));
target->AddThreat(caster, float(GetEffectValue()));
}
if (GetCaster())
if (Creature* ick = GetCaster()->ToCreature())
{
if (Unit* target = ick->AI()->SelectTarget(SELECT_TARGET_RANDOM, 0, 200.0f, true))
{
ick->AI()->Talk(SAY_ICK_CHASE_1, target->GetGUID());
ick->AddAura(GetSpellInfo()->Id, target);
CAST_AI(boss_ick::boss_ickAI, ick->AI())->SetTempThreat(ick->getThreatManager().getThreat(target));
ick->AddThreat(target, float(GetEffectValue()));
target->AddThreat(ick, float(GetEffectValue()));
}
}
}
void Register()

View File

@@ -25,32 +25,36 @@
enum Yells
{
SAY_AMBUSH_1 = -1658050,
SAY_AMBUSH_2 = -1658051,
SAY_GAUNTLET_START = -1658052,
SAY_TYRANNUS_INTRO_1 = -1658053,
SAY_GORKUN_INTRO_2 = -1658054,
SAY_TYRANNUS_INTRO_3 = -1658055,
//Gorkun
SAY_GORKUN_INTRO_2 = 0,
SAY_GORKUN_OUTRO_1 = 1,
SAY_GORKUN_OUTRO_2 = 2,
//Tyrannus
SAY_AMBUSH_1 = 3,
SAY_AMBUSH_2 = 4,
SAY_GAUNTLET_START = 5,
SAY_TYRANNUS_INTRO_1 = 6,
SAY_TYRANNUS_INTRO_3 = 7,
SAY_AGGRO = 8,
SAY_SLAY = 9,
SAY_DEATH = 10,
SAY_MARK_RIMEFANG_1 = 11,
SAY_MARK_RIMEFANG_2 = 12,
SAY_DARK_MIGHT_1 = 13,
SAY_DARK_MIGHT_2 = 14,
//Jaina
SAY_JAYNA_OUTRO_3 = 3,
SAY_JAYNA_OUTRO_4 = 4,
SAY_JAYNA_OUTRO_5 = 5,
SAY_AGGRO = -1658056,
SAY_SLAY_1 = -1658057,
SAY_SLAY_2 = -1658058,
SAY_DEATH = -1658059,
SAY_MARK_RIMEFANG_1 = -1658060,
SAY_MARK_RIMEFANG_2 = -1658061,
SAY_DARK_MIGHT_1 = -1658062,
SAY_DARK_MIGHT_2 = -1658063,
SAY_GORKUN_OUTRO_1 = -1658064,
SAY_GORKUN_OUTRO_2 = -1658065,
SAY_JAYNA_OUTRO_3 = -1658066,
SAY_SYLVANAS_OUTRO_3 = -1658067,
SAY_JAYNA_OUTRO_4 = -1658068,
SAY_SYLVANAS_OUTRO_4 = -1658069,
SAY_JAYNA_OUTRO_5 = -1658070,
//Sylvanas
SAY_SYLVANAS_OUTRO_3 = 3,
SAY_SYLVANAS_OUTRO_4 = 4
};
enum Spells
enum Spelsl
{
SPELL_OVERLORD_BRAND = 69172,
SPELL_OVERLORD_BRAND_HEAL = 69190,
@@ -156,7 +160,7 @@ class boss_tyrannus : public CreatureScript
void EnterCombat(Unit* /*who*/)
{
DoScriptText(SAY_AGGRO, me);
Talk(SAY_AGGRO);
}
void AttackStart(Unit* victim)
@@ -180,12 +184,12 @@ class boss_tyrannus : public CreatureScript
void KilledUnit(Unit* victim)
{
if (victim->GetTypeId() == TYPEID_PLAYER)
DoScriptText(RAND(SAY_SLAY_1, SAY_SLAY_2), me);
Talk(SAY_SLAY);
}
void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DEATH, me);
Talk(SAY_DEATH);
instance->SetBossState(DATA_TYRANNUS, DONE);
// Prevent corpse despawning
@@ -201,7 +205,7 @@ class boss_tyrannus : public CreatureScript
{
if (actionId == ACTION_START_INTRO)
{
DoScriptText(SAY_TYRANNUS_INTRO_1, me);
Talk(SAY_TYRANNUS_INTRO_1);
events.SetPhase(PHASE_INTRO);
events.ScheduleEvent(EVENT_INTRO_1, 14000, 0, PHASE_INTRO);
events.ScheduleEvent(EVENT_INTRO_2, 22000, 0, PHASE_INTRO);
@@ -223,10 +227,10 @@ class boss_tyrannus : public CreatureScript
switch (eventId)
{
case EVENT_INTRO_1:
//DoScriptText(SAY_GORKUN_INTRO_2, pGorkunOrVictus);
//Talk(SAY_GORKUN_INTRO_2, pGorkunOrVictus);
break;
case EVENT_INTRO_2:
DoScriptText(SAY_TYRANNUS_INTRO_3, me);
Talk(SAY_TYRANNUS_INTRO_3);
break;
case EVENT_INTRO_3:
me->ExitVehicle();
@@ -254,16 +258,16 @@ class boss_tyrannus : public CreatureScript
events.ScheduleEvent(EVENT_UNHOLY_POWER, 1000);
break;
case EVENT_UNHOLY_POWER:
DoScriptText(SAY_DARK_MIGHT_1, me);
DoScriptText(SAY_DARK_MIGHT_2, me);
Talk(SAY_DARK_MIGHT_1);
Talk(SAY_DARK_MIGHT_2);
DoCast(me, SPELL_UNHOLY_POWER);
events.ScheduleEvent(EVENT_FORCEFUL_SMASH, urand(40000, 48000));
break;
case EVENT_MARK_OF_RIMEFANG:
DoScriptText(SAY_MARK_RIMEFANG_1, me);
Talk(SAY_MARK_RIMEFANG_1);
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1, 0.0f, true))
{
DoScriptText(SAY_MARK_RIMEFANG_2, me, target);
Talk(SAY_MARK_RIMEFANG_2, target->GetGUID());
DoCast(target, SPELL_MARK_OF_RIMEFANG);
}
events.ScheduleEvent(EVENT_MARK_OF_RIMEFANG, urand(24000, 26000));

View File

@@ -38,16 +38,12 @@ enum Spells
//Yells
enum Yells
{
SAY_AGGRO = -1604000,
SAY_SLAY_1 = -1604001,
SAY_SLAY_2 = -1604002,
SAY_SLAY_3 = -1604003,
SAY_DEATH = -1604004,
SAY_SUMMON_RHINO_1 = -1604005,
SAY_SUMMON_RHINO_2 = -1604006,
SAY_SUMMON_RHINO_3 = -1604007,
SAY_TRANSFORM_1 = -1604008, //Phase change
SAY_TRANSFORM_2 = -1604009
SAY_AGGRO = 0,
SAY_SLAY = 1,
SAY_DEATH = 2,
SAY_SUMMON_RHINO = 3,
SAY_TRANSFORM_1 = 4,
SAY_TRANSFORM_2 = 5
};
enum Displays
@@ -125,7 +121,7 @@ public:
void EnterCombat(Unit* /*who*/)
{
DoScriptText(SAY_AGGRO, me);
Talk(SAY_AGGRO);
if (instance)
instance->SetData(DATA_GAL_DARAH_EVENT, IN_PROGRESS);
@@ -146,7 +142,7 @@ public:
me->SetDisplayId(DISPLAY_RHINO);
Phase = RHINO;
uiPhaseCounter = 0;
DoScriptText(SAY_TRANSFORM_1, me);
Talk(SAY_TRANSFORM_1);
uiTransformationTimer = 5*IN_MILLISECONDS;
bStartOfTransformation = true;
me->ClearUnitState(UNIT_STATE_STUNNED|UNIT_STATE_ROOT);
@@ -169,7 +165,7 @@ public:
if (uiStampedeTimer <= diff)
{
DoCast(me, SPELL_STAMPEDE);
DoScriptText(RAND(SAY_SUMMON_RHINO_1, SAY_SUMMON_RHINO_2, SAY_SUMMON_RHINO_3), me);
Talk(SAY_SUMMON_RHINO);
uiStampedeTimer = 15*IN_MILLISECONDS;
} else uiStampedeTimer -= diff;
@@ -189,7 +185,7 @@ public:
me->SetDisplayId(DISPLAY_TROLL);
Phase = TROLL;
uiPhaseCounter = 0;
DoScriptText(SAY_TRANSFORM_2, me);
Talk(SAY_TRANSFORM_2);
uiTransformationTimer = 9*IN_MILLISECONDS;
bStartOfTransformation = true;
me->ClearUnitState(UNIT_STATE_STUNNED|UNIT_STATE_ROOT);
@@ -268,7 +264,7 @@ public:
void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DEATH, me);
Talk(SAY_DEATH);
if (instance)
instance->SetData(DATA_GAL_DARAH_EVENT, DONE);
@@ -279,7 +275,7 @@ public:
if (victim == me)
return;
DoScriptText(RAND(SAY_SLAY_1, SAY_SLAY_2, SAY_SLAY_3), me);
Talk(SAY_SLAY);
}
};

File diff suppressed because it is too large Load Diff

View File

@@ -21,6 +21,7 @@
#include "ScriptedEscortAI.h"
#include "Player.h"
#include "SpellInfo.h"
#include "CreatureTextMgr.h"
/*######
## Quest 12027: Mr. Floppy's Perilous Adventure
@@ -37,19 +38,19 @@ enum eFloppy
SPELL_MRFLOPPY = 47184, //vehicle aura
SAY_WORGHAGGRO1 = -1800001, //Um... I think one of those wolves is back...
SAY_WORGHAGGRO2 = -1800002, //He's going for Mr. Floppy!
SAY_WORGRAGGRO3 = -1800003, //Oh, no! Look, it's another wolf, and it's a biiiiiig one!
SAY_WORGRAGGRO4 = -1800004, //He's gonna eat Mr. Floppy! You gotta help Mr. Floppy! You just gotta!
SAY_RANDOMAGGRO = -1800005, //There's a big meanie attacking Mr. Floppy! Help!
SAY_VICTORY1 = -1800006, //Let's get out of here before more wolves find us!
SAY_VICTORY2 = -1800007, //Don't go toward the light, Mr. Floppy!
SAY_VICTORY3 = -1800008, //Mr. Floppy, you're ok! Thank you so much for saving Mr. Floppy!
SAY_VICTORY4 = -1800009, //I think I see the camp! We're almost home, Mr. Floppy! Let's go!
TEXT_EMOTE_WP1 = -1800010, //Mr. Floppy revives
TEXT_EMOTE_AGGRO = -1800011, //The Ravenous Worg chomps down on Mr. Floppy
SAY_QUEST_ACCEPT = -1800012, //Are you ready, Mr. Floppy? Stay close to me and watch out for those wolves!
SAY_QUEST_COMPLETE = -1800013 //Thank you for helping me get back to the camp. Go tell Walter that I'm safe now!
SAY_WORGHAGGRO1 = 0, //Um... I think one of those wolves is back...
SAY_WORGHAGGRO2 = 1, //He's going for Mr. Floppy!
SAY_WORGRAGGRO3 = 2, //Oh, no! Look, it's another wolf, and it's a biiiiiig one!
SAY_WORGRAGGRO4 = 3, //He's gonna eat Mr. Floppy! You gotta help Mr. Floppy! You just gotta!
SAY_RANDOMAGGRO = 4, //There's a big meanie attacking Mr. Floppy! Help!
SAY_VICTORY1 = 5, //Let's get out of here before more wolves find us!
SAY_VICTORY2 = 6, //Don't go toward the light, Mr. Floppy!
SAY_VICTORY3 = 7, //Mr. Floppy, you're ok! Thank you so much for saving Mr. Floppy!
SAY_VICTORY4 = 8, //I think I see the camp! We're almost home, Mr. Floppy! Let's go!
TEXT_EMOTE_WP1 = 9, //Mr. Floppy revives
TEXT_EMOTE_AGGRO = 10, //The Ravenous Worg chomps down on Mr. Floppy
SAY_QUEST_ACCEPT = 11, //Are you ready, Mr. Floppy? Stay close to me and watch out for those wolves!
SAY_QUEST_COMPLETE = 12 //Thank you for helping me get back to the camp. Go tell Walter that I'm safe now!
};
//emily
@@ -92,7 +93,7 @@ public:
case 10:
if (Unit::GetCreature(*me, MrfloppyGUID))
{
DoScriptText(SAY_WORGHAGGRO1, me);
Talk(SAY_WORGHAGGRO1);
me->SummonCreature(NPC_HUNGRY_WORG, me->GetPositionX()+5, me->GetPositionY()+2, me->GetPositionZ()+1, 3.229f, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 120000);
}
break;
@@ -103,7 +104,7 @@ public:
case 17:
if (Creature* Mrfloppy = Unit::GetCreature(*me, MrfloppyGUID))
Mrfloppy->GetMotionMaster()->MovePoint(0, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ());
DoScriptText(SAY_WORGRAGGRO3, me);
Talk(SAY_WORGRAGGRO3);
if (Creature* RWORG = me->SummonCreature(NPC_RAVENOUS_WORG, me->GetPositionX()+10, me->GetPositionY()+8, me->GetPositionZ()+2, 3.229f, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 120000))
{
RWORG->setFaction(35);
@@ -141,7 +142,7 @@ public:
Mrfloppy->ExitVehicle();
RWORG->setFaction(14);
RWORG->GetMotionMaster()->MovePoint(0, RWORG->GetPositionX()+10, RWORG->GetPositionY()+80, RWORG->GetPositionZ());
DoScriptText(SAY_VICTORY2, me);
Talk(SAY_VICTORY2);
}
}
break;
@@ -155,7 +156,7 @@ public:
me->GetMotionMaster()->MovePoint(0, Mrfloppy->GetPositionX(), Mrfloppy->GetPositionY(), Mrfloppy->GetPositionZ());
Mrfloppy->setDeathState(ALIVE);
Mrfloppy->GetMotionMaster()->MoveFollow(me, PET_FOLLOW_DIST, PET_FOLLOW_ANGLE);
DoScriptText(SAY_VICTORY3, me);
Talk(SAY_VICTORY3);
}
}
break;
@@ -164,12 +165,12 @@ public:
{
Completed = true;
player->GroupEventHappens(QUEST_PERILOUS_ADVENTURE, me);
DoScriptText(SAY_QUEST_COMPLETE, me, player);
Talk(SAY_QUEST_COMPLETE, player->GetGUID());
}
me->SetWalk(false);
break;
case 25:
DoScriptText(SAY_VICTORY4, me);
Talk(SAY_VICTORY4);
break;
case 27:
me->DisappearAndDie();
@@ -181,7 +182,7 @@ public:
void EnterCombat(Unit* /*Who*/)
{
DoScriptText(SAY_RANDOMAGGRO, me);
Talk(SAY_RANDOMAGGRO);
}
void Reset()
@@ -209,7 +210,7 @@ public:
{
if (quest->GetQuestId() == QUEST_PERILOUS_ADVENTURE)
{
DoScriptText(SAY_QUEST_ACCEPT, creature);
creature->AI()->Talk(SAY_QUEST_ACCEPT);
if (Creature* Mrfloppy = GetClosestCreatureWithEntry(creature, NPC_MRFLOPPY, 180.0f))
Mrfloppy->GetMotionMaster()->MoveFollow(creature, PET_FOLLOW_DIST, PET_FOLLOW_ANGLE);
@@ -248,13 +249,13 @@ public:
switch (Who->GetEntry())
{
case NPC_HUNGRY_WORG:
DoScriptText(SAY_WORGHAGGRO2, Emily);
Emily->AI()->Talk(SAY_WORGHAGGRO2);
break;
case NPC_RAVENOUS_WORG:
DoScriptText(SAY_WORGRAGGRO4, Emily);
Emily->AI()->Talk(SAY_WORGRAGGRO4);
break;
default:
DoScriptText(SAY_RANDOMAGGRO, Emily);
Emily->AI()->Talk(SAY_RANDOMAGGRO);
}
}
}
@@ -461,12 +462,10 @@ public:
enum eSkirmisher
{
SPELL_RENEW_SKIRMISHER = 48812,
CREDIT_NPC = 27466,
SPELL_RENEW_SKIRMISHER = 48812,
CREDIT_NPC = 27466,
RANDOM_SAY_1 = -1800044, //Ahh..better..
RANDOM_SAY_2 = -1800045, //Whoa.. i nearly died there. Thank you, $Race!
RANDOM_SAY_3 = -1800046 //Thank you. $Class!
RANDOM_SAY = 0,
};
class npc_wounded_skirmisher : public CreatureScript
@@ -500,7 +499,7 @@ public:
&& caster->ToPlayer()->GetQuestStatus(12288) == QUEST_STATUS_INCOMPLETE)
{
caster->ToPlayer()->KilledMonsterCredit(CREDIT_NPC, 0);
DoScriptText(RAND(RANDOM_SAY_1, RANDOM_SAY_2, RANDOM_SAY_3), caster);
sCreatureTextMgr->SendChat(me, RANDOM_SAY, 0, CHAT_MSG_ADDON, LANG_ADDON, TEXT_RANGE_NORMAL, 0, TEAM_OTHER, false, caster->ToPlayer());
if (me->IsStandState())
me->GetMotionMaster()->MovePoint(1, me->GetPositionX()+7, me->GetPositionY()+7, me->GetPositionZ());
else
@@ -593,16 +592,12 @@ public:
/*Venture co. Straggler - when you cast Smoke Bomb, he will yell and run away*/
enum eSmokeEmOut
{
SAY_SEO1 = -1603535,
SAY_SEO2 = -1603536,
SAY_SEO3 = -1603537,
SAY_SEO4 = -1603538,
SAY_SEO5 = -1603539,
QUEST_SMOKE_EM_OUT_A = 12323,
QUEST_SMOKE_EM_OUT_H = 12324,
SPELL_SMOKE_BOMB = 49075,
SPELL_CHOP = 43410,
SPELL_VENTURE_STRAGGLER_CREDIT = 49093,
SAY_SEO = 0,
QUEST_SMOKE_EM_OUT_A = 12323,
QUEST_SMOKE_EM_OUT_H = 12324,
SPELL_SMOKE_BOMB = 49075,
SPELL_CHOP = 43410,
SPELL_VENTURE_STRAGGLER_CREDIT = 49093,
};
class npc_venture_co_straggler : public CreatureScript
@@ -644,7 +639,7 @@ class npc_venture_co_straggler : public CreatureScript
++uiTimer;
break;
case 1:
DoScriptText(RAND(SAY_SEO1, SAY_SEO2, SAY_SEO3, SAY_SEO4, SAY_SEO5), me);
Talk(SAY_SEO);
me->GetMotionMaster()->MovePoint(0, me->GetPositionX()-7, me->GetPositionY()-5, me->GetPositionZ());
uiRunAwayTimer = 2500;
++uiTimer;