Scripts/SFK: scripted Lord Godfrey intro events for both factions and cleaned up header file

This commit is contained in:
Ovahlord committed 2020-01-09 21:39:09 +01:00
1 parent be753e8671
commit 0aa4b560df
5 files changed
+138 -116

No files matched your search

@@ -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) // ");
@@ -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
@@ -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;
}
@@ -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;
}
};
@@ -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<class AI>
AI* GetShadowfangKeepAI(Creature* creature)
{