mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-01-22 05:06:24 +00:00
feat(Core/Instance): Add instance validation for creature scripts (#4596)
This commit is contained in:
@@ -53,4 +53,12 @@ struct AISpellInfoType
|
||||
|
||||
AISpellInfoType* GetAISpellInfo(uint32 i);
|
||||
|
||||
bool InstanceHasScript(WorldObject const* obj, char const* scriptName);
|
||||
|
||||
template<class AI, class T>
|
||||
inline AI* GetInstanceAI(T* obj, char const* scriptName)
|
||||
{
|
||||
return InstanceHasScript(obj, scriptName) ? new AI(obj) : nullptr;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
@@ -5288,7 +5288,7 @@ void ObjectMgr::ValidateSpellScripts()
|
||||
bool valid = true;
|
||||
if (!spellScript && !auraScript)
|
||||
{
|
||||
sLog->outError("TSCR: Functions GetSpellScript() and GetAuraScript() of script `%s` do not return objects - script skipped", GetScriptName(sitr->second->second));
|
||||
sLog->outError("TSCR: Functions GetSpellScript() and GetAuraScript() of script `%s` do not return objects - script skipped", GetScriptName(sitr->second->second).c_str());
|
||||
valid = false;
|
||||
}
|
||||
if (spellScript)
|
||||
@@ -8849,6 +8849,12 @@ void ObjectMgr::LoadScriptNames()
|
||||
sLog->outString();
|
||||
}
|
||||
|
||||
std::string const& ObjectMgr::GetScriptName(uint32 id) const
|
||||
{
|
||||
static std::string const empty = "";
|
||||
return (id < _scriptNamesStore.size()) ? _scriptNamesStore[id] : empty;
|
||||
}
|
||||
|
||||
uint32 ObjectMgr::GetScriptId(const char* name)
|
||||
{
|
||||
// use binary search to find the script name in the sorted vector
|
||||
|
||||
@@ -1299,7 +1299,7 @@ public:
|
||||
|
||||
void LoadScriptNames();
|
||||
ScriptNameContainer& GetScriptNames() { return _scriptNamesStore; }
|
||||
[[nodiscard]] const char* GetScriptName(uint32 id) const { return id < _scriptNamesStore.size() ? _scriptNamesStore[id].c_str() : ""; }
|
||||
[[nodiscard]] std::string const& GetScriptName(uint32 id) const;
|
||||
uint32 GetScriptId(const char* name);
|
||||
|
||||
[[nodiscard]] SpellClickInfoMapBounds GetSpellClickInfoMapBounds(uint32 creature_id) const
|
||||
|
||||
@@ -468,3 +468,13 @@ std::string InstanceScript::GetBossStateName(uint8 state)
|
||||
return "INVALID";
|
||||
}
|
||||
}
|
||||
|
||||
bool InstanceHasScript(WorldObject const* obj, char const* scriptName)
|
||||
{
|
||||
if (InstanceMap* instance = obj->GetMap()->ToInstanceMap())
|
||||
{
|
||||
return instance->GetScriptName() == scriptName;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -231,25 +231,4 @@ private:
|
||||
uint32 completedEncounters; // completed encounter mask, bit indexes are DungeonEncounter.dbc boss numbers, used for packets
|
||||
};
|
||||
|
||||
template<class AI, class T>
|
||||
AI* GetInstanceAI(T* obj, char const* scriptName)
|
||||
{
|
||||
if (InstanceMap* instance = obj->GetMap()->ToInstanceMap())
|
||||
if (instance->GetInstanceScript())
|
||||
if (instance->GetScriptId() == sObjectMgr->GetScriptId(scriptName))
|
||||
return new AI(obj);
|
||||
|
||||
return nullptr;
|
||||
};
|
||||
|
||||
template<class AI, class T>
|
||||
AI* GetInstanceAI(T* obj)
|
||||
{
|
||||
if (InstanceMap* instance = obj->GetMap()->ToInstanceMap())
|
||||
if (instance->GetInstanceScript())
|
||||
return new AI(obj);
|
||||
|
||||
return nullptr;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -2592,7 +2592,7 @@ template void Map::RemoveFromMap(DynamicObject*, bool);
|
||||
InstanceMap::InstanceMap(uint32 id, uint32 InstanceId, uint8 SpawnMode, Map* _parent)
|
||||
: Map(id, InstanceId, SpawnMode, _parent),
|
||||
m_resetAfterUnload(false), m_unloadWhenEmpty(false),
|
||||
instance_script(nullptr), i_script_id(0)
|
||||
instance_data(nullptr), i_script_id(0)
|
||||
{
|
||||
//lets initialize visibility distance for dungeons
|
||||
InstanceMap::InitVisibilityDistance();
|
||||
@@ -2610,9 +2610,8 @@ InstanceMap::InstanceMap(uint32 id, uint32 InstanceId, uint8 SpawnMode, Map* _pa
|
||||
|
||||
InstanceMap::~InstanceMap()
|
||||
{
|
||||
delete instance_script;
|
||||
instance_script = nullptr;
|
||||
sInstanceSaveMgr->DeleteInstanceSaveIfNeeded(GetInstanceId(), true);
|
||||
delete instance_data;
|
||||
instance_data = nullptr;
|
||||
}
|
||||
|
||||
void InstanceMap::InitVisibilityDistance()
|
||||
@@ -2768,7 +2767,7 @@ bool InstanceMap::AddPlayerToMap(Player* player)
|
||||
{
|
||||
WorldPacket data(SMSG_INSTANCE_LOCK_WARNING_QUERY, 9);
|
||||
data << uint32(60000);
|
||||
data << uint32(instance_script ? instance_script->GetCompletedEncounterMask() : 0);
|
||||
data << uint32(instance_data ? instance_data->GetCompletedEncounterMask() : 0);
|
||||
data << uint8(0);
|
||||
player->GetSession()->SendPacket(&data);
|
||||
player->SetPendingBind(mapSave->GetInstanceId(), 60000);
|
||||
@@ -2783,8 +2782,8 @@ bool InstanceMap::AddPlayerToMap(Player* player)
|
||||
// this will acquire the same mutex so it cannot be in the previous block
|
||||
Map::AddPlayerToMap(player);
|
||||
|
||||
if (instance_script)
|
||||
instance_script->OnPlayerEnter(player);
|
||||
if (instance_data)
|
||||
instance_data->OnPlayerEnter(player);
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -2794,8 +2793,8 @@ void InstanceMap::Update(const uint32 t_diff, const uint32 s_diff, bool /*thread
|
||||
Map::Update(t_diff, s_diff);
|
||||
|
||||
if (t_diff)
|
||||
if (instance_script)
|
||||
instance_script->Update(t_diff);
|
||||
if (instance_data)
|
||||
instance_data->Update(t_diff);
|
||||
}
|
||||
|
||||
void InstanceMap::RemovePlayerFromMap(Player* player, bool remove)
|
||||
@@ -2815,12 +2814,12 @@ void InstanceMap::AfterPlayerUnlinkFromMap()
|
||||
|
||||
void InstanceMap::CreateInstanceScript(bool load, std::string data, uint32 completedEncounterMask)
|
||||
{
|
||||
if (instance_script != nullptr)
|
||||
if (instance_data != nullptr)
|
||||
return;
|
||||
#ifdef ELUNA
|
||||
bool isElunaAI = false;
|
||||
instance_script = sEluna->GetInstanceData(this);
|
||||
if (instance_script)
|
||||
instance_data = sEluna->GetInstanceData(this);
|
||||
if (instance_data)
|
||||
isElunaAI = true;
|
||||
|
||||
// if Eluna AI was fetched succesfully we should not call CreateInstanceData nor set the unused scriptID
|
||||
@@ -2831,13 +2830,13 @@ void InstanceMap::CreateInstanceScript(bool load, std::string data, uint32 compl
|
||||
if (mInstance)
|
||||
{
|
||||
i_script_id = mInstance->ScriptId;
|
||||
instance_script = sScriptMgr->CreateInstanceScript(this);
|
||||
instance_data = sScriptMgr->CreateInstanceScript(this);
|
||||
}
|
||||
#ifdef ELUNA
|
||||
}
|
||||
#endif
|
||||
|
||||
if (!instance_script)
|
||||
if (!instance_data)
|
||||
return;
|
||||
|
||||
#ifdef ELUNA
|
||||
@@ -2845,13 +2844,13 @@ void InstanceMap::CreateInstanceScript(bool load, std::string data, uint32 compl
|
||||
// initialize should then be called only if load is false
|
||||
if (!isElunaAI || !load)
|
||||
#endif
|
||||
instance_script->Initialize();
|
||||
instance_data->Initialize();
|
||||
|
||||
if (load)
|
||||
{
|
||||
instance_script->SetCompletedEncountersMask(completedEncounterMask, false);
|
||||
instance_data->SetCompletedEncountersMask(completedEncounterMask, false);
|
||||
if (data != "")
|
||||
instance_script->Load(data.c_str());
|
||||
instance_data->Load(data.c_str());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2900,6 +2899,11 @@ bool InstanceMap::Reset(uint8 method, std::list<uint32>* globalResetSkipList)
|
||||
return m_mapRefManager.isEmpty();
|
||||
}
|
||||
|
||||
std::string const& InstanceMap::GetScriptName() const
|
||||
{
|
||||
return sObjectMgr->GetScriptName(i_script_id);
|
||||
}
|
||||
|
||||
void InstanceMap::PermBindAllPlayers()
|
||||
{
|
||||
if (!IsDungeon())
|
||||
|
||||
@@ -685,8 +685,10 @@ public:
|
||||
void Update(const uint32, const uint32, bool thread = true) override;
|
||||
void CreateInstanceScript(bool load, std::string data, uint32 completedEncounterMask);
|
||||
bool Reset(uint8 method, std::list<uint32>* globalSkipList = nullptr);
|
||||
uint32 GetScriptId() { return i_script_id; }
|
||||
InstanceScript* GetInstanceScript() { return instance_script; }
|
||||
[[nodiscard]] uint32 GetScriptId() const { return i_script_id; }
|
||||
[[nodiscard]] std::string const& GetScriptName() const;
|
||||
[[nodiscard]] InstanceScript* GetInstanceScript() { return instance_data; }
|
||||
[[nodiscard]] InstanceScript const* GetInstanceScript() const { return instance_data; }
|
||||
void PermBindAllPlayers();
|
||||
void UnloadAll() override;
|
||||
bool CanEnter(Player* player, bool loginCheck = false) override;
|
||||
@@ -699,7 +701,7 @@ public:
|
||||
private:
|
||||
bool m_resetAfterUnload;
|
||||
bool m_unloadWhenEmpty;
|
||||
InstanceScript* instance_script;
|
||||
InstanceScript* instance_data;
|
||||
uint32 i_script_id;
|
||||
};
|
||||
|
||||
|
||||
@@ -134,7 +134,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return GetInstanceAI<npc_grimstoneAI>(creature);
|
||||
return GetBlackrockDepthsAI<npc_grimstoneAI>(creature);
|
||||
}
|
||||
|
||||
struct npc_grimstoneAI : public npc_escortAI
|
||||
@@ -331,7 +331,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new npc_phalanxAI(creature);
|
||||
return GetBlackrockDepthsAI<npc_phalanxAI>(creature);
|
||||
}
|
||||
|
||||
struct npc_phalanxAI : public ScriptedAI
|
||||
@@ -500,7 +500,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return GetInstanceAI<npc_rocknotAI>(creature);
|
||||
return GetBlackrockDepthsAI<npc_rocknotAI>(creature);
|
||||
}
|
||||
|
||||
struct npc_rocknotAI : public npc_escortAI
|
||||
|
||||
@@ -7,6 +7,9 @@
|
||||
#ifndef DEF_BRD_H
|
||||
#define DEF_BRD_H
|
||||
|
||||
#include "CreatureAIImpl.h"
|
||||
#define BRDScriptName "instance_blackrock_depths"
|
||||
|
||||
enum FactionIds
|
||||
{
|
||||
FACTION_NEUTRAL = 734,
|
||||
@@ -56,4 +59,10 @@ enum DataTypes
|
||||
DATA_OPEN_COFFER_DOORS = 30
|
||||
};
|
||||
|
||||
template <class AI, class T>
|
||||
inline AI* GetBlackrockDepthsAI(T* obj)
|
||||
{
|
||||
return GetInstanceAI<AI>(obj, BRDScriptName);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
@@ -47,7 +47,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return GetInstanceAI<boss_ambassador_flamelashAI>(creature);
|
||||
return GetBlackrockDepthsAI<boss_ambassador_flamelashAI>(creature);
|
||||
}
|
||||
|
||||
struct boss_ambassador_flamelashAI : public BossAI
|
||||
@@ -208,7 +208,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return GetInstanceAI<npc_burning_spiritAI>(creature);
|
||||
return GetBlackrockDepthsAI<npc_burning_spiritAI>(creature);
|
||||
}
|
||||
|
||||
struct npc_burning_spiritAI : public CreatureAI
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
* Copyright (C) 2005-2009 MaNGOS <http://getmangos.com/>
|
||||
*/
|
||||
|
||||
#include "blackrock_depths.h"
|
||||
#include "ScriptedCreature.h"
|
||||
#include "ScriptMgr.h"
|
||||
|
||||
@@ -23,7 +24,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new boss_anubshiahAI(creature);
|
||||
return GetBlackrockDepthsAI<boss_anubshiahAI>(creature);
|
||||
}
|
||||
|
||||
struct boss_anubshiahAI : public ScriptedAI
|
||||
|
||||
@@ -27,7 +27,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return GetInstanceAI<boss_draganthaurissanAI>(creature);
|
||||
return GetBlackrockDepthsAI<boss_draganthaurissanAI>(creature);
|
||||
}
|
||||
|
||||
struct boss_draganthaurissanAI : public ScriptedAI
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
* Copyright (C) 2005-2009 MaNGOS <http://getmangos.com/>
|
||||
*/
|
||||
|
||||
#include "blackrock_depths.h"
|
||||
#include "ScriptedCreature.h"
|
||||
#include "ScriptMgr.h"
|
||||
|
||||
@@ -21,7 +22,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new boss_general_angerforgeAI(creature);
|
||||
return GetBlackrockDepthsAI<boss_general_angerforgeAI>(creature);
|
||||
}
|
||||
|
||||
struct boss_general_angerforgeAI : public ScriptedAI
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
* Copyright (C) 2005-2009 MaNGOS <http://getmangos.com/>
|
||||
*/
|
||||
|
||||
#include "blackrock_depths.h"
|
||||
#include "ScriptedCreature.h"
|
||||
#include "ScriptMgr.h"
|
||||
|
||||
@@ -20,7 +21,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new boss_gorosh_the_dervishAI(creature);
|
||||
return GetBlackrockDepthsAI<boss_gorosh_the_dervishAI>(creature);
|
||||
}
|
||||
|
||||
struct boss_gorosh_the_dervishAI : public ScriptedAI
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
* Copyright (C) 2005-2009 MaNGOS <http://getmangos.com/>
|
||||
*/
|
||||
|
||||
#include "blackrock_depths.h"
|
||||
#include "ScriptedCreature.h"
|
||||
#include "ScriptMgr.h"
|
||||
|
||||
@@ -21,7 +22,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new boss_grizzleAI(creature);
|
||||
return GetBlackrockDepthsAI<boss_grizzleAI>(creature);
|
||||
}
|
||||
|
||||
struct boss_grizzleAI : public ScriptedAI
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
* Copyright (C) 2005-2009 MaNGOS <http://getmangos.com/>
|
||||
*/
|
||||
|
||||
#include "blackrock_depths.h"
|
||||
#include "ScriptedCreature.h"
|
||||
#include "ScriptMgr.h"
|
||||
|
||||
@@ -22,7 +23,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new boss_high_interrogator_gerstahnAI(creature);
|
||||
return GetBlackrockDepthsAI<boss_high_interrogator_gerstahnAI>(creature);
|
||||
}
|
||||
|
||||
struct boss_high_interrogator_gerstahnAI : public ScriptedAI
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
* Copyright (C) 2005-2009 MaNGOS <http://getmangos.com/>
|
||||
*/
|
||||
|
||||
#include "blackrock_depths.h"
|
||||
#include "ScriptedCreature.h"
|
||||
#include "ScriptMgr.h"
|
||||
|
||||
@@ -13,11 +14,6 @@ enum Spells
|
||||
SPELL_WARSTOMP = 24375
|
||||
};
|
||||
|
||||
enum Misc
|
||||
{
|
||||
DATA_THRONE_DOOR = 24 // not id or guid of doors but number of enum in blackrock_depths.h
|
||||
};
|
||||
|
||||
class boss_magmus : public CreatureScript
|
||||
{
|
||||
public:
|
||||
@@ -25,7 +21,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new boss_magmusAI(creature);
|
||||
return GetBlackrockDepthsAI<boss_magmusAI>(creature);
|
||||
}
|
||||
|
||||
struct boss_magmusAI : public ScriptedAI
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
* Copyright (C) 2005-2009 MaNGOS <http://getmangos.com/>
|
||||
*/
|
||||
|
||||
#include "blackrock_depths.h"
|
||||
#include "ScriptedCreature.h"
|
||||
#include "ScriptMgr.h"
|
||||
|
||||
@@ -24,7 +25,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new boss_moira_bronzebeardAI(creature);
|
||||
return GetBlackrockDepthsAI<boss_moira_bronzebeardAI>(creature);
|
||||
}
|
||||
|
||||
struct boss_moira_bronzebeardAI : public ScriptedAI
|
||||
|
||||
@@ -126,7 +126,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return GetInstanceAI<boss_doomrelAI>(creature);
|
||||
return GetBlackrockDepthsAI<boss_doomrelAI>(creature);
|
||||
}
|
||||
|
||||
struct boss_doomrelAI : public ScriptedAI
|
||||
|
||||
@@ -9,6 +9,8 @@
|
||||
#ifndef DEF_BLACKROCK_SPIRE_H
|
||||
#define DEF_BLACKROCK_SPIRE_H
|
||||
|
||||
#include "CreatureAIImpl.h"
|
||||
|
||||
uint32 const EncounterCount = 23;
|
||||
|
||||
#define BRSScriptName "instance_blackrock_spire"
|
||||
@@ -115,4 +117,10 @@ enum npcspells
|
||||
SPELL_FINKLE_IS_EINHORN = 16710
|
||||
};
|
||||
|
||||
template <class AI, class T>
|
||||
inline AI* GetBlackrockSpireAI(T* obj)
|
||||
{
|
||||
return GetInstanceAI<AI>(obj, BRSScriptName);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
@@ -120,7 +120,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new boss_drakkisathAI(creature);
|
||||
return GetBlackrockSpireAI<boss_drakkisathAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -91,7 +91,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new boss_gizrul_the_slavenerAI(creature);
|
||||
return GetBlackrockSpireAI<boss_gizrul_the_slavenerAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -157,7 +157,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return GetInstanceAI<boss_gythAI>(creature);
|
||||
return GetBlackrockSpireAI<boss_gythAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -90,7 +90,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new boss_halyconAI(creature);
|
||||
return GetBlackrockSpireAI<boss_halyconAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -27,7 +27,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new boss_highlordomokkAI(creature);
|
||||
return GetBlackrockSpireAI<boss_highlordomokkAI>(creature);
|
||||
}
|
||||
|
||||
struct boss_highlordomokkAI : public BossAI
|
||||
|
||||
@@ -116,7 +116,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return GetInstanceAI<boss_lord_valthalakAI>(creature);
|
||||
return GetBlackrockSpireAI<boss_lord_valthalakAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -40,7 +40,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new boss_overlordwyrmthalakAI(creature);
|
||||
return GetBlackrockSpireAI<boss_overlordwyrmthalakAI>(creature);
|
||||
}
|
||||
|
||||
struct boss_overlordwyrmthalakAI : public BossAI
|
||||
|
||||
@@ -295,7 +295,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return GetInstanceAI<boss_pyroguard_emberseerAI>(creature);
|
||||
return GetBlackrockSpireAI<boss_pyroguard_emberseerAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -416,7 +416,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new npc_blackhand_incarceratorAI(creature);
|
||||
return GetBlackrockSpireAI<npc_blackhand_incarceratorAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -78,7 +78,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new boss_quatermasterzigrisAI(creature);
|
||||
return GetBlackrockSpireAI<boss_quatermasterzigrisAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -471,7 +471,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return GetInstanceAI<boss_rend_blackhandAI>(creature);
|
||||
return GetBlackrockSpireAI<boss_rend_blackhandAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -29,7 +29,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new boss_shadowvoshAI(creature);
|
||||
return GetBlackrockSpireAI<boss_shadowvoshAI>(creature);
|
||||
}
|
||||
|
||||
struct boss_shadowvoshAI : public BossAI
|
||||
|
||||
@@ -29,7 +29,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new boss_thebeastAI(creature);
|
||||
return GetBlackrockSpireAI<boss_thebeastAI>(creature);
|
||||
}
|
||||
|
||||
struct boss_thebeastAI : public BossAI
|
||||
|
||||
@@ -94,7 +94,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new boss_urok_doomhowlAI(creature);
|
||||
return GetBlackrockSpireAI<boss_urok_doomhowlAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -104,7 +104,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new boss_warmastervooneAI(creature);
|
||||
return GetBlackrockSpireAI<boss_warmastervooneAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -80,4 +80,10 @@ enum BWLMisc
|
||||
SAY_NEFARIAN_VAEL_INTRO = 100003, // latest id in broadcast_text atm
|
||||
};
|
||||
|
||||
template <class AI, class T>
|
||||
inline AI* GetBlackwingLairAI(T* obj)
|
||||
{
|
||||
return GetInstanceAI<AI>(obj, BWLScriptName);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
@@ -120,7 +120,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return GetInstanceAI<boss_broodlordAI>(creature);
|
||||
return GetBlackwingLairAI<boss_broodlordAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -281,7 +281,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return GetInstanceAI<boss_chromaggusAI>(creature);
|
||||
return GetBlackwingLairAI<boss_chromaggusAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -319,7 +319,7 @@ class go_chromaggus_lever : public GameObjectScript
|
||||
|
||||
GameObjectAI* GetAI(GameObject* go) const override
|
||||
{
|
||||
return GetInstanceAI<go_chromaggus_leverAI>(go);
|
||||
return GetBlackwingLairAI<go_chromaggus_leverAI>(go);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -78,7 +78,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return GetInstanceAI<boss_ebonrocAI>(creature);
|
||||
return GetBlackwingLairAI<boss_ebonrocAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -80,7 +80,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return GetInstanceAI<boss_firemawAI>(creature);
|
||||
return GetBlackwingLairAI<boss_firemawAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -86,7 +86,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return GetInstanceAI<boss_flamegorAI>(creature);
|
||||
return GetBlackwingLairAI<boss_flamegorAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -387,7 +387,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return GetInstanceAI<boss_victor_nefariusAI>(creature);
|
||||
return GetBlackwingLairAI<boss_victor_nefariusAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -595,7 +595,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return GetInstanceAI<boss_nefarianAI>(creature);
|
||||
return GetBlackwingLairAI<boss_nefarianAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -145,7 +145,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return GetInstanceAI<boss_razorgoreAI>(creature);
|
||||
return GetBlackwingLairAI<boss_razorgoreAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -267,7 +267,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return GetInstanceAI<boss_vaelAI>(creature);
|
||||
return GetBlackwingLairAI<boss_vaelAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -103,7 +103,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new boss_baron_geddonAI(creature);
|
||||
return GetMoltenCoreAI<boss_baron_geddonAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -85,7 +85,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new boss_garrAI(creature);
|
||||
return GetMoltenCoreAI<boss_garrAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -137,7 +137,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new npc_fireswornAI(creature);
|
||||
return GetMoltenCoreAI<npc_fireswornAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -88,7 +88,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new boss_gehennasAI(creature);
|
||||
return GetMoltenCoreAI<boss_gehennasAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -117,7 +117,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new boss_golemaggAI(creature);
|
||||
return GetMoltenCoreAI<boss_golemaggAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -178,7 +178,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return GetInstanceAI<npc_core_ragerAI>(creature);
|
||||
return GetMoltenCoreAI<npc_core_ragerAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -86,7 +86,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new boss_lucifronAI(creature);
|
||||
return GetMoltenCoreAI<boss_lucifronAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -105,7 +105,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new boss_magmadarAI(creature);
|
||||
return GetMoltenCoreAI<boss_magmadarAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -239,7 +239,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new npc_magmadar_core_houndAI(creature);
|
||||
return GetMoltenCoreAI<npc_magmadar_core_houndAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -195,7 +195,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return GetInstanceAI<boss_majordomoAI>(creature);
|
||||
return GetMoltenCoreAI<boss_majordomoAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -291,7 +291,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return GetInstanceAI<boss_ragnarosAI>(creature);
|
||||
return GetMoltenCoreAI<boss_ragnarosAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -323,7 +323,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return GetInstanceAI<npc_son_of_flameAI>(creature);
|
||||
return GetMoltenCoreAI<npc_son_of_flameAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -101,7 +101,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new boss_shazzrahAI(creature);
|
||||
return GetMoltenCoreAI<boss_shazzrahAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -117,7 +117,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new boss_sulfuronAI(creature);
|
||||
return GetMoltenCoreAI<boss_sulfuronAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -193,7 +193,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new npc_flamewaker_priestAI(creature);
|
||||
return GetMoltenCoreAI<npc_flamewaker_priestAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -9,6 +9,10 @@
|
||||
#ifndef DEF_MOLTEN_CORE_H
|
||||
#define DEF_MOLTEN_CORE_H
|
||||
|
||||
#include "CreatureAIImpl.h"
|
||||
|
||||
#define MCScriptName "instance_molten_core"
|
||||
|
||||
enum Encounters
|
||||
{
|
||||
BOSS_LUCIFRON = 0,
|
||||
@@ -68,4 +72,10 @@ enum Data
|
||||
DATA_RAGNAROS_ADDS = 0,
|
||||
};
|
||||
|
||||
template <class AI, class T>
|
||||
inline AI* GetMoltenCoreAI(T* obj)
|
||||
{
|
||||
return GetInstanceAI<AI>(obj, MCScriptName);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
@@ -90,6 +90,7 @@ set(scripts_STAT_SRCS
|
||||
${AC_SCRIPTS_DIR}/EasternKingdoms/zone_wetlands.cpp
|
||||
${AC_SCRIPTS_DIR}/EasternKingdoms/zone_arathi_highlands.cpp
|
||||
${AC_SCRIPTS_DIR}/EasternKingdoms/Gnomeregan/instance_gnomeregan.cpp
|
||||
${AC_SCRIPTS_DIR}/EasternKingdoms/Gnomeregan/gnomeregan.h
|
||||
${AC_SCRIPTS_DIR}/EasternKingdoms/zone_redridge_mountains.cpp
|
||||
${AC_SCRIPTS_DIR}/EasternKingdoms/zone_ironforge.cpp
|
||||
${AC_SCRIPTS_DIR}/EasternKingdoms/ScarletEnclave/chapter2.cpp
|
||||
@@ -125,6 +126,7 @@ set(scripts_STAT_SRCS
|
||||
${AC_SCRIPTS_DIR}/EasternKingdoms/Deadmines/deadmines.h
|
||||
${AC_SCRIPTS_DIR}/EasternKingdoms/zone_duskwood.cpp
|
||||
${AC_SCRIPTS_DIR}/EasternKingdoms/ScarletMonastery/instance_scarlet_monastery.cpp
|
||||
${AC_SCRIPTS_DIR}/EasternKingdoms/ScarletMonastery/scarletmonastery.h
|
||||
${AC_SCRIPTS_DIR}/EasternKingdoms/zone_undercity.cpp
|
||||
${AC_SCRIPTS_DIR}/EasternKingdoms/ShadowfangKeep/instance_shadowfang_keep.cpp
|
||||
${AC_SCRIPTS_DIR}/EasternKingdoms/ShadowfangKeep/shadowfang_keep.h
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
* Originally written by Xinef - Copyright (C) 2016+ AzerothCore <www.azerothcore.org>, released under GNU AGPL v3 license: https://github.com/azerothcore/azerothcore-wotlk/blob/master/LICENSE-AGPL3
|
||||
*/
|
||||
|
||||
#include "deadmines.h"
|
||||
#include "ScriptedCreature.h"
|
||||
#include "ScriptMgr.h"
|
||||
|
||||
@@ -33,7 +34,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return GetInstanceAI<boss_mr_smiteAI>(creature);
|
||||
return GetDeadminesAI<boss_mr_smiteAI>(creature);
|
||||
}
|
||||
|
||||
struct boss_mr_smiteAI : public ScriptedAI
|
||||
|
||||
@@ -5,6 +5,10 @@
|
||||
#ifndef DEF_DEADMINES_H
|
||||
#define DEF_DEADMINES_H
|
||||
|
||||
#include "CreatureAIImpl.h"
|
||||
|
||||
#define DeadminesScriptName "instance_deadmines"
|
||||
|
||||
enum DataTypes
|
||||
{
|
||||
TYPE_RHAHK_ZOR = 0,
|
||||
@@ -18,4 +22,10 @@ enum GameObjects
|
||||
GO_IRON_CLAD_DOOR = 16397
|
||||
};
|
||||
|
||||
template <class AI, class T>
|
||||
inline AI* GetDeadminesAI(T* obj)
|
||||
{
|
||||
return GetInstanceAI<AI>(obj, DeadminesScriptName);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
18
src/server/scripts/EasternKingdoms/Gnomeregan/gnomeregan.h
Normal file
18
src/server/scripts/EasternKingdoms/Gnomeregan/gnomeregan.h
Normal file
@@ -0,0 +1,18 @@
|
||||
/*
|
||||
* Copyright (C) 2016+ AzerothCore <www.azerothcore.org>, released under GNU AGPL v3 license: https://github.com/azerothcore/azerothcore-wotlk/blob/master/LICENSE-AGPL3
|
||||
*/
|
||||
|
||||
#ifndef DEF_GNOMEREGAN_H
|
||||
#define DEF_GNOMEREGAN_H
|
||||
|
||||
#include "CreatureAIImpl.h"
|
||||
|
||||
#define GnomereganScriptName "instance_gnomeregan"
|
||||
|
||||
template <class AI, class T>
|
||||
inline AI* GetGnomereganAI(T* obj)
|
||||
{
|
||||
return GetInstanceAI<AI>(obj, GnomereganScriptName);
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -2,6 +2,7 @@
|
||||
* Originally written by Xinef - Copyright (C) 2016+ AzerothCore <www.azerothcore.org>, released under GNU AGPL v3 license: https://github.com/azerothcore/azerothcore-wotlk/blob/master/LICENSE-AGPL3
|
||||
*/
|
||||
|
||||
#include "gnomeregan.h"
|
||||
#include "InstanceScript.h"
|
||||
#include "PassiveAI.h"
|
||||
#include "Player.h"
|
||||
@@ -38,7 +39,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new npc_kernobeeAI(creature);
|
||||
return GetGnomereganAI<npc_kernobeeAI>(creature);
|
||||
}
|
||||
|
||||
bool OnQuestAccept(Player* player, Creature* creature, const Quest* quest) override
|
||||
|
||||
@@ -152,7 +152,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return GetInstanceAI<boss_curatorAI>(creature);
|
||||
return GetKarazhanAI<boss_curatorAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -104,7 +104,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return GetInstanceAI<boss_maiden_of_virtueAI>(creature);
|
||||
return GetKarazhanAI<boss_maiden_of_virtueAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -186,7 +186,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return GetInstanceAI<boss_midnightAI>(creature);
|
||||
return GetKarazhanAI<boss_midnightAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -299,7 +299,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return GetInstanceAI<boss_attumenAI>(creature);
|
||||
return GetKarazhanAI<boss_attumenAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -404,7 +404,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return GetInstanceAI<boss_attumen_midnightAI>(creature);
|
||||
return GetKarazhanAI<boss_attumen_midnightAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -241,7 +241,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return GetInstanceAI<boss_moroesAI>(creature);
|
||||
return GetKarazhanAI<boss_moroesAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -59,7 +59,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return GetInstanceAI<boss_netherspiteAI>(creature);
|
||||
return GetKarazhanAI<boss_netherspiteAI>(creature);
|
||||
}
|
||||
|
||||
struct boss_netherspiteAI : public ScriptedAI
|
||||
|
||||
@@ -60,7 +60,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new boss_nightbaneAI (creature);
|
||||
return GetKarazhanAI<boss_nightbaneAI>(creature);
|
||||
}
|
||||
|
||||
struct boss_nightbaneAI : public ScriptedAI
|
||||
|
||||
@@ -155,7 +155,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return GetInstanceAI<boss_malchezaarAI>(creature);
|
||||
return GetKarazhanAI<boss_malchezaarAI>(creature);
|
||||
}
|
||||
|
||||
struct boss_malchezaarAI : public ScriptedAI
|
||||
@@ -448,7 +448,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return GetInstanceAI<prince_axesAI>(creature);
|
||||
return GetKarazhanAI<prince_axesAI>(creature);
|
||||
}
|
||||
|
||||
struct prince_axesAI : public ScriptedAI
|
||||
|
||||
@@ -155,7 +155,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return GetInstanceAI<boss_servant_quartersAI>(creature);
|
||||
return GetKarazhanAI<boss_servant_quartersAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -546,7 +546,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return GetInstanceAI<boss_aranAI>(creature);
|
||||
return GetKarazhanAI<boss_aranAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -58,7 +58,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return GetInstanceAI<npc_kilrekAI>(creature);
|
||||
return GetKarazhanAI<npc_kilrekAI>(creature);
|
||||
}
|
||||
|
||||
struct npc_kilrekAI : public ScriptedAI
|
||||
@@ -123,7 +123,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new npc_demon_chainAI(creature);
|
||||
return GetKarazhanAI<npc_demon_chainAI>(creature);
|
||||
}
|
||||
|
||||
struct npc_demon_chainAI : public ScriptedAI
|
||||
@@ -160,7 +160,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new npc_fiendish_portalAI(creature);
|
||||
return GetKarazhanAI<npc_fiendish_portalAI>(creature);
|
||||
}
|
||||
|
||||
struct npc_fiendish_portalAI : public PassiveAI
|
||||
@@ -194,7 +194,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new npc_fiendish_impAI(creature);
|
||||
return GetKarazhanAI<npc_fiendish_impAI>(creature);
|
||||
}
|
||||
|
||||
struct npc_fiendish_impAI : public ScriptedAI
|
||||
@@ -236,7 +236,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return GetInstanceAI<boss_terestianAI>(creature);
|
||||
return GetKarazhanAI<boss_terestianAI>(creature);
|
||||
}
|
||||
|
||||
struct boss_terestianAI : public ScriptedAI
|
||||
|
||||
@@ -108,7 +108,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return GetInstanceAI<boss_dorotheeAI>(creature);
|
||||
return GetKarazhanAI<boss_dorotheeAI>(creature);
|
||||
}
|
||||
|
||||
struct boss_dorotheeAI : public ScriptedAI
|
||||
@@ -235,7 +235,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new npc_titoAI(creature);
|
||||
return GetKarazhanAI<npc_titoAI>(creature);
|
||||
}
|
||||
|
||||
struct npc_titoAI : public ScriptedAI
|
||||
@@ -306,7 +306,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return GetInstanceAI<boss_strawmanAI>(creature);
|
||||
return GetKarazhanAI<boss_strawmanAI>(creature);
|
||||
}
|
||||
|
||||
struct boss_strawmanAI : public ScriptedAI
|
||||
@@ -427,7 +427,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return GetInstanceAI<boss_tinheadAI>(creature);
|
||||
return GetKarazhanAI<boss_tinheadAI>(creature);
|
||||
}
|
||||
|
||||
struct boss_tinheadAI : public ScriptedAI
|
||||
@@ -543,7 +543,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return GetInstanceAI<boss_roarAI>(creature);
|
||||
return GetKarazhanAI<boss_roarAI>(creature);
|
||||
}
|
||||
|
||||
struct boss_roarAI : public ScriptedAI
|
||||
@@ -660,7 +660,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return GetInstanceAI<boss_croneAI>(creature);
|
||||
return GetKarazhanAI<boss_croneAI>(creature);
|
||||
}
|
||||
|
||||
struct boss_croneAI : public ScriptedAI
|
||||
@@ -739,7 +739,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new npc_cycloneAI(creature);
|
||||
return GetKarazhanAI<npc_cycloneAI>(creature);
|
||||
}
|
||||
|
||||
struct npc_cycloneAI : public ScriptedAI
|
||||
@@ -832,7 +832,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return GetInstanceAI<boss_bigbadwolfAI>(creature);
|
||||
return GetKarazhanAI<boss_bigbadwolfAI>(creature);
|
||||
}
|
||||
|
||||
struct boss_bigbadwolfAI : public ScriptedAI
|
||||
@@ -1032,7 +1032,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return GetInstanceAI<boss_julianneAI>(creature);
|
||||
return GetKarazhanAI<boss_julianneAI>(creature);
|
||||
}
|
||||
|
||||
struct boss_julianneAI : public ScriptedAI
|
||||
@@ -1151,7 +1151,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return GetInstanceAI<boss_romuloAI>(creature);
|
||||
return GetKarazhanAI<boss_romuloAI>(creature);
|
||||
}
|
||||
|
||||
struct boss_romuloAI : public ScriptedAI
|
||||
|
||||
@@ -395,7 +395,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new npc_barnesAI(creature);
|
||||
return GetKarazhanAI<npc_barnesAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -423,7 +423,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new npc_image_of_medivhAI(creature);
|
||||
return GetKarazhanAI<npc_image_of_medivhAI>(creature);
|
||||
}
|
||||
|
||||
struct npc_image_of_medivhAI : public ScriptedAI
|
||||
|
||||
@@ -21,6 +21,9 @@
|
||||
#ifndef DEF_KARAZHAN_H
|
||||
#define DEF_KARAZHAN_H
|
||||
|
||||
#include "CreatureAIImpl.h"
|
||||
|
||||
#define KarazhanScriptName "instance_karazhan"
|
||||
#define DataHeader "KZ"
|
||||
|
||||
uint32 const EncounterCount = 12;
|
||||
@@ -121,4 +124,10 @@ enum KarazhanSpells
|
||||
SPELL_BLINK = 29884
|
||||
};
|
||||
|
||||
template <class AI, class T>
|
||||
inline AI* GetKarazhanAI(T* obj)
|
||||
{
|
||||
return GetInstanceAI<AI>(obj, KarazhanScriptName);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
@@ -71,7 +71,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new boss_felblood_kaelthasAI(creature);
|
||||
return GetMagistersTerraceAI<boss_felblood_kaelthasAI>(creature);
|
||||
}
|
||||
|
||||
struct boss_felblood_kaelthasAI : public ScriptedAI
|
||||
|
||||
@@ -71,7 +71,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new boss_priestess_delrissaAI(creature);
|
||||
return GetMagistersTerraceAI<boss_priestess_delrissaAI>(creature);
|
||||
}
|
||||
|
||||
struct boss_priestess_delrissaAI : public ScriptedAI
|
||||
@@ -414,7 +414,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new boss_kagani_nightstrikeAI(creature);
|
||||
return GetMagistersTerraceAI<boss_kagani_nightstrikeAI>(creature);
|
||||
}
|
||||
|
||||
struct boss_kagani_nightstrikeAI : public boss_priestess_lackey_commonAI
|
||||
@@ -514,7 +514,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new boss_ellris_duskhallowAI(creature);
|
||||
return GetMagistersTerraceAI<boss_ellris_duskhallowAI>(creature);
|
||||
}
|
||||
|
||||
struct boss_ellris_duskhallowAI : public boss_priestess_lackey_commonAI
|
||||
@@ -592,7 +592,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new boss_eramas_brightblazeAI(creature);
|
||||
return GetMagistersTerraceAI<boss_eramas_brightblazeAI>(creature);
|
||||
}
|
||||
|
||||
struct boss_eramas_brightblazeAI : public boss_priestess_lackey_commonAI
|
||||
@@ -666,7 +666,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new boss_yazzaiAI(creature);
|
||||
return GetMagistersTerraceAI<boss_yazzaiAI>(creature);
|
||||
}
|
||||
|
||||
struct boss_yazzaiAI : public boss_priestess_lackey_commonAI
|
||||
@@ -774,7 +774,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new boss_warlord_salarisAI(creature);
|
||||
return GetMagistersTerraceAI<boss_warlord_salarisAI>(creature);
|
||||
}
|
||||
|
||||
struct boss_warlord_salarisAI : public boss_priestess_lackey_commonAI
|
||||
@@ -860,7 +860,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new boss_garaxxasAI(creature);
|
||||
return GetMagistersTerraceAI<boss_garaxxasAI>(creature);
|
||||
}
|
||||
|
||||
struct boss_garaxxasAI : public boss_priestess_lackey_commonAI
|
||||
@@ -949,7 +949,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new boss_apokoAI(creature);
|
||||
return GetMagistersTerraceAI<boss_apokoAI>(creature);
|
||||
}
|
||||
|
||||
struct boss_apokoAI : public boss_priestess_lackey_commonAI
|
||||
@@ -1047,7 +1047,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new boss_zelfanAI(creature);
|
||||
return GetMagistersTerraceAI<boss_zelfanAI>(creature);
|
||||
}
|
||||
|
||||
struct boss_zelfanAI : public boss_priestess_lackey_commonAI
|
||||
|
||||
@@ -46,7 +46,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return GetInstanceAI<boss_selin_fireheartAI>(creature);
|
||||
return GetMagistersTerraceAI<boss_selin_fireheartAI>(creature);
|
||||
};
|
||||
|
||||
struct boss_selin_fireheartAI : public ScriptedAI
|
||||
|
||||
@@ -52,7 +52,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new boss_vexallusAI(creature);
|
||||
return GetMagistersTerraceAI<boss_vexallusAI>(creature);
|
||||
};
|
||||
|
||||
struct boss_vexallusAI : public ScriptedAI
|
||||
|
||||
@@ -8,6 +8,9 @@
|
||||
#include "CreatureAI.h"
|
||||
#include "Player.h"
|
||||
#include "SpellScript.h"
|
||||
#include "CreatureAIImpl.h"
|
||||
|
||||
#define MTScriptName "instance_magisters_terrace"
|
||||
|
||||
enum MTData
|
||||
{
|
||||
@@ -37,4 +40,10 @@ enum MTGameObjects
|
||||
GO_ESCAPE_ORB = 188173
|
||||
};
|
||||
|
||||
template <class AI, class T>
|
||||
inline AI* GetMagistersTerraceAI(T* obj)
|
||||
{
|
||||
return GetInstanceAI<AI>(obj, MTScriptName);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
REWRITTEN BY XINEF
|
||||
*/
|
||||
|
||||
#include "scarletmonastery.h"
|
||||
#include "ScriptedCreature.h"
|
||||
#include "ScriptedGossip.h"
|
||||
#include "ScriptMgr.h"
|
||||
@@ -227,7 +228,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new npc_scarlet_guardAI(creature);
|
||||
return GetScarletMonasteryAI<npc_scarlet_guardAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -504,7 +505,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new npc_mograineAI(creature);
|
||||
return GetScarletMonasteryAI<npc_mograineAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -646,7 +647,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new boss_high_inquisitor_whitemaneAI(creature);
|
||||
return GetScarletMonasteryAI<boss_high_inquisitor_whitemaneAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -787,7 +788,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new npc_fairbanksAI(creature);
|
||||
return GetScarletMonasteryAI<npc_fairbanksAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
/*
|
||||
* Copyright (C) 2016+ AzerothCore <www.azerothcore.org>, released under GNU AGPL v3 license: https://github.com/azerothcore/azerothcore-wotlk/blob/master/LICENSE-AGPL3
|
||||
*/
|
||||
|
||||
#ifndef DEF_SCARLETMONANSTERY_H
|
||||
#define DEF_SCARLETMONANSTERY_H
|
||||
|
||||
#include "CreatureAIImpl.h"
|
||||
|
||||
#define ScarletMonasteryScriptName "instance_scarlet_monastery"
|
||||
|
||||
template <class AI, class T>
|
||||
inline AI* GetScarletMonasteryAI(T* obj)
|
||||
{
|
||||
return GetInstanceAI<AI>(obj, ScarletMonasteryScriptName);
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -212,7 +212,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return GetInstanceAI<boss_kirtonos_the_heraldAI>(creature);
|
||||
return GetScholomanceAI<boss_kirtonos_the_heraldAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
class instance_scholomance : public InstanceMapScript
|
||||
{
|
||||
public:
|
||||
instance_scholomance() : InstanceMapScript("instance_scholomance", 289) { }
|
||||
instance_scholomance() : InstanceMapScript(ScholomanceScriptName, 289) { }
|
||||
|
||||
InstanceScript* GetInstanceScript(InstanceMap* map) const override
|
||||
{
|
||||
|
||||
@@ -5,6 +5,10 @@
|
||||
#ifndef DEF_SCHOLOMANCE_H
|
||||
#define DEF_SCHOLOMANCE_H
|
||||
|
||||
#include "CreatureAIImpl.h"
|
||||
|
||||
#define ScholomanceScriptName "instance_scholomance"
|
||||
|
||||
enum DataTypes
|
||||
{
|
||||
DATA_KIRTONOS_THE_HERALD = 0,
|
||||
@@ -58,4 +62,10 @@ enum SpellIds
|
||||
SPELL_SHADOW_PORTAL_VAULTOFTHERAVENIAN = 17948
|
||||
};
|
||||
|
||||
template <class AI, class T>
|
||||
inline AI* GetScholomanceAI(T* obj)
|
||||
{
|
||||
return GetInstanceAI<AI>(obj, ScholomanceScriptName);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
@@ -142,7 +142,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return GetInstanceAI<boss_brutallusAI>(creature);
|
||||
return GetSunwellPlateauAI<boss_brutallusAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -386,7 +386,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return GetInstanceAI<npc_madrigosaAI>(creature);
|
||||
return GetSunwellPlateauAI<npc_madrigosaAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -209,7 +209,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return GetInstanceAI<boss_sacrolashAI>(creature);
|
||||
return GetSunwellPlateauAI<boss_sacrolashAI>(creature);
|
||||
};
|
||||
};
|
||||
|
||||
@@ -347,7 +347,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return GetInstanceAI<boss_alythessAI>(creature);
|
||||
return GetSunwellPlateauAI<boss_alythessAI>(creature);
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@@ -373,7 +373,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return GetInstanceAI<boss_felmystAI>(creature);
|
||||
return GetSunwellPlateauAI<boss_felmystAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -384,7 +384,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new npc_demonic_vaporAI(creature);
|
||||
return GetSunwellPlateauAI<npc_demonic_vaporAI>(creature);
|
||||
}
|
||||
|
||||
struct npc_demonic_vaporAI : public NullCreatureAI
|
||||
@@ -420,7 +420,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new npc_demonic_vapor_trailAI(creature);
|
||||
return GetSunwellPlateauAI<npc_demonic_vapor_trailAI>(creature);
|
||||
}
|
||||
|
||||
struct npc_demonic_vapor_trailAI : public NullCreatureAI
|
||||
|
||||
@@ -341,7 +341,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return GetInstanceAI<boss_kalecgosAI>(creature);
|
||||
return GetSunwellPlateauAI<boss_kalecgosAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -362,7 +362,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return GetInstanceAI<boss_kalecAI>(creature);
|
||||
return GetSunwellPlateauAI<boss_kalecAI>(creature);
|
||||
}
|
||||
|
||||
struct boss_kalecAI : public ScriptedAI
|
||||
@@ -479,7 +479,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return GetInstanceAI<boss_sathrovarrAI>(creature);
|
||||
return GetSunwellPlateauAI<boss_sathrovarrAI>(creature);
|
||||
}
|
||||
|
||||
struct boss_sathrovarrAI : public ScriptedAI
|
||||
|
||||
@@ -153,7 +153,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return GetInstanceAI<npc_kiljaeden_controllerAI>(creature);
|
||||
return GetSunwellPlateauAI<npc_kiljaeden_controllerAI>(creature);
|
||||
}
|
||||
|
||||
struct npc_kiljaeden_controllerAI : public NullCreatureAI
|
||||
@@ -650,7 +650,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return GetInstanceAI<boss_kiljaedenAI>(creature);
|
||||
return GetSunwellPlateauAI<boss_kiljaedenAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -762,7 +762,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return GetInstanceAI<npc_kalecgos_kjAI>(creature);
|
||||
return GetSunwellPlateauAI<npc_kalecgos_kjAI>(creature);
|
||||
}
|
||||
|
||||
struct npc_kalecgos_kjAI : public NullCreatureAI
|
||||
|
||||
@@ -138,7 +138,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return GetInstanceAI<boss_muruAI>(creature);
|
||||
return GetSunwellPlateauAI<boss_muruAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -248,7 +248,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return GetInstanceAI<boss_entropiusAI>(creature);
|
||||
return GetSunwellPlateauAI<boss_entropiusAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -259,7 +259,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return GetInstanceAI<npc_singularityAI>(creature);
|
||||
return GetSunwellPlateauAI<npc_singularityAI>(creature);
|
||||
}
|
||||
|
||||
struct npc_singularityAI : public NullCreatureAI
|
||||
|
||||
@@ -11,6 +11,8 @@
|
||||
#include "SpellAuraEffects.h"
|
||||
#include "SpellScript.h"
|
||||
|
||||
#define SWPScriptName "instance_sunwell_plateau"
|
||||
|
||||
enum DataTypes
|
||||
{
|
||||
DATA_KALECGOS = 0,
|
||||
@@ -86,4 +88,10 @@ enum SpellIds
|
||||
SPELL_SUNWELL_RADIANCE = 45769,
|
||||
};
|
||||
|
||||
template <class AI, class T>
|
||||
inline AI* GetSunwellPlateauAI(T* obj)
|
||||
{
|
||||
return GetInstanceAI<AI>(obj, SWPScriptName);
|
||||
}
|
||||
|
||||
#endif // SUNWELL_PLATEAU_H
|
||||
|
||||
@@ -363,7 +363,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return GetInstanceAI<boss_akilzonAI>(creature);
|
||||
return GetZulAmanAI<boss_akilzonAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -444,7 +444,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new npc_akilzon_eagleAI(creature);
|
||||
return GetZulAmanAI<npc_akilzon_eagleAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -305,7 +305,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return GetInstanceAI<boss_halazziAI>(creature);
|
||||
return GetZulAmanAI<boss_halazziAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -367,7 +367,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new npc_halazzi_lynxAI(creature);
|
||||
return GetZulAmanAI<npc_halazzi_lynxAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -498,7 +498,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return GetInstanceAI<boss_hex_lord_malacrassAI>(creature);
|
||||
return GetZulAmanAI<boss_hex_lord_malacrassAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -555,7 +555,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return GetInstanceAI<boss_thurgAI>(creature);
|
||||
return GetZulAmanAI<boss_thurgAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -652,7 +652,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return GetInstanceAI<boss_alyson_antilleAI>(creature);
|
||||
return GetZulAmanAI<boss_alyson_antilleAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -746,7 +746,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return GetInstanceAI<boss_lord_raadanAI>(creature);
|
||||
return GetZulAmanAI<boss_lord_raadanAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -787,7 +787,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return GetInstanceAI<boss_darkheartAI>(creature);
|
||||
return GetZulAmanAI<boss_darkheartAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -845,7 +845,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return GetInstanceAI<boss_slitherAI>(creature);
|
||||
return GetZulAmanAI<boss_slitherAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -887,7 +887,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return GetInstanceAI<boss_fenstalkerAI>(creature);
|
||||
return GetZulAmanAI<boss_fenstalkerAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -935,7 +935,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return GetInstanceAI<boss_koraggAI>(creature);
|
||||
return GetZulAmanAI<boss_koraggAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -436,7 +436,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return GetInstanceAI<boss_janalaiAI>(creature);
|
||||
return GetZulAmanAI<boss_janalaiAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -471,7 +471,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new npc_janalai_firebombAI(creature);
|
||||
return GetZulAmanAI<npc_janalai_firebombAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -603,7 +603,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return GetInstanceAI<npc_janalai_hatcherAI>(creature);
|
||||
return GetZulAmanAI<npc_janalai_hatcherAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -662,7 +662,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return GetInstanceAI<npc_janalai_hatchlingAI>(creature);
|
||||
return GetZulAmanAI<npc_janalai_hatchlingAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -673,7 +673,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new npc_janalai_eggAI(creature);
|
||||
return GetZulAmanAI<npc_janalai_eggAI>(creature);
|
||||
}
|
||||
|
||||
struct npc_janalai_eggAI : public ScriptedAI
|
||||
|
||||
@@ -451,7 +451,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return GetInstanceAI<boss_nalorakkAI>(creature);
|
||||
return GetZulAmanAI<boss_nalorakkAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -552,7 +552,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return GetInstanceAI<boss_zuljinAI>(creature);
|
||||
return GetZulAmanAI<boss_zuljinAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -588,7 +588,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new npc_zuljin_vortexAI(creature);
|
||||
return GetZulAmanAI<npc_zuljin_vortexAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -428,7 +428,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return GetInstanceAI<npc_forest_frogAI>(creature);
|
||||
return GetZulAmanAI<npc_forest_frogAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -475,7 +475,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new npc_zulaman_hostageAI(creature);
|
||||
return GetZulAmanAI<npc_zulaman_hostageAI>(creature);
|
||||
}
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
@@ -768,7 +768,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return GetInstanceAI<npc_harrison_jonesAI>(creature);
|
||||
return GetZulAmanAI<npc_harrison_jonesAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -7,6 +7,10 @@
|
||||
#ifndef DEF_ZULAMAN_H
|
||||
#define DEF_ZULAMAN_H
|
||||
|
||||
#include "CreatureAIImpl.h"
|
||||
|
||||
#define ZulAmanScriptName "instance_zulaman"
|
||||
|
||||
enum DataTypes
|
||||
{
|
||||
DATA_GONGEVENT = 0,
|
||||
@@ -46,4 +50,10 @@ enum GameobjectIds
|
||||
GO_STRANGE_GONG = 187359
|
||||
};
|
||||
|
||||
template <class AI, class T>
|
||||
inline AI* GetZulAmanAI(T* obj)
|
||||
{
|
||||
return GetInstanceAI<AI>(obj, ZulAmanScriptName);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
@@ -93,7 +93,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new boss_gahzrankaAI(creature);
|
||||
return GetZulGurubAI<boss_gahzrankaAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -94,7 +94,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new boss_grilekAI(creature);
|
||||
return GetZulGurubAI<boss_grilekAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -160,7 +160,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return GetInstanceAI<boss_hakkarAI>(creature);
|
||||
return GetZulGurubAI<boss_hakkarAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user