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:
@@ -1514,6 +1514,8 @@ UPDATE `creature_template` SET `ScriptName`='boss_ignis' WHERE `entry`=33118;
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_iron_construct' WHERE `entry`=33121;
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_scorch_ground' WHERE `entry`=33221;
|
||||
UPDATE `creature_template` SET `ScriptName`='boss_razorscale' WHERE `entry`=33186;
|
||||
UPDATE `creature_template` SET `ScriptName`='boss_razorscale_controller' WHERE `entry`=33233;
|
||||
UPDATE `gameobject_template` SET `ScriptName`='go_razorscale_harpoon' WHERE `entry` IN(194519,194541,194542,194543);
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_devouring_flame' WHERE `entry`=34188;
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_mole_machine_trigger' WHERE `entry`=33245;
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_expedition_commander' WHERE `entry`=33210;
|
||||
@@ -2060,6 +2062,7 @@ INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
|
||||
( 68646, 'spell_gen_leeching_swarm'),
|
||||
( 68647, 'spell_gen_leeching_swarm'),
|
||||
-- Ulduar
|
||||
( 63308, 'spell_razorscale_devouring_flame'),
|
||||
( 62717, 'spell_ignis_slag_pot'),
|
||||
( 63477, 'spell_ignis_slag_pot'),
|
||||
( 62521, 'spell_attuned_to_nature_dose_reduction'),
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
DELETE FROM `conditions` WHERE `SourceEntry` IN (63317,62505,63524,63657,63658,63659);
|
||||
INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`ErrorTextId`,`ScriptName`,`Comment`)
|
||||
VALUES
|
||||
(13,0,63317,0,18,1,33453,0,0,'','Flame Breath - Dark Rune Watcher'),
|
||||
(13,0,63317,0,18,1,33846,0,0,'','Flame Breath - Dark Rune Sentinel'),
|
||||
(13,0,63317,0,18,1,33388,0,0,'','Flame Breath - Dark Rune Guardian'),
|
||||
(13,0,62505,0,18,1,33186,0,0,'','Harpoon Trigger - Razorscale'),
|
||||
(13,0,63524,0,18,1,33233,0,0,'','Harpoon Shot - Razorscale'),
|
||||
(13,0,63657,0,18,1,33233,0,0,'','Harpoon Shot - Razorscale'),
|
||||
(13,0,63658,0,18,1,33233,0,0,'','Harpoon Shot - Razorscale'),
|
||||
(13,0,63659,0,18,1,33233,0,0,'','Harpoon Shot - Razorscale');
|
||||
@@ -0,0 +1,9 @@
|
||||
UPDATE `creature_template` SET `ScriptName` = 'boss_razorscale_controller' WHERE `entry` = 33233;
|
||||
UPDATE `creature_template` SET `ScriptName` = 'boss_razorscale' WHERE `entry` = 33186;
|
||||
UPDATE `creature_template` SET `ScriptName` = 'npc_darkrune_watcher' WHERE `entry` = 33453;
|
||||
UPDATE `creature_template` SET `ScriptName` = 'npc_darkrune_sentinel' WHERE `entry` = 33846;
|
||||
UPDATE `creature_template` SET `ScriptName` = 'npc_darkrune_guardian' WHERE `entry` = 33388;
|
||||
UPDATE `creature_template` SET `ScriptName` = 'npc_devouring_flame' WHERE `entry` = 34188;
|
||||
UPDATE `creature_template` SET `ScriptName` = 'npc_expedition_commander' WHERE `entry` = 33210;
|
||||
UPDATE `creature_template` SET `ScriptName` = 'npc_mole_machine_trigger' WHERE `entry` IN (33282, 33245);
|
||||
UPDATE `creature_template` SET `flags_extra`=`flags_extra`|2 WHERE `entry` IN (33210,33287,33259,33233);
|
||||
@@ -0,0 +1,11 @@
|
||||
SET @GUID :=48304;
|
||||
DELETE FROM `creature` WHERE `guid` BETWEEN @GUID AND @GUID+6;
|
||||
INSERT INTO `creature` (`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`DeathState`,`MovementType`)
|
||||
VALUES
|
||||
(@GUID,33233,603,1,1,0,0,560.1334,-143.035431,393.822632,0,120,0,0,1,0,0,0),
|
||||
(@GUID+1,33233,603,1,1,0,0,572.410645,-138.656357,393.904419,0,120,0,0,1,0,0,0),
|
||||
(@GUID+2,33233,603,1,1,0,0,585.9284,-146.587509,391.6004,0,120,0,0,1,0,0,0),
|
||||
(@GUID+3,33233,603,1,1,0,0,589.7287,-137.1148,393.9011,0,120,0,0,1,0,0,0),
|
||||
(@GUID+4,33233,603,1,1,0,0,605.9284,-140.108887,393.7972,0,120,0,0,1,0,0,0),
|
||||
(@GUID+5,33233,603,1,1,0,0,630.2436,-276.259064,392.3122,0,120,0,0,1,0,0,0),
|
||||
(@GUID+6,33233,603,1,1,0,0,638.241638,-272.1735,392.135132,0,120,0,0,1,0,0,0);
|
||||
@@ -0,0 +1 @@
|
||||
UPDATE `gameobject_template` SET `ScriptName`='go_razorscale_harpoon' WHERE `entry` IN (194519,194541,194542,194543);
|
||||
@@ -0,0 +1,4 @@
|
||||
DELETE FROM `spell_script_names` WHERE `spell_id`=63308;
|
||||
INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`)
|
||||
VALUES
|
||||
(63308,'spell_razorscale_devouring_flame');
|
||||
@@ -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