From 0aa4b560df2492195d6370443961207fa6fc2c6a Mon Sep 17 00:00:00 2001 From: Ovahlord Date: Thu, 9 Jan 2020 21:39:09 +0100 Subject: [PATCH] Scripts/SFK: scripted Lord Godfrey intro events for both factions and cleaned up header file --- .../custom/custom_2020_01_09_03_world.sql | 55 ++++++++ .../ShadowfangKeep/boss_apothecary_hummel.cpp | 3 +- .../instance_shadowfang_keep.cpp | 25 +++- .../ShadowfangKeep/shadowfang_keep.cpp | 49 ++----- .../ShadowfangKeep/shadowfang_keep.h | 122 ++++++++---------- 5 files changed, 138 insertions(+), 116 deletions(-) create mode 100644 sql/updates/world/custom/custom_2020_01_09_03_world.sql diff --git a/sql/updates/world/custom/custom_2020_01_09_03_world.sql b/sql/updates/world/custom/custom_2020_01_09_03_world.sql new file mode 100644 index 0000000000..183460b778 --- /dev/null +++ b/sql/updates/world/custom/custom_2020_01_09_03_world.sql @@ -0,0 +1,55 @@ +DELETE FROM `spawn_group_template` WHERE `groupId` IN (431, 432); +INSERT INTO `spawn_group_template` (`groupId`, `groupName`, `groupFlags`) VALUES +(431, 'Shadowfang Keep - Lord Godfrey - Packleader Ivar Bloodfang', 4), +(432, 'Shadowfang Keep - Lord Godfrey - Deathstalker Commander Belmont', 4); + +SET @CGUID := 395387; +DELETE FROM `creature` WHERE `guid` BETWEEN @CGUID+0 AND @CGUID+1; +INSERT INTO `creature` (`guid`, `id`, `map`, `zoneId`, `areaId`, `spawnMask`, `PhaseId`, `PhaseGroup`, `modelid`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `spawndist`, `currentwaypoint`, `curhealth`, `curmana`, `MovementType`, `npcflag`, `unit_flags`, `dynamicflags`, `VerifiedBuild`) VALUES +(@CGUID+0, 47006, 33, 209, 209, 3, 169, 0, 0, 0, -160.621, 2178.69, 152.376, 5.883088, 7200, 0, 0, 0, 0, 0, 0, 0, 0, 28153), -- Packleader Ivar Bloodfang (Area: Shadowfang Keep - Difficulty: 2) +(@CGUID+1, 47293, 33, 209, 209, 3, 169, 0, 0, 0, -168.978, 2185.792, 151.9715, 4.799315, 7200, 0, 0, 0, 0, 0, 0, 0, 0, 15595); -- Deathstalker Commander Belmont (Area: 0 - Difficulty: 0) (possible waypoints or random movement) + +DELETE FROM `spawn_group` WHERE `groupId` IN (431, 432); +INSERT INTO `spawn_group` (`groupId`, `spawnType`, `spawnId`) VALUES +(431, 0, @CGUID+0), +(432, 0, @CGUID+1); + +-- Ivar +SET @GUID := -(@CGUID+0); +DELETE FROM `smart_scripts` WHERE `entryorguid`=@GUID AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(@GUID, 0, 0, 0, 63, 0, 100, 0, 0, 0, 0, 0, 69, 1, 0, 0, 0, 0, 0, 8, 0, 0, 0, -129.387, 2166.32, 155.678, 0, "When just created - Self: Move to position (-129.387, 2166.32, 155.678, 0) (point id 1) // "), +(@GUID, 0, 1, 2, 34, 0, 100, 0, 8, 1, 0, 0, 69, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, -120.818, 2162.85, 155.678, 0, "On movement of type POINT_MOTION_TYPE inform, point 1 - Self: Move to position (-120.818, 2162.85, 155.678, 0) (point id 0) // "), +(@GUID, 0, 2, 0, 61, 0, 100, 0, 0, 0, 0, 0, 80, 4700602, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, " Linked - Start timed action list id #4700602 // "); + +SET @ENTRY := 4700602; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=9; +INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(@ENTRY, 9, 0, 0, 0, 0, 100, 0, 6100, 6100, 0, 0, 66, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 2.745929, "When in combat and timer at the begining between 6100 and 6100 ms (and later repeats every 0 and 0 ms) - Self: Look at (0, 0, 0, 2.745929) // "), +(@ENTRY, 9, 1, 0, 0, 0, 100, 0, 200, 200, 0, 0, 1, 11, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, "When in combat and timer at the begining between 200 and 200 ms (and later repeats every 0 and 0 ms) - Self: Talk 11 // "), +(@ENTRY, 9, 2, 0, 0, 0, 100, 0, 6000, 6000, 0, 0, 1, 12, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, "When in combat and timer at the begining between 6000 and 6000 ms (and later repeats every 0 and 0 ms) - Self: Talk 12 // "), +(@ENTRY, 9, 3, 0, 0, 0, 100, 0, 2200, 2200, 0, 0, 66, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 5.88752, "When in combat and timer at the begining between 2200 and 2200 ms (and later repeats every 0 and 0 ms) - Self: Look at (0, 0, 0, 5.88752) // "), +(@ENTRY, 9, 4, 0, 0, 0, 100, 0, 100, 100, 0, 0, 9, 0, 0, 0, 0, 0, 0, 14, 224840, 0, 0, 0, 0, 0, 0, "When in combat and timer at the begining between 100 and 100 ms (and later repeats every 0 and 0 ms) - Gameobject Arugal's Lair 18971 (224840): Activate (only gameobject) // "), +(@ENTRY, 9, 5, 0, 0, 0, 100, 0, 4800, 4800, 0, 0, 66, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 2.745929, "When in combat and timer at the begining between 4800 and 4800 ms (and later repeats every 0 and 0 ms) - Self: Look at (0, 0, 0, 2.745929) // "), +(@ENTRY, 9, 6, 0, 0, 0, 100, 0, 0, 0, 0, 0, 1, 13, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, "When in combat and timer at the begining between 0 and 0 ms (and later repeats every 0 and 0 ms) - Self: Talk 13 // "); + +-- Belmont +SET @GUID := -(@CGUID+1); +DELETE FROM `smart_scripts` WHERE `entryorguid`=@GUID AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(@GUID, 0, 0, 0, 63, 0, 100, 0, 0, 0, 0, 0, 69, 1, 0, 0, 0, 0, 0, 8, 0, 0, 0, -131.832, 2166.28, 155.678, 0, "When just created - Self: Move to position (point id 1) // "), +(@GUID, 0, 1, 2, 34, 0, 100, 0, 8, 1, 0, 0, 69, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, -119.658, 2162.35, 155.678, 0, "On movement of type POINT_MOTION_TYPE inform, point 1 - Self: Move to position (point id 0) // "), +(@GUID, 0, 2, 0, 61, 0, 100, 0, 0, 0, 0, 0, 80, 4729303, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, " Linked - Start timed action list id #4729303 // "); + +-- TimedActionList 4729303 SAI +SET @ENTRY := 4729303; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=9; +INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(@ENTRY, 9, 0, 0, 0, 0, 100, 0, 6000, 6000, 0, 0, 1, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, "When in combat and timer at the begining between 6000 and 6000 ms (and later repeats every 0 and 0 ms) - Self: Talk 10 // "), +(@ENTRY, 9, 1, 0, 0, 0, 100, 0, 6600, 6600, 0, 0, 1, 11, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, "When in combat and timer at the begining between 6600 and 6600 ms (and later repeats every 0 and 0 ms) - Self: Talk 11 // "), +(@ENTRY, 9, 2, 0, 0, 0, 100, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 14, 224840, 0, 0, 0, 0, 0, 0, "When in combat and timer at the begining between 0 and 0 ms (and later repeats every 0 and 0 ms) - Gameobject Arugal's Lair 18971 (224840): Activate (only gameobject) // "), +(@ENTRY, 9, 3, 0, 0, 0, 100, 0, 6400, 6400, 0, 0, 84, 3, 0, 0, 0, 0, 0, 10, 395328, 0, 0, 0, 0, 0, 0, "When in combat and timer at the begining between 6400 and 6400 ms (and later repeats every 0 and 0 ms) - Creature High Warlord Cromush 47294 (395328): Talk 3 // "), +(@ENTRY, 9, 4, 0, 0, 0, 100, 0, 5700, 5700, 0, 0, 1, 12, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, "When in combat and timer at the begining between 5700 and 5700 ms (and later repeats every 0 and 0 ms) - Self: Talk 12 // "), +(@ENTRY, 9, 5, 0, 0, 0, 100, 0, 4600, 4600, 0, 0, 66, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 2.79164, "When in combat and timer at the begining between 4600 and 4600 ms (and later repeats every 0 and 0 ms) - Self: Look at (0, 0, 0, 2.79164) // "), +(@ENTRY, 9, 6, 0, 0, 0, 100, 0, 0, 0, 0, 0, 5, 5, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, "When in combat and timer at the begining between 0 and 0 ms (and later repeats every 0 and 0 ms) - Self: Play emote ONESHOT_EXCLAMATION(DNR) (5) // "), +(@ENTRY, 9, 7, 0, 0, 0, 100, 0, 0, 0, 0, 0, 17, 333, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, "When in combat and timer at the begining between 0 and 0 ms (and later repeats every 0 and 0 ms) - Self: Set emote state (UNIT_NPC_EMOTESTATE) to STATE_READY1H (333) // "); diff --git a/src/server/scripts/EasternKingdoms/ShadowfangKeep/boss_apothecary_hummel.cpp b/src/server/scripts/EasternKingdoms/ShadowfangKeep/boss_apothecary_hummel.cpp index a6a48d403a..bc93340219 100644 --- a/src/server/scripts/EasternKingdoms/ShadowfangKeep/boss_apothecary_hummel.cpp +++ b/src/server/scripts/EasternKingdoms/ShadowfangKeep/boss_apothecary_hummel.cpp @@ -44,7 +44,8 @@ enum ApothecarySpells SPELL_PERFUME_SPILL = 68798, SPELL_COLOGNE_SPILL = 68614, SPELL_PERFUME_SPILL_DAMAGE = 68927, - SPELL_COLOGNE_SPILL_DAMAGE = 68934 + SPELL_COLOGNE_SPILL_DAMAGE = 68934, + SPELL_PERMANENT_FEIGN_DEATH = 29266 }; enum ApothecarySays diff --git a/src/server/scripts/EasternKingdoms/ShadowfangKeep/instance_shadowfang_keep.cpp b/src/server/scripts/EasternKingdoms/ShadowfangKeep/instance_shadowfang_keep.cpp index 224e4301a3..e66cca1860 100644 --- a/src/server/scripts/EasternKingdoms/ShadowfangKeep/instance_shadowfang_keep.cpp +++ b/src/server/scripts/EasternKingdoms/ShadowfangKeep/instance_shadowfang_keep.cpp @@ -38,13 +38,13 @@ ObjectData const gameobjectData[] = { { GO_COURTYARD_DOOR, DATA_COURTYARD_DOOR, }, { GO_SORCERERS_DOOR, DATA_SORCERER_GATE, }, - { GO_ARUGAL_DOOR, DATA_ARUGAL_DOOR, }, + { GO_ARUGALS_LAIR, DATA_ARUGAL_DOOR, }, { 0, 0 } // END }; DoorData const doorData[] = { - { GO_ARUGAL_DOOR, DATA_LORD_GODFREY, DOOR_TYPE_ROOM }, + { GO_ARUGALS_LAIR, DATA_LORD_GODFREY, DOOR_TYPE_ROOM }, { 0, 0, DOOR_TYPE_ROOM } // END }; @@ -80,7 +80,10 @@ enum SpawnGroups SPAWN_GROUP_COMMANDER_SPRINGVALE_TROUPS_HORDE = 428, // Spawned for Horde players when Commander Springvale or Lord Walden has been defeated SPAWN_GROUP_COMMANDER_SPRINGVALE_BELMONT = 429, // Spawned for Horde players when Commander Springvale has been defeated - SPAWN_GROUP_LORD_WALDEN_BELMONT = 430 // Spawned for Horde players when Lord Walden has been defeated + SPAWN_GROUP_LORD_WALDEN_BELMONT = 430, // Spawned for Horde players when Lord Walden has been defeated + + SPAWN_GROUP_LORD_GODFREY_IVAR_BLOODFANG = 431, // Spawned for Alliance players when triggering an areatrigger near Lord Godfrey's room + SPAWN_GROUP_LORD_GODFREY_BELMONT = 432 // Spawned for Horde players when triggering an areatrigger near Lord Godfrey's room }; struct SpawnGroupInfo @@ -172,10 +175,13 @@ public: go->SetGoState(GO_STATE_ACTIVE); break; case GO_SORCERERS_DOOR: - case GO_ARUGAL_DOOR: if (GetBossState(DATA_LORD_WALDEN) == DONE) go->SetGoState(GO_STATE_ACTIVE); break; + case GO_ARUGALS_LAIR: + if (GetBossState(DATA_LORD_GODFREY) != DONE) + go->SetGoState(GO_STATE_READY); + break; default: break; } @@ -224,6 +230,17 @@ public: if (*_teamInInstance == ALLIANCE) instance->SpawnGroupSpawn(SPAWN_GROUP_OUTSIDE_TROUPS_ALLIANCE); break; + case DATA_GODFREY_INTRO_SPAWN: + if (*_teamInInstance == ALLIANCE) + instance->SpawnGroupDespawn(SPAWN_GROUP_LORD_WALDEN_TROUPS_ALLIANCE); + else + { + instance->SpawnGroupDespawn(SPAWN_GROUP_COMMANDER_SPRINGVALE_TROUPS_HORDE); + instance->SpawnGroupDespawn(*_teamInInstance == ALLIANCE ? SPAWN_GROUP_LORD_GODFREY_IVAR_BLOODFANG : SPAWN_GROUP_LORD_GODFREY_BELMONT); + } + + instance->SpawnGroupSpawn(*_teamInInstance == ALLIANCE ? SPAWN_GROUP_LORD_GODFREY_IVAR_BLOODFANG : SPAWN_GROUP_LORD_GODFREY_BELMONT); + break; default: break; } diff --git a/src/server/scripts/EasternKingdoms/ShadowfangKeep/shadowfang_keep.cpp b/src/server/scripts/EasternKingdoms/ShadowfangKeep/shadowfang_keep.cpp index fc5748aca7..df30afe5f2 100644 --- a/src/server/scripts/EasternKingdoms/ShadowfangKeep/shadowfang_keep.cpp +++ b/src/server/scripts/EasternKingdoms/ShadowfangKeep/shadowfang_keep.cpp @@ -36,53 +36,19 @@ enum MovePoints enum Texts { - // Deathstalker Commander Belmont - SAY_BELMONT_ASHBURY_DEAD = 0, - SAY_BELMONT_MOVE_TO_DOOR = 1, - SAY_BELMONT_UNLOCK_DOOR = 2, - SAY_BELMONT_OPEN_DOOR = 3, - SAY_BELMONT_SILVERLAINE_DEAD = 4, - SAY_BELMONT_TO_CROMUSH_1 = 5, - SAY_BELMONT_TO_CROMUSH_2 = 6, - SAY_BELMONT_TO_CROMUSH_3 = 7, - SAY_BELMONT_WALDEN_DEAD = 8, - SAY_BELMONT_WALDEN_OUTRO = 9, - SAY_BELMONT_DOOR_CLOSED = 10, - SAY_BELMONT_DOOR_OPENED = 11, - SAY_BELMONT_GODFREY = 12, - - // High Warlord Cromush - SAY_CROMUSH_TO_BELMONT_1 = 0, - SAY_CROMUSH_TO_BELMONT_2 = 1, - SAY_CROMUSH_FOR_THE_HORDE = 2, - SAY_CROMUSH_TO_BELMONT_3 = 3, - // Packleader Ivar Bloodfang - SAY_IVAR_ASHBURY_DEAD_1 = 0, - SAY_IVAR_ASHBURY_DEAD_2 = 1, - SAY_IVAR_TALK_TO_PACK_1 = 2, - SAY_IVAR_MOVE_TO_COURTYARD = 3, - SAY_IVAR_UNLOCK_DOOR = 4, - SAY_IVAR_EMOTE_BERSERKER = 5, - SAY_IVAR_SILVERLAINE_DEAD = 6, - SAY_IVAR_WALDEN_INTRO = 7, - SAY_IVAR_WALDEN_DEAD = 8, - SAY_IVAR_ATTACK_WORGEN = 9, - SAY_IVAR_OPEN_GATE = 10, - SAY_IVAR_DOOR_CLOSED_1 = 11, - SAY_IVAR_DOOR_CLOSED_2 = 12, - SAY_IVAR_ROOM_OPEN = 13, + SAY_IVAR_WALDEN_INTRO = 7, // Bloodfang Berserker - SAY_SHOW_COMMANDER_SPRINGVALE = 1, + SAY_SHOW_COMMANDER_SPRINGVALE = 1, // DEBUG Announcer - SAY_ANNOUNCE_GARGOYLES = 0 + SAY_ANNOUNCE_GARGOYLES = 0 }; enum SKShieldOfBones { - SPELL_SHIELD_OF_BONES_TRIGGERED = 91631, + SPELL_SHIELD_OF_BONES_TRIGGERED = 91631 }; class spell_sfk_shield_of_bones : public AuraScript @@ -143,7 +109,7 @@ public: bool _OnTrigger(Player* player, AreaTriggerEntry const* /*areaTrigger*/) override { - if (Creature* ivar = player->FindNearestCreature(NPC_PACKLEADER_IVAR, 15.f)) + if (Creature* ivar = player->FindNearestCreature(NPC_PACKLEADER_IVAR_BLOODFANG, 15.f)) if (ivar->IsAIEnabled) ivar->AI()->Talk(SAY_IVAR_WALDEN_INTRO, player); @@ -156,8 +122,11 @@ class at_sfk_godfrey_intro : public OnlyOnceAreaTriggerScript public: at_sfk_godfrey_intro() : OnlyOnceAreaTriggerScript("at_sfk_godfrey_intro") { } - bool _OnTrigger(Player* /*player*/, AreaTriggerEntry const* /*areaTrigger*/) override + bool _OnTrigger(Player* player, AreaTriggerEntry const* /*areaTrigger*/) override { + if (InstanceScript* instance = player->GetInstanceScript()) + instance->SetData(DATA_GODFREY_INTRO_SPAWN, DONE); + return true; } }; diff --git a/src/server/scripts/EasternKingdoms/ShadowfangKeep/shadowfang_keep.h b/src/server/scripts/EasternKingdoms/ShadowfangKeep/shadowfang_keep.h index 0d8fc8a590..0765c5e349 100644 --- a/src/server/scripts/EasternKingdoms/ShadowfangKeep/shadowfang_keep.h +++ b/src/server/scripts/EasternKingdoms/ShadowfangKeep/shadowfang_keep.h @@ -25,75 +25,6 @@ uint32 const EncounterCount = 7; -enum SKSpells -{ - // Ivar Bloodfang - SPELL_CLEAVE = 87719, - - // High Warlord Cromush - SPELL_TELEPORT_VISUAL = 12980, - - // Bloodfang Berserker - SPELL_STEALTH = 58506, - SPELL_PERMANENT_FEIGN_DEATH = 29266, - - // Plague Dummy - SPELL_DISEASE_CLOUD = 88198 -}; - -enum SKCreatures -{ - // Baron Ashbury - BOSS_BARON_ASHBURY = 46962, - - // Baron Silverlaine - BOSS_BARON_SILVERLAINE = 3887, - - NPC_NANDOS_DUMMY = 51047, - NPC_WOLF_MASTER_NANDOS = 50851, - NPC_LUPINE_SPECTRE = 50923, - NPC_ODO_DUMMY = 50934, - NPC_ODO_THE_BLINDWATCHER = 50857, - NPC_RAZORCLAW_DUMMY = 51080, - NPC_RAZORCLAW_THE_BUTCHER = 50869, - NPC_RETHILGORE_DUMMY = 51085, - NPC_RETHILGORE = 50834, - - // Commander Springvale - BOSS_COMMANDER_SPRINGVALE = 4278, - NPC_TORMENTED_OFFICER = 50615, - NPC_WAILING_GUARDSMAN = 50613, - NPC_SHIELD_FOCUS = 50547, - NPC_DESECRATION_STALKER = 50503, - - // Lord Walden - BOSS_LORD_WALDEN = 46963, - NPC_MYSTERY_MIXTURE = 50522, - - // Lord Godfrey - BOSS_LORD_GODFREY = 46964, - NPC_BLOODTHIRSTY_GHOUL = 50561, - NPC_PISTOL_BARRAGE_DUMMY = 52065, - - // Generic NPCs - NPC_VETERAN_FORSAKEN_TROOPER = 47030, - NPC_DEATHSTALKER_BELMONT = 47293, - NPC_FORSAKEN_BLIGHTSPREADER = 47031, - NPC_HIGH_WARLORD_CROMUSH = 47294, - NPC_DISEASE_BUNNY = 23837, - NPC_BLOODFANG_BERSERKER = 47027, - NPC_PACKLEADER_IVAR = 47006, - NPC_HIGH_MAGISTRATE_HENRY = 47862, - NPC_DEBUG_ANNOUNCER = 43679, -}; - -enum SKGameObjectIds -{ - GO_COURTYARD_DOOR = 18895, - GO_SORCERERS_DOOR = 18972, - GO_ARUGAL_DOOR = 18971 -}; - enum SKDataTypes { // Bosses @@ -104,16 +35,65 @@ enum SKDataTypes DATA_LORD_GODFREY = 4, DATA_APOTHECARY_HUMMEL = 5, + // Additional data DATA_TEAM_IN_INSTANCE, DATA_OUTSIDE_TROUPS_SPAWN, - + DATA_GODFREY_INTRO_SPAWN, DATA_DEBUG_ANNOUNCER, - DATA_ARUGAL_DOOR, DATA_SORCERER_GATE, DATA_COURTYARD_DOOR }; +enum SKCreatures +{ + // Bosses + BOSS_BARON_ASHBURY = 46962, + BOSS_BARON_SILVERLAINE = 3887, + BOSS_COMMANDER_SPRINGVALE = 4278, + BOSS_LORD_WALDEN = 46963, + BOSS_LORD_GODFREY = 46964, + + // Encounter related creatures + /*Baron Silverlaine*/ + NPC_NANDOS_DUMMY = 51047, + NPC_WOLF_MASTER_NANDOS = 50851, + NPC_LUPINE_SPECTRE = 50923, + NPC_ODO_DUMMY = 50934, + NPC_ODO_THE_BLINDWATCHER = 50857, + NPC_RAZORCLAW_DUMMY = 51080, + NPC_RAZORCLAW_THE_BUTCHER = 50869, + NPC_RETHILGORE_DUMMY = 51085, + NPC_RETHILGORE = 50834, + + /*Commander Springvale*/ + NPC_TORMENTED_OFFICER = 50615, + NPC_WAILING_GUARDSMAN = 50613, + NPC_SHIELD_FOCUS = 50547, + NPC_DESECRATION_STALKER = 50503, + + /*Lord Walden*/ + NPC_MYSTERY_MIXTURE = 50522, + + /*Lord Godfrey*/ + NPC_BLOODTHIRSTY_GHOUL = 50561, + NPC_PISTOL_BARRAGE_DUMMY = 52065, + + // Generic NPCs + NPC_HIGH_WARLORD_CROMUSH = 47294, + NPC_PACKLEADER_IVAR_BLOODFANG = 47006, + NPC_DEBUG_ANNOUNCER = 43679, + NPC_BLOODFANG_BERSERKER = 47027, + NPC_FORSAKEN_BLIGHTSPREADER = 47031 +}; + +enum SKGameObjectIds +{ + GO_COURTYARD_DOOR = 18895, + GO_SORCERERS_DOOR = 18972, + GO_ARUGALS_LAIR = 18971 +}; + template AI* GetShadowfangKeepAI(Creature* creature) {