diff --git a/sql/updates/world/4.3.4/2018_07_23_00_world_from_335_was_2018_07_18_01_world.sql b/sql/updates/world/4.3.4/2018_07_23_00_world_from_335_was_2018_07_18_01_world.sql new file mode 100644 index 00000000000..76776975b66 --- /dev/null +++ b/sql/updates/world/4.3.4/2018_07_23_00_world_from_335_was_2018_07_18_01_world.sql @@ -0,0 +1,5 @@ +-- +UPDATE `smart_scripts` SET `link`=1 WHERE `entryorguid`=184906 AND `source_type`=1 AND `id`=0; +DELETE FROM `smart_scripts` WHERE `entryorguid`=184906 AND `source_type`=1 AND `id`=1; +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 +(184906,1,1,0,61,0,100,0,0,0,0,0,41,0,0,0,0,0,0,19,21737,5,0,0,0,0,0,"Power Converter - On linked event - despawn"); diff --git a/sql/updates/world/4.3.4/2018_07_23_01_world_from_335_was_2018_07_18_02_world_335.sql b/sql/updates/world/4.3.4/2018_07_23_01_world_from_335_was_2018_07_18_02_world_335.sql new file mode 100644 index 00000000000..b8be656abb4 --- /dev/null +++ b/sql/updates/world/4.3.4/2018_07_23_01_world_from_335_was_2018_07_18_02_world_335.sql @@ -0,0 +1,54 @@ +/* +-- +-- Razzle Sprysprocket +DELETE FROM `creature_text` WHERE `CreatureID` IN (1269,5568); +DELETE FROM `creature_text` WHERE `CreatureID`=1268 AND `GroupID`=1; +INSERT INTO `creature_text` (`CreatureID`, `GroupID`, `ID`, `Text`, `Type`, `Language`, `Probability`, `Emote`, `Duration`, `Sound`, `BroadcastTextId`, `TextRange`, `comment`) VALUES +(1269,0,0,"Let me install these Gyromechanic Gears and Restabilization Cogs and we'll fire up The Recombobulator.",12,7,100,0,0,0,1883,0,"Razzle Sprysprocket"), +(1269,1,0,"That should do the trick.",12,7,100,0,0,0,1884,0,"Razzle Sprysprocket"), +(1269,2,0,"Time to save the entire gnomish race. Here goes nothing!",12,7,100,5,0,0,1885,0,"Razzle Sprysprocket"), +(1269,3,0,"Back to the drawing board.",12,7,100,0,0,0,1887,0,"Razzle Sprysprocket"), +(1269,4,0,"Perhaps a bit more grease will do the trick.",12,7,100,1,0,0,1888,0,"Razzle Sprysprocket"), +(1269,4,1,"Pretty close that time. I think we've almost got it.",12,7,100,1,0,0,1889,0,"Razzle Sprysprocket"), +(1269,4,2,"The Recombobulator is shaping up quite nicely. Just a few adjustments to go!",12,7,100,1,0,0,1890,0,"Razzle Sprysprocket"), +(1268,1,0,"Precisely.",12,7,100,273,0,0,1891,0,"Ozzie Togglevolt"), +(1268,1,1,"My thoughts exactly.",12,7,100,273,0,0,1892,0,"Ozzie Togglevolt"), +(1268,1,2,"Couldn't have said it better myself.",12,7,100,273,0,0,1893,0,"Ozzie Togglevolt"), +(1268,1,3,"Most definitely.",12,7,100,273,0,0,1894,0,"Ozzie Togglevolt"), +(1268,1,4,"I was thinking the same thing.",12,7,100,273,0,0,1895,0,"Ozzie Togglevolt"), +(5568,0,0,"Oh, great.",12,7,100,0,0,0,1886,0,"Captured Leper Gnome"); + +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=1269; +DELETE FROM `smart_scripts` WHERE `entryorguid`=1269 AND `source_type`=0; +DELETE FROM `smart_scripts` WHERE `entryorguid` IN (126900,126901,126902) 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 +(1269,0,0,0,20,0,100,0,412,0,0,0,83,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razzle Sprysprocket - On Quest 'Operation Recombobulation' Finished - Remove Npc Flag Questgiver"), +(1269,0,1,0,20,0,100,0,412,0,0,0,53,0,1269,0,0,0,0,1,0,0,0,0,0,0,0,"Razzle Sprysprocket - On Quest 'Operation Recombobulation' Finished - Start Waypoint"), +(1269,0,2,0,20,0,100,0,412,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razzle Sprysprocket - On Quest 'Operation Recombobulation' Finished - Say Line 0"), +(1269,0,3,0,40,0,100,0,1,1269,0,0,80,126900,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razzle Sprysprocket - On Waypoint 1 Reached - Run Script"), +(1269,0,4,0,40,0,100,0,2,1269,0,0,80,126901,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razzle Sprysprocket - On Waypoint 2 Reached - Run Script"), +(1269,0,5,0,40,0,100,0,3,1269,0,0,80,126902,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razzle Sprysprocket - On Waypoint 3 Reached - Run Script"), +(126900,9,0,0,0,0,100,0,0,0,0,0,54,10000,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razzle Sprysprocket - On Script - Pause Waypoint"), +(126900,9,1,0,0,0,100,0,0,0,0,0,66,0,0,0,0,0,0,8,0,0,0,0,0,0,1.31425,"Razzle Sprysprocket - On Script - Set Orientation"), +(126900,9,2,0,0,0,100,0,0,0,0,0,17,69,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razzle Sprysprocket - On Script - Set Emote State 69"), +(126900,9,3,0,0,0,100,0,8000,8000,0,0,17,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razzle Sprysprocket - On Script - Set Emote State 0"), +(126900,9,4,0,0,0,100,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razzle Sprysprocket - On Script - Say Line 1"), +(126901,9,0,0,0,0,100,0,0,0,0,0,54,15000,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razzle Sprysprocket - On Script - Pause Waypoint"), +(126901,9,1,0,0,0,100,0,0,0,0,0,66,0,0,0,0,0,0,8,0,0,0,0,0,0,1.27153,"Razzle Sprysprocket - On Script - Set Orientation"), +(126901,9,2,0,0,0,100,0,1000,1000,0,0,1,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razzle Sprysprocket - On Script - Say Line 2"), +(126901,9,3,0,0,0,100,0,4000,4000,0,0,5,69,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razzle Sprysprocket - On Script - Play Emote 69"), +(126901,9,4,0,0,0,100,0,1000,1000,0,0,86,7344,0,19,5568,0,0,1,0,0,0,0,0,0,0,"Razzle Sprysprocket - On Script - Cross Cast 'Recombobulate'"), +(126901,9,5,0,0,0,100,0,2000,2000,0,0,1,0,0,0,0,0,0,19,5568,0,0,0,0,0,0,"Razzle Sprysprocket - On Script - Say Line 0 (Captured Leper Gnome)"), +(126901,9,6,0,0,0,100,0,3000,3000,0,0,1,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razzle Sprysprocket - On Script - Say Line 3"), +(126902,9,0,0,0,0,100,0,0,0,0,0,66,0,0,0,0,0,0,8,0,0,0,0,0,0,5.63683,"Razzle Sprysprocket - On Script - Set Orientation"), +(126902,9,1,0,0,0,100,0,500,500,0,0,1,4,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razzle Sprysprocket - On Script - Say Line 4"), +(126902,9,2,0,0,0,100,0,4000,4000,0,0,1,1,0,0,0,0,0,19,1268,0,0,0,0,0,0,"Razzle Sprysprocket - On Script - Say Line 0 (Ozzie Togglevolt)"), +(126902,9,3,0,0,0,100,0,0,0,0,0,28,7344,0,0,0,0,0,19,5568,0,0,0,0,0,0,"Razzle Sprysprocket - On Script - Remove Aura 'Recombobulate' from Captured Leper Gnome"), +(126902,9,4,0,0,0,100,0,0,0,0,0,82,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Razzle Sprysprocket - On Script - Add Npc Flag Questgiver"); + +DELETE FROM `waypoints` WHERE `entry`=1269; +INSERT INTO `waypoints` (`entry`, `pointid`, `position_x`, `position_y`, `position_z`, `point_comment`) VALUES +(1269,1,-5496.54,-455.453,395.439,""), +(1269,2,-5499.83,-454.55,395.439,""), +(1269,3,-5497.94,-455.835,395.438,""); +*/ diff --git a/sql/updates/world/4.3.4/2018_07_23_02_world_from_335_was_2018_07_18_03_world_335.sql b/sql/updates/world/4.3.4/2018_07_23_02_world_from_335_was_2018_07_18_03_world_335.sql new file mode 100644 index 00000000000..537100eaa72 --- /dev/null +++ b/sql/updates/world/4.3.4/2018_07_23_02_world_from_335_was_2018_07_18_03_world_335.sql @@ -0,0 +1,18 @@ +/* +-- +-- Mux Manascrambler +DELETE FROM `gossip_menu_option` WHERE `MenuID`=7083; +INSERT INTO `gossip_menu_option` (`MenuID`, `OptionID`, `OptionIcon`, `OptionText`, `OptionBroadcastTextID`, `OptionType`, `OptionNpcFlag`, `ActionMenuID`, `ActionPoiID`, `BoxCoded`, `BoxMoney`, `BoxText`, `BoxBroadcastTextID`, `VerifiedBuild`) VALUES +(7083,0,0,"About that ghost revealer. Did I happen to leave it here? I seem to be missing it.",11909,1,1,0,0,0,0,"",0,0), +(7083,1,0,"I seem to have misplaced the distiller, Mux. Did I happen to leave it here?",11908,1,1,0,0,0,0,"",0,0); + +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=15 AND `SourceGroup`=7083 AND `SourceEntry`=1; +INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES +(15,7083,1,0,0,9,0,8924,0,0,0,0,0,"","Show gossip option if quest 'Hunting for Ectoplasm' is taken"), +(15,7083,1,0,0,2,0,21946,1,1,1,0,0,"","Show gossip option if player does not have item 'Ectoplasmic Distiller'"); + +UPDATE `smart_scripts` SET `action_type`=85, `action_param2`=2 WHERE `entryorguid`=16014 AND `source_type`=0 AND `id`=0; +DELETE FROM `smart_scripts` WHERE `entryorguid`=16014 AND `source_type`=0 AND `id`=2; +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 +(16014,0,2,1,62,0,100,0,7083,1,0,0,85,27752,2,0,0,0,0,7,0,0,0,0,0,0,0,"Mux Manascrambler - On Gossip Option 1 Selected - Invoker Cast 'Create Ectoplasmic Distiller'"); +*/ diff --git a/sql/updates/world/4.3.4/2018_07_23_03_world_from_335_was_2018_07_18_04_world_335.sql b/sql/updates/world/4.3.4/2018_07_23_03_world_from_335_was_2018_07_18_04_world_335.sql new file mode 100644 index 00000000000..b4f3ff97f79 --- /dev/null +++ b/sql/updates/world/4.3.4/2018_07_23_03_world_from_335_was_2018_07_18_04_world_335.sql @@ -0,0 +1,45 @@ +/* +-- +-- Anthion Harmon +UPDATE `creature_template` SET `npcflag`=3, `gossip_menu_id`=7072 WHERE `entry`=16016; + +DELETE FROM `gossip_menu` WHERE `MenuID`=7072; +INSERT INTO `gossip_menu` (`MenuID`, `TextID`, `VerifiedBuild`) VALUES +(7072,8334,0), +(7072,8337,0), +(7072,8338,0); + +DELETE FROM `npc_text` WHERE `ID` IN (8337,8338); +INSERT INTO `npc_text` (`ID`, `text0_0`, `text0_1`, `BroadcastTextID0`, `lang0`, `Probability0`, `em0_1`) VALUES +(8337,"Ysida lives thanks to your courage, $n. I am deeply in your debt and shall assist you as much as it is in my power.","",11933,0,1,0), +(8338,"I guess it's all just about over, right $n? I'm going to miss you... it'll be pretty lonely up here without someone to talk to.$B$BBut that doesn't mean that you can't come back to see me in the future!","",11912,0,1,1); + +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=14 AND `SourceGroup`=7072; +INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES +(14,7072,8334,0,0,8,0,8946,0,0,1,0,0,"","Show gossip text 8334 if quest 'Proof of Life' is not rewarded"), +(14,7072,8337,0,0,8,0,8946,0,0,0,0,0,"","Show gossip text 8337 if quest 'Proof of Life' is rewarded"), +(14,7072,8337,0,0,8,0,9015,0,0,1,0,0,"","Show gossip text 8337 if quest 'The Challenge' is NOT rewarded"), +(14,7072,8338,0,0,8,0,9015,0,0,0,0,0,"","Show gossip text 8338 if quest 'The Challenge' is rewarded"); + +-- Falrin Treeshaper +UPDATE `creature_template` SET `npcflag`=3, `gossip_menu_id`=7073 WHERE `entry`=16032; + +DELETE FROM `gossip_menu` WHERE `MenuID`=7073; +INSERT INTO `gossip_menu` (`MenuID`, `TextID`, `VerifiedBuild`) VALUES +(7073,8336,0); + +DELETE FROM `gossip_menu_option` WHERE `MenuID`=7073; +INSERT INTO `gossip_menu_option` (`MenuID`, `OptionID`, `OptionIcon`, `OptionText`, `OptionBroadcastTextID`, `OptionType`, `OptionNpcFlag`, `ActionMenuID`, `ActionPoiID`, `BoxCoded`, `BoxMoney`, `BoxText`, `BoxBroadcastTextID`, `VerifiedBuild`) VALUES +(7073,0,0,"I believe I misplaced that banner you enchanted for me, Falrin.",11910,1,1,0,0,0,0,"",0,0); + +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=15 AND `SourceGroup`=7073; +INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES +(15,7073,0,0,0,14,0,9015,0,0,1,0,0,"","Show gossip option if quest 'The Challenge' is taken, completed or rewarded"), +(15,7073,0,0,0,2,0,21986,1,1,1,0,0,"","Show gossip option if player does not have item 'Banner of Provocation'"); + +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=16032; +DELETE FROM `smart_scripts` WHERE `entryorguid`=16032 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 +(16032,0,0,1,62,0,100,0,7073,0,0,0,85,27755,2,0,0,0,0,7,0,0,0,0,0,0,0,"Falrin Treeshaper - On Gossip Option 0 Selected - Invoker Cast 'Create Banner of Provocation'"), +(16032,0,1,0,61,0,100,0,0,0,0,0,72,0,0,0,0,0,0,7,0,0,0,0,0,0,0,"Falrin Treeshaper - On Gossip Option 0 Selected - Close Gossip"); +*/ diff --git a/sql/updates/world/4.3.4/2018_07_23_04_world_from_335_was_2018_07_22_00_world_335.sql b/sql/updates/world/4.3.4/2018_07_23_04_world_from_335_was_2018_07_22_00_world_335.sql new file mode 100644 index 00000000000..bad1eabcce8 --- /dev/null +++ b/sql/updates/world/4.3.4/2018_07_23_04_world_from_335_was_2018_07_22_00_world_335.sql @@ -0,0 +1,7 @@ +/* +-- +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=14 AND `SourceGroup`=1822; +INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES +(14,1822,2473,0,0,6,0,67,0,0,0,0,0,"","Show gossip text 2473 if player is Horde"), +(14,1822,2474,0,0,6,0,469,0,0,0,0,0,"","Show gossip text 2474 if player is Alliance"); +*/ diff --git a/sql/updates/world/4.3.4/2018_07_23_05_world_from_335_was_2018_07_22_01_world_335.sql b/sql/updates/world/4.3.4/2018_07_23_05_world_from_335_was_2018_07_22_01_world_335.sql new file mode 100644 index 00000000000..d985aea1841 --- /dev/null +++ b/sql/updates/world/4.3.4/2018_07_23_05_world_from_335_was_2018_07_22_01_world_335.sql @@ -0,0 +1,29 @@ +/* +-- +-- Thaurissan Relic +UPDATE `gameobject_template` SET `AIName`="SmartGameObjectAI" WHERE `entry`=153556; +DELETE FROM `smart_scripts` WHERE `entryorguid`=153556 AND `source_type`=1; +DELETE FROM `smart_scripts` WHERE `entryorguid`=15355600 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 +(153556,1,0,0,70,0,100,1,2,0,0,0,64,1,0,0,0,0,0,7,0,0,0,0,0,0,0,"Thaurissan Relic - On Gameobject State Changed - Store Targetlist"), +(153556,1,1,0,70,0,100,1,2,0,0,0,80,15355600,0,0,0,0,0,1,0,0,0,0,0,0,0,"Thaurissan Relic - On Gameobject State Changed - Run Script"), +(15355600,9,0,0,0,0,100,0,0,0,0,0,12,8887,3,5000,0,0,0,1,0,0,0,0,0,0,0,"Thaurissan Relic - On Script - Summon Creature 'A tormented voice'"), +(15355600,9,1,0,0,0,100,0,0,0,0,0,100,1,0,0,0,0,0,19,8887,0,0,0,0,0,0,"Thaurissan Relic - On Script - Send Targetlist"), +(15355600,9,2,0,0,0,100,0,0,0,0,0,45,1,1,0,0,0,0,19,8887,0,0,0,0,0,0,"Thaurissan Relic - On Script - Set Data"); + +-- A tormented voice +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=8887; +DELETE FROM `smart_scripts` WHERE `entryorguid`=8887 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 +(8887,0,0,0,38,0,100,0,1,1,0,0,1,0,0,0,0,0,0,12,1,0,0,0,0,0,0,"A tormented voice - On Data Set - Say Line 0"); + +DELETE FROM `creature_text` WHERE `CreatureID`=8887; +INSERT INTO `creature_text` (`CreatureID`, `GroupID`, `ID`, `Text`, `Type`, `Language`, `Probability`, `Emote`, `Duration`, `Sound`, `BroadcastTextId`, `TextRange`, `comment`) VALUES +(8887,0,0,"Leave this place. ",15,0,100,0,0,0,4594,0,"A tormented voice"), +(8887,0,1,"You will perish here. ",15,0,100,0,0,0,4595,0,"A tormented voice"), +(8887,0,2,"Do not taint these ruins, mortal. ",15,0,100,0,0,0,4596,0,"A tormented voice"), +(8887,0,3,"Help us, outsider. ",15,0,100,0,0,0,4597,0,"A tormented voice"), +(8887,0,4,"He cannot be defeated. ",15,0,100,0,0,0,4598,0,"A tormented voice"), +(8887,0,5,"Your existence is acknowledged. ",15,0,100,0,0,0,4599,0,"A tormented voice"), +(8887,0,6,"Defiler... you will be punished for this incursion. ",15,0,100,0,0,0,4600,0,"A tormented voice"); +*/ diff --git a/sql/updates/world/4.3.4/2018_07_23_06_world_from_335_was_2018_07_22_02_world_335.sql b/sql/updates/world/4.3.4/2018_07_23_06_world_from_335_was_2018_07_22_02_world_335.sql new file mode 100644 index 00000000000..0a15e72d470 --- /dev/null +++ b/sql/updates/world/4.3.4/2018_07_23_06_world_from_335_was_2018_07_22_02_world_335.sql @@ -0,0 +1,10 @@ +/* +-- Royal Historian Archesonus +DELETE FROM `gossip_menu` WHERE `MenuID`=1561 AND `TextID`=2235; +INSERT INTO `gossip_menu` (`MenuID`, `TextID`, `VerifiedBuild`) VALUES +(1561,2235,0); + +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=14 AND `SourceGroup`=1561; +INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES +(14,1561,2235,0,0,9,0,3702,0,0,0,0,0,"","Show gossip text 2235 if quest 'The Smoldering Ruins of Thaurissan' is taken"); +*/ diff --git a/sql/updates/world/4.3.4/2018_07_23_07_world_from_335_was_2018_07_22_03_world_335.sql b/sql/updates/world/4.3.4/2018_07_23_07_world_from_335_was_2018_07_22_03_world_335.sql new file mode 100644 index 00000000000..f2c51ac6940 --- /dev/null +++ b/sql/updates/world/4.3.4/2018_07_23_07_world_from_335_was_2018_07_22_03_world_335.sql @@ -0,0 +1,16 @@ +/* +-- +-- Stone Watcher of Norgannon +UPDATE `gossip_menu` SET `TextID`=1676 WHERE `MenuID`=57001; +UPDATE `gossip_menu` SET `TextID`=1675 WHERE `MenuID`=57002; + +DELETE FROM `creature_text` WHERE `CreatureID`=7918; +INSERT INTO `creature_text` (`CreatureID`, `GroupID`, `ID`, `Text`, `Type`, `Language`, `Probability`, `Emote`, `Duration`, `Sound`, `BroadcastTextId`, `TextRange`, `comment`) VALUES +(7918,0,0,"Salutations! I am a guardian of entry. Please use the proper discs for access to Uldum.",12,0,100,0,0,0,4049,0,"Stone Watcher of Norgannon"), +(7918,1,0,"Your discs will be returned to you once you access the pedestal.",12,0,100,0,0,0,4065,0,"Stone Watcher of Norgannon"); + +DELETE FROM `smart_scripts` WHERE `entryorguid`=7918 AND `source_type`=0 AND `id` IN (2,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`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(7918,0,2,0,11,0,100,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Stone Watcher of Norgannon - On Spawn - Say Line 0"), +(7918,0,3,0,62,0,100,0,57005,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Stone Watcher of Norgannon - On Gossip Option Selected - Say Line 1"); +*/ diff --git a/sql/updates/world/4.3.4/2018_07_23_08_world_from_335_was_2018_07_22_04_world.sql b/sql/updates/world/4.3.4/2018_07_23_08_world_from_335_was_2018_07_22_04_world.sql new file mode 100644 index 00000000000..36de2e6a5a7 --- /dev/null +++ b/sql/updates/world/4.3.4/2018_07_23_08_world_from_335_was_2018_07_22_04_world.sql @@ -0,0 +1,4 @@ +-- Princess Moira Bronzebeard +DELETE FROM `creature_text` WHERE `CreatureID`=8929; +INSERT INTO `creature_text` (`CreatureID`, `GroupID`, `ID`, `Text`, `Type`, `Language`, `Probability`, `Emote`, `Duration`, `Sound`, `BroadcastTextId`, `TextRange`, `comment`) VALUES +(8929,0,0,"%s is visibly shaken by the death of Emperor Thaurissan.",16,0,100,18,0,0,5429,0,"Princess Moira Bronzebeard"); diff --git a/sql/updates/world/4.3.4/2018_07_23_09_world_from_335_was_2018_07_22_05_world_335.sql b/sql/updates/world/4.3.4/2018_07_23_09_world_from_335_was_2018_07_22_05_world_335.sql new file mode 100644 index 00000000000..70e556c4b21 --- /dev/null +++ b/sql/updates/world/4.3.4/2018_07_23_09_world_from_335_was_2018_07_22_05_world_335.sql @@ -0,0 +1,4 @@ +/* +-- Gaffer Jack +UPDATE `fishing_loot_template` SET `GroupId`=0 WHERE `entry` IN (148); +*/ diff --git a/sql/updates/world/4.3.4/2018_07_23_10_world_from_335_was_2018_07_22_06_world.sql b/sql/updates/world/4.3.4/2018_07_23_10_world_from_335_was_2018_07_22_06_world.sql new file mode 100644 index 00000000000..2bbd38d4b28 --- /dev/null +++ b/sql/updates/world/4.3.4/2018_07_23_10_world_from_335_was_2018_07_22_06_world.sql @@ -0,0 +1,59 @@ +-- Sharth and Pathaleon conversation +DELETE FROM `creature_text` WHERE `CreatureID`=21504 AND `GroupID`=13; +DELETE FROM `creature_text` WHERE `CreatureID`=18554; +INSERT INTO `creature_text` (`CreatureID`, `GroupID`, `ID`, `Text`, `Type`, `Language`, `Probability`, `Emote`, `Duration`, `Sound`, `BroadcastTextId`, `TextRange`, `comment`) VALUES +(18554,0,0,"You come into my house and threaten ME? I think not!'",12,0,100,1,0,0,15542,0,"Sharth Voldoun"), +(18554,1,0,"My master, we are honored by your presence. How may I serve thee?",12,0,100,0,0,0,19156,0,"Sharth Voldoun"), +(18554,2,0,"All goes exceedingly well, my lord. Testing of the smaller prototype at the Cenarion Thicket was a complete success. The second bomb is being ritually fueled in the courtyard below even as we speak. And, I''ve sent a courier to Tuurem to bring the rest of the parts to us here.",12,0,100,1,0,0,19159,0,"Sharth Voldoun"), +(18554,3,0,'You are satisfied?',12,0,100,6,0,0,19160,0,"Sharth Voldoun"), +(18554,4,0,'I can assure you that we will not fail, my master. I am personally overseeing every aspect of the construction, and I hold the final codes, myself. Within a day''s time, I will have the bomb detonated on those nearby pests.',12,0,100,2,0,0,19164,0,"Sharth Voldoun"), +(21504,13,0,'Rise, young Voldoun. Do not worry yourself with pleasantries. I come at the behest of our master, Prince Kael''thas. He bids me to check on the progress of the mana bomb.',12,0,100,1,0,0,19157,0,"Pathaleon the Calculator's Image"); + +-- Incorrect spawning of Pathaleon the Calculators Image +DELETE FROM `creature` WHERE `guid`=85566 AND `id`=21504; + +-- Sharth Voldoun, fix position and weapon sheathed +UPDATE `creature` SET `position_x` = -2288.34839, `position_y` = 3091.4968, `orientation` = 3.2263 WHERE `guid` = 86925; +DELETE FROM `creature_template_addon` WHERE `entry`=18554; +INSERT INTO `creature_template_addon` (`entry`, `path_id`, `mount`, `bytes1`, `bytes2`, `emote`, `auras`) VALUES +(18554,0,0,0,0,0,""); + +-- Sharth Voldoun +UPDATE `creature_template` SET `AIName`= 'SmartAI' WHERE `entry`= 18554; +DELETE FROM `smart_scripts` WHERE `entryorguid`=18554 AND `source_type`=0; +DELETE FROM `smart_scripts` WHERE `entryorguid`=1855400 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_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(18554,0,0,0,0,0,100,0,3000,5000,40000,45000,0,11,15277,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sharth Voldoun - IC - Cast Seal of Reckoning"), +(18554,0,1,0,2,0,100,0,0,40,15000,20000,0,11,13952,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sharth Voldoun - On Below 40% HP - Cast Holy Light"), +(18554,0,2,3,4,0,100,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sharth Voldoun - On Aggro - Say Line 0"), +(18554,0,3,0,61,0,100,0,0,0,0,0,0,45,1,1,0,0,0,0,19,21504,50,0,0,0,0,0,"Sharth Voldoun - On Aggro - Set Data"), +(18554,0,4,0,1,0,100,0,30000,30000,120000,120000,0,80,1855400,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sharth Voldoun - OOC - RunScript"), +(1855400,9,0,0,0,0,100,0,0,0,0,0,0,12,21504,8,0,0,0,0,8,0,0,0,-2293.5210,3091.34302,152.817734,6.17546,"Sharth Voldoun - On Script - Summon Pathaleon the Calculators Image"), +(1855400,9,1,0,0,0,100,0,2000,2000,0,0,0,90,8,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sharth Voldoun - On Script - Set Flag Standstate 'Kneel'"), +(1855400,9,2,0,0,0,100,0,1000,1000,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sharth Voldoun - On Script - Say Line 1"), +(1855400,9,3,0,0,0,100,0,7000,7000,0,0,0,1,13,0,0,0,0,0,19,21504,0,0,0,0,0,0,"Sharth Voldoun - On Script - Say Line 13 (Pathaleon the Calculators Image)"), +(1855400,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,"Sharth Voldoun - On Script - Remove Flag Standstate 'Kneel'"), +(1855400,9,5,0,0,0,100,0,8000,8000,0,0,0,1,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sharth Voldoun - On Script - Say Line 2"), +(1855400,9,6,0,0,0,100,0,14000,14000,0,0,0,1,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sharth Voldoun - On Script - Say Line 3"), +(1855400,9,7,0,0,0,100,0,4000,4000,0,0,0,1,4,0,0,0,0,0,19,21504,0,0,0,0,0,0,"Sharth Voldoun - On Script - Say Line 4 (Pathaleon the Calculators Image)"), +(1855400,9,8,0,0,0,100,0,16000,16000,0,0,0,1,5,0,0,0,0,0,19,21504,0,0,0,0,0,0,"Sharth Voldoun - On Script - Say Line 5 (Pathaleon the Calculators Image)"), +(1855400,9,9,0,0,0,100,0,16000,16000,0,0,0,1,6,0,0,0,0,0,19,21504,0,0,0,0,0,0,"Sharth Voldoun - On Script - Say Line 6 (Pathaleon the Calculators Image)"), +(1855400,9,10,0,0,0,100,0,10000,10000,0,0,0,1,4,0,0,0,0,0,1,0,0,0,0,0,0,0,"Sharth Voldoun - On Script - Say Line 4"), +(1855400,9,11,0,0,0,100,0,13000,13000,0,0,0,1,7,0,0,0,0,0,19,21504,0,0,0,0,0,0,"Sharth Voldoun - On Script - Say Line 7 (Pathaleon the Calculators Image)"), +(1855400,9,12,0,0,0,100,0,0,0,0,0,0,45,3,3,0,0,0,0,19,21504,0,0,0,0,0,0,"Sharth Voldoun - On Script - Set Data to Pathaleon the Calculators Image"); + +-- Pathaleon the Calculators Image +DELETE FROM `smart_scripts` WHERE `entryorguid`=21504 AND `ID`>1; +DELETE FROM `smart_scripts` WHERE `entryorguid`=2150401 AND `source_type`=9; +DELETE FROM `smart_scripts` WHERE `entryorguid`=2150402 AND `source_type`=9; +DELETE FROM `smart_scripts` WHERE `entryorguid`=21504 AND `ID`=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_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(21504,0,2,0,54,0,100,0,0,0,0,0,0,11,34427,2,0,0,0,0,1,0,0,0,0,0,0,0,"Pathaleon the Calculator's Image - On Just Summoned - Cast Ethereal Teleport"), +(21504,0,3,0,54,0,100,0,0,0,0,0,0,11,33900,2,0,0,0,0,1,0,0,0,0,0,0,0,"Pathaleon the Calculator's Image - On Just Summoned - Cast Shroud of Death"), +(21504,0,4,0,38,0,100,0,3,3,0,0,0,80,2150401,2,0,0,0,0,1,0,0,0,0,0,0,0,"Pathaleon the Calculator's Image - On Data Set - Run Script"), +(2150401,9,0,0,0,0,100,0,8000,8000,0,0,0,11,34427,2,0,0,0,0,1,0,0,0,0,0,0,0,"Pathaleon the Calculator's Image - On Script - Cast Ethereal Teleport"), +(2150401,9,1,0,0,0,100,0,2000,2000,0,0,0,41,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Pathaleon the Calculator's Image - On Script - Despawn"), +(21504,0,0,0,38,0,100,0,1,1,0,0,0,80,2150402,2,0,0,0,0,1,0,0,0,0,0,0,0,"Pathaleon the Calculator's Image - On Data Set - Run Script"), +(2150402,9,0,0,0,0,100,0,1000,1000,0,0,0,1,8,0,0,0,0,0,1,0,0,0,0,0,0,0,"Pathaleon the Calculator's Image - On Script - Say text"), +(2150402,9,1,0,0,0,100,0,5000,5000,0,0,0,11,34427,2,0,0,0,0,1,0,0,0,0,0,0,0,"Pathaleon the Calculator's Image - On Script - Cast Ethereal Teleport"), +(2150402,9,2,0,0,0,100,0,1000,1000,0,0,0,41,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Pathaleon the Calculator's Image - On Script - Despawn"); diff --git a/sql/updates/world/4.3.4/2018_07_23_11_world_from_335_was_2018_07_22_07_world_335.sql b/sql/updates/world/4.3.4/2018_07_23_11_world_from_335_was_2018_07_22_07_world_335.sql new file mode 100644 index 00000000000..cc152dc5b9c --- /dev/null +++ b/sql/updates/world/4.3.4/2018_07_23_11_world_from_335_was_2018_07_22_07_world_335.sql @@ -0,0 +1,84 @@ +/* +-- Quest "Protecting the Shipment" +UPDATE `quest_template_addon` SET `SpecialFlags`=2 WHERE `ID`=309; -- Prevents quest from auto completing + +-- Miran +UPDATE `creature` SET `spawntimesecs`=120 WHERE `guid`=8975; + +DELETE FROM `creature_text` WHERE `CreatureID`=1379 AND `GroupID` IN (1,2,3); +INSERT INTO `creature_text` (`CreatureID`, `GroupID`, `ID`, `Text`, `Type`, `Language`, `Probability`, `Emote`, `Duration`, `Sound`, `BroadcastTextId`, `TextRange`, `comment`) VALUES +(1379,1,0,"Help! I've only one hand to defend myself with.",12,7,100,0,0,0,510,0,"Miran"), +(1379,2,0,"Send them on! I'm not afraid of some scrawny beasts!",12,7,100,0,0,0,511,0,"Miran"), +(1379,3,0,"Ah, here at last! It's going to feel so good to get rid of these barrels.",12,7,100,0,0,0,498,0,"Miran"); + +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=1379; +DELETE FROM `smart_scripts` WHERE `entryorguid`=1379 AND `source_type`=0; +DELETE FROM `smart_scripts` WHERE `entryorguid` IN (137900,137901) 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_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(1379,0,0,1,19,0,100,0,309,0,0,0,0,64,1,0,0,0,0,0,7,0,0,0,0,0,0,0,"Miran - On Quest 'Protecting the Shipment' Taken - Store Targetlist"), +(1379,0,1,2,61,0,100,0,0,0,0,0,0,83,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Miran - On Quest 'Protecting the Shipment' Taken - Remove Npc Flag Questgiver"), +(1379,0,2,0,61,0,100,0,0,0,0,0,0,53,0,1379,0,0,0,2,1,0,0,0,0,0,0,0,"Miran - On Quest 'Protecting the Shipment' Taken - Start Waypoint"), +(1379,0,3,0,6,0,100,0,0,0,0,0,0,6,309,0,0,0,0,0,12,1,0,0,0,0,0,0,"Miran - On Just Died - Fail Quest 'Protecting the Shipment'"), +(1379,0,4,0,40,0,100,0,19,1379,0,0,0,80,137900,2,0,0,0,0,1,0,0,0,0,0,0,0,"Miran - On Waypoint 19 Reached - Run Script"), +(1379,0,5,0,40,0,100,0,23,1379,0,0,0,80,137901,2,0,0,0,0,1,0,0,0,0,0,0,0,"Miran - On Waypoint 23 Reached - Run Script"), +(1379,0,6,0,40,0,100,0,24,1379,0,0,0,41,1000,0,0,0,0,0,1,0,0,0,0,0,0,0,"Miran - On Waypoint 24 Reached - Despawn"), +(137900,9,0,0,0,0,100,0,0,0,0,0,0,54,2000,0,0,0,0,0,1,0,0,0,0,0,0,0,"Miran - On Script - Pause Waypoint"), +(137900,9,1,0,0,0,100,0,0,0,0,0,0,107,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Miran - On Script - Summon Group"), +(137900,9,2,0,0,0,100,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Miran - On Script - Say Line 1"), +(137900,9,3,0,0,0,100,0,0,0,0,0,0,1,0,0,0,0,0,0,19,2149,0,0,0,0,0,0,"Miran - On Script - Say Line 0 (Dark Iron Raider)"), +(137900,9,4,0,0,0,100,0,7000,7000,0,0,0,1,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Miran - On Script - Say Line 2"), +(137901,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,"Miran - On Script - Pause Waypoint"), +(137901,9,1,0,0,0,100,0,0,0,0,0,0,1,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Miran - On Script - Say Line 3"), +(137901,9,2,0,0,0,100,0,0,0,0,0,0,15,309,0,0,0,0,0,12,1,0,0,0,0,0,0,"Miran - On Script - Complete Quest 'Protecting the Shipment'"); + +DELETE FROM `creature_summon_groups` WHERE `summonerId`=1379; +INSERT INTO `creature_summon_groups` (`summonerId`, `summonerType`, `groupId`, `entry`, `position_x`, `position_y`, `position_z`, `orientation`, `summonType`, `summonTime`) VALUES +(1379,0,1,2149,-5699.63,-3745.94,319.454,1.56927,1,10000), +(1379,0,1,2149,-5706.36,-3744.81,318.798,1.04306,1,10000); + +DELETE FROM `waypoints` WHERE `entry`=1379; +INSERT INTO `waypoints` (`entry`,`pointid`,`position_x`,`position_y`,`position_z`,`point_comment`) VALUES +(1379,1,-5751.12,-3441.01,301.743,""), +(1379,2,-5738.58,-3485.14,302.41,""), +(1379,3,-5721.62,-3507.85,304.011,""), +(1379,4,-5710.21,-3527.97,304.708,""), +(1379,5,-5706.92,-3542.89,304.871,""), +(1379,6,-5701.53,-3551.24,305.962,""), +(1379,7,-5699.53,-3555.69,306.505,""), +(1379,8,-5690.56,-3571.98,309.035,""), +(1379,9,-5678.61,-3587.17,310.607,""), +(1379,10,-5677.05,-3594.35,311.527,""), +(1379,11,-5674.39,-3605.19,312.239,""), +(1379,12,-5674.45,-3614.39,312.337,""), +(1379,13,-5673.05,-3630.56,311.105,""), +(1379,14,-5680.34,-3645.44,315.185,""), +(1379,15,-5684.46,-3650.05,314.687,""), +(1379,16,-5693.9,-3674.14,313.03,""), +(1379,17,-5701.43,-3712.54,313.959,""), +(1379,18,-5698.79,-3720.88,316.943,""), +(1379,19,-5699.95,-3733.63,318.597,""), +(1379,20,-5698.61,-3754.74,322.047,""), +(1379,21,-5688.68,-3769,323.957,""), +(1379,22,-5688.14,-3782.65,322.667,""), +(1379,23,-5699.23,-3792.65,322.448,""), +(1379,24,-5700.8,-3792.78,322.588,""); + +-- Dark Iron Raider +DELETE FROM `creature_text` WHERE `CreatureID`=2149; +INSERT INTO `creature_text` (`CreatureID`, `GroupID`, `ID`, `Text`, `Type`, `Language`, `Probability`, `Emote`, `Duration`, `Sound`, `BroadcastTextId`, `TextRange`, `comment`) VALUES +(2149,0,0,"Get him!",12,6,100,0,0,0,512,0,"Dark Iron Raider"); + +DELETE FROM `smart_scripts` WHERE `entryorguid`=2149 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_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(2149,0,0,0,54,0,100,0,0,0,0,0,0,49,0,0,0,0,0,0,19,1379,0,0,0,0,0,0,"Dark Iron Raider - Just Summoned - Start Attacking"); + +-- Huldar +DELETE FROM `gossip_menu` WHERE `MenuID`=4322 AND `TextID`=5501; +INSERT INTO `gossip_menu` (`MenuID`, `TextID`, `VerifiedBuild`) VALUES +(4322,5501,0); + +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=14 AND `SourceGroup`=4322; +INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES +(14,4322,5494,0,0,29,0,1379,20,0,0,0,0,"","Show gossip text 5494 if Miran is nearby"), +(14,4322,5501,0,0,29,0,1379,20,0,1,0,0,"","Show gossip text 3522 if Miran is not nearby"); +*/ diff --git a/src/common/Utilities/Containers.h b/src/common/Utilities/Containers.h index c6c9c58b253..fa724a39c98 100644 --- a/src/common/Utilities/Containers.h +++ b/src/common/Utilities/Containers.h @@ -68,7 +68,8 @@ namespace Trinity // this element has chance (elementsToKeep / elementsToProcess) of being kept if (urand(1, elementsToProcess) <= elementsToKeep) { - *keepIt = std::move(*curIt); + if (keepIt != curIt) + *keepIt = std::move(*curIt); ++keepIt; --elementsToKeep; } diff --git a/src/common/Utilities/EventMap.cpp b/src/common/Utilities/EventMap.cpp index b82507b5281..ae83ab0571f 100644 --- a/src/common/Utilities/EventMap.cpp +++ b/src/common/Utilities/EventMap.cpp @@ -33,7 +33,7 @@ void EventMap::SetPhase(uint8 phase) _phase = uint8(1 << (phase - 1)); } -void EventMap::ScheduleEvent(uint32 eventId, Milliseconds const& minTime, Milliseconds const& maxTime, uint32 group /*= 0*/, uint32 phase /*= 0*/) +void EventMap::ScheduleEvent(uint32 eventId, Milliseconds minTime, Milliseconds maxTime, uint32 group /*= 0*/, uint32 phase /*= 0*/) { ScheduleEvent(eventId, urand(uint32(minTime.count()), uint32(maxTime.count())), group, phase); } @@ -49,7 +49,7 @@ void EventMap::ScheduleEvent(uint32 eventId, uint32 time, uint32 group /*= 0*/, _eventMap.insert(EventStore::value_type(_time + time, eventId)); } -void EventMap::RescheduleEvent(uint32 eventId, Milliseconds const& minTime, Milliseconds const& maxTime, uint32 group /*= 0*/, uint32 phase /*= 0*/) +void EventMap::RescheduleEvent(uint32 eventId, Milliseconds minTime, Milliseconds maxTime, uint32 group /*= 0*/, uint32 phase /*= 0*/) { RescheduleEvent(eventId, urand(uint32(minTime.count()), uint32(maxTime.count())), group, phase); } diff --git a/src/common/Utilities/EventMap.h b/src/common/Utilities/EventMap.h index e8f062c54fe..6c99665126e 100644 --- a/src/common/Utilities/EventMap.h +++ b/src/common/Utilities/EventMap.h @@ -120,7 +120,7 @@ public: * @param group The group which the event is associated to. Has to be between 1 and 8. 0 means it has no group. * @param phase The phase in which the event can occur. Has to be between 1 and 8. 0 means it can occur in all phases. */ - void ScheduleEvent(uint32 eventId, Milliseconds const& time, uint32 group = 0, uint8 phase = 0) + void ScheduleEvent(uint32 eventId, Milliseconds time, uint32 group = 0, uint8 phase = 0) { ScheduleEvent(eventId, uint32(time.count()), group, phase); } @@ -134,7 +134,7 @@ public: * @param group The group which the event is associated to. Has to be between 1 and 8. 0 means it has no group. * @param phase The phase in which the event can occur. Has to be between 1 and 8. 0 means it can occur in all phases. */ - void ScheduleEvent(uint32 eventId, Milliseconds const& minTime, Milliseconds const& maxTime, uint32 group = 0, uint32 phase = 0); + void ScheduleEvent(uint32 eventId, Milliseconds minTime, Milliseconds maxTime, uint32 group = 0, uint32 phase = 0); /** * @name ScheduleEvent @@ -154,7 +154,7 @@ public: * @param group The group which the event is associated to. Has to be between 1 and 8. 0 means it has no group. * @param phase The phase in which the event can occur. Has to be between 1 and 8. 0 means it can occur in all phases. */ - void RescheduleEvent(uint32 eventId, Milliseconds const& time, uint32 group = 0, uint8 phase = 0) + void RescheduleEvent(uint32 eventId, Milliseconds time, uint32 group = 0, uint8 phase = 0) { RescheduleEvent(eventId, uint32(time.count()), group, phase); } @@ -168,7 +168,7 @@ public: * @param group The group which the event is associated to. Has to be between 1 and 8. 0 means it has no group. * @param phase The phase in which the event can occur. Has to be between 1 and 8. 0 means it can occur in all phases. */ - void RescheduleEvent(uint32 eventId, Milliseconds const& minTime, Milliseconds const& maxTime, uint32 group = 0, uint32 phase = 0); + void RescheduleEvent(uint32 eventId, Milliseconds minTime, Milliseconds maxTime, uint32 group = 0, uint32 phase = 0); /** * @name RescheduleEvent @@ -189,7 +189,7 @@ public: * @brief Repeats the mostly recently executed event. * @param time Time until in milliseconds as std::chrono::duration the event occurs. */ - void Repeat(Milliseconds const& time) + void Repeat(Milliseconds time) { Repeat(uint32(time.count())); } @@ -210,7 +210,7 @@ public: * @param minTime Minimum time as std::chrono::duration until the event occurs. * @param maxTime Maximum time as std::chrono::duration until the event occurs. */ - void Repeat(Milliseconds const& minTime, Milliseconds const& maxTime) + void Repeat(Milliseconds minTime, Milliseconds maxTime) { Repeat(uint32(minTime.count()), uint32(maxTime.count())); } @@ -235,7 +235,7 @@ public: * @brief Delays all events in the map. If delay is greater than or equal internal timer, delay will be 0. * @param delay Amount of delay in ms as std::chrono::duration. */ - void DelayEvents(Milliseconds const& delay) + void DelayEvents(Milliseconds delay) { DelayEvents(uint32(delay.count())); } @@ -256,7 +256,7 @@ public: * @param delay Amount of delay in ms as std::chrono::duration. * @param group Group of the events. */ - void DelayEvents(Milliseconds const& delay, uint32 group) + void DelayEvents(Milliseconds delay, uint32 group) { DelayEvents(uint32(delay.count()), group); } diff --git a/src/common/Utilities/EventProcessor.h b/src/common/Utilities/EventProcessor.h index 7686c5faeb7..a90fa4c3d08 100644 --- a/src/common/Utilities/EventProcessor.h +++ b/src/common/Utilities/EventProcessor.h @@ -80,7 +80,7 @@ class TC_COMMON_API EventProcessor void Update(uint32 p_time); void KillAllEvents(bool force); void AddEvent(BasicEvent* event, uint64 e_time, bool set_addtime = true); - void AddEventAtOffset(BasicEvent* event, Milliseconds const& offset) { AddEvent(event, CalculateTime(offset.count())); } + void AddEventAtOffset(BasicEvent* event, Milliseconds offset) { AddEvent(event, CalculateTime(offset.count())); } void ModifyEventTime(BasicEvent* event, uint64 newTime); uint64 CalculateTime(uint64 t_offset) const { return m_time + t_offset; } diff --git a/src/common/Utilities/Random.cpp b/src/common/Utilities/Random.cpp index f4902c51710..4423e07fa67 100644 --- a/src/common/Utilities/Random.cpp +++ b/src/common/Utilities/Random.cpp @@ -63,7 +63,7 @@ float frand(float min, float max) return float(GetRng()->Random() * (max - min) + min); } -Milliseconds randtime(Milliseconds const& min, Milliseconds const& max) +Milliseconds randtime(Milliseconds min, Milliseconds max) { long long diff = max.count() - min.count(); ASSERT(diff >= 0); diff --git a/src/common/Utilities/Random.h b/src/common/Utilities/Random.h index 9e13e7cd7e0..612b0312318 100644 --- a/src/common/Utilities/Random.h +++ b/src/common/Utilities/Random.h @@ -36,7 +36,7 @@ TC_COMMON_API uint32 urandms(uint32 min, uint32 max); TC_COMMON_API uint32 rand32(); /* Return a random time in the range min..max (up to millisecond precision). Only works for values where millisecond difference is a valid uint32. */ -TC_COMMON_API Milliseconds randtime(Milliseconds const& min, Milliseconds const& max); +TC_COMMON_API Milliseconds randtime(Milliseconds min, Milliseconds max); /* Return a random number in the range min..max */ TC_COMMON_API float frand(float min, float max); diff --git a/src/server/game/Chat/Channels/Channel.cpp b/src/server/game/Chat/Channels/Channel.cpp index d15a9383932..5db2214f3f4 100644 --- a/src/server/game/Chat/Channels/Channel.cpp +++ b/src/server/game/Chat/Channels/Channel.cpp @@ -122,7 +122,7 @@ void Channel::GetChannelName(std::string& channelName, uint32 channelId, LocaleC if (channelEntry->flags & CHANNEL_DBC_FLAG_CITY_ONLY) channelName = Trinity::StringFormat(channelEntry->pattern, sObjectMgr->GetTrinityString(LANG_CHANNEL_CITY, locale)); else - channelName = Trinity::StringFormat(channelEntry->pattern, ASSERT_NOTNULL(zoneEntry)->area_name); + channelName = Trinity::StringFormat(channelEntry->pattern, ASSERT_NOTNULL(zoneEntry)->area_name->Str[locale]); } else channelName = channelEntry->pattern; diff --git a/src/server/game/Chat/Chat.cpp b/src/server/game/Chat/Chat.cpp index 4e7b8f51743..ec54382207d 100644 --- a/src/server/game/Chat/Chat.cpp +++ b/src/server/game/Chat/Chat.cpp @@ -325,9 +325,9 @@ bool ChatHandler::ExecuteCommandInTable(std::vector const& table, c std::string zoneName = "Unknown"; if (AreaTableEntry const* area = sAreaTableStore.LookupEntry(areaId)) { - areaName = area->area_name; + areaName = area->area_name->Str[m_session->GetSessionDbcLocale()]; if (AreaTableEntry const* zone = sAreaTableStore.LookupEntry(area->zone)) - zoneName = zone->area_name; + zoneName = zone->area_name->Str[m_session->GetSessionDbcLocale()]; } sLog->outCommand(m_session->GetAccountId(), "Command: %s [Player: %s (%s) (Account: %u) X: %f Y: %f Z: %f Map: %u (%s) Area: %u (%s) Zone: %s Selected: %s (%s)]", diff --git a/src/server/game/DataStores/DBCStructure.h b/src/server/game/DataStores/DBCStructure.h index 80bd45e6d01..463728ff2fc 100644 --- a/src/server/game/DataStores/DBCStructure.h +++ b/src/server/game/DataStores/DBCStructure.h @@ -627,7 +627,7 @@ struct AreaTableEntry //uint32 unk8; // 8, //uint32 unk9; // 9, int32 area_level; // 10 - char* area_name; // 11 + LocalizedString* area_name; // 11 uint32 team; // 12 uint32 LiquidTypeOverride[4]; // 13-16 liquid override by type float MaxDepth; // 17, diff --git a/src/server/game/Entities/Creature/Creature.cpp b/src/server/game/Entities/Creature/Creature.cpp index a798a52fa23..9d7ce11f510 100644 --- a/src/server/game/Entities/Creature/Creature.cpp +++ b/src/server/game/Entities/Creature/Creature.cpp @@ -1894,7 +1894,7 @@ void Creature::Respawn(bool force) GetName().c_str(), GetGUID().ToString().c_str()); } -void Creature::ForcedDespawn(uint32 timeMSToDespawn, Seconds const& forceRespawnTimer) +void Creature::ForcedDespawn(uint32 timeMSToDespawn, Seconds forceRespawnTimer) { if (timeMSToDespawn) { @@ -1946,7 +1946,7 @@ void Creature::ForcedDespawn(uint32 timeMSToDespawn, Seconds const& forceRespawn } } -void Creature::DespawnOrUnsummon(uint32 msTimeToDespawn /*= 0*/, Seconds const& forceRespawnTimer /*= 0*/) +void Creature::DespawnOrUnsummon(uint32 msTimeToDespawn /*= 0*/, Seconds forceRespawnTimer /*= 0*/) { if (TempSummon* summon = this->ToTempSummon()) summon->UnSummon(msTimeToDespawn); diff --git a/src/server/game/Entities/Creature/Creature.h b/src/server/game/Entities/Creature/Creature.h index 5c667abcec8..4e6bc789894 100644 --- a/src/server/game/Entities/Creature/Creature.h +++ b/src/server/game/Entities/Creature/Creature.h @@ -228,8 +228,8 @@ class TC_GAME_API Creature : public Unit, public GridObject, public Ma void RemoveCorpse(bool setSpawnTime = true); - void DespawnOrUnsummon(uint32 msTimeToDespawn = 0, Seconds const& forceRespawnTime = Seconds(0)); - void DespawnOrUnsummon(Milliseconds const& time, Seconds const& forceRespawnTime = Seconds(0)) { DespawnOrUnsummon(uint32(time.count()), forceRespawnTime); } + void DespawnOrUnsummon(uint32 msTimeToDespawn = 0, Seconds forceRespawnTime = 0s); + void DespawnOrUnsummon(Milliseconds time, Seconds forceRespawnTime = 0s) { DespawnOrUnsummon(uint32(time.count()), forceRespawnTime); } time_t const& GetRespawnTime() const { return m_respawnTime; } time_t GetRespawnTimeEx() const; @@ -391,7 +391,7 @@ class TC_GAME_API Creature : public Unit, public GridObject, public Ma bool CanAlwaysSee(WorldObject const* obj) const override; private: - void ForcedDespawn(uint32 timeMSToDespawn = 0, Seconds const& forceRespawnTimer = Seconds(0)); + void ForcedDespawn(uint32 timeMSToDespawn = 0, Seconds forceRespawnTimer = 0s); bool CheckNoGrayAggroConfig(uint32 playerLevel, uint32 creatureLevel) const; // No aggro from gray creatures //WaypointMovementGenerator vars @@ -431,7 +431,7 @@ class TC_GAME_API AssistDelayEvent : public BasicEvent class TC_GAME_API ForcedDespawnDelayEvent : public BasicEvent { public: - ForcedDespawnDelayEvent(Creature& owner, Seconds const& respawnTimer) : BasicEvent(), m_owner(owner), m_respawnTimer(respawnTimer) { } + ForcedDespawnDelayEvent(Creature& owner, Seconds respawnTimer) : BasicEvent(), m_owner(owner), m_respawnTimer(respawnTimer) { } bool Execute(uint64 e_time, uint32 p_time) override; private: diff --git a/src/server/game/Entities/GameObject/GameObject.cpp b/src/server/game/Entities/GameObject/GameObject.cpp index 9d10330b6f3..9c31b0924cf 100644 --- a/src/server/game/Entities/GameObject/GameObject.cpp +++ b/src/server/game/Entities/GameObject/GameObject.cpp @@ -387,7 +387,10 @@ void GameObject::Update(uint32 diff) if (m_despawnDelay > diff) m_despawnDelay -= diff; else + { + m_despawnDelay = 0; DespawnOrUnsummon(0ms, m_despawnRespawnTime);; + } } switch (m_lootState) @@ -806,7 +809,7 @@ void GameObject::AddUniqueUse(Player* player) m_unique_users.insert(player->GetGUID()); } -void GameObject::DespawnOrUnsummon(Milliseconds const& delay, Seconds const& forceRespawnTime) +void GameObject::DespawnOrUnsummon(Milliseconds delay, Seconds forceRespawnTime) { if (delay > 0ms) { @@ -818,9 +821,11 @@ void GameObject::DespawnOrUnsummon(Milliseconds const& delay, Seconds const& for } else { - uint32 const respawnDelay = (forceRespawnTime > 0s) ? forceRespawnTime.count() : m_respawnDelayTime; - if (m_goData && respawnDelay) + if (m_goData) + { + uint32 const respawnDelay = (forceRespawnTime > 0s) ? forceRespawnTime.count() : m_goData->spawntimesecs; SaveRespawnTime(respawnDelay); + } Delete(); } } diff --git a/src/server/game/Entities/GameObject/GameObject.h b/src/server/game/Entities/GameObject/GameObject.h index ffe8a94fd44..be9a54036d2 100644 --- a/src/server/game/Entities/GameObject/GameObject.h +++ b/src/server/game/Entities/GameObject/GameObject.h @@ -153,7 +153,7 @@ class TC_GAME_API GameObject : public WorldObject, public GridObject void SetSpawnedByDefault(bool b) { m_spawnedByDefault = b; } uint32 GetRespawnDelay() const { return m_respawnDelayTime; } void Refresh(); - void DespawnOrUnsummon(Milliseconds const& delay = 0ms, Seconds const& forceRespawnTime = 0s); + void DespawnOrUnsummon(Milliseconds delay = 0ms, Seconds forceRespawnTime = 0s); void Delete(); void SendGameObjectDespawn(); void getFishLoot(Loot* loot, Player* loot_owner); diff --git a/src/server/game/Entities/Object/Object.h b/src/server/game/Entities/Object/Object.h index 946db8508aa..084db44ac8a 100644 --- a/src/server/game/Entities/Object/Object.h +++ b/src/server/game/Entities/Object/Object.h @@ -394,8 +394,9 @@ class TC_GAME_API WorldObject : public Object, public WorldLocation ZoneScript* GetZoneScript() const { return m_zoneScript; } TempSummon* SummonCreature(uint32 entry, Position const& pos, TempSummonType despawnType = TEMPSUMMON_MANUAL_DESPAWN, uint32 despawnTime = 0, uint32 vehId = 0, bool visibleBySummonerOnly = false); - TempSummon* SummonCreature(uint32 entry, Position const& pos, TempSummonType despawnType, Milliseconds const& despawnTime, uint32 vehId = 0, bool visibleBySummonerOnly = false) { return SummonCreature(entry, pos, despawnType, uint32(despawnTime.count()), vehId, visibleBySummonerOnly); } + TempSummon* SummonCreature(uint32 entry, Position const& pos, TempSummonType despawnType, Milliseconds despawnTime, uint32 vehId = 0, bool visibleBySummonerOnly = false) { return SummonCreature(entry, pos, despawnType, uint32(despawnTime.count()), vehId, visibleBySummonerOnly); } TempSummon* SummonCreature(uint32 entry, float x, float y, float z, float o = 0, TempSummonType despawnType = TEMPSUMMON_MANUAL_DESPAWN, uint32 despawnTime = 0, bool visibleBySummonerOnly = false); + GameObject* SummonGameObject(uint32 entry, Position const& pos, QuaternionData const& rot, uint32 respawnTime /* s */, GOSummonType summonType = GO_SUMMON_TIMED_OR_CORPSE_DESPAWN); GameObject* SummonGameObject(uint32 entry, float x, float y, float z, float ang, QuaternionData const& rot, uint32 respawnTime /* s */); Creature* SummonTrigger(float x, float y, float z, float ang, uint32 dur, CreatureAI* (*GetAI)(Creature*) = nullptr); diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 705e0519bdf..6eb1ab4f5ca 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -27848,9 +27848,9 @@ std::string Player::GetMapAreaAndZoneString() const if (AreaTableEntry const* area = sAreaTableStore.LookupEntry(areaId)) { int locale = GetSession()->GetSessionDbcLocale(); - areaName = area->area_name[locale]; + areaName = area->area_name->Str[locale]; if (AreaTableEntry const* zone = sAreaTableStore.LookupEntry(area->zone)) - zoneName = zone->area_name[locale]; + zoneName = zone->area_name->Str[locale]; } std::ostringstream str; diff --git a/src/server/game/Handlers/MiscHandler.cpp b/src/server/game/Handlers/MiscHandler.cpp index 1a6db2c481a..de960566620 100644 --- a/src/server/game/Handlers/MiscHandler.cpp +++ b/src/server/game/Handlers/MiscHandler.cpp @@ -310,7 +310,7 @@ void WorldSession::HandleWhoOpcode(WorldPacket& recvData) std::string aname; if (AreaTableEntry const* areaEntry = sAreaTableStore.LookupEntry(playerZoneId)) - aname = areaEntry->area_name[GetSessionDbcLocale()]; + aname = areaEntry->area_name->Str[GetSessionDbcLocale()]; bool s_show = true; for (uint32 i = 0; i < strCount; ++i) diff --git a/src/server/game/Handlers/SpellHandler.cpp b/src/server/game/Handlers/SpellHandler.cpp index aef727b7cba..e85dd3b98af 100644 --- a/src/server/game/Handlers/SpellHandler.cpp +++ b/src/server/game/Handlers/SpellHandler.cpp @@ -441,14 +441,16 @@ void WorldSession::HandleCastSpellOpcode(WorldPacket& recvPacket) } // auto-selection buff level base at target level (in spellInfo) - if (targets.GetUnitTarget()) - { - SpellInfo const* actualSpellInfo = spellInfo->GetAuraRankForLevel(targets.GetUnitTarget()->getLevel()); + // TODO: is this even necessary? client already seems to send correct rank for "standard" buffs + if (spellInfo->IsPositive()) + if (Unit* target = targets.GetUnitTarget()) + { + SpellInfo const* actualSpellInfo = spellInfo->GetAuraRankForLevel(target->getLevel()); - // if rank not found then function return nullptr but in explicit cast case original spell can be cast and later failed with appropriate error message - if (actualSpellInfo) - spellInfo = actualSpellInfo; - } + // if rank not found then function return NULL but in explicit cast case original spell can be cast and later failed with appropriate error message + if (actualSpellInfo) + spellInfo = actualSpellInfo; + } Spell* spell = new Spell(caster, spellInfo, TRIGGERED_NONE, ObjectGuid::Empty, false); spell->m_cast_count = castCount; // set count of casts diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp index 07e7d8c9e9c..c95df1a5bc4 100644 --- a/src/server/game/Spells/SpellEffects.cpp +++ b/src/server/game/Spells/SpellEffects.cpp @@ -578,46 +578,6 @@ void Spell::EffectDummy(SpellEffIndex effIndex) if (!unitTarget && !gameObjTarget && !itemTarget) return; - // selection by spell family - switch (m_spellInfo->SpellFamilyName) - { - case SPELLFAMILY_PALADIN: - switch (m_spellInfo->Id) - { - case 31789: // Righteous Defense (step 1) - { - // Clear targets for eff 1 - for (std::list::iterator ihit = m_UniqueTargetInfo.begin(); ihit != m_UniqueTargetInfo.end(); ++ihit) - ihit->effectMask &= ~(1<<1); - - // not empty (checked), copy - Unit::AttackerSet attackers = unitTarget->getAttackers(); - - // remove invalid attackers - for (Unit::AttackerSet::iterator aItr = attackers.begin(); aItr != attackers.end();) - if (!(*aItr)->IsValidAttackTarget(m_caster)) - attackers.erase(aItr++); - else - ++aItr; - - // selected from list 3 - uint32 maxTargets = std::min(3, attackers.size()); - for (uint32 i = 0; i < maxTargets; ++i) - { - Unit* attacker = Trinity::Containers::SelectRandomContainerElement(attackers); - AddUnitTarget(attacker, 1 << 1); - attackers.erase(attacker); - } - - // now let next effect cast spell at each target. - return; - } - } - break; - default: - break; - } - // pet auras if (m_caster->GetTypeId() == TYPEID_PLAYER) { diff --git a/src/server/scripts/Commands/cs_go.cpp b/src/server/scripts/Commands/cs_go.cpp index cae3e1a5fac..89a65aafe08 100644 --- a/src/server/scripts/Commands/cs_go.cpp +++ b/src/server/scripts/Commands/cs_go.cpp @@ -431,7 +431,7 @@ public: if (map->Instanceable()) { - handler->PSendSysMessage(LANG_INVALID_ZONE_MAP, areaEntry->ID, areaEntry->area_name, map->GetId(), map->GetMapName()); + handler->PSendSysMessage(LANG_INVALID_ZONE_MAP, areaEntry->ID, areaEntry->area_name->Str[handler->GetSessionDbcLocale()], map->GetId(), map->GetMapName()); handler->SetSentErrorMessage(true); return false; } diff --git a/src/server/scripts/Commands/cs_group.cpp b/src/server/scripts/Commands/cs_group.cpp index 83b5885437c..99b75e8d680 100644 --- a/src/server/scripts/Commands/cs_group.cpp +++ b/src/server/scripts/Commands/cs_group.cpp @@ -432,7 +432,7 @@ public: { AreaTableEntry const* zone = sAreaTableStore.LookupEntry(area->zone); if (zone) - zoneName = zone->area_name[localeConstant]; + zoneName = zone->area_name->Str[localeConstant]; } } else diff --git a/src/server/scripts/Commands/cs_list.cpp b/src/server/scripts/Commands/cs_list.cpp index 544f991875b..a916cb4f722 100644 --- a/src/server/scripts/Commands/cs_list.cpp +++ b/src/server/scripts/Commands/cs_list.cpp @@ -681,7 +681,7 @@ public: static char const* GetZoneName(uint32 zoneId, LocaleConstant locale) { AreaTableEntry const* zoneEntry = sAreaTableStore.LookupEntry(zoneId); - return zoneEntry ? (const char*)zoneEntry->area_name[locale] : ""; + return zoneEntry ? zoneEntry->area_name->Str[locale] : ""; } static bool HandleListRespawnsCommand(ChatHandler* handler, char const* args) { diff --git a/src/server/scripts/Commands/cs_lookup.cpp b/src/server/scripts/Commands/cs_lookup.cpp index 8383c6c574e..2e069d09aa1 100644 --- a/src/server/scripts/Commands/cs_lookup.cpp +++ b/src/server/scripts/Commands/cs_lookup.cpp @@ -104,7 +104,7 @@ public: // Search in AreaTable.dbc for (AreaTableEntry const* areaEntry : sAreaTableStore) { - std::string name = areaEntry->area_name; + std::string name = areaEntry->area_name->Str[handler->GetSessionDbcLocale()]; if (name.empty()) continue; diff --git a/src/server/scripts/Commands/cs_message.cpp b/src/server/scripts/Commands/cs_message.cpp index 428ac9b3749..0471e8fbf9c 100644 --- a/src/server/scripts/Commands/cs_message.cpp +++ b/src/server/scripts/Commands/cs_message.cpp @@ -88,7 +88,7 @@ public: AreaTableEntry const* zoneEntry = nullptr; for (AreaTableEntry const* entry : sAreaTableStore) { - if (strstr(entry->area_name, channelStr)) + if (strstr(entry->area_name->Str[handler->GetSessionDbcLocale()], channelStr)) { zoneEntry = entry; break; diff --git a/src/server/scripts/Commands/cs_misc.cpp b/src/server/scripts/Commands/cs_misc.cpp index 4f84f0eb019..af6e4a74776 100644 --- a/src/server/scripts/Commands/cs_misc.cpp +++ b/src/server/scripts/Commands/cs_misc.cpp @@ -277,8 +277,8 @@ public: handler->PSendSysMessage(LANG_MAP_POSITION, mapId, (mapEntry ? mapEntry->name : unknown), - zoneId, (zoneEntry ? zoneEntry->area_name : unknown), - areaId, (areaEntry ? areaEntry->area_name : unknown), + zoneId, (zoneEntry ? zoneEntry->area_name->Str[handler->GetSessionDbcLocale()] : unknown), + areaId, (areaEntry ? areaEntry->area_name->Str[handler->GetSessionDbcLocale()] : unknown), object->GetPositionX(), object->GetPositionY(), object->GetPositionZ(), object->GetOrientation()); if (Transport* transport = object->GetTransport()) handler->PSendSysMessage(LANG_TRANSPORT_POSITION, @@ -1833,11 +1833,11 @@ public: AreaTableEntry const* area = sAreaTableStore.LookupEntry(areaId); if (area) { - areaName = area->area_name; + areaName = area->area_name->Str[handler->GetSessionDbcLocale()];; AreaTableEntry const* zone = sAreaTableStore.LookupEntry(area->zone); if (zone) - zoneName = zone->area_name; + zoneName = zone->area_name->Str[handler->GetSessionDbcLocale()]; } if (target) diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_emperor_dagran_thaurissan.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_emperor_dagran_thaurissan.cpp index c28404e34fa..428ef19750e 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_emperor_dagran_thaurissan.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_emperor_dagran_thaurissan.cpp @@ -39,6 +39,11 @@ enum Events EVENT_AVATAROFFLAME = 2 }; +enum Emotes +{ + EMOTE_SHAKEN = 0 +}; + class boss_emperor_dagran_thaurissan : public CreatureScript { public: @@ -76,6 +81,7 @@ class boss_emperor_dagran_thaurissan : public CreatureScript { moira->AI()->EnterEvadeMode(); moira->SetFaction(FACTION_FRIENDLY); + moira->AI()->Talk(EMOTE_SHAKEN); } } diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_nightbane.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_nightbane.cpp index 6f930c22739..ccccd955062 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/boss_nightbane.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_nightbane.cpp @@ -167,7 +167,7 @@ public: void SetupGroundPhase() { events.SetPhase(PHASE_GROUND); - events.ScheduleEvent(EVENT_CLEAVE, Seconds(0), Seconds(15), GROUP_GROUND); + events.ScheduleEvent(EVENT_CLEAVE, 0s, Seconds(15), GROUP_GROUND); events.ScheduleEvent(EVENT_TAIL_SWEEP, Seconds(4), Seconds(23), GROUP_GROUND); events.ScheduleEvent(EVENT_BELLOWING_ROAR, Seconds(48), GROUP_GROUND); events.ScheduleEvent(EVENT_CHARRED_EARTH, Seconds(12), Seconds(18), GROUP_GROUND); diff --git a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_anubarak.cpp b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_anubarak.cpp index 306caa6c3f5..827628b7e7e 100644 --- a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_anubarak.cpp +++ b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_anubarak.cpp @@ -385,12 +385,12 @@ public: _assassinCount = 6; _guardianCount = 2; _venomancerCount = 2; - events.ScheduleEvent(EVENT_DARTER, Seconds(0), 0, PHASE_SUBMERGE); + events.ScheduleEvent(EVENT_DARTER, 0s, 0, PHASE_SUBMERGE); break; } _petCount = _guardianCount + _venomancerCount; if (_assassinCount) - events.ScheduleEvent(EVENT_ASSASSIN, Seconds(0), 0, PHASE_SUBMERGE); + events.ScheduleEvent(EVENT_ASSASSIN, 0s, 0, PHASE_SUBMERGE); if (_guardianCount) events.ScheduleEvent(EVENT_GUARDIAN, Seconds(4), 0, PHASE_SUBMERGE); if (_venomancerCount) diff --git a/src/server/scripts/Northrend/Naxxramas/boss_faerlina.cpp b/src/server/scripts/Northrend/Naxxramas/boss_faerlina.cpp index a5724679fb5..a2b3a98a8af 100644 --- a/src/server/scripts/Northrend/Naxxramas/boss_faerlina.cpp +++ b/src/server/scripts/Northrend/Naxxramas/boss_faerlina.cpp @@ -104,7 +104,7 @@ class boss_faerlina : public CreatureScript summons.DoZoneInCombat(); events.ScheduleEvent(EVENT_POISON, randtime(Seconds(10), Seconds(15))); events.ScheduleEvent(EVENT_FIRE, randtime(Seconds(6), Seconds(18))); - events.ScheduleEvent(EVENT_FRENZY, Minutes(1)+randtime(Seconds(0), Seconds(20))); + events.ScheduleEvent(EVENT_FRENZY, Minutes(1)+randtime(0s, Seconds(20))); } void Reset() override @@ -174,7 +174,7 @@ class boss_faerlina : public CreatureScript { DoCast(SPELL_FRENZY); Talk(EMOTE_FRENZY); - events.Repeat(Minutes(1) + randtime(Seconds(0), Seconds(20))); + events.Repeat(Minutes(1) + randtime(0s, Seconds(20))); } break; } diff --git a/src/server/scripts/Northrend/Naxxramas/boss_gothik.cpp b/src/server/scripts/Northrend/Naxxramas/boss_gothik.cpp index 2cd43cb8865..10a816333f4 100644 --- a/src/server/scripts/Northrend/Naxxramas/boss_gothik.cpp +++ b/src/server/scripts/Northrend/Naxxramas/boss_gothik.cpp @@ -532,7 +532,7 @@ class boss_gothik : public CreatureScript break; case EVENT_RESUME_ATTACK: me->SetReactState(REACT_AGGRESSIVE); - events.ScheduleEvent(EVENT_BOLT, Seconds(0), 0, PHASE_TWO); + events.ScheduleEvent(EVENT_BOLT, 0s, 0, PHASE_TWO); // return to the start of this method so victim side etc is re-evaluated return UpdateAI(0u); // tail recursion for efficiency case EVENT_BOLT: diff --git a/src/server/scripts/Northrend/Naxxramas/boss_sapphiron.cpp b/src/server/scripts/Northrend/Naxxramas/boss_sapphiron.cpp index 72027239e6c..2a3382261a9 100644 --- a/src/server/scripts/Northrend/Naxxramas/boss_sapphiron.cpp +++ b/src/server/scripts/Northrend/Naxxramas/boss_sapphiron.cpp @@ -182,7 +182,7 @@ class boss_sapphiron : public CreatureScript me->CastSpell(me, SPELL_FROST_AURA, true); events.SetPhase(PHASE_GROUND); - events.ScheduleEvent(EVENT_CHECK_RESISTS, Seconds(0)); + events.ScheduleEvent(EVENT_CHECK_RESISTS, 0s); events.ScheduleEvent(EVENT_BERSERK, Minutes(15)); EnterPhaseGround(true); } @@ -207,7 +207,7 @@ class boss_sapphiron : public CreatureScript void MovementInform(uint32 /*type*/, uint32 id) override { if (id == 1) - events.ScheduleEvent(EVENT_LIFTOFF, Seconds(0), 0, PHASE_FLIGHT); + events.ScheduleEvent(EVENT_LIFTOFF, 0s, 0, PHASE_FLIGHT); } void DoAction(int32 param) override diff --git a/src/server/scripts/Northrend/VioletHold/boss_erekem.cpp b/src/server/scripts/Northrend/VioletHold/boss_erekem.cpp index 64f0e1d3b75..e05ad60430f 100644 --- a/src/server/scripts/Northrend/VioletHold/boss_erekem.cpp +++ b/src/server/scripts/Northrend/VioletHold/boss_erekem.cpp @@ -223,7 +223,7 @@ class boss_erekem : public CreatureScript task.Repeat(Seconds(8), Seconds(13)); }); - scheduler.Schedule(Seconds(0), [this](TaskContext task) + scheduler.Schedule(0s, [this](TaskContext task) { for (uint32 i = DATA_EREKEM_GUARD_1; i <= DATA_EREKEM_GUARD_2; ++i) { diff --git a/src/server/scripts/Northrend/VioletHold/violet_hold.cpp b/src/server/scripts/Northrend/VioletHold/violet_hold.cpp index 54573cf91c9..661e593f9eb 100644 --- a/src/server/scripts/Northrend/VioletHold/violet_hold.cpp +++ b/src/server/scripts/Northrend/VioletHold/violet_hold.cpp @@ -585,7 +585,7 @@ class npc_azure_saboteur : public CreatureScript { if (type == EFFECT_MOTION_TYPE && pointId == POINT_INTRO) { - _scheduler.Schedule(Seconds(0), [this](TaskContext task) + _scheduler.Schedule(0s, [this](TaskContext task) { me->CastSpell(me, SPELL_SHIELD_DISRUPTION, false); diff --git a/src/server/scripts/Outland/zone_shadowmoon_valley.cpp b/src/server/scripts/Outland/zone_shadowmoon_valley.cpp index 3caf2cd3381..6934df3c4c3 100644 --- a/src/server/scripts/Outland/zone_shadowmoon_valley.cpp +++ b/src/server/scripts/Outland/zone_shadowmoon_valley.cpp @@ -1464,7 +1464,7 @@ public: switch (me->GetEntry()) { case NPC_ENRAGED_WATER_SPIRIT: - _events.ScheduleEvent(EVENT_ENRAGED_WATER_SPIRIT, Seconds(0), Seconds(1)); + _events.ScheduleEvent(EVENT_ENRAGED_WATER_SPIRIT, 0s, Seconds(1)); break; case NPC_ENRAGED_FIRE_SPIRIT: if (!me->GetAura(SPELL_FEL_FIRE_AURA))