This commit is contained in:
Ovahlord committed 2018-07-23 15:57:10 +02:00
commit a0e288e761
45 files changed
+409 -99

No files matched your search

@@ -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");
@@ -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,"");
*/
@@ -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'");
*/
@@ -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");
*/
@@ -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");
*/
@@ -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. <The relic emits a white hot arc of flame. A memory has been gained: A lone Dark Iron dwarf is surrounded by seven corpses, kneeling before a monolith of flame.>",15,0,100,0,0,0,4594,0,"A tormented voice"),
(8887,0,1,"You will perish here. <Your mind fills with visions of chaos and destruction.>",15,0,100,0,0,0,4595,0,"A tormented voice"),
(8887,0,2,"Do not taint these ruins, mortal. <You are engulfed in a blinding flash of light. A creature composed entirely of flame is the only thing you can remember seeing.>",15,0,100,0,0,0,4596,0,"A tormented voice"),
(8887,0,3,"Help us, outsider. <The relic crumbles to dust. A vision of eight Dark Iron dwarves performing some sort of ritual fills your head.>",15,0,100,0,0,0,4597,0,"A tormented voice"),
(8887,0,4,"He cannot be defeated. <The relic burns to nothing. The memories it held are now your own. This city was destroyed by a being not of this world.>",15,0,100,0,0,0,4598,0,"A tormented voice"),
(8887,0,5,"Your existence is acknowledged. <The relic turns to dust. Your head throbs with newfound wisdom. Something evil lurks in the heart of the mountain.>",15,0,100,0,0,0,4599,0,"A tormented voice"),
(8887,0,6,"Defiler... you will be punished for this incursion. <A symbol of flame radiates from the relic before it crumbles to the earth.>",15,0,100,0,0,0,4600,0,"A tormented voice");
*/
@@ -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");
*/
@@ -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");
*/
@@ -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");
@@ -0,0 +1,4 @@
/*
-- Gaffer Jack
UPDATE `fishing_loot_template` SET `GroupId`=0 WHERE `entry` IN (148);
*/
@@ -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");
@@ -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");
*/
+2 -1
View File
@@ -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;
}
+2 -2
View File
@@ -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);
}
+8 -8
View File
@@ -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);
}
+1 -1
View File
@@ -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; }
+1 -1
View File
@@ -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);
+1 -1
View File
@@ -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);
+1 -1
View File
@@ -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;
+2 -2
View File
@@ -325,9 +325,9 @@ bool ChatHandler::ExecuteCommandInTable(std::vector<ChatCommand> 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)]",
+1 -1
View File
@@ -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,
@@ -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);
+4 -4
View File
@@ -228,8 +228,8 @@ class TC_GAME_API Creature : public Unit, public GridObject<Creature>, 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<Creature>, 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:
@@ -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();
}
}
@@ -153,7 +153,7 @@ class TC_GAME_API GameObject : public WorldObject, public GridObject<GameObject>
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);
+2 -1
View File
@@ -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);
+2 -2
View File
@@ -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;
+1 -1
View File
@@ -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)
+9 -7
View File
@@ -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
-40
View File
@@ -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<TargetInfo>::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<uint32>(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)
{
+1 -1
View File
@@ -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;
}
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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] : "<unknown zone>";
return zoneEntry ? zoneEntry->area_name->Str[locale] : "<unknown zone>";
}
static bool HandleListRespawnsCommand(ChatHandler* handler, char const* args)
{
+1 -1
View File
@@ -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;
+1 -1
View File
@@ -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;
+4 -4
View File
@@ -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)
@@ -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);
}
}
@@ -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);
@@ -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)
@@ -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;
}
@@ -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:
@@ -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
@@ -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)
{
@@ -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);
@@ -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))