mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-02-17 01:04:34 +00:00
feat(Core/Instance): Add instance validation for creature scripts (#4596)
This commit is contained in:
@@ -188,7 +188,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* pCreature) const override
|
||||
{
|
||||
return new boss_malygosAI (pCreature);
|
||||
return GetEyeOfEternityAI<boss_malygosAI>(pCreature);
|
||||
}
|
||||
|
||||
struct boss_malygosAI : public ScriptedAI
|
||||
@@ -852,7 +852,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* pCreature) const override
|
||||
{
|
||||
return new npc_vortex_rideAI (pCreature);
|
||||
return GetEyeOfEternityAI<npc_vortex_rideAI> (pCreature);
|
||||
}
|
||||
|
||||
struct npc_vortex_rideAI : public VehicleAI
|
||||
@@ -950,7 +950,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* pCreature) const override
|
||||
{
|
||||
return new npc_power_sparkAI (pCreature);
|
||||
return GetEyeOfEternityAI<npc_power_sparkAI>(pCreature);
|
||||
}
|
||||
|
||||
struct npc_power_sparkAI : public NullCreatureAI
|
||||
@@ -1046,7 +1046,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* pCreature) const override
|
||||
{
|
||||
return new npc_nexus_lordAI (pCreature);
|
||||
return GetEyeOfEternityAI<npc_nexus_lordAI>(pCreature);
|
||||
}
|
||||
|
||||
struct npc_nexus_lordAI : public ScriptedAI
|
||||
@@ -1139,7 +1139,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* pCreature) const override
|
||||
{
|
||||
return new npc_scion_of_eternityAI (pCreature);
|
||||
return GetEyeOfEternityAI<npc_scion_of_eternityAI>(pCreature);
|
||||
}
|
||||
|
||||
struct npc_scion_of_eternityAI : public ScriptedAI
|
||||
@@ -1213,7 +1213,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* pCreature) const override
|
||||
{
|
||||
return new npc_hover_diskAI (pCreature);
|
||||
return GetEyeOfEternityAI<npc_hover_diskAI>(pCreature);
|
||||
}
|
||||
|
||||
struct npc_hover_diskAI : public VehicleAI
|
||||
@@ -1355,7 +1355,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* pCreature) const override
|
||||
{
|
||||
return new npc_alexstraszaAI (pCreature);
|
||||
return GetEyeOfEternityAI<npc_alexstraszaAI>(pCreature);
|
||||
}
|
||||
|
||||
struct npc_alexstraszaAI : public ScriptedAI
|
||||
@@ -1412,7 +1412,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* pCreature) const override
|
||||
{
|
||||
return new npc_eoe_wyrmrest_skytalonAI (pCreature);
|
||||
return GetEyeOfEternityAI<npc_eoe_wyrmrest_skytalonAI>(pCreature);
|
||||
}
|
||||
|
||||
struct npc_eoe_wyrmrest_skytalonAI : public VehicleAI
|
||||
|
||||
@@ -8,6 +8,8 @@
|
||||
#include "Chat.h"
|
||||
#include "CreatureAIImpl.h"
|
||||
|
||||
#define EyeOfEternityScriptName "instance_eye_of_eternity"
|
||||
|
||||
enum Objects
|
||||
{
|
||||
GO_NEXUS_PLATFORM = 193070,
|
||||
@@ -101,4 +103,10 @@ private:
|
||||
uint64 _playerGUID;
|
||||
};
|
||||
|
||||
template <class AI, class T>
|
||||
inline AI* GetEyeOfEternityAI(T* obj)
|
||||
{
|
||||
return GetInstanceAI<AI>(obj, EyeOfEternityScriptName);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
@@ -61,7 +61,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new boss_anomalusAI (creature);
|
||||
return GetNexusAI<boss_anomalusAI>(creature);
|
||||
}
|
||||
|
||||
struct boss_anomalusAI : public BossAI
|
||||
|
||||
@@ -37,7 +37,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return GetInstanceAI<boss_commander_stoutbeardAI>(creature);
|
||||
return GetNexusAI<boss_commander_stoutbeardAI>(creature);
|
||||
}
|
||||
|
||||
struct boss_commander_stoutbeardAI : public BossAI
|
||||
|
||||
@@ -46,7 +46,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return GetInstanceAI<boss_keristraszaAI>(creature);
|
||||
return GetNexusAI<boss_keristraszaAI>(creature);
|
||||
}
|
||||
|
||||
struct boss_keristraszaAI : public BossAI
|
||||
@@ -199,4 +199,4 @@ void AddSC_boss_keristrasza()
|
||||
{
|
||||
new boss_keristrasza();
|
||||
new achievement_intense_cold();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -67,7 +67,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return GetInstanceAI<boss_magus_telestraAI>(creature);
|
||||
return GetNexusAI<boss_magus_telestraAI>(creature);
|
||||
}
|
||||
|
||||
struct boss_magus_telestraAI : public BossAI
|
||||
|
||||
@@ -54,7 +54,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return GetInstanceAI<boss_ormorokAI>(creature);
|
||||
return GetNexusAI<boss_ormorokAI>(creature);
|
||||
}
|
||||
|
||||
struct boss_ormorokAI : public BossAI
|
||||
@@ -174,7 +174,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* pCreature) const override
|
||||
{
|
||||
return GetInstanceAI<npc_crystal_spikeAI>(pCreature);
|
||||
return GetNexusAI<npc_crystal_spikeAI>(pCreature);
|
||||
}
|
||||
|
||||
struct npc_crystal_spikeAI : public NullCreatureAI
|
||||
|
||||
@@ -185,7 +185,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return GetInstanceAI<npc_crystalline_frayerAI>(creature);
|
||||
return GetNexusAI<npc_crystalline_frayerAI>(creature);
|
||||
}
|
||||
|
||||
struct npc_crystalline_frayerAI : public ScriptedAI
|
||||
|
||||
@@ -5,13 +5,18 @@
|
||||
#ifndef DEF_NEXUS_H
|
||||
#define DEF_NEXUS_H
|
||||
|
||||
#include "CreatureAIImpl.h"
|
||||
#include "GameEventMgr.h"
|
||||
#include "GameEventMgr.h"
|
||||
#include "GridNotifiers.h"
|
||||
#include "GridNotifiers.h"
|
||||
#include "PassiveAI.h"
|
||||
#include "Player.h"
|
||||
#include "SpellAuras.h"
|
||||
#include "SpellScript.h"
|
||||
|
||||
#define NexusScriptName "instance_nexus"
|
||||
|
||||
enum eTypes
|
||||
{
|
||||
DATA_MAGUS_TELESTRA_EVENT = 0,
|
||||
@@ -44,4 +49,10 @@ enum Npcs
|
||||
GO_ORMOROK_SPHERE = 188528
|
||||
};
|
||||
|
||||
template <class AI, class T>
|
||||
inline AI* GetNexusAI(T* obj)
|
||||
{
|
||||
return GetInstanceAI<AI>(obj, NexusScriptName);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
@@ -49,7 +49,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* pCreature) const override
|
||||
{
|
||||
return new boss_drakosAI (pCreature);
|
||||
return GetOculusAI<boss_drakosAI>(pCreature);
|
||||
}
|
||||
|
||||
struct boss_drakosAI : public ScriptedAI
|
||||
@@ -174,7 +174,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* pCreature) const override
|
||||
{
|
||||
return new npc_oculus_unstable_sphereAI (pCreature);
|
||||
return GetOculusAI<npc_oculus_unstable_sphereAI>(pCreature);
|
||||
}
|
||||
|
||||
struct npc_oculus_unstable_sphereAI : public ScriptedAI
|
||||
|
||||
@@ -60,7 +60,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* pCreature) const override
|
||||
{
|
||||
return new boss_eregosAI (pCreature);
|
||||
return GetOculusAI<boss_eregosAI>(pCreature);
|
||||
}
|
||||
|
||||
struct boss_eregosAI : public ScriptedAI
|
||||
|
||||
@@ -82,7 +82,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* pCreature) const override
|
||||
{
|
||||
return new boss_uromAI (pCreature);
|
||||
return GetOculusAI<boss_uromAI>(pCreature);
|
||||
}
|
||||
|
||||
struct boss_uromAI : public ScriptedAI
|
||||
|
||||
@@ -69,7 +69,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* pCreature) const override
|
||||
{
|
||||
return new boss_varosAI (pCreature);
|
||||
return GetOculusAI<boss_varosAI>(pCreature);
|
||||
}
|
||||
struct boss_varosAI : public ScriptedAI
|
||||
{
|
||||
|
||||
@@ -68,7 +68,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new npc_oculus_drakegiverAI(creature);
|
||||
return GetOculusAI<npc_oculus_drakegiverAI>(creature);
|
||||
}
|
||||
|
||||
struct npc_oculus_drakegiverAI : public ScriptedAI {
|
||||
@@ -324,7 +324,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new npc_oculus_drakeAI (creature);
|
||||
return GetOculusAI<npc_oculus_drakeAI>(creature);
|
||||
}
|
||||
|
||||
struct npc_oculus_drakeAI : public VehicleAI
|
||||
@@ -509,7 +509,7 @@ public:
|
||||
};
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new npc_centrifuge_constructAI(creature);
|
||||
return GetOculusAI<npc_centrifuge_constructAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -5,10 +5,13 @@
|
||||
#ifndef DEF_OCULUS_H
|
||||
#define DEF_OCULUS_H
|
||||
|
||||
#include "CreatureAIImpl.h"
|
||||
#include "SpellAuraEffects.h"
|
||||
#include "SpellAuras.h"
|
||||
#include "SpellScript.h"
|
||||
|
||||
#define OculusScriptName "instance_oculus"
|
||||
|
||||
Position const VerdisaPOS = { 949.056f, 1032.97f, 359.967f, 1.035795f };
|
||||
Position const BelgaristraszPOS = { 941.355f, 1044.26f, 359.967f, 0.222459f };
|
||||
Position const EternosPOS = { 943.202f, 1059.35f, 359.967f, 5.757278f };
|
||||
@@ -91,4 +94,11 @@ enum MISC
|
||||
{
|
||||
POINT_MOVE_DRAKES
|
||||
};
|
||||
|
||||
template <class AI, class T>
|
||||
inline AI* GetOculusAI(T* obj)
|
||||
{
|
||||
return GetInstanceAI<AI>(obj, OculusScriptName);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user