feat(Core/Instance): Add instance validation for creature scripts (#4596)

This commit is contained in:
Kitzunu
2021-04-05 15:34:26 +02:00
committed by GitHub
parent 60f865fce6
commit f9d708b450
371 changed files with 1315 additions and 767 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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();
}
}

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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
{

View File

@@ -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);
}
};

View File

@@ -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