diff --git a/data/sql/updates/pending_db_world/rev_1679307378050076600.sql b/data/sql/updates/pending_db_world/rev_1679307378050076600.sql new file mode 100644 index 000000000..9a29ee866 --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1679307378050076600.sql @@ -0,0 +1,154 @@ +-- Coosh'coosh (18586) +-- Co-authored-by: aletson https://github.com/TrinityCore/TrinityCore/pull/20773 +UPDATE `creature_template` SET `AIName` = 'SmartAI', `ScriptName` = '' WHERE `entry` = 18586; + +DELETE FROM `smart_scripts` WHERE `entryorguid`=18586 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`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(18586, 0, 0, 0, 0, 0, 100, 0, 0, 0, 3000, 3000, 0, 11, 9532, 64, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Coosh\'coosh - In Combat - Cast \'Lightning Bolt\''), +(18586, 0, 1, 2, 62, 0, 100, 0, 7730, 0, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Coosh\'coosh - On Gossip Option 0 Selected - Close Gossip'), +(18586, 0, 2, 3, 61, 0, 100, 0, 0, 0, 0, 0, 0, 2, 45, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Coosh\'coosh - On Gossip Option 0 Selected - Set Faction Ogre'), +(18586, 0, 3, 4, 61, 0, 100, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Coosh\'coosh - On Gossip Option 0 Selected - Say Line 0'), +(18586, 0, 4, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 49, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Coosh\'coosh - On Gossip Option 0 Selected - Start Attacking'), +(18586, 0, 5, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Coosh\'coosh - On Reset - Set Default Faction'), +(18586, 0, 6, 0, 23, 0, 100, 0, 12550, 0, 10000, 10000, 0, 11, 12550, 64, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Coosh\'coosh - On Missing Buff - Cast Lightning Shield'); + +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` = 15 AND `SourceGroup` = 7730; +INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES +(15, 7730, 0, 0, 0, 9, 0, 10009, 0, 0, 0, 0, 0, '', 'Coosh\'coosh - Show gossip menu 7730 option id 0 if quest Crackin\' Some Skulls has been taken.'); + +-- Mortog Steamhead (23373) +-- Co-authored-by: tkrokli https://github.com/TrinityCore/TrinityCore/commit/0c6eeb3abc54dbc0f147e5098619e8e19e27accd +UPDATE `creature_template` SET `ScriptName`= '' WHERE `entry`= 23373; + +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`= 15 AND `SourceGroup`= 8692; +INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition`,`ErrorType`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES +(15,8692,0,0,0,5,0,942,128,0,0,0,0,'', 'Mortog Steamhead - Show gossip menu 8692 option id 0 if player is Exalted with Cenarion Expedition.'); + +-- Timothy Daniels (18019) +-- Co-authored-by: tkrokli https://github.com/TrinityCore/TrinityCore/commit/e2f395863a7fb1a85dc7d09f2692198faae16f46 +UPDATE `creature_template` SET `ScriptName`= '' WHERE `entry` = 18019; + +-- Elder Kuruti (18197) +-- Co-authored-by: aletson https://github.com/TrinityCore/TrinityCore/pull/20430 +UPDATE `creature_template` SET `AIName` = 'SmartAI', `ScriptName` = '' WHERE `entry` = 18197; + +DELETE FROM `smart_scripts` WHERE `entryorguid` = 18197 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 +(18197, 0, 0, 0, 62, 0, 100, 0, 7585, 0, 0, 0, 11, 32152, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Elder Kuruti - On Gossip Option 0 Selected - Cast \'Serverside - Summon Elder Kuruti`s Response\''); + +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` = 15 AND `SourceGroup` = 7582; +INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES +(15,7582,0,0,1,8,0,9803,0,0,1,0,'','Elder Kuruti - Show gossip menu 7582 option id 0 if Quest 9803 is not rewarded'), +(15,7582,0,0,1,9,0,9803,0,0,0,0,'','Elder Kuruti -Show gossip menu 7582 option id 0 if Quest 9803 is taken'), +(15,7582,0,0,1,2,0,24573,1,0,1,0,'','Elder Kuruti - Show gossip menu 7582 option id 0 if player does not have item 24573 in inventory'); + +-- Escape from Umbrafen - Slavebinder(18042) & Kayra Longmane(17969) +-- Co-authored-by: Faq +-- Co-authored-by: offl https://github.com/Faq/TrinityCore/commit/2219319d5a5a3e04e81548d23efaa177879bbb29 + +-- Creature_text +DELETE FROM `creature_text` WHERE `CreatureID`=18042; +INSERT INTO `creature_text` (`CreatureID`, `GroupID`, `ID`, `Text`, `Type`, `Language`, `Probability`, `Emote`, `Duration`, `Sound`, `BroadcastTextId`, `TextRange`, `comment`) VALUES +(18042, 0, 0, 'You won\'t escape us, druid!', 12, 0, 100, 0, 0, 0, 14731, 0, 'Slavebinder'); + +DELETE FROM `creature_text` WHERE `CreatureID`=17969; +INSERT INTO `creature_text` (`CreatureID`, `GroupID`, `ID`, `Text`, `Type`, `Language`, `Probability`, `Emote`, `Duration`, `Sound`, `BroadcastTextId`, `TextRange`, `comment`) VALUES +(17969, 0, 0, 'Is the way clear? Let\'s get out while we can, $n.', 12, 0, 100, 0, 0, 0, 14724, 0, 'Kayra Longmane'), +(17969, 1, 0, 'Looks like we won\'t get away so easily. Get ready!', 12, 0, 100, 0, 0, 0, 14725, 0, 'Kayra Longmane'), +(17969, 2, 0, 'Let\'s keep moving. We\'re not safe here!', 12, 0, 100, 0, 0, 0, 14726, 0, 'Kayra Longmane'), +(17969, 3, 0, 'Look out, $n! Enemies ahead!', 12, 0, 100, 0, 0, 0, 14727, 0, 'Kayra Longmane'), +(17969, 4, 0, 'We\'re almost to the refuge! Let\'s go.', 12, 0, 100, 0, 0, 0, 14728, 0, 'Kayra Longmane'), +(17969, 5, 0, 'I can see my fellow druids from here. Thank you, $n. I\'m sure Ysiel will reward you for your actions!', 12, 0, 100, 0, 0, 0, 14729, 0, 'Kayra Longmane'); + +-- Slavebinder +UPDATE `creature_template` SET `AIName` = 'SmartAI' WHERE `entry` = 18042; +DELETE FROM `smart_scripts` WHERE `entryorguid` = 18042 AND `source_type` = 0; +DELETE FROM `smart_scripts` WHERE `entryorguid` = 1804200 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`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(18042, 0, 0, 0, 54, 0, 100, 0, 0, 0, 0, 0, 0, 80, 1804200, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Umbrafen Slavebinder - On Just Summoned - Run Script'), +(1804200, 9, 0, 0, 0, 0, 100, 0, 2000, 2000, 0, 0, 0, 49, 0, 0, 0, 0, 0, 0, 19, 17969, 0, 0, 0, 0, 0, 0, 0, 'Umbrafen Slavebinder - On Script - Start Attacking Closest Creature \'Kayra Longmane\''); + +-- Kayra Longmane +DELETE FROM `script_waypoint` WHERE `entry`=17969; + +DELETE FROM `waypoints` WHERE `entry` = 17969; +INSERT INTO `waypoints` (`entry`,`pointid`,`position_x`,`position_y`,`position_z`,`point_comment`) VALUES +(17969,1,-930.049,5288.08,23.8484,'Kayra Longmane'), +(17969,2,-925.678,5296.48,18.1837,'Kayra Longmane'), +(17969,3,-924.297,5299.02,17.7109,'Kayra Longmane'), +(17969,4,-928.39,5317.02,18.2086,'Kayra Longmane'), +(17969,5,-930.621,5329.92,18.7734,'Kayra Longmane'), +(17969,6,-931.49,5357.65,18.0272,'Kayra Longmane'), +(17969,7,-934.778,5369.34,22.278,'Kayra Longmane'), +(17969,8,-934.522,5373.41,22.8347,'Kayra Longmane'), +(17969,9,-937.009,5382.98,22.6991,'Kayra Longmane'), +(17969,10,-941.948,5404.14,22.6697,'Kayra Longmane'), +(17969,11,-931.244,5415.85,23.064,'Kayra Longmane'), +(17969,12,-901.498,5420.32,24.2133,'Kayra Longmane'), +(17969,13,-860.312,5415.62,23.6711,'Kayra Longmane'), +(17969,14,-777.989,5391.98,23.0017,'Kayra Longmane'), +(17969,15,-750.362,5385.79,22.7658,'Kayra Longmane'), +(17969,16,-731.339,5382.45,22.5171,'Kayra Longmane'), +(17969,17,-681.236,5381.38,22.0502,'Kayra Longmane'), +(17969,18,-637.944,5384.34,22.2056,'Kayra Longmane'), +(17969,19,-608.954,5408.72,21.6304,'Kayra Longmane'), +(17969,20,-598.134,5413.61,21.4123,'Kayra Longmane'), +(17969,21,-571.269,5420.77,21.1849,'Kayra Longmane'), +(17969,22,-553.1,5424.62,21.1937,'Kayra Longmane'), +(17969,23,-524.745,5443.95,20.977,'Kayra Longmane'), +(17969,24,-502.985,5446.28,22.1494,'Kayra Longmane'), +(17969,25,-472.464,5449.55,22.5615,'Kayra Longmane'), +(17969,26,-454.533,5461.3,22.6028,'Kayra Longmane'); + +-- Summon groups +DELETE FROM `creature_summon_groups` WHERE `summonerId` = 17969; +INSERT INTO `creature_summon_groups` (`summonerId`,`summonerType`,`groupId`,`entry`,`position_x`,`position_y`,`position_z`,`orientation`,`summonType`,`summonTime`) VALUES +(17969,0,0,18042,-916.4861,5355.635,18.25233,5.0,1,60000), +(17969,0,0,18042,-918.9288,5358.430,18.05894,5.0,1,60000), +(17969,0,1,18042,-668.2899,5382.913,22.32479,5.0,1,60000), +(17969,0,1,18042,-669.2795,5386.802,23.01249,5.0,1,60000); + +SET @ID := 17969; +UPDATE `creature_template` SET `AIName` = 'SmartAI', `ScriptName` = '' WHERE `entry` = @ID; +UPDATE `creature_template_addon` SET `bytes1`=0 WHERE `entry` = @ID; +DELETE FROM `smart_scripts` WHERE `entryorguid` = @ID AND `source_type` = 0; +DELETE FROM `smart_scripts` WHERE `entryorguid` BETWEEN @ID*100+0 AND @ID*100+5 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`,`event_param5`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_param4`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ID,0,0,11,19,0,100,0,9752,0,0,0,0,80,@ID*100+0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Kayra Longmane - On Quest \'Escape from Umbrafen\' Taken - Run Script'), +(@ID,0,1,0,40,0,100,0,5,0,0,0,0,80,@ID*100+1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Kayra Longmane - On Waypoint 5 Reached - Run Script'), +(@ID,0,2,0,40,0,100,0,6,0,0,0,0,80,@ID*100+2,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Kayra Longmane - On Waypoint 6 Reached - Run Script'), +(@ID,0,3,0,40,0,100,0,17,0,0,0,0,80,@ID*100+3,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Kayra Longmane - On Waypoint 17 Reached - Run Script'), +(@ID,0,4,0,40,0,100,0,18,0,0,0,0,80,@ID*100+4,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Kayra Longmane - On Waypoint 18 Reached - Run Script'), +(@ID,0,5,0,40,0,100,0,26,0,0,0,0,80,@ID*100+5,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Kayra Longmane - On Waypoint 26 Reached - Run Script'), +(@ID,0,6,0,6,0,100,0,0,0,0,0,0,6,9752,0,0,0,0,0,16,0,0,0,0,0,0,0,0,'Kayra Longmane - On Death - Fail Quest \'Escape from Umbrafen\''), +(@ID,0,7,0,11,0,100,0,0,0,0,0,0,90,8,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Kayra Longmane - On spawn - Set Flag Standstate Kneel'), +(@ID,0,8,0,0,0,100,0,1000,2000,2000,3000,0,11,9739,64,0,0,0,0,2,0,0,0,0,0,0,0,0,'Kayra Longmane - In Combat - Cast Wrath'), +(@ID,0,9,0,0,0,100,0,5000,6000,6000,7000,0,11,31401,64,0,0,0,0,2,0,0,0,0,0,0,0,0,'Kayra Longmane - In Combat - Cast Moonfire'), +(@ID, 0, 10, 0, 74, 1, 100, 0, 0, 25, 8000, 15000, 0, 11, 23381, 64, 0, 0, 0, 0, 18, 25, 0, 0, 0, 0, 0, 0, 0, 'Kayra Longmane - On Friendly Between 0-25% Health (Range: 25) - Cast \'Healing Touch\' (Phase 1)'), +(@ID, 0, 11, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 22, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Kayra Longmane - On Quest \'Escape from Umbrafen\' Taken - Set Event Phase 1'), +(@ID*100+0,9,0,0,0,0,100,0,0,0,0,0,0,64,1,0,0,0,0,0,7,0,0,0,0,0,0,0,0,'Kayra Longmane - On Script - Store Targetlist'), +(@ID*100+0,9,1,0,0,0,100,0,0,0,0,0,0,1,0,0,0,0,0,0,12,1,0,0,0,0,0,0,0,'Kayra Longmane - On Script - Say Line 0'), +(@ID*100+0,9,2,0,0,0,100,0,0,0,0,0,0,2,495,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Kayra Longmane - On Script - Set Faction 495'), +(@ID*100+0,9,3,0,0,0,100,0,0,0,0,0,0,83,2,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Kayra Longmane - On Script - Remove NPC Flag Questgiver'), +(@ID*100+0,9,4,0,0,0,100,0,3000,3000,0,0,0,91,8,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Kayra Longmane - On Script - Remove Flag Standstate Kneel'), +(@ID*100+0,9,5,0,0,0,100,0,0,0,0,0,0,53,0,17969,0,0,0,2,1,0,0,0,0,0,0,0,0,'Kayra Longmane - On Script - Start Waypoint'), +-- Seems like with no time and resume when all creatures are killed +(@ID*100+1,9,0,0,0,0,100,0,0,0,0,0,0,54,10000,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Kayra Longmane - On Script - Pause Waypoint'), +(@ID*100+1,9,1,0,0,0,100,0,0,0,0,0,0,1,1,0,0,0,0,0,12,1,0,0,0,0,0,0,0,'Kayra Longmane - On Script - Say Line 1'), +(@ID*100+1,9,2,0,0,0,100,0,2000,2000,0,0,0,107,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,'Kayra Longmane - On Script - Summon Group 0'), +(@ID*100+1,9,3,0,0,0,100,0,1000,1000,0,0,0,1,0,0,0,0,0,0,19,18042,0,0,0,0,0,0,0,'Kayra Longmane - On Script - Say text'), +(@ID*100+2,9,0,0,0,0,100,0,0,0,0,0,0,54,4000,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Kayra Longmane - On Script - Pause Waypoint'), +(@ID*100+2,9,1,0,0,0,100,0,4000,4000,0,0,0,1,2,0,0,0,0,0,12,1,0,0,0,0,0,0,0,'Kayra Longmane - On Script - Say Line 2'), +(@ID*100+2,9,2,0,0,0,100,0,0,0,0,0,0,59,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Kayra Longmane - On Script - Set Run On'), +-- Seems like with no time and resume when all creatures are killed +(@ID*100+3,9,0,0,0,0,100,0,0,0,0,0,0,54,10000,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Kayra Longmane - On Script - Pause Waypoint'), +(@ID*100+3,9,1,0,0,0,100,0,3000,3000,0,0,0,1,3,0,0,0,0,0,12,1,0,0,0,0,0,0,0,'Kayra Longmane - On Script - Say Line 3'), +(@ID*100+3,9,2,0,0,0,100,0,2000,2000,0,0,0,107,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,'Kayra Longmane - On Script - Summon Group 1'), +(@ID*100+3,9,3,0,0,0,100,0,1000,1000,0,0,0,1,0,0,0,0,0,0,19,18042,0,0,0,0,0,0,0,'Kayra Longmane - On Script - Say text'), +(@ID*100+4,9,0,0,0,0,100,0,0,0,0,0,0,54,4000,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Kayra Longmane - On Script - Pause Waypoint'), +(@ID*100+4,9,1,0,0,0,100,0,1000,1000,0,0,0,1,4,0,0,0,0,0,12,1,0,0,0,0,0,0,0,'Kayra Longmane - On Script - Say Line 4'), +(@ID*100+5,9,0,0,0,0,100,0,0,0,0,0,0,54,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Kayra Longmane - On Script - Pause Waypoint'), +(@ID*100+5,9,1,0,0,0,100,0,0,0,0,0,0,1,5,0,0,0,0,0,12,1,0,0,0,0,0,0,0,'Kayra Longmane - On Script - Say Line 5'), +(@ID*100+5,9,2,0,0,0,100,0,0,0,0,0,0,15,9752,0,0,0,0,0,16,0,0,0,0,0,0,0,0,'Kayra Longmane - On Script - Quest Credit \'Escape from Umbrafen\''), +(@ID*100+5,9,3,0,0,0,100,0,0,0,0,0,0,41,10000,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Kayra Longmane - On Script - Despawn (10000)'), +(@ID*100+5, 9, 4, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Kayra Longmane - Actionlist - Set Event Phase 0'); diff --git a/src/server/scripts/Outland/outland_script_loader.cpp b/src/server/scripts/Outland/outland_script_loader.cpp index 86be80f95..976a507d8 100644 --- a/src/server/scripts/Outland/outland_script_loader.cpp +++ b/src/server/scripts/Outland/outland_script_loader.cpp @@ -107,7 +107,7 @@ void AddSC_netherstorm(); void AddSC_shadowmoon_valley(); void AddSC_shattrath_city(); void AddSC_terokkar_forest(); -void AddSC_zangarmarsh(); +//void AddSC_zangarmarsh(); // The name of this function should match: // void Add${NameOfDirectory}Scripts() @@ -204,5 +204,5 @@ void AddOutlandScripts() AddSC_shadowmoon_valley(); AddSC_shattrath_city(); AddSC_terokkar_forest(); - AddSC_zangarmarsh(); + //AddSC_zangarmarsh(); } diff --git a/src/server/scripts/Outland/zone_zangarmarsh.cpp b/src/server/scripts/Outland/zone_zangarmarsh.cpp deleted file mode 100644 index f9bef01d0..000000000 --- a/src/server/scripts/Outland/zone_zangarmarsh.cpp +++ /dev/null @@ -1,325 +0,0 @@ -/* - * This file is part of the AzerothCore 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 Affero General Public License as published by the - * Free Software Foundation; either version 3 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 Affero 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 . - */ - -#include "Player.h" -#include "ScriptMgr.h" -#include "ScriptedCreature.h" -#include "ScriptedEscortAI.h" -#include "ScriptedGossip.h" - -/*###### -## npc_cooshcoosh -######*/ - -#define GOSSIP_COOSH "You owe Sim'salabim money. Hand them over or die!" - -enum Cooshhooosh -{ - SPELL_LIGHTNING_BOLT = 9532, - QUEST_CRACK_SKULLS = 10009 -}; - -class npc_cooshcoosh : public CreatureScript -{ -public: - npc_cooshcoosh() : CreatureScript("npc_cooshcoosh") { } - - struct npc_cooshcooshAI : public ScriptedAI - { - npc_cooshcooshAI(Creature* creature) : ScriptedAI(creature) - { - m_uiNormFaction = creature->GetFaction(); - } - - uint32 m_uiNormFaction; - uint32 LightningBolt_Timer; - - void Reset() override - { - LightningBolt_Timer = 2000; - if (me->GetFaction() != m_uiNormFaction) - me->SetFaction(m_uiNormFaction); - } - - void JustEngagedWith(Unit* /*who*/) override { } - - void UpdateAI(uint32 diff) override - { - if (!UpdateVictim()) - return; - - if (LightningBolt_Timer <= diff) - { - DoCastVictim(SPELL_LIGHTNING_BOLT); - LightningBolt_Timer = 5000; - } - else LightningBolt_Timer -= diff; - - DoMeleeAttackIfReady(); - } - }; - - CreatureAI* GetAI(Creature* creature) const override - { - return new npc_cooshcooshAI(creature); - } - - bool OnGossipHello(Player* player, Creature* creature) override - { - if (player->GetQuestStatus(QUEST_CRACK_SKULLS) == QUEST_STATUS_INCOMPLETE) - AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_COOSH, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF); - - SendGossipMenuFor(player, 9441, creature->GetGUID()); - return true; - } - - bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override - { - ClearGossipMenuFor(player); - if (action == GOSSIP_ACTION_INFO_DEF) - { - CloseGossipMenuFor(player); - creature->SetFaction(FACTION_OGRE); - creature->AI()->AttackStart(player); - } - return true; - } -}; - -/*###### -## npc_elder_kuruti -######*/ - -#define GOSSIP_ITEM_KUR1 "Greetings, elder. It is time for your people to end their hostility towards the draenei and their allies." -#define GOSSIP_ITEM_KUR2 "I did not mean to deceive you, elder. The draenei of Telredor thought to approach you in a way that would seem familiar to you." -#define GOSSIP_ITEM_KUR3 "I will tell them. Farewell, elder." - -class npc_elder_kuruti : public CreatureScript -{ -public: - npc_elder_kuruti() : CreatureScript("npc_elder_kuruti") { } - - bool OnGossipHello(Player* player, Creature* creature) override - { - if (player->GetQuestStatus(9803) == QUEST_STATUS_INCOMPLETE) - AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_KUR1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF); - - SendGossipMenuFor(player, 9226, creature->GetGUID()); - - return true; - } - - bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override - { - ClearGossipMenuFor(player); - switch (action) - { - case GOSSIP_ACTION_INFO_DEF: - AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_KUR2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1); - SendGossipMenuFor(player, 9227, creature->GetGUID()); - break; - case GOSSIP_ACTION_INFO_DEF + 1: - AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_KUR3, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2); - SendGossipMenuFor(player, 9229, creature->GetGUID()); - break; - case GOSSIP_ACTION_INFO_DEF + 2: - { - if (!player->HasItemCount(24573)) - { - ItemPosCountVec dest; - uint32 itemId = 24573; - InventoryResult msg = player->CanStoreNewItem(NULL_BAG, NULL_SLOT, dest, itemId, 1, nullptr); - if (msg == EQUIP_ERR_OK) - { - player->StoreNewItem(dest, itemId, true); - } - else - player->SendEquipError(msg, nullptr, nullptr, itemId); - } - SendGossipMenuFor(player, 9231, creature->GetGUID()); - break; - } - } - return true; - } -}; - -/*###### -## npc_mortog_steamhead -######*/ -class npc_mortog_steamhead : public CreatureScript -{ -public: - npc_mortog_steamhead() : CreatureScript("npc_mortog_steamhead") { } - - bool OnGossipHello(Player* player, Creature* creature) override - { - if (creature->IsVendor() && player->GetReputationRank(942) == REP_EXALTED) - AddGossipItemFor(player, GOSSIP_ICON_VENDOR, GOSSIP_TEXT_BROWSE_GOODS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRADE); - - SendGossipMenuFor(player, player->GetGossipTextId(creature), creature->GetGUID()); - - return true; - } - - bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override - { - ClearGossipMenuFor(player); - if (action == GOSSIP_ACTION_TRADE) - player->GetSession()->SendListInventory(creature->GetGUID()); - return true; - } -}; - -/*###### -## npc_kayra_longmane -######*/ - -enum Kayra -{ - SAY_START = 0, - SAY_AMBUSH1 = 1, - SAY_PROGRESS = 2, - SAY_AMBUSH2 = 3, - SAY_END = 4, - - QUEST_ESCAPE_FROM = 9752, - NPC_SLAVEBINDER = 18042 -}; - -class npc_kayra_longmane : public CreatureScript -{ -public: - npc_kayra_longmane() : CreatureScript("npc_kayra_longmane") { } - - struct npc_kayra_longmaneAI : public npc_escortAI - { - npc_kayra_longmaneAI(Creature* creature) : npc_escortAI(creature) { } - - void Reset() override { } - - void WaypointReached(uint32 waypointId) override - { - Player* player = GetPlayerForEscort(); - if (!player) - return; - - switch (waypointId) - { - case 4: - Talk(SAY_AMBUSH1, player); - DoSpawnCreature(NPC_SLAVEBINDER, -10.0f, -5.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000); - DoSpawnCreature(NPC_SLAVEBINDER, -8.0f, 5.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000); - break; - case 5: - Talk(SAY_PROGRESS, player); - SetRun(); - break; - case 16: - Talk(SAY_AMBUSH2, player); - DoSpawnCreature(NPC_SLAVEBINDER, -10.0f, -5.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000); - DoSpawnCreature(NPC_SLAVEBINDER, -8.0f, 5.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000); - break; - case 17: - SetRun(false); - break; - case 25: - Talk(SAY_END, player); - player->GroupEventHappens(QUEST_ESCAPE_FROM, me); - break; - } - } - }; - - bool OnQuestAccept(Player* player, Creature* creature, Quest const* quest) override - { - if (quest->GetQuestId() == QUEST_ESCAPE_FROM) - { - creature->AI()->Talk(SAY_START, player); - - if (npc_escortAI* pEscortAI = CAST_AI(npc_kayra_longmane::npc_kayra_longmaneAI, creature->AI())) - pEscortAI->Start(false, false, player->GetGUID()); - } - return true; - } - - CreatureAI* GetAI(Creature* creature) const override - { - return new npc_kayra_longmaneAI(creature); - } -}; - -/*###### -## npc_timothy_daniels -######*/ - -#define GOSSIP_TIMOTHY_DANIELS_ITEM1 "Specialist, eh? Just what kind of specialist are you, anyway?" -#define GOSSIP_TEXT_BROWSE_POISONS "Let me browse your reagents and poison supplies." - -enum Timothy -{ - GOSSIP_TEXTID_TIMOTHY_DANIELS1 = 9239 -}; - -class npc_timothy_daniels : public CreatureScript -{ -public: - npc_timothy_daniels() : CreatureScript("npc_timothy_daniels") { } - - bool OnGossipHello(Player* player, Creature* creature) override - { - if (creature->IsQuestGiver()) - player->PrepareQuestMenu(creature->GetGUID()); - - if (creature->IsVendor()) - AddGossipItemFor(player, GOSSIP_ICON_VENDOR, GOSSIP_TEXT_BROWSE_POISONS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRADE); - - AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_TIMOTHY_DANIELS_ITEM1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1); - SendGossipMenuFor(player, player->GetGossipTextId(creature), creature->GetGUID()); - return true; - } - - bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override - { - ClearGossipMenuFor(player); - switch (action) - { - case GOSSIP_ACTION_INFO_DEF+1: - SendGossipMenuFor(player, GOSSIP_TEXTID_TIMOTHY_DANIELS1, creature->GetGUID()); - break; - case GOSSIP_ACTION_TRADE: - player->GetSession()->SendListInventory(creature->GetGUID()); - break; - } - - return true; - } -}; - -/*###### -## AddSC -######*/ - -void AddSC_zangarmarsh() -{ - // Theirs - new npc_cooshcoosh(); - new npc_elder_kuruti(); - new npc_mortog_steamhead(); - new npc_kayra_longmane(); - new npc_timothy_daniels(); -}