mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-24 19:06:49 +01:00
Scripts/EasternKingdom: Cleanup AV,BRD,BRS
* Fixed codestyle "*c" -> "*creature" * Removed SD2 Hieroglyphics * Removed some hungarian notations * Adjusted Some Alignments (cosmetic) * Added spaces for "*"->" * " where needed (cosmetic) * Fixed couple variableNames DevNote: im sure VN's can be picked at and more found, but this was just a clean-up nothing more. ToDo: Alterac Valley - Core/db: needs spawns in side the final bosses dens fixed and agro ranges corrected.. not blizzlike. BRD - Tomb of seven - Learning Smelt Dark Iron if tribute quest rewarded. Missing event. blackrock_depths.cpp - Need to rewrite the Jail Break support Need to remove: npc_dughal_stormwing/npc_marshal_windsor/npc_marshal_reginald_windsor/npc_tobias_seecher if they are handled elsewhere, or get tehm fixed to uncomment them ;)
This commit is contained in:
@@ -52,33 +52,31 @@ class mob_av_marshal_or_warmaster : public CreatureScript
|
||||
public:
|
||||
|
||||
mob_av_marshal_or_warmaster()
|
||||
: CreatureScript("mob_av_marshal_or_warmaster")
|
||||
{
|
||||
}
|
||||
: CreatureScript("mob_av_marshal_or_warmaster") {}
|
||||
|
||||
struct mob_av_marshal_or_warmasterAI : public ScriptedAI
|
||||
{
|
||||
mob_av_marshal_or_warmasterAI(Creature* c) : ScriptedAI(c) {}
|
||||
mob_av_marshal_or_warmasterAI(Creature* creature) : ScriptedAI(creature) {}
|
||||
|
||||
uint32 uiChargeTimer;
|
||||
uint32 uiCleaveTimer;
|
||||
uint32 uiDemoralizingShoutTimer;
|
||||
uint32 uiWhirlwind1Timer;
|
||||
uint32 uiWhirlwind2Timer;
|
||||
uint32 uiEnrageTimer;
|
||||
uint32 uiResetTimer;
|
||||
uint32 ChargeTimer;
|
||||
uint32 CleaveTimer;
|
||||
uint32 DemoralizingShoutTimer;
|
||||
uint32 Whirlwind1Timer;
|
||||
uint32 Whirlwind2Timer;
|
||||
uint32 EnrageTimer;
|
||||
uint32 ResetTimer;
|
||||
|
||||
bool bHasAura;
|
||||
|
||||
void Reset()
|
||||
{
|
||||
uiChargeTimer = urand(2*IN_MILLISECONDS, 12*IN_MILLISECONDS);
|
||||
uiCleaveTimer = urand(1*IN_MILLISECONDS, 11*IN_MILLISECONDS);
|
||||
uiDemoralizingShoutTimer = urand(2*IN_MILLISECONDS, 2*IN_MILLISECONDS);
|
||||
uiWhirlwind1Timer = urand(1*IN_MILLISECONDS, 12*IN_MILLISECONDS);
|
||||
uiWhirlwind2Timer = urand(5*IN_MILLISECONDS, 20*IN_MILLISECONDS);
|
||||
uiEnrageTimer = urand(5*IN_MILLISECONDS, 20*IN_MILLISECONDS);
|
||||
uiResetTimer = 5*IN_MILLISECONDS;
|
||||
ChargeTimer = urand(2 * IN_MILLISECONDS, 12 * IN_MILLISECONDS);
|
||||
CleaveTimer = urand(1 * IN_MILLISECONDS, 11 * IN_MILLISECONDS);
|
||||
DemoralizingShoutTimer = urand(2 * IN_MILLISECONDS, 2 * IN_MILLISECONDS);
|
||||
Whirlwind1Timer = urand(1 * IN_MILLISECONDS, 12 * IN_MILLISECONDS);
|
||||
Whirlwind2Timer = urand(5 * IN_MILLISECONDS, 20 * IN_MILLISECONDS);
|
||||
EnrageTimer = urand(5 * IN_MILLISECONDS, 20 * IN_MILLISECONDS);
|
||||
ResetTimer = 5 * IN_MILLISECONDS;
|
||||
|
||||
bHasAura = false;
|
||||
}
|
||||
@@ -126,49 +124,49 @@ class mob_av_marshal_or_warmaster : public CreatureScript
|
||||
if (!UpdateVictim())
|
||||
return;
|
||||
|
||||
if (uiChargeTimer <= diff)
|
||||
if (ChargeTimer <= diff)
|
||||
{
|
||||
DoCast(me->getVictim(), SPELL_CHARGE);
|
||||
uiChargeTimer = urand(10*IN_MILLISECONDS, 25*IN_MILLISECONDS);
|
||||
} else uiChargeTimer -= diff;
|
||||
ChargeTimer = urand(10 * IN_MILLISECONDS, 25 * IN_MILLISECONDS);
|
||||
} else ChargeTimer -= diff;
|
||||
|
||||
if (uiCleaveTimer <= diff)
|
||||
if (CleaveTimer <= diff)
|
||||
{
|
||||
DoCast(me->getVictim(), SPELL_CLEAVE);
|
||||
uiCleaveTimer = urand(10*IN_MILLISECONDS, 16*IN_MILLISECONDS);
|
||||
} else uiCleaveTimer -= diff;
|
||||
CleaveTimer = urand(10 * IN_MILLISECONDS, 16 * IN_MILLISECONDS);
|
||||
} else CleaveTimer -= diff;
|
||||
|
||||
if (uiDemoralizingShoutTimer <= diff)
|
||||
if (DemoralizingShoutTimer <= diff)
|
||||
{
|
||||
DoCast(me->getVictim(), SPELL_DEMORALIZING_SHOUT);
|
||||
uiDemoralizingShoutTimer = urand(10*IN_MILLISECONDS, 15*IN_MILLISECONDS);
|
||||
} else uiDemoralizingShoutTimer -= diff;
|
||||
DemoralizingShoutTimer = urand(10 * IN_MILLISECONDS, 15 * IN_MILLISECONDS);
|
||||
} else DemoralizingShoutTimer -= diff;
|
||||
|
||||
if (uiWhirlwind1Timer <= diff)
|
||||
if (Whirlwind1Timer <= diff)
|
||||
{
|
||||
DoCast(me->getVictim(), SPELL_WHIRLWIND1);
|
||||
uiWhirlwind1Timer = urand(6*IN_MILLISECONDS, 20*IN_MILLISECONDS);
|
||||
} else uiWhirlwind1Timer -= diff;
|
||||
Whirlwind1Timer = urand(6 * IN_MILLISECONDS, 20 * IN_MILLISECONDS);
|
||||
} else Whirlwind1Timer -= diff;
|
||||
|
||||
if (uiWhirlwind2Timer <= diff)
|
||||
if (Whirlwind2Timer <= diff)
|
||||
{
|
||||
DoCast(me->getVictim(), SPELL_WHIRLWIND2);
|
||||
uiWhirlwind2Timer = urand(10*IN_MILLISECONDS, 25*IN_MILLISECONDS);
|
||||
} else uiWhirlwind2Timer -= diff;
|
||||
Whirlwind2Timer = urand(10 * IN_MILLISECONDS, 25 * IN_MILLISECONDS);
|
||||
} else Whirlwind2Timer -= diff;
|
||||
|
||||
if (uiEnrageTimer <= diff)
|
||||
if (EnrageTimer <= diff)
|
||||
{
|
||||
DoCast(me->getVictim(), SPELL_ENRAGE);
|
||||
uiEnrageTimer = urand(10*IN_MILLISECONDS, 30*IN_MILLISECONDS);
|
||||
}else uiEnrageTimer -= diff;
|
||||
EnrageTimer = urand(10 * IN_MILLISECONDS, 30 * IN_MILLISECONDS);
|
||||
}else EnrageTimer -= diff;
|
||||
|
||||
// check if creature is not outside of building
|
||||
if (uiResetTimer <= diff)
|
||||
if (ResetTimer <= diff)
|
||||
{
|
||||
if (me->GetDistance2d(me->GetHomePosition().GetPositionX(), me->GetHomePosition().GetPositionY()) > 50)
|
||||
EnterEvadeMode();
|
||||
uiResetTimer = 5*IN_MILLISECONDS;
|
||||
} else uiResetTimer -= diff;
|
||||
ResetTimer = 5 * IN_MILLISECONDS;
|
||||
} else ResetTimer -= diff;
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
|
||||
@@ -48,7 +48,7 @@ public:
|
||||
|
||||
struct mob_water_elementalAI : public ScriptedAI
|
||||
{
|
||||
mob_water_elementalAI(Creature* c) : ScriptedAI(c) {}
|
||||
mob_water_elementalAI(Creature* creature) : ScriptedAI(creature) {}
|
||||
|
||||
uint32 waterBoltTimer;
|
||||
uint64 balindaGUID;
|
||||
@@ -56,8 +56,8 @@ public:
|
||||
|
||||
void Reset()
|
||||
{
|
||||
waterBoltTimer = 3*IN_MILLISECONDS;
|
||||
resetTimer = 5*IN_MILLISECONDS;
|
||||
waterBoltTimer = 3 * IN_MILLISECONDS;
|
||||
resetTimer = 5 * IN_MILLISECONDS;
|
||||
}
|
||||
|
||||
void UpdateAI(const uint32 diff)
|
||||
@@ -68,7 +68,7 @@ public:
|
||||
if (waterBoltTimer < diff)
|
||||
{
|
||||
DoCast(me->getVictim(), SPELL_WATERBOLT);
|
||||
waterBoltTimer = 5*IN_MILLISECONDS;
|
||||
waterBoltTimer = 5 * IN_MILLISECONDS;
|
||||
} else waterBoltTimer -= diff;
|
||||
|
||||
// check if creature is not outside of building
|
||||
@@ -77,7 +77,7 @@ public:
|
||||
if (Creature* pBalinda = Unit::GetCreature(*me, balindaGUID))
|
||||
if (me->GetDistance2d(pBalinda->GetHomePosition().GetPositionX(), pBalinda->GetHomePosition().GetPositionY()) > 50)
|
||||
EnterEvadeMode();
|
||||
resetTimer = 5*IN_MILLISECONDS;
|
||||
resetTimer = 5 * IN_MILLISECONDS;
|
||||
} else resetTimer -= diff;
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
@@ -97,7 +97,7 @@ public:
|
||||
|
||||
struct boss_balindaAI : public ScriptedAI
|
||||
{
|
||||
boss_balindaAI(Creature* c) : ScriptedAI(c), summons(me) {}
|
||||
boss_balindaAI(Creature* creature) : ScriptedAI(creature), summons(me) {}
|
||||
|
||||
uint32 arcaneExplosionTimer;
|
||||
uint32 coneOfColdTimer;
|
||||
@@ -110,11 +110,11 @@ public:
|
||||
|
||||
void Reset()
|
||||
{
|
||||
arcaneExplosionTimer = urand(5*IN_MILLISECONDS, 15*IN_MILLISECONDS);
|
||||
coneOfColdTimer = 8*IN_MILLISECONDS;
|
||||
fireBoltTimer = 1*IN_MILLISECONDS;
|
||||
frostboltTimer = 4*IN_MILLISECONDS;
|
||||
resetTimer = 5*IN_MILLISECONDS;
|
||||
arcaneExplosionTimer = urand(5 * IN_MILLISECONDS, 15 * IN_MILLISECONDS);
|
||||
coneOfColdTimer = 8 * IN_MILLISECONDS;
|
||||
fireBoltTimer = 1 * IN_MILLISECONDS;
|
||||
frostboltTimer = 4 * IN_MILLISECONDS;
|
||||
resetTimer = 5 * IN_MILLISECONDS;
|
||||
waterElementalTimer = 0;
|
||||
|
||||
summons.DespawnAll();
|
||||
@@ -151,32 +151,32 @@ public:
|
||||
if (waterElementalTimer < diff)
|
||||
{
|
||||
if (summons.empty())
|
||||
me->SummonCreature(NPC_WATER_ELEMENTAL, 0, 0, 0, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 45*IN_MILLISECONDS);
|
||||
waterElementalTimer = 50*IN_MILLISECONDS;
|
||||
me->SummonCreature(NPC_WATER_ELEMENTAL, 0, 0, 0, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 45 * IN_MILLISECONDS);
|
||||
waterElementalTimer = 50 * IN_MILLISECONDS;
|
||||
} else waterElementalTimer -= diff;
|
||||
|
||||
if (arcaneExplosionTimer < diff)
|
||||
{
|
||||
DoCast(me->getVictim(), SPELL_ARCANE_EXPLOSION);
|
||||
arcaneExplosionTimer = urand(5*IN_MILLISECONDS, 15*IN_MILLISECONDS);
|
||||
arcaneExplosionTimer = urand(5 * IN_MILLISECONDS, 15 * IN_MILLISECONDS);
|
||||
} else arcaneExplosionTimer -= diff;
|
||||
|
||||
if (coneOfColdTimer < diff)
|
||||
{
|
||||
DoCast(me->getVictim(), SPELL_CONE_OF_COLD);
|
||||
coneOfColdTimer = urand(10*IN_MILLISECONDS, 20*IN_MILLISECONDS);
|
||||
coneOfColdTimer = urand(10 * IN_MILLISECONDS, 20 * IN_MILLISECONDS);
|
||||
} else coneOfColdTimer -= diff;
|
||||
|
||||
if (fireBoltTimer < diff)
|
||||
{
|
||||
DoCast(me->getVictim(), SPELL_FIREBALL);
|
||||
fireBoltTimer = urand(5*IN_MILLISECONDS, 9*IN_MILLISECONDS);
|
||||
fireBoltTimer = urand(5 * IN_MILLISECONDS, 9 * IN_MILLISECONDS);
|
||||
} else fireBoltTimer -= diff;
|
||||
|
||||
if (frostboltTimer < diff)
|
||||
{
|
||||
DoCast(me->getVictim(), SPELL_FROSTBOLT);
|
||||
frostboltTimer = urand(4*IN_MILLISECONDS, 12*IN_MILLISECONDS);
|
||||
frostboltTimer = urand(4 * IN_MILLISECONDS, 12 * IN_MILLISECONDS);
|
||||
} else frostboltTimer -= diff;
|
||||
|
||||
// check if creature is not outside of building
|
||||
@@ -187,7 +187,7 @@ public:
|
||||
EnterEvadeMode();
|
||||
DoScriptText(YELL_EVADE, me);
|
||||
}
|
||||
resetTimer = 5*IN_MILLISECONDS;
|
||||
resetTimer = 5 * IN_MILLISECONDS;
|
||||
} else resetTimer -= diff;
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
|
||||
@@ -48,23 +48,23 @@ public:
|
||||
|
||||
struct boss_drektharAI : public ScriptedAI
|
||||
{
|
||||
boss_drektharAI(Creature* c) : ScriptedAI(c) {}
|
||||
boss_drektharAI(Creature* creature) : ScriptedAI(creature) {}
|
||||
|
||||
uint32 uiWhirlwindTimer;
|
||||
uint32 uiWhirlwind2Timer;
|
||||
uint32 uiKnockdownTimer;
|
||||
uint32 uiFrenzyTimer;
|
||||
uint32 uiYellTimer;
|
||||
uint32 uiResetTimer;
|
||||
uint32 WhirlwindTimer;
|
||||
uint32 Whirlwind2Timer;
|
||||
uint32 KnockdownTimer;
|
||||
uint32 FrenzyTimer;
|
||||
uint32 YellTimer;
|
||||
uint32 ResetTimer;
|
||||
|
||||
void Reset()
|
||||
{
|
||||
uiWhirlwindTimer = urand(1*IN_MILLISECONDS, 20*IN_MILLISECONDS);
|
||||
uiWhirlwind2Timer = urand(1*IN_MILLISECONDS, 20*IN_MILLISECONDS);
|
||||
uiKnockdownTimer = 12*IN_MILLISECONDS;
|
||||
uiFrenzyTimer = 6*IN_MILLISECONDS;
|
||||
uiResetTimer = 5*IN_MILLISECONDS;
|
||||
uiYellTimer = urand(20*IN_MILLISECONDS, 30*IN_MILLISECONDS); //20 to 30 seconds
|
||||
WhirlwindTimer = urand(1 * IN_MILLISECONDS, 20 * IN_MILLISECONDS);
|
||||
Whirlwind2Timer = urand(1 * IN_MILLISECONDS, 20 * IN_MILLISECONDS);
|
||||
KnockdownTimer = 12 * IN_MILLISECONDS;
|
||||
FrenzyTimer = 6 * IN_MILLISECONDS;
|
||||
ResetTimer = 5 * IN_MILLISECONDS;
|
||||
YellTimer = urand(20 * IN_MILLISECONDS, 30 * IN_MILLISECONDS); //20 to 30 seconds
|
||||
}
|
||||
|
||||
void EnterCombat(Unit* /*who*/)
|
||||
@@ -83,46 +83,46 @@ public:
|
||||
if (!UpdateVictim())
|
||||
return;
|
||||
|
||||
if (uiWhirlwindTimer <= diff)
|
||||
if (WhirlwindTimer <= diff)
|
||||
{
|
||||
DoCast(me->getVictim(), SPELL_WHIRLWIND);
|
||||
uiWhirlwindTimer = urand(8*IN_MILLISECONDS, 18*IN_MILLISECONDS);
|
||||
} else uiWhirlwindTimer -= diff;
|
||||
WhirlwindTimer = urand(8 * IN_MILLISECONDS, 18 * IN_MILLISECONDS);
|
||||
} else WhirlwindTimer -= diff;
|
||||
|
||||
if (uiWhirlwind2Timer <= diff)
|
||||
if (Whirlwind2Timer <= diff)
|
||||
{
|
||||
DoCast(me->getVictim(), SPELL_WHIRLWIND2);
|
||||
uiWhirlwind2Timer = urand(7*IN_MILLISECONDS, 25*IN_MILLISECONDS);
|
||||
} else uiWhirlwind2Timer -= diff;
|
||||
Whirlwind2Timer = urand(7 * IN_MILLISECONDS, 25 * IN_MILLISECONDS);
|
||||
} else Whirlwind2Timer -= diff;
|
||||
|
||||
if (uiKnockdownTimer <= diff)
|
||||
if (KnockdownTimer <= diff)
|
||||
{
|
||||
DoCast(me->getVictim(), SPELL_KNOCKDOWN);
|
||||
uiKnockdownTimer = urand(10*IN_MILLISECONDS, 15*IN_MILLISECONDS);
|
||||
} else uiKnockdownTimer -= diff;
|
||||
KnockdownTimer = urand(10 * IN_MILLISECONDS, 15 * IN_MILLISECONDS);
|
||||
} else KnockdownTimer -= diff;
|
||||
|
||||
if (uiFrenzyTimer <= diff)
|
||||
if (FrenzyTimer <= diff)
|
||||
{
|
||||
DoCast(me->getVictim(), SPELL_FRENZY);
|
||||
uiFrenzyTimer = urand(20*IN_MILLISECONDS, 30*IN_MILLISECONDS);
|
||||
} else uiFrenzyTimer -= diff;
|
||||
FrenzyTimer = urand(20 * IN_MILLISECONDS, 30 * IN_MILLISECONDS);
|
||||
} else FrenzyTimer -= diff;
|
||||
|
||||
if (uiYellTimer <= diff)
|
||||
if (YellTimer <= diff)
|
||||
{
|
||||
DoScriptText(RAND(YELL_RANDOM1, YELL_RANDOM2, YELL_RANDOM3, YELL_RANDOM4, YELL_RANDOM5), me);
|
||||
uiYellTimer = urand(20*IN_MILLISECONDS, 30*IN_MILLISECONDS); //20 to 30 seconds
|
||||
} else uiYellTimer -= diff;
|
||||
YellTimer = urand(20 * IN_MILLISECONDS, 30 * IN_MILLISECONDS); //20 to 30 seconds
|
||||
} else YellTimer -= diff;
|
||||
|
||||
// check if creature is not outside of building
|
||||
if (uiResetTimer <= diff)
|
||||
if (ResetTimer <= diff)
|
||||
{
|
||||
if (me->GetDistance2d(me->GetHomePosition().GetPositionX(), me->GetHomePosition().GetPositionY()) > 50)
|
||||
{
|
||||
EnterEvadeMode();
|
||||
DoScriptText(YELL_EVADE, me);
|
||||
}
|
||||
uiResetTimer = 5*IN_MILLISECONDS;
|
||||
} else uiResetTimer -= diff;
|
||||
ResetTimer = 5 * IN_MILLISECONDS;
|
||||
} else ResetTimer -= diff;
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
|
||||
@@ -39,23 +39,23 @@ public:
|
||||
|
||||
struct boss_galvangarAI : public ScriptedAI
|
||||
{
|
||||
boss_galvangarAI(Creature* c) : ScriptedAI(c) {}
|
||||
boss_galvangarAI(Creature* creature) : ScriptedAI(creature) {}
|
||||
|
||||
uint32 uiCleaveTimer;
|
||||
uint32 uiFrighteningShoutTimer;
|
||||
uint32 uiWhirlwind1Timer;
|
||||
uint32 uiWhirlwind2Timer;
|
||||
uint32 uiMortalStrikeTimer;
|
||||
uint32 uiResetTimer;
|
||||
uint32 CleaveTimer;
|
||||
uint32 FrighteningShoutTimer;
|
||||
uint32 Whirlwind1Timer;
|
||||
uint32 Whirlwind2Timer;
|
||||
uint32 MortalStrikeTimer;
|
||||
uint32 ResetTimer;
|
||||
|
||||
void Reset()
|
||||
{
|
||||
uiCleaveTimer = urand(1*IN_MILLISECONDS, 9*IN_MILLISECONDS);
|
||||
uiFrighteningShoutTimer = urand(2*IN_MILLISECONDS, 19*IN_MILLISECONDS);
|
||||
uiWhirlwind1Timer = urand(1*IN_MILLISECONDS, 13*IN_MILLISECONDS);
|
||||
uiWhirlwind2Timer = urand(5*IN_MILLISECONDS, 20*IN_MILLISECONDS);
|
||||
uiMortalStrikeTimer = urand(5*IN_MILLISECONDS, 20*IN_MILLISECONDS);
|
||||
uiResetTimer = 5*IN_MILLISECONDS;
|
||||
CleaveTimer = urand(1 * IN_MILLISECONDS, 9 * IN_MILLISECONDS);
|
||||
FrighteningShoutTimer = urand(2 * IN_MILLISECONDS, 19 * IN_MILLISECONDS);
|
||||
Whirlwind1Timer = urand(1 * IN_MILLISECONDS, 13 * IN_MILLISECONDS);
|
||||
Whirlwind2Timer = urand(5 * IN_MILLISECONDS, 20 * IN_MILLISECONDS);
|
||||
MortalStrikeTimer = urand(5 * IN_MILLISECONDS, 20 * IN_MILLISECONDS);
|
||||
ResetTimer = 5 * IN_MILLISECONDS;
|
||||
}
|
||||
|
||||
void EnterCombat(Unit* /*who*/)
|
||||
@@ -73,46 +73,46 @@ public:
|
||||
if (!UpdateVictim())
|
||||
return;
|
||||
|
||||
if (uiCleaveTimer <= diff)
|
||||
if (CleaveTimer <= diff)
|
||||
{
|
||||
DoCast(me->getVictim(), SPELL_CLEAVE);
|
||||
uiCleaveTimer = urand(10*IN_MILLISECONDS, 16*IN_MILLISECONDS);
|
||||
} else uiCleaveTimer -= diff;
|
||||
CleaveTimer = urand(10 * IN_MILLISECONDS, 16 * IN_MILLISECONDS);
|
||||
} else CleaveTimer -= diff;
|
||||
|
||||
if (uiFrighteningShoutTimer <= diff)
|
||||
if (FrighteningShoutTimer <= diff)
|
||||
{
|
||||
DoCast(me->getVictim(), SPELL_FRIGHTENING_SHOUT);
|
||||
uiFrighteningShoutTimer = urand(10*IN_MILLISECONDS, 15*IN_MILLISECONDS);
|
||||
} else uiFrighteningShoutTimer -= diff;
|
||||
FrighteningShoutTimer = urand(10 * IN_MILLISECONDS, 15 * IN_MILLISECONDS);
|
||||
} else FrighteningShoutTimer -= diff;
|
||||
|
||||
if (uiWhirlwind1Timer <= diff)
|
||||
if (Whirlwind1Timer <= diff)
|
||||
{
|
||||
DoCast(me->getVictim(), SPELL_WHIRLWIND1);
|
||||
uiWhirlwind1Timer = urand(6*IN_MILLISECONDS, 10*IN_MILLISECONDS);
|
||||
} else uiWhirlwind1Timer -= diff;
|
||||
Whirlwind1Timer = urand(6 * IN_MILLISECONDS, 10 * IN_MILLISECONDS);
|
||||
} else Whirlwind1Timer -= diff;
|
||||
|
||||
if (uiWhirlwind2Timer <= diff)
|
||||
if (Whirlwind2Timer <= diff)
|
||||
{
|
||||
DoCast(me->getVictim(), SPELL_WHIRLWIND2);
|
||||
uiWhirlwind2Timer = urand(10*IN_MILLISECONDS, 25*IN_MILLISECONDS);
|
||||
} else uiWhirlwind2Timer -= diff;
|
||||
Whirlwind2Timer = urand(10 * IN_MILLISECONDS, 25 * IN_MILLISECONDS);
|
||||
} else Whirlwind2Timer -= diff;
|
||||
|
||||
if (uiMortalStrikeTimer <= diff)
|
||||
if (MortalStrikeTimer <= diff)
|
||||
{
|
||||
DoCast(me->getVictim(), SPELL_MORTAL_STRIKE);
|
||||
uiMortalStrikeTimer = urand(10*IN_MILLISECONDS, 30*IN_MILLISECONDS);
|
||||
} else uiMortalStrikeTimer -= diff;
|
||||
MortalStrikeTimer = urand(10 * IN_MILLISECONDS, 30 * IN_MILLISECONDS);
|
||||
} else MortalStrikeTimer -= diff;
|
||||
|
||||
// check if creature is not outside of building
|
||||
if (uiResetTimer <= diff)
|
||||
if (ResetTimer <= diff)
|
||||
{
|
||||
if (me->GetDistance2d(me->GetHomePosition().GetPositionX(), me->GetHomePosition().GetPositionY()) > 50)
|
||||
{
|
||||
EnterEvadeMode();
|
||||
DoScriptText(YELL_EVADE, me);
|
||||
}
|
||||
uiResetTimer = 5*IN_MILLISECONDS;
|
||||
} else uiResetTimer -= diff;
|
||||
ResetTimer = 5 * IN_MILLISECONDS;
|
||||
} else ResetTimer -= diff;
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
|
||||
@@ -46,21 +46,21 @@ public:
|
||||
|
||||
struct boss_vanndarAI : public ScriptedAI
|
||||
{
|
||||
boss_vanndarAI(Creature* c) : ScriptedAI(c) {}
|
||||
boss_vanndarAI(Creature* creature) : ScriptedAI(creature) {}
|
||||
|
||||
uint32 uiAvatarTimer;
|
||||
uint32 uiThunderclapTimer;
|
||||
uint32 uiStormboltTimer;
|
||||
uint32 uiResetTimer;
|
||||
uint32 uiYellTimer;
|
||||
uint32 AvatarTimer;
|
||||
uint32 ThunderclapTimer;
|
||||
uint32 StormboltTimer;
|
||||
uint32 ResetTimer;
|
||||
uint32 YellTimer;
|
||||
|
||||
void Reset()
|
||||
{
|
||||
uiAvatarTimer = 3*IN_MILLISECONDS;
|
||||
uiThunderclapTimer = 4*IN_MILLISECONDS;
|
||||
uiStormboltTimer = 6*IN_MILLISECONDS;
|
||||
uiResetTimer = 5*IN_MILLISECONDS;
|
||||
uiYellTimer = urand(20*IN_MILLISECONDS, 30*IN_MILLISECONDS);
|
||||
AvatarTimer = 3 * IN_MILLISECONDS;
|
||||
ThunderclapTimer = 4 * IN_MILLISECONDS;
|
||||
StormboltTimer = 6 * IN_MILLISECONDS;
|
||||
ResetTimer = 5 * IN_MILLISECONDS;
|
||||
YellTimer = urand(20 * IN_MILLISECONDS, 30 * IN_MILLISECONDS);
|
||||
}
|
||||
|
||||
void EnterCombat(Unit* /*who*/)
|
||||
@@ -79,40 +79,40 @@ public:
|
||||
if (!UpdateVictim())
|
||||
return;
|
||||
|
||||
if (uiAvatarTimer <= diff)
|
||||
if (AvatarTimer <= diff)
|
||||
{
|
||||
DoCast(me->getVictim(), SPELL_AVATAR);
|
||||
uiAvatarTimer = urand(15*IN_MILLISECONDS, 20*IN_MILLISECONDS);
|
||||
} else uiAvatarTimer -= diff;
|
||||
AvatarTimer = urand(15 * IN_MILLISECONDS, 20 * IN_MILLISECONDS);
|
||||
} else AvatarTimer -= diff;
|
||||
|
||||
if (uiThunderclapTimer <= diff)
|
||||
if (ThunderclapTimer <= diff)
|
||||
{
|
||||
DoCast(me->getVictim(), SPELL_THUNDERCLAP);
|
||||
uiThunderclapTimer = urand(5*IN_MILLISECONDS, 15*IN_MILLISECONDS);
|
||||
} else uiThunderclapTimer -= diff;
|
||||
ThunderclapTimer = urand(5 * IN_MILLISECONDS, 15 * IN_MILLISECONDS);
|
||||
} else ThunderclapTimer -= diff;
|
||||
|
||||
if (uiStormboltTimer <= diff)
|
||||
if (StormboltTimer <= diff)
|
||||
{
|
||||
DoCast(me->getVictim(), SPELL_STORMBOLT);
|
||||
uiStormboltTimer = urand(10*IN_MILLISECONDS, 25*IN_MILLISECONDS);
|
||||
} else uiStormboltTimer -= diff;
|
||||
StormboltTimer = urand(10 * IN_MILLISECONDS, 25 * IN_MILLISECONDS);
|
||||
} else StormboltTimer -= diff;
|
||||
|
||||
if (uiYellTimer <= diff)
|
||||
if (YellTimer <= diff)
|
||||
{
|
||||
DoScriptText(RAND(YELL_RANDOM1, YELL_RANDOM2, YELL_RANDOM3, YELL_RANDOM4, YELL_RANDOM5, YELL_RANDOM6, YELL_RANDOM7), me);
|
||||
uiYellTimer = urand(20*IN_MILLISECONDS, 30*IN_MILLISECONDS); //20 to 30 seconds
|
||||
} else uiYellTimer -= diff;
|
||||
YellTimer = urand(20 * IN_MILLISECONDS, 30 * IN_MILLISECONDS); //20 to 30 seconds
|
||||
} else YellTimer -= diff;
|
||||
|
||||
// check if creature is not outside of building
|
||||
if (uiResetTimer <= diff)
|
||||
if (ResetTimer <= diff)
|
||||
{
|
||||
if (me->GetDistance2d(me->GetHomePosition().GetPositionX(), me->GetHomePosition().GetPositionY()) > 50)
|
||||
{
|
||||
EnterEvadeMode();
|
||||
DoScriptText(YELL_EVADE, me);
|
||||
}
|
||||
uiResetTimer = 5*IN_MILLISECONDS;
|
||||
} else uiResetTimer -= diff;
|
||||
ResetTimer = 5 * IN_MILLISECONDS;
|
||||
} else ResetTimer -= diff;
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
|
||||
@@ -15,35 +15,11 @@
|
||||
* with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
/* ScriptData
|
||||
SDName: Blackrock_Depths
|
||||
SD%Complete: 95
|
||||
SDComment: Quest support: 4001, 4342, 7604, 4322. Vendor Lokhtos Darkbargainer. Need to rewrite the Jail Break support
|
||||
SDCategory: Blackrock Depths
|
||||
EndScriptData */
|
||||
|
||||
/* ContentData
|
||||
go_shadowforge_brazier
|
||||
at_ring_of_law
|
||||
npc_grimstone
|
||||
mob_phalanx
|
||||
npc_kharan_mighthammer
|
||||
npc_lokhtos_darkbargainer
|
||||
npc_dughal_stormwing
|
||||
npc_marshal_windsor
|
||||
npc_marshal_reginald_windsor
|
||||
npc_tobias_seecher
|
||||
npc_rocknot
|
||||
EndContentData */
|
||||
|
||||
#include "ScriptPCH.h"
|
||||
#include "ScriptedEscortAI.h"
|
||||
#include "blackrock_depths.h"
|
||||
|
||||
/*######
|
||||
+## go_shadowforge_brazier
|
||||
+######*/
|
||||
|
||||
//go_shadowforge_brazier
|
||||
class go_shadowforge_brazier : public GameObjectScript
|
||||
{
|
||||
public:
|
||||
@@ -65,13 +41,9 @@ public:
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
/*######
|
||||
## npc_grimstone
|
||||
######*/
|
||||
|
||||
// npc_grimstone
|
||||
enum eGrimstone
|
||||
{
|
||||
NPC_GRIMSTONE = 10096,
|
||||
@@ -120,21 +92,17 @@ public:
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
/*######
|
||||
## npc_grimstone
|
||||
######*/
|
||||
|
||||
// npc_grimstone
|
||||
enum GrimstoneTexts
|
||||
{
|
||||
SCRIPT_TEXT1 = -1230003,
|
||||
SCRIPT_TEXT2 = -1230004,
|
||||
SCRIPT_TEXT3 = -1230005,
|
||||
SCRIPT_TEXT4 = -1230006,
|
||||
SCRIPT_TEXT5 = -1230007,
|
||||
SCRIPT_TEXT6 = -1230008
|
||||
SCRIPT_TEXT1 = -1230003,
|
||||
SCRIPT_TEXT2 = -1230004,
|
||||
SCRIPT_TEXT3 = -1230005,
|
||||
SCRIPT_TEXT4 = -1230006,
|
||||
SCRIPT_TEXT5 = -1230007,
|
||||
SCRIPT_TEXT6 = -1230008
|
||||
};
|
||||
|
||||
//TODO: implement quest part of event (different end boss)
|
||||
@@ -150,19 +118,19 @@ public:
|
||||
|
||||
struct npc_grimstoneAI : public npc_escortAI
|
||||
{
|
||||
npc_grimstoneAI(Creature* c) : npc_escortAI(c)
|
||||
npc_grimstoneAI(Creature* creature) : npc_escortAI(creature)
|
||||
{
|
||||
instance = c->GetInstanceScript();
|
||||
instance = creature->GetInstanceScript();
|
||||
MobSpawnId = rand()%6;
|
||||
}
|
||||
|
||||
InstanceScript* instance;
|
||||
|
||||
uint8 EventPhase;
|
||||
uint8 EventPhase;
|
||||
uint32 Event_Timer;
|
||||
|
||||
uint8 MobSpawnId;
|
||||
uint8 MobCount;
|
||||
uint8 MobSpawnId;
|
||||
uint8 MobCount;
|
||||
uint32 MobDeath_Timer;
|
||||
|
||||
uint64 RingMobGUID[4];
|
||||
@@ -174,16 +142,16 @@ public:
|
||||
{
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
|
||||
EventPhase = 0;
|
||||
Event_Timer = 1000;
|
||||
EventPhase = 0;
|
||||
Event_Timer = 1000;
|
||||
|
||||
MobCount = 0;
|
||||
MobDeath_Timer = 0;
|
||||
MobCount = 0;
|
||||
MobDeath_Timer = 0;
|
||||
|
||||
for (uint8 i = 0; i < MAX_MOB_AMOUNT; ++i)
|
||||
RingMobGUID[i] = 0;
|
||||
|
||||
RingBossGUID = 0;
|
||||
RingBossGUID = 0;
|
||||
|
||||
CanWalk = false;
|
||||
}
|
||||
@@ -215,24 +183,24 @@ public:
|
||||
{
|
||||
case 0:
|
||||
DoScriptText(SCRIPT_TEXT1, me);//2
|
||||
CanWalk = false;
|
||||
Event_Timer = 5000;
|
||||
CanWalk = false;
|
||||
Event_Timer = 5000;
|
||||
break;
|
||||
case 1:
|
||||
DoScriptText(SCRIPT_TEXT2, me);//4
|
||||
CanWalk = false;
|
||||
Event_Timer = 5000;
|
||||
CanWalk = false;
|
||||
Event_Timer = 5000;
|
||||
break;
|
||||
case 2:
|
||||
CanWalk = false;
|
||||
CanWalk = false;
|
||||
break;
|
||||
case 3:
|
||||
DoScriptText(SCRIPT_TEXT3, me);//5
|
||||
break;
|
||||
case 4:
|
||||
DoScriptText(SCRIPT_TEXT4, me);//6
|
||||
CanWalk = false;
|
||||
Event_Timer = 5000;
|
||||
CanWalk = false;
|
||||
Event_Timer = 5000;
|
||||
break;
|
||||
case 5:
|
||||
if (instance)
|
||||
@@ -259,16 +227,16 @@ public:
|
||||
{
|
||||
if (MobDeath_Timer <= diff)
|
||||
{
|
||||
MobDeath_Timer = 2500;
|
||||
MobDeath_Timer = 2500;
|
||||
|
||||
if (RingBossGUID)
|
||||
{
|
||||
Creature* boss = Unit::GetCreature(*me, RingBossGUID);
|
||||
if (boss && !boss->isAlive() && boss->isDead())
|
||||
{
|
||||
RingBossGUID = 0;
|
||||
Event_Timer = 5000;
|
||||
MobDeath_Timer = 0;
|
||||
RingBossGUID = 0;
|
||||
Event_Timer = 5000;
|
||||
MobDeath_Timer = 0;
|
||||
return;
|
||||
}
|
||||
return;
|
||||
@@ -279,7 +247,7 @@ public:
|
||||
Creature* mob = Unit::GetCreature(*me, RingMobGUID[i]);
|
||||
if (mob && !mob->isAlive() && mob->isDead())
|
||||
{
|
||||
RingMobGUID[i] = 0;
|
||||
RingMobGUID[i] = 0;
|
||||
--MobCount;
|
||||
|
||||
//seems all are gone, so set timer to continue and discontinue this
|
||||
@@ -365,18 +333,14 @@ public:
|
||||
npc_escortAI::UpdateAI(diff);
|
||||
}
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
/*######
|
||||
## mob_phalanx
|
||||
######*/
|
||||
|
||||
// mob_phalanx
|
||||
enum PhalanxSpells
|
||||
{
|
||||
SPELL_THUNDERCLAP = 8732,
|
||||
SPELL_FIREBALLVOLLEY = 22425,
|
||||
SPELL_MIGHTYBLOW = 14099
|
||||
SPELL_THUNDERCLAP = 8732,
|
||||
SPELL_FIREBALLVOLLEY = 22425,
|
||||
SPELL_MIGHTYBLOW = 14099
|
||||
};
|
||||
|
||||
class mob_phalanx : public CreatureScript
|
||||
@@ -399,9 +363,9 @@ public:
|
||||
|
||||
void Reset()
|
||||
{
|
||||
ThunderClap_Timer = 12000;
|
||||
FireballVolley_Timer =0;
|
||||
MightyBlow_Timer = 15000;
|
||||
ThunderClap_Timer = 12000;
|
||||
FireballVolley_Timer = 0;
|
||||
MightyBlow_Timer = 15000;
|
||||
}
|
||||
|
||||
void UpdateAI(const uint32 diff)
|
||||
@@ -437,22 +401,17 @@ public:
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
/*######
|
||||
## npc_kharan_mighthammer
|
||||
######*/
|
||||
|
||||
// npc_kharan_mighthammer
|
||||
enum KharamQuests
|
||||
{
|
||||
QUEST_4001 = 4001,
|
||||
QUEST_4342 = 4342
|
||||
QUEST_4001 = 4001,
|
||||
QUEST_4342 = 4342
|
||||
};
|
||||
|
||||
#define GOSSIP_ITEM_KHARAN_1 "I need to know where the princess are, Kharan!"
|
||||
#define GOSSIP_ITEM_KHARAN_2 "All is not lost, Kharan!"
|
||||
|
||||
#define GOSSIP_ITEM_KHARAN_3 "Gor'shak is my friend, you can trust me."
|
||||
#define GOSSIP_ITEM_KHARAN_4 "Not enough, you need to tell me more."
|
||||
#define GOSSIP_ITEM_KHARAN_5 "So what happened?"
|
||||
@@ -467,13 +426,13 @@ class npc_kharan_mighthammer : public CreatureScript
|
||||
public:
|
||||
npc_kharan_mighthammer() : CreatureScript("npc_kharan_mighthammer") { }
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*Sender*/, uint32 action)
|
||||
{
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
switch (uiAction)
|
||||
switch (action)
|
||||
{
|
||||
case GOSSIP_ACTION_INFO_DEF+1:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_KHARAN_3, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2);
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_KHARAN_3, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2);
|
||||
player->SEND_GOSSIP_MENU(2475, creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF+2:
|
||||
@@ -534,13 +493,9 @@ public:
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
/*######
|
||||
## npc_lokhtos_darkbargainer
|
||||
######*/
|
||||
|
||||
// npc_lokhtos_darkbargainer
|
||||
enum LokhtosItems
|
||||
{
|
||||
ITEM_THRORIUM_BROTHERHOOD_CONTRACT = 18628,
|
||||
@@ -565,15 +520,15 @@ class npc_lokhtos_darkbargainer : public CreatureScript
|
||||
public:
|
||||
npc_lokhtos_darkbargainer() : CreatureScript("npc_lokhtos_darkbargainer") { }
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*Sender*/, uint32 action)
|
||||
{
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
if (uiAction == GOSSIP_ACTION_INFO_DEF + 1)
|
||||
if (action == GOSSIP_ACTION_INFO_DEF + 1)
|
||||
{
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
player->CastSpell(player, SPELL_CREATE_THORIUM_BROTHERHOOD_CONTRACT_DND, false);
|
||||
}
|
||||
if (uiAction == GOSSIP_ACTION_TRADE)
|
||||
if (action == GOSSIP_ACTION_TRADE)
|
||||
player->GetSession()->SendListInventory(creature->GetGUID());
|
||||
|
||||
return true;
|
||||
@@ -601,18 +556,15 @@ public:
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
/*######
|
||||
## npc_dughal_stormwing
|
||||
######*/
|
||||
|
||||
// npc_dughal_stormwing
|
||||
enum DughalQuests
|
||||
{
|
||||
QUEST_JAIL_BREAK = 4322
|
||||
QUEST_JAIL_BREAK = 4322
|
||||
};
|
||||
|
||||
// DELETE THIS IF IT IS NOT NEEDED!
|
||||
#define SAY_DUGHAL_FREE "Thank you, $N! I'm free!!!"
|
||||
#define GOSSIP_DUGHAL "You're free, Dughal! Get out of here!"
|
||||
|
||||
@@ -633,10 +585,10 @@ public:
|
||||
return dughal_stormwingAI;
|
||||
}
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 uiSender, uint32 uiAction)
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 Sender, uint32 action)
|
||||
{
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
if (uiAction == GOSSIP_ACTION_INFO_DEF + 1)
|
||||
if (action == GOSSIP_ACTION_INFO_DEF + 1)
|
||||
{
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CAST_AI(npc_escort::npc_escortAI, (creature->AI()))->Start(false, true, player->GetGUID());
|
||||
@@ -707,14 +659,11 @@ public:
|
||||
npc_escortAI::UpdateAI(diff);
|
||||
}
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
*/
|
||||
/*######
|
||||
## npc_marshal_windsor
|
||||
######*/
|
||||
|
||||
// npc_marshal_windsor
|
||||
#define SAY_WINDSOR_AGGRO1 "You locked up the wrong Marshal. Prepare to be destroyed!"
|
||||
#define SAY_WINDSOR_AGGRO2 "I bet you're sorry now, aren't you !?!!"
|
||||
#define SAY_WINDSOR_AGGRO3 "You better hold me back $N or they are going to feel some prison house beatings."
|
||||
@@ -771,7 +720,6 @@ public:
|
||||
instance->SetData(DATA_QUEST_JAIL_BREAK, ENCOUNTER_STATE_IN_PROGRESS);
|
||||
creature->setFaction(11);
|
||||
}
|
||||
|
||||
}
|
||||
return false;
|
||||
}
|
||||
@@ -875,14 +823,11 @@ public:
|
||||
npc_escortAI::UpdateAI(diff);
|
||||
}
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
*/
|
||||
/*######
|
||||
## npc_marshal_reginald_windsor
|
||||
######*/
|
||||
|
||||
// npc_marshal_reginald_windsor
|
||||
#define SAY_REGINALD_WINDSOR_0_1 "Can you feel the power, $N??? It's time to ROCK!"
|
||||
#define SAY_REGINALD_WINDSOR_0_2 "Now we just have to free Tobias and we can get out of here. This way!"
|
||||
#define SAY_REGINALD_WINDSOR_5_1 "Open it."
|
||||
@@ -1096,13 +1041,10 @@ public:
|
||||
npc_escortAI::UpdateAI(diff);
|
||||
}
|
||||
};
|
||||
|
||||
};
|
||||
*/
|
||||
/*######
|
||||
## npc_tobias_seecher
|
||||
######*/
|
||||
|
||||
// npc_tobias_seecher
|
||||
#define SAY_TOBIAS_FREE "Thank you! I will run for safety immediately!"
|
||||
/*
|
||||
class npc_tobias_seecher : public CreatureScript
|
||||
@@ -1123,10 +1065,10 @@ public:
|
||||
return tobias_seecherAI;
|
||||
}
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 uiSender, uint32 uiAction)
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 Sender, uint32 action)
|
||||
{
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
if (uiAction == GOSSIP_ACTION_INFO_DEF + 1)
|
||||
if (action == GOSSIP_ACTION_INFO_DEF + 1)
|
||||
{
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
CAST_AI(npc_escort::npc_escortAI, (creature->AI()))->Start(false, true, player->GetGUID());
|
||||
@@ -1198,28 +1140,24 @@ public:
|
||||
npc_escortAI::UpdateAI(diff);
|
||||
}
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
*/
|
||||
|
||||
/*######
|
||||
## npc_rocknot
|
||||
######*/
|
||||
|
||||
// npc_rocknot
|
||||
enum RocknotSays
|
||||
{
|
||||
SAY_GOT_BEER = -1230000
|
||||
SAY_GOT_BEER = -1230000
|
||||
};
|
||||
|
||||
enum RocknotSpells
|
||||
{
|
||||
SPELL_DRUNKEN_RAGE = 14872
|
||||
SPELL_DRUNKEN_RAGE = 14872
|
||||
};
|
||||
|
||||
enum RocknotQuests
|
||||
{
|
||||
QUEST_ALE = 4295
|
||||
QUEST_ALE = 4295
|
||||
};
|
||||
|
||||
class npc_rocknot : public CreatureScript
|
||||
@@ -1248,6 +1186,7 @@ public:
|
||||
{
|
||||
DoScriptText(SAY_GOT_BEER, creature);
|
||||
creature->CastSpell(creature, SPELL_DRUNKEN_RAGE, false);
|
||||
|
||||
if (npc_escortAI* escortAI = CAST_AI(npc_rocknot::npc_rocknotAI, creature->AI()))
|
||||
escortAI->Start(false, false);
|
||||
}
|
||||
@@ -1263,9 +1202,9 @@ public:
|
||||
|
||||
struct npc_rocknotAI : public npc_escortAI
|
||||
{
|
||||
npc_rocknotAI(Creature* c) : npc_escortAI(c)
|
||||
npc_rocknotAI(Creature* creature) : npc_escortAI(creature)
|
||||
{
|
||||
instance = c->GetInstanceScript();
|
||||
instance = creature->GetInstanceScript();
|
||||
}
|
||||
|
||||
InstanceScript* instance;
|
||||
@@ -1278,8 +1217,8 @@ public:
|
||||
if (HasEscortState(STATE_ESCORT_ESCORTING))
|
||||
return;
|
||||
|
||||
BreakKeg_Timer = 0;
|
||||
BreakDoor_Timer = 0;
|
||||
BreakKeg_Timer = 0;
|
||||
BreakDoor_Timer = 0;
|
||||
}
|
||||
|
||||
void DoGo(uint32 id, uint32 state)
|
||||
@@ -1324,8 +1263,8 @@ public:
|
||||
if (BreakKeg_Timer <= diff)
|
||||
{
|
||||
DoGo(DATA_GO_BAR_KEG, 0);
|
||||
BreakKeg_Timer = 0;
|
||||
BreakDoor_Timer = 1000;
|
||||
BreakKeg_Timer = 0;
|
||||
BreakDoor_Timer = 1000;
|
||||
} else BreakKeg_Timer -= diff;
|
||||
}
|
||||
|
||||
@@ -1351,13 +1290,8 @@ public:
|
||||
npc_escortAI::UpdateAI(diff);
|
||||
}
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
/*######
|
||||
##
|
||||
######*/
|
||||
|
||||
void AddSC_blackrock_depths()
|
||||
{
|
||||
new go_shadowforge_brazier();
|
||||
@@ -1366,9 +1300,11 @@ void AddSC_blackrock_depths()
|
||||
new mob_phalanx();
|
||||
new npc_kharan_mighthammer();
|
||||
new npc_lokhtos_darkbargainer();
|
||||
//new npc_dughal_stormwing();
|
||||
//new npc_tobias_seecher();
|
||||
//new npc_marshal_windsor();
|
||||
//new npc_marshal_reginald_windsor();
|
||||
new npc_rocknot();
|
||||
// Fix us
|
||||
/*new npc_dughal_stormwing();
|
||||
new npc_tobias_seecher();
|
||||
new npc_marshal_windsor();
|
||||
new npc_marshal_reginald_windsor();
|
||||
*/
|
||||
}
|
||||
|
||||
@@ -16,13 +16,6 @@
|
||||
* with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
/* ScriptData
|
||||
SDName: Boss_Ambassador_Flamelash
|
||||
SD%Complete: 100
|
||||
SDComment:
|
||||
SDCategory: Blackrock Depths
|
||||
EndScriptData */
|
||||
|
||||
#include "ScriptPCH.h"
|
||||
|
||||
enum Spells
|
||||
@@ -42,15 +35,15 @@ public:
|
||||
|
||||
struct boss_ambassador_flamelashAI : public ScriptedAI
|
||||
{
|
||||
boss_ambassador_flamelashAI(Creature* c) : ScriptedAI(c) {}
|
||||
boss_ambassador_flamelashAI(Creature* creature) : ScriptedAI(creature) {}
|
||||
|
||||
uint32 FireBlast_Timer;
|
||||
uint32 Spirit_Timer;
|
||||
|
||||
void Reset()
|
||||
{
|
||||
FireBlast_Timer = 2000;
|
||||
Spirit_Timer = 24000;
|
||||
FireBlast_Timer = 2000;
|
||||
Spirit_Timer = 24000;
|
||||
}
|
||||
|
||||
void EnterCombat(Unit* /*who*/) {}
|
||||
@@ -88,7 +81,6 @@ public:
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
void AddSC_boss_ambassador_flamelash()
|
||||
|
||||
@@ -16,13 +16,6 @@
|
||||
* with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
/* ScriptData
|
||||
SDName: Boss_Anubshiah
|
||||
SD%Complete: 100
|
||||
SDComment:
|
||||
SDCategory: Blackrock Depths
|
||||
EndScriptData */
|
||||
|
||||
#include "ScriptPCH.h"
|
||||
|
||||
enum Spells
|
||||
@@ -46,7 +39,7 @@ public:
|
||||
|
||||
struct boss_anubshiahAI : public ScriptedAI
|
||||
{
|
||||
boss_anubshiahAI(Creature* c) : ScriptedAI(c) {}
|
||||
boss_anubshiahAI(Creature* creature) : ScriptedAI(creature) {}
|
||||
|
||||
uint32 ShadowBolt_Timer;
|
||||
uint32 CurseOfTongues_Timer;
|
||||
@@ -56,16 +49,14 @@ public:
|
||||
|
||||
void Reset()
|
||||
{
|
||||
ShadowBolt_Timer = 7000;
|
||||
CurseOfTongues_Timer = 24000;
|
||||
CurseOfWeakness_Timer = 12000;
|
||||
DemonArmor_Timer = 3000;
|
||||
EnvelopingWeb_Timer = 16000;
|
||||
ShadowBolt_Timer = 7000;
|
||||
CurseOfTongues_Timer = 24000;
|
||||
CurseOfWeakness_Timer = 12000;
|
||||
DemonArmor_Timer = 3000;
|
||||
EnvelopingWeb_Timer = 16000;
|
||||
}
|
||||
|
||||
void EnterCombat(Unit* /*who*/)
|
||||
{
|
||||
}
|
||||
void EnterCombat(Unit* /*who*/) {}
|
||||
|
||||
void UpdateAI(const uint32 diff)
|
||||
{
|
||||
@@ -113,7 +104,6 @@ public:
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
void AddSC_boss_anubshiah()
|
||||
|
||||
@@ -16,13 +16,6 @@
|
||||
* with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
/* ScriptData
|
||||
SDName: Boss_Emperor_Dagran_Thaurissan
|
||||
SD%Complete: 99
|
||||
SDComment:
|
||||
SDCategory: Blackrock Depths
|
||||
EndScriptData */
|
||||
|
||||
#include "ScriptPCH.h"
|
||||
#include "blackrock_depths.h"
|
||||
|
||||
@@ -50,7 +43,7 @@ public:
|
||||
|
||||
struct boss_draganthaurissanAI : public ScriptedAI
|
||||
{
|
||||
boss_draganthaurissanAI(Creature* c) : ScriptedAI(c)
|
||||
boss_draganthaurissanAI(Creature* creature) : ScriptedAI(creature)
|
||||
{
|
||||
instance = me->GetInstanceScript();
|
||||
}
|
||||
@@ -62,9 +55,9 @@ public:
|
||||
|
||||
void Reset()
|
||||
{
|
||||
HandOfThaurissan_Timer = 4000;
|
||||
AvatarOfFlame_Timer = 25000;
|
||||
//Counter= 0;
|
||||
HandOfThaurissan_Timer = 4000;
|
||||
AvatarOfFlame_Timer = 25000;
|
||||
//Counter = 0;
|
||||
}
|
||||
|
||||
void EnterCombat(Unit* /*who*/)
|
||||
@@ -107,7 +100,7 @@ public:
|
||||
//else
|
||||
//{
|
||||
HandOfThaurissan_Timer = 5000;
|
||||
//Counter = 0;
|
||||
//Counter = 0;
|
||||
//}
|
||||
} else HandOfThaurissan_Timer -= diff;
|
||||
|
||||
@@ -121,7 +114,6 @@ public:
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
void AddSC_boss_draganthaurissan()
|
||||
|
||||
@@ -16,13 +16,6 @@
|
||||
* with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
/* ScriptData
|
||||
SDName: Boss_General_Angerforge
|
||||
SD%Complete: 100
|
||||
SDComment:
|
||||
SDCategory: Blackrock Depths
|
||||
EndScriptData */
|
||||
|
||||
#include "ScriptPCH.h"
|
||||
|
||||
enum Spells
|
||||
@@ -44,7 +37,7 @@ public:
|
||||
|
||||
struct boss_general_angerforgeAI : public ScriptedAI
|
||||
{
|
||||
boss_general_angerforgeAI(Creature* c) : ScriptedAI(c) {}
|
||||
boss_general_angerforgeAI(Creature* creature) : ScriptedAI(creature) {}
|
||||
|
||||
uint32 MightyBlow_Timer;
|
||||
uint32 HamString_Timer;
|
||||
@@ -54,16 +47,14 @@ public:
|
||||
|
||||
void Reset()
|
||||
{
|
||||
MightyBlow_Timer = 8000;
|
||||
HamString_Timer = 12000;
|
||||
Cleave_Timer = 16000;
|
||||
Adds_Timer = 0;
|
||||
Medics = false;
|
||||
MightyBlow_Timer = 8000;
|
||||
HamString_Timer = 12000;
|
||||
Cleave_Timer = 16000;
|
||||
Adds_Timer = 0;
|
||||
Medics = false;
|
||||
}
|
||||
|
||||
void EnterCombat(Unit* /*who*/)
|
||||
{
|
||||
}
|
||||
void EnterCombat(Unit* /*who*/) {}
|
||||
|
||||
void SummonAdds(Unit* victim)
|
||||
{
|
||||
@@ -129,7 +120,6 @@ public:
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
void AddSC_boss_general_angerforge()
|
||||
|
||||
@@ -16,13 +16,6 @@
|
||||
* with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
/* ScriptData
|
||||
SDName: Boss_Gorosh_the_Dervish
|
||||
SD%Complete: 100
|
||||
SDComment:
|
||||
SDCategory: Blackrock Depths
|
||||
EndScriptData */
|
||||
|
||||
#include "ScriptPCH.h"
|
||||
|
||||
enum Spells
|
||||
@@ -43,15 +36,15 @@ public:
|
||||
|
||||
struct boss_gorosh_the_dervishAI : public ScriptedAI
|
||||
{
|
||||
boss_gorosh_the_dervishAI(Creature* c) : ScriptedAI(c) {}
|
||||
boss_gorosh_the_dervishAI(Creature* creature) : ScriptedAI(creature) {}
|
||||
|
||||
uint32 WhirlWind_Timer;
|
||||
uint32 MortalStrike_Timer;
|
||||
|
||||
void Reset()
|
||||
{
|
||||
WhirlWind_Timer = 12000;
|
||||
MortalStrike_Timer = 22000;
|
||||
WhirlWind_Timer = 12000;
|
||||
MortalStrike_Timer = 22000;
|
||||
}
|
||||
|
||||
void EnterCombat(Unit* /*who*/)
|
||||
@@ -81,7 +74,6 @@ public:
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
void AddSC_boss_gorosh_the_dervish()
|
||||
|
||||
@@ -16,13 +16,6 @@
|
||||
* with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
/* ScriptData
|
||||
SDName: Boss_Grizzle
|
||||
SD%Complete: 100
|
||||
SDComment:
|
||||
SDCategory: Blackrock Depths
|
||||
EndScriptData */
|
||||
|
||||
#include "ScriptPCH.h"
|
||||
|
||||
enum Spells
|
||||
@@ -43,20 +36,18 @@ public:
|
||||
|
||||
struct boss_grizzleAI : public ScriptedAI
|
||||
{
|
||||
boss_grizzleAI(Creature* c) : ScriptedAI(c) {}
|
||||
boss_grizzleAI(Creature* creature) : ScriptedAI(creature) {}
|
||||
|
||||
uint32 GroundTremor_Timer;
|
||||
uint32 Frenzy_Timer;
|
||||
|
||||
void Reset()
|
||||
{
|
||||
GroundTremor_Timer = 12000;
|
||||
Frenzy_Timer =0;
|
||||
GroundTremor_Timer = 12000;
|
||||
Frenzy_Timer = 0;
|
||||
}
|
||||
|
||||
void EnterCombat(Unit* /*who*/)
|
||||
{
|
||||
}
|
||||
void EnterCombat(Unit* /*who*/) {}
|
||||
|
||||
void UpdateAI(const uint32 diff)
|
||||
{
|
||||
@@ -86,7 +77,6 @@ public:
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
void AddSC_boss_grizzle()
|
||||
|
||||
@@ -16,13 +16,6 @@
|
||||
* with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
/* ScriptData
|
||||
SDName: Boss_High_Interrogator_Gerstahn
|
||||
SD%Complete: 100
|
||||
SDComment:
|
||||
SDCategory: Blackrock Depths
|
||||
EndScriptData */
|
||||
|
||||
#include "ScriptPCH.h"
|
||||
|
||||
enum Spells
|
||||
@@ -45,7 +38,7 @@ public:
|
||||
|
||||
struct boss_high_interrogator_gerstahnAI : public ScriptedAI
|
||||
{
|
||||
boss_high_interrogator_gerstahnAI(Creature* c) : ScriptedAI(c) {}
|
||||
boss_high_interrogator_gerstahnAI(Creature* creature) : ScriptedAI(creature) {}
|
||||
|
||||
uint32 ShadowWordPain_Timer;
|
||||
uint32 ManaBurn_Timer;
|
||||
@@ -54,15 +47,13 @@ public:
|
||||
|
||||
void Reset()
|
||||
{
|
||||
ShadowWordPain_Timer = 4000;
|
||||
ManaBurn_Timer = 14000;
|
||||
PsychicScream_Timer = 32000;
|
||||
ShadowShield_Timer = 8000;
|
||||
ShadowWordPain_Timer = 4000;
|
||||
ManaBurn_Timer = 14000;
|
||||
PsychicScream_Timer = 32000;
|
||||
ShadowShield_Timer = 8000;
|
||||
}
|
||||
|
||||
void EnterCombat(Unit* /*who*/)
|
||||
{
|
||||
}
|
||||
void EnterCombat(Unit* /*who*/) {}
|
||||
|
||||
void UpdateAI(const uint32 diff)
|
||||
{
|
||||
@@ -103,7 +94,6 @@ public:
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
void AddSC_boss_high_interrogator_gerstahn()
|
||||
|
||||
@@ -16,13 +16,6 @@
|
||||
* with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
/* ScriptData
|
||||
SDName: Boss_Magmus
|
||||
SD%Complete: 100
|
||||
SDComment:
|
||||
SDCategory: Blackrock Depths
|
||||
EndScriptData */
|
||||
|
||||
#include "ScriptPCH.h"
|
||||
|
||||
enum Spells
|
||||
@@ -33,7 +26,7 @@ enum Spells
|
||||
|
||||
enum eEnums
|
||||
{
|
||||
DATA_THRONE_DOOR = 24 // not id or guid of doors but number of enum in blackrock_depths.h
|
||||
DATA_THRONE_DOOR = 24 // not id or guid of doors but number of enum in blackrock_depths.h
|
||||
};
|
||||
|
||||
class boss_magmus : public CreatureScript
|
||||
@@ -48,20 +41,18 @@ public:
|
||||
|
||||
struct boss_magmusAI : public ScriptedAI
|
||||
{
|
||||
boss_magmusAI(Creature* c) : ScriptedAI(c) {}
|
||||
boss_magmusAI(Creature* creature) : ScriptedAI(creature) {}
|
||||
|
||||
uint32 FieryBurst_Timer;
|
||||
uint32 WarStomp_Timer;
|
||||
|
||||
void Reset()
|
||||
{
|
||||
FieryBurst_Timer = 5000;
|
||||
WarStomp_Timer =0;
|
||||
FieryBurst_Timer = 5000;
|
||||
WarStomp_Timer = 0;
|
||||
}
|
||||
|
||||
void EnterCombat(Unit* /*who*/)
|
||||
{
|
||||
}
|
||||
void EnterCombat(Unit* /*who*/) {}
|
||||
|
||||
void UpdateAI(const uint32 diff)
|
||||
{
|
||||
@@ -95,7 +86,6 @@ public:
|
||||
instance->HandleGameObject(instance->GetData64(DATA_THRONE_DOOR), true);
|
||||
}
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
void AddSC_boss_magmus()
|
||||
|
||||
@@ -16,13 +16,6 @@
|
||||
* with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
/* ScriptData
|
||||
SDName: Boss_Moira_Bronzbeard
|
||||
SD%Complete: 90
|
||||
SDComment: Healing of Emperor NYI
|
||||
SDCategory: Blackrock Depths
|
||||
EndScriptData */
|
||||
|
||||
#include "ScriptPCH.h"
|
||||
|
||||
enum Spells
|
||||
@@ -47,7 +40,7 @@ public:
|
||||
|
||||
struct boss_moira_bronzebeardAI : public ScriptedAI
|
||||
{
|
||||
boss_moira_bronzebeardAI(Creature* c) : ScriptedAI(c) {}
|
||||
boss_moira_bronzebeardAI(Creature* creature) : ScriptedAI(creature) {}
|
||||
|
||||
uint32 Heal_Timer;
|
||||
uint32 MindBlast_Timer;
|
||||
@@ -56,15 +49,13 @@ public:
|
||||
|
||||
void Reset()
|
||||
{
|
||||
Heal_Timer = 12000; //These times are probably wrong
|
||||
MindBlast_Timer = 16000;
|
||||
ShadowWordPain_Timer = 2000;
|
||||
Smite_Timer = 8000;
|
||||
Heal_Timer = 12000; // These times are probably wrong
|
||||
MindBlast_Timer = 16000;
|
||||
ShadowWordPain_Timer = 2000;
|
||||
Smite_Timer = 8000;
|
||||
}
|
||||
|
||||
void EnterCombat(Unit* /*who*/)
|
||||
{
|
||||
}
|
||||
void EnterCombat(Unit* /*who*/) {}
|
||||
|
||||
void UpdateAI(const uint32 diff)
|
||||
{
|
||||
@@ -92,10 +83,8 @@ public:
|
||||
DoCast(me->getVictim(), SPELL_SMITE);
|
||||
Smite_Timer = 10000;
|
||||
} else Smite_Timer -= diff;
|
||||
|
||||
}
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
void AddSC_boss_moira_bronzebeard()
|
||||
|
||||
@@ -16,30 +16,23 @@
|
||||
* with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
/* ScriptData
|
||||
SDName: Boss_Tomb_Of_Seven
|
||||
SD%Complete: 90
|
||||
SDComment: Learning Smelt Dark Iron if tribute quest rewarded. Missing event.
|
||||
SDCategory: Blackrock Depths
|
||||
EndScriptData */
|
||||
|
||||
#include "ScriptPCH.h"
|
||||
#include "blackrock_depths.h"
|
||||
|
||||
enum Spells
|
||||
{
|
||||
SPELL_SMELT_DARK_IRON = 14891,
|
||||
SPELL_LEARN_SMELT = 14894,
|
||||
SPELL_SMELT_DARK_IRON = 14891,
|
||||
SPELL_LEARN_SMELT = 14894,
|
||||
};
|
||||
|
||||
enum Quests
|
||||
{
|
||||
QUEST_SPECTRAL_CHALICE = 4083
|
||||
QUEST_SPECTRAL_CHALICE = 4083
|
||||
};
|
||||
|
||||
enum Misc
|
||||
{
|
||||
DATA_SKILLPOINT_MIN = 230
|
||||
DATA_SKILLPOINT_MIN = 230
|
||||
};
|
||||
|
||||
#define GOSSIP_ITEM_TEACH_1 "Teach me the art of smelting dark iron"
|
||||
@@ -52,10 +45,10 @@ class boss_gloomrel : public CreatureScript
|
||||
public:
|
||||
boss_gloomrel() : CreatureScript("boss_gloomrel") { }
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*Sender*/, uint32 action)
|
||||
{
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
switch (uiAction)
|
||||
switch (action)
|
||||
{
|
||||
case GOSSIP_ACTION_INFO_DEF+1:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_TEACH_2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 11);
|
||||
@@ -92,7 +85,6 @@ public:
|
||||
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
|
||||
return true;
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
enum DoomrelSpells
|
||||
@@ -112,10 +104,10 @@ class boss_doomrel : public CreatureScript
|
||||
public:
|
||||
boss_doomrel() : CreatureScript("boss_doomrel") { }
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*Sender*/, uint32 action)
|
||||
{
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
switch (uiAction)
|
||||
switch (action)
|
||||
{
|
||||
case GOSSIP_ACTION_INFO_DEF+1:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_SELECT_DOOMREL, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
|
||||
@@ -150,9 +142,9 @@ public:
|
||||
|
||||
struct boss_doomrelAI : public ScriptedAI
|
||||
{
|
||||
boss_doomrelAI(Creature* c) : ScriptedAI(c)
|
||||
boss_doomrelAI(Creature* creature) : ScriptedAI(creature)
|
||||
{
|
||||
instance = c->GetInstanceScript();
|
||||
instance = creature->GetInstanceScript();
|
||||
}
|
||||
|
||||
InstanceScript* instance;
|
||||
@@ -164,11 +156,11 @@ public:
|
||||
|
||||
void Reset()
|
||||
{
|
||||
ShadowVolley_Timer = 10000;
|
||||
Immolate_Timer = 18000;
|
||||
CurseOfWeakness_Timer = 5000;
|
||||
DemonArmor_Timer = 16000;
|
||||
Voidwalkers = false;
|
||||
ShadowVolley_Timer = 10000;
|
||||
Immolate_Timer = 18000;
|
||||
CurseOfWeakness_Timer = 5000;
|
||||
DemonArmor_Timer = 16000;
|
||||
Voidwalkers = false;
|
||||
|
||||
me->setFaction(FACTION_FRIEND);
|
||||
|
||||
@@ -252,7 +244,6 @@ public:
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
void AddSC_boss_tomb_of_seven()
|
||||
|
||||
@@ -16,13 +16,6 @@
|
||||
* with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
/* ScriptData
|
||||
SDName: Instance_Blackrock_Depths
|
||||
SD%Complete: 100
|
||||
SDComment:
|
||||
SDCategory: Blackrock Depths
|
||||
EndScriptData */
|
||||
|
||||
#include "ScriptPCH.h"
|
||||
#include "blackrock_depths.h"
|
||||
|
||||
@@ -63,7 +56,6 @@ enum eEnums
|
||||
GO_GOLEM_ROOM_N = 170573, // Magmus door North
|
||||
GO_GOLEM_ROOM_S = 170574, // Magmus door Soutsh
|
||||
GO_THRONE_ROOM = 170575, // Throne door
|
||||
|
||||
GO_SPECTRAL_CHALICE = 164869,
|
||||
GO_CHEST_SEVEN = 169243
|
||||
};
|
||||
@@ -82,7 +74,7 @@ public:
|
||||
{
|
||||
instance_blackrock_depths_InstanceMapScript(Map* map) : InstanceScript(map) {}
|
||||
|
||||
uint32 m_auiEncounter[MAX_ENCOUNTER];
|
||||
uint32 encounter[MAX_ENCOUNTER];
|
||||
std::string str_data;
|
||||
|
||||
uint64 EmperorGUID;
|
||||
@@ -121,59 +113,59 @@ public:
|
||||
|
||||
void Initialize()
|
||||
{
|
||||
memset(&m_auiEncounter, 0, sizeof(m_auiEncounter));
|
||||
memset(&encounter, 0, sizeof(encounter));
|
||||
|
||||
EmperorGUID = 0;
|
||||
PhalanxGUID = 0;
|
||||
MagmusGUID = 0;
|
||||
MoiraGUID = 0;
|
||||
EmperorGUID = 0;
|
||||
PhalanxGUID = 0;
|
||||
MagmusGUID = 0;
|
||||
MoiraGUID = 0;
|
||||
|
||||
GoArena1GUID = 0;
|
||||
GoArena2GUID = 0;
|
||||
GoArena3GUID = 0;
|
||||
GoArena4GUID = 0;
|
||||
GoShadowLockGUID = 0;
|
||||
GoShadowMechGUID = 0;
|
||||
GoShadowGiantGUID = 0;
|
||||
GoShadowDummyGUID = 0;
|
||||
GoBarKegGUID = 0;
|
||||
GoBarKegTrapGUID = 0;
|
||||
GoBarDoorGUID = 0;
|
||||
GoTombEnterGUID = 0;
|
||||
GoTombExitGUID = 0;
|
||||
GoLyceumGUID = 0;
|
||||
GoSFSGUID = 0;
|
||||
GoSFNGUID = 0;
|
||||
GoGolemNGUID = 0;
|
||||
GoGolemSGUID = 0;
|
||||
GoThroneGUID = 0;
|
||||
GoChestGUID = 0;
|
||||
GoSpectralChaliceGUID = 0;
|
||||
GoArena1GUID = 0;
|
||||
GoArena2GUID = 0;
|
||||
GoArena3GUID = 0;
|
||||
GoArena4GUID = 0;
|
||||
GoShadowLockGUID = 0;
|
||||
GoShadowMechGUID = 0;
|
||||
GoShadowGiantGUID = 0;
|
||||
GoShadowDummyGUID = 0;
|
||||
GoBarKegGUID = 0;
|
||||
GoBarKegTrapGUID = 0;
|
||||
GoBarDoorGUID = 0;
|
||||
GoTombEnterGUID = 0;
|
||||
GoTombExitGUID = 0;
|
||||
GoLyceumGUID = 0;
|
||||
GoSFSGUID = 0;
|
||||
GoSFNGUID = 0;
|
||||
GoGolemNGUID = 0;
|
||||
GoGolemSGUID = 0;
|
||||
GoThroneGUID = 0;
|
||||
GoChestGUID = 0;
|
||||
GoSpectralChaliceGUID = 0;
|
||||
|
||||
BarAleCount = 0;
|
||||
GhostKillCount = 0;
|
||||
TombEventStarterGUID = 0;
|
||||
BarAleCount = 0;
|
||||
GhostKillCount = 0;
|
||||
TombEventStarterGUID = 0;
|
||||
TombTimer = TIMER_TOMBOFTHESEVEN;
|
||||
TombEventCounter = 0;
|
||||
TombEventCounter = 0;
|
||||
|
||||
for (uint8 i = 0; i < 7; ++i)
|
||||
TombBossGUIDs[i] = 0;
|
||||
TombBossGUIDs[i] = 0;
|
||||
}
|
||||
|
||||
void OnCreatureCreate(Creature* creature)
|
||||
{
|
||||
switch (creature->GetEntry())
|
||||
{
|
||||
case NPC_EMPEROR: EmperorGUID = creature->GetGUID(); break;
|
||||
case NPC_PHALANX: PhalanxGUID = creature->GetGUID(); break;
|
||||
case NPC_MOIRA: MoiraGUID = creature->GetGUID(); break;
|
||||
case NPC_DOOMREL: TombBossGUIDs[0] = creature->GetGUID(); break;
|
||||
case NPC_DOPEREL: TombBossGUIDs[1] = creature->GetGUID(); break;
|
||||
case NPC_HATEREL: TombBossGUIDs[2] = creature->GetGUID(); break;
|
||||
case NPC_VILEREL: TombBossGUIDs[3] = creature->GetGUID(); break;
|
||||
case NPC_SEETHREL: TombBossGUIDs[4] = creature->GetGUID(); break;
|
||||
case NPC_GLOOMREL: TombBossGUIDs[5] = creature->GetGUID(); break;
|
||||
case NPC_ANGERREL: TombBossGUIDs[6] = creature->GetGUID(); break;
|
||||
case NPC_EMPEROR: EmperorGUID = creature->GetGUID(); break;
|
||||
case NPC_PHALANX: PhalanxGUID = creature->GetGUID(); break;
|
||||
case NPC_MOIRA: MoiraGUID = creature->GetGUID(); break;
|
||||
case NPC_DOOMREL: TombBossGUIDs[0] = creature->GetGUID(); break;
|
||||
case NPC_DOPEREL: TombBossGUIDs[1] = creature->GetGUID(); break;
|
||||
case NPC_HATEREL: TombBossGUIDs[2] = creature->GetGUID(); break;
|
||||
case NPC_VILEREL: TombBossGUIDs[3] = creature->GetGUID(); break;
|
||||
case NPC_SEETHREL: TombBossGUIDs[4] = creature->GetGUID(); break;
|
||||
case NPC_GLOOMREL: TombBossGUIDs[5] = creature->GetGUID(); break;
|
||||
case NPC_ANGERREL: TombBossGUIDs[6] = creature->GetGUID(); break;
|
||||
case NPC_MAGMUS:
|
||||
MagmusGUID = creature->GetGUID();
|
||||
if (!creature->isAlive())
|
||||
@@ -239,25 +231,25 @@ public:
|
||||
switch (type)
|
||||
{
|
||||
case TYPE_RING_OF_LAW:
|
||||
m_auiEncounter[0] = data;
|
||||
encounter[0] = data;
|
||||
break;
|
||||
case TYPE_VAULT:
|
||||
m_auiEncounter[1] = data;
|
||||
encounter[1] = data;
|
||||
break;
|
||||
case TYPE_BAR:
|
||||
if (data == SPECIAL)
|
||||
++BarAleCount;
|
||||
else
|
||||
m_auiEncounter[2] = data;
|
||||
encounter[2] = data;
|
||||
break;
|
||||
case TYPE_TOMB_OF_SEVEN:
|
||||
m_auiEncounter[3] = data;
|
||||
encounter[3] = data;
|
||||
break;
|
||||
case TYPE_LYCEUM:
|
||||
m_auiEncounter[4] = data;
|
||||
encounter[4] = data;
|
||||
break;
|
||||
case TYPE_IRON_HALL:
|
||||
m_auiEncounter[5] = data;
|
||||
encounter[5] = data;
|
||||
break;
|
||||
case DATA_GHOSTKILL:
|
||||
GhostKillCount += data;
|
||||
@@ -269,8 +261,8 @@ public:
|
||||
OUT_SAVE_INST_DATA;
|
||||
|
||||
std::ostringstream saveStream;
|
||||
saveStream << m_auiEncounter[0] << ' ' << m_auiEncounter[1] << ' ' << m_auiEncounter[2] << ' '
|
||||
<< m_auiEncounter[3] << ' ' << m_auiEncounter[4] << ' ' << m_auiEncounter[5] << ' ' << GhostKillCount;
|
||||
saveStream << encounter[0] << ' ' << encounter[1] << ' ' << encounter[2] << ' '
|
||||
<< encounter[3] << ' ' << encounter[4] << ' ' << encounter[5] << ' ' << GhostKillCount;
|
||||
|
||||
str_data = saveStream.str();
|
||||
|
||||
@@ -284,20 +276,20 @@ public:
|
||||
switch (type)
|
||||
{
|
||||
case TYPE_RING_OF_LAW:
|
||||
return m_auiEncounter[0];
|
||||
return encounter[0];
|
||||
case TYPE_VAULT:
|
||||
return m_auiEncounter[1];
|
||||
return encounter[1];
|
||||
case TYPE_BAR:
|
||||
if (m_auiEncounter[2] == IN_PROGRESS && BarAleCount == 3)
|
||||
if (encounter[2] == IN_PROGRESS && BarAleCount == 3)
|
||||
return SPECIAL;
|
||||
else
|
||||
return m_auiEncounter[2];
|
||||
return encounter[2];
|
||||
case TYPE_TOMB_OF_SEVEN:
|
||||
return m_auiEncounter[3];
|
||||
return encounter[3];
|
||||
case TYPE_LYCEUM:
|
||||
return m_auiEncounter[4];
|
||||
return encounter[4];
|
||||
case TYPE_IRON_HALL:
|
||||
return m_auiEncounter[5];
|
||||
return encounter[5];
|
||||
case DATA_GHOSTKILL:
|
||||
return GhostKillCount;
|
||||
}
|
||||
@@ -362,12 +354,12 @@ public:
|
||||
OUT_LOAD_INST_DATA(in);
|
||||
|
||||
std::istringstream loadStream(in);
|
||||
loadStream >> m_auiEncounter[0] >> m_auiEncounter[1] >> m_auiEncounter[2] >> m_auiEncounter[3]
|
||||
>> m_auiEncounter[4] >> m_auiEncounter[5] >> GhostKillCount;
|
||||
loadStream >> encounter[0] >> encounter[1] >> encounter[2] >> encounter[3]
|
||||
>> encounter[4] >> encounter[5] >> GhostKillCount;
|
||||
|
||||
for (uint8 i = 0; i < MAX_ENCOUNTER; ++i)
|
||||
if (m_auiEncounter[i] == IN_PROGRESS)
|
||||
m_auiEncounter[i] = NOT_STARTED;
|
||||
if (encounter[i] == IN_PROGRESS)
|
||||
encounter[i] = NOT_STARTED;
|
||||
if (GhostKillCount > 0 && GhostKillCount < 7)
|
||||
GhostKillCount = 0;//reset tomb of seven event
|
||||
if (GhostKillCount >= 7)
|
||||
@@ -459,7 +451,6 @@ public:
|
||||
TombOfSevenEnd();
|
||||
}
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
void AddSC_instance_blackrock_depths()
|
||||
|
||||
@@ -58,10 +58,10 @@ public:
|
||||
void EnterCombat(Unit* /*who*/)
|
||||
{
|
||||
_EnterCombat();
|
||||
events.ScheduleEvent(EVENT_FIRE_NOVA, 6*IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_CLEAVE, 8*IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_CONFLIGURATION, 15*IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_THUNDERCLAP, 17*IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_FIRE_NOVA, 6 * IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_CLEAVE, 8 * IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_CONFLIGURATION, 15 * IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_THUNDERCLAP, 17 * IN_MILLISECONDS);
|
||||
}
|
||||
|
||||
void JustDied(Unit* /*who*/)
|
||||
@@ -85,19 +85,19 @@ public:
|
||||
{
|
||||
case EVENT_FIRE_NOVA:
|
||||
DoCast(me->getVictim(), SPELL_FIRENOVA);
|
||||
events.ScheduleEvent(EVENT_FIRE_NOVA, 10*IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_FIRE_NOVA, 10 * IN_MILLISECONDS);
|
||||
break;
|
||||
case EVENT_CLEAVE:
|
||||
DoCast(me->getVictim(), SPELL_CLEAVE);
|
||||
events.ScheduleEvent(EVENT_CLEAVE, 8*IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_CLEAVE, 8 * IN_MILLISECONDS);
|
||||
break;
|
||||
case EVENT_CONFLIGURATION:
|
||||
DoCast(me->getVictim(), SPELL_CONFLIGURATION);
|
||||
events.ScheduleEvent(EVENT_CONFLIGURATION, 18*IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_CONFLIGURATION, 18 * IN_MILLISECONDS);
|
||||
break;
|
||||
case EVENT_THUNDERCLAP:
|
||||
DoCast(me->getVictim(), SPELL_THUNDERCLAP);
|
||||
events.ScheduleEvent(EVENT_THUNDERCLAP, 20*IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_THUNDERCLAP, 20 * IN_MILLISECONDS);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -74,9 +74,9 @@ public:
|
||||
void EnterCombat(Unit* /*who*/)
|
||||
{
|
||||
_EnterCombat();
|
||||
events.ScheduleEvent(EVENT_SUMMON_DRAGON_PACK, 3*IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_SUMMON_ORC_PACK, 60*IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_AGGRO, 60*IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_SUMMON_DRAGON_PACK, 3 * IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_SUMMON_ORC_PACK, 60 * IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_AGGRO, 60 * IN_MILLISECONDS);
|
||||
}
|
||||
|
||||
void JustDied(Unit* /*who*/)
|
||||
@@ -87,7 +87,7 @@ public:
|
||||
void SummonCreatureWithRandomTarget(uint32 creatureId, uint8 count)
|
||||
{
|
||||
for (uint8 n = 0; n < count; n++)
|
||||
if (Unit* Summoned = me->SummonCreature(creatureId, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), 0, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 240*IN_MILLISECONDS))
|
||||
if (Unit* Summoned = me->SummonCreature(creatureId, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), 0, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 240 * IN_MILLISECONDS))
|
||||
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 50.0f, true))
|
||||
Summoned->AddThreat(target, 250.0f);
|
||||
}
|
||||
@@ -99,7 +99,7 @@ public:
|
||||
|
||||
if (!SummonedRend && HealthBelowPct(11))
|
||||
{
|
||||
events.ScheduleEvent(EVENT_SUMMON_REND, 8*IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_SUMMON_REND, 8 * IN_MILLISECONDS);
|
||||
SummonedRend = true;
|
||||
}
|
||||
|
||||
@@ -118,10 +118,10 @@ public:
|
||||
me->InterruptNonMeleeSpells(false);
|
||||
// Gyth model
|
||||
me->SetDisplayId(me->GetCreatureInfo()->Modelid1);
|
||||
me->SummonCreature(NPC_WARCHIEF_REND_BLACKHAND, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), 0, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 900*IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_CORROSIVE_ACID, 8*IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_FREEZE, 11*IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_FLAME_BREATH, 4*IN_MILLISECONDS);
|
||||
me->SummonCreature(NPC_WARCHIEF_REND_BLACKHAND, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), 0, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 900 * IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_CORROSIVE_ACID, 8 * IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_FREEZE, 11 * IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_FLAME_BREATH, 4 * IN_MILLISECONDS);
|
||||
events.CancelEvent(EVENT_SUMMON_REND);
|
||||
break;
|
||||
case EVENT_AGGRO:
|
||||
@@ -152,11 +152,11 @@ public:
|
||||
break;
|
||||
case EVENT_CORROSIVE_ACID:
|
||||
DoCast(me->getVictim(), SPELL_CORROSIVE_ACID);
|
||||
events.ScheduleEvent(EVENT_CORROSIVE_ACID, 7*IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_CORROSIVE_ACID, 7 * IN_MILLISECONDS);
|
||||
break;
|
||||
case EVENT_FREEZE:
|
||||
DoCast(me->getVictim(), SPELL_FREEZE);
|
||||
events.ScheduleEvent(EVENT_FREEZE, 16*IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_FREEZE, 16 * IN_MILLISECONDS);
|
||||
break;
|
||||
case EVENT_FLAME_BREATH:
|
||||
DoCast(me->getVictim(), SPELL_FLAMEBREATH);
|
||||
|
||||
@@ -59,8 +59,8 @@ public:
|
||||
void EnterCombat(Unit* /*who*/)
|
||||
{
|
||||
_EnterCombat();
|
||||
events.ScheduleEvent(EVENT_CROWD_PUMMEL, 8*IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_MIGHTY_BLOW, 14*IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_CROWD_PUMMEL, 8 * IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_MIGHTY_BLOW, 14 * IN_MILLISECONDS);
|
||||
}
|
||||
|
||||
void JustDied(Unit* /*who*/)
|
||||
@@ -76,7 +76,7 @@ public:
|
||||
//Summon Gizrul
|
||||
if (!Summoned && HealthBelowPct(25))
|
||||
{
|
||||
me->SummonCreature(NPC_GIZRUL_THE_SLAVENER, SummonLocation, TEMPSUMMON_TIMED_DESPAWN, 300*IN_MILLISECONDS);
|
||||
me->SummonCreature(NPC_GIZRUL_THE_SLAVENER, SummonLocation, TEMPSUMMON_TIMED_DESPAWN, 300 * IN_MILLISECONDS);
|
||||
Summoned = true;
|
||||
}
|
||||
|
||||
@@ -91,11 +91,11 @@ public:
|
||||
{
|
||||
case EVENT_CROWD_PUMMEL:
|
||||
DoCast(me->getVictim(), SPELL_CROWDPUMMEL);
|
||||
events.ScheduleEvent(EVENT_CROWD_PUMMEL, 14*IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_CROWD_PUMMEL, 14 * IN_MILLISECONDS);
|
||||
break;
|
||||
case EVENT_MIGHTY_BLOW:
|
||||
DoCast(me->getVictim(), SPELL_MIGHTYBLOW);
|
||||
events.ScheduleEvent(EVENT_MIGHTY_BLOW, 10*IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_MIGHTY_BLOW, 10 * IN_MILLISECONDS);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -64,13 +64,13 @@ public:
|
||||
void EnterCombat(Unit* /*who*/)
|
||||
{
|
||||
_EnterCombat();
|
||||
events.ScheduleEvent(EVENT_WARSTOMP, 15*IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_CLEAVE, 6*IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_STRIKE, 10*IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_REND, 14*IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_SUNDER_ARMOR, 2*IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_KNOCK_AWAY, 18*IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_SLOW, 24*IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_WARSTOMP, 15 * IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_CLEAVE, 6 * IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_STRIKE, 10 * IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_REND, 14 * IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_SUNDER_ARMOR, 2 * IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_KNOCK_AWAY, 18 * IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_SLOW, 24 * IN_MILLISECONDS);
|
||||
}
|
||||
|
||||
void JustDied(Unit* /*who*/)
|
||||
@@ -94,31 +94,31 @@ public:
|
||||
{
|
||||
case EVENT_WARSTOMP:
|
||||
DoCast(me->getVictim(), SPELL_WARSTOMP);
|
||||
events.ScheduleEvent(EVENT_WARSTOMP, 14*IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_WARSTOMP, 14 * IN_MILLISECONDS);
|
||||
break;
|
||||
case EVENT_CLEAVE:
|
||||
DoCast(me->getVictim(), SPELL_CLEAVE);
|
||||
events.ScheduleEvent(EVENT_CLEAVE, 8*IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_CLEAVE, 8 * IN_MILLISECONDS);
|
||||
break;
|
||||
case EVENT_STRIKE:
|
||||
DoCast(me->getVictim(), SPELL_STRIKE);
|
||||
events.ScheduleEvent(EVENT_STRIKE, 10*IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_STRIKE, 10 * IN_MILLISECONDS);
|
||||
break;
|
||||
case EVENT_REND:
|
||||
DoCast(me->getVictim(), SPELL_REND);
|
||||
events.ScheduleEvent(EVENT_REND, 18*IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_REND, 18 * IN_MILLISECONDS);
|
||||
break;
|
||||
case EVENT_SUNDER_ARMOR:
|
||||
DoCast(me->getVictim(), SPELL_SUNDERARMOR);
|
||||
events.ScheduleEvent(EVENT_SUNDER_ARMOR, 25*IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_SUNDER_ARMOR, 25 * IN_MILLISECONDS);
|
||||
break;
|
||||
case EVENT_KNOCK_AWAY:
|
||||
DoCast(me->getVictim(), SPELL_KNOCKAWAY);
|
||||
events.ScheduleEvent(EVENT_KNOCK_AWAY, 12*IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_KNOCK_AWAY, 12 * IN_MILLISECONDS);
|
||||
break;
|
||||
case EVENT_SLOW:
|
||||
DoCast(me->getVictim(), SPELL_SLOW);
|
||||
events.ScheduleEvent(EVENT_SLOW, 18*IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_SLOW, 18 * IN_MILLISECONDS);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -55,8 +55,8 @@ public:
|
||||
void EnterCombat(Unit* /*who*/)
|
||||
{
|
||||
_EnterCombat();
|
||||
events.ScheduleEvent(EVENT_CRYSTALIZE, 20*IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_MOTHERS_MILK, 10*IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_CRYSTALIZE, 20 * IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_MOTHERS_MILK, 10 * IN_MILLISECONDS);
|
||||
}
|
||||
|
||||
void JustDied(Unit* /*who*/)
|
||||
@@ -86,11 +86,11 @@ public:
|
||||
{
|
||||
case EVENT_CRYSTALIZE:
|
||||
DoCast(me, SPELL_CRYSTALIZE);
|
||||
events.ScheduleEvent(EVENT_CRYSTALIZE, 15*IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_CRYSTALIZE, 15 * IN_MILLISECONDS);
|
||||
break;
|
||||
case EVENT_MOTHERS_MILK:
|
||||
DoCast(me, SPELL_MOTHERSMILK);
|
||||
events.ScheduleEvent(EVENT_MOTHERS_MILK, urand(5*IN_MILLISECONDS, 12500));
|
||||
events.ScheduleEvent(EVENT_MOTHERS_MILK, urand(5 * IN_MILLISECONDS, 12500));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -71,10 +71,10 @@ public:
|
||||
void EnterCombat(Unit* /*who*/)
|
||||
{
|
||||
_EnterCombat();
|
||||
events.ScheduleEvent(EVENT_BLAST_WAVE, 20*IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_SHOUT, 2*IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_CLEAVE, 6*IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_KNOCK_AWAY, 12*IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_BLAST_WAVE, 20 * IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_SHOUT, 2 * IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_CLEAVE, 6 * IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_KNOCK_AWAY, 12 * IN_MILLISECONDS);
|
||||
}
|
||||
|
||||
void JustDied(Unit* /*who*/)
|
||||
@@ -91,9 +91,9 @@ public:
|
||||
{
|
||||
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
|
||||
{
|
||||
if (Creature* warlord = me->SummonCreature(NPC_SPIRESTONE_WARLORD, SummonLocation1, TEMPSUMMON_TIMED_DESPAWN, 300*IN_MILLISECONDS))
|
||||
if (Creature* warlord = me->SummonCreature(NPC_SPIRESTONE_WARLORD, SummonLocation1, TEMPSUMMON_TIMED_DESPAWN, 300 * IN_MILLISECONDS))
|
||||
warlord->AI()->AttackStart(target);
|
||||
if (Creature* berserker = me->SummonCreature(NPC_SMOLDERTHORN_BERSERKER, SummonLocation2, TEMPSUMMON_TIMED_DESPAWN, 300*IN_MILLISECONDS))
|
||||
if (Creature* berserker = me->SummonCreature(NPC_SMOLDERTHORN_BERSERKER, SummonLocation2, TEMPSUMMON_TIMED_DESPAWN, 300 * IN_MILLISECONDS))
|
||||
berserker->AI()->AttackStart(target);
|
||||
Summoned = true;
|
||||
}
|
||||
@@ -110,19 +110,19 @@ public:
|
||||
{
|
||||
case EVENT_BLAST_WAVE:
|
||||
DoCast(me->getVictim(), SPELL_BLASTWAVE);
|
||||
events.ScheduleEvent(EVENT_BLAST_WAVE, 20*IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_BLAST_WAVE, 20 * IN_MILLISECONDS);
|
||||
break;
|
||||
case EVENT_SHOUT:
|
||||
DoCast(me->getVictim(), SPELL_SHOUT);
|
||||
events.ScheduleEvent(EVENT_SHOUT, 10*IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_SHOUT, 10 * IN_MILLISECONDS);
|
||||
break;
|
||||
case EVENT_CLEAVE:
|
||||
DoCast(me->getVictim(), SPELL_CLEAVE);
|
||||
events.ScheduleEvent(EVENT_CLEAVE, 7*IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_CLEAVE, 7 * IN_MILLISECONDS);
|
||||
break;
|
||||
case EVENT_KNOCK_AWAY:
|
||||
DoCast(me->getVictim(), SPELL_KNOCKAWAY);
|
||||
events.ScheduleEvent(EVENT_KNOCK_AWAY, 14*IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_KNOCK_AWAY, 14 * IN_MILLISECONDS);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -57,9 +57,9 @@ public:
|
||||
void EnterCombat(Unit* /*who*/)
|
||||
{
|
||||
_EnterCombat();
|
||||
events.ScheduleEvent(EVENT_FIRENOVA, 6*IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_FLAMEBUFFET, 3*IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_PYROBLAST, 14*IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_FIRENOVA, 6 * IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_FLAMEBUFFET, 3 * IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_PYROBLAST, 14 * IN_MILLISECONDS);
|
||||
}
|
||||
|
||||
void JustDied(Unit* /*who*/)
|
||||
@@ -83,16 +83,16 @@ public:
|
||||
{
|
||||
case EVENT_FIRENOVA:
|
||||
DoCast(me->getVictim(), SPELL_FIRENOVA);
|
||||
events.ScheduleEvent(EVENT_FIRENOVA, 6*IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_FIRENOVA, 6 * IN_MILLISECONDS);
|
||||
break;
|
||||
case EVENT_FLAMEBUFFET:
|
||||
DoCast(me->getVictim(), SPELL_FLAMEBUFFET);
|
||||
events.ScheduleEvent(EVENT_FLAMEBUFFET, 14*IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_FLAMEBUFFET, 14 * IN_MILLISECONDS);
|
||||
break;
|
||||
case EVENT_PYROBLAST:
|
||||
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
|
||||
DoCast(target, SPELL_PYROBLAST);
|
||||
events.ScheduleEvent(EVENT_PYROBLAST, 15*IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_PYROBLAST, 15 * IN_MILLISECONDS);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -56,8 +56,8 @@ public:
|
||||
void EnterCombat(Unit* /*who*/)
|
||||
{
|
||||
_EnterCombat();
|
||||
events.ScheduleEvent(EVENT_SHOOT, 1*IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_STUN_BOMB, 16*IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_SHOOT, 1 * IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_STUN_BOMB, 16 * IN_MILLISECONDS);
|
||||
}
|
||||
|
||||
void JustDied(Unit* /*who*/)
|
||||
@@ -85,7 +85,7 @@ public:
|
||||
break;
|
||||
case EVENT_STUN_BOMB:
|
||||
DoCast(me->getVictim(), SPELL_STUNBOMB);
|
||||
events.ScheduleEvent(EVENT_STUN_BOMB, 14*IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_STUN_BOMB, 14 * IN_MILLISECONDS);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -56,9 +56,9 @@ public:
|
||||
void EnterCombat(Unit* /*who*/)
|
||||
{
|
||||
_EnterCombat();
|
||||
events.ScheduleEvent(EVENT_WHIRLWIND, 20*IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_CLEAVE, 5*IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_THUNDERCLAP, 9*IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_WHIRLWIND, 20 * IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_CLEAVE, 5 * IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_THUNDERCLAP, 9 * IN_MILLISECONDS);
|
||||
}
|
||||
|
||||
void JustDied(Unit* /*who*/)
|
||||
@@ -82,15 +82,15 @@ public:
|
||||
{
|
||||
case EVENT_WHIRLWIND:
|
||||
DoCast(me->getVictim(), SPELL_WHIRLWIND);
|
||||
events.ScheduleEvent(EVENT_WHIRLWIND, 18*IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_WHIRLWIND, 18 * IN_MILLISECONDS);
|
||||
break;
|
||||
case EVENT_CLEAVE:
|
||||
DoCast(me->getVictim(), SPELL_CLEAVE);
|
||||
events.ScheduleEvent(EVENT_CLEAVE, 10*IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_CLEAVE, 10 * IN_MILLISECONDS);
|
||||
break;
|
||||
case EVENT_THUNDERCLAP:
|
||||
DoCast(me->getVictim(), SPELL_THUNDERCLAP);
|
||||
events.ScheduleEvent(EVENT_THUNDERCLAP, 16*IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_THUNDERCLAP, 16 * IN_MILLISECONDS);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -57,9 +57,9 @@ public:
|
||||
void EnterCombat(Unit* /*who*/)
|
||||
{
|
||||
_EnterCombat();
|
||||
events.ScheduleEvent(EVENT_CURSE_OF_BLOOD, 2*IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_HEX, 8*IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_CLEAVE, 14*IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_CURSE_OF_BLOOD, 2 * IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_HEX, 8 * IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_CLEAVE, 14 * IN_MILLISECONDS);
|
||||
}
|
||||
|
||||
void JustDied(Unit* /*who*/)
|
||||
@@ -83,16 +83,16 @@ public:
|
||||
{
|
||||
case EVENT_CURSE_OF_BLOOD:
|
||||
DoCast(me->getVictim(), SPELL_CURSEOFBLOOD);
|
||||
events.ScheduleEvent(EVENT_CURSE_OF_BLOOD, 45*IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_CURSE_OF_BLOOD, 45 * IN_MILLISECONDS);
|
||||
break;
|
||||
case EVENT_HEX:
|
||||
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
|
||||
DoCast(target, SPELL_HEX);
|
||||
events.ScheduleEvent(EVENT_HEX, 15*IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_HEX, 15 * IN_MILLISECONDS);
|
||||
break;
|
||||
case EVENT_CLEAVE:
|
||||
DoCast(me->getVictim(), SPELL_CLEAVE);
|
||||
events.ScheduleEvent(EVENT_CLEAVE, 7*IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_CLEAVE, 7 * IN_MILLISECONDS);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -56,9 +56,9 @@ public:
|
||||
void EnterCombat(Unit* /*who*/)
|
||||
{
|
||||
_EnterCombat();
|
||||
events.ScheduleEvent(EVENT_FLAME_BREAK, 12*IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_IMMOLATE, 3*IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_TERRIFYING_ROAR, 23*IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_FLAME_BREAK, 12 * IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_IMMOLATE, 3 * IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_TERRIFYING_ROAR, 23 * IN_MILLISECONDS);
|
||||
}
|
||||
|
||||
void JustDied(Unit* /*who*/)
|
||||
@@ -82,16 +82,16 @@ public:
|
||||
{
|
||||
case EVENT_FLAME_BREAK:
|
||||
DoCast(me->getVictim(), SPELL_FLAMEBREAK);
|
||||
events.ScheduleEvent(EVENT_FLAME_BREAK, 10*IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_FLAME_BREAK, 10 * IN_MILLISECONDS);
|
||||
break;
|
||||
case EVENT_IMMOLATE:
|
||||
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
|
||||
DoCast(target, SPELL_IMMOLATE);
|
||||
events.ScheduleEvent(EVENT_IMMOLATE, 8*IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_IMMOLATE, 8 * IN_MILLISECONDS);
|
||||
break;
|
||||
case EVENT_TERRIFYING_ROAR:
|
||||
DoCast(me->getVictim(), SPELL_TERRIFYINGROAR);
|
||||
events.ScheduleEvent(EVENT_TERRIFYING_ROAR, 20*IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_TERRIFYING_ROAR, 20 * IN_MILLISECONDS);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -62,12 +62,12 @@ public:
|
||||
void EnterCombat(Unit* /*who*/)
|
||||
{
|
||||
_EnterCombat();
|
||||
events.ScheduleEvent(EVENT_SNAP_KICK, 8*IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_CLEAVE, 14*IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_UPPERCUT, 20*IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_MORTAL_STRIKE, 12*IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_PUMMEL, 32*IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_THROW_AXE, 1*IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_SNAP_KICK, 8 * IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_CLEAVE, 14 * IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_UPPERCUT, 20 * IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_MORTAL_STRIKE, 12 * IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_PUMMEL, 32 * IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_THROW_AXE, 1 * IN_MILLISECONDS);
|
||||
}
|
||||
|
||||
void JustDied(Unit* /*who*/)
|
||||
@@ -91,27 +91,27 @@ public:
|
||||
{
|
||||
case EVENT_SNAP_KICK:
|
||||
DoCast(me->getVictim(), SPELL_SNAPKICK);
|
||||
events.ScheduleEvent(EVENT_SNAP_KICK, 6*IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_SNAP_KICK, 6 * IN_MILLISECONDS);
|
||||
break;
|
||||
case EVENT_CLEAVE:
|
||||
DoCast(me->getVictim(), SPELL_CLEAVE);
|
||||
events.ScheduleEvent(EVENT_CLEAVE, 12*IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_CLEAVE, 12 * IN_MILLISECONDS);
|
||||
break;
|
||||
case EVENT_UPPERCUT:
|
||||
DoCast(me->getVictim(), SPELL_UPPERCUT);
|
||||
events.ScheduleEvent(EVENT_UPPERCUT, 14*IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_UPPERCUT, 14 * IN_MILLISECONDS);
|
||||
break;
|
||||
case EVENT_MORTAL_STRIKE:
|
||||
DoCast(me->getVictim(), SPELL_MORTALSTRIKE);
|
||||
events.ScheduleEvent(EVENT_MORTAL_STRIKE, 10*IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_MORTAL_STRIKE, 10 * IN_MILLISECONDS);
|
||||
break;
|
||||
case EVENT_PUMMEL:
|
||||
DoCast(me->getVictim(), SPELL_PUMMEL);
|
||||
events.ScheduleEvent(EVENT_MORTAL_STRIKE, 16*IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_MORTAL_STRIKE, 16 * IN_MILLISECONDS);
|
||||
break;
|
||||
case EVENT_THROW_AXE:
|
||||
DoCast(me->getVictim(), SPELL_THROWAXE);
|
||||
events.ScheduleEvent(EVENT_THROW_AXE, 8*IN_MILLISECONDS);
|
||||
events.ScheduleEvent(EVENT_THROW_AXE, 8 * IN_MILLISECONDS);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -33,7 +33,7 @@ public:
|
||||
{
|
||||
instance_blackrock_spireMapScript(InstanceMap* map) : InstanceScript(map) {}
|
||||
|
||||
uint32 Encounter[MAX_ENCOUNTER];
|
||||
uint32 encounter[MAX_ENCOUNTER];
|
||||
std::string m_strInstData;
|
||||
uint64 HighlordOmokk;
|
||||
uint64 ShadowHunterVoshgajin;
|
||||
@@ -53,27 +53,27 @@ public:
|
||||
void Initialize()
|
||||
{
|
||||
SetBossNumber(MAX_ENCOUNTER);
|
||||
HighlordOmokk = 0;
|
||||
ShadowHunterVoshgajin = 0;
|
||||
WarMasterVoone = 0;
|
||||
MotherSmolderweb = 0;
|
||||
UrokDoomhowl = 0;
|
||||
QuartermasterZigris = 0;
|
||||
GizrultheSlavener = 0;
|
||||
Halycon = 0;
|
||||
OverlordWyrmthalak = 0;
|
||||
PyroguardEmberseer = 0;
|
||||
WarchiefRendBlackhand = 0;
|
||||
Gyth = 0;
|
||||
TheBeast = 0;
|
||||
GeneralDrakkisath = 0;
|
||||
HighlordOmokk = 0;
|
||||
ShadowHunterVoshgajin = 0;
|
||||
WarMasterVoone = 0;
|
||||
MotherSmolderweb = 0;
|
||||
UrokDoomhowl = 0;
|
||||
QuartermasterZigris = 0;
|
||||
GizrultheSlavener = 0;
|
||||
Halycon = 0;
|
||||
OverlordWyrmthalak = 0;
|
||||
PyroguardEmberseer = 0;
|
||||
WarchiefRendBlackhand = 0;
|
||||
Gyth = 0;
|
||||
TheBeast = 0;
|
||||
GeneralDrakkisath = 0;
|
||||
}
|
||||
|
||||
bool IsEncounterInProgress() const
|
||||
{
|
||||
for (uint8 i = 0; i < MAX_ENCOUNTER; ++i)
|
||||
{
|
||||
if (Encounter[i] == IN_PROGRESS)
|
||||
if (encounter[i] == IN_PROGRESS)
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
||||
Reference in New Issue
Block a user