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:
Supabad
2011-03-24 01:13:53 +02:00
parent d124515e58
commit 66ca2a88c4
11 changed files with 959 additions and 674 deletions
@@ -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