aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/updates/world/master/2025_01_29_00_world.sql230
-rw-r--r--src/server/scripts/KhazAlgar/khaz_algar_script_loader.cpp7
-rw-r--r--src/server/scripts/KhazAlgar/zone_dornogal.cpp57
3 files changed, 294 insertions, 0 deletions
diff --git a/sql/updates/world/master/2025_01_29_00_world.sql b/sql/updates/world/master/2025_01_29_00_world.sql
new file mode 100644
index 00000000000..06f04067654
--- /dev/null
+++ b/sql/updates/world/master/2025_01_29_00_world.sql
@@ -0,0 +1,230 @@
+SET @CGUID := 10005731;
+SET @NPCTEXTID := 600083;
+
+-- Creature
+DELETE FROM `creature` WHERE `guid` BETWEEN @CGUID+0 AND @CGUID+4;
+INSERT INTO `creature` (`guid`, `id`, `map`, `zoneId`, `areaId`, `spawnDifficulties`, `PhaseId`, `PhaseGroup`, `modelid`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `wander_distance`, `currentwaypoint`, `MovementType`, `npcflag`, `unit_flags`, `unit_flags2`, `unit_flags3`, `VerifiedBuild`) VALUES
+(@CGUID+0, 236055, 2552, 14771, 15044, '0', 25497, 0, 0, 0, 2932.459228515625, -2410.5556640625, 266.3282470703125, 5.356359481811523437, 120, 0, 0, 0, NULL, NULL, NULL, NULL, 58680), -- Chief Officer Hammerflange (Area: Foundation Hall - Difficulty: 0) CreateObject1
+(@CGUID+1, 232132, 2552, 14771, 15044, '0', 0, 0, 0, 0, 2933.677001953125, -2412.3369140625, 266.635772705078125, 2.361375808715820312, 120, 0, 0, 0, NULL, NULL, NULL, NULL, 58680), -- Dawn (Area: Foundation Hall - Difficulty: 0) CreateObject1
+(@CGUID+2, 231110, 2552, 14771, 15044, '0', 0, 0, 0, 0, 2935.595458984375, -2411.2275390625, 266.635772705078125, 2.535473108291625976, 120, 0, 0, 0, NULL, NULL, NULL, NULL, 58680), -- Saradi (Area: Foundation Hall - Difficulty: 0) CreateObject1 (Auras: 458385 - [DNT] Female Earthen/Dwarf Taking Notes)
+(@CGUID+3, 234231, 2552, 14771, 15044, '0', 25497, 0, 0, 1, 2932.697998046875, -2408.795166015625, 266.398193359375, 5.322963237762451171, 120, 0, 0, 0, NULL, NULL, NULL, NULL, 58680), -- Zeppelin Engineer (Area: Foundation Hall - Difficulty: 0) CreateObject1
+(@CGUID+4, 234986, 2552, 14771, 15044, '0', 25497, 0, 0, 1, 2930.767333984375, -2410.770751953125, 266.403076171875, 5.554956436157226562, 120, 0, 0, 0, NULL, NULL, NULL, NULL, 58680); -- Greasemonkey Surveyor (Area: Foundation Hall - Difficulty: 0) CreateObject1
+
+DELETE FROM `creature_addon` WHERE `guid` = 10005252;
+INSERT INTO `creature_addon` (`guid`, `PathId`, `mount`, `StandState`, `AnimTier`, `VisFlags`, `SheathState`, `PvpFlags`, `emote`, `aiAnimKit`, `movementAnimKit`, `meleeAnimKit`, `visibilityDistanceType`, `auras`) VALUES
+(10005252, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, '1216769'); -- 236055 (Chief Officer Hammerflange) - Cooking
+
+-- Template Addon
+DELETE FROM `creature_template_addon` WHERE `entry` IN (234986 /*234986 (Greasemonkey Surveyor)*/, 234231 /*234231 (Zeppelin Engineer)*/, 236055 /*236055 (Chief Officer Hammerflange)*/, 231110 /*231110 (Saradi) - [DNT] Female Earthen/Dwarf Taking Notes*/);
+INSERT INTO `creature_template_addon` (`entry`, `PathId`, `mount`, `StandState`, `AnimTier`, `VisFlags`, `SheathState`, `PvpFlags`, `emote`, `aiAnimKit`, `movementAnimKit`, `meleeAnimKit`, `visibilityDistanceType`, `auras`) VALUES
+(234986, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ''), -- 234986 (Greasemonkey Surveyor)
+(234231, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ''), -- 234231 (Zeppelin Engineer)
+(236055, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ''), -- 236055 (Chief Officer Hammerflange)
+(231110, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, '458385'); -- 231110 (Saradi) - [DNT] Female Earthen/Dwarf Taking Notes
+
+-- Template
+UPDATE `creature_template` SET `faction`=3415, `BaseAttackTime`=2000, `unit_flags`=0x100, `unit_flags2`=0x800 WHERE `entry`=234986; -- Greasemonkey Surveyor
+UPDATE `creature_template` SET `faction`=3438, `npcflag`=3, `BaseAttackTime`=2000, `unit_flags2`=0x800 WHERE `entry`=232132; -- Dawn
+UPDATE `creature_template` SET `faction`=3415, `BaseAttackTime`=2000, `unit_flags`=0x100, `unit_flags2`=0x800 WHERE `entry`=234231; -- Zeppelin Engineer
+UPDATE `creature_template` SET `faction`=3438, `BaseAttackTime`=2000, `unit_flags2`=0x800 WHERE `entry`=231110; -- Saradi
+
+-- Difficulty
+UPDATE `creature_template_difficulty` SET `ContentTuningID`=3004, `StaticFlags1`=0x10000000, `VerifiedBuild`=58680 WHERE (`Entry`=234986 AND `DifficultyID`=0); -- 234986 (Greasemonkey Surveyor) - CanSwim
+UPDATE `creature_template_difficulty` SET `ContentTuningID`=3004, `StaticFlags1`=0x10000000, `VerifiedBuild`=58680 WHERE (`Entry`=234231 AND `DifficultyID`=0); -- 234231 (Zeppelin Engineer) - CanSwim
+UPDATE `creature_template_difficulty` SET `ContentTuningID`=3004, `StaticFlags1`=0x10000000, `VerifiedBuild`=58680 WHERE (`Entry`=231110 AND `DifficultyID`=0); -- 231110 (Saradi) - CanSwim
+UPDATE `creature_template_difficulty` SET `ContentTuningID`=3004, `StaticFlags1`=0x10000000, `VerifiedBuild`=58680 WHERE (`Entry`=232132 AND `DifficultyID`=0); -- 232132 (Dawn) - CanSwim
+
+DELETE FROM `creature_static_flags_override` WHERE `SpawnId` = @CGUID+0;
+INSERT INTO `creature_static_flags_override` (`SpawnId`, `DifficultyId`, `StaticFlags1`, `StaticFlags2`, `StaticFlags3`, `StaticFlags4`, `StaticFlags5`, `StaticFlags6`, `StaticFlags7`, `StaticFlags8`) VALUES
+(@CGUID+0, 0, (0x10000000), NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+
+
+-- Phasing
+DELETE FROM `phase_area` WHERE `PhaseId` = 25497;
+INSERT INTO `phase_area` (`AreaId`, `PhaseId`, `Comment`) VALUES
+(14771, 25497, 'See Goblins infront of Dawn in the Foundation Hall');
+
+DELETE FROM `conditions` WHERE (`SourceTypeOrReferenceId`=26 AND `SourceGroup` = 25497 AND `SourceEntry` = 0);
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `Comment`) VALUE
+(26, 25497, 0, 0, 0, 47, 0, 84719, 2|8|64, 0, 1, 'Apply Phase 25497 if Quest 84719 is not taken | complete | rewarded');
+
+-- Conversation
+DELETE FROM `conversation_template` WHERE `Id`=27051;
+INSERT INTO `conversation_template` (`Id`, `FirstLineID`, `TextureKitId`, `VerifiedBuild`) VALUES
+(27051, 73939, 0, 58680);
+
+UPDATE `conversation_template` SET `ScriptName` = 'conversation_dawn_accept_the_expedition_awaits' WHERE `Id` = 27051;
+
+DELETE FROM `conversation_actors` WHERE (`ConversationId`=27051 AND `Idx`=0);
+INSERT INTO `conversation_actors` (`ConversationId`, `ConversationActorId`, `ConversationActorGuid`, `Idx`, `CreatureId`, `CreatureDisplayInfoId`, `NoActorObject`, `ActivePlayerObject`, `VerifiedBuild`) VALUES
+(27051, 102192, (@CGUID+1), 0, 0, 0, 0, 0, 58680); -- Full: 0x203AF13F00E2B10000305200001551B4 Creature/0 R3772/S12370 Map: 2552 (Khaz Algar (Surface)) Entry: 232132 (Dawn) Low: 1397172
+
+DELETE FROM `conversation_line_template` WHERE `Id`=73939;
+INSERT INTO `conversation_line_template` (`Id`, `UiCameraID`, `ActorIdx`, `Flags`, `ChatType`, `VerifiedBuild`) VALUES
+(73939, 0, 0, 0, 0, 58680);
+
+-- Creature Text
+DELETE FROM `creature_text` WHERE `CreatureID` IN (234231, 234986, 236055);
+INSERT INTO `creature_text` (`CreatureID`, `GroupID`, `ID`, `Text`, `Type`, `Language`, `Probability`, `Emote`, `Duration`, `Sound`, `BroadcastTextId`, `TextRange`, `comment`) VALUES
+(234231, 0, 0, 'It\'s about time!', 12, 0, 100, 4, 0, 0, 171116, 0, 'Zeppelin Engineer to Player'),
+(234986, 0, 0, 'Yea, yea. We know! We know!', 12, 0, 100, 274, 0, 0, 146818, 0, 'Greasemonkey Surveyor to Player'),
+(236055, 0, 0, 'Finally, some excitement!', 12, 0, 100, 4, 0, 0, 156121, 0, 'Chief Officer Hammerflange to Player'),
+(236055, 1, 0, 'Well, what are you waiting for?', 12, 0, 100, 25, 0, 0, 0, 0, 'Chief Officer Hammerflange to Player'),
+(236055, 2, 0, 'Let\'s get moving!', 12, 0, 100, 25, 0, 0, 153564, 0, 'Chief Officer Hammerflange to Player');
+
+-- Gossip
+DELETE FROM `creature_template_gossip` WHERE (`CreatureID`=232132 AND `MenuID`=37152);
+INSERT INTO `creature_template_gossip` (`CreatureID`, `MenuID`, `VerifiedBuild`) VALUES
+(232132, 37152, 58680); -- Dawn
+
+DELETE FROM `npc_text` WHERE `ID` BETWEEN @NPCTEXTID+0 AND @NPCTEXTID+1;
+INSERT INTO `npc_text` (`ID`, `Probability0`, `Probability1`, `Probability2`, `Probability3`, `Probability4`, `Probability5`, `Probability6`, `Probability7`, `BroadcastTextId0`, `BroadcastTextId1`, `BroadcastTextId2`, `BroadcastTextId3`, `BroadcastTextId4`, `BroadcastTextId5`, `BroadcastTextId6`, `BroadcastTextId7`, `VerifiedBuild`) VALUES
+(@NPCTEXTID+0, 1, 0, 0, 0, 0, 0, 0, 0, 276801, 0, 0, 0, 0, 0, 0, 0, 58680), -- 232132 (Dawn)
+(@NPCTEXTID+1, 1, 0, 0, 0, 0, 0, 0, 0, 276804, 0, 0, 0, 0, 0, 0, 0, 58680); -- 232132 (Dawn)
+
+DELETE FROM `gossip_menu` WHERE (`MenuID`=37152 AND `TextID`=@NPCTEXTID+0) OR (`MenuID`=37155 AND `TextID`=@NPCTEXTID+1);
+INSERT INTO `gossip_menu` (`MenuID`, `TextID`, `VerifiedBuild`) VALUES
+(37152, @NPCTEXTID+0, 58680), -- 232132 (Dawn)
+(37155, @NPCTEXTID+1, 58680); -- 232132 (Dawn)
+
+DELETE FROM `gossip_menu_option` WHERE (`MenuID`=37152 AND `OptionID`=0);
+INSERT INTO `gossip_menu_option` (`MenuID`, `GossipOptionID`, `OptionID`, `OptionNpc`, `OptionText`, `OptionBroadcastTextID`, `Language`, `Flags`, `ActionMenuID`, `ActionPoiID`, `GossipNpcOptionID`, `BoxCoded`, `BoxMoney`, `BoxText`, `BoxBroadcastTextID`, `SpellID`, `OverrideIconID`, `VerifiedBuild`) VALUES
+(37152, 125333, 0, 0, 'Who are you?', 25092, 0, 0, 37155, 0, NULL, 0, 0, NULL, 0, NULL, NULL, 58680); -- OptionBroadcastTextID: 25092 - 38470 - 47091 - 47632 - 62792 - 65124 - 79414 - 97339 - 153888 - 161428 - 166571 - 176081 - 185133 - 224837 - 263541
+
+-- Quest
+DELETE FROM `creature_queststarter` WHERE (`id`=232132 AND `quest`=84719);
+INSERT INTO `creature_queststarter` (`id`, `quest`, `VerifiedBuild`) VALUES
+(232132, 84719, 58680); -- The Expedition Awaits offered by Dawn
+
+DELETE FROM `creature_questender` WHERE (`id`=230235 AND `quest`=84719);
+INSERT INTO `creature_questender` (`id`, `quest`, `VerifiedBuild`) VALUES
+(230235, 84719, 58680); -- The Expedition Awaits ended by Skaggit
+
+-- Dawn smart ai
+SET @ENTRY := 232132;
+UPDATE `creature_template` SET `AIName` = 'SmartAI', `ScriptName` = '' WHERE `entry` = @ENTRY;
+DELETE FROM `smart_scripts` WHERE `source_type` = 0 AND `entryOrGuid` = @ENTRY;
+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`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `action_param7`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`, `Difficulties`) VALUES
+(@ENTRY, 0, 0, 0, 19, 0, 100, 0, 84719, 0, 0, 0, 0, 143, 27051, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'On player accepted quest The Expedition Awaits (84719) - Player who accepted quest: Start conversation (27051) Actors<> (first line 73939)', ''),
+(@ENTRY, 0, 1, 0, 60, 0, 100, 0, 5000, 5000, 5000, 5000, 0, 5, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Every 5 seconds - Self: Play emote 1', '');
+
+-- Chief Officer Hammerflange smart ai
+SET @ENTRY := 236055;
+UPDATE `creature_template` SET `AIName` = 'SmartAI', `ScriptName` = '' WHERE `entry` = @ENTRY;
+DELETE FROM `smart_scripts` WHERE `source_type` = 0 AND `entryOrGuid` = @ENTRY;
+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`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `action_param7`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`, `Difficulties`) VALUES
+(@ENTRY, 0, 0, 0, 54, 0, 100, 0, 0, 0, 0, 0, 0, 80, 23605500, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'On just summoned - Self: Start timed action list id #Chief Officer Hammerflange #0 (23605500) (update out of combat)', '');
+
+-- Chief Officer Hammerflange smart ai
+SET @ENTRY := -10005252;
+DELETE FROM `smart_scripts` WHERE `source_type` = 0 AND `entryOrGuid` = @ENTRY;
+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`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `action_param7`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`, `Difficulties`) VALUES
+(@ENTRY, 0, 0, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 85, 1216769, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'On reset - Self: Cast spell 1216769 on self', '');
+
+-- Greasemonkey Surveyor smart ai
+SET @ENTRY := 234986;
+UPDATE `creature_template` SET `AIName` = 'SmartAI', `ScriptName` = '' WHERE `entry` = @ENTRY;
+DELETE FROM `smart_scripts` WHERE `source_type` = 0 AND `entryOrGuid` = @ENTRY;
+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`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `action_param7`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`, `Difficulties`) VALUES
+(@ENTRY, 0, 0, 0, 54, 0, 100, 0, 0, 0, 0, 0, 0, 80, 23498600, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'On just summoned - Self: Start timed action list id #Greasemonkey Surveyor #0 (23498600) (update out of combat)', '');
+
+-- Greasemonkey Surveyor smart ai
+DELETE FROM `smart_scripts` WHERE `source_type` = 0 AND `entryOrGuid` = -(@CGUID+4);
+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`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `action_param7`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`, `Difficulties`) VALUES
+(-(@CGUID+4), 0, 0, 0, 1, 0, 100, 0, 1000, 4000, 1000, 4000, 0, 10, 4, 274, 1, 5, 6, 1005, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Time between 1 - 4 seconds (OOC) - Self: Play random emote: 4, 274, 1, 5, 6, 1005', '');
+
+-- Zeppelin Engineer smart ai
+SET @ENTRY := 234231;
+UPDATE `creature_template` SET `AIName` = 'SmartAI', `ScriptName` = '' WHERE `entry` = @ENTRY;
+DELETE FROM `smart_scripts` WHERE `source_type` = 0 AND `entryOrGuid` = @ENTRY;
+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`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `action_param7`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`, `Difficulties`) VALUES
+(@ENTRY, 0, 0, 0, 54, 0, 100, 0, 0, 0, 0, 0, 0, 80, 23423100, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'On just summoned - Self: Start timed action list id #Zeppelin Engineer #0 (23423100) (update out of combat)', '');
+
+-- Zeppelin Engineer smart ai
+DELETE FROM `smart_scripts` WHERE `source_type` = 0 AND `entryOrGuid` = -(@CGUID+3);
+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`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `action_param7`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`, `Difficulties`) VALUES
+(-(@CGUID+3), 0, 0, 0, 1, 0, 100, 0, 1000, 4000, 1000, 4000, 0, 10, 6, 5, 274, 1005, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Time between 1 - 4 seconds (OOC) - Self: Play random emote: 4, 274, 1, 5, 6, 1005', '');
+
+-- Timed list 23605500 smart ai
+SET @ENTRY := 23605500;
+DELETE FROM `smart_scripts` WHERE `source_type` = 9 AND `entryOrGuid` = @ENTRY;
+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`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `action_param7`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`, `Difficulties`) VALUES
+(@ENTRY, 9, 0, 0, 0, 0, 100, 0, 1000, 1000, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'After 1 seconds - Self: Talk 0 to invoker', ''),
+(@ENTRY, 9, 1, 0, 0, 0, 100, 0, 3000, 3000, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'After 3 seconds - Self: Talk 1 to invoker', ''),
+(@ENTRY, 9, 2, 0, 0, 0, 100, 0, 1000, 1000, 0, 0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'After 1 seconds - Self: Talk 2 to invoker', ''),
+(@ENTRY, 9, 3, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 66, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 2.28638, 'After 0 seconds - Self: Set orientation to 2.28638', ''),
+(@ENTRY, 9, 4, 0, 0, 0, 100, 0, 2000, 2000, 0, 0, 0, 103, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'After 2 seconds - Self: Remove rooted', ''),
+(@ENTRY, 9, 5, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'After 0 seconds - Self: Disable gravity', ''),
+(@ENTRY, 9, 6, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 53, 0, 23605500, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'After 0 seconds - Self: Start path #23605500, walk, do not repeat, Passive', ''),
+(@ENTRY, 9, 7, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 41, 12000, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'After 0 seconds - Self: Despawn in 12 s', '');
+
+-- Timed list 23423100 smart ai
+SET @ENTRY := 23423100;
+DELETE FROM `smart_scripts` WHERE `source_type` = 9 AND `entryOrGuid` = @ENTRY;
+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`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `action_param7`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`, `Difficulties`) VALUES
+(@ENTRY, 9, 0, 0, 0, 0, 100, 0, 2000, 2000, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'After 2 seconds - Self: Talk 0 to invoker', ''),
+(@ENTRY, 9, 1, 0, 0, 0, 100, 0, 4000, 4000, 0, 0, 0, 53, 0, 23423100, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'After 4 seconds - Self: Start path #23423100, walk, do not repeat, Passive', ''),
+(@ENTRY, 9, 2, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 41, 10000, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'After 0 seconds - Self: Despawn in 10 s', '');
+
+-- Timed list 23498600 smart ai
+SET @ENTRY := 23498600;
+DELETE FROM `smart_scripts` WHERE `source_type` = 9 AND `entryOrGuid` = @ENTRY;
+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`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `action_param7`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`, `Difficulties`) VALUES
+(@ENTRY, 9, 0, 0, 0, 0, 100, 0, 5000, 5000, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'After 5 seconds - Self: Talk 0 to invoker', ''),
+(@ENTRY, 9, 1, 0, 0, 0, 100, 0, 1000, 1000, 0, 0, 0, 53, 0, 23498600, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'After 1 seconds - Self: Start path #23498600, walk, do not repeat, Passive', ''),
+(@ENTRY, 9, 2, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 41, 10000, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'After 0 seconds - Self: Despawn in 10 s', '');
+
+-- Path for Chief Officer Hammerflange
+SET @ENTRY := 236055;
+SET @PATHOFFSET := 0;
+SET @PATH := @ENTRY * 100 + @PATHOFFSET;
+DELETE FROM `waypoint_path` WHERE `PathId`= @PATH;
+INSERT INTO `waypoint_path` (`PathId`, `MoveType`, `Flags`, `Velocity`, `Comment`) VALUES
+(@PATH, 1, 0x0, NULL, 'Chief Officer Hammerflange - Scripted Path');
+
+DELETE FROM `waypoint_path_node` WHERE `PathId`= @PATH;
+INSERT INTO `waypoint_path_node` (`PathId`, `NodeId`, `PositionX`, `PositionY`, `PositionZ`, `Orientation`, `Delay`) VALUES
+(@PATH, 0, 2926.7683, -2410.2683, 266.33633, NULL, 0),
+(@PATH, 1, 2920.7683, -2409.0183, 266.33633, NULL, 0),
+(@PATH, 2, 2912.0183, -2410.5183, 266.33633, NULL, 0),
+(@PATH, 3, 2903.2683, -2417.2683, 266.33633, NULL, 0),
+(@PATH, 4, 2893.7683, -2425.0183, 266.83633, NULL, 0),
+(@PATH, 5, 2881.2683, -2440.0183, 266.58633, NULL, 0),
+(@PATH, 6, 2876.0774, -2448.981, 266.76108, NULL, 0);
+
+-- Path for Zeppelin Engineer
+SET @ENTRY := 234231;
+SET @PATHOFFSET := 0;
+SET @PATH := @ENTRY * 100 + @PATHOFFSET;
+DELETE FROM `waypoint_path` WHERE `PathId`= @PATH;
+INSERT INTO `waypoint_path` (`PathId`, `MoveType`, `Flags`, `Velocity`, `Comment`) VALUES
+(@PATH, 1, 0x0, NULL, 'Zeppelin Engineer - Scripted Path');
+
+DELETE FROM `waypoint_path_node` WHERE `PathId`= @PATH;
+INSERT INTO `waypoint_path_node` (`PathId`, `NodeId`, `PositionX`, `PositionY`, `PositionZ`, `Orientation`, `Delay`) VALUES
+(@PATH, 0, 2930.2622, -2407.7144, 266.32672, NULL, 0),
+(@PATH, 1, 2920.2622, -2404.4644, 266.32672, NULL, 0),
+(@PATH, 2, 2908.0122, -2405.4644, 266.57672, NULL, 0),
+(@PATH, 3, 2896.2622, -2413.4644, 266.32672, NULL, 0),
+(@PATH, 4, 2886.0122, -2424.7144, 266.82672, NULL, 0),
+(@PATH, 5, 2875.2622, -2435.2144, 266.57672, NULL, 0),
+(@PATH, 6, 2870.5122, -2441.4644, 266.82672, NULL, 0),
+(@PATH, 7, 2870.3264, -2445.1338, 266.67188, NULL, 0);
+
+-- Path for Seamonkey Surveyor
+SET @ENTRY := 234986;
+SET @PATHOFFSET := 0;
+SET @PATH := @ENTRY * 100 + @PATHOFFSET;
+DELETE FROM `waypoint_path` WHERE `PathId`= @PATH;
+INSERT INTO `waypoint_path` (`PathId`, `MoveType`, `Flags`, `Velocity`, `Comment`) VALUES
+(@PATH, 1, 0x0, NULL, 'Greasemonkey Surveyor - Scripted Path');
+
+DELETE FROM `waypoint_path_node` WHERE `PathId`= @PATH;
+INSERT INTO `waypoint_path_node` (`PathId`, `NodeId`, `PositionX`, `PositionY`, `PositionZ`, `Orientation`, `Delay`) VALUES
+(@PATH, 0, 2926.6724, -2410.126, 266.37375, NULL, 0),
+(@PATH, 1, 2920.6724, -2409.126, 266.37375, NULL, 0),
+(@PATH, 2, 2911.9224, -2410.626, 266.37375, NULL, 0),
+(@PATH, 3, 2903.4224, -2417.376, 266.37375, NULL, 0),
+(@PATH, 4, 2893.6724, -2424.876, 266.62375, NULL, 0),
+(@PATH, 5, 2881.4224, -2439.876, 266.62375, NULL, 0),
+(@PATH, 6, 2876.0774, -2448.981, 266.76108, NULL, 0);
diff --git a/src/server/scripts/KhazAlgar/khaz_algar_script_loader.cpp b/src/server/scripts/KhazAlgar/khaz_algar_script_loader.cpp
index f1d0e6698c8..13e6521560c 100644
--- a/src/server/scripts/KhazAlgar/khaz_algar_script_loader.cpp
+++ b/src/server/scripts/KhazAlgar/khaz_algar_script_loader.cpp
@@ -16,6 +16,10 @@
*/
// This is where scripts' loading functions should be declared:
+
+// Dornogal
+void AddSC_zone_dornogal();
+
// Zone Isle Of Dorn
void AddSC_zone_isle_of_dorn();
@@ -27,6 +31,9 @@ void AddSC_boss_ulgrax_the_devourer();
// void Add${NameOfDirectory}Scripts()
void AddKhazAlgarScripts()
{
+ // Dornogal
+ AddSC_zone_dornogal();
+
// Zone Isle of Dorn
AddSC_zone_isle_of_dorn();
diff --git a/src/server/scripts/KhazAlgar/zone_dornogal.cpp b/src/server/scripts/KhazAlgar/zone_dornogal.cpp
new file mode 100644
index 00000000000..ab0fe3acf6f
--- /dev/null
+++ b/src/server/scripts/KhazAlgar/zone_dornogal.cpp
@@ -0,0 +1,57 @@
+/*
+ * This file is part of the TrinityCore Project. See AUTHORS file for Copyright information
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "Containers.h"
+#include "Conversation.h"
+#include "ConversationAI.h"
+#include "ScriptMgr.h"
+#include "ScriptedCreature.h"
+#include "TemporarySummon.h"
+
+enum TheExpeditionAwaitsData
+{
+ NPC_CHIEF_OFFICER_HAMMERFLANGE = 236055,
+ NPC_GREASMONKEY_SURVEYOR = 234986,
+ NPC_ZEPPELIN_ENGINEER = 234231
+};
+
+// 27051 - Conversation
+class conversation_dawn_accept_the_expedition_awaits : public ConversationAI
+{
+public:
+ using ConversationAI::ConversationAI;
+
+ void OnCreate(Unit* creator) override
+ {
+ if (Creature* hammerflangeObject = GetClosestCreatureWithOptions(creator, 15.0f, { .CreatureId = NPC_CHIEF_OFFICER_HAMMERFLANGE, .IgnorePhases = true }))
+ hammerflangeObject->SummonPersonalClone(hammerflangeObject->GetPosition(), TEMPSUMMON_MANUAL_DESPAWN, 0s, 0, 0, creator->ToPlayer());
+
+ if (Creature* surveyorObject = GetClosestCreatureWithOptions(creator, 15.0f, { .CreatureId = NPC_GREASMONKEY_SURVEYOR, .IgnorePhases = true }))
+ surveyorObject->SummonPersonalClone(surveyorObject->GetPosition(), TEMPSUMMON_MANUAL_DESPAWN, 0s, 0, 0, creator->ToPlayer());
+
+ if (Creature* engineerObject = GetClosestCreatureWithOptions(creator, 15.0f, { .CreatureId = NPC_ZEPPELIN_ENGINEER, .IgnorePhases = true }))
+ engineerObject->SummonPersonalClone(engineerObject->GetPosition(), TEMPSUMMON_MANUAL_DESPAWN, 0s, 0, 0, creator->ToPlayer());
+
+ conversation->Start();
+ }
+};
+
+void AddSC_zone_dornogal()
+{
+ // Conversation
+ RegisterConversationAI(conversation_dawn_accept_the_expedition_awaits);
+}