Merge branch 'master' of github.com:TrinityCore/TrinityCore into 4.3.4
Conflicts: src/server/game/DungeonFinding/LFGMgr.cpp src/server/game/Handlers/ChatHandler.cpp src/server/game/Handlers/GroupHandler.cpp src/server/game/Handlers/LFGHandler.cpp src/server/game/Handlers/PetitionsHandler.cpp
This commit is contained in:
commit
35bd935779
46 files changed
+743
-174
No files matched your search
@@ -1,9 +1,9 @@
|
||||
#  TrinityCore
|
||||
|
||||
[](https://scan.coverity.com/projects/435)
|
||||
[](https://scan.coverity.com/projects/435)
|
||||
[](https://www.bountysource.com/trackers/1310-trinity-core?utm_source=1310&utm_medium=shield&utm_campaign=TRACKER_BADGE)
|
||||
`3.3.5`: [](https://travis-ci.org/TrinityCore/TrinityCore)
|
||||
`4.3.4`: [](https://travis-ci.org/TrinityCore/TrinityCore)
|
||||
[](https://www.bountysource.com/trackers/1310-trinity-core?utm_source=1310&utm_medium=shield&utm_campaign=TRACKER_BADGE)
|
||||
|
||||
## Introduction
|
||||
|
||||
@@ -22,7 +22,6 @@ make pull requests to our [Github repository](https://github.com/TrinityCore/Tri
|
||||
For further information on the TrinityCore project, please visit our project
|
||||
website at [TrinityCore.org](http://www.trinitycore.org).
|
||||
|
||||
|
||||
## Requirements
|
||||
|
||||
+ Platform: Linux, Windows or Mac
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
UPDATE `smart_scripts` SET `link`=18 WHERE `entryorguid`=26670 AND `source_type`=0 AND `id`=17;
|
||||
UPDATE `smart_scripts` SET `link`=20 WHERE `entryorguid`=26670 AND `source_type`=0 AND `id`=19;
|
||||
@@ -0,0 +1,423 @@
|
||||
DELETE FROM `creature_text` WHERE (`entry`=315 AND `groupid`=0 AND `id`=2) OR (`entry`=706 AND `groupid`=0 AND `id`=3) OR (`entry`=1398 AND `groupid`=0 AND `id`=3) OR (`entry`=1398 AND `groupid`=0 AND `id`=4) OR (`entry`=1398 AND `groupid`=0 AND `id`=5) OR (`entry`=1399 AND `groupid`=0 AND `id`=3) OR (`entry`=1399 AND `groupid`=0 AND `id`=4) OR (`entry`=1399 AND `groupid`=0 AND `id`=5) OR (`entry`=1410 AND `groupid`=0 AND `id`=2) OR (`entry`=1410 AND `groupid`=0 AND `id`=3) OR (`entry`=1410 AND `groupid`=0 AND `id`=4) OR (`entry`=1410 AND `groupid`=0 AND `id`=5) OR (`entry`=1493 AND `groupid`=0 AND `id`=0) OR (`entry`=1493 AND `groupid`=0 AND `id`=6) OR (`entry`=1493 AND `groupid`=0 AND `id`=7) OR (`entry`=1719 AND `groupid`=0 AND `id`=3) OR (`entry`=1719 AND `groupid`=0 AND `id`=4) OR (`entry`=1976 AND `groupid`=0 AND `id`=3) OR (`entry`=1976 AND `groupid`=0 AND `id`=4) OR (`entry`=1976 AND `groupid`=0 AND `id`=5) OR (`entry`=1976 AND `groupid`=0 AND `id`=6) OR (`entry`=1976 AND `groupid`=0 AND `id`=7) OR (`entry`=2044 AND `groupid`=0 AND `id`=2) OR (`entry`=2396 AND `groupid`=0 AND `id`=2) OR (`entry`=2922 AND `groupid`=0 AND `id`=3) OR (`entry`=2922 AND `groupid`=0 AND `id`=4) OR (`entry`=3218 AND `groupid`=0 AND `id`=3) OR (`entry`=3218 AND `groupid`=0 AND `id`=4) OR (`entry`=3218 AND `groupid`=0 AND `id`=5) OR (`entry`=3218 AND `groupid`=0 AND `id`=6) OR (`entry`=3218 AND `groupid`=0 AND `id`=7) OR (`entry`=3296 AND `groupid`=0 AND `id`=3) OR (`entry`=3296 AND `groupid`=0 AND `id`=4) OR (`entry`=3296 AND `groupid`=0 AND `id`=5) OR (`entry`=3296 AND `groupid`=0 AND `id`=6) OR (`entry`=3296 AND `groupid`=0 AND `id`=7) OR (`entry`=3502 AND `groupid`=0 AND `id`=3) OR (`entry`=3502 AND `groupid`=0 AND `id`=4) OR (`entry`=3502 AND `groupid`=0 AND `id`=5) OR (`entry`=3502 AND `groupid`=0 AND `id`=6) OR (`entry`=3502 AND `groupid`=0 AND `id`=7) OR (`entry`=3504 AND `groupid`=0 AND `id`=3) OR (`entry`=3504 AND `groupid`=1 AND `id`=3) OR (`entry`=3518 AND `groupid`=0 AND `id`=2) OR (`entry`=3518 AND `groupid`=0 AND `id`=3) OR (`entry`=3520 AND `groupid`=0 AND `id`=3) OR (`entry`=3520 AND `groupid`=1 AND `id`=3) OR (`entry`=4624 AND `groupid`=0 AND `id`=3) OR (`entry`=4624 AND `groupid`=0 AND `id`=4) OR (`entry`=4624 AND `groupid`=0 AND `id`=5) OR (`entry`=4624 AND `groupid`=0 AND `id`=6) OR (`entry`=4624 AND `groupid`=0 AND `id`=7) OR (`entry`=4979 AND `groupid`=2 AND `id`=3) OR (`entry`=5355 AND `groupid`=0 AND `id`=0) OR (`entry`=5355 AND `groupid`=0 AND `id`=1) OR (`entry`=5355 AND `groupid`=0 AND `id`=4) OR (`entry`=5355 AND `groupid`=0 AND `id`=5) OR (`entry`=5391 AND `groupid`=0 AND `id`=1) OR (`entry`=5391 AND `groupid`=2 AND `id`=2) OR (`entry`=5662 AND `groupid`=0 AND `id`=8) OR (`entry`=5698 AND `groupid`=0 AND `id`=8) OR (`entry`=5699 AND `groupid`=0 AND `id`=5) OR (`entry`=5955 AND `groupid`=0 AND `id`=2) OR (`entry`=5955 AND `groupid`=0 AND `id`=3) OR (`entry`=5955 AND `groupid`=0 AND `id`=4) OR (`entry`=5955 AND `groupid`=0 AND `id`=5) OR (`entry`=5955 AND `groupid`=0 AND `id`=6) OR (`entry`=5955 AND `groupid`=0 AND `id`=7) OR (`entry`=10541 AND `groupid`=0 AND `id`=3) OR (`entry`=10541 AND `groupid`=1 AND `id`=3) OR (`entry`=10541 AND `groupid`=1 AND `id`=4) OR (`entry`=10541 AND `groupid`=1 AND `id`=5) OR (`entry`=10541 AND `groupid`=1 AND `id`=6) OR (`entry`=10799 AND `groupid`=0 AND `id`=3) OR (`entry`=11136 AND `groupid`=0 AND `id`=2) OR (`entry`=11136 AND `groupid`=0 AND `id`=3) OR (`entry`=11136 AND `groupid`=0 AND `id`=4) OR (`entry`=11190 AND `groupid`=0 AND `id`=3) OR (`entry`=11190 AND `groupid`=0 AND `id`=4) OR (`entry`=11190 AND `groupid`=0 AND `id`=5) OR (`entry`=11190 AND `groupid`=0 AND `id`=6) OR (`entry`=11190 AND `groupid`=0 AND `id`=7) OR (`entry`=11582 AND `groupid`=0 AND `id`=3) OR (`entry`=11582 AND `groupid`=0 AND `id`=4) OR (`entry`=12337 AND `groupid`=0 AND `id`=3) OR (`entry`=15184 AND `groupid`=0 AND `id`=3) OR (`entry`=15184 AND `groupid`=0 AND `id`=4) OR (`entry`=15184 AND `groupid`=0 AND `id`=5) OR (`entry`=15184 AND `groupid`=0 AND `id`=6) OR (`entry`=15184 AND `groupid`=0 AND `id`=7) OR (`entry`=17259 AND `groupid`=0 AND `id`=3) OR (`entry`=17259 AND `groupid`=0 AND `id`=4) OR (`entry`=17259 AND `groupid`=0 AND `id`=5) OR (`entry`=17259 AND `groupid`=0 AND `id`=6) OR (`entry`=17271 AND `groupid`=0 AND `id`=3) OR (`entry`=17271 AND `groupid`=0 AND `id`=4) OR (`entry`=17271 AND `groupid`=0 AND `id`=5) OR (`entry`=17271 AND `groupid`=0 AND `id`=6) OR (`entry`=17491 AND `groupid`=0 AND `id`=2) OR (`entry`=17491 AND `groupid`=0 AND `id`=3) OR (`entry`=17491 AND `groupid`=0 AND `id`=4) OR (`entry`=17491 AND `groupid`=0 AND `id`=5) OR (`entry`=17491 AND `groupid`=0 AND `id`=6) OR (`entry`=18103 AND `groupid`=0 AND `id`=2) OR (`entry`=18103 AND `groupid`=0 AND `id`=3) OR (`entry`=18103 AND `groupid`=0 AND `id`=4) OR (`entry`=19283 AND `groupid`=0 AND `id`=3) OR (`entry`=21114 AND `groupid`=0 AND `id`=6) OR (`entry`=21661 AND `groupid`=1 AND `id`=3) OR (`entry`=21661 AND `gLine truncated
|
||||
INSERT INTO `creature_text` (`entry`, `groupid`, `id`, `text`, `type`, `probability`, `sound`, `BroadcastTextId`, `comment`) VALUES
|
||||
(315, 0, 2, 'Tilloa is that you? Why no! It''s just some dirty $r!', 12, 100, 0, 507, 'Stalvan Mistmantle - On Aggro'),
|
||||
|
||||
(706, 0, 3, 'My weapon be thirsty!', 12, 100, 0, 1908, 'Frostmane Troll Whelp - On Aggro'),
|
||||
|
||||
(1398, 0, 3, 'The Stonesplinter Tribe shall see to your doom!', 12, 100, 0, 445, 'Boss Galgosh - On Aggro'),
|
||||
(1398, 0, 4, 'Die, $R! These lands belong to the Stonesplinter Tribe!', 12, 100, 0, 446, 'Boss Galgosh - On Aggro'),
|
||||
(1398, 0, 5, 'The Loch belongs to the Stonesplinter Tribe now, $n! Now die!', 12, 100, 0, 448, 'Boss Galgosh - On Aggro'),
|
||||
|
||||
(1399, 0, 3, 'A $C called $n? You''ll make a fine breakfast!', 12, 100, 0, 444, 'Magosh - on Aggro'),
|
||||
(1399, 0, 4, 'The Stonesplinter Tribe shall see to your doom!', 12, 100, 0, 445, 'Magosh - on Aggro'),
|
||||
(1399, 0, 5, 'The only good $R is a dead $R!', 12, 100, 0, 447, 'Magosh - on Aggro'),
|
||||
|
||||
(1410, 0, 2, 'Kill them before they get away!', 12, 100, 0, 16250, 'Firewing Bloodwarder - On Aggro'),
|
||||
(1410, 0, 3, 'You know too much!', 12, 100, 0, 16251, 'Firewing Bloodwarder - On Aggro'),
|
||||
(1410, 0, 4, 'For Kael''thas!', 12, 100, 0, 16252, 'Firewing Bloodwarder - On Aggro'),
|
||||
(1410, 0, 5, 'They mustn''t escape!', 12, 100, 0, 16253, 'Firewing Bloodwarder - On Aggro'),
|
||||
|
||||
(1493, 0, 0, 'YOU WERE SUCH GOOD SPORT THE LAST TIME...COME OUT!', 14, 100, 0, 772, 'Mok''rash'),
|
||||
(1493, 0, 6, 'SMOTTS!', 14, 100, 0, 773, 'Mok''rash'),
|
||||
(1493, 0, 7, 'DON''T YOU WANT TO FIGHT, SMOTTS!?', 14, 100, 0, 776, 'Mok''rash'),
|
||||
|
||||
(1719, 0, 3, 'What am I going to do?', 12, 100, 0, 1658, 'Warden Thelwater'),
|
||||
(1719, 0, 4, 'How could this happen?', 12, 100, 0, 1660, 'Warden Thelwater'),
|
||||
|
||||
(1976, 0, 3, 'You dare spill blood on neutral ground? OUT! OUT, I SAY!', 12, 100, 0, 10948, 'Stormwind City Patroller - On Aggro'),
|
||||
(1976, 0, 4, 'We don''t take kindly to miscreants, $r.', 12, 100, 0, 10949, 'Stormwind City Patroller - On Aggro'),
|
||||
(1976, 0, 5, 'Get a rope!', 12, 100, 0, 10952, 'Stormwind City Patroller - On Aggro'),
|
||||
(1976, 0, 6, 'Believe me when I tell you this: You''re gonna wish you weren''t born, sissy!', 12, 100, 0, 10954, 'Stormwind City Patroller - On Aggro'),
|
||||
(1976, 0, 7, 'Your actions shame us all, $c. I hurt inside as I beat you senseless.', 12, 100, 0, 10955, 'Stormwind City Patroller - On Aggro'),
|
||||
|
||||
(2044, 0, 2, 'Let the legend of Stalvan rest!', 12, 100, 0, 503, 'Forlorn Spirit'),
|
||||
|
||||
(2396, 0, 2, 'My trees.... they have withered up and died just like me.', 12, 100, 0, 614, 'Hans Zandin'),
|
||||
|
||||
(2922, 0, 3, 'I am well versed in over 4 languages.', 12, 100, 0, 898, 'Servo'),
|
||||
(2922, 0, 4, 'Master, where have all the trees gone?', 12, 100, 0, 900, 'Servo'),
|
||||
|
||||
(3218, 0, 3, 'You dare spill blood on neutral ground? OUT! OUT, I SAY!', 12, 100, 0, 10948, 'Brave Swiftwind - On Aggro'),
|
||||
(3218, 0, 4, 'We don''t take kindly to miscreants, $r.', 12, 100, 0, 10949, 'Brave Swiftwind - On Aggro'),
|
||||
(3218, 0, 5, 'Get a rope!', 12, 100, 0, 10952, 'Brave Swiftwind - On Aggro'),
|
||||
(3218, 0, 6, 'Believe me when I tell you this: You''re gonna wish you weren''t born, sissy!', 12, 100, 0, 10954, 'Brave Swiftwind - On Aggro'),
|
||||
(3218, 0, 7, 'Your actions shame us all, $c. I hurt inside as I beat you senseless.', 12, 100, 0, 10955, 'Brave Swiftwind - On Aggro'),
|
||||
|
||||
(3296, 0, 3, 'You dare spill blood on neutral ground? OUT! OUT, I SAY!', 12, 100, 0, 10948, 'Orgrimmar Grunt - On Aggro'),
|
||||
(3296, 0, 4, 'We don''t take kindly to miscreants, $r.', 12, 100, 0, 10949, 'Orgrimmar Grunt - On Aggro'),
|
||||
(3296, 0, 5, 'Get a rope!', 12, 100, 0, 10952, 'Orgrimmar Grunt - On Aggro'),
|
||||
(3296, 0, 6, 'Believe me when I tell you this: You''re gonna wish you weren''t born, sissy!', 12, 100, 0, 10954, 'Orgrimmar Grunt - On Aggro'),
|
||||
(3296, 0, 7, 'Your actions shame us all, $c. I hurt inside as I beat you senseless.', 12, 100, 0, 10955, 'Orgrimmar Grunt - On Aggro'),
|
||||
|
||||
(3502, 0, 3, 'You dare spill blood on neutral ground? OUT! OUT, I SAY!', 12, 100, 0, 10948, 'Ratchet Bruiser - On Aggro'),
|
||||
(3502, 0, 4, 'We don''t take kindly to miscreants, $r.', 12, 100, 0, 10949, 'Ratchet Bruiser - On Aggro'),
|
||||
(3502, 0, 5, 'Get a rope!', 12, 100, 0, 10952, 'Ratchet Bruiser - On Aggro'),
|
||||
(3502, 0, 6, 'Believe me when I tell you this: You''re gonna wish you weren''t born, sissy!', 12, 100, 0, 10954, 'Ratchet Bruiser - On Aggro'),
|
||||
(3502, 0, 7, 'Your actions shame us all, $c. I hurt inside as I beat you senseless.', 12, 100, 0, 10955, 'Ratchet Bruiser - On Aggro'),
|
||||
|
||||
(3504, 0, 3, 'Why are we goin'' this way?', 12, 100, 0, 1093, 'Gil'),
|
||||
(3504, 1, 3, 'I need to pee.', 12, 100, 0, 1095, 'Gil'),
|
||||
|
||||
(3518, 0, 2, 'Warm, wholesome bread!', 12, 100, 0, 1102, 'Thomas Miller'),
|
||||
(3518, 0, 3, 'Rolls, buns and bread. Baked fresh!', 12, 100, 0, 1103, 'Thomas Miller'),
|
||||
|
||||
(3520, 0, 3, 'One of these days I''m gonna drown him in that blue robe. And all his brooms too.', 12, 100, 0, 1109, 'Ol'' Emma'),
|
||||
(3520, 1, 3, 'Deja vu. For a moment, I thought I was back home... before the plague...', 12, 100, 0, 1112, 'Ol'' Emma'),
|
||||
|
||||
(4624, 0, 3, 'You dare spill blood on neutral ground? OUT! OUT, I SAY!', 12, 100, 0, 10948, 'Booty Bay Bruiser - On Aggro'),
|
||||
(4624, 0, 4, 'We don''t take kindly to miscreants, $r.', 12, 100, 0, 10949, 'Booty Bay Bruiser - On Aggro'),
|
||||
(4624, 0, 5, 'Get a rope!', 12, 100, 0, 10952, 'Booty Bay Bruiser - On Aggro'),
|
||||
(4624, 0, 6, 'Believe me when I tell you this: You''re gonna wish you weren''t born, sissy!', 12, 100, 0, 10954, 'Booty Bay Bruiser - On Aggro'),
|
||||
(4624, 0, 7, 'Your actions shame us all, $c. I hurt inside as I beat you senseless.', 12, 100, 0, 10955, 'Booty Bay Bruiser - On Aggro'),
|
||||
|
||||
(4979, 2, 3, 'That''s the funniest thing I''ve read in a long time. You''ve just made my day!', 12, 100, 0, 22114, 'Theramore Guard'),
|
||||
|
||||
(5355, 0, 0, 'Kill them before they get away!', 12, 100, 0, 16250, 'Firewing Defender - On Aggro'),
|
||||
(5355, 0, 1, 'For Kael''thas!', 12, 100, 0, 16252, 'Firewing Defender - On Aggro'),
|
||||
(5355, 0, 4, 'They mustn''t escape!', 12, 100, 0, 16253, 'Firewing Defender - On Aggro'),
|
||||
(5355, 0, 5, 'I will have your energy and then your life!', 12, 100, 0, 16254, 'Firewing Defender - On Aggro'),
|
||||
|
||||
(5391, 0, 1, 'I''m glad you''re here! Because I need your help!!', 12, 100, 0, 1631, 'Galen Goodward'),
|
||||
(5391, 2, 2, 'Help! The beast is on me!', 12, 100, 0, 1630, 'Galen Goodward'),
|
||||
|
||||
(5662, 0, 8, 'Can you see yourselves? That is the most pathetic excuse for sword slinging I''ve ever seen! ', 12, 100, 0, 1965, 'Sergeant Houser'),
|
||||
|
||||
(5698, 0, 8, 'Impressive, very impressive. Does she do tricks?', 12, 100, 0, 2020, 'Joanna Whitehall'),
|
||||
|
||||
(5699, 0, 5, 'Astounding. You managed to dominate her, yet she retains self awareness and function. How did you do it?', 12, 100, 0, 2015, 'Leona Tharpe'),
|
||||
|
||||
(5955, 0, 2, 'Do we have much further to go?', 12, 100, 0, 2221, 'Tooga'),
|
||||
(5955, 0, 3, 'Are we there yet?', 12, 100, 0, 2223, 'Tooga'),
|
||||
(5955, 0, 4, 'I keep getting sand stuck in my toes.', 12, 100, 0, 2224, 'Tooga'),
|
||||
(5955, 0, 5, 'How much further to go?', 12, 100, 0, 2225, 'Tooga'),
|
||||
(5955, 0, 6, 'I wish you could just pick me up and carry me.', 12, 100, 0, 2226, 'Tooga'),
|
||||
(5955, 0, 7, 'Have you heard the one about the ogre, the goblin and the pit lord?', 12, 100, 0, 2227, 'Tooga'),
|
||||
|
||||
(10541, 0, 3, 'Holy Krakle! The temperature is 428,000 degrees Kraklenheit! ', 12, 100, 0, 5763, 'Krakle''s Thermometer'),
|
||||
(10541, 1, 3, 'The temperature is 564 degrees Kraklenheit.', 12, 100, 0, 5765, 'Krakle''s Thermometer'),
|
||||
(10541, 1, 4, 'The temperature is 12 degrees Kraklenheit. How exciting.', 12, 100, 0, 5767, 'Krakle''s Thermometer'),
|
||||
(10541, 1, 5, '18 degrees Kraklenheit. It''s kind of cold, actually...', 12, 100, 0, 6009, 'Krakle''s Thermometer'),
|
||||
(10541, 1, 6, 'It''s 40 degrees Kraklenheit. Can you feel the heat? No? I really couldn''t either.', 12, 100, 0, 6010, 'Krakle''s Thermometer'),
|
||||
|
||||
(10799, 0, 3, '%s whimpers.', 12, 100, 0, 6101, 'Warosh'),
|
||||
|
||||
(11136, 0, 2, 'FREE!!!', 12, 100, 0, 6451, 'Freed Soul'),
|
||||
(11136, 0, 3, 'The curse ends!', 12, 100, 0, 6452, 'Freed Soul'),
|
||||
(11136, 0, 4, 'May Kel''Thuzad one day feel our vengeance.', 12, 100, 0, 6454, 'Freed Soul'),
|
||||
|
||||
(11190, 0, 3, 'You dare spill blood on neutral ground? OUT! OUT, I SAY!', 12, 100, 0, 10948, 'Everlook Bruiser - On Aggro'),
|
||||
(11190, 0, 4, 'We don''t take kindly to miscreants, $r.', 12, 100, 0, 10949, 'Everlook Bruiser - On Aggro'),
|
||||
(11190, 0, 5, 'Get a rope!', 12, 100, 0, 10952, 'Everlook Bruiser - On Aggro'),
|
||||
(11190, 0, 6, 'Believe me when I tell you this: You''re gonna wish you weren''t born, sissy!', 12, 100, 0, 10954, 'Everlook Bruiser - On Aggro'),
|
||||
(11190, 0, 7, 'Your actions shame us all, $c. I hurt inside as I beat you senseless.', 12, 100, 0, 10955, 'Everlook Bruiser - On Aggro'),
|
||||
|
||||
(11582, 0, 3, 'Note the weak binding structure of this one. Be sure to finish your incantations or this is what you will end up with.', 12, 100, 0, 5951, 'Scholomance Dark Summoner'),
|
||||
(11582, 0, 4, 'Wow, this one is just plain useless. Let me try again.', 12, 100, 0, 5953, 'Scholomance Dark Summoner'),
|
||||
|
||||
(12337, 0, 3, 'These orders must get to High General Abbendis!', 12, 100, 0, 7598, 'Crimson Courier'),
|
||||
|
||||
(15184, 0, 3, 'You dare spill blood on neutral ground? OUT! OUT, I SAY!', 12, 100, 0, 10948, 'Cenarion Hold Infantry - On Aggro'),
|
||||
(15184, 0, 4, 'We don''t take kindly to miscreants, $r.', 12, 100, 0, 10949, 'Cenarion Hold Infantry - On Aggro'),
|
||||
(15184, 0, 5, 'Get a rope!', 12, 100, 0, 10952, 'Cenarion Hold Infantry - On Aggro'),
|
||||
(15184, 0, 6, 'Believe me when I tell you this: You''re gonna wish you weren''t born, sissy!', 12, 100, 0, 10954, 'Cenarion Hold Infantry - On Aggro'),
|
||||
(15184, 0, 7, 'Your actions shame us all, $c. I hurt inside as I beat you senseless.', 12, 100, 0, 10955, 'Cenarion Hold Infantry - On Aggro'),
|
||||
|
||||
(17259, 0, 3, 'For Kargath! For Victory!', 12, 100, 0, 16698, 'Bonechewer Hungerer - On Aggro'),
|
||||
(17259, 0, 4, 'Gakarah ma!', 12, 100, 0, 16699, 'Bonechewer Hungerer - On Aggro'),
|
||||
(17259, 0, 5, 'Lok''tar Illadari!\n', 12, 100, 0, 16701, 'Bonechewer Hungerer - On Aggro'),
|
||||
(17259, 0, 6, 'Lok narash!', 12, 100, 0, 16703, 'Bonechewer Hungerer - On Aggro'),
|
||||
|
||||
(17271, 0, 3, 'Gakarah ma!', 12, 100, 0, 16699, 'Bonechewer Destroyer - On Aggro'),
|
||||
(17271, 0, 4, 'Lok''tar Illadari!\n', 12, 100, 0, 16701, 'Bonechewer Destroyer - On Aggro'),
|
||||
(17271, 0, 5, 'This world is OURS!', 12, 100, 0, 16702, 'Bonechewer Destroyer - On Aggro'),
|
||||
(17271, 0, 6, 'Lok narash!', 12, 100, 0, 16703, 'Bonechewer Destroyer - On Aggro'),
|
||||
|
||||
(17491, 0, 2, 'For Kargath! For Victory!', 12, 100, 0, 16698, 'Laughing Skull Rogue - On Aggro'),
|
||||
(17491, 0, 3, 'The blood is our power! ', 12, 100, 0, 16700, 'Laughing Skull Rogue - On Aggro'),
|
||||
(17491, 0, 4, 'Lok''tar Illadari!\n', 12, 100, 0,16701 , 'Laughing Skull Rogue - On Aggro'),
|
||||
(17491, 0, 5, 'This world is OURS!', 12, 100, 0, 16702, 'Laughing Skull Rogue - On Aggro'),
|
||||
(17491, 0, 6, 'Lok narash!', 12, 100, 0, 16703, 'Laughing Skull Rogue - On Aggro'),
|
||||
|
||||
(18103, 0, 2, 'Happiness is mandatory, citizen.', 12, 100, 0, 14782, 'Arcane Guardian - Random Talk'),
|
||||
(18103, 0, 3, 'Remain strong. Kael''thas will - error - Lor''themar will lead you to power and glory!', 12, 100, 0, 14784, 'Arcane Guardian - Random Talk'),
|
||||
(18103, 0, 4, 'Do not disturb the serenity of the city. Peace must be upheld.', 12, 100, 0, 14785, 'Arcane Guardian - Random Talk'),
|
||||
|
||||
(19283, 0, 3, 'Any spare copper?', 12, 100, 0, 16614, 'Vagrant - Random Talk'),
|
||||
|
||||
(21114, 0, 6, 'This is going to hurt in the morning.', 12, 100, 0, 18797, 'Station Technician - On Burning'),
|
||||
|
||||
(21661, 1, 3, 'Ruin finds us all!', 12, 100, 0, 16798, 'Cabal Skirmisher'),
|
||||
(21661, 1, 4, 'In Sargeras'' name!', 12, 100, 0, 16799, 'Cabal Skirmisher'),
|
||||
(21661, 1, 5, 'I do as I must!', 12, 100, 0, 16801, 'Cabal Skirmisher'),
|
||||
(21661, 1, 6, 'The Legion reigns!', 12, 100, 0, 16802, 'Cabal Skirmisher'),
|
||||
(21661, 1, 7, 'You''ll go nowhere, fool!', 12, 100, 0, 20164, 'Cabal Skirmisher'),
|
||||
|
||||
(22314, 0, 4, 'Yay! We love you! You saved us!', 12, 100, 0, 20111, 'Captive Child'),
|
||||
|
||||
(23311, 0, 7, 'Hey... me not feel so good.', 12, 100, 0, 21122, 'Disobedient Dragonmaw Peon - On Script Action'),
|
||||
|
||||
(23861, 0, 7, 'It is too late for Jarl... its hold is too strong...', 12, 100, 0, 22366, 'Restless Apparition - On Script Action'),
|
||||
|
||||
(25428, 0, 3, 'Grr... na su ka Magmoth!', 12, 100, 0, 24651, 'Magmoth Shaman - On Aggro'),
|
||||
|
||||
(25429, 0, 3, 'Grr... na su ka Magmoth!', 12, 100, 0, 24651, 'Magmoth Forager - On Aggro'),
|
||||
|
||||
(25682, 0, 1, 'Die!', 12, 100, 0, 24874, 'Lich-Lord Chillwinter - On Aggro'),
|
||||
(25682, 0, 2, 'Filthy breather!', 12, 100, 0, 24876, 'Lich-Lord Chillwinter - On Aggro'),
|
||||
|
||||
(28608, 0, 3, 'Scourge filth! DIE!', 12, 100, 0, 28597, 'Scarlet Medic - On Aggro'),
|
||||
(28608, 0, 4, 'I will present your head to Abbendis myself!', 12, 100, 0, 28599, 'Scarlet Medic - On Aggro'),
|
||||
(28608, 0, 5, 'By the Light be cleansed!', 12, 100, 0, 28602, 'Scarlet Medic - On Aggro'),
|
||||
(28608, 0, 6, 'Light bless you, my child.', 12, 100, 0, 28603, 'Scarlet Medic - On Aggro'),
|
||||
|
||||
(28609, 0, 3, 'Scourge filth! DIE!', 12, 100, 0, 28597, 'Scarlet Infantryman - On Aggro'),
|
||||
(28609, 0, 4, 'I will present your head to Abbendis myself!', 12, 100, 0, 28599, 'Scarlet Infantryman - On Aggro'),
|
||||
(28609, 0, 5, 'By the Light be cleansed!', 12, 100, 0, 28602, 'Scarlet Infantryman - On Aggro'),
|
||||
(28609, 0, 6, 'Light bless you, my child.', 12, 100, 0, 28603, 'Scarlet Infantryman - On Aggro'),
|
||||
|
||||
(28611, 0, 3, 'Scourge filth! DIE!', 12, 100, 0, 28597, 'Scarlet Captain - On Aggro'),
|
||||
(28611, 0, 4, 'I will present your head to Abbendis myself!', 12, 100, 0, 28599, 'Scarlet Captain - On Aggro'),
|
||||
(28611, 0, 5, 'By the Light be cleansed!', 12, 100, 0, 28602, 'Scarlet Captain - On Aggro'),
|
||||
(28611, 0, 6, 'Light bless you, my child.', 12, 100, 0, 28603, 'Scarlet Captain - On Aggro'),
|
||||
|
||||
(28714, 0, 3, 'Welcome!', 12, 100, 0, 32807, 'Ildine Sorrowspear - Player In Range'),
|
||||
(28714, 0, 4, 'Greetings, $c.', 12, 100, 0, 32808, 'Ildine Sorrowspear - Player In Range'),
|
||||
(28714, 0, 5, 'Greetings! Please have a look around.', 12, 100, 0, 32809, 'Ildine Sorrowspear - Player In Range'),
|
||||
(28714, 0, 6, 'Welcome. May I help you find something?', 12, 100, 0, 32811, 'Ildine Sorrowspear - Player In Range'),
|
||||
|
||||
(28715, 0, 3, 'Let me know if you need help finding anything, $c.', 12, 100, 0, 32810, 'Endora Moorehead - Player In Range'),
|
||||
(28715, 0, 4, 'Welcome. May I help you find something?', 12, 100, 0, 32811, 'Endora Moorehead - Player In Range'),
|
||||
(28715, 0, 5, 'Greetings.', 12, 100, 0, 32935, 'Endora Moorehead - Player In Range'),
|
||||
(28715, 0, 6, 'Welcome.', 12, 100, 0, 32936, 'Endora Moorehead - Player In Range'),
|
||||
|
||||
(28721, 0, 6, 'Welcome!', 12, 100, 0, 32807, 'Tiffany Cartier - Player In Range'),
|
||||
|
||||
(28723, 0, 3, 'Welcome!', 12, 100, 0, 32807, 'Larana Drome - Player In Range'),
|
||||
(28723, 0, 4, 'Greetings! Please have a look around.', 12, 100, 0, 32809, 'Larana Drome - Player In Range'),
|
||||
(28723, 0, 5, 'Let me know if you need help finding anything, $c.', 12, 100, 0, 32810, 'Larana Drome - Player In Range'),
|
||||
(28723, 0, 6, 'Welcome. May I help you find something?', 12, 100, 0, 32811, 'Larana Drome - Player In Range'),
|
||||
|
||||
(28725, 0, 4, 'Greetings, $c.', 12, 100, 0, 32808, 'Patricia Egan - Player In Range'),
|
||||
(28725, 0, 5, 'Let me know if you need help finding anything, $c.', 12, 100, 0, 32810, 'Patricia Egan - Player In Range'),
|
||||
(28725, 0, 6, 'Greetings.', 12, 100, 0, 32935, 'Patricia Egan - Player In Range'),
|
||||
|
||||
(28726, 0, 6, 'Welcome.', 12, 100, 0, 32936, 'Dominique Stefano - Player In Range'),
|
||||
|
||||
(28727, 0, 4, 'Greetings, $c.', 12, 100, 0, 32808, 'Edward Egan - Player In Range'),
|
||||
(28727, 0, 5, 'Let me know if you need help finding anything, $c.', 12, 100, 0, 32810, 'Edward Egan - Player In Range'),
|
||||
(28727, 0, 6, 'Welcome.', 12, 100, 0, 32936, 'Edward Egan - Player In Range'),
|
||||
|
||||
(28750, 0, 0, 'Rmmurphum mmph hmrphum!', 12, 100, 0, 28657, 'Blight Geist'),
|
||||
(28750, 0, 3, 'Umphrum mmphur, murruphru...', 12, 100, 0, 28658, 'Blight Geist'),
|
||||
|
||||
(28989, 0, 6, 'Welcome!', 12, 100, 0, 32807, 'Aemara - Player In Range'),
|
||||
|
||||
(28994, 0, 4, 'Welcome!', 12, 100, 0, 32807, 'Abra Cadabra - Player In Range'),
|
||||
(28994, 0, 5, 'Greetings, $c.', 12, 100, 0, 32808, 'Abra Cadabra - Player In Range'),
|
||||
(28994, 0, 6, 'Greetings! Please have a look around.', 12, 100, 0, 32809, 'Abra Cadabra - Player In Range'),
|
||||
|
||||
(28997, 0, 4, 'Greetings! Please have a look around.', 12, 100, 0, 32809, 'Griselda Hunderland - Player In Range'),
|
||||
(28997, 0, 5, 'Welcome. May I help you find something?', 12, 100, 0, 32811, 'Griselda Hunderland - Player In Range'),
|
||||
(28997, 0, 6, 'Welcome.', 12, 100, 0, 32936, 'Griselda Hunderland - Player In Range'),
|
||||
|
||||
(29647, 1, 4, 'How long do you think this cage can hold me, fiends!', 12, 100, 0, 30497, 'Gymer - In Cage'),
|
||||
|
||||
(29686, 0, 3, 'TROLL MAKE ME ANGRY!', 12, 100, 0, 30371, 'Captured Rageclaw'),
|
||||
(29686, 0, 4, 'Rageclaw free! Troll die now!', 12, 100, 0, 30396, 'Captured Rageclaw'),
|
||||
(29686, 0, 5, 'Revenge for Rageclaw!', 12, 100, 0, 30399, 'Captured Rageclaw'),
|
||||
(29686, 0, 6, 'This mean war!', 12, 100, 0, 30401, 'Captured Rageclaw'),
|
||||
|
||||
(29884, 1, 8, 'LET THE STORM''S FURY CONSUME YOU!', 14, 100, 0, 30588, 'Gymer'),
|
||||
(29884, 1, 9, 'NO ESCAPE FOR THE WICKED!', 14, 100, 0, 30589, 'Gymer'),
|
||||
(29884, 1, 10, 'IT IS THE WRATH OF THE STORM KING!', 14, 100, 0, 30592, 'Gymer'),
|
||||
|
||||
(29491, 0, 2, 'Welcome!', 12, 100, 0, 32807, 'Karandonna - Player In Range'),
|
||||
(29491, 0, 3, 'Greetings, $c.', 12, 100, 0, 32808, 'Karandonna - Player In Range'),
|
||||
(29491, 0, 4, 'Greetings! Please have a look around.', 12, 100, 0, 32809, 'Karandonna - Player In Range'),
|
||||
(29491, 0, 5, 'Let me know if you need help finding anything, $c.', 12, 100, 0, 32810, 'Karandonna - Player In Range'),
|
||||
(29491, 0, 6, 'Greetings.', 12, 100, 0, 32935, 'Karandonna - Player In Range'),
|
||||
|
||||
(29523, 0, 4, 'Greetings, $c.', 12, 100, 0, 32808, 'Bragund Brightlink - Player In Range'),
|
||||
(29523, 0, 5, 'Welcome. May I help you find something?', 12, 100, 0, 32811, 'Bragund Brightlink - Player In Range'),
|
||||
(29523, 0, 6, 'Greetings.', 12, 100, 0, 32935, 'Bragund Brightlink - Player In Range'),
|
||||
|
||||
(30012, 0, 4, 'I''m not afraid of anything -- bring it on!', 12, 100, 0, 30807, 'Victorious Challenger'),
|
||||
|
||||
(31397, 0, 5, 'I won''t leave!', 12, 100, 0, 32469, 'Saronite Mine Slave'),
|
||||
(31397, 0, 6, 'I''ll never return. The whole reason for my existence awaits below!', 12, 100, 0, 32472, 'Saronite Mine Slave'),
|
||||
(31397, 0, 7, 'I must get further underground to where he is. I must jump!', 12, 100, 0, 32474, 'Saronite Mine Slave'),
|
||||
|
||||
(33027, 0, 5, 'Welcome!', 12, 100, 0, 32807, 'Jessica Sellers'),
|
||||
(33027, 0, 6, 'Greetings.', 12, 100, 0, 32935, 'Jessica Sellers'),
|
||||
|
||||
(33853, 0, 3, 'Show support for your favorite champion! Wear their colors at the next bout and let ''em know who you love!', 12, 100, 0, 33834, ''),
|
||||
|
||||
(36764, 0, 5, 'I''d almost given up hope.', 12, 100, 0, 37079, 'Alliance Slave - On Liberation'),
|
||||
(36764, 0, 6, 'I thought I might die in this pit. Thank you!', 12, 100, 0, 37262, 'Alliance Slave - On Liberation'),
|
||||
(36764, 0, 7, 'Don''t let a single one of them live.', 12, 100, 0, 37264, 'Alliance Slave - On Liberation'),
|
||||
(36764, 0, 8, 'Please, carry out our vengeance on the Scourgelord.', 12, 100, 0, 37265, 'Alliance Slave - On Liberation'),
|
||||
(36764, 0, 9, 'When you kill the Pit Master, spit on his corpse for me, will you?', 12, 100, 0, 37266, 'Alliance Slave - On Liberation'),
|
||||
(36764, 0, 10, 'I''d lost all track of time in this forsaken place. You''re a sight for sore eyes, friend.', 12, 100, 0, 37268, 'Alliance Slave - On Liberation'),
|
||||
(36764, 0, 11, 'Too many of us died in this pit. Far too many.', 12, 100, 0, 37270, 'Alliance Slave - On Liberation'),
|
||||
(36764, 0, 12, 'I''m so glad you''re here. I wouldn''t have made it much longer.', 12, 100, 0, 37271, 'Alliance Slave - On Liberation'),
|
||||
(36764, 0, 13, 'Now is the time for revenge.', 12, 100, 0, 37273, 'Alliance Slave - On Liberation'),
|
||||
(36764, 0, 14, 'You deserve a mighty man-hug.', 12, 100, 0, 37274, 'Alliance Slave - On Liberation'),
|
||||
(36764, 0, 15, 'I will find a way to repay you someday, hero.', 12, 100, 0, 37275, 'Alliance Slave - On Liberation'),
|
||||
(36764, 0, 16, 'I can hardly believe my eyes. Thank you. Really, thank you.', 12, 100, 0, 37276, 'Alliance Slave - On Liberation'),
|
||||
(36764, 0, 17, '%s nods his thanks.', 16, 100, 0, 37277, 'Alliance Slave - On Liberation'),
|
||||
(36764, 0, 18, '%s offers an appreciative smile.', 16, 100, 0, 37278, 'Alliance Slave - On Liberation'),
|
||||
(36764, 0, 19, '%s almost collapses as he stumbles towards you.', 16, 100, 0, 37279, 'Alliance Slave - On Liberation'),
|
||||
(36764, 0, 20, '%s stares at you for a moment, clearly finding it hard to believe that you''re real.', 16, 100, 0, 37280, 'Alliance Slave - On Liberation'),
|
||||
(36764, 0, 21, '%s offers a quick, cynical laugh at his fortune.', 16, 100, 0, 37281, 'Alliance Slave - On Liberation'),
|
||||
(36764, 0, 22, '%s raises an empty hand in toast to you.', 16, 100, 0, 37282, 'Alliance Slave - On Liberation'),
|
||||
(36764, 0, 23, '%s closes his eyes, savoring freedom for a moment.', 16, 100, 0, 37283, 'Alliance Slave - On Liberation'),
|
||||
(36764, 0, 24, 'I''m going to return to help free the rest of the slaves. Thank you again, hero.', 16, 100, 0, 37293, 'Alliance Slave - On Liberation'),
|
||||
|
||||
(36765, 0, 5, 'I''d almost given up hope.', 12, 100, 0, 37079, 'Alliance Slave - On Liberation'),
|
||||
(36765, 0, 6, 'I thought I might die in this pit. Thank you!', 12, 100, 0, 37262, 'Alliance Slave - On Liberation'),
|
||||
(36765, 0, 7, 'Don''t let a single one of them live.', 12, 100, 0, 37264, 'Alliance Slave - On Liberation'),
|
||||
(36765, 0, 8, 'Please, carry out our vengeance on the Scourgelord.', 12, 100, 0, 37265, 'Alliance Slave - On Liberation'),
|
||||
(36765, 0, 9, 'When you kill the Pit Master, spit on his corpse for me, will you?', 12, 100, 0, 37266, 'Alliance Slave - On Liberation'),
|
||||
(36765, 0, 10, 'I''d lost all track of time in this forsaken place. You''re a sight for sore eyes, friend.', 12, 100, 0, 37268, 'Alliance Slave - On Liberation'),
|
||||
(36765, 0, 11, 'Too many of us died in this pit. Far too many.', 12, 100, 0, 37270, 'Alliance Slave - On Liberation'),
|
||||
(36765, 0, 12, 'I''m so glad you''re here. I wouldn''t have made it much longer.', 12, 100, 0, 37271, 'Alliance Slave - On Liberation'),
|
||||
(36765, 0, 13, 'Now is the time for revenge.', 12, 100, 0, 37273, 'Alliance Slave - On Liberation'),
|
||||
(36765, 0, 14, 'You deserve a mighty man-hug.', 12, 100, 0, 37274, 'Alliance Slave - On Liberation'),
|
||||
(36765, 0, 15, 'I will find a way to repay you someday, hero.', 12, 100, 0, 37275, 'Alliance Slave - On Liberation'),
|
||||
(36765, 0, 16, 'I can hardly believe my eyes. Thank you. Really, thank you.', 12, 100, 0, 37276, 'Alliance Slave - On Liberation'),
|
||||
(36765, 0, 17, '%s nods his thanks.', 16, 100, 0, 37277, 'Alliance Slave - On Liberation'),
|
||||
(36765, 0, 18, '%s offers an appreciative smile.', 16, 100, 0, 37278, 'Alliance Slave - On Liberation'),
|
||||
(36765, 0, 19, '%s almost collapses as he stumbles towards you.', 16, 100, 0, 37279, 'Alliance Slave - On Liberation'),
|
||||
(36765, 0, 20, '%s stares at you for a moment, clearly finding it hard to believe that you''re real.', 16, 100, 0, 37280, 'Alliance Slave - On Liberation'),
|
||||
(36765, 0, 21, '%s offers a quick, cynical laugh at his fortune.', 16, 100, 0, 37281, 'Alliance Slave - On Liberation'),
|
||||
(36765, 0, 22, '%s raises an empty hand in toast to you.', 16, 100, 0, 37282, 'Alliance Slave - On Liberation'),
|
||||
(36765, 0, 23, '%s closes his eyes, savoring freedom for a moment.', 16, 100, 0, 37283, 'Alliance Slave - On Liberation'),
|
||||
(36765, 0, 24, 'I''m going to return to help free the rest of the slaves. Thank you again, hero.', 16, 100, 0, 37293, 'Alliance Slave - On Liberation'),
|
||||
|
||||
(36766, 0, 5, 'I''d almost given up hope.', 12, 100, 0, 37079, 'Alliance Slave - On Liberation'),
|
||||
(36766, 0, 6, 'I thought I might die in this pit. Thank you!', 12, 100, 0, 37262, 'Alliance Slave - On Liberation'),
|
||||
(36766, 0, 7, 'Don''t let a single one of them live.', 12, 100, 0, 37264, 'Alliance Slave - On Liberation'),
|
||||
(36766, 0, 8, 'Please, carry out our vengeance on the Scourgelord.', 12, 100, 0, 37265, 'Alliance Slave - On Liberation'),
|
||||
(36766, 0, 9, 'When you kill the Pit Master, spit on his corpse for me, will you?', 12, 100, 0, 37266, 'Alliance Slave - On Liberation'),
|
||||
(36766, 0, 10, 'I''d lost all track of time in this forsaken place. You''re a sight for sore eyes, friend.', 12, 100, 0, 37268, 'Alliance Slave - On Liberation'),
|
||||
(36766, 0, 11, 'Too many of us died in this pit. Far too many.', 12, 100, 0, 37270, 'Alliance Slave - On Liberation'),
|
||||
(36766, 0, 12, 'I''m so glad you''re here. I wouldn''t have made it much longer.', 12, 100, 0, 37271, 'Alliance Slave - On Liberation'),
|
||||
(36766, 0, 13, 'Now is the time for revenge.', 12, 100, 0, 37273, 'Alliance Slave - On Liberation'),
|
||||
(36766, 0, 14, 'You deserve a mighty man-hug.', 12, 100, 0, 37274, 'Alliance Slave - On Liberation'),
|
||||
(36766, 0, 15, 'I will find a way to repay you someday, hero.', 12, 100, 0, 37275, 'Alliance Slave - On Liberation'),
|
||||
(36766, 0, 16, 'I can hardly believe my eyes. Thank you. Really, thank you.', 12, 100, 0, 37276, 'Alliance Slave - On Liberation'),
|
||||
(36766, 0, 17, '%s nods his thanks.', 16, 100, 0, 37277, 'Alliance Slave - On Liberation'),
|
||||
(36766, 0, 18, '%s offers an appreciative smile.', 16, 100, 0, 37278, 'Alliance Slave - On Liberation'),
|
||||
(36766, 0, 19, '%s almost collapses as he stumbles towards you.', 16, 100, 0, 37279, 'Alliance Slave - On Liberation'),
|
||||
(36766, 0, 20, '%s stares at you for a moment, clearly finding it hard to believe that you''re real.', 16, 100, 0, 37280, 'Alliance Slave - On Liberation'),
|
||||
(36766, 0, 21, '%s offers a quick, cynical laugh at his fortune.', 16, 100, 0, 37281, 'Alliance Slave - On Liberation'),
|
||||
(36766, 0, 22, '%s raises an empty hand in toast to you.', 16, 100, 0, 37282, 'Alliance Slave - On Liberation'),
|
||||
(36766, 0, 23, '%s closes his eyes, savoring freedom for a moment.', 16, 100, 0, 37283, 'Alliance Slave - On Liberation'),
|
||||
(36766, 0, 24, 'I''m going to return to help free the rest of the slaves. Thank you again, hero.', 16, 100, 0, 37293, 'Alliance Slave - On Liberation'),
|
||||
|
||||
(36767, 0, 5, 'I''d almost given up hope.', 12, 100, 0, 37079, 'Alliance Slave - On Liberation'),
|
||||
(36767, 0, 6, 'I thought I might die in this pit. Thank you!', 12, 100, 0, 37262, 'Alliance Slave - On Liberation'),
|
||||
(36767, 0, 7, 'Don''t let a single one of them live.', 12, 100, 0, 37264, 'Alliance Slave - On Liberation'),
|
||||
(36767, 0, 8, 'Please, carry out our vengeance on the Scourgelord.', 12, 100, 0, 37265, 'Alliance Slave - On Liberation'),
|
||||
(36767, 0, 9, 'When you kill the Pit Master, spit on his corpse for me, will you?', 12, 100, 0, 37266, 'Alliance Slave - On Liberation'),
|
||||
(36767, 0, 10, 'I''d lost all track of time in this forsaken place. You''re a sight for sore eyes, friend.', 12, 100, 0, 37268, 'Alliance Slave - On Liberation'),
|
||||
(36767, 0, 11, 'Too many of us died in this pit. Far too many.', 12, 100, 0, 37270, 'Alliance Slave - On Liberation'),
|
||||
(36767, 0, 12, 'I''m so glad you''re here. I wouldn''t have made it much longer.', 12, 100, 0, 37271, 'Alliance Slave - On Liberation'),
|
||||
(36767, 0, 13, 'Now is the time for revenge.', 12, 100, 0, 37273, 'Alliance Slave - On Liberation'),
|
||||
(36767, 0, 14, 'You deserve a mighty man-hug.', 12, 100, 0, 37274, 'Alliance Slave - On Liberation'),
|
||||
(36767, 0, 15, 'I will find a way to repay you someday, hero.', 12, 100, 0, 37275, 'Alliance Slave - On Liberation'),
|
||||
(36767, 0, 16, 'I can hardly believe my eyes. Thank you. Really, thank you.', 12, 100, 0, 37276, 'Alliance Slave - On Liberation'),
|
||||
(36767, 0, 17, '%s nods his thanks.', 16, 100, 0, 37277, 'Alliance Slave - On Liberation'),
|
||||
(36767, 0, 18, '%s offers an appreciative smile.', 16, 100, 0, 37278, 'Alliance Slave - On Liberation'),
|
||||
(36767, 0, 19, '%s almost collapses as he stumbles towards you.', 16, 100, 0, 37279, 'Alliance Slave - On Liberation'),
|
||||
(36767, 0, 20, '%s stares at you for a moment, clearly finding it hard to believe that you''re real.', 16, 100, 0, 37280, 'Alliance Slave - On Liberation'),
|
||||
(36767, 0, 21, '%s offers a quick, cynical laugh at his fortune.', 16, 100, 0, 37281, 'Alliance Slave - On Liberation'),
|
||||
(36767, 0, 22, '%s raises an empty hand in toast to you.', 16, 100, 0, 37282, 'Alliance Slave - On Liberation'),
|
||||
(36767, 0, 23, '%s closes his eyes, savoring freedom for a moment.', 16, 100, 0, 37283, 'Alliance Slave - On Liberation'),
|
||||
(36767, 0, 24, 'I''m going to return to help free the rest of the slaves. Thank you again, hero.', 16, 100, 0, 37293, 'Alliance Slave - On Liberation'),
|
||||
|
||||
(36770, 0, 5, 'I''d almost given up hope.', 12, 100, 0, 37079, 'Horde Slave - On Liberation'),
|
||||
(36770, 0, 6, 'I thought I might die in this pit. Thank you!', 12, 100, 0, 37262, 'Horde Slave - On Liberation'),
|
||||
(36770, 0, 7, 'Don''t let a single one of them live.', 12, 100, 0, 37264, 'Horde Slave - On Liberation'),
|
||||
(36770, 0, 8, 'Please, carry out our vengeance on the Scourgelord.', 12, 100, 0, 37265, 'Horde Slave - On Liberation'),
|
||||
(36770, 0, 9, 'When you kill the Pit Master, spit on his corpse for me, will you?', 12, 100, 0, 37266, 'Horde Slave - On Liberation'),
|
||||
(36770, 0, 10, 'I''d lost all track of time in this forsaken place. You''re a sight for sore eyes, friend.', 12, 100, 0, 37268, 'Horde Slave - On Liberation'),
|
||||
(36770, 0, 11, 'Too many of us died in this pit. Far too many.', 12, 100, 0, 37270, 'Horde Slave - On Liberation'),
|
||||
(36770, 0, 12, 'I''m so glad you''re here. I wouldn''t have made it much longer.', 12, 100, 0, 37271, 'Horde Slave - On Liberation'),
|
||||
(36770, 0, 13, 'Now is the time for revenge.', 12, 100, 0, 37273, 'Horde Slave - On Liberation'),
|
||||
(36770, 0, 14, 'You deserve a mighty man-hug.', 12, 100, 0, 37274, 'Horde Slave - On Liberation'),
|
||||
(36770, 0, 15, 'I will find a way to repay you someday, hero.', 12, 100, 0, 37275, 'Horde Slave - On Liberation'),
|
||||
(36770, 0, 16, 'I can hardly believe my eyes. Thank you. Really, thank you.', 12, 100, 0, 37276, 'Horde Slave - On Liberation'),
|
||||
(36770, 0, 17, '%s nods his thanks.', 16, 100, 0, 37277, 'Horde Slave - On Liberation'),
|
||||
(36770, 0, 18, '%s offers an appreciative smile.', 16, 100, 0, 37278, 'Horde Slave - On Liberation'),
|
||||
(36770, 0, 19, '%s almost collapses as he stumbles towards you.', 16, 100, 0, 37279, 'Horde Slave - On Liberation'),
|
||||
(36770, 0, 20, '%s stares at you for a moment, clearly finding it hard to believe that you''re real.', 16, 100, 0, 37280, 'Horde Slave - On Liberation'),
|
||||
(36770, 0, 21, '%s offers a quick, cynical laugh at his fortune.', 16, 100, 0, 37281, 'Horde Slave - On Liberation'),
|
||||
(36770, 0, 22, '%s raises an empty hand in toast to you.', 16, 100, 0, 37282, 'Horde Slave - On Liberation'),
|
||||
(36770, 0, 23, '%s closes his eyes, savoring freedom for a moment.', 16, 100, 0, 37283, 'Horde Slave - On Liberation'),
|
||||
(36770, 0, 24, 'I''m going to return to help free the rest of the slaves. Thank you again, hero.', 16, 100, 0, 37293, 'Horde Slave - On Liberation'),
|
||||
|
||||
(36771, 0, 5, 'I''d almost given up hope.', 12, 100, 0, 37079, 'Horde Slave - On Liberation'),
|
||||
(36771, 0, 6, 'I thought I might die in this pit. Thank you!', 12, 100, 0, 37262, 'Horde Slave - On Liberation'),
|
||||
(36771, 0, 7, 'Don''t let a single one of them live.', 12, 100, 0, 37264, 'Horde Slave - On Liberation'),
|
||||
(36771, 0, 8, 'Please, carry out our vengeance on the Scourgelord.', 12, 100, 0, 37265, 'Horde Slave - On Liberation'),
|
||||
(36771, 0, 9, 'When you kill the Pit Master, spit on his corpse for me, will you?', 12, 100, 0, 37266, 'Horde Slave - On Liberation'),
|
||||
(36771, 0, 10, 'I''d lost all track of time in this forsaken place. You''re a sight for sore eyes, friend.', 12, 100, 0, 37268, 'Horde Slave - On Liberation'),
|
||||
(36771, 0, 11, 'Too many of us died in this pit. Far too many.', 12, 100, 0, 37270, 'Horde Slave - On Liberation'),
|
||||
(36771, 0, 12, 'I''m so glad you''re here. I wouldn''t have made it much longer.', 12, 100, 0, 37271, 'Horde Slave - On Liberation'),
|
||||
(36771, 0, 13, 'Now is the time for revenge.', 12, 100, 0, 37273, 'Horde Slave - On Liberation'),
|
||||
(36771, 0, 14, 'You deserve a mighty man-hug.', 12, 100, 0, 37274, 'Horde Slave - On Liberation'),
|
||||
(36771, 0, 15, 'I will find a way to repay you someday, hero.', 12, 100, 0, 37275, 'Horde Slave - On Liberation'),
|
||||
(36771, 0, 16, 'I can hardly believe my eyes. Thank you. Really, thank you.', 12, 100, 0, 37276, 'Horde Slave - On Liberation'),
|
||||
(36771, 0, 17, '%s nods his thanks.', 16, 100, 0, 37277, 'Horde Slave - On Liberation'),
|
||||
(36771, 0, 18, '%s offers an appreciative smile.', 16, 100, 0, 37278, 'Horde Slave - On Liberation'),
|
||||
(36771, 0, 19, '%s almost collapses as he stumbles towards you.', 16, 100, 0, 37279, 'Horde Slave - On Liberation'),
|
||||
(36771, 0, 20, '%s stares at you for a moment, clearly finding it hard to believe that you''re real.', 16, 100, 0, 37280, 'Horde Slave - On Liberation'),
|
||||
(36771, 0, 21, '%s offers a quick, cynical laugh at his fortune.', 16, 100, 0, 37281, 'Horde Slave - On Liberation'),
|
||||
(36771, 0, 22, '%s raises an empty hand in toast to you.', 16, 100, 0, 37282, 'Horde Slave - On Liberation'),
|
||||
(36771, 0, 23, '%s closes his eyes, savoring freedom for a moment.', 16, 100, 0, 37283, 'Horde Slave - On Liberation'),
|
||||
(36771, 0, 24, 'I''m going to return to help free the rest of the slaves. Thank you again, hero.', 16, 100, 0, 37293, 'Horde Slave - On Liberation'),
|
||||
|
||||
(36772, 0, 5, 'I''d almost given up hope.', 12, 100, 0, 37079, 'Horde Slave - On Liberation'),
|
||||
(36772, 0, 6, 'I thought I might die in this pit. Thank you!', 12, 100, 0, 37262, 'Horde Slave - On Liberation'),
|
||||
(36772, 0, 7, 'Don''t let a single one of them live.', 12, 100, 0, 37264, 'Horde Slave - On Liberation'),
|
||||
(36772, 0, 8, 'Please, carry out our vengeance on the Scourgelord.', 12, 100, 0, 37265, 'Horde Slave - On Liberation'),
|
||||
(36772, 0, 9, 'When you kill the Pit Master, spit on his corpse for me, will you?', 12, 100, 0, 37266, 'Horde Slave - On Liberation'),
|
||||
(36772, 0, 10, 'I''d lost all track of time in this forsaken place. You''re a sight for sore eyes, friend.', 12, 100, 0, 37268, 'Horde Slave - On Liberation'),
|
||||
(36772, 0, 11, 'Too many of us died in this pit. Far too many.', 12, 100, 0, 37270, 'Horde Slave - On Liberation'),
|
||||
(36772, 0, 12, 'I''m so glad you''re here. I wouldn''t have made it much longer.', 12, 100, 0, 37271, 'Horde Slave - On Liberation'),
|
||||
(36772, 0, 13, 'Now is the time for revenge.', 12, 100, 0, 37273, 'Horde Slave - On Liberation'),
|
||||
(36772, 0, 14, 'You deserve a mighty man-hug.', 12, 100, 0, 37274, 'Horde Slave - On Liberation'),
|
||||
(36772, 0, 15, 'I will find a way to repay you someday, hero.', 12, 100, 0, 37275, 'Horde Slave - On Liberation'),
|
||||
(36772, 0, 16, 'I can hardly believe my eyes. Thank you. Really, thank you.', 12, 100, 0, 37276, 'Horde Slave - On Liberation'),
|
||||
(36772, 0, 17, '%s nods his thanks.', 16, 100, 0, 37277, 'Horde Slave - On Liberation'),
|
||||
(36772, 0, 18, '%s offers an appreciative smile.', 16, 100, 0, 37278, 'Horde Slave - On Liberation'),
|
||||
(36772, 0, 19, '%s almost collapses as he stumbles towards you.', 16, 100, 0, 37279, 'Horde Slave - On Liberation'),
|
||||
(36772, 0, 20, '%s stares at you for a moment, clearly finding it hard to believe that you''re real.', 16, 100, 0, 37280, 'Horde Slave - On Liberation'),
|
||||
(36772, 0, 21, '%s offers a quick, cynical laugh at his fortune.', 16, 100, 0, 37281, 'Horde Slave - On Liberation'),
|
||||
(36772, 0, 22, '%s raises an empty hand in toast to you.', 16, 100, 0, 37282, 'Horde Slave - On Liberation'),
|
||||
(36772, 0, 23, '%s closes his eyes, savoring freedom for a moment.', 16, 100, 0, 37283, 'Horde Slave - On Liberation'),
|
||||
(36772, 0, 24, 'I''m going to return to help free the rest of the slaves. Thank you again, hero.', 16, 100, 0, 37293, 'Horde Slave - On Liberation'),
|
||||
|
||||
(36773, 0, 5, 'I''d almost given up hope.', 12, 100, 0, 37079, 'Horde Slave - On Liberation'),
|
||||
(36773, 0, 6, 'I thought I might die in this pit. Thank you!', 12, 100, 0, 37262, 'Horde Slave - On Liberation'),
|
||||
(36773, 0, 7, 'Don''t let a single one of them live.', 12, 100, 0, 37264, 'Horde Slave - On Liberation'),
|
||||
(36773, 0, 8, 'Please, carry out our vengeance on the Scourgelord.', 12, 100, 0, 37265, 'Horde Slave - On Liberation'),
|
||||
(36773, 0, 9, 'When you kill the Pit Master, spit on his corpse for me, will you?', 12, 100, 0, 37266, 'Horde Slave - On Liberation'),
|
||||
(36773, 0, 10, 'I''d lost all track of time in this forsaken place. You''re a sight for sore eyes, friend.', 12, 100, 0, 37268, 'Horde Slave - On Liberation'),
|
||||
(36773, 0, 11, 'Too many of us died in this pit. Far too many.', 12, 100, 0, 37270, 'Horde Slave - On Liberation'),
|
||||
(36773, 0, 12, 'I''m so glad you''re here. I wouldn''t have made it much longer.', 12, 100, 0, 37271, 'Horde Slave - On Liberation'),
|
||||
(36773, 0, 13, 'Now is the time for revenge.', 12, 100, 0, 37273, 'Horde Slave - On Liberation'),
|
||||
(36773, 0, 14, 'You deserve a mighty man-hug.', 12, 100, 0, 37274, 'Horde Slave - On Liberation'),
|
||||
(36773, 0, 15, 'I will find a way to repay you someday, hero.', 12, 100, 0, 37275, 'Horde Slave - On Liberation'),
|
||||
(36773, 0, 16, 'I can hardly believe my eyes. Thank you. Really, thank you.', 12, 100, 0, 37276, 'Horde Slave - On Liberation'),
|
||||
(36773, 0, 17, '%s nods his thanks.', 16, 100, 0, 37277, 'Horde Slave - On Liberation'),
|
||||
(36773, 0, 18, '%s offers an appreciative smile.', 16, 100, 0, 37278, 'Horde Slave - On Liberation'),
|
||||
(36773, 0, 19, '%s almost collapses as he stumbles towards you.', 16, 100, 0, 37279, 'Horde Slave - On Liberation'),
|
||||
(36773, 0, 20, '%s stares at you for a moment, clearly finding it hard to believe that you''re real.', 16, 100, 0, 37280, 'Horde Slave - On Liberation'),
|
||||
(36773, 0, 21, '%s offers a quick, cynical laugh at his fortune.', 16, 100, 0, 37281, 'Horde Slave - On Liberation'),
|
||||
(36773, 0, 22, '%s raises an empty hand in toast to you.', 16, 100, 0, 37282, 'Horde Slave - On Liberation'),
|
||||
(36773, 0, 23, '%s closes his eyes, savoring freedom for a moment.', 16, 100, 0, 37283, 'Horde Slave - On Liberation'),
|
||||
(36773, 0, 24, 'I''m going to return to help free the rest of the slaves. Thank you again, hero.', 16, 100, 0, 37293, 'Horde Slave - On Liberation'),
|
||||
|
||||
(36913, 0, 7, 'He watches your every move...', 15, 100, 0, 38354, 'Eye of the Lich King - Whisper');
|
||||
@@ -0,0 +1 @@
|
||||
UPDATE `creature_text` SET `language`=0 WHERE `entry`=23678 AND `groupid`=1;
|
||||
@@ -0,0 +1,21 @@
|
||||
DELETE FROM `creature_text` WHERE `entry` IN(23439,25510,25511,25513,25512);
|
||||
|
||||
INSERT INTO `creature_text` (`entry`, `groupid`, `id`, `text`, `type`, `language`, `probability`, `emote`, `duration`, `sound`, `comment`, `BroadcastTextID`) VALUES
|
||||
(23439, 0, 0, '%s feeds on the freshly-killed warp chaser.', 16, 0, 100, 35, 0, 0, 'Hungry Nether Ray',21657),
|
||||
(25510, 0, 0, 'The Serpent''s Maw is engulfed in tuskarr fire!', 41, 0, 100, 0, 0, 0, '1st Kvaldir Vessel (The Serpent''s Maw)',24722),
|
||||
(25512, 0, 0, 'Bor''s Hammer is engulfed in tuskarr fire!', 41, 0, 100, 0, 0, 0, '3rd Kvaldir Vessel (Bor''s Hammer)',24724),
|
||||
(25511, 0, 0, 'The Kur Drakkar is engulfed in tuskarr fire!', 41, 0, 100, 0, 0, 0, '2nd Kvaldir Vessel (The Kur Drakkar)',24723),
|
||||
(25513, 0, 0, 'Bor''s Anvil is engulfed in tuskarr fire!', 41, 0, 100, 0, 0, 0, '4th Kvaldir Vessel (Bor''s Anvil)',24725);
|
||||
|
||||
UPDATE `smart_scripts` SET `link`=1 WHERE `entryorguid` IN(25510,25511,25512,25513) AND `source_type`=0 AND `id`=0 AND `link`=0;
|
||||
UPDATE `smart_scripts` SET `link`=2 WHERE `entryorguid`=23439 AND `source_type`=0 AND `id`=1 AND `link`=0;
|
||||
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid` IN(25510,25511,25512,25513) AND `source_type`=0 AND `id`=1;
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid` =23439 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
|
||||
(25510, 0, 1, 0, 61, 0, 100, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, '1st Kvaldir Vessel (The Serpent\'s Maw) - On Spellhit \'Use Tuskarr Torch\' - Say'),
|
||||
(25511, 0, 1, 0, 61, 0, 100, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, '2nd Kvaldir Vessel (The Kur Drakkar) - On Spellhit \'Use Tuskarr Torch\' - Say'),
|
||||
(25512, 0, 1, 0, 61, 0, 100, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, '3rd Kvaldir Vessel (Bor''s Hammer) - On Spellhit \'Use Tuskarr Torch\' - Say'),
|
||||
(25513, 0, 1, 0, 61, 0, 100, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, '4th Kvaldir Vessel (Bor''s Anvil) - On Spellhit \'Use Tuskarr Torch\' - Say'),
|
||||
(23439, 0, 2, 0, 61, 0, 100, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Hungry Nether Ray - On Data Set 1 1 - Cast \'Lucille Feed Credit Trigger\'');
|
||||
@@ -0,0 +1,117 @@
|
||||
-- Skeletal Guardian SAI
|
||||
SET @ENTRY := 10390;
|
||||
UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY;
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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
|
||||
(@ENTRY,0,0,0,1,0,100,2,1000,1000,1800000,1800000,11,13787,1,0,0,0,0,1,0,0,0,0,0,0,0,"Skeletal Guardian - Out of Combat - Cast 'Demon Armor' (Normal Dungeon)"),
|
||||
(@ENTRY,0,1,0,4,0,100,2,0,0,0,0,11,16799,0,0,0,0,0,2,0,0,0,0,0,0,0,"Skeletal Guardian - On Aggro - Cast 'Frostbolt' (Normal Dungeon)"),
|
||||
(@ENTRY,0,2,0,0,0,100,2,2400,3800,2400,3800,11,9613,64,0,0,0,0,2,0,0,0,0,0,0,0,"Skeletal Guardian - In Combat CMC - Cast 'Shadow Bolt' (Normal Dungeon)"),
|
||||
(@ENTRY,0,3,0,0,0,85,2,9000,12000,9000,12000,11,9672,0,0,0,0,0,2,0,0,0,0,0,0,0,"Skeletal Guardian - In Combat Range - Cast 'Frostbolt' (Normal Dungeon)"),
|
||||
(@ENTRY,0,4,0,0,0,85,2,6000,7000,9000,12000,11,37361,0,0,0,0,0,2,0,0,0,0,0,0,0,"Skeletal Guardian - In Combat - Cast 'Arcane Bolt' (Normal Dungeon)"),
|
||||
(@ENTRY,0,5,0,0,0,85,2,14000,18000,14000,18000,11,11975,1,0,0,0,0,1,0,0,0,0,0,0,0,"Skeletal Guardian - In Combat - Cast 'Arcane Explosion' (Normal Dungeon)");
|
||||
|
||||
-- Skul SAI
|
||||
SET @ENTRY := 10393;
|
||||
UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY;
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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
|
||||
(@ENTRY,0,0,0,1,0,100,2,1000,1000,1800000,1800000,11,12544,1,0,0,0,0,1,0,0,0,0,0,0,0,"Skul - Out of Combat - Cast 'Frost Armor' (Normal Dungeon)"),
|
||||
(@ENTRY,0,1,0,0,0,100,2,0,0,2400,3800,11,16799,64,0,0,0,0,2,0,0,0,0,0,0,0,"Skul - In Combat - Cast 'Frostbolt' (Normal Dungeon)"),
|
||||
(@ENTRY,0,2,0,0,0,50,2,6000,8000,16000,20000,11,15499,1,0,0,0,0,5,0,0,0,0,0,0,0,"Skul - In Combat - Cast 'Frost Shock' (Normal Dungeon)"),
|
||||
(@ENTRY,0,3,0,0,0,40,2,9000,11000,9000,11000,11,15230,0,0,0,0,0,2,0,0,0,0,0,0,0,"Skul - In Combat - Cast 'Arcane Bolt' (Normal Dungeon)"),
|
||||
(@ENTRY,0,4,0,2,0,100,3,0,15,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Skul - Between 0-15% Health - Flee For Assist (No Repeat) (Normal Dungeon)");
|
||||
|
||||
-- Thuzadin Shadowcaster SAI
|
||||
SET @ENTRY := 10398;
|
||||
UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY;
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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
|
||||
(@ENTRY,0,0,0,0,0,100,2,0,0,2400,3800,11,15232,64,0,0,0,0,2,0,0,0,0,0,0,0,"Thuzadin Shadowcaster - In Combat CMC - Cast 'Shadow Bolt' (Normal Dungeon)"),
|
||||
(@ENTRY,0,1,0,0,0,100,2,4000,6000,20000,25000,11,11443,1,0,0,0,0,2,0,0,0,0,0,0,0,"Thuzadin Shadowcaster - In Combat - Cast 'Cripple' (Normal Dungeon)"),
|
||||
(@ENTRY,0,2,0,0,0,100,2,7000,12000,15000,20000,11,16429,33,0,0,0,0,5,0,0,0,0,0,0,0,"Thuzadin Shadowcaster - In Combat - Cast 'Piercing Shadow' (Normal Dungeon)");
|
||||
|
||||
-- Crimson Conjuror SAI
|
||||
SET @ENTRY := 10419;
|
||||
UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY;
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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
|
||||
(@ENTRY,0,0,0,0,0,100,2,0,40,2400,3800,11,12675,64,0,0,0,0,2,0,0,0,0,0,0,0,"Crimson Conjuror - In Combat CMC - Cast 'Frostbolt' (Normal Dungeon)"),
|
||||
(@ENTRY,0,1,0,0,0,85,2,7000,7000,10000,10000,11,17195,1,0,0,0,0,5,0,0,0,0,0,0,0,"Crimson Conjuror - In Combat - Cast 'Scorch' (Normal Dungeon)"),
|
||||
(@ENTRY,0,2,0,0,0,100,2,10000,10000,15000,15000,11,12674,1,0,0,0,0,1,0,0,0,0,0,0,0,"Crimson Conjuror - In Combat - Cast 'Frost Nova' (Normal Dungeon)"),
|
||||
(@ENTRY,0,3,0,0,0,100,2,5000,5000,35000,45000,11,17162,1,0,0,0,0,1,0,0,0,0,0,0,0,"Crimson Conjuror - In Combat - Cast 'Summon Water Elemental' (Normal Dungeon)");
|
||||
|
||||
-- Crimson Sorcerer SAI
|
||||
SET @ENTRY := 10422;
|
||||
UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY;
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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
|
||||
(@ENTRY,0,0,0,1,0,100,2,1000,1000,1800000,1800000,11,12544,1,0,0,0,0,1,0,0,0,0,0,0,0,"Crimson Sorcerer - Out of Combat - Cast 'Frost Armor' (Normal Dungeon)"),
|
||||
(@ENTRY,0,1,0,1,0,100,2,3000,3000,1800000,1800000,11,17150,1,0,0,0,0,1,0,0,0,0,0,0,0,"Crimson Sorcerer - Out of Combat - Cast 'Arcane Might' (Normal Dungeon)"),
|
||||
(@ENTRY,0,2,0,0,0,100,2,0,0,2400,3800,11,15230,64,0,0,0,0,2,0,0,0,0,0,0,0,"Crimson Sorcerer - In Combat CMC - Cast 'Arcane Bolt' (Normal Dungeon)"),
|
||||
(@ENTRY,0,3,0,0,0,100,2,7000,14000,21000,26000,11,13323,1,0,0,0,0,6,0,0,0,0,0,0,0,"Crimson Sorcerer - In Combat - Cast 'Polymorph' (Normal Dungeon)"),
|
||||
(@ENTRY,0,4,0,0,0,100,2,5000,6000,8500,10000,11,14145,0,0,0,0,0,2,0,0,0,0,0,0,0,"Crimson Sorcerer - In Combat - Cast 'Fire Blast' (Normal Dungeon)");
|
||||
|
||||
-- Chromatic Whelp SAI
|
||||
SET @ENTRY := 10442;
|
||||
UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY;
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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
|
||||
(@ENTRY,0,0,0,4,0,100,2,0,0,0,0,11,16249,0,0,0,0,0,2,0,0,0,0,0,0,0,"Chromatic Whelp - On Aggro - Cast 'Frostbolt' (Normal Dungeon)"),
|
||||
(@ENTRY,0,1,0,0,0,100,2,2400,3800,2400,3800,11,12167,64,0,0,0,0,2,0,0,0,0,0,0,0,"Chromatic Whelp - In Combat CMC - Cast 'Lightning Bolt' (Normal Dungeon)"),
|
||||
(@ENTRY,0,2,0,0,0,100,2,16200,26500,7000,27900,11,16249,0,0,0,0,0,2,0,0,0,0,0,0,0,"Chromatic Whelp - In Combat - Cast 'Frostbolt' (Normal Dungeon)"),
|
||||
(@ENTRY,0,3,0,0,0,100,2,10800,19600,15700,20400,11,16250,1,0,0,0,0,2,0,0,0,0,0,0,0,"Chromatic Whelp - In Combat - Cast 'Fireball Volley' (Normal Dungeon)");
|
||||
|
||||
-- Scholomance Adept SAI
|
||||
SET @ENTRY := 10469;
|
||||
UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY;
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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
|
||||
(@ENTRY,0,0,0,0,0,100,2,0,0,3200,4800,11,15043,64,0,0,0,0,2,0,0,0,0,0,0,0,"Scholomance Adept - In Combat CMC - Cast 'Frostbolt' (Normal Dungeon)"),
|
||||
(@ENTRY,0,1,0,0,0,100,2,7300,17300,9400,14300,11,15244,1,0,0,0,0,1,0,0,0,0,0,0,0,"Scholomance Adept - In Combat - Cast 'Cone of Cold' (Normal Dungeon)"),
|
||||
(@ENTRY,0,2,0,0,0,100,2,7600,19700,12200,24700,11,15499,0,0,0,0,0,2,0,0,0,0,0,0,0,"Scholomance Adept - In Combat - Cast 'Frost Shock' (Normal Dungeon)"),
|
||||
(@ENTRY,0,3,0,2,0,100,3,0,15,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Scholomance Adept - Between 0-15% Health - Flee For Assist (No Repeat) (Normal Dungeon)");
|
||||
|
||||
-- Scholomance Neophyte SAI
|
||||
SET @ENTRY := 10470;
|
||||
UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY;
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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
|
||||
(@ENTRY,0,0,0,0,0,100,2,0,0,3400,4800,11,12739,64,0,0,0,0,2,0,0,0,0,0,0,0,"Scholomance Neophyte - In Combat CMC - Cast 'Shadow Bolt'"),
|
||||
(@ENTRY,0,1,0,0,0,100,2,8600,26300,18400,36000,11,17165,1,0,0,0,0,2,0,0,0,0,0,0,0,"Scholomance Neophyte - In Combat - Cast 'Mind Flay'");
|
||||
|
||||
-- Scholomance Necrolyte SAI
|
||||
SET @ENTRY := 10476;
|
||||
UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY;
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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
|
||||
(@ENTRY,0,0,0,0,0,100,2,0,0,2400,3800,11,12739,64,0,0,0,0,2,0,0,0,0,0,0,0,"Scholomance Necrolyte - In Combat CMC - Cast 'Shadow Bolt' (Normal Dungeon)"),
|
||||
(@ENTRY,0,1,0,0,0,100,2,1400,6200,7400,22000,11,17234,1,0,0,0,0,2,0,0,0,0,0,0,0,"Scholomance Necrolyte - In Combat - Cast 'Shadow Shock' (Normal Dungeon)"),
|
||||
(@ENTRY,0,2,0,0,0,100,2,1400,22000,22000,33200,11,17151,32,0,0,0,0,1,0,0,0,0,0,0,0,"Scholomance Necrolyte - In Combat - Cast 'Shadow Barrier' (Normal Dungeon)");
|
||||
|
||||
-- Hearthsinger Forresten SAI
|
||||
SET @ENTRY := 10558;
|
||||
UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY;
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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
|
||||
(@ENTRY,0,0,0,0,0,100,2,5,30,2300,3900,11,16100,64,0,0,0,0,2,0,0,0,0,0,0,0,"Hearthsinger Forresten - In Combat CMC - Cast 'Shoot' (Normal Dungeon)"),
|
||||
(@ENTRY,0,1,0,0,0,100,2,3000,5000,12000,19000,11,16244,1,0,0,0,0,1,0,0,0,0,0,0,0,"Hearthsinger Forresten - In Combat - Cast 'Demoralizing Shout' (Normal Dungeon)"),
|
||||
(@ENTRY,0,2,0,0,0,100,2,7000,9000,20000,25000,11,16798,1,0,0,0,0,6,0,0,0,0,0,0,0,"Hearthsinger Forresten - In Combat - Cast 'Enchanting Lullaby' (Normal Dungeon)"),
|
||||
(@ENTRY,0,3,0,2,0,100,3,0,15,0,0,25,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Hearthsinger Forresten - Between 0-15% Health - Flee For Assist (No Repeat) (Normal Dungeon)");
|
||||
|
||||
-- Lady Vespia SAI
|
||||
SET @ENTRY := 10559;
|
||||
UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY;
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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
|
||||
(@ENTRY,0,0,0,0,0,100,0,5400,7100,14300,19600,11,8398,0,0,0,0,0,2,0,0,0,0,0,0,0,"Lady Vespia - In Combat - Cast 'Frostbolt Volley' (Normal Dungeon)"),
|
||||
(@ENTRY,0,1,0,0,0,100,0,15300,19100,9500,22100,11,13586,0,0,0,0,0,2,0,0,0,0,0,0,0,"Lady Vespia - In Combat - Cast 'Aqua Jet' (Normal Dungeon)"),
|
||||
(@ENTRY,0,2,0,2,0,100,1,0,15,0,0,25,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Lady Vespia - Between 0-15% Health - Flee For Assist (No Repeat) (Normal Dungeon)");
|
||||
|
||||
-- Urok Ogre Magus SAI
|
||||
SET @ENTRY := 10602;
|
||||
UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY;
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY 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
|
||||
(@ENTRY,0,0,0,0,0,100,2,0,0,2400,3800,11,15979,64,0,0,0,0,2,0,0,0,0,0,0,0,"Urok Ogre Magus - In Combat CMC - Cast 'Arcane Bolt' (Normal Dungeon)"),
|
||||
(@ENTRY,0,1,0,0,0,100,2,8000,11000,17000,24000,11,13747,1,0,0,0,0,5,0,0,0,0,0,0,0,"Urok Ogre Magus - In Combat - Cast 'Slow' (Normal Dungeon)"),
|
||||
(@ENTRY,0,2,0,2,0,100,3,0,30,30000,35000,11,6742,1,0,0,0,0,1,0,0,0,0,0,0,0,"Urok Ogre Magus - Between 0-30% Health - Cast 'Bloodlust' (No Repeat) (Normal Dungeon)");
|
||||
@@ -84,7 +84,7 @@ AccountOpResult AccountMgr::DeleteAccount(uint32 accountId)
|
||||
ObjectGuid guid(HIGHGUID_PLAYER, (*result)[0].GetUInt32());
|
||||
|
||||
// Kick if player is online
|
||||
if (Player* p = ObjectAccessor::FindPlayer(guid))
|
||||
if (Player* p = ObjectAccessor::FindConnectedPlayer(guid))
|
||||
{
|
||||
WorldSession* s = p->GetSession();
|
||||
s->KickPlayer(); // mark session to remove at next session list update
|
||||
|
||||
@@ -93,7 +93,7 @@ void AuctionHouseMgr::SendAuctionWonMail(AuctionEntry* auction, SQLTransaction&
|
||||
|
||||
uint32 bidderAccId = 0;
|
||||
ObjectGuid bidderGuid(HIGHGUID_PLAYER, auction->bidder);
|
||||
Player* bidder = ObjectAccessor::FindPlayer(bidderGuid);
|
||||
Player* bidder = ObjectAccessor::FindConnectedPlayer(bidderGuid);
|
||||
// data for gm.log
|
||||
std::string bidderName;
|
||||
bool logGmTrade = false;
|
||||
@@ -157,7 +157,7 @@ void AuctionHouseMgr::SendAuctionWonMail(AuctionEntry* auction, SQLTransaction&
|
||||
void AuctionHouseMgr::SendAuctionSalePendingMail(AuctionEntry* auction, SQLTransaction& trans)
|
||||
{
|
||||
ObjectGuid owner_guid(HIGHGUID_PLAYER, auction->owner);
|
||||
Player* owner = ObjectAccessor::FindPlayer(owner_guid);
|
||||
Player* owner = ObjectAccessor::FindConnectedPlayer(owner_guid);
|
||||
uint32 owner_accId = sObjectMgr->GetPlayerAccountIdByGUID(owner_guid);
|
||||
// owner exist (online or offline)
|
||||
if (owner || owner_accId)
|
||||
@@ -169,7 +169,7 @@ void AuctionHouseMgr::SendAuctionSalePendingMail(AuctionEntry* auction, SQLTrans
|
||||
void AuctionHouseMgr::SendAuctionSuccessfulMail(AuctionEntry* auction, SQLTransaction& trans)
|
||||
{
|
||||
ObjectGuid owner_guid(HIGHGUID_PLAYER, auction->owner);
|
||||
Player* owner = ObjectAccessor::FindPlayer(owner_guid);
|
||||
Player* owner = ObjectAccessor::FindConnectedPlayer(owner_guid);
|
||||
uint32 owner_accId = sObjectMgr->GetPlayerAccountIdByGUID(owner_guid);
|
||||
// owner exist
|
||||
if (owner || owner_accId)
|
||||
@@ -200,7 +200,7 @@ void AuctionHouseMgr::SendAuctionExpiredMail(AuctionEntry* auction, SQLTransacti
|
||||
return;
|
||||
|
||||
ObjectGuid owner_guid(HIGHGUID_PLAYER, auction->owner);
|
||||
Player* owner = ObjectAccessor::FindPlayer(owner_guid);
|
||||
Player* owner = ObjectAccessor::FindConnectedPlayer(owner_guid);
|
||||
uint32 owner_accId = sObjectMgr->GetPlayerAccountIdByGUID(owner_guid);
|
||||
// owner exist
|
||||
if (owner || owner_accId)
|
||||
@@ -223,7 +223,7 @@ void AuctionHouseMgr::SendAuctionExpiredMail(AuctionEntry* auction, SQLTransacti
|
||||
void AuctionHouseMgr::SendAuctionOutbiddedMail(AuctionEntry* auction, uint32 newPrice, Player* newBidder, SQLTransaction& trans)
|
||||
{
|
||||
ObjectGuid oldBidder_guid(HIGHGUID_PLAYER, auction->bidder);
|
||||
Player* oldBidder = ObjectAccessor::FindPlayer(oldBidder_guid);
|
||||
Player* oldBidder = ObjectAccessor::FindConnectedPlayer(oldBidder_guid);
|
||||
|
||||
uint32 oldBidder_accId = 0;
|
||||
if (!oldBidder)
|
||||
@@ -245,7 +245,7 @@ void AuctionHouseMgr::SendAuctionOutbiddedMail(AuctionEntry* auction, uint32 new
|
||||
void AuctionHouseMgr::SendAuctionCancelledToBidderMail(AuctionEntry* auction, SQLTransaction& trans, Item* item)
|
||||
{
|
||||
ObjectGuid bidder_guid = ObjectGuid(HIGHGUID_PLAYER, auction->bidder);
|
||||
Player* bidder = ObjectAccessor::FindPlayer(bidder_guid);
|
||||
Player* bidder = ObjectAccessor::FindConnectedPlayer(bidder_guid);
|
||||
|
||||
uint32 bidder_accId = 0;
|
||||
if (!bidder)
|
||||
|
||||
@@ -422,7 +422,7 @@ void Battlefield::BroadcastPacketToQueue(WorldPacket& data) const
|
||||
{
|
||||
for (uint8 team = 0; team < BG_TEAMS_COUNT; ++team)
|
||||
for (GuidSet::const_iterator itr = m_PlayersInQueue[team].begin(); itr != m_PlayersInQueue[team].end(); ++itr)
|
||||
if (Player* player = ObjectAccessor::FindPlayer(*itr))
|
||||
if (Player* player = ObjectAccessor::FindConnectedPlayer(*itr))
|
||||
player->SendDirectMessage(&data);
|
||||
}
|
||||
|
||||
|
||||
@@ -180,7 +180,7 @@ void Arena::EndBattleground(uint32 winner)
|
||||
|
||||
if (sWorld->getBoolConfig(CONFIG_ARENA_LOG_EXTENDED_INFO))
|
||||
for (auto const& score : PlayerScores)
|
||||
if (Player* player = ObjectAccessor::FindPlayer(ObjectGuid(HIGHGUID_PLAYER, score.first)))
|
||||
if (Player* player = ObjectAccessor::FindConnectedPlayer(ObjectGuid(HIGHGUID_PLAYER, score.first)))
|
||||
{
|
||||
TC_LOG_DEBUG("bg.arena", "Statistics match Type: %u for %s (GUID: %u, Team: %d, IP: %s): %s",
|
||||
GetArenaType(), player->GetName().c_str(), score.first, player->GetArenaTeamId(GetArenaType() == 5 ? 2 : GetArenaType() == 3),
|
||||
|
||||
@@ -408,7 +408,7 @@ void ArenaTeam::Roster(WorldSession* session)
|
||||
|
||||
for (MemberList::const_iterator itr = Members.begin(); itr != Members.end(); ++itr)
|
||||
{
|
||||
player = ObjectAccessor::FindPlayer(itr->Guid);
|
||||
player = ObjectAccessor::FindConnectedPlayer(itr->Guid);
|
||||
|
||||
data << uint64(itr->Guid); // guid
|
||||
data << uint8((player ? 1 : 0)); // online flag
|
||||
@@ -465,7 +465,7 @@ void ArenaTeam::NotifyStatsChanged()
|
||||
// This is called after a rated match ended
|
||||
// Updates arena team stats for every member of the team (not only the ones who participated!)
|
||||
for (MemberList::const_iterator itr = Members.begin(); itr != Members.end(); ++itr)
|
||||
if (Player* player = ObjectAccessor::FindPlayer(itr->Guid))
|
||||
if (Player* player = ObjectAccessor::FindConnectedPlayer(itr->Guid))
|
||||
SendStats(player->GetSession());
|
||||
}
|
||||
|
||||
@@ -512,7 +512,7 @@ void ArenaTeamMember::ModifyMatchmakerRating(int32 mod, uint32 /*slot*/)
|
||||
void ArenaTeam::BroadcastPacket(WorldPacket* packet)
|
||||
{
|
||||
for (MemberList::const_iterator itr = Members.begin(); itr != Members.end(); ++itr)
|
||||
if (Player* player = ObjectAccessor::FindPlayer(itr->Guid))
|
||||
if (Player* player = ObjectAccessor::FindConnectedPlayer(itr->Guid))
|
||||
player->GetSession()->SendPacket(packet);
|
||||
}
|
||||
|
||||
@@ -611,7 +611,7 @@ uint32 ArenaTeam::GetAverageMMR(Group* group) const
|
||||
for (MemberList::const_iterator itr = Members.begin(); itr != Members.end(); ++itr)
|
||||
{
|
||||
// Skip if player is not online
|
||||
if (!ObjectAccessor::FindPlayer(itr->Guid))
|
||||
if (!ObjectAccessor::FindConnectedPlayer(itr->Guid))
|
||||
continue;
|
||||
|
||||
// Skip if player is not a member of group
|
||||
@@ -699,7 +699,7 @@ void ArenaTeam::FinishGame(int32 mod)
|
||||
|
||||
// Check if rating related achivements are met
|
||||
for (MemberList::iterator itr = Members.begin(); itr != Members.end(); ++itr)
|
||||
if (Player* member = ObjectAccessor::FindPlayer(itr->Guid))
|
||||
if (Player* member = ObjectAccessor::FindConnectedPlayer(itr->Guid))
|
||||
member->UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_TEAM_RATING, Stats.Rating, Type);
|
||||
}
|
||||
|
||||
|
||||
@@ -598,6 +598,7 @@ Player* Battleground::_GetPlayer(ObjectGuid guid, bool offlineRemove, char const
|
||||
Player* player = NULL;
|
||||
if (!offlineRemove)
|
||||
{
|
||||
// should this be ObjectAccessor::FindConnectedPlayer() to return players teleporting ?
|
||||
player = ObjectAccessor::FindPlayer(guid);
|
||||
if (!player)
|
||||
TC_LOG_ERROR("bg.battleground", "Battleground::%s: player (%s) not found for BG (map: %u, instance id: %u)!",
|
||||
|
||||
@@ -362,7 +362,7 @@ void BattlegroundQueue::RemovePlayer(ObjectGuid guid, bool decreaseInvitedCount)
|
||||
if (ArenaTeam* at = sArenaTeamMgr->GetArenaTeamById(group->ArenaTeamId))
|
||||
{
|
||||
TC_LOG_DEBUG("bg.battleground", "UPDATING memberLost's personal arena rating for %s by opponents rating: %u", guid.ToString().c_str(), group->OpponentsTeamRating);
|
||||
if (Player* player = ObjectAccessor::FindPlayer(guid))
|
||||
if (Player* player = ObjectAccessor::FindConnectedPlayer(guid))
|
||||
at->MemberLost(player, group->OpponentsMatchmakerRating);
|
||||
else
|
||||
at->OfflineMemberLost(guid, group->OpponentsMatchmakerRating);
|
||||
@@ -385,7 +385,7 @@ void BattlegroundQueue::RemovePlayer(ObjectGuid guid, bool decreaseInvitedCount)
|
||||
{
|
||||
// remove next player, this is recursive
|
||||
// first send removal information
|
||||
if (Player* plr2 = ObjectAccessor::FindPlayer(group->Players.begin()->first))
|
||||
if (Player* plr2 = ObjectAccessor::FindConnectedPlayer(group->Players.begin()->first))
|
||||
{
|
||||
Battleground* bg = sBattlegroundMgr->GetBattlegroundTemplate(group->BgTypeId);
|
||||
BattlegroundQueueTypeId bgQueueTypeId = BattlegroundMgr::BGQueueTypeId(group->BgTypeId, group->ArenaType);
|
||||
@@ -450,7 +450,7 @@ bool BattlegroundQueue::InviteGroupToBG(GroupQueueInfo* ginfo, Battleground* bg,
|
||||
for (std::map<ObjectGuid, PlayerQueueInfo*>::iterator itr = ginfo->Players.begin(); itr != ginfo->Players.end(); ++itr)
|
||||
{
|
||||
// get the player
|
||||
Player* player = ObjectAccessor::FindPlayer(itr->first);
|
||||
Player* player = ObjectAccessor::FindConnectedPlayer(itr->first);
|
||||
// if offline, skip him, this should not happen - player is removed from queue when he logs out
|
||||
if (!player)
|
||||
continue;
|
||||
@@ -981,7 +981,7 @@ void BattlegroundQueue::BattlegroundQueueUpdate(uint32 /*diff*/, BattlegroundTyp
|
||||
|
||||
bool BGQueueInviteEvent::Execute(uint64 /*e_time*/, uint32 /*p_time*/)
|
||||
{
|
||||
Player* player = ObjectAccessor::FindPlayer(m_PlayerGuid);
|
||||
Player* player = ObjectAccessor::FindConnectedPlayer(m_PlayerGuid);
|
||||
// player logged off (we should do nothing, he is correctly removed from queue in another procedure)
|
||||
if (!player)
|
||||
return true;
|
||||
@@ -1024,7 +1024,7 @@ void BGQueueInviteEvent::Abort(uint64 /*e_time*/)
|
||||
*/
|
||||
bool BGQueueRemoveEvent::Execute(uint64 /*e_time*/, uint32 /*p_time*/)
|
||||
{
|
||||
Player* player = ObjectAccessor::FindPlayer(m_PlayerGuid);
|
||||
Player* player = ObjectAccessor::FindConnectedPlayer(m_PlayerGuid);
|
||||
if (!player)
|
||||
// player logged off (we should do nothing, he is correctly removed from queue in another procedure)
|
||||
return true;
|
||||
|
||||
@@ -350,7 +350,7 @@ CalendarEventStore CalendarMgr::GetPlayerEvents(ObjectGuid guid)
|
||||
if (CalendarEvent* event = GetEvent(itr->first)) // NULL check added as attempt to fix #11512
|
||||
events.insert(event);
|
||||
|
||||
if (Player* player = ObjectAccessor::FindPlayer(guid))
|
||||
if (Player* player = ObjectAccessor::FindConnectedPlayer(guid))
|
||||
for (CalendarEventStore::const_iterator itr = _events.begin(); itr != _events.end(); ++itr)
|
||||
if ((*itr)->GetGuildId() == player->GetGuildId())
|
||||
events.insert(*itr);
|
||||
@@ -424,7 +424,7 @@ void CalendarMgr::SendCalendarEventInvite(CalendarInvite const& invite)
|
||||
bool hasStatusTime = statusTime != 946684800; // 01/01/2000 00:00:00
|
||||
|
||||
ObjectGuid invitee = invite.GetInviteeGUID();
|
||||
Player* player = ObjectAccessor::FindPlayer(invitee);
|
||||
Player* player = ObjectAccessor::FindConnectedPlayer(invitee);
|
||||
|
||||
uint8 level = player ? player->getLevel() : Player::GetLevelFromDB(invitee);
|
||||
|
||||
@@ -441,7 +441,7 @@ void CalendarMgr::SendCalendarEventInvite(CalendarInvite const& invite)
|
||||
|
||||
if (!calendarEvent) // Pre-invite
|
||||
{
|
||||
if (Player* playerSender = ObjectAccessor::FindPlayer(invite.GetSenderGUID()))
|
||||
if (Player* playerSender = ObjectAccessor::FindConnectedPlayer(invite.GetSenderGUID()))
|
||||
playerSender->SendDirectMessage(&data);
|
||||
}
|
||||
else
|
||||
@@ -542,13 +542,13 @@ void CalendarMgr::SendCalendarEventInviteAlert(CalendarEvent const& calendarEven
|
||||
guild->BroadcastPacket(&data);
|
||||
}
|
||||
else
|
||||
if (Player* player = ObjectAccessor::FindPlayer(invite.GetInviteeGUID()))
|
||||
if (Player* player = ObjectAccessor::FindConnectedPlayer(invite.GetInviteeGUID()))
|
||||
player->SendDirectMessage(&data);
|
||||
}
|
||||
|
||||
void CalendarMgr::SendCalendarEvent(ObjectGuid guid, CalendarEvent const& calendarEvent, CalendarSendEventType sendType)
|
||||
{
|
||||
Player* player = ObjectAccessor::FindPlayer(guid);
|
||||
Player* player = ObjectAccessor::FindConnectedPlayer(guid);
|
||||
if (!player)
|
||||
return;
|
||||
|
||||
@@ -596,7 +596,7 @@ void CalendarMgr::SendCalendarEvent(ObjectGuid guid, CalendarEvent const& calend
|
||||
|
||||
void CalendarMgr::SendCalendarEventInviteRemoveAlert(ObjectGuid guid, CalendarEvent const& calendarEvent, CalendarInviteStatus status)
|
||||
{
|
||||
if (Player* player = ObjectAccessor::FindPlayer(guid))
|
||||
if (Player* player = ObjectAccessor::FindConnectedPlayer(guid))
|
||||
{
|
||||
WorldPacket data(SMSG_CALENDAR_EVENT_INVITE_REMOVED_ALERT, 8 + 4 + 4 + 1);
|
||||
data << uint64(calendarEvent.GetEventId());
|
||||
@@ -610,7 +610,7 @@ void CalendarMgr::SendCalendarEventInviteRemoveAlert(ObjectGuid guid, CalendarEv
|
||||
|
||||
void CalendarMgr::SendCalendarClearPendingAction(ObjectGuid guid)
|
||||
{
|
||||
if (Player* player = ObjectAccessor::FindPlayer(guid))
|
||||
if (Player* player = ObjectAccessor::FindConnectedPlayer(guid))
|
||||
{
|
||||
WorldPacket data(SMSG_CALENDAR_CLEAR_PENDING_ACTION, 0);
|
||||
player->SendDirectMessage(&data);
|
||||
@@ -619,7 +619,7 @@ void CalendarMgr::SendCalendarClearPendingAction(ObjectGuid guid)
|
||||
|
||||
void CalendarMgr::SendCalendarCommandResult(ObjectGuid guid, CalendarError err, char const* param /*= NULL*/)
|
||||
{
|
||||
if (Player* player = ObjectAccessor::FindPlayer(guid))
|
||||
if (Player* player = ObjectAccessor::FindConnectedPlayer(guid))
|
||||
{
|
||||
WorldPacket data(SMSG_CALENDAR_COMMAND_RESULT, 0);
|
||||
data << uint32(0);
|
||||
@@ -652,7 +652,7 @@ void CalendarMgr::SendPacketToAllEventRelatives(WorldPacket& packet, CalendarEve
|
||||
// Send packet to all invitees if event is non-guild, in other case only to non-guild invitees (packet was broadcasted for them)
|
||||
CalendarInviteStore invites = _invites[calendarEvent.GetEventId()];
|
||||
for (CalendarInviteStore::iterator itr = invites.begin(); itr != invites.end(); ++itr)
|
||||
if (Player* player = ObjectAccessor::FindPlayer((*itr)->GetInviteeGUID()))
|
||||
if (Player* player = ObjectAccessor::FindConnectedPlayer((*itr)->GetInviteeGUID()))
|
||||
if (!calendarEvent.IsGuildEvent() || (calendarEvent.IsGuildEvent() && player->GetGuildId() != calendarEvent.GetGuildId()))
|
||||
player->SendDirectMessage(&packet);
|
||||
}
|
||||
@@ -296,7 +296,7 @@ void Channel::KickOrBan(Player const* player, std::string const& badname, bool b
|
||||
return;
|
||||
}
|
||||
|
||||
Player* bad = sObjectAccessor->FindPlayerByName(badname);
|
||||
Player* bad = sObjectAccessor->FindConnectedPlayerByName(badname);
|
||||
ObjectGuid victim = bad ? bad->GetGUID() : ObjectGuid::Empty;
|
||||
if (!victim || !IsOn(victim))
|
||||
{
|
||||
@@ -366,7 +366,7 @@ void Channel::UnBan(Player const* player, std::string const& badname)
|
||||
return;
|
||||
}
|
||||
|
||||
Player* bad = sObjectAccessor->FindPlayerByName(badname);
|
||||
Player* bad = sObjectAccessor->FindConnectedPlayerByName(badname);
|
||||
ObjectGuid victim = bad ? bad->GetGUID() : ObjectGuid::Empty;
|
||||
|
||||
if (!victim || !IsBanned(victim))
|
||||
@@ -439,7 +439,7 @@ void Channel::SetMode(Player const* player, std::string const& p2n, bool mod, bo
|
||||
if (guid == _ownerGUID && std::string(p2n) == player->GetName() && mod)
|
||||
return;
|
||||
|
||||
Player* newp = sObjectAccessor->FindPlayerByName(p2n);
|
||||
Player* newp = sObjectAccessor->FindConnectedPlayerByName(p2n);
|
||||
ObjectGuid victim = newp ? newp->GetGUID() : ObjectGuid::Empty;
|
||||
|
||||
if (!victim || !IsOn(victim) ||
|
||||
@@ -487,7 +487,7 @@ void Channel::SetOwner(Player const* player, std::string const& newname)
|
||||
return;
|
||||
}
|
||||
|
||||
Player* newp = sObjectAccessor->FindPlayerByName(newname);
|
||||
Player* newp = sObjectAccessor->FindConnectedPlayerByName(newname);
|
||||
ObjectGuid victim = newp ? newp->GetGUID() : ObjectGuid::Empty;
|
||||
|
||||
if (!victim || !IsOn(victim) ||
|
||||
@@ -543,7 +543,7 @@ void Channel::List(Player const* player)
|
||||
uint32 count = 0;
|
||||
for (PlayerContainer::const_iterator i = playersStore.begin(); i != playersStore.end(); ++i)
|
||||
{
|
||||
Player* member = ObjectAccessor::FindPlayer(i->first);
|
||||
Player* member = ObjectAccessor::FindConnectedPlayer(i->first);
|
||||
|
||||
// PLAYER can't see MODERATOR, GAME MASTER, ADMINISTRATOR characters
|
||||
// MODERATOR, GAME MASTER, ADMINISTRATOR can see all
|
||||
@@ -621,7 +621,7 @@ void Channel::Say(ObjectGuid guid, std::string const& what, uint32 lang)
|
||||
}
|
||||
|
||||
WorldPacket data;
|
||||
if (Player* player = ObjectAccessor::FindPlayer(guid))
|
||||
if (Player* player = ObjectAccessor::FindConnectedPlayer(guid))
|
||||
ChatHandler::BuildChatPacket(data, CHAT_MSG_CHANNEL, Language(lang), player, player, what, 0, _name);
|
||||
else
|
||||
ChatHandler::BuildChatPacket(data, CHAT_MSG_CHANNEL, Language(lang), guid, guid, what, 0, "", "", 0, false, _name);
|
||||
@@ -641,7 +641,7 @@ void Channel::Invite(Player const* player, std::string const& newname)
|
||||
return;
|
||||
}
|
||||
|
||||
Player* newp = sObjectAccessor->FindPlayerByName(newname);
|
||||
Player* newp = sObjectAccessor->FindConnectedPlayerByName(newname);
|
||||
if (!newp || !newp->isGMVisible())
|
||||
{
|
||||
WorldPacket data;
|
||||
@@ -723,7 +723,7 @@ void Channel::SetOwner(ObjectGuid guid, bool exclaim)
|
||||
void Channel::SendToAll(WorldPacket* data, ObjectGuid guid)
|
||||
{
|
||||
for (PlayerContainer::const_iterator i = playersStore.begin(); i != playersStore.end(); ++i)
|
||||
if (Player* player = ObjectAccessor::FindPlayer(i->first))
|
||||
if (Player* player = ObjectAccessor::FindConnectedPlayer(i->first))
|
||||
if (!guid || !player->GetSocial()->HasIgnore(guid.GetCounter()))
|
||||
player->GetSession()->SendPacket(data);
|
||||
}
|
||||
@@ -732,13 +732,13 @@ void Channel::SendToAllButOne(WorldPacket* data, ObjectGuid who)
|
||||
{
|
||||
for (PlayerContainer::const_iterator i = playersStore.begin(); i != playersStore.end(); ++i)
|
||||
if (i->first != who)
|
||||
if (Player* player = ObjectAccessor::FindPlayer(i->first))
|
||||
if (Player* player = ObjectAccessor::FindConnectedPlayer(i->first))
|
||||
player->GetSession()->SendPacket(data);
|
||||
}
|
||||
|
||||
void Channel::SendToOne(WorldPacket* data, ObjectGuid who)
|
||||
{
|
||||
if (Player* player = ObjectAccessor::FindPlayer(who))
|
||||
if (Player* player = ObjectAccessor::FindConnectedPlayer(who))
|
||||
player->GetSession()->SendPacket(data);
|
||||
}
|
||||
|
||||
|
||||
@@ -765,7 +765,7 @@ Player* ChatHandler::getSelectedPlayer()
|
||||
if (!selected)
|
||||
return m_session->GetPlayer();
|
||||
|
||||
return ObjectAccessor::FindPlayer(selected);
|
||||
return ObjectAccessor::FindConnectedPlayer(selected);
|
||||
}
|
||||
|
||||
Unit* ChatHandler::getSelectedUnit()
|
||||
@@ -810,7 +810,7 @@ Player* ChatHandler::getSelectedPlayerOrSelf()
|
||||
return m_session->GetPlayer();
|
||||
|
||||
// first try with selected target
|
||||
Player* targetPlayer = ObjectAccessor::FindPlayer(selected);
|
||||
Player* targetPlayer = ObjectAccessor::FindConnectedPlayer(selected);
|
||||
// if the target is not a player, then return self
|
||||
if (!targetPlayer)
|
||||
targetPlayer = m_session->GetPlayer();
|
||||
|
||||
@@ -1360,7 +1360,7 @@ void LFGMgr::FinishDungeon(ObjectGuid gguid, const uint32 dungeonId)
|
||||
}
|
||||
|
||||
Player* player = ObjectAccessor::FindPlayer(guid);
|
||||
if (!player || !player->IsInWorld())
|
||||
if (!player)
|
||||
{
|
||||
TC_LOG_DEBUG("lfg.dungeon.finish", "Group: %s, Player: %s not found in world", gguid.ToString().c_str(), guid.ToString().c_str());
|
||||
continue;
|
||||
@@ -1773,50 +1773,56 @@ ObjectGuid LFGMgr::GetLeader(ObjectGuid guid)
|
||||
|
||||
bool LFGMgr::HasIgnore(ObjectGuid guid1, ObjectGuid guid2)
|
||||
{
|
||||
Player* plr1 = ObjectAccessor::FindPlayer(guid1);
|
||||
Player* plr2 = ObjectAccessor::FindPlayer(guid2);
|
||||
Player* plr1 = ObjectAccessor::FindConnectedPlayer(guid1);
|
||||
Player* plr2 = ObjectAccessor::FindConnectedPlayer(guid2);
|
||||
return plr1 && plr2 && (plr1->GetSocial()->HasIgnore(guid2.GetCounter()) || plr2->GetSocial()->HasIgnore(guid1.GetCounter()));
|
||||
}
|
||||
|
||||
void LFGMgr::SendLfgRoleChosen(ObjectGuid guid, ObjectGuid pguid, uint8 roles)
|
||||
{
|
||||
if (Player* player = ObjectAccessor::FindPlayer(guid))
|
||||
if (Player* player = ObjectAccessor::FindConnectedPlayer(guid))
|
||||
player->GetSession()->SendLfgRoleChosen(pguid, roles);
|
||||
}
|
||||
|
||||
void LFGMgr::SendLfgRoleCheckUpdate(ObjectGuid guid, LfgRoleCheck const& roleCheck)
|
||||
{
|
||||
if (Player* player = ObjectAccessor::FindPlayer(guid))
|
||||
if (Player* player = ObjectAccessor::FindConnectedPlayer(guid))
|
||||
player->GetSession()->SendLfgRoleCheckUpdate(roleCheck);
|
||||
}
|
||||
|
||||
void LFGMgr::SendLfgUpdateStatus(ObjectGuid guid, LfgUpdateData const& data, bool party)
|
||||
{
|
||||
if (Player* player = ObjectAccessor::FindPlayer(guid))
|
||||
if (Player* player = ObjectAccessor::FindConnectedPlayer(guid))
|
||||
player->GetSession()->SendLfgUpdateStatus(data, party);
|
||||
}
|
||||
|
||||
void LFGMgr::SendLfgUpdateParty(ObjectGuid guid, LfgUpdateData const& data)
|
||||
{
|
||||
if (Player* player = ObjectAccessor::FindConnectedPlayer(guid))
|
||||
player->GetSession()->SendLfgUpdateParty(data);
|
||||
}
|
||||
|
||||
void LFGMgr::SendLfgJoinResult(ObjectGuid guid, LfgJoinResultData const& data)
|
||||
{
|
||||
if (Player* player = ObjectAccessor::FindPlayer(guid))
|
||||
if (Player* player = ObjectAccessor::FindConnectedPlayer(guid))
|
||||
player->GetSession()->SendLfgJoinResult(data);
|
||||
}
|
||||
|
||||
void LFGMgr::SendLfgBootProposalUpdate(ObjectGuid guid, LfgPlayerBoot const& boot)
|
||||
{
|
||||
if (Player* player = ObjectAccessor::FindPlayer(guid))
|
||||
if (Player* player = ObjectAccessor::FindConnectedPlayer(guid))
|
||||
player->GetSession()->SendLfgBootProposalUpdate(boot);
|
||||
}
|
||||
|
||||
void LFGMgr::SendLfgUpdateProposal(ObjectGuid guid, LfgProposal const& proposal)
|
||||
{
|
||||
if (Player* player = ObjectAccessor::FindPlayer(guid))
|
||||
if (Player* player = ObjectAccessor::FindConnectedPlayer(guid))
|
||||
player->GetSession()->SendLfgUpdateProposal(proposal);
|
||||
}
|
||||
|
||||
void LFGMgr::SendLfgQueueStatus(ObjectGuid guid, LfgQueueStatusData const& data)
|
||||
{
|
||||
if (Player* player = ObjectAccessor::FindPlayer(guid))
|
||||
if (Player* player = ObjectAccessor::FindConnectedPlayer(guid))
|
||||
player->GetSession()->SendLfgQueueStatus(data);
|
||||
}
|
||||
|
||||
|
||||
@@ -184,7 +184,7 @@ void LFGGroupScript::OnRemoveMember(Group* group, ObjectGuid guid, RemoveMethod
|
||||
}
|
||||
|
||||
if (isLFG && state != LFG_STATE_FINISHED_DUNGEON) // Need more players to finish the dungeon
|
||||
if (Player* leader = ObjectAccessor::FindPlayer(sLFGMgr->GetLeader(gguid)))
|
||||
if (Player* leader = ObjectAccessor::FindConnectedPlayer(sLFGMgr->GetLeader(gguid)))
|
||||
leader->GetSession()->SendLfgOfferContinue(sLFGMgr->GetDungeon(gguid, false));
|
||||
}
|
||||
|
||||
|
||||
@@ -875,7 +875,7 @@ Player* Creature::GetLootRecipient() const
|
||||
{
|
||||
if (!m_lootRecipient)
|
||||
return NULL;
|
||||
return ObjectAccessor::FindPlayer(m_lootRecipient);
|
||||
return ObjectAccessor::FindConnectedPlayer(m_lootRecipient);
|
||||
}
|
||||
|
||||
Group* Creature::GetLootRecipientGroup() const
|
||||
@@ -1887,6 +1887,9 @@ void Creature::CallForHelp(float radius)
|
||||
|
||||
bool Creature::CanAssistTo(const Unit* u, const Unit* enemy, bool checkfaction /*= true*/) const
|
||||
{
|
||||
if (IsInEvadeMode())
|
||||
return false;
|
||||
|
||||
// is it true?
|
||||
if (!HasReactState(REACT_AGGRESSIVE))
|
||||
return false;
|
||||
|
||||
@@ -2185,7 +2185,7 @@ Player* GameObject::GetLootRecipient() const
|
||||
{
|
||||
if (!m_lootRecipient)
|
||||
return NULL;
|
||||
return ObjectAccessor::FindPlayer(m_lootRecipient);
|
||||
return ObjectAccessor::FindConnectedPlayer(m_lootRecipient);
|
||||
}
|
||||
|
||||
Group* GameObject::GetLootRecipientGroup() const
|
||||
|
||||
@@ -4834,11 +4834,8 @@ void Player::DeleteFromDB(ObjectGuid playerguid, uint32 accountId, bool updateRe
|
||||
{
|
||||
if (Player* pFriend = ObjectAccessor::FindPlayer(ObjectGuid(HIGHGUID_PLAYER, 0, (*resultFriends)[0].GetUInt32())))
|
||||
{
|
||||
if (pFriend->IsInWorld())
|
||||
{
|
||||
pFriend->GetSocial()->RemoveFromSocialList(guid, false);
|
||||
sSocialMgr->SendFriendStatus(pFriend, FRIEND_REMOVED, guid, false);
|
||||
}
|
||||
pFriend->GetSocial()->RemoveFromSocialList(guid, false);
|
||||
sSocialMgr->SendFriendStatus(pFriend, FRIEND_REMOVED, guid, false);
|
||||
}
|
||||
} while (resultFriends->NextRow());
|
||||
}
|
||||
@@ -21403,7 +21400,7 @@ void Player::RemovePetitionsAndSigns(ObjectGuid guid, uint32 type)
|
||||
ObjectGuid petitionguid = ObjectGuid(HIGHGUID_ITEM, fields[1].GetUInt32());
|
||||
|
||||
// send update if charter owner in game
|
||||
Player* owner = ObjectAccessor::FindPlayer(ownerguid);
|
||||
Player* owner = ObjectAccessor::FindConnectedPlayer(ownerguid);
|
||||
if (owner)
|
||||
owner->GetSession()->SendPetitionQueryOpcode(petitionguid);
|
||||
} while (result->NextRow());
|
||||
|
||||
@@ -295,7 +295,7 @@ void SocialMgr::BroadcastToFriendListers(Player* player, WorldPacket* packet)
|
||||
if (itr2 != itr->second.m_playerSocialMap.end() && (itr2->second.Flags & SOCIAL_FLAG_FRIEND))
|
||||
{
|
||||
Player* target = ObjectAccessor::FindPlayer(ObjectGuid(HIGHGUID_PLAYER, 0, itr->first));
|
||||
if (!target || !target->IsInWorld())
|
||||
if (!target)
|
||||
continue;
|
||||
|
||||
WorldSession* session = target->GetSession();
|
||||
|
||||
@@ -212,6 +212,11 @@ Player* ObjectAccessor::FindPlayer(ObjectGuid guid)
|
||||
return GetObjectInWorld(guid, (Player*)NULL);
|
||||
}
|
||||
|
||||
Player* ObjectAccessor::FindConnectedPlayer(ObjectGuid guid)
|
||||
{
|
||||
return HashMapHolder<Player>::Find(guid);
|
||||
}
|
||||
|
||||
Unit* ObjectAccessor::FindUnit(ObjectGuid guid)
|
||||
{
|
||||
return GetObjectInWorld(guid, (Unit*)NULL);
|
||||
@@ -237,6 +242,24 @@ Player* ObjectAccessor::FindPlayerByName(std::string const& name)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
Player* ObjectAccessor::FindConnectedPlayerByName(std::string const& name)
|
||||
{
|
||||
boost::shared_lock<boost::shared_mutex> lock(*HashMapHolder<Player>::GetLock());
|
||||
|
||||
std::string nameStr = name;
|
||||
std::transform(nameStr.begin(), nameStr.end(), nameStr.begin(), ::tolower);
|
||||
HashMapHolder<Player>::MapType const& m = GetPlayers();
|
||||
for (HashMapHolder<Player>::MapType::const_iterator iter = m.begin(); iter != m.end(); ++iter)
|
||||
{
|
||||
std::string currentName = iter->second->GetName();
|
||||
std::transform(currentName.begin(), currentName.end(), currentName.begin(), ::tolower);
|
||||
if (nameStr.compare(currentName) == 0)
|
||||
return iter->second;
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void ObjectAccessor::SaveAllPlayers()
|
||||
{
|
||||
boost::shared_lock<boost::shared_mutex> lock(*HashMapHolder<Player>::GetLock());
|
||||
|
||||
@@ -170,6 +170,10 @@ class ObjectAccessor
|
||||
static Unit* FindUnit(ObjectGuid);
|
||||
static Player* FindPlayerByName(std::string const& name);
|
||||
|
||||
// this returns Player even if he is not in world, for example teleporting
|
||||
static Player* FindConnectedPlayer(ObjectGuid);
|
||||
static Player* FindConnectedPlayerByName(std::string const& name);
|
||||
|
||||
// when using this, you must use the hashmapholder's lock
|
||||
static HashMapHolder<Player>::MapType const& GetPlayers()
|
||||
{
|
||||
|
||||
@@ -2195,7 +2195,7 @@ ObjectGuid ObjectMgr::GetPlayerGUIDByName(std::string const& name) const
|
||||
bool ObjectMgr::GetPlayerNameByGUID(ObjectGuid guid, std::string& name) const
|
||||
{
|
||||
// prevent DB access for online player
|
||||
if (Player* player = ObjectAccessor::FindPlayer(guid))
|
||||
if (Player* player = ObjectAccessor::FindConnectedPlayer(guid))
|
||||
{
|
||||
name = player->GetName();
|
||||
return true;
|
||||
@@ -2219,7 +2219,7 @@ bool ObjectMgr::GetPlayerNameByGUID(ObjectGuid guid, std::string& name) const
|
||||
uint32 ObjectMgr::GetPlayerTeamByGUID(ObjectGuid guid) const
|
||||
{
|
||||
// prevent DB access for online player
|
||||
if (Player* player = ObjectAccessor::FindPlayer(guid))
|
||||
if (Player* player = ObjectAccessor::FindConnectedPlayer(guid))
|
||||
{
|
||||
return Player::TeamForRace(player->getRace());
|
||||
}
|
||||
@@ -2242,7 +2242,7 @@ uint32 ObjectMgr::GetPlayerTeamByGUID(ObjectGuid guid) const
|
||||
uint32 ObjectMgr::GetPlayerAccountIdByGUID(ObjectGuid guid) const
|
||||
{
|
||||
// prevent DB access for online player
|
||||
if (Player* player = ObjectAccessor::FindPlayer(guid))
|
||||
if (Player* player = ObjectAccessor::FindConnectedPlayer(guid))
|
||||
{
|
||||
return player->GetSession()->GetAccountId();
|
||||
}
|
||||
@@ -5581,7 +5581,7 @@ void ObjectMgr::ReturnOrDeleteOldMails(bool serverUp)
|
||||
|
||||
Player* player = NULL;
|
||||
if (serverUp)
|
||||
player = ObjectAccessor::FindPlayer(ObjectGuid(HIGHGUID_PLAYER, m->receiver));
|
||||
player = ObjectAccessor::FindConnectedPlayer(ObjectGuid(HIGHGUID_PLAYER, m->receiver));
|
||||
|
||||
if (player && player->m_mailsLoaded)
|
||||
{ // this code will run very improbably (the time is between 4 and 5 am, in game is online a player, who has old mail
|
||||
|
||||
@@ -73,7 +73,7 @@ void VisibleNotifier::SendToSelf()
|
||||
if (it->IsPlayer())
|
||||
{
|
||||
Player* player = ObjectAccessor::FindPlayer(*it);
|
||||
if (player && player->IsInWorld() && !player->isNeedNotify(NOTIFY_VISIBILITY_CHANGED))
|
||||
if (player && !player->isNeedNotify(NOTIFY_VISIBILITY_CHANGED))
|
||||
player->UpdateVisibilityOf(&i_player);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -526,7 +526,7 @@ bool Group::RemoveMember(ObjectGuid guid, const RemoveMethod& method /*= GROUP_R
|
||||
// remove member and change leader (if need) only if strong more 2 members _before_ member remove (BG/BF allow 1 member group)
|
||||
if (GetMembersCount() > ((isBGGroup() || isLFGGroup() || isBFGroup()) ? 1u : 2u))
|
||||
{
|
||||
Player* player = ObjectAccessor::FindPlayer(guid);
|
||||
Player* player = ObjectAccessor::FindConnectedPlayer(guid);
|
||||
if (player)
|
||||
{
|
||||
// Battleground group handling
|
||||
@@ -610,7 +610,7 @@ bool Group::RemoveMember(ObjectGuid guid, const RemoveMethod& method /*= GROUP_R
|
||||
{
|
||||
for (member_witerator itr = m_memberSlots.begin(); itr != m_memberSlots.end(); ++itr)
|
||||
{
|
||||
if (ObjectAccessor::FindPlayer(itr->guid))
|
||||
if (ObjectAccessor::FindConnectedPlayer(itr->guid))
|
||||
{
|
||||
ChangeLeader(itr->guid);
|
||||
break;
|
||||
@@ -622,7 +622,7 @@ bool Group::RemoveMember(ObjectGuid guid, const RemoveMethod& method /*= GROUP_R
|
||||
|
||||
if (isLFGGroup() && GetMembersCount() == 1)
|
||||
{
|
||||
Player* leader = ObjectAccessor::FindPlayer(GetLeaderGUID());
|
||||
Player* leader = ObjectAccessor::FindConnectedPlayer(GetLeaderGUID());
|
||||
uint32 mapId = sLFGMgr->GetDungeonMapId(GetGUID());
|
||||
if (!mapId || !leader || (leader->IsAlive() && leader->GetMapId() != mapId))
|
||||
{
|
||||
@@ -651,7 +651,7 @@ void Group::ChangeLeader(ObjectGuid newLeaderGuid)
|
||||
if (slot == m_memberSlots.end())
|
||||
return;
|
||||
|
||||
Player* newLeader = ObjectAccessor::FindPlayer(slot->guid);
|
||||
Player* newLeader = ObjectAccessor::FindConnectedPlayer(slot->guid);
|
||||
|
||||
// Don't allow switching leader to offline players
|
||||
if (!newLeader)
|
||||
@@ -699,7 +699,7 @@ void Group::ChangeLeader(ObjectGuid newLeaderGuid)
|
||||
CharacterDatabase.CommitTransaction(trans);
|
||||
}
|
||||
|
||||
if (Player* oldLeader = ObjectAccessor::FindPlayer(m_leaderGuid))
|
||||
if (Player* oldLeader = ObjectAccessor::FindConnectedPlayer(m_leaderGuid))
|
||||
oldLeader->RemoveFlag(PLAYER_FLAGS, PLAYER_FLAGS_GROUP_LEADER);
|
||||
|
||||
newLeader->SetFlag(PLAYER_FLAGS, PLAYER_FLAGS_GROUP_LEADER);
|
||||
@@ -719,7 +719,7 @@ void Group::Disband(bool hideDestroy /* = false */)
|
||||
Player* player;
|
||||
for (member_citerator citr = m_memberSlots.begin(); citr != m_memberSlots.end(); ++citr)
|
||||
{
|
||||
player = ObjectAccessor::FindPlayer(citr->guid);
|
||||
player = ObjectAccessor::FindConnectedPlayer(citr->guid);
|
||||
if (!player)
|
||||
continue;
|
||||
|
||||
@@ -818,7 +818,7 @@ void Group::SendLootStartRoll(uint32 countDown, uint32 mapid, const Roll &r)
|
||||
|
||||
for (Roll::PlayerVote::const_iterator itr=r.playerVote.begin(); itr != r.playerVote.end(); ++itr)
|
||||
{
|
||||
Player* p = ObjectAccessor::FindPlayer(itr->first);
|
||||
Player* p = ObjectAccessor::FindConnectedPlayer(itr->first);
|
||||
if (!p || !p->GetSession())
|
||||
continue;
|
||||
|
||||
@@ -865,7 +865,7 @@ void Group::SendLootRoll(ObjectGuid sourceGuid, ObjectGuid targetGuid, uint8 rol
|
||||
|
||||
for (Roll::PlayerVote::const_iterator itr = roll.playerVote.begin(); itr != roll.playerVote.end(); ++itr)
|
||||
{
|
||||
Player* p = ObjectAccessor::FindPlayer(itr->first);
|
||||
Player* p = ObjectAccessor::FindConnectedPlayer(itr->first);
|
||||
if (!p || !p->GetSession())
|
||||
continue;
|
||||
|
||||
@@ -888,7 +888,7 @@ void Group::SendLootRollWon(ObjectGuid sourceGuid, ObjectGuid targetGuid, uint8
|
||||
|
||||
for (Roll::PlayerVote::const_iterator itr = roll.playerVote.begin(); itr != roll.playerVote.end(); ++itr)
|
||||
{
|
||||
Player* p = ObjectAccessor::FindPlayer(itr->first);
|
||||
Player* p = ObjectAccessor::FindConnectedPlayer(itr->first);
|
||||
if (!p || !p->GetSession())
|
||||
continue;
|
||||
|
||||
@@ -908,7 +908,7 @@ void Group::SendLootAllPassed(Roll const& roll)
|
||||
|
||||
for (Roll::PlayerVote::const_iterator itr = roll.playerVote.begin(); itr != roll.playerVote.end(); ++itr)
|
||||
{
|
||||
Player* player = ObjectAccessor::FindPlayer(itr->first);
|
||||
Player* player = ObjectAccessor::FindConnectedPlayer(itr->first);
|
||||
if (!player || !player->GetSession())
|
||||
continue;
|
||||
|
||||
@@ -1000,7 +1000,7 @@ void Group::GroupLoot(Loot* loot, WorldObject* pLootedObject)
|
||||
{
|
||||
for (Roll::PlayerVote::const_iterator itr=r->playerVote.begin(); itr != r->playerVote.end(); ++itr)
|
||||
{
|
||||
Player* p = ObjectAccessor::FindPlayer(itr->first);
|
||||
Player* p = ObjectAccessor::FindConnectedPlayer(itr->first);
|
||||
if (!p || !p->GetSession())
|
||||
continue;
|
||||
|
||||
@@ -1143,7 +1143,7 @@ void Group::NeedBeforeGreed(Loot* loot, WorldObject* lootedObject)
|
||||
//Broadcast Pass and Send Rollstart
|
||||
for (Roll::PlayerVote::const_iterator itr = r->playerVote.begin(); itr != r->playerVote.end(); ++itr)
|
||||
{
|
||||
Player* p = ObjectAccessor::FindPlayer(itr->first);
|
||||
Player* p = ObjectAccessor::FindConnectedPlayer(itr->first);
|
||||
if (!p || !p->GetSession())
|
||||
continue;
|
||||
|
||||
@@ -1206,7 +1206,7 @@ void Group::NeedBeforeGreed(Loot* loot, WorldObject* lootedObject)
|
||||
//Broadcast Pass and Send Rollstart
|
||||
for (Roll::PlayerVote::const_iterator itr = r->playerVote.begin(); itr != r->playerVote.end(); ++itr)
|
||||
{
|
||||
Player* p = ObjectAccessor::FindPlayer(itr->first);
|
||||
Player* p = ObjectAccessor::FindConnectedPlayer(itr->first);
|
||||
if (!p || !p->GetSession())
|
||||
continue;
|
||||
|
||||
@@ -1373,7 +1373,7 @@ void Group::CountTheRoll(Rolls::iterator rollI)
|
||||
}
|
||||
}
|
||||
SendLootRollWon(ObjectGuid::Empty, maxguid, maxresul, ROLL_NEED, *roll);
|
||||
player = ObjectAccessor::FindPlayer(maxguid);
|
||||
player = ObjectAccessor::FindConnectedPlayer(maxguid);
|
||||
|
||||
if (player && player->GetSession())
|
||||
{
|
||||
@@ -1422,7 +1422,7 @@ void Group::CountTheRoll(Rolls::iterator rollI)
|
||||
}
|
||||
}
|
||||
SendLootRollWon(ObjectGuid::Empty, maxguid, maxresul, rollvote, *roll);
|
||||
player = ObjectAccessor::FindPlayer(maxguid);
|
||||
player = ObjectAccessor::FindConnectedPlayer(maxguid);
|
||||
|
||||
if (player && player->GetSession())
|
||||
{
|
||||
@@ -1539,7 +1539,7 @@ void Group::SendUpdate()
|
||||
|
||||
void Group::SendUpdateToPlayer(ObjectGuid playerGUID, MemberSlot* slot)
|
||||
{
|
||||
Player* player = ObjectAccessor::FindPlayer(playerGUID);
|
||||
Player* player = ObjectAccessor::FindConnectedPlayer(playerGUID);
|
||||
|
||||
if (!player || !player->GetSession() || player->GetGroup() != this)
|
||||
return;
|
||||
@@ -1575,7 +1575,7 @@ void Group::SendUpdateToPlayer(ObjectGuid playerGUID, MemberSlot* slot)
|
||||
if (slot->guid == citr->guid)
|
||||
continue;
|
||||
|
||||
Player* member = ObjectAccessor::FindPlayer(citr->guid);
|
||||
Player* member = ObjectAccessor::FindConnectedPlayer(citr->guid);
|
||||
|
||||
uint8 onlineState = (member && !member->GetSession()->PlayerLogout()) ? MEMBER_STATUS_ONLINE : MEMBER_STATUS_OFFLINE;
|
||||
onlineState = onlineState | ((isBGGroup() || isBFGroup()) ? MEMBER_STATUS_PVP : 0);
|
||||
@@ -1667,7 +1667,7 @@ void Group::OfflineReadyCheck()
|
||||
{
|
||||
for (member_citerator citr = m_memberSlots.begin(); citr != m_memberSlots.end(); ++citr)
|
||||
{
|
||||
Player* player = ObjectAccessor::FindPlayer(citr->guid);
|
||||
Player* player = ObjectAccessor::FindConnectedPlayer(citr->guid);
|
||||
if (!player || !player->GetSession())
|
||||
{
|
||||
WorldPacket data(MSG_RAID_READY_CHECK_CONFIRM, 9);
|
||||
@@ -1750,7 +1750,7 @@ void Group::ChangeMembersGroup(ObjectGuid guid, uint8 group)
|
||||
}
|
||||
|
||||
// In case the moved player is online, update the player object with the new sub group references
|
||||
if (Player* player = ObjectAccessor::FindPlayer(guid))
|
||||
if (Player* player = ObjectAccessor::FindConnectedPlayer(guid))
|
||||
{
|
||||
if (player->GetGroup() == this)
|
||||
player->GetGroupRef().setSubGroup(group);
|
||||
@@ -2175,7 +2175,7 @@ void Group::BroadcastGroupUpdate(void)
|
||||
for (member_citerator citr = m_memberSlots.begin(); citr != m_memberSlots.end(); ++citr)
|
||||
{
|
||||
Player* pp = ObjectAccessor::FindPlayer(citr->guid);
|
||||
if (pp && pp->IsInWorld())
|
||||
if (pp)
|
||||
{
|
||||
pp->ForceValuesUpdateAtIndex(UNIT_FIELD_BYTES_2);
|
||||
pp->ForceValuesUpdateAtIndex(UNIT_FIELD_FACTIONTEMPLATE);
|
||||
|
||||
@@ -2616,7 +2616,7 @@ void Guild::BroadcastToGuild(WorldSession* session, bool officerOnly, std::strin
|
||||
WorldPacket data;
|
||||
ChatHandler::BuildChatPacket(data, officerOnly ? CHAT_MSG_OFFICER : CHAT_MSG_GUILD, Language(language), session->GetPlayer(), NULL, msg);
|
||||
for (Members::const_iterator itr = m_members.begin(); itr != m_members.end(); ++itr)
|
||||
if (Player* player = itr->second->FindPlayer())
|
||||
if (Player* player = itr->second->FindConnectedPlayer())
|
||||
if (player->GetSession() && _HasRankRight(player, officerOnly ? GR_RIGHT_OFFCHATLISTEN : GR_RIGHT_GCHATLISTEN) &&
|
||||
!player->GetSocial()->HasIgnore(session->GetPlayer()->GetGUIDLow()))
|
||||
player->GetSession()->SendPacket(&data);
|
||||
@@ -2642,7 +2642,7 @@ void Guild::BroadcastPacketToRank(WorldPacket* packet, uint8 rankId) const
|
||||
{
|
||||
for (Members::const_iterator itr = m_members.begin(); itr != m_members.end(); ++itr)
|
||||
if (itr->second->IsRank(rankId))
|
||||
if (Player* player = itr->second->FindPlayer())
|
||||
if (Player* player = itr->second->FindConnectedPlayer())
|
||||
player->GetSession()->SendPacket(packet);
|
||||
}
|
||||
|
||||
@@ -2697,7 +2697,7 @@ void Guild::MassInviteToEvent(WorldSession* session, uint32 minLevel, uint32 max
|
||||
// Members handling
|
||||
bool Guild::AddMember(ObjectGuid guid, uint8 rankId)
|
||||
{
|
||||
Player* player = ObjectAccessor::FindPlayer(guid);
|
||||
Player* player = ObjectAccessor::FindConnectedPlayer(guid);
|
||||
// Player cannot be in guild
|
||||
if (player)
|
||||
{
|
||||
@@ -2777,7 +2777,7 @@ bool Guild::AddMember(ObjectGuid guid, uint8 rankId)
|
||||
void Guild::DeleteMember(ObjectGuid guid, bool isDisbanding, bool isKicked, bool canDeleteGuild)
|
||||
{
|
||||
uint32 lowguid = guid.GetCounter();
|
||||
Player* player = ObjectAccessor::FindPlayer(guid);
|
||||
Player* player = ObjectAccessor::FindConnectedPlayer(guid);
|
||||
|
||||
// Guild master can be deleted when loading guild and guid doesn't exist in characters table
|
||||
// or when he is removed from guild by gm command
|
||||
|
||||
@@ -413,6 +413,7 @@ private:
|
||||
void ResetValues(bool weekly = false);
|
||||
|
||||
inline Player* FindPlayer() const { return ObjectAccessor::FindPlayer(m_guid); }
|
||||
inline Player* FindConnectedPlayer() const { return ObjectAccessor::FindConnectedPlayer(m_guid); }
|
||||
|
||||
private:
|
||||
uint32 m_guildId;
|
||||
@@ -855,7 +856,7 @@ public:
|
||||
void BroadcastWorker(Do& _do, Player* except = NULL)
|
||||
{
|
||||
for (Members::iterator itr = m_members.begin(); itr != m_members.end(); ++itr)
|
||||
if (Player* player = itr->second->FindPlayer())
|
||||
if (Player* player = itr->second->FindConnectedPlayer())
|
||||
if (player != except)
|
||||
_do(player);
|
||||
}
|
||||
|
||||
@@ -436,7 +436,7 @@ void WorldSession::HandleCalendarEventInvite(WorldPacket& recvData)
|
||||
|
||||
recvData >> eventId >> inviteId >> name >> isPreInvite >> isGuildEvent;
|
||||
|
||||
if (Player* player = sObjectAccessor->FindPlayerByName(name.c_str()))
|
||||
if (Player* player = sObjectAccessor->FindConnectedPlayerByName(name.c_str()))
|
||||
{
|
||||
// Invitee is online
|
||||
inviteeGuid = player->GetGUID();
|
||||
|
||||
@@ -326,7 +326,7 @@ void WorldSession::HandleMessagechatOpcode(WorldPacket& recvData)
|
||||
break;
|
||||
}
|
||||
|
||||
Player* receiver = sObjectAccessor->FindPlayerByName(to);
|
||||
Player* receiver = sObjectAccessor->FindConnectedPlayerByName(to);
|
||||
if (!receiver || (lang != LANG_ADDON && !receiver->isAcceptWhispers() && receiver->GetSession()->HasPermission(rbac::RBAC_PERM_CAN_FILTER_WHISPERS) && !receiver->IsInWhisperWhiteList(sender->GetGUID())))
|
||||
{
|
||||
SendPlayerNotFoundNotice(to);
|
||||
@@ -803,7 +803,7 @@ void WorldSession::HandleChatIgnoredOpcode(WorldPacket& recvData)
|
||||
recvData.ReadByteSeq(guid[7]);
|
||||
recvData.ReadByteSeq(guid[2]);
|
||||
|
||||
Player* player = ObjectAccessor::FindPlayer(guid);
|
||||
Player* player = ObjectAccessor::FindConnectedPlayer(guid);
|
||||
if (!player || !player->GetSession())
|
||||
return;
|
||||
|
||||
|
||||
@@ -384,7 +384,7 @@ void WorldSession::HandleGroupInviteResponseOpcode(WorldPacket& recvData)
|
||||
else
|
||||
{
|
||||
// Remember leader if online (group pointer will be invalid if group gets disbanded)
|
||||
Player* leader = ObjectAccessor::FindPlayer(group->GetLeaderGUID());
|
||||
Player* leader = ObjectAccessor::FindConnectedPlayer(group->GetLeaderGUID());
|
||||
|
||||
// uninvite, group can be deleted
|
||||
GetPlayer()->UninviteFromGroup();
|
||||
@@ -500,7 +500,7 @@ void WorldSession::HandleGroupSetLeaderOpcode(WorldPacket& recvData)
|
||||
ObjectGuid guid;
|
||||
recvData >> guid;
|
||||
|
||||
Player* player = ObjectAccessor::FindPlayer(guid);
|
||||
Player* player = ObjectAccessor::FindConnectedPlayer(guid);
|
||||
Group* group = GetPlayer()->GetGroup();
|
||||
|
||||
if (!group || !player)
|
||||
@@ -755,7 +755,7 @@ void WorldSession::HandleRaidTargetUpdateOpcode(WorldPacket& recvData)
|
||||
|
||||
if (guid.IsPlayer())
|
||||
{
|
||||
Player* target = ObjectAccessor::FindPlayer(guid);
|
||||
Player* target = ObjectAccessor::FindConnectedPlayer(guid);
|
||||
|
||||
if (!target || target->IsHostileTo(GetPlayer()))
|
||||
return;
|
||||
@@ -831,7 +831,7 @@ void WorldSession::HandleGroupChangeSubGroupOpcode(WorldPacket& recvData)
|
||||
if (!group->HasFreeSlotSubGroup(groupNr))
|
||||
return;
|
||||
|
||||
Player* movedPlayer = sObjectAccessor->FindPlayerByName(name);
|
||||
Player* movedPlayer = sObjectAccessor->FindConnectedPlayerByName(name);
|
||||
ObjectGuid guid;
|
||||
|
||||
if (movedPlayer)
|
||||
|
||||
@@ -531,7 +531,7 @@ void WorldSession::SendLfgRoleCheckUpdate(lfg::LfgRoleCheck const& roleCheck)
|
||||
// Leader info MUST be sent 1st :S
|
||||
ObjectGuid guid = roleCheck.leader;
|
||||
uint8 roles = roleCheck.roles.find(guid)->second;
|
||||
Player* player = ObjectAccessor::FindPlayer(guid);
|
||||
Player* player = ObjectAccessor::FindConnectedPlayer(guid);
|
||||
data << uint64(guid); // Guid
|
||||
data << uint8(roles > 0); // Ready
|
||||
data << uint32(roles); // Roles
|
||||
@@ -544,7 +544,7 @@ void WorldSession::SendLfgRoleCheckUpdate(lfg::LfgRoleCheck const& roleCheck)
|
||||
|
||||
guid = it->first;
|
||||
roles = it->second;
|
||||
player = ObjectAccessor::FindPlayer(guid);
|
||||
player = ObjectAccessor::FindConnectedPlayer(guid);
|
||||
data << uint64(guid); // Guid
|
||||
data << uint8(roles > 0); // Ready
|
||||
data << uint32(roles); // Roles
|
||||
|
||||
@@ -194,7 +194,7 @@ void WorldSession::HandleSendMail(WorldPacket& recvData)
|
||||
return;
|
||||
}
|
||||
|
||||
Player* receiver = ObjectAccessor::FindPlayer(receiverGuid);
|
||||
Player* receiver = ObjectAccessor::FindConnectedPlayer(receiverGuid);
|
||||
|
||||
uint32 receiverTeam = 0;
|
||||
uint8 mailsCount = 0; //do not allow to send to one player more than 100 mails
|
||||
@@ -554,7 +554,7 @@ void WorldSession::HandleMailTakeItem(WorldPacket& recvData)
|
||||
if (m->COD > 0) //if there is COD, take COD money from player and send them to sender by mail
|
||||
{
|
||||
ObjectGuid sender_guid(HIGHGUID_PLAYER, m->sender);
|
||||
Player* receiver = ObjectAccessor::FindPlayer(sender_guid);
|
||||
Player* receiver = ObjectAccessor::FindConnectedPlayer(sender_guid);
|
||||
|
||||
uint32 sender_accId = 0;
|
||||
|
||||
|
||||
@@ -622,7 +622,7 @@ void WorldSession::HandleAddFriendOpcodeCallBack(PreparedQueryResult result, std
|
||||
else
|
||||
{
|
||||
Player* pFriend = ObjectAccessor::FindPlayer(friendGuid);
|
||||
if (pFriend && pFriend->IsInWorld() && pFriend->IsVisibleGloballyFor(GetPlayer()))
|
||||
if (pFriend && pFriend->IsVisibleGloballyFor(GetPlayer()))
|
||||
friendResult = FRIEND_ADDED_ONLINE;
|
||||
else
|
||||
friendResult = FRIEND_ADDED_OFFLINE;
|
||||
@@ -1375,7 +1375,7 @@ void WorldSession::HandleWhoisOpcode(WorldPacket& recvData)
|
||||
return;
|
||||
}
|
||||
|
||||
Player* player = sObjectAccessor->FindPlayerByName(charname);
|
||||
Player* player = sObjectAccessor->FindConnectedPlayerByName(charname);
|
||||
|
||||
if (!player)
|
||||
{
|
||||
|
||||
@@ -581,7 +581,7 @@ void WorldSession::HandlePetitionSignOpcode(WorldPacket& recvData)
|
||||
// item->SetUInt32Value(ITEM_FIELD_ENCHANTMENT_1_1+1, signs);
|
||||
|
||||
// update for owner if online
|
||||
if (Player* owner = ObjectAccessor::FindPlayer(ownerGuid))
|
||||
if (Player* owner = ObjectAccessor::FindConnectedPlayer(ownerGuid))
|
||||
owner->GetSession()->SendPacket(&data);
|
||||
}
|
||||
|
||||
@@ -605,7 +605,7 @@ void WorldSession::HandlePetitionDeclineOpcode(WorldPacket& recvData)
|
||||
Field* fields = result->Fetch();
|
||||
ObjectGuid ownerguid(HIGHGUID_PLAYER, 0, fields[0].GetUInt32());
|
||||
|
||||
Player* owner = ObjectAccessor::FindPlayer(ownerguid);
|
||||
Player* owner = ObjectAccessor::FindConnectedPlayer(ownerguid);
|
||||
if (owner) // petition owner online
|
||||
{
|
||||
WorldPacket data(MSG_PETITION_DECLINE, 8);
|
||||
@@ -626,7 +626,7 @@ void WorldSession::HandleOfferPetitionOpcode(WorldPacket& recvData)
|
||||
recvData >> petitionguid; // petition guid
|
||||
recvData >> plguid; // player guid
|
||||
|
||||
player = ObjectAccessor::FindPlayer(plguid);
|
||||
player = ObjectAccessor::FindConnectedPlayer(plguid);
|
||||
if (!player)
|
||||
return;
|
||||
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
|
||||
void WorldSession::SendNameQueryOpcode(ObjectGuid guid)
|
||||
{
|
||||
Player* player = ObjectAccessor::FindPlayer(guid);
|
||||
Player* player = ObjectAccessor::FindConnectedPlayer(guid);
|
||||
CharacterNameData const* nameData = sWorld->GetCharacterNameData(guid);
|
||||
|
||||
WorldPacket data(SMSG_NAME_QUERY_RESPONSE, (8+1+1+1+1+1+10));
|
||||
|
||||
@@ -131,7 +131,7 @@ void MailDraft::deleteIncludedItems(SQLTransaction& trans, bool inDB /*= false*/
|
||||
void MailDraft::SendReturnToSender(uint32 sender_acc, uint32 sender_guid, uint32 receiver_guid, SQLTransaction& trans)
|
||||
{
|
||||
ObjectGuid receiverGuid(HIGHGUID_PLAYER, receiver_guid);
|
||||
Player* receiver = ObjectAccessor::FindPlayer(receiverGuid);
|
||||
Player* receiver = ObjectAccessor::FindConnectedPlayer(receiverGuid);
|
||||
|
||||
uint32 rc_account = 0;
|
||||
if (!receiver)
|
||||
|
||||
@@ -2499,7 +2499,7 @@ bool World::RemoveBanAccount(BanMode mode, std::string const& nameOrIP)
|
||||
/// Ban an account or ban an IP address, duration will be parsed using TimeStringToSecs if it is positive, otherwise permban
|
||||
BanReturn World::BanCharacter(std::string const& name, std::string const& duration, std::string const& reason, std::string const& author)
|
||||
{
|
||||
Player* pBanned = sObjectAccessor->FindPlayerByName(name);
|
||||
Player* pBanned = sObjectAccessor->FindConnectedPlayerByName(name);
|
||||
uint32 guid = 0;
|
||||
|
||||
uint32 duration_secs = TimeStringToSecs(duration);
|
||||
@@ -2540,7 +2540,7 @@ BanReturn World::BanCharacter(std::string const& name, std::string const& durati
|
||||
/// Remove a ban from a character
|
||||
bool World::RemoveBanCharacter(std::string const& name)
|
||||
{
|
||||
Player* pBanned = sObjectAccessor->FindPlayerByName(name);
|
||||
Player* pBanned = sObjectAccessor->FindConnectedPlayerByName(name);
|
||||
uint32 guid = 0;
|
||||
|
||||
/// Pick a player to ban if not online
|
||||
|
||||
@@ -343,7 +343,7 @@ public:
|
||||
|
||||
// Check if iterator is online. If is...
|
||||
Player* p = ObjectAccessor::FindPlayer((*itr).guid);
|
||||
if (p && p->IsInWorld())
|
||||
if (p)
|
||||
{
|
||||
// ... than, it prints information like "is online", where he is, etc...
|
||||
onlineState = "online";
|
||||
|
||||
@@ -162,12 +162,9 @@ public:
|
||||
// Inform player, who submitted this ticket, that it is closed
|
||||
if (Player* submitter = ticket->GetPlayer())
|
||||
{
|
||||
if (submitter->IsInWorld())
|
||||
{
|
||||
WorldPacket data(SMSG_GMTICKET_DELETETICKET, 4);
|
||||
data << uint32(GMTICKET_RESPONSE_TICKET_DELETED);
|
||||
submitter->GetSession()->SendPacket(&data);
|
||||
}
|
||||
WorldPacket data(SMSG_GMTICKET_DELETETICKET, 4);
|
||||
data << uint32(GMTICKET_RESPONSE_TICKET_DELETED);
|
||||
submitter->GetSession()->SendPacket(&data);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@@ -232,8 +229,7 @@ public:
|
||||
}
|
||||
|
||||
if (Player* player = ticket->GetPlayer())
|
||||
if (player->IsInWorld())
|
||||
ticket->SendResponse(player->GetSession());
|
||||
ticket->SendResponse(player->GetSession());
|
||||
|
||||
SQLTransaction trans = SQLTransaction(NULL);
|
||||
ticket->SetCompleted();
|
||||
@@ -273,13 +269,10 @@ public:
|
||||
|
||||
if (Player* player = ticket->GetPlayer())
|
||||
{
|
||||
if (player->IsInWorld())
|
||||
{
|
||||
// Force abandon ticket
|
||||
WorldPacket data(SMSG_GMTICKET_DELETETICKET, 4);
|
||||
data << uint32(GMTICKET_RESPONSE_TICKET_DELETED);
|
||||
player->GetSession()->SendPacket(&data);
|
||||
}
|
||||
// Force abandon ticket
|
||||
WorldPacket data(SMSG_GMTICKET_DELETETICKET, 4);
|
||||
data << uint32(GMTICKET_RESPONSE_TICKET_DELETED);
|
||||
player->GetSession()->SendPacket(&data);
|
||||
}
|
||||
|
||||
return true;
|
||||
@@ -301,8 +294,7 @@ public:
|
||||
ticket->SetEscalatedStatus(TICKET_IN_ESCALATION_QUEUE);
|
||||
|
||||
if (Player* player = ticket->GetPlayer())
|
||||
if (player->IsInWorld())
|
||||
sTicketMgr->SendTicket(player->GetSession(), ticket);
|
||||
sTicketMgr->SendTicket(player->GetSession(), ticket);
|
||||
|
||||
sTicketMgr->UpdateLastChange();
|
||||
return true;
|
||||
@@ -372,7 +364,7 @@ public:
|
||||
// Get security level of player, whom this ticket is assigned to
|
||||
uint32 security = SEC_PLAYER;
|
||||
Player* assignedPlayer = ticket->GetAssignedPlayer();
|
||||
if (assignedPlayer && assignedPlayer->IsInWorld())
|
||||
if (assignedPlayer)
|
||||
security = assignedPlayer->GetSession()->GetSecurity();
|
||||
else
|
||||
{
|
||||
|
||||
-1
@@ -212,7 +212,6 @@ class boss_anubarak_trial : public CreatureScript
|
||||
}
|
||||
|
||||
void MoveInLineOfSight(Unit* /*who*/) override
|
||||
|
||||
{
|
||||
if (!_intro)
|
||||
{
|
||||
|
||||
+6
-19
@@ -68,15 +68,10 @@ class instance_trial_of_the_crusader : public InstanceMapScript
|
||||
else
|
||||
player->SendUpdateWorldState(UPDATE_STATE_UI_SHOW, 0);
|
||||
|
||||
// make sure Anub'arak isnt missing and floor is destroyed after a crash
|
||||
// make sure Anub'arak isnt missing
|
||||
if (GetBossState(BOSS_LICH_KING) == DONE && TrialCounter && GetBossState(BOSS_ANUBARAK) != DONE)
|
||||
{
|
||||
if (Creature* anubArak = ObjectAccessor::GetCreature(*player, GetGuidData(NPC_ANUBARAK)))
|
||||
anubArak = player->SummonCreature(NPC_ANUBARAK, AnubarakLoc[0].GetPositionX(), AnubarakLoc[0].GetPositionY(), AnubarakLoc[0].GetPositionZ(), 3, TEMPSUMMON_CORPSE_TIMED_DESPAWN, DESPAWN_TIME);
|
||||
|
||||
if (GameObject* floor = ObjectAccessor::GetGameObject(*player, GetGuidData(GO_ARGENT_COLISEUM_FLOOR)))
|
||||
floor->SetDestructibleState(GO_DESTRUCTIBLE_DAMAGED);
|
||||
}
|
||||
if (!ObjectAccessor::GetCreature(*player, GetGuidData(NPC_ANUBARAK)))
|
||||
player->SummonCreature(NPC_ANUBARAK, AnubarakLoc[0], TEMPSUMMON_CORPSE_TIMED_DESPAWN, DESPAWN_TIME);
|
||||
}
|
||||
|
||||
void OpenDoor(ObjectGuid guid)
|
||||
@@ -160,23 +155,15 @@ class instance_trial_of_the_crusader : public InstanceMapScript
|
||||
switch (go->GetEntry())
|
||||
{
|
||||
case GO_CRUSADERS_CACHE_10:
|
||||
if (instance->GetSpawnMode() == RAID_DIFFICULTY_10MAN_NORMAL)
|
||||
CrusadersCacheGUID = go->GetGUID();
|
||||
break;
|
||||
case GO_CRUSADERS_CACHE_25:
|
||||
if (instance->GetSpawnMode() == RAID_DIFFICULTY_25MAN_NORMAL)
|
||||
CrusadersCacheGUID = go->GetGUID();
|
||||
break;
|
||||
case GO_CRUSADERS_CACHE_10_H:
|
||||
if (instance->GetSpawnMode() == RAID_DIFFICULTY_10MAN_HEROIC)
|
||||
CrusadersCacheGUID = go->GetGUID();
|
||||
break;
|
||||
case GO_CRUSADERS_CACHE_25_H:
|
||||
if (instance->GetSpawnMode() == RAID_DIFFICULTY_25MAN_HEROIC)
|
||||
CrusadersCacheGUID = go->GetGUID();
|
||||
CrusadersCacheGUID = go->GetGUID();
|
||||
break;
|
||||
case GO_ARGENT_COLISEUM_FLOOR:
|
||||
FloorGUID = go->GetGUID();
|
||||
if (GetBossState(BOSS_LICH_KING) == DONE)
|
||||
go->SetDestructibleState(GO_DESTRUCTIBLE_DAMAGED);
|
||||
break;
|
||||
case GO_MAIN_GATE_DOOR:
|
||||
MainGateDoorGUID = go->GetGUID();
|
||||
|
||||
+6
-13
@@ -207,11 +207,8 @@ class npc_announcer_toc10 : public CreatureScript
|
||||
creature->CastSpell(creature, SPELL_CORPSE_TELEPORT, false);
|
||||
creature->CastSpell(creature, SPELL_DESTROY_FLOOR_KNOCKUP, false);
|
||||
|
||||
Creature* anubArak = ObjectAccessor::GetCreature(*creature, instance->GetGuidData(NPC_ANUBARAK));
|
||||
if (!anubArak || !anubArak->IsAlive())
|
||||
anubArak = creature->SummonCreature(NPC_ANUBARAK, AnubarakLoc[0].GetPositionX(), AnubarakLoc[0].GetPositionY(), AnubarakLoc[0].GetPositionZ(), 3, TEMPSUMMON_CORPSE_TIMED_DESPAWN, DESPAWN_TIME);
|
||||
|
||||
instance->SetBossState(BOSS_ANUBARAK, NOT_STARTED);
|
||||
if (!ObjectAccessor::GetCreature(*creature, instance->GetGuidData(NPC_ANUBARAK)))
|
||||
creature->SummonCreature(NPC_ANUBARAK, AnubarakLoc[0], TEMPSUMMON_CORPSE_TIMED_DESPAWN, DESPAWN_TIME);
|
||||
|
||||
if (creature->IsVisible())
|
||||
creature->SetVisible(false);
|
||||
@@ -319,19 +316,15 @@ class boss_lich_king_toc : public CreatureScript
|
||||
case 5080:
|
||||
{
|
||||
if (GameObject* go = ObjectAccessor::GetGameObject(*me, _instance->GetGuidData(GO_ARGENT_COLISEUM_FLOOR)))
|
||||
{
|
||||
go->SetDisplayId(DISPLAYID_DESTROYED_FLOOR);
|
||||
go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_DAMAGED | GO_FLAG_NODESPAWN);
|
||||
go->SetGoState(GO_STATE_ACTIVE);
|
||||
}
|
||||
go->SetDestructibleState(GO_DESTRUCTIBLE_DAMAGED);
|
||||
|
||||
me->CastSpell(me, SPELL_CORPSE_TELEPORT, false);
|
||||
me->CastSpell(me, SPELL_DESTROY_FLOOR_KNOCKUP, false);
|
||||
|
||||
_instance->SetBossState(BOSS_LICH_KING, DONE);
|
||||
Creature* temp = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(NPC_ANUBARAK));
|
||||
if (!temp || !temp->IsAlive())
|
||||
temp = me->SummonCreature(NPC_ANUBARAK, AnubarakLoc[0].GetPositionX(), AnubarakLoc[0].GetPositionY(), AnubarakLoc[0].GetPositionZ(), 3, TEMPSUMMON_CORPSE_TIMED_DESPAWN, DESPAWN_TIME);
|
||||
|
||||
if (!ObjectAccessor::GetCreature(*me, _instance->GetGuidData(NPC_ANUBARAK)))
|
||||
me->SummonCreature(NPC_ANUBARAK, AnubarakLoc[0], TEMPSUMMON_CORPSE_TIMED_DESPAWN, DESPAWN_TIME);
|
||||
|
||||
_instance->SetData(TYPE_EVENT, 0);
|
||||
|
||||
|
||||
+7
-9
@@ -42,9 +42,7 @@ enum SpellIds
|
||||
|
||||
enum MiscData
|
||||
{
|
||||
DESPAWN_TIME = 1200000,
|
||||
|
||||
DISPLAYID_DESTROYED_FLOOR = 9060
|
||||
DESPAWN_TIME = 1200000
|
||||
};
|
||||
|
||||
const Position ToCSpawnLoc[]=
|
||||
@@ -133,7 +131,7 @@ const Position LichKingLoc[]=
|
||||
|
||||
const Position AnubarakLoc[]=
|
||||
{
|
||||
{787.932556f, 133.289780f, 142.612152f, 0}, // 0 - Anub'arak start location
|
||||
{783.9305f, 132.9722f, 142.6711f, 3.141593f}, // 0 - Anub'arak Spawn Location (sniffed)
|
||||
{695.240051f, 137.834824f, 142.200000f, 0}, // 1 - Anub'arak move point location
|
||||
{694.886353f, 102.484665f, 142.119614f, 0}, // 3 - Nerub Spawn
|
||||
{694.500671f, 185.363968f, 142.117905f, 0}, // 5 - Nerub Spawn
|
||||
@@ -232,13 +230,13 @@ enum CreatureIds
|
||||
NPC_HORDE_WARLOCK = 34450,
|
||||
NPC_HORDE_WARRIOR = 34453,
|
||||
|
||||
NPC_LIGHTBANE = 34497,
|
||||
NPC_DARKBANE = 34496,
|
||||
NPC_LIGHTBANE = 34497,
|
||||
NPC_DARKBANE = 34496,
|
||||
|
||||
NPC_DARK_ESSENCE = 34567,
|
||||
NPC_LIGHT_ESSENCE = 34568,
|
||||
NPC_DARK_ESSENCE = 34567,
|
||||
NPC_LIGHT_ESSENCE = 34568,
|
||||
|
||||
NPC_ANUBARAK = 34564
|
||||
NPC_ANUBARAK = 34564
|
||||
};
|
||||
|
||||
enum GameObjectIds
|
||||
|
||||
@@ -178,6 +178,8 @@ class boss_rotface : public CreatureScript
|
||||
if (summon->GetEntry() == NPC_VILE_GAS_STALKER)
|
||||
if (Creature* professor = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_PROFESSOR_PUTRICIDE)))
|
||||
professor->CastSpell(summon, SPELL_VILE_GAS_H, true);
|
||||
|
||||
summons.Summon(summon);
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff) override
|
||||
|
||||
Reference in new issue
Block a user