Merge pull request #8510 from Gacko/creaturetext

Core/DB: Creature text for 24 script files
This commit is contained in:
blub
2012-12-01 05:37:35 -08:00
25 changed files with 1186 additions and 857 deletions
@@ -619,42 +619,6 @@ uint32 hyjalAI::GetInstanceData(uint32 Event)
return 0;
}
void hyjalAI::Talk(uint32 id)
{
std::list<uint8> index;
for (uint8 i = 0; i < 9; ++i)
{
if (Faction == 0) // Alliance
{
if (JainaQuotes[i].id == id)
index.push_back(i);
}
else if (Faction == 1) // Horde
{
if (ThrallQuotes[i].id == id)
index.push_back(i);
}
}
if (index.empty())
return; // No quotes found, no use to continue
uint8 ind = *(index.begin()) + rand()%index.size();
int32 YellId = 0;
if (Faction == 0) // Alliance
{
YellId = JainaQuotes[ind].textid;
}
else if (Faction == 1) // Horde
{
YellId = ThrallQuotes[ind].textid;
}
if (YellId)
DoScriptText(YellId, me);
}
void hyjalAI::Retreat()
{
if (instance)
@@ -132,12 +132,6 @@ enum TargetType // Used in the spell
TARGETTYPE_VICTIM = 2,
};
struct Yells
{
uint32 id; // Used to determine the type of yell (attack, rally, etc)
int32 textid; // The text id to be yelled
};
enum YellId
{
ATTACKED = 0, // Used when attacked and set in combat
@@ -149,32 +143,6 @@ enum YellId
DEATH = 6, // Used on death
};
const Yells JainaQuotes[]=
{
{ATTACKED, -1534000},
{ATTACKED, -1534001},
{INCOMING, -1534002},
{BEGIN, -1534003},
{RALLY, -1534004},
{RALLY, -1534005},
{FAILURE, -1534006},
{SUCCESS, -1534007},
{DEATH, -1534008},
};
const Yells ThrallQuotes[]=
{
{ATTACKED, -1534009},
{ATTACKED, -1534010},
{INCOMING, -1534011},
{BEGIN, -1534012},
{RALLY, -1534013},
{RALLY, -1534014},
{FAILURE, -1534015},
{SUCCESS, -1534016},
{DEATH, -1534017},
};
struct hyjalAI : public npc_escortAI
{
hyjalAI(Creature* creature);
@@ -215,8 +183,6 @@ struct hyjalAI : public npc_escortAI
uint32 GetInstanceData(uint32 Event); // Gets instance data for this instance, used to check if raid has gotten past a certain point and can access the next phase
void Talk(uint32 id); // Searches for the appropriate yell and sound and uses it to inform the raid of various things
public:
InstanceScript* instance;
@@ -38,15 +38,11 @@ enum Spells
enum Yells
{
SAY_INTRO = -1595000, //"Prince Arthas Menethil, on this day, a powerful darkness has taken hold of your soul. The death you are destined to visit upon others will this day be your own."
SAY_AGGRO = -1595001, //"We'll see about that, young prince."
SAY_TIME_WARP_1 = -1595002, //"Tick tock, tick tock..."
SAY_TIME_WARP_2 = -1595003, //"Not quick enough!"
SAY_TIME_WARP_3 = -1595004, //"Let's get this over with. "
SAY_SLAY_1 = -1595005, //"There is no future for you."
SAY_SLAY_2 = -1595006, //"This is the hour of our greatest triumph!"
SAY_SLAY_3 = -1595007, //"You were destined to fail. "
SAY_DEATH = -1595008 //"*gurgles*"
SAY_INTRO = 0,
SAY_AGGRO = 1,
SAY_TIME_WARP = 2,
SAY_SLAY = 3,
SAY_DEATH = 4
};
class boss_epoch : public CreatureScript
@@ -91,7 +87,7 @@ public:
void EnterCombat(Unit* /*who*/)
{
DoScriptText(SAY_AGGRO, me);
Talk(SAY_AGGRO);
if (instance)
instance->SetData(DATA_EPOCH_EVENT, IN_PROGRESS);
@@ -124,7 +120,7 @@ public:
if (uiTimeWarpTimer < diff)
{
DoScriptText(RAND(SAY_TIME_WARP_1, SAY_TIME_WARP_2, SAY_TIME_WARP_3), me);
Talk(SAY_TIME_WARP);
DoCastAOE(SPELL_TIME_WARP);
uiTimeWarpTimer = 25300;
} else uiTimeWarpTimer -= diff;
@@ -134,7 +130,7 @@ public:
void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DEATH, me);
Talk(SAY_DEATH);
if (instance)
instance->SetData(DATA_EPOCH_EVENT, DONE);
@@ -145,7 +141,7 @@ public:
if (victim == me)
return;
DoScriptText(RAND(SAY_SLAY_1, SAY_SLAY_2, SAY_SLAY_3), me);
Talk(SAY_SLAY);
}
};
@@ -42,23 +42,15 @@ enum Spells
enum Yells
{
SAY_INTRO_1 = -1595009,
SAY_INTRO_2 = -1595010,
SAY_AGGRO = -1595011,
SAY_KILL_1 = -1595012,
SAY_KILL_2 = -1595013,
SAY_KILL_3 = -1595014,
SAY_SLAY_1 = -1595015,
SAY_SLAY_2 = -1595016,
SAY_SLAY_3 = -1595017,
SAY_SLAY_4 = -1595018,
SAY_SLEEP_1 = -1595019,
SAY_SLEEP_2 = -1595020,
SAY_30HEALTH = -1595021,
SAY_15HEALTH = -1595022,
SAY_ESCAPE_SPEECH_1 = -1595023,
SAY_ESCAPE_SPEECH_2 = -1595024,
SAY_OUTRO = -1595025,
SAY_AGGRO = 2,
SAY_KILL = 3,
SAY_SLAY = 4,
SAY_SLEEP = 5,
SAY_30HEALTH = 6,
SAY_15HEALTH = 7,
SAY_ESCAPE_SPEECH_1 = 8,
SAY_ESCAPE_SPEECH_2 = 9,
SAY_OUTRO = 10
};
enum CombatPhases
@@ -116,7 +108,7 @@ public:
void EnterCombat(Unit* /*who*/)
{
DoScriptText(SAY_AGGRO, me);
Talk(SAY_AGGRO);
if (instance)
instance->SetData(DATA_MAL_GANIS_EVENT, IN_PROGRESS);
}
@@ -138,13 +130,13 @@ public:
if (!bYelled && HealthBelowPct(30))
{
DoScriptText(SAY_30HEALTH, me);
Talk(SAY_30HEALTH);
bYelled = true;
}
if (!bYelled2 && HealthBelowPct(15))
{
DoScriptText(SAY_15HEALTH, me);
Talk(SAY_15HEALTH);
bYelled2 = true;
}
@@ -187,7 +179,7 @@ public:
if (uiSleepTimer < diff)
{
DoScriptText(RAND(SAY_SLEEP_1, SAY_SLEEP_2), me);
Talk(SAY_SLEEP);
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
DoCast(target, SPELL_SLEEP);
uiSleepTimer = urand(15000, 20000);
@@ -201,7 +193,7 @@ public:
switch (uiOutroStep)
{
case 1:
DoScriptText(SAY_ESCAPE_SPEECH_1, me);
Talk(SAY_ESCAPE_SPEECH_1);
me->GetMotionMaster()->MoveTargetedHome();
++uiOutroStep;
uiOutroTimer = 8000;
@@ -209,12 +201,12 @@ public:
case 2:
me->SetTarget(instance ? instance->GetData64(DATA_ARTHAS) : 0);
me->HandleEmoteCommand(29);
DoScriptText(SAY_ESCAPE_SPEECH_2, me);
Talk(SAY_ESCAPE_SPEECH_2);
++uiOutroStep;
uiOutroTimer = 9000;
break;
case 3:
DoScriptText(SAY_OUTRO, me);
Talk(SAY_OUTRO);
++uiOutroStep;
uiOutroTimer = 16000;
break;
@@ -250,7 +242,7 @@ public:
if (victim == me)
return;
DoScriptText(RAND(SAY_SLAY_1, SAY_SLAY_2, SAY_SLAY_3, SAY_SLAY_4), me);
Talk(SAY_SLAY);
}
};
@@ -38,12 +38,10 @@ enum Spells
enum Yells
{
SAY_AGGRO = -1595026,
SAY_SLAY_1 = -1595027,
SAY_SLAY_2 = -1595028,
SAY_SLAY_3 = -1595029,
SAY_SPAWN = -1595030,
SAY_DEATH = -1595031
SAY_AGGRO = 0,
SAY_SLAY = 1,
SAY_SPAWN = 2,
SAY_DEATH = 3
};
class boss_meathook : public CreatureScript
@@ -62,7 +60,7 @@ public:
{
instance = creature->GetInstanceScript();
if (instance)
DoScriptText(SAY_SPAWN, me);
Talk(SAY_SPAWN);
}
uint32 uiChainTimer;
@@ -83,7 +81,7 @@ public:
void EnterCombat(Unit* /*who*/)
{
DoScriptText(SAY_AGGRO, me);
Talk(SAY_AGGRO);
if (instance)
instance->SetData(DATA_MEATHOOK_EVENT, IN_PROGRESS);
@@ -119,7 +117,7 @@ public:
void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DEATH, me);
Talk(SAY_DEATH);
if (instance)
instance->SetData(DATA_MEATHOOK_EVENT, DONE);
@@ -130,7 +128,7 @@ public:
if (victim == me)
return;
DoScriptText(RAND(SAY_SLAY_1, SAY_SLAY_2, SAY_SLAY_3), me);
Talk(SAY_SLAY);
}
};
@@ -40,19 +40,13 @@ enum Spells
enum Yells
{
SAY_AGGRO = -1595032,
SAY_SPAWN = -1595033,
SAY_SLAY_1 = -1595034,
SAY_SLAY_2 = -1595035,
SAY_SLAY_3 = -1595036,
SAY_DEATH = -1595037,
SAY_EXPLODE_GHOUL_1 = -1595038,
SAY_EXPLODE_GHOUL_2 = -1595039,
SAY_STEAL_FLESH_1 = -1595040,
SAY_STEAL_FLESH_2 = -1595041,
SAY_STEAL_FLESH_3 = -1595042,
SAY_SUMMON_GHOULS_1 = -1595043,
SAY_SUMMON_GHOULS_2 = -1595044
SAY_AGGRO = 0,
SAY_SPAWN = 1,
SAY_SLAY = 2,
SAY_DEATH = 3,
SAY_EXPLODE_GHOUL = 4,
SAY_STEAL_FLESH = 5,
SAY_SUMMON_GHOULS = 6
};
class boss_salramm : public CreatureScript
@@ -71,7 +65,7 @@ public:
{
instance = creature->GetInstanceScript();
if (instance)
DoScriptText(SAY_SPAWN, me);
Talk(SAY_SPAWN);
}
uint32 uiCurseFleshTimer;
@@ -96,7 +90,7 @@ public:
void EnterCombat(Unit* /*who*/)
{
DoScriptText(SAY_AGGRO, me);
Talk(SAY_AGGRO);
if (instance)
instance->SetData(DATA_SALRAMM_EVENT, IN_PROGRESS);
@@ -126,7 +120,7 @@ public:
//Steal Flesh timer
if (uiStealFleshTimer <= diff)
{
DoScriptText(RAND(SAY_STEAL_FLESH_1, SAY_STEAL_FLESH_2, SAY_STEAL_FLESH_3), me);
Talk(SAY_STEAL_FLESH);
if (Unit* random_pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0))
DoCast(random_pTarget, SPELL_STEAL_FLESH);
uiStealFleshTimer = 10000;
@@ -135,7 +129,7 @@ public:
//Summon ghouls timer
if (uiSummonGhoulsTimer <= diff)
{
DoScriptText(RAND(SAY_SUMMON_GHOULS_1, SAY_SUMMON_GHOULS_2), me);
Talk(SAY_SUMMON_GHOULS);
if (Unit* random_pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0))
DoCast(random_pTarget, SPELL_SUMMON_GHOULS);
uiSummonGhoulsTimer = 10000;
@@ -146,7 +140,7 @@ public:
void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DEATH, me);
Talk(SAY_DEATH);
if (instance)
instance->SetData(DATA_SALRAMM_EVENT, DONE);
@@ -157,7 +151,7 @@ public:
if (victim == me)
return;
DoScriptText(RAND(SAY_SLAY_1, SAY_SLAY_2, SAY_SLAY_3), me);
Talk(SAY_SLAY);
}
};
@@ -29,13 +29,12 @@ EndScriptData */
enum eEnums
{
SAY_ENTER = -1269012,
SAY_AGGRO = -1269013,
SAY_BANISH = -1269014,
SAY_SLAY1 = -1269015,
SAY_SLAY2 = -1269016,
SAY_DEATH = -1269017,
EMOTE_FRENZY = -1269018,
SAY_ENTER = 0,
SAY_AGGRO = 1,
SAY_BANISH = 2,
SAY_SLAY = 3,
SAY_DEATH = 4,
EMOTE_FRENZY = 5,
SPELL_CLEAVE = 40504,
SPELL_TIME_STOP = 31422,
@@ -76,7 +75,7 @@ public:
void EnterCombat(Unit* /*who*/)
{
DoScriptText(SAY_AGGRO, me);
Talk(SAY_AGGRO);
}
void MoveInLineOfSight(Unit* who)
@@ -86,7 +85,7 @@ public:
{
if (me->IsWithinDistInMap(who, 20.0f))
{
DoScriptText(SAY_BANISH, me);
Talk(SAY_BANISH);
me->DealDamage(who, who->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
}
}
@@ -96,7 +95,7 @@ public:
void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DEATH, me);
Talk(SAY_DEATH);
if (instance)
{
@@ -107,7 +106,7 @@ public:
void KilledUnit(Unit* /*victim*/)
{
DoScriptText(RAND(SAY_SLAY1, SAY_SLAY2), me);
Talk(SAY_SLAY);
}
void UpdateAI(const uint32 diff)
@@ -133,7 +132,7 @@ public:
//Frenzy
if (Frenzy_Timer <= diff)
{
DoScriptText(EMOTE_FRENZY, me);
Talk(EMOTE_FRENZY);
DoCast(me, SPELL_ENRAGE);
Frenzy_Timer = 20000+rand()%15000;
} else Frenzy_Timer -= diff;
@@ -29,12 +29,11 @@ EndScriptData */
enum eEnums
{
SAY_ENTER = -1269006,
SAY_AGGRO = -1269007,
SAY_BANISH = -1269008,
SAY_SLAY1 = -1269009,
SAY_SLAY2 = -1269010,
SAY_DEATH = -1269011,
SAY_ENTER = 0,
SAY_AGGRO = 1,
SAY_BANISH = 2,
SAY_SLAY = 3,
SAY_DEATH = 4,
SPELL_ARCANE_BLAST = 31457,
H_SPELL_ARCANE_BLAST = 38538,
@@ -78,7 +77,7 @@ public:
void EnterCombat(Unit* /*who*/)
{
DoScriptText(SAY_AGGRO, me);
Talk(SAY_AGGRO);
}
void MoveInLineOfSight(Unit* who)
@@ -88,7 +87,7 @@ public:
{
if (me->IsWithinDistInMap(who, 20.0f))
{
DoScriptText(SAY_BANISH, me);
Talk(SAY_BANISH);
me->DealDamage(who, who->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
}
}
@@ -98,12 +97,12 @@ public:
void KilledUnit(Unit* /*victim*/)
{
DoScriptText(RAND(SAY_SLAY1, SAY_SLAY2), me);
Talk(SAY_SLAY);
}
void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DEATH, me);
Talk(SAY_DEATH);
if (instance)
instance->SetData(TYPE_RIFT, SPECIAL);
@@ -133,7 +132,7 @@ public:
//Time Lapse
if (TimeLapse_Timer <= diff)
{
DoScriptText(SAY_BANISH, me);
Talk(SAY_BANISH);
DoCast(me, SPELL_TIME_LAPSE);
TimeLapse_Timer = 15000+rand()%10000;
} else TimeLapse_Timer -= diff;
@@ -29,12 +29,11 @@ EndScriptData */
enum eEnums
{
SAY_ENTER = -1269000,
SAY_AGGRO = -1269001,
SAY_BANISH = -1269002,
SAY_SLAY1 = -1269003,
SAY_SLAY2 = -1269004,
SAY_DEATH = -1269005,
SAY_ENTER = 0,
SAY_AGGRO = 1,
SAY_BANISH = 2,
SAY_SLAY = 3,
SAY_DEATH = 4,
SPELL_HASTE = 31458,
SPELL_MORTAL_WOUND = 31464,
@@ -77,17 +76,17 @@ public:
void EnterCombat(Unit* /*who*/)
{
DoScriptText(SAY_AGGRO, me);
Talk(SAY_AGGRO);
}
void KilledUnit(Unit* /*victim*/)
{
DoScriptText(RAND(SAY_SLAY1, SAY_SLAY2), me);
Talk(SAY_SLAY);
}
void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DEATH, me);
Talk(SAY_DEATH);
if (instance)
instance->SetData(TYPE_RIFT, SPECIAL);
@@ -100,7 +99,7 @@ public:
{
if (me->IsWithinDistInMap(who, 20.0f))
{
DoScriptText(SAY_BANISH, me);
Talk(SAY_BANISH);
me->DealDamage(who, who->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
}
@@ -36,29 +36,32 @@ EndContentData */
#include "Player.h"
#include "SpellInfo.h"
#define SAY_ENTER -1269020 //where does this belong?
#define SAY_INTRO -1269021
#define SAY_WEAK75 -1269022
#define SAY_WEAK50 -1269023
#define SAY_WEAK25 -1269024
#define SAY_DEATH -1269025
#define SAY_WIN -1269026
#define SAY_ORCS_ENTER -1269027
#define SAY_ORCS_ANSWER -1269028
enum MedivhBm
{
SAY_ENTER = 0, //where does this belong?
SAY_INTRO = 1,
SAY_WEAK75 = 2,
SAY_WEAK50 = 3,
SAY_WEAK25 = 4,
SAY_DEATH = 5,
SAY_WIN = 6,
SAY_ORCS_ENTER = 7,
SAY_ORCS_ANSWER = 8,
#define SPELL_CHANNEL 31556
#define SPELL_PORTAL_RUNE 32570 //aura(portal on ground effect)
SPELL_CHANNEL = 31556,
SPELL_PORTAL_RUNE = 32570, //aura(portal on ground effect)
#define SPELL_BLACK_CRYSTAL 32563 //aura
#define SPELL_PORTAL_CRYSTAL 32564 //summon
SPELL_BLACK_CRYSTAL = 32563, //aura
SPELL_PORTAL_CRYSTAL = 32564, //summon
#define SPELL_BANISH_PURPLE 32566 //aura
#define SPELL_BANISH_GREEN 32567 //aura
SPELL_BANISH_PURPLE = 32566, //aura
SPELL_BANISH_GREEN = 32567, //aura
#define SPELL_CORRUPT 31326
#define SPELL_CORRUPT_AEONUS 37853
#define C_COUNCIL_ENFORCER 17023
SPELL_CORRUPT = 31326,
SPELL_CORRUPT_AEONUS = 37853,
C_COUNCIL_ENFORCER = 17023
};
class npc_medivh_bm : public CreatureScript
{
@@ -111,7 +114,7 @@ public:
if (instance->GetData(TYPE_MEDIVH) == IN_PROGRESS || instance->GetData(TYPE_MEDIVH) == DONE)
return;
DoScriptText(SAY_INTRO, me);
Talk(SAY_INTRO);
instance->SetData(TYPE_MEDIVH, IN_PROGRESS);
DoCast(me, SPELL_CHANNEL, false);
Check_Timer = 5000;
@@ -162,7 +165,7 @@ public:
if (killer->GetEntry() == me->GetEntry())
return;
DoScriptText(SAY_DEATH, me);
Talk(SAY_DEATH);
}
void UpdateAI(const uint32 diff)
@@ -195,17 +198,17 @@ public:
if (Life25 && pct <= 25)
{
DoScriptText(SAY_WEAK25, me);
Talk(SAY_WEAK25);
Life25 = false;
}
else if (Life50 && pct <= 50)
{
DoScriptText(SAY_WEAK50, me);
Talk(SAY_WEAK50);
Life50 = false;
}
else if (Life75 && pct <= 75)
{
DoScriptText(SAY_WEAK75, me);
Talk(SAY_WEAK75);
Life75 = false;
}
@@ -220,7 +223,7 @@ public:
if (instance->GetData(TYPE_RIFT) == DONE)
{
DoScriptText(SAY_WIN, me);
Talk(SAY_WIN);
Check_Timer = 0;
if (me->HasAura(SPELL_CHANNEL))
@@ -363,11 +366,13 @@ public:
};
#define SAY_SAAT_WELCOME -1269019
enum Saat
{
SPELL_CHRONO_BEACON = 34975,
ITEM_CHRONO_BEACON = 24289
};
#define GOSSIP_ITEM_OBTAIN "[PH] Obtain Chrono-Beacon"
#define SPELL_CHRONO_BEACON 34975
#define ITEM_CHRONO_BEACON 24289
class npc_saat : public CreatureScript
{
@@ -27,19 +27,25 @@ EndScriptData */
#include "ScriptedCreature.h"
#include "old_hillsbrad.h"
#define SAY_ENTER -1560000
#define SAY_TAUNT1 -1560001
#define SAY_TAUNT2 -1560002
#define SAY_SLAY1 -1560003
#define SAY_SLAY2 -1560004
#define SAY_DEATH -1560005
/*######################
# boss_captain_skarloc #
#######################*/
#define SPELL_HOLY_LIGHT 29427
#define SPELL_CLEANSE 29380
#define SPELL_HAMMER_OF_JUSTICE 13005
#define SPELL_HOLY_SHIELD 31904
#define SPELL_DEVOTION_AURA 8258
#define SPELL_CONSECRATION 38385
enum CaptainSkarloc
{
SAY_ENTER = 0,
SAY_TAUNT1 = 1,
SAY_TAUNT2 = 2,
SAY_SLAY = 3,
SAY_DEATH = 4,
SPELL_HOLY_LIGHT = 29427,
SPELL_CLEANSE = 29380,
SPELL_HAMMER_OF_JUSTICE = 13005,
SPELL_HOLY_SHIELD = 31904,
SPELL_DEVOTION_AURA = 8258,
SPELL_CONSECRATION = 38385
};
class boss_captain_skarloc : public CreatureScript
{
@@ -80,18 +86,18 @@ public:
void EnterCombat(Unit* /*who*/)
{
//This is not correct. Should taunt Thrall before engage in combat
DoScriptText(SAY_TAUNT1, me);
DoScriptText(SAY_TAUNT2, me);
Talk(SAY_TAUNT1);
Talk(SAY_TAUNT2);
}
void KilledUnit(Unit* /*victim*/)
{
DoScriptText(RAND(SAY_SLAY1, SAY_SLAY2), me);
Talk(SAY_SLAY);
}
void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DEATH, me);
Talk(SAY_DEATH);
if (instance && instance->GetData(TYPE_THRALL_EVENT) == IN_PROGRESS)
instance->SetData(TYPE_THRALL_PART1, DONE);
@@ -27,21 +27,23 @@ EndScriptData */
#include "ScriptedCreature.h"
#include "old_hillsbrad.h"
#define SAY_ENTER1 -1560013
#define SAY_ENTER2 -1560014
#define SAY_ENTER3 -1560015
#define SAY_AGGRO1 -1560016
#define SAY_AGGRO2 -1560017
#define SAY_SLAY1 -1560018
#define SAY_SLAY2 -1560019
#define SAY_BREATH1 -1560020
#define SAY_BREATH2 -1560021
#define SAY_DEATH -1560022
/*###################
# boss_epoch_hunter #
####################*/
#define SPELL_SAND_BREATH 31914
#define SPELL_IMPENDING_DEATH 31916
#define SPELL_MAGIC_DISRUPTION_AURA 33834
#define SPELL_WING_BUFFET 31475
enum EpochHunter
{
SAY_ENTER = 0,
SAY_AGGRO = 1,
SAY_SLAY = 2,
SAY_BREATH = 3,
SAY_DEATH = 4,
SPELL_SAND_BREATH = 31914,
SPELL_IMPENDING_DEATH = 31916,
SPELL_MAGIC_DISRUPTION_AURA = 33834,
SPELL_WING_BUFFET = 31475
};
class boss_epoch_hunter : public CreatureScript
{
@@ -77,17 +79,17 @@ public:
void EnterCombat(Unit* /*who*/)
{
DoScriptText(RAND(SAY_AGGRO1, SAY_AGGRO2), me);
Talk(SAY_AGGRO);
}
void KilledUnit(Unit* /*victim*/)
{
DoScriptText(RAND(SAY_SLAY1, SAY_SLAY2), me);
Talk(SAY_SLAY);
}
void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DEATH, me);
Talk(SAY_DEATH);
if (instance && instance->GetData(TYPE_THRALL_EVENT) == IN_PROGRESS)
instance->SetData(TYPE_THRALL_PART4, DONE);
@@ -107,7 +109,7 @@ public:
DoCast(me->getVictim(), SPELL_SAND_BREATH);
DoScriptText(RAND(SAY_BREATH1, SAY_BREATH2), me);
Talk(SAY_BREATH);
SandBreath_Timer = urand(10000, 20000);
} else SandBreath_Timer -= diff;
@@ -56,18 +56,20 @@ public:
## boss_lieutenant_drake
######*/
#define SAY_ENTER -1560006
#define SAY_AGGRO -1560007
#define SAY_SLAY1 -1560008
#define SAY_SLAY2 -1560009
#define SAY_MORTAL -1560010
#define SAY_SHOUT -1560011
#define SAY_DEATH -1560012
enum LieutenantDrake
{
SAY_ENTER = 0,
SAY_AGGRO = 1,
SAY_SLAY = 2,
SAY_MORTAL = 3,
SAY_SHOUT = 4,
SAY_DEATH = 5,
#define SPELL_WHIRLWIND 31909
#define SPELL_HAMSTRING 9080
#define SPELL_MORTAL_STRIKE 31911
#define SPELL_FRIGHTENING_SHOUT 33789
SPELL_WHIRLWIND = 31909,
SPELL_HAMSTRING = 9080,
SPELL_MORTAL_STRIKE = 31911,
SPELL_FRIGHTENING_SHOUT = 33789
};
struct Location
{
@@ -135,17 +137,17 @@ public:
void EnterCombat(Unit* /*who*/)
{
DoScriptText(SAY_AGGRO, me);
Talk(SAY_AGGRO);
}
void KilledUnit(Unit* /*victim*/)
{
DoScriptText(RAND(SAY_SLAY1, SAY_SLAY2), me);
Talk(SAY_SLAY);
}
void JustDied(Unit* /*killer*/)
{
DoScriptText(SAY_DEATH, me);
Talk(SAY_DEATH);
}
void UpdateAI(const uint32 diff)
@@ -171,7 +173,7 @@ public:
//Fear
if (Fear_Timer <= diff)
{
DoScriptText(SAY_SHOUT, me);
Talk(SAY_SHOUT);
DoCast(me->getVictim(), SPELL_FRIGHTENING_SHOUT);
Fear_Timer = 25000+rand()%10000;
} else Fear_Timer -= diff;
@@ -179,7 +181,7 @@ public:
//Mortal Strike
if (MortalStrike_Timer <= diff)
{
DoScriptText(SAY_MORTAL, me);
Talk(SAY_MORTAL);
DoCast(me->getVictim(), SPELL_MORTAL_STRIKE);
MortalStrike_Timer = 20000+rand()%10000;
} else MortalStrike_Timer -= diff;
@@ -36,12 +36,14 @@ EndContentData */
#include "old_hillsbrad.h"
#include "Player.h"
#define QUEST_ENTRY_HILLSBRAD 10282
#define QUEST_ENTRY_DIVERSION 10283
#define QUEST_ENTRY_ESCAPE 10284
#define QUEST_ENTRY_RETURN 10285
#define ITEM_ENTRY_BOMBS 25853
enum Erozion
{
QUEST_ENTRY_HILLSBRAD = 10282,
QUEST_ENTRY_DIVERSION = 10283,
QUEST_ENTRY_ESCAPE = 10284,
QUEST_ENTRY_RETURN = 10285,
ITEM_ENTRY_BOMBS = 25853
};
#define GOSSIP_HELLO_EROZION1 "I need a pack of Incendiary Bombs."
#define GOSSIP_HELLO_EROZION2 "[PH] Teleport please, i'm tired."
@@ -98,97 +100,85 @@ public:
######*/
//Thrall texts
#define SAY_TH_START_EVENT_PART1 -1560023
#define SAY_TH_ARMORY -1560024
#define SAY_TH_SKARLOC_MEET -1560025
#define SAY_TH_SKARLOC_TAUNT -1560026
#define SAY_TH_START_EVENT_PART2 -1560027
#define SAY_TH_MOUNTS_UP -1560028
#define SAY_TH_CHURCH_END -1560029
#define SAY_TH_MEET_TARETHA -1560030
#define SAY_TH_EPOCH_WONDER -1560031
#define SAY_TH_EPOCH_KILL_TARETHA -1560032
#define SAY_TH_EVENT_COMPLETE -1560033
enum ThrallOldHillsbrad
{
SAY_TH_START_EVENT_PART1 = 0,
SAY_TH_ARMORY = 1,
SAY_TH_SKARLOC_MEET = 2,
SAY_TH_SKARLOC_TAUNT = 3,
SAY_TH_START_EVENT_PART2 = 4,
SAY_TH_MOUNTS_UP = 5,
SAY_TH_CHURCH_END = 6,
SAY_TH_MEET_TARETHA = 7,
SAY_TH_EPOCH_WONDER = 8,
SAY_TH_EPOCH_KILL_TARETHA = 9,
SAY_TH_EVENT_COMPLETE = 10,
#define SAY_TH_RANDOM_LOW_HP1 -1560034
#define SAY_TH_RANDOM_LOW_HP2 -1560035
SAY_TH_RANDOM_LOW_HP = 11,
SAY_TH_RANDOM_DIE = 12,
SAY_TH_RANDOM_AGGRO = 13,
SAY_TH_RANDOM_KILL = 14,
SAY_TH_LEAVE_COMBAT = 15,
#define SAY_TH_RANDOM_DIE1 -1560036
#define SAY_TH_RANDOM_DIE2 -1560037
//Taretha texts
SAY_TA_FREE = 0,
SAY_TA_ESCAPED = 1,
#define SAY_TH_RANDOM_AGGRO1 -1560038
#define SAY_TH_RANDOM_AGGRO2 -1560039
#define SAY_TH_RANDOM_AGGRO3 -1560040
#define SAY_TH_RANDOM_AGGRO4 -1560041
//Misc for Thrall
SPELL_STRIKE = 14516,
SPELL_SHIELD_BLOCK = 12169,
SPELL_SUMMON_EROZION_IMAGE = 33954, //if thrall dies during escort?
#define SAY_TH_RANDOM_KILL1 -1560042
#define SAY_TH_RANDOM_KILL2 -1560043
#define SAY_TH_RANDOM_KILL3 -1560044
THRALL_WEAPON_ITEM = 927,
THRALL_WEAPON_INFO = 218169346,
THRALL_SHIELD_ITEM = 2129,
THRALL_SHIELD_INFO = 234948100,
THRALL_MODEL_UNEQUIPPED = 17292,
THRALL_MODEL_EQUIPPED = 18165,
#define SAY_TH_LEAVE_COMBAT1 -1560045
#define SAY_TH_LEAVE_COMBAT2 -1560046
#define SAY_TH_LEAVE_COMBAT3 -1560047
//Misc Creature entries
ENTRY_ARMORER = 18764,
ENTRY_SCARLOC = 17862,
//Taretha texts
#define SAY_TA_FREE -1560048
#define SAY_TA_ESCAPED -1560049
MOB_ENTRY_RIFLE = 17820,
MOB_ENTRY_WARDEN = 17833,
MOB_ENTRY_VETERAN = 17860,
MOB_ENTRY_WATCHMAN = 17814,
MOB_ENTRY_SENTRY = 17815,
//Misc for Thrall
#define SPELL_STRIKE 14516
#define SPELL_SHIELD_BLOCK 12169
#define SPELL_SUMMON_EROZION_IMAGE 33954 //if thrall dies during escort?
MOB_ENTRY_BARN_GUARDSMAN = 18092,
MOB_ENTRY_BARN_PROTECTOR = 18093,
MOB_ENTRY_BARN_LOOKOUT = 18094,
MOB_ENTRY_CHURCH_GUARDSMAN = 23175,
MOB_ENTRY_CHURCH_PROTECTOR = 23179,
MOB_ENTRY_CHURCH_LOOKOUT = 23177,
MOB_ENTRY_INN_GUARDSMAN = 23176,
MOB_ENTRY_INN_PROTECTOR = 23180,
MOB_ENTRY_INN_LOOKOUT = 23178,
SKARLOC_MOUNT = 18798,
SKARLOC_MOUNT_MODEL = 18223,
EROZION_ENTRY = 18723,
ENTRY_EPOCH = 18096,
GOSSIP_ID_START = 9568,
GOSSIP_ID_SKARLOC1 = 9614, //I'm glad Taretha is alive. We now must find a way to free her...
GOSSIP_ID_SKARLOC2 = 9579, //What do you mean by this? Is Taretha in danger?
GOSSIP_ID_SKARLOC3 = 9580,
GOSSIP_ID_TARREN = 9597, //tarren mill is beyond these trees
GOSSIP_ID_COMPLETE = 9578 //Thank you friends, I owe my freedom to you. Where is Taretha? I hoped to see her
};
#define SPEED_WALK (0.5f)
#define SPEED_RUN (1.0f)
#define SPEED_MOUNT (1.6f)
#define THRALL_WEAPON_ITEM 927
#define THRALL_WEAPON_INFO 218169346
#define THRALL_SHIELD_ITEM 2129
#define THRALL_SHIELD_INFO 234948100
#define THRALL_MODEL_UNEQUIPPED 17292
#define THRALL_MODEL_EQUIPPED 18165
//Misc Creature entries
#define ENTRY_ARMORER 18764
#define ENTRY_SCARLOC 17862
#define MOB_ENTRY_RIFLE 17820
#define MOB_ENTRY_WARDEN 17833
#define MOB_ENTRY_VETERAN 17860
#define MOB_ENTRY_WATCHMAN 17814
#define MOB_ENTRY_SENTRY 17815
#define MOB_ENTRY_BARN_GUARDSMAN 18092
#define MOB_ENTRY_BARN_PROTECTOR 18093
#define MOB_ENTRY_BARN_LOOKOUT 18094
#define MOB_ENTRY_CHURCH_GUARDSMAN 23175
#define MOB_ENTRY_CHURCH_PROTECTOR 23179
#define MOB_ENTRY_CHURCH_LOOKOUT 23177
#define MOB_ENTRY_INN_GUARDSMAN 23176
#define MOB_ENTRY_INN_PROTECTOR 23180
#define MOB_ENTRY_INN_LOOKOUT 23178
#define SKARLOC_MOUNT 18798
#define SKARLOC_MOUNT_MODEL 18223
#define EROZION_ENTRY 18723
#define ENTRY_EPOCH 18096
//gossip items
#define GOSSIP_ID_START 9568
#define GOSSIP_ID_SKARLOC1 9614 //I'm glad Taretha is alive. We now must find a way to free her...
#define GOSSIP_ITEM_SKARLOC1 "Taretha cannot see you, Thrall."
#define GOSSIP_ID_SKARLOC2 9579 //What do you mean by this? Is Taretha in danger?
#define GOSSIP_ITEM_SKARLOC2 "The situation is rather complicated, Thrall. It would be best for you to head into the mountains now, before more of Blackmoore's men show up. We'll make sure Taretha is safe."
#define GOSSIP_ID_SKARLOC3 9580
#define GOSSIP_ID_TARREN 9597 //tarren mill is beyond these trees
#define GOSSIP_ITEM_TARREN "We're ready, Thrall."
#define GOSSIP_ID_COMPLETE 9578 //Thank you friends, I owe my freedom to you. Where is Taretha? I hoped to see her
#define GOSSIP_ITEM_WALKING "[PH] Start walking."
class npc_thrall_old_hillsbrad : public CreatureScript
@@ -215,7 +205,7 @@ public:
instance->SetData(TYPE_THRALL_PART1, IN_PROGRESS);
}
DoScriptText(SAY_TH_START_EVENT_PART1, creature);
creature->AI()->Talk(SAY_TH_START_EVENT_PART1);
if (npc_escortAI* pEscortAI = CAST_AI(npc_thrall_old_hillsbrad::npc_thrall_old_hillsbradAI, creature->AI()))
pEscortAI->Start(true, true, player->GetGUID());
@@ -236,7 +226,7 @@ public:
if (instance)
instance->SetData(TYPE_THRALL_PART2, IN_PROGRESS);
DoScriptText(SAY_TH_START_EVENT_PART2, creature);
creature->AI()->Talk(SAY_TH_START_EVENT_PART2);
CAST_AI(npc_thrall_old_hillsbrad::npc_thrall_old_hillsbradAI, creature->AI())->StartWP();
break;
@@ -311,7 +301,7 @@ public:
me->SummonCreature(18764, 2181.87f, 112.46f, 89.45f, 0.26f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
break;
case 9:
DoScriptText(SAY_TH_ARMORY, me);
Talk(SAY_TH_ARMORY);
me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID, THRALL_WEAPON_ITEM);
//me->SetUInt32Value(UNIT_VIRTUAL_ITEM_INFO, THRALL_WEAPON_INFO);
//me->SetUInt32Value(UNIT_VIRTUAL_ITEM_INFO+1, 781);
@@ -344,7 +334,7 @@ public:
me->SummonCreature(MOB_ENTRY_VETERAN, 2104.18f, 194.82f, 65.18f, 5.75f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
break;
case 29:
DoScriptText(SAY_TH_SKARLOC_MEET, me);
Talk(SAY_TH_SKARLOC_MEET);
me->SummonCreature(ENTRY_SCARLOC, 2036.48f, 271.22f, 63.43f, 5.27f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000);
//temporary, skarloc should rather be triggered to walk up to thrall
break;
@@ -354,7 +344,7 @@ public:
SetRun(false);
break;
case 31:
DoScriptText(SAY_TH_MOUNTS_UP, me);
Talk(SAY_TH_MOUNTS_UP);
DoMount();
SetRun();
break;
@@ -400,7 +390,7 @@ public:
me->SummonCreature(MOB_ENTRY_CHURCH_GUARDSMAN, 2627.22f, 649.00f, 56.03f, 4.34f, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 5000);
break;
case 84:
DoScriptText(SAY_TH_CHURCH_END, me);
Talk(SAY_TH_CHURCH_END);
SetRun();
break;
case 91:
@@ -416,20 +406,20 @@ public:
case 94:
if (uint64 TarethaGUID = instance->GetData64(DATA_TARETHA))
{
if (Unit* Taretha = Unit::GetUnit(*me, TarethaGUID))
DoScriptText(SAY_TA_ESCAPED, Taretha, me);
if (Creature* Taretha = Creature::GetCreature(*me, TarethaGUID))
Taretha->AI()->Talk(SAY_TA_ESCAPED, me->GetGUID());
}
break;
case 95:
DoScriptText(SAY_TH_MEET_TARETHA, me);
Talk(SAY_TH_MEET_TARETHA);
instance->SetData(TYPE_THRALL_PART3, DONE);
SetEscortPaused(true);
break;
case 96:
DoScriptText(SAY_TH_EPOCH_WONDER, me);
Talk(SAY_TH_EPOCH_WONDER);
break;
case 97:
DoScriptText(SAY_TH_EPOCH_KILL_TARETHA, me);
Talk(SAY_TH_EPOCH_KILL_TARETHA);
SetRun();
break;
case 98:
@@ -485,7 +475,7 @@ public:
}
if (HasEscortState(STATE_ESCORT_ESCORTING))
{
DoScriptText(RAND(SAY_TH_LEAVE_COMBAT1, SAY_TH_LEAVE_COMBAT2, SAY_TH_LEAVE_COMBAT3), me);
Talk(SAY_TH_LEAVE_COMBAT);
}
}
void StartWP()
@@ -505,7 +495,7 @@ public:
}
void EnterCombat(Unit* /*who*/)
{
DoScriptText(RAND(SAY_TH_RANDOM_AGGRO1, SAY_TH_RANDOM_AGGRO2, SAY_TH_RANDOM_AGGRO3, SAY_TH_RANDOM_AGGRO4), me);
Talk(SAY_TH_RANDOM_AGGRO);
if (me->IsMounted())
{
DoUnmount();
@@ -532,7 +522,7 @@ public:
void KilledUnit(Unit* /*victim*/)
{
DoScriptText(RAND(SAY_TH_RANDOM_KILL1, SAY_TH_RANDOM_KILL2, SAY_TH_RANDOM_KILL3), me);
Talk(SAY_TH_RANDOM_KILL);
}
void JustDied(Unit* slayer)
{
@@ -543,7 +533,7 @@ public:
if (slayer == me)
return;
DoScriptText(RAND(SAY_TH_RANDOM_DIE1, SAY_TH_RANDOM_DIE2), me);
Talk(SAY_TH_RANDOM_DIE);
}
void UpdateAI(const uint32 diff)
@@ -556,7 +546,7 @@ public:
//TODO: add his abilities'n-crap here
if (!LowHp && HealthBelowPct(20))
{
DoScriptText(RAND(SAY_TH_RANDOM_LOW_HP1, SAY_TH_RANDOM_LOW_HP2), me);
Talk(SAY_TH_RANDOM_LOW_HP);
LowHp = true;
}
}
@@ -567,10 +557,13 @@ public:
/*######
## npc_taretha
######*/
enum Taretha
{
GOSSIP_ID_EPOCH1 = 9610, //Thank you for helping Thrall escape, friends. Now I only hope
GOSSIP_ID_EPOCH2 = 9613 //Yes, friends. This man was no wizard of
};
#define GOSSIP_ID_EPOCH1 9610 //Thank you for helping Thrall escape, friends. Now I only hope
#define GOSSIP_ITEM_EPOCH1 "Strange wizard?"
#define GOSSIP_ID_EPOCH2 9613 //Yes, friends. This man was no wizard of
#define GOSSIP_ITEM_EPOCH2 "We'll get you out. Taretha. Don't worry. I doubt the wizard would wander too far away."
class npc_taretha : public CreatureScript
@@ -638,7 +631,7 @@ public:
switch (waypointId)
{
case 6:
DoScriptText(SAY_TA_FREE, me);
Talk(SAY_TA_FREE);
break;
case 7:
me->HandleEmoteCommand(EMOTE_ONESHOT_CHEER);
@@ -26,16 +26,19 @@ EndScriptData */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#define SAY_AGGRO -1129000
#define SAY_SUMMON60 -1129001
#define SAY_SUMMON30 -1129002
#define SAY_HP -1129003
#define SAY_KILL -1129004
enum AmnennarTheColdbringer
{
SAY_AGGRO = 0,
SAY_SUMMON60 = 1,
SAY_SUMMON30 = 2,
SAY_HP = 3,
SAY_KILL = 4,
#define SPELL_AMNENNARSWRATH 13009
#define SPELL_FROSTBOLT 15530
#define SPELL_FROST_NOVA 15531
#define SPELL_FROST_SPECTRES 12642
SPELL_AMNENNARSWRATH = 13009,
SPELL_FROSTBOLT = 15530,
SPELL_FROST_NOVA = 15531,
SPELL_FROST_SPECTRES = 12642
};
class boss_amnennar_the_coldbringer : public CreatureScript
{
@@ -70,12 +73,12 @@ public:
void EnterCombat(Unit* /*who*/)
{
DoScriptText(SAY_AGGRO, me);
Talk(SAY_AGGRO);
}
void KilledUnit(Unit* /*victim*/)
{
DoScriptText(SAY_KILL, me);
Talk(SAY_KILL);
}
void UpdateAI(const uint32 diff)
@@ -105,20 +108,20 @@ public:
if (!Spectrals60 && HealthBelowPct(60))
{
DoScriptText(SAY_SUMMON60, me);
Talk(SAY_SUMMON60);
DoCast(me->getVictim(), SPELL_FROST_SPECTRES);
Spectrals60 = true;
}
if (!Hp && HealthBelowPct(50))
{
DoScriptText(SAY_HP, me);
Talk(SAY_HP);
Hp = true;
}
if (!Spectrals30 && HealthBelowPct(30))
{
DoScriptText(SAY_SUMMON30, me);
Talk(SAY_SUMMON30);
DoCast(me->getVictim(), SPELL_FROST_SPECTRES);
Spectrals30 = true;
}
+20 -20
View File
@@ -97,7 +97,7 @@ class npc_torek : public CreatureScript
me->SummonCreature(ENTRY_SILVERWING_WARRIOR, 1778.73f, -2049.50f, 109.83f, 1.67f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000);
break;
case 20:
DoScriptText(SAY_WIN, me, player);
Talk(SAY_WIN, player->GetGUID());
Completed = true;
player->GroupEventHappens(QUEST_TOREK_ASSULT, me);
break;
@@ -269,16 +269,16 @@ class npc_ruul_snowhoof : public CreatureScript
enum Muglash
{
SAY_MUG_START1 = -1800054,
SAY_MUG_START2 = -1800055,
SAY_MUG_BRAZIER = -1800056,
SAY_MUG_BRAZIER_WAIT = -1800057,
SAY_MUG_ON_GUARD = -1800058,
SAY_MUG_REST = -1800059,
SAY_MUG_DONE = -1800060,
SAY_MUG_GRATITUDE = -1800061,
SAY_MUG_PATROL = -1800062,
SAY_MUG_RETURN = -1800063,
SAY_MUG_START1 = 0,
SAY_MUG_START2 = 1,
SAY_MUG_BRAZIER = 2,
SAY_MUG_BRAZIER_WAIT = 3,
SAY_MUG_ON_GUARD = 4,
SAY_MUG_REST = 5,
SAY_MUG_DONE = 6,
SAY_MUG_GRATITUDE = 7,
SAY_MUG_PATROL = 8,
SAY_MUG_RETURN = 9,
QUEST_VORSHA = 6641,
@@ -337,10 +337,10 @@ class npc_muglash : public CreatureScript
switch (waypointId)
{
case 0:
DoScriptText(SAY_MUG_START2, me, player);
Talk(SAY_MUG_START2, player->GetGUID());
break;
case 24:
DoScriptText(SAY_MUG_BRAZIER, me, player);
Talk(SAY_MUG_BRAZIER, player->GetGUID());
if (GameObject* go = GetClosestGameObjectWithEntry(me, GO_NAGA_BRAZIER, INTERACTION_DISTANCE*2))
{
@@ -349,14 +349,14 @@ class npc_muglash : public CreatureScript
}
break;
case 25:
DoScriptText(SAY_MUG_GRATITUDE, me);
Talk(SAY_MUG_GRATITUDE);
player->GroupEventHappens(QUEST_VORSHA, me);
break;
case 26:
DoScriptText(SAY_MUG_PATROL, me);
Talk(SAY_MUG_PATROL);
break;
case 27:
DoScriptText(SAY_MUG_RETURN, me);
Talk(SAY_MUG_RETURN);
break;
}
}
@@ -368,7 +368,7 @@ class npc_muglash : public CreatureScript
if (HasEscortState(STATE_ESCORT_PAUSED))
{
if (urand(0, 1))
DoScriptText(SAY_MUG_ON_GUARD, me, player);
Talk(SAY_MUG_ON_GUARD, player->GetGUID());
return;
}
}
@@ -406,7 +406,7 @@ class npc_muglash : public CreatureScript
break;
case 4:
SetEscortPaused(false);
DoScriptText(SAY_MUG_DONE, me);
Talk(SAY_MUG_DONE);
break;
}
}
@@ -445,7 +445,7 @@ class npc_muglash : public CreatureScript
{
if (npc_muglashAI* pEscortAI = CAST_AI(npc_muglashAI, creature->AI()))
{
DoScriptText(SAY_MUG_START1, creature);
creature->AI()->Talk(SAY_MUG_START1);
creature->setFaction(113);
pEscortAI->Start(true, false, player->GetGUID());
@@ -466,7 +466,7 @@ class go_naga_brazier : public GameObjectScript
{
if (npc_muglash::npc_muglashAI* pEscortAI = CAST_AI(npc_muglash::npc_muglashAI, creature->AI()))
{
DoScriptText(SAY_MUG_BRAZIER_WAIT, creature);
creature->AI()->Talk(SAY_MUG_BRAZIER_WAIT);
pEscortAI->IsBrazierExtinguished = true;
return false;
+8 -10
View File
@@ -195,12 +195,10 @@ enum RizzleSprysprocketData
SPELL_PERIODIC_DEPTH_CHARGE = 39912,
SPELL_GIVE_SOUTHFURY_MOONSTONE = 39886,
SAY_RIZZLE_START = -1000351,
MSG_ESCAPE_NOTICE = -1000352,
SAY_RIZZLE_GRENADE = -1000353,
SAY_RIZZLE_GRENADE_BACKFIRE = -1000354, // Not used
SAY_RIZZLE_FINAL = -1000355,
SAY_RIZZLE_FINAL2 = -1000356, // Not used
SAY_RIZZLE_START = 0,
SAY_RIZZLE_GRENADE = 1,
SAY_RIZZLE_FINAL = 2,
MSG_ESCAPE_NOTICE = 3
};
#define GOSSIP_GET_MOONSTONE "Hand over the Southfury moonstone and I'll let you go."
@@ -366,7 +364,7 @@ public:
if (!player)
return;
SendText(MSG_ESCAPE_NOTICE, player);
Talk(MSG_ESCAPE_NOTICE, player->GetGUID());
DoCast(me, SPELL_PERIODIC_DEPTH_CHARGE);
me->SetUnitMovementFlags(MOVEMENTFLAG_HOVER | MOVEMENTFLAG_SWIMMING);
me->SetSpeed(MOVE_RUN, 0.85f, true);
@@ -389,7 +387,7 @@ public:
Player* player = Unit::GetPlayer(*me, PlayerGUID);
if (player)
{
DoScriptText(SAY_RIZZLE_GRENADE, me, player);
Talk(SAY_RIZZLE_GRENADE, player->GetGUID());
DoCast(player, SPELL_RIZZLE_FROST_GRENADE, true);
}
GrenadeTimer = 30000;
@@ -406,7 +404,7 @@ public:
if (me->IsWithinDist(player, 10) && me->GetPositionX() > player->GetPositionX() && !Reached)
{
DoScriptText(SAY_RIZZLE_FINAL, me);
Talk(SAY_RIZZLE_FINAL);
me->SetUInt32Value(UNIT_NPC_FLAGS, 1);
me->setFaction(35);
me->GetMotionMaster()->MoveIdle();
@@ -434,7 +432,7 @@ public:
if (who->GetTypeId() == TYPEID_PLAYER && CAST_PLR(who)->GetQuestStatus(QUEST_CHASING_THE_MOONSTONE) == QUEST_STATUS_INCOMPLETE)
{
PlayerGUID = who->GetGUID();
DoScriptText(SAY_RIZZLE_START, me);
Talk(SAY_RIZZLE_START);
DoCast(who, SPELL_RIZZLE_BLACKJACK, false);
return;
}
+3 -4
View File
@@ -40,9 +40,7 @@ EndContentData */
enum DyingKodo
{
// signed for 9999
SAY_SMEED_HOME_1 = -1000348,
SAY_SMEED_HOME_2 = -1000349,
SAY_SMEED_HOME_3 = -1000350,
SAY_SMEED_HOME = 0,
QUEST_KODO = 5561,
@@ -134,7 +132,8 @@ public:
if (me->IsWithinDistInMap(who, 10.0f))
{
DoScriptText(RAND(SAY_SMEED_HOME_1, SAY_SMEED_HOME_2, SAY_SMEED_HOME_3), who);
if (Creature* talker = who->ToCreature())
talker->AI()->Talk(SAY_SMEED_HOME);
//spell have no implemented effect (dummy), so useful to notify spellHit
DoCast(me, SPELL_KODO_KOMBO_GOSSIP, true);
+1 -1
View File
@@ -77,7 +77,7 @@ public:
&& CAST_PLR(caster)->GetQuestStatus(QUEST_LAZY_PEONS) == QUEST_STATUS_INCOMPLETE)
{
caster->ToPlayer()->KilledMonsterCredit(me->GetEntry(), me->GetGUID());
DoScriptText(SAY_SPELL_HIT, me, caster);
Talk(SAY_SPELL_HIT, caster->GetGUID());
me->RemoveAllAuras();
if (GameObject* Lumberpile = me->FindNearestGameObject(GO_LUMBERPILE, 20))
me->GetMotionMaster()->MovePoint(1, Lumberpile->GetPositionX()-1, Lumberpile->GetPositionY(), Lumberpile->GetPositionZ());
+7 -22
View File
@@ -275,14 +275,8 @@ enum ClintarSpirit
{
ASPECT_RAVEN = 22915,
//from -1000292 to -1000287 are signed for 7806. but all this texts ids wrong.
CLINTAR_SPIRIT_SAY_START = -1000286,
CLINTAR_SPIRIT_SAY_UNDER_ATTACK_1 = -1000287,
CLINTAR_SPIRIT_SAY_UNDER_ATTACK_2 = -1000288,
CLINTAR_SPIRIT_SAY_GET_ONE = -1000289,
CLINTAR_SPIRIT_SAY_GET_TWO = -1000290,
CLINTAR_SPIRIT_SAY_GET_THREE = -1000291,
CLINTAR_SPIRIT_SAY_GET_FINAL = -1000292
// Texts for EnterCombat, the event and the end of the event are missing
CLINTAR_SPIRIT_SAY_START = 0,
};
class npc_clintar_spirit : public CreatureScript
@@ -350,15 +344,6 @@ public:
npc_escortAI::EnterEvadeMode();
}
void EnterCombat(Unit* who)
{
switch (urand(0, 1))
{
case 0: DoScriptText(CLINTAR_SPIRIT_SAY_UNDER_ATTACK_1, me, who); break;
case 1: DoScriptText(CLINTAR_SPIRIT_SAY_UNDER_ATTACK_2, me, who); break;
}
}
void StartEvent(Player* player)
{
if (player && player->GetQuestStatus(10965) == QUEST_STATUS_INCOMPLETE)
@@ -410,7 +395,7 @@ public:
switch (Step)
{
case 0:
me->Say(CLINTAR_SPIRIT_SAY_START, 0, PlayerGUID);
Talk(CLINTAR_SPIRIT_SAY_START, PlayerGUID);
EventTimer = 8000;
Step = 1;
break;
@@ -429,7 +414,7 @@ public:
break;
case 1:
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, 0);
DoScriptText(CLINTAR_SPIRIT_SAY_GET_ONE, me, player);
// Needs text
EventOnWait = false;
break;
}
@@ -452,7 +437,7 @@ public:
switch (Step)
{
case 0:
DoScriptText(CLINTAR_SPIRIT_SAY_GET_TWO, me, player);
// Needs text
EventTimer = 15000;
Step = 1;
break;
@@ -496,7 +481,7 @@ public:
switch (Step)
{
case 0:
DoScriptText(CLINTAR_SPIRIT_SAY_GET_THREE, me, player);
// Needs text
EventTimer = 4000;
Step = 1;
break;
@@ -510,7 +495,7 @@ public:
{
case 0:
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, 2);
DoScriptText(CLINTAR_SPIRIT_SAY_GET_FINAL, me, player);
// Needs text
player->CompleteQuest(10965);
EventTimer = 1500;
Step = 1;
+79 -79
View File
@@ -230,56 +230,56 @@ public:
####*/
enum EternalBoard
{
QUEST_A_PAWN_ON_THE_ETERNAL_BOARD = 8519,
QUEST_A_PAWN_ON_THE_ETERNAL_BOARD = 8519,
FACTION_HOSTILE = 14,
FACTION_FRIENDLY = 35,
FACTION_HOSTILE = 14,
FACTION_FRIENDLY = 35,
C_ANACHRONOS = 15381,
C_FANDRAL_STAGHELM = 15382,
C_ARYGOS = 15380,
C_MERITHRA = 15378,
C_CAELESTRASZ = 15379,
C_ANACHRONOS = 15381,
C_FANDRAL_STAGHELM = 15382,
C_ARYGOS = 15380,
C_MERITHRA = 15378,
C_CAELESTRASZ = 15379,
ANACHRONOS_SAY_1 = -1350000,
ANACHRONOS_SAY_2 = -1350001,
ANACHRONOS_SAY_3 = -1350002,
ANACHRONOS_SAY_4 = -1350003,
ANACHRONOS_SAY_5 = -1350004,
ANACHRONOS_SAY_6 = -1350005,
ANACHRONOS_SAY_7 = -1350006,
ANACHRONOS_SAY_8 = -1350007,
ANACHRONOS_SAY_9 = -1350008,
ANACHRONOS_SAY_10 = -1350009,
ANACHRONOS_EMOTE_1 = -1350010,
ANACHRONOS_EMOTE_2 = -1350011,
ANACHRONOS_EMOTE_3 = -1350012,
ANACHRONOS_SAY_1 = 0,
ANACHRONOS_SAY_2 = 1,
ANACHRONOS_SAY_3 = 2,
ANACHRONOS_SAY_4 = 3,
ANACHRONOS_SAY_5 = 4,
ANACHRONOS_SAY_6 = 5,
ANACHRONOS_SAY_7 = 6,
ANACHRONOS_SAY_8 = 7,
ANACHRONOS_SAY_9 = 8,
ANACHRONOS_SAY_10 = 9,
ANACHRONOS_EMOTE_1 = 10,
ANACHRONOS_EMOTE_2 = 11,
ANACHRONOS_EMOTE_3 = 12,
FANDRAL_SAY_1 = -1350013,
FANDRAL_SAY_2 = -1350014,
FANDRAL_SAY_3 = -1350015,
FANDRAL_SAY_4 = -1350016,
FANDRAL_SAY_5 = -1350017,
FANDRAL_SAY_6 = -1350018,
FANDRAL_EMOTE_1 = -1350019,
FANDRAL_EMOTE_2 = -1350020,
FANDRAL_SAY_1 = 0,
FANDRAL_SAY_2 = 1,
FANDRAL_SAY_3 = 2,
FANDRAL_SAY_4 = 3,
FANDRAL_SAY_5 = 4,
FANDRAL_SAY_6 = 5,
FANDRAL_EMOTE_1 = 6,
FANDRAL_EMOTE_2 = 7,
CAELESTRASZ_SAY_1 = -1350021,
CAELESTRASZ_SAY_2 = -1350022,
CAELESTRASZ_YELL_1 = -1350023,
CAELESTRASZ_SAY_1 = 0,
CAELESTRASZ_SAY_2 = 1,
CAELESTRASZ_YELL_1 = 2,
ARYGOS_SAY_1 = -1350024,
ARYGOS_YELL_1 = -1350025,
ARYGOS_EMOTE_1 = -1350026,
ARYGOS_SAY_1 = 0,
ARYGOS_YELL_1 = 1,
ARYGOS_EMOTE_1 = 2,
MERITHRA_SAY_1 = -1350027,
MERITHRA_SAY_2 = -1350028,
MERITHRA_YELL_1 = -1350029,
MERITHRA_EMOTE_1 = -1350030,
MERITHRA_SAY_1 = 0,
MERITHRA_SAY_2 = 1,
MERITHRA_YELL_1 = 2,
MERITHRA_EMOTE_1 = 3,
GO_GATE_OF_AHN_QIRAJ = 176146,
GO_GLYPH_OF_AHN_QIRAJ = 176148,
GO_ROOTS_OF_AHN_QIRAJ = 176147
GO_GATE_OF_AHN_QIRAJ = 176146,
GO_GLYPH_OF_AHN_QIRAJ = 176148,
GO_ROOTS_OF_AHN_QIRAJ = 176147
};
/*#####
# Quest: A Pawn on the Eternal Board
@@ -530,10 +530,10 @@ public:
if (!player)
return;
Unit* Fandral = player->FindNearestCreature(C_FANDRAL_STAGHELM, 100.0f, me);
Unit* Arygos = player->FindNearestCreature(C_ARYGOS, 100.0f, me);
Unit* Caelestrasz = player->FindNearestCreature(C_CAELESTRASZ, 100.0f, me);
Unit* Merithra = player->FindNearestCreature(C_MERITHRA, 100.0f, me);
Creature* Fandral = player->FindNearestCreature(C_FANDRAL_STAGHELM, 100.0f, me);
Creature* Arygos = player->FindNearestCreature(C_ARYGOS, 100.0f, me);
Creature* Caelestrasz = player->FindNearestCreature(C_CAELESTRASZ, 100.0f, me);
Creature* Merithra = player->FindNearestCreature(C_MERITHRA, 100.0f, me);
if (!Fandral || !Arygos || !Caelestrasz || !Merithra)
return;
@@ -544,35 +544,35 @@ public:
switch (AnimationCount)
{
case 0:
DoScriptText(ANACHRONOS_SAY_1, me, Fandral);
Talk(ANACHRONOS_SAY_1,Fandral->GetGUID());
break;
case 1:
Fandral->SetTarget(me->GetGUID());
DoScriptText(FANDRAL_SAY_1, Fandral, me);
Fandral->AI()->Talk(FANDRAL_SAY_1, me->GetGUID());
break;
case 2:
Fandral->SetTarget(0);
DoScriptText(MERITHRA_EMOTE_1, Merithra);
Merithra->AI()->Talk(MERITHRA_EMOTE_1);
break;
case 3:
DoScriptText(MERITHRA_SAY_1, Merithra);
Merithra->AI()->Talk(MERITHRA_SAY_1);
break;
case 4:
DoScriptText(ARYGOS_EMOTE_1, Arygos);
Arygos->AI()->Talk(ARYGOS_EMOTE_1);
break;
case 5:
Caelestrasz->SetTarget(Fandral->GetGUID());
DoScriptText(CAELESTRASZ_SAY_1, Caelestrasz);
Caelestrasz->AI()->Talk(CAELESTRASZ_SAY_1);
break;
case 6:
DoScriptText(MERITHRA_SAY_2, Merithra);
Merithra->AI()->Talk(MERITHRA_SAY_2);
break;
case 7:
Caelestrasz->SetTarget(0);
Merithra->GetMotionMaster()->MoveCharge(-8065, 1530, 2.61f, 10);
break;
case 8:
DoScriptText(MERITHRA_YELL_1, Merithra);
Merithra->AI()->Talk(MERITHRA_YELL_1);
break;
case 9:
Merithra->CastSpell(Merithra, 25105, true);
@@ -591,7 +591,7 @@ public:
case 13:
break;
case 14:
DoScriptText(ARYGOS_SAY_1, Arygos);
Arygos->AI()->Talk(ARYGOS_SAY_1);
Merithra->SetVisible(false);
break;
case 15:
@@ -599,7 +599,7 @@ public:
Merithra->GetMotionMaster()->MoveCharge(-8034.535f, 1535.14f, 2.61f, 42);
break;
case 16:
DoScriptText(ARYGOS_YELL_1, Arygos);
Arygos->AI()->Talk(ARYGOS_YELL_1);
break;
case 17:
Arygos->CastSpell(Arygos, 25107, true);
@@ -618,7 +618,7 @@ public:
case 21:
break;
case 22:
DoScriptText(CAELESTRASZ_SAY_2, Caelestrasz, Fandral);
Caelestrasz->AI()->Talk(CAELESTRASZ_SAY_2, Fandral->GetGUID());
break;
case 23:
Caelestrasz->GetMotionMaster()->MoveCharge(-8065, 1530, 2.61f, 10);
@@ -626,7 +626,7 @@ public:
Arygos->GetMotionMaster()->MoveCharge(-8034.535f, 1535.14f, 2.61f, 10);
break;
case 24:
DoScriptText(CAELESTRASZ_YELL_1, Caelestrasz);
Caelestrasz->AI()->Talk(CAELESTRASZ_YELL_1);
break;
case 25:
Caelestrasz->CastSpell(Caelestrasz, 25106, true);
@@ -640,16 +640,16 @@ public:
Caelestrasz->CastSpell(Caelestrasz, 54293, false);
break;
case 28:
DoScriptText(ANACHRONOS_SAY_2, me, Fandral);
Talk(ANACHRONOS_SAY_2, Fandral->GetGUID());
break;
case 29:
Caelestrasz->GetMotionMaster()->MoveCharge(-8095, 1530, 50, 42);
DoScriptText(FANDRAL_SAY_2, Fandral, me);
Fandral->AI()->Talk(FANDRAL_SAY_2);
break;
case 30:
break;
case 31:
DoScriptText(ANACHRONOS_SAY_3, me, Fandral);
Talk(ANACHRONOS_SAY_3, Fandral->GetGUID());
break;
case 32:
Caelestrasz->SetVisible(false);
@@ -658,7 +658,7 @@ public:
me->GetMotionMaster()->MoveCharge(-8113, 1525, 2.77f, 8);
break;//both run to the gate
case 33:
DoScriptText(ANACHRONOS_SAY_4, me);
Talk(ANACHRONOS_SAY_4);
Caelestrasz->GetMotionMaster()->MoveCharge(-8050, 1473, 65, 15);
break; //Text: sands will stop
case 34:
@@ -678,43 +678,43 @@ public:
me->SummonGameObject(GO_GLYPH_OF_AHN_QIRAJ, -8130, 1525, 17.5f, 0, 0, 0, 0, 0, 0);
break;
case 39:
DoScriptText(ANACHRONOS_SAY_5, me, Fandral);
Talk(ANACHRONOS_SAY_5, Fandral->GetGUID());
break;
case 40:
Fandral->CastSpell(me, 25167, true);
break;
case 41:
Fandral->SummonGameObject(GO_ROOTS_OF_AHN_QIRAJ, -8130, 1525, 17.5f, 0, 0, 0, 0, 0, 0);
DoScriptText(FANDRAL_SAY_3, Fandral);
Fandral->AI()->Talk(FANDRAL_SAY_3);
break;
case 42:
me->CastStop();
DoScriptText(FANDRAL_EMOTE_1, Fandral);
Fandral->AI()->Talk(FANDRAL_EMOTE_1);
break;
case 43:
Fandral->CastStop();
break;
case 44:
DoScriptText(ANACHRONOS_SAY_6, me);
Talk(ANACHRONOS_SAY_6);
break;
case 45:
DoScriptText(ANACHRONOS_SAY_7, me);
Talk(ANACHRONOS_SAY_7);
break;
case 46:
DoScriptText(ANACHRONOS_SAY_8, me);
Talk(ANACHRONOS_SAY_8);
me->GetMotionMaster()->MoveCharge(-8110, 1527, 2.77f, 4);
break;
case 47:
DoScriptText(ANACHRONOS_EMOTE_1, me);
Talk(ANACHRONOS_EMOTE_1);
break;
case 48:
DoScriptText(FANDRAL_SAY_4, Fandral, me);
Fandral->AI()->Talk(FANDRAL_SAY_4, me->GetGUID());
break;
case 49:
DoScriptText(FANDRAL_SAY_5, Fandral, me);
Fandral->AI()->Talk(FANDRAL_SAY_5, me->GetGUID());
break;
case 50:
DoScriptText(FANDRAL_EMOTE_2, Fandral);
Fandral->AI()->Talk(FANDRAL_EMOTE_2);
Fandral->CastSpell(-8127, 1525, 17.5f, 33806, true);
break;
case 51:
@@ -734,19 +734,19 @@ public:
}
case 52:
Fandral->GetMotionMaster()->MoveCharge(-8028.75f, 1538.795f, 2.61f, 4);
DoScriptText(ANACHRONOS_SAY_9, me, Fandral);
Fandral->AI()->Talk(ANACHRONOS_SAY_9, me->GetGUID());
break;
case 53:
DoScriptText(FANDRAL_SAY_6, Fandral);
Fandral->AI()->Talk(FANDRAL_SAY_6);
break;
case 54:
DoScriptText(ANACHRONOS_EMOTE_2, me);
Talk(ANACHRONOS_EMOTE_2);
break;
case 55:
Fandral->SetVisible(false);
break;
case 56:
DoScriptText(ANACHRONOS_EMOTE_3, me);
Talk(ANACHRONOS_EMOTE_3);
me->GetMotionMaster()->MoveCharge(-8116, 1522, 3.65f, 4);
break;
case 57:
@@ -760,7 +760,7 @@ public:
break;
case 60:
if (player)
DoScriptText(ANACHRONOS_SAY_10, me, player);
Talk(ANACHRONOS_SAY_10, player->GetGUID());
me->GetMotionMaster()->MoveCharge(-8113.46f, 1524.16f, 2.89f, 4);
break;
case 61:
@@ -782,7 +782,7 @@ public:
me->SetVisible(false);
if (Creature* AnachronosQuestTrigger = (Unit::GetCreature(*me, AnachronosQuestTriggerGUID)))
{
DoScriptText(ARYGOS_YELL_1, me);
Talk(ARYGOS_YELL_1);
AnachronosQuestTrigger->AI()->EnterEvadeMode();
eventEnd=true;
}
@@ -1054,7 +1054,7 @@ public:
{
if (!Announced && AnnounceTimer <= diff)
{
DoScriptText(WavesInfo[WaveCount].WaveTextId, me);
Talk(WavesInfo[WaveCount].WaveTextId);
Announced = true;
} else AnnounceTimer -= diff;
+4 -4
View File
@@ -38,8 +38,8 @@ EndContentData */
enum Mist
{
SAY_AT_HOME = -1000323,
EMOTE_AT_HOME = -1000324,
SAY_AT_HOME = 0,
EMOTE_AT_HOME = 1,
QUEST_MIST = 938,
NPC_ARYNIA = 3519,
FACTION_DARNASSUS = 79
@@ -78,7 +78,7 @@ public:
{
if (me->IsWithinDistInMap(who, 10.0f))
{
DoScriptText(SAY_AT_HOME, who);
Talk(SAY_AT_HOME, who->GetGUID());
DoComplete();
}
}
@@ -86,7 +86,7 @@ public:
void DoComplete()
{
DoScriptText(EMOTE_AT_HOME, me);
Talk(EMOTE_AT_HOME);
Player* player = GetLeaderForFollower();
if (player && player->GetQuestStatus(QUEST_MIST) == QUEST_STATUS_INCOMPLETE)
+41 -44
View File
@@ -83,17 +83,14 @@ public:
enum Gilthares
{
SAY_GIL_START = -1000370,
SAY_GIL_AT_LAST = -1000371,
SAY_GIL_PROCEED = -1000372,
SAY_GIL_FREEBOOTERS = -1000373,
SAY_GIL_AGGRO_1 = -1000374,
SAY_GIL_AGGRO_2 = -1000375,
SAY_GIL_AGGRO_3 = -1000376,
SAY_GIL_AGGRO_4 = -1000377,
SAY_GIL_ALMOST = -1000378,
SAY_GIL_SWEET = -1000379,
SAY_GIL_FREED = -1000380,
SAY_GIL_START = 0,
SAY_GIL_AT_LAST = 1,
SAY_GIL_PROCEED = 2,
SAY_GIL_FREEBOOTERS = 3,
SAY_GIL_AGGRO = 4,
SAY_GIL_ALMOST = 5,
SAY_GIL_SWEET = 6,
SAY_GIL_FREED = 7,
QUEST_FREE_FROM_HOLD = 898,
AREA_MERCHANT_COAST = 391,
@@ -112,7 +109,7 @@ public:
creature->setFaction(FACTION_ESCORTEE);
creature->SetStandState(UNIT_STAND_STATE_STAND);
DoScriptText(SAY_GIL_START, creature, player);
creature->AI()->Talk(SAY_GIL_START, player->GetGUID());
if (npc_giltharesAI* pEscortAI = CAST_AI(npc_gilthares::npc_giltharesAI, creature->AI()))
pEscortAI->Start(false, false, player->GetGUID(), quest);
@@ -140,22 +137,22 @@ public:
switch (waypointId)
{
case 16:
DoScriptText(SAY_GIL_AT_LAST, me, player);
Talk(SAY_GIL_AT_LAST, player->GetGUID());
break;
case 17:
DoScriptText(SAY_GIL_PROCEED, me, player);
Talk(SAY_GIL_PROCEED, player->GetGUID());
break;
case 18:
DoScriptText(SAY_GIL_FREEBOOTERS, me, player);
Talk(SAY_GIL_FREEBOOTERS, player->GetGUID());
break;
case 37:
DoScriptText(SAY_GIL_ALMOST, me, player);
Talk(SAY_GIL_ALMOST,player->GetGUID());
break;
case 47:
DoScriptText(SAY_GIL_SWEET, me, player);
Talk(SAY_GIL_SWEET, player->GetGUID());
break;
case 53:
DoScriptText(SAY_GIL_FREED, me, player);
Talk(SAY_GIL_FREED, player->GetGUID());
player->GroupEventHappens(QUEST_FREE_FROM_HOLD, me);
break;
}
@@ -171,7 +168,7 @@ public:
if (who->GetTypeId() != TYPEID_PLAYER && me->GetAreaId() == AREA_MERCHANT_COAST)
{
//appears to be pretty much random (possible only if escorter not in combat with who yet?)
DoScriptText(RAND(SAY_GIL_AGGRO_1, SAY_GIL_AGGRO_2, SAY_GIL_AGGRO_3, SAY_GIL_AGGRO_4), me, who);
Talk(SAY_GIL_AGGRO, who->GetGUID());
}
}
};
@@ -324,11 +321,11 @@ enum TwiggyFlathead
NPC_BIG_WILL = 6238,
NPC_AFFRAY_CHALLENGER = 6240,
SAY_BIG_WILL_READY = -1000123,
SAY_TWIGGY_FLATHEAD_BEGIN = -1000124,
SAY_TWIGGY_FLATHEAD_FRAY = -1000125,
SAY_TWIGGY_FLATHEAD_DOWN = -1000126,
SAY_TWIGGY_FLATHEAD_OVER = -1000127,
SAY_BIG_WILL_READY = 0,
SAY_TWIGGY_FLATHEAD_BEGIN = 0,
SAY_TWIGGY_FLATHEAD_FRAY = 1,
SAY_TWIGGY_FLATHEAD_DOWN = 2,
SAY_TWIGGY_FLATHEAD_OVER = 3
};
Position const AffrayChallengerLoc[6] =
@@ -412,7 +409,7 @@ public:
return;
if (!pWarrior->isAlive() && pWarrior->GetQuestStatus(1719) == QUEST_STATUS_INCOMPLETE) {
DoScriptText(SAY_TWIGGY_FLATHEAD_DOWN, me);
Talk(SAY_TWIGGY_FLATHEAD_DOWN);
pWarrior->FailQuest(1719);
for (uint8 i = 0; i < 6; ++i) // unsummon challengers
@@ -441,7 +438,7 @@ public:
if (x >= -1684 && x <= -1674 && y >= -4334 && y <= -4324) {
pWarrior->AreaExploredOrEventHappens(1719);
DoScriptText(SAY_TWIGGY_FLATHEAD_BEGIN, me, pWarrior);
Talk(SAY_TWIGGY_FLATHEAD_BEGIN, pWarrior->GetGUID());
for (uint8 i = 0; i < 6; ++i)
{
@@ -470,7 +467,7 @@ public:
Creature* creature = Unit::GetCreature((*me), AffrayChallenger[i]);
if ((!creature || (!creature->isAlive())) && !ChallengerDown[i])
{
DoScriptText(SAY_TWIGGY_FLATHEAD_DOWN, me);
Talk(SAY_TWIGGY_FLATHEAD_DOWN);
ChallengerDown[i] = true;
}
}
@@ -482,7 +479,7 @@ public:
{
if (Wave < 6 && AffrayChallenger[Wave] && !EventBigWill)
{
DoScriptText(SAY_TWIGGY_FLATHEAD_FRAY, me);
Talk(SAY_TWIGGY_FLATHEAD_FRAY);
Creature* creature = Unit::GetCreature((*me), AffrayChallenger[Wave]);
if (creature && (creature->isAlive()))
{
@@ -512,7 +509,7 @@ public:
Creature* creature = Unit::GetCreature((*me), BigWill);
if (!creature || !creature->isAlive())
{
DoScriptText(SAY_TWIGGY_FLATHEAD_OVER, me);
Talk(SAY_TWIGGY_FLATHEAD_OVER);
Reset();
}
}
@@ -530,14 +527,14 @@ public:
enum Wizzlecrank
{
SAY_START = -1000298,
SAY_STARTUP1 = -1000299,
SAY_STARTUP2 = -1000300,
SAY_MERCENARY = -1000301,
SAY_PROGRESS_1 = -1000302,
SAY_PROGRESS_2 = -1000303,
SAY_PROGRESS_3 = -1000304,
SAY_END = -1000305,
SAY_MERCENARY = 0,
SAY_START = 0,
SAY_STARTUP1 = 1,
SAY_STARTUP2 = 2,
SAY_PROGRESS_1 = 3,
SAY_PROGRESS_2 = 4,
SAY_PROGRESS_3 = 5,
SAY_END = 6,
QUEST_ESCAPE = 863,
FACTION_RATCHET = 637,
@@ -581,7 +578,7 @@ public:
switch (waypointId)
{
case 0:
DoScriptText(SAY_STARTUP1, me);
Talk(SAY_STARTUP1);
break;
case 9:
SetRun(false);
@@ -589,7 +586,7 @@ public:
case 17:
if (Creature* temp = me->SummonCreature(NPC_MERCENARY, 1128.489f, -3037.611f, 92.701f, 1.472f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 120000))
{
DoScriptText(SAY_MERCENARY, temp);
temp->AI()->Talk(SAY_MERCENARY);
me->SummonCreature(NPC_MERCENARY, 1160.172f, -2980.168f, 97.313f, 3.690f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 120000);
}
break;
@@ -609,10 +606,10 @@ public:
switch (PointId)
{
case 9:
DoScriptText(SAY_STARTUP2, me, player);
Talk(SAY_STARTUP2, player->GetGUID());
break;
case 18:
DoScriptText(SAY_PROGRESS_1, me, player);
Talk(SAY_PROGRESS_1, player->GetGUID());
SetRun();
break;
}
@@ -638,13 +635,13 @@ public:
switch (PostEventCount)
{
case 0:
DoScriptText(SAY_PROGRESS_2, me);
Talk(SAY_PROGRESS_2);
break;
case 1:
DoScriptText(SAY_PROGRESS_3, me);
Talk(SAY_PROGRESS_3);
break;
case 2:
DoScriptText(SAY_END, me);
Talk(SAY_END);
break;
case 3:
if (Player* player = GetPlayerForEscort())