Scripts/Ulduar: Add proper support for Razorscale harpoon event.
Add script for Razorscale Controller. Add spell script for Devouring Flame. A little code cleanup in script
This commit is contained in:
@@ -537,8 +537,12 @@ void GameObject::Update(uint32 diff)
|
||||
SetGoState(GO_STATE_READY);
|
||||
|
||||
//any return here in case battleground traps
|
||||
if (GetGOInfo()->flags & GO_FLAG_NODESPAWN)
|
||||
return;
|
||||
}
|
||||
|
||||
loot.clear();
|
||||
|
||||
if (GetOwnerGUID())
|
||||
{
|
||||
if (Unit* owner = GetOwner())
|
||||
@@ -550,6 +554,8 @@ void GameObject::Update(uint32 diff)
|
||||
return;
|
||||
}
|
||||
|
||||
SetLootState(GO_READY);
|
||||
|
||||
//burning flags in some battlegrounds, if you find better condition, just add it
|
||||
if (GetGOInfo()->IsDespawnAtAction() || GetGoAnimProgress() > 0)
|
||||
{
|
||||
@@ -558,9 +564,6 @@ void GameObject::Update(uint32 diff)
|
||||
SetUInt32Value(GAMEOBJECT_FLAGS, GetGOInfo()->flags);
|
||||
}
|
||||
|
||||
loot.clear();
|
||||
SetLootState(GO_READY);
|
||||
|
||||
if (!m_respawnDelayTime)
|
||||
return;
|
||||
|
||||
|
||||
@@ -17,7 +17,6 @@
|
||||
|
||||
#include "ScriptPCH.h"
|
||||
#include "ulduar.h"
|
||||
#include "SpellAuraEffects.h"
|
||||
|
||||
enum Yells
|
||||
{
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -45,6 +45,8 @@ public:
|
||||
uint64 uiLeviathanGUID;
|
||||
uint64 uiIgnisGUID;
|
||||
uint64 uiRazorscaleGUID;
|
||||
uint64 uiRazorscaleController;
|
||||
uint64 uiRazorHarpoonGUIDs[3];
|
||||
uint64 uiExpCommanderGUID;
|
||||
uint64 uiXT002GUID;
|
||||
uint64 uiAssemblyGUIDs[3];
|
||||
@@ -77,6 +79,7 @@ public:
|
||||
LoadDoorData(doorData);
|
||||
uiIgnisGUID = 0;
|
||||
uiRazorscaleGUID = 0;
|
||||
uiRazorscaleController = 0;
|
||||
uiExpCommanderGUID = 0;
|
||||
uiXT002GUID = 0;
|
||||
uiKologarnGUID = 0;
|
||||
@@ -100,8 +103,9 @@ public:
|
||||
uiVezaxDoorGUID = 0;
|
||||
flag = 0;
|
||||
|
||||
memset(&uiEncounter, 0, sizeof(uiEncounter));
|
||||
memset(&uiAssemblyGUIDs, 0, sizeof(uiAssemblyGUIDs));
|
||||
memset(uiEncounter, 0, sizeof(uiEncounter));
|
||||
memset(uiAssemblyGUIDs, 0, sizeof(uiAssemblyGUIDs));
|
||||
memset(uiRazorHarpoonGUIDs, 0, sizeof(uiRazorHarpoonGUIDs));
|
||||
}
|
||||
|
||||
bool IsEncounterInProgress() const
|
||||
@@ -128,6 +132,9 @@ public:
|
||||
case NPC_RAZORSCALE:
|
||||
uiRazorscaleGUID = creature->GetGUID();
|
||||
break;
|
||||
case NPC_RAZORSCALE_CONTROLLER:
|
||||
uiRazorscaleController = creature->GetGUID();
|
||||
break;
|
||||
case NPC_EXPEDITION_COMMANDER:
|
||||
uiExpCommanderGUID = creature->GetGUID();
|
||||
return;
|
||||
@@ -235,6 +242,18 @@ public:
|
||||
uiVezaxDoorGUID = go->GetGUID();
|
||||
HandleGameObject(NULL, false, go);
|
||||
break;
|
||||
case GO_RAZOR_HARPOON_1:
|
||||
uiRazorHarpoonGUIDs[0] = go->GetGUID();
|
||||
break;
|
||||
case GO_RAZOR_HARPOON_2:
|
||||
uiRazorHarpoonGUIDs[1] = go->GetGUID();
|
||||
break;
|
||||
case GO_RAZOR_HARPOON_3:
|
||||
uiRazorHarpoonGUIDs[2] = go->GetGUID();
|
||||
break;
|
||||
case GO_RAZOR_HARPOON_4:
|
||||
uiRazorHarpoonGUIDs[3] = go->GetGUID();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -369,6 +388,7 @@ public:
|
||||
case TYPE_LEVIATHAN: return uiLeviathanGUID;
|
||||
case TYPE_IGNIS: return uiIgnisGUID;
|
||||
case TYPE_RAZORSCALE: return uiRazorscaleGUID;
|
||||
case DATA_RAZORSCALE_CONTROL: return uiRazorscaleController;
|
||||
case TYPE_XT002: return uiXT002GUID;
|
||||
case TYPE_KOLOGARN: return uiKologarnGUID;
|
||||
case DATA_LEFT_ARM: return uiLeftArmGUID;
|
||||
@@ -384,6 +404,10 @@ public:
|
||||
|
||||
// razorscale expedition commander
|
||||
case DATA_EXP_COMMANDER: return uiExpCommanderGUID;
|
||||
case GO_RAZOR_HARPOON_1: return uiRazorHarpoonGUIDs[0];
|
||||
case GO_RAZOR_HARPOON_2: return uiRazorHarpoonGUIDs[1];
|
||||
case GO_RAZOR_HARPOON_3: return uiRazorHarpoonGUIDs[2];
|
||||
case GO_RAZOR_HARPOON_4: return uiRazorHarpoonGUIDs[3];
|
||||
// Assembly of Iron
|
||||
case DATA_STEELBREAKER: return uiAssemblyGUIDs[0];
|
||||
case DATA_MOLGEIM: return uiAssemblyGUIDs[1];
|
||||
@@ -466,6 +490,7 @@ public:
|
||||
|
||||
};
|
||||
|
||||
|
||||
void AddSC_instance_ulduar()
|
||||
{
|
||||
new instance_ulduar();
|
||||
|
||||
@@ -15,6 +15,8 @@
|
||||
* with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "SpellAuraEffects.h"
|
||||
|
||||
#ifndef DEF_ULDUAR_H
|
||||
#define DEF_ULDUAR_H
|
||||
|
||||
@@ -44,6 +46,7 @@ enum eTypes
|
||||
DATA_BRUNDIR,
|
||||
|
||||
DATA_EXP_COMMANDER,
|
||||
DATA_RAZORSCALE_CONTROL,
|
||||
|
||||
// Kologarn:
|
||||
DATA_LEFT_ARM,
|
||||
@@ -55,6 +58,8 @@ enum eNPCs
|
||||
NPC_LEVIATHAN = 33113,
|
||||
NPC_IGNIS = 33118,
|
||||
NPC_RAZORSCALE = 33186,
|
||||
NPC_RAZORSCALE_CONTROLLER = 33233,
|
||||
NPC_STEELFORGED_DEFFENDER = 33236,
|
||||
NPC_EXPEDITION_COMMANDER = 33210,
|
||||
NPC_XT002 = 33293,
|
||||
NPC_STEELBREAKER = 32867,
|
||||
@@ -92,6 +97,12 @@ enum eGameObjects
|
||||
GO_LEVIATHAN_DOOR = 194905,
|
||||
GO_LEVIATHAN_GATE = 194630,
|
||||
GO_VEZAX_DOOR = 194750,
|
||||
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,
|
||||
};
|
||||
|
||||
enum eTowerEvents
|
||||
@@ -107,4 +118,5 @@ enum eAchievementCriteria
|
||||
ACHIEVEMENT_CRITERIA_HOT_POCKET_10 = 10430, //ignis
|
||||
ACHIEVEMENT_CRITERIA_HOT_POCKET_25 = 10431,
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user