*Fix Anzu multiple spawns, by Oculus

--HG--
branch : trunk
This commit is contained in:
maximius
2009-08-13 17:05:15 -07:00
parent ad4267ce11
commit 5d4ffbb90a
4 changed files with 36 additions and 3 deletions
@@ -5,6 +5,10 @@
#ifndef DEF_SETHEKK_HALLS_H
#define DEF_SETHEKK_HALLS_H
#define DATA_IKISSDOOREVENT 1
enum
{
DATA_IKISSDOOREVENT = 1,
TYPE_ANZU_ENCOUNTER = 2,
};
#endif
@@ -24,20 +24,37 @@ EndScriptData */
#include "precompiled.h"
#include "def_sethekk_halls.h"
#define IKISS_DOOR 177203
enum
{
NPC_ANZU = 23035,
IKISS_DOOR = 177203,
};
struct TRINITY_DLL_DECL instance_sethekk_halls : public ScriptedInstance
{
instance_sethekk_halls(Map* pMap) : ScriptedInstance(pMap) {Initialize();};
uint32 AnzuEncounter;
uint64 m_uiIkissDoorGUID;
void Initialize()
{
AnzuEncounter = NOT_STARTED;
m_uiIkissDoorGUID = 0;
}
void OnGameObjectCreate(GameObject *pGo, bool add)
void OnCreatureCreate(Creature* pCreature, bool add)
{
if (pCreature->GetEntry() == NPC_ANZU && AnzuEncounter >= IN_PROGRESS)
{
pCreature->DealDamage(pCreature, pCreature->GetMaxHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
pCreature->RemoveCorpse();
} else {
AnzuEncounter = IN_PROGRESS;
}
}
void OnGameObjectCreate(GameObject* pGo, bool add)
{
if (pGo->GetEntry() == IKISS_DOOR)
m_uiIkissDoorGUID = pGo->GetGUID();
@@ -51,6 +68,9 @@ struct TRINITY_DLL_DECL instance_sethekk_halls : public ScriptedInstance
if (data == DONE)
DoUseDoorOrButton(m_uiIkissDoorGUID,DAY*IN_MILISECONDS);
break;
case TYPE_ANZU_ENCOUNTER:
AnzuEncounter = data;
break;
}
}
};