Fix Script DrakTharon/Trollgore.

- fix adds spawn points.
- fix achievement Consumption Junction.

--HG--
branch : trunk
This commit is contained in:
Trazom62
2010-02-01 21:28:50 +01:00
parent a91bf2f028
commit 70425115f0
@@ -29,16 +29,19 @@ update creature_template set scriptname = 'boss_trollgore' where entry = '';
*** SQL END ***/
#include "ScriptedPch.h"
#include "drak_tharon_keep.h"
#include "SpellId.h"
enum Spells
{
SPELL_INFECTED_WOUND = 49637,
SPELL_CRUSH = 49639,
SPELL_CORPSE_EXPLODE = 49555,
SPELL_CONSUME = 49380,
SPELL_INFECTED_WOUND = SPELL_INFECTED_WOUND_49637,
SPELL_CRUSH = SPELL_CRUSH_49639,
SPELL_CORPSE_EXPLODE = SPELL_CORPSE_EXPLODE_49555,
SPELL_CONSUME = SPELL_CONSUME_49380,
SPELL_CONSUME_AURA = SPELL_CONSUME_49381,
//Heroic spells
H_SPELL_CORPSE_EXPLODE = 59807,
H_SPELL_CONSUME = 59803
H_SPELL_CORPSE_EXPLODE = SPELL_CORPSE_EXPLODE_59807,
H_SPELL_CONSUME = SPELL_CONSUME_59803,
H_SPELL_CONSUME_AURA = SPELL_CONSUME_59805,
};
//not in db
enum Yells
@@ -94,8 +97,7 @@ struct TRINITY_DLL_DECL boss_trollgoreAI : public ScriptedAI
lSummons.DespawnAll();
if (m_creature->HasAura(DUNGEON_MODE(SPELL_CONSUME,H_SPELL_CONSUME)))
m_creature->RemoveAura(DUNGEON_MODE(SPELL_CONSUME,H_SPELL_CONSUME));
m_creature->RemoveAura(DUNGEON_MODE(SPELL_CONSUME_AURA,H_SPELL_CONSUME_AURA));
if (pInstance)
pInstance->SetData(DATA_TROLLGORE_EVENT, NOT_STARTED);
@@ -119,7 +121,7 @@ struct TRINITY_DLL_DECL boss_trollgoreAI : public ScriptedAI
{
uint32 spawnNumber = urand(2,DUNGEON_MODE(3,5));
for (uint8 i = 0; i < spawnNumber; ++i)
DoSpawnCreature(RAND(NPC_DRAKKARI_INVADER_1,NPC_DRAKKARI_INVADER_2), AddSpawnPoint.GetPositionX(), AddSpawnPoint.GetPositionY(), AddSpawnPoint.GetPositionZ(), AddSpawnPoint.GetOrientation(), TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 90000);
DoSummon(RAND(NPC_DRAKKARI_INVADER_1,NPC_DRAKKARI_INVADER_2), AddSpawnPoint, 0, TEMPSUMMON_DEAD_DESPAWN);
uiSpawnTimer = urand(30000,40000);
} else uiSpawnTimer -= diff;
@@ -132,16 +134,10 @@ struct TRINITY_DLL_DECL boss_trollgoreAI : public ScriptedAI
if (bAchiev)
{
if (uiAuraCountTimer <= diff)
{
if (Aura *pConsumeAura = m_creature->GetAura(DUNGEON_MODE(SPELL_CONSUME,H_SPELL_CONSUME)))
{
Aura *pConsumeAura = m_creature->GetAura(DUNGEON_MODE(SPELL_CONSUME_AURA,H_SPELL_CONSUME_AURA));
if (pConsumeAura && pConsumeAura->GetStackAmount() > 9)
bAchiev = false;
}
uiAuraCountTimer = 16000;
} else uiAuraCountTimer -= diff;
}
if (uiCrushTimer <= diff)
{
@@ -188,6 +184,8 @@ struct TRINITY_DLL_DECL boss_trollgoreAI : public ScriptedAI
void JustSummoned(Creature* summon)
{
lSummons.push_back(summon->GetGUID());
if (summon->AI())
summon->AI()->AttackStart(m_creature);
}
};