mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-23 18:36:31 +01:00
Merge branch 'master' of github.com:TrinityCore/TrinityCore into 4.3.4
Conflicts: src/server/game/Entities/Object/Object.cpp src/server/game/Entities/Object/Object.h src/server/game/Server/WorldSession.cpp
This commit is contained in:
@@ -403,21 +403,19 @@ class spell_devourer_of_souls_mirrored_soul_proc : public SpellScriptLoader
|
||||
|
||||
bool Load() OVERRIDE
|
||||
{
|
||||
_procTarget = NULL;
|
||||
return true;
|
||||
}
|
||||
|
||||
bool CheckProc(ProcEventInfo& /*eventInfo*/)
|
||||
{
|
||||
_procTarget = GetCaster();
|
||||
return _procTarget && _procTarget->IsAlive();
|
||||
return GetCaster() && GetCaster()->IsAlive();
|
||||
}
|
||||
|
||||
void HandleProc(AuraEffect const* /*aurEff*/, ProcEventInfo& eventInfo)
|
||||
{
|
||||
PreventDefaultAction();
|
||||
int32 damage = int32(CalculatePct(eventInfo.GetDamageInfo()->GetDamage(), 45));
|
||||
GetTarget()->CastCustomSpell(SPELL_MIRRORED_SOUL_DAMAGE, SPELLVALUE_BASE_POINT0, damage, _procTarget, true);
|
||||
GetTarget()->CastCustomSpell(SPELL_MIRRORED_SOUL_DAMAGE, SPELLVALUE_BASE_POINT0, damage, GetCaster(), true);
|
||||
}
|
||||
|
||||
void Register() OVERRIDE
|
||||
@@ -425,9 +423,6 @@ class spell_devourer_of_souls_mirrored_soul_proc : public SpellScriptLoader
|
||||
DoCheckProc += AuraCheckProcFn(spell_devourer_of_souls_mirrored_soul_proc_AuraScript::CheckProc);
|
||||
OnEffectProc += AuraEffectProcFn(spell_devourer_of_souls_mirrored_soul_proc_AuraScript::HandleProc, EFFECT_0, SPELL_AURA_PROC_TRIGGER_SPELL);
|
||||
}
|
||||
|
||||
private:
|
||||
Unit* _procTarget;
|
||||
};
|
||||
|
||||
AuraScript* GetAuraScript() const OVERRIDE
|
||||
|
||||
@@ -256,8 +256,6 @@ public:
|
||||
}
|
||||
} else uiGripOfSladRanTimer -= diff;
|
||||
}
|
||||
|
||||
InstanceScript* instance;
|
||||
};
|
||||
|
||||
};
|
||||
@@ -278,8 +276,6 @@ public:
|
||||
|
||||
uint32 uiVenomousBiteTimer;
|
||||
|
||||
InstanceScript* instance;
|
||||
|
||||
void Reset() OVERRIDE
|
||||
{
|
||||
uiVenomousBiteTimer = 2*IN_MILLISECONDS;
|
||||
|
||||
@@ -39,7 +39,7 @@ enum VezaxEmotes
|
||||
EMOTE_SURGE_OF_DARKNESS = 8,
|
||||
|
||||
// Saronite Vapor
|
||||
EMOTE_VAPORS = 9
|
||||
EMOTE_VAPORS = 0
|
||||
};
|
||||
|
||||
enum VezaxSpells
|
||||
@@ -443,14 +443,21 @@ class npc_saronite_vapors : public CreatureScript
|
||||
}
|
||||
};
|
||||
|
||||
class spell_mark_of_the_faceless : public SpellScriptLoader
|
||||
class spell_general_vezax_mark_of_the_faceless : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
spell_mark_of_the_faceless() : SpellScriptLoader("spell_mark_of_the_faceless") { }
|
||||
spell_general_vezax_mark_of_the_faceless() : SpellScriptLoader("spell_general_vezax_mark_of_the_faceless") { }
|
||||
|
||||
class spell_mark_of_the_faceless_AuraScript : public AuraScript
|
||||
class spell_general_vezax_mark_of_the_faceless_AuraScript : public AuraScript
|
||||
{
|
||||
PrepareAuraScript(spell_mark_of_the_faceless_AuraScript);
|
||||
PrepareAuraScript(spell_general_vezax_mark_of_the_faceless_AuraScript);
|
||||
|
||||
bool Validate(SpellInfo const* /*spellInfo*/)
|
||||
{
|
||||
if (!sSpellMgr->GetSpellInfo(SPELL_MARK_OF_THE_FACELESS_DAMAGE))
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
void HandleEffectPeriodic(AuraEffect const* aurEff)
|
||||
{
|
||||
@@ -460,13 +467,42 @@ class spell_mark_of_the_faceless : public SpellScriptLoader
|
||||
|
||||
void Register() OVERRIDE
|
||||
{
|
||||
OnEffectPeriodic += AuraEffectPeriodicFn(spell_mark_of_the_faceless_AuraScript::HandleEffectPeriodic, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY);
|
||||
OnEffectPeriodic += AuraEffectPeriodicFn(spell_general_vezax_mark_of_the_faceless_AuraScript::HandleEffectPeriodic, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY);
|
||||
}
|
||||
};
|
||||
|
||||
AuraScript* GetAuraScript() const OVERRIDE
|
||||
{
|
||||
return new spell_mark_of_the_faceless_AuraScript();
|
||||
return new spell_general_vezax_mark_of_the_faceless_AuraScript();
|
||||
}
|
||||
};
|
||||
|
||||
class spell_general_vezax_mark_of_the_faceless_leech : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
spell_general_vezax_mark_of_the_faceless_leech() : SpellScriptLoader("spell_general_vezax_mark_of_the_faceless_leech") { }
|
||||
|
||||
class spell_general_vezax_mark_of_the_faceless_leech_SpellScript : public SpellScript
|
||||
{
|
||||
PrepareSpellScript(spell_general_vezax_mark_of_the_faceless_leech_SpellScript);
|
||||
|
||||
void FilterTargets(std::list<WorldObject*>& targets)
|
||||
{
|
||||
targets.remove(GetExplTargetWorldObject());
|
||||
|
||||
if (targets.empty())
|
||||
FinishCast(SPELL_FAILED_NO_VALID_TARGETS);
|
||||
}
|
||||
|
||||
void Register()
|
||||
{
|
||||
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_general_vezax_mark_of_the_faceless_leech_SpellScript::FilterTargets, EFFECT_1, TARGET_UNIT_DEST_AREA_ENEMY);
|
||||
}
|
||||
};
|
||||
|
||||
SpellScript* GetSpellScript() const
|
||||
{
|
||||
return new spell_general_vezax_mark_of_the_faceless_leech_SpellScript();
|
||||
}
|
||||
};
|
||||
|
||||
@@ -554,7 +590,8 @@ void AddSC_boss_general_vezax()
|
||||
new boss_general_vezax();
|
||||
new boss_saronite_animus();
|
||||
new npc_saronite_vapors();
|
||||
new spell_mark_of_the_faceless();
|
||||
new spell_general_vezax_mark_of_the_faceless();
|
||||
new spell_general_vezax_mark_of_the_faceless_leech();
|
||||
new spell_general_vezax_saronite_vapors();
|
||||
new achievement_shadowdodger();
|
||||
new achievement_smell_saronite();
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
*/
|
||||
|
||||
#include "ScriptMgr.h"
|
||||
#include "ScriptedCreature.h"
|
||||
#include "SpellScript.h"
|
||||
#include "ulduar.h"
|
||||
|
||||
|
||||
@@ -24,15 +24,21 @@
|
||||
|
||||
static DoorData const doorData[] =
|
||||
{
|
||||
{GO_LEVIATHAN_DOOR, BOSS_LEVIATHAN, DOOR_TYPE_ROOM, BOUNDARY_S },
|
||||
{GO_XT_002_DOOR, BOSS_XT002, DOOR_TYPE_ROOM, BOUNDARY_S },
|
||||
{GO_YOGG_SARON_DOOR, BOSS_YOGG_SARON, DOOR_TYPE_ROOM, BOUNDARY_S },
|
||||
{GO_DOODAD_UL_SIGILDOOR_03, BOSS_ALGALON, DOOR_TYPE_ROOM, BOUNDARY_W },
|
||||
{GO_DOODAD_UL_UNIVERSEFLOOR_01, BOSS_ALGALON, DOOR_TYPE_ROOM, BOUNDARY_NONE },
|
||||
{GO_DOODAD_UL_UNIVERSEFLOOR_02, BOSS_ALGALON, DOOR_TYPE_SPAWN_HOLE, BOUNDARY_NONE },
|
||||
{GO_DOODAD_UL_UNIVERSEGLOBE01, BOSS_ALGALON, DOOR_TYPE_SPAWN_HOLE, BOUNDARY_NONE },
|
||||
{GO_DOODAD_UL_ULDUAR_TRAPDOOR_03, BOSS_ALGALON, DOOR_TYPE_SPAWN_HOLE, BOUNDARY_NONE },
|
||||
{0, 0, DOOR_TYPE_ROOM, BOUNDARY_NONE },
|
||||
{ GO_LEVIATHAN_DOOR, BOSS_LEVIATHAN, DOOR_TYPE_ROOM, BOUNDARY_S },
|
||||
{ GO_XT_002_DOOR, BOSS_XT002, DOOR_TYPE_ROOM, BOUNDARY_S },
|
||||
{ GO_IRON_COUNCIL_DOOR, BOSS_ASSEMBLY_OF_IRON, DOOR_TYPE_ROOM, BOUNDARY_N },
|
||||
{ GO_ARCHIVUM_DOOR, BOSS_ASSEMBLY_OF_IRON, DOOR_TYPE_PASSAGE, BOUNDARY_S },
|
||||
{ GO_HODIR_ENTRANCE, BOSS_HODIR, DOOR_TYPE_ROOM, BOUNDARY_E },
|
||||
{ GO_HODIR_DOOR, BOSS_HODIR, DOOR_TYPE_PASSAGE, BOUNDARY_NONE },
|
||||
{ GO_HODIR_ICE_DOOR, BOSS_HODIR, DOOR_TYPE_PASSAGE, BOUNDARY_W },
|
||||
{ GO_VEZAX_DOOR, BOSS_VEZAX, DOOR_TYPE_PASSAGE, BOUNDARY_E },
|
||||
{ GO_YOGG_SARON_DOOR, BOSS_YOGG_SARON, DOOR_TYPE_ROOM, BOUNDARY_S },
|
||||
{ GO_DOODAD_UL_SIGILDOOR_03, BOSS_ALGALON, DOOR_TYPE_ROOM, BOUNDARY_W },
|
||||
{ GO_DOODAD_UL_UNIVERSEFLOOR_01, BOSS_ALGALON, DOOR_TYPE_ROOM, BOUNDARY_NONE },
|
||||
{ GO_DOODAD_UL_UNIVERSEFLOOR_02, BOSS_ALGALON, DOOR_TYPE_SPAWN_HOLE, BOUNDARY_NONE },
|
||||
{ GO_DOODAD_UL_UNIVERSEGLOBE01, BOSS_ALGALON, DOOR_TYPE_SPAWN_HOLE, BOUNDARY_NONE },
|
||||
{ GO_DOODAD_UL_ULDUAR_TRAPDOOR_03, BOSS_ALGALON, DOOR_TYPE_SPAWN_HOLE, BOUNDARY_NONE },
|
||||
{ 0, 0, DOOR_TYPE_ROOM, BOUNDARY_NONE },
|
||||
};
|
||||
|
||||
MinionData const minionData[] =
|
||||
@@ -46,7 +52,7 @@ MinionData const minionData[] =
|
||||
class instance_ulduar : public InstanceMapScript
|
||||
{
|
||||
public:
|
||||
instance_ulduar() : InstanceMapScript("instance_ulduar", 603) { }
|
||||
instance_ulduar() : InstanceMapScript(UlduarScriptName, 603) { }
|
||||
|
||||
struct instance_ulduar_InstanceMapScript : public InstanceScript
|
||||
{
|
||||
@@ -73,6 +79,7 @@ class instance_ulduar : public InstanceMapScript
|
||||
uint64 VoiceOfYoggSaronGUID;
|
||||
uint64 SaraGUID;
|
||||
uint64 BrainOfYoggSaronGUID;
|
||||
uint64 KeeperGUIDs[4];
|
||||
uint64 AlgalonGUID;
|
||||
uint64 BrannBronzebeardAlgGUID;
|
||||
|
||||
@@ -81,16 +88,10 @@ class instance_ulduar : public InstanceMapScript
|
||||
uint64 RazorHarpoonGUIDs[4];
|
||||
uint64 KologarnChestGUID;
|
||||
uint64 KologarnBridgeGUID;
|
||||
uint64 KologarnDoorGUID;
|
||||
uint64 ThorimChestGUID;
|
||||
uint64 HodirRareCacheGUID;
|
||||
uint64 HodirChestGUID;
|
||||
uint64 HodirDoorGUID;
|
||||
uint64 HodirIceDoorGUID;
|
||||
uint64 ArchivumDoorGUID;
|
||||
uint64 VezaxDoorGUID;
|
||||
uint64 BrainRoomDoorGUIDs[3];
|
||||
uint64 KeeperGUIDs[4];
|
||||
uint64 AlgalonSigilDoorGUID[3];
|
||||
uint64 AlgalonFloorGUID[2];
|
||||
uint64 AlgalonUniverseGUID;
|
||||
@@ -138,10 +139,6 @@ class instance_ulduar : public InstanceMapScript
|
||||
HodirRareCacheGUID = 0;
|
||||
HodirChestGUID = 0;
|
||||
LeviathanGateGUID = 0;
|
||||
VezaxDoorGUID = 0;
|
||||
HodirDoorGUID = 0;
|
||||
HodirIceDoorGUID = 0;
|
||||
ArchivumDoorGUID = 0;
|
||||
AlgalonUniverseGUID = 0;
|
||||
AlgalonTrapdoorGUID = 0;
|
||||
BrannBronzebeardAlgGUID = 0;
|
||||
@@ -458,9 +455,6 @@ class instance_ulduar : public InstanceMapScript
|
||||
if (GetBossState(BOSS_KOLOGARN) == DONE)
|
||||
HandleGameObject(0, false, gameObject);
|
||||
break;
|
||||
case GO_KOLOGARN_DOOR:
|
||||
KologarnDoorGUID = gameObject->GetGUID();
|
||||
break;
|
||||
case GO_THORIM_CHEST_HERO:
|
||||
case GO_THORIM_CHEST:
|
||||
ThorimChestGUID = gameObject->GetGUID();
|
||||
@@ -473,20 +467,21 @@ class instance_ulduar : public InstanceMapScript
|
||||
case GO_HODIR_CHEST:
|
||||
HodirChestGUID = gameObject->GetGUID();
|
||||
break;
|
||||
case GO_LEVIATHAN_DOOR:
|
||||
AddDoor(gameObject, true);
|
||||
break;
|
||||
case GO_LEVIATHAN_GATE:
|
||||
LeviathanGateGUID = gameObject->GetGUID();
|
||||
if (GetBossState(BOSS_LEVIATHAN) == DONE)
|
||||
gameObject->SetGoState(GO_STATE_ACTIVE_ALTERNATIVE);
|
||||
break;
|
||||
case GO_LEVIATHAN_DOOR:
|
||||
case GO_XT_002_DOOR:
|
||||
AddDoor(gameObject, true);
|
||||
break;
|
||||
case GO_IRON_COUNCIL_DOOR:
|
||||
case GO_ARCHIVUM_DOOR:
|
||||
case GO_HODIR_ENTRANCE:
|
||||
case GO_HODIR_DOOR:
|
||||
case GO_HODIR_ICE_DOOR:
|
||||
case GO_VEZAX_DOOR:
|
||||
VezaxDoorGUID = gameObject->GetGUID();
|
||||
HandleGameObject(0, false, gameObject);
|
||||
case GO_YOGG_SARON_DOOR:
|
||||
AddDoor(gameObject, true);
|
||||
break;
|
||||
case GO_RAZOR_HARPOON_1:
|
||||
RazorHarpoonGUIDs[0] = gameObject->GetGUID();
|
||||
@@ -504,20 +499,6 @@ class instance_ulduar : public InstanceMapScript
|
||||
if (GetBossState(BOSS_RAZORSCALE) == IN_PROGRESS)
|
||||
gameObject->SetGoState(GO_STATE_ACTIVE);
|
||||
break;
|
||||
case GO_HODIR_DOOR:
|
||||
HodirDoorGUID = gameObject->GetGUID();
|
||||
break;
|
||||
case GO_HODIR_ICE_DOOR:
|
||||
HodirIceDoorGUID = gameObject->GetGUID();
|
||||
break;
|
||||
case GO_ARCHIVUM_DOOR:
|
||||
ArchivumDoorGUID = gameObject->GetGUID();
|
||||
if (GetBossState(BOSS_ASSEMBLY_OF_IRON) != DONE)
|
||||
HandleGameObject(ArchivumDoorGUID, false);
|
||||
break;
|
||||
case GO_YOGG_SARON_DOOR:
|
||||
AddDoor(gameObject, true);
|
||||
break;
|
||||
case GO_BRAIN_ROOM_DOOR_1:
|
||||
BrainRoomDoorGUIDs[0] = gameObject->GetGUID();
|
||||
break;
|
||||
@@ -566,6 +547,8 @@ class instance_ulduar : public InstanceMapScript
|
||||
case GO_GIFT_OF_THE_OBSERVER_25:
|
||||
GiftOfTheObserverGUID = gameObject->GetGUID();
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -575,6 +558,13 @@ class instance_ulduar : public InstanceMapScript
|
||||
{
|
||||
case GO_LEVIATHAN_DOOR:
|
||||
case GO_XT_002_DOOR:
|
||||
case GO_IRON_COUNCIL_DOOR:
|
||||
case GO_ARCHIVUM_DOOR:
|
||||
case GO_HODIR_ENTRANCE:
|
||||
case GO_HODIR_DOOR:
|
||||
case GO_HODIR_ICE_DOOR:
|
||||
case GO_VEZAX_DOOR:
|
||||
case GO_YOGG_SARON_DOOR:
|
||||
case GO_DOODAD_UL_SIGILDOOR_03:
|
||||
case GO_DOODAD_UL_UNIVERSEFLOOR_01:
|
||||
case GO_DOODAD_UL_UNIVERSEFLOOR_02:
|
||||
@@ -659,7 +649,10 @@ class instance_ulduar : public InstanceMapScript
|
||||
case BOSS_IGNIS:
|
||||
case BOSS_RAZORSCALE:
|
||||
case BOSS_XT002:
|
||||
case BOSS_ASSEMBLY_OF_IRON:
|
||||
case BOSS_AURIAYA:
|
||||
case BOSS_VEZAX:
|
||||
case BOSS_YOGG_SARON:
|
||||
break;
|
||||
case BOSS_MIMIRON:
|
||||
if (state == DONE)
|
||||
@@ -669,16 +662,6 @@ class instance_ulduar : public InstanceMapScript
|
||||
if (state == DONE)
|
||||
instance->SummonCreature(NPC_FREYA_OBSERVATION_RING, ObservationRingKeepersPos[0]);
|
||||
break;
|
||||
case BOSS_ASSEMBLY_OF_IRON:
|
||||
if (state == DONE)
|
||||
HandleGameObject(ArchivumDoorGUID, true);
|
||||
break;
|
||||
case BOSS_VEZAX:
|
||||
if (state == DONE)
|
||||
HandleGameObject(VezaxDoorGUID, true);
|
||||
break;
|
||||
case BOSS_YOGG_SARON:
|
||||
break;
|
||||
case BOSS_KOLOGARN:
|
||||
if (state == DONE)
|
||||
{
|
||||
@@ -698,8 +681,6 @@ class instance_ulduar : public InstanceMapScript
|
||||
HodirRareCache->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
if (GameObject* HodirChest = instance->GetGameObject(HodirChestGUID))
|
||||
HodirChest->SetRespawnTime(HodirChest->GetRespawnDelay());
|
||||
HandleGameObject(HodirDoorGUID, true);
|
||||
HandleGameObject(HodirIceDoorGUID, true);
|
||||
|
||||
instance->SummonCreature(NPC_HODIR_OBSERVATION_RING, ObservationRingKeepersPos[1]);
|
||||
}
|
||||
|
||||
@@ -166,29 +166,46 @@ enum UlduarNPCs
|
||||
|
||||
enum UlduarGameObjects
|
||||
{
|
||||
GO_KOLOGARN_CHEST_HERO = 195047,
|
||||
GO_KOLOGARN_CHEST = 195046,
|
||||
GO_KOLOGARN_BRIDGE = 194232,
|
||||
GO_KOLOGARN_DOOR = 194553,
|
||||
GO_THORIM_CHEST_HERO = 194315,
|
||||
GO_THORIM_CHEST = 194314,
|
||||
GO_HODIR_RARE_CACHE_OF_WINTER = 194200,
|
||||
GO_HODIR_RARE_CACHE_OF_WINTER_HERO = 194201,
|
||||
GO_HODIR_CHEST_HERO = 194308,
|
||||
GO_HODIR_CHEST = 194307,
|
||||
// Leviathan
|
||||
GO_LEVIATHAN_DOOR = 194905,
|
||||
GO_LEVIATHAN_GATE = 194630,
|
||||
GO_XT_002_DOOR = 194631,
|
||||
GO_VEZAX_DOOR = 194750,
|
||||
|
||||
// Razorscale
|
||||
GO_MOLE_MACHINE = 194316,
|
||||
GO_RAZOR_HARPOON_1 = 194542,
|
||||
GO_RAZOR_HARPOON_2 = 194541,
|
||||
GO_RAZOR_HARPOON_3 = 194543,
|
||||
GO_RAZOR_HARPOON_4 = 194519,
|
||||
GO_RAZOR_BROKEN_HARPOON = 194565,
|
||||
|
||||
// XT-002
|
||||
GO_XT_002_DOOR = 194631,
|
||||
|
||||
// Assembly of Iron
|
||||
GO_IRON_COUNCIL_DOOR = 194554,
|
||||
GO_ARCHIVUM_DOOR = 194556,
|
||||
|
||||
// Kologarn
|
||||
GO_KOLOGARN_CHEST_HERO = 195047,
|
||||
GO_KOLOGARN_CHEST = 195046,
|
||||
GO_KOLOGARN_BRIDGE = 194232,
|
||||
GO_KOLOGARN_DOOR = 194553,
|
||||
|
||||
// Hodir
|
||||
GO_HODIR_ENTRANCE = 194442,
|
||||
GO_HODIR_DOOR = 194634,
|
||||
GO_HODIR_ICE_DOOR = 194441,
|
||||
GO_ARCHIVUM_DOOR = 194556,
|
||||
GO_HODIR_RARE_CACHE_OF_WINTER = 194200,
|
||||
GO_HODIR_RARE_CACHE_OF_WINTER_HERO = 194201,
|
||||
GO_HODIR_CHEST_HERO = 194308,
|
||||
GO_HODIR_CHEST = 194307,
|
||||
|
||||
// Thorim
|
||||
GO_THORIM_CHEST_HERO = 194315,
|
||||
GO_THORIM_CHEST = 194314,
|
||||
|
||||
// Vezax
|
||||
GO_VEZAX_DOOR = 194750,
|
||||
|
||||
// Yogg-Saron
|
||||
GO_YOGG_SARON_DOOR = 194773,
|
||||
@@ -327,26 +344,10 @@ enum YoggSaronIllusions
|
||||
STORMWIND_ILLUSION = 2,
|
||||
};
|
||||
|
||||
template<class AI>
|
||||
CreatureAI* GetUlduarAI(Creature* creature)
|
||||
template<class AI, class T>
|
||||
AI* GetUlduarAI(T* obj)
|
||||
{
|
||||
if (InstanceMap* instance = creature->GetMap()->ToInstanceMap())
|
||||
if (instance->GetInstanceScript())
|
||||
if (instance->GetScriptId() == sObjectMgr->GetScriptId(UlduarScriptName))
|
||||
return new AI(creature);
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
template<class AI>
|
||||
GameObjectAI* GetUlduarAI(GameObject* go)
|
||||
{
|
||||
if (InstanceMap* instance = go->GetMap()->ToInstanceMap())
|
||||
if (instance->GetInstanceScript())
|
||||
if (instance->GetScriptId() == sObjectMgr->GetScriptId(UlduarScriptName))
|
||||
return new AI(go);
|
||||
|
||||
return NULL;
|
||||
return GetInstanceAI<AI, T>(obj, UlduarScriptName);
|
||||
}
|
||||
|
||||
class PlayerOrPetCheck
|
||||
|
||||
@@ -18,9 +18,9 @@
|
||||
|
||||
#include "ScriptMgr.h"
|
||||
#include "ScriptedGossip.h"
|
||||
#include "ulduar.h"
|
||||
#include "InstanceScript.h"
|
||||
#include "Player.h"
|
||||
#include "ulduar.h"
|
||||
|
||||
/*
|
||||
The teleporter appears to be active and stable.
|
||||
|
||||
@@ -753,7 +753,6 @@ public:
|
||||
bool Drained;
|
||||
uint8 WeakPercent;
|
||||
|
||||
Player* player;
|
||||
uint64 PlayerGUID;
|
||||
|
||||
uint32 ManaBurnTimer;
|
||||
|
||||
Reference in New Issue
Block a user