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 ***/ *** SQL END ***/
#include "ScriptedPch.h" #include "ScriptedPch.h"
#include "drak_tharon_keep.h" #include "drak_tharon_keep.h"
#include "SpellId.h"
enum Spells enum Spells
{ {
SPELL_INFECTED_WOUND = 49637, SPELL_INFECTED_WOUND = SPELL_INFECTED_WOUND_49637,
SPELL_CRUSH = 49639, SPELL_CRUSH = SPELL_CRUSH_49639,
SPELL_CORPSE_EXPLODE = 49555, SPELL_CORPSE_EXPLODE = SPELL_CORPSE_EXPLODE_49555,
SPELL_CONSUME = 49380, SPELL_CONSUME = SPELL_CONSUME_49380,
SPELL_CONSUME_AURA = SPELL_CONSUME_49381,
//Heroic spells //Heroic spells
H_SPELL_CORPSE_EXPLODE = 59807, H_SPELL_CORPSE_EXPLODE = SPELL_CORPSE_EXPLODE_59807,
H_SPELL_CONSUME = 59803 H_SPELL_CONSUME = SPELL_CONSUME_59803,
H_SPELL_CONSUME_AURA = SPELL_CONSUME_59805,
}; };
//not in db //not in db
enum Yells enum Yells
@@ -94,8 +97,7 @@ struct TRINITY_DLL_DECL boss_trollgoreAI : public ScriptedAI
lSummons.DespawnAll(); lSummons.DespawnAll();
if (m_creature->HasAura(DUNGEON_MODE(SPELL_CONSUME,H_SPELL_CONSUME))) m_creature->RemoveAura(DUNGEON_MODE(SPELL_CONSUME_AURA,H_SPELL_CONSUME_AURA));
m_creature->RemoveAura(DUNGEON_MODE(SPELL_CONSUME,H_SPELL_CONSUME));
if (pInstance) if (pInstance)
pInstance->SetData(DATA_TROLLGORE_EVENT, NOT_STARTED); 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)); uint32 spawnNumber = urand(2,DUNGEON_MODE(3,5));
for (uint8 i = 0; i < spawnNumber; ++i) 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); uiSpawnTimer = urand(30000,40000);
} else uiSpawnTimer -= diff; } else uiSpawnTimer -= diff;
@@ -132,16 +134,10 @@ struct TRINITY_DLL_DECL boss_trollgoreAI : public ScriptedAI
if (bAchiev) if (bAchiev)
{ {
if (uiAuraCountTimer <= diff) Aura *pConsumeAura = m_creature->GetAura(DUNGEON_MODE(SPELL_CONSUME_AURA,H_SPELL_CONSUME_AURA));
{
if (Aura *pConsumeAura = m_creature->GetAura(DUNGEON_MODE(SPELL_CONSUME,H_SPELL_CONSUME)))
{
if (pConsumeAura && pConsumeAura->GetStackAmount() > 9) if (pConsumeAura && pConsumeAura->GetStackAmount() > 9)
bAchiev = false; bAchiev = false;
} }
uiAuraCountTimer = 16000;
} else uiAuraCountTimer -= diff;
}
if (uiCrushTimer <= diff) if (uiCrushTimer <= diff)
{ {
@@ -188,6 +184,8 @@ struct TRINITY_DLL_DECL boss_trollgoreAI : public ScriptedAI
void JustSummoned(Creature* summon) void JustSummoned(Creature* summon)
{ {
lSummons.push_back(summon->GetGUID());
if (summon->AI())
summon->AI()->AttackStart(m_creature); summon->AI()->AttackStart(m_creature);
} }
}; };