refactor(Scripts/HallOfLightning): modernize scripts (#23209)
This commit is contained in:
@@ -106,19 +106,9 @@ enum Yells
|
|||||||
EMOTE_BERSEKER_STANCE = 8,
|
EMOTE_BERSEKER_STANCE = 8,
|
||||||
};
|
};
|
||||||
|
|
||||||
class boss_bjarngrim : public CreatureScript
|
struct boss_bjarngrim : public npc_escortAI
|
||||||
{
|
{
|
||||||
public:
|
boss_bjarngrim(Creature* creature) : npc_escortAI(creature), summons(creature)
|
||||||
boss_bjarngrim() : CreatureScript("boss_bjarngrim") { }
|
|
||||||
|
|
||||||
CreatureAI* GetAI(Creature* creature) const override
|
|
||||||
{
|
|
||||||
return GetHallsOfLightningAI<boss_bjarngrimAI>(creature);
|
|
||||||
}
|
|
||||||
|
|
||||||
struct boss_bjarngrimAI : public npc_escortAI
|
|
||||||
{
|
|
||||||
boss_bjarngrimAI(Creature* creature) : npc_escortAI(creature), summons(creature)
|
|
||||||
{
|
{
|
||||||
m_pInstance = creature->GetInstanceScript();
|
m_pInstance = creature->GetInstanceScript();
|
||||||
|
|
||||||
@@ -141,11 +131,6 @@ public:
|
|||||||
Start(true, ObjectGuid::Empty, nullptr, false, true);
|
Start(true, ObjectGuid::Empty, nullptr, false, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
InstanceScript* m_pInstance;
|
|
||||||
EventMap events;
|
|
||||||
SummonList summons;
|
|
||||||
uint8 m_uiStance;
|
|
||||||
|
|
||||||
void Reset() override
|
void Reset() override
|
||||||
{
|
{
|
||||||
events.Reset();
|
events.Reset();
|
||||||
@@ -371,25 +356,17 @@ public:
|
|||||||
|
|
||||||
DoMeleeAttackIfReady();
|
DoMeleeAttackIfReady();
|
||||||
}
|
}
|
||||||
};
|
|
||||||
|
private:
|
||||||
|
InstanceScript* m_pInstance;
|
||||||
|
EventMap events;
|
||||||
|
SummonList summons;
|
||||||
|
uint8 m_uiStance;
|
||||||
};
|
};
|
||||||
|
|
||||||
class npc_stormforged_lieutenant : public CreatureScript
|
struct npc_stormforged_lieutenant : public ScriptedAI
|
||||||
{
|
{
|
||||||
public:
|
npc_stormforged_lieutenant(Creature* creature) : ScriptedAI(creature) { }
|
||||||
npc_stormforged_lieutenant() : CreatureScript("npc_stormforged_lieutenant") { }
|
|
||||||
|
|
||||||
CreatureAI* GetAI(Creature* creature) const override
|
|
||||||
{
|
|
||||||
return GetHallsOfLightningAI<npc_stormforged_lieutenantAI>(creature);
|
|
||||||
}
|
|
||||||
|
|
||||||
struct npc_stormforged_lieutenantAI : public ScriptedAI
|
|
||||||
{
|
|
||||||
npc_stormforged_lieutenantAI(Creature* creature) : ScriptedAI(creature) { }
|
|
||||||
|
|
||||||
EventMap events;
|
|
||||||
ObjectGuid BjarngrimGUID;
|
|
||||||
|
|
||||||
void Reset() override
|
void Reset() override
|
||||||
{
|
{
|
||||||
@@ -433,11 +410,14 @@ public:
|
|||||||
|
|
||||||
DoMeleeAttackIfReady();
|
DoMeleeAttackIfReady();
|
||||||
}
|
}
|
||||||
};
|
|
||||||
|
private:
|
||||||
|
EventMap events;
|
||||||
|
ObjectGuid BjarngrimGUID;
|
||||||
};
|
};
|
||||||
|
|
||||||
void AddSC_boss_bjarngrim()
|
void AddSC_boss_bjarngrim()
|
||||||
{
|
{
|
||||||
new boss_bjarngrim();
|
RegisterHallOfLightningCreatureAI(boss_bjarngrim);
|
||||||
new npc_stormforged_lieutenant();
|
RegisterHallOfLightningCreatureAI(npc_stormforged_lieutenant);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -68,28 +68,13 @@ enum IonarEvents
|
|||||||
EVENT_RESTORE = 5,
|
EVENT_RESTORE = 5,
|
||||||
};
|
};
|
||||||
|
|
||||||
class boss_ionar : public CreatureScript
|
struct boss_ionar : public BossAI
|
||||||
{
|
{
|
||||||
public:
|
boss_ionar(Creature* creature) : BossAI(creature, DATA_IONAR), summons(creature)
|
||||||
boss_ionar() : CreatureScript("boss_ionar") { }
|
|
||||||
|
|
||||||
CreatureAI* GetAI(Creature* creature) const override
|
|
||||||
{
|
|
||||||
return GetHallsOfLightningAI<boss_ionarAI>(creature);
|
|
||||||
}
|
|
||||||
|
|
||||||
struct boss_ionarAI : public ScriptedAI
|
|
||||||
{
|
|
||||||
boss_ionarAI(Creature* creature) : ScriptedAI(creature), summons(creature)
|
|
||||||
{
|
{
|
||||||
m_pInstance = creature->GetInstanceScript();
|
m_pInstance = creature->GetInstanceScript();
|
||||||
}
|
}
|
||||||
|
|
||||||
InstanceScript* m_pInstance;
|
|
||||||
EventMap events;
|
|
||||||
SummonList summons;
|
|
||||||
uint8 HealthCheck;
|
|
||||||
|
|
||||||
void Reset() override
|
void Reset() override
|
||||||
{
|
{
|
||||||
HealthCheck = 50;
|
HealthCheck = 50;
|
||||||
@@ -223,24 +208,17 @@ public:
|
|||||||
|
|
||||||
DoMeleeAttackIfReady();
|
DoMeleeAttackIfReady();
|
||||||
}
|
}
|
||||||
};
|
|
||||||
|
private:
|
||||||
|
InstanceScript* m_pInstance;
|
||||||
|
EventMap events;
|
||||||
|
SummonList summons;
|
||||||
|
uint8 HealthCheck;
|
||||||
};
|
};
|
||||||
|
|
||||||
class npc_spark_of_ionar : public CreatureScript
|
struct npc_spark_of_ionar : public ScriptedAI
|
||||||
{
|
{
|
||||||
public:
|
npc_spark_of_ionar(Creature* creature) : ScriptedAI(creature) { }
|
||||||
npc_spark_of_ionar() : CreatureScript("npc_spark_of_ionar") { }
|
|
||||||
|
|
||||||
CreatureAI* GetAI(Creature* creature) const override
|
|
||||||
{
|
|
||||||
return GetHallsOfLightningAI<npc_spark_of_ionarAI>(creature);
|
|
||||||
}
|
|
||||||
|
|
||||||
struct npc_spark_of_ionarAI : public ScriptedAI
|
|
||||||
{
|
|
||||||
npc_spark_of_ionarAI(Creature* creature) : ScriptedAI(creature) { }
|
|
||||||
|
|
||||||
bool returning;
|
|
||||||
|
|
||||||
void MoveInLineOfSight(Unit*) override { }
|
void MoveInLineOfSight(Unit*) override { }
|
||||||
void UpdateAI(uint32) override { }
|
void UpdateAI(uint32) override { }
|
||||||
@@ -272,7 +250,9 @@ public:
|
|||||||
me->DespawnOrUnsummon(1s);
|
me->DespawnOrUnsummon(1s);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
|
||||||
|
private:
|
||||||
|
bool returning;
|
||||||
};
|
};
|
||||||
|
|
||||||
// 52658, 59795 - Static Overload
|
// 52658, 59795 - Static Overload
|
||||||
@@ -302,7 +282,7 @@ class spell_ionar_static_overload : public AuraScript
|
|||||||
|
|
||||||
void AddSC_boss_ionar()
|
void AddSC_boss_ionar()
|
||||||
{
|
{
|
||||||
new boss_ionar();
|
RegisterHallOfLightningCreatureAI(boss_ionar);
|
||||||
new npc_spark_of_ionar();
|
RegisterHallOfLightningCreatureAI(npc_spark_of_ionar);
|
||||||
RegisterSpellScript(spell_ionar_static_overload);
|
RegisterSpellScript(spell_ionar_static_overload);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -60,32 +60,15 @@ enum LokenEvents
|
|||||||
EVENT_AURA_REMOVE = 5
|
EVENT_AURA_REMOVE = 5
|
||||||
};
|
};
|
||||||
|
|
||||||
class boss_loken : public CreatureScript
|
struct boss_loken : public BossAI
|
||||||
{
|
{
|
||||||
public:
|
boss_loken(Creature* creature) : BossAI(creature, DATA_LOKEN)
|
||||||
boss_loken() : CreatureScript("boss_loken") { }
|
|
||||||
|
|
||||||
CreatureAI* GetAI(Creature* creature) const override
|
|
||||||
{
|
|
||||||
return GetHallsOfLightningAI<boss_lokenAI>(creature);
|
|
||||||
}
|
|
||||||
|
|
||||||
struct boss_lokenAI : public ScriptedAI
|
|
||||||
{
|
|
||||||
boss_lokenAI(Creature* creature) : ScriptedAI(creature)
|
|
||||||
{
|
{
|
||||||
m_pInstance = creature->GetInstanceScript();
|
m_pInstance = creature->GetInstanceScript();
|
||||||
if (m_pInstance)
|
if (m_pInstance)
|
||||||
isActive = m_pInstance->GetData(TYPE_LOKEN_INTRO);
|
isActive = m_pInstance->GetData(TYPE_LOKEN_INTRO);
|
||||||
}
|
}
|
||||||
|
|
||||||
InstanceScript* m_pInstance;
|
|
||||||
EventMap events;
|
|
||||||
|
|
||||||
bool isActive;
|
|
||||||
uint32 IntroTimer;
|
|
||||||
uint8 HealthCheck;
|
|
||||||
|
|
||||||
void MoveInLineOfSight(Unit*) override { }
|
void MoveInLineOfSight(Unit*) override { }
|
||||||
|
|
||||||
void Reset() override
|
void Reset() override
|
||||||
@@ -251,7 +234,13 @@ public:
|
|||||||
|
|
||||||
DoMeleeAttackIfReady();
|
DoMeleeAttackIfReady();
|
||||||
}
|
}
|
||||||
};
|
private:
|
||||||
|
InstanceScript* m_pInstance;
|
||||||
|
EventMap events;
|
||||||
|
|
||||||
|
bool isActive;
|
||||||
|
uint32 IntroTimer;
|
||||||
|
uint8 HealthCheck;
|
||||||
};
|
};
|
||||||
|
|
||||||
class spell_loken_pulsing_shockwave : public SpellScript
|
class spell_loken_pulsing_shockwave : public SpellScript
|
||||||
@@ -276,6 +265,6 @@ class spell_loken_pulsing_shockwave : public SpellScript
|
|||||||
|
|
||||||
void AddSC_boss_loken()
|
void AddSC_boss_loken()
|
||||||
{
|
{
|
||||||
new boss_loken();
|
RegisterHallOfLightningCreatureAI(boss_loken);
|
||||||
RegisterSpellScript(spell_loken_pulsing_shockwave);
|
RegisterSpellScript(spell_loken_pulsing_shockwave);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -78,31 +78,13 @@ enum Yells
|
|||||||
EMOTE_SHATTER = 6,
|
EMOTE_SHATTER = 6,
|
||||||
};
|
};
|
||||||
|
|
||||||
class boss_volkhan : public CreatureScript
|
struct boss_volkhan : public BossAI
|
||||||
{
|
{
|
||||||
public:
|
boss_volkhan(Creature* creature) : BossAI(creature, DATA_VOLKHAN), summons(creature)
|
||||||
boss_volkhan() : CreatureScript("boss_volkhan") { }
|
|
||||||
|
|
||||||
CreatureAI* GetAI(Creature* creature) const override
|
|
||||||
{
|
|
||||||
return GetHallsOfLightningAI<boss_volkhanAI>(creature);
|
|
||||||
}
|
|
||||||
|
|
||||||
struct boss_volkhanAI : public ScriptedAI
|
|
||||||
{
|
|
||||||
boss_volkhanAI(Creature* creature) : ScriptedAI(creature), summons(creature)
|
|
||||||
{
|
{
|
||||||
m_pInstance = creature->GetInstanceScript();
|
m_pInstance = creature->GetInstanceScript();
|
||||||
}
|
}
|
||||||
|
|
||||||
InstanceScript* m_pInstance;
|
|
||||||
EventMap events;
|
|
||||||
SummonList summons;
|
|
||||||
uint8 HealthCheck;
|
|
||||||
float x, y, z;
|
|
||||||
uint8 PointID;
|
|
||||||
uint8 ShatteredCount;
|
|
||||||
|
|
||||||
void Reset() override
|
void Reset() override
|
||||||
{
|
{
|
||||||
x = y = z = PointID = ShatteredCount = 0;
|
x = y = z = PointID = ShatteredCount = 0;
|
||||||
@@ -316,29 +298,24 @@ public:
|
|||||||
|
|
||||||
DoMeleeAttackIfReady();
|
DoMeleeAttackIfReady();
|
||||||
}
|
}
|
||||||
};
|
|
||||||
|
private:
|
||||||
|
InstanceScript* m_pInstance;
|
||||||
|
EventMap events;
|
||||||
|
SummonList summons;
|
||||||
|
uint8 HealthCheck;
|
||||||
|
float x, y, z;
|
||||||
|
uint8 PointID;
|
||||||
|
uint8 ShatteredCount;
|
||||||
};
|
};
|
||||||
|
|
||||||
class npc_molten_golem : public CreatureScript
|
struct npc_molten_golem : public ScriptedAI
|
||||||
{
|
{
|
||||||
public:
|
npc_molten_golem(Creature* creature) : ScriptedAI(creature)
|
||||||
npc_molten_golem() : CreatureScript("npc_molten_golem") { }
|
|
||||||
|
|
||||||
CreatureAI* GetAI(Creature* creature) const override
|
|
||||||
{
|
|
||||||
return GetHallsOfLightningAI<npc_molten_golemAI>(creature);
|
|
||||||
}
|
|
||||||
|
|
||||||
struct npc_molten_golemAI : public ScriptedAI
|
|
||||||
{
|
|
||||||
npc_molten_golemAI(Creature* creature) : ScriptedAI(creature)
|
|
||||||
{
|
{
|
||||||
m_pInstance = creature->GetInstanceScript();
|
m_pInstance = creature->GetInstanceScript();
|
||||||
}
|
}
|
||||||
|
|
||||||
EventMap events;
|
|
||||||
InstanceScript* m_pInstance;
|
|
||||||
|
|
||||||
void Reset() override
|
void Reset() override
|
||||||
{
|
{
|
||||||
events.Reset();
|
events.Reset();
|
||||||
@@ -374,7 +351,7 @@ public:
|
|||||||
{
|
{
|
||||||
if (me->GetEntry() == NPC_BRITTLE_GOLEM && param == ACTION_SHATTER)
|
if (me->GetEntry() == NPC_BRITTLE_GOLEM && param == ACTION_SHATTER)
|
||||||
{
|
{
|
||||||
if (Creature* volkhan = ObjectAccessor::GetCreature(*me, m_pInstance->GetGuidData(TYPE_VOLKHAN)))
|
if (Creature* volkhan = m_pInstance->GetCreature(DATA_VOLKHAN))
|
||||||
volkhan->AI()->DoAction(ACTION_DESTROYED);
|
volkhan->AI()->DoAction(ACTION_DESTROYED);
|
||||||
|
|
||||||
me->CastSpell(me, me->GetMap()->IsHeroic() ? SPELL_SHATTER_H : SPELL_SHATTER_N, true);
|
me->CastSpell(me, me->GetMap()->IsHeroic() ? SPELL_SHATTER_H : SPELL_SHATTER_N, true);
|
||||||
@@ -407,7 +384,9 @@ public:
|
|||||||
|
|
||||||
DoMeleeAttackIfReady();
|
DoMeleeAttackIfReady();
|
||||||
}
|
}
|
||||||
};
|
private:
|
||||||
|
EventMap events;
|
||||||
|
InstanceScript* m_pInstance;
|
||||||
};
|
};
|
||||||
|
|
||||||
enum monumentSpells
|
enum monumentSpells
|
||||||
@@ -443,19 +422,9 @@ enum monumentEvents
|
|||||||
EVENT_UNFREEZE = 20,
|
EVENT_UNFREEZE = 20,
|
||||||
};
|
};
|
||||||
|
|
||||||
class npc_hol_monument : public CreatureScript
|
struct npc_hol_monument : public ScriptedAI
|
||||||
{
|
{
|
||||||
public:
|
npc_hol_monument(Creature* creature) : ScriptedAI(creature)
|
||||||
npc_hol_monument() : CreatureScript("npc_hol_monument") {}
|
|
||||||
|
|
||||||
CreatureAI* GetAI(Creature* creature) const override
|
|
||||||
{
|
|
||||||
return GetHallsOfLightningAI<npc_hol_monumentAI>(creature);
|
|
||||||
}
|
|
||||||
|
|
||||||
struct npc_hol_monumentAI : public ScriptedAI
|
|
||||||
{
|
|
||||||
npc_hol_monumentAI(Creature* creature) : ScriptedAI(creature)
|
|
||||||
{
|
{
|
||||||
_attackGUID.Clear();
|
_attackGUID.Clear();
|
||||||
_isActive = urand(0, 1);
|
_isActive = urand(0, 1);
|
||||||
@@ -463,14 +432,6 @@ public:
|
|||||||
me->CastSpell(me, SPELL_FREEZE_ANIM, true);
|
me->CastSpell(me, SPELL_FREEZE_ANIM, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
EventMap events;
|
|
||||||
bool _isActive;
|
|
||||||
ObjectGuid _attackGUID;
|
|
||||||
|
|
||||||
void Reset() override
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
void MoveInLineOfSight(Unit* who) override
|
void MoveInLineOfSight(Unit* who) override
|
||||||
{
|
{
|
||||||
if (_attackGUID)
|
if (_attackGUID)
|
||||||
@@ -572,12 +533,16 @@ public:
|
|||||||
|
|
||||||
DoMeleeAttackIfReady();
|
DoMeleeAttackIfReady();
|
||||||
}
|
}
|
||||||
};
|
|
||||||
|
private:
|
||||||
|
EventMap events;
|
||||||
|
bool _isActive;
|
||||||
|
ObjectGuid _attackGUID;
|
||||||
};
|
};
|
||||||
|
|
||||||
void AddSC_boss_volkhan()
|
void AddSC_boss_volkhan()
|
||||||
{
|
{
|
||||||
new boss_volkhan();
|
RegisterHallOfLightningCreatureAI(boss_volkhan);
|
||||||
new npc_molten_golem();
|
RegisterHallOfLightningCreatureAI(npc_molten_golem);
|
||||||
new npc_hol_monument();
|
RegisterHallOfLightningCreatureAI(npc_hol_monument);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,6 +24,15 @@
|
|||||||
|
|
||||||
#define HallsOfLightningScriptName "instance_halls_of_lightning"
|
#define HallsOfLightningScriptName "instance_halls_of_lightning"
|
||||||
|
|
||||||
|
enum BossIds
|
||||||
|
{
|
||||||
|
DATA_BJARNGRIM = 0,
|
||||||
|
DATA_IONAR = 1,
|
||||||
|
DATA_LOKEN = 2,
|
||||||
|
DATA_VOLKHAN = 3,
|
||||||
|
MAX_ENCOUNTERS
|
||||||
|
};
|
||||||
|
|
||||||
enum HoLEvents
|
enum HoLEvents
|
||||||
{
|
{
|
||||||
TYPE_BJARNGRIM = 0,
|
TYPE_BJARNGRIM = 0,
|
||||||
@@ -60,4 +69,6 @@ inline AI* GetHallsOfLightningAI(T* obj)
|
|||||||
return GetInstanceAI<AI>(obj, HallsOfLightningScriptName);
|
return GetInstanceAI<AI>(obj, HallsOfLightningScriptName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define RegisterHallOfLightningCreatureAI(ai_name) RegisterCreatureAIWithFactory(ai_name, GetHallsOfLightningAI)
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
+21
-37
@@ -32,35 +32,19 @@ public:
|
|||||||
|
|
||||||
struct instance_halls_of_lightning_InstanceMapScript : public InstanceScript
|
struct instance_halls_of_lightning_InstanceMapScript : public InstanceScript
|
||||||
{
|
{
|
||||||
instance_halls_of_lightning_InstanceMapScript(Map* pMap) : InstanceScript(pMap) { Initialize(); };
|
instance_halls_of_lightning_InstanceMapScript(Map* pMap) : InstanceScript(pMap)
|
||||||
|
|
||||||
uint32 m_auiEncounter[MAX_ENCOUNTER];
|
|
||||||
|
|
||||||
ObjectGuid m_uiGeneralBjarngrimGUID;
|
|
||||||
ObjectGuid m_uiIonarGUID;
|
|
||||||
ObjectGuid m_uiLokenGUID;
|
|
||||||
ObjectGuid m_uiVolkhanGUID;
|
|
||||||
|
|
||||||
ObjectGuid m_uiBjarngrimDoorGUID;
|
|
||||||
ObjectGuid m_uiVolkhanDoorGUID;
|
|
||||||
ObjectGuid m_uiIonarDoorGUID;
|
|
||||||
ObjectGuid m_uiLokenDoorGUID;
|
|
||||||
ObjectGuid m_uiLokenGlobeGUID;
|
|
||||||
|
|
||||||
bool volkhanAchievement;
|
|
||||||
bool bjarngrimAchievement;
|
|
||||||
|
|
||||||
void Initialize() override
|
|
||||||
{
|
{
|
||||||
SetHeaders(DataHeader);
|
SetHeaders(DataHeader);
|
||||||
memset(&m_auiEncounter, 0, sizeof(m_auiEncounter));
|
SetBossNumber(MAX_ENCOUNTERS);
|
||||||
|
|
||||||
volkhanAchievement = false;
|
volkhanAchievement = false;
|
||||||
bjarngrimAchievement = false;
|
bjarngrimAchievement = false;
|
||||||
}
|
};
|
||||||
|
|
||||||
bool IsEncounterInProgress() const override
|
bool IsEncounterInProgress() const override
|
||||||
{
|
{
|
||||||
|
if (InstanceScript::IsEncounterInProgress())
|
||||||
|
return true;
|
||||||
|
|
||||||
for (uint8 i = 0; i < MAX_ENCOUNTER; ++i)
|
for (uint8 i = 0; i < MAX_ENCOUNTER; ++i)
|
||||||
{
|
{
|
||||||
if (m_auiEncounter[i] == IN_PROGRESS && i != TYPE_LOKEN_INTRO)
|
if (m_auiEncounter[i] == IN_PROGRESS && i != TYPE_LOKEN_INTRO)
|
||||||
@@ -195,22 +179,22 @@ public:
|
|||||||
return m_auiEncounter[uiType];
|
return m_auiEncounter[uiType];
|
||||||
}
|
}
|
||||||
|
|
||||||
ObjectGuid GetGuidData(uint32 uiData) const override
|
private:
|
||||||
{
|
uint32 m_auiEncounter[MAX_ENCOUNTER];
|
||||||
switch (uiData)
|
|
||||||
{
|
|
||||||
case TYPE_BJARNGRIM:
|
|
||||||
return m_uiGeneralBjarngrimGUID;
|
|
||||||
case TYPE_VOLKHAN:
|
|
||||||
return m_uiVolkhanGUID;
|
|
||||||
case TYPE_IONAR:
|
|
||||||
return m_uiIonarGUID;
|
|
||||||
case TYPE_LOKEN:
|
|
||||||
return m_uiLokenGUID;
|
|
||||||
}
|
|
||||||
|
|
||||||
return ObjectGuid::Empty;
|
ObjectGuid m_uiGeneralBjarngrimGUID;
|
||||||
}
|
ObjectGuid m_uiIonarGUID;
|
||||||
|
ObjectGuid m_uiLokenGUID;
|
||||||
|
ObjectGuid m_uiVolkhanGUID;
|
||||||
|
|
||||||
|
ObjectGuid m_uiBjarngrimDoorGUID;
|
||||||
|
ObjectGuid m_uiVolkhanDoorGUID;
|
||||||
|
ObjectGuid m_uiIonarDoorGUID;
|
||||||
|
ObjectGuid m_uiLokenDoorGUID;
|
||||||
|
ObjectGuid m_uiLokenGlobeGUID;
|
||||||
|
|
||||||
|
bool volkhanAchievement;
|
||||||
|
bool bjarngrimAchievement;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user