40 Commits
Author SHA1 Message Date
luis bb9c3ff583 BInding vale, silvermoon and harandar misc gob
Build (Windows x64) / build (push) Canceled after 0s
Build (Windows x64) / linux-build (push) Canceled after 0s
2026-09-04 19:31:03 -03:00
luis d5fbf57932 The binding vale npcs spawn 2026-09-04 19:23:53 -03:00
stevebone 8905eadf63 Core/CollectionMgr: fix crash due to recursive loop for certain spells.
Fixed a crash when casting a spell that has checks against quest reward state that would end up in a recursive loop and crash.
2026-09-04 23:53:08 +02:00
luis 1ed4b6c954 nexus point xena 2026-09-04 17:59:54 -03:00
luis dd9398478b df quests 2026-09-04 15:25:03 -03:00
luis 6b3f807127 rework 2026-09-04 15:22:17 -03:00
luis 82439e1f89 feat(vas): wire the client-driven character transfer end to end (P9) 2026-09-04 14:58:17 -03:00
luis 7bbc68ef5b opcode(vas): parse START_VAS_PURCHASE transfer intent; correct ASSIGN understanding (P8) 2026-09-04 14:52:38 -03:00
luis 93cf1815dd opcode(vas): implement the two framed responses (P7) - no longer stubs 2026-09-04 14:50:12 -03:00
luis e4da4ed08d opcode(vas): wire the remaining client-path opcodes (P6) - honest, not stubs 2026-09-04 14:47:26 -03:00
luis ebb56190e0 opcode(vas): populate the transfer-target realm list from the realm list (P4b) 2026-09-04 14:40:33 -03:00
luis 90d4052aba opcode(vas): check-transfer-ok handler + verified response wire (P4a) 2026-09-04 14:35:05 -03:00
luis 129ec064fb opcode(vas): realm-target-list handler + verified list header (P3) 2026-09-04 12:55:09 -03:00
luis 7eda51dcf3 opcode(vas): account-character-list response + handler (P2) 2026-09-04 12:51:13 -03:00
luis 5e3c8e7b1f opcode(vas): packet read layer for the transfer/service cluster (P1) 2026-09-04 12:47:13 -03:00
luis b687aa8ecb feat(pvp): Solo Shuffle P2 — persist personal matchmaker rating 2026-09-04 12:44:00 -03:00
luis ea770cc58c training grounds bg part 1 2026-09-04 12:41:53 -03:00
luis d297268406 solo shuffle 2026-09-04 12:33:24 -03:00
luis f100c98c37 rated solo shuffle 2026-09-04 12:10:50 -03:00
Céfiro_Caecias ad81a8fb7a DB/World: DBErrors Fixes 2026-09-04 11:28:24 -03:00
luis 8015d1259d pvp packets 2026-09-04 10:54:16 -03:00
luis 4d7a5972cd pvp improvements 2026-09-04 10:50:12 -03:00
luis 4070080d38 Full dungeon spawned 2026-09-04 10:36:31 -03:00
luis 1e781724c9 full dungeon 2026-09-04 10:21:04 -03:00
Céfiro_Caecias 4cece3a0a6 Update 2026_09_03_02_world.sql 2026-09-04 10:13:28 -03:00
luis 699ecd683d missing event 2026-09-04 10:04:43 -03:00
luis 988e7bf1e1 full trash 2026-09-04 10:02:20 -03:00
luis c5d7f530cd Fix warn 2026-09-04 09:56:18 -03:00
luis c7b20c24b4 misc 2026-09-04 09:55:37 -03:00
luis f3dfd39eb6 more events 2026-09-04 09:51:17 -03:00
luis dfec2bbda8 more blizzlike corrections 2026-09-04 09:46:43 -03:00
luis 2282b95213 core fix warnings 2026-09-04 09:33:02 -03:00
luis aab831eea1 fix build 2026-09-04 09:25:15 -03:00
luis 8f0d65f477 nexus point xena full 2026-09-04 09:16:47 -03:00
luis ce01fae7bf PvP: run a real group proposal for the Blitz solo queue, and unblock its two packets (G19) 2026-09-04 09:16:47 -03:00
Thordekk 8c9fb2fe01 Add BattlegroundBlitz.TanksPerTeam configuration
Added configuration for BattlegroundBlitz tank requirements.
2026-09-04 09:15:19 -03:00
luis 7bc0988a64 pvp implementations 2026-09-04 09:01:40 -03:00
Thordekk 1e05192d9f Enable and configure PvP Brawl settings 2026-09-04 08:53:42 -03:00
luis 629901268d 12.1 pvp updates + extras 2026-09-04 08:40:23 -03:00
Thordekk 90a1491d66 Set default healers per team for Battleground Blitz
Added configuration for BattlegroundBlitz.HealersPerTeam.
2026-09-04 08:34:40 -03:00
49 changed files with 7142 additions and 377 deletions
@@ -179,7 +179,7 @@ UPDATE `quest_template_addon` SET `PrevQuestID`=66577 WHERE `ID`=72240;
REPLACE INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `Difficulties`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param_string`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `action_param7`, `action_param_string`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_param_string`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES (189763, 0, 0, 1, '', 62, 0, 100, 0, 28056, 0, 0, 0, 0, '', 33, 189771, 0, 0, 0, 0, 0, 0, NULL, 7, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'On player opened gossip - Gossip player: Give kill credit Kill Credit: Recruit Scholars (189771)');
REPLACE INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `Difficulties`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param_string`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `action_param7`, `action_param_string`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_param_string`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES (189763, 0, 1, 0, '', 61, 0, 100, 0, 0, 0, 0, 0, 0, '', 1, 0, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'Speak');
DELETE FROM ``smart_scripts` WHERE `entryorguid`=198401 AND `source_type`=0 AND `id`=0 AND `link`=0;
DELETE FROM `smart_scripts` WHERE `entryorguid`=198401 AND `source_type`=0 AND `id`=0 AND `link`=0;
UPDATE `creature_template` SET `faction`=35 WHERE `entry`=198393;
DELETE FROM `smart_scripts` WHERE `entryorguid`=189767 AND `source_type`=0 AND `id`=0 AND `link`=0;
@@ -0,0 +1,20 @@
-- ==============
-- DBErrors Fixes
-- ==============
UPDATE `creature` SET `curHealthPct`=NULL WHERE `guid` IN (730674,730675,730676,730677,730678,730679,730680,730681,730682,730683);
UPDATE `creature_template` SET `ScriptName`='boss_kasreth' WHERE `entry`=241539;
UPDATE `creature_template` SET `ScriptName`='npc_lingering_image' WHERE `entry`=241642;
UPDATE `creature_template` SET `ScriptName`='npc_circuit_seer' WHERE `entry`=248373;
UPDATE `creature_template` SET `ScriptName`='npc_flux_engineer' WHERE `entry`=241647;
UPDATE `creature_template` SET `ScriptName`='boss_nysarra' WHERE `entry`=241542;
UPDATE `creature_template` SET `ScriptName`='boss_lothraxion' WHERE `entry`=241546;
UPDATE `creature_template` SET `ScriptName`='npc_umbra_weaver' WHERE `entry`=248708;
UPDATE `creature_template` SET `ScriptName`='npc_fractured_image' WHERE `entry`=251568;
UPDATE `creature_template` SET `ScriptName`='npc_corespark_pylon' WHERE `entry`=254485;
UPDATE `creature_template` SET `ScriptName`='npc_coresparks' WHERE `entry`=252938;
UPDATE `creature_template` SET `ScriptName`='npc_manacite_worker' WHERE `entry`=249096;
DELETE FROM `instance_template` WHERE `map`=2915;
INSERT INTO `instance_template` (`map`, `parent`, `script`, `insideResurrection`) VALUES
(2915, 0, 'instance_nexuspointxenas', 0);
@@ -0,0 +1,486 @@
DELETE FROM `battleground_template` WHERE `ID` = 1065;
INSERT INTO `battleground_template`
(`ID`,`MinPlayersPerTeam`,`MaxPlayersPerTeam`,`MinLvl`,`MaxLvl`,`AllianceStartLoc`,`HordeStartLoc`,`StartMaxDist`,`Weight`,`ScriptName`,`Comment`) VALUES
(1065, 3, 3, 10, 90, 0, 0, 0, 1, '', 'Arena - Solo Shuffle');
DELETE FROM `battleground_template` WHERE `ID` = 100;
INSERT INTO `battleground_template`
(`ID`, `MinPlayersPerTeam`, `MaxPlayersPerTeam`, `MinLvl`, `MaxLvl`, `AllianceStartLoc`, `HordeStartLoc`, `StartMaxDist`, `Weight`, `ScriptName`, `Comment`) VALUES
(100, 10, 10, 60, 90, 0, 0, 0, 1, '', 'BG - Rated Battleground');
DELETE FROM `battleground_template` WHERE `ID` = 879;
INSERT INTO `battleground_template`
(`ID`, `MinPlayersPerTeam`, `MaxPlayersPerTeam`, `MinLvl`, `MaxLvl`, `AllianceStartLoc`, `HordeStartLoc`, `StartMaxDist`, `Weight`, `ScriptName`, `Comment`) VALUES
(879, 5, 6, 50, 90, 0, 0, 0, 1, '', 'BG - Brawl: Deep Six');
SET @CGUID := 730684;
DELETE FROM `creature` WHERE `guid` BETWEEN @CGUID+0 AND @CGUID+418;
INSERT INTO `creature` (`guid`, `id`, `map`, `zoneId`, `areaId`, `spawnDifficulties`, `PhaseId`, `PhaseGroup`, `modelid`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `wander_distance`, `currentwaypoint`, `MovementType`, `npcflag`, `unit_flags`, `unit_flags2`, `unit_flags3`, `VerifiedBuild`) VALUES
(@CGUID+0, 241642, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 275.135406494140625, 201.125, 272.305023193359375, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lingering Image (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject2 (Auras: )
(@CGUID+1, 254225, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 1, 112.9149322509765625, 307.789947509765625, 183.519866943359375, 3.242951393127441406, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Shadowguard Defender (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 1282745 - Null Sunder)
(@CGUID+2, 254220, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 96.33159637451171875, 299.18402099609375, 183.69873046875, 1.62185072898864746, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Duskwraith (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1
(@CGUID+3, 254222, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 130.9947967529296875, 312.802093505859375, 183.7040863037109375, 2.374082326889038085, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Voidwalker (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1
(@CGUID+4, 255836, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 119.572906494140625, 317.12152099609375, 183.938079833984375, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Helper (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 472701 - Helper)
(@CGUID+5, 258604, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 128.5590362548828125, 317.388885498046875, 184.509185791015625, 3.630123853683471679, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Void Portal (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 1277163 - [DNT] Portal Closed)
(@CGUID+6, 32639, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 101.6932754516601562, 305.109710693359375, 183.6382598876953125, 0.785535454750061035, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Gnimo (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1
(@CGUID+7, 32638, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 101.6927261352539062, 309.109710693359375, 183.7056121826171875, 5.4979248046875, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Hakmud of Argus (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1
(@CGUID+8, 254225, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 1, 129.9427032470703125, 303.307281494140625, 184.026397705078125, 0.711511433124542236, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Shadowguard Defender (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 1282745 - Null Sunder)
(@CGUID+9, 211152, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 95.4756927490234375, 305.1319580078125, 183.776947021484375, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Path Helper (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 424283 - Passive, 424126 - Bot AI Follow Advert)
(@CGUID+10, 211137, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 119.5434036254882812, 304.13714599609375, 183.665069580078125, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Path Helper (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 424283 - Passive, 424126 - Bot AI Follow Advert)
(@CGUID+11, 210930, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 133.76910400390625, 306.701385498046875, 184.373779296875, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Path Helper (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 422354 - Bot AI Follow Advert)
(@CGUID+12, 211149, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 105.6284713745117187, 301.802093505859375, 183.8407745361328125, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Path Helper (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 424283 - Passive, 424126 - Bot AI Follow Advert)
(@CGUID+13, 211151, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 98.4930572509765625, 301.618072509765625, 183.738006591796875, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Path Helper (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 424283 - Passive, 424126 - Bot AI Follow Advert)
(@CGUID+14, 211150, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 100.2951431274414062, 313.18402099609375, 183.8893585205078125, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Path Helper (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 424283 - Passive, 424126 - Bot AI Follow Advert)
(@CGUID+15, 248498, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 1, 138.6979217529296875, 303.7413330078125, 184.661651611328125, 0.027844946831464767, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Alleria Windrunner (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 1281901 - Void Energy) (possible waypoints or random movement)
(@CGUID+16, 248487, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 1, 138.2430572509765625, 311.0225830078125, 184.650787353515625, 5.294695377349853515, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Arator (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: ) (possible waypoints or random movement)
(@CGUID+17, 211111, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 103.520843505859375, 306.93402099609375, 183.53350830078125, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Path Helper (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1
(@CGUID+18, 241642, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 256.201385498046875, 297.826385498046875, 153.0306243896484375, 4.040214061737060546, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lingering Image (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: )
(@CGUID+19, 249970, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 226.998260498046875, 307.229156494140625, 167.62890625, 3.14003300666809082, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Core Access Power (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: )
(@CGUID+20, 241642, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 272.998260498046875, 333.123260498046875, 153.072174072265625, 1.943511009216308593, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lingering Image (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: )
(@CGUID+21, 252903, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 1, 218.0729217529296875, 184.2430572509765625, 140.7319183349609375, 0.240888237953186035, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Nascent Dreadflail (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 1257985 - [DNT] Cosmetic)
(@CGUID+22, 249096, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 227.7760467529296875, 498.326385498046875, 162.4712677001953125, 5.242377758026123046, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- [DNT] Stalker (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 1265380 - Energy Intake)
(@CGUID+23, 252870, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 223.9322967529296875, 428.56597900390625, 140.631866455078125, 5.321851253509521484, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Arcane Tripwire (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 1257118 - [DNT] Tripwire)
(@CGUID+24, 252903, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 1, 255.0677032470703125, 103.84375, 142.20849609375, 0.240888237953186035, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Nascent Dreadflail (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 1257985 - [DNT] Cosmetic)
(@CGUID+25, 249096, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 324.92535400390625, 429.56597900390625, 162.4976959228515625, 3.555470228195190429, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- [DNT] Stalker (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 1265404 - Energy Intake)
(@CGUID+26, 252870, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 234.8819427490234375, 457.873260498046875, 140.56060791015625, 4.63134002685546875, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Arcane Tripwire (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 1257118 - [DNT] Tripwire)
(@CGUID+27, 252852, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 211.6458282470703125, 466.423614501953125, 140.51336669921875, 6.069354534149169921, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Corespark Conduit (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 1257063 - Corespark Conduit, 1257078 - Corespark Surge)
(@CGUID+28, 252903, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 1, 261.859375, 120.8680572509765625, 142.2601776123046875, 1.449551701545715332, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Nascent Dreadflail (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 1257985 - [DNT] Cosmetic)
(@CGUID+29, 252870, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 276.010406494140625, 489.463531494140625, 142.2539520263671875, 4.483889102935791015, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Arcane Tripwire (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 1257118 - [DNT] Tripwire)
(@CGUID+30, 248373, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 254.9739532470703125, 480.274322509765625, 148.9683685302734375, 0.461040586233139038, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Circuit Seer (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 1257100 - Circuit Sense, 1223119 - Invisibility and Stealth Detection)
(@CGUID+31, 252903, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 1, 229.1666717529296875, 127.8072891235351562, 140.514556884765625, 1.802714467048645019, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Nascent Dreadflail (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 1257985 - [DNT] Cosmetic)
(@CGUID+32, 249087, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 241.4756927490234375, 307.539947509765625, 174.025054931640625, 3.163056850433349609, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lothraxion (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1
(@CGUID+33, 252903, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 1, 341.5069580078125, 54.77604293823242187, 144.3677215576171875, 1.777303099632263183, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Nascent Dreadflail (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 1257985 - [DNT] Cosmetic)
(@CGUID+34, 252903, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 1, 360.2100830078125, 82.52603912353515625, 144.2869720458984375, 3.798580646514892578, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Nascent Dreadflail (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 1257985 - [DNT] Cosmetic)
(@CGUID+35, 252903, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 1, 309.032989501953125, 54.31597137451171875, 144.370147705078125, 1.681548714637756347, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Nascent Dreadflail (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 1257985 - [DNT] Cosmetic)
(@CGUID+36, 252870, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 275.27777099609375, 518.59027099609375, 142.1844940185546875, 3.839353561401367187, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Arcane Tripwire (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 1257118 - [DNT] Tripwire)
(@CGUID+37, 252852, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 309.670135498046875, 555.5086669921875, 144.2594451904296875, 6.069354534149169921, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Corespark Conduit (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 1257063 - Corespark Conduit, 1257078 - Corespark Surge)
(@CGUID+38, 252870, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 342.65972900390625, 552.71356201171875, 144.5953826904296875, 0.041057422757148742, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Arcane Tripwire (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 1257118 - [DNT] Tripwire)
(@CGUID+39, 248373, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 302.9444580078125, 498.071197509765625, 142.1827545166015625, 0.219253793358802795, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Circuit Seer (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 1257100 - Circuit Sense, 1223119 - Invisibility and Stealth Detection) (possible waypoints or random movement)
(@CGUID+40, 252903, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 1, 306.5850830078125, 110.9531326293945312, 142.1385955810546875, 2.763395071029663085, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Nascent Dreadflail (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 1257985 - [DNT] Cosmetic)
(@CGUID+41, 252870, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 309.383697509765625, 510.197906494140625, 144.259735107421875, 4.063593864440917968, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Arcane Tripwire (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 1257118 - [DNT] Tripwire)
(@CGUID+42, 252852, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 307.993072509765625, 488.7882080078125, 142.180755615234375, 6.069354534149169921, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Corespark Conduit (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 1257063 - Corespark Conduit, 1257078 - Corespark Surge)
(@CGUID+43, 248373, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 319.310760498046875, 549.77777099609375, 143.267852783203125, 5.211287498474121093, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Circuit Seer (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 1257100 - Circuit Sense, 1223119 - Invisibility and Stealth Detection)
(@CGUID+44, 241642, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 397.039947509765625, 41.31770706176757812, 148.766326904296875, 4.677482128143310546, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lingering Image (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1
(@CGUID+45, 252903, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 1, 364.611114501953125, 21.70486068725585937, 144.31182861328125, 1.681548714637756347, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Nascent Dreadflail (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 1257985 - [DNT] Cosmetic)
(@CGUID+46, 241546, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 460.010406494140625, 306.595489501953125, 133.14117431640625, 3.131327629089355468, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Lothraxion (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 1257527 - [DNT] Energy Controller, 1248127 - Holy Dissolve In + Poof, 422362 - Bot AI Follow Advert) (possible waypoints or random movement)
(@CGUID+47, 252903, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 1, 393.520843505859375, 75.43228912353515625, 144.329376220703125, 3.382226228713989257, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Nascent Dreadflail (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 1257985 - [DNT] Cosmetic)
(@CGUID+48, 252852, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 371.661468505859375, 595.80035400390625, 144.2390594482421875, 6.069354534149169921, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Corespark Conduit (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 1257063 - Corespark Conduit, 1257078 - Corespark Surge)
(@CGUID+49, 252852, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 363.11285400390625, 538.43231201171875, 144.1535186767578125, 6.069354534149169921, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Corespark Conduit (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 1257063 - Corespark Conduit, 1257078 - Corespark Surge)
(@CGUID+50, 253386, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 240.517364501953125, 156.282989501953125, 138.734405517578125, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Entropy Pool (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject2
(@CGUID+51, 253386, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 319.946197509765625, 56.76736068725585937, 145.411285400390625, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Entropy Pool (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject2
(@CGUID+52, 253386, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 354.8507080078125, 92.375, 145.411285400390625, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Entropy Pool (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject2
(@CGUID+53, 254928, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 321.25469970703125, 327.104095458984375, 160.700469970703125, 5.470851421356201171, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Flarebat (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 1263783 - Holy Echo) (possible waypoints or random movement)
(@CGUID+54, 241660, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 234.9270782470703125, 152.892364501953125, 140.9756317138671875, 0.576268613338470458, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Duskfright Herald (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 1276771 - Herald's Resurgence, 1223119 - Invisibility and Stealth Detection)
(@CGUID+55, 254227, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 1, 397.05035400390625, 35.828125, 148.7666473388671875, 1.543592691421508789, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Corewarden Nysarra (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1
(@CGUID+56, 254932, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 329.20513916015625, 338.477813720703125, 164.6591033935546875, 0.393848627805709838, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Radiant Swarm (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%, 1282944 - Cluster Weakness) (possible waypoints or random movement)
(@CGUID+57, 254932, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 311.3558349609375, 333.662353515625, 155.826202392578125, 2.568835735321044921, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Radiant Swarm (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%, 1282944 - Cluster Weakness) (possible waypoints or random movement)
(@CGUID+58, 248373, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 416.2569580078125, 579.88714599609375, 151.451446533203125, 3.781198740005493164, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Circuit Seer (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 1257100 - Circuit Sense, 1276098 - [DNT] Channel Visual, 1223119 - Invisibility and Stealth Detection)
(@CGUID+59, 210930, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 210.47222900390625, 307.3350830078125, 162.502685546875, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Path Helper (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 422354 - Bot AI Follow Advert)
(@CGUID+60, 251621, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 525.44268798828125, 307.536468505859375, 183.942657470703125, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Core (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: )
(@CGUID+61, 254225, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 1, 207.89410400390625, 298.53472900390625, 162.5013885498046875, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Shadowguard Defender (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 1282745 - Null Sunder)
(@CGUID+62, 254222, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 212.1770782470703125, 314.873260498046875, 162.386993408203125, 3.335075616836547851, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Voidwalker (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1
(@CGUID+63, 254928, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 349.92999267578125, 294.2205810546875, 157.5268707275390625, 5.386955738067626953, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Flarebat (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 1263783 - Holy Echo) (possible waypoints or random movement)
(@CGUID+64, 241644, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 1, 257.66094970703125, 295.75347900390625, 152.9875030517578125, 2.184278488159179687, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Corewright Arcanist (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 1277451 - Arcane Zap)
(@CGUID+65, 254932, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 356.610321044921875, 297.030242919921875, 152.6526336669921875, 1.879305481910705566, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Radiant Swarm (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%, 1282944 - Cluster Weakness) (possible waypoints or random movement)
(@CGUID+66, 254225, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 1, 247.9947967529296875, 362.348968505859375, 152.98931884765625, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Shadowguard Defender (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 1282745 - Null Sunder)
(@CGUID+67, 241643, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 1, 242.44097900390625, 265.401031494140625, 153.0495147705078125, 0.786340892314910888, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Shadowguard Defender (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 1282745 - Null Sunder)
(@CGUID+68, 241643, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 1, 236.3697967529296875, 344.95660400390625, 153.0091705322265625, 6.004736900329589843, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Shadowguard Defender (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 1282745 - Null Sunder)
(@CGUID+69, 241645, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 254.65625, 297.03125, 154.862091064453125, 0.708850383758544921, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Hollowsoul Scrounger (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 1252204 - Leech Veil)
(@CGUID+70, 241643, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 1, 258.49652099609375, 295.861114501953125, 153.022735595703125, 2.97843027114868164, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Shadowguard Defender (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 1282745 - Null Sunder)
(@CGUID+71, 241643, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 1, 248.7708282470703125, 262.203125, 153.021240234375, 0.843977034091949462, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Shadowguard Defender (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 1282745 - Null Sunder)
(@CGUID+72, 251830, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 466.274322509765625, 41.36111068725585937, 158.13311767578125, 5.672880172729492187, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Null Barrier (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 1247918 - Cosmic Void Dissolve In + Poof)
(@CGUID+73, 249711, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 1, 270.135406494140625, 332.12847900390625, 153.0382537841796875, 0.881727874279022216, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Core Technician (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: )
(@CGUID+74, 210931, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 252.9652862548828125, 255.9739532470703125, 153.004974365234375, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Path Helper (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 422357 - Bot AI Follow Advert)
(@CGUID+75, 210930, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 251.625, 356.532989501953125, 152.960601806640625, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Path Helper (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 422354 - Bot AI Follow Advert)
(@CGUID+76, 254932, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 353.810760498046875, 284.39410400390625, 161.568817138671875, 5.878468036651611328, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Radiant Swarm (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%, 1282944 - Cluster Weakness) (possible waypoints or random movement)
(@CGUID+77, 254220, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 243.4166717529296875, 330.329864501953125, 152.986602783203125, 4.599863529205322265, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Duskwraith (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1
(@CGUID+78, 241643, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 1, 237.3697967529296875, 339.70660400390625, 153.0264892578125, 6.144390583038330078, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Shadowguard Defender (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 1282745 - Null Sunder)
(@CGUID+79, 254222, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 241.15625, 269.958343505859375, 152.986602783203125, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Voidwalker (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1
(@CGUID+80, 241645, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 272.298614501953125, 336.361114501953125, 156.563629150390625, 4.298755168914794921, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Hollowsoul Scrounger (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 1252204 - Leech Veil)
(@CGUID+81, 241644, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 1, 271.082122802734375, 337.40338134765625, 153.236114501953125, 5.13331460952758789, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Corewright Arcanist (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 1277451 - Arcane Zap)
(@CGUID+82, 241539, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 1, 451.55035400390625, 598.84722900390625, 163.0334320068359375, 0.436643987894058227, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Kasreth (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 1257511 - [DNT] Energy Controller, 1250550 - Arcane Zap, 422356 - Bot AI Follow Advert) (possible waypoints or random movement)
(@CGUID+83, 254220, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 276.888885498046875, 315.373260498046875, 152.9866180419921875, 4.282730579376220703, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Duskwraith (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1
(@CGUID+84, 254220, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 289.578125, 304.90625, 152.98663330078125, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Duskwraith (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1
(@CGUID+85, 254222, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 255.4652862548828125, 378.145843505859375, 150.566375732421875, 0.515779733657836914, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Voidwalker (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1
(@CGUID+86, 254225, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 1, 240.8402862548828125, 392.80902099609375, 146.393768310546875, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Shadowguard Defender (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 1282745 - Null Sunder)
(@CGUID+87, 252938, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 443.619293212890625, 560.0048828125, 152.8974761962890625, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- [DNT] Orb Stalker (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject2 (Auras: 1257526 - Corespark Detonation)
(@CGUID+88, 254926, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 408.203125, 297.539947509765625, 132.23150634765625, 0.958636760711669921, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lightwrought (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 1284462 - [DNT]Bronze Affix Marker Spell)
(@CGUID+89, 254928, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 410.563751220703125, 307.266387939453125, 140.961639404296875, 6.176733970642089843, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Flarebat (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 1263783 - Holy Echo, 1284462 - [DNT]Bronze Affix Marker Spell) (possible waypoints or random movement)
(@CGUID+90, 254949, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 307.305877685546875, 288.39178466796875, 158.7560577392578125, 0.377573281526565551, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Flarefly (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (possible waypoints or random movement)
(@CGUID+91, 251830, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 430.664947509765625, -24.7465286254882812, 157.2944183349609375, 0.086918652057647705, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Null Barrier (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 1247918 - Cosmic Void Dissolve In + Poof)
(@CGUID+92, 254926, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 408.260406494140625, 317.44097900390625, 132.23150634765625, 5.283478736877441406, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lightwrought (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 1284462 - [DNT]Bronze Affix Marker Spell)
(@CGUID+93, 241542, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 1, 461.770843505859375, 0.375, 157.065338134765625, 2.650062084197998046, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Corewarden Nysarra (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 1247918 - Cosmic Void Dissolve In + Poof, 1253965 - Lightscarred, 422359 - Bot AI Follow Advert)
(@CGUID+94, 252938, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 467.914947509765625, 606.484375, 175.1666107177734375, 6.0052642822265625, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- [DNT] Orb Stalker (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 1257526 - Corespark Detonation, 238309 - Mod Scale 100%)
(@CGUID+95, 248354, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 469.602447509765625, 607.57293701171875, 159.4448089599609375, 3.607515811920166015, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Manacite Conduit (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 1266417 - Dissolve)
(@CGUID+96, 254949, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 305.4351806640625, 334.027313232421875, 158.7560577392578125, 4.898938655853271484, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Flarefly (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (possible waypoints or random movement)
(@CGUID+97, 254949, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 312.90618896484375, 288.772674560546875, 159.6945953369140625, 5.476346969604492187, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Flarefly (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (possible waypoints or random movement)
(@CGUID+98, 254949, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 311.699066162109375, 334.102691650390625, 158.162261962890625, 0.843386769294738769, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Flarefly (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (possible waypoints or random movement)
(@CGUID+99, 254949, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 310.69189453125, 330.093963623046875, 159.6945953369140625, 2.497179269790649414, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Flarefly (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (possible waypoints or random movement)
(@CGUID+100, 248922, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 485.899322509765625, -12.8107643127441406, 165.343780517578125, 2.608207225799560546, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Vantacite Conduit (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 1266417 - Dissolve)
(@CGUID+101, 254947, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 203.532989501953125, 198.75347900390625, 142.672637939453125, 6.167375087738037109, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Unbound Void (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1
(@CGUID+102, 252938, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 455.9619140625, 573.4029541015625, 152.8975067138671875, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- [DNT] Orb Stalker (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject2 (Auras: 1257526 - Corespark Detonation)
(@CGUID+103, 254932, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 451.452392578125, 338.9932861328125, 134.7275390625, 2.319379568099975585, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Radiant Swarm (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%, 1282944 - Cluster Weakness, 1284462 - [DNT]Bronze Affix Marker Spell) (possible waypoints or random movement)
(@CGUID+104, 254932, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 460.575408935546875, 279.17779541015625, 137.0078887939453125, 0.426225930452346801, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Radiant Swarm (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%, 1282944 - Cluster Weakness, 1284462 - [DNT]Bronze Affix Marker Spell) (possible waypoints or random movement)
(@CGUID+105, 254932, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 454.02655029296875, 346.9017333984375, 134.727447509765625, 3.603317499160766601, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Radiant Swarm (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%, 1282944 - Cluster Weakness, 1284462 - [DNT]Bronze Affix Marker Spell) (possible waypoints or random movement)
(@CGUID+106, 249096, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 594.3507080078125, 541.5625, 179.753692626953125, 4.057126522064208984, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- [DNT] Stalker (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 1265408 - Energy Intake)
(@CGUID+107, 241643, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 1, 266.427093505859375, 463.314239501953125, 140.475341796875, 1.976441502571105957, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Shadowguard Defender (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 1282745 - Null Sunder)
(@CGUID+108, 254225, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 1, 225.3385467529296875, 461.354156494140625, 140.509063720703125, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Shadowguard Defender (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 1282745 - Null Sunder)
(@CGUID+109, 241643, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 1, 226.8541717529296875, 444.359375, 140.5164794921875, 1.471876978874206542, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Shadowguard Defender (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 1282745 - Null Sunder, 1284462 - [DNT]Bronze Affix Marker Spell)
(@CGUID+110, 254225, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 1, 226.7569427490234375, 434.21875, 140.51336669921875, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Shadowguard Defender (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 1282745 - Null Sunder)
(@CGUID+111, 241643, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 1, 236.44097900390625, 447.35589599609375, 140.51336669921875, 1.808762550354003906, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Shadowguard Defender (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 1282745 - Null Sunder, 1284462 - [DNT]Bronze Affix Marker Spell)
(@CGUID+112, 254459, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 273.2725830078125, 460.75347900390625, 140.4748382568359375, 1.138763904571533203, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Broken Pipe (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1
(@CGUID+113, 254225, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 1, 243.3836822509765625, 428.107635498046875, 140.51336669921875, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Shadowguard Defender (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 1282745 - Null Sunder)
(@CGUID+114, 254225, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 1, 231.7777862548828125, 454.032989501953125, 140.4382171630859375, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Shadowguard Defender (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 1282745 - Null Sunder)
(@CGUID+115, 210930, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 229.185760498046875, 460.383697509765625, 140.489532470703125, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Path Helper (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 422354 - Bot AI Follow Advert)
(@CGUID+116, 254948, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 270.460601806640625, 463.69921875, 171.2604217529296875, 1.43905949592590332, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Mana Feeder (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%) (possible waypoints or random movement)
(@CGUID+117, 248708, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 1, 263.5694580078125, 465.876739501953125, 140.473907470703125, 5.815837860107421875, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Nexus Adept (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: )
(@CGUID+118, 241643, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 1, 265.576385498046875, 466.70660400390625, 140.475341796875, 4.932290077209472656, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Shadowguard Defender (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 1282745 - Null Sunder)
(@CGUID+119, 254948, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 272.86126708984375, 465.874267578125, 166.0525054931640625, 1.193386793136596679, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Mana Feeder (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%) (possible waypoints or random movement)
(@CGUID+120, 254459, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 276.770843505859375, 465.578125, 160.701934814453125, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Broken Pipe (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1
(@CGUID+121, 241647, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 1, 214.65972900390625, 465.979156494140625, 140.575439453125, 3.77022862434387207, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Flux Engineer (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 1249639 - Mana Battery)
(@CGUID+122, 241647, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 1, 208.90625, 466.8507080078125, 140.574249267578125, 0.211817175149917602, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Flux Engineer (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 1249639 - Mana Battery)
(@CGUID+123, 254459, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 211.26910400390625, 466.633697509765625, 140.54736328125, 1.138763904571533203, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Broken Pipe (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: )
(@CGUID+124, 254948, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 277.668609619140625, 470.6822509765625, 170.2897186279296875, 0.813120484352111816, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Mana Feeder (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%)
(@CGUID+125, 252825, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 227.717010498046875, 482.274322509765625, 140.51348876953125, 5.305353641510009765, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Mana Battery (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 1256921 - Corespark Overload, 448507 - [DNT]Generic Power Bar Color - Blue/Mana)
(@CGUID+126, 254225, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 1, 228.6180572509765625, 477.4288330078125, 140.5111541748046875, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Shadowguard Defender (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 1282745 - Null Sunder)
(@CGUID+127, 254485, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 286.708343505859375, 470.5069580078125, 146.701446533203125, 2.301075458526611328, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Corespark Pylon (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1
(@CGUID+128, 210930, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 270.045135498046875, 473.493072509765625, 140.5099639892578125, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Path Helper (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 422354 - Bot AI Follow Advert)
(@CGUID+129, 241647, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 1, 233.111114501953125, 482.692718505859375, 140.469635009765625, 1.452610015869140625, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Flux Engineer (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 1249639 - Mana Battery)
(@CGUID+130, 254459, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 224.9791717529296875, 489.953125, 142.35528564453125, 5.695459842681884765, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Broken Pipe (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1
(@CGUID+131, 252825, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 225.0989532470703125, 483.267364501953125, 140.5134735107421875, 3.116833686828613281, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Mana Battery (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 1256921 - Corespark Overload, 448507 - [DNT]Generic Power Bar Color - Blue/Mana)
(@CGUID+132, 254459, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 258.189239501953125, 485.83160400390625, 141.74224853515625, 5.695459842681884765, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Broken Pipe (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1
(@CGUID+133, 248708, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 1, 237.9791717529296875, 485.838531494140625, 140.48480224609375, 2.744493961334228515, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Nexus Adept (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: )
(@CGUID+134, 241643, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 1, 294.064239501953125, 477.8125, 142.205108642578125, 2.078662633895874023, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Shadowguard Defender (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 1282745 - Null Sunder)
(@CGUID+135, 254225, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 1, 236.0555572509765625, 485.302093505859375, 140.4805755615234375, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Shadowguard Defender (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 1282745 - Null Sunder)
(@CGUID+136, 241644, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 1, 234.9895782470703125, 488.921875, 140.483123779296875, 4.13419198989868164, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Corewright Arcanist (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 1277451 - Arcane Zap)
(@CGUID+137, 252825, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 227.40972900390625, 497.145843505859375, 141.148162841796875, 3.443778514862060546, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Mana Battery (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 1256921 - Corespark Overload, 448507 - [DNT]Generic Power Bar Color - Blue/Mana)
(@CGUID+138, 254459, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 228.9913177490234375, 493.927093505859375, 157.0185546875, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Broken Pipe (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1
(@CGUID+139, 252825, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 228.5069427490234375, 494.697906494140625, 140.546905517578125, 0.50949251651763916, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Mana Battery (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 1256921 - Corespark Overload, 448507 - [DNT]Generic Power Bar Color - Blue/Mana)
(@CGUID+140, 252825, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 229.5625, 497.145843505859375, 140.775604248046875, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Mana Battery (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 1256921 - Corespark Overload, 448507 - [DNT]Generic Power Bar Color - Blue/Mana)
(@CGUID+141, 254459, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 269.8507080078125, 502.213531494140625, 143.2254486083984375, 0.8334389328956604, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Broken Pipe (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1
(@CGUID+142, 241644, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 1, 285.310760498046875, 490.30035400390625, 142.2167510986328125, 1.850843191146850585, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Corewright Arcanist (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 1277451 - Arcane Zap)
(@CGUID+143, 254225, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 1, 299.123260498046875, 492.38714599609375, 142.185546875, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Shadowguard Defender (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 1282745 - Null Sunder)
(@CGUID+144, 254459, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 271.211822509765625, 499.251739501953125, 143.554229736328125, 5.567260265350341796, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Broken Pipe (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1
(@CGUID+145, 254948, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 288.1943359375, 480.768707275390625, 176.9531402587890625, 2.881382226943969726, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Mana Feeder (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%)
(@CGUID+146, 254485, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 239.529510498046875, 503.28125, 146.694366455078125, 5.695459842681884765, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Corespark Pylon (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: )
(@CGUID+147, 254948, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 291.346038818359375, 488.294036865234375, 173.7426910400390625, 1.624872446060180664, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Mana Feeder (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%)
(@CGUID+148, 241644, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 1, 247.1614532470703125, 505.713531494140625, 142.193634033203125, 4.13419198989868164, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Corewright Arcanist (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: 1277451 - Arcane Zap)
(@CGUID+149, 254459, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 279.274322509765625, 506.414947509765625, 143.4425811767578125, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Broken Pipe (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1
(@CGUID+150, 254459, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 277.70660400390625, 503.395843505859375, 143.9001922607421875, 4.814463615417480468, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Broken Pipe (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1
(@CGUID+151, 254459, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 0, 0, 282.505218505859375, 507.326385498046875, 142.08306884765625, 3.207934856414794921, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Broken Pipe (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1 (Auras: )
(@CGUID+152, 254948, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 307.21466064453125, 488.6844482421875, 181.67919921875, 5.719561100006103515, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Mana Feeder (Area: Corespark Engineway - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%) (possible waypoints or random movement)
(@CGUID+153, 254948, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 289.551910400390625, 501.117218017578125, 196.244476318359375, 4.75737619400024414, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Mana Feeder (Area: Corespark Engineway - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%) (possible waypoints or random movement)
(@CGUID+154, 254948, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 287.546661376953125, 510.798736572265625, 177.6888580322265625, 3.846908807754516601, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Mana Feeder (Area: Corespark Engineway - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%)
(@CGUID+155, 254948, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 289.180206298828125, 507.487884521484375, 182.5659332275390625, 3.714409351348876953, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Mana Feeder (Area: Corespark Engineway - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%) (possible waypoints or random movement)
(@CGUID+156, 252938, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 433.6669921875, 616.2554931640625, 152.8975067138671875, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- [DNT] Orb Stalker (Area: Corespark Engineway - Difficulty: Normal) CreateObject2 (Auras: 1257526 - Corespark Detonation)
(@CGUID+157, 254948, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 285.759735107421875, 514.262939453125, 185.1706085205078125, 6.093163013458251953, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Mana Feeder (Area: Corespark Engineway - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%) (possible waypoints or random movement)
(@CGUID+158, 241643, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 1, 277.446197509765625, 535.6492919921875, 142.184234619140625, 4.276431560516357421, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Shadowguard Defender (Area: Corespark Engineway - Difficulty: Normal) CreateObject1 (Auras: 1282745 - Null Sunder)
(@CGUID+159, 252938, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 415.55865478515625, 613.8275146484375, 152.8975067138671875, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- [DNT] Orb Stalker (Area: Corespark Engineway - Difficulty: Normal) CreateObject2 (Auras: 1257526 - Corespark Detonation)
(@CGUID+160, 254948, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 290.622406005859375, 520.51495361328125, 180.2938995361328125, 4.181649208068847656, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Mana Feeder (Area: Corespark Engineway - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%)
(@CGUID+161, 254948, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 278.714385986328125, 519.80999755859375, 196.8290557861328125, 1.086943268775939941, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Mana Feeder (Area: Corespark Engineway - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%)
(@CGUID+162, 254948, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 285.23516845703125, 509.874298095703125, 195.4780426025390625, 0.198548853397369384, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Mana Feeder (Area: Corespark Engineway - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%)
(@CGUID+163, 254485, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 280.967010498046875, 541.060791015625, 148.363067626953125, 5.522878646850585937, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Corespark Pylon (Area: Corespark Engineway - Difficulty: Normal) CreateObject1
(@CGUID+164, 254948, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 293.422088623046875, 505.45733642578125, 193.251190185546875, 0.820396304130554199, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Mana Feeder (Area: Corespark Engineway - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%)
(@CGUID+165, 241643, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 1, 296.317718505859375, 525.50518798828125, 144.2591400146484375, 3.122138738632202148, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Shadowguard Defender (Area: Corespark Engineway - Difficulty: Normal) CreateObject1 (Auras: 1282745 - Null Sunder)
(@CGUID+166, 241643, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 1, 293.380218505859375, 530.33160400390625, 144.2591400146484375, 4.279026508331298828, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Shadowguard Defender (Area: Corespark Engineway - Difficulty: Normal) CreateObject1 (Auras: 1282745 - Null Sunder)
(@CGUID+167, 254948, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 285.13775634765625, 517.99530029296875, 196.629638671875, 3.282887458801269531, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Mana Feeder (Area: Corespark Engineway - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%)
(@CGUID+168, 254948, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 290.289031982421875, 512.3836669921875, 191.9002227783203125, 0.241339072585105896, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Mana Feeder (Area: Corespark Engineway - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%)
(@CGUID+169, 241644, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 1, 290.104156494140625, 542.8992919921875, 144.260223388671875, 3.662274122238159179, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Corewright Arcanist (Area: Corespark Engineway - Difficulty: Normal) CreateObject1 (Auras: 1277451 - Arcane Zap)
(@CGUID+170, 254948, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 293.617401123046875, 517.8240966796875, 190.1065521240234375, 5.082743644714355468, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Mana Feeder (Area: Corespark Engineway - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%)
(@CGUID+171, 254485, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 319.545135498046875, 499.217010498046875, 148.4263916015625, 2.301075458526611328, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Corespark Pylon (Area: Corespark Engineway - Difficulty: Normal) CreateObject1 (Auras: )
(@CGUID+172, 254948, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 301.326141357421875, 516.0706787109375, 192.5833282470703125, 0.16915556788444519, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Mana Feeder (Area: Corespark Engineway - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%)
(@CGUID+173, 241644, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 1, 324.77777099609375, 508.098968505859375, 144.2594451904296875, 4.258301734924316406, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Corewright Arcanist (Area: Corespark Engineway - Difficulty: Normal) CreateObject1 (Auras: 1277451 - Arcane Zap, 1276098 - [DNT] Channel Visual)
(@CGUID+174, 248708, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 1, 327.539947509765625, 503.135406494140625, 144.25946044921875, 0.773795843124389648, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Nexus Adept (Area: Corespark Engineway - Difficulty: Normal) CreateObject1 (Auras: )
(@CGUID+175, 254459, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 320.173614501953125, 530.0399169921875, 145.81378173828125, 0.280154436826705932, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Broken Pipe (Area: Corespark Engineway - Difficulty: Normal) CreateObject1 (Auras: )
(@CGUID+176, 241643, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 1, 333.595489501953125, 504.07464599609375, 144.25946044921875, 2.26092839241027832, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Shadowguard Defender (Area: Corespark Engineway - Difficulty: Normal) CreateObject1 (Auras: 1282745 - Null Sunder)
(@CGUID+177, 254459, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 310.361114501953125, 556.94964599609375, 144.25946044921875, 1.138763904571533203, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Broken Pipe (Area: Corespark Engineway - Difficulty: Normal) CreateObject1 (Auras: )
(@CGUID+178, 254459, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 325.123260498046875, 533.21527099609375, 145.9669342041015625, 3.449071168899536132, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Broken Pipe (Area: Corespark Engineway - Difficulty: Normal) CreateObject1 (Auras: )
(@CGUID+179, 241647, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 1, 306.94097900390625, 556.56768798828125, 144.2594451904296875, 0.211817175149917602, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Flux Engineer (Area: Corespark Engineway - Difficulty: Normal) CreateObject1 (Auras: 1249639 - Mana Battery)
(@CGUID+180, 241647, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 1, 312.6944580078125, 555.69793701171875, 144.2593536376953125, 3.77022862434387207, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587); -- Flux Engineer (Area: Corespark Engineway - Difficulty: Normal) CreateObject1 (Auras: 1249639 - Mana Battery)
INSERT INTO `creature` (`guid`, `id`, `map`, `zoneId`, `areaId`, `spawnDifficulties`, `PhaseId`, `PhaseGroup`, `modelid`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `wander_distance`, `currentwaypoint`, `MovementType`, `npcflag`, `unit_flags`, `unit_flags2`, `unit_flags3`, `VerifiedBuild`) VALUES
(@CGUID+181, 254459, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 330.9375, 535.373291015625, 146.1227264404296875, 1.138763904571533203, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Broken Pipe (Area: Corespark Engineway - Difficulty: Normal) CreateObject1
(@CGUID+182, 252825, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 336.32464599609375, 532.48614501953125, 144.2537994384765625, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Mana Battery (Area: Corespark Engineway - Difficulty: Normal) CreateObject1 (Auras: 1256921 - Corespark Overload, 448507 - [DNT]Generic Power Bar Color - Blue/Mana)
(@CGUID+183, 252825, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 334.170135498046875, 532.48614501953125, 144.256134033203125, 4.448892116546630859, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Mana Battery (Area: Corespark Engineway - Difficulty: Normal) CreateObject1 (Auras: 1256921 - Corespark Overload, 448507 - [DNT]Generic Power Bar Color - Blue/Mana)
(@CGUID+184, 254948, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 346.01910400390625, 505.413299560546875, 150.2755126953125, 0.945075929164886474, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Mana Feeder (Area: Corespark Engineway - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%) (possible waypoints or random movement)
(@CGUID+185, 254948, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 346.06817626953125, 512.642578125, 152.4195709228515625, 3.179869890213012695, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Mana Feeder (Area: Corespark Engineway - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%) (possible waypoints or random movement)
(@CGUID+186, 252825, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 335.267364501953125, 530.0382080078125, 144.2554168701171875, 3.116833686828613281, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Mana Battery (Area: Corespark Engineway - Difficulty: Normal) CreateObject1 (Auras: 1256921 - Corespark Overload, 448507 - [DNT]Generic Power Bar Color - Blue/Mana)
(@CGUID+187, 254948, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 345.075042724609375, 510.527923583984375, 147.64068603515625, 2.932776689529418945, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Mana Feeder (Area: Corespark Engineway - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%) (possible waypoints or random movement)
(@CGUID+188, 241647, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 1, 347.3125, 512.27606201171875, 144.30426025390625, 6.031023025512695312, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Flux Engineer (Area: Corespark Engineway - Difficulty: Normal) CreateObject1 (Auras: 1249639 - Mana Battery)
(@CGUID+189, 254948, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 374.81414794921875, 537.12225341796875, 154.2415618896484375, 4.353535175323486328, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Mana Feeder (Area: Corespark Engineway - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%)
(@CGUID+190, 210930, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 359.345489501953125, 539.86285400390625, 144.2342681884765625, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Path Helper (Area: Corespark Engineway - Difficulty: Normal) CreateObject1 (Auras: 422354 - Bot AI Follow Advert)
(@CGUID+191, 252825, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 346.5694580078125, 565.72393798828125, 144.5048828125, 4.448892116546630859, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Mana Battery (Area: Corespark Engineway - Difficulty: Normal) CreateObject1 (Auras: 1256921 - Corespark Overload, 448507 - [DNT]Generic Power Bar Color - Blue/Mana)
(@CGUID+192, 252825, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 348.723968505859375, 565.72393798828125, 144.2339935302734375, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Mana Battery (Area: Corespark Engineway - Difficulty: Normal) CreateObject1 (Auras: 1256921 - Corespark Overload, 448507 - [DNT]Generic Power Bar Color - Blue/Mana)
(@CGUID+193, 248708, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 1, 383.302093505859375, 552.3055419921875, 147.304931640625, 1.140257477760314941, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Nexus Adept (Area: Corespark Engineway - Difficulty: Normal) CreateObject1 (Auras: )
(@CGUID+194, 252825, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 356.75347900390625, 565.03302001953125, 144.404876708984375, 3.116833686828613281, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Mana Battery (Area: Corespark Engineway - Difficulty: Normal) CreateObject1 (Auras: 1256921 - Corespark Overload, 448507 - [DNT]Generic Power Bar Color - Blue/Mana)
(@CGUID+195, 241647, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 1, 350.486114501953125, 563.8975830078125, 144.234893798828125, 2.82267165184020996, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Flux Engineer (Area: Corespark Engineway - Difficulty: Normal) CreateObject1 (Auras: 1249639 - Mana Battery)
(@CGUID+196, 241647, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 1, 352.84375, 567.3975830078125, 144.2310333251953125, 0.441542506217956542, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Flux Engineer (Area: Corespark Engineway - Difficulty: Normal) CreateObject1 (Auras: 1249639 - Mana Battery)
(@CGUID+197, 254948, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 379.419189453125, 538.3900146484375, 157.639617919921875, 0.017613444477319717, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Mana Feeder (Area: Corespark Engineway - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%) (possible waypoints or random movement)
(@CGUID+198, 254948, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 379.308197021484375, 541.14215087890625, 156.1381378173828125, 4.092036724090576171, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Mana Feeder (Area: Corespark Engineway - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%) (possible waypoints or random movement)
(@CGUID+199, 241644, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 1, 384.239593505859375, 560.3367919921875, 146.863494873046875, 4.62476205825805664, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Corewright Arcanist (Area: Corespark Engineway - Difficulty: Normal) CreateObject1 (Auras: 1277451 - Arcane Zap)
(@CGUID+200, 241643, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 1, 388.618072509765625, 555.32989501953125, 147.5167694091796875, 2.62739109992980957, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Shadowguard Defender (Area: Corespark Engineway - Difficulty: Normal) CreateObject1 (Auras: 1282745 - Null Sunder)
(@CGUID+201, 254948, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 369.397705078125, 592.74603271484375, 153.614593505859375, 3.54379439353942871, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Mana Feeder (Area: Corespark Engineway - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%) (possible waypoints or random movement)
(@CGUID+202, 254948, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 372.011077880859375, 590.044921875, 155.167327880859375, 3.798281192779541015, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Mana Feeder (Area: Corespark Engineway - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%) (possible waypoints or random movement)
(@CGUID+203, 254948, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 376.42535400390625, 592.7735595703125, 155.2646331787109375, 5.670833587646484375, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Mana Feeder (Area: Corespark Engineway - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%) (possible waypoints or random movement)
(@CGUID+204, 254948, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 382.9814453125, 591.08978271484375, 152.701690673828125, 3.926466941833496093, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Mana Feeder (Area: Corespark Engineway - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%) (possible waypoints or random movement)
(@CGUID+205, 254948, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 385.6903076171875, 589.8236083984375, 153.1188507080078125, 3.561135530471801757, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Mana Feeder (Area: Corespark Engineway - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%) (possible waypoints or random movement)
(@CGUID+206, 254948, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 391.322906494140625, 595.64019775390625, 153.1374053955078125, 0.165745794773101806, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Mana Feeder (Area: Corespark Engineway - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%) (possible waypoints or random movement)
(@CGUID+207, 254932, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 465.407073974609375, 385.689453125, 137.7396697998046875, 4.741318702697753906, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Radiant Swarm (Area: Corespark Engineway - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%, 1282944 - Cluster Weakness, 1284462 - [DNT]Bronze Affix Marker Spell) (possible waypoints or random movement)
(@CGUID+208, 254932, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 476.959625244140625, 390.10455322265625, 137.707061767578125, 4.608901500701904296, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Radiant Swarm (Area: Corespark Engineway - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%, 1282944 - Cluster Weakness, 1284462 - [DNT]Bronze Affix Marker Spell) (possible waypoints or random movement)
(@CGUID+209, 254932, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 474.056640625, 388.367706298828125, 137.7668609619140625, 4.428014755249023437, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Radiant Swarm (Area: Corespark Engineway - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%, 1282944 - Cluster Weakness, 1284462 - [DNT]Bronze Affix Marker Spell) (possible waypoints or random movement)
(@CGUID+210, 254932, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 474.103515625, 379.142791748046875, 137.7485198974609375, 5.197277545928955078, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Radiant Swarm (Area: Corespark Engineway - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%, 1282944 - Cluster Weakness, 1284462 - [DNT]Bronze Affix Marker Spell) (possible waypoints or random movement)
(@CGUID+211, 254948, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 413.53790283203125, 540.99755859375, 150.2950592041015625, 1.747002243995666503, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Mana Feeder (Area: Corespark Engineway - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%)
(@CGUID+212, 210930, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 397.23089599609375, 569.88543701171875, 150.0933837890625, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Path Helper (Area: Corespark Engineway - Difficulty: Normal) CreateObject1 (Auras: 422354 - Bot AI Follow Advert)
(@CGUID+213, 254459, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 420.614593505859375, 557.05731201171875, 152.362701416015625, 1.277089595794677734, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Broken Pipe (Area: Corespark Engineway - Difficulty: Normal) CreateObject1
(@CGUID+214, 254926, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 463.017364501953125, 385.291656494140625, 132.189849853515625, 0.785476982593536376, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lightwrought (Area: Corespark Engineway - Difficulty: Normal) CreateObject1 (Auras: 1284462 - [DNT]Bronze Affix Marker Spell)
(@CGUID+215, 254926, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 483.513885498046875, 389.1875, 132.1898345947265625, 4.11484384536743164, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lightwrought (Area: Corespark Engineway - Difficulty: Normal) CreateObject1 (Auras: 1284462 - [DNT]Bronze Affix Marker Spell)
(@CGUID+216, 254459, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 398.079864501953125, 585.0538330078125, 152.362701416015625, 0.094978444278240203, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Broken Pipe (Area: Corespark Engineway - Difficulty: Normal) CreateObject1
(@CGUID+217, 254459, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 410.03125, 562.23956298828125, 152.362701416015625, 0.896744906902313232, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Broken Pipe (Area: Corespark Engineway - Difficulty: Normal) CreateObject1 (Auras: )
(@CGUID+218, 241644, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 1, 417.510406494140625, 570.07464599609375, 152.4463958740234375, 3.921476364135742187, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Corewright Arcanist (Area: Corespark Engineway - Difficulty: Normal) CreateObject1 (Auras: 1277451 - Arcane Zap)
(@CGUID+219, 210930, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 417.9600830078125, 580.71875, 152.451416015625, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Path Helper (Area: Corespark Engineway - Difficulty: Normal) CreateObject1 (Auras: 422354 - Bot AI Follow Advert)
(@CGUID+220, 254459, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 432.53125, 556.47222900390625, 152.362701416015625, 1.667698621749877929, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Broken Pipe (Area: Corespark Engineway - Difficulty: Normal) CreateObject1
(@CGUID+221, 241644, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 1, 409.15625, 587.1336669921875, 152.447174072265625, 2.518247365951538085, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Corewright Arcanist (Area: Corespark Engineway - Difficulty: Normal) CreateObject1 (Auras: 1277451 - Arcane Zap)
(@CGUID+222, 254459, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 399.729156494140625, 596.828125, 152.362701416015625, 5.961443424224853515, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Broken Pipe (Area: Corespark Engineway - Difficulty: Normal) CreateObject1
(@CGUID+223, 254459, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 405.979156494140625, 606.795166015625, 152.362701416015625, 5.570966720581054687, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Broken Pipe (Area: Corespark Engineway - Difficulty: Normal) CreateObject1
(@CGUID+224, 254948, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 453.015380859375, 540.661376953125, 164.5877685546875, 3.065187931060791015, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Mana Feeder (Area: Corespark Engineway - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%)
(@CGUID+225, 254459, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 443.548614501953125, 560.2117919921875, 152.362701416015625, 2.068090438842773437, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Broken Pipe (Area: Corespark Engineway - Difficulty: Normal) CreateObject1
(@CGUID+226, 254948, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 395.895172119140625, 619.736572265625, 154.1904144287109375, 2.765581369400024414, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Mana Feeder (Area: Corespark Engineway - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%)
(@CGUID+227, 255033, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 455.888885498046875, 560.05731201171875, 154.3697509765625, 4.136370182037353515, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Broken Pipe (Area: Corespark Engineway - Difficulty: Normal) CreateObject1
(@CGUID+228, 254459, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 415.484375, 613.8367919921875, 152.362701416015625, 5.16138458251953125, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Broken Pipe (Area: Corespark Engineway - Difficulty: Normal) CreateObject1
(@CGUID+229, 254459, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 455.760406494140625, 573.50518798828125, 152.362701416015625, 2.689306974411010742, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Broken Pipe (Area: Corespark Engineway - Difficulty: Normal) CreateObject1
(@CGUID+230, 254948, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 464.8927001953125, 543.29931640625, 162.514556884765625, 4.006121635437011718, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Mana Feeder (Area: Corespark Engineway - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%)
(@CGUID+231, 254948, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 432.698150634765625, 630.08026123046875, 160.2357940673828125, 2.480107307434082031, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Mana Feeder (Area: Corespark Engineway - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%)
(@CGUID+232, 254948, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 396.82672119140625, 628.185791015625, 154.2397308349609375, 4.538878917694091796, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Mana Feeder (Area: Corespark Engineway - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%)
(@CGUID+233, 254459, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 433.59027099609375, 616.2882080078125, 152.362701416015625, 4.516232967376708984, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Broken Pipe (Area: Corespark Engineway - Difficulty: Normal) CreateObject1
(@CGUID+234, 255033, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 422.560760498046875, 623.42706298828125, 154.590179443359375, 4.136370182037353515, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Broken Pipe (Area: Corespark Engineway - Difficulty: Normal) CreateObject1
(@CGUID+235, 255033, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 470.53125, 580.89410400390625, 152.4275970458984375, 3.006421327590942382, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Broken Pipe (Area: Corespark Engineway - Difficulty: Normal) CreateObject1 (Auras: )
(@CGUID+236, 255033, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 448.076385498046875, 623.48785400390625, 158.7770233154296875, 4.136370182037353515, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Broken Pipe (Area: Corespark Engineway - Difficulty: Normal) CreateObject1 (Auras: )
(@CGUID+237, 256090, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 427.0535888671875, 579.145751953125, 152.8141937255859375, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Path Helper (Area: Corespark Engineway - Difficulty: Normal) CreateObject2
(@CGUID+238, 256090, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 433.051483154296875, 586.2205810546875, 152.8141632080078125, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Path Helper (Area: Corespark Engineway - Difficulty: Normal) CreateObject2
(@CGUID+239, 256090, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 429.5889892578125, 586.91619873046875, 152.8141632080078125, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Path Helper (Area: Corespark Engineway - Difficulty: Normal) CreateObject2
(@CGUID+240, 256090, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 413.35150146484375, 581.85723876953125, 152.8141937255859375, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Path Helper (Area: Corespark Engineway - Difficulty: Normal) CreateObject2
(@CGUID+241, 256090, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 431.019195556640625, 590.0682373046875, 152.8141937255859375, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Path Helper (Area: Corespark Engineway - Difficulty: Normal) CreateObject2
(@CGUID+242, 256090, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 421.824005126953125, 589.238525390625, 152.8141632080078125, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Path Helper (Area: Corespark Engineway - Difficulty: Normal) CreateObject2
(@CGUID+243, 256090, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 435.760284423828125, 593.615234375, 152.814178466796875, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Path Helper (Area: Corespark Engineway - Difficulty: Normal) CreateObject2
(@CGUID+244, 252938, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 455.9619140625, 573.4029541015625, 152.814178466796875, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- [DNT] Orb Stalker (Area: Corespark Engineway - Difficulty: Normal) CreateObject2 (Auras: 1257526 - Corespark Detonation)
(@CGUID+245, 256090, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 420.88226318359375, 572.4466552734375, 152.814178466796875, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Path Helper (Area: Corespark Engineway - Difficulty: Normal) CreateObject2
(@CGUID+246, 213069, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 455.039947509765625, 599.59893798828125, 155.7400970458984375, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Path Helper (Area: Corespark Engineway - Difficulty: Normal) CreateObject2
(@CGUID+247, 211152, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 464.302093505859375, 609.83331298828125, 157.8302001953125, 5.071795463562011718, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Path Helper (Area: Corespark Engineway - Difficulty: Normal) CreateObject2 (Auras: 424283 - Passive)
(@CGUID+248, 211137, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 466.671875, 601.1007080078125, 157.829864501953125, 0.875669717788696289, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Path Helper (Area: Corespark Engineway - Difficulty: Normal) CreateObject2 (Auras: 424283 - Passive)
(@CGUID+249, 211149, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 463.4444580078125, 606.72918701171875, 157.8302001953125, 0.080561690032482147, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Path Helper (Area: Corespark Engineway - Difficulty: Normal) CreateObject2 (Auras: 424283 - Passive)
(@CGUID+250, 211151, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 470.447906494140625, 601.71356201171875, 157.830535888671875, 1.712825298309326171, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Path Helper (Area: Corespark Engineway - Difficulty: Normal) CreateObject2 (Auras: 424283 - Passive)
(@CGUID+251, 211150, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 468.2882080078125, 613.17364501953125, 157.8312835693359375, 5.473778247833251953, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Path Helper (Area: Corespark Engineway - Difficulty: Normal) CreateObject2 (Auras: 424283 - Passive)
(@CGUID+252, 254485, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 422.314239501953125, 623.39239501953125, 153.36383056640625, 2.301075458526611328, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Corespark Pylon (Area: Corespark Engineway - Difficulty: Normal) CreateObject2 (Auras: )
(@CGUID+253, 254485, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 388.532989501953125, 592.48614501953125, 145.9690399169921875, 4.083379268646240234, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Corespark Pylon (Area: Corespark Engineway - Difficulty: Normal) CreateObject2
(@CGUID+254, 254485, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 470.9132080078125, 580.9444580078125, 152.624176025390625, 3.24429631233215332, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Corespark Pylon (Area: Corespark Engineway - Difficulty: Normal) CreateObject2 (Auras: )
(@CGUID+255, 254485, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 440.8819580078125, 663.78125, 162.4837646484375, 4.083379268646240234, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Corespark Pylon (Area: Corespark Engineway - Difficulty: Normal) CreateObject2
(@CGUID+256, 254485, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 454.592010498046875, 560.2725830078125, 154.4787445068359375, 2.301075458526611328, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Corespark Pylon (Area: Corespark Engineway - Difficulty: Normal) CreateObject2 (Auras: )
(@CGUID+257, 254485, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 481.407989501953125, 565.29168701171875, 157.3971099853515625, 4.083379268646240234, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Corespark Pylon (Area: Corespark Engineway - Difficulty: Normal) CreateObject2
(@CGUID+258, 254485, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 453.494781494140625, 622.42535400390625, 163.87188720703125, 4.083379268646240234, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Corespark Pylon (Area: Corespark Engineway - Difficulty: Normal) CreateObject2
(@CGUID+259, 254485, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 441.501739501953125, 641.11285400390625, 157.431671142578125, 4.083379268646240234, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Corespark Pylon (Area: Corespark Engineway - Difficulty: Normal) CreateObject2
(@CGUID+260, 254485, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 410.38714599609375, 549.69268798828125, 146.832672119140625, 4.083379268646240234, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Corespark Pylon (Area: Corespark Engineway - Difficulty: Normal) CreateObject2
(@CGUID+261, 241642, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 454.045135498046875, 330.239593505859375, 141.6037445068359375, 5.314589500427246093, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lingering Image (Area: Corespark Engineway - Difficulty: Normal) CreateObject2 (Auras: 1284462 - [DNT]Bronze Affix Marker Spell)
(@CGUID+262, 248363, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 460.583831787109375, 601.4332275390625, 157.880859375, 0.419575005769729614, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Energy Flow (Area: Corespark Engineway - Difficulty: Normal) CreateObject2 (Auras: )
(@CGUID+263, 254928, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 475.01300048828125, 348.2698974609375, 140.839599609375, 4.294250011444091796, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Flarebat (Area: Corespark Engineway - Difficulty: Normal) CreateObject1 (Auras: 1263783 - Holy Echo, 1284462 - [DNT]Bronze Affix Marker Spell) (possible waypoints or random movement)
(@CGUID+264, 254932, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 498.54315185546875, 345.64453125, 144.011474609375, 3.85045170783996582, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Radiant Swarm (Area: Corespark Engineway - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%, 1282944 - Cluster Weakness) (possible waypoints or random movement)
(@CGUID+265, 254926, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 474.2569580078125, 339.649322509765625, 131.888153076171875, 5.150362968444824218, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lightwrought (Area: Corespark Engineway - Difficulty: Normal) CreateObject1 (Auras: )
(@CGUID+266, 254932, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 504.107025146484375, 343.035858154296875, 136.625335693359375, 5.537882804870605468, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Radiant Swarm (Area: Corespark Engineway - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%, 1282944 - Cluster Weakness) (possible waypoints or random movement)
(@CGUID+267, 254926, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 467.1632080078125, 286.56597900390625, 132.18475341796875, 0.552407264709472656, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lightwrought (Area: Corespark Engineway - Difficulty: Normal) CreateObject1 (Auras: 1284462 - [DNT]Bronze Affix Marker Spell)
(@CGUID+268, 254932, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 458.76263427734375, 279.43292236328125, 137.0078887939453125, 2.906446456909179687, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Radiant Swarm (Area: Corespark Engineway - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%, 1282944 - Cluster Weakness, 1284462 - [DNT]Bronze Affix Marker Spell) (possible waypoints or random movement)
(@CGUID+269, 254928, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 0, 0, 468.479705810546875, 279.892364501953125, 133.409271240234375, 2.930154085159301757, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Flarebat (Area: Corespark Engineway - Difficulty: Normal) CreateObject1 (Auras: 1263783 - Holy Echo, 1284462 - [DNT]Bronze Affix Marker Spell) (possible waypoints or random movement)
(@CGUID+270, 254949, 2915, 16573, 16576, '1,2,23,8,205', '0', 0, 0, 0, 407.6090087890625, 330.342742919921875, 140.7901763916015625, 5.096600055694580078, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587); -- Flarefly (Area: The Nexus Core - Difficulty: Normal) CreateObject1 (possible waypoints or random movement)
INSERT INTO `creature` (`guid`, `id`, `map`, `zoneId`, `areaId`, `spawnDifficulties`, `PhaseId`, `PhaseGroup`, `modelid`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `wander_distance`, `currentwaypoint`, `MovementType`, `npcflag`, `unit_flags`, `unit_flags2`, `unit_flags3`, `VerifiedBuild`) VALUES
(@CGUID+271, 254949, 2915, 16573, 16576, '1,2,23,8,205', '0', 0, 0, 0, 397.20416259765625, 322.605926513671875, 140.7518157958984375, 3.882778406143188476, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Flarefly (Area: The Nexus Core - Difficulty: Normal) CreateObject1 (possible waypoints or random movement)
(@CGUID+272, 254949, 2915, 16573, 16576, '1,2,23,8,205', '0', 0, 0, 0, 386.188201904296875, 323.922943115234375, 147.8037872314453125, 2.750050544738769531, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Flarefly (Area: The Nexus Core - Difficulty: Normal) CreateObject1 (possible waypoints or random movement)
(@CGUID+273, 258604, 2915, 16573, 16576, '1,2,23,8,205', '0', 0, 0, 0, 415.48089599609375, 292.61285400390625, 132.23150634765625, 0.263217240571975708, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Void Portal (Area: The Nexus Core - Difficulty: Normal) CreateObject1 (Auras: 1277163 - [DNT] Portal Closed)
(@CGUID+274, 254947, 2915, 16573, 0, '1,2,23,8,205', '0', 0, 0, 0, 206.798614501953125, 186.157989501953125, 143.2660675048828125, 0.739109218120574951, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Unbound Void (Area: 0 - Difficulty: Normal) CreateObject1
(@CGUID+275, 241660, 2915, 16573, 0, '1,2,23,8,205', '0', 0, 0, 0, 344.15277099609375, 98.0381927490234375, 144.316314697265625, 5.797312736511230468, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Duskfright Herald (Area: 0 - Difficulty: Normal) CreateObject1 (Auras: 1276771 - Herald's Resurgence, 1223119 - Invisibility and Stealth Detection)
(@CGUID+276, 248501, 2915, 16573, 0, '1,2,23,8,205', '0', 0, 0, 0, 235.4055328369140625, 183.3560028076171875, 140.59686279296875, 0.402544736862182617, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Reformed Voidling (Area: 0 - Difficulty: Normal) CreateObject1 (Auras: 1257984 - Nascent Energy)
(@CGUID+277, 248706, 2915, 16573, 0, '1,2,23,8,205', '0', 0, 0, 0, 238.0723724365234375, 183.05322265625, 140.59686279296875, 0.404929190874099731, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Cursed Voidcaller (Area: 0 - Difficulty: Normal) CreateObject1 (Auras: 1281635 - Creeping Void)
(@CGUID+278, 248501, 2915, 16573, 0, '1,2,23,8,205', '0', 0, 0, 0, 235.56719970703125, 181.321014404296875, 140.59686279296875, 6.16037750244140625, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Reformed Voidling (Area: 0 - Difficulty: Normal) CreateObject1 (Auras: 1257984 - Nascent Energy)
(@CGUID+279, 210931, 2915, 16573, 0, '1,2,23,8,205', '0', 0, 0, 0, 231.154510498046875, 181.2621612548828125, 140.5705413818359375, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Path Helper (Area: 0 - Difficulty: Normal) CreateObject1 (Auras: 422357 - Bot AI Follow Advert)
(@CGUID+280, 241660, 2915, 16573, 0, '1,2,23,8,205', '0', 0, 0, 0, 312.923614501953125, 61.265625, 144.5009002685546875, 5.486206531524658203, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Duskfright Herald (Area: 0 - Difficulty: Normal) CreateObject1 (Auras: 1276771 - Herald's Resurgence, 1223119 - Invisibility and Stealth Detection)
(@CGUID+281, 248502, 2915, 16573, 0, '1,2,23,8,205', '0', 0, 0, 1, 265.94964599609375, 141.9739532470703125, 140.596893310546875, 3.081343650817871093, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Null Sentinel (Area: 0 - Difficulty: Normal) CreateObject1 (Auras: 18950 - Invisibility and Stealth Detection)
(@CGUID+282, 248706, 2915, 16573, 0, '1,2,23,8,205', '0', 0, 0, 0, 271.7730712890625, 141.9754791259765625, 140.5968780517578125, 2.820919036865234375, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Cursed Voidcaller (Area: 0 - Difficulty: Normal) CreateObject1 (Auras: 1281635 - Creeping Void)
(@CGUID+283, 254947, 2915, 16573, 0, '1,2,23,8,205', '0', 0, 0, 0, 240.923309326171875, 151.8435211181640625, 134.5395355224609375, 2.82078719139099121, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Unbound Void (Area: 0 - Difficulty: Normal) CreateObject1
(@CGUID+284, 210931, 2915, 16573, 0, '1,2,23,8,205', '0', 0, 0, 0, 223.8350677490234375, 146.8211822509765625, 140.5267486572265625, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Path Helper (Area: 0 - Difficulty: Normal) CreateObject1 (Auras: 422357 - Bot AI Follow Advert)
(@CGUID+285, 254947, 2915, 16573, 0, '1,2,23,8,205', '0', 0, 0, 0, 250.329864501953125, 151.3229217529296875, 134.570465087890625, 0.739109218120574951, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Unbound Void (Area: 0 - Difficulty: Normal) CreateObject1
(@CGUID+286, 251853, 2915, 16573, 0, '1,2,23,8,205', '0', 0, 0, 0, 277.12847900390625, 149.107635498046875, 140.781524658203125, 1.483018159866333007, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Grand Nullifier (Area: 0 - Difficulty: Normal) CreateObject1 (Auras: 1257984 - Nascent Energy)
(@CGUID+287, 254947, 2915, 16573, 0, '1,2,23,8,205', '0', 0, 0, 0, 255.765625, 152.90972900390625, 134.570465087890625, 5.336671352386474609, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Unbound Void (Area: 0 - Difficulty: Normal) CreateObject1
(@CGUID+288, 248706, 2915, 16573, 0, '1,2,23,8,205', '0', 0, 0, 0, 264.346160888671875, 138.1861724853515625, 140.596893310546875, 2.851691246032714843, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Cursed Voidcaller (Area: 0 - Difficulty: Normal) CreateObject1 (Auras: 1281635 - Creeping Void)
(@CGUID+289, 254947, 2915, 16573, 0, '1,2,23,8,205', '0', 0, 0, 0, 253.7231292724609375, 153.9085693359375, 135.2892608642578125, 6.174850940704345703, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Unbound Void (Area: 0 - Difficulty: Normal) CreateObject1
(@CGUID+290, 248501, 2915, 16573, 0, '1,2,23,8,205', '0', 0, 0, 0, 278.727447509765625, 144.5121612548828125, 140.6755523681640625, 1.788122057914733886, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Reformed Voidling (Area: 0 - Difficulty: Normal) CreateObject1 (Auras: 1257984 - Nascent Energy)
(@CGUID+291, 254947, 2915, 16573, 0, '1,2,23,8,205', '0', 0, 0, 0, 247.27606201171875, 149.478485107421875, 142.464599609375, 5.243746757507324218, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Unbound Void (Area: 0 - Difficulty: Normal) CreateObject1
(@CGUID+292, 248501, 2915, 16573, 0, '1,2,23,8,205', '0', 0, 0, 0, 283.314239501953125, 149.3871612548828125, 140.7681121826171875, 2.988795757293701171, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Reformed Voidling (Area: 0 - Difficulty: Normal) CreateObject1 (Auras: 1257984 - Nascent Energy)
(@CGUID+293, 248501, 2915, 16573, 0, '1,2,23,8,205', '0', 0, 0, 0, 206.06793212890625, 148.9082489013671875, 140.5968780517578125, 4.365957260131835937, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Reformed Voidling (Area: 0 - Difficulty: Normal) CreateObject1 (Auras: 1257984 - Nascent Energy)
(@CGUID+294, 254947, 2915, 16573, 0, '1,2,23,8,205', '0', 0, 0, 0, 259.126495361328125, 154.9173431396484375, 134.9461212158203125, 3.648021221160888671, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Unbound Void (Area: 0 - Difficulty: Normal) CreateObject1
(@CGUID+295, 251853, 2915, 16573, 0, '1,2,23,8,205', '0', 0, 0, 0, 211.7986297607421875, 150.860870361328125, 140.5968780517578125, 0.554294347763061523, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Grand Nullifier (Area: 0 - Difficulty: Normal) CreateObject1 (Auras: 1257984 - Nascent Energy)
(@CGUID+296, 248501, 2915, 16573, 0, '1,2,23,8,205', '0', 0, 0, 0, 211.736663818359375, 155.5625, 140.5968780517578125, 0.978452622890472412, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Reformed Voidling (Area: 0 - Difficulty: Normal) CreateObject1 (Auras: 1257984 - Nascent Energy)
(@CGUID+297, 254947, 2915, 16573, 0, '1,2,23,8,205', '0', 0, 0, 0, 255.998260498046875, 157.2083282470703125, 136.516387939453125, 5.330569744110107421, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Unbound Void (Area: 0 - Difficulty: Normal) CreateObject1
(@CGUID+298, 210931, 2915, 16573, 0, '1,2,23,8,205', '0', 0, 0, 0, 278.80902099609375, 128.078125, 142.096710205078125, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Path Helper (Area: 0 - Difficulty: Normal) CreateObject1 (Auras: 422357 - Bot AI Follow Advert)
(@CGUID+299, 241645, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 0, 256.65625, 97.62326812744140625, 148.854339599609375, 5.821419715881347656, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Hollowsoul Scrounger (Area: Core Defense Nullward - Difficulty: Normal) CreateObject1 (Auras: 1252204 - Leech Veil)
(@CGUID+300, 251853, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 0, 268.854156494140625, 88.314239501953125, 142.1946258544921875, 4.238554000854492187, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Grand Nullifier (Area: Core Defense Nullward - Difficulty: Normal) CreateObject1 (Auras: 1257984 - Nascent Energy)
(@CGUID+301, 241645, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 0, 306.517364501953125, 116.8125, 148.8324737548828125, 4.769547939300537109, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Hollowsoul Scrounger (Area: Core Defense Nullward - Difficulty: Normal) CreateObject1 (Auras: 294030 - Set Health (Random 75%-100%), 1252204 - Leech Veil)
(@CGUID+302, 241645, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 0, 301.8350830078125, 108.864593505859375, 149.282135009765625, 6.15589141845703125, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Hollowsoul Scrounger (Area: Core Defense Nullward - Difficulty: Normal) CreateObject1 (Auras: 294030 - Set Health (Random 75%-100%), 1252204 - Leech Veil)
(@CGUID+303, 254220, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 0, 297.88714599609375, 108.8125, 142.2517547607421875, 4.448391437530517578, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Duskwraith (Area: Core Defense Nullward - Difficulty: Normal) CreateObject1
(@CGUID+304, 248502, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 1, 302.9444580078125, 114.8350677490234375, 142.203033447265625, 5.530322551727294921, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Null Sentinel (Area: Core Defense Nullward - Difficulty: Normal) CreateObject1 (Auras: 294030 - Set Health (Random 75%-100%))
(@CGUID+305, 248501, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 0, 264.59375, 83.94965362548828125, 142.432403564453125, 0.61418086290359497, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Reformed Voidling (Area: Core Defense Nullward - Difficulty: Normal) CreateObject1 (Auras: 1257984 - Nascent Energy)
(@CGUID+306, 248501, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 0, 269.2569580078125, 82.51909637451171875, 142.389373779296875, 1.801064372062683105, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Reformed Voidling (Area: Core Defense Nullward - Difficulty: Normal) CreateObject1 (Auras: 1257984 - Nascent Energy)
(@CGUID+307, 210931, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 0, 294.295135498046875, 90.8993072509765625, 144.261383056640625, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Path Helper (Area: Core Defense Nullward - Difficulty: Normal) CreateObject1 (Auras: 422357 - Bot AI Follow Advert)
(@CGUID+308, 254222, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 0, 301.477447509765625, 99.00521087646484375, 142.7877960205078125, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Voidwalker (Area: Core Defense Nullward - Difficulty: Normal) CreateObject1
(@CGUID+309, 254222, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 0, 299.989593505859375, 74.12326812744140625, 144.4366912841796875, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Voidwalker (Area: Core Defense Nullward - Difficulty: Normal) CreateObject1
(@CGUID+310, 248501, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 0, 332.40625, 98.157989501953125, 144.543243408203125, 4.062982082366943359, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Reformed Voidling (Area: Core Defense Nullward - Difficulty: Normal) CreateObject1 (Auras: 1257984 - Nascent Energy)
(@CGUID+311, 248501, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 0, 340.305572509765625, 101.3680572509765625, 144.4102325439453125, 5.797312736511230468, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Reformed Voidling (Area: Core Defense Nullward - Difficulty: Normal) CreateObject1 (Auras: 1257984 - Nascent Energy)
(@CGUID+312, 248501, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 0, 336.3975830078125, 93.81597137451171875, 144.4805755615234375, 4.03501129150390625, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Reformed Voidling (Area: Core Defense Nullward - Difficulty: Normal) CreateObject1 (Auras: 1257984 - Nascent Energy)
(@CGUID+313, 241645, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 0, 308.1007080078125, 57.78125, 150.401031494140625, 1.135070085525512695, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Hollowsoul Scrounger (Area: Core Defense Nullward - Difficulty: Normal) CreateObject1 (Auras: 1252204 - Leech Veil)
(@CGUID+314, 241645, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 0, 311.270843505859375, 58.10069656372070312, 150.4844818115234375, 2.486450672149658203, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Hollowsoul Scrounger (Area: Core Defense Nullward - Difficulty: Normal) CreateObject1 (Auras: 1252204 - Leech Veil)
(@CGUID+315, 251853, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 0, 343.9375, 73.204864501953125, 144.29901123046875, 2.830726146697998046, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Grand Nullifier (Area: Core Defense Nullward - Difficulty: Normal) CreateObject1 (Auras: 1257984 - Nascent Energy)
(@CGUID+316, 248706, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 0, 351.685760498046875, 78.82465362548828125, 144.3104705810546875, 0.763779699802398681, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Cursed Voidcaller (Area: Core Defense Nullward - Difficulty: Normal) CreateObject1 (Auras: 1281635 - Creeping Void)
(@CGUID+317, 248501, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 0, 340.94097900390625, 70.01041412353515625, 144.3260650634765625, 2.767949104309082031, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Reformed Voidling (Area: Core Defense Nullward - Difficulty: Normal) CreateObject1 (Auras: 1257984 - Nascent Energy)
(@CGUID+318, 248501, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 0, 344.15277099609375, 77.01389312744140625, 144.3316192626953125, 2.948238611221313476, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Reformed Voidling (Area: Core Defense Nullward - Difficulty: Normal) CreateObject1 (Auras: 1257984 - Nascent Energy)
(@CGUID+319, 241645, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 0, 372.41839599609375, 90.14583587646484375, 150.753692626953125, 4.412775039672851562, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Hollowsoul Scrounger (Area: Core Defense Nullward - Difficulty: Normal) CreateObject1 (Auras: 1252204 - Leech Veil)
(@CGUID+320, 254220, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 0, 350.8038330078125, 75.5694427490234375, 144.3000030517578125, 4.379230499267578125, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Duskwraith (Area: Core Defense Nullward - Difficulty: Normal) CreateObject1
(@CGUID+321, 248706, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 0, 344.109375, 63.25, 144.3348541259765625, 4.564809322357177734, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Cursed Voidcaller (Area: Core Defense Nullward - Difficulty: Normal) CreateObject1 (Auras: 1281635 - Creeping Void)
(@CGUID+322, 241645, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 0, 384.37176513671875, 92.65118408203125, 151.9167633056640625, 5.879070281982421875, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Hollowsoul Scrounger (Area: Core Defense Nullward - Difficulty: Normal) CreateObject1 (Auras: 1252204 - Leech Veil)
(@CGUID+323, 251852, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 0, 465.395843505859375, 33.3211822509765625, 157.294403076171875, 5.697864532470703125, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Nullifier (Area: Core Defense Nullward - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%)
(@CGUID+324, 241645, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 0, 386.90863037109375, 91.4353485107421875, 149.7446746826171875, 5.564260482788085937, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Hollowsoul Scrounger (Area: Core Defense Nullward - Difficulty: Normal) CreateObject1 (Auras: 1252204 - Leech Veil)
(@CGUID+325, 251878, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 0, 471.5538330078125, 32.97048568725585937, 157.294403076171875, 5.340092658996582031, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Voidcaller (Area: Core Defense Nullward - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%)
(@CGUID+326, 251852, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 0, 443.40972900390625, -19.1111106872558593, 157.3578033447265625, 6.208936214447021484, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Nullifier (Area: Core Defense Nullward - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%)
(@CGUID+327, 241645, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 0, 342.171875, 36.69791793823242187, 149.8001708984375, 1.141785621643066406, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Hollowsoul Scrounger (Area: Core Defense Nullward - Difficulty: Normal) CreateObject1 (Auras: 1252204 - Leech Veil)
(@CGUID+328, 248506, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 1, 368.11285400390625, 55.41319656372070312, 144.2830963134765625, 5.847620010375976562, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Dreadflail (Area: Core Defense Nullward - Difficulty: Normal) CreateObject1 (Auras: 294030 - Set Health (Random 75%-100%), 42459 - Dual Wield, 1223119 - Invisibility and Stealth Detection)
(@CGUID+329, 251852, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 0, 459.8507080078125, -11.0486116409301757, 157.365264892578125, 4.197253704071044921, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Nullifier (Area: Core Defense Nullward - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%)
(@CGUID+330, 251850, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 0, 456.993072509765625, -25.5347232818603515, 157.32061767578125, 2.060556888580322265, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Voidwalker (Area: Core Defense Nullward - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%)
(@CGUID+331, 251850, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 0, 454.375, -17.7013893127441406, 157.3608856201171875, 4.442293643951416015, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Voidwalker (Area: Core Defense Nullward - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%)
(@CGUID+332, 241645, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 0, 344.23089599609375, 32.890625, 151.758331298828125, 4.012613773345947265, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Hollowsoul Scrounger (Area: Core Defense Nullward - Difficulty: Normal) CreateObject1 (Auras: 1252204 - Leech Veil)
(@CGUID+333, 251878, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 0, 459.930572509765625, -17.2048606872558593, 157.37548828125, 3.567115545272827148, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Voidcaller (Area: Core Defense Nullward - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%)
(@CGUID+334, 251852, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 0, 472.298614501953125, 16.35416603088378906, 157.294403076171875, 1.128057837486267089, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Nullifier (Area: Core Defense Nullward - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%)
(@CGUID+335, 251850, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 0, 479.649322509765625, 29.46006965637207031, 157.294403076171875, 3.990271329879760742, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Voidwalker (Area: Core Defense Nullward - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%)
(@CGUID+336, 251850, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 0, 473.28125, 22.52777862548828125, 157.3617095947265625, 0.872660338878631591, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Voidwalker (Area: Core Defense Nullward - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%)
(@CGUID+337, 254222, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 0, 369.427093505859375, 64.82291412353515625, 144.388671875, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Voidwalker (Area: Core Defense Nullward - Difficulty: Normal) CreateObject1
(@CGUID+338, 210931, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 0, 362.098968505859375, 58.4305572509765625, 144.262664794921875, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Path Helper (Area: Core Defense Nullward - Difficulty: Normal) CreateObject1 (Auras: 422357 - Bot AI Follow Advert)
(@CGUID+339, 241645, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 0, 367.888885498046875, 63.05729293823242187, 147.95574951171875, 5.472643852233886718, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Hollowsoul Scrounger (Area: Core Defense Nullward - Difficulty: Normal) CreateObject1 (Auras: 294030 - Set Health (Random 75%-100%), 1252204 - Leech Veil)
(@CGUID+340, 241645, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 0, 358.838531494140625, 54.55729293823242187, 148.80078125, 6.15589141845703125, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Hollowsoul Scrounger (Area: Core Defense Nullward - Difficulty: Normal) CreateObject1 (Auras: 294030 - Set Health (Random 75%-100%), 1252204 - Leech Veil)
(@CGUID+341, 254220, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 0, 353.791656494140625, 50.42708206176757812, 144.362152099609375, 2.056137561798095703, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Duskwraith (Area: Core Defense Nullward - Difficulty: Normal) CreateObject1
(@CGUID+342, 251852, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 0, 443.354156494140625, -28.2743053436279296, 157.453094482421875, 0.667187333106994628, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Nullifier (Area: Core Defense Nullward - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%)
(@CGUID+343, 255133, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 0, 476.76910400390625, 25.78298568725585937, 157.294403076171875, 3.98471832275390625, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Fractured Image (Area: Core Defense Nullward - Difficulty: Normal) CreateObject1 (Auras: 1250945 - [DNT] Visual, 123978 - Mod Scale 95-120%)
(@CGUID+344, 255133, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 0, 453.1319580078125, -22.916666030883789, 157.34234619140625, 1.294394254684448242, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Fractured Image (Area: Core Defense Nullward - Difficulty: Normal) CreateObject1 (Auras: 1250945 - [DNT] Visual, 123978 - Mod Scale 95-120%)
(@CGUID+345, 251852, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 0, 481.43402099609375, 15.66145801544189453, 157.294403076171875, 2.002669811248779296, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Nullifier (Area: Core Defense Nullward - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%)
(@CGUID+346, 241645, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 0, 357.986724853515625, 8.816162109375, 154.7701416015625, 0.087309002876281738, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Hollowsoul Scrounger (Area: Core Defense Nullward - Difficulty: Normal) CreateObject1 (Auras: 1252204 - Leech Veil)
(@CGUID+347, 254947, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 0, 401.039947509765625, 93.58159637451171875, 147.2759552001953125, 0.739109218120574951, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Unbound Void (Area: Core Defense Nullward - Difficulty: Normal) CreateObject1
(@CGUID+348, 254947, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 0, 410.935760498046875, 84.26389312744140625, 149.7142181396484375, 0.739109218120574951, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Unbound Void (Area: Core Defense Nullward - Difficulty: Normal) CreateObject1
(@CGUID+349, 251853, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 0, 424.36285400390625, 40.96875, 148.7676849365234375, 3.528490543365478515, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Grand Nullifier (Area: Core Defense Nullward - Difficulty: Normal) CreateObject1 (Auras: 1257984 - Nascent Energy)
(@CGUID+350, 251853, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 0, 409.833343505859375, 15.78298664093017578, 148.766632080078125, 2.035259246826171875, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Grand Nullifier (Area: Core Defense Nullward - Difficulty: Normal) CreateObject1 (Auras: 1257984 - Nascent Energy)
(@CGUID+351, 254220, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 0, 443.34027099609375, 61.25694656372070312, 148.7666473388671875, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Duskwraith (Area: Core Defense Nullward - Difficulty: Normal) CreateObject1
(@CGUID+352, 248501, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 0, 429.427093505859375, 35.93923568725585937, 148.767669677734375, 3.046934366226196289, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Reformed Voidling (Area: Core Defense Nullward - Difficulty: Normal) CreateObject1 (Auras: 1257984 - Nascent Energy)
(@CGUID+353, 210931, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 0, 423.442718505859375, 23.65798568725585937, 148.7666473388671875, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Path Helper (Area: Core Defense Nullward - Difficulty: Normal) CreateObject1 (Auras: 422357 - Bot AI Follow Advert)
(@CGUID+354, 254947, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 0, 369.248260498046875, -10.6770830154418945, 153.20074462890625, 1.852089524269104003, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Unbound Void (Area: Core Defense Nullward - Difficulty: Normal) CreateObject1
(@CGUID+355, 248501, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 0, 411.060760498046875, 9.975694656372070312, 148.766387939453125, 1.671773791313171386, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Reformed Voidling (Area: Core Defense Nullward - Difficulty: Normal) CreateObject1 (Auras: 1257984 - Nascent Energy)
(@CGUID+356, 241642, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 0, 313.09375, 81.126739501953125, 170.3966217041015625, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lingering Image (Area: Core Defense Nullward - Difficulty: Normal) CreateObject2 (Auras: 1284462 - [DNT]Bronze Affix Marker Spell)
(@CGUID+357, 254220, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 0, 436.435760498046875, 34.06076431274414062, 148.7666473388671875, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Duskwraith (Area: Core Defense Nullward - Difficulty: Normal) CreateObject1
(@CGUID+358, 254222, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 0, 411.619781494140625, -0.76041668653488159, 148.7666473388671875, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Voidwalker (Area: Core Defense Nullward - Difficulty: Normal) CreateObject1
(@CGUID+359, 254947, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 0, 382.46875, -17.7378482818603515, 153.28961181640625, 0.739109218120574951, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Unbound Void (Area: Core Defense Nullward - Difficulty: Normal) CreateObject1
(@CGUID+360, 254947, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 0, 452.289947509765625, 93.01041412353515625, 143.3032684326171875, 0.739109218120574951, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Unbound Void (Area: Core Defense Nullward - Difficulty: Normal) CreateObject1
(@CGUID+361, 241660, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 0, 466.057281494140625, -8.91840267181396484, 157.294403076171875, 2.082299470901489257, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Duskfright Herald (Area: Core Defense Nullward - Difficulty: Normal) CreateObject2 (Auras: 1223119 - Invisibility and Stealth Detection)
(@CGUID+362, 241660, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 0, 471.7413330078125, 2.557291746139526367, 157.294403076171875, 3.17967844009399414, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Duskfright Herald (Area: Core Defense Nullward - Difficulty: Normal) CreateObject2 (Auras: 1223119 - Invisibility and Stealth Detection)
(@CGUID+363, 210932, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 0, 458.79339599609375, 48.18576431274414062, 156.109893798828125, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Path Helper (Area: Core Defense Nullward - Difficulty: Normal) CreateObject1 (Auras: 422360 - Bot AI Follow Advert)
(@CGUID+364, 254947, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 0, 460.239593505859375, 89.44791412353515625, 135.0593109130859375, 4.765379905700683593, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Unbound Void (Area: Core Defense Nullward - Difficulty: Normal) CreateObject1
(@CGUID+365, 254220, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 0, 470.130218505859375, 49.66145706176757812, 157.294403076171875, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Duskwraith (Area: Core Defense Nullward - Difficulty: Normal) CreateObject1
(@CGUID+366, 254947, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 0, 371.989593505859375, -35.6701393127441406, 154.1821136474609375, 1.305245041847229003, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Unbound Void (Area: Core Defense Nullward - Difficulty: Normal) CreateObject1
(@CGUID+367, 210932, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 0, 466.86285400390625, -1.859375, 157.525177001953125, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587); -- Path Helper (Area: Core Defense Nullward - Difficulty: Normal) CreateObject1 (Auras: 422360 - Bot AI Follow Advert)
INSERT INTO `creature` (`guid`, `id`, `map`, `zoneId`, `areaId`, `spawnDifficulties`, `PhaseId`, `PhaseGroup`, `modelid`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `wander_distance`, `currentwaypoint`, `MovementType`, `npcflag`, `unit_flags`, `unit_flags2`, `unit_flags3`, `VerifiedBuild`) VALUES
(@CGUID+368, 248501, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 0, 457.989593505859375, -19.9097232818603515, 157.4097137451171875, 1.771047353744506835, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Reformed Voidling (Area: Core Defense Nullward - Difficulty: Normal) CreateObject2 (Auras: 1257984 - Nascent Energy)
(@CGUID+369, 248501, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 0, 457.758697509765625, -23.0538196563720703, 157.338409423828125, 1.771047353744506835, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Reformed Voidling (Area: Core Defense Nullward - Difficulty: Normal) CreateObject2 (Auras: 1257984 - Nascent Energy)
(@CGUID+370, 241660, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 0, 451.786468505859375, -26.057291030883789, 157.3347625732421875, 1.771047353744506835, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Duskfright Herald (Area: Core Defense Nullward - Difficulty: Normal) CreateObject2 (Auras: 1223119 - Invisibility and Stealth Detection)
(@CGUID+371, 241645, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 0, 446.73089599609375, -24.5607643127441406, 157.352508544921875, 1.771047353744506835, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Hollowsoul Scrounger (Area: Core Defense Nullward - Difficulty: Normal) CreateObject2 (Auras: 1252204 - Leech Veil)
(@CGUID+372, 241645, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 0, 444.989593505859375, -26.2152786254882812, 157.379547119140625, 1.771047353744506835, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Hollowsoul Scrounger (Area: Core Defense Nullward - Difficulty: Normal) CreateObject2 (Auras: 1252204 - Leech Veil)
(@CGUID+373, 248501, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 0, 472.345489501953125, 29.29861068725585937, 157.294403076171875, 3.243260622024536132, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Reformed Voidling (Area: Core Defense Nullward - Difficulty: Normal) CreateObject2 (Auras: 1257984 - Nascent Energy)
(@CGUID+374, 248502, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 1, 472.345489501953125, 29.29861068725585937, 157.294403076171875, 3.243260622024536132, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Null Sentinel (Area: Core Defense Nullward - Difficulty: Normal) CreateObject2 (Auras: 18950 - Invisibility and Stealth Detection)
(@CGUID+375, 241645, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 0, 472.345489501953125, 29.29861068725585937, 157.294403076171875, 3.243260622024536132, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Hollowsoul Scrounger (Area: Core Defense Nullward - Difficulty: Normal) CreateObject2 (Auras: 1252204 - Leech Veil)
(@CGUID+376, 248706, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 0, 472.345489501953125, 29.29861068725585937, 157.294403076171875, 3.243260622024536132, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Cursed Voidcaller (Area: Core Defense Nullward - Difficulty: Normal) CreateObject2 (Auras: 1281635 - Creeping Void)
(@CGUID+377, 251031, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 0, 481.177093505859375, 14.22743034362792968, 157.294403076171875, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Grand Nullifier (Area: Core Defense Nullward - Difficulty: Normal) CreateObject2 (Auras: 1253621 - Shade)
(@CGUID+378, 251031, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 0, 476.515625, 7.487847328186035156, 157.294403076171875, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Grand Nullifier (Area: Core Defense Nullward - Difficulty: Normal) CreateObject2 (Auras: 1253621 - Shade)
(@CGUID+379, 256215, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 0, 440.759552001953125, 10.16575241088867187, 148.883331298828125, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Path Helper (Area: Core Defense Nullward - Difficulty: Normal) CreateObject2
(@CGUID+380, 256215, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 0, 442.268035888671875, 19.0397186279296875, 148.883331298828125, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Path Helper (Area: Core Defense Nullward - Difficulty: Normal) CreateObject2
(@CGUID+381, 213069, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 0, 469.717010498046875, -3.52604174613952636, 157.5089569091796875, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Path Helper (Area: Core Defense Nullward - Difficulty: Normal) CreateObject2
(@CGUID+382, 211152, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 0, 478.557281494140625, -7.73784732818603515, 161.8008880615234375, 5.071795463562011718, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Path Helper (Area: Core Defense Nullward - Difficulty: Normal) CreateObject2 (Auras: 424283 - Passive)
(@CGUID+383, 211137, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 0, 477.26910400390625, -12.3836803436279296, 161.426483154296875, 0.875669717788696289, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Path Helper (Area: Core Defense Nullward - Difficulty: Normal) CreateObject2 (Auras: 424283 - Passive)
(@CGUID+384, 211149, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 0, 481.939239501953125, -5.69097232818603515, 162.1810150146484375, 0.080561690032482147, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Path Helper (Area: Core Defense Nullward - Difficulty: Normal) CreateObject2 (Auras: 424283 - Passive)
(@CGUID+385, 211151, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 0, 475.859375, -15.8854169845581054, 161.1626739501953125, 1.712825298309326171, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Path Helper (Area: Core Defense Nullward - Difficulty: Normal) CreateObject2 (Auras: 424283 - Passive)
(@CGUID+386, 211150, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 0, 485.258697509765625, -2.80555558204650878, 162.2971038818359375, 5.473778247833251953, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Path Helper (Area: Core Defense Nullward - Difficulty: Normal) CreateObject2 (Auras: 424283 - Passive)
(@CGUID+387, 255698, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 0, 402.68402099609375, 166.20660400390625, 146.9442596435546875, 0.628318548202514648, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Portal (Area: Core Defense Nullward - Difficulty: Normal) CreateObject2 (Auras: 1266194 - Portal)
(@CGUID+388, 255698, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 0, 493.914947509765625, 253.1493072509765625, 169.29486083984375, 3.176499128341674804, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Portal (Area: Core Defense Nullward - Difficulty: Normal) CreateObject2 (Auras: 1266194 - Portal)
(@CGUID+389, 255698, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 0, 495.095489501953125, 235.6822967529296875, 167.9810638427734375, 3.193952560424804687, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Portal (Area: Core Defense Nullward - Difficulty: Normal) CreateObject2 (Auras: 1266194 - Portal)
(@CGUID+390, 255698, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 0, 385.09722900390625, 231.953125, 130.0214080810546875, 1.134464025497436523, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Portal (Area: Core Defense Nullward - Difficulty: Normal) CreateObject2 (Auras: 1266194 - Portal)
(@CGUID+391, 255698, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 0, 402.40625, 190.2239532470703125, 133.9600067138671875, 0.872664630413055419, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Portal (Area: Core Defense Nullward - Difficulty: Normal) CreateObject2 (Auras: 1266194 - Portal)
(@CGUID+392, 255698, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 0, 506.138885498046875, 273.4913330078125, 157.810150146484375, 3.543018341064453125, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Portal (Area: Core Defense Nullward - Difficulty: Normal) CreateObject2 (Auras: 1266194 - Portal)
(@CGUID+393, 255698, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 0, 497.779510498046875, 218.4583282470703125, 164.25579833984375, 3.40339207649230957, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Portal (Area: Core Defense Nullward - Difficulty: Normal) CreateObject2 (Auras: 1266194 - Portal)
(@CGUID+394, 255698, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 0, 374.90972900390625, 192.498260498046875, 151.8928985595703125, 0.837758064270019531, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Portal (Area: Core Defense Nullward - Difficulty: Normal) CreateObject2 (Auras: 1266194 - Portal)
(@CGUID+395, 248363, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 0, 483.9952392578125, -8.78447628021240234, 163.4648590087890625, 5.633633136749267578, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Energy Flow (Area: Core Defense Nullward - Difficulty: Normal) CreateObject2 (Auras: )
(@CGUID+396, 255698, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 0, 508.265625, 243.1336822509765625, 177.267242431640625, 2.879793167114257812, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Portal (Area: Core Defense Nullward - Difficulty: Normal) CreateObject2 (Auras: 1266194 - Portal)
(@CGUID+397, 255700, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 0, 400.40277099609375, 211.5989532470703125, 146.082794189453125, 0.51630491018295288, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Portal (Area: Core Defense Nullward - Difficulty: Normal) CreateObject1 (Auras: 1266015 - Portal)
(@CGUID+398, 255700, 2915, 16573, 16575, '1,2,23,8,205', '0', 0, 0, 0, 496.1788330078125, 243.361114501953125, 164.167388916015625, 3.278792858123779296, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Portal (Area: Core Defense Nullward - Difficulty: Normal) CreateObject1 (Auras: 1266015 - Portal)
(@CGUID+399, 211152, 2915, 16573, 16576, '1,2,23,8,205', '0', 0, 0, 0, 220.81597900390625, 307.0538330078125, 162.9593505859375, 5.071795463562011718, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Path Helper (Area: The Nexus Core - Difficulty: Normal) CreateObject1 (Auras: 424283 - Passive)
(@CGUID+400, 211137, 2915, 16573, 16576, '1,2,23,8,205', '0', 0, 0, 0, 221.4340362548828125, 305.057281494140625, 162.96630859375, 0.875669717788696289, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Path Helper (Area: The Nexus Core - Difficulty: Normal) CreateObject1 (Auras: 424283 - Passive)
(@CGUID+401, 211149, 2915, 16573, 16576, '1,2,23,8,205', '0', 0, 0, 0, 221.4652862548828125, 311.328125, 162.9913177490234375, 0.080561690032482147, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Path Helper (Area: The Nexus Core - Difficulty: Normal) CreateObject1 (Auras: 424283 - Passive)
(@CGUID+402, 211151, 2915, 16573, 16576, '1,2,23,8,205', '0', 0, 0, 0, 221.689239501953125, 302.626739501953125, 162.977325439453125, 1.712825298309326171, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Path Helper (Area: The Nexus Core - Difficulty: Normal) CreateObject1 (Auras: 424283 - Passive)
(@CGUID+403, 211150, 2915, 16573, 16576, '1,2,23,8,205', '0', 0, 0, 0, 223.2100677490234375, 313.447906494140625, 162.946258544921875, 5.473778247833251953, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Path Helper (Area: The Nexus Core - Difficulty: Normal) CreateObject1 (Auras: 424283 - Passive)
(@CGUID+404, 213069, 2915, 16573, 0, '1,2,23,8,205', '0', 0, 0, 0, 208.3993072509765625, 307.517364501953125, 162.550262451171875, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Path Helper (Area: 0 - Difficulty: Normal) CreateObject1
(@CGUID+405, 255698, 2915, 16573, 0, '1,2,23,8,205', '0', 0, 0, 0, 497.717010498046875, 224.263885498046875, 148.954376220703125, 2.705260276794433593, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Portal (Area: 0 - Difficulty: Normal) CreateObject2 (Auras: 1266194 - Portal)
(@CGUID+406, 255698, 2915, 16573, 0, '1,2,23,8,205', '0', 0, 0, 0, 493.44964599609375, 245.9375, 157.177978515625, 3.159045934677124023, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Portal (Area: 0 - Difficulty: Normal) CreateObject2 (Auras: 1266194 - Portal)
(@CGUID+407, 255698, 2915, 16573, 0, '1,2,23,8,205', '0', 0, 0, 0, 512.640625, 221.7725677490234375, 182.1227569580078125, 3.612831592559814453, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Portal (Area: 0 - Difficulty: Normal) CreateObject2 (Auras: 1266194 - Portal)
(@CGUID+408, 255698, 2915, 16573, 0, '1,2,23,8,205', '0', 0, 0, 0, 430.13714599609375, 206.609375, 148.419525146484375, 0.907571196556091308, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Portal (Area: 0 - Difficulty: Normal) CreateObject2 (Auras: 1266194 - Portal)
(@CGUID+409, 210932, 2915, 16573, 0, '1,2,23,8,205', '0', 0, 0, 0, 338.6007080078125, 307.14410400390625, 151.4581756591796875, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Path Helper (Area: 0 - Difficulty: Normal) CreateObject2 (Auras: 422360 - Bot AI Follow Advert)
(@CGUID+410, 210932, 2915, 16573, 0, '1,2,23,8,205', '0', 0, 0, 0, 263.92535400390625, 306.12847900390625, 152.98663330078125, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Path Helper (Area: 0 - Difficulty: Normal) CreateObject2 (Auras: 422360 - Bot AI Follow Advert)
(@CGUID+411, 210932, 2915, 16573, 0, '1,2,23,8,205', '0', 0, 0, 0, 420.439239501953125, 307.348968505859375, 132.189849853515625, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Path Helper (Area: 0 - Difficulty: Normal) CreateObject1 (Auras: 422360 - Bot AI Follow Advert)
(@CGUID+412, 210932, 2915, 16573, 0, '1,2,23,8,205', '0', 0, 0, 0, 463.104156494140625, 284.524322509765625, 132.24298095703125, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Path Helper (Area: 0 - Difficulty: Normal) CreateObject1 (Auras: 422360 - Bot AI Follow Advert)
(@CGUID+413, 210932, 2915, 16573, 16576, '1,2,23,8,205', '0', 0, 0, 0, 467.10589599609375, 334.60589599609375, 132.0731964111328125, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Path Helper (Area: The Nexus Core - Difficulty: Normal) CreateObject1 (Auras: 422360 - Bot AI Follow Advert)
(@CGUID+414, 260032, 2915, 16573, 16576, '1,2,23,8,205', '0', 0, 0, 0, 465.055633544921875, 303.30908203125, 132.42620849609375, 0.142223775386810302, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Brilliant Dispersion (Area: The Nexus Core - Difficulty: Normal) CreateObject2 (Auras: )
(@CGUID+415, 260032, 2915, 16573, 16576, '1,2,23,8,205', '0', 0, 0, 0, 475.923370361328125, 307.415924072265625, 133.3018035888671875, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587); -- Brilliant Dispersion (Area: The Nexus Core - Difficulty: Normal) CreateObject2 (Auras: )
INSERT INTO `creature` (`guid`, `id`, `map`, `zoneId`, `areaId`, `spawnDifficulties`, `PhaseId`, `PhaseGroup`, `modelid`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `wander_distance`, `currentwaypoint`, `MovementType`, `npcflag`, `unit_flags`, `unit_flags2`, `unit_flags3`, `VerifiedBuild`) VALUES
(@CGUID+416, 260032, 2915, 16573, 16576, '1,2,23,8,205', '0', 0, 0, 0, 476.996185302734375, 286.3843994140625, 133.059417724609375, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Brilliant Dispersion (Area: The Nexus Core - Difficulty: Normal) CreateObject2 (Auras: )
(@CGUID+417, 260032, 2915, 16573, 16576, '1,2,23,8,205', '0', 0, 0, 0, 497.7791748046875, 265.42041015625, 132.735198974609375, 4.648974895477294921, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Brilliant Dispersion (Area: The Nexus Core - Difficulty: Normal) CreateObject2 (Auras: )
(@CGUID+418, 248499, 2915, 16573, 16576, '1,2,23,8,205', '0', 0, 0, 1, 418.30035400390625, 293.5694580078125, 132.23150634765625, 0.234033271670341491, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587); -- Decimus (Area: The Nexus Core - Difficulty: Normal) CreateObject2
SET @OGUID := 220471;
DELETE FROM `gameobject` WHERE `guid` BETWEEN @OGUID+0 AND @OGUID+32;
INSERT INTO `gameobject` (`guid`, `id`, `map`, `zoneId`, `areaId`, `spawnDifficulties`, `PhaseId`, `PhaseGroup`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecs`, `animprogress`, `state`, `VerifiedBuild`) VALUES
(@OGUID+0, 587889, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 355.346710205078125, 307.153228759765625, 144.0562896728515625, 3.141592741012573242, 0, 0, -1, 0, 7200, 255, 1, 69587), -- Core Bridge (Area: Nexus-Point Xenas - Difficulty: 0) CreateObject2
(@OGUID+1, 252245, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 77.109375, 307.479156494140625, 187.8961181640625, 0, 0, 0, 0, 1, 7200, 255, 1, 69587), -- Instance Portal (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1
(@OGUID+2, 587890, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 227.10308837890625, 307.225830078125, 163.059967041015625, 3.141592741012573242, 0, 0, -1, 0, 7200, 255, 0, 69587), -- Core Access Console (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1
(@OGUID+3, 578968, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 211.6458282470703125, 466.423614501953125, 140.4300384521484375, 6.069355487823486328, 0, 0, -0.10671138763427734, 0.994289994239807128, 7200, 255, 1, 69587), -- [DNT] Collision (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1
(@OGUID+4, 578968, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 307.993072509765625, 488.7882080078125, 142.0974273681640625, 6.069355487823486328, 0, 0, -0.10671138763427734, 0.994289994239807128, 7200, 255, 1, 69587), -- [DNT] Collision (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1
(@OGUID+5, 578968, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 309.670135498046875, 555.5086669921875, 144.176116943359375, 6.069355487823486328, 0, 0, -0.10671138763427734, 0.994289994239807128, 7200, 255, 1, 69587), -- [DNT] Collision (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1
(@OGUID+6, 578968, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 363.11285400390625, 538.43231201171875, 144.0701904296875, 6.069347858428955078, 0, 0, -0.10671520233154296, 0.994289636611938476, 7200, 255, 1, 69587), -- [DNT] Collision (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1
(@OGUID+7, 625713, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 436.337890625, 69.3304901123046875, 149.7155914306640625, 4.768561363220214843, 0, 0, -0.68697071075439453, 0.726685106754302978, 7200, 255, 1, 69587), -- 12FX_Raid1_VoidCosmic_Wall01 (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1
(@OGUID+8, 625715, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 388.243499755859375, -8.4639892578125, 149.730682373046875, 0.395243048667907714, 0, 0, 0.196337699890136718, 0.980536341667175292, 7200, 255, 1, 69587), -- 12FX_Raid1_VoidCosmic_Wall01 (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1
(@OGUID+9, 625714, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 391.317169189453125, 44.054473876953125, 149.7302703857421875, 5.74442291259765625, 0, 0, -0.26613521575927734, 0.963935673236846923, 7200, 255, 0, 69587), -- 12.0 Dungeon - Nexus Point - Boss 2 - Door (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1
(@OGUID+10, 625725, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 401.74664306640625, 572.57861328125, 152.6232452392578125, 0.476379334926605224, 0, 0, 0.235943794250488281, 0.97176671028137207, 7200, 255, 0, 69587), -- 12.0 Dungeon - Nexus Point - Boss 1 - Door (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1
(@OGUID+11, 613873, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 420.62652587890625, 556.98089599609375, 152.7308197021484375, 6.026617050170898437, 0, 0, -0.12793254852294921, 0.991782903671264648, 7200, 255, 1, 69587), -- Corespark Conduit (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1
(@OGUID+12, 613874, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 409.98101806640625, 562.2215576171875, 152.730804443359375, 5.638984203338623046, 0, 0, -0.3165597915649414, 0.94857257604598999, 7200, 255, 1, 69587), -- Corespark Conduit (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1
(@OGUID+13, 578968, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 371.661468505859375, 595.80035400390625, 144.155731201171875, 6.069355487823486328, 0, 0, -0.10671138763427734, 0.994289994239807128, 7200, 255, 1, 69587), -- [DNT] Collision (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1
(@OGUID+14, 613872, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 432.43597412109375, 556.1856689453125, 152.7308197021484375, 4.85680389404296875, 0, 0, -0.65425014495849609, 0.756278216838836669, 7200, 255, 1, 69587), -- Corespark Conduit (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1
(@OGUID+15, 613869, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 433.6669921875, 616.2554931640625, 152.7308502197265625, 1.403146266937255859, 0, 0, 0.645420074462890625, 0.763827800750732421, 7200, 255, 1, 69587), -- Corespark Conduit (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1
(@OGUID+16, 613868, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 415.55865478515625, 613.8275146484375, 152.7308502197265625, 2.021914482116699218, 0, 0, 0.847340583801269531, 0.531049847602844238, 7200, 255, 1, 69587), -- Corespark Conduit (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1
(@OGUID+17, 613871, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 443.619293212890625, 560.0048828125, 152.7308197021484375, 5.256373405456542968, 0, 0, -0.49114704132080078, 0.871076703071594238, 7200, 255, 1, 69587), -- Corespark Conduit (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1
(@OGUID+18, 614553, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 447.884124755859375, 596.4443359375, 158.0598602294921875, 0.475621730089187622, 0, 0, 0.235575675964355468, 0.971855998039245605, 7200, 255, 0, 69587), -- Arcane Barrier (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1
(@OGUID+19, 613865, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 398.145233154296875, 584.88848876953125, 152.7308807373046875, 3.190227508544921875, 0, 0, -0.99970436096191406, 0.024314984679222106, 7200, 255, 1, 69587), -- Corespark Conduit (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1
(@OGUID+20, 613867, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 406.07647705078125, 606.73358154296875, 152.73089599609375, 2.41585397720336914, 0, 0, 0.934882164001464843, 0.354958206415176391, 7200, 255, 1, 69587), -- Corespark Conduit (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1
(@OGUID+21, 613866, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 399.920501708984375, 596.602294921875, 152.73089599609375, 2.81042647361755371, 0, 0, 0.986322402954101562, 0.164827466011047363, 7200, 255, 1, 69587), -- Corespark Conduit (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1
(@OGUID+22, 618395, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 448.113861083984375, 53.1649169921875, 148.828826904296875, 5.967965126037597656, 0, 0, -0.15695858001708984, 0.987605214118957519, 7200, 255, 0, 69587), -- Void Barrier (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1
(@OGUID+23, 618394, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 410.04156494140625, -13.434661865234375, 149.1716461181640625, 5.543343544006347656, 0, 0, -0.361541748046875, 0.932355940341949462, 7200, 255, 0, 69587), -- Void Barrier (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1
(@OGUID+24, 587892, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 468.965057373046875, 607.2724609375, 157.86083984375, 3.626818180084228515, 0, 0, -0.97071361541748046, 0.240239590406417846, 7200, 255, 0, 69587), -- Manacite Conduit (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1
(@OGUID+25, 587891, 2915, 16573, 16573, '1,2,23,8,205', '0', 0, 485.75946044921875, -12.779327392578125, 164.11956787109375, 2.633391380310058593, 0, 0, 0.967889785766601562, 0.251374989748001098, 7200, 255, 0, 69587), -- Vantacite Conduit (Area: Nexus-Point Xenas - Difficulty: Normal) CreateObject1
(@OGUID+26, 614550, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 443.2718505859375, 559.336181640625, 152.62322998046875, 2.06183481216430664, 0, 0, 0.857770919799804687, 0.514032185077667236, 7200, 255, 1, 69587), -- 10FX_Generic_Dragon_Blue_Rune_Trickle03_v2 (Area: Corespark Engineway - Difficulty: Normal) CreateObject1
(@OGUID+27, 614554, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 414.49737548828125, 613.67108154296875, 152.6232452392578125, 5.197168350219726562, 0, 0, -0.51671409606933593, 0.856158018112182617, 7200, 255, 1, 69587), -- 10FX_Generic_Dragon_Blue_Rune_Trickle03_v2 (Area: Corespark Engineway - Difficulty: Normal) CreateObject1
(@OGUID+28, 613870, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 455.9619140625, 573.4029541015625, 152.7308502197265625, 5.86234283447265625, 0, 0, -0.20887184143066406, 0.977943003177642822, 7200, 255, 1, 69587), -- Corespark Conduit (Area: Corespark Engineway - Difficulty: Normal) CreateObject1
(@OGUID+29, 642603, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 446.142364501953125, 611.9913330078125, 152.5821075439453125, 0, 0, 0, 0, 1, 7200, 255, 1, 69587), -- Cylinder Collision (5 Scale, No Camera Collision) (Area: Corespark Engineway - Difficulty: Normal) CreateObject1
(@OGUID+30, 642603, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 444.623260498046875, 608.421875, 157.7375030517578125, 0, 0, 0, 0, 1, 7200, 255, 1, 69587), -- Cylinder Collision (5 Scale, No Camera Collision) (Area: Corespark Engineway - Difficulty: Normal) CreateObject1
(@OGUID+31, 642603, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 459.649322509765625, 586.01043701171875, 152.3878936767578125, 0, 0, 0, 0, 1, 7200, 255, 1, 69587), -- Cylinder Collision (5 Scale, No Camera Collision) (Area: Corespark Engineway - Difficulty: Normal) CreateObject1
(@OGUID+32, 642603, 2915, 16573, 16574, '1,2,23,8,205', '0', 0, 458.414947509765625, 587.40106201171875, 156.6102447509765625, 0, 0, 0, 0, 1, 7200, 255, 1, 69587); -- Cylinder Collision (5 Scale, No Camera Collision) (Area: Corespark Engineway - Difficulty: Normal) CreateObject1
@@ -0,0 +1,68 @@
DELETE FROM `battleground_template` WHERE `ID` = 1145;
INSERT INTO `battleground_template`
(`ID`,`MinPlayersPerTeam`,`MaxPlayersPerTeam`,`MinLvl`,`MaxLvl`,`AllianceStartLoc`,`HordeStartLoc`,`StartMaxDist`,`Weight`,`ScriptName`,`Comment`) VALUES
(1145, 1, 1, 10, 90, 0, 0, 0, 1, '', 'Training Grounds');
UPDATE `battleground_template` SET `AllianceStartLoc` = 929, `HordeStartLoc` = 936 WHERE `ID` = 1065;
UPDATE `battleground_template` SET `AllianceStartLoc` = 929, `HordeStartLoc` = 936 WHERE `ID` = 1145;
UPDATE `quest_template_addon` SET `PrevQuestID`=70125 WHERE `ID`=69911;
UPDATE `quest_template_addon` SET `NextQuestID`=69912 WHERE `ID`=69911;
DELETE FROM `creature` WHERE `guid`=670663;
DELETE FROM `creature` WHERE `guid`=670664;
REPLACE INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `ConditionStringValue1`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES (15, 28679, 2, 0, 0, 9, 0, 69912, 0, 0, '', 0, 0, 0, '', NULL);
REPLACE INTO `creature_text` (`CreatureID`, `GroupID`, `ID`, `Text`, `Type`, `Language`, `Probability`, `Emote`, `Duration`, `Sound`, `SoundPlayType`, `BroadcastTextId`, `TextRange`, `comment`) VALUES (193362, 0, 0, 'Yes, I had expected Majordomo Selistra and Wrathion to be here by now...But I am honored to be the one to welcome you to the Dragon Isles! On my first real assignment, no less. What good fortune', 12, 0, 100, 0, 0, 204412, 0, 224985, 0, '');
REPLACE INTO `creature_text` (`CreatureID`, `GroupID`, `ID`, `Text`, `Type`, `Language`, `Probability`, `Emote`, `Duration`, `Sound`, `SoundPlayType`, `BroadcastTextId`, `TextRange`, `comment`) VALUES (193362, 3, 0, 'We were trained to only use these signal flares if the situation is dire.', 12, 0, 100, 0, 0, 204477, 0, 225339, 0, '');
REPLACE INTO `creature_text` (`CreatureID`, `GroupID`, `ID`, `Text`, `Type`, `Language`, `Probability`, `Emote`, `Duration`, `Sound`, `SoundPlayType`, `BroadcastTextId`, `TextRange`, `comment`) VALUES (193362, 5, 0, 'There! Majordomo Selistra will arrive soon.', 12, 0, 100, 0, 0, 204479, 0, 225341, 0, '');
REPLACE INTO `creature_text` (`CreatureID`, `GroupID`, `ID`, `Text`, `Type`, `Language`, `Probability`, `Emote`, `Duration`, `Sound`, `SoundPlayType`, `BroadcastTextId`, `TextRange`, `comment`) VALUES (193362, 2, 0, 'On my first real assignment,no less.What good fortune!', 12, 0, 100, 0, 0, 204414, 0, 224987, 0, '');
REPLACE INTO `creature_text` (`CreatureID`, `GroupID`, `ID`, `Text`, `Type`, `Language`, `Probability`, `Emote`, `Duration`, `Sound`, `SoundPlayType`, `BroadcastTextId`, `TextRange`, `comment`) VALUES (193362, 4, 0, 'But I suppose this is a type of emergency.', 12, 0, 100, 0, 0, 204478, 0, 225340, 0, '');
REPLACE INTO `creature_text` (`CreatureID`, `GroupID`, `ID`, `Text`, `Type`, `Language`, `Probability`, `Emote`, `Duration`, `Sound`, `SoundPlayType`, `BroadcastTextId`, `TextRange`, `comment`) VALUES (193362, 1, 0, 'But I am honored to be the one to welcome you to the Dragon Isles!', 12, 0, 100, 0, 0, 204413, 0, 224986, 0, '');
REPLACE INTO `creature_text` (`CreatureID`, `GroupID`, `ID`, `Text`, `Type`, `Language`, `Probability`, `Emote`, `Duration`, `Sound`, `SoundPlayType`, `BroadcastTextId`, `TextRange`, `comment`) VALUES (193362, 6, 0, ' Oh yes. In times of trouble, there is no one Queen Alexstrasza trusts more. ', 12, 0, 100, 0, 0, 204480, 0, 225343, 0, '');
DELETE FROM `smart_scripts` WHERE `entryorguid`=193362;
REPLACE INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `Difficulties`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param_string`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `action_param7`, `action_param_string`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_param_string`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES (193362, 0, 4, 5, '', 40, 0, 100, 0, 2, 193362, 0, 0, 0, '', 12, 193363, 8, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'SPawn');
REPLACE INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `Difficulties`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param_string`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `action_param7`, `action_param_string`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_param_string`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES (193362, 0, 2, 3, '', 61, 0, 100, 0, 0, 0, 0, 0, 0, '', 33, 193989, 0, 0, 0, 0, 0, 0, NULL, 7, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'On player opened gossip - Gossip player: Give kill credit Kill Credit: Send Up Flare (193989)');
REPLACE INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `Difficulties`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param_string`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `action_param7`, `action_param_string`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_param_string`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES (193362, 0, 3, 0, '', 61, 0, 100, 0, 0, 0, 0, 0, 0, '', 80, 19336200, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'On player opened gossip - Gossip player: Give kill credit Kill Credit: Dragons Land (193990)');
REPLACE INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `Difficulties`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param_string`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `action_param7`, `action_param_string`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_param_string`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES (193362, 0, 1, 2, '', 62, 0, 100, 0, 28679, 1, 0, 0, 0, '', 33, 193989, 0, 0, 0, 0, 0, 0, NULL, 7, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'On player opened gossip - Gossip player: Give kill credit Kill Credit: Send Up Flare (193989)');
REPLACE INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `Difficulties`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param_string`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `action_param7`, `action_param_string`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_param_string`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES (193362, 0, 0, 0, '', 64, 0, 100, 0, 0, 0, 0, 0, 0, '', 33, 193817, 0, 0, 0, 0, 0, 0, NULL, 7, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'On player opened gossip - Gossip player: Give kill credit Kill Credit: Talk to Sendrax (193817)');
REPLACE INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `Difficulties`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param_string`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `action_param7`, `action_param_string`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_param_string`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES (193362, 0, 7, 0, '', 61, 0, 100, 0, 0, 0, 0, 0, 0, '', 33, 194018, 0, 0, 0, 0, 0, 0, NULL, 7, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'On player opened gossip - Gossip player: Give kill credit Kill Credit: Ready for Dragons (194018)');
REPLACE INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `Difficulties`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param_string`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `action_param7`, `action_param_string`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_param_string`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES (193362, 0, 5, 6, '', 61, 0, 100, 0, 0, 0, 0, 0, 0, '', 33, 198386, 0, 0, 0, 0, 0, 0, NULL, 7, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'On player opened gossip - Gossip player: Give kill credit Kill Credit: Dragons Land (198386)');
REPLACE INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `Difficulties`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param_string`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `action_param7`, `action_param_string`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_param_string`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES (193362, 0, 6, 7, '', 61, 0, 100, 0, 0, 0, 0, 0, 0, '', 41, 1000, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'Despawn');
REPLACE INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `Difficulties`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param_string`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `action_param7`, `action_param_string`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_param_string`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES (19336200, 9, 0, 0, '', 0, 0, 100, 0, 1500, 1500, 0, 0, 0, '', 1, 3, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'Speak');
REPLACE INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `Difficulties`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param_string`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `action_param7`, `action_param_string`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_param_string`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES (19336200, 9, 1, 0, '', 0, 0, 100, 0, 5000, 5000, 0, 0, 0, '', 1, 4, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'Speak');
REPLACE INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `Difficulties`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param_string`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `action_param7`, `action_param_string`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_param_string`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES (19336200, 9, 2, 0, '', 0, 0, 100, 0, 5000, 5000, 0, 0, 0, '', 53, 0, 193362, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'Start WAypoint');
REPLACE INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `Difficulties`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param_string`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `action_param7`, `action_param_string`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_param_string`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES (19336200, 9, 3, 0, '', 0, 0, 100, 0, 2000, 2000, 0, 0, 0, '', 1, 5, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'sPEAK');
REPLACE INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `Difficulties`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param_string`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `action_param7`, `action_param_string`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_param_string`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES (19336200, 9, 4, 0, '', 0, 0, 100, 0, 5000, 5000, 0, 0, 0, '', 1, 6, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'sPEAK');
DELETE FROM `creature` WHERE `guid`=670665;
DELETE FROM `smart_scripts` WHERE `entryorguid`=193363;
REPLACE INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `Difficulties`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param_string`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `action_param7`, `action_param_string`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_param_string`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES (193363, 0, 1, 0, '', 61, 0, 100, 0, 0, 0, 0, 0, 0, '', 33, 194125, 0, 0, 0, 0, 0, 0, NULL, 7, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'On player opened gossip - Gossip player: Give kill credit Kill Credit: Finish Escort (194125)');
REPLACE INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `Difficulties`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param_string`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `action_param7`, `action_param_string`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_param_string`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES (193363, 0, 2, 3, '', 61, 0, 100, 0, 0, 0, 0, 0, 0, '', 12, 191807, 8, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'Spawn');
REPLACE INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `Difficulties`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param_string`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `action_param7`, `action_param_string`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_param_string`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES (193363, 0, 3, 0, '', 61, 0, 100, 0, 0, 0, 0, 0, 0, '', 41, 1000, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'Despawn');
REPLACE INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `Difficulties`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param_string`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `action_param7`, `action_param_string`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_param_string`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES (193363, 0, 1, 2, '', 62, 0, 100, 0, 28754, 2, 0, 0, 0, '', 33, 193423, 0, 0, 0, 0, 0, 0, NULL, 7, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'On player opened gossip - Gossip player: Give kill credit Kill Credit: Start Escort (193423)');
REPLACE INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `Difficulties`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param_string`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `action_param7`, `action_param_string`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_param_string`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES (193363, 0, 0, 0, '', 54, 0, 100, 0, 0, 0, 0, 0, 0, '', 80, 19336300, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'On SPawn --start Action');
REPLACE INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `Difficulties`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param_string`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `action_param7`, `action_param_string`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_param_string`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES (193363, 0, 4, 0, '', 64, 0, 100, 0, 0, 0, 0, 0, 0, '', 33, 193990, 0, 0, 0, 0, 0, 0, NULL, 7, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'Killcredit');
DELETE FROM `creature_queststarter` WHERE `id`=193371 AND `quest`=69914;
DELETE FROM `smart_scripts` WHERE `entryorguid`=191807;
REPLACE INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `Difficulties`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param_string`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `action_param7`, `action_param_string`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_param_string`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES (191807, 0, 1, 0, '', 61, 0, 100, 0, 0, 0, 0, 0, 0, '', 33, 194125, 0, 0, 0, 0, 0, 0, NULL, 7, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'On player opened gossip - Gossip player: Give kill credit Kill Credit: Finish Escort (194125)');
REPLACE INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `Difficulties`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param_string`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `action_param7`, `action_param_string`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_param_string`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES (191807, 0, 0, 1, '', 54, 0, 100, 0, 0, 0, 0, 0, 0, '', 80, 19180700, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'On Spawn--start Action');
REPLACE INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `Difficulties`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param_string`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `action_param7`, `action_param_string`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_param_string`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES (191807, 0, 2, 0, '', 40, 0, 100, 0, 14, 191807, 0, 0, 0, '', 1, 7, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'Speak');
REPLACE INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `Difficulties`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param_string`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `action_param7`, `action_param_string`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_param_string`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES (19180700, 9, 0, 0, '', 0, 0, 100, 0, 5000, 5000, 0, 0, 0, '', 1, 0, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'Speak ');
REPLACE INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `Difficulties`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param_string`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `action_param7`, `action_param_string`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_param_string`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES (19180700, 9, 1, 0, '', 0, 0, 100, 0, 0, 0, 0, 0, 0, '', 53, 1, 191807, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'Start WP');
REPLACE INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `Difficulties`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param_string`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `action_param7`, `action_param_string`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_param_string`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES (19180700, 9, 2, 0, '', 0, 0, 100, 0, 0, 0, 0, 0, 0, '', 136, 0, 7, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'Set speed');
REPLACE INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `Difficulties`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param_string`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `action_param7`, `action_param_string`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_param_string`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES (19180700, 9, 3, 0, '', 0, 0, 100, 0, 7500, 7500, 0, 0, 0, '', 1, 1, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'Speak');
REPLACE INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `Difficulties`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param_string`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `action_param7`, `action_param_string`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_param_string`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES (19180700, 9, 4, 0, '', 0, 0, 100, 0, 7500, 7500, 0, 0, 0, '', 1, 2, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'Speak');
REPLACE INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `Difficulties`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param_string`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `action_param7`, `action_param_string`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_param_string`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES (19180700, 9, 5, 0, '', 0, 0, 100, 0, 9500, 9500, 0, 0, 0, '', 1, 3, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'Speak');
REPLACE INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `Difficulties`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param_string`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `action_param7`, `action_param_string`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_param_string`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES (19180700, 9, 6, 0, '', 0, 0, 100, 0, 9500, 9500, 0, 0, 0, '', 1, 4, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'Speak');
REPLACE INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `Difficulties`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param_string`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `action_param7`, `action_param_string`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_param_string`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES (19180700, 9, 7, 0, '', 0, 0, 100, 0, 10000, 10000, 0, 0, 0, '', 1, 5, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'Speak');
REPLACE INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `Difficulties`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param_string`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `action_param7`, `action_param_string`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_param_string`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES (19180700, 9, 8, 0, '', 0, 0, 100, 0, 12000, 12000, 0, 0, 0, '', 1, 6, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'Speak');
@@ -0,0 +1,196 @@
REPLACE INTO `spell_target_position` (`ID`, `EffectIndex`, `OrderIndex`, `MapID`, `PositionX`, `PositionY`, `PositionZ`, `VerifiedBuild`) VALUES
(1261650, 0, 0, 2915, 208.6354217529296875, 149.9149322509765625, 140.4300384521484375, 69587), -- Spell: 1261650 (Void Ritual) Effect 0: 32 (SPELL_EFFECT_TRIGGER_MISSILE)
(1261650, 0, 1, 2915, 279.69097900390625, 143.126739501953125, 140.4288482666015625, 69587), -- Spell: 1261650 (Void Ritual) Effect 0: 32 (SPELL_EFFECT_TRIGGER_MISSILE)
(1261650, 0, 2, 2915, 279.15277099609375, 149.670135498046875, 140.6839141845703125, 69587), -- Spell: 1261650 (Void Ritual) Effect 0: 32 (SPELL_EFFECT_TRIGGER_MISSILE)
(1261650, 0, 3, 2915, 223.795135498046875, 159.08160400390625, 140.613372802734375, 69587), -- Spell: 1261650 (Void Ritual) Effect 0: 32 (SPELL_EFFECT_TRIGGER_MISSILE)
(1261650, 0, 4, 2915, 272.1632080078125, 136.75347900390625, 140.4291534423828125, 69587), -- Spell: 1261650 (Void Ritual) Effect 0: 32 (SPELL_EFFECT_TRIGGER_MISSILE)
(1261650, 0, 5, 2915, 282.177093505859375, 135.3211822509765625, 140.4702606201171875, 69587), -- Spell: 1261650 (Void Ritual) Effect 0: 32 (SPELL_EFFECT_TRIGGER_MISSILE)
(1261650, 0, 6, 2915, 215.892364501953125, 141.3697967529296875, 140.6512908935546875, 69587), -- Spell: 1261650 (Void Ritual) Effect 0: 32 (SPELL_EFFECT_TRIGGER_MISSILE)
(1261650, 0, 7, 2915, 212.0229949951171875, 160.8520050048828125, 140.4579925537109375, 69587), -- Spell: 1261650 (Void Ritual) Effect 0: 32 (SPELL_EFFECT_TRIGGER_MISSILE)
(1261650, 0, 8, 2915, 221.2864532470703125, 147.75, 140.6132354736328125, 69587), -- Spell: 1261650 (Void Ritual) Effect 0: 32 (SPELL_EFFECT_TRIGGER_MISSILE)
(1261650, 0, 9, 2915, 216.407989501953125, 153.7743072509765625, 140.5665435791015625, 69587), -- Spell: 1261650 (Void Ritual) Effect 0: 32 (SPELL_EFFECT_TRIGGER_MISSILE)
(1261650, 0, 10, 2915, 281.076385498046875, 90.01215362548828125, 142.111297607421875, 69587), -- Spell: 1261650 (Void Ritual) Effect 0: 32 (SPELL_EFFECT_TRIGGER_MISSILE)
(1261650, 0, 11, 2915, 275.123260498046875, 98.97222137451171875, 142.228790283203125, 69587), -- Spell: 1261650 (Void Ritual) Effect 0: 32 (SPELL_EFFECT_TRIGGER_MISSILE)
(1261650, 0, 12, 2915, 266.921875, 85.04166412353515625, 142.111297607421875, 69587), -- Spell: 1261650 (Void Ritual) Effect 0: 32 (SPELL_EFFECT_TRIGGER_MISSILE)
(1261650, 0, 13, 2915, 266.359375, 95.36978912353515625, 142.111297607421875, 69587), -- Spell: 1261650 (Void Ritual) Effect 0: 32 (SPELL_EFFECT_TRIGGER_MISSILE)
(1261650, 0, 14, 2915, 256.708343505859375, 92.220489501953125, 142.111297607421875, 69587), -- Spell: 1261650 (Void Ritual) Effect 0: 32 (SPELL_EFFECT_TRIGGER_MISSILE)
(1266614, 0, 0, 2915, 305.018402099609375, 299.73590087890625, 153.59686279296875, 69587), -- Spell: 1266614 (Bridge Power) Effect 0: 3 (SPELL_EFFECT_DUMMY)
(1266614, 0, 1, 2915, 302.470184326171875, 308.9661865234375, 153.4318389892578125, 69587), -- Spell: 1266614 (Bridge Power) Effect 0: 3 (SPELL_EFFECT_DUMMY)
(1266614, 0, 2, 2915, 298.6654052734375, 322.19781494140625, 153.9826202392578125, 69587), -- Spell: 1266614 (Bridge Power) Effect 0: 3 (SPELL_EFFECT_DUMMY)
(1266614, 0, 3, 2915, 304.665283203125, 299.095947265625, 153.59686279296875, 69587), -- Spell: 1266614 (Bridge Power) Effect 0: 3 (SPELL_EFFECT_DUMMY)
(1266614, 0, 4, 2915, 302.877655029296875, 301.56890869140625, 153.17047119140625, 69587), -- Spell: 1266614 (Bridge Power) Effect 0: 3 (SPELL_EFFECT_DUMMY)
(1266614, 0, 5, 2915, 305.039642333984375, 300.30950927734375, 153.59686279296875, 69587), -- Spell: 1266614 (Bridge Power) Effect 0: 3 (SPELL_EFFECT_DUMMY)
(1266614, 0, 6, 2915, 304.96563720703125, 316.125030517578125, 153.697235107421875, 69587), -- Spell: 1266614 (Bridge Power) Effect 0: 3 (SPELL_EFFECT_DUMMY)
(1266614, 0, 7, 2915, 301.050384521484375, 321.762298583984375, 153.8740081787109375, 69587); -- Spell: 1266614 (Bridge Power) Effect 0: 3 (SPELL_EFFECT_DUMMY)
UPDATE `creature_template_difficulty` SET `VerifiedBuild`=69587 WHERE (`DifficultyID`=0 AND `Entry` IN (62822,62821));
UPDATE `creature_template_difficulty` SET `ContentTuningID`=5143, `StaticFlags1`=0x10000000 WHERE (`Entry`=248499 AND `DifficultyID`=0); -- 248499 (Decimus) - CanSwim
UPDATE `creature_template_difficulty` SET `LevelScalingDeltaMin`=2, `LevelScalingDeltaMax`=2, `ContentTuningID`=5143, `StaticFlags1`=0x30000100, `StaticFlags3`=0x4 WHERE (`Entry`=251568 AND `DifficultyID`=0); -- 251568 (Fractured Image) - Sessile, CanSwim, Floating - DoNotFadeIn
UPDATE `creature_template_difficulty` SET `ContentTuningID`=5143, `StaticFlags1`=0x0, `StaticFlags3`=0x4, `StaticFlags4`=0x2000000 WHERE (`Entry`=260032 AND `DifficultyID`=0); -- 260032 (Brilliant Dispersion) - DoNotFadeIn - HideInCombatLog
UPDATE `creature_template_difficulty` SET `ContentTuningID`=5143, `StaticFlags1`=0x20000100, `StaticFlags3`=0x2000000 WHERE (`Entry`=255700 AND `DifficultyID`=0); -- 255700 (Portal) - Sessile, Floating - CannotTurn
UPDATE `creature_template_difficulty` SET `ContentTuningID`=5143, `StaticFlags1`=0x20000100, `StaticFlags3`=0x2000000 WHERE (`Entry`=255698 AND `DifficultyID`=0); -- 255698 (Portal) - Sessile, Floating - CannotTurn
UPDATE `creature_template_difficulty` SET `ContentTuningID`=2940, `StaticFlags1`=0x30000100, `StaticFlags5`=0x1 WHERE (`Entry`=256215 AND `DifficultyID`=0); -- 256215 (Path Helper) - Sessile, CanSwim, Floating - UntargetableByClient
UPDATE `creature_template_difficulty` SET `LevelScalingDeltaMin`=1, `LevelScalingDeltaMax`=1, `ContentTuningID`=5143, `StaticFlags1`=0x10000000, `StaticFlags4`=0x2000000 WHERE (`Entry`=255179 AND `DifficultyID`=0); -- 255179 (Fractured Image) - CanSwim - HideInCombatLog
UPDATE `creature_template_difficulty` SET `LevelScalingDeltaMin`=1, `LevelScalingDeltaMax`=1, `ContentTuningID`=5143, `StaticFlags1`=0x10000000 WHERE (`Entry`=251031 AND `DifficultyID`=0); -- 251031 (Grand Nullifier) - CanSwim
UPDATE `creature_template_difficulty` SET `LevelScalingDeltaMin`=1, `LevelScalingDeltaMax`=1, `ContentTuningID`=5143, `StaticFlags1`=0x10000000, `StaticFlags4`=0x2000000, `StaticFlags5`=0x1 WHERE (`Entry`=255133 AND `DifficultyID`=0); -- 255133 (Fractured Image) - CanSwim - HideInCombatLog - UntargetableByClient
UPDATE `creature_template_difficulty` SET `ContentTuningID`=5143, `StaticFlags1`=0x10000000, `StaticFlags4`=0x2000000, `StaticFlags5`=0x1 WHERE (`Entry`=251850 AND `DifficultyID`=0); -- 251850 (Voidwalker) - CanSwim - HideInCombatLog - UntargetableByClient
UPDATE `creature_template_difficulty` SET `LevelScalingDeltaMin`=1, `LevelScalingDeltaMax`=1, `ContentTuningID`=5143, `StaticFlags1`=0x10000000 WHERE (`Entry`=248506 AND `DifficultyID`=0); -- 248506 (Dreadflail) - CanSwim
UPDATE `creature_template_difficulty` SET `ContentTuningID`=5143, `StaticFlags1`=0x10000000, `StaticFlags4`=0x2000000, `StaticFlags5`=0x1 WHERE (`Entry`=251878 AND `DifficultyID`=0); -- 251878 (Voidcaller) - CanSwim - HideInCombatLog - UntargetableByClient
UPDATE `creature_template_difficulty` SET `ContentTuningID`=5143, `StaticFlags1`=0x10000000, `StaticFlags4`=0x2000000, `StaticFlags5`=0x1 WHERE (`Entry`=251852 AND `DifficultyID`=0); -- 251852 (Nullifier) - CanSwim - HideInCombatLog - UntargetableByClient
UPDATE `creature_template_difficulty` SET `ContentTuningID`=5143, `StaticFlags1`=0x0 WHERE (`Entry`=250775 AND `DifficultyID`=0); -- 250775 (Dusk Fright) -
UPDATE `creature_template_difficulty` SET `ContentTuningID`=482, `StaticFlags1`=0x30000100, `StaticFlags3`=0x2000000, `StaticFlags5`=0x2001 WHERE (`Entry`=254386 AND `DifficultyID`=0); -- 254386 (Champion's Spear) - Sessile, CanSwim, Floating - CannotTurn - UntargetableByClient, SuppressHighlightWhenTargetedOrMousedOver
UPDATE `creature_template_difficulty` SET `ContentTuningID`=5143, `StaticFlags1`=0x10000000 WHERE (`Entry`=248769 AND `DifficultyID`=0); -- 248769 (Smudge) - CanSwim
UPDATE `creature_template_difficulty` SET `ContentTuningID`=5143, `StaticFlags1`=0x10000000 WHERE (`Entry`=251853 AND `DifficultyID`=0); -- 251853 (Grand Nullifier) - CanSwim
UPDATE `creature_template_difficulty` SET `LevelScalingDeltaMin`=1, `LevelScalingDeltaMax`=1, `ContentTuningID`=5143, `StaticFlags1`=0x10000000 WHERE (`Entry`=248502 AND `DifficultyID`=0); -- 248502 (Null Sentinel) - CanSwim
UPDATE `creature_template_difficulty` SET `ContentTuningID`=5143, `StaticFlags1`=0x10000000 WHERE (`Entry`=248706 AND `DifficultyID`=0); -- 248706 (Cursed Voidcaller) - CanSwim
UPDATE `creature_template_difficulty` SET `ContentTuningID`=5143, `StaticFlags1`=0x10000000 WHERE (`Entry`=248501 AND `DifficultyID`=0); -- 248501 (Reformed Voidling) - CanSwim
UPDATE `creature_template_difficulty` SET `ContentTuningID`=5143, `StaticFlags1`=0x20000000, `StaticFlags3`=0x2000000 WHERE (`Entry`=248363 AND `DifficultyID`=0); -- 248363 (Energy Flow) - Floating - CannotTurn
UPDATE `creature_template_difficulty` SET `ContentTuningID`=2940, `StaticFlags1`=0x30000100, `StaticFlags5`=0x1 WHERE (`Entry`=213069 AND `DifficultyID`=1); -- 213069 (Path Helper) - Sessile, CanSwim, Floating - UntargetableByClient
UPDATE `creature_template_difficulty` SET `StaticFlags1`=0x10000000, `StaticFlags3`=0x4 WHERE (`Entry`=228224 AND `DifficultyID`=0); -- 228224 (Fenryr) - CanSwim - DoNotFadeIn
UPDATE `creature_template_difficulty` SET `ContentTuningID`=2940, `StaticFlags1`=0x30000100, `StaticFlags5`=0x1 WHERE (`Entry`=256090 AND `DifficultyID`=0); -- 256090 (Path Helper) - Sessile, CanSwim, Floating - UntargetableByClient
UPDATE `creature_template_difficulty` SET `ContentTuningID`=5143, `StaticFlags1`=0x20000100, `StaticFlags3`=0x4 WHERE (`Entry`=250299 AND `DifficultyID`=0); -- 250299 ([DNT] Conduit Stalker) - Sessile, Floating - DoNotFadeIn
UPDATE `creature_template_difficulty` SET `ContentTuningID`=5143, `StaticFlags1`=0x20000100, `StaticFlags3`=0x4, `StaticFlags4`=0x2000000 WHERE (`Entry`=255033 AND `DifficultyID`=0); -- 255033 (Broken Pipe) - Sessile, Floating - DoNotFadeIn - HideInCombatLog
UPDATE `creature_template_difficulty` SET `ContentTuningID`=5143, `StaticFlags1`=0x30000100, `StaticFlags3`=0x2000000 WHERE (`Entry`=259569 AND `DifficultyID`=0); -- 259569 (Mana Battery) - Sessile, CanSwim, Floating - CannotTurn
UPDATE `creature_template_difficulty` SET `StaticFlags1`=0x10000000, `StaticFlags3`=0x4 WHERE (`Entry`=228226 AND `DifficultyID`=0); -- 228226 (Hati) - CanSwim - DoNotFadeIn
UPDATE `creature_template_difficulty` SET `ContentTuningID`=5143, `StaticFlags1`=0x20000100, `StaticFlags3`=0x4, `StaticFlags4`=0x2000000 WHERE (`Entry`=254485 AND `DifficultyID`=0); -- 254485 (Corespark Pylon) - Sessile, Floating - DoNotFadeIn - HideInCombatLog
UPDATE `creature_template_difficulty` SET `ContentTuningID`=5143, `StaticFlags1`=0x30000100, `StaticFlags3`=0x2000000 WHERE (`Entry`=252825 AND `DifficultyID`=0); -- 252825 (Mana Battery) - Sessile, CanSwim, Floating - CannotTurn
UPDATE `creature_template_difficulty` SET `ContentTuningID`=5143, `StaticFlags1`=0x10000000 WHERE (`Entry`=241647 AND `DifficultyID`=0); -- 241647 (Flux Engineer) - CanSwim
UPDATE `creature_template_difficulty` SET `ContentTuningID`=5143, `StaticFlags1`=0x10000000 WHERE (`Entry`=248708 AND `DifficultyID`=0); -- 248708 (Nexus Adept) - CanSwim
UPDATE `creature_template_difficulty` SET `ContentTuningID`=81, `StaticFlags1`=0x20000000 WHERE (`Entry`=254948 AND `DifficultyID`=0); -- 254948 (Mana Feeder) - Floating
UPDATE `creature_template_difficulty` SET `ContentTuningID`=482, `StaticFlags1`=0x0, `StaticFlags3`=0x4 WHERE (`Entry`=260462 AND `DifficultyID`=0); -- 260462 (Beast) - DoNotFadeIn
UPDATE `creature_template_difficulty` SET `ContentTuningID`=482, `StaticFlags1`=0x10000000, `StaticFlags3`=0x4, `StaticFlags5`=0x1, `VerifiedBuild`=69587 WHERE (`Entry`=234018 AND `DifficultyID`=1); -- 234018 (Bear) - CanSwim - DoNotFadeIn - UntargetableByClient
UPDATE `creature_template_difficulty` SET `ContentTuningID`=5143, `StaticFlags1`=0x20000100, `StaticFlags3`=0x4, `StaticFlags4`=0x2000000 WHERE (`Entry`=254459 AND `DifficultyID`=0); -- 254459 (Broken Pipe) - Sessile, Floating - DoNotFadeIn - HideInCombatLog
UPDATE `creature_template_difficulty` SET `StaticFlags3`=0x4, `VerifiedBuild`=69587 WHERE (`Entry`=43499 AND `DifficultyID`=1); -- 43499 (Consecration) - Sessile, Floating - DoNotFadeIn
UPDATE `creature_template_difficulty` SET `ContentTuningID`=482, `StaticFlags1`=0x20000100, `StaticFlags5`=0x1 WHERE (`Entry`=47649 AND `DifficultyID`=1); -- 47649 (Efflorescence) - Sessile, Floating - UntargetableByClient
UPDATE `creature_template_difficulty` SET `ContentTuningID`=482, `StaticFlags1`=0x10000000 WHERE (`Entry`=255261 AND `DifficultyID`=1); -- 255261 (Dryad) - CanSwim
UPDATE `creature_template_difficulty` SET `ContentTuningID`=482, `StaticFlags1`=0x20000100 WHERE (`Entry`=54983 AND `DifficultyID`=1); -- 54983 (Treant) - Sessile, Floating
UPDATE `creature_template_difficulty` SET `ContentTuningID`=81, `StaticFlags1`=0x30000000 WHERE (`Entry`=254947 AND `DifficultyID`=0); -- 254947 (Unbound Void) - CanSwim, Floating
UPDATE `creature_template_difficulty` SET `ContentTuningID`=5143, `StaticFlags1`=0x20000100, `StaticFlags3`=0x2000000, `StaticFlags5`=0x1 WHERE (`Entry`=248922 AND `DifficultyID`=0); -- 248922 (Vantacite Conduit) - Sessile, Floating - CannotTurn - UntargetableByClient
UPDATE `creature_template_difficulty` SET `ContentTuningID`=5143, `StaticFlags1`=0x20000100, `StaticFlags3`=0x2000000, `StaticFlags5`=0x1 WHERE (`Entry`=248354 AND `DifficultyID`=0); -- 248354 (Manacite Conduit) - Sessile, Floating - CannotTurn - UntargetableByClient
UPDATE `creature_template_difficulty` SET `LevelScalingDeltaMin`=2, `LevelScalingDeltaMax`=2, `ContentTuningID`=5143, `StaticFlags1`=0x10000000 WHERE (`Entry`=241542 AND `DifficultyID`=0); -- 241542 (Corewarden Nysarra) - CanSwim
UPDATE `creature_template_difficulty` SET `ContentTuningID`=81, `StaticFlags1`=0x30000000 WHERE (`Entry`=254949 AND `DifficultyID`=0); -- 254949 (Flarefly) - CanSwim, Floating
UPDATE `creature_template_difficulty` SET `ContentTuningID`=5143, `StaticFlags1`=0x10000000 WHERE (`Entry`=254926 AND `DifficultyID`=0); -- 254926 (Lightwrought) - CanSwim
UPDATE `creature_template_difficulty` SET `ContentTuningID`=5143, `StaticFlags1`=0x0, `StaticFlags3`=0x4, `StaticFlags4`=0x2000000 WHERE (`Entry`=252938 AND `DifficultyID`=0); -- 252938 ([DNT] Orb Stalker) - DoNotFadeIn - HideInCombatLog
UPDATE `creature_template_difficulty` SET `LevelScalingDeltaMin`=2, `LevelScalingDeltaMax`=2, `ContentTuningID`=5143, `StaticFlags1`=0x30000000 WHERE (`Entry`=241539 AND `DifficultyID`=0); -- 241539 (Kasreth) - CanSwim, Floating
UPDATE `creature_template_difficulty` SET `ContentTuningID`=5143, `StaticFlags1`=0x10000000 WHERE (`Entry`=249711 AND `DifficultyID`=0); -- 249711 (Core Technician) - CanSwim
UPDATE `creature_template_difficulty` SET `LevelScalingDeltaMin`=2, `LevelScalingDeltaMax`=2, `ContentTuningID`=5143, `StaticFlags1`=0x10000000, `StaticFlags5`=0x1 WHERE (`Entry`=251830 AND `DifficultyID`=0); -- 251830 (Null Barrier) - CanSwim - UntargetableByClient
UPDATE `creature_template_difficulty` SET `ContentTuningID`=5143, `StaticFlags1`=0x30000000 WHERE (`Entry`=241645 AND `DifficultyID`=0); -- 241645 (Hollowsoul Scrounger) - CanSwim, Floating
UPDATE `creature_template_difficulty` SET `ContentTuningID`=5143, `StaticFlags1`=0x10000000, `StaticFlags4`=0x2000000 WHERE (`Entry`=241643 AND `DifficultyID`=0); -- 241643 (Shadowguard Defender) - CanSwim - HideInCombatLog
UPDATE `creature_template_difficulty` SET `ContentTuningID`=5143, `StaticFlags1`=0x10000000 WHERE (`Entry`=241644 AND `DifficultyID`=0); -- 241644 (Corewright Arcanist) - CanSwim
UPDATE `creature_template_difficulty` SET `ContentTuningID`=5143, `StaticFlags1`=0x0, `StaticFlags3`=0x4, `StaticFlags4`=0x2000000 WHERE (`Entry`=251621 AND `DifficultyID`=0); -- 251621 (Core) - DoNotFadeIn - HideInCombatLog
UPDATE `creature_template_difficulty` SET `ContentTuningID`=5143, `StaticFlags1`=0x30000000 WHERE (`Entry`=254932 AND `DifficultyID`=0); -- 254932 (Radiant Swarm) - CanSwim, Floating
UPDATE `creature_template_difficulty` SET `LevelScalingDeltaMin`=2, `LevelScalingDeltaMax`=2, `ContentTuningID`=5143, `StaticFlags1`=0x10000000 WHERE (`Entry`=254227 AND `DifficultyID`=0); -- 254227 (Corewarden Nysarra) - CanSwim
UPDATE `creature_template_difficulty` SET `LevelScalingDeltaMin`=1, `LevelScalingDeltaMax`=1, `ContentTuningID`=5143, `StaticFlags1`=0x10000000 WHERE (`Entry`=241660 AND `DifficultyID`=0); -- 241660 (Duskfright Herald) - CanSwim
UPDATE `creature_template_difficulty` SET `ContentTuningID`=5143, `StaticFlags1`=0x30000000 WHERE (`Entry`=254928 AND `DifficultyID`=0); -- 254928 (Flarebat) - CanSwim, Floating
UPDATE `creature_template_difficulty` SET `ContentTuningID`=5143, `StaticFlags1`=0x10000000 WHERE (`Entry`=253386 AND `DifficultyID`=0); -- 253386 (Entropy Pool) - CanSwim
UPDATE `creature_template_difficulty` SET `LevelScalingDeltaMin`=2, `LevelScalingDeltaMax`=2, `ContentTuningID`=5143, `StaticFlags1`=0x10000000, `StaticFlags4`=0x2000000 WHERE (`Entry`=241546 AND `DifficultyID`=0); -- 241546 (Lothraxion) - CanSwim - HideInCombatLog
UPDATE `creature_template_difficulty` SET `LevelScalingDeltaMin`=2, `LevelScalingDeltaMax`=2, `ContentTuningID`=5143, `StaticFlags1`=0x30000000, `StaticFlags4`=0x2000000 WHERE (`Entry`=249087 AND `DifficultyID`=0); -- 249087 (Lothraxion) - CanSwim, Floating - HideInCombatLog
UPDATE `creature_template_difficulty` SET `LevelScalingDeltaMin`=1, `LevelScalingDeltaMax`=1, `ContentTuningID`=5143, `StaticFlags1`=0x30000000 WHERE (`Entry`=248373 AND `DifficultyID`=0); -- 248373 (Circuit Seer) - CanSwim, Floating
UPDATE `creature_template_difficulty` SET `ContentTuningID`=5143, `StaticFlags1`=0x20000100, `StaticFlags3`=0x2000000 WHERE (`Entry`=252852 AND `DifficultyID`=0); -- 252852 (Corespark Conduit) - Sessile, Floating - CannotTurn
UPDATE `creature_template_difficulty` SET `ContentTuningID`=5143, `StaticFlags1`=0x20000100, `StaticFlags5`=0x1 WHERE (`Entry`=252870 AND `DifficultyID`=0); -- 252870 (Arcane Tripwire) - Sessile, Floating - UntargetableByClient
UPDATE `creature_template_difficulty` SET `ContentTuningID`=5143, `StaticFlags1`=0x0, `StaticFlags3`=0x4, `StaticFlags4`=0x2000000 WHERE (`Entry`=249096 AND `DifficultyID`=0); -- 249096 ([DNT] Stalker) - DoNotFadeIn - HideInCombatLog
UPDATE `creature_template_difficulty` SET `ContentTuningID`=5143, `StaticFlags1`=0x30000100 WHERE (`Entry`=252903 AND `DifficultyID`=0); -- 252903 (Nascent Dreadflail) - Sessile, CanSwim, Floating
UPDATE `creature_template_difficulty` SET `ContentTuningID`=5143, `StaticFlags1`=0x20000100, `StaticFlags3`=0x2000000 WHERE (`Entry`=249970 AND `DifficultyID`=0); -- 249970 (Core Access Power) - Sessile, Floating - CannotTurn
UPDATE `creature_template_difficulty` SET `ContentTuningID`=5143, `StaticFlags1`=0x10000000 WHERE (`Entry`=248487 AND `DifficultyID`=0); -- 248487 (Arator) - CanSwim
UPDATE `creature_template_difficulty` SET `ContentTuningID`=5143, `StaticFlags1`=0x10000000 WHERE (`Entry`=248498 AND `DifficultyID`=0); -- 248498 (Alleria Windrunner) - CanSwim
UPDATE `creature_template_difficulty` SET `ContentTuningID`=872, `StaticFlags1`=0x10000000, `VerifiedBuild`=69587 WHERE (`Entry`=32638 AND `DifficultyID`=1); -- 32638 (Hakmud of Argus) - CanSwim
UPDATE `creature_template_difficulty` SET `ContentTuningID`=872, `StaticFlags1`=0x10000000, `VerifiedBuild`=69587 WHERE (`Entry`=32639 AND `DifficultyID`=1); -- 32639 (Gnimo) - CanSwim
UPDATE `creature_template_difficulty` SET `ContentTuningID`=5143, `StaticFlags1`=0x30000100, `StaticFlags5`=0x1 WHERE (`Entry`=258604 AND `DifficultyID`=0); -- 258604 (Void Portal) - Sessile, CanSwim, Floating - UntargetableByClient
UPDATE `creature_template_difficulty` SET `ContentTuningID`=5143, `StaticFlags1`=0x30000100, `StaticFlags5`=0x1 WHERE (`Entry`=255836 AND `DifficultyID`=0); -- 255836 (Helper) - Sessile, CanSwim, Floating - UntargetableByClient
UPDATE `creature_template_difficulty` SET `ContentTuningID`=5143, `StaticFlags1`=0x10000000 WHERE (`Entry`=254222 AND `DifficultyID`=0); -- 254222 (Voidwalker) - CanSwim
UPDATE `creature_template_difficulty` SET `ContentTuningID`=5143, `StaticFlags1`=0x30000000 WHERE (`Entry`=254220 AND `DifficultyID`=0); -- 254220 (Duskwraith) - CanSwim, Floating
UPDATE `creature_template_difficulty` SET `ContentTuningID`=5143, `StaticFlags1`=0x10000000 WHERE (`Entry`=254225 AND `DifficultyID`=0); -- 254225 (Shadowguard Defender) - CanSwim
UPDATE `creature_template_difficulty` SET `LevelScalingDeltaMin`=1, `LevelScalingDeltaMax`=1, `ContentTuningID`=5143, `StaticFlags1`=0x10000000, `StaticFlags4`=0x2000000 WHERE (`Entry`=241642 AND `DifficultyID`=0); -- 241642 (Lingering Image) - CanSwim - HideInCombatLog
UPDATE `creature_template_difficulty` SET `ContentTuningID`=328, `StaticFlags1`=0x0, `StaticFlags3`=0x100 WHERE (`Entry`=245459 AND `DifficultyID`=0); -- 245459 (Nightborne Protector) - CannotSwim
UPDATE `creature_template_difficulty` SET `StaticFlags1`=0x0, `VerifiedBuild`=69587 WHERE (`Entry`=62026 AND `DifficultyID`=0); -- 62026 (General Purpose Bunny ZTO) - CannotSwim
UPDATE `creature_template_difficulty` SET `ContentTuningID`=3313, `StaticFlags1`=0x10000000 WHERE (`Entry`=235395 AND `DifficultyID`=0); -- 235395 (Magister Umbric) - CanSwim
UPDATE `creature_template_difficulty` SET `ContentTuningID`=3085, `StaticFlags1`=0x10000000 WHERE (`Entry`=251463 AND `DifficultyID`=0); -- 251463 (Islebound Treant) - CanSwim
UPDATE `creature_template` SET `faction`=14, `speed_run`=1, `BaseAttackTime`=2000, `unit_flags`=0x100 WHERE `entry`=248499; -- Decimus
UPDATE `creature_template` SET `faction`=16, `speed_walk`=0.888888001441955566, `speed_run`=0.992062866687774658, `BaseAttackTime`=2000, `unit_flags`=0x2000140, `unit_flags2`=0x820, `unit_flags3`=0x1400000 WHERE `entry`=251568; -- Fractured Image
UPDATE `creature_template` SET `faction`=14, `BaseAttackTime`=2000, `unit_flags`=0x2000100, `unit_flags2`=0x820, `unit_flags3`=0x1800001 WHERE `entry`=260032; -- Brilliant Dispersion
UPDATE `creature_template` SET `faction`=14, `BaseAttackTime`=2000, `unit_flags`=0x2000000, `unit_flags3`=0x41000001 WHERE `entry` IN (255700, 255698); -- Portal
UPDATE `creature_template` SET `BaseAttackTime`=2000, `unit_flags`=0x2000300, `unit_flags2`=0x4000000, `unit_flags3`=0x41008001 WHERE `entry` IN (256215, 256090); -- Path Helper
UPDATE `creature_template` SET `faction`=14, `speed_walk`=0.888888001441955566, `speed_run`=0.992062866687774658, `BaseAttackTime`=2000, `unit_flags`=0x2000040, `unit_flags3`=0x400000 WHERE `entry`=255179; -- Fractured Image
UPDATE `creature_template` SET `faction`=16, `BaseAttackTime`=2000 WHERE `entry`=251031; -- Grand Nullifier
UPDATE `creature_template` SET `unit_flags3`=0x41008001 WHERE `entry` IN (210932, 213069, 210931, 211111, 211150, 211151, 211149, 210930, 211137, 211152); -- Path Helper
UPDATE `creature_template` SET `faction`=1847, `speed_walk`=0.888888001441955566, `speed_run`=0.992062866687774658, `BaseAttackTime`=2000, `unit_flags`=0x2000100, `unit_flags2`=0x4000800, `unit_flags3`=0x1000000 WHERE `entry`=255133; -- Fractured Image
UPDATE `creature_template` SET `faction`=1848, `BaseAttackTime`=2000, `unit_flags`=0x2000100, `unit_flags2`=0x4000800, `unit_flags3`=0x1000000 WHERE `entry`=251850; -- Voidwalker
UPDATE `creature_template` SET `faction`=1693, `speed_run`=1, `BaseAttackTime`=3000, `unit_flags`=0x40, `VehicleId`=9116 WHERE `entry`=248506; -- Dreadflail
UPDATE `creature_template` SET `faction`=1848, `BaseAttackTime`=2000, `unit_flags`=0x2000100, `unit_flags2`=0x4000800, `unit_flags3`=0x1000000 WHERE `entry`=251878; -- Voidcaller
UPDATE `creature_template` SET `faction`=1848, `BaseAttackTime`=2000, `unit_flags`=0x2000100, `unit_flags2`=0x4000800, `unit_flags3`=0x1000000 WHERE `entry`=251852; -- Nullifier
UPDATE `creature_template` SET `faction`=16, `speed_walk`=1.399999976158142089, `speed_run`=0.5, `BaseAttackTime`=2000, `unit_flags`=0x2000000, `unit_flags3`=0x400001 WHERE `entry`=250775; -- Dusk Fright
UPDATE `creature_template` SET `speed_walk`=2, `speed_run`=0.714285731315612792, `BaseAttackTime`=2000, `unit_flags`=0x2000000, `unit_flags2`=0x4000800, `unit_flags3`=0x41408000 WHERE `entry`=254386; -- Champion's Spear
UPDATE `creature_template` SET `faction`=16, `speed_walk`=0.60000002384185791, `speed_run`=0.214285716414451599, `BaseAttackTime`=2000, `unit_flags2`=0x0, `unit_flags3`=0x80001 WHERE `entry`=248769; -- Smudge
UPDATE `creature_template` SET `faction`=16, `BaseAttackTime`=2000, `unit_flags`=0x40, `VehicleId`=9116 WHERE `entry`=251853; -- Grand Nullifier
UPDATE `creature_template` SET `faction`=16, `speed_run`=1, `BaseAttackTime`=2000, `unit_flags`=0x40, `VehicleId`=9116 WHERE `entry`=248502; -- Null Sentinel
UPDATE `creature_template` SET `faction`=16, `BaseAttackTime`=2000, `unit_flags`=0x40, `VehicleId`=9116 WHERE `entry`=248706; -- Cursed Voidcaller
UPDATE `creature_template` SET `faction`=16, `BaseAttackTime`=2000, `unit_flags`=0x40, `VehicleId`=9116 WHERE `entry`=248501; -- Reformed Voidling
UPDATE `creature_template` SET `faction`=14, `BaseAttackTime`=2000, `unit_flags`=0x2000000, `unit_flags3`=0x1, `VehicleId`=9073 WHERE `entry`=248363; -- Energy Flow
UPDATE `creature_template` SET `BaseAttackTime`=1756, `unit_flags3`=0x1000000 WHERE `entry`=228224; -- Fenryr
UPDATE `creature_template` SET `faction`=14, `BaseAttackTime`=2000, `unit_flags`=0x2000000, `unit_flags2`=0x820, `unit_flags3`=0x41800001 WHERE `entry`=250299; -- [DNT] Conduit Stalker
UPDATE `creature_template` SET `faction`=14, `BaseAttackTime`=2000, `unit_flags`=0x2000000, `unit_flags2`=0x820, `unit_flags3`=0x41800001 WHERE `entry` IN (255033, 254459); -- Broken Pipe
UPDATE `creature_template` SET `faction`=14, `speed_run`=1, `BaseAttackTime`=2000, `unit_flags`=0x2000, `unit_flags2`=0x0, `unit_flags3`=0x40480001 WHERE `entry`=259569; -- Mana Battery
UPDATE `creature_template` SET `BaseAttackTime`=1827, `unit_flags3`=0x1000000 WHERE `entry`=228226; -- Hati
UPDATE `creature_template` SET `faction`=14, `BaseAttackTime`=2000, `unit_flags`=0x2000000, `unit_flags2`=0x820, `unit_flags3`=0x41800001 WHERE `entry`=254485; -- Corespark Pylon
UPDATE `creature_template` SET `faction`=190, `speed_run`=1, `BaseAttackTime`=2000, `unit_flags2`=0x0, `unit_flags3`=0x41400001 WHERE `entry`=252825; -- Mana Battery
UPDATE `creature_template` SET `faction`=16, `BaseAttackTime`=2000, `unit_flags`=0x40 WHERE `entry`=241647; -- Flux Engineer
UPDATE `creature_template` SET `faction`=1693, `BaseAttackTime`=2000, `unit_flags`=0x40 WHERE `entry`=248708; -- Nexus Adept
UPDATE `creature_template` SET `faction`=190, `speed_run`=0.714285731315612792, `BaseAttackTime`=2000, `unit_flags3`=0x1 WHERE `entry`=254948; -- Mana Feeder
UPDATE `creature_template` SET `speed_walk`=4.800000190734863281, `speed_run`=1.714285731315612792, `BaseAttackTime`=1827, `unit_flags2`=0x820, `unit_flags3`=0x1000000 WHERE `entry`=260462; -- Beast
UPDATE `creature_template` SET `BaseAttackTime`=1370, `unit_flags3`=0x1400000 WHERE `entry`=234018; -- Bear
UPDATE `creature_template` SET `npcflag`=0, `unit_flags3`=0x40000001 WHERE `entry`=43499; -- Consecration
UPDATE `creature_template` SET `BaseAttackTime`=1677, `unit_flags3`=0x41000000 WHERE `entry`=47649; -- Efflorescence
UPDATE `creature_template` SET `BaseAttackTime`=1677, `unit_flags3`=0x1000000 WHERE `entry`=255261; -- Dryad
UPDATE `creature_template` SET `BaseAttackTime`=1677, `unit_flags3`=0x41000000 WHERE `entry`=54983; -- Treant
UPDATE `creature_template` SET `faction`=190, `BaseAttackTime`=2000, `unit_flags`=0x40 WHERE `entry`=254947; -- Unbound Void
UPDATE `creature_template` SET `faction`=2028, `BaseAttackTime`=2000, `unit_flags`=0x2000100, `unit_flags2`=0x4000800, `unit_flags3`=0x41008001 WHERE `entry`=248922; -- Vantacite Conduit
UPDATE `creature_template` SET `faction`=2028, `BaseAttackTime`=2000, `unit_flags`=0x2000100, `unit_flags2`=0x4000800, `unit_flags3`=0x41008001 WHERE `entry`=248354; -- Manacite Conduit
UPDATE `creature_template` SET `faction`=16, `speed_run`=1, `BaseAttackTime`=1500, `unit_flags`=0x40, `unit_flags2`=0x0, `VehicleId`=9127 WHERE `entry`=241542; -- Corewarden Nysarra
UPDATE `creature_template` SET `faction`=190, `BaseAttackTime`=2000 WHERE `entry`=254949; -- Flarefly
UPDATE `creature_template` SET `faction`=16, `BaseAttackTime`=2000, `unit_flags`=0x40 WHERE `entry`=254926; -- Lightwrought
UPDATE `creature_template` SET `faction`=14, `BaseAttackTime`=2000, `unit_flags`=0x2000100, `unit_flags2`=0x820, `unit_flags3`=0x1C00001 WHERE `entry`=252938; -- [DNT] Orb Stalker
UPDATE `creature_template` SET `faction`=16, `BaseAttackTime`=1500, `unit_flags`=0x40, `unit_flags2`=0x0 WHERE `entry`=241539; -- Kasreth
UPDATE `creature_template` SET `faction`=16, `BaseAttackTime`=2000, `unit_flags`=0x40 WHERE `entry`=249711; -- Core Technician
UPDATE `creature_template` SET `faction`=16, `BaseAttackTime`=2000, `unit_flags`=0x2000340, `unit_flags2`=0x4000800, `unit_flags3`=0x1000001 WHERE `entry`=251830; -- Null Barrier
UPDATE `creature_template` SET `faction`=16, `speed_walk`=2.799999952316284179, `speed_run`=1.714285731315612792, `BaseAttackTime`=2000, `unit_flags`=0x40, `VehicleId`=9116 WHERE `entry`=241645; -- Hollowsoul Scrounger
UPDATE `creature_template` SET `faction`=1693, `BaseAttackTime`=2000, `unit_flags`=0x40, `VehicleId`=9116 WHERE `entry`=241643; -- Shadowguard Defender
UPDATE `creature_template` SET `faction`=16, `BaseAttackTime`=3000, `unit_flags`=0x40, `VehicleId`=9116 WHERE `entry`=241644; -- Corewright Arcanist
UPDATE `creature_template` SET `faction`=14, `BaseAttackTime`=2000, `unit_flags`=0x2000100, `unit_flags2`=0x820, `unit_flags3`=0x1800001 WHERE `entry`=251621; -- Core
UPDATE `creature_template` SET `faction`=16, `speed_run`=0.714285731315612792, `BaseAttackTime`=1000 WHERE `entry`=254932; -- Radiant Swarm
UPDATE `creature_template` SET `faction`=1814, `speed_run`=1, `BaseAttackTime`=1500, `unit_flags`=0x2000340, `unit_flags2`=0x0, `unit_flags3`=0x1400000 WHERE `entry`=254227; -- Corewarden Nysarra
UPDATE `creature_template` SET `faction`=16, `speed_run`=1, `BaseAttackTime`=2000, `unit_flags`=0x40, `VehicleId`=9116 WHERE `entry`=241660; -- Duskfright Herald
UPDATE `creature_template` SET `faction`=16, `BaseAttackTime`=2000, `unit_flags`=0x40 WHERE `entry`=254928; -- Flarebat
UPDATE `creature_template` SET `faction`=16, `BaseAttackTime`=2000, `unit_flags`=0x2002140, `unit_flags3`=0x1 WHERE `entry`=253386; -- Entropy Pool
UPDATE `creature_template` SET `faction`=16, `speed_walk`=4, `speed_run`=1.428571462631225585, `BaseAttackTime`=2000, `unit_flags`=0x40, `unit_flags2`=0x0 WHERE `entry`=241546; -- Lothraxion
UPDATE `creature_template` SET `faction`=16, `speed_walk`=0.888888001441955566, `speed_run`=0.992062866687774658, `BaseAttackTime`=2000, `unit_flags`=0x140 WHERE `entry`=249087; -- Lothraxion
UPDATE `creature_template` SET `faction`=16, `BaseAttackTime`=2000, `unit_flags`=0x40 WHERE `entry`=248373; -- Circuit Seer
UPDATE `creature_template` SET `faction`=190, `speed_run`=1, `BaseAttackTime`=2000, `unit_flags`=0x100, `unit_flags2`=0x0, `unit_flags3`=0x40400001 WHERE `entry`=252852; -- Corespark Conduit
UPDATE `creature_template` SET `faction`=190, `npcflag`=1, `BaseAttackTime`=2000, `unit_flags`=0x100, `unit_flags2`=0x4000800, `unit_flags3`=0x41008001 WHERE `entry`=252870; -- Arcane Tripwire
UPDATE `creature_template` SET `faction`=14, `BaseAttackTime`=2000, `unit_flags`=0x2000000, `unit_flags2`=0x820, `unit_flags3`=0x1800001 WHERE `entry`=249096; -- [DNT] Stalker
UPDATE `creature_template` SET `faction`=16, `speed_run`=1, `BaseAttackTime`=2000, `unit_flags`=0x2340, `unit_flags2`=0x0, `unit_flags3`=0x40000001 WHERE `entry`=252903; -- Nascent Dreadflail
UPDATE `creature_template` SET `BaseAttackTime`=2000, `unit_flags`=0x40, `unit_flags2`=0x0, `unit_flags3`=0x41000010 WHERE `entry`=249970; -- Core Access Power
UPDATE `creature_template` SET `BaseAttackTime`=2000, `unit_flags`=0x100 WHERE `entry`=248487; -- Arator
UPDATE `creature_template` SET `BaseAttackTime`=2000, `unit_flags`=0x100 WHERE `entry`=248498; -- Alleria Windrunner
UPDATE `creature_template` SET `BaseAttackTime`=2000, `unit_flags`=0x2000300, `unit_flags2`=0x4000800, `unit_flags3`=0x41000001 WHERE `entry`=258604; -- Void Portal
UPDATE `creature_template` SET `speed_run`=1.142857193946838378, `BaseAttackTime`=1305, `unit_flags3`=0x14000000 WHERE `entry`=165189; -- Generic Hunter Pet
UPDATE `creature_template` SET `BaseAttackTime`=2000, `unit_flags`=0x2000300, `unit_flags2`=0x4000000, `unit_flags3`=0x41008001 WHERE `entry`=255836; -- Helper
UPDATE `creature_template` SET `faction`=16, `BaseAttackTime`=2000, `unit_flags`=0x340, `unit_flags3`=0x81000001 WHERE `entry`=254222; -- Voidwalker
UPDATE `creature_template` SET `faction`=16, `BaseAttackTime`=2000, `unit_flags`=0x340, `unit_flags3`=0x81000001 WHERE `entry`=254220; -- Duskwraith
UPDATE `creature_template` SET `faction`=16, `BaseAttackTime`=2000, `unit_flags`=0x300, `unit_flags3`=0x81000001 WHERE `entry`=254225; -- Shadowguard Defender
UPDATE `creature_template` SET `faction`=16, `speed_walk`=0.888888001441955566, `speed_run`=0.992062866687774658, `BaseAttackTime`=2000, `unit_flags`=0x140 WHERE `entry`=241642; -- Lingering Image
UPDATE `creature_template` SET `speed_walk`=3.20000004768371582, `speed_run`=2, `BaseAttackTime`=2000, `unit_flags`=0x2000000, `unit_flags3`=0x1000001 WHERE `entry`=245459; -- Nightborne Protector
UPDATE `creature_template` SET `unit_flags3`=0x1000001 WHERE `entry`=62026; -- General Purpose Bunny ZTO
UPDATE `creature_template` SET `faction`=3509, `npcflag`=3, `BaseAttackTime`=2000, `unit_flags`=0x40 WHERE `entry`=235395; -- Magister Umbric
UPDATE `creature_template` SET `faction`=190, `BaseAttackTime`=2000 WHERE `entry`=251463; -- Islebound Treant
REPLACE INTO `npc_spellclick_spells` (`npc_entry`, `spell_id`, `cast_flags`, `user_type`) VALUES
(258604, 1279445, 1, 1);
@@ -0,0 +1,509 @@
SET @CGUID := 731103;
DELETE FROM `creature` WHERE `guid` BETWEEN @CGUID+0 AND @CGUID+503;
INSERT INTO `creature` (`guid`, `id`, `map`, `zoneId`, `areaId`, `spawnDifficulties`, `PhaseId`, `PhaseGroup`, `modelid`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `wander_distance`, `currentwaypoint`, `MovementType`, `npcflag`, `unit_flags`, `unit_flags2`, `unit_flags3`, `VerifiedBuild`) VALUES
(@CGUID+0, 245345, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1311.8739013671875, 2069.823974609375, 68.149017333984375, 1.131912589073181152, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lightgorged Lasher (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1284462 - [DNT]Bronze Affix Marker Spell)
(@CGUID+1, 210930, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1285.6875, 2115.845458984375, 74.8482666015625, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Path Helper (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 422354 - Bot AI Follow Advert)
(@CGUID+2, 245410, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1317.71826171875, 2070.199462890625, 68.67243194580078125, 5.789836406707763671, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238085 - Spore Spines)
(@CGUID+3, 249068, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1281.6181640625, 2096.1005859375, 69.4301910400390625, 4.804286479949951171, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Orweyna (Area: The Blinding Vale - Difficulty: Normal) CreateObject1
(@CGUID+4, 245460, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1262.743408203125, 2061.986572265625, 67.390838623046875, 3.386918067932128906, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Leafy Grovecrawler (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%, 1312135 - Override Mana Bar Color - Holy) (possible waypoints or random movement)
(@CGUID+5, 256332, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1319.7916259765625, 2087.5, 73.74338531494140625, 1.271607637405395507, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Snail (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%)
(@CGUID+6, 251149, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1262.65283203125, 2143.494873046875, 85.79126739501953125, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Helper (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 472701 - Helper)
(@CGUID+7, 256332, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1266.4146728515625, 2083.7119140625, 69.86065673828125, 3.419108390808105468, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Snail (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%) (possible waypoints or random movement)
(@CGUID+8, 245410, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1320.84619140625, 2067.21142578125, 68.969635009765625, 0.786088347434997558, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238085 - Spore Spines)
(@CGUID+9, 211152, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1277.4600830078125, 2145.859375, 85.0459747314453125, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Path Helper (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 424283 - Passive, 424126 - Bot AI Follow Advert)
(@CGUID+10, 211137, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1275.1285400390625, 2142.5087890625, 84.22785186767578125, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Path Helper (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 424283 - Passive, 424126 - Bot AI Follow Advert)
(@CGUID+11, 245473, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1273.5933837890625, 2061.1298828125, 66.66436767578125, 5.825045585632324218, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Thorny Saptor (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%) (possible waypoints or random movement)
(@CGUID+12, 211149, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1288.4166259765625, 2145.87158203125, 85.17144775390625, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Path Helper (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 424283 - Passive, 424126 - Bot AI Follow Advert)
(@CGUID+13, 211151, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1279.734375, 2139.241455078125, 82.85764312744140625, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Path Helper (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 424283 - Passive, 424126 - Bot AI Follow Advert)
(@CGUID+14, 211150, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1285.017333984375, 2141.276123046875, 83.53133392333984375, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Path Helper (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 424283 - Passive, 424126 - Bot AI Follow Advert)
(@CGUID+15, 210930, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1295.5242919921875, 2080.564208984375, 68.063018798828125, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Path Helper (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 422354 - Bot AI Follow Advert)
(@CGUID+16, 256332, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1267.8177490234375, 2114.253662109375, 145.1146392822265625, 3.036559581756591796, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Snail (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%) (possible waypoints or random movement)
(@CGUID+17, 245473, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1276.192138671875, 2072.409912109375, 67.61983489990234375, 0.225860089063644409, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Thorny Saptor (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%) (possible waypoints or random movement)
(@CGUID+18, 211111, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1281.671875, 2146.541748046875, 85.2698974609375, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Path Helper (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 1253576 - The Blinding Vale)
(@CGUID+19, 245345, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1356.4918212890625, 2060.482177734375, 73.4220123291015625, 3.105673551559448242, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lightgorged Lasher (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%)
(@CGUID+20, 245410, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1346.26220703125, 2038.5416259765625, 72.88763427734375, 3.669282436370849609, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238051 - Cosmetic - Submerged/Emerge, 1284462 - [DNT]Bronze Affix Marker Spell, 1238085 - Spore Spines)
(@CGUID+21, 245410, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1356.40283203125, 2036.54345703125, 73.51866912841796875, 2.58589792251586914, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238051 - Cosmetic - Submerged/Emerge, 1284462 - [DNT]Bronze Affix Marker Spell, 1238085 - Spore Spines)
(@CGUID+22, 245410, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1348.23095703125, 2041.73095703125, 73.12718963623046875, 1.731330633163452148, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238051 - Cosmetic - Submerged/Emerge, 1284462 - [DNT]Bronze Affix Marker Spell, 1238085 - Spore Spines)
(@CGUID+23, 245339, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 1, 1361.0504150390625, 2060.423583984375, 73.9471282958984375, 2.7564697265625, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Underbrush Stalker (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%, 1238808 - [DNT] Cosmetic Rutaani Use With Channel Hands Aura)
(@CGUID+24, 245410, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1407.654541015625, 2078.130126953125, 74.02335357666015625, 3.669282436370849609, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238051 - Cosmetic - Submerged/Emerge, 1238085 - Spore Spines)
(@CGUID+25, 256332, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1249.1336669921875, 2060.078125, 68.13388824462890625, 0.471238881349563598, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Snail (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%)
(@CGUID+26, 256332, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1236.5660400390625, 2032.8055419921875, 69.70381927490234375, 0.891937911510467529, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Snail (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%) (possible waypoints or random movement)
(@CGUID+27, 245410, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1321.92333984375, 2059.814453125, 68.73697662353515625, 1.632538676261901855, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238085 - Spore Spines)
(@CGUID+28, 245527, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1235.0384521484375, 2037.2822265625, 75.24083709716796875, 2.781300783157348632, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Spineshield Beetle (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238581 - Spiny Shield) (possible waypoints or random movement)
(@CGUID+29, 245527, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1229.91845703125, 2038.90283203125, 72.7081146240234375, 1.580660581588745117, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Spineshield Beetle (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238581 - Spiny Shield) (possible waypoints or random movement)
(@CGUID+30, 245345, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1351.092041015625, 2037.53125, 73.20148468017578125, 3.669282436370849609, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lightgorged Lasher (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238051 - Cosmetic - Submerged/Emerge, 1284462 - [DNT]Bronze Affix Marker Spell)
(@CGUID+31, 245410, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1410.62158203125, 2081.11279296875, 74.83249664306640625, 4.649689674377441406, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238051 - Cosmetic - Submerged/Emerge, 1238085 - Spore Spines)
(@CGUID+32, 245460, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1265.3341064453125, 2052.7197265625, 66.58496856689453125, 5.567570209503173828, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Leafy Grovecrawler (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%, 1312135 - Override Mana Bar Color - Holy) (possible waypoints or random movement)
(@CGUID+33, 245346, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 1, 1387.3853759765625, 2054.404541015625, 73.92397308349609375, 0.22504425048828125, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Virid Grovekeeper (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%, 1223119 - Invisibility and Stealth Detection)
(@CGUID+34, 256332, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1278.0399169921875, 2040.2274169921875, 66.9968719482421875, 4.750745773315429687, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Snail (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%) (possible waypoints or random movement)
(@CGUID+35, 256332, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1357.5235595703125, 2064.202392578125, 74.24578094482421875, 3.316676616668701171, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Snail (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%)
(@CGUID+36, 256330, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1304.44970703125, 2043.1754150390625, 66.4775848388671875, 1.605702877044677734, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Snake (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%) (possible waypoints or random movement)
(@CGUID+37, 245527, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1233.6805419921875, 2044.0128173828125, 74.21883392333984375, 2.274124383926391601, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Spineshield Beetle (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238581 - Spiny Shield) (possible waypoints or random movement)
(@CGUID+38, 245484, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1228.154296875, 2044.13623046875, 78.20000457763671875, 5.9514007568359375, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Lightfeather Petalwing (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%) (possible waypoints or random movement)
(@CGUID+39, 245410, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1353.0086669921875, 2039.298583984375, 73.16349029541015625, 2.58589792251586914, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238051 - Cosmetic - Submerged/Emerge, 1284462 - [DNT]Bronze Affix Marker Spell, 1238085 - Spore Spines)
(@CGUID+40, 245410, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1361.7847900390625, 2035.642333984375, 74.587432861328125, 5.570760250091552734, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238051 - Cosmetic - Submerged/Emerge, 1284462 - [DNT]Bronze Affix Marker Spell, 1238085 - Spore Spines)
(@CGUID+41, 245339, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 1, 1356.4583740234375, 2065.213623046875, 74.36081695556640625, 3.632036209106445312, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Underbrush Stalker (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%)
(@CGUID+42, 245336, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1311.28759765625, 2057.80810546875, 67.81703948974609375, 4.393290042877197265, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Radiant Spellsower (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%)
(@CGUID+43, 256332, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1209.163818359375, 2046.3245849609375, 71.018463134765625, 4.96851968765258789, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Snail (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%) (possible waypoints or random movement)
(@CGUID+44, 245345, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1415.2239990234375, 2078.7275390625, 74.44799041748046875, 5.987946987152099609, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lightgorged Lasher (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238051 - Cosmetic - Submerged/Emerge)
(@CGUID+45, 244492, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1415.4097900390625, 2078.8212890625, 74.40521240234375, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- [DNT] Visual Stalker (Area: The Blinding Vale - Difficulty: Normal) CreateObject1
(@CGUID+46, 245410, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1411.4322509765625, 2038.65283203125, 73.91347503662109375, 2.58589792251586914, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238051 - Cosmetic - Submerged/Emerge, 1284462 - [DNT]Bronze Affix Marker Spell, 1238085 - Spore Spines)
(@CGUID+47, 245410, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1404.0555419921875, 2036.44970703125, 74.11087799072265625, 1.731330633163452148, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238051 - Cosmetic - Submerged/Emerge, 1284462 - [DNT]Bronze Affix Marker Spell, 1238085 - Spore Spines)
(@CGUID+48, 245336, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1415.3775634765625, 2084.26513671875, 75.11467742919921875, 0.128741666674613952, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Radiant Spellsower (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%) (possible waypoints or random movement)
(@CGUID+49, 245410, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1412.4913330078125, 2077.52783203125, 73.72638702392578125, 2.58589792251586914, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238051 - Cosmetic - Submerged/Emerge, 1238085 - Spore Spines)
(@CGUID+50, 245410, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1416.404541015625, 2072.095458984375, 73.60041046142578125, 5.570760250091552734, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238051 - Cosmetic - Submerged/Emerge, 1238085 - Spore Spines)
(@CGUID+51, 245410, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1421.5242919921875, 2078.564208984375, 74.284820556640625, 4.649689674377441406, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238051 - Cosmetic - Submerged/Emerge, 1238085 - Spore Spines)
(@CGUID+52, 256330, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1349.5732421875, 2036.25, 127.0198516845703125, 5.731621265411376953, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Snake (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%) (possible waypoints or random movement)
(@CGUID+53, 245513, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1183.5208740234375, 2019.16845703125, 70.128692626953125, 5.977293014526367187, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Overgrown Hydra (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 1223119 - Invisibility and Stealth Detection)
(@CGUID+54, 245410, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1407.4375, 2039.673583984375, 74.16114044189453125, 3.669282436370849609, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238051 - Cosmetic - Submerged/Emerge, 1284462 - [DNT]Bronze Affix Marker Spell, 1238085 - Spore Spines)
(@CGUID+55, 245410, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1418.828125, 2076.36279296875, 73.87445068359375, 2.58589792251586914, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238051 - Cosmetic - Submerged/Emerge, 1238085 - Spore Spines)
(@CGUID+56, 245410, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1413.0867919921875, 2075.748291015625, 73.86651611328125, 4.113468170166015625, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238051 - Cosmetic - Submerged/Emerge, 1238085 - Spore Spines)
(@CGUID+57, 245410, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1409.6492919921875, 2074.8994140625, 73.82178497314453125, 4.649689674377441406, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238051 - Cosmetic - Submerged/Emerge, 1238085 - Spore Spines)
(@CGUID+58, 210930, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1377.2083740234375, 2051.7744140625, 74.25521087646484375, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Path Helper (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 422354 - Bot AI Follow Advert)
(@CGUID+59, 245339, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 1, 1418.0335693359375, 2072.484130859375, 73.47396087646484375, 0.651981234550476074, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Underbrush Stalker (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%) (possible waypoints or random movement)
(@CGUID+60, 256332, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1413.8489990234375, 2068.444580078125, 73.45912933349609375, 5.75020599365234375, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Snail (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%)
(@CGUID+61, 256330, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1411.04345703125, 2040.4427490234375, 73.71413421630859375, 5.969254970550537109, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Snake (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%)
(@CGUID+62, 245410, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1434.758544921875, 2060.900146484375, 72.501739501953125, 5.066149711608886718, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238085 - Spore Spines) (possible waypoints or random movement)
(@CGUID+63, 245345, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1420.513916015625, 2071.2744140625, 73.5651702880859375, 5.006261825561523437, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lightgorged Lasher (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238051 - Cosmetic - Submerged/Emerge)
(@CGUID+64, 244492, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1197.9114990234375, 2005.2100830078125, 81.81732940673828125, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- [DNT] Visual Stalker (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: )
(@CGUID+65, 245410, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1407.5521240234375, 2073.373291015625, 73.87896728515625, 2.58589792251586914, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238051 - Cosmetic - Submerged/Emerge, 1238085 - Spore Spines)
(@CGUID+66, 245410, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1407.51220703125, 2036.6441650390625, 74.35852813720703125, 2.58589792251586914, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238051 - Cosmetic - Submerged/Emerge, 1284462 - [DNT]Bronze Affix Marker Spell, 1238085 - Spore Spines)
(@CGUID+67, 245410, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1409.88720703125, 2035.8524169921875, 74.04532623291015625, 5.570760250091552734, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238051 - Cosmetic - Submerged/Emerge, 1284462 - [DNT]Bronze Affix Marker Spell, 1238085 - Spore Spines)
(@CGUID+68, 245339, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 1, 1423.75634765625, 2044.2686767578125, 71.939239501953125, 0.660549163818359375, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Underbrush Stalker (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%)
(@CGUID+69, 245345, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1436.7471923828125, 2060.25927734375, 72.67071533203125, 1.846863985061645507, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Lightgorged Lasher (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1284462 - [DNT]Bronze Affix Marker Spell) (possible waypoints or random movement)
(@CGUID+70, 245527, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1157.3919677734375, 2018.0704345703125, 68.8601531982421875, 3.762506723403930664, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Spineshield Beetle (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238581 - Spiny Shield) (possible waypoints or random movement)
(@CGUID+71, 245527, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1108.2249755859375, 2013.3162841796875, 71.9953460693359375, 3.960662364959716796, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Spineshield Beetle (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238581 - Spiny Shield) (possible waypoints or random movement)
(@CGUID+72, 256332, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1182.5115966796875, 1992.1107177734375, 69.71240234375, 3.568059921264648437, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Snail (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%) (possible waypoints or random movement)
(@CGUID+73, 254850, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1452.266845703125, 2020.39892578125, 72.22760009765625, 6.256134510040283203, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Sporeblight Belcher (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 1223119 - Invisibility and Stealth Detection)
(@CGUID+74, 245527, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1152.4775390625, 2017.3206787109375, 68.26031494140625, 0.315254956483840942, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Spineshield Beetle (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238581 - Spiny Shield) (possible waypoints or random movement)
(@CGUID+75, 245527, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1157.2891845703125, 2020.7457275390625, 69.00312042236328125, 0.84481966495513916, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Spineshield Beetle (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238581 - Spiny Shield) (possible waypoints or random movement)
(@CGUID+76, 245527, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1109.6568603515625, 2010.6141357421875, 69.14243316650390625, 2.699128150939941406, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Spineshield Beetle (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238581 - Spiny Shield) (possible waypoints or random movement)
(@CGUID+77, 245336, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1426.3798828125, 1987.5498046875, 71.3874969482421875, 5.037112712860107421, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Radiant Spellsower (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%) (possible waypoints or random movement)
(@CGUID+78, 245410, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1437.50048828125, 2056.017578125, 72.0560302734375, 4.532797813415527343, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238085 - Spore Spines) (possible waypoints or random movement)
(@CGUID+79, 245410, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1442.39990234375, 2055.00830078125, 71.903472900390625, 5.560964584350585937, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238085 - Spore Spines) (possible waypoints or random movement)
(@CGUID+80, 256332, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1091.2091064453125, 2021.7322998046875, 65.38587188720703125, 4.343256950378417968, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Snail (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%) (possible waypoints or random movement)
(@CGUID+81, 245473, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1121.886474609375, 2018.8355712890625, 63.0757598876953125, 2.872672557830810546, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Thorny Saptor (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%) (possible waypoints or random movement)
(@CGUID+82, 245484, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1103.165283203125, 2011.171142578125, 75.1124267578125, 1.068605542182922363, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Lightfeather Petalwing (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%) (possible waypoints or random movement)
(@CGUID+83, 245484, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1153.333740234375, 1990.6109619140625, 72.07959747314453125, 1.199084043502807617, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Lightfeather Petalwing (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%) (possible waypoints or random movement)
(@CGUID+84, 260414, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1347.9095458984375, 1939.907958984375, 47.33342361450195312, 2.674671888351440429, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- [DNT] Visual Stalker (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: ) (possible waypoints or random movement)
(@CGUID+85, 245339, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 1, 1428.1422119140625, 2046.8272705078125, 71.7396240234375, 3.632036209106445312, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Underbrush Stalker (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%)
(@CGUID+86, 245527, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1106.6971435546875, 2007.3394775390625, 71.6181793212890625, 2.443547964096069335, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Spineshield Beetle (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238581 - Spiny Shield) (possible waypoints or random movement)
(@CGUID+87, 245473, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1153.17919921875, 2003.90478515625, 67.68952178955078125, 2.949211835861206054, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Thorny Saptor (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%) (possible waypoints or random movement)
(@CGUID+88, 210930, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1445.96533203125, 2030.4478759765625, 71.54627227783203125, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Path Helper (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 422354 - Bot AI Follow Advert)
(@CGUID+89, 260414, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1292.94482421875, 1958.0343017578125, 47.460723876953125, 5.304903030395507812, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- [DNT] Visual Stalker (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: ) (possible waypoints or random movement)
(@CGUID+90, 256332, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1445.7413330078125, 2055.77783203125, 72.08086395263671875, 2.967059612274169921, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Snail (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%)
(@CGUID+91, 256330, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1426.0416259765625, 2007.2916259765625, 73.05338287353515625, 0.477093011140823364, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Snake (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%)
(@CGUID+92, 256328, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1278.390625, 1953.7760009765625, -26.2945823669433593, 0.820304751396179199, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Frog (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%)
(@CGUID+93, 256330, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1139.8836669921875, 2012.8125, 66.1923065185546875, 0.890117883682250976, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Snake (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%) (possible waypoints or random movement)
(@CGUID+94, 244492, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1432.1285400390625, 1974.6597900390625, 74.411529541015625, 2.669880390167236328, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- [DNT] Visual Stalker (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: ) (possible waypoints or random movement)
(@CGUID+95, 245336, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1465.5440673828125, 1987.965576171875, 75.61402130126953125, 1.809526801109313964, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Radiant Spellsower (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%) (possible waypoints or random movement)
(@CGUID+96, 260414, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1240.900390625, 1913.58984375, 60.82532501220703125, 1.422915220260620117, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- [DNT] Visual Stalker (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: ) (possible waypoints or random movement)
(@CGUID+97, 256332, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1091.3663330078125, 1995.3021240234375, 65.472320556640625, 2.784251213073730468, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Snail (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%) (possible waypoints or random movement)
(@CGUID+98, 256330, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1062.2135009765625, 2007.3160400390625, 68.4208984375, 1.378810048103332519, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Snake (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%)
(@CGUID+99, 256331, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1264.0989990234375, 1937.7916259765625, -28.4732227325439453, 3.211405754089355468, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Strideling (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%)
(@CGUID+100, 254850, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1129.5982666015625, 1966.102294921875, 62.43998336791992187, 3.464338064193725585, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Sporeblight Belcher (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 1223119 - Invisibility and Stealth Detection) (possible waypoints or random movement)
(@CGUID+101, 245484, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1082.828857421875, 1997.57470703125, 65.9082489013671875, 1.528679370880126953, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Lightfeather Petalwing (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%) (possible waypoints or random movement)
(@CGUID+102, 245345, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1461.4794921875, 1990.5791015625, 75.2656402587890625, 4.876253128051757812, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lightgorged Lasher (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1284462 - [DNT]Bronze Affix Marker Spell)
(@CGUID+103, 245527, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1105.559326171875, 1958.4500732421875, 62.90104293823242187, 3.346676826477050781, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Spineshield Beetle (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238581 - Spiny Shield) (possible waypoints or random movement)
(@CGUID+104, 260414, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1334.9591064453125, 1920.625244140625, 18.94362068176269531, 5.266616344451904296, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- [DNT] Visual Stalker (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: ) (possible waypoints or random movement)
(@CGUID+105, 245484, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1080.548095703125, 2001.7811279296875, 65.9475860595703125, 2.711797475814819335, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Lightfeather Petalwing (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%) (possible waypoints or random movement)
(@CGUID+106, 245527, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1109.37890625, 1964.22802734375, 63.53125, 1.933696269989013671, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Spineshield Beetle (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238581 - Spiny Shield) (possible waypoints or random movement)
(@CGUID+107, 245410, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1472.2791748046875, 1980.6741943359375, 76.59493255615234375, 5.344312667846679687, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238085 - Spore Spines) (possible waypoints or random movement)
(@CGUID+108, 256328, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1345.4322509765625, 1943.4930419921875, -26.9299793243408203, 4.206243515014648437, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Frog (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%)
(@CGUID+109, 244492, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1458.2257080078125, 1991.4444580078125, 74.91336822509765625, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- [DNT] Visual Stalker (Area: The Blinding Vale - Difficulty: Normal) CreateObject1
(@CGUID+110, 245345, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1467.7303466796875, 1977.310791015625, 76.80083465576171875, 5.344560623168945312, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lightgorged Lasher (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%)
(@CGUID+111, 245410, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1469.3270263671875, 1979.913818359375, 76.4791717529296875, 2.204333066940307617, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238085 - Spore Spines) (possible waypoints or random movement)
(@CGUID+112, 245460, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1112.3001708984375, 1982.3643798828125, 62.20508956909179687, 5.166443824768066406, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Leafy Grovecrawler (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%, 1312135 - Override Mana Bar Color - Holy) (possible waypoints or random movement)
(@CGUID+113, 245336, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1274.56640625, 1915.9552001953125, -14.6610517501831054, 3.828892469406127929, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Radiant Spellsower (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%) (possible waypoints or random movement)
(@CGUID+114, 245339, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 1, 1334.75, 1919.5361328125, -14.965606689453125, 5.684443473815917968, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Underbrush Stalker (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%) (possible waypoints or random movement)
(@CGUID+115, 256331, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1336.204833984375, 1945.8038330078125, -27.3721942901611328, 4.921828269958496093, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Strideling (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%)
(@CGUID+116, 256328, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1288.3021240234375, 1945.6197509765625, -27.3888893127441406, 1.01229095458984375, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Frog (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%)
(@CGUID+117, 256331, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1275.064208984375, 1936.6163330078125, -29.2409114837646484, 2.164208173751831054, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Strideling (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%)
(@CGUID+118, 254850, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1075.442626953125, 1998.6141357421875, 65.9570465087890625, 2.049809455871582031, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Sporeblight Belcher (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 1223119 - Invisibility and Stealth Detection) (possible waypoints or random movement)
(@CGUID+119, 247676, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1299.873291015625, 1863.8194580078125, -13.5233259201049804, 4.776524066925048828, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Ziekket (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 423679 - Bot AI Follow Advert)
(@CGUID+120, 244492, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1287.6475830078125, 1848.5694580078125, -13.5233259201049804, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- [DNT] Visual Stalker (Area: The Blinding Vale - Difficulty: Normal) CreateObject1
(@CGUID+121, 256331, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1356.2899169921875, 1929.8489990234375, -29.0830211639404296, 4.118977069854736328, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Strideling (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%)
(@CGUID+122, 256328, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1363.63720703125, 1914.7708740234375, -28.6606502532958984, 0.890117883682250976, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Frog (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%)
(@CGUID+123, 244492, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1300.001708984375, 1866.717041015625, -13.5233259201049804, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- [DNT] Visual Stalker (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 1250080 - [DNT] Boss 4 FX Stalker Cosmetics)
(@CGUID+124, 260414, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1240.3594970703125, 1854.9525146484375, 19.2567596435546875, 4.258119106292724609, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- [DNT] Visual Stalker (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: ) (possible waypoints or random movement)
(@CGUID+125, 244492, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1297.923583984375, 1860.7222900390625, -13.5233259201049804, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- [DNT] Visual Stalker (Area: The Blinding Vale - Difficulty: Normal) CreateObject1
(@CGUID+126, 244492, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1084.76220703125, 1947.826416015625, 63.58902740478515625, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- [DNT] Visual Stalker (Area: The Blinding Vale - Difficulty: Normal) CreateObject1
(@CGUID+127, 244492, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1311.173583984375, 1868.388916015625, -13.5233259201049804, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- [DNT] Visual Stalker (Area: The Blinding Vale - Difficulty: Normal) CreateObject1
(@CGUID+128, 260414, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1372.2305908203125, 1883.30029296875, 38.05902862548828125, 4.842446804046630859, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- [DNT] Visual Stalker (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: ) (possible waypoints or random movement)
(@CGUID+129, 260414, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1244.340087890625, 1858.984619140625, 38.05902862548828125, 0.829079806804656982, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- [DNT] Visual Stalker (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: ) (possible waypoints or random movement)
(@CGUID+130, 256328, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1363.2552490234375, 1907.5086669921875, -28.850830078125, 5.393067359924316406, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Frog (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%)
(@CGUID+131, 256332, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1469.0191650390625, 1949.9375, 164.2196197509765625, 5.777040004730224609, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Snail (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%)
(@CGUID+132, 245513, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1113.1014404296875, 1931.3870849609375, 55.81580352783203125, 3.926645994186401367, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Overgrown Hydra (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 1223119 - Invisibility and Stealth Detection) (possible waypoints or random movement)
(@CGUID+133, 244492, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1104.9757080078125, 1939.0850830078125, 57.18317413330078125, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- [DNT] Visual Stalker (Area: The Blinding Vale - Difficulty: Normal) CreateObject1
(@CGUID+134, 245410, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1436.0230712890625, 1922.1259765625, 81.86884307861328125, 5.08762216567993164, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238085 - Spore Spines) (possible waypoints or random movement)
(@CGUID+135, 260414, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1245.140625, 1892.839111328125, 19.2567596435546875, 2.910995006561279296, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- [DNT] Visual Stalker (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: ) (possible waypoints or random movement)
(@CGUID+136, 244492, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1099.248291015625, 1959.7430419921875, 66.2435455322265625, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- [DNT] Visual Stalker (Area: The Blinding Vale - Difficulty: Normal) CreateObject1
(@CGUID+137, 244492, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1293.5086669921875, 1871.4896240234375, -13.5233259201049804, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- [DNT] Visual Stalker (Area: The Blinding Vale - Difficulty: Normal) CreateObject1
(@CGUID+138, 244492, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1314.48095703125, 1849.826416015625, -13.5233259201049804, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- [DNT] Visual Stalker (Area: The Blinding Vale - Difficulty: Normal) CreateObject1
(@CGUID+139, 245339, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 1, 1304.1649169921875, 1888.6302490234375, -13.5233259201049804, 4.641878604888916015, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Underbrush Stalker (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%, 1284462 - [DNT]Bronze Affix Marker Spell)
(@CGUID+140, 260414, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1355.139892578125, 1882.6781005859375, 62.15530776977539062, 1.297878265380859375, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- [DNT] Visual Stalker (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: ) (possible waypoints or random movement)
(@CGUID+141, 255650, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1433.9896240234375, 1912.2430419921875, 81.94837188720703125, 0.653134405612945556, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Light-Starved Blossom (Area: The Blinding Vale - Difficulty: Normal) CreateObject1
(@CGUID+142, 245410, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1430.71533203125, 1922.154296875, 81.87136077880859375, 2.539214849472045898, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238085 - Spore Spines) (possible waypoints or random movement)
(@CGUID+143, 245410, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1431.912353515625, 1928.4744873046875, 81.7828826904296875, 1.524958491325378417, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238085 - Spore Spines) (possible waypoints or random movement)
(@CGUID+144, 260414, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1350.67578125, 1846.416259765625, 19.2567596435546875, 5.544639110565185546, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- [DNT] Visual Stalker (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: ) (possible waypoints or random movement)
(@CGUID+145, 260414, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1300.92431640625, 1772.5902099609375, 40.14537811279296875, 4.694707870483398437, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- [DNT] Visual Stalker (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: ) (possible waypoints or random movement)
(@CGUID+146, 260414, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1249.3663330078125, 1812.5208740234375, 26.04545783996582031, 3.849190473556518554, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- [DNT] Visual Stalker (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: ) (possible waypoints or random movement)
(@CGUID+147, 244492, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1290.4427490234375, 1656.25, -14.5777187347412109, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- [DNT] Visual Stalker (Area: The Blinding Vale - Difficulty: Normal) CreateObject1
(@CGUID+148, 244492, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1371.998291015625, 1639.717041015625, 3.605814218521118164, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- [DNT] Visual Stalker (Area: The Blinding Vale - Difficulty: Normal) CreateObject1
(@CGUID+149, 244492, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1334.7117919921875, 1767.6632080078125, -9.37521648406982421, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- [DNT] Visual Stalker (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: )
(@CGUID+150, 244492, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1475.1180419921875, 1858.6041259765625, 87.45659637451171875, 5.479670047760009765, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- [DNT] Visual Stalker (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: ) (possible waypoints or random movement)
(@CGUID+151, 244492, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1334.9617919921875, 1707.107666015625, -1.25442159175872802, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- [DNT] Visual Stalker (Area: The Blinding Vale - Difficulty: Normal) CreateObject1
(@CGUID+152, 244492, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1345.6614990234375, 1758.3646240234375, 3.59451913833618164, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- [DNT] Visual Stalker (Area: The Blinding Vale - Difficulty: Normal) CreateObject1
(@CGUID+153, 244492, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1305.16845703125, 1841.9132080078125, -13.5233259201049804, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- [DNT] Visual Stalker (Area: The Blinding Vale - Difficulty: Normal) CreateObject1
(@CGUID+154, 244492, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1494.1961669921875, 1734.7413330078125, 100.9583358764648437, 1.547940015792846679, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- [DNT] Visual Stalker (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 1258155 - [DNT] Boss 1 RP Stalker Cosmetics)
(@CGUID+155, 244492, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1462.998291015625, 1878.9410400390625, 92.05010986328125, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- [DNT] Visual Stalker (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: )
(@CGUID+156, 260414, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1280.8988037109375, 1826.5174560546875, 38.05902862548828125, 5.946323394775390625, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- [DNT] Visual Stalker (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: ) (possible waypoints or random movement)
(@CGUID+157, 260414, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1275.0775146484375, 1823.6983642578125, 37.74588775634765625, 2.07574629783630371, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- [DNT] Visual Stalker (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: ) (possible waypoints or random movement)
(@CGUID+158, 260414, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1328.76318359375, 1826.2237548828125, 37.74588775634765625, 0.577431321144104003, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- [DNT] Visual Stalker (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: ) (possible waypoints or random movement)
(@CGUID+159, 260414, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1272.2515869140625, 1813.8709716796875, 44.05197906494140625, 3.450896978378295898, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- [DNT] Visual Stalker (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: ) (possible waypoints or random movement)
(@CGUID+160, 243028, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 1, 1483.7603759765625, 1735.295166015625, 100.8758697509765625, 6.230164527893066406, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Meittik (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 1253028 - Thicket's Trinity, 422356 - Bot AI Follow Advert) (possible waypoints or random movement)
(@CGUID+161, 244492, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1360.5504150390625, 1693.8541259765625, 4.204700469970703125, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- [DNT] Visual Stalker (Area: The Blinding Vale - Difficulty: Normal) CreateObject1
(@CGUID+162, 244492, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1324.498291015625, 1645.5052490234375, 6.1723175048828125, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- [DNT] Visual Stalker (Area: The Blinding Vale - Difficulty: Normal) CreateObject1
(@CGUID+163, 244492, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1321.248291015625, 1572.5572509765625, -0.78967690467834472, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- [DNT] Visual Stalker (Area: The Blinding Vale - Difficulty: Normal) CreateObject1
(@CGUID+164, 244492, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1305.2291259765625, 1608.23095703125, -9.25770759582519531, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- [DNT] Visual Stalker (Area: The Blinding Vale - Difficulty: Normal) CreateObject1
(@CGUID+165, 244492, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1353.74658203125, 1589.3055419921875, 0.10990077257156372, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- [DNT] Visual Stalker (Area: The Blinding Vale - Difficulty: Normal) CreateObject1
(@CGUID+166, 244492, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1249.173583984375, 1610.5208740234375, -11.9091472625732421, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- [DNT] Visual Stalker (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 1266262 - [DNT] Bubbles Trigger Stalker Aura)
(@CGUID+167, 244492, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1357.0225830078125, 1394.842041015625, -1.08886373043060302, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- [DNT] Visual Stalker (Area: The Blinding Vale - Difficulty: Normal) CreateObject1
(@CGUID+168, 244492, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1261.5694580078125, 1618.5208740234375, -18.3596858978271484, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- [DNT] Visual Stalker (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 1266368 - [DNT] Bubbles Splash)
(@CGUID+169, 244492, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1334.203125, 1536.6614990234375, 0.149624288082122802, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- [DNT] Visual Stalker (Area: The Blinding Vale - Difficulty: Normal) CreateObject1
(@CGUID+170, 244492, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1351.013916015625, 1414.1927490234375, -10.6568603515625, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- [DNT] Visual Stalker (Area: The Blinding Vale - Difficulty: Normal) CreateObject1
(@CGUID+171, 244492, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1341.685791015625, 1620.9288330078125, 2.086811542510986328, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- [DNT] Visual Stalker (Area: The Blinding Vale - Difficulty: Normal) CreateObject1
(@CGUID+172, 254850, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1425.3875732421875, 1908.1531982421875, 81.95076751708984375, 1.711410164833068847, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Sporeblight Belcher (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 1223119 - Invisibility and Stealth Detection) (possible waypoints or random movement)
(@CGUID+173, 245410, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1439.728759765625, 1908.02978515625, 81.85205841064453125, 2.367922067642211914, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238085 - Spore Spines) (possible waypoints or random movement)
(@CGUID+174, 245410, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1445.0384521484375, 1908.943115234375, 81.89813995361328125, 4.761111259460449218, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238085 - Spore Spines) (possible waypoints or random movement)
(@CGUID+175, 245336, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1480.388916015625, 1940.3350830078125, 82.17707061767578125, 5.817159652709960937, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Radiant Spellsower (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%)
(@CGUID+176, 260414, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1335.37060546875, 1762.7900390625, 19.2567596435546875, 2.680352687835693359, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- [DNT] Visual Stalker (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: ) (possible waypoints or random movement)
(@CGUID+177, 244887, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1249.992431640625, 1757.2216796875, 72.27423858642578125, 2.75938272476196289, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Ikuzz the Light Hunter (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 422359 - Bot AI Follow Advert)
(@CGUID+178, 245410, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1437.744873046875, 1901.7923583984375, 81.8288726806640625, 0.267621278762817382, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238085 - Spore Spines) (possible waypoints or random movement)
(@CGUID+179, 260414, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1344.261962890625, 1755.240478515625, 40.13861083984375, 1.956313252449035644, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- [DNT] Visual Stalker (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: ) (possible waypoints or random movement)
(@CGUID+180, 245460, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1101.46826171875, 1905.4375, 51.92805862426757812, 3.170462608337402343, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Leafy Grovecrawler (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%, 1312135 - Override Mana Bar Color - Holy) (possible waypoints or random movement)
(@CGUID+181, 245473, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1089.0533447265625, 1917.4027099609375, 52.8273773193359375, 1.63121199607849121, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Thorny Saptor (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%) (possible waypoints or random movement)
(@CGUID+182, 260414, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1303.6805419921875, 1754.609130859375, 20.19627952575683593, 4.391396522521972656, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- [DNT] Visual Stalker (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: ) (possible waypoints or random movement)
(@CGUID+183, 245346, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 1, 1318.642333984375, 1880.3177490234375, -13.5233259201049804, 3.699659109115600585, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Virid Grovekeeper (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%, 1284462 - [DNT]Bronze Affix Marker Spell, 1223119 - Invisibility and Stealth Detection)
(@CGUID+184, 256331, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1253.513916015625, 1861.1632080078125, -26.9818916320800781, 5.864306449890136718, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Strideling (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%)
(@CGUID+185, 245473, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1086.3466796875, 1908.034912109375, 52.07062530517578125, 2.328084468841552734, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Thorny Saptor (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%) (possible waypoints or random movement)
(@CGUID+186, 245336, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1279.27783203125, 1884.84033203125, -13.5233259201049804, 5.879358291625976562, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Radiant Spellsower (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%, 1284462 - [DNT]Bronze Affix Marker Spell)
(@CGUID+187, 210930, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1490.4166259765625, 1927.310791015625, 83.00347900390625, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Path Helper (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 422354 - Bot AI Follow Advert)
(@CGUID+188, 256331, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1224.4913330078125, 1880.43408203125, -25.7848472595214843, 5.934119224548339843, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Strideling (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%)
(@CGUID+189, 256331, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1231.12158203125, 1893.0260009765625, -26.3572444915771484, 5.672319889068603515, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Strideling (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%)
(@CGUID+190, 256330, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1114.7691650390625, 1897.55908203125, 52.35749053955078125, 3.651942729949951171, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Snake (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%) (possible waypoints or random movement)
(@CGUID+191, 256328, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1227.98095703125, 1868.420166015625, -28.9752941131591796, 5.078907966613769531, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Frog (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%)
(@CGUID+192, 254850, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1489.2569580078125, 1940.3350830078125, 82.40340423583984375, 2.16957712173461914, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Sporeblight Belcher (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 1284462 - [DNT]Bronze Affix Marker Spell, 1223119 - Invisibility and Stealth Detection)
(@CGUID+193, 245484, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1061.5367431640625, 1914.7918701171875, 52.09119796752929687, 6.215480327606201171, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Lightfeather Petalwing (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%) (possible waypoints or random movement)
(@CGUID+194, 245336, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1254.6263427734375, 1845.2427978515625, -15.0031242370605468, 0.389577925205230712, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Radiant Spellsower (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%) (possible waypoints or random movement)
(@CGUID+195, 260414, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1330.0191650390625, 1722.210693359375, 28.06265068054199218, 1.532328963279724121, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- [DNT] Visual Stalker (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: ) (possible waypoints or random movement)
(@CGUID+196, 260414, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1305.8255615234375, 1719.2064208984375, 17.32658767700195312, 0.974851548671722412, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- [DNT] Visual Stalker (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: ) (possible waypoints or random movement)
(@CGUID+197, 245336, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1520.2740478515625, 1945.4849853515625, 80.69707489013671875, 1.680542230606079101, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Radiant Spellsower (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%) (possible waypoints or random movement)
(@CGUID+198, 245527, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1147.9263916015625, 1845.837158203125, 50.651123046875, 4.640887737274169921, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Spineshield Beetle (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238581 - Spiny Shield) (possible waypoints or random movement)
(@CGUID+199, 245410, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1522.4739990234375, 1933.298583984375, 80.20478057861328125, 2.58589792251586914, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238051 - Cosmetic - Submerged/Emerge, 1238085 - Spore Spines)
(@CGUID+200, 245410, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1522.84033203125, 1925.078125, 80.59661865234375, 4.113468170166015625, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238051 - Cosmetic - Submerged/Emerge, 1238085 - Spore Spines)
(@CGUID+201, 245339, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 1, 1518.795166015625, 1915.3836669921875, 82.14743804931640625, 2.567029476165771484, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Underbrush Stalker (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%, 1238808 - [DNT] Cosmetic Rutaani Use With Channel Hands Aura) (possible waypoints or random movement)
(@CGUID+202, 255696, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1166.3524169921875, 1841.51220703125, 49.69815826416015625, 4.167735576629638671, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Baby Grovecrawler (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 1266013 - Thorn Tangle)
(@CGUID+203, 245336, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1327.4332275390625, 1818.9696044921875, -15.0031242370605468, 2.121804714202880859, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Radiant Spellsower (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%) (possible waypoints or random movement)
(@CGUID+204, 245339, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 1, 1281.8896484375, 1820.2774658203125, -15.0031242370605468, 1.445484399795532226, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Underbrush Stalker (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%) (possible waypoints or random movement)
(@CGUID+205, 245336, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1284.98095703125, 1846.6129150390625, -13.5247383117675781, 1.009572982788085937, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Radiant Spellsower (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%, 1284462 - [DNT]Bronze Affix Marker Spell)
(@CGUID+206, 245339, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 1, 1309.591552734375, 1844.4293212890625, -13.5233259201049804, 1.868748664855957031, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Underbrush Stalker (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%, 1284462 - [DNT]Bronze Affix Marker Spell)
(@CGUID+207, 256332, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1504.3941650390625, 1912.9254150390625, 83.99143218994140625, 4.677482128143310546, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Snail (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%) (possible waypoints or random movement)
(@CGUID+208, 256332, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1526.2320556640625, 1934.2625732421875, 79.75994110107421875, 1.595188498497009277, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Snail (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%) (possible waypoints or random movement)
(@CGUID+209, 245410, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1523.842041015625, 1940.640625, 79.79988861083984375, 2.58589792251586914, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238051 - Cosmetic - Submerged/Emerge, 1238085 - Spore Spines)
(@CGUID+210, 245410, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1513.9791259765625, 1936.74658203125, 81.42948150634765625, 5.570760250091552734, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238051 - Cosmetic - Submerged/Emerge, 1238085 - Spore Spines)
(@CGUID+211, 245410, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1519.576416015625, 1923.6614990234375, 81.051788330078125, 3.669282436370849609, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238051 - Cosmetic - Submerged/Emerge, 1238085 - Spore Spines)
(@CGUID+212, 245410, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1516.6805419921875, 1928.2239990234375, 81.36096954345703125, 4.649689674377441406, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238051 - Cosmetic - Submerged/Emerge, 1238085 - Spore Spines)
(@CGUID+213, 245410, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1520.9271240234375, 1936.9375, 80.2781982421875, 5.987946987152099609, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238051 - Cosmetic - Submerged/Emerge, 1238085 - Spore Spines)
(@CGUID+214, 245345, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1515.032958984375, 1932.90625, 81.30902862548828125, 4.649689674377441406, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lightgorged Lasher (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238051 - Cosmetic - Submerged/Emerge)
(@CGUID+215, 246871, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1341.788818359375, 1826.72314453125, -15.0031232833862304, 4.581473827362060546, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Luminous Thornmaw (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 1223119 - Invisibility and Stealth Detection) (possible waypoints or random movement)
(@CGUID+216, 245336, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1459.94970703125, 1869.748291015625, 88.222412109375, 1.250580310821533203, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Radiant Spellsower (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%) (possible waypoints or random movement)
(@CGUID+217, 245410, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1522.3524169921875, 1928.93408203125, 80.08617401123046875, 3.669282436370849609, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238051 - Cosmetic - Submerged/Emerge, 1238085 - Spore Spines)
(@CGUID+218, 245410, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1519.3663330078125, 1939.7691650390625, 80.66146087646484375, 4.649689674377441406, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238051 - Cosmetic - Submerged/Emerge, 1238085 - Spore Spines)
(@CGUID+219, 245410, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1516.29345703125, 1941.939208984375, 81.11637115478515625, 2.58589792251586914, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238051 - Cosmetic - Submerged/Emerge, 1238085 - Spore Spines)
(@CGUID+220, 245527, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1066.1363525390625, 1911.879638671875, 53.0882568359375, 3.804594039916992187, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Spineshield Beetle (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238581 - Spiny Shield) (possible waypoints or random movement)
(@CGUID+221, 245527, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1068.689208984375, 1909.0435791015625, 53.0882568359375, 5.605277538299560546, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Spineshield Beetle (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238581 - Spiny Shield) (possible waypoints or random movement)
(@CGUID+222, 245345, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1518.2396240234375, 1931.3333740234375, 80.797637939453125, 5.006261825561523437, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lightgorged Lasher (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238051 - Cosmetic - Submerged/Emerge)
(@CGUID+223, 245527, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1144.12158203125, 1842.2454833984375, 50.651123046875, 4.762176513671875, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Spineshield Beetle (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238581 - Spiny Shield) (possible waypoints or random movement)
(@CGUID+224, 245473, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1053.49658203125, 1917.2396240234375, 52.171875, 0.78768312931060791, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Thorny Saptor (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%)
(@CGUID+225, 245460, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1058.09033203125, 1922.423583984375, 52.17344284057617187, 4.228985786437988281, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Leafy Grovecrawler (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%, 1312135 - Override Mana Bar Color - Holy)
(@CGUID+226, 256331, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1321.1007080078125, 1812.217041015625, -29.9957542419433593, 2.164208173751831054, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Strideling (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%)
(@CGUID+227, 245527, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1058.793701171875, 1918.458251953125, 53.09093475341796875, 0.307484000921249389, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Spineshield Beetle (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238581 - Spiny Shield) (possible waypoints or random movement)
(@CGUID+228, 245527, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1066.18994140625, 1905.6331787109375, 53.0882568359375, 2.189903736114501953, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Spineshield Beetle (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238581 - Spiny Shield) (possible waypoints or random movement)
(@CGUID+229, 245527, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1061.1885986328125, 1908.7957763671875, 53.08828353881835937, 3.201071739196777343, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Spineshield Beetle (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238581 - Spiny Shield) (possible waypoints or random movement)
(@CGUID+230, 245527, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1149.2041015625, 1838.968994140625, 50.651123046875, 0.657595694065093994, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Spineshield Beetle (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238581 - Spiny Shield) (possible waypoints or random movement)
(@CGUID+231, 245410, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1483.3330078125, 1866.6669921875, 85.36333465576171875, 5.468079566955566406, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238085 - Spore Spines)
(@CGUID+232, 245339, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 1, 1488.18408203125, 1871.14453125, 84.6414794921875, 4.124284744262695312, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Underbrush Stalker (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%, 1238808 - [DNT] Cosmetic Rutaani Use With Channel Hands Aura) (possible waypoints or random movement)
(@CGUID+233, 256332, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1121.0694580078125, 1852.3992919921875, 104.4429931640625, 0.05235987901687622, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Snail (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%) (possible waypoints or random movement)
(@CGUID+234, 256332, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1149.7100830078125, 1832.4114990234375, 50.20000457763671875, 3.636317729949951171, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Snail (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%) (possible waypoints or random movement)
(@CGUID+235, 256330, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1061.673583984375, 1915.826416015625, 52.0937652587890625, 4.889655113220214843, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Snake (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%)
(@CGUID+236, 245527, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1142.7764892578125, 1839.4840087890625, 50.651123046875, 5.433248043060302734, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Spineshield Beetle (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238581 - Spiny Shield) (possible waypoints or random movement)
(@CGUID+237, 245336, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1483.3330078125, 1860.416015625, 86.19195556640625, 3.400242328643798828, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Radiant Spellsower (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%)
(@CGUID+238, 245339, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 1, 1493.5919189453125, 1869.6361083984375, 84.86020660400390625, 4.483892440795898437, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Underbrush Stalker (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%, 1238808 - [DNT] Cosmetic Rutaani Use With Channel Hands Aura)
(@CGUID+239, 260414, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1306.1812744140625, 1693.853515625, 17.32658767700195312, 3.105829238891601562, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- [DNT] Visual Stalker (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: ) (possible waypoints or random movement)
(@CGUID+240, 260414, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1357.58837890625, 1696.163818359375, 34.68488311767578125, 1.30622255802154541, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- [DNT] Visual Stalker (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: ) (possible waypoints or random movement)
(@CGUID+241, 245410, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1486.94580078125, 1861.59228515625, 86.00557708740234375, 4.648645877838134765, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238085 - Spore Spines) (possible waypoints or random movement)
(@CGUID+242, 256328, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1341.451416015625, 1810.954833984375, -28.0460395812988281, 0.331612557172775268, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Frog (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%)
(@CGUID+243, 245410, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1493.75, 1866.6669921875, 85.2869110107421875, 0.786127567291259765, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238085 - Spore Spines) (possible waypoints or random movement)
(@CGUID+244, 245410, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1489.9404296875, 1856.4632568359375, 86.788177490234375, 3.891894102096557617, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238085 - Spore Spines) (possible waypoints or random movement)
(@CGUID+245, 260414, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1336.0665283203125, 1688.23486328125, 42.56575393676757812, 5.789154529571533203, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- [DNT] Visual Stalker (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: ) (possible waypoints or random movement)
(@CGUID+246, 260414, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1322.0836181640625, 1690.3212890625, 22.83532524108886718, 0.474732965230941772, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- [DNT] Visual Stalker (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: ) (possible waypoints or random movement)
(@CGUID+247, 260414, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1302.048095703125, 1685.5970458984375, 27.64140701293945312, 5.870454311370849609, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- [DNT] Visual Stalker (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: ) (possible waypoints or random movement)
(@CGUID+248, 245410, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1494.98583984375, 1859.9114990234375, 86.31021881103515625, 0.906582891941070556, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238085 - Spore Spines) (possible waypoints or random movement)
(@CGUID+249, 245484, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1085.7569580078125, 1877.5103759765625, 59.72366714477539062, 2.13564610481262207, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Lightfeather Petalwing (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%) (possible waypoints or random movement)
(@CGUID+250, 245410, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1257.2603759765625, 1790.1510009765625, -14.28125, 2.690587282180786132, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238051 - Cosmetic - Submerged/Emerge, 1238085 - Spore Spines)
(@CGUID+251, 256328, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1315.4322509765625, 1796.3958740234375, -28.8126411437988281, 3.420845270156860351, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Frog (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%)
(@CGUID+252, 245527, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1062.680419921875, 1904.9200439453125, 53.08827972412109375, 0.29562726616859436, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Spineshield Beetle (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238581 - Spiny Shield) (possible waypoints or random movement)
(@CGUID+253, 210930, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1493.2708740234375, 1847.7222900390625, 88.11029052734375, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Path Helper (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 422354 - Bot AI Follow Advert)
(@CGUID+254, 256328, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1331.204833984375, 1796.2430419921875, -28.094583511352539, 0.837758064270019531, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Frog (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%)
(@CGUID+255, 256331, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1251.59375, 1799.90283203125, -28.9249610900878906, 5.131268024444580078, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Strideling (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%)
(@CGUID+256, 256330, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1476.861083984375, 1853.3853759765625, 177.556304931640625, 5.672319889068603515, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Snake (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%)
(@CGUID+257, 245410, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1246.6632080078125, 1794.3975830078125, -14.1163196563720703, 2.117862224578857421, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238051 - Cosmetic - Submerged/Emerge, 1238085 - Spore Spines)
(@CGUID+258, 245410, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1252.2847900390625, 1795.78125, -14.120025634765625, 3.591873407363891601, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238051 - Cosmetic - Submerged/Emerge, 1238085 - Spore Spines)
(@CGUID+259, 245513, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1280.200927734375, 1785.064697265625, -14.65576171875, 5.153218269348144531, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Overgrown Hydra (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 1223119 - Invisibility and Stealth Detection) (possible waypoints or random movement)
(@CGUID+260, 245410, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1250.7603759765625, 1790.0833740234375, -14.1597223281860351, 3.591873407363891601, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238051 - Cosmetic - Submerged/Emerge, 1238085 - Spore Spines)
(@CGUID+261, 245410, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1246.60595703125, 1790.0347900390625, -14.133681297302246, 2.17058110237121582, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238051 - Cosmetic - Submerged/Emerge, 1238085 - Spore Spines)
(@CGUID+262, 245410, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1322.829833984375, 1783.295166015625, -14.1770839691162109, 0.805556178092956542, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238051 - Cosmetic - Submerged/Emerge, 1238085 - Spore Spines)
(@CGUID+263, 245410, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1318.6041259765625, 1782.2413330078125, -13.9720306396484375, 0.858275055885314941, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238051 - Cosmetic - Submerged/Emerge, 1238085 - Spore Spines)
(@CGUID+264, 256331, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1234.1302490234375, 1797.185791015625, -28.3196620941162109, 1.65806281566619873, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Strideling (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%)
(@CGUID+265, 245527, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1054.731689453125, 1906.2193603515625, 53.08828353881835937, 4.392442226409912109, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Spineshield Beetle (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238581 - Spiny Shield) (possible waypoints or random movement)
(@CGUID+266, 245410, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1319.7117919921875, 1778.23095703125, -13.8020839691162109, 2.279567956924438476, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238051 - Cosmetic - Submerged/Emerge, 1238085 - Spore Spines)
(@CGUID+267, 245410, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1325.611083984375, 1778.220458984375, -14.086806297302246, 2.279567956924438476, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238051 - Cosmetic - Submerged/Emerge, 1238085 - Spore Spines)
(@CGUID+268, 256331, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1331.7135009765625, 1782.4149169921875, -26.7246875762939453, 2.39110112190246582, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Strideling (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%)
(@CGUID+269, 256331, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1260.9913330078125, 1788.6492919921875, -28.957550048828125, 0.366519153118133544, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Strideling (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%)
(@CGUID+270, 245410, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1487.3558349609375, 1822.337158203125, 91.70843505859375, 6.217854022979736328, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%)
(@CGUID+271, 245410, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1492.2274169921875, 1824.732666015625, 92.29055023193359375, 5.120272159576416015, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%)
(@CGUID+272, 245410, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1252.420166015625, 1783.390625, -14.4739589691162109, 4.3978271484375, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238051 - Cosmetic - Submerged/Emerge, 1238085 - Spore Spines)
(@CGUID+273, 245460, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1114.7093505859375, 1840.0931396484375, 51.86196517944335937, 1.818837285041809082, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Leafy Grovecrawler (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%, 1312135 - Override Mana Bar Color - Holy) (possible waypoints or random movement)
(@CGUID+274, 210933, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1324.0225830078125, 1776.0711669921875, -13.5200405120849609, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Path Helper (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 423677 - Bot AI Follow Advert)
(@CGUID+275, 245410, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1313.6666259765625, 1774.9166259765625, -12.8350696563720703, 3.085521459579467773, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238051 - Cosmetic - Submerged/Emerge, 1238085 - Spore Spines)
(@CGUID+276, 245410, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1512.3333740234375, 1838.0103759765625, 91.26287841796875, 2.58589792251586914, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238051 - Cosmetic - Submerged/Emerge, 1284462 - [DNT]Bronze Affix Marker Spell, 1238085 - Spore Spines)
(@CGUID+277, 245345, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1496.7603759765625, 1822.4617919921875, 91.17058563232421875, 3.028337955474853515, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lightgorged Lasher (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1284462 - [DNT]Bronze Affix Marker Spell)
(@CGUID+278, 245410, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1492.4007568359375, 1821.206787109375, 91.522308349609375, 6.213944911956787109, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238085 - Spore Spines) (possible waypoints or random movement)
(@CGUID+279, 245410, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1512.765625, 1835.09375, 92.04388427734375, 2.58589792251586914, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238051 - Cosmetic - Submerged/Emerge, 1284462 - [DNT]Bronze Affix Marker Spell, 1238085 - Spore Spines)
(@CGUID+280, 245410, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1510.0347900390625, 1835.8333740234375, 91.64879608154296875, 2.58589792251586914, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238051 - Cosmetic - Submerged/Emerge, 1284462 - [DNT]Bronze Affix Marker Spell, 1238085 - Spore Spines)
(@CGUID+281, 245410, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1508.34033203125, 1834.1944580078125, 91.69110870361328125, 5.570760250091552734, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238051 - Cosmetic - Submerged/Emerge, 1284462 - [DNT]Bronze Affix Marker Spell, 1238085 - Spore Spines)
(@CGUID+282, 245410, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1321.439208984375, 1771.96875, -13.5451393127441406, 1.378281712532043457, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238051 - Cosmetic - Submerged/Emerge, 1238085 - Spore Spines)
(@CGUID+283, 245345, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1513.892333984375, 1831.7222900390625, 92.4758758544921875, 3.669282436370849609, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lightgorged Lasher (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238051 - Cosmetic - Submerged/Emerge, 1284462 - [DNT]Bronze Affix Marker Spell)
(@CGUID+284, 245410, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1510.3472900390625, 1825.5521240234375, 92.63715362548828125, 4.113468170166015625, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238051 - Cosmetic - Submerged/Emerge, 1284462 - [DNT]Bronze Affix Marker Spell, 1238085 - Spore Spines)
(@CGUID+285, 256330, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1516.3333740234375, 1835.140625, 90.9330902099609375, 0.510038137435913085, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Snake (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%)
(@CGUID+286, 245410, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1509.6510009765625, 1830.625, 92.30804443359375, 3.669282436370849609, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238051 - Cosmetic - Submerged/Emerge, 1284462 - [DNT]Bronze Affix Marker Spell, 1238085 - Spore Spines)
(@CGUID+287, 245336, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 0, 1496.789794921875, 1819.278076171875, 91.7538299560546875, 1.764301300048828125, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Radiant Spellsower (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%) (possible waypoints or random movement)
(@CGUID+288, 245346, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 0, 1, 1489.1429443359375, 1782.4036865234375, 98.34311676025390625, 0.716992974281311035, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Virid Grovekeeper (Area: The Blinding Vale - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%, 1223119 - Invisibility and Stealth Detection)
(@CGUID+289, 245345, 2859, 16359, 16799, '1,2,23,205,8', '0', 0, 0, 0, 1474.62158203125, 1791.3819580078125, 99.1150665283203125, 4.649689674377441406, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lightgorged Lasher (Area: The Luminous Garden - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238051 - Cosmetic - Submerged/Emerge)
(@CGUID+290, 245410, 2859, 16359, 16799, '1,2,23,205,8', '0', 0, 0, 0, 1509.420166015625, 1787.0399169921875, 99.64098358154296875, 2.58589792251586914, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: The Luminous Garden - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238051 - Cosmetic - Submerged/Emerge, 1238085 - Spore Spines)
(@CGUID+291, 245410, 2859, 16359, 16799, '1,2,23,205,8', '0', 0, 0, 0, 1508.9913330078125, 1783.703125, 100.7754592895507812, 4.113468170166015625, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: The Luminous Garden - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238051 - Cosmetic - Submerged/Emerge, 1238085 - Spore Spines)
(@CGUID+292, 245410, 2859, 16359, 16799, '1,2,23,205,8', '0', 0, 0, 0, 1477.4415283203125, 1789.707275390625, 99.47240447998046875, 5.570760250091552734, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: The Luminous Garden - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238051 - Cosmetic - Submerged/Emerge, 1238085 - Spore Spines) (possible waypoints or random movement)
(@CGUID+293, 245410, 2859, 16359, 16799, '1,2,23,205,8', '0', 0, 0, 0, 1511.3385009765625, 1789.4271240234375, 98.89490509033203125, 2.58589792251586914, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: The Luminous Garden - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238051 - Cosmetic - Submerged/Emerge, 1238085 - Spore Spines)
(@CGUID+294, 245410, 2859, 16359, 16799, '1,2,23,205,8', '0', 0, 0, 0, 1511.1041259765625, 1783.34375, 101.3514328002929687, 5.570760250091552734, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: The Luminous Garden - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238051 - Cosmetic - Submerged/Emerge, 1238085 - Spore Spines)
(@CGUID+295, 245410, 2859, 16359, 16799, '1,2,23,205,8', '0', 0, 0, 0, 1477.3765869140625, 1792.2489013671875, 98.41080474853515625, 4.113468170166015625, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: The Luminous Garden - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238051 - Cosmetic - Submerged/Emerge, 1238085 - Spore Spines) (possible waypoints or random movement)
(@CGUID+296, 210930, 2859, 16359, 16799, '1,2,23,205,8', '0', 0, 0, 0, 1495.43408203125, 1784.5364990234375, 97.9789581298828125, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Path Helper (Area: The Luminous Garden - Difficulty: Normal) CreateObject1 (Auras: 422354 - Bot AI Follow Advert)
(@CGUID+297, 256332, 2859, 16359, 16799, '1,2,23,205,8', '0', 0, 0, 0, 1510.4144287109375, 1795.40283203125, 98.2052001953125, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Snail (Area: The Luminous Garden - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%)
(@CGUID+298, 245345, 2859, 16359, 16799, '1,2,23,205,8', '0', 0, 0, 0, 1508.1510009765625, 1780.96875, 101.3104095458984375, 4.649689674377441406, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lightgorged Lasher (Area: The Luminous Garden - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238051 - Cosmetic - Submerged/Emerge)
(@CGUID+299, 256332, 2859, 16359, 16799, '1,2,23,205,8', '0', 0, 0, 0, 1479.970458984375, 1785.045166015625, 192.542724609375, 4.71361398696899414, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Snail (Area: The Luminous Garden - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%)
(@CGUID+300, 245339, 2859, 16359, 16799, '1,2,23,205,8', '0', 0, 0, 1, 1400.7384033203125, 1738.952392578125, 101.51800537109375, 0.323738723993301391, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Underbrush Stalker (Area: The Luminous Garden - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%) (possible waypoints or random movement)
(@CGUID+301, 245339, 2859, 16359, 16799, '1,2,23,205,8', '0', 0, 0, 1, 1408.9564208984375, 1730.634521484375, 101.1690139770507812, 3.465347766876220703, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Underbrush Stalker (Area: The Luminous Garden - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%) (possible waypoints or random movement)
(@CGUID+302, 245513, 2859, 16359, 16799, '1,2,23,205,8', '0', 0, 0, 0, 1333.09912109375, 1760.6650390625, -10.3897628784179687, 1.394087433815002441, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Overgrown Hydra (Area: The Luminous Garden - Difficulty: Normal) CreateObject1 (Auras: 1223119 - Invisibility and Stealth Detection) (possible waypoints or random movement)
(@CGUID+303, 254850, 2859, 16359, 16799, '1,2,23,205,8', '0', 0, 0, 0, 1406.6488037109375, 1737.24365234375, 101.31097412109375, 3.465315103530883789, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Sporeblight Belcher (Area: The Luminous Garden - Difficulty: Normal) CreateObject1 (Auras: 1223119 - Invisibility and Stealth Detection) (possible waypoints or random movement)
(@CGUID+304, 245345, 2859, 16359, 16799, '1,2,23,205,8', '0', 0, 0, 0, 1404.38525390625, 1732.79248046875, 101.1666183471679687, 0.323745489120483398, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Lightgorged Lasher (Area: The Luminous Garden - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%) (possible waypoints or random movement)
(@CGUID+305, 210931, 2859, 16359, 16799, '1,2,23,205,8', '0', 0, 0, 0, 1414.953125, 1736.13720703125, 101.0778121948242187, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Path Helper (Area: The Luminous Garden - Difficulty: Normal) CreateObject1 (Auras: 422357 - Bot AI Follow Advert)
(@CGUID+306, 243029, 2859, 16359, 16799, '1,2,23,205,8', '0', 0, 0, 0, 1502.734375, 1735.701416015625, 100.9592056274414062, 1.857330799102783203, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Kezkitt (Area: The Luminous Garden - Difficulty: Normal) CreateObject1 (Auras: 1253028 - Thicket's Trinity) (possible waypoints or random movement)
(@CGUID+307, 243030, 2859, 16359, 16799, '1,2,23,205,8', '0', 0, 0, 1, 1481.810791015625, 1734.0069580078125, 100.9592056274414062, 3.290418863296508789, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Lekshi (Area: The Luminous Garden - Difficulty: Normal) CreateObject1 (Auras: 1253028 - Thicket's Trinity, 1238808 - [DNT] Cosmetic Rutaani Use With Channel Hands Aura) (possible waypoints or random movement)
(@CGUID+308, 256328, 2859, 16359, 16799, '1,2,23,205,8', '0', 0, 0, 0, 1344.829833984375, 1755.3316650390625, -15.1171779632568359, 2.007128715515136718, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Frog (Area: The Luminous Garden - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%)
(@CGUID+309, 245410, 2859, 16359, 16799, '1,2,23,205,8', '0', 0, 0, 0, 1359.322998046875, 1719.0384521484375, 93.82161712646484375, 5.609519481658935546, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: The Luminous Garden - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238085 - Spore Spines) (possible waypoints or random movement)
(@CGUID+310, 256328, 2859, 16359, 16799, '1,2,23,205,8', '0', 0, 0, 0, 1349.548583984375, 1734.5504150390625, -9.21608734130859375, 3.03687286376953125, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Frog (Area: The Luminous Garden - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%)
(@CGUID+311, 256328, 2859, 16359, 16799, '1,2,23,205,8', '0', 0, 0, 0, 1313.517333984375, 1760.0225830078125, -18.5797119140625, 1.413716673851013183, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Frog (Area: The Luminous Garden - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%)
(@CGUID+312, 245410, 2859, 16359, 16799, '1,2,23,205,8', '0', 0, 0, 0, 1360.953857421875, 1710.305419921875, 93.58998870849609375, 3.559511661529541015, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: The Luminous Garden - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238085 - Spore Spines) (possible waypoints or random movement)
(@CGUID+313, 245410, 2859, 16359, 16799, '1,2,23,205,8', '0', 0, 0, 0, 1353.6187744140625, 1719.7249755859375, 92.9680328369140625, 1.811655521392822265, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: The Luminous Garden - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238085 - Spore Spines) (possible waypoints or random movement)
(@CGUID+314, 245410, 2859, 16359, 16799, '1,2,23,205,8', '0', 0, 0, 0, 1357.8455810546875, 1716.7979736328125, 93.19623565673828125, 1.337657809257507324, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: The Luminous Garden - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238085 - Spore Spines) (possible waypoints or random movement)
(@CGUID+315, 245410, 2859, 16359, 16799, '1,2,23,205,8', '0', 0, 0, 0, 1355.189453125, 1712.7730712890625, 92.1118621826171875, 5.877224922180175781, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: The Luminous Garden - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238085 - Spore Spines) (possible waypoints or random movement)
(@CGUID+316, 245484, 2859, 16359, 16799, '1,2,23,205,8', '0', 0, 0, 0, 1340.2440185546875, 1711.6282958984375, 90.2828369140625, 0.04400477185845375, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Lightfeather Petalwing (Area: The Luminous Garden - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%) (possible waypoints or random movement)
(@CGUID+317, 211151, 2859, 16359, 16799, '1,2,23,205,8', '0', 0, 0, 0, 1432.65625, 1699.6875, 96.3052215576171875, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Path Helper (Area: The Luminous Garden - Difficulty: Normal) CreateObject1 (Auras: 424283 - Passive)
(@CGUID+318, 211152, 2859, 16359, 16799, '1,2,23,205,8', '0', 0, 0, 0, 1439.673583984375, 1691.5347900390625, 96.2981109619140625, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Path Helper (Area: The Luminous Garden - Difficulty: Normal) CreateObject1 (Auras: 424283 - Passive)
(@CGUID+319, 211137, 2859, 16359, 16799, '1,2,23,205,8', '0', 0, 0, 0, 1430.1632080078125, 1697.3038330078125, 96.30594635009765625, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Path Helper (Area: The Luminous Garden - Difficulty: Normal) CreateObject1 (Auras: 424283 - Passive)
(@CGUID+320, 211149, 2859, 16359, 16799, '1,2,23,205,8', '0', 0, 0, 0, 1440.26220703125, 1695.6944580078125, 96.32180023193359375, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Path Helper (Area: The Luminous Garden - Difficulty: Normal) CreateObject1 (Auras: 424283 - Passive)
(@CGUID+321, 211150, 2859, 16359, 16799, '1,2,23,205,8', '0', 0, 0, 0, 1437.0867919921875, 1700.1961669921875, 96.28192138671875, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Path Helper (Area: The Luminous Garden - Difficulty: Normal) CreateObject1 (Auras: 424283 - Passive)
(@CGUID+322, 245346, 2859, 16359, 16799, '1,2,23,205,8', '0', 0, 0, 1, 1343.6895751953125, 1711.77978515625, 88.52809906005859375, 0.044040832668542861, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Virid Grovekeeper (Area: The Luminous Garden - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%, 1223119 - Invisibility and Stealth Detection) (possible waypoints or random movement)
(@CGUID+323, 245473, 2859, 16359, 16799, '1,2,23,205,8', '0', 0, 0, 0, 1317.275146484375, 1703.609619140625, 79.79833984375, 3.18566441535949707, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Thorny Saptor (Area: The Luminous Garden - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%) (possible waypoints or random movement)
(@CGUID+324, 245336, 2859, 16359, 16799, '1,2,23,205,8', '0', 0, 0, 0, 1257.2626953125, 1772.757080078125, -14.2005176544189453, 1.765879750251770019, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Radiant Spellsower (Area: The Luminous Garden - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%) (possible waypoints or random movement)
(@CGUID+325, 245336, 2859, 16359, 16799, '1,2,23,205,8', '0', 0, 0, 0, 1269.42431640625, 1754.5423583984375, -14.2044172286987304, 1.57129836082458496, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Radiant Spellsower (Area: The Luminous Garden - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%) (possible waypoints or random movement)
(@CGUID+326, 245410, 2859, 16359, 16799, '1,2,23,205,8', '0', 0, 0, 0, 1260.767333984375, 1773.875, -14.1154251098632812, 2.696335554122924804, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: The Luminous Garden - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238051 - Cosmetic - Submerged/Emerge, 1238085 - Spore Spines)
(@CGUID+327, 210931, 2859, 16359, 16799, '1,2,23,205,8', '0', 0, 0, 0, 1310.625, 1713.5711669921875, 77.3698883056640625, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Path Helper (Area: The Luminous Garden - Difficulty: Normal) CreateObject1 (Auras: 422357 - Bot AI Follow Advert)
(@CGUID+328, 256332, 2859, 16359, 16799, '1,2,23,205,8', '0', 0, 0, 0, 1362.12158203125, 1693.4097900390625, 4.372191429138183593, 2.718082189559936523, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Snail (Area: The Luminous Garden - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%) (possible waypoints or random movement)
(@CGUID+329, 245345, 2859, 16359, 16799, '1,2,23,205,8', '0', 0, 0, 0, 1256.7899169921875, 1772.8177490234375, -14.1136684417724609, 3.6767425537109375, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lightgorged Lasher (Area: The Luminous Garden - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238051 - Cosmetic - Submerged/Emerge)
(@CGUID+330, 245345, 2859, 16359, 16799, '1,2,23,205,8', '0', 0, 0, 0, 1264.9010009765625, 1773.095458984375, -14.1171846389770507, 3.6767425537109375, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lightgorged Lasher (Area: The Luminous Garden - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238051 - Cosmetic - Submerged/Emerge)
(@CGUID+331, 245410, 2859, 16359, 16799, '1,2,23,205,8', '0', 0, 0, 0, 1262.032958984375, 1761.545166015625, -14.1171731948852539, 4.597813129425048828, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: The Luminous Garden - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238051 - Cosmetic - Submerged/Emerge, 1238085 - Spore Spines)
(@CGUID+332, 245345, 2859, 16359, 16799, '1,2,23,205,8', '0', 0, 0, 0, 1269.421875, 1759.404541015625, -14.1188411712646484, 3.6767425537109375, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lightgorged Lasher (Area: The Luminous Garden - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238051 - Cosmetic - Submerged/Emerge)
(@CGUID+333, 245345, 2859, 16359, 16799, '1,2,23,205,8', '0', 0, 0, 0, 1263.7066650390625, 1765.125, -14.1171779632568359, 5.015000343322753906, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lightgorged Lasher (Area: The Luminous Garden - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238051 - Cosmetic - Submerged/Emerge)
(@CGUID+334, 245410, 2859, 16359, 16799, '1,2,23,205,8', '0', 0, 0, 0, 1268.8680419921875, 1764.1302490234375, -14.1174392700195312, 1.612950921058654785, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: The Luminous Garden - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238051 - Cosmetic - Submerged/Emerge, 1238085 - Spore Spines)
(@CGUID+335, 245410, 2859, 16359, 16799, '1,2,23,205,8', '0', 0, 0, 0, 1263.1754150390625, 1769.435791015625, -14.1173171997070312, 3.140521049499511718, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: The Luminous Garden - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238051 - Cosmetic - Submerged/Emerge, 1238085 - Spore Spines)
(@CGUID+336, 245410, 2859, 16359, 16799, '1,2,23,205,8', '0', 0, 0, 0, 1254.671875, 1774.576416015625, -13.8871536254882812, 1.612950921058654785, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: The Luminous Garden - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238051 - Cosmetic - Submerged/Emerge, 1238085 - Spore Spines)
(@CGUID+337, 245345, 2859, 16359, 16799, '1,2,23,205,8', '0', 0, 0, 0, 1257.623291015625, 1764.529541015625, -14.1171798706054687, 2.696335554122924804, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lightgorged Lasher (Area: The Luminous Garden - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238051 - Cosmetic - Submerged/Emerge)
(@CGUID+338, 245410, 2859, 16359, 16799, '1,2,23,205,8', '0', 0, 0, 0, 1255.1180419921875, 1769.44970703125, -14.1169233322143554, 1.612950921058654785, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: The Luminous Garden - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238051 - Cosmetic - Submerged/Emerge, 1238085 - Spore Spines)
(@CGUID+339, 256331, 2859, 16359, 16799, '1,2,23,205,8', '0', 0, 0, 0, 1273.013916015625, 1748.576416015625, -28.54095458984375, 0.628318548202514648, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Strideling (Area: The Luminous Garden - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%)
(@CGUID+340, 256328, 2859, 16359, 16799, '1,2,23,205,8', '0', 0, 0, 0, 1246.404541015625, 1777.765625, -27.9584617614746093, 5.637413501739501953, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Frog (Area: The Luminous Garden - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%)
(@CGUID+341, 256328, 2859, 16359, 16799, '1,2,23,205,8', '0', 0, 0, 0, 1262.9097900390625, 1754.3941650390625, -28.3168239593505859, 1.692969322204589843, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Frog (Area: The Luminous Garden - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%)
(@CGUID+342, 245345, 2859, 16359, 16799, '1,2,23,205,8', '0', 0, 0, 0, 1261.6285400390625, 1756.7447509765625, -14.1171770095825195, 4.033314704895019531, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lightgorged Lasher (Area: The Luminous Garden - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238051 - Cosmetic - Submerged/Emerge)
(@CGUID+343, 256331, 2859, 16359, 16799, '1,2,23,205,8', '0', 0, 0, 0, 1257.13720703125, 1747.7569580078125, -28.3023033142089843, 4.677482128143310546, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Strideling (Area: The Luminous Garden - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%)
(@CGUID+344, 245513, 2859, 16359, 16799, '1,2,23,205,8', '0', 0, 0, 0, 1266.4930419921875, 1730.4305419921875, -14.1171646118164062, 5.914830684661865234, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Overgrown Hydra (Area: The Luminous Garden - Difficulty: Normal) CreateObject1 (Auras: 1295907 - Sleep, 1223119 - Invisibility and Stealth Detection)
(@CGUID+345, 256331, 2859, 16359, 16799, '1,2,23,205,8', '0', 0, 0, 0, 1255.4114990234375, 1758.654541015625, -28.3202552795410156, 4.817108631134033203, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Strideling (Area: The Luminous Garden - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%)
(@CGUID+346, 211151, 2859, 16359, 16799, '1,2,23,205,8', '0', 0, 0, 0, 1268.795166015625, 1698.9444580078125, 72.246337890625, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Path Helper (Area: The Luminous Garden - Difficulty: Normal) CreateObject1 (Auras: 424283 - Passive)
(@CGUID+347, 211152, 2859, 16359, 16799, '1,2,23,205,8', '0', 0, 0, 0, 1259.935791015625, 1690.953125, 72.25323486328125, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Path Helper (Area: The Luminous Garden - Difficulty: Normal) CreateObject1 (Auras: 424283 - Passive)
(@CGUID+348, 211137, 2859, 16359, 16799, '1,2,23,205,8', '0', 0, 0, 0, 1258.3663330078125, 1694.3472900390625, 72.24819183349609375, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Path Helper (Area: The Luminous Garden - Difficulty: Normal) CreateObject1 (Auras: 424283 - Passive)
(@CGUID+349, 211149, 2859, 16359, 16799, '1,2,23,205,8', '0', 0, 0, 0, 1259.1180419921875, 1698.420166015625, 72.2496795654296875, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Path Helper (Area: The Luminous Garden - Difficulty: Normal) CreateObject1 (Auras: 424283 - Passive)
(@CGUID+350, 211150, 2859, 16359, 16799, '1,2,23,205,8', '0', 0, 0, 0, 1264.345458984375, 1700.798583984375, 72.2484130859375, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Path Helper (Area: The Luminous Garden - Difficulty: Normal) CreateObject1 (Auras: 424283 - Passive)
(@CGUID+351, 210933, 2859, 16359, 16799, '1,2,23,205,8', '0', 0, 0, 0, 1358.717041015625, 1640.9410400390625, 3.391430377960205078, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Path Helper (Area: The Luminous Garden - Difficulty: Normal) CreateObject1 (Auras: 423677 - Bot AI Follow Advert)
(@CGUID+352, 256328, 2859, 16359, 16799, '1,2,23,205,8', '0', 0, 0, 0, 1266.4288330078125, 1713.939208984375, -28.3232917785644531, 2.879793167114257812, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Frog (Area: The Luminous Garden - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%)
(@CGUID+353, 256328, 2859, 16359, 16799, '1,2,23,205,8', '0', 0, 0, 0, 1263.0103759765625, 1702.93408203125, -28.3210391998291015, 2.809980154037475585, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Frog (Area: The Luminous Garden - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%)
(@CGUID+354, 256332, 2859, 16359, 16799, '1,2,23,205,8', '0', 0, 0, 0, 1345.9315185546875, 1610.3592529296875, 2.556372404098510742, 6.041958332061767578, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Snail (Area: The Luminous Garden - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%) (possible waypoints or random movement)
(@CGUID+355, 251885, 2859, 16359, 16799, '1,2,23,205,8', '0', 0, 0, 0, 1295.5833740234375, 1654.7066650390625, -14.5777187347412109, 3.796573638916015625, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Gravid Potatoad (Area: The Luminous Garden - Difficulty: Normal) CreateObject1
(@CGUID+356, 256332, 2859, 16359, 16799, '1,2,23,205,8', '0', 0, 0, 0, 1388.07861328125, 1569.7762451171875, -0.14066977798938751, 2.111191272735595703, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Snail (Area: The Luminous Garden - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%) (possible waypoints or random movement)
(@CGUID+357, 256330, 2859, 16359, 16799, '1,2,23,205,8', '0', 0, 0, 0, 1366.330810546875, 1587.4853515625, 0.899173676967620849, 0.950910747051239013, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Snake (Area: The Luminous Garden - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%) (possible waypoints or random movement)
(@CGUID+358, 256331, 2859, 16359, 16799, '1,2,23,205,8', '0', 0, 0, 0, 1265.9722900390625, 1689.28125, -28.532684326171875, 2.338741064071655273, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Strideling (Area: The Luminous Garden - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%)
(@CGUID+359, 256328, 2859, 16359, 16799, '1,2,23,205,8', '0', 0, 0, 0, 1314.9600830078125, 1601.19970703125, -12.909041404724121, 5.393067359924316406, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Frog (Area: The Luminous Garden - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%)
(@CGUID+360, 256330, 2859, 16359, 16799, '1,2,23,205,8', '0', 0, 0, 0, 1320.9166259765625, 1588.3853759765625, -8.0358428955078125, 2.600540637969970703, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Snake (Area: The Luminous Garden - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%)
(@CGUID+361, 256332, 2859, 16359, 16799, '1,2,23,205,8', '0', 0, 0, 0, 1358.1385498046875, 1556.9168701171875, 0.52005159854888916, 0.264209449291229248, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Snail (Area: The Luminous Garden - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%) (possible waypoints or random movement)
(@CGUID+362, 256328, 2859, 16359, 16799, '1,2,23,205,8', '0', 0, 0, 0, 1297.6632080078125, 1612.670166015625, -23.863006591796875, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Frog (Area: The Luminous Garden - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%)
(@CGUID+363, 210933, 2859, 16359, 16799, '1,2,23,205,8', '0', 0, 0, 0, 1348.7274169921875, 1556.2413330078125, 0.275364667177200317, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Path Helper (Area: The Luminous Garden - Difficulty: Normal) CreateObject1 (Auras: 423677 - Bot AI Follow Advert)
(@CGUID+364, 256330, 2859, 16359, 16799, '1,2,23,205,8', '0', 0, 0, 0, 1389.7308349609375, 1538.0589599609375, 0.196868896484375, 1.898347973823547363, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Snake (Area: The Luminous Garden - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%) (possible waypoints or random movement)
(@CGUID+365, 256332, 2859, 16359, 16799, '1,2,23,205,8', '0', 0, 0, 0, 1313.7666015625, 1561.1768798828125, 2.890262126922607421, 3.152323246002197265, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Snail (Area: The Luminous Garden - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%) (possible waypoints or random movement)
(@CGUID+366, 256332, 2859, 16359, 16799, '1,2,23,205,8', '0', 0, 0, 0, 1359.7406005859375, 1527.191650390625, 2.575597524642944335, 5.200534343719482421, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Snail (Area: The Luminous Garden - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%) (possible waypoints or random movement)
(@CGUID+367, 247012, 2859, 16359, 16799, '1,2,23,205,8', '0', 0, 0, 0, 1470.0538330078125, 1705.232666015625, 102.7263946533203125, 0.990453064441680908, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Waystone (Area: The Luminous Garden - Difficulty: Normal) CreateObject2 (Auras: 1246125 - [DNT]Waystone Visual)
(@CGUID+368, 256332, 2859, 16359, 16799, '1,2,23,205,8', '0', 0, 0, 0, 1271.1197509765625, 1578.5103759765625, 13.21294212341308593, 0.407170504331588745, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Snail (Area: The Luminous Garden - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%)
(@CGUID+369, 256330, 2859, 16359, 16799, '1,2,23,205,8', '0', 0, 0, 0, 1318.0987548828125, 1530.161376953125, -0.63056719303131103, 2.919085264205932617, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Snake (Area: The Luminous Garden - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%) (possible waypoints or random movement)
(@CGUID+370, 246871, 2859, 16359, 16799, '1,2,23,205,8', '0', 0, 0, 0, 1341.3646240234375, 1522.986083984375, 0.193730413913726806, 0.845963776111602783, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Luminous Thornmaw (Area: The Luminous Garden - Difficulty: Normal) CreateObject1 (Auras: 1223119 - Invisibility and Stealth Detection)
(@CGUID+371, 210933, 2859, 16359, 16799, '1,2,23,205,8', '0', 0, 0, 0, 1340.890625, 1522.4930419921875, 0.371417433023452758, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Path Helper (Area: The Luminous Garden - Difficulty: Normal) CreateObject1 (Auras: 423677 - Bot AI Follow Advert)
(@CGUID+372, 210932, 2859, 16359, 16799, '1,2,23,205,8', '0', 0, 0, 0, 1343.1961669921875, 1517.967041015625, 0.251409083604812622, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Path Helper (Area: The Luminous Garden - Difficulty: Normal) CreateObject1 (Auras: 422360 - Bot AI Follow Advert)
(@CGUID+373, 245460, 2859, 16359, 16799, '1,2,23,205,8', '0', 0, 0, 0, 1352.3785400390625, 1493.40625, -2.86458349227905273, 4.401409149169921875, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Leafy Grovecrawler (Area: The Luminous Garden - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%, 1312135 - Override Mana Bar Color - Holy) (possible waypoints or random movement)
(@CGUID+374, 245527, 2859, 16359, 16799, '1,2,23,205,8', '0', 0, 0, 0, 1358.8165283203125, 1491.3634033203125, -2.28652071952819824, 2.910865306854248046, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Spineshield Beetle (Area: The Luminous Garden - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238581 - Spiny Shield) (possible waypoints or random movement)
(@CGUID+375, 245527, 2859, 16359, 16799, '1,2,23,205,8', '0', 0, 0, 0, 1363.296875, 1492.3505859375, -1.59093713760375976, 0.808603346347808837, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Spineshield Beetle (Area: The Luminous Garden - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238581 - Spiny Shield) (possible waypoints or random movement)
(@CGUID+376, 256330, 2859, 16359, 16799, '1,2,23,205,8', '0', 0, 0, 0, 1375.0885009765625, 1481.7117919921875, -4.87379121780395507, 3.59537816047668457, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Snake (Area: The Luminous Garden - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%)
(@CGUID+377, 256330, 2859, 16359, 16799, '1,2,23,205,8', '0', 0, 0, 0, 1354.842041015625, 1497.6319580078125, -4.66100883483886718, 3.141592741012573242, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Snake (Area: The Luminous Garden - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%)
(@CGUID+378, 245527, 2859, 16359, 16799, '1,2,23,205,8', '0', 0, 0, 0, 1363.13916015625, 1491.0234375, 0.560694217681884765, 0.233898505568504333, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Spineshield Beetle (Area: The Luminous Garden - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238581 - Spiny Shield) (possible waypoints or random movement)
(@CGUID+379, 245527, 2859, 16359, 16799, '1,2,23,205,8', '0', 0, 0, 0, 1361.2098388671875, 1491.5653076171875, -1.90276670455932617, 2.169762611389160156, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Spineshield Beetle (Area: The Luminous Garden - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238581 - Spiny Shield) (possible waypoints or random movement)
(@CGUID+380, 245527, 2859, 16359, 16799, '1,2,23,205,8', '0', 0, 0, 0, 1357.16845703125, 1480.7135009765625, -2.89441585540771484, 4.312942028045654296, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Spineshield Beetle (Area: The Luminous Garden - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238581 - Spiny Shield) (possible waypoints or random movement)
(@CGUID+381, 256332, 2859, 16359, 16799, '1,2,23,205,8', '0', 0, 0, 0, 1327.3094482421875, 1502.54638671875, -0.06117457151412963, 3.47663736343383789, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Snail (Area: The Luminous Garden - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%) (possible waypoints or random movement)
(@CGUID+382, 245484, 2859, 16359, 16799, '1,2,23,205,8', '0', 0, 0, 0, 1335.066650390625, 1486.3363037109375, -3.50623917579650878, 4.017912864685058593, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Lightfeather Petalwing (Area: The Luminous Garden - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%) (possible waypoints or random movement)
(@CGUID+383, 256332, 2859, 16359, 16799, '1,2,23,205,8', '0', 0, 0, 0, 1297.5572509765625, 1509.4403076171875, -1.81987833976745605, 2.289018869400024414, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Snail (Area: The Luminous Garden - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%) (possible waypoints or random movement)
(@CGUID+384, 245473, 2859, 16359, 16799, '1,2,23,205,8', '0', 0, 0, 0, 1348.3021240234375, 1486.21875, -3.80902791023254394, 1.234499812126159667, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Thorny Saptor (Area: The Luminous Garden - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%) (possible waypoints or random movement)
(@CGUID+385, 256331, 2859, 16359, 16799, '1,2,23,205,8', '0', 0, 0, 0, 1249.782958984375, 1611.0052490234375, -30.3433418273925781, 5.811946392059326171, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Strideling (Area: The Luminous Garden - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%)
(@CGUID+386, 256330, 2859, 16359, 16799, '1,2,23,205,8', '0', 0, 0, 0, 1176.98095703125, 1770.26220703125, 68.40219879150390625, 1.784512042999267578, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Snake (Area: The Luminous Garden - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%) (possible waypoints or random movement)
(@CGUID+387, 245473, 2859, 16359, 0, '1,2,23,205,8', '0', 0, 0, 0, 1144.9156494140625, 1773.2576904296875, 65.99793243408203125, 2.625958681106567382, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Thorny Saptor (Area: 0 - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%) (possible waypoints or random movement)
(@CGUID+388, 254850, 2859, 16359, 0, '1,2,23,205,8', '0', 0, 0, 0, 1142.58984375, 1757.9844970703125, 68.19190216064453125, 0.209457010030746459, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Sporeblight Belcher (Area: 0 - Difficulty: Normal) CreateObject1 (Auras: 1223119 - Invisibility and Stealth Detection) (possible waypoints or random movement)
(@CGUID+389, 245527, 2859, 16359, 0, '1,2,23,205,8', '0', 0, 0, 0, 1128.9586181640625, 1762.8372802734375, 67.3604888916015625, 5.082541465759277343, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Spineshield Beetle (Area: 0 - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238581 - Spiny Shield) (possible waypoints or random movement)
(@CGUID+390, 245527, 2859, 16359, 0, '1,2,23,205,8', '0', 0, 0, 0, 1130.0023193359375, 1765.5992431640625, 69.42901611328125, 1.755510807037353515, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Spineshield Beetle (Area: 0 - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238581 - Spiny Shield) (possible waypoints or random movement)
(@CGUID+391, 246871, 2859, 16359, 0, '1,2,23,205,8', '0', 0, 0, 0, 1345.359375, 1462.3785400390625, -6.20596504211425781, 1.579213619232177734, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Luminous Thornmaw (Area: 0 - Difficulty: Normal) CreateObject1 (Auras: 1223119 - Invisibility and Stealth Detection) (possible waypoints or random movement)
(@CGUID+392, 256330, 2859, 16359, 0, '1,2,23,205,8', '0', 0, 0, 0, 1126.9271240234375, 1765.3843994140625, 64.24962615966796875, 3.085486412048339843, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Snake (Area: 0 - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%) (possible waypoints or random movement)
(@CGUID+393, 245527, 2859, 16359, 0, '1,2,23,205,8', '0', 0, 0, 0, 1134.80908203125, 1766.3731689453125, 69.24057769775390625, 5.082541465759277343, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Spineshield Beetle (Area: 0 - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238581 - Spiny Shield) (possible waypoints or random movement)
(@CGUID+394, 245484, 2859, 16359, 0, '1,2,23,205,8', '0', 0, 0, 0, 1133.3330078125, 1775, 63.10459518432617187, 5.0732421875, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Lightfeather Petalwing (Area: 0 - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%) (possible waypoints or random movement)
(@CGUID+395, 256332, 2859, 16359, 0, '1,2,23,205,8', '0', 0, 0, 0, 1327.1129150390625, 1472.6041259765625, -10.433807373046875, 5.515240192413330078, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Snail (Area: 0 - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%)
(@CGUID+396, 256330, 2859, 16359, 0, '1,2,23,205,8', '0', 0, 0, 0, 1114.8524169921875, 1789.9271240234375, 57.51749420166015625, 1.173346281051635742, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Snake (Area: 0 - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%) (possible waypoints or random movement)
(@CGUID+397, 256330, 2859, 16359, 0, '1,2,23,205,8', '0', 0, 0, 0, 1123.66845703125, 1819.361083984375, 52.1824188232421875, 3.744023323059082031, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Snake (Area: 0 - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%) (possible waypoints or random movement)
(@CGUID+398, 245912, 2859, 16359, 0, '1,2,23,205,8', '0', 0, 0, 0, 1351.7916259765625, 1339.609375, -12.8497095108032226, 1.20566260814666748, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lightwarden Ruia (Area: 0 - Difficulty: Normal) CreateObject1 (Auras: 422362 - Bot AI Follow Advert)
(@CGUID+399, 245513, 2859, 16359, 0, '1,2,23,205,8', '0', 0, 0, 0, 1110.2708740234375, 1833.1771240234375, 51.89954376220703125, 4.960379600524902343, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Overgrown Hydra (Area: 0 - Difficulty: Normal) CreateObject1 (Auras: 1223119 - Invisibility and Stealth Detection) (possible waypoints or random movement)
(@CGUID+400, 245460, 2859, 16359, 0, '1,2,23,205,8', '0', 0, 0, 0, 1103.07861328125, 1837.138427734375, 51.84790802001953125, 4.960328102111816406, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Leafy Grovecrawler (Area: 0 - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%, 1312135 - Override Mana Bar Color - Holy) (possible waypoints or random movement)
(@CGUID+401, 210933, 2859, 16359, 0, '1,2,23,205,8', '0', 0, 0, 0, 1346.5382080078125, 1436.3489990234375, -9.08880424499511718, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Path Helper (Area: 0 - Difficulty: Normal) CreateObject1 (Auras: 423677 - Bot AI Follow Advert)
(@CGUID+402, 256330, 2859, 16359, 0, '1,2,23,205,8', '0', 0, 0, 0, 1095.3616943359375, 1852.717529296875, 51.86785125732421875, 0.33131265640258789, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Snake (Area: 0 - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%) (possible waypoints or random movement)
(@CGUID+403, 256332, 2859, 16359, 16800, '1,2,23,205,8', '0', 0, 0, 0, 1037.1163330078125, 1902.375, 57.42174911499023437, 5.688136100769042968, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Snail (Area: The Gilded Tangle - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%)
(@CGUID+404, 253571, 2859, 16359, 16800, '1,2,23,205,8', '0', 0, 0, 0, 1245.54541015625, 1729.9327392578125, 72.31473541259765625, 0.471238881349563598, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Bloodthorn Roots (Area: The Gilded Tangle - Difficulty: Normal) CreateObject2 (Auras: 1259364 - Bloodthorn Roots)
(@CGUID+405, 247012, 2859, 16359, 16800, '1,2,23,205,8', '0', 0, 0, 0, 1265.2100830078125, 1715.9305419921875, 72.24800872802734375, 2.544429302215576171, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Waystone (Area: The Gilded Tangle - Difficulty: Normal) CreateObject2 (Auras: 1246125 - [DNT]Waystone Visual)
(@CGUID+406, 249068, 2859, 16359, 16800, '1,2,23,205,8', '0', 0, 0, 0, 1273.373291015625, 1728.859375, 72.30396270751953125, 3.83530592918395996, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Orweyna (Area: The Gilded Tangle - Difficulty: Normal) CreateObject2 (possible waypoints or random movement)
(@CGUID+407, 213069, 2859, 16359, 16800, '1,2,23,205,8', '0', 0, 0, 0, 1258.326416015625, 1704.1754150390625, 72.26438140869140625, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Path Helper (Area: The Gilded Tangle - Difficulty: Normal) CreateObject2
(@CGUID+408, 250569, 2859, 16359, 16800, '1,2,23,205,8', '0', 0, 0, 0, 1273.373291015625, 1728.859375, 72.30396270751953125, 3.83530592918395996, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Orweyna's Petalwing (Area: The Gilded Tangle - Difficulty: Normal) CreateObject2
(@CGUID+409, 247402, 2859, 16359, 16800, '1,2,23,205,8', '0', 0, 0, 0, 1265.111083984375, 1693.3836669921875, 75.94760894775390625, 5.308474540710449218, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Orweyna's Petalwing (Area: The Gilded Tangle - Difficulty: Normal) CreateObject2 (Auras: 214567 - Mod Scale 90-110%)
(@CGUID+410, 247406, 2859, 16359, 16800, '1,2,23,205,8', '0', 0, 0, 0, 1265.111083984375, 1693.3836669921875, 76.03094482421875, 0.092650361359119415, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Orweyna's Petalwing (Area: The Gilded Tangle - Difficulty: Normal) CreateObject2 (Auras: )
(@CGUID+411, 247402, 2859, 16359, 16800, '1,2,23,205,8', '0', 0, 0, 0, 1435.736083984375, 1695.1875, 99.52814483642578125, 0.634763360023498535, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Orweyna's Petalwing (Area: The Gilded Tangle - Difficulty: Normal) CreateObject2 (Auras: 214567 - Mod Scale 90-110%, 1257534 - [DNT] Petalwing Taxi Interact Cosmetics)
(@CGUID+412, 247012, 2859, 16359, 16800, '1,2,23,205,8', '0', 0, 0, 0, 1397.328125, 1558.1163330078125, 0.422007590532302856, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Waystone (Area: The Gilded Tangle - Difficulty: Normal) CreateObject2 (Auras: 1246125 - [DNT]Waystone Visual)
(@CGUID+413, 210932, 2859, 16359, 16800, '1,2,23,205,8', '0', 0, 0, 0, 1346.782958984375, 1409.2117919921875, -11.2072906494140625, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Path Helper (Area: The Gilded Tangle - Difficulty: Normal) CreateObject1 (Auras: 422360 - Bot AI Follow Advert)
(@CGUID+414, 245460, 2859, 16359, 16800, '1,2,23,205,8', '0', 0, 0, 0, 1322.541259765625, 1375.550048828125, -13.0102481842041015, 2.381959915161132812, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Leafy Grovecrawler (Area: The Gilded Tangle - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%, 1312135 - Override Mana Bar Color - Holy)
(@CGUID+415, 245473, 2859, 16359, 16800, '1,2,23,205,8', '0', 0, 0, 0, 1352.2301025390625, 1378.8565673828125, -13.006256103515625, 4.170282363891601562, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Thorny Saptor (Area: The Gilded Tangle - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%)
(@CGUID+416, 245473, 2859, 16359, 16800, '1,2,23,205,8', '0', 0, 0, 0, 1319.336669921875, 1378.102294921875, -13.006256103515625, 0.898782730102539062, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Thorny Saptor (Area: The Gilded Tangle - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%)
(@CGUID+417, 254850, 2859, 16359, 16800, '1,2,23,205,8', '0', 0, 0, 0, 1377.058349609375, 1380.565185546875, -13.006256103515625, 4.623591423034667968, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Sporeblight Belcher (Area: The Gilded Tangle - Difficulty: Normal) CreateObject1 (Auras: 1223119 - Invisibility and Stealth Detection)
(@CGUID+418, 245460, 2859, 16359, 0, '1,2,23,205,8', '0', 0, 0, 0, 1364.1875, 1360.7110595703125, -12.9716424942016601, 0.295153230428695678, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Leafy Grovecrawler (Area: 0 - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%, 1312135 - Override Mana Bar Color - Holy)
(@CGUID+419, 245527, 2859, 16359, 0, '1,2,23,205,8', '0', 0, 0, 0, 1320.7569580078125, 1353.357421875, -8.74091243743896484, 5.951629161834716796, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Spineshield Beetle (Area: 0 - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238581 - Spiny Shield)
(@CGUID+420, 246871, 2859, 16359, 0, '1,2,23,205,8', '0', 0, 0, 0, 1340.3699951171875, 1367.4281005859375, -12.9362831115722656, 4.305989265441894531, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Luminous Thornmaw (Area: 0 - Difficulty: Normal) CreateObject1 (Auras: 1223119 - Invisibility and Stealth Detection)
(@CGUID+421, 245527, 2859, 16359, 0, '1,2,23,205,8', '0', 0, 0, 0, 1323.150634765625, 1354.1192626953125, -7.14557409286499023, 4.829386711120605468, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Spineshield Beetle (Area: 0 - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238581 - Spiny Shield)
(@CGUID+422, 245527, 2859, 16359, 0, '1,2,23,205,8', '0', 0, 0, 0, 1382.7188720703125, 1354.8648681640625, -6.6406712532043457, 4.793910026550292968, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Spineshield Beetle (Area: 0 - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238581 - Spiny Shield)
(@CGUID+423, 245527, 2859, 16359, 0, '1,2,23,205,8', '0', 0, 0, 0, 1323.62548828125, 1350.8221435546875, -6.84234333038330078, 2.128230571746826171, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Spineshield Beetle (Area: 0 - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238581 - Spiny Shield)
(@CGUID+424, 245527, 2859, 16359, 0, '1,2,23,205,8', '0', 0, 0, 0, 1322.071533203125, 1348.69091796875, -7.11294031143188476, 0.154152333736419677, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Spineshield Beetle (Area: 0 - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238581 - Spiny Shield)
(@CGUID+425, 245527, 2859, 16359, 0, '1,2,23,205,8', '0', 0, 0, 0, 1383.5330810546875, 1344.8980712890625, -6.6406712532043457, 4.793910026550292968, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Spineshield Beetle (Area: 0 - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238581 - Spiny Shield)
(@CGUID+426, 245527, 2859, 16359, 0, '1,2,23,205,8', '0', 0, 0, 0, 1388.109375, 1350.28857421875, -6.6406712532043457, 4.793910026550292968, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Spineshield Beetle (Area: 0 - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238581 - Spiny Shield)
(@CGUID+427, 245527, 2859, 16359, 0, '1,2,23,205,8', '0', 0, 0, 0, 1378.142578125, 1349.474365234375, -6.6406712532043457, 4.793910026550292968, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Spineshield Beetle (Area: 0 - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238581 - Spiny Shield)
(@CGUID+428, 245527, 2859, 16359, 0, '1,2,23,205,8', '0', 0, 0, 0, 1383.1492919921875, 1349.5970458984375, -7.66676092147827148, 4.793904781341552734, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Spineshield Beetle (Area: 0 - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238581 - Spiny Shield)
(@CGUID+429, 245527, 2859, 16359, 0, '1,2,23,205,8', '0', 0, 0, 0, 1323.1456298828125, 1340.1661376953125, -8.20537757873535156, 0.706483304500579833, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Spineshield Beetle (Area: 0 - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238581 - Spiny Shield)
(@CGUID+430, 245473, 2859, 16359, 0, '1,2,23,205,8', '0', 0, 0, 0, 1374.9742431640625, 1339.634033203125, -12.9634103775024414, 1.423713922500610351, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Thorny Saptor (Area: 0 - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%)
(@CGUID+431, 247012, 2859, 16359, 16801, '1,2,23,205,8', '0', 0, 0, 0, 1301.5650634765625, 1519.4453125, -1.19731509685516357, 0.294140815734863281, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Waystone (Area: Warden's Retreat - Difficulty: Normal) CreateObject2 (Auras: 1246125 - [DNT]Waystone Visual)
(@CGUID+432, 245410, 2859, 16359, 16801, '1,2,23,205,8', '0', 0, 0, 0, 1294.71875, 1617.0972900390625, -13.3916244506835937, 2.696335554122924804, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: Warden's Retreat - Difficulty: Normal) CreateObject2 (Auras: 123978 - Mod Scale 95-120%, 1238051 - Cosmetic - Submerged/Emerge)
(@CGUID+433, 245410, 2859, 16359, 16801, '1,2,23,205,8', '0', 0, 0, 0, 1300.6007080078125, 1604.982666015625, -8.50173664093017578, 4.597813129425048828, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: Warden's Retreat - Difficulty: Normal) CreateObject2 (Auras: 123978 - Mod Scale 95-120%, 1238051 - Cosmetic - Submerged/Emerge)
(@CGUID+434, 245410, 2859, 16359, 16801, '1,2,23,205,8', '0', 0, 0, 0, 1303.3992919921875, 1611.8680419921875, -10.5729169845581054, 2.696335554122924804, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: Warden's Retreat - Difficulty: Normal) CreateObject2 (Auras: 123978 - Mod Scale 95-120%, 1238051 - Cosmetic - Submerged/Emerge)
(@CGUID+435, 245410, 2859, 16359, 16801, '1,2,23,205,8', '0', 0, 0, 0, 1299.329833984375, 1615.298583984375, -11.9632415771484375, 1.612950921058654785, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: Warden's Retreat - Difficulty: Normal) CreateObject2 (Auras: 123978 - Mod Scale 95-120%, 1238051 - Cosmetic - Submerged/Emerge)
(@CGUID+436, 245410, 2859, 16359, 16801, '1,2,23,205,8', '0', 0, 0, 0, 1307.0382080078125, 1614.048583984375, -9.83820343017578125, 3.140521049499511718, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: Warden's Retreat - Difficulty: Normal) CreateObject2 (Auras: 123978 - Mod Scale 95-120%, 1238051 - Cosmetic - Submerged/Emerge)
(@CGUID+437, 245410, 2859, 16359, 16801, '1,2,23,205,8', '0', 0, 0, 0, 1299.4410400390625, 1607.017333984375, -9.515625, 1.612950921058654785, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: Warden's Retreat - Difficulty: Normal) CreateObject2 (Auras: 123978 - Mod Scale 95-120%, 1238051 - Cosmetic - Submerged/Emerge)
(@CGUID+438, 245345, 2859, 16359, 16801, '1,2,23,205,8', '0', 0, 0, 0, 1291.23095703125, 1614.4305419921875, -13.7063369750976562, 4.033314704895019531, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lightgorged Lasher (Area: Warden's Retreat - Difficulty: Normal) CreateObject2 (Auras: 123978 - Mod Scale 95-120%, 1238051 - Cosmetic - Submerged/Emerge)
(@CGUID+439, 249756, 2859, 16359, 16801, '1,2,23,205,8', '0', 0, 0, 0, 1342.12158203125, 1587.01220703125, -0.51149737834930419, 4.85275125503540039, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Potatoad Matriarch (Area: Warden's Retreat - Difficulty: Normal) CreateObject2 (Auras: 1223119 - Invisibility and Stealth Detection)
(@CGUID+440, 245339, 2859, 16359, 16801, '1,2,23,205,8', '0', 0, 0, 1, 1360.9774169921875, 1627.0294189453125, 2.498263835906982421, 4.413430690765380859, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Underbrush Stalker (Area: Warden's Retreat - Difficulty: Normal) CreateObject2 (Auras: 214567 - Mod Scale 90-110%) (possible waypoints or random movement)
(@CGUID+441, 245345, 2859, 16359, 16801, '1,2,23,205,8', '0', 0, 0, 0, 1300.3228759765625, 1611.392333984375, -11.102431297302246, 4.033314704895019531, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lightgorged Lasher (Area: Warden's Retreat - Difficulty: Normal) CreateObject2 (Auras: 123978 - Mod Scale 95-120%, 1238051 - Cosmetic - Submerged/Emerge)
(@CGUID+442, 245339, 2859, 16359, 16801, '1,2,23,205,8', '0', 0, 0, 1, 1353.9149169921875, 1629.8419189453125, 2.723958253860473632, 4.924936771392822265, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Underbrush Stalker (Area: Warden's Retreat - Difficulty: Normal) CreateObject2 (Auras: 214567 - Mod Scale 90-110%) (possible waypoints or random movement)
(@CGUID+443, 245410, 2859, 16359, 16801, '1,2,23,205,8', '0', 0, 0, 0, 1298.7257080078125, 1620.55908203125, -12.2239589691162109, 1.612950921058654785, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: Warden's Retreat - Difficulty: Normal) CreateObject2 (Auras: 123978 - Mod Scale 95-120%, 1238051 - Cosmetic - Submerged/Emerge)
(@CGUID+444, 245484, 2859, 16359, 16801, '1,2,23,205,8', '0', 0, 0, 0, 1323.529541015625, 1634.671875, 8.859648704528808593, 1.524045944213867187, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Lightfeather Petalwing (Area: Warden's Retreat - Difficulty: Normal) CreateObject2 (Auras: 214567 - Mod Scale 90-110%) (possible waypoints or random movement)
(@CGUID+445, 245410, 2859, 16359, 16801, '1,2,23,205,8', '0', 0, 0, 0, 1338.0885009765625, 1647.4461669921875, 4.632232666015625, 4.597813129425048828, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: Warden's Retreat - Difficulty: Normal) CreateObject2 (Auras: 123978 - Mod Scale 95-120%, 1238051 - Cosmetic - Submerged/Emerge)
(@CGUID+446, 245410, 2859, 16359, 16801, '1,2,23,205,8', '0', 0, 0, 0, 1336.9305419921875, 1649.48095703125, 4.793022632598876953, 1.612950921058654785, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: Warden's Retreat - Difficulty: Normal) CreateObject2 (Auras: 123978 - Mod Scale 95-120%, 1238051 - Cosmetic - Submerged/Emerge)
(@CGUID+447, 249068, 2859, 16359, 16801, '1,2,23,205,8', '0', 0, 0, 0, 1351.0885009765625, 1398.16845703125, -12.577000617980957, 4.596496105194091796, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Orweyna (Area: Warden's Retreat - Difficulty: Normal) CreateObject2
(@CGUID+448, 245484, 2859, 16359, 16801, '1,2,23,205,8', '0', 0, 0, 0, 1320.5948486328125, 1658.158203125, 9.054520606994628906, 2.079886913299560546, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Lightfeather Petalwing (Area: Warden's Retreat - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%) (possible waypoints or random movement)
(@CGUID+449, 245345, 2859, 16359, 16801, '1,2,23,205,8', '0', 0, 0, 0, 1337.810791015625, 1653.85595703125, 4.919905662536621093, 4.033314704895019531, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lightgorged Lasher (Area: Warden's Retreat - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238051 - Cosmetic - Submerged/Emerge)
(@CGUID+450, 245410, 2859, 16359, 16801, '1,2,23,205,8', '0', 0, 0, 0, 1336.8177490234375, 1657.7603759765625, 4.841678619384765625, 1.612950921058654785, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: Warden's Retreat - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238051 - Cosmetic - Submerged/Emerge, 1238085 - Spore Spines)
(@CGUID+451, 245410, 2859, 16359, 16801, '1,2,23,205,8', '0', 0, 0, 0, 1340.888916015625, 1654.329833984375, 4.37038421630859375, 2.696335554122924804, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: Warden's Retreat - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238051 - Cosmetic - Submerged/Emerge, 1238085 - Spore Spines)
(@CGUID+452, 245484, 2859, 16359, 16801, '1,2,23,205,8', '0', 0, 0, 0, 1317.0242919921875, 1675.01220703125, 9.272916793823242187, 4.300858497619628906, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Lightfeather Petalwing (Area: Warden's Retreat - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%) (possible waypoints or random movement)
(@CGUID+453, 245410, 2859, 16359, 16801, '1,2,23,205,8', '0', 0, 0, 0, 1340.748291015625, 1650.263916015625, 4.420573234558105468, 3.140521049499511718, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: Warden's Retreat - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238051 - Cosmetic - Submerged/Emerge, 1238085 - Spore Spines)
(@CGUID+454, 245345, 2859, 16359, 16801, '1,2,23,205,8', '0', 0, 0, 0, 1341.5224609375, 1695.344482421875, 1.109588861465454101, 4.733870506286621093, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Lightgorged Lasher (Area: Warden's Retreat - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1284462 - [DNT]Bronze Affix Marker Spell) (possible waypoints or random movement)
(@CGUID+455, 245410, 2859, 16359, 16801, '1,2,23,205,8', '0', 0, 0, 0, 1341.3046875, 1693.2794189453125, 1.441863775253295898, 4.717271804809570312, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: Warden's Retreat - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238085 - Spore Spines) (possible waypoints or random movement)
(@CGUID+456, 245410, 2859, 16359, 16801, '1,2,23,205,8', '0', 0, 0, 0, 1345.0604248046875, 1693.78857421875, 1.89732980728149414, 4.958078384399414062, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: Warden's Retreat - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238085 - Spore Spines) (possible waypoints or random movement)
(@CGUID+457, 245345, 2859, 16359, 16801, '1,2,23,205,8', '0', 0, 0, 0, 1347.3818359375, 1696.8988037109375, 1.671538114547729492, 5.180403709411621093, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Lightgorged Lasher (Area: Warden's Retreat - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1284462 - [DNT]Bronze Affix Marker Spell) (possible waypoints or random movement)
(@CGUID+458, 245410, 2859, 16359, 16801, '1,2,23,205,8', '0', 0, 0, 0, 1347.4586181640625, 1694.6475830078125, 2.031975507736206054, 5.1201019287109375, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: Warden's Retreat - Difficulty: Normal) CreateObject1 (Auras: 123978 - Mod Scale 95-120%, 1238085 - Spore Spines) (possible waypoints or random movement)
(@CGUID+459, 245513, 2859, 16359, 16801, '1,2,23,205,8', '0', 0, 0, 0, 1317.9930419921875, 1718.765625, -4.1628274917602539, 5.914830684661865234, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Overgrown Hydra (Area: Warden's Retreat - Difficulty: Normal) CreateObject1 (Auras: 1295907 - Sleep, 1223119 - Invisibility and Stealth Detection)
(@CGUID+460, 245410, 2859, 16359, 16801, '1,2,23,205,8', '0', 0, 0, 0, 1368.0885009765625, 1702.170166015625, 5.541666984558105468, 1.612950921058654785, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: Warden's Retreat - Difficulty: Normal) CreateObject2 (Auras: 123978 - Mod Scale 95-120%, 1238051 - Cosmetic - Submerged/Emerge) (possible waypoints or random movement)
(@CGUID+461, 245410, 2859, 16359, 16801, '1,2,23,205,8', '0', 0, 0, 0, 1372.0191650390625, 1694.673583984375, 6.342014312744140625, 3.140521049499511718, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: Warden's Retreat - Difficulty: Normal) CreateObject2 (Auras: 123978 - Mod Scale 95-120%, 1238051 - Cosmetic - Submerged/Emerge)
(@CGUID+462, 245410, 2859, 16359, 16801, '1,2,23,205,8', '0', 0, 0, 0, 1368.19970703125, 1693.890625, 5.810764312744140625, 1.612950921058654785, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: Warden's Retreat - Difficulty: Normal) CreateObject2 (Auras: 123978 - Mod Scale 95-120%, 1238051 - Cosmetic - Submerged/Emerge) (possible waypoints or random movement)
(@CGUID+463, 245484, 2859, 16359, 16801, '1,2,23,205,8', '0', 0, 0, 0, 1289.248291015625, 1652.482666015625, -14.5777187347412109, 0, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Lightfeather Petalwing (Area: Warden's Retreat - Difficulty: Normal) CreateObject2 (Auras: 214567 - Mod Scale 90-110%) (possible waypoints or random movement)
(@CGUID+464, 254850, 2859, 16359, 16801, '1,2,23,205,8', '0', 0, 0, 0, 1277.7725830078125, 1687.1510009765625, -14.5777387619018554, 4.384140968322753906, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Sporeblight Belcher (Area: Warden's Retreat - Difficulty: Normal) CreateObject2 (Auras: 1223119 - Invisibility and Stealth Detection) (possible waypoints or random movement)
(@CGUID+465, 245410, 2859, 16359, 16801, '1,2,23,205,8', '0', 0, 0, 0, 1372.157958984375, 1698.7396240234375, 6.11805582046508789, 2.696335554122924804, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: Warden's Retreat - Difficulty: Normal) CreateObject2 (Auras: 123978 - Mod Scale 95-120%, 1238051 - Cosmetic - Submerged/Emerge) (possible waypoints or random movement)
(@CGUID+466, 245345, 2859, 16359, 16801, '1,2,23,205,8', '0', 0, 0, 0, 1369.0816650390625, 1698.265625, 6.079957008361816406, 4.033314704895019531, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Lightgorged Lasher (Area: Warden's Retreat - Difficulty: Normal) CreateObject2 (Auras: 123978 - Mod Scale 95-120%, 1238051 - Cosmetic - Submerged/Emerge) (possible waypoints or random movement)
(@CGUID+467, 245346, 2859, 16359, 16801, '1,2,23,205,8', '0', 0, 0, 1, 1330.204833984375, 1739.0260009765625, -6.99248456954956054, 5.114892482757568359, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Virid Grovekeeper (Area: Warden's Retreat - Difficulty: Normal) CreateObject2 (Auras: 214567 - Mod Scale 90-110%, 1223119 - Invisibility and Stealth Detection)
(@CGUID+468, 245345, 2859, 16359, 16801, '1,2,23,205,8', '0', 0, 0, 0, 1374.685791015625, 1691.6024169921875, 6.10581207275390625, 4.033314704895019531, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lightgorged Lasher (Area: Warden's Retreat - Difficulty: Normal) CreateObject2 (Auras: 123978 - Mod Scale 95-120%, 1238051 - Cosmetic - Submerged/Emerge)
(@CGUID+469, 245410, 2859, 16359, 16801, '1,2,23,205,8', '0', 0, 0, 0, 1363.4774169921875, 1703.970458984375, 4.27414560317993164, 2.696335554122924804, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: Warden's Retreat - Difficulty: Normal) CreateObject2 (Auras: 123978 - Mod Scale 95-120%, 1238051 - Cosmetic - Submerged/Emerge) (possible waypoints or random movement)
(@CGUID+470, 245410, 2859, 16359, 16801, '1,2,23,205,8', '0', 0, 0, 0, 1369.359375, 1691.85595703125, 5.655816555023193359, 4.597813129425048828, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: Warden's Retreat - Difficulty: Normal) CreateObject2 (Auras: 123978 - Mod Scale 95-120%, 1238051 - Cosmetic - Submerged/Emerge) (possible waypoints or random movement)
(@CGUID+471, 245484, 2859, 16359, 16801, '1,2,23,205,8', '0', 0, 0, 0, 1285.1458740234375, 1662.9913330078125, -14.5777187347412109, 0.428631514310836791, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Lightfeather Petalwing (Area: Warden's Retreat - Difficulty: Normal) CreateObject2 (Auras: 214567 - Mod Scale 90-110%) (possible waypoints or random movement)
(@CGUID+472, 245484, 2859, 16359, 16801, '1,2,23,205,8', '0', 0, 0, 0, 1289.46875, 1656.265625, -14.5777149200439453, 5.143157482147216796, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Lightfeather Petalwing (Area: Warden's Retreat - Difficulty: Normal) CreateObject2 (Auras: 214567 - Mod Scale 90-110%) (possible waypoints or random movement)
(@CGUID+473, 245410, 2859, 16359, 16801, '1,2,23,205,8', '0', 0, 0, 0, 1367.486083984375, 1707.4305419921875, 4.891608715057373046, 1.612950921058654785, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: Warden's Retreat - Difficulty: Normal) CreateObject2 (Auras: 123978 - Mod Scale 95-120%, 1238051 - Cosmetic - Submerged/Emerge) (possible waypoints or random movement)
(@CGUID+474, 245339, 2859, 16359, 16801, '1,2,23,205,8', '0', 0, 0, 1, 1271.3228759765625, 1738.454833984375, -14.153961181640625, 0.81734013557434082, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Underbrush Stalker (Area: Warden's Retreat - Difficulty: Normal) CreateObject2 (Auras: 214567 - Mod Scale 90-110%, 371465 - Cosmetic - Sleep Zzz Breakable)
(@CGUID+475, 245513, 2859, 16359, 16801, '1,2,23,205,8', '0', 0, 0, 0, 1329.8941650390625, 1748.7847900390625, -8.63856697082519531, 4.481153011322021484, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Overgrown Hydra (Area: Warden's Retreat - Difficulty: Normal) CreateObject2 (Auras: 1223119 - Invisibility and Stealth Detection)
(@CGUID+476, 245336, 2859, 16359, 16801, '1,2,23,205,8', '0', 0, 0, 0, 1341.2274169921875, 1709.07470703125, -0.90034419298171997, 5.058492660522460937, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Radiant Spellsower (Area: Warden's Retreat - Difficulty: Normal) CreateObject2 (Auras: 214567 - Mod Scale 90-110%) (possible waypoints or random movement)
(@CGUID+477, 245339, 2859, 16359, 16801, '1,2,23,205,8', '0', 0, 0, 1, 1341.2274169921875, 1709.07470703125, -0.90034419298171997, 0.387845724821090698, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Underbrush Stalker (Area: Warden's Retreat - Difficulty: Normal) CreateObject2 (Auras: 214567 - Mod Scale 90-110%) (possible waypoints or random movement)
(@CGUID+478, 246871, 2859, 16359, 16801, '1,2,23,205,8', '0', 0, 0, 0, 1287.63916015625, 1741.7381591796875, -14.585794448852539, 1.497877001762390136, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Luminous Thornmaw (Area: Warden's Retreat - Difficulty: Normal) CreateObject2 (Auras: 1223119 - Invisibility and Stealth Detection) (possible waypoints or random movement)
(@CGUID+479, 245410, 2859, 16359, 16801, '1,2,23,205,8', '0', 0, 0, 0, 1321.3377685546875, 1764.587158203125, -11.9317808151245117, 4.690182685852050781, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: Warden's Retreat - Difficulty: Normal) CreateObject2 (Auras: 123978 - Mod Scale 95-120%, 1238085 - Spore Spines) (possible waypoints or random movement)
(@CGUID+480, 245410, 2859, 16359, 0, '1,2,23,205,8', '0', 0, 0, 0, 1315.57080078125, 1770.2716064453125, -13.0256233215332031, 4.60970926284790039, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: 0 - Difficulty: Normal) CreateObject2 (Auras: 123978 - Mod Scale 95-120%, 1238085 - Spore Spines) (possible waypoints or random movement)
(@CGUID+481, 245410, 2859, 16359, 0, '1,2,23,205,8', '0', 0, 0, 0, 1324.860107421875, 1767.0443115234375, -12.182560920715332, 5.014627456665039062, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Lasher (Area: 0 - Difficulty: Normal) CreateObject2 (Auras: 123978 - Mod Scale 95-120%, 1238085 - Spore Spines) (possible waypoints or random movement)
(@CGUID+482, 245345, 2859, 16359, 0, '1,2,23,205,8', '0', 0, 0, 0, 1319.0186767578125, 1773.3203125, -13.3685588836669921, 0.844902515411376953, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Lightgorged Lasher (Area: 0 - Difficulty: Normal) CreateObject2 (Auras: 123978 - Mod Scale 95-120%)
(@CGUID+483, 254850, 2859, 16359, 0, '1,2,23,205,8', '0', 0, 0, 0, 1243.2730712890625, 1813.71728515625, -14.6397504806518554, 1.567264437675476074, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Sporeblight Belcher (Area: 0 - Difficulty: Normal) CreateObject1 (Auras: 1223119 - Invisibility and Stealth Detection)
(@CGUID+484, 245513, 2859, 16359, 0, '1,2,23,205,8', '0', 0, 0, 0, 1351.642333984375, 1844.503662109375, -15.0031242370605468, 1.66918957233428955, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Overgrown Hydra (Area: 0 - Difficulty: Normal) CreateObject1 (Auras: 1223119 - Invisibility and Stealth Detection)
(@CGUID+485, 256332, 2859, 16359, 0, '1,2,23,205,8', '0', 0, 0, 0, 1510.3621826171875, 1795.40283203125, 139.1295013427734375, 0, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Snail (Area: 0 - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%) (possible waypoints or random movement)
(@CGUID+486, 256330, 2859, 16359, 16802, '1,2,23,205,8', '0', 0, 0, 0, 1354.842041015625, 1497.6319580078125, -4.66100883483886718, 3.141592741012573242, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Snake (Area: Conviction's Crucible - Difficulty: Normal) CreateObject2 (Auras: 214567 - Mod Scale 90-110%)
(@CGUID+487, 256332, 2859, 16359, 16802, '1,2,23,205,8', '0', 0, 0, 0, 1359.029541015625, 2064.46875, 74.46051025390625, 0.017653338611125946, 7200, 10, 0, 1, NULL, NULL, NULL, NULL, 69587), -- Snail (Area: Conviction's Crucible - Difficulty: Normal) CreateObject1 (Auras: 214567 - Mod Scale 90-110%) (possible waypoints or random movement)
(@CGUID+488, 263743, 2859, 16359, 16802, '1,2,23,205,8', '0', 0, 0, 0, 1302.2552490234375, 1866.6875, -13.5233259201049804, 0, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- [DNT]Bot Helper (Area: Conviction's Crucible - Difficulty: Normal) CreateObject2
(@CGUID+489, 248576, 2859, 16359, 16802, '1,2,23,205,8', '0', 0, 0, 0, 1304.277587890625, 1863.771240234375, -13.5233259201049804, 0.038439612835645675, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- [DNT] Lasher Spawn FX Stalker (Area: Conviction's Crucible - Difficulty: Normal) CreateObject2 (Auras: 214567 - Mod Scale 90-110%)
(@CGUID+490, 248576, 2859, 16359, 16802, '1,2,23,205,8', '0', 0, 0, 0, 1301.937255859375, 1870.6956787109375, -13.5233259201049804, 0.052279260009527206, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- [DNT] Lasher Spawn FX Stalker (Area: Conviction's Crucible - Difficulty: Normal) CreateObject2 (Auras: 214567 - Mod Scale 90-110%)
(@CGUID+491, 248576, 2859, 16359, 16802, '1,2,23,205,8', '0', 0, 0, 0, 1294.0318603515625, 1870.3448486328125, -13.5233259201049804, 0.01784607395529747, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- [DNT] Lasher Spawn FX Stalker (Area: Conviction's Crucible - Difficulty: Normal) CreateObject2 (Auras: 214567 - Mod Scale 90-110%)
(@CGUID+492, 248576, 2859, 16359, 16802, '1,2,23,205,8', '0', 0, 0, 0, 1289.2664794921875, 1864.603759765625, -13.5233259201049804, 0.013424758799374103, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- [DNT] Lasher Spawn FX Stalker (Area: Conviction's Crucible - Difficulty: Normal) CreateObject2 (Auras: 214567 - Mod Scale 90-110%)
(@CGUID+493, 248576, 2859, 16359, 16802, '1,2,23,205,8', '0', 0, 0, 0, 1294.06201171875, 1857.0057373046875, -13.5233259201049804, 0.023079877719283103, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- [DNT] Lasher Spawn FX Stalker (Area: Conviction's Crucible - Difficulty: Normal) CreateObject2 (Auras: 214567 - Mod Scale 90-110%)
(@CGUID+494, 248576, 2859, 16359, 16802, '1,2,23,205,8', '0', 0, 0, 0, 1300.9012451171875, 1857.97265625, -13.5233259201049804, 0.000313050171826034, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- [DNT] Lasher Spawn FX Stalker (Area: Conviction's Crucible - Difficulty: Normal) CreateObject2 (Auras: 214567 - Mod Scale 90-110%)
(@CGUID+495, 248576, 2859, 16359, 16802, '1,2,23,205,8', '0', 0, 0, 0, 1307.6846923828125, 1861.4532470703125, -13.5233259201049804, 0.029669748619198799, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- [DNT] Lasher Spawn FX Stalker (Area: Conviction's Crucible - Difficulty: Normal) CreateObject2 (Auras: 214567 - Mod Scale 90-110%)
(@CGUID+496, 248576, 2859, 16359, 16802, '1,2,23,205,8', '0', 0, 0, 0, 1306.5355224609375, 1868.797607421875, -13.5233259201049804, 0.021771537140011787, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- [DNT] Lasher Spawn FX Stalker (Area: Conviction's Crucible - Difficulty: Normal) CreateObject2 (Auras: 214567 - Mod Scale 90-110%)
(@CGUID+497, 248576, 2859, 16359, 16802, '1,2,23,205,8', '0', 0, 0, 0, 1296.05322265625, 1868.4091796875, -13.5233259201049804, 0.010666127316653728, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- [DNT] Lasher Spawn FX Stalker (Area: Conviction's Crucible - Difficulty: Normal) CreateObject2 (Auras: 214567 - Mod Scale 90-110%)
(@CGUID+498, 248576, 2859, 16359, 16802, '1,2,23,205,8', '0', 0, 0, 0, 1293.0487060546875, 1861.911865234375, -13.5233259201049804, 0.014948992989957332, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- [DNT] Lasher Spawn FX Stalker (Area: Conviction's Crucible - Difficulty: Normal) CreateObject2 (Auras: 214567 - Mod Scale 90-110%)
(@CGUID+499, 248576, 2859, 16359, 16802, '1,2,23,205,8', '0', 0, 0, 0, 1296.39599609375, 1855.2513427734375, -13.5233259201049804, 0.051835369318723678, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- [DNT] Lasher Spawn FX Stalker (Area: Conviction's Crucible - Difficulty: Normal) CreateObject2 (Auras: 214567 - Mod Scale 90-110%)
(@CGUID+500, 248576, 2859, 16359, 16802, '1,2,23,205,8', '0', 0, 0, 0, 1304.4620361328125, 1854.1627197265625, -13.5233259201049804, 0.019372031092643737, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- [DNT] Lasher Spawn FX Stalker (Area: Conviction's Crucible - Difficulty: Normal) CreateObject2 (Auras: 214567 - Mod Scale 90-110%)
(@CGUID+501, 247012, 2859, 16359, 16802, '1,2,23,205,8', '0', 0, 0, 0, 1315.5491943359375, 1854.5501708984375, -13.5233259201049804, 1.508707880973815917, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Waystone (Area: Conviction's Crucible - Difficulty: Normal) CreateObject2 (Auras: 1246125 - [DNT]Waystone Visual)
(@CGUID+502, 250569, 2859, 16359, 16802, '1,2,23,205,8', '0', 0, 0, 0, 1295.2569580078125, 1827.9896240234375, -11.9432830810546875, 1.720019102096557617, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587), -- Orweyna's Petalwing (Area: Conviction's Crucible - Difficulty: Normal) CreateObject2
(@CGUID+503, 249068, 2859, 16359, 16802, '1,2,23,205,8', '0', 0, 0, 0, 1295.2569580078125, 1827.9896240234375, -14.0899667739868164, 1.720019102096557617, 7200, 0, 0, 0, NULL, NULL, NULL, NULL, 69587); -- Orweyna (Area: Conviction's Crucible - Difficulty: Normal) CreateObject2
@@ -0,0 +1,797 @@
SET @OGUID := 220504;
DELETE FROM `gameobject` WHERE `guid` BETWEEN @OGUID+0 AND @OGUID+792;
INSERT INTO `gameobject` (`guid`, `id`, `map`, `zoneId`, `areaId`, `spawnDifficulties`, `PhaseId`, `PhaseGroup`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecs`, `animprogress`, `state`, `VerifiedBuild`) VALUES
(@OGUID+0, 591298, 2811, 15829, 15829, '1,2,8,23,205', '0', 0, 11625.3251953125, -4985.671875, 151.0110931396484375, 4.188792228698730468, 0, 0, -0.86602497100830078, 0.50000077486038208, 7200, 255, 1, 69587), -- Bench (Area: Magisters' Terrace - Difficulty: Normal) CreateObject2
(@OGUID+1, 591311, 2811, 15829, 15829, '1,2,8,23,205', '0', 0, 11635.125, -4995.04345703125, 151.0110931396484375, 3.761187076568603515, 0, 0, -0.95239543914794921, 0.304865479469299316, 7200, 255, 1, 69587), -- Bench (Area: Magisters' Terrace - Difficulty: Normal) CreateObject2
(@OGUID+2, 591558, 2811, 15829, 15829, '1,2,8,23,205', '0', 0, 11640.294921875, -4992.671875, 142.2915496826171875, 0.593410074710845947, 0, 0, 0.292370796203613281, 0.95630502700805664, 7200, 255, 1, 69587), -- Bench (Area: Magisters' Terrace - Difficulty: Normal) CreateObject2
(@OGUID+3, 591220, 2811, 15829, 15829, '1,2,8,23,205', '0', 0, 11611.916015625, -4976.29345703125, 142.2915496826171875, 1.500982880592346191, 0, 0, 0.681998252868652343, 0.731353819370269775, 7200, 255, 1, 69587), -- Bench (Area: Magisters' Terrace - Difficulty: Normal) CreateObject2
(@OGUID+4, 587354, 2811, 15829, 15829, '1,2,8,23,205', '0', 0, 11583.2890625, -5024.65771484375, 110.9835662841796875, 5.759587764739990234, 0, 0, -0.25881862640380859, 0.965925931930541992, 7200, 255, 1, 69587), -- First Secret Door (Area: Magisters' Terrace - Difficulty: Normal) CreateObject2
(@OGUID+5, 232552, 2811, 15829, 15829, '1,2,8,23,205', '0', 0, 11635.951171875, -4969.01904296875, 110.1034164428710937, 1.051045179367065429, 0, 0, 0.501665115356445312, 0.865061938762664794, 7200, 255, 1, 69587), -- Instance Portal (Party + Heroic + Challenge) (Area: Magisters' Terrace - Difficulty: Normal) CreateObject2
(@OGUID+6, 591522, 2811, 15829, 15829, '1,2,8,23,205', '0', 0, 11612.23828125, -4981.98779296875, 151.0110931396484375, 4.616398811340332031, 0, 0, -0.74021720886230468, 0.672367811203002929, 7200, 255, 1, 69587), -- Bench (Area: Magisters' Terrace - Difficulty: Normal) CreateObject2
(@OGUID+7, 578101, 2811, 15829, 15829, '1,2,8,23,205', '0', 0, 11582.0888671875, -4998.451171875, 110.6165008544921875, 2.635741472244262695, 0, 0, 0.968184471130371093, 0.250237584114074707, 7200, 255, 1, 69587), -- Bench (Area: Magisters' Terrace - Difficulty: Normal) CreateObject2
(@OGUID+8, 578100, 2811, 15829, 15829, '1,2,8,23,205', '0', 0, 11578.6767578125, -4952.1328125, 110.6165084838867187, 3.634257078170776367, 0, 0, -0.96981334686279296, 0.243848457932472229, 7200, 255, 1, 69587), -- Bench (Area: Magisters' Terrace - Difficulty: Normal) CreateObject2
(@OGUID+9, 578118, 2811, 15829, 15829, '1,2,8,23,205', '0', 0, 11556.6513671875, -4975.50634765625, 92.487762451171875, 2.777757167816162109, 0, 0, 0.983498573303222656, 0.1809159517288208, 7200, 255, 1, 69587), -- Bench (Area: Magisters' Terrace - Difficulty: Normal) CreateObject2
(@OGUID+10, 617932, 2811, 15829, 15829, '1,2,8,23,205', '0', 0, 11567.203125, -4947.5478515625, 110.6165084838867187, 5.349102020263671875, 0, 0, -0.45024681091308593, 0.892904162406921386, 7200, 255, 1, 69587), -- Bench (Area: Magisters' Terrace - Difficulty: Normal) CreateObject2
(@OGUID+11, 589073, 2811, 15829, 15829, '1,2,8,23,205', '0', 0, 11624.3359375, -5039.6005859375, 151.0104217529296875, 2.007128477096557617, 0, 0, 0.84339141845703125, 0.537299633026123046, 7200, 255, 1, 69587), -- Bench (Area: Magisters' Terrace - Difficulty: Normal) CreateObject2
(@OGUID+12, 589074, 2811, 15829, 15829, '1,2,8,23,205', '0', 0, 11579.15234375, -5013.6806640625, 151.0104217529296875, 0.078538097441196441, 0, 0, 0.039258956909179687, 0.999229073524475097, 7200, 255, 1, 69587), -- Bench (Area: Magisters' Terrace - Difficulty: Normal) CreateObject2
(@OGUID+13, 589058, 2811, 15829, 15829, '1,2,8,23,205', '0', 0, 11563.5537109375, -4944.095703125, 163.89410400390625, 4.415683269500732421, 0, 0, -0.80385684967041015, 0.594822824001312255, 7200, 255, 1, 69587), -- Chair (Area: Magisters' Terrace - Difficulty: Normal) CreateObject2
(@OGUID+14, 589068, 2811, 15829, 15829, '1,2,8,23,205', '0', 0, 11573.578125, -4953.28125, 163.89410400390625, 1.527160406112670898, 0, 0, 0.691512107849121093, 0.722364842891693115, 7200, 255, 1, 69587), -- Chair (Area: Magisters' Terrace - Difficulty: Normal) CreateObject2
(@OGUID+15, 589070, 2811, 15829, 15829, '1,2,8,23,205', '0', 0, 11571.4775390625, -4936.9150390625, 163.89410400390625, 2.539454221725463867, 0, 0, 0.955019950866699218, 0.296541541814804077, 7200, 255, 1, 69587), -- Chair (Area: Magisters' Terrace - Difficulty: Normal) CreateObject2
(@OGUID+16, 589064, 2811, 15829, 15829, '1,2,8,23,205', '0', 0, 11575.1806640625, -4949.36279296875, 163.89410400390625, 3.892086982727050781, 0, 0, -0.93041706085205078, 0.366502493619918823, 7200, 255, 1, 69587), -- Chair (Area: Magisters' Terrace - Difficulty: Normal) CreateObject2
(@OGUID+17, 578108, 2811, 15829, 15829, '1,2,8,23,205', '0', 0, 11544.076171875, -4946.09814453125, 110.640472412109375, 3.363573551177978515, 0, 0, -0.99384689331054687, 0.110762648284435272, 7200, 255, 1, 69587), -- Chair (Area: Magisters' Terrace - Difficulty: Normal) CreateObject2
(@OGUID+18, 591586, 2811, 15829, 15829, '1,2,8,23,205', '0', 0, 11693.9970703125, -5007.84912109375, 163.8933868408203125, 4.756025314331054687, 0, 0, -0.69151210784912109, 0.722364842891693115, 7200, 255, 1, 69587), -- Bench (Area: Magisters' Terrace - Difficulty: Normal) CreateObject2
(@OGUID+19, 609922, 2811, 15829, 15829, '1,2,8,23,205', '0', 0, 11679.7001953125, -4891.65966796875, 114.6999893188476562, 3.403396368026733398, 0, 0, -0.99144458770751953, 0.130528271198272705, 7200, 255, 1, 69587), -- Meeting Stone (Area: Magisters' Terrace - Difficulty: Normal) CreateObject2
(@OGUID+20, 589061, 2811, 15829, 15829, '1,2,8,23,205', '0', 0, 11569.0029296875, -4933.47900390625, 163.89410400390625, 4.904376029968261718, 0, 0, -0.636077880859375, 0.771624863147735595, 7200, 255, 1, 69587), -- Chair (Area: Magisters' Terrace - Difficulty: Normal) CreateObject2
(@OGUID+21, 589067, 2811, 15829, 15829, '1,2,8,23,205', '0', 0, 11561.2470703125, -4946.923828125, 163.89410400390625, 0.60213780403137207, 0, 0, 0.296541213989257812, 0.955020070075988769, 7200, 255, 1, 69587), -- Chair (Area: Magisters' Terrace - Difficulty: Normal) CreateObject2
(@OGUID+22, 578107, 2811, 15829, 15829, '1,2,8,23,205', '0', 0, 11540.501953125, -4944.208984375, 110.640472412109375, 4.93311309814453125, 0, 0, -0.62492561340332031, 0.780684292316436767, 7200, 255, 1, 69587), -- Chair (Area: Magisters' Terrace - Difficulty: Normal) CreateObject2
(@OGUID+23, 578106, 2811, 15829, 15829, '1,2,8,23,205', '0', 0, 11538.474609375, -4977.431640625, 91.839324951171875, 5.759587764739990234, 0, 0, -0.25881862640380859, 0.965925931930541992, 7200, 255, 1, 69587), -- Bench (Area: Magisters' Terrace - Difficulty: Normal) CreateObject2
(@OGUID+24, 618083, 2811, 15829, 15829, '1,2,8,23,205', '0', 0, 11549.37890625, -5099.17041015625, 99.7640838623046875, 2.617989301681518554, 0, 0, 0.965925216674804687, 0.258821308612823486, 7200, 255, 1, 69587), -- Radiant Barrier (Area: Magisters' Terrace - Difficulty: Normal) CreateObject2
(@OGUID+25, 614741, 2811, 15829, 15829, '1,2,8,23,205', '0', 0, 11476.41796875, -5056.55712890625, 92.31198883056640625, 5.767364978790283203, -0.01313018798828125, -0.05460643768310546, -0.25459098815917968, 0.965416610240936279, 7200, 255, 0, 69587), -- Void Barrier (Area: Magisters' Terrace - Difficulty: Normal) CreateObject2
(@OGUID+26, 614740, 2811, 15829, 15829, '1,2,8,23,205', '0', 0, 11468.099609375, -5004.06396484375, 91.9053802490234375, 1.316485524177551269, 0, 0, 0.611727714538574218, 0.79106837511062622, 7200, 255, 0, 69587), -- Void Barrier (Area: Magisters' Terrace - Difficulty: Normal) CreateObject2
(@OGUID+27, 584418, 2811, 15829, 15829, '1,2,8,23,205', '0', 0, 11466.751953125, -5002.75146484375, 93.239501953125, 1.047195315361022949, 0, 0, 0.499999046325683593, 0.866025924682617187, 7200, 255, 1, 69587), -- Secret Door (Area: Magisters' Terrace - Difficulty: Normal) CreateObject2
(@OGUID+28, 587671, 2811, 15829, 15829, '1,2,8,23,205', '0', 0, 11505.0537109375, -5073.734375, 91.2589569091796875, 2.617989301681518554, 0, 0, 0.965925216674804687, 0.258821308612823486, 7200, 255, 0, 69587), -- Door (Area: Magisters' Terrace - Difficulty: Normal) CreateObject2
(@OGUID+29, 587673, 2811, 15829, 15829, '1,2,8,23,205', '0', 0, 11610.3955078125, -5134.515625, 89.74261474609375, 2.617989301681518554, 0, 0, 0.965925216674804687, 0.258821308612823486, 7200, 255, 1, 69587), -- Door (Area: Magisters' Terrace - Difficulty: Normal) CreateObject2
(@OGUID+30, 618574, 2811, 15829, 15829, '1,2,8,23,205', '0', 0, 11373.8310546875, -5112.35400390625, 193.0254669189453125, 5.759589672088623046, 0, 0, -0.25881767272949218, 0.965926229953765869, 7200, 255, 0, 69587), -- Void Barrier (Area: Magisters' Terrace - Difficulty: Normal) CreateObject2
(@OGUID+31, 550375, 2811, 15829, 15829, '1,2,8,23,205', '0', 0, 11110.193359375, -4710.134765625, 81.44402313232421875, 2.372362136840820312, 0, 0, 0.926942825317382812, 0.375202596187591552, 7200, 255, 1, 69587), -- Sunwell Door (Area: Magisters' Terrace - Difficulty: Normal) CreateObject2
(@OGUID+32, 623270, 2811, 15829, 15829, '1,2,8,23,205', '0', 0, 11351.400390625, -4985.220703125, 98.383697509765625, 2.617989301681518554, 0, 0, 0.965925216674804687, 0.258821308612823486, 7200, 255, 1, 69587), -- Door (Area: Magisters' Terrace - Difficulty: Normal) CreateObject2
(@OGUID+33, 587355, 2811, 15829, 15829, '1,2,8,23,205', '0', 0, 11392.4306640625, -5028.3291015625, 92.20182037353515625, 1.047195315361022949, 0, 0, 0.499999046325683593, 0.866025924682617187, 7200, 255, 0, 69587), -- Second Secret Door (Area: Magisters' Terrace - Difficulty: Normal) CreateObject2
(@OGUID+34, 587672, 2811, 15829, 15829, '1,2,8,23,205', '0', 0, 11415.1083984375, -5021.77001953125, 91.2596893310546875, 5.759587764739990234, 0, 0, -0.25881862640380859, 0.965925931930541992, 7200, 255, 1, 69587), -- Door (Area: Magisters' Terrace - Difficulty: Normal) CreateObject2
(@OGUID+35, 494914, 2811, 15829, 15829, '1,2,8,23,205', '0', 0, 11727.900390625, -5232.728515625, 211.7383880615234375, 2.617989301681518554, 0, 0, 0.965925216674804687, 0.258821308612823486, 7200, 255, 1, 69587), -- Orb of Translocation (Area: Magisters' Terrace - Difficulty: Normal) CreateObject2
(@OGUID+36, 618565, 2811, 15829, 15829, '1,2,8,23,205', '0', 0, 11691.5771484375, -5193.037109375, 91.2259368896484375, 1.08585667610168457, 0, 0, 0.516645431518554687, 0.856199443340301513, 7200, 255, 1, 69587), -- Radiant Barrier (Area: Magisters' Terrace - Difficulty: Normal) CreateObject2
(@OGUID+37, 618566, 2811, 15829, 15829, '1,2,8,23,205', '0', 0, 11675.830078125, -5219.86962890625, 91.2259368896484375, 1.005681157112121582, 0, 0, 0.481916427612304687, 0.876217186450958251, 7200, 255, 1, 69587), -- Radiant Barrier (Area: Magisters' Terrace - Difficulty: Normal) CreateObject2
(@OGUID+38, 618563, 2811, 15829, 15829, '1,2,8,23,205', '0', 0, 11687.5576171875, -5208.720703125, 91.49221038818359375, 5.759587764739990234, 0, 0, -0.25881862640380859, 0.965925931930541992, 7200, 255, 0, 69587), -- Radiant Barrier (Area: Magisters' Terrace - Difficulty: Normal) CreateObject2
(@OGUID+39, 550374, 2811, 15829, 15829, '1,2,8,23,205', '0', 0, 11110.345703125, -4522.9580078125, 81.77019500732421875, 3.934591293334960937, 0, 0, -0.92241859436035156, 0.386191576719284057, 7200, 255, 1, 69587), -- Sunwell Door (Area: Magisters' Terrace - Difficulty: Normal) CreateObject2
(@OGUID+40, 626820, 2811, 15829, 15829, '1,2,8,23,205', '0', 0, 11464.462890625, -4368.77587890625, 47.96083831787109375, 5.314614295959472656, 0, 0, -0.465576171875, 0.885007798671722412, 7200, 255, 1, 69587), -- Orb of Translocation (Area: Magisters' Terrace - Difficulty: Normal) CreateObject2
(@OGUID+41, 626819, 2811, 15829, 15829, '1,2,8,23,205', '0', 0, 11458.6220703125, -4367.6884765625, 29.14356613159179687, 1.899724721908569335, 0, 0, 0.813335418701171875, 0.581795036792755126, 7200, 255, 1, 69587), -- Orb of Translocation (Area: Magisters' Terrace - Difficulty: Normal) CreateObject2
(@OGUID+42, 556380, 2811, 15829, 15829, '1,2,8,23,205', '0', 0, 11100.8994140625, -4415.19384765625, 53.4552154541015625, 4.341718196868896484, 0, 0, -0.82530021667480468, 0.564694225788116455, 7200, 255, 1, 69587), -- Rampart Door (Area: Magisters' Terrace - Difficulty: Normal) CreateObject2
(@OGUID+43, 579329, 2811, 15829, 15829, '1,2,8,23,205', '0', 0, 10895.3671875, -4616.669921875, 37.39586639404296875, 3.141592741012573242, 0, 0, -1, 0, 7200, 255, 0, 69587), -- Sunwell Door (Area: Magisters' Terrace - Difficulty: Normal) CreateObject2
(@OGUID+44, 574756, 0, 15969, 16645, '0', '0', 0, 8504.3095703125, -4372.970703125, -2.19726991653442382, 5.698309898376464843, -0.06661891937255859, -0.06360340118408203, -0.29056167602539062, 0.952412962913513183, 120, 255, 1, 69587), -- Rootlands Portal Tree (Area: Wayfarer's Rest - Difficulty: Normal) CreateObject2
(@OGUID+45, 572646, 0, 15969, 16645, '0', '0', 0, 8458.5595703125, -4915.22705078125, 53.47792816162109375, 4.745632648468017578, 0, 0, -0.69525623321533203, 0.718761920928955078, 120, 255, 1, 69587), -- Chair (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+46, 619434, 0, 15969, 16645, '0', '0', 0, 8468.5341796875, -4919.64306640625, 53.31641006469726562, 2.17002725601196289, 0, 0, 0.884309768676757812, 0.466900676488876342, 120, 255, 1, 69587), -- Cooking Stove (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+47, 601296, 0, 15969, 16645, '0', '0', 0, 8460.2958984375, -4914.86279296875, 53.47792816162109375, 4.92319345474243164, 0, 0, -0.62878990173339843, 0.777575254440307617, 120, 255, 1, 69587), -- Chair (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+48, 601297, 0, 15969, 16645, '0', '0', 0, 8455.0302734375, -4915.208984375, 53.47792816162109375, 4.67914438247680664, 0, 0, -0.71876239776611328, 0.695255815982818603, 120, 255, 1, 69587), -- Chair (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+49, 601298, 0, 15969, 16645, '0', '0', 0, 8453.2939453125, -4914.8447265625, 53.47792816162109375, 4.501584053039550781, 0, 0, -0.77757549285888671, 0.628789544105529785, 120, 255, 1, 69587), -- Chair (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+50, 551457, 0, 15969, 16645, '0', '0', 0, 8468.1494140625, -4938.72412109375, 63.39990997314453125, 3.796092510223388671, 0, 0, -0.946929931640625, 0.321440041065216064, 120, 255, 1, 69587), -- Bench (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+51, 572655, 0, 15969, 16645, '0', '0', 0, 8475.03125, -4906.06640625, 67.297698974609375, 3.516847848892211914, 0, 0, -0.98244953155517578, 0.186528548598289489, 120, 255, 1, 69587), -- Cushion (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+52, 551293, 0, 15969, 16645, '0', '0', 0, 8445.0224609375, -4938.76220703125, 63.39990997314453125, 5.619962215423583984, 0, 0, -0.32556724548339843, 0.945518851280212402, 120, 255, 1, 69587), -- Bench (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+53, 572656, 0, 15969, 16645, '0', '0', 0, 8475.2373046875, -4907.974609375, 67.309783935546875, 3.43830275535583496, 0, 0, -0.98901557922363281, 0.147811368107795715, 120, 255, 1, 69587), -- Cushion (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+54, 572657, 0, 15969, 16645, '0', '0', 0, 8475.171875, -4909.796875, 67.297698974609375, 3.124123096466064453, 0, 0, 0.99996185302734375, 0.008734640665352344, 120, 255, 1, 69587), -- Cushion (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+55, 572659, 0, 15969, 16645, '0', '0', 0, 8474.0205078125, -4911.859375, 67.297698974609375, 2.015855789184570312, 0, 0, 0.845727920532226562, 0.533614337444305419, 120, 255, 1, 69587), -- Cushion (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+56, 572665, 0, 15969, 16645, '0', '0', 0, 8471.0087890625, -4906.361328125, 67.309783935546875, 5.724683761596679687, 0, 0, -0.2756357192993164, 0.961262166500091552, 120, 255, 1, 69587), -- Cushion (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+57, 572670, 0, 15969, 16645, '0', '0', 0, 8455.9150390625, -4909.982421875, 66.38854217529296875, 0.497416019439697265, 0, 0, 0.246151924133300781, 0.969231247901916503, 120, 255, 1, 69587), -- Chair (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+58, 572635, 0, 15969, 16645, '0', '0', 0, 8471.9306640625, -4912.103515625, 67.297698974609375, 1.27409064769744873, 0, 0, 0.594822883605957031, 0.80385679006576538, 120, 255, 1, 69587), -- Cushion (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+59, 572636, 0, 15969, 16645, '0', '0', 0, 8470.634765625, -4910.69921875, 67.297698974609375, 0.846484839916229248, 0, 0, 0.410718917846679687, 0.911761999130249023, 120, 255, 1, 69587), -- Cushion (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+60, 572639, 0, 15969, 16645, '0', '0', 0, 8473.359375, -4928.935546875, 67.2493438720703125, 0.410150706768035888, 0, 0, 0.203640937805175781, 0.979045629501342773, 120, 255, 1, 69587), -- Chair (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+61, 572674, 0, 15969, 16645, '0', '0', 0, 8456.03125, -4906.712890625, 66.41121673583984375, 5.785767555236816406, 0, 0, -0.24615287780761718, 0.969231009483337402, 120, 255, 1, 69587), -- Chair (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+62, 572678, 0, 15969, 16645, '0', '0', 0, 8472.6767578125, -4904.7421875, 67.297698974609375, 4.817109584808349609, 0, 0, -0.66913032531738281, 0.74314504861831665, 120, 255, 1, 69587), -- Cushion (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+63, 551206, 0, 15969, 16645, '0', '0', 0, 8446.6318359375, -4881, 50.63626480102539062, 0.785396754741668701, 0, 0, 0.38268280029296875, 0.923879802227020263, 120, 255, 1, 69587), -- Bench (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+64, 555803, 0, 15969, 16645, '0', '0', 0, 8469.5224609375, -4944.74853515625, 61.23095703125, 3.281238555908203125, 0, 0, -0.99756336212158203, 0.069766148924827575, 120, 255, 1, 69587), -- Mailbox (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+65, 572642, 0, 15969, 16645, '0', '0', 0, 8468.05859375, -4895.880859375, 67.17431640625, 5.811946868896484375, 0, 0, -0.2334451675415039, 0.972369968891143798, 120, 255, 1, 69587), -- Chair (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+66, 572643, 0, 15969, 16645, '0', '0', 0, 8490.8349609375, -4916.595703125, 53.42708587646484375, 0.506144583225250244, 0, 0, 0.250379562377929687, 0.968147754669189453, 120, 255, 1, 69587), -- Cushion (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+67, 572644, 0, 15969, 16645, '0', '0', 0, 8478.6455078125, -4900.15625, 53.4051666259765625, 4.35459756851196289, 0, 0, -0.82164669036865234, 0.569997072219848632, 120, 255, 1, 69587), -- Cushion (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+68, 572649, 0, 15969, 16645, '0', '0', 0, 8470.01171875, -4894.8125, 67.19789886474609375, 4.756022453308105468, 0, 0, -0.6915130615234375, 0.722363948822021484, 120, 255, 1, 69587), -- Chair (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+69, 572652, 0, 15969, 16645, '0', '0', 0, 8476.2255859375, -4894.6328125, 53.7610626220703125, 5.707226276397705078, 0, 0, -0.28401565551757812, 0.95881962776184082, 120, 255, 1, 69587), -- Chair (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+70, 572661, 0, 15969, 16645, '0', '0', 0, 8490.478515625, -4898.9375, 53.43237686157226562, 5.532696723937988281, 0, 0, -0.36649990081787109, 0.930418074131011962, 120, 255, 1, 69587), -- Cushion (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+71, 572662, 0, 15969, 16645, '0', '0', 0, 8476.1181640625, -4886.625, 67.268341064453125, 4.380776405334472656, 0, 0, -0.81411552429199218, 0.580702960491180419, 120, 255, 1, 69587), -- Chair (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+72, 572666, 0, 15969, 16645, '0', '0', 0, 8487.640625, -4906.279296875, 52.89400100708007812, 3.81354522705078125, 0, 0, -0.94408893585205078, 0.329690933227539062, 120, 255, 1, 69587), -- Cushion (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+73, 572668, 0, 15969, 16645, '0', '0', 0, 8476.8466796875, -4899.8125, 53.361328125, 4.9218292236328125, 0, 0, -0.62932014465332031, 0.77714616060256958, 120, 255, 1, 69587), -- Cushion (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+74, 572671, 0, 15969, 16645, '0', '0', 0, 8479.0029296875, -4894.029296875, 53.7730865478515625, 4.328416347503662109, 0, 0, -0.82903766632080078, 0.559192776679992675, 120, 255, 1, 69587), -- Chair (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+75, 572629, 0, 15969, 16645, '0', '0', 0, 8487.66796875, -4904.54296875, 52.91763687133789062, 2.138025760650634765, 0, 0, 0.876726150512695312, 0.48098987340927124, 120, 255, 1, 69587), -- Cushion (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+76, 572673, 0, 15969, 16645, '0', '0', 0, 8493.62109375, -4915.244140625, 53.42708587646484375, 3.752462387084960937, 0, 0, -0.95371627807617187, 0.300707906484603881, 120, 255, 1, 69587), -- Cushion (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+77, 572676, 0, 15969, 16645, '0', '0', 0, 8483.5693359375, -4908.751953125, 52.9378204345703125, 0.855210542678833007, 0, 0, 0.414692878723144531, 0.909961462020874023, 120, 255, 1, 69587), -- Cushion (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+78, 551674, 0, 15969, 16645, '0', '0', 0, 8466.0224609375, -4881.71728515625, 50.63973617553710937, 2.216565132141113281, 0, 0, 0.894933700561523437, 0.44619917869567871, 120, 255, 1, 69587), -- Bench (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+79, 551725, 0, 15969, 16645, '0', '0', 0, 8489.12109375, -4947.61279296875, 62.01388931274414062, 5.742135047912597656, 0, 0, -0.26723766326904296, 0.96363067626953125, 120, 255, 1, 69587), -- Chair (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+80, 557675, 0, 15969, 16645, '0', '0', 0, 8435.3037109375, -4954.27587890625, 62.01301956176757812, 4.529132843017578125, 0, 0, -0.76884078979492187, 0.639440298080444335, 120, 255, 1, 69587), -- Stool (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+81, 557677, 0, 15969, 16645, '0', '0', 0, 8433.8720703125, -4954.892578125, 62.01301956176757812, 5.427974700927734375, 0, 0, -0.41469287872314453, 0.909961462020874023, 120, 255, 1, 69587), -- Stool (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+82, 551469, 0, 15969, 16645, '0', '0', 0, 8462.056640625, -4976.0693359375, 62.0191802978515625, 0.785396754741668701, 0, 0, 0.38268280029296875, 0.923879802227020263, 120, 255, 1, 69587), -- Bench (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+83, 555804, 0, 15969, 16645, '0', '0', 0, 8444.9443359375, -4875.63720703125, 48.43864822387695312, 1.003563761711120605, 0, 0, 0.480988502502441406, 0.876726925373077392, 120, 255, 1, 69587), -- Mailbox (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+84, 551544, 0, 15969, 16645, '0', '0', 0, 8424.5517578125, -4949.51904296875, 62.01301956176757812, 3.211419343948364257, 0, 0, -0.9993906021118164, 0.034906134009361267, 120, 255, 1, 69587), -- Chair (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+85, 572650, 0, 15969, 16645, '0', '0', 0, 8500.8779296875, -4933.2578125, 26.58609390258789062, 1.946041464805603027, 0, 0, 0.826589584350585937, 0.56280517578125, 120, 255, 1, 69587), -- Chair (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+86, 551499, 0, 15969, 16645, '0', '0', 0, 8421.2021484375, -4949.54150390625, 62.01301956176757812, 6.003933906555175781, 0, 0, -0.13917255401611328, 0.990268170833587646, 120, 255, 1, 69587), -- Chair (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+87, 572660, 0, 15969, 16645, '0', '0', 0, 8493.203125, -4899.978515625, 53.42407989501953125, 2.905960798263549804, 0, 0, 0.993067741394042968, 0.117543503642082214, 120, 255, 1, 69587), -- Cushion (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+88, 551253, 0, 15969, 16645, '0', '0', 0, 8450.990234375, -4976.4931640625, 62.0130615234375, 2.33001255989074707, 0, 0, 0.918790817260742187, 0.394744753837585449, 120, 255, 1, 69587), -- Bench (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+89, 551564, 0, 15969, 16645, '0', '0', 0, 8493.4189453125, -4948.66650390625, 62.01475143432617187, 3.010666131973266601, 0, 0, 0.997858047485351562, 0.065416477620601654, 120, 255, 1, 69587), -- Chair (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+90, 572675, 0, 15969, 16645, '0', '0', 0, 8492.7431640625, -4897.875, 53.412322998046875, 4.118979454040527343, 0, 0, -0.88294696807861328, 0.469472706317901611, 120, 255, 1, 69587), -- Cushion (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+91, 572679, 0, 15969, 16645, '0', '0', 0, 8498.51171875, -4926.66015625, 26.58609390258789062, 5.061456203460693359, 0, 0, -0.57357597351074218, 0.819152355194091796, 120, 255, 1, 69587), -- Chair (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+92, 474123, 0, 15969, 16645, '0', '0', 0, 8448.2158203125, -4980.02978515625, 62.76511764526367187, 2.957381725311279296, 0.019077777862548828, 0.00627899169921875, 0.995573997497558593, 0.091809533536434173, 120, 255, 1, 69587), -- Books (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+93, 474124, 0, 15969, 16645, '0', '0', 0, 8447.6748046875, -4979.0625, 62.01361846923828125, 1.052469491958618164, 0.038118839263916015, 0.0143890380859375, 0.502097129821777343, 0.863850891590118408, 120, 255, 1, 69587), -- Books (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+94, 551361, 0, 15969, 16645, '0', '0', 0, 8506.052734375, -4946.38525390625, 62.01427078247070312, 3.464487075805664062, 0, 0, -0.98699569702148437, 0.160746723413467407, 120, 255, 1, 69587), -- Chair (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+95, 551364, 0, 15969, 16645, '0', '0', 0, 8503.15625, -4946.4130859375, 62.01431655883789062, 5.5065155029296875, 0, 0, -0.3786478042602539, 0.925540864467620849, 120, 255, 1, 69587), -- Chair (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+96, 551283, 0, 15969, 16645, '0', '0', 0, 8512.92578125, -4864.08837890625, 44.73611068725585937, 1.544615507125854492, 0, 0, 0.697790145874023437, 0.716302275657653808, 120, 255, 1, 69587), -- Bench (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+97, 619436, 0, 15969, 16645, '0', '0', 0, 8530.96875, -4916.416015625, 27.57730865478515625, 0.241011813282966613, 0, 0, 0.120214462280273437, 0.992747962474822998, 120, 255, 1, 69587), -- To Silvermoon Inn (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+98, 474123, 0, 15969, 16645, '0', '0', 0, 8448.1484375, -4980.03125, 62.01361846923828125, 4.455387115478515625, -0.00897550582885742, 0.015766143798828125, -0.7917327880859375, 0.610598087310791015, 120, 255, 1, 69587), -- Books (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+99, 551086, 0, 15969, 16645, '0', '0', 0, 8495.9306640625, -4863.955078125, 44.73611068725585937, 1.535889506340026855, 0, 0, 0.694658279418945312, 0.719339847564697265, 120, 255, 1, 69587), -- Bench (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+100, 474122, 0, 15969, 16645, '0', '0', 0, 8448.4423828125, -4982.455078125, 62.01361846923828125, 3.134284734725952148, 0, 0, 0.999993324279785156, 0.003653962397947907, 120, 255, 1, 69587), -- Bench (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+101, 551161, 0, 15969, 16645, '0', '0', 0, 8462.5849609375, -4988.1005859375, 62.01302719116210937, 5.5152435302734375, 0, 0, -0.37460517883300781, 0.927184462547302246, 120, 255, 1, 69587), -- Bench (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+102, 551217, 0, 15969, 16645, '0', '0', 0, 8387.708984375, -4863.69287109375, 100.6075668334960937, 2.050761699676513671, 0, 0, 0.85491180419921875, 0.518773376941680908, 120, 255, 1, 69587), -- Cushion (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+103, 638873, 0, 15969, 16645, '0', '0', 0, 8552.1298828125, -4902.03125, 46.76792144775390625, 3.281238555908203125, 0, 0, -0.99756336212158203, 0.069766148924827575, 120, 255, 1, 69587), -- Orb of Translocation (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+104, 551595, 0, 15969, 16645, '0', '0', 0, 8392.8974609375, -4868.578125, 100.8253402709960937, 1.762782454490661621, 0, 0, 0.771624565124511718, 0.636078238487243652, 120, 255, 1, 69587), -- Cushion (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+105, 551262, 0, 15969, 16645, '0', '0', 0, 8393.7177734375, -4865.5712890625, 100.7662200927734375, 3.342307567596435546, 0, 0, -0.99496841430664062, 0.100189015269279479, 120, 255, 1, 69587), -- Cushion (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+106, 551601, 0, 15969, 16645, '0', '0', 0, 8391.083984375, -4867.12841796875, 100.7130584716796875, 0.514871180057525634, 0, 0, 0.254601478576660156, 0.967046082019805908, 120, 255, 1, 69587), -- Cushion (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+107, 551158, 0, 15969, 16645, '0', '0', 0, 8391.8994140625, -4863.8125, 100.8254013061523437, 4.537858963012695312, 0, 0, -0.76604366302490234, 0.642788589000701904, 120, 255, 1, 69587), -- Cushion (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+108, 551466, 0, 15969, 16645, '0', '0', 0, 8386.5107421875, -4859.58154296875, 100.6093063354492187, 5.113816738128662109, 0, 0, -0.55193614959716796, 0.833886384963989257, 120, 255, 1, 69587), -- Cushion (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+109, 555848, 0, 15969, 16645, '0', '0', 0, 8394.552734375, -4799.76416015625, 72.27678680419921875, 1.038504362106323242, 0, 0, 0.4962310791015625, 0.868190467357635498, 120, 255, 1, 69587), -- Rostrum of Transformation (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+110, 619435, 0, 15969, 16645, '0', '0', 0, 8561.8662109375, -4892.95947265625, 28.56151008605957031, 4.390888690948486328, 0.080518722534179687, 0.065308570861816406, -0.80643939971923828, 0.582157254219055175, 120, 255, 1, 69587), -- To Murder Row (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+111, 551252, 0, 15969, 16645, '0', '0', 0, 8404.95703125, -4820.97216796875, 45.02338027954101562, 1.012291550636291503, 0, 0, 0.48480987548828125, 0.874619543552398681, 120, 255, 1, 69587), -- Bench (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+112, 551630, 0, 15969, 16645, '0', '0', 0, 8507.6357421875, -4822, 45.01296234130859375, 2.094393253326416015, 0, 0, 0.866024971008300781, 0.50000077486038208, 120, 255, 1, 69587), -- Bench (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+113, 559294, 0, 15969, 16645, '0', '0', 0, 8543.1904296875, -4846.5400390625, 44.73611068725585937, 3.394674062728881835, 0, 0, -0.99200439453125, 0.126203224062919616, 120, 255, 1, 69587), -- Bench (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+114, 551476, 0, 15969, 16645, '0', '0', 0, 8360.3251953125, -4837.408203125, 71.722625732421875, 2.338739633560180664, 0, 0, 0.920504570007324218, 0.3907318115234375, 120, 255, 1, 69587), -- Bench (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+115, 559336, 0, 15969, 16645, '0', '0', 0, 8583.3720703125, -4913.2119140625, 45.00816726684570312, 6.03883981704711914, 0, 0, -0.12186908721923828, 0.9925462007522583, 120, 255, 1, 69587), -- Bench (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+116, 559307, 0, 15969, 16645, '0', '0', 0, 8584.140625, -4894.4306640625, 44.93476486206054687, 0.191987067461013793, 0, 0, 0.095846176147460937, 0.995396137237548828, 120, 255, 1, 69587), -- Bench (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+117, 572271, 0, 15969, 16645, '0', '0', 0, 8562.98828125, -4825.36474609375, 45.60525131225585937, 2.277654170989990234, 0, 0, 0.908143043518066406, 0.418660014867782592, 120, 255, 1, 69587), -- Bench (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+118, 572272, 0, 15969, 16645, '0', '0', 0, 8533.876953125, -4818.5126953125, 46.07894515991210937, 5.497788906097412109, 0, 0, -0.38268280029296875, 0.923879802227020263, 120, 255, 1, 69587), -- Bench (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+119, 572273, 0, 15969, 16645, '0', '0', 0, 8547.189453125, -4831.24267578125, 46.08984756469726562, 2.364918231964111328, 0, 0, 0.925539970397949218, 0.378649920225143432, 120, 255, 1, 69587), -- Bench (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+120, 559315, 0, 15969, 16645, '0', '0', 0, 8577.2431640625, -4974.52587890625, 44.73527908325195312, 3.255058050155639648, 0, 0, -0.99839115142822265, 0.056702151894569396, 120, 255, 1, 69587), -- Bench (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+121, 584654, 0, 15969, 16645, '0', '0', 0, 8326.7607421875, -4902.54541015625, 90.7237548828125, 0.859685838222503662, 0, 0, 0.416728019714355468, 0.909031212329864501, 120, 255, 1, 69587), -- Stool (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+122, 572548, 0, 15969, 16645, '0', '0', 0, 8329.4423828125, -4907.8056640625, 90.71221923828125, 4.066620349884033203, 0, 0, -0.89493370056152343, 0.44619917869567871, 120, 255, 1, 69587), -- Cushion (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+123, 584655, 0, 15969, 16645, '0', '0', 0, 8329.232421875, -4904.171875, 90.72960662841796875, 5.799365997314453125, 0, 0, -0.23955726623535156, 0.970882236957550048, 120, 255, 1, 69587), -- Stool (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+124, 572549, 0, 15969, 16645, '0', '0', 0, 8323.873046875, -4919.447265625, 90.751983642578125, 6.169740200042724609, 0, 0, -0.05669212341308593, 0.998391687870025634, 120, 255, 1, 69587), -- Chair (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+125, 572550, 0, 15969, 16645, '0', '0', 0, 8324.9912109375, -4920.80224609375, 90.70196533203125, 1.117009282112121582, 0, 0, 0.529918670654296875, 0.84804844856262207, 120, 255, 1, 69587), -- Chair (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+126, 377584, 0, 15969, 16645, '0', '0', 0, 8394.552734375, -4799.76416015625, 72.27678680419921875, 1.038504362106323242, 0, 0, 0.4962310791015625, 0.868190467357635498, 120, 255, 1, 69587), -- Rostrum of Transformation - Spell Focus (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+127, 559362, 0, 15969, 16645, '0', '0', 0, 8574.4013671875, -4981.283203125, 44.73527908325195312, 2.286378860473632812, 0, 0, 0.909960746765136718, 0.414694398641586303, 120, 255, 1, 69587), -- Bench (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+128, 559189, 0, 15969, 16645, '0', '0', 0, 8577.4638671875, -4879.07470703125, 44.94517898559570312, 0.60213780403137207, 0, 0, 0.296541213989257812, 0.955020070075988769, 120, 255, 1, 69587), -- Bench (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+129, 559268, 0, 15969, 16645, '0', '0', 0, 8567.3046875, -4981.88525390625, 44.73527908325195312, 1.178095817565917968, 0, 0, 0.555569648742675781, 0.831470012664794921, 120, 255, 1, 69587), -- Bench (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+130, 559337, 0, 15969, 16645, '0', '0', 0, 8591.5166015625, -4979.126953125, 71.919677734375, 3.150327444076538085, 0, 0, -0.99999046325683593, 0.004367320332676172, 120, 255, 1, 69587), -- Bench (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+131, 559356, 0, 15969, 16645, '0', '0', 0, 8580.26953125, -4834.9130859375, 71.31912994384765625, 5.497788906097412109, 0, 0, -0.38268280029296875, 0.923879802227020263, 120, 255, 1, 69587), -- Bench (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+132, 559299, 0, 15969, 16645, '0', '0', 0, 8591.470703125, -4987.6162109375, 71.919677734375, 3.141592741012573242, 0, 0, -1, 0, 120, 255, 1, 69587), -- Bench (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+133, 572274, 0, 15969, 16645, '0', '0', 0, 8540.1748046875, -4802.439453125, 45.6215667724609375, 5.541422367095947265, 0, 0, -0.36243724822998046, 0.932008147239685058, 120, 255, 1, 69587), -- Bench (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+134, 572546, 0, 15969, 16645, '0', '0', 0, 8318.2236328125, -4903.24267578125, 90.71221923828125, 5.550149440765380859, 0, 0, -0.35836696624755859, 0.93358081579208374, 120, 255, 1, 69587), -- Cushion (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+135, 551184, 0, 15969, 16645, '0', '0', 0, 8485.041015625, -5067.1181640625, 67.1978912353515625, 0.724311470985412597, 0, 0, 0.354290962219238281, 0.935135245323181152, 120, 255, 1, 69587), -- Chair (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+136, 572547, 0, 15969, 16645, '0', '0', 0, 8320.0458984375, -4902.572265625, 90.71221923828125, 4.860745429992675781, 0, 0, -0.65275859832763671, 0.757565975189208984, 120, 255, 1, 69587), -- Cushion (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+137, 559323, 0, 15969, 16645, '0', '0', 0, 8586.3564453125, -4828.99658203125, 71.31912994384765625, 5.489062309265136718, 0, 0, -0.38671016693115234, 0.922201275825500488, 120, 255, 1, 69587), -- Bench (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+138, 551607, 0, 15969, 16645, '0', '0', 0, 8374.69140625, -4782.26904296875, 71.9005279541015625, 3.926995515823364257, 0, 0, -0.92387866973876953, 0.38268551230430603, 120, 255, 1, 69587), -- Bench (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+139, 572638, 0, 15969, 16645, '0', '0', 0, 8595.53125, -4935.41015625, -0.51718902587890625, 5.270895957946777343, 0, 0, -0.48480892181396484, 0.87462007999420166, 120, 255, 1, 69587), -- Chair (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+140, 559202, 0, 15969, 16645, '0', '0', 0, 8589.9052734375, -4848.00537109375, 18.76959991455078125, 0.043632153421640396, 0, 0, 0.021814346313476562, 0.99976205825805664, 120, 255, 1, 69587), -- Cushion (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+141, 559191, 0, 15969, 16645, '0', '0', 0, 8591.1259765625, -4845.37158203125, 18.76960563659667968, 4.799657344818115234, 0, 0, -0.67558956146240234, 0.737277925014495849, 120, 255, 1, 69587), -- Cushion (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+142, 551421, 0, 15969, 16645, '0', '0', 0, 8487.703125, -5065.05712890625, 67.19547271728515625, 3.621566295623779296, 0, 0, -0.97134113311767578, 0.237689673900604248, 120, 255, 1, 69587), -- Chair (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+143, 559250, 0, 15969, 16645, '0', '0', 0, 8556.5908203125, -5032.1318359375, 117.7850494384765625, 1.05592358112335205, 0, 0, 0.503773689270019531, 0.863835692405700683, 120, 255, 1, 69587), -- Chair (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+144, 559256, 0, 15969, 16645, '0', '0', 0, 8613.7470703125, -4929.1875, 18.71518707275390625, 5.768314361572265625, 0, 0, -0.25460147857666015, 0.967046082019805908, 120, 255, 1, 69587), -- Bench (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+145, 559258, 0, 15969, 16645, '0', '0', 0, 8618.255859375, -4917.32470703125, 18.71512794494628906, 6.065021514892578125, 0, 0, -0.10886573791503906, 0.994056463241577148, 120, 255, 1, 69587), -- Bench (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+146, 609861, 0, 15969, 16645, '0', '0', 0, 8322.126953125, -4816.19775390625, 60.16344451904296875, 4.985931396484375, 0.116344928741455078, 0.057995796203613281, -0.60435390472412109, 0.786038637161254882, 120, 255, 1, 69587), -- Death's Hope (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+147, 609862, 0, 15969, 16645, '0', '0', 0, 8326.056640625, -4811.3212890625, 60.23647689819335937, 3.773389577865600585, 0, 0, -0.95051765441894531, 0.310670554637908935, 120, 255, 1, 69587), -- Lordaeron's Loss (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+148, 559333, 0, 15969, 16645, '0', '0', 0, 8596.4345703125, -4845.94091796875, 18.79953384399414062, 4.651309013366699218, 0, 0, -0.72836875915527343, 0.685185372829437255, 120, 255, 1, 69587), -- Chair (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+149, 572368, 0, 15969, 16645, '0', '0', 0, 8572.7255859375, -4804.13525390625, 72.2314910888671875, 5.489060401916503906, 0, 0, -0.38671112060546875, 0.922200918197631835, 120, 255, 1, 69587), -- Cushion (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+150, 572370, 0, 15969, 16645, '0', '0', 0, 8571.75390625, -4806.98291015625, 72.3565216064453125, 0.855210542678833007, 0, 0, 0.414692878723144531, 0.909961462020874023, 120, 255, 1, 69587), -- Cushion (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+151, 572375, 0, 15969, 16645, '0', '0', 0, 8574.546875, -4807.03515625, 72.34037017822265625, 2.19911050796508789, 0, 0, 0.891005516052246093, 0.453992486000061035, 120, 255, 1, 69587), -- Cushion (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+152, 559298, 0, 15969, 16645, '0', '0', 0, 8556.5908203125, -5028.3681640625, 117.7729034423828125, 1.05592358112335205, 0, 0, 0.503773689270019531, 0.863835692405700683, 120, 255, 1, 69587), -- Chair (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+153, 551275, 0, 15969, 16645, '0', '0', 0, 8476.2939453125, -5080.11474609375, 67.1839447021484375, 1.335176706314086914, 0, 0, 0.619093894958496093, 0.785317003726959228, 120, 255, 1, 69587), -- Chair (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+154, 572651, 0, 15969, 16645, '0', '0', 0, 8590.0087890625, -4824.109375, 20.31635665893554687, 5.855582714080810546, 0, 0, -0.21217632293701171, 0.977231383323669433, 120, 255, 1, 69587), -- Chair (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+155, 551505, 0, 15969, 16645, '0', '0', 0, 8292.6357421875, -4928.8125, 88.29343414306640625, 0.488691210746765136, 0, 0, 0.241921424865722656, 0.970295846462249755, 120, 255, 1, 69587), -- Bench (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+156, 551508, 0, 15969, 16645, '0', '0', 0, 8477.291015625, -5076.8974609375, 67.17978668212890625, 4.232431411743164062, 0, 0, -0.85490989685058593, 0.518776535987854003, 120, 255, 1, 69587), -- Chair (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+157, 611913, 0, 15969, 16645, '0', '0', 0, 8327.623046875, -4817.0224609375, 62.20224380493164062, 5.450405120849609375, -0.26854228973388671, -0.47780323028564453, -0.36926746368408203, 0.750486969947814941, 120, 255, 1, 69587), -- Coffin (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+158, 612937, 0, 15969, 16645, '0', '0', 0, 8324.9296875, -4816.439453125, 60.23217010498046875, 2.49510955810546875, 0, 0, 0.948210716247558593, 0.317641973495483398, 120, 255, 1, 69587), -- Silvermoon Special (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+159, 612938, 0, 15969, 16645, '0', '0', 0, 8323.9345703125, -4813.15625, 60.88188552856445312, 5.651059150695800781, 0.415860176086425781, 0.571890830993652343, -0.41586017608642578, 0.571892917156219482, 120, 255, 1, 69587), -- Unfinished Gravestone (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+160, 559188, 0, 15969, 16645, '0', '0', 0, 8555.0283203125, -5027.4443359375, 117.7729034423828125, 0.977385222911834716, 0, 0, 0.469471931457519531, 0.882947385311126708, 120, 255, 1, 69587), -- Chair (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+161, 612943, 0, 15969, 16645, '0', '0', 0, 8324.263671875, -4813.59375, 60.26594924926757812, 0.28713536262512207, 0, 0, 0.143074989318847656, 0.989711880683898925, 120, 255, 1, 69587), -- Stool (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+162, 559194, 0, 15969, 16645, '0', '0', 0, 8562.2021484375, -5028.5380859375, 117.7850494384765625, 2.059488296508789062, 0, 0, 0.857167243957519531, 0.515038192272186279, 120, 255, 1, 69587), -- Chair (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+163, 559284, 0, 15969, 16645, '0', '0', 0, 8554.853515625, -5031.0400390625, 117.7850494384765625, 0.951205372810363769, 0, 0, 0.457874298095703125, 0.889016985893249511, 120, 255, 1, 69587), -- Chair (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+164, 559285, 0, 15969, 16645, '0', '0', 0, 8596.1376953125, -4849.93408203125, 18.79664802551269531, 1.474801421165466308, 0, 0, 0.672366142272949218, 0.740218758583068847, 120, 255, 1, 69587), -- Chair (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+165, 609857, 0, 15969, 16645, '0', '0', 0, 8320.5576171875, -4810.27587890625, 60.1347198486328125, 1.066777586936950683, 0, 0, 0.508454322814941406, 0.861088991165161132, 120, 255, 1, 69587), -- The Classic (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+166, 609858, 0, 15969, 16645, '0', '0', 0, 8320.09765625, -4818.17529296875, 60.16344451904296875, 2.371591806411743164, 0.203393936157226562, -0.06612777709960937, 0.906586647033691406, 0.363811314105987548, 120, 255, 1, 69587), -- Budget Friendly (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+167, 609859, 0, 15969, 16645, '0', '0', 0, 8321.9189453125, -4811.04150390625, 60.14516067504882812, 0.80578392744064331, -0.03081464767456054, 0.09635162353515625, 0.389190673828125, 0.915585815906524658, 120, 255, 1, 69587), -- Pious Memorial (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+168, 609867, 0, 15969, 16645, '0', '0', 0, 8321.021484375, -4817.05712890625, 60.16344451904296875, 2.396744251251220703, 0, 0, 0.931447982788085937, 0.363874554634094238, 120, 255, 1, 69587), -- Delver's Delight (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+169, 551685, 0, 15969, 16645, '0', '0', 0, 8362.4853515625, -5064.93408203125, 41.25238800048828125, 4.022988319396972656, 0, 0, -0.90445423126220703, 0.426570683717727661, 120, 255, 1, 69587), -- Chair (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+170, 549190, 0, 15969, 16645, '0', '0', 0, 8536.0673828125, -4765.94873046875, 23.49687767028808593, 0.785396754741668701, 0, 0, 0.38268280029296875, 0.923879802227020263, 120, 255, 1, 69587), -- Guild Vault (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+171, 648602, 0, 15969, 16645, '0', '0', 0, 8320.2490234375, -4810.8525390625, 60.1094970703125, 1.216220855712890625, 0, 0, 0.571317672729492187, 0.820729017257690429, 120, 255, 1, 69587), -- Candles (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+172, 559355, 0, 15969, 16645, '0', '0', 0, 8562.5625, -5031.95849609375, 117.7850494384765625, 2.059488296508789062, 0, 0, 0.857167243957519531, 0.515038192272186279, 120, 255, 1, 69587), -- Chair (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+173, 559313, 0, 15969, 16645, '0', '0', 0, 8604.6884765625, -4832.5068359375, 75.14498138427734375, 0.287977516651153564, 0, 0, 0.143491744995117187, 0.989651501178741455, 120, 255, 1, 69587), -- Bench (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+174, 559314, 0, 15969, 16645, '0', '0', 0, 8564.314453125, -5030.890625, 117.7850494384765625, 2.164209842681884765, 0, 0, 0.882947921752929687, 0.469470918178558349, 120, 255, 1, 69587), -- Chair (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+175, 572640, 0, 15969, 16645, '0', '0', 0, 8590.0341796875, -4813.322265625, 20.31689834594726562, 2.539454221725463867, 0, 0, 0.955019950866699218, 0.296541541814804077, 120, 255, 1, 69587), -- Chair (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+176, 572658, 0, 15969, 16645, '0', '0', 0, 8595.2373046875, -4818.9921875, 20.26267242431640625, 0.209437504410743713, 0, 0, 0.104527473449707031, 0.994521975517272949, 120, 255, 1, 69587), -- Chair (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+177, 669244, 0, 15969, 16645, '0', '0', 0, 8320.7509765625, -4807.4912109375, 60.11203384399414062, 3.424282550811767578, 0, 0, -0.99002742767333984, 0.140874639153480529, 120, 255, 1, 69587), -- Fang Lover's (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+178, 572637, 0, 15969, 16645, '0', '0', 0, 8588.181640625, -4807.931640625, 20.316925048828125, 5.105089664459228515, 0, 0, -0.55556964874267578, 0.831470012664794921, 120, 255, 1, 69587), -- Chair (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+179, 551096, 0, 15969, 16645, '0', '0', 0, 8525.1376953125, -4764.8681640625, 21.72294998168945312, 3.508116960525512695, 0, 0, -0.98325443267822265, 0.182238012552261352, 120, 255, 1, 69587), -- Bench (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+180, 559197, 0, 15969, 16645, '0', '0', 0, 8563.9541015625, -5027.470703125, 117.7850494384765625, 2.164209842681884765, 0, 0, 0.882947921752929687, 0.469470918178558349, 120, 255, 1, 69587), -- Chair (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+181, 627594, 0, 15969, 16645, '0', '0', 0, 8316.6357421875, -4816.11328125, 73.538604736328125, 2.888511419296264648, 0, 0, 0.99200439453125, 0.126203224062919616, 120, 255, 1, 69587), -- Chair (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+182, 628261, 0, 15969, 16645, '0', '0', 0, 8310.275390625, -4822.1025390625, 73.55881500244140625, 0.613505899906158447, 0, 0, 0.301964759826660156, 0.953319072723388671, 120, 255, 1, 69587), -- 12.0 Delves - Hub - Mannequin Stand (DTM) (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+183, 572315, 0, 15969, 16645, '0', '0', 0, 8313.8955078125, -4812.72900390625, 59.41790008544921875, 2.818698406219482421, 0, 0, 0.986995697021484375, 0.160746723413467407, 120, 255, 1, 69587), -- Chair (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+184, 628261, 0, 15969, 16645, '0', '0', 0, 8313.2861328125, -4822.4462890625, 73.55881500244140625, 5.938810348510742187, 0, 0, -0.17133808135986328, 0.985212326049804687, 120, 255, 1, 69587), -- 12.0 Delves - Hub - Mannequin Stand (DTM) (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+185, 559239, 0, 15969, 16645, '0', '0', 0, 8613.279296875, -4834.61279296875, 75.14498138427734375, 2.321286916732788085, 0, 0, 0.917059898376464843, 0.398749500513076782, 120, 255, 1, 69587), -- Bench (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+186, 551120, 0, 15969, 16645, '0', '0', 0, 8361.42578125, -5068.5693359375, 41.25238800048828125, 1.771507501602172851, 0, 0, 0.774392127990722656, 0.632705986499786376, 120, 255, 1, 69587), -- Chair (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+187, 559260, 0, 15969, 16645, '0', '0', 0, 8627.5859375, -4947.8681640625, 72.05429840087890625, 1.562069892883300781, 0, 0, 0.704014778137207031, 0.71018528938293457, 120, 255, 1, 69587), -- Bench (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+188, 572369, 0, 15969, 16645, '0', '0', 0, 8570.8828125, -4779.4453125, 71.79248809814453125, 6.169740200042724609, 0, 0, -0.05669212341308593, 0.998391687870025634, 120, 255, 1, 69587), -- Chair (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+189, 572371, 0, 15969, 16645, '0', '0', 0, 8582.6142578125, -4794.19873046875, 72.23862457275390625, 5.419250965118408203, 0, 0, -0.41865825653076171, 0.908143877983093261, 120, 255, 1, 69587), -- Chair (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+190, 572374, 0, 15969, 16645, '0', '0', 0, 8578.0576171875, -4788.53955078125, 71.8190765380859375, 0.453783124685287475, 0, 0, 0.224949836730957031, 0.974370360374450683, 120, 255, 1, 69587), -- Chair (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+191, 572376, 0, 15969, 16645, '0', '0', 0, 8584.5673828125, -4796.3994140625, 72.27765655517578125, 2.295104265213012695, 0, 0, 0.911761283874511718, 0.410720497369766235, 120, 255, 1, 69587), -- Chair (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+192, 572647, 0, 15969, 16645, '0', '0', 0, 8592.77734375, -4816.1171875, 3.823055267333984375, 5.942847728729248046, 0, 0, -0.16934871673583984, 0.985556185245513916, 120, 255, 1, 69587), -- Cushion (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+193, 572653, 0, 15969, 16645, '0', '0', 0, 8593.1298828125, -4817.435546875, 3.823055267333984375, 0.619591057300567626, 0, 0, 0.304863929748535156, 0.952395915985107421, 120, 255, 1, 69587), -- Cushion (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+194, 669241, 0, 15969, 16645, '0', '0', 0, 8319.072265625, -4804.92529296875, 60.09823989868164062, 4.381118297576904296, 0, 0, -0.81401634216308593, 0.58084195852279663, 120, 255, 1, 69587), -- Well Urned Rest (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+195, 572626, 0, 15969, 16645, '0', '0', 0, 8599.03125, -4817.595703125, 20.2915802001953125, 3.953172922134399414, 0, 0, -0.91879081726074218, 0.394744753837585449, 120, 255, 1, 69587), -- Chair (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+196, 572627, 0, 15969, 16645, '0', '0', 0, 8595.716796875, -4819.46484375, 3.893505096435546875, 0.929559648036956787, 0, 0, 0.448225975036621093, 0.893920302391052246, 120, 255, 1, 69587), -- Cushion (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+197, 572631, 0, 15969, 16645, '0', '0', 0, 8592.326171875, -4812.509765625, 3.875881195068359375, 6.099926471710205078, 0, 0, -0.09150123596191406, 0.995804965496063232, 120, 255, 1, 69587), -- Cushion (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+198, 612894, 0, 15969, 16645, '0', '0', 0, 8322.4853515625, -4803.88720703125, 73.62284088134765625, 1.448094964027404785, 0, 0, 0.66242218017578125, 0.749130725860595703, 120, 255, 1, 69587), -- Unknown Gameobject (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+199, 272724, 0, 15969, 16645, '0', '0', 0, 8630.7685546875, -4938.876953125, 24.33143043518066406, 4.67918252944946289, 0, 0, -0.71874904632568359, 0.695269584655761718, 120, 255, 1, 69587), -- Instance Portal (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+200, 628261, 0, 15969, 16645, '0', '0', 0, 8303.2861328125, -4823.24658203125, 73.55881500244140625, 2.751769304275512695, 0, 0, 0.981064796447753906, 0.193679854273796081, 120, 255, 1, 69587), -- 12.0 Delves - Hub - Mannequin Stand (DTM) (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+201, 628261, 0, 15969, 16645, '0', '0', 0, 8306.3662109375, -4822.6181640625, 73.55881500244140625, 3.215506553649902343, 0, 0, -0.99931716918945312, 0.03694840520620346, 120, 255, 1, 69587), -- 12.0 Delves - Hub - Mannequin Stand (DTM) (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+202, 559220, 0, 15969, 16645, '0', '0', 0, 8624.7900390625, -4870.25, 18.715301513671875, 3.647741317749023437, 0, 0, -0.96814727783203125, 0.250381410121917724, 120, 255, 1, 69587), -- Bench (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+203, 551575, 0, 15969, 16645, '0', '0', 0, 8524.6142578125, -4754.595703125, 21.7090606689453125, 2.897245407104492187, 0, 0, 0.99254608154296875, 0.121869951486587524, 120, 255, 1, 69587), -- Bench (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+204, 611283, 0, 15969, 16645, '0', '0', 0, 8309.78125, -4808.88525390625, 73.55881500244140625, 0.788281738758087158, 0, 0, 0.384015083312988281, 0.923326790332794189, 120, 255, 1, 69587), -- Table (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+205, 611286, 0, 15969, 16645, '0', '0', 0, 8310.1884765625, -4809.44970703125, 74.6605987548828125, 3.835968017578125, 0, 0, -0.94033336639404296, 0.340254515409469604, 120, 255, 1, 69587), -- Map (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+206, 551324, 0, 15969, 16645, '0', '0', 0, 8476.015625, -5095.5380859375, 67.1882171630859375, 5.09636688232421875, 0, 0, -0.55919075012207031, 0.829039037227630615, 120, 255, 1, 69587), -- Chair (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+207, 551712, 0, 15969, 16645, '0', '0', 0, 8359.9267578125, -5076.2744140625, 41.25238800048828125, 4.581492900848388671, 0, 0, -0.75183868408203125, 0.659347057342529296, 120, 255, 1, 69587), -- Chair (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+208, 638910, 0, 15969, 16645, '0', '0', 0, 8579.1171875, -4782.3193359375, 71.83156585693359375, 3.521754980087280273, 0, 0, -0.98198890686035156, 0.188938498497009277, 120, 255, 1, 69587), -- Pile of Sausages (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+209, 559245, 0, 15969, 16645, '0', '0', 0, 8636.6162109375, -4881.923828125, 19.15946578979492187, 0.794125139713287353, 0, 0, 0.38671112060546875, 0.922200918197631835, 120, 255, 1, 69587), -- Meeting Stone (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+210, 612039, 0, 15969, 16645, '0', '0', 0, 8312.193359375, -4797.953125, 75.4196319580078125, 3.939062833786010742, -0.23313093185424804, 0.593878746032714843, -0.7044687271118164, 0.310937017202377319, 120, 255, 1, 69587), -- Unknown Gameobject (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+211, 551124, 0, 15969, 16645, '0', '0', 0, 8353.0615234375, -5071.171875, 41.25238800048828125, 1.684243083000183105, 0, 0, 0.746057510375976562, 0.665881514549255371, 120, 255, 1, 69587), -- Chair (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+212, 551132, 0, 15969, 16645, '0', '0', 0, 8359.876953125, -5079.21875, 41.25238800048828125, 1.727874636650085449, 0, 0, 0.760405540466308593, 0.649448513984680175, 120, 255, 1, 69587), -- Chair (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+213, 611585, 0, 15969, 16645, '0', '0', 0, 8301.978515625, -4812.40087890625, 75.4507293701171875, 4.141130924224853515, 0.429455757141113281, -0.34152507781982421, -0.78733539581298828, 0.281125158071517944, 120, 255, 1, 69587), -- Valeera's Dagger (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+214, 572372, 0, 15969, 16645, '0', '0', 0, 8579.5361328125, -4785.0087890625, 71.8190765380859375, 4.68620920181274414, 0, 0, -0.71630191802978515, 0.697790443897247314, 120, 255, 1, 69587), -- Chair (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+215, 559338, 0, 15969, 16645, '0', '0', 0, 8623.8701171875, -4859.53662109375, 18.71529579162597656, 2.836158275604248046, 0, 0, 0.988361358642578125, 0.152124300599098205, 120, 255, 1, 69587), -- Bench (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+216, 611582, 0, 15969, 16645, '0', '0', 0, 8309.830078125, -4808.46337890625, 74.65619659423828125, 5.899737358093261718, 0, 0, -0.1905517578125, 0.981677174568176269, 120, 255, 1, 69587), -- Poison Kit (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+217, 572373, 0, 15969, 16645, '0', '0', 0, 8574.05078125, -4779.77880859375, 71.79055023193359375, 3.124123096466064453, 0, 0, 0.99996185302734375, 0.008734640665352344, 120, 255, 1, 69587), -- Chair (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+218, 611583, 0, 15969, 16645, '0', '0', 0, 8308.5126953125, -4808.4462890625, 74.6489410400390625, 0.16241563856601715, 0, 0, 0.081118583679199218, 0.996704459190368652, 120, 255, 1, 69587), -- Thistle Tea (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+219, 559343, 0, 15969, 16645, '0', '0', 0, 8636.0751953125, -4947.98779296875, 72.04388427734375, 1.570795774459838867, 0, 0, 0.707106590270996093, 0.707106947898864746, 120, 255, 1, 69587), -- Bench (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+220, 551174, 0, 15969, 16645, '0', '0', 0, 8408.5322265625, -5088.15283203125, 118.434600830078125, 5.541424274444580078, 0, 0, -0.36243629455566406, 0.932008564472198486, 120, 255, 1, 69587), -- Cushion (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+221, 551199, 0, 15969, 16645, '0', '0', 0, 8465.533203125, -5103.41162109375, 66.848968505859375, 1.448621988296508789, 0, 0, 0.662619590759277343, 0.748956084251403808, 120, 255, 1, 69587), -- Chair (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+222, 611585, 0, 15969, 16645, '0', '0', 0, 8310.296875, -4809.7568359375, 75.27982330322265625, 3.01192474365234375, -0.58827400207519531, 0.222502708435058593, 0.7528533935546875, 0.194005176424980163, 120, 255, 1, 69587), -- Valeera's Dagger (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+223, 611587, 0, 15969, 16645, '0', '0', 0, 8302.916015625, -4812.25341796875, 73.35013580322265625, 0.848398029804229736, 0.020729541778564453, -0.30511379241943359, 0.362361907958984375, 0.880437254905700683, 120, 255, 1, 69587), -- Training Dummy (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+224, 572641, 0, 15969, 16645, '0', '0', 0, 8600.6103515625, -4820.205078125, 3.893505096435546875, 2.22354888916015625, 0, 0, 0.896486282348632812, 0.44307151436805725, 120, 255, 1, 69587), -- Cushion (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+225, 565733, 0, 15969, 16645, '0', '0', 0, 8301.650390625, -4813.34912109375, 74.74240875244140625, 5.788479804992675781, -0.06385421752929687, -0.14475154876708984, -0.24580669403076171, 0.956320405006408691, 120, 255, 1, 69587), -- Unsealed Letter (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+226, 572663, 0, 15969, 16645, '0', '0', 0, 8625.607421875, -4962.96484375, -0.41352462768554687, 0.48868727684020996, 0, 0, 0.241919517517089843, 0.970296323299407958, 120, 255, 1, 69587), -- Chair (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+227, 572664, 0, 15969, 16645, '0', '0', 0, 8598.4765625, -4807.61767578125, 3.875881195068359375, 4.811136722564697265, 0, 0, -0.67134666442871093, 0.741143465042114257, 120, 255, 1, 69587), -- Cushion (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+228, 572669, 0, 15969, 16645, '0', '0', 0, 8577.7236328125, -4791.982421875, 4.64504241943359375, 5.986480236053466796, 0, 0, -0.14780902862548828, 0.989015936851501464, 120, 255, 1, 69587), -- Chair (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+229, 551590, 0, 15969, 16645, '0', '0', 0, 8465.9677734375, -5100.734375, 66.848968505859375, 4.302238941192626953, 0, 0, -0.83628559112548828, 0.5482940673828125, 120, 255, 1, 69587), -- Chair (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+230, 551331, 0, 15969, 16645, '0', '0', 0, 8435.904296875, -5103.17529296875, 66.84903717041015625, 1.125736594200134277, 0, 0, 0.533614158630371093, 0.845728039741516113, 120, 255, 1, 69587), -- Chair (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+231, 572632, 0, 15969, 16645, '0', '0', 0, 8584.44921875, -4788.990234375, 4.622402191162109375, 4.345870018005371093, 0, 0, -0.82412624359130859, 0.566406130790710449, 120, 255, 1, 69587), -- Chair (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+232, 572634, 0, 15969, 16645, '0', '0', 0, 8603.400390625, -4808.33203125, 3.907276153564453125, 3.804818391799926757, 0, 0, -0.94551849365234375, 0.325568377971649169, 120, 255, 1, 69587), -- Cushion (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+233, 559204, 0, 15969, 16645, '0', '0', 0, 8611.2548828125, -4826.09716796875, 75.14498138427734375, 4.494226455688476562, 0, 0, -0.77988338470458984, 0.625924885272979736, 120, 255, 1, 69587), -- Bench (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+234, 551556, 0, 15969, 16645, '0', '0', 0, 8352.8984375, -5067.5400390625, 41.25238800048828125, 4.799657344818115234, 0, 0, -0.67558956146240234, 0.737277925014495849, 120, 255, 1, 69587), -- Chair (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+235, 572395, 0, 15969, 16645, '0', '0', 0, 8271.619140625, -4920.12109375, 38.92401504516601562, 3.167797565460205078, 0, 0, -0.99991416931152343, 0.013101960532367229, 120, 255, 1, 69587), -- Chair (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+236, 572396, 0, 15969, 16645, '0', '0', 0, 8271.63671875, -4922.3427734375, 38.92401504516601562, 3.167797565460205078, 0, 0, -0.99991416931152343, 0.013101960532367229, 120, 255, 1, 69587), -- Chair (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+237, 572397, 0, 15969, 16645, '0', '0', 0, 8267.8193359375, -4922.4609375, 38.92401504516601562, 0.052356980741024017, 0, 0, 0.026175498962402343, 0.999657392501831054, 120, 255, 1, 69587), -- Chair (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+238, 572400, 0, 15969, 16645, '0', '0', 0, 8267.7431640625, -4920.24169921875, 38.92401504516601562, 0.052356980741024017, 0, 0, 0.026175498962402343, 0.999657392501831054, 120, 255, 1, 69587), -- Chair (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+239, 572677, 0, 15969, 16645, '0', '0', 0, 8631.703125, -4895, -3.0894012451171875, 1.946041464805603027, 0, 0, 0.826589584350585937, 0.56280517578125, 120, 255, 1, 69587), -- Chair (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+240, 611287, 0, 15969, 16645, '0', '0', 0, 8308.8984375, -4808.44091796875, 74.65352630615234375, 4.441934585571289062, 0, 0, -0.79598045349121093, 0.60532236099243164, 120, 255, 1, 69587), -- Map (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+241, 551317, 0, 15969, 16645, '0', '0', 0, 8437.259765625, -5100.939453125, 66.84903717041015625, 4.171337604522705078, 0, 0, -0.87035560607910156, 0.492423713207244873, 120, 255, 1, 69587), -- Chair (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+242, 572680, 0, 15969, 16645, '0', '0', 0, 8587.015625, -4789.404296875, 4.678737640380859375, 3.9793548583984375, 0, 0, -0.9135446548461914, 0.406738430261611938, 120, 255, 1, 69587), -- Cushion (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+243, 551322, 0, 15969, 16645, '0', '0', 0, 8477.1611328125, -5098.36279296875, 67.22327423095703125, 2.068215370178222656, 0, 0, 0.859406471252441406, 0.511292934417724609, 120, 255, 1, 69587), -- Chair (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+244, 551149, 0, 15969, 16645, '0', '0', 0, 8416.4130859375, -5088.2099609375, 118.4415435791015625, 3.630291461944580078, 0, 0, -0.97029495239257812, 0.241925001144409179, 120, 255, 1, 69587), -- Cushion (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+245, 572316, 0, 15969, 16645, '0', '0', 0, 8305.0146484375, -4810.06884765625, 59.45037078857421875, 0.488689273595809936, 0, 0, 0.24192047119140625, 0.970296084880828857, 120, 255, 1, 69587), -- Chair (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+246, 551115, 0, 15969, 16645, '0', '0', 0, 8488.6884765625, -5111.29541015625, 67.20500946044921875, 2.609261274337768554, 0, 0, 0.964786529541015625, 0.263034075498580932, 120, 255, 1, 69587), -- Chair (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+247, 570253, 0, 15969, 16645, '0', '0', 0, 8649.982421875, -4838.611328125, 19.77953338623046875, 2.356189966201782226, 0, 0, 0.923878669738769531, 0.38268551230430603, 120, 255, 1, 69587), -- Door (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+248, 559306, 0, 15969, 16645, '0', '0', 0, 8724.9599609375, -5124.59716796875, 136.1730804443359375, 2.251473426818847656, 0, 0, 0.902585029602050781, 0.430511653423309326, 120, 255, 1, 69587), -- Orb of Translocation (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+249, 551521, 0, 15969, 16645, '0', '0', 0, 8435.0048828125, -5113.2724609375, 66.848968505859375, 5.052731990814208984, 0, 0, -0.57714366912841796, 0.816642642021179199, 120, 255, 1, 69587), -- Chair (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+250, 551187, 0, 15969, 16645, '0', '0', 0, 8350.7783203125, -5083.28466796875, 41.2524566650390625, 4.633852005004882812, 0, 0, -0.73432159423828125, 0.678801715373992919, 120, 255, 1, 69587), -- Chair (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+251, 551284, 0, 15969, 16645, '0', '0', 0, 8441.5810546875, -5108.1025390625, 66.848968505859375, 4.921833992004394531, 0, 0, -0.6293182373046875, 0.77714771032333374, 120, 255, 1, 69587), -- Chair (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+252, 551500, 0, 15969, 16645, '0', '0', 0, 8362.0126953125, -5089.73095703125, 41.25592803955078125, 1.946041464805603027, 0, 0, 0.826589584350585937, 0.56280517578125, 120, 255, 1, 69587), -- Chair (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+253, 619437, 0, 15969, 16645, '0', '0', 0, 8617.6806640625, -4824.9658203125, 6.943027496337890625, 5.362782955169677734, 0.040688991546630859, 0.082083702087402343, -0.4422607421875, 0.892195105552673339, 120, 255, 1, 69587), -- To The Silver Chalice (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+254, 529989, 0, 15969, 16645, '0', '0', 0, 8317.837890625, -4705.62158203125, 74.48769378662109375, 5.266427040100097656, 0, 0, -0.48676204681396484, 0.873534619808197021, 120, 255, 1, 69587), -- Barbershop Pole [DNT] (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+255, 551600, 0, 15969, 16645, '0', '0', 0, 8361.11328125, -5086.27783203125, 41.25590896606445312, 4.852019786834716796, 0, 0, -0.65605735778808593, 0.754711031913757324, 120, 255, 1, 69587), -- Chair (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+256, 572628, 0, 15969, 16645, '0', '0', 0, 8605.9736328125, -4811.39111328125, 3.905094146728515625, 3.516847848892211914, 0, 0, -0.98244953155517578, 0.186528548598289489, 120, 255, 1, 69587), -- Cushion (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+257, 627593, 0, 15969, 16645, '0', '0', 0, 8264.18359375, -4915.21337890625, 38.93664932250976562, 3.70009779930114746, 0, 0, -0.96126174926757812, 0.275637149810791015, 120, 255, 1, 69587), -- Chair (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+258, 551084, 0, 15969, 16645, '0', '0', 0, 8600.1953125, -4507.20166015625, 20.76620101928710937, 3.970627307891845703, 0, 0, -0.91531085968017578, 0.402748137712478637, 120, 255, 1, 69587), -- Orb of Translocation (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+259, 551652, 0, 15969, 16645, '0', '0', 0, 8442.78125, -5110.53466796875, 66.848968505859375, 2.068215370178222656, 0, 0, 0.859406471252441406, 0.511292934417724609, 120, 255, 1, 69587), -- Chair (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+260, 572314, 0, 15969, 16645, '0', '0', 0, 8295.48046875, -4809.61572265625, 73.57049560546875, 0.410150706768035888, 0, 0, 0.203640937805175781, 0.979045629501342773, 120, 255, 1, 69587), -- Chair (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+261, 551157, 0, 15969, 16645, '0', '0', 0, 8485.9697265625, -5109.59716796875, 67.17584228515625, 5.585056304931640625, 0, 0, -0.34201908111572265, 0.939693033695220947, 120, 255, 1, 69587), -- Chair (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+262, 555879, 0, 15969, 16645, '0', '0', 0, 8577.470703125, -4016.775390625, 36.08899688720703125, 2.923415660858154296, 0, 0, 0.994055747985839843, 0.108872212469577789, 120, 255, 1, 69587), -- Orb of Translocation (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+263, 573086, 0, 15969, 16645, '0', '0', 0, 8457.3935546875, -4064.82470703125, 75.26300048828125, 4.729844093322753906, 0, 0, -0.70090866088867187, 0.713251054286956787, 120, 255, 1, 69587), -- Orb of Translocation (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+264, 532226, 0, 15969, 16645, '0', '0', 0, 8541.6767578125, -4451.708984375, 18.81597328186035156, 5.497788906097412109, 0, 0, -0.38268280029296875, 0.923879802227020263, 120, 255, 1, 69587), -- The Catalyst (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+265, 494914, 0, 15969, 16645, '0', '0', 0, 8643.9228515625, -4080.474609375, 103.4112625122070312, 1.815141916275024414, 0, 0, 0.788010597229003906, 0.615661680698394775, 120, 255, 1, 69587), -- Orb of Translocation (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+266, 626557, 0, 15969, 16645, '0', '0', 0, 8785.5693359375, -4923.58349609375, 345.18634033203125, 2.399827241897583007, 0, 0, 0.932007789611816406, 0.36243826150894165, 120, 255, 1, 69587), -- Orb of Translocation (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+267, 576684, 0, 15969, 16645, '0', '0', 0, 8855.537109375, -4677.5244140625, 76.7340850830078125, 0, 0, 0, 0, 1, 120, 255, 1, 69587), -- [DNT] Eversong Table 03 (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+268, 494914, 0, 15969, 16645, '0', '0', 0, 8586.1572265625, -4018.701171875, 103.1284866333007812, 6.065019607543945312, 0, 0, -0.10886669158935546, 0.994056344032287597, 120, 255, 1, 69587), -- Orb of Translocation (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+269, 532226, 0, 15969, 16645, '0', '0', 0, 8198.3681640625, -5318.505859375, 64.57291412353515625, 0.785396754741668701, 0, 0, 0.38268280029296875, 0.923879802227020263, 120, 255, 1, 69587), -- The Catalyst (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+270, 551501, 0, 15969, 16645, '0', '0', 0, 8457.099609375, -4323.75341796875, -5.92743873596191406, 4.7475738525390625, 0.044871330261230468, 0.043331146240234375, -0.69330406188964843, 0.717940390110015869, 120, 255, 1, 69587), -- In Memoriam (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+271, 551075, 0, 15969, 16645, '0', '0', 0, 8600.1875, -4506.5625, 78.29790496826171875, 3.918267250061035156, 0, 0, -0.92553997039794921, 0.378649920225143432, 120, 255, 1, 69587), -- Orb of Translocation (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+272, 573033, 0, 15969, 16645, '0', '0', 0, 8458.1728515625, -4018.7275390625, 215.2357025146484375, 4.729844093322753906, 0, 0, -0.70090866088867187, 0.713251054286956787, 120, 255, 1, 69587), -- Orb of Translocation (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+273, 573034, 0, 15969, 16645, '0', '0', 0, 8457.330078125, -4074.9306640625, 20.87475967407226562, 3.900813102722167968, 0, 0, -0.92880916595458984, 0.370558410882949829, 120, 255, 1, 69587), -- Orb of Translocation (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+274, 573035, 0, 15969, 16645, '0', '0', 0, 8457.0986328125, -4017.944580078125, 73.88932037353515625, 4.450596809387207031, 0, 0, -0.7933511734008789, 0.608764231204986572, 120, 255, 1, 69587), -- Orb of Translocation (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+275, 555879, 0, 15969, 16645, '0', '0', 0, 8646.0751953125, -4089.107421875, 36.37177276611328125, 4.956737518310546875, 0, 0, -0.61566066741943359, 0.788011372089385986, 120, 255, 1, 69587), -- Orb of Translocation (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+276, 576609, 0, 15969, 16645, '0', '0', 0, 8847.9326171875, -4678.86962890625, 76.73128509521484375, 2.356194972991943359, 0, 0, 0.923879623413085937, 0.382683247327804565, 120, 255, 1, 69587), -- [DNT] Eversong Table 02 (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+277, 434501, 0, 15969, 16645, '0', '0', 0, 8782.521484375, -4463.533203125, 78.3115997314453125, 3.931528568267822265, 0, 0, -0.92300891876220703, 0.384778559207916259, 120, 255, 1, 69587), -- Door (Area: Wayfarer's Rest - Difficulty: 0) CreateObject1
(@OGUID+278, 549189, 0, 15969, 0, '0', '0', 0, 8557.44140625, -4744.5771484375, 23.49687767028808593, 3.926990509033203125, 0, 0, -0.92387962341308593, 0.382683247327804565, 120, 255, 1, 69587), -- The Great Vault (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+279, 551116, 0, 15969, 0, '0', '0', 0, 8548.572265625, -4732.4443359375, 21.7090606689453125, 1.762782454490661621, 0, 0, 0.771624565124511718, 0.636078238487243652, 120, 255, 1, 69587), -- Bench (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+280, 559261, 0, 15969, 0, '0', '0', 0, 8627.9052734375, -4812.421875, 16.41889190673828125, 5.619962215423583984, 0, 0, -0.32556724548339843, 0.945518851280212402, 120, 255, 1, 69587), -- Mailbox (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+281, 559335, 0, 15969, 0, '0', '0', 0, 8561.8564453125, -4774.9150390625, 169.176544189453125, 3.691374778747558593, 0, 0, -0.96245479583740234, 0.271441996097564697, 120, 255, 1, 69587), -- Cushion (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+282, 555793, 0, 15969, 0, '0', '0', 0, 8358.7958984375, -4725.33349609375, 16.59169960021972656, 0.68067866563796997, 0, 0, 0.333806991577148437, 0.942641437053680419, 120, 255, 1, 69587), -- Mailbox (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+283, 555802, 0, 15969, 0, '0', '0', 0, 8540.5205078125, -4724.8681640625, 16.73939132690429687, 2.417279243469238281, 0, 0, 0.9351348876953125, 0.354291886091232299, 120, 255, 1, 69587), -- Mailbox (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+284, 559302, 0, 15969, 0, '0', '0', 0, 8556.47265625, -4733.5224609375, 21.70732498168945312, 1.169370889663696289, 0, 0, 0.551937103271484375, 0.833885729312896728, 120, 255, 1, 69587), -- Bench (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+285, 559212, 0, 15969, 0, '0', '0', 0, 8571.009765625, -4790.09716796875, 169.2757568359375, 1.413715124130249023, 0, 0, 0.649447441101074218, 0.760406434535980224, 120, 255, 1, 69587), -- Cushion (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+286, 559225, 0, 15969, 0, '0', '0', 0, 8559.7646484375, -4777.77587890625, 169.2945709228515625, 1.247910022735595703, 0, 0, 0.584249496459960937, 0.811574101448059082, 120, 255, 1, 69587), -- Cushion (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+287, 559192, 0, 15969, 0, '0', '0', 0, 8562.5107421875, -4777.28125, 169.255645751953125, 2.757613182067871093, 0, 0, 0.981626510620117187, 0.190812408924102783, 120, 255, 1, 69587), -- Cushion (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+288, 559198, 0, 15969, 0, '0', '0', 0, 8558.845703125, -4775.1943359375, 169.30157470703125, 5.855582714080810546, 0, 0, -0.21217632293701171, 0.977231383323669433, 120, 255, 1, 69587), -- Cushion (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+289, 302808, 0, 15969, 0, '0', '0', 0, 8341.482421875, -4749.58056640625, 74.02117156982421875, 5.158303737640380859, 0, 0, -0.53325271606445312, 0.845955967903137207, 120, 255, 1, 69587), -- Balloon Cluster (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+290, 559234, 0, 15969, 0, '0', '0', 0, 8636.5107421875, -4821.03662109375, 137.2111358642578125, 1.082102894783020019, 0, 0, 0.51503753662109375, 0.857167601585388183, 120, 255, 1, 69587), -- Bench (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+291, 559257, 0, 15969, 0, '0', '0', 0, 8555.9912109375, -4746.830078125, 213.125274658203125, 5.960300922393798828, 0, 0, -0.16074180603027343, 0.98699653148651123, 120, 255, 1, 69587), -- Cushion (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+292, 559344, 0, 15969, 0, '0', '0', 0, 8550.888671875, -4745.0380859375, 213.3049468994140625, 4.860745429992675781, 0, 0, -0.65275859832763671, 0.757565975189208984, 120, 255, 1, 69587), -- Cushion (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+293, 302808, 0, 15969, 0, '0', '0', 0, 8324.2158203125, -4734.4736328125, 73.9505767822265625, 0, 0, 0, 0, 1, 120, 255, 1, 69587), -- Balloon Cluster (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+294, 551520, 0, 15969, 0, '0', '0', 0, 8282.115234375, -4787.62158203125, 225.8204498291015625, 2.72271275520324707, 0, 0, 0.978147506713867187, 0.207912087440490722, 120, 255, 1, 69587), -- Cushion (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+295, 551282, 0, 15969, 0, '0', '0', 0, 8280.275390625, -4787.94775390625, 225.8888702392578125, 1.308995485305786132, 0, 0, 0.608760833740234375, 0.793353796005249023, 120, 255, 1, 69587), -- Cushion (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+296, 559379, 0, 15969, 0, '0', '0', 0, 8573.0224609375, -4786.93408203125, 169.3463897705078125, 3.865906238555908203, 0, 0, -0.9351348876953125, 0.354291886091232299, 120, 255, 1, 69587), -- Cushion (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+297, 439316, 0, 15969, 0, '0', '0', 0, 8322.6669921875, -4735.42041015625, 74.0744171142578125, 2.87662672996520996, -0.08323383331298828, -0.69351863861083984, 0.7081146240234375, 0.103332936763763427, 120, 255, 1, 69587), -- Trading Post Post (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+298, 572285, 0, 15969, 0, '0', '0', 0, 8255.5986328125, -4852.2255859375, 40.11673355102539062, 4.397064208984375, 0, 0, -0.80935955047607421, 0.587313473224639892, 120, 255, 1, 69587), -- Cushion (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+299, 551329, 0, 15969, 0, '0', '0', 0, 8278.8642578125, -4785.671875, 225.7495880126953125, 5.663594245910644531, 0, 0, -0.30486392974853515, 0.952395915985107421, 120, 255, 1, 69587), -- Cushion (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+300, 572286, 0, 15969, 0, '0', '0', 0, 8257.2197265625, -4853.93115234375, 40.11673355102539062, 2.72677779197692871, 0, 0, 0.978568077087402343, 0.205923601984977722, 120, 255, 1, 69587), -- Cushion (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+301, 559210, 0, 15969, 0, '0', '0', 0, 8551.431640625, -4749.48779296875, 213.0055694580078125, 1.823868632316589355, 0, 0, 0.790689468383789062, 0.612217426300048828, 120, 255, 1, 69587), -- Cushion (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+302, 649981, 0, 15969, 0, '0', '0', 0, 8614.833984375, -4774.1474609375, 71.2173919677734375, 0, 0, 0, 0, 1, 120, 255, 1, 69587), -- Illidari Supplies (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+303, 559186, 0, 15969, 0, '0', '0', 0, 8558.802734375, -4747.19970703125, 213.1958770751953125, 2.70525527000427246, 0, 0, 0.97629547119140625, 0.216442063450813293, 120, 255, 1, 69587), -- Cushion (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+304, 572289, 0, 15969, 0, '0', '0', 0, 8265.533203125, -4845.7607421875, 40.10102462768554687, 1.562067151069641113, 0, 0, 0.704013824462890625, 0.710186243057250976, 120, 255, 1, 69587), -- Chair (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+305, 559193, 0, 15969, 0, '0', '0', 0, 8547.8896484375, -4746.9462890625, 213.088226318359375, 6.056294918060302734, 0, 0, -0.11320209503173828, 0.993571996688842773, 120, 255, 1, 69587), -- Cushion (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+306, 559271, 0, 15969, 0, '0', '0', 0, 8572.0751953125, -4771.91845703125, 169.176544189453125, 1.021016597747802734, 0, 0, 0.488620758056640625, 0.872496306896209716, 120, 255, 1, 69587), -- Cushion (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+307, 559272, 0, 15969, 0, '0', '0', 0, 8646.291015625, -4822.66650390625, 137.2111358642578125, 1.684240221977233886, 0, 0, 0.746056556701660156, 0.665882587432861328, 120, 255, 1, 69587), -- Bench (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+308, 551143, 0, 15969, 0, '0', '0', 0, 8281.6103515625, -4784.5, 225.9454803466796875, 4.46804666519165039, 0, 0, -0.7880096435546875, 0.615662872791290283, 120, 255, 1, 69587), -- Cushion (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+309, 559280, 0, 15969, 0, '0', '0', 0, 8552.1923828125, -4747.44970703125, 213.1799163818359375, 3.115387916564941406, 0, 0, 0.999914169311523437, 0.013101960532367229, 120, 255, 1, 69587), -- Cushion (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+310, 572385, 0, 15969, 0, '0', '0', 0, 8653.1201171875, -4861.673828125, 19.44871711730957031, 2.225293636322021484, 0, 0, 0.896872520446777343, 0.442289173603057861, 120, 255, 1, 69587), -- Chair (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+311, 572387, 0, 15969, 0, '0', '0', 0, 8648.57421875, -4846.623046875, 19.835601806640625, 5.427974700927734375, 0, 0, -0.41469287872314453, 0.909961462020874023, 120, 255, 1, 69587), -- Chair (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+312, 551171, 0, 15969, 0, '0', '0', 0, 8303.7998046875, -4808.86279296875, 282.814208984375, 0.872663915157318115, 0, 0, 0.422617912292480468, 0.906307935714721679, 120, 255, 1, 69587), -- Stool (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+313, 551173, 0, 15969, 0, '0', '0', 0, 8298.9716796875, -4806.40283203125, 282.82635498046875, 1.361356139183044433, 0, 0, 0.629320144653320312, 0.77714616060256958, 120, 255, 1, 69587), -- Stool (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+314, 551448, 0, 15969, 0, '0', '0', 0, 8305.4462890625, -4826.71337890625, 282.74908447265625, 1.282819867134094238, 0, 0, 0.598325729370117187, 0.801252961158752441, 120, 255, 1, 69587), -- Cushion (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+315, 551550, 0, 15969, 0, '0', '0', 0, 8306.7861328125, -4823.921875, 282.759490966796875, 4.319693565368652343, 0, 0, -0.83146858215332031, 0.555571734905242919, 120, 255, 1, 69587), -- Cushion (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+316, 551419, 0, 15969, 0, '0', '0', 0, 8288.7001953125, -4828.73095703125, 282.847442626953125, 5.044006824493408203, 0, 0, -0.58070087432861328, 0.814117014408111572, 120, 255, 1, 69587), -- Cushion (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+317, 551366, 0, 15969, 0, '0', '0', 0, 8290.759765625, -4830.09716796875, 282.847442626953125, 3.481936931610107421, 0, 0, -0.98555564880371093, 0.169351965188980102, 120, 255, 1, 69587), -- Cushion (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+318, 581924, 0, 15969, 0, '0', '0', 0, 8483.6494140625, -4649.6640625, 38.7667388916015625, 5.011523246765136718, 0, 0, -0.59384632110595703, 0.80457848310470581, 120, 255, 1, 69587), -- Cushion (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+319, 582171, 0, 15969, 0, '0', '0', 0, 8248.54296875, -4847.712890625, 40.12928390502929687, 2.914689540863037109, 0, 0, 0.993571281433105468, 0.113208353519439697, 120, 255, 1, 69587), -- Chair (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+320, 529988, 0, 15969, 0, '0', '0', 0, 8317.416015625, -4705.1025390625, 74.48767852783203125, 0.505916059017181396, 0, 0, 0.250268936157226562, 0.96817636489868164, 120, 255, 1, 69587), -- Pet Grooming Station (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+321, 572276, 0, 15969, 0, '0', '0', 0, 8266.6953125, -4778.2431640625, 40.86771392822265625, 3.43830275535583496, 0, 0, -0.98901557922363281, 0.147811368107795715, 120, 255, 1, 69587), -- Chair (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+322, 570471, 0, 15969, 0, '0', '0', 0, 8505.4658203125, -4664.93603515625, 33.19061279296875, 5.489062309265136718, 0, 0, -0.38671016693115234, 0.922201275825500488, 120, 255, 1, 69587), -- Bench (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+323, 570473, 0, 15969, 0, '0', '0', 0, 8408.7705078125, -4665.02978515625, 33.19061279296875, 3.953172922134399414, 0, 0, -0.91879081726074218, 0.394744753837585449, 120, 255, 1, 69587), -- Bench (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+324, 574828, 0, 15969, 0, '0', '0', 0, 8626.9453125, -4761.44287109375, 29.06132698059082031, 0, 0, 0, 0, 1, 120, 255, 1, 69587), -- Stake (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+325, 625621, 0, 15969, 0, '0', '0', 0, 8462.611328125, -4664.8994140625, 38.95689773559570312, 0.170785486698150634, 0, 0, 0.08528900146484375, 0.99635624885559082, 120, 255, 1, 69587), -- Bench (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+326, 625622, 0, 15969, 0, '0', '0', 0, 8451.529296875, -4664.88916015625, 38.95689773559570312, 2.936639070510864257, 0, 0, 0.994753837585449218, 0.102297544479370117, 120, 255, 1, 69587), -- Bench (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+327, 625623, 0, 15969, 0, '0', '0', 0, 8434.9453125, -4651.85205078125, 38.89705657958984375, 1.211337685585021972, 0, 0, 0.569312095642089843, 0.822121500968933105, 120, 255, 1, 69587), -- Cushion (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+328, 584704, 0, 15969, 0, '0', '0', 0, 8258.392578125, -4789.2021484375, 33.16704940795898437, 1.588248729705810546, 0, 0, 0.713250160217285156, 0.700909554958343505, 120, 255, 1, 69587), -- Cushion (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+329, 551650, 0, 15969, 0, '0', '0', 0, 8338.623046875, -4691.47216796875, 18.81597328186035156, 0.619591057300567626, 0, 0, 0.304863929748535156, 0.952395915985107421, 120, 255, 1, 69587), -- Bench (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+330, 565101, 0, 15969, 0, '0', '0', 0, 8315.7392578125, -4700.9306640625, 74.41489410400390625, 4.225935935974121093, 0, 0, -0.85659027099609375, 0.515997231006622314, 120, 255, 1, 69587), -- Collector's Cache (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+331, 574422, 0, 15969, 0, '0', '0', 0, 8486.357421875, -4658.94140625, 38.91077804565429687, 5.511936664581298828, 0, 0, -0.37613773345947265, 0.926563739776611328, 120, 255, 1, 69587), -- Cushion (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+332, 584703, 0, 15969, 0, '0', '0', 0, 8261.205078125, -4787.0185546875, 33.23526763916015625, 3.429581403732299804, 0, 0, -0.98965072631835937, 0.143497169017791748, 120, 255, 1, 69587), -- Cushion (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+333, 551716, 0, 15969, 0, '0', '0', 0, 8240.6044921875, -4837.15625, 38.17152023315429687, 2.050761699676513671, 0, 0, 0.85491180419921875, 0.518773376941680908, 120, 255, 1, 69587), -- Chair (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+334, 551111, 0, 15969, 0, '0', '0', 0, 8326.3095703125, -4680.04150390625, 18.72185325622558593, 1.082102894783020019, 0, 0, 0.51503753662109375, 0.857167601585388183, 120, 255, 1, 69587), -- Bench (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+335, 551118, 0, 15969, 0, '0', '0', 0, 8300.3603515625, -4675.82275390625, 18.66669464111328125, 0.532324969768524169, 0, 0, 0.263031005859375, 0.96478736400604248, 120, 255, 1, 69587), -- Cushion (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+336, 551130, 0, 15969, 0, '0', '0', 0, 8255.8046875, -4731.046875, 72.1561431884765625, 0.034906249493360519, 0, 0, 0.017452239990234375, 0.999847710132598876, 120, 255, 1, 69587), -- Bench (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+337, 581925, 0, 15969, 0, '0', '0', 0, 8502.2060546875, -4645.26953125, 38.67995452880859375, 3.629802465438842773, 0, 0, -0.97035408020019531, 0.241687744855880737, 120, 255, 1, 69587), -- Cushion (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+338, 551200, 0, 15969, 0, '0', '0', 0, 8309.16015625, -4670.3818359375, 18.66669464111328125, 0.026179106906056404, 0, 0, 0.013089179992675781, 0.999914348125457763, 120, 255, 1, 69587), -- Cushion (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+339, 551475, 0, 15969, 0, '0', '0', 0, 8314.8408203125, -4671.7275390625, 18.66669464111328125, 2.757613182067871093, 0, 0, 0.981626510620117187, 0.190812408924102783, 120, 255, 1, 69587), -- Cushion (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+340, 551203, 0, 15969, 0, '0', '0', 0, 8287.3505859375, -4661.88525390625, 18.66670989990234375, 0.514871180057525634, 0, 0, 0.254601478576660156, 0.967046082019805908, 120, 255, 1, 69587), -- Cushion (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+341, 551700, 0, 15969, 0, '0', '0', 0, 8298.947265625, -4658.09716796875, 18.66672134399414062, 0.366517573595046997, 0, 0, 0.182234764099121093, 0.98325502872467041, 120, 255, 1, 69587), -- Cushion (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+342, 551226, 0, 15969, 0, '0', '0', 0, 8300.783203125, -4656.45654296875, 18.66672134399414062, 4.389506340026855468, 0, 0, -0.81157302856445312, 0.584250986576080322, 120, 255, 1, 69587), -- Cushion (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+343, 551436, 0, 15969, 0, '0', '0', 0, 8256.0224609375, -4714.9150390625, 72.1717681884765625, 0.017452461645007133, 0, 0, 0.008726119995117187, 0.999961912631988525, 120, 255, 1, 69587), -- Bench (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+344, 582170, 0, 15969, 0, '0', '0', 0, 8245.212890625, -4849.431640625, 40.12928390502929687, 0.863936781883239746, 0, 0, 0.418659210205078125, 0.908143401145935058, 120, 255, 1, 69587), -- Chair (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+345, 572275, 0, 15969, 0, '0', '0', 0, 8253.240234375, -4777.7197265625, 33.02534103393554687, 0.322882443666458129, 0, 0, 0.160740852355957031, 0.986996650695800781, 120, 255, 1, 69587), -- Chair (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+346, 572277, 0, 15969, 0, '0', '0', 0, 8258.6796875, -4777.4326171875, 33.02534103393554687, 2.67034769058227539, 0, 0, 0.972369194030761718, 0.233448356389999389, 120, 255, 1, 69587), -- Chair (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+347, 551191, 0, 15969, 0, '0', '0', 0, 8313.4267578125, -4668.24462890625, 18.66669464111328125, 4.232427597045898437, 0, 0, -0.85491085052490234, 0.518774926662445068, 120, 255, 1, 69587), -- Cushion (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+348, 551194, 0, 15969, 0, '0', '0', 0, 8304.3603515625, -4663.61279296875, 18.66669464111328125, 1.169370889663696289, 0, 0, 0.551937103271484375, 0.833885729312896728, 120, 255, 1, 69587), -- Cushion (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+349, 570472, 0, 15969, 0, '0', '0', 0, 8518.9775390625, -4645.3662109375, 33.19061279296875, 5.838126659393310546, 0, 0, -0.22069740295410156, 0.975342333316802978, 120, 255, 1, 69587), -- Bench (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+350, 551195, 0, 15969, 0, '0', '0', 0, 8303.0283203125, -4674.44091796875, 18.66669464111328125, 3.420850038528442382, 0, 0, -0.99026775360107421, 0.139175355434417724, 120, 255, 1, 69587), -- Cushion (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+351, 570477, 0, 15969, 0, '0', '0', 0, 8395.1142578125, -4645.67041015625, 33.19061279296875, 3.577930212020874023, 0, 0, -0.97629547119140625, 0.216442063450813293, 120, 255, 1, 69587), -- Bench (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+352, 551272, 0, 15969, 0, '0', '0', 0, 8301.9609375, -4657.39404296875, 18.66672134399414062, 3.394674062728881835, 0, 0, -0.99200439453125, 0.126203224062919616, 120, 255, 1, 69587), -- Cushion (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+353, 551277, 0, 15969, 0, '0', '0', 0, 8291.046875, -4654.77783203125, 18.66672134399414062, 1.754055619239807128, 0, 0, 0.768841743469238281, 0.639439105987548828, 120, 255, 1, 69587), -- Cushion (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+354, 551279, 0, 15969, 0, '0', '0', 0, 8306.0126953125, -4660.4130859375, 18.67877960205078125, 3.813550949096679687, 0, 0, -0.94408798217773437, 0.329693645238876342, 120, 255, 1, 69587), -- Cushion (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+355, 551562, 0, 15969, 0, '0', '0', 0, 8292.1376953125, -4653.203125, 18.66671371459960937, 2.827429771423339843, 0, 0, 0.987688064575195312, 0.156436234712600708, 120, 255, 1, 69587), -- Cushion (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+356, 625624, 0, 15969, 0, '0', '0', 0, 8422.8447265625, -4641.91845703125, 38.8278961181640625, 0.148377105593681335, 0, 0, 0.074120521545410156, 0.997249305248260498, 120, 255, 1, 69587), -- Cushion (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+357, 551080, 0, 15969, 0, '0', '0', 0, 8240.4140625, -4833.54150390625, 38.18888092041015625, 4.345873355865478515, 0, 0, -0.82412528991699218, 0.566407561302185058, 120, 255, 1, 69587), -- Chair (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+358, 625625, 0, 15969, 0, '0', '0', 0, 8423.4765625, -4638.39697265625, 38.8026123046875, 5.035696029663085937, 0, 0, -0.58407878875732421, 0.811696946620941162, 120, 255, 1, 69587), -- Cushion (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+359, 551567, 0, 15969, 0, '0', '0', 0, 8311.59765625, -4667.9306640625, 18.66669464111328125, 4.738572597503662109, 0, 0, -0.69778919219970703, 0.716303169727325439, 120, 255, 1, 69587), -- Cushion (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+360, 551583, 0, 15969, 0, '0', '0', 0, 8300.513671875, -4659.2744140625, 18.67872047424316406, 1.378809213638305664, 0, 0, 0.636077880859375, 0.771624863147735595, 120, 255, 1, 69587), -- Cushion (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+361, 551393, 0, 15969, 0, '0', '0', 0, 8288.9814453125, -4662.92529296875, 18.66671371459960937, 1.535889506340026855, 0, 0, 0.694658279418945312, 0.719339847564697265, 120, 255, 1, 69587), -- Cushion (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+362, 551056, 0, 15969, 0, '0', '0', 0, 8290.44140625, -4660.0556640625, 18.6667022705078125, 3.665196180343627929, 0, 0, -0.96592521667480468, 0.258821308612823486, 120, 255, 1, 69587), -- Cushion (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+363, 551059, 0, 15969, 0, '0', '0', 0, 8560.7099609375, -4645.033203125, 20.89239883422851562, 5.619962215423583984, 0, 0, -0.32556724548339843, 0.945518851280212402, 120, 255, 1, 69587), -- Bench (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+364, 551621, 0, 15969, 0, '0', '0', 0, 8306.4990234375, -4662.77099609375, 18.66669464111328125, 2.42600250244140625, 0, 0, 0.936671257019042968, 0.350209832191467285, 120, 255, 1, 69587), -- Cushion (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+365, 574423, 0, 15969, 0, '0', '0', 0, 8491.171875, -4641.19677734375, 38.87060165405273437, 3.090287208557128906, 0, 0, 0.999670982360839843, 0.025649875402450561, 120, 255, 1, 69587), -- Cushion (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+366, 551147, 0, 15969, 0, '0', '0', 0, 8236.765625, -4807.93408203125, 31.66852569580078125, 2.007128477096557617, 0, 0, 0.84339141845703125, 0.537299633026123046, 120, 255, 1, 69587), -- Chair (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+367, 574424, 0, 15969, 0, '0', '0', 0, 8499.8740234375, -4647.87548828125, 38.84256744384765625, 1.498587489128112792, 0, 0, 0.681121826171875, 0.73217010498046875, 120, 255, 1, 69587), -- Cushion (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+368, 551644, 0, 15969, 0, '0', '0', 0, 8301.2021484375, -4673.59375, 18.66669464111328125, 4.773479461669921875, 0, 0, -0.6851816177368164, 0.728372275829315185, 120, 255, 1, 69587), -- Cushion (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+369, 551440, 0, 15969, 0, '0', '0', 0, 8287.5966796875, -4649.515625, 18.66669464111328125, 5.6985015869140625, 0, 0, -0.28819561004638671, 0.957571566104888916, 120, 255, 1, 69587), -- Cushion (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+370, 570475, 0, 15969, 0, '0', '0', 0, 8394.9482421875, -4587.98974609375, 33.19061279296875, 2.731434822082519531, 0, 0, 0.979044914245605468, 0.203644454479217529, 120, 255, 1, 69587), -- Bench (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+371, 570476, 0, 15969, 0, '0', '0', 0, 8408.6611328125, -4568.41845703125, 33.19061279296875, 2.347463846206665039, 0, 0, 0.922200202941894531, 0.386712819337844848, 120, 255, 1, 69587), -- Bench (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+372, 570478, 0, 15969, 0, '0', '0', 0, 8519.1015625, -4587.9287109375, 33.19061279296875, 0.401424884796142578, 0, 0, 0.199367523193359375, 0.979924798011779785, 120, 255, 1, 69587), -- Bench (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+373, 551281, 0, 15969, 0, '0', '0', 0, 8289.529296875, -4648.515625, 18.66669464111328125, 5.017827033996582031, 0, 0, -0.59130764007568359, 0.806446075439453125, 120, 255, 1, 69587), -- Cushion (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+374, 551593, 0, 15969, 0, '0', '0', 0, 8347.119140625, -4598.12353515625, 20.83960914611816406, 2.181660413742065429, 0, 0, 0.887010574340820312, 0.461749136447906494, 120, 255, 1, 69587), -- Chair (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+375, 574391, 0, 15969, 0, '0', '0', 0, 8460.0146484375, -4562.6005859375, 38.97217559814453125, 1.023227334022521972, 0, 0, 0.489584922790527343, 0.871955633163452148, 120, 255, 1, 69587), -- Bench (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+376, 574392, 0, 15969, 0, '0', '0', 0, 8453.8505859375, -4562.62646484375, 38.97217559814453125, 2.119418621063232421, 0, 0, 0.872213363647460937, 0.489125609397888183, 120, 255, 1, 69587), -- Bench (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+377, 551660, 0, 15969, 0, '0', '0', 0, 8291.6298828125, -4649.1943359375, 18.66669464111328125, 3.918267250061035156, 0, 0, -0.92553997039794921, 0.378649920225143432, 120, 255, 1, 69587), -- Cushion (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+378, 572402, 0, 15969, 0, '0', '0', 0, 8285.0537109375, -4545.6953125, 19.49954032897949218, 1.797688722610473632, 0, 0, 0.7826080322265625, 0.622514784336090087, 120, 255, 1, 69587), -- Chair (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+379, 572404, 0, 15969, 16079, '0', '0', 0, 8290.2724609375, -4531.14892578125, 19.47735595703125, 6.012660503387451171, 0, 0, -0.13485050201416015, 0.990865945816040039, 120, 255, 1, 69587), -- Chair (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+380, 572414, 0, 15969, 16079, '0', '0', 0, 8279.8056640625, -4541.0830078125, 19.46398544311523437, 6.222098827362060546, 0, 0, -0.03053855895996093, 0.999533593654632568, 120, 255, 1, 69587), -- Chair (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+381, 578628, 0, 15969, 0, '0', '0', 0, 8333.17578125, -4536.673828125, 18.79378318786621093, 5.145366668701171875, 0, 0, -0.53871345520019531, 0.842489063739776611, 120, 255, 1, 69587), -- [DNT] Punching Bag (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+382, 551485, 0, 15969, 0, '0', '0', 0, 8325.0673828125, -4539.98779296875, 18.79600715637207031, 5.314530372619628906, 0, 0, -0.46561336517333984, 0.884988248348236083, 120, 255, 1, 69587), -- Bench (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+383, 555805, 0, 15969, 0, '0', '0', 0, 8296.404296875, -4543.88916015625, 109.7860031127929687, 0.401426851749420166, 0, 0, 0.199368476867675781, 0.979924619197845458, 120, 255, 1, 69587), -- Chair (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+384, 551711, 0, 15969, 0, '0', '0', 0, 8299.2216796875, -4563.111328125, 18.81601142883300781, 5.480336666107177734, 0, 0, -0.39072990417480468, 0.920505404472351074, 120, 255, 1, 69587), -- Bench (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+385, 551531, 0, 15969, 0, '0', '0', 0, 8202.099609375, -4813.70849609375, 121.8238296508789062, 5.253444671630859375, 0, 0, -0.49242210388183593, 0.870356500148773193, 120, 255, 1, 69587), -- Chair (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+386, 551270, 0, 15969, 0, '0', '0', 0, 8202.1083984375, -4817.27099609375, 121.8266830444335937, 1.247910022735595703, 0, 0, 0.584249496459960937, 0.811574101448059082, 120, 255, 1, 69587), -- Chair (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+387, 551287, 0, 15969, 0, '0', '0', 0, 8252.5205078125, -4567.51220703125, 19.14150619506835937, 4.188796043395996093, 0, 0, -0.86602401733398437, 0.500002384185791015, 120, 255, 1, 69587), -- Bench (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+388, 551236, 0, 15969, 0, '0', '0', 0, 8459.34375, -4544.3662109375, 196.0952911376953125, 0.27925160527229309, 0, 0, 0.139172554016113281, 0.990268170833587646, 120, 255, 1, 69587), -- Cushion (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+389, 551245, 0, 15969, 16079, '0', '0', 0, 8340.0439453125, -4525.921875, 18.79602813720703125, 5.829400539398193359, 0, 0, -0.22495079040527343, 0.974370121955871582, 120, 255, 1, 69587), -- Bench (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+390, 551588, 0, 15969, 0, '0', '0', 0, 8189.59619140625, -4680.1806640625, 18.66666603088378906, 0.026182921603322029, 0, 0, 0.013091087341308593, 0.999914288520812988, 120, 255, 1, 69587), -- Bench (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+391, 551603, 0, 15969, 0, '0', '0', 0, 8189.80908203125, -4688.5712890625, 18.66666603088378906, 0.026182921603322029, 0, 0, 0.013091087341308593, 0.999914288520812988, 120, 255, 1, 69587), -- Bench (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+392, 551563, 0, 15969, 16079, '0', '0', 0, 8242.6162109375, -4557.876953125, 19.13972282409667968, 3.743737697601318359, 0, 0, -0.95501899719238281, 0.296544641256332397, 120, 255, 1, 69587), -- Bench (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+393, 616728, 0, 15969, 16079, '0', '0', 0, 8308.8955078125, -4521.87841796875, 22.7134552001953125, 0.497418016195297241, 0, 0, 0.246152877807617187, 0.969231009483337402, 120, 255, 1, 69587), -- Mirror (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+394, 616729, 0, 15969, 16079, '0', '0', 0, 8306.6455078125, -4518.59765625, 22.7134552001953125, 0.733036220073699951, 0, 0, 0.358366966247558593, 0.93358081579208374, 120, 255, 1, 69587), -- Mirror (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+395, 555811, 0, 15969, 0, '0', '0', 0, 8298.8720703125, -4541.2412109375, 109.7860031127929687, 4.389506340026855468, 0, 0, -0.81157302856445312, 0.584250986576080322, 120, 255, 1, 69587), -- Chair (Area: 0 - Difficulty: 0) CreateObject1
(@OGUID+396, 584704, 0, 15969, 16079, '0', '0', 0, 8150.62890625, -4821.59375, 53.7189483642578125, 3.159062385559082031, 0, 0, -0.99996185302734375, 0.008734640665352344, 120, 255, 1, 69587), -- Cushion (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+397, 572411, 0, 15969, 16079, '0', '0', 0, 8268.91015625, -4500.02587890625, 15.73819446563720703, 0.087264090776443481, 0, 0, 0.043618202209472656, 0.999048292636871337, 120, 255, 1, 69587), -- Chair (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+398, 551477, 0, 15969, 16079, '0', '0', 0, 8183.8984375, -4837.95654296875, 51.71131515502929687, 3.150327444076538085, 0, 0, -0.99999046325683593, 0.004367320332676172, 120, 255, 1, 69587), -- Bench (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+399, 584703, 0, 15969, 16079, '0', '0', 0, 8148.4453125, -4818.78125, 53.78717041015625, 5.000370502471923828, 0, 0, -0.59832382202148437, 0.80125439167022705, 120, 255, 1, 69587), -- Cushion (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+400, 551547, 0, 15969, 16079, '0', '0', 0, 8180.21630859375, -4834.83154296875, 51.73265838623046875, 4.729844093322753906, 0, 0, -0.70090866088867187, 0.713251054286956787, 120, 255, 1, 69587), -- Bench (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+401, 551240, 0, 15969, 16079, '0', '0', 0, 8190.939453125, -4545.1025390625, 18.66666603088378906, 6.274463176727294921, 0, 0, -0.00436115264892578, 0.999990463256835937, 120, 255, 1, 69587), -- Bench (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+402, 551615, 0, 15969, 16079, '0', '0', 0, 8201.3046875, -4569.98974609375, 18.66671180725097656, 5.977754592895507812, 0, 0, -0.15212249755859375, 0.988361656665802001, 120, 255, 1, 69587), -- Stool (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+403, 572420, 0, 15969, 16079, '0', '0', 0, 8272.8388671875, -4505.63232421875, 15.73819446563720703, 1.012289404869079589, 0, 0, 0.484808921813964843, 0.87462007999420166, 120, 255, 1, 69587), -- Chair (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+404, 551069, 0, 15969, 16079, '0', '0', 0, 8190.8583984375, -4553.4931640625, 18.66666603088378906, 6.274463176727294921, 0, 0, -0.00436115264892578, 0.999990463256835937, 120, 255, 1, 69587), -- Bench (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+405, 578628, 0, 15969, 16079, '0', '0', 0, 8203.248046875, -4538.328125, 18.66655921936035156, 5.286824226379394531, 0, 0, -0.47782802581787109, 0.878453373908996582, 120, 255, 1, 69587), -- [DNT] Punching Bag (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+406, 616730, 0, 15969, 16079, '0', '0', 0, 8303.5927734375, -4515.98779296875, 22.7134552001953125, 0.942476630210876464, 0, 0, 0.453989982604980468, 0.891006767749786376, 120, 255, 1, 69587), -- Mirror (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+407, 551145, 0, 15969, 16079, '0', '0', 0, 8238.5947265625, -4545.45849609375, 19.14492225646972656, 3.115387916564941406, 0, 0, 0.999914169311523437, 0.013101960532367229, 120, 255, 1, 69587), -- Bench (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+408, 555810, 0, 15969, 16079, '0', '0', 0, 8273.853515625, -4516.921875, 112.0688095092773437, 3.665196180343627929, 0, 0, -0.96592521667480468, 0.258821308612823486, 120, 255, 1, 69587), -- Chair (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+409, 555812, 0, 15969, 16079, '0', '0', 0, 8271.7265625, -4519.8505859375, 112.0688095092773437, 1.370081901550292968, 0, 0, 0.632704734802246093, 0.774393141269683837, 120, 255, 1, 69587), -- Chair (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+410, 551643, 0, 15969, 16079, '0', '0', 0, 8142.7177734375, -4599.8037109375, 23.22536659240722656, 5.192357540130615234, 0, 0, -0.51877212524414062, 0.85491257905960083, 120, 255, 1, 69587), -- Bench (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+411, 551163, 0, 15969, 16079, '0', '0', 0, 8142.923828125, -4633.76220703125, 23.23988533020019531, 1.125736594200134277, 0, 0, 0.533614158630371093, 0.845728039741516113, 120, 255, 1, 69587), -- Bench (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+412, 551719, 0, 15969, 16079, '0', '0', 0, 8132.29541015625, -4842.15478515625, 51.73084259033203125, 0.488691210746765136, 0, 0, 0.241921424865722656, 0.970295846462249755, 120, 255, 1, 69587), -- Chair (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+413, 572413, 0, 15969, 16079, '0', '0', 0, 8266.998046875, -4473.25634765625, 13.15698528289794921, 4.38950347900390625, 0, 0, -0.81157398223876953, 0.584249675273895263, 120, 255, 1, 69587), -- Chair (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+414, 551208, 0, 15969, 16079, '0', '0', 0, 8091.80712890625, -4602.57666015625, 23.20481300354003906, 4.537858963012695312, 0, 0, -0.76604366302490234, 0.642788589000701904, 120, 255, 1, 69587), -- Bench (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+415, 551214, 0, 15969, 16079, '0', '0', 0, 8093.9765625, -4631.61962890625, 23.20667266845703125, 1.762782454490661621, 0, 0, 0.771624565124511718, 0.636078238487243652, 120, 255, 1, 69587), -- Bench (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+416, 558120, 0, 15969, 16079, '0', '0', 0, 8126.09228515625, -4498.29345703125, 95.5991973876953125, 4.939284324645996093, 0, 0, -0.6225137710571289, 0.78260880708694458, 120, 255, 1, 69587), -- Bench (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+417, 551445, 0, 15969, 16079, '0', '0', 0, 8251.0302734375, -4478.33154296875, 59.14539337158203125, 3.141592741012573242, 0, 0, -1, 0, 120, 255, 1, 69587), -- Bench (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+418, 555912, 0, 15969, 16079, '0', '0', 0, 8155.95751953125, -4499.79150390625, 93.3812408447265625, 1.444894313812255859, 0, 0, 0.661222457885742187, 0.750189900398254394, 120, 255, 1, 69587), -- Flame of the Sunreavers (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+419, 572275, 0, 15969, 16079, '0', '0', 0, 8139.146484375, -4826.74609375, 53.57724380493164062, 1.893682122230529785, 0, 0, 0.811573982238769531, 0.584249675273895263, 120, 255, 1, 69587), -- Chair (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+420, 572276, 0, 15969, 16079, '0', '0', 0, 8139.669921875, -4813.291015625, 61.41961669921875, 5.009094715118408203, 0, 0, -0.59482288360595703, 0.80385679006576538, 120, 255, 1, 69587), -- Chair (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+421, 572277, 0, 15969, 16079, '0', '0', 0, 8138.859375, -4821.306640625, 53.57724380493164062, 4.241153717041015625, 0, 0, -0.85263919830322265, 0.522500097751617431, 120, 255, 1, 69587), -- Chair (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+422, 537196, 0, 15969, 16079, '0', '0', 0, 8161.75732421875, -4844.1982421875, 154.41497802734375, 3.894861221313476562, 0, 0, -0.92990779876708984, 0.367792725563049316, 120, 255, 1, 69587), -- Bench (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+423, 572416, 0, 15969, 16079, '0', '0', 0, 8258.6015625, -4478.1552734375, 13.16813182830810546, 6.265733242034912109, 0, 0, -0.00872611999511718, 0.999961912631988525, 120, 255, 1, 69587), -- Chair (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+424, 551362, 0, 15969, 16079, '0', '0', 0, 8134.86962890625, -4839.9306640625, 51.72623825073242187, 4.049167633056640625, 0, 0, -0.89879322052001953, 0.438372820615768432, 120, 255, 1, 69587), -- Chair (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+425, 573683, 0, 15969, 16079, '0', '0', 0, 8119.24609375, -4486.54248046875, 70.60211944580078125, 5.218533515930175781, 0, 0, -0.5075387954711914, 0.861628890037536621, 120, 255, 1, 69587), -- Chair (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+426, 573684, 0, 15969, 16079, '0', '0', 0, 8113.13134765625, -4485.15673828125, 70.63361358642578125, 2.024578809738159179, 0, 0, 0.848047256469726562, 0.529920578002929687, 120, 255, 1, 69587), -- Chair (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+427, 573685, 0, 15969, 16079, '0', '0', 0, 8107.36669921875, -4481.39306640625, 95.55410003662109375, 1.431170582771301269, 0, 0, 0.65605926513671875, 0.754709422588348388, 120, 255, 1, 69587), -- Cushion (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+428, 573686, 0, 15969, 16079, '0', '0', 0, 8118.45703125, -4471.5810546875, 95.55181884765625, 0.427604883909225463, 0, 0, 0.212177276611328125, 0.977231204509735107, 120, 255, 1, 69587), -- Cushion (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+429, 573687, 0, 15969, 16079, '0', '0', 0, 8118.28369140625, -4464.24169921875, 95.5369110107421875, 1.780233979225158691, 0, 0, 0.7771453857421875, 0.629321098327636718, 120, 255, 1, 69587), -- Chair (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+430, 573688, 0, 15969, 16079, '0', '0', 0, 8106.1513671875, -4479.24072265625, 95.55410003662109375, 6.152287960052490234, 0, 0, -0.06540203094482421, 0.997859001159667968, 120, 255, 1, 69587), -- Cushion (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+431, 573689, 0, 15969, 16079, '0', '0', 0, 8121.341796875, -4470.45263671875, 95.55181884765625, 3.673924207687377929, 0, 0, -0.96478652954101562, 0.263034075498580932, 120, 255, 1, 69587), -- Cushion (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+432, 573690, 0, 15969, 16079, '0', '0', 0, 8127.767578125, -4474.24560546875, 95.61322784423828125, 2.199114561080932617, 0, 0, 0.8910064697265625, 0.453990638256072998, 120, 255, 1, 69587), -- Chair (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+433, 573691, 0, 15969, 16079, '0', '0', 0, 8136.857421875, -4480.06689453125, 95.5445709228515625, 0.820303261280059814, 0, 0, 0.398748397827148437, 0.917060375213623046, 120, 255, 1, 69587), -- Chair (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+434, 573692, 0, 15969, 16079, '0', '0', 0, 8121.173828125, -4484.73486328125, 95.6045074462890625, 0.104719325900077819, 0, 0, 0.052335739135742187, 0.998629570007324218, 120, 255, 1, 69587), -- Chair (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+435, 620533, 0, 15969, 16079, '0', '0', 0, 8118.10400390625, -4478.77099609375, 80.50643157958984375, 0, 0, 0, 0, 1, 120, 255, 1, 69587), -- Lost Page (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+436, 551706, 0, 15969, 16079, '0', '0', 0, 8087.6181640625, -4498.390625, 68.07872772216796875, 5.331984519958496093, 0, 0, -0.45787239074707031, 0.889017939567565917, 120, 255, 1, 69587), -- Chair (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+437, 558118, 0, 15969, 16079, '0', '0', 0, 8100.3837890625, -4482.109375, 95.5991973876953125, 3.316144466400146484, 0, 0, -0.99619388580322265, 0.087165042757987976, 120, 255, 1, 69587), -- Bench (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+438, 558119, 0, 15969, 16079, '0', '0', 0, 8117.6240234375, -4456.54150390625, 95.5991973876953125, 1.762782454490661621, 0, 0, 0.771624565124511718, 0.636078238487243652, 120, 255, 1, 69587), -- Bench (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+439, 558121, 0, 15969, 16079, '0', '0', 0, 8142.21728515625, -4473.27978515625, 95.5991973876953125, 0.174532130360603332, 0, 0, 0.087155342102050781, 0.996194720268249511, 120, 255, 1, 69587), -- Bench (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+440, 551446, 0, 15969, 16079, '0', '0', 0, 8081.83251953125, -4489.33349609375, 68.0790863037109375, 2.268925428390502929, 0, 0, 0.906307220458984375, 0.422619491815567016, 120, 255, 1, 69587), -- Chair (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+441, 555866, 0, 15969, 16079, '0', '0', 0, 8108.5322265625, -4464.10595703125, 70.34564971923828125, 2.841138362884521484, 0, 0, 0.988737106323242187, 0.149662777781486511, 120, 255, 1, 69587), -- Sunsilver Accord (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+442, 555867, 0, 15969, 16079, '0', '0', 0, 8104.533203125, -4470.1875, 70.34564971923828125, 2.436566591262817382, 0, 0, 0.938508033752441406, 0.345257401466369628, 120, 255, 1, 69587), -- Sunsilver Accord (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+443, 556435, 0, 15969, 16079, '0', '0', 0, 8120.76220703125, -4490.9130859375, 95.61318206787109375, 2.025241374969482421, 0, 0, 0.848222732543945312, 0.529639661312103271, 120, 255, 1, 69587), -- Brazier (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+444, 556435, 0, 15969, 16079, '0', '0', 0, 8109.142578125, -4483.35400390625, 95.61334991455078125, 0, 0, 0, 0, 1, 120, 255, 1, 69587), -- Brazier (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+445, 551649, 0, 15969, 16079, '0', '0', 0, 8089.556640625, -4501.74853515625, 68.0790863037109375, 2.12057352066040039, 0, 0, 0.872495651245117187, 0.488621890544891357, 120, 255, 1, 69587), -- Chair (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+446, 551402, 0, 15969, 16079, '0', '0', 0, 8079.8115234375, -4485.80908203125, 68.07881927490234375, 5.192357540130615234, 0, 0, -0.51877212524414062, 0.85491257905960083, 120, 255, 1, 69587), -- Chair (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+447, 556438, 0, 15969, 16079, '0', '0', 0, 8112.41064453125, -4491.5244140625, 95.6265411376953125, 2.59240126609802246, 0, 0, 0.962534904479980468, 0.271157830953598022, 120, 255, 1, 69587), -- Desk (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+448, 573679, 0, 15969, 16079, '0', '0', 0, 8128.18115234375, -4471.1484375, 70.70986175537109375, 0.034904342144727706, 0, 0, 0.017451286315917968, 0.999847710132598876, 120, 255, 1, 69587), -- Chair (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+449, 573681, 0, 15969, 16079, '0', '0', 0, 8118.59423828125, -4476.61962890625, 80.48258209228515625, 0.942476630210876464, 0, 0, 0.453989982604980468, 0.891006767749786376, 120, 255, 1, 69587), -- Chair (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+450, 551458, 0, 15969, 16079, '0', '0', 0, 8176.9697265625, -4452.7119140625, 68.20639801025390625, 5.331982135772705078, 0, 0, -0.45787334442138671, 0.889017403125762939, 120, 255, 1, 69587), -- Chair (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+451, 551133, 0, 15969, 16079, '0', '0', 0, 8174.0009765625, -4458.69775390625, 68.20639801025390625, 4.782207965850830078, 0, 0, -0.68199634552001953, 0.731355607509613037, 120, 255, 1, 69587), -- Chair (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+452, 551231, 0, 15969, 16079, '0', '0', 0, 8182.02587890625, -4473.8212890625, 68.20639801025390625, 6.257006168365478515, 0, 0, -0.01308917999267578, 0.999914348125457763, 120, 255, 1, 69587), -- Bench (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+453, 551186, 0, 15969, 16079, '0', '0', 0, 8075.673828125, -4475.765625, 68.078765869140625, 2.015855789184570312, 0, 0, 0.845727920532226562, 0.533614337444305419, 120, 255, 1, 69587), -- Chair (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+454, 551271, 0, 15969, 16079, '0', '0', 0, 8074.486328125, -4471.85595703125, 68.07869720458984375, 4.913105964660644531, 0, 0, -0.63270378112792968, 0.774393916130065917, 120, 255, 1, 69587), -- Chair (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+455, 555910, 0, 15969, 16079, '0', '0', 0, 8139.51123046875, -4449.5849609375, 79.84386444091796875, 2.99937295913696289, 0, 0, 0.997472763061523437, 0.07104995846748352, 120, 255, 1, 69587), -- Flame of the Covenant (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+456, 551093, 0, 15969, 16079, '0', '0', 0, 8176.8681640625, -4467.7587890625, 68.20639801025390625, 0.706858277320861816, 0, 0, 0.346117019653320312, 0.938191354274749755, 120, 255, 1, 69587), -- Chair (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+457, 551063, 0, 15969, 16079, '0', '0', 0, 8178.98876953125, -4455.98974609375, 68.20639801025390625, 2.12057352066040039, 0, 0, 0.872495651245117187, 0.488621890544891357, 120, 255, 1, 69587), -- Chair (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+458, 551067, 0, 15969, 16079, '0', '0', 0, 8173.96630859375, -4462.845703125, 68.20639801025390625, 1.544615507125854492, 0, 0, 0.697790145874023437, 0.716302275657653808, 120, 255, 1, 69587), -- Chair (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+459, 551618, 0, 15969, 16079, '0', '0', 0, 8179.23779296875, -4464.77587890625, 68.20639801025390625, 4.27606058120727539, 0, 0, -0.84339046478271484, 0.537301182746887207, 120, 255, 1, 69587), -- Chair (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+460, 556435, 0, 15969, 16079, '0', '0', 0, 8094.12158203125, -4467.96728515625, 68.0787200927734375, 2.025241374969482421, 0, 0, 0.848222732543945312, 0.529639661312103271, 120, 255, 1, 69587), -- Brazier (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+461, 619626, 0, 15969, 16079, '0', '0', 0, 8283.3603515625, -3902.94091796875, 291.8853759765625, 0.263683617115020751, 0, 0, 0.131460189819335937, 0.991321444511413574, 120, 255, 1, 69587), -- Vista Point (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+462, 551388, 0, 15969, 16079, '0', '0', 0, 8109.16064453125, -4440.36962890625, 68.07877349853515625, 3.316144466400146484, 0, 0, -0.99619388580322265, 0.087165042757987976, 120, 255, 1, 69587), -- Chair (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+463, 578972, 0, 15969, 16079, '0', '0', 0, 8014.29345703125, -4569.96875, 23.33860588073730468, 6.024159431457519531, 0, 0, -0.1291513442993164, 0.991624891757965087, 120, 255, 1, 69587), -- Delivery Crate (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+464, 551383, 0, 15969, 16079, '0', '0', 0, 8009.359375, -4666.82666015625, 23.24441909790039062, 1.387535810470581054, 0, 0, 0.639438629150390625, 0.768842101097106933, 120, 255, 1, 69587), -- Bench (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+465, 551698, 0, 15969, 16079, '0', '0', 0, 8108.1416015625, -4428.61279296875, 68.0788726806640625, 3.080448389053344726, 0, 0, 0.999532699584960937, 0.030567342415452003, 120, 255, 1, 69587), -- Chair (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+466, 551427, 0, 15969, 16079, '0', '0', 0, 8101.09814453125, -4432.4287109375, 68.078887939453125, 4.424414634704589843, 0, 0, -0.80125236511230468, 0.598326563835144042, 120, 255, 1, 69587), -- Chair (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+467, 551434, 0, 15969, 16079, '0', '0', 0, 8100.64697265625, -4436.1650390625, 68.07889556884765625, 1.684243083000183105, 0, 0, 0.746057510375976562, 0.665881514549255371, 120, 255, 1, 69587), -- Chair (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+468, 650247, 0, 15969, 16079, '0', '0', 0, 8001.734375, -4200.02099609375, 57.29360580444335937, 2.207840442657470703, 0, 0, 0.892978668212890625, 0.450098991394042968, 120, 255, 1, 69587), -- 650247 (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+469, 650248, 0, 15969, 16079, '0', '0', 0, 8001.734375, -4200.02099609375, 57.29360580444335937, 2.207840442657470703, 0, 0, 0.892978668212890625, 0.450098991394042968, 120, 255, 1, 69587), -- 650248 (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+470, 650249, 0, 15969, 16079, '0', '0', 0, 8001.734375, -4200.02099609375, 57.29360580444335937, 2.207840442657470703, 0, 0, 0.892978668212890625, 0.450098991394042968, 120, 255, 1, 69587), -- 650249 (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+471, 578972, 0, 15969, 16079, '0', '0', 0, 8015.9375, -4572.21533203125, 23.20486068725585937, 5.875726699829101562, 0, 0, -0.20232295989990234, 0.979318857192993164, 120, 255, 1, 69587), -- Delivery Crate (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+472, 578972, 0, 15969, 16079, '0', '0', 0, 8012.1474609375, -4569.8125, 23.4208984375, 5.378379344940185546, 0, 0, -0.43712806701660156, 0.899399280548095703, 120, 255, 1, 69587), -- Delivery Crate (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+473, 621806, 0, 15969, 16079, '0', '0', 0, 7985.24462890625, -4759.09033203125, 18.41409492492675781, 3.682650327682495117, 0, 0, -0.96362972259521484, 0.26724100112915039, 120, 255, 1, 69587), -- Bench (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+474, 551569, 0, 15969, 16079, '0', '0', 0, 8009.59814453125, -4567.61962890625, 23.24441909790039062, 4.878198146820068359, 0, 0, -0.64612293243408203, 0.763233363628387451, 120, 255, 1, 69587), -- Bench (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+475, 642920, 0, 15969, 16079, '0', '0', 0, 8001.734375, -4200.02099609375, 57.29360580444335937, 2.207840442657470703, 0, 0, 0.892978668212890625, 0.450098991394042968, 120, 255, 1, 69587), -- 642920 (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+476, 642921, 0, 15969, 16079, '0', '0', 0, 8001.734375, -4200.02099609375, 57.29360580444335937, 2.207840442657470703, 0, 0, 0.892978668212890625, 0.450098991394042968, 120, 255, 1, 69587), -- 642921 (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+477, 642922, 0, 15969, 16079, '0', '0', 0, 8001.734375, -4200.02099609375, 57.29360580444335937, 2.207840442657470703, 0, 0, 0.892978668212890625, 0.450098991394042968, 120, 255, 1, 69587), -- 642922 (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+478, 551513, 0, 15969, 16079, '0', '0', 0, 8101.994140625, -4415.9462890625, 68.11862945556640625, 1.736601948738098144, 0, 0, 0.763232231140136718, 0.646124243736267089, 120, 255, 1, 69587), -- Bench (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+479, 551519, 0, 15969, 16079, '0', '0', 0, 8113.06591796875, -4432.7587890625, 68.07875823974609375, 4.99164581298828125, 0, 0, -0.60181331634521484, 0.798636794090270996, 120, 255, 1, 69587), -- Chair (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+480, 578273, 0, 15969, 16079, '0', '0', 0, 8012.8505859375, -4573.7744140625, 23.20486068725585937, 0, 0, 0, 0, 1, 120, 255, 1, 69587), -- Delivery Crate (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+481, 551599, 0, 15969, 16079, '0', '0', 0, 8113.19775390625, -4436.798828125, 68.07888031005859375, 1.527163028717041015, 0, 0, 0.6915130615234375, 0.722363948822021484, 120, 255, 1, 69587), -- Chair (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+482, 551612, 0, 15969, 16079, '0', '0', 0, 8104.75, -4440.61279296875, 68.078887939453125, 6.14356088638305664, 0, 0, -0.06975555419921875, 0.997564136981964111, 120, 255, 1, 69587), -- Chair (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+483, 627029, 0, 15969, 16079, '0', '0', 0, 8001.734375, -4200.02099609375, 57.29360580444335937, 2.207840442657470703, 0, 0, 0.892978668212890625, 0.450098991394042968, 120, 255, 1, 69587), -- 627029 (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+484, 650045, 0, 15969, 16079, '0', '0', 0, 8001.734375, -4200.02099609375, 57.29360580444335937, 2.207840442657470703, 0, 0, 0.892978668212890625, 0.450098991394042968, 120, 255, 1, 69587), -- 650045 (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+485, 650046, 0, 15969, 16079, '0', '0', 0, 8001.734375, -4200.02099609375, 57.29360580444335937, 2.207840442657470703, 0, 0, 0.892978668212890625, 0.450098991394042968, 120, 255, 1, 69587), -- 650046 (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+486, 650047, 0, 15969, 16079, '0', '0', 0, 8001.734375, -4200.02099609375, 57.29360580444335937, 2.207840442657470703, 0, 0, 0.892978668212890625, 0.450098991394042968, 120, 255, 1, 69587), -- 650047 (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+487, 551327, 0, 15969, 16079, '0', '0', 0, 8084.15185546875, -4422.69775390625, 68.1094970703125, 2.042035102844238281, 0, 0, 0.852640151977539062, 0.522498607635498046, 120, 255, 1, 69587), -- Bench (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+488, 627044, 0, 15969, 16079, '0', '0', 0, 8001.734375, -4200.02099609375, 57.29360580444335937, 2.207840442657470703, 0, 0, 0.892978668212890625, 0.450098991394042968, 120, 255, 1, 69587), -- 627044 (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+489, 627045, 0, 15969, 16079, '0', '0', 0, 8001.734375, -4200.02099609375, 57.29360580444335937, 2.207840442657470703, 0, 0, 0.892978668212890625, 0.450098991394042968, 120, 255, 1, 69587), -- 627045 (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+490, 551403, 0, 15969, 16079, '0', '0', 0, 8104.39697265625, -4429.06103515625, 68.07888031005859375, 0.357791841030120849, 0, 0, 0.177943229675292968, 0.984040737152099609, 120, 255, 1, 69587), -- Chair (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+491, 556435, 0, 15969, 16079, '0', '0', 0, 8101.6552734375, -4456.2099609375, 68.07869720458984375, 0, 0, 0, 0, 1, 120, 255, 1, 69587), -- Brazier (Area: The Bazaar - Difficulty: 0) CreateObject1
(@OGUID+492, 582091, 0, 15968, 16073, '0', '0', 0, 7148.009765625, -4513.76025390625, 270.390655517578125, 1.570795774459838867, 0, 0, 0.707106590270996093, 0.707106947898864746, 120, 255, 1, 69587), -- Orb of Translocation (Area: Path of Dawn - Difficulty: 0) CreateObject1
(@OGUID+493, 619628, 0, 15968, 16073, '0', '0', 0, 7158.759765625, -3378.6494140625, 196.457000732421875, 5.353657722473144531, 0, 0, -0.448211669921875, 0.893927454948425292, 120, 255, 1, 69587), -- 619628 (Area: Path of Dawn - Difficulty: 0) CreateObject1(@OGUID+494, 619629, 0, 15968, 16073, '0', '0', 0, 6962.63037109375, -4994.5625, 419.355010986328125, 1.58854532241821289, 0, 0, 0.713354110717773437, 0.700803756713867187, 120, 255, 1, 69587), -- 619629 (Area: Path of Dawn - Difficulty: 0) CreateObject1
(@OGUID+495, 523356, 0, 15968, 16073, '0', '0', 0, 7942.5068359375, -4610.9931640625, 9.444444656372070312, 6.248281002044677734, 0, 0, -0.01745128631591796, 0.999847710132598876, 120, 255, 1, 69587), -- Bench (Area: Path of Dawn - Difficulty: 0) CreateObject1
(@OGUID+496, 523357, 0, 15968, 16073, '0', '0', 0, 7919.00634765625, -4621.29541015625, 9.496527671813964843, 3.141592741012573242, 0, 0, -1, 0, 120, 255, 1, 69587), -- Bench (Area: Path of Dawn - Difficulty: 0) CreateObject1
(@OGUID+497, 523358, 0, 15968, 16073, '0', '0', 0, 7942.12158203125, -4622.04150390625, 9.487847328186035156, 6.248281002044677734, 0, 0, -0.01745128631591796, 0.999847710132598876, 120, 255, 1, 69587), -- Bench (Area: Path of Dawn - Difficulty: 0) CreateObject1
(@OGUID+498, 523359, 0, 15968, 16073, '0', '0', 0, 7904.9677734375, -4622.04150390625, 9.399305343627929687, 6.248281002044677734, 0, 0, -0.01745128631591796, 0.999847710132598876, 120, 255, 1, 69587), -- Bench (Area: Path of Dawn - Difficulty: 0) CreateObject1
(@OGUID+499, 555879, 0, 15968, 16073, '0', '0', 0, 7229.056640625, -4884.34375, 54.65839004516601562, 3.926995515823364257, 0, 0, -0.92387866973876953, 0.38268551230430603, 120, 255, 1, 69587), -- Orb of Translocation (Area: Path of Dawn - Difficulty: 0) CreateObject1
(@OGUID+500, 520359, 0, 15968, 16073, '0', '0', 0, 7262.22119140625, -3110.8837890625, 0.028677105903625488, 5.59074258804321289, 0, 0, -0.33934593200683593, 0.94066166877746582, 120, 255, 1, 69587), -- Smuggled Cargo (Area: Path of Dawn - Difficulty: 0) CreateObject1
(@OGUID+501, 520359, 0, 15968, 16073, '0', '0', 0, 7366.9072265625, -3080.76220703125, 0.722639381885528564, 0.552516102790832519, 0, 0, 0.272757530212402343, 0.96208280324935913, 120, 255, 1, 69587), -- Smuggled Cargo (Area: Path of Dawn - Difficulty: 0) CreateObject1
(@OGUID+502, 516357, 0, 15968, 16073, '0', '0', 0, 8947.6455078125, -3527.671875, 104.2181930541992187, 3.075011014938354492, 0, 0, 0.999445915222167968, 0.033284705132246017, 120, 255, 1, 69587), -- Arcane Translocator (Area: Path of Dawn - Difficulty: 0) CreateObject1
(@OGUID+503, 516358, 0, 15968, 16073, '0', '0', 0, 9032.171875, -3447.34375, 173.342254638671875, 6.237948894500732421, 0, 0, -0.02261638641357421, 0.999744176864624023, 120, 255, 1, 69587), -- Arcane Translocator (Area: Path of Dawn - Difficulty: 0) CreateObject1
(@OGUID+504, 613944, 0, 15968, 16073, '0', '0', 0, 8131.0693359375, -5926.80029296875, 140.226959228515625, 1.893682122230529785, 0, 0, 0.811573982238769531, 0.584249675273895263, 120, 255, 1, 69587), -- Orb of Translocation (Area: Path of Dawn - Difficulty: 0) CreateObject1
(@OGUID+505, 613945, 0, 15968, 16073, '0', '0', 0, 8112.06787109375, -5832.9306640625, 76.22588348388671875, 1.980946660041809082, 0, 0, 0.836285591125488281, 0.5482940673828125, 120, 255, 1, 69587), -- Orb of Translocation (Area: Path of Dawn - Difficulty: 0) CreateObject1
(@OGUID+506, 547539, 0, 15968, 16073, '0', '0', 0, 9312.876953125, -3664.30908203125, 38.99623489379882812, 3.708826541900634765, 0, 0, -0.96004962921142578, 0.279829770326614379, 120, 255, 1, 69587), -- Runestone (Area: Path of Dawn - Difficulty: 0) CreateObject1
(@OGUID+507, 626819, 0, 15968, 16073, '0', '0', 0, 7985.84423828125, -4215.974609375, 39.60847091674804687, 2.728755474090576171, 0, 0, 0.978771209716796875, 0.204955875873565673, 120, 255, 1, 69587), -- Orb of Translocation (Area: Path of Dawn - Difficulty: 0) CreateObject1
(@OGUID+508, 626820, 0, 15968, 16073, '0', '0', 0, 7990.591796875, -4212.40380859375, 58.42574310302734375, 6.143643379211425781, 0, 0, -0.06971454620361328, 0.99756699800491333, 120, 255, 1, 69587), -- Orb of Translocation (Area: Path of Dawn - Difficulty: 0) CreateObject1
(@OGUID+509, 574981, 0, 15968, 16073, '0', '0', 0, 7640.3740234375, -4890.67041015625, 81.38820648193359375, 1.303908348083496093, 0, 0, 0.606740951538085937, 0.794899582862854003, 120, 255, 1, 69587), -- Void Smoke 04 (Area: Path of Dawn - Difficulty: 0) CreateObject1
(@OGUID+510, 574981, 0, 15968, 16073, '0', '0', 0, 7649.15966796875, -4864.89599609375, 77.045440673828125, 1.303908348083496093, 0, 0, 0.606740951538085937, 0.794899582862854003, 120, 255, 1, 69587), -- Void Smoke 04 (Area: Path of Dawn - Difficulty: 0) CreateObject1
(@OGUID+511, 547520, 0, 15968, 16073, '0', '0', 0, 6481.7177734375, -4315.38720703125, 75.7559356689453125, 6.126108169555664062, 0, 0, -0.07845783233642578, 0.996917426586151123, 120, 255, 1, 69587), -- Runestone (Area: Path of Dawn - Difficulty: 0) CreateObject1
(@OGUID+512, 523365, 0, 15968, 16073, '0', '0', 0, 7954.69189453125, -4611.34228515625, 9.399305343627929687, 3.141592741012573242, 0, 0, -1, 0, 120, 255, 1, 69587), -- Bench (Area: Path of Dawn - Difficulty: 0) CreateObject1
(@OGUID+513, 523367, 0, 15968, 16073, '0', '0', 0, 7953.86474609375, -4621.96337890625, 9.413194656372070312, 3.141592741012573242, 0, 0, -1, 0, 120, 255, 1, 69587), -- Bench (Area: Path of Dawn - Difficulty: 0) CreateObject1
(@OGUID+514, 523368, 0, 15968, 16073, '0', '0', 0, 7919.00634765625, -4610.23974609375, 9.666666984558105468, 3.141592741012573242, 0, 0, -1, 0, 120, 255, 1, 69587), -- Bench (Area: Path of Dawn - Difficulty: 0) CreateObject1
(@OGUID+515, 523369, 0, 15968, 16073, '0', '0', 0, 7905.353515625, -4610.9931640625, 9.399305343627929687, 6.248281002044677734, 0, 0, -0.01745128631591796, 0.999847710132598876, 120, 255, 1, 69587), -- Bench (Area: Path of Dawn - Difficulty: 0) CreateObject1
(@OGUID+516, 526992, 0, 15968, 16073, '0', '0', 0, 7203.9140625, -3983.57470703125, 191.680206298828125, 0.445058882236480712, 0, 0, 0.220697402954101562, 0.975342333316802978, 120, 255, 1, 69587), -- Orb of Translocation (Area: Path of Dawn - Difficulty: 0) CreateObject1
(@OGUID+517, 621805, 0, 15968, 16073, '0', '0', 0, 7964.5556640625, -4779.0693359375, 18.40901374816894531, 4.00553131103515625, 0, 0, -0.9081430435180664, 0.418660014867782592, 120, 255, 1, 69587), -- Bench (Area: Path of Dawn - Difficulty: 0) CreateObject1
(@OGUID+518, 587646, 0, 15968, 16073, '0', '0', 0, 6525.1318359375, -4440.07275390625, 220.2890167236328125, 5.724681377410888671, 0, 0, -0.27563667297363281, 0.961261868476867675, 120, 255, 1, 69587), -- Orb of Translocation (Area: Path of Dawn - Difficulty: 0) CreateObject1
(@OGUID+519, 544167, 0, 15968, 16073, '0', '0', 0, 7439.447265625, -3325.763916015625, 5.898549556732177734, 0, 0, 0, 0, 1, 120, 255, 1, 69587), -- Grappling Hook Rope (Area: Path of Dawn - Difficulty: 0) CreateObject1
(@OGUID+520, 526987, 0, 15968, 16073, '0', '0', 0, 7205.1474609375, -4132.69775390625, 206.94732666015625, 1.98967599868774414, 0, 0, 0.838670730590820312, 0.544638752937316894, 120, 255, 1, 69587), -- Orb of Translocation (Area: Path of Dawn - Difficulty: 0) CreateObject1
(@OGUID+521, 526988, 0, 15968, 16073, '0', '0', 0, 7245.21533203125, -3969.953125, 181.1139678955078125, 5.654868602752685546, 0, 0, -0.30901622772216796, 0.95105677843093872, 120, 255, 1, 69587), -- Orb of Translocation (Area: Path of Dawn - Difficulty: 0) CreateObject1
(@OGUID+522, 544171, 0, 15968, 16073, '0', '0', 0, 7350.62744140625, -3565.854248046875, 19.81768798828125, 0, 0, 0, 0, 1, 120, 255, 1, 69587), -- Grappling Hook Rope (Area: Path of Dawn - Difficulty: 0) CreateObject1
(@OGUID+523, 526989, 0, 15968, 16073, '0', '0', 0, 7306.99072265625, -4058.55029296875, 185.9450225830078125, 4.782205104827880859, 0, 0, -0.68199729919433593, 0.731354713439941406, 120, 255, 1, 69587), -- Orb of Translocation (Area: Path of Dawn - Difficulty: 0) CreateObject1
(@OGUID+524, 520359, 0, 15968, 16073, '0', '0', 0, 7279.60400390625, -3131.369873046875, 1.024875998497009277, 1.43361830711364746, 0, 0, 0.656982421875, 0.753905892372131347, 120, 255, 1, 69587), -- Smuggled Cargo (Area: Path of Dawn - Difficulty: 0) CreateObject1
(@OGUID+525, 526990, 0, 15968, 16073, '0', '0', 0, 7281.953125, -4109.0693359375, 102.3401565551757812, 5.349435329437255859, 0, 0, -0.45009803771972656, 0.892979145050048828, 120, 255, 1, 69587), -- Orb of Translocation (Area: Path of Dawn - Difficulty: 0) CreateObject1
(@OGUID+526, 526991, 0, 15968, 16073, '0', '0', 0, 7246.0322265625, -4129.9462890625, 216.2501068115234375, 0.532323002815246582, 0, 0, 0.263030052185058593, 0.964787662029266357, 120, 255, 1, 69587), -- Orb of Translocation (Area: Path of Dawn - Difficulty: 0) CreateObject1
(@OGUID+527, 520359, 0, 15968, 16073, '0', '0', 0, 7410.720703125, -3154.357666015625, 0.816056370735168457, 0.631504476070404052, 0, 0, 0.3105316162109375, 0.95056307315826416, 120, 255, 1, 69587), -- Smuggled Cargo (Area: Path of Dawn - Difficulty: 0) CreateObject1
(@OGUID+528, 520359, 0, 15968, 16073, '0', '0', 0, 7357.67529296875, -3171.87841796875, 1.178885817527770996, 0.164275765419006347, 0, 0, 0.082045555114746093, 0.99662858247756958, 120, 255, 1, 69587), -- Smuggled Cargo (Area: Path of Dawn - Difficulty: 0) CreateObject1
(@OGUID+529, 520359, 0, 15968, 16073, '0', '0', 0, 7348.32373046875, -3078.166748046875, 0.650883376598358154, 0.976197302341461181, 0, 0, 0.468947410583496093, 0.883226096630096435, 120, 255, 1, 69587), -- Smuggled Cargo (Area: Path of Dawn - Difficulty: 0) CreateObject1
(@OGUID+530, 626819, 0, 15968, 16073, '0', '0', 0, 7314.005859375, -4773.1728515625, 55.822113037109375, 5.395430564880371093, 0, 0, -0.4294443130493164, 0.903093338012695312, 120, 255, 1, 69587), -- Orb of Translocation (Area: Path of Dawn - Difficulty: 0) CreateObject1
(@OGUID+531, 626820, 0, 15968, 16073, '0', '0', 0, 7308.15087890625, -4774.17822265625, 74.6393890380859375, 2.527130365371704101, 0, 0, 0.953174591064453125, 0.302420556545257568, 120, 255, 1, 69587), -- Orb of Translocation (Area: Path of Dawn - Difficulty: 0) CreateObject1
(@OGUID+532, 494914, 0, 15968, 16073, '0', '0', 0, 7235.34765625, -4878.052734375, 121.6978759765625, 0.785398900508880615, 0, 0, 0.382683753967285156, 0.923879444599151611, 120, 255, 1, 69587), -- Orb of Translocation (Area: Path of Dawn - Difficulty: 0) CreateObject1
(@OGUID+533, 547473, 0, 15968, 16073, '0', '0', 0, 9293.6953125, -3917.37158203125, 57.94121551513671875, 0, 0, 0, 0, 1, 120, 255, 1, 69587), -- Orb of Translocation (Area: Path of Dawn - Difficulty: 0) CreateObject1
(@OGUID+534, 574981, 0, 15968, 16073, '0', '0', 0, 7652.1806640625, -4886.74462890625, 83.1673583984375, 1.303908348083496093, 0, 0, 0.606740951538085937, 0.794899582862854003, 120, 255, 1, 69587), -- Void Smoke 04 (Area: Path of Dawn - Difficulty: 0) CreateObject1
(@OGUID+535, 547474, 0, 15968, 16073, '0', '0', 0, 9297.3984375, -3911.552001953125, 173.8239288330078125, 0, 0, 0, 0, 1, 120, 255, 1, 69587), -- Orb of Translocation (Area: Path of Dawn - Difficulty: 0) CreateObject1
(@OGUID+536, 574981, 0, 15968, 16073, '0', '0', 0, 7616.82275390625, -4919.923828125, 91.19187164306640625, 1.303908348083496093, 0, 0, 0.606740951538085937, 0.794899582862854003, 120, 255, 1, 69587), -- Void Smoke 04 (Area: Path of Dawn - Difficulty: 0) CreateObject1
(@OGUID+537, 527187, 0, 15968, 16073, '0', '0', 0, 7397.048828125, -4210.6318359375, 67.60314178466796875, 0, 0, 0, 0, 1, 120, 255, 1, 69587), -- Hiding Bush (Area: Path of Dawn - Difficulty: 0) CreateObject1
(@OGUID+538, 584790, 0, 15968, 16073, '0', '0', 0, 6525.57666015625, -4440.0712890625, 91.27616119384765625, 5.235990047454833984, 0, 0, -0.49999904632568359, 0.866025924682617187, 120, 255, 1, 69587), -- Orb of Translocation (Area: Path of Dawn - Difficulty: 0) CreateObject1
(@OGUID+539, 555879, 0, 15968, 16073, '0', '0', 0, 6924.27734375, -3653.213134765625, 76.9918670654296875, 4.284784793853759765, 0, 0, -0.84103870391845703, 0.540974974632263183, 120, 255, 1, 69587), -- Orb of Translocation (Area: Path of Dawn - Difficulty: 0) CreateObject1
(@OGUID+540, 626819, 0, 15968, 16073, '0', '0', 0, 7751.29296875, -3696.47119140625, 32.8620452880859375, 2.877099514007568359, 0, 0, 0.991268157958984375, 0.131861478090286254, 120, 255, 1, 69587), -- Orb of Translocation (Area: Path of Dawn - Difficulty: 0) CreateObject1
(@OGUID+541, 626820, 0, 15968, 16073, '0', '0', 0, 7755.4599609375, -3692.23779296875, 51.6793212890625, 0.008810071274638175, 0, 0, 0.004405021667480468, 0.999990284442901611, 120, 255, 1, 69587), -- Orb of Translocation (Area: Path of Dawn - Difficulty: 0) CreateObject1
(@OGUID+542, 529360, 0, 15968, 16073, '0', '0', 0, 7991.55712890625, -4575.923828125, 23.24441909790039062, 5.427974700927734375, 0, 0, -0.41469287872314453, 0.909961462020874023, 120, 255, 1, 69587), -- Bench (Area: Path of Dawn - Difficulty: 0) CreateObject1
(@OGUID+543, 529362, 0, 15968, 16073, '0', '0', 0, 7990.44775390625, -4658.3037109375, 23.24268341064453125, 0.846484839916229248, 0, 0, 0.410718917846679687, 0.911761999130249023, 120, 255, 1, 69587), -- Bench (Area: Path of Dawn - Difficulty: 0) CreateObject1
(@OGUID+544, 520359, 0, 15968, 16073, '0', '0', 0, 7380.54443359375, -3168.361083984375, 0.703125, 6.275361537933349609, 0, 0, -0.00391197204589843, 0.999992311000823974, 120, 255, 1, 69587), -- Smuggled Cargo (Area: Path of Dawn - Difficulty: 0) CreateObject1
(@OGUID+545, 520359, 0, 15968, 16073, '0', '0', 0, 7466.8203125, -3183.1337890625, 0.433465689420700073, 0.362252771854400634, 0, 0, 0.18013763427734375, 0.983641445636749267, 120, 255, 1, 69587), -- Smuggled Cargo (Area: Path of Dawn - Difficulty: 0) CreateObject1
(@OGUID+546, 520359, 0, 15968, 16073, '0', '0', 0, 7430.44091796875, -3109.09033203125, 0.995494008064270019, 0.756330430507659912, 0, 0, 0.369215965270996093, 0.929343640804290771, 120, 255, 1, 69587), -- Smuggled Cargo (Area: Path of Dawn - Difficulty: 0) CreateObject1
(@OGUID+547, 520359, 0, 15968, 16073, '0', '0', 0, 7296.35400390625, -3125.548583984375, 1.064368844032287597, 0.579313993453979492, 0, 0, 0.285623550415039062, 0.958341896533966064, 120, 255, 1, 69587), -- Smuggled Cargo (Area: Path of Dawn - Difficulty: 0) CreateObject1
(@OGUID+548, 527211, 0, 15968, 16073, '0', '0', 0, 7335.13525390625, -4179.68603515625, 89.11240386962890625, 2.171482563018798828, 0, 0, 0.884649276733398437, 0.466257065534591674, 120, 255, 1, 69587), -- Hiding Spot (Area: Path of Dawn - Difficulty: 0) CreateObject1
(@OGUID+549, 572494, 0, 15968, 16073, '0', '0', 0, 6690.453125, -3875.07470703125, 79.64817047119140625, 5.440031051635742187, 0.711054325103759765, -0.13487911224365234, -0.43461513519287109, 0.536021530628204345, 120, 255, 1, 69587), -- Dropped Sword (Area: Path of Dawn - Difficulty: 0) CreateObject1
(@OGUID+550, 494914, 0, 15968, 16073, '0', '0', 0, 6927.966796875, -3645.1171875, 144.0313568115234375, 1.143188714981079101, 0, 0, 0.540973663330078125, 0.841039538383483886, 120, 255, 1, 69587), -- Orb of Translocation (Area: Path of Dawn - Difficulty: 0) CreateObject1
(@OGUID+551, 582090, 0, 15968, 16073, '0', '0', 0, 7148.611328125, -4514.626953125, 136.7001495361328125, 1.570795774459838867, 0, 0, 0.707106590270996093, 0.707106947898864746, 120, 255, 1, 69587), -- Orb of Translocation (Area: Path of Dawn - Difficulty: 0) CreateObject1
(@OGUID+552, 560856, 0, 15968, 16073, '0', '0', 0, 6680.0302734375, -3463.411376953125, 22.68576431274414062, 3.883358240127563476, 0, 0, -0.9320077896118164, 0.36243826150894165, 120, 255, 1, 69587), -- Runestone (Area: Path of Dawn - Difficulty: 0) CreateObject1
(@OGUID+553, 520359, 0, 15968, 16073, '0', '0', 0, 7212.45068359375, -3070.9775390625, 1.166835427284240722, 0.922290325164794921, 0, 0, 0.444973945617675781, 0.895543515682220458, 120, 255, 1, 69587), -- Smuggled Cargo (Area: Path of Dawn - Difficulty: 0) CreateObject1
(@OGUID+554, 520359, 0, 15968, 16073, '0', '0', 0, 7177.84912109375, -3067.42529296875, 0.980563461780548095, 4.266035079956054687, 0, 0, -0.84607315063476562, 0.533066809177398681, 120, 255, 1, 69587), -- Smuggled Cargo (Area: Path of Dawn - Difficulty: 0) CreateObject1
(@OGUID+555, 587067, 0, 15968, 16073, '0', '0', 0, 6437.439453125, -3703.897705078125, 37.14225387573242187, 5.218535900115966796, 0, 0, -0.507537841796875, 0.861629426479339599, 120, 255, 1, 69587), -- Orb of Translocation (Area: Path of Dawn - Difficulty: 0) CreateObject1
(@OGUID+556, 587068, 0, 15968, 16073, '0', '0', 0, 6439.6552734375, -3701.47216796875, 119.3281631469726562, 3.141592741012573242, 0, 0, -1, 0, 120, 255, 1, 69587), -- Orb of Translocation (Area: Path of Dawn - Difficulty: 0) CreateObject1
(@OGUID+557, 547481, 0, 15968, 16351, '0', '0', 0, 7668.490234375, -4577.6298828125, 19.24575424194335937, 0, 0, 0, 0, 1, 120, 255, 1, 69587), -- Sunwell Swarm (Area: Tranquil Repose - Difficulty: 0) CreateObject1
(@OGUID+558, 621762, 0, 15968, 16073, '0', '0', 0, 7574.05224609375, -4635.0244140625, 26.05381965637207031, 3.647741317749023437, 0, 0, -0.96814727783203125, 0.250381410121917724, 120, 255, 1, 69587), -- Anar'alah Belore (Area: Path of Dawn - Difficulty: 0) CreateObject1
(@OGUID+559, 573617, 0, 15968, 16073, '0', '0', 0, 7644.51123046875, -4871.31787109375, 77.15372467041015625, 1.281118392944335937, 0, 0, 0.597643852233886718, 0.8017616868019104, 120, 255, 1, 69587), -- Void Line 03 (Area: Path of Dawn - Difficulty: 0) CreateObject1
(@OGUID+560, 621804, 0, 15968, 16073, '0', '0', 0, 7572.572265625, -4634.830078125, 26.19703865051269531, 0.15707901120185852, 0, 0, 0.078458786010742187, 0.996917366981506347, 120, 255, 1, 69587), -- Stool (Area: Path of Dawn - Difficulty: 0) CreateObject1
(@OGUID+561, 516932, 0, 15968, 16073, '0', '0', 0, 7620.5849609375, -4734.908203125, 19.51894569396972656, 0.106445968151092529, 0, 0, 0.053197860717773437, 0.998583972454071044, 120, 255, 1, 69587), -- Tranquility Bloom (Area: Path of Dawn - Difficulty: 0) CreateObject1
(@OGUID+562, 540501, 0, 15968, 16073, '0', '0', 0, 7592.0400390625, -4727.1298828125, 19.245758056640625, 0, 0, 0, 0, 1, 120, 255, 1, 69587), -- Bloom Swarm (Area: Path of Dawn - Difficulty: 0) CreateObject1
(@OGUID+563, 573617, 0, 15968, 16073, '0', '0', 0, 7648.75244140625, -4861.41845703125, 77.70957183837890625, 5.950944423675537109, 0, 0, -0.16535758972167968, 0.986233651638031005, 120, 255, 1, 69587), -- Void Line 03 (Area: Path of Dawn - Difficulty: 0) CreateObject1
(@OGUID+564, 619647, 0, 15968, 16073, '0', '0', 0, 9530.5595703125, -3660.69091796875, 259.1395263671875, 5.658185005187988281, 0, 0, -0.30743885040283203, 0.951567828655242919, 120, 255, 1, 69587), -- Vista Point (Area: Path of Dawn - Difficulty: 0) CreateObject1
(@OGUID+565, 570474, 0, 15969, 16333, '0', '0', 0, 8505.1318359375, -4568.1337890625, 33.19061279296875, 0.785396754741668701, 0, 0, 0.38268280029296875, 0.923879802227020263, 120, 255, 1, 69587), -- Bench (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+566, 551188, 0, 15969, 16333, '0', '0', 0, 8569.0751953125, -4632.71875, 20.89239883422851562, 5.820675373077392578, 0, 0, -0.22919940948486328, 0.973379492759704589, 120, 255, 1, 69587), -- Bench (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+567, 551268, 0, 15969, 16333, '0', '0', 0, 8371.8857421875, -4498.02099609375, 18.79602622985839843, 4.939284324645996093, 0, 0, -0.6225137710571289, 0.78260880708694458, 120, 255, 1, 69587), -- Bench (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+568, 551661, 0, 15969, 16333, '0', '0', 0, 8560.990234375, -4587.9599609375, 20.89238548278808593, 0.671950340270996093, 0, 0, 0.329689979553222656, 0.944089233875274658, 120, 255, 1, 69587), -- Bench (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+569, 551280, 0, 15969, 16333, '0', '0', 0, 8396.3759765625, -4483.93603515625, 18.88396644592285156, 5.541422367095947265, 0, 0, -0.36243724822998046, 0.932008147239685058, 120, 255, 1, 69587), -- Chair (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+570, 551232, 0, 15969, 16333, '0', '0', 0, 8569.6533203125, -4600.88525390625, 20.89238548278808593, 0.427606821060180664, 0, 0, 0.212178230285644531, 0.977230966091156005, 120, 255, 1, 69587), -- Bench (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+571, 551054, 0, 15969, 16333, '0', '0', 0, 8379.7353515625, -4490.0244140625, 18.79602813720703125, 6.213373661041259765, 0, 0, -0.03489875793457031, 0.999390840530395507, 120, 255, 1, 69587), -- Bench (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+572, 551068, 0, 15969, 16333, '0', '0', 0, 8519.763671875, -4506.625, 18.89993667602539062, 4.031716346740722656, 0, 0, -0.90258407592773437, 0.430513650178909301, 120, 255, 1, 69587), -- Stool (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+573, 551596, 0, 15969, 16333, '0', '0', 0, 8411.5986328125, -4466.13037109375, 18.7960205078125, 4.95673990249633789, 0, 0, -0.61565971374511718, 0.788012087345123291, 120, 255, 1, 69587), -- Bench (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+574, 551386, 0, 15969, 16333, '0', '0', 0, 8494.71875, -4472.95849609375, 18.69943046569824218, 4.232427597045898437, 0, 0, -0.85491085052490234, 0.518774926662445068, 120, 255, 1, 69587), -- Bench (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+575, 551487, 0, 15969, 16333, '0', '0', 0, 8564.0849609375, -4534.37841796875, 18.81597328186035156, 3.77864241600036621, 0, 0, -0.94969844818115234, 0.313165903091430664, 120, 255, 1, 69587), -- Bench (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+576, 551708, 0, 15969, 16333, '0', '0', 0, 8557.548828125, -4517.97900390625, 18.81597328186035156, 3.342307567596435546, 0, 0, -0.99496841430664062, 0.100189015269279479, 120, 255, 1, 69587), -- Bench (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+577, 551276, 0, 15969, 16333, '0', '0', 0, 8575.0419921875, -4544.0693359375, 18.81597328186035156, 4.206246376037597656, 0, 0, -0.86162853240966796, 0.50753939151763916, 120, 255, 1, 69587), -- Bench (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+578, 551347, 0, 15969, 16333, '0', '0', 0, 8423.9345703125, -4460.14404296875, 18.79600715637207031, 5.384342670440673828, 0, 0, -0.43444442749023437, 0.900698602199554443, 120, 255, 1, 69587), -- Bench (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+579, 551699, 0, 15969, 16333, '0', '0', 0, 8608.6796875, -4633.98291015625, 18.752593994140625, 3.796092510223388671, 0, 0, -0.946929931640625, 0.321440041065216064, 120, 255, 1, 69587), -- Bench (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+580, 551340, 0, 15969, 16333, '0', '0', 0, 8573.2080078125, -4527.3974609375, 18.81597328186035156, 0.6283189058303833, 0, 0, 0.309017181396484375, 0.951056420803070068, 120, 255, 1, 69587), -- Bench (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+581, 551659, 0, 15969, 16333, '0', '0', 0, 8583.140625, -4536.4775390625, 18.81597328186035156, 0.951205372810363769, 0, 0, 0.457874298095703125, 0.889016985893249511, 120, 255, 1, 69587), -- Bench (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+582, 551394, 0, 15969, 16333, '0', '0', 0, 8567.3623046875, -4512.10791015625, 18.81597328186035156, 0.069813601672649383, 0, 0, 0.034899711608886718, 0.999390840530395507, 120, 255, 1, 69587), -- Bench (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+583, 551397, 0, 15969, 16333, '0', '0', 0, 8479.2607421875, -4456.86279296875, 18.68340492248535156, 3.621566295623779296, 0, 0, -0.97134113311767578, 0.237689673900604248, 120, 255, 1, 69587), -- Bench (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+584, 551411, 0, 15969, 16333, '0', '0', 0, 8597.7626953125, -4569.7880859375, 18.75257682800292968, 0.043634064495563507, 0, 0, 0.021815299987792968, 0.99976205825805664, 120, 255, 1, 69587), -- Stool (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+585, 557676, 0, 15969, 16333, '0', '0', 0, 8537.1083984375, -4471.078125, 18.76736068725585937, 3.063024282455444335, 0, 0, 0.999228477478027343, 0.039274025708436965, 120, 255, 1, 69587), -- Anvil (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+586, 551264, 0, 15969, 16333, '0', '0', 0, 8450.3759765625, -4535.6318359375, 196.1825408935546875, 1.946041464805603027, 0, 0, 0.826589584350585937, 0.56280517578125, 120, 255, 1, 69587), -- Cushion (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+587, 551261, 0, 15969, 16333, '0', '0', 0, 8462.3623046875, -4543.67529296875, 196.0952911376953125, 3.52557229995727539, 0, 0, -0.98162651062011718, 0.190812408924102783, 120, 255, 1, 69587), -- Cushion (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+588, 551605, 0, 15969, 16333, '0', '0', 0, 8608.3857421875, -4600.04345703125, 18.75088119506835937, 2.478367090225219726, 0, 0, 0.94551849365234375, 0.325568377971649169, 120, 255, 1, 69587), -- Bench (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+589, 551631, 0, 15969, 16333, '0', '0', 0, 8448.091796875, -4532.658203125, 196.1119232177734375, 5.777040958404541015, 0, 0, -0.25037956237792968, 0.968147754669189453, 120, 255, 1, 69587), -- Cushion (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+590, 551104, 0, 15969, 16333, '0', '0', 0, 8623.404296875, -4589.0556640625, 18.75086212158203125, 1.96349501609802246, 0, 0, 0.831469535827636718, 0.555570363998413085, 120, 255, 1, 69587), -- Bench (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+591, 551387, 0, 15969, 16333, '0', '0', 0, 8465.39453125, -4533.42529296875, 196.223480224609375, 3.342307567596435546, 0, 0, -0.99496841430664062, 0.100189015269279479, 120, 255, 1, 69587), -- Cushion (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+592, 572408, 0, 15969, 16333, '0', '0', 0, 8327.568359375, -4460.0615234375, 14.32709026336669921, 1.378809213638305664, 0, 0, 0.636077880859375, 0.771624863147735595, 120, 255, 1, 69587), -- Chair (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+593, 572409, 0, 15969, 16333, '0', '0', 0, 8333.55859375, -4454.15576171875, 14.32709026336669921, 2.932138919830322265, 0, 0, 0.994521141052246093, 0.104535527527332305, 120, 255, 1, 69587), -- Chair (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+594, 551273, 0, 15969, 16333, '0', '0', 0, 8625.927734375, -4646.046875, 18.75260353088378906, 4.424414634704589843, 0, 0, -0.80125236511230468, 0.598326563835144042, 120, 255, 1, 69587), -- Bench (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+595, 551285, 0, 15969, 16333, '0', '0', 0, 8463.154296875, -4531.44970703125, 196.017181396484375, 4.537858963012695312, 0, 0, -0.76604366302490234, 0.642788589000701904, 120, 255, 1, 69587), -- Cushion (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+596, 620451, 0, 15969, 16333, '0', '0', 0, 8537.1845703125, -4471.251953125, 19.84955215454101562, 3.997266530990600585, 0, 0, -0.90986537933349609, 0.414903610944747924, 120, 255, 1, 69587), -- Sword (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+597, 551336, 0, 15969, 16333, '0', '0', 0, 8462.794921875, -4535.22412109375, 196.0984649658203125, 1.596976161003112792, 0, 0, 0.716301918029785156, 0.697790443897247314, 120, 255, 1, 69587), -- Cushion (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+598, 551102, 0, 15969, 16333, '0', '0', 0, 8461.1826171875, -4533.6318359375, 196.223480224609375, 0.183258801698684692, 0, 0, 0.091501235961914062, 0.995804965496063232, 120, 255, 1, 69587), -- Cushion (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+599, 628772, 0, 15969, 16333, '0', '0', 0, 8545.0400390625, -4442.01025390625, 45.60243606567382812, 0.507405579090118408, 0, 0, 0.250989913940429687, 0.967989742755889892, 120, 255, 1, 69587), -- Schematics (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+600, 612038, 0, 15969, 16333, '0', '0', 0, 8623.9697265625, -4504.2255859375, 20.91769790649414062, 3.840377330780029296, 0, 0, -0.93958091735839843, 0.342326849699020385, 120, 255, 1, 69587), -- Agitated Tome (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+601, 551456, 0, 15969, 16333, '0', '0', 0, 8648.6064453125, -4569.4306640625, 18.75086784362792968, 4.756027698516845703, 0, 0, -0.69151115417480468, 0.722365796566009521, 120, 255, 1, 69587), -- Bench (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+602, 557679, 0, 15969, 16333, '0', '0', 0, 8562.9287109375, -4442.9443359375, 18.76736068725585937, 2.277654170989990234, 0, 0, 0.908143043518066406, 0.418660014867782592, 120, 255, 1, 69587), -- Anvil (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+603, 527240, 0, 15969, 16333, '0', '0', 0, 8361.0087890625, -4426.43212890625, 29.33184432983398437, 2.488875389099121093, 0, 0, 0.947216033935546875, 0.32059594988822937, 120, 255, 1, 69587), -- Magister's Chest (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+604, 532423, 0, 15969, 16333, '0', '0', 0, 8347.28125, -4430.0849609375, 33.08696746826171875, 0.819636762142181396, 0.917146205902099609, 0.398453712463378906, -0.00594902038574218, 0.006486977450549602, 120, 255, 1, 69587), -- Barrier (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+605, 551128, 0, 15969, 16333, '0', '0', 0, 8367.5478515625, -4411.9755859375, 59.16367721557617187, 0.794123053550720214, 0, 0, 0.386710166931152343, 0.922201275825500488, 120, 255, 1, 69587), -- Bench (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+606, 551473, 0, 15969, 16333, '0', '0', 0, 8337.1689453125, -4429.59375, 61.31920623779296875, 4.921831607818603515, 0, 0, -0.6293191909790039, 0.77714693546295166, 120, 255, 1, 69587), -- Cushion (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+607, 551688, 0, 15969, 16333, '0', '0', 0, 8338.703125, -4432.3974609375, 61.19417953491210937, 2.940877914428710937, 0, 0, 0.994968414306640625, 0.100189015269279479, 120, 255, 1, 69587), -- Cushion (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+608, 551591, 0, 15969, 16333, '0', '0', 0, 8336.9365234375, -4433.09716796875, 61.31920623779296875, 1.579522013664245605, 0, 0, 0.710185050964355468, 0.704015016555786132, 120, 255, 1, 69587), -- Cushion (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+609, 551349, 0, 15969, 16333, '0', '0', 0, 8335.1064453125, -4431.19775390625, 61.11290740966796875, 5.881760597229003906, 0, 0, -0.19936752319335937, 0.979924798011779785, 120, 255, 1, 69587), -- Cushion (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+610, 572412, 0, 15969, 16333, '0', '0', 0, 8348.529296875, -4417.08154296875, 29.26470184326171875, 0.846482694149017333, 0, 0, 0.410717964172363281, 0.911762416362762451, 120, 255, 1, 69587), -- Chair (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+611, 572418, 0, 15969, 16333, '0', '0', 0, 8298.375, -4469.20556640625, 10.29957199096679687, 5.907938957214355468, 0, 0, -0.1865243911743164, 0.982450306415557861, 120, 255, 1, 69587), -- Chair (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+612, 551309, 0, 15969, 16333, '0', '0', 0, 8609.1767578125, -4443.5400390625, 71.53997039794921875, 0.026179106906056404, 0, 0, 0.013089179992675781, 0.999914348125457763, 120, 255, 1, 69587), -- Bench (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+613, 528333, 0, 15969, 16333, '0', '0', 0, 8364.4775390625, -4400.28662109375, 34.55667877197265625, 0.791627347469329833, 0, 0, 0.38555908203125, 0.922683179378509521, 120, 255, 1, 69587), -- Barrier (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+614, 551167, 0, 15969, 16333, '0', '0', 0, 8352.8935546875, -4397.4130859375, 59.16714859008789062, 0.776669740676879882, 0, 0, 0.378647804260253906, 0.925540864467620849, 120, 255, 1, 69587), -- Bench (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+615, 572403, 0, 15969, 16333, '0', '0', 0, 8355.91015625, -4399.0830078125, 29.70933914184570312, 5.105089664459228515, 0, 0, -0.55556964874267578, 0.831470012664794921, 120, 255, 1, 69587), -- Chair (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+616, 551135, 0, 15969, 16333, '0', '0', 0, 8506.591796875, -4437.34912109375, 187.6727294921875, 0.567230045795440673, 0, 0, 0.279828071594238281, 0.960050106048583984, 120, 255, 1, 69587), -- Cushion (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+617, 551210, 0, 15969, 16333, '0', '0', 0, 8508.7861328125, -4438.1162109375, 187.684814453125, 1.474803924560546875, 0, 0, 0.672367095947265625, 0.740217864513397216, 120, 255, 1, 69587), -- Cushion (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+618, 572379, 0, 15969, 16333, '0', '0', 0, 8621.0693359375, -4444.3076171875, 18.77341842651367187, 4.502951622009277343, 0, 0, -0.7771453857421875, 0.629321098327636718, 120, 255, 1, 69587), -- Chair (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+619, 551076, 0, 15969, 16333, '0', '0', 0, 8382.029296875, -4379.56591796875, 28.46759033203125, 4.694936752319335937, 0, 0, -0.71325016021728515, 0.700909554958343505, 120, 255, 1, 69587), -- Cushion (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+620, 551352, 0, 15969, 16333, '0', '0', 0, 8379.7001953125, -4380.74853515625, 28.34258460998535156, 6.134833335876464843, 0, 0, -0.07410812377929687, 0.997250199317932128, 120, 255, 1, 69587), -- Cushion (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+621, 551082, 0, 15969, 16333, '0', '0', 0, 8383.6923828125, -4381.8837890625, 28.26130485534667968, 2.95832991600036621, 0, 0, 0.995804786682128906, 0.091503240168094635, 120, 255, 1, 69587), -- Cushion (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+622, 572419, 0, 15969, 16333, '0', '0', 0, 8340.05078125, -4406.54150390625, 29.26086807250976562, 2.967041015625, 0, 0, 0.996193885803222656, 0.087165042757987976, 120, 255, 1, 69587), -- Chair (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+623, 551645, 0, 15969, 16333, '0', '0', 0, 8382.7080078125, -4384.19287109375, 28.46759796142578125, 1.911133170127868652, 0, 0, 0.816640853881835937, 0.577146172523498535, 120, 255, 1, 69587), -- Cushion (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+624, 551723, 0, 15969, 16333, '0', '0', 0, 8400.970703125, -4360.17724609375, 11.47655963897705078, 6.082474231719970703, 0, 0, -0.10018730163574218, 0.994968593120574951, 120, 255, 1, 69587), -- Chair (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+625, 551213, 0, 15969, 16333, '0', '0', 0, 8513.5126953125, -4434.73291015625, 187.6727294921875, 3.307414531707763671, 0, 0, -0.99656486511230468, 0.082815870642662048, 120, 255, 1, 69587), -- Cushion (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+626, 572380, 0, 15969, 16333, '0', '0', 0, 8626.4619140625, -4440.15625, 18.7872161865234375, 0.488691210746765136, 0, 0, 0.241921424865722656, 0.970295846462249755, 120, 255, 1, 69587), -- Chair (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+627, 551453, 0, 15969, 16333, '0', '0', 0, 8506.7275390625, -4434.6494140625, 187.6727294921875, 5.550149440765380859, 0, 0, -0.35836696624755859, 0.93358081579208374, 120, 255, 1, 69587), -- Cushion (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+628, 572276, 0, 15969, 16333, '0', '0', 0, 8330.5361328125, -4404.44091796875, 15.28469181060791015, 2.722703456878662109, 0, 0, 0.978146553039550781, 0.207916676998138427, 120, 255, 1, 69587), -- Chair (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+629, 551248, 0, 15969, 16333, '0', '0', 0, 8609.1767578125, -4422.2431640625, 71.52434539794921875, 0.026179106906056404, 0, 0, 0.013089179992675781, 0.999914348125457763, 120, 255, 1, 69587), -- Bench (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+630, 613887, 0, 15969, 16333, '0', '0', 0, 8332.6162109375, -4404.63720703125, 8.735516548156738281, 0, 0, 0, 0, 1, 120, 255, 1, 69587), -- Unfinished Sheet Music (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+631, 551614, 0, 15969, 16333, '0', '0', 0, 8512.3623046875, -4432.970703125, 187.6727294921875, 4.049167633056640625, 0, 0, -0.89879322052001953, 0.438372820615768432, 120, 255, 1, 69587), -- Cushion (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+632, 551559, 0, 15969, 16333, '0', '0', 0, 8508.341796875, -4433.61279296875, 187.684814453125, 5.471611499786376953, 0, 0, -0.39474201202392578, 0.918792009353637695, 120, 255, 1, 69587), -- Cushion (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+633, 551083, 0, 15969, 16333, '0', '0', 0, 8512.833984375, -4436.517578125, 187.6727294921875, 2.879789113998413085, 0, 0, 0.991444587707519531, 0.130528271198272705, 120, 255, 1, 69587), -- Cushion (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+634, 584703, 0, 15969, 16333, '0', '0', 0, 8320.6357421875, -4407.4619140625, 7.652243614196777343, 2.713986396789550781, 0, 0, 0.977231025695800781, 0.212178006768226623, 120, 255, 1, 69587), -- Cushion (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+635, 551370, 0, 15969, 16333, '0', '0', 0, 8510.00390625, -4432.85791015625, 187.6727294921875, 5.157451152801513671, 0, 0, -0.53361320495605468, 0.845728635787963867, 120, 255, 1, 69587), -- Cushion (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+636, 551162, 0, 15969, 16333, '0', '0', 0, 8403.9189453125, -4362.55712890625, 11.48697471618652343, 1.736601948738098144, 0, 0, 0.763232231140136718, 0.646124243736267089, 120, 255, 1, 69587), -- Chair (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+637, 572405, 0, 15969, 16333, '0', '0', 0, 8281.384765625, -4450.39306640625, 9.151842117309570312, 5.489062309265136718, 0, 0, -0.38671016693115234, 0.922201275825500488, 120, 255, 1, 69587), -- Chair (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+638, 572406, 0, 15969, 16333, '0', '0', 0, 8292.0048828125, -4439.57421875, 9.148974418640136718, 2.190387964248657226, 0, 0, 0.889017105102539062, 0.457874000072479248, 120, 255, 1, 69587), -- Chair (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+639, 572410, 0, 15969, 16333, '0', '0', 0, 8274.513671875, -4458.82177734375, 9.228796005249023437, 6.117380619049072265, 0, 0, -0.08280754089355468, 0.996565580368041992, 120, 255, 1, 69587), -- Chair (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+640, 551460, 0, 15969, 16333, '0', '0', 0, 8477.462890625, -4335.40966796875, -7.39603662490844726, 5.619962215423583984, 0, 0, -0.32556724548339843, 0.945518851280212402, 120, 255, 1, 69587), -- Bench (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+641, 551129, 0, 15969, 16333, '0', '0', 0, 8307.2939453125, -4466.8369140625, 172.8243560791015625, 4.180065631866455078, 0, 0, -0.86819839477539062, 0.496217250823974609, 120, 255, 1, 69587), -- Cushion (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+642, 551692, 0, 15969, 16333, '0', '0', 0, 8525.357421875, -4359.892578125, -2.83935046195983886, 2.172935724258422851, 0, 0, 0.884987831115722656, 0.465614140033721923, 120, 255, 1, 69587), -- Bench (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+643, 551424, 0, 15969, 16333, '0', '0', 0, 8308.75390625, -4468.91650390625, 172.8243560791015625, 3.499390363693237304, 0, 0, -0.9840402603149414, 0.177946031093597412, 120, 255, 1, 69587), -- Cushion (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+644, 572381, 0, 15969, 16333, '0', '0', 0, 8629.3896484375, -4439.9970703125, 18.77716636657714843, 3.150327444076538085, 0, 0, -0.99999046325683593, 0.004367320332676172, 120, 255, 1, 69587), -- Chair (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+645, 572382, 0, 15969, 16333, '0', '0', 0, 8632.0341796875, -4433.029296875, 18.76414108276367187, 3.089183330535888671, 0, 0, 0.99965667724609375, 0.026201646775007247, 120, 255, 1, 69587), -- Chair (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+646, 572383, 0, 15969, 16333, '0', '0', 0, 8629.2919921875, -4425.158203125, 18.73945236206054687, 2.879789113998413085, 0, 0, 0.991444587707519531, 0.130528271198272705, 120, 255, 1, 69587), -- Chair (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+647, 551429, 0, 15969, 16333, '0', '0', 0, 8629.8330078125, -4444.76904296875, 71.37152862548828125, 5.471609115600585937, 0, 0, -0.39474296569824218, 0.918791592121124267, 120, 255, 1, 69587), -- Bench (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+648, 551221, 0, 15969, 16333, '0', '0', 0, 8304.208984375, -4471.767578125, 172.824371337890625, 1.308995485305786132, 0, 0, 0.608760833740234375, 0.793353796005249023, 120, 255, 1, 69587), -- Cushion (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+649, 584696, 0, 15969, 16333, '0', '0', 0, 8637.5009765625, -4441.640625, 19.09615135192871093, 2.548179388046264648, 0, 0, 0.956304550170898437, 0.292372345924377441, 120, 255, 1, 69587), -- Stool (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+650, 551175, 0, 15969, 16333, '0', '0', 0, 8437.1826171875, -4336.01025390625, -7.39809513092041015, 3.831001043319702148, 0, 0, -0.94117546081542968, 0.337918221950531005, 120, 255, 1, 69587), -- Bench (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+651, 572275, 0, 15969, 16333, '0', '0', 0, 8320.724609375, -4395.21875, 7.442317008972167968, 5.890486717224121093, 0, 0, -0.19509029388427734, 0.980785250663757324, 120, 255, 1, 69587), -- Chair (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+652, 572277, 0, 15969, 16333, '0', '0', 0, 8325.0185546875, -4398.57080078125, 7.442317962646484375, 1.954769015312194824, 0, 0, 0.829037666320800781, 0.559192776679992675, 120, 255, 1, 69587), -- Chair (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+653, 551532, 0, 15969, 16333, '0', '0', 0, 8297.1328125, -4418.63037109375, 60.13904571533203125, 5.366890430450439453, 0, 0, -0.44228744506835937, 0.896873354911804199, 120, 255, 1, 69587), -- Bench (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+654, 551294, 0, 15969, 16333, '0', '0', 0, 8529.5185546875, -4349.64599609375, -2.84749698638916015, 3.604105949401855468, 0, 0, -0.97337913513183593, 0.229200854897499084, 120, 255, 1, 69587), -- Bench (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+655, 551587, 0, 15969, 16333, '0', '0', 0, 8287.7109375, -4428.57275390625, 59.23662185668945312, 1.954769015312194824, 0, 0, 0.829037666320800781, 0.559192776679992675, 120, 255, 1, 69587), -- Bench (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+656, 551552, 0, 15969, 16333, '0', '0', 0, 8303.3642578125, -4466.890625, 172.8243560791015625, 5.628688335418701171, 0, 0, -0.32143878936767578, 0.946930348873138427, 120, 255, 1, 69587), -- Cushion (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+657, 551297, 0, 15969, 16333, '0', '0', 0, 8308.1865234375, -4471.05029296875, 172.8243560791015625, 2.399827241897583007, 0, 0, 0.932007789611816406, 0.36243826150894165, 120, 255, 1, 69587), -- Cushion (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+658, 584704, 0, 15969, 16333, '0', '0', 0, 8317.080078125, -4407.26513671875, 7.584023475646972656, 0.872663915157318115, 0, 0, 0.422617912292480468, 0.906307935714721679, 120, 255, 1, 69587), -- Cushion (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+659, 551656, 0, 15969, 16333, '0', '0', 0, 8302.5791015625, -4470.76025390625, 172.8243865966796875, 0.235619664192199707, 0, 0, 0.117537498474121093, 0.993068456649780273, 120, 255, 1, 69587), -- Cushion (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+660, 551620, 0, 15969, 16333, '0', '0', 0, 8305.0908203125, -4466.06103515625, 172.8243865966796875, 4.54658365249633789, 0, 0, -0.76323223114013671, 0.646124243736267089, 120, 255, 1, 69587), -- Cushion (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+661, 572407, 0, 15969, 16333, '0', '0', 0, 8268.44140625, -4453.619140625, 9.120495796203613281, 2.792518377304077148, 0, 0, 0.984807014465332031, 0.173652306199073791, 120, 255, 1, 69587), -- Chair (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+662, 573696, 0, 15969, 16333, '0', '0', 0, 8279.7392578125, -4423.3193359375, 35.6743011474609375, 1.029743075370788574, 0, 0, 0.492423057556152343, 0.870355963706970214, 120, 255, 1, 69587), -- Chair (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+663, 573699, 0, 15969, 16333, '0', '0', 0, 8283.1708984375, -4421.8056640625, 35.6743011474609375, 2.801248550415039062, 0, 0, 0.985555648803710937, 0.169351965188980102, 120, 255, 1, 69587), -- Chair (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+664, 571591, 0, 15969, 16333, '0', '0', 0, 8535.9052734375, -4335.17529296875, 21.73834609985351562, 0.750492870807647705, 0, 0, 0.366501808166503906, 0.930417299270629882, 120, 255, 1, 69587), -- Bench (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+665, 571598, 0, 15969, 16333, '0', '0', 0, 8555.0791015625, -4335.18603515625, 21.73834609985351562, 2.373649120330810546, 0, 0, 0.927184104919433593, 0.374606013298034667, 120, 255, 1, 69587), -- Bench (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+666, 571599, 0, 15969, 16333, '0', '0', 0, 8535.814453125, -4316.34912109375, 21.73834609985351562, 5.471611499786376953, 0, 0, -0.39474201202392578, 0.918792009353637695, 120, 255, 1, 69587), -- Bench (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+667, 551517, 0, 15969, 16333, '0', '0', 0, 8436.0625, -4302.3349609375, -7.39792728424072265, 0.462510257959365844, 0, 0, 0.229199409484863281, 0.973379492759704589, 120, 255, 1, 69587), -- Bench (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+668, 551414, 0, 15969, 16333, '0', '0', 0, 8643.4853515625, -4431.8349609375, 71.37326812744140625, 5.471609115600585937, 0, 0, -0.39474296569824218, 0.918791592121124267, 120, 255, 1, 69587), -- Bench (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+669, 551417, 0, 15969, 16333, '0', '0', 0, 8658.6533203125, -4474.76904296875, 71.37152862548828125, 2.347463846206665039, 0, 0, 0.922200202941894531, 0.386712819337844848, 120, 255, 1, 69587), -- Bench (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+670, 572384, 0, 15969, 16333, '0', '0', 0, 8629.4765625, -4421.6904296875, 18.77303695678710937, 3.343711376190185546, 0, 0, -0.99489784240722656, 0.100887402892112731, 120, 255, 1, 69587), -- Chair (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+671, 551715, 0, 15969, 16333, '0', '0', 0, 8476.8525390625, -4285.34033203125, -7.39814615249633789, 3.673924207687377929, 0, 0, -0.96478652954101562, 0.263034075498580932, 120, 255, 1, 69587), -- Bench (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+672, 551468, 0, 15969, 16333, '0', '0', 0, 8663.2431640625, -4489.05224609375, 71.37326812744140625, 1.631881952285766601, 0, 0, 0.72837066650390625, 0.685183286666870117, 120, 255, 1, 69587), -- Bench (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+673, 574717, 0, 15969, 16333, '0', '0', 0, 8612.2470703125, -4333.818359375, 20.63538169860839843, 2.888511419296264648, 0, 0, 0.99200439453125, 0.126203224062919616, 120, 255, 1, 69587), -- Stool (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+674, 551255, 0, 15969, 16333, '0', '0', 0, 8438.5107421875, -4283.142578125, -7.39640998840332031, 5.550151348114013671, 0, 0, -0.35836601257324218, 0.933581173419952392, 120, 255, 1, 69587), -- Bench (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+675, 551326, 0, 15969, 16333, '0', '0', 0, 8590.9501953125, -4305.595703125, 18.81602287292480468, 4.127707481384277343, 0, 0, -0.880889892578125, 0.473321229219436645, 120, 255, 1, 69587), -- Bench (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+676, 571574, 0, 15969, 16333, '0', '0', 0, 8555.39453125, -4316.484375, 21.73834609985351562, 3.857182979583740234, 0, 0, -0.93667125701904296, 0.350209832191467285, 120, 255, 1, 69587), -- Bench (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+677, 551407, 0, 15969, 16333, '0', '0', 0, 8661.0361328125, -4416.01025390625, 76.56723785400390625, 3.970627307891845703, 0, 0, -0.91531085968017578, 0.402748137712478637, 120, 255, 1, 69587), -- Bench (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+678, 572535, 0, 15969, 16333, '0', '0', 0, 8506.921875, -4218.90576171875, -3.93193578720092773, 4.96546030044555664, 0, 0, -0.61221790313720703, 0.79068911075592041, 120, 255, 1, 69587), -- Chair (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+679, 551109, 0, 15969, 16333, '0', '0', 0, 8339.453125, -4275.79541015625, 6.690972328186035156, 5.009099960327148437, 0, 0, -0.59482097625732421, 0.80385822057723999, 120, 255, 1, 69587), -- Bench (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+680, 572536, 0, 15969, 16333, '0', '0', 0, 8501.4814453125, -4219.43408203125, -4.03281545639038085, 1.352631807327270507, 0, 0, 0.625924110412597656, 0.779883980751037597, 120, 255, 1, 69587), -- Chair (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+681, 572537, 0, 15969, 16333, '0', '0', 0, 8508.591796875, -4214.9833984375, -0.68330001831054687, 6.152287960052490234, 0, 0, -0.06540203094482421, 0.997859001159667968, 120, 255, 1, 69587), -- Cushion (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+682, 572538, 0, 15969, 16333, '0', '0', 0, 8503.529296875, -4218.01025390625, -3.93578004837036132, 3.063024282455444335, 0, 0, 0.999228477478027343, 0.039274025708436965, 120, 255, 1, 69587), -- Chair (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+683, 572539, 0, 15969, 16333, '0', '0', 0, 8505.9228515625, -4222.43701171875, -4.0442814826965332, 0.837755441665649414, 0, 0, 0.406735420227050781, 0.91354602575302124, 120, 255, 1, 69587), -- Chair (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+684, 572540, 0, 15969, 16333, '0', '0', 0, 8496.00390625, -4225.3564453125, -4.03696012496948242, 4.476768016815185546, 0, 0, -0.78531742095947265, 0.619093298912048339, 120, 255, 1, 69587), -- Chair (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+685, 551727, 0, 15969, 16333, '0', '0', 0, 8353.09375, -4279.37158203125, 6.732638835906982421, 3.717553615570068359, 0, 0, -0.95881938934326171, 0.284016460180282592, 120, 255, 1, 69587), -- Bench (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+686, 584692, 0, 15969, 16333, '0', '0', 0, 8509.2666015625, -4220.9541015625, -3.93920421600341796, 3.351046562194824218, 0, 0, -0.99452114105224609, 0.104535527527332305, 120, 255, 1, 69587), -- Chair (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+687, 532386, 0, 15969, 16333, '0', '0', 0, 8660.7919921875, -4333.59716796875, 97.21712493896484375, 0.678214728832244873, 0, 0, 0.332645416259765625, 0.94305199384689331, 120, 255, 1, 69587), -- Training Dummy (Blood Elf) (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+688, 532386, 0, 15969, 16333, '0', '0', 0, 8653.8701171875, -4325.82666015625, 97.37326812744140625, 0.678214728832244873, 0, 0, 0.332645416259765625, 0.94305199384689331, 120, 255, 1, 69587), -- Training Dummy (Blood Elf) (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+689, 551529, 0, 15969, 16333, '0', '0', 0, 8666.962890625, -4419.8525390625, 76.7415618896484375, 4.572769641876220703, 0, 0, -0.75470733642578125, 0.65606158971786499, 120, 255, 1, 69587), -- Bench (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+690, 532386, 0, 15969, 16333, '0', '0', 0, 8656.9638671875, -4329.47900390625, 97.21712493896484375, 0.678214728832244873, 0, 0, 0.332645416259765625, 0.94305199384689331, 120, 255, 1, 69587), -- Training Dummy (Blood Elf) (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+691, 505043, 0, 15969, 16333, '0', '0', 0, 8427.5888671875, -4220.68603515625, -7.39850378036499023, 5.75086069107055664, 0, 0, -0.263031005859375, 0.96478736400604248, 120, 255, 1, 69587), -- Bench (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+692, 551359, 0, 15969, 16333, '0', '0', 0, 8329.2080078125, -4285.5, 6.689236164093017578, 5.794494152069091796, 0, 0, -0.24192142486572265, 0.970295846462249755, 120, 255, 1, 69587), -- Bench (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+693, 505093, 0, 15969, 16333, '0', '0', 0, 8564.96875, -4230.76416015625, -4.59799480438232421, 2.373644113540649414, 0, 0, 0.927183151245117187, 0.37460830807685852, 120, 255, 1, 69587), -- Bench (Area: Sanctum of Light - Difficulty: 0) CreateObject1
(@OGUID+694, 506742, 0, 15969, 16097, '0', '0', 0, 8473.9794921875, -4164.09912109375, 19.21821975708007812, 5.139996528625488281, 0, 0, -0.54097366333007812, 0.841039538383483886, 120, 255, 1, 69587), -- Bench (Area: Gardens of Remembrance - Difficulty: 0) CreateObject1
(@OGUID+695, 551127, 0, 15969, 16097, '0', '0', 0, 8678.8251953125, -4311.375, 99.2581634521484375, 1.256638288497924804, 0, 0, 0.587785720825195312, 0.809016644954681396, 120, 255, 1, 69587), -- Chair (Area: Gardens of Remembrance - Difficulty: 0) CreateObject1
(@OGUID+696, 619135, 0, 15969, 16097, '0', '0', 0, 8427.8134765625, -4186.84375, 6.064763545989990234, 2.836158275604248046, 0, 0, 0.988361358642578125, 0.152124300599098205, 120, 255, 1, 69587), -- Stool (Area: Gardens of Remembrance - Difficulty: 0) CreateObject1
(@OGUID+697, 619136, 0, 15969, 16097, '0', '0', 0, 8422.5498046875, -4190.99853515625, 6.0649566650390625, 1.736601948738098144, 0, 0, 0.763232231140136718, 0.646124243736267089, 120, 255, 1, 69587), -- Stool (Area: Gardens of Remembrance - Difficulty: 0) CreateObject1
(@OGUID+698, 619137, 0, 15969, 16097, '0', '0', 0, 8420.4521484375, -4176.52783203125, 6.065035343170166015, 5.113816738128662109, 0, 0, -0.55193614959716796, 0.833886384963989257, 120, 255, 1, 69587), -- Stool (Area: Gardens of Remembrance - Difficulty: 0) CreateObject1
(@OGUID+699, 619138, 0, 15969, 16097, '0', '0', 0, 8414.548828125, -4180.9375, 6.051770687103271484, 5.873034954071044921, 0, 0, -0.20364093780517578, 0.979045629501342773, 120, 255, 1, 69587), -- Stool (Area: Gardens of Remembrance - Difficulty: 0) CreateObject1
(@OGUID+700, 505130, 0, 15969, 16097, '0', '0', 0, 8554.8466796875, -4215.74853515625, -4.5906076431274414, 4.860742568969726562, 0, 0, -0.65275955200195312, 0.757565200328826904, 120, 255, 1, 69587), -- Bench (Area: Gardens of Remembrance - Difficulty: 0) CreateObject1
(@OGUID+701, 551345, 0, 15969, 16097, '0', '0', 0, 8669.666015625, -4292.8525390625, 99.2552642822265625, 5.95157480239868164, 0, 0, -0.16504669189453125, 0.986285746097564697, 120, 255, 1, 69587), -- Chair (Area: Gardens of Remembrance - Difficulty: 0) CreateObject1
(@OGUID+702, 504480, 0, 15969, 16097, '0', '0', 0, 8413.3486328125, -4202.609375, 3.584346771240234375, 4.48550271987915039, 0, 0, -0.78260612487792968, 0.622517168521881103, 120, 255, 1, 69587), -- Bench (Area: Gardens of Remembrance - Difficulty: 0) CreateObject1
(@OGUID+703, 551061, 0, 15969, 16097, '0', '0', 0, 8675.9150390625, -4309.88720703125, 99.25547027587890625, 1.029745340347290039, 0, 0, 0.49242401123046875, 0.870355427265167236, 120, 255, 1, 69587), -- Chair (Area: Gardens of Remembrance - Difficulty: 0) CreateObject1
(@OGUID+704, 551624, 0, 15969, 16097, '0', '0', 0, 8670.9970703125, -4289.93408203125, 99.2552642822265625, 5.733408451080322265, 0, 0, -0.2714395523071289, 0.962455451488494873, 120, 255, 1, 69587), -- Chair (Area: Gardens of Remembrance - Difficulty: 0) CreateObject1
(@OGUID+705, 506727, 0, 15969, 16097, '0', '0', 0, 8439.7529296875, -4162.7412109375, 19.38892936706542968, 4.232427597045898437, 0, 0, -0.85491085052490234, 0.518774926662445068, 120, 255, 1, 69587), -- Bench (Area: Gardens of Remembrance - Difficulty: 0) CreateObject1
(@OGUID+706, 504479, 0, 15969, 16097, '0', '0', 0, 8430.1171875, -4201.98779296875, 3.59348607063293457, 5.183631420135498046, 0, 0, -0.52249717712402343, 0.852640986442565917, 120, 255, 1, 69587), -- Bench (Area: Gardens of Remembrance - Difficulty: 0) CreateObject1
(@OGUID+707, 584643, 0, 15969, 16097, '0', '0', 0, 8518.244140625, -4155.70556640625, 21.9275665283203125, 3.167797565460205078, 0, 0, -0.99991416931152343, 0.013101960532367229, 120, 255, 1, 69587), -- Chair (Area: Gardens of Remembrance - Difficulty: 0) CreateObject1
(@OGUID+708, 551378, 0, 15969, 16097, '0', '0', 0, 8685.169921875, -4436.78662109375, 76.7431640625, 3.141592741012573242, 0, 0, -1, 0, 120, 255, 1, 69587), -- Bench (Area: Gardens of Remembrance - Difficulty: 0) CreateObject1
(@OGUID+709, 551125, 0, 15969, 16097, '0', '0', 0, 8692.521484375, -4410.04150390625, 97.2873992919921875, 3.953172922134399414, 0, 0, -0.91879081726074218, 0.394744753837585449, 120, 255, 1, 69587), -- Bench (Area: Gardens of Remembrance - Difficulty: 0) CreateObject1
(@OGUID+710, 551204, 0, 15969, 16097, '0', '0', 0, 8687.8232421875, -4283.01220703125, 99.2552642822265625, 4.398232460021972656, 0, 0, -0.80901622772216796, 0.587786316871643066, 120, 255, 1, 69587), -- Chair (Area: Gardens of Remembrance - Difficulty: 0) CreateObject1
(@OGUID+711, 555798, 0, 15969, 16097, '0', '0', 0, 8521.2021484375, -4140.78125, 17.69057464599609375, 1.771507501602172851, 0, 0, 0.774392127990722656, 0.632705986499786376, 120, 255, 1, 69587), -- Mailbox (Area: Gardens of Remembrance - Difficulty: 0) CreateObject1
(@OGUID+712, 551435, 0, 15969, 16097, '0', '0', 0, 8690.0849609375, -4345.048828125, 97.22959136962890625, 0.91629725694656372, 0, 0, 0.442288398742675781, 0.896872878074645996, 120, 255, 1, 69587), -- Bench (Area: Gardens of Remembrance - Difficulty: 0) CreateObject1
(@OGUID+713, 551229, 0, 15969, 16097, '0', '0', 0, 8690.763671875, -4284.29150390625, 99.2552642822265625, 4.180065631866455078, 0, 0, -0.86819839477539062, 0.496217250823974609, 120, 255, 1, 69587), -- Chair (Area: Gardens of Remembrance - Difficulty: 0) CreateObject1
(@OGUID+714, 551237, 0, 15969, 16097, '0', '0', 0, 8697.6494140625, -4302.125, 99.2552642822265625, 2.801248550415039062, 0, 0, 0.985555648803710937, 0.169351965188980102, 120, 255, 1, 69587), -- Chair (Area: Gardens of Remembrance - Difficulty: 0) CreateObject1
(@OGUID+715, 551151, 0, 15969, 16097, '0', '0', 0, 8696.5283203125, -4304.73974609375, 99.2552642822265625, 2.679079532623291015, 0, 0, 0.973379135131835937, 0.229200854897499084, 120, 255, 1, 69587), -- Chair (Area: Gardens of Remembrance - Difficulty: 0) CreateObject1
(@OGUID+716, 551647, 0, 15969, 16097, '0', '0', 0, 8672.078125, -4461.59716796875, 71.37326812744140625, 2.347463846206665039, 0, 0, 0.922200202941894531, 0.386712819337844848, 120, 255, 1, 69587), -- Bench (Area: Gardens of Remembrance - Difficulty: 0) CreateObject1
(@OGUID+717, 276643, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 1280.638916015625, 2178.803955078125, 97.99542236328125, 1.375995397567749023, 0, 0, 0.634991645812988281, 0.77251899242401123, 7200, 255, 1, 69587), -- Instance Portal (Area: The Blinding Vale - Difficulty: Normal) CreateObject1
(@OGUID+718, 539784, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 1178.4410400390625, 1749.189208984375, 72.5153045654296875, 2.801248550415039062, 0, 0, 0.985555648803710937, 0.169351965188980102, 7200, 255, 0, 69587), -- 12.0 Dungeon - Lightbloom - Zone - Door - Boss 2 Enter (Area: The Blinding Vale - Difficulty: Normal) CreateObject1
(@OGUID+719, 539716, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 1437.435791015625, 1737.5052490234375, 99.7542877197265625, 3.150327444076538085, 0, 0, -0.99999046325683593, 0.004367320332676172, 7200, 255, 0, 69587), -- 12.0 Dungeon - Lightbloom - Zone - Door - Boss 1 Exit Small (Area: The Blinding Vale - Difficulty: Normal) CreateObject1
(@OGUID+720, 539718, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 1285.3472900390625, 1727.2100830078125, 71.70333099365234375, 2.853604078292846679, 0, 0, 0.989650726318359375, 0.143497169017791748, 7200, 255, 0, 69587), -- 12.0 Dungeon - Lightbloom - Zone - Door - Boss 2 Exit (Area: The Blinding Vale - Difficulty: Normal) CreateObject1
(@OGUID+721, 539721, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 1450.4583740234375, 1707.795166015625, 98.09613800048828125, 3.735006093978881835, 0, 0, -0.95630455017089843, 0.292372345924377441, 7200, 255, 0, 69587), -- 12.0 Dungeon - Lightbloom - Zone - Door - Boss 1 Exit Large (Area: The Blinding Vale - Difficulty: Normal) CreateObject1
(@OGUID+722, 539720, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 1494.717041015625, 1776.859375, 98.09613800048828125, 4.590219020843505859, 0, 0, -0.74895477294921875, 0.662621140480041503, 7200, 255, 0, 69587), -- 12.0 Dungeon - Lightbloom - Zone - Door - Boss 1 Enter (Area: The Blinding Vale - Difficulty: Normal) CreateObject1
(@OGUID+723, 539715, 2859, 16359, 16359, '1,2,23,205,8', '0', 0, 1347.4722900390625, 1393.4930419921875, -13.7124509811401367, 4.712389945983886718, 0, 0, -0.70710659027099609, 0.707106947898864746, 7200, 255, 0, 69587), -- 12.0 Dungeon - Lightbloom - Zone - Door - Boss 3 (Area: The Blinding Vale - Difficulty: Normal) CreateObject1
(@OGUID+724, 620064, 2694, 15355, 15921, '0', '0', 0, -222.65625, -456.029510498046875, 901.57818603515625, 4.343392372131347656, 0, 0, -0.82482719421386718, 0.565384924411773681, 120, 255, 1, 69587), -- Stool (Area: The Den - Difficulty: 0) CreateObject1
(@OGUID+725, 620064, 2694, 15355, 15921, '0', '0', 0, -220.012161254882812, -462.71875, 901.39727783203125, 5.720253467559814453, 0, 0, -0.27776432037353515, 0.96064925193786621, 120, 255, 1, 69587), -- Stool (Area: The Den - Difficulty: 0) CreateObject1
(@OGUID+726, 620064, 2694, 15355, 15921, '0', '0', 0, -222.043411254882812, -459.46527099609375, 901.5206298828125, 2.434029579162597656, 0, 0, 0.938069343566894531, 0.346447587013244628, 120, 255, 1, 69587), -- Stool (Area: The Den - Difficulty: 0) CreateObject1
(@OGUID+727, 549113, 2694, 15355, 15921, '0', '0', 0, -389.46875, -475.65972900390625, 1033.2073974609375, 3.140953540802001953, 0.00809335708618164, 0.039478302001953125, 0.999187469482421875, 0, 120, 255, 1, 69587), -- Chair (Area: The Den - Difficulty: 0) CreateObject1
(@OGUID+728, 549112, 2694, 15355, 15921, '0', '0', 0, -256.489593505859375, -376.55035400390625, 989.25347900390625, 0.043632153421640396, 0, 0, 0.021814346313476562, 0.99976205825805664, 120, 255, 1, 69587), -- Chair (Area: The Den - Difficulty: 0) CreateObject1
(@OGUID+729, 549114, 2694, 15355, 15921, '0', '0', 0, -386.927093505859375, -474.2413330078125, 1033.0474853515625, 2.513273954391479492, 0, 0, 0.951056480407714843, 0.309017121791839599, 120, 255, 1, 69587), -- Campfire (Area: The Den - Difficulty: 0) CreateObject1
(@OGUID+730, 626617, 2694, 15355, 15921, '0', '0', 0, -321.7100830078125, -387.041656494140625, 945.3546142578125, 5.637415885925292968, 0, 0, -0.31730365753173828, 0.948323965072631835, 120, 255, 1, 69587), -- Vines (Area: The Den - Difficulty: 0) CreateObject1
(@OGUID+731, 544053, 2694, 15355, 15921, '0', '0', 0, -141.42535400390625, -535.15106201171875, 1004.707275390625, 4.78417062759399414, 0, 0, -0.68127822875976562, 0.732024550437927246, 120, 255, 1, 69587), -- Pedestal (Area: The Den - Difficulty: 0) CreateObject1
(@OGUID+732, 544052, 2694, 15355, 15921, '0', '0', 0, -159.28472900390625, -543.94793701171875, 1004.707275390625, 0, 0, 0, 0, 1, 120, 255, 1, 69587), -- Pedestal (Area: The Den - Difficulty: 0) CreateObject1
(@OGUID+733, 626618, 2694, 15355, 15921, '0', '0', 0, -321.2882080078125, -388.41839599609375, 945.3641357421875, 5.253442287445068359, 0, 0, -0.49242305755615234, 0.870355963706970214, 120, 255, 1, 69587), -- Vines (Area: The Den - Difficulty: 0) CreateObject1
(@OGUID+734, 620064, 2694, 15355, 15921, '0', '0', 0, -217.243057250976562, -461.53472900390625, 901.36700439453125, 4.501820564270019531, 0, 0, -0.77750110626220703, 0.628881573677062988, 120, 255, 1, 69587), -- Stool (Area: The Den - Difficulty: 0) CreateObject1
(@OGUID+735, 620064, 2694, 15355, 15921, '0', '0', 0, -222.684036254882812, -472.197906494140625, 901.26446533203125, 5.982478141784667968, 0, 0, -0.14978790283203125, 0.988718152046203613, 120, 255, 1, 69587), -- Stool (Area: The Den - Difficulty: 0) CreateObject1
(@OGUID+736, 620064, 2694, 15355, 15921, '0', '0', 0, -212.204864501953125, -457.602447509765625, 901.36785888671875, 2.906415700912475585, 0, 0, 0.993094444274902343, 0.117317639291286468, 120, 255, 1, 69587), -- Stool (Area: The Den - Difficulty: 0) CreateObject1
(@OGUID+737, 620064, 2694, 15355, 15921, '0', '0', 0, -204.699661254882812, -471.74652099609375, 901.5008544921875, 3.794857263565063476, 0, 0, -0.9471282958984375, 0.320855110883712768, 120, 255, 1, 69587), -- Stool (Area: The Den - Difficulty: 0) CreateObject1
(@OGUID+738, 549080, 2694, 15355, 15921, '0', '0', 0, -260.734375, -375.23785400390625, 989.25518798828125, 5.462882041931152343, 0, 0, -0.39874839782714843, 0.917060375213623046, 120, 255, 1, 69587), -- Chair (Area: The Den - Difficulty: 0) CreateObject1
(@OGUID+739, 639804, 2694, 15355, 15921, '0', '0', 0, -171.0582275390625, -518.47076416015625, 1004.78070068359375, 4.014260292053222656, 0, 0, -0.90630722045898437, 0.422619491815567016, 120, 255, 1, 69587), -- Chair (Area: The Den - Difficulty: 0) CreateObject1
(@OGUID+740, 544052, 2694, 15355, 15921, '0', '0', 0, -164.467010498046875, -536.22222900390625, 1004.707275390625, 0, 0, 0, 0, 1, 120, 255, 1, 69587), -- Pedestal (Area: The Den - Difficulty: 0) CreateObject1
(@OGUID+741, 626617, 2694, 15355, 15921, '0', '0', 0, -321.68402099609375, -385.642364501953125, 945.3546142578125, 0.994837164878845214, 0, 0, 0.477158546447753906, 0.878817260265350341, 120, 255, 1, 69587), -- Vines (Area: The Den - Difficulty: 0) CreateObject1
(@OGUID+742, 544053, 2694, 15355, 15921, '0', '0', 0, -146.279510498046875, -543.9774169921875, 1004.72540283203125, 0, 0, 0, 0, 1, 120, 255, 1, 69587), -- Pedestal (Area: The Den - Difficulty: 0) CreateObject1
(@OGUID+743, 626619, 2694, 15355, 15921, '0', '0', 0, -323.671875, -386.989593505859375, 945.3699951171875, 3.804824352264404296, 0, 0, -0.94551753997802734, 0.325571209192276, 120, 255, 1, 69587), -- Vines (Area: The Den - Difficulty: 0) CreateObject1
(@OGUID+744, 544052, 2694, 15355, 15921, '0', '0', 0, -142.583328247070312, -540.34552001953125, 1004.707275390625, 4.062199115753173828, 0, 0, -0.89591789245605468, 0.4442196786403656, 120, 255, 1, 69587), -- Pedestal (Area: The Den - Difficulty: 0) CreateObject1
(@OGUID+745, 626618, 2694, 15355, 15921, '0', '0', 0, -323.5694580078125, -388.76910400390625, 945.3641357421875, 3.535787105560302734, 0.465981006622314453, 0.143439292907714843, -0.85038471221923828, 0.197819903492927551, 120, 255, 1, 69587), -- Vines (Area: The Den - Difficulty: 0) CreateObject1
(@OGUID+746, 620064, 2694, 15355, 15921, '0', '0', 0, -207.586807250976562, -473.720489501953125, 901.314208984375, 0.60458683967590332, 0, 0, 0.297710418701171875, 0.954656243324279785, 120, 255, 1, 69587), -- Stool (Area: The Den - Difficulty: 0) CreateObject1
(@OGUID+747, 590801, 2694, 15355, 15921, '0', '0', 0, -299.18402099609375, -309.630218505859375, 1000.78582763671875, 3.57256627082824707, 0, 0, -0.97687244415283203, 0.213822871446609497, 120, 255, 1, 69587), -- A Rolled Up Pillow (Area: The Den - Difficulty: 0) CreateObject1
(@OGUID+748, 544053, 2694, 15355, 15921, '0', '0', 0, -162.421875, -540.4288330078125, 1004.707275390625, 4.959084033966064453, 0, 0, -0.61473560333251953, 0.788733243942260742, 120, 255, 1, 69587), -- Pedestal (Area: The Den - Difficulty: 0) CreateObject1
(@OGUID+749, 544052, 2694, 15355, 15921, '0', '0', 0, -152.861114501953125, -546.9774169921875, 1004.707275390625, 3.59593820571899414, 0, 0, -0.97430706024169921, 0.22522379457950592, 120, 255, 1, 69587), -- Pedestal (Area: The Den - Difficulty: 0) CreateObject1
(@OGUID+750, 620064, 2694, 15355, 15921, '0', '0', 0, -214.427078247070312, -455.4757080078125, 901.3363037109375, 3.709732294082641601, 0, 0, -0.95992279052734375, 0.280264616012573242, 120, 255, 1, 69587), -- Stool (Area: The Den - Difficulty: 0) CreateObject1
(@OGUID+751, 620064, 2694, 15355, 15921, '0', '0', 0, -207.048614501953125, -471.430572509765625, 901.29583740234375, 5.479885101318359375, 0, 0, -0.39093780517578125, 0.920417070388793945, 120, 255, 1, 69587), -- Stool (Area: The Den - Difficulty: 0) CreateObject1
(@OGUID+752, 613196, 2694, 15355, 15921, '0', '0', 0, -270.91839599609375, -290.810760498046875, 1002.75738525390625, 5.535547256469726562, 0, 0, -0.36517333984375, 0.930939555168151855, 120, 255, 1, 69587), -- The Den Mailbox (Area: The Den - Difficulty: 0) CreateObject1
(@OGUID+753, 516988, 2694, 15355, 15921, '0', '0', 0, -443.7569580078125, -522.6805419921875, 1171.179443359375, 2.998864173889160156, 0, 0, 0.997454643249511718, 0.071303695440292358, 120, 255, 1, 69587), -- Lush Tranquility Bloom (Area: The Den - Difficulty: 0) CreateObject1
(@OGUID+754, 612259, 2694, 15355, 15921, '0', '0', 0, -83.5451431274414062, -425.060760498046875, 994.2755126953125, 2.497515439987182617, 0, 0, 0.948592185974121093, 0.316500991582870483, 120, 255, 1, 69587), -- The Gulf of Memory (Area: The Den - Difficulty: 0) CreateObject1
(@OGUID+755, 571156, 2694, 15355, 15921, '0', '0', 0, -456.4444580078125, -492.579864501953125, 1062.4888916015625, 0.673314094543457031, 0.374528884887695312, -0.36443519592285156, 0.400493621826171875, 0.752675235271453857, 120, 255, 1, 69587), -- Glowing Moth (Area: The Den - Difficulty: 0) CreateObject1
(@OGUID+756, 549098, 2694, 15355, 15921, '0', '0', 0, -114.588539123535156, -374.211822509765625, 988.580322265625, 3.612834930419921875, 0.015187263488769531, 0.003645896911621093, -0.97225093841552734, 0.233418360352516174, 120, 255, 1, 69587), -- Chair (Area: The Den - Difficulty: 0) CreateObject1
(@OGUID+757, 549079, 2694, 15355, 15921, '0', '0', 0, -344.689239501953125, -573.0225830078125, 1036.677978515625, 4.372052192687988281, 0, 0, -0.81664085388183593, 0.577146172523498535, 120, 255, 1, 69587), -- Chair (Area: The Den - Difficulty: 0) CreateObject1
(@OGUID+758, 628327, 2694, 15355, 15921, '0', '0', 0, -286.626739501953125, -433.916656494140625, 933.89630126953125, 5.770106792449951171, 0, 0, -0.25373458862304687, 0.967273890972137451, 120, 255, 1, 69587), -- Portal to Voidstorm (Area: The Den - Difficulty: 0) CreateObject1
(@OGUID+759, 639803, 2694, 15355, 15921, '0', '0', 0, -152.577438354492187, -557.53448486328125, 1004.79803466796875, 5.602508544921875, 0, 0, -0.33380603790283203, 0.942641794681549072, 120, 255, 1, 69587), -- Chair (Area: The Den - Difficulty: 0) CreateObject1
(@OGUID+760, 639802, 2694, 15355, 15921, '0', '0', 0, -147.874496459960937, -552.90869140625, 1004.7984619140625, 4.110253810882568359, 0, 0, -0.88498687744140625, 0.46561598777770996, 120, 255, 1, 69587), -- Chair (Area: The Den - Difficulty: 0) CreateObject1
(@OGUID+761, 573010, 2694, 15355, 15921, '0', '0', 0, -152.986114501953125, -546.49652099609375, 1006.08001708984375, 1.598277688026428222, 0, 0, 0.716755867004394531, 0.697324156761169433, 120, 255, 1, 69587), -- Russula's Outreach (Area: The Den - Difficulty: 0) CreateObject1
(@OGUID+762, 572999, 2694, 15355, 15921, '0', '0', 0, -146.446182250976562, -543.52777099609375, 1006.08001708984375, 2.431644201278686523, 0, 0, 0.937655448913574218, 0.347566217184066772, 120, 255, 1, 69587), -- The Echoless Flame (Area: The Den - Difficulty: 0) CreateObject1
(@OGUID+763, 620815, 2694, 15355, 15921, '0', '0', 0, -285.933319091796875, -262.532440185546875, 1004.274169921875, 2.983408689498901367, 0, 0, 0.996873855590820312, 0.079009577631950378, 120, 255, 1, 69587), -- Chair (Area: The Den - Difficulty: 0) CreateObject1
(@OGUID+764, 571280, 2694, 15355, 15921, '0', '0', 0, -100.892356872558593, -547.50518798828125, 990.8800048828125, 0, 0, 0, 0, 1, 120, 255, 1, 69587), -- Glowing Moth (Area: The Den - Difficulty: 0) CreateObject1
(@OGUID+765, 556532, 2694, 15355, 15921, '0', '0', 0, 124.28125, -605.57989501953125, 1047.454345703125, 0, 0, 0, 0, 1, 120, 255, 1, 69587), -- Nest (Area: The Den - Difficulty: 0) CreateObject1
(@OGUID+766, 253128, 2694, 15355, 15921, '0', '0', 0, -823.09722900390625, -1993.4010009765625, 973.0361328125, 1.628586053848266601, 0, 0, 0.727240562438964843, 0.686382710933685302, 120, 255, 1, 69587), -- Instance Portal (Area: The Den - Difficulty: 0) CreateObject1
(@OGUID+767, 556532, 2694, 15355, 15921, '0', '0', 0, 200.954864501953125, -739.63543701171875, 1047.8497314453125, 0, 0, 0, 0, 1, 120, 255, 1, 69587), -- Nest (Area: The Den - Difficulty: 0) CreateObject1
(@OGUID+768, 556532, 2694, 15355, 15921, '0', '0', 0, 119.2725677490234375, -708.4757080078125, 1075.174560546875, 0.032311778515577316, 0.085898399353027343, 0.089591026306152343, 0.008268356323242187, 0.992233097553253173, 120, 255, 1, 69587), -- Nest (Area: The Den - Difficulty: 0) CreateObject1
(@OGUID+769, 556532, 2694, 15355, 15921, '0', '0', 0, 307.83160400390625, -531.77606201171875, 1074.4068603515625, 0, 0, 0, 0, 1, 120, 255, 1, 69587), -- Nest (Area: The Den - Difficulty: 0) CreateObject1
(@OGUID+770, 556532, 2694, 15355, 15921, '0', '0', 0, 247.8524322509765625, -694.96356201171875, 1054.5172119140625, 0, 0, 0, 0, 1, 120, 255, 1, 69587), -- Nest (Area: The Den - Difficulty: 0) CreateObject1
(@OGUID+771, 542334, 2694, 15355, 15921, '0', '0', 0, -285.630218505859375, -1893.7135009765625, 1080.373291015625, 5.729094982147216796, 0, 0, -0.2735147476196289, 0.961867809295654296, 120, 255, 1, 69587), -- Ancient Visionstone (Area: The Den - Difficulty: 0) CreateObject1
(@OGUID+772, 414379, 2694, 15355, 15921, '0', '0', 0, -786.30206298828125, -1799.5989990234375, 911.43359375, 0.925878524780273437, 0, 0, 0.446579933166503906, 0.894743740558624267, 120, 255, 1, 69587), -- Door (Area: The Den - Difficulty: 0) CreateObject1
(@OGUID+773, 556532, 2694, 15355, 15921, '0', '0', 0, 228.6944427490234375, -603.71875, 1059.0736083984375, 6.262461185455322265, 0.04755401611328125, -0.09548473358154296, -0.00566577911376953, 0.994278192520141601, 120, 255, 1, 69587), -- Nest (Area: The Den - Difficulty: 0) CreateObject1
(@OGUID+774, 556532, 2694, 15355, 15921, '0', '0', 0, 180.6684112548828125, -716.69964599609375, 1065.3121337890625, 0, 0, 0, 0, 1, 120, 255, 1, 69587), -- Nest (Area: The Den - Difficulty: 0) CreateObject1
(@OGUID+775, 556532, 2694, 15355, 15921, '0', '0', 0, 220.2152862548828125, -725.0850830078125, 1078.68408203125, 0.107441425323486328, -0.08439826965332031, -0.03873062133789062, 0.050505638122558593, 0.994397342205047607, 120, 255, 1, 69587), -- Nest (Area: The Den - Difficulty: 0) CreateObject1
(@OGUID+776, 619660, 2694, 15355, 15921, '0', '0', 0, -429.1632080078125, -471.571197509765625, 1210.4000244140625, 0.890636563301086425, 0, 0, 0.430745124816894531, 0.902473628520965576, 120, 255, 0, 69587), -- Vista Point (Area: The Den - Difficulty: 0) CreateObject1
(@OGUID+777, 619656, 2694, 15355, 15921, '0', '0', 0, 185.75347900390625, -1658.7899169921875, 1394.3499755859375, 3.447353363037109375, 0, 0, -0.98833656311035156, 0.152285441756248474, 120, 255, 0, 69587), -- Vista Point (Area: The Den - Difficulty: 0) CreateObject1
(@OGUID+778, 619659, 2694, 15355, 15921, '0', '0', 0, -672.8975830078125, -1676.6302490234375, 976.67999267578125, 5.816215991973876953, 0, 0, -0.2313690185546875, 0.972866058349609375, 120, 255, 0, 69587), -- Vista Point (Area: The Den - Difficulty: 0) CreateObject1
(@OGUID+779, 619658, 2694, 15355, 15921, '0', '0', 0, -1305.359375, -162.258682250976562, 1096.4000244140625, 0.660024762153625488, 0, 0, 0.324054718017578125, 0.946038365364074707, 120, 255, 0, 69587), -- Vista Point (Area: The Den - Difficulty: 0) CreateObject1
(@OGUID+780, 542334, 2694, 15355, 15921, '0', '0', 0, -758.3038330078125, -561.52081298828125, 1070.2274169921875, 1.588341355323791503, 0, 0, 0.713282585144042968, 0.700876533985137939, 120, 255, 1, 69587), -- Ancient Visionstone (Area: The Den - Difficulty: 0) CreateObject1
(@OGUID+781, 542334, 2694, 15355, 15921, '0', '0', 0, 576.8992919921875, -1314.0242919921875, 976.38922119140625, 4.059830665588378906, 0, 0, -0.89644336700439453, 0.443158358335494995, 120, 255, 1, 69587), -- Ancient Visionstone (Area: The Den - Difficulty: 0) CreateObject1
(@OGUID+782, 556532, 2694, 15355, 15921, '0', '0', 0, 209.9496612548828125, -601.3975830078125, 1054.468505859375, 0, 0, 0, 0, 1, 120, 255, 1, 69587), -- Nest (Area: The Den - Difficulty: 0) CreateObject1
(@OGUID+783, 413017, 2694, 15355, 15921, '0', '0', 0, 12.06944465637207031, 800.953125, 1097.9398193359375, 6.005074024200439453, 0, 0, -0.13860797882080078, 0.990347325801849365, 120, 255, 1, 69587), -- Door (Area: The Den - Difficulty: 0) CreateObject1
(@OGUID+784, 556532, 2694, 15355, 15921, '0', '0', 0, 294.045135498046875, -627.91839599609375, 1053.454833984375, 0, 0, 0, 0, 1, 120, 255, 1, 69587), -- Nest (Area: The Den - Difficulty: 0) CreateObject1
(@OGUID+785, 556532, 2694, 15355, 15921, '0', '0', 0, 118.6093826293945312, -678.37677001953125, 1049.753662109375, 0, 0, 0, 0, 1, 120, 255, 1, 69587), -- Nest (Area: The Den - Difficulty: 0) CreateObject1
(@OGUID+786, 556532, 2694, 15355, 15921, '0', '0', 0, 372.361114501953125, -561.13018798828125, 1070.1297607421875, 0, 0, 0, 0, 1, 120, 255, 1, 69587), -- Nest (Area: The Den - Difficulty: 0) CreateObject1
(@OGUID+787, 253126, 2694, 15355, 15921, '0', '0', 0, -647.83856201171875, -1069.60595703125, 684.86175537109375, 5.63963174819946289, 0, 0, -0.31625270843505859, 0.948674976825714111, 120, 255, 1, 69587), -- Instance Portal (Area: The Den - Difficulty: 0) CreateObject1
(@OGUID+788, 613818, 2694, 15355, 15921, '0', '0', 0, -200.184036254882812, -636.68927001953125, 825.17803955078125, 0.057161845266819, -0.16539812088012695, -0.4343719482421875, -0.06141281127929687, 0.883285343647003173, 120, 255, 1, 69587), -- Tarnished Mural (Area: The Den - Difficulty: 0) CreateObject1
(@OGUID+789, 551166, 0, 15969, 16097, '0', '0', 0, 8271.935546875, -4411.86474609375, 61.73054885864257812, 1.195551156997680664, 0, 0, 0.56280517578125, 0.826589584350585937, 120, 255, 1, 69587), -- Bench (Area: Gardens of Remembrance - Difficulty: 0) CreateObject1
(@OGUID+790, 620538, 0, 15969, 16097, '0', '0', 0, 8267.357421875, -4452.6875, 9.250132560729980468, 0, 0, 0, 0, 1, 120, 255, 1, 69587), -- Lost Page (Area: Gardens of Remembrance - Difficulty: 0) CreateObject1
(@OGUID+791, 551514, 0, 15969, 16097, '0', '0', 0, 8264.3642578125, -4437.689453125, 59.25224685668945312, 1.911133170127868652, 0, 0, 0.816640853881835937, 0.577146172523498535, 120, 255, 1, 69587), -- Bench (Area: Gardens of Remembrance - Difficulty: 0) CreateObject1
(@OGUID+792, 573697, 0, 15969, 16097, '0', '0', 0, 8264.4814453125, -4429.03125, 35.6743011474609375, 2.801248550415039062, 0, 0, 0.985555648803710937, 0.169351965188980102, 120, 255, 1, 69587); -- Chair (Area: Gardens of Remembrance - Difficulty: 0) CreateObject1
@@ -1190,6 +1190,7 @@ void CharacterDatabaseConnection::DoPrepareStatements()
PrepareStatement(CHAR_REP_SHOP_BOOST, "REPLACE INTO character_shop_boost (guid, productId, distributionId, specializationId, trial, boostedAt) VALUES (?, ?, ?, ?, ?, ?)", CONNECTION_ASYNC);
PrepareStatement(CHAR_DEL_SHOP_BOOST, "DELETE FROM character_shop_boost WHERE guid = ?", CONNECTION_ASYNC);
PrepareStatement(CHAR_SEL_SHOP_BOOST_ACCOUNT, "SELECT b.guid, b.trial FROM character_shop_boost b INNER JOIN characters c ON c.guid = b.guid WHERE c.account = ?", CONNECTION_ASYNC);
PrepareStatement(CHAR_SEL_VAS_ACCOUNT_CHARACTER_LIST, "SELECT guid, name FROM characters WHERE account = ? AND deleteInfos_Name IS NULL ORDER BY slot ASC", CONNECTION_SYNCH);
// WowCommunity end
}
@@ -970,6 +970,7 @@ enum CharacterDatabaseStatements : uint32
CHAR_REP_SHOP_BOOST,
CHAR_DEL_SHOP_BOOST,
CHAR_SEL_SHOP_BOOST_ACCOUNT,
CHAR_SEL_VAS_ACCOUNT_CHARACTER_LIST,
//WowCommunity end
MAX_CHARACTERDATABASE_STATEMENTS
@@ -0,0 +1,269 @@
/*
* This file is part of the TrinityCore Project. See AUTHORS file for Copyright information
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation; either version 2 of the License, or (at your
* option) any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "VasTransferMgr.h"
#include "Config.h"
#include "DatabaseEnv.h"
#include "Log.h"
#include "ObjectAccessor.h"
#include "Player.h"
#include "RealmList.h"
#include "StringConvert.h"
#include "StringFormat.h"
#include "Util.h"
#include "World.h"
#include <array>
namespace
{
// Tables keyed directly by the character guid. Column name varies by table; taken from the
// Player::DeleteFromDB WHERE clauses so the set matches what a delete would remove.
struct CharTable { char const* Table; char const* Column; };
constexpr std::array<CharTable, 47> kCharGuidTables =
{ {
{ "character_account_data", "guid" },
{ "character_achievement", "guid" },
{ "character_achievement_progress", "guid" },
{ "character_action", "guid" },
{ "character_arena_stats", "guid" },
{ "character_aura", "guid" },
{ "character_aura_effect", "guid" },
{ "character_aura_stored_location", "Guid" },
{ "character_bank_tab_settings", "characterGuid" },
{ "character_battleground_data", "guid" },
{ "character_battleground_random", "guid" },
{ "character_cuf_profiles", "guid" },
{ "character_currency", "CharacterGuid" },
{ "character_customizations", "guid" },
{ "character_declinedname", "guid" },
{ "character_equipmentsets", "guid" },
{ "character_favorite_auctions", "guid" },
{ "character_fishingsteps", "guid" },
{ "character_garrison", "guid" },
{ "character_garrison_blueprints", "guid" },
{ "character_garrison_buildings", "guid" },
{ "character_gifts", "guid" },
{ "character_glyphs", "guid" },
{ "character_homebind", "guid" },
{ "character_instance_lock", "guid" },
{ "character_player_data_element", "characterGuid" },
{ "character_player_data_flag", "characterGuid" },
{ "character_pvp_talent", "guid" },
{ "character_queststatus", "guid" },
{ "character_queststatus_daily", "guid" },
{ "character_queststatus_monthly", "guid" },
{ "character_queststatus_objectives", "guid" },
{ "character_queststatus_objectives_criteria", "guid" },
{ "character_queststatus_objectives_criteria_progress", "guid" },
{ "character_queststatus_rewarded", "guid" },
{ "character_queststatus_seasonal", "guid" },
{ "character_queststatus_weekly", "guid" },
{ "character_reputation", "guid" },
{ "character_select_screen_equipment_cache", "guid" },
{ "character_skills", "guid" },
{ "character_spell", "guid" },
{ "character_spell_charges", "guid" },
{ "character_spell_cooldown", "guid" },
{ "character_spell_favorite", "guid" },
{ "character_stats", "guid" },
{ "character_talent", "guid" },
{ "character_inventory", "guid" },
} };
// item_instance child tables keyed by item guid (itemGuid), moved with the character's items.
constexpr std::array<char const*, 9> kItemChildTables =
{ {
"item_instance_gems",
"item_instance_modifiers",
"item_instance_transmog",
"item_instance_artifact",
"item_instance_artifact_powers",
"item_instance_azerite",
"item_instance_azerite_empowered",
"item_instance_azerite_milestone_power",
"item_instance_azerite_unlocked_essence",
} };
}
VasTransferMgr* VasTransferMgr::instance()
{
static VasTransferMgr instance;
return &instance;
}
void VasTransferMgr::LoadConfig()
{
_realmDatabases.clear();
// "1:tc_characters,2:playerbot_characters,3:integ_characters"
std::string const raw = std::string(sConfigMgr->GetStringDefault("VAS.TransferRealmDatabases", ""));
for (std::string_view pair : Trinity::Tokenize(raw, ',', false))
{
std::vector<std::string_view> const kv = Trinity::Tokenize(pair, ':', false);
if (kv.size() != 2)
continue;
Optional<uint32> const realmId = Trinity::StringTo<uint32>(kv[0]);
if (!realmId || kv[1].empty())
continue;
_realmDatabases[*realmId] = std::string(kv[1]);
}
_enabled = !_realmDatabases.empty();
if (_enabled)
TC_LOG_INFO("server.loading", "VAS character transfer: {} realm character databases mapped.", _realmDatabases.size());
}
std::string VasTransferMgr::GetRealmDatabase(uint32 realmId) const
{
auto it = _realmDatabases.find(realmId);
return it != _realmDatabases.end() ? it->second : std::string();
}
char const* VasTransferMgr::ResultString(TransferResult result)
{
switch (result)
{
case TRANSFER_OK: return "ok";
case TRANSFER_ERR_NO_TARGET: return "no characters database mapped for the target realm";
case TRANSFER_ERR_NO_SOURCE: return "no characters database mapped for this realm";
case TRANSFER_ERR_CHAR_NOT_FOUND: return "no such character on this realm";
case TRANSFER_ERR_IN_WORLD: return "the character is online (transfer only from character select)";
case TRANSFER_ERR_NAME_TAKEN: return "a character with that name already exists on the target realm";
case TRANSFER_ERR_GUID_COLLISION: return "the character or one of its items already exists on the target realm";
case TRANSFER_ERR_DB: return "a database error occurred; nothing was moved";
default: return "unknown";
}
}
VasTransferMgr::TransferResult VasTransferMgr::TransferCharacter(ObjectGuid::LowType charGuid, uint32 targetRealmId,
std::string* outName, std::string* outTargetDb, bool validateOnly)
{
uint32 const currentRealmId = sRealmList->GetCurrentRealmId().Realm;
std::string const sourceDb = GetRealmDatabase(currentRealmId);
if (sourceDb.empty())
return TRANSFER_ERR_NO_SOURCE;
std::string const targetDb = GetRealmDatabase(targetRealmId);
if (targetDb.empty() || targetDb == sourceDb || targetRealmId == currentRealmId)
return TRANSFER_ERR_NO_TARGET;
if (outTargetDb)
*outTargetDb = targetDb;
// The character must exist on this realm and be offline. Only the numeric guid is ever inlined into the
// cross-db SQL below; the character name is compared entirely inside SQL (a join on the two characters
// tables), so no string value is ever concatenated into a query.
if (Player* online = ObjectAccessor::FindConnectedPlayer(ObjectGuid::Create<HighGuid::Player>(charGuid)))
{
(void)online;
return TRANSFER_ERR_IN_WORLD;
}
if (QueryResult nameRes = CharacterDatabase.Query(Trinity::StringFormat(
"SELECT name FROM `{}`.characters WHERE guid = {}", sourceDb, charGuid).c_str()))
{
if (outName)
*outName = (*nameRes)[0].GetString();
}
else
return TRANSFER_ERR_CHAR_NOT_FOUND;
// Name is the only per-realm unique key: reject if the target already has one. Compared via a join so the
// name never leaves SQL.
if (CharacterDatabase.Query(Trinity::StringFormat(
"SELECT 1 FROM `{}`.characters t JOIN `{}`.characters s ON t.name = s.name WHERE s.guid = {} LIMIT 1",
targetDb, sourceDb, charGuid).c_str()))
return TRANSFER_ERR_NAME_TAKEN;
// Guids are kept, not remapped, so refuse rather than corrupt if the character guid or any of its item
// guids already exist on the target.
if (CharacterDatabase.Query(Trinity::StringFormat(
"SELECT 1 FROM `{}`.characters WHERE guid = {} LIMIT 1", targetDb, charGuid).c_str()))
return TRANSFER_ERR_GUID_COLLISION;
if (CharacterDatabase.Query(Trinity::StringFormat(
"SELECT 1 FROM `{}`.item_instance t JOIN `{}`.item_instance s ON t.guid = s.guid "
"WHERE s.owner_guid = {} LIMIT 1", targetDb, sourceDb, charGuid).c_str()))
return TRANSFER_ERR_GUID_COLLISION;
// Everything the transfer can be rejected for has been checked. A validation-only request stops here with
// success - nothing is moved.
if (validateOnly)
return TRANSFER_OK;
// Move the rows in one transaction, then remove them from the source. INSERT ... SELECT keeps every guid,
// so all foreign references stay valid without a remap.
CharacterDatabaseTransaction trans = CharacterDatabase.BeginTransaction();
auto copyDel = [&](std::string const& copySql, std::string const& delSql)
{
trans->Append(copySql.c_str());
trans->Append(delSql.c_str());
};
// The characters row first (so the target row exists before anything references it).
copyDel(
Trinity::StringFormat("INSERT INTO `{}`.characters SELECT * FROM `{}`.characters WHERE guid = {}", targetDb, sourceDb, charGuid),
Trinity::StringFormat("DELETE FROM `{}`.characters WHERE guid = {}", sourceDb, charGuid));
for (CharTable const& t : kCharGuidTables)
copyDel(
Trinity::StringFormat("INSERT INTO `{}`.{} SELECT * FROM `{}`.{} WHERE {} = {}", targetDb, t.Table, sourceDb, t.Table, t.Column, charGuid),
Trinity::StringFormat("DELETE FROM `{}`.{} WHERE {} = {}", sourceDb, t.Table, t.Column, charGuid));
// The item_instance children (keyed by item guid) BEFORE item_instance is deleted from the source, using
// the source's item_instance to resolve the owner's item guids.
std::string const ownedItems = Trinity::StringFormat("(SELECT guid FROM `{}`.item_instance WHERE owner_guid = {})", sourceDb, charGuid);
for (char const* child : kItemChildTables)
{
trans->Append(Trinity::StringFormat("INSERT INTO `{}`.{} SELECT * FROM `{}`.{} WHERE itemGuid IN {}", targetDb, child, sourceDb, child, ownedItems).c_str());
trans->Append(Trinity::StringFormat("DELETE FROM `{}`.{} WHERE itemGuid IN {}", sourceDb, child, ownedItems).c_str());
}
// Then item_instance itself.
copyDel(
Trinity::StringFormat("INSERT INTO `{}`.item_instance SELECT * FROM `{}`.item_instance WHERE owner_guid = {}", targetDb, sourceDb, charGuid),
Trinity::StringFormat("DELETE FROM `{}`.item_instance WHERE owner_guid = {}", sourceDb, charGuid));
// Mail and mail items (mail keyed by receiver; mail_items by the moved mail ids).
std::string const ownedMail = Trinity::StringFormat("(SELECT id FROM `{}`.mail WHERE receiver = {})", sourceDb, charGuid);
trans->Append(Trinity::StringFormat("INSERT INTO `{}`.mail_items SELECT * FROM `{}`.mail_items WHERE mail_id IN {}", targetDb, sourceDb, ownedMail).c_str());
trans->Append(Trinity::StringFormat("DELETE FROM `{}`.mail_items WHERE mail_id IN {}", sourceDb, ownedMail).c_str());
copyDel(
Trinity::StringFormat("INSERT INTO `{}`.mail SELECT * FROM `{}`.mail WHERE receiver = {}", targetDb, sourceDb, charGuid),
Trinity::StringFormat("DELETE FROM `{}`.mail WHERE receiver = {}", sourceDb, charGuid));
// Synchronous commit so the outcome is known before we answer: DirectCommitTransaction blocks until the
// whole transaction is applied or rolled back, then a single confirming query tells us the character now
// lives on the target. A rollback (e.g. a schema divergence between the two realms' character DBs) leaves
// the source untouched - the character is never left half-moved.
CharacterDatabase.DirectCommitTransaction(trans);
if (!CharacterDatabase.Query(Trinity::StringFormat(
"SELECT 1 FROM `{}`.characters WHERE guid = {} LIMIT 1", targetDb, charGuid).c_str()))
{
TC_LOG_ERROR("entities.player.character", "VAS transfer: character {} did NOT land on `{}` (transaction "
"rolled back - likely a schema mismatch between the source and target character databases); the "
"character remains on `{}`.", charGuid, targetDb, sourceDb);
return TRANSFER_ERR_DB;
}
TC_LOG_INFO("entities.player.character", "VAS transfer: character {} moved from `{}` to `{}` (realm {}).",
charGuid, sourceDb, targetDb, targetRealmId);
return TRANSFER_OK;
}
@@ -0,0 +1,82 @@
/*
* This file is part of the TrinityCore Project. See AUTHORS file for Copyright information
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation; either version 2 of the License, or (at your
* option) any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef TRINITYCORE_VAS_TRANSFER_MGR_H
#define TRINITYCORE_VAS_TRANSFER_MGR_H
#include "Define.h"
#include "ObjectGuid.h"
#include <string>
#include <unordered_map>
// Value-Added Service: paid character transfer between the realms this bnetserver fronts.
//
// The realms share one auth DB but each has its own characters DB on the same MySQL instance, so a transfer
// is a cross-database row move of the character and everything keyed to it, then a delete from the source.
// WoW's only per-realm unique key is the character NAME, so the sole hard rejection is a same-name character
// on the target; guids are kept when free and the move is refused (never silently remapped) when a guid would
// collide, so a transfer either completes intact or does not happen - it never corrupts either realm.
//
// The realm -> characters-database mapping is not in any schema, so it comes from one worldserver config line:
// VAS.TransferRealmDatabases = "1:tc_characters,2:playerbot_characters,3:integ_characters"
class TC_GAME_API VasTransferMgr
{
public:
enum TransferResult : uint8
{
TRANSFER_OK = 0,
TRANSFER_ERR_NO_TARGET, // no chars-db configured for the target realm (or it is this realm)
TRANSFER_ERR_NO_SOURCE, // no chars-db configured for this realm
TRANSFER_ERR_CHAR_NOT_FOUND, // no such character in the source db
TRANSFER_ERR_IN_WORLD, // the character is currently online - transfer only from char-select
TRANSFER_ERR_NAME_TAKEN, // a character with the same name already exists on the target
TRANSFER_ERR_GUID_COLLISION, // the character or one of its item guids already exists on the target
TRANSFER_ERR_DB // an unexpected database failure - the transaction rolled back
};
static VasTransferMgr* instance();
VasTransferMgr(VasTransferMgr const&) = delete;
VasTransferMgr& operator=(VasTransferMgr const&) = delete;
void LoadConfig(); // World::LoadConfigSettings
// The characters database configured for a realm id, or empty if none is mapped.
std::string GetRealmDatabase(uint32 realmId) const;
bool IsEnabled() const { return _enabled; }
// Move the character (source realm = this realm) to targetRealmId. Synchronous and transactional; on any
// rejection nothing is written. outName/outTargetDb are filled for the caller's log/response when non-null.
// With validateOnly = true it runs every eligibility/collision check and returns the same result WITHOUT
// moving anything - the client's transfer flow validates before it commits, and so does the server.
TransferResult TransferCharacter(ObjectGuid::LowType charGuid, uint32 targetRealmId,
std::string* outName = nullptr, std::string* outTargetDb = nullptr, bool validateOnly = false);
static char const* ResultString(TransferResult result);
private:
VasTransferMgr() = default;
~VasTransferMgr() = default;
bool _enabled = false;
std::unordered_map<uint32, std::string> _realmDatabases; // realm id -> characters db name
};
#define sVasTransferMgr VasTransferMgr::instance()
#endif // TRINITYCORE_VAS_TRANSFER_MGR_H
+6 -1
View File
@@ -135,6 +135,7 @@ enum BattlegroundTimeIntervals
INVITATION_REMIND_TIME = 20000, // ms
INVITE_ACCEPT_WAIT_TIME = 90000, // ms
TIME_AUTOCLOSE_BATTLEGROUND = 120000, // ms
PROPOSAL_CONFIRM_WAIT_TIME = 28000, // ms
MAX_OFFLINE_TIME = 300, // secs
RESPAWN_ONE_DAY = 86400, // secs
RESPAWN_IMMEDIATELY = 0, // secs
@@ -142,6 +143,7 @@ enum BattlegroundTimeIntervals
BATTLEGROUND_COUNTDOWN_MAX = 120, // secs
ARENA_COUNTDOWN_MAX = 60, // secs
PLAYER_POSITION_UPDATE_INTERVAL = 5000, // ms
PROPOSAL_ACCEPT_WAIT_TIME = 30000, // ms
};
enum BattlegroundStartTimeIntervals
@@ -236,7 +238,10 @@ enum class BattlegroundQueueIdType : uint8
Arena = 1,
Wargame = 2,
Cheat = 3,
ArenaSkirmish = 4
ArenaSkirmish = 4,
RatedBattlegroundBlitz = 9,
RatedSoloShuffle = 10,
TrainingGrounds = 11
};
enum class BattlegroundPointCaptureStatus
+313 -31
View File
@@ -34,6 +34,11 @@
#include "World.h"
#include "WorldSession.h"
//WowCommunity
#include "BattlegroundSoloShuffle.h"
#include "BattlegroundTrainingGrounds.h"
//WowCommunity
bool BattlegroundTemplate::IsArena() const
{
return BattlemasterEntry->GetType() == BattlemasterType::Arena;
@@ -136,22 +141,56 @@ void BattlegroundMgr::Update(uint32 diff)
GetBattlegroundQueue(bgQueueTypeId).BattlegroundQueueUpdate(diff, bracket_id, arenaMMRating);
}
// if rating difference counts, maybe force-update queues
if (sWorld->getIntConfig(CONFIG_ARENA_MAX_RATING_DIFFERENCE) && sWorld->getIntConfig(CONFIG_ARENA_RATED_UPDATE_TIMER))
// The periodic sweep of the rated queues. Arena.RatedUpdateTimer is the tick for all three of them; a
// realm that sets it to 0 has switched the sweep off altogether and every rated queue is then moved only
// by the ScheduleQueueUpdate a join or a leave triggers.
if (uint32 const ratedUpdateTimer = sWorld->getIntConfig(CONFIG_ARENA_RATED_UPDATE_TIMER))
{
// it's time to force update
if (m_NextRatedArenaUpdate < diff)
{
// forced update for rated arenas (scan all, but skipped non rated)
TC_LOG_TRACE("bg.arena", "BattlegroundMgr: UPDATING ARENA QUEUES");
for (uint8 teamSize : { ARENA_TYPE_2v2, ARENA_TYPE_3v3, ARENA_TYPE_5v5 })
// The arena scan keeps the extra condition it has carried upstream for years. That condition is
// odd - GetMaxRatingDifference() turns a configured 0 into 5000, so Arena.MaxRatingDifference = 0
// does not actually disable rated arena matching, it only widens it - but rated arena is not this
// unit's subject and its sweep is left exactly as it was found.
if (sWorld->getIntConfig(CONFIG_ARENA_MAX_RATING_DIFFERENCE))
{
BattlegroundQueueTypeId ratedArenaQueueId = BGQueueTypeId(BATTLEGROUND_AA, BattlegroundQueueIdType::Arena, true, teamSize);
for (int bracket = BG_BRACKET_ID_FIRST; bracket < MAX_BATTLEGROUND_BRACKETS; ++bracket)
GetBattlegroundQueue(ratedArenaQueueId).BattlegroundQueueUpdate(diff, BattlegroundBracketId(bracket), 0);
// forced update for rated arenas (scan all, but skipped non rated)
TC_LOG_TRACE("bg.arena", "BattlegroundMgr: UPDATING ARENA QUEUES");
for (uint8 teamSize : { ARENA_TYPE_2v2, ARENA_TYPE_3v3, ARENA_TYPE_5v5 })
{
BattlegroundQueueTypeId ratedArenaQueueId = BGQueueTypeId(BATTLEGROUND_AA, BattlegroundQueueIdType::Arena, true, teamSize);
for (int bracket = BG_BRACKET_ID_FIRST; bracket < MAX_BATTLEGROUND_BRACKETS; ++bracket)
GetBattlegroundQueue(ratedArenaQueueId).BattlegroundQueueUpdate(diff, BattlegroundBracketId(bracket), 0);
}
}
m_NextRatedArenaUpdate = sWorld->getIntConfig(CONFIG_ARENA_RATED_UPDATE_TIMER);
// Battleground Blitz is a rated queue too and needs the same periodic sweep. Without it the
// queue is only ever re-evaluated by the ScheduleQueueUpdate a join or a leave triggers, so a
// queue that could not form a match at join time (for example the healer quota was not met yet)
// would sit idle until the next player happens to join, rather than retrying on its own.
// Deliberately NOT under the Arena.MaxRatingDifference condition above: CheckSoloQueueMatch
// reads no rating at all, it orders by JoinTime and fills a role quota, so that option says
// nothing about this queue and switching it off must not switch this sweep off with it.
BattlegroundQueueTypeId blitzQueueId = BGQueueTypeId(BATTLEGROUND_BLITZ, BattlegroundQueueIdType::RatedBattlegroundBlitz, true, 0);
for (int bracket = BG_BRACKET_ID_FIRST; bracket < MAX_BATTLEGROUND_BRACKETS; ++bracket)
GetBattlegroundQueue(blitzQueueId).BattlegroundQueueUpdate(diff, BattlegroundBracketId(bracket), 0);
// Rated Solo Shuffle uses the same solo-matchmaker (CheckSoloQueueMatch) and needs the same
// rating-independent periodic sweep for exactly the reasons above.
BattlegroundQueueTypeId soloShuffleQueueId = BGQueueTypeId(BATTLEGROUND_SOLO_SHUFFLE, BattlegroundQueueIdType::RatedSoloShuffle, true, 0);
for (int bracket = BG_BRACKET_ID_FIRST; bracket < MAX_BATTLEGROUND_BRACKETS; ++bracket)
GetBattlegroundQueue(soloShuffleQueueId).BattlegroundQueueUpdate(diff, BattlegroundBracketId(bracket), 0);
// Rated battlegrounds are matched by CheckPremadeMatch, which only runs when something
// schedules an update. Sweep it on the same timer so a queue that could not pair two
// premades at join time retries instead of sitting idle. CheckPremadeMatch reads no rating
// either, so the same reasoning as for Blitz applies.
BattlegroundQueueTypeId ratedBgQueueId = BGQueueTypeId(BATTLEGROUND_RATED_10_VS_10, BattlegroundQueueIdType::Battleground, true, 0);
for (int bracket = BG_BRACKET_ID_FIRST; bracket < MAX_BATTLEGROUND_BRACKETS; ++bracket)
GetBattlegroundQueue(ratedBgQueueId).BattlegroundQueueUpdate(diff, BattlegroundBracketId(bracket), 0);
m_NextRatedArenaUpdate = ratedUpdateTimer;
}
else
m_NextRatedArenaUpdate -= diff;
@@ -181,12 +220,24 @@ void BattlegroundMgr::BuildBattlegroundStatusNone(WorldPackets::Battleground::Ba
battlefieldStatus->Ticket.Time = joinTime;
}
void BattlegroundMgr::BuildBattlegroundStatusNeedConfirmation(WorldPackets::Battleground::BattlefieldStatusNeedConfirmation* battlefieldStatus, Battleground const* bg, Player const* player, uint32 ticketId, uint32 joinTime, uint32 timeout, BattlegroundQueueTypeId queueId)
// role is the INVITED player's own role, not the queuer's and not a mask. The client reads the byte as a
// signed char (consumer RVA 0x21BFDB0, image base 0x7FF780FD0000), stores it in the battlefield-status slot
// and immediately turns it into a role BIT with "1 << (role + 1)", then keys a table lookup on the same
// role + 1 before firing UPDATE_BATTLEFIELD_STATUS. That shift is what identifies the numbering beyond
// doubt: ChrSpecializationRole Tank 0 / Healer 1 / Dps 2 maps onto 2 / 4 / 8, which is exactly
// lfg::PLAYER_ROLE_TANK / _HEALER / _DAMAGE. A hardcoded 0 therefore did not mean "unset" - it announced
// every invited player, in every mode, as a TANK.
// Retail agrees: all three SMSG_BATTLEFIELD_STATUS_NEED_CONFIRMATION bodies in C:\sniff\rated BG 12.0.7.pkt
// (ticks 136714 / 864798 / 896705, 55 bytes each) carry 0x01, and the queuer of that capture is a Holy
// Priest - SMSG_BATTLEFIELD_STATUS_QUEUED at tick 136009 carries SpecSelected 257 - who joined with role
// mask 0x04, lfg::PLAYER_ROLE_HEALER. A mask on the wire would have read 4, not 1.
void BattlegroundMgr::BuildBattlegroundStatusNeedConfirmation(WorldPackets::Battleground::BattlefieldStatusNeedConfirmation* battlefieldStatus, Battleground const* bg, Player const* player, uint32 ticketId, uint32 joinTime, uint32 timeout, BattlegroundQueueTypeId queueId,
ChrSpecializationRole role)
{
BuildBattlegroundStatusHeader(&battlefieldStatus->Hdr, player, ticketId, joinTime, queueId);
battlefieldStatus->Mapid = bg->GetMapId();
battlefieldStatus->Timeout = timeout;
battlefieldStatus->Role = 0;
battlefieldStatus->Role = uint8(AsUnderlyingType(role));
}
void BattlegroundMgr::BuildBattlegroundStatusActive(WorldPackets::Battleground::BattlefieldStatusActive* battlefieldStatus, Battleground const* bg, Player const* player, uint32 ticketId, uint32 joinTime, BattlegroundQueueTypeId queueId)
@@ -207,6 +258,10 @@ void BattlegroundMgr::BuildBattlegroundStatusQueued(WorldPackets::Battleground::
battlefieldStatus->SuspendedQueue = false;
battlefieldStatus->EligibleForMatchmaking = true;
battlefieldStatus->WaitTime = GetMSTimeDiffToNow(joinTime);
//WowCommunity
// Retail populates this: the sniffed reply to a Battleground Blitz join carried SpecSelected 257
// (Holy Priest) for a healer-flagged queuer. It was previously left at 0 for every queue.
battlefieldStatus->SpecSelected = AsUnderlyingType(player->GetPrimarySpecialization());
}
void BattlegroundMgr::BuildBattlegroundStatusFailed(WorldPackets::Battleground::BattlefieldStatusFailed* battlefieldStatus, BattlegroundQueueTypeId queueId, Player const* player, uint32 ticketId, GroupJoinBattlegroundResult result, ObjectGuid const* errorGuid /*= nullptr*/)
@@ -228,7 +283,16 @@ Battleground* BattlegroundMgr::GetBattleground(uint32 instanceId, BattlegroundTy
BattlegroundDataContainer::const_iterator begin, end;
if (bgTypeId == BATTLEGROUND_TYPE_NONE || IsRandomBattleground(bgTypeId))
// An aggregate BattlemasterList (Blitz 1101, Rated Battleground 100, the random-BG pools, the multi-map
// brawls, All Arenas) is never the key its own instances are stored under: CreateNewBattleground resolves
// it through GetRandomBG to one of its maps and AddBattleground files the instance under
// bg->GetTypeID(), which is that map's single-map template id. Callers that only have the queue id -
// WorldSession::HandleBattleFieldPortOpcode, BGQueueInviteEvent/BGQueueRemoveEvent::Execute,
// BattlegroundQueue::RemovePlayer - would otherwise look in bgDataStore[1101], which
// CreateClientVisibleInstanceId creates but nothing ever fills, and get a null back. The instance id is
// generated by MapManager::GenerateInstanceId and is unique across all types, so the wider search cannot
// return the wrong battleground.
if (bgTypeId == BATTLEGROUND_TYPE_NONE || IsRandomBattleground(bgTypeId) || IsAggregateBattleground(bgTypeId))
{
begin = bgDataStore.begin();
end = bgDataStore.end();
@@ -342,33 +406,63 @@ uint32 BattlegroundMgr::CreateClientVisibleInstanceId(BattlegroundTypeId bgTypeI
// create a new battleground that will really be used to play
Battleground* BattlegroundMgr::CreateNewBattleground(BattlegroundQueueTypeId queueId, BattlegroundBracketId bracketId)
{
BattlegroundTypeId bgTypeId = GetRandomBG(BattlegroundTypeId(queueId.BattlemasterListId));
// The bracket belongs to the QUEUE, not to the map that is about to be drawn. Every join handler derives
// it with GetBattlegroundBracketByLevel(queueTemplate->MapIDs.front(), level), the queue stores its groups
// under that id, and BattlegroundQueue reads bg->GetBracketId() back as if it were the same number - in
// the free-slot loop (`bg->GetBracketId() == bracket_id`), in PlayerInvitedToBGUpdateAverageWaitTime and
// in both ScheduleQueueUpdate calls. Resolving it a second time on the drawn map, as this used to do,
// breaks that identity for every aggregate whose maps have unequal PVPDifficulty ladders, and fails
// outright when the drawn map has no such RangeIndex at all. So: look the bracket up once, on the same
// map the queue used, and let GetRandomBG restrict the draw to maps that can host it.
BattlegroundTypeId const queueTypeId = BattlegroundTypeId(queueId.BattlemasterListId);
BattlegroundTemplate const* queueTemplate = GetBattlegroundTemplateByTypeId(queueTypeId);
if (!queueTemplate || queueTemplate->MapIDs.empty())
{
TC_LOG_ERROR("bg.battleground", "Battleground: CreateNewBattleground - queue template not found (or has no maps) for {}", queueTypeId);
return nullptr;
}
PVPDifficultyEntry const* bracketEntry = DB2Manager::GetBattlegroundBracketById(queueTemplate->MapIDs.front(), bracketId);
if (!bracketEntry)
{
TC_LOG_ERROR("bg.battleground", "Battleground: CreateNewBattleground: bg bracket entry not found for map {} bracket id {}", queueTemplate->MapIDs.front(), bracketId);
return nullptr;
}
BattlegroundTypeId bgTypeId = GetRandomBG(queueTypeId, bracketEntry);
// get the template BG
BattlegroundTemplate const* bg_template = GetBattlegroundTemplateByTypeId(bgTypeId);
if (!bg_template)
{
TC_LOG_ERROR("bg.battleground", "Battleground: CreateNewBattleground - bg template not found for {}", bgTypeId);
return nullptr;
}
PVPDifficultyEntry const* bracketEntry = DB2Manager::GetBattlegroundBracketById(bg_template->MapIDs.front(), bracketId);
if (!bracketEntry)
{
TC_LOG_ERROR("bg.battleground", "Battleground: CreateNewBattleground: bg bracket entry not found for map {} bracket id {}", bg_template->MapIDs.front(), bracketId);
TC_LOG_ERROR("bg.battleground", "Battleground: CreateNewBattleground - no runnable map for {} in level range {}-{} (bracket id {})",
queueTypeId, uint32(bracketEntry->MinLevel), uint32(bracketEntry->MaxLevel), bracketId);
return nullptr;
}
Battleground* bg = nullptr;
if (bg_template->IsArena())
if (bgTypeId == BATTLEGROUND_SOLO_SHUFFLE)
bg = new BattlegroundSoloShuffle(bg_template); // 6-round 3v3 shuffle controller
else if (bgTypeId == BATTLEGROUND_TRAINING_GROUNDS)
bg = new BattlegroundTrainingGrounds(bg_template); // solo practice (never auto-ends)
else if (bg_template->IsArena())
bg = new Arena(bg_template);
else
bg = new Battleground(bg_template);
bg->SetBracket(bracketEntry);
bg->SetInstanceID(sMapMgr->GenerateInstanceId());
bg->SetClientInstanceID(CreateClientVisibleInstanceId(BattlegroundTypeId(queueId.BattlemasterListId), bracketEntry->GetBracketId()));
// Numbered under the DRAWN type, not under the queue's aggregate id, because that is the key the number is
// given back under: BattlegroundMgr::Update frees it from itr1->second.m_ClientBattlegroundIds, and itr1 is
// the bgDataStore entry the instance is FILED in - bgDataStore[bg->GetTypeID()], set by AddBattleground.
// Allocating from bgDataStore[1101] and releasing into bgDataStore[2106] was wrong twice over: the
// aggregate's own pool never shrank, so its numbers climbed forever, and the release erased a number that
// belonged to the drawn map's own queue, which could then hand the same "Warsong Gulch 3" to two live
// instances. Not one of the audited findings - found while making the bracket above queue-side - and it is
// inherited, Random Battleground (32) has behaved this way all along. The number is also what the client
// shows next to the map name, so the map's own series is the one it belongs in.
bg->SetClientInstanceID(CreateClientVisibleInstanceId(bgTypeId, bracketEntry->GetBracketId()));
// reset the new bg (set status to status_wait_queue from status_none)
// this shouldn't be needed anymore as a new Battleground instance is created each time. But some bg sub classes still depend on it.
bg->Reset();
@@ -424,7 +518,19 @@ void BattlegroundMgr::LoadBattlegroundTemplates()
bgTemplate.BattlemasterEntry = bl;
bgTemplate.MapIDs = std::move(mapsByBattleground[bgTypeId]);
if (bgTemplate.Id != BATTLEGROUND_AA && !IsRandomBattleground(bgTemplate.Id))
// Aggregate templates (All Arenas, the random-BG pools, Battleground Blitz, multi-map brawls) never
// spawn anyone themselves: CreateNewBattleground resolves their BattlemasterListXMap maps back to the
// individual single-map templates, which carry the real start locations. Requiring a WorldSafeLocs id
// here would mean inventing one that is never used, and a wrong id silently drops the whole template.
//
// A brawl only qualifies when it really is multi-map - the single-map brawl rows (PvpBrawl 12-16, the
// per-map Deep Six entries) point at one map each and would then register themselves over that map's own
// template two lines below, hijacking normal queues for it.
bool const isMultiMapBrawl = bgTemplate.MapIDs.size() > 1 && bl->GetFlags().HasFlag(BattlemasterListFlags::IsBrawl);
if (bgTemplate.Id != BATTLEGROUND_AA && bgTemplate.Id != BATTLEGROUND_BLITZ
&& bgTemplate.Id != BATTLEGROUND_RATED_10_VS_10 && !IsRandomBattleground(bgTemplate.Id) && !isMultiMapBrawl)
{
uint32 startId = fields[1].GetUInt32();
if (WorldSafeLocsEntry const* start = sObjectMgr->GetWorldSafeLoc(startId))
@@ -569,11 +675,40 @@ bool BattlegroundMgr::IsValidQueueId(BattlegroundQueueTypeId bgQueueTypeId)
case BattlegroundQueueIdType::ArenaSkirmish:
if (battlemasterList->GetType() != BattlemasterType::Arena)
return false;
if (!bgQueueTypeId.Rated)
if (bgQueueTypeId.Rated)
return false;
if (bgQueueTypeId.TeamSize != ARENA_TYPE_3v3)
return false;
break;
case BattlegroundQueueIdType::RatedBattlegroundBlitz:
// BattlemasterList 1101 ("Battleground Blitz") carries PvpType 0, so GetType() is Battleground and
// not Arena, even though the mode is rated. Rated must be set and TeamSize must be 0 - both read
// straight off the packed QueueID retail sent back to the client (0x1F1000000019044D).
if (battlemasterList->GetType() != BattlemasterType::Battleground)
return false;
if (!bgQueueTypeId.Rated)
return false;
if (bgQueueTypeId.TeamSize)
return false;
break;
case BattlegroundQueueIdType::RatedSoloShuffle:
// BattlemasterList 1065 ("All Arenas", solo) is an arena entry, so GetType() is Arena. Rated must be
// set; TeamSize is 0 (the mode is implied by the queue Type - the lobby is always 6 players, 3v3 rounds).
if (battlemasterList->GetType() != BattlemasterType::Arena)
return false;
if (!bgQueueTypeId.Rated)
return false;
if (bgQueueTypeId.TeamSize)
return false;
break;
case BattlegroundQueueIdType::TrainingGrounds:
// Solo, unrated practice. BattlemasterList 1145 spans both arena and battleground practice maps, so
// the type is not constrained here; only Rated (must be false) and TeamSize (0) are.
if (bgQueueTypeId.Rated)
return false;
if (bgQueueTypeId.TeamSize)
return false;
break;
default:
return false;
}
@@ -709,7 +844,28 @@ bool BattlegroundMgr::IsBGWeekend(BattlegroundTypeId bgTypeId)
return IsHolidayActive(BGTypeToWeekendHolidayId(bgTypeId));
}
BattlegroundTypeId BattlegroundMgr::GetRandomBG(BattlegroundTypeId bgTypeId)
// PVPDifficulty.RangeIndex is numbered per map, and the ladders of the maps inside one aggregate
// BattlemasterList are NOT aligned. Battleground Blitz (1101) and Rated Battleground (100) both list nine
// maps: seven of them carry the full ten-step ladder 10-19 .. 90-90, but map 968 (Silvershard Mines) starts
// at 50-59 and has six steps, and map 2656 starts at 71-79 and has four. A queue bracket computed on the
// aggregate's first map - which is what every join handler does, and what the queue is keyed by - therefore
// means a different level range on those two maps, or none at all: for levels 60-70 map 2656 has no bracket
// whatsoever, so DB2Manager::GetBattlegroundBracketByLevel returns null there. Random Epic (901) has the
// same shape, with map 2799 holding only 90-90.
//
// A map that cannot host the queue's level range must not be drawn. Otherwise CreateNewBattleground fails
// after the matchmaker has already picked the teams and rewritten their factions, and - once the instance
// does come up on such a map - WorldSession::HandleBattleFieldPortOpcode looks the bracket up again on
// bg->GetMapId() and returns in silence when it finds none, stranding the accepted invitation.
static bool MapCanHostBracket(uint32 mapId, PVPDifficultyEntry const* queueBracket)
{
// GetBattlegroundBracketByLevel falls back to the highest bracket below the level, so test containment
// explicitly instead of trusting a non-null result.
PVPDifficultyEntry const* entry = DB2Manager::GetBattlegroundBracketByLevel(mapId, queueBracket->MinLevel);
return entry && entry->MinLevel <= queueBracket->MinLevel && entry->MaxLevel >= queueBracket->MaxLevel;
}
BattlegroundTypeId BattlegroundMgr::GetRandomBG(BattlegroundTypeId bgTypeId, PVPDifficultyEntry const* queueBracket /*= nullptr*/)
{
if (BattlegroundTemplate const* bgTemplate = GetBattlegroundTemplateByTypeId(bgTypeId))
{
@@ -719,8 +875,13 @@ BattlegroundTypeId BattlegroundMgr::GetRandomBG(BattlegroundTypeId bgTypeId)
std::vector<BattlegroundTemplate const*> ids;
ids.reserve(bgTemplate->MapIDs.size());
for (int32 mapId : bgTemplate->MapIDs)
{
if (queueBracket && !MapCanHostBracket(mapId, queueBracket))
continue;
if (BattlegroundTemplate const* bg = GetBattlegroundTemplateByMapId(mapId))
ids.push_back(bg);
}
if (!ids.empty())
return (*Trinity::Containers::SelectRandomWeightedContainerElement(ids, [](BattlegroundTemplate const* bg) { return bg->Weight; }))->Id;
@@ -759,14 +920,73 @@ void BattlegroundMgr::AddBattleground(Battleground* bg)
}
}
BattlegroundTypeId BattlegroundMgr::GetActiveBrawl() const
// Which brawl is running is a server-side decision on TrinityCore, and that is not a shortcut - it is what the
// client dictates. PvpBrawl.db2 has exactly seven columns (Name_lang, Description_lang, Objective_lang, ID,
// BattlemasterListID, LFGDungeonsID, RewardsQuestID); there is no holiday reference, no date and no flags in it,
// and no other client table schedules brawls. The client learns the running brawl only from
// SMSG_REQUEST_SCHEDULED_PVP_INFO_RESPONSE, whose handler (client VA 0x7FF72AAC2120) is the sole writer of the
// two globals the entire brawl UI reads. So the rotation has to come from configuration.
//
// Everything after the config read is a refusal to advertise a brawl we could not actually run: the whole point
// of gating here is that HandleRequestScheduledPvpInfo and HandleBattlemasterJoinBrawl consult the same function,
// so the client is never shown a queueable Brawl button for a mode the queue would drop.
Optional<BattlegroundMgr::ActiveBrawl> BattlegroundMgr::GetActiveBrawl()
{
for (auto const& [bgTypeId, bgTemplate] : _battlegroundTemplates)
if (!sWorld->getBoolConfig(CONFIG_BRAWL_ENABLED))
return {};
ActiveBrawl brawl;
brawl.PvpBrawlId = sWorld->getIntConfig(CONFIG_BRAWL_PVP_BRAWL_ID);
brawl.BattlemasterListId = sWorld->getIntConfig(CONFIG_BRAWL_BATTLEMASTER_LIST_ID);
if (!brawl.PvpBrawlId || !brawl.BattlemasterListId)
return {};
// This runs once per client login, so a bad config would otherwise repeat its complaint forever. Say it once.
static uint32 loggedBadConfigFor = 0;
auto complainOnce = [&](char const* what)
{
if (loggedBadConfigFor == brawl.BattlemasterListId)
return;
loggedBadConfigFor = brawl.BattlemasterListId;
TC_LOG_ERROR("bg.battleground", "Brawl.BattlemasterListID {} {} - no brawl will be advertised.", brawl.BattlemasterListId, what);
};
BattlemasterListEntry const* battlemasterList = sBattlemasterListStore.LookupEntry(brawl.BattlemasterListId);
if (!battlemasterList)
{
if (bgTemplate.BattlemasterEntry && bgTemplate.BattlemasterEntry->GetFlags().HasFlag(BattlemasterListFlags::IsBrawl))
return bgTypeId;
complainOnce("does not exist in BattlemasterList.db2");
return {};
}
return BATTLEGROUND_TYPE_NONE;
// BattlemasterList.Flags bit 0x20 is IsBrawl. Refusing anything else keeps a typo in the config from turning
// an ordinary battleground into "the brawl" and mislabelling it in every client that asks.
if (!battlemasterList->GetFlags().HasFlag(BattlemasterListFlags::IsBrawl))
{
complainOnce("is not flagged IsBrawl in BattlemasterList.db2");
return {};
}
if (battlemasterList->GetFlags().HasFlag(BattlemasterListFlags::InternalOnly))
return {};
if (DisableMgr::IsDisabledFor(DISABLE_TYPE_BATTLEGROUND, brawl.BattlemasterListId, nullptr))
return {};
// No battleground_template row means CreateNewBattleground would fail: the queue could accept players and
// never pop. Do not advertise it.
BattlegroundTemplate const* bgTemplate = GetBattlegroundTemplateByTypeId(BattlegroundTypeId(brawl.BattlemasterListId));
if (!bgTemplate || bgTemplate->MapIDs.empty())
return {};
// GetRandomBG resolves the brawl's BattlemasterListXMap maps back to the single-map templates that own the
// start locations. If none of them resolves there is no map to send anyone to.
if (GetRandomBG(BattlegroundTypeId(brawl.BattlemasterListId)) == BATTLEGROUND_TYPE_NONE)
return {};
return brawl;
}
void BattlegroundMgr::GetActiveArenas(std::vector<Battleground*>& arenas) const
@@ -781,3 +1001,65 @@ void BattlegroundMgr::GetActiveArenas(std::vector<Battleground*>& arenas) const
}
}
}
void BattlegroundMgr::BuildBattlegroundStatusWaitForGroups(WorldPackets::Battleground::BattlefieldStatusWaitForGroups* battlefieldStatus, Player const* player, uint32 ticketId, uint32 joinTime, BattlegroundQueueTypeId queueId,
uint32 mapId, uint32 timeout, std::array<uint8, 2> const& slotsPerSide, std::array<uint8, 2> const& awaitedPerSide, WorldPackets::Battleground::PvpRoleQueueCounts const& roles)
{
BuildBattlegroundStatusHeader(&battlefieldStatus->Hdr, player, ticketId, joinTime, queueId);
battlefieldStatus->Mapid = mapId;
battlefieldStatus->Timeout = timeout;
battlefieldStatus->SlotsPerSide = slotsPerSide;
battlefieldStatus->AwaitedPerSide = awaitedPerSide;
battlefieldStatus->Roles = roles;
}
void BattlegroundMgr::BuildBattlegroundStatusGroupProposalFailed(WorldPackets::Battleground::BattlefieldStatusGroupProposalFailed* battlefieldStatus, Player const* player, uint32 ticketId, uint32 joinTime, BattlegroundQueueTypeId queueId,
WorldPackets::Battleground::PvpRoleQueueCounts const& roles)
{
BuildBattlegroundStatusHeader(&battlefieldStatus->Hdr, player, ticketId, joinTime, queueId);
battlefieldStatus->Roles = roles;
}
void BattlegroundMgr::PortPlayerToBattleground(Player* player, Battleground* bg, Team team, BattlegroundQueueTypeId queueId, uint32 ticketId)
{
if (!player->InBattleground())
player->SetBattlegroundEntryPoint();
// resurrect the player
if (!player->IsAlive())
{
player->ResurrectPlayer(1.0f);
player->SpawnCorpseBones();
}
// stop taxi flight at port
player->FinishTaxiFlight();
WorldPackets::Battleground::BattlefieldStatusActive battlefieldStatus;
BuildBattlegroundStatusActive(&battlefieldStatus, bg, player, ticketId, player->GetBattlegroundQueueJoinTime(queueId), queueId);
player->SendDirectMessage(battlefieldStatus.Write());
// remove battleground queue status from BGmgr
sBattlegroundMgr->GetBattlegroundQueue(queueId).RemovePlayer(player->GetGUID(), false);
// this is still needed here if battleground "jumping" shouldn't add deserter debuff
// also this is required to prevent stuck at old battleground after SetBattlegroundId set to new
if (Battleground* currentBg = player->GetBattleground())
currentBg->RemovePlayerAtLeave(player->GetGUID(), false, true);
// set the destination instance id
player->SetBattlegroundId(bg->GetInstanceID(), bg->GetTypeID(), queueId);
// set the destination team
player->SetBGTeam(team);
SendToBattleground(player, bg);
TC_LOG_DEBUG("bg.battleground", "Battleground: player {} ({}) joined battle for bg {}, bgtype {}, queue {{ BattlemasterListId: {}, Type: {}, Rated: {}, TeamSize: {} }}.",
player->GetName(), player->GetGUID().ToString(), bg->GetInstanceID(), bg->GetTypeID(),
queueId.BattlemasterListId, uint32(queueId.Type), queueId.Rated ? "true" : "false", uint32(queueId.TeamSize));
}
bool BattlegroundMgr::IsAggregateBattleground(BattlegroundTypeId bgTypeId)
{
BattlegroundTemplate const* bgTemplate = GetBattlegroundTemplateByTypeId(bgTypeId);
return bgTemplate && bgTemplate->MapIDs.size() > 1;
}
@@ -24,6 +24,7 @@
#include "BattlegroundQueue.h"
#include "UniqueTrackablePtr.h"
#include <unordered_map>
#include <array>
class Battleground;
struct BattlemasterListEntry;
@@ -73,11 +74,14 @@ namespace WorldPackets
namespace Battleground
{
struct BattlefieldStatusHeader;
struct PvpRoleQueueCounts;
class BattlefieldStatusNone;
class BattlefieldStatusNeedConfirmation;
class BattlefieldStatusActive;
class BattlefieldStatusQueued;
class BattlefieldStatusFailed;
class BattlefieldStatusWaitForGroups;
class BattlefieldStatusGroupProposalFailed;
}
}
@@ -101,7 +105,8 @@ class TC_GAME_API BattlegroundMgr
void SendBattlegroundList(Player* player, ObjectGuid const& guid, BattlegroundTypeId bgTypeId);
static void BuildBattlegroundStatusHeader(WorldPackets::Battleground::BattlefieldStatusHeader* header, Player const* player, uint32 ticketId, uint32 joinTime, BattlegroundQueueTypeId queueId);
static void BuildBattlegroundStatusNone(WorldPackets::Battleground::BattlefieldStatusNone* battlefieldStatus, Player const* player, uint32 ticketId, uint32 joinTime);
static void BuildBattlegroundStatusNeedConfirmation(WorldPackets::Battleground::BattlefieldStatusNeedConfirmation* battlefieldStatus, Battleground const* bg, Player const* player, uint32 ticketId, uint32 joinTime, uint32 timeout, BattlegroundQueueTypeId queueId);
static void BuildBattlegroundStatusNeedConfirmation(WorldPackets::Battleground::BattlefieldStatusNeedConfirmation* battlefieldStatus, Battleground const* bg, Player const* player, uint32 ticketId, uint32 joinTime, uint32 timeout, BattlegroundQueueTypeId queueId,
ChrSpecializationRole role);
static void BuildBattlegroundStatusActive(WorldPackets::Battleground::BattlefieldStatusActive* battlefieldStatus, Battleground const* bg, Player const* player, uint32 ticketId, uint32 joinTime, BattlegroundQueueTypeId queueId);
static void BuildBattlegroundStatusQueued(WorldPackets::Battleground::BattlefieldStatusQueued* battlefieldStatus, Player const* player, uint32 ticketId, uint32 joinTime, BattlegroundQueueTypeId queueId, uint32 avgWaitTime, bool asGroup);
static void BuildBattlegroundStatusFailed(WorldPackets::Battleground::BattlefieldStatusFailed* battlefieldStatus, BattlegroundQueueTypeId queueId, Player const* player, uint32 ticketId, GroupJoinBattlegroundResult result, ObjectGuid const* errorGuid = nullptr);
@@ -111,7 +116,19 @@ class TC_GAME_API BattlegroundMgr
Battleground* CreateNewBattleground(BattlegroundQueueTypeId queueId, BattlegroundBracketId bracketId);
//WowCommunity
void GetActiveArenas(std::vector<Battleground*>& arenas) const; // all in-progress arena instances (commentator/spectator)
BattlegroundTypeId GetRandomBG(BattlegroundTypeId id);
// queueBracket, when given, restricts the draw to maps whose own PVPDifficulty ladder holds a single
// bracket that fully contains the queue bracket's level range. See the definition for why.
BattlegroundTypeId GetRandomBG(BattlegroundTypeId id, PVPDifficultyEntry const* queueBracket = nullptr);
static void BuildBattlegroundStatusWaitForGroups(WorldPackets::Battleground::BattlefieldStatusWaitForGroups* battlefieldStatus, Player const* player, uint32 ticketId, uint32 joinTime, BattlegroundQueueTypeId queueId,
uint32 mapId, uint32 timeout, std::array<uint8, 2> const& slotsPerSide, std::array<uint8, 2> const& awaitedPerSide, WorldPackets::Battleground::PvpRoleQueueCounts const& roles);
static void BuildBattlegroundStatusGroupProposalFailed(WorldPackets::Battleground::BattlefieldStatusGroupProposalFailed* battlefieldStatus, Player const* player, uint32 ticketId, uint32 joinTime, BattlegroundQueueTypeId queueId,
WorldPackets::Battleground::PvpRoleQueueCounts const& roles);
// Everything CMSG_BATTLEFIELD_PORT does once an invite is accepted and all the cheat checks have
// passed: leave the queue, drop out of any current battleground and teleport in. Split out of
// WorldSession::HandleBattleFieldPortOpcode because a group proposal has to run it for every member
// at once, not only for the session that happened to send the packet.
static void PortPlayerToBattleground(Player* player, Battleground* bg, Team team, BattlegroundQueueTypeId queueId, uint32 ticketId);
//WowCommunity
void AddBattleground(Battleground* bg);
@@ -141,6 +158,15 @@ class TC_GAME_API BattlegroundMgr
void SetFSBOverrideEnabled(bool enabled) { m_FSBOverrideEnabled = enabled; }
static bool IsRandomBattleground(uint32 battlemasterListId);
// True for a BattlemasterList that never runs itself. Its `battleground_template` row carries more than
// one BattlemasterListXMap map, so CreateNewBattleground draws one of them and builds the instance from
// THAT map's single-map template: the instance is filed in bgDataStore under the drawn type id, never
// under the queue's own id. Every lookup that starts from a queue id therefore has to search all types.
// Random Battleground (32) and Random Epic (901) are the two this tree already knew about by name; the
// 12.1 aggregates Battleground Blitz (1101), Rated Battleground (100) and the multi-map brawls behave
// exactly the same way, and so does All Arenas (6).
bool IsAggregateBattleground(BattlegroundTypeId bgTypeId);
static BattlegroundQueueTypeId BGQueueTypeId(uint16 battlemasterListId, BattlegroundQueueIdType type, bool rated, uint8 teamSize);
static HolidayIds BGTypeToWeekendHolidayId(BattlegroundTypeId bgTypeId);
@@ -172,7 +198,16 @@ class TC_GAME_API BattlegroundMgr
static void QueuePlayerForArena(Player const* player, uint8 teamSize, uint8 roles);
BattlegroundTypeId GetActiveBrawl() const;
/* PvP Brawl */
struct ActiveBrawl
{
uint32 PvpBrawlId = 0; // PvpBrawl.db2 row id - what the client is told
uint32 BattlemasterListId = 0; // PvpBrawl.db2 BattlemasterListID - what the server queues
};
// The running brawl, or nothing. Returns nothing unless the configured brawl can genuinely produce a
// match, so callers may treat a value as "advertising this is honest".
Optional<ActiveBrawl> GetActiveBrawl();
private:
uint32 CreateClientVisibleInstanceId(BattlegroundTypeId bgTypeId, BattlegroundBracketId bracket_id);
@@ -30,10 +30,96 @@
#include "Player.h"
#include "World.h"
//WowCommunity
#include "LFG.h"
#include "MapUtils.h"
#include <algorithm>
#include <utility>
//WowCommunity
/*********************************************************/
/*** BATTLEGROUND QUEUE SYSTEM ***/
/*********************************************************/
//WowCommunity
namespace
{
// Resolve one queued player to a single role.
//
// The specialization is the primary source: ChrSpecialization.db2 Role is a fact about the character, it
// exists for every member of a duo and not only for the queuer who sent the packet, and its numbering
// (Tank 0, Healer 1, Dps 2) is the very numbering the client expects back in the role block of
// SMSG_BATTLEFIELD_STATUS_WAIT_FOR_GROUPS.
//
// declaredRoles is the queuer's lfg::PLAYER_ROLE_* mask and is only used to NARROW that: a player whose spec
// role is not among the roles they offered is placed on one they did offer instead. It is deliberately not
// the primary source - it is self-reported, it is absent for every member except the queuer, and three of the
// join handlers accept a mask with several bits set at once.
ChrSpecializationRole ResolveQueueRole(Player const* player, uint8 declaredRoles)
{
ChrSpecializationRole specRole = ChrSpecializationRole::Dps;
if (ChrSpecializationEntry const* spec = player->GetPrimarySpecializationEntry())
specRole = spec->GetRole();
if (!declaredRoles)
return specRole;
auto declares = [declaredRoles](ChrSpecializationRole role)
{
switch (role)
{
case ChrSpecializationRole::Tank: return (declaredRoles & lfg::PLAYER_ROLE_TANK) != 0;
case ChrSpecializationRole::Healer: return (declaredRoles & lfg::PLAYER_ROLE_HEALER) != 0;
case ChrSpecializationRole::Dps: return (declaredRoles & lfg::PLAYER_ROLE_DAMAGE) != 0;
default: return false;
}
};
if (declares(specRole))
return specRole;
// Spec role was not offered. Take the scarcest role they did offer - a tank who queued as anything else
// is far more useful to the matchmaker as that other thing than as a tank it cannot actually field.
if (declares(ChrSpecializationRole::Tank))
return ChrSpecializationRole::Tank;
if (declares(ChrSpecializationRole::Healer))
return ChrSpecializationRole::Healer;
if (declares(ChrSpecializationRole::Dps))
return ChrSpecializationRole::Dps;
// Mask carried only PLAYER_ROLE_LEADER or nothing recognisable.
return specRole;
}
std::size_t RoleIndex(ChrSpecializationRole role)
{
return std::size_t(AsUnderlyingType(role));
}
// What one side of a solo-queue match must consist of. Damagers are whatever the other two quotas leave.
PvpRoleHeadcount SideQuota(uint32 playersPerTeam, uint32 tanksPerTeam, uint32 healersPerTeam)
{
return
{
uint8(tanksPerTeam),
uint8(healersPerTeam),
uint8(playersPerTeam - tanksPerTeam - healersPerTeam)
};
}
// A role the mode does not ask for is not a role in that mode: its players are damage dealers, which is both
// what retail does - the captured rated Blitz lobby wanted 0 tanks and reported every protection or blood
// spec in it as a damager - and the only sane alternative to leaving tanks queued forever behind a quota of
// zero they can never fill. It is also what turns both quotas being 0 into "no role balancing at all",
// because then every player folds into the damage bucket and the damage bucket is the whole team.
ChrSpecializationRole FoldRole(ChrSpecializationRole role, PvpRoleHeadcount const& quota)
{
return quota[RoleIndex(role)] ? role : ChrSpecializationRole::Dps;
}
}
//WowCommunity
BattlegroundQueue::BattlegroundQueue(BattlegroundQueueTypeId queueId) : m_queueId(queueId)
{
for (uint32 i = 0; i < PVP_TEAMS_COUNT; ++i)
@@ -130,7 +216,7 @@ bool BattlegroundQueue::SelectionPool::AddGroup(GroupQueueInfo* ginfo, uint32 de
/*********************************************************/
// add group or player (grp == NULL) to bg queue with the given leader and bg specifications
GroupQueueInfo* BattlegroundQueue::AddGroup(Player const* leader, Group const* group, Team team, PVPDifficultyEntry const* bracketEntry, bool isPremade, uint32 ArenaRating, uint32 MatchmakerRating)
GroupQueueInfo* BattlegroundQueue::AddGroup(Player const* leader, Group const* group, Team team, PVPDifficultyEntry const* bracketEntry, bool isPremade, uint32 ArenaRating, uint32 MatchmakerRating, uint8 roles)
{
BattlegroundBracketId bracketId = bracketEntry->GetBracketId();
@@ -144,6 +230,7 @@ GroupQueueInfo* BattlegroundQueue::AddGroup(Player const* leader, Group const* g
ginfo->ArenaMatchmakerRating = MatchmakerRating;
ginfo->OpponentsTeamRating = 0;
ginfo->OpponentsMatchmakerRating = 0;
ginfo->Roles = roles;
ginfo->Players.clear();
@@ -174,6 +261,9 @@ GroupQueueInfo* BattlegroundQueue::AddGroup(Player const* leader, Group const* g
PlayerQueueInfo& pl_info = m_QueuedPlayers[member->GetGUID()];
pl_info.LastOnlineTime = lastOnlineTime;
pl_info.GroupInfo = ginfo;
// Only the queuer's declared mask exists on the wire, so it narrows only the queuer's own role;
// every other member is resolved from their specialization alone.
pl_info.Role = ResolveQueueRole(member, member == leader ? roles : uint8(0));
// add the pinfo to ginfo's list
ginfo->Players[member->GetGUID()] = &pl_info;
}
@@ -183,6 +273,7 @@ GroupQueueInfo* BattlegroundQueue::AddGroup(Player const* leader, Group const* g
PlayerQueueInfo& pl_info = m_QueuedPlayers[leader->GetGUID()];
pl_info.LastOnlineTime = lastOnlineTime;
pl_info.GroupInfo = ginfo;
pl_info.Role = ResolveQueueRole(leader, roles);
ginfo->Players[leader->GetGUID()] = &pl_info;
}
@@ -440,7 +531,7 @@ uint32 BattlegroundQueue::GetQueuedPlayersCount(TeamId teamId, BattlegroundBrack
return count;
}
bool BattlegroundQueue::InviteGroupToBG(GroupQueueInfo* ginfo, Battleground* bg, Team side)
bool BattlegroundQueue::InviteGroupToBG(GroupQueueInfo* ginfo, Battleground* bg, Team side, uint32 inviteTime /*= INVITE_ACCEPT_WAIT_TIME*/, bool proposalManaged /*= false*/)
{
// set side if needed
if (side)
@@ -455,7 +546,7 @@ bool BattlegroundQueue::InviteGroupToBG(GroupQueueInfo* ginfo, Battleground* bg,
BattlegroundQueueTypeId bgQueueTypeId = m_queueId;
BattlegroundBracketId bracket_id = bg->GetBracketId();
ginfo->RemoveInviteTime = GameTime::GetGameTimeMS() + INVITE_ACCEPT_WAIT_TIME;
ginfo->RemoveInviteTime = GameTime::GetGameTimeMS() + inviteTime;
// loop through the players
for (std::map<ObjectGuid, PlayerQueueInfo*>::iterator itr = ginfo->Players.begin(); itr != ginfo->Players.end(); ++itr)
@@ -475,20 +566,55 @@ bool BattlegroundQueue::InviteGroupToBG(GroupQueueInfo* ginfo, Battleground* bg,
player->SetInviteForBattlegroundQueueType(bgQueueTypeId, ginfo->IsInvitedToBGInstanceGUID);
// create remind invite events - but never under a proposal. Retail sends exactly ONE
// SMSG_BATTLEFIELD_STATUS_NEED_CONFIRMATION per proposal window, the one at its start:
// "C:/sniff/rated BG 12.0.7.pkt" has three windows and each carries a single 0x480000
// (12.0.7 numbering throughout this capture note: 0x480000 = SMSG_BATTLEFIELD_STATUS_NEED_
// CONFIRMATION, 0x48000D = ..._WAIT_FOR_GROUPS, 0x48000E = ..._GROUP_PROPOSAL_FAILED. 12.1
// shifted the families up by three, so this tree registers them as 0x4B0000/0x4B000D/0x4B000E.)
// (ticks 136714 / 864798 / 896705), followed only by 0x48000D until the window ends at
// 166467 / 894382 / 916110 - 29,7 s, 29,6 s and an early STATUS_ACTIVE, never a second
// confirmation. Without this gate the reminder would land INVITATION_REMIND_TIME before
// the deadline, i.e. 8000 ms into the 28000 ms PROPOSAL_CONFIRM_WAIT_TIME window, and
// overwrite the role display that SendProposalStatus is maintaining. Worse, it would go
// out to members who already accepted: ProposalAccept only sets member.Accepted and
// leaves ginfo->IsInvitedToBGInstanceGUID and ginfo->RemoveInviteTime alone, so the
// IsPlayerInvited check in BGQueueInviteEvent::Execute stays true for the whole window.
if (!proposalManaged && inviteTime > INVITATION_REMIND_TIME)
{
BGQueueInviteEvent* inviteEvent = new BGQueueInviteEvent(player->GetGUID(), ginfo->IsInvitedToBGInstanceGUID, bgTypeId, ginfo->RemoveInviteTime, m_queueId);
m_events.AddEvent(inviteEvent, m_events.CalculateTime(Milliseconds(inviteTime - INVITATION_REMIND_TIME)));
}
// create automatic remove events - but never under a proposal, whose own deadline event removes
// the players who did not accept and requeues the ones who did. Both firing on the same tick
// would tear the lobby in half.
if (!proposalManaged)
{
BGQueueRemoveEvent* removeEvent = new BGQueueRemoveEvent(player->GetGUID(), ginfo->IsInvitedToBGInstanceGUID, bgQueueTypeId, ginfo->RemoveInviteTime);
m_events.AddEvent(removeEvent, m_events.CalculateTime(Milliseconds(inviteTime)));
}
// create remind invite events
BGQueueInviteEvent* inviteEvent = new BGQueueInviteEvent(player->GetGUID(), ginfo->IsInvitedToBGInstanceGUID, bgTypeId, ginfo->RemoveInviteTime, m_queueId);
m_events.AddEvent(inviteEvent, m_events.CalculateTime(Milliseconds(INVITATION_REMIND_TIME)));
// create automatic remove events
BGQueueRemoveEvent* removeEvent = new BGQueueRemoveEvent(player->GetGUID(), ginfo->IsInvitedToBGInstanceGUID, bgQueueTypeId, ginfo->RemoveInviteTime);
m_events.AddEvent(removeEvent, m_events.CalculateTime(Milliseconds(INVITE_ACCEPT_WAIT_TIME)));
if (inviteTime > INVITATION_REMIND_TIME)
{
BGQueueInviteEvent* inviteEvent = new BGQueueInviteEvent(player->GetGUID(), ginfo->IsInvitedToBGInstanceGUID, bgTypeId, ginfo->RemoveInviteTime, m_queueId);
m_events.AddEvent(inviteEvent, m_events.CalculateTime(Milliseconds(inviteTime - INVITATION_REMIND_TIME)));
}
// create automatic remove events - but never under a proposal, whose own deadline event removes
// the players who did not accept and requeues the ones who did. Both firing on the same tick
// would tear the lobby in half.
if (!proposalManaged)
{
BGQueueRemoveEvent* removeEvent = new BGQueueRemoveEvent(player->GetGUID(), ginfo->IsInvitedToBGInstanceGUID, bgQueueTypeId, ginfo->RemoveInviteTime);
m_events.AddEvent(removeEvent, m_events.CalculateTime(Milliseconds(inviteTime)));
}
uint32 queueSlot = player->GetBattlegroundQueueIndex(bgQueueTypeId);
TC_LOG_DEBUG("bg.battleground", "Battleground: invited player {} {} to BG instance {} queueindex {} bgtype {}",
player->GetName(), player->GetGUID().ToString(), bg->GetInstanceID(), queueSlot, m_queueId.BattlemasterListId);
player->GetName(), player->GetGUID().ToString(), bg->GetInstanceID(), queueSlot, m_queueId.BattlemasterListId);
WorldPackets::Battleground::BattlefieldStatusNeedConfirmation battlefieldStatus;
BattlegroundMgr::BuildBattlegroundStatusNeedConfirmation(&battlefieldStatus, bg, player, queueSlot, player->GetBattlegroundQueueJoinTime(bgQueueTypeId), INVITE_ACCEPT_WAIT_TIME, bgQueueTypeId);
BattlegroundMgr::BuildBattlegroundStatusNeedConfirmation(&battlefieldStatus, bg, player, queueSlot, player->GetBattlegroundQueueJoinTime(bgQueueTypeId), inviteTime, bgQueueTypeId, itr->second->Role);
player->SendDirectMessage(battlefieldStatus.Write());
}
return true;
@@ -838,15 +964,30 @@ void BattlegroundQueue::BattlegroundQueueUpdate(uint32 /*diff*/, BattlegroundBra
if (bg_template->IsArena())
{
MaxPlayersPerTeam = m_queueId.TeamSize;
MinPlayersPerTeam = (sBattlegroundMgr->isArenaTesting() || sBattlegroundMgr->IsFSBOverrideEnabled()) ? 1 : m_queueId.TeamSize;
MinPlayersPerTeam = sBattlegroundMgr->isArenaTesting() ? 1 : m_queueId.TeamSize;
}
else if (sBattlegroundMgr->isTesting() || sBattlegroundMgr->IsFSBOverrideEnabled())
else if (sBattlegroundMgr->isTesting())
MinPlayersPerTeam = 1;
m_SelectionPools[TEAM_ALLIANCE].Init();
m_SelectionPools[TEAM_HORDE].Init();
if (!bg_template->IsArena())
// A solo queue must NOT be offered to CheckPremadeMatch, even though its template is a battleground and
// not an arena. CheckPremadeMatch takes one head entry per faction, adds it whole with
// AddGroup(entry, MaxPlayersPerTeam) and then tops both sides up from the BG_QUEUE_NORMAL_* lists - which
// for a rated queue are permanently empty, because AddGroup only routes an entry there when
// `!m_queueId.Rated && !isPremade`. So with one solo entry queued per faction it would report a match of
// one against one, create the instance and StartBattleground() it: a 1v1 "Battleground Blitz" past both
// the role quota and the 8-per-side headcount, invited through the ordinary 90 s single-invite path
// instead of the all-or-nothing proposal. Its second half is worse still - the demotion loop below moves
// any entry smaller than MinPlayersPerTeam (6 for BattlemasterList 1101) out of the premade lists, and
// those lists are the only ones CheckSoloQueueMatch reads, so a single pass would empty the solo queue
// into a list nothing rated ever looks at again.
// The RatedBattlegroundBlitz branch at the end of this function is this queue's matchmaker.
bool const isSoloQueue = BattlegroundQueueIdType(m_queueId.Type) == BattlegroundQueueIdType::RatedBattlegroundBlitz
|| BattlegroundQueueIdType(m_queueId.Type) == BattlegroundQueueIdType::RatedSoloShuffle;
if (!bg_template->IsArena() && !isSoloQueue)
{
if (CheckPremadeMatch(bracket_id, MinPlayersPerTeam, MaxPlayersPerTeam))
{
@@ -975,28 +1116,6 @@ void BattlegroundQueue::BattlegroundQueueUpdate(uint32 /*diff*/, BattlegroundBra
}
}
// FSB override: start arena with just 1 team (opposing team filled with bots)
if (found == 1 && sBattlegroundMgr->IsFSBOverrideEnabled())
{
GroupQueueInfo* soloTeam = *itr_teams[0];
Team soloSide = soloTeam->Team;
Team oppSide = (soloSide == ALLIANCE) ? HORDE : ALLIANCE;
Battleground* arena = sBattlegroundMgr->CreateNewBattleground(m_queueId, bracket_id);
if (!arena)
{
TC_LOG_ERROR("bg.battleground", "BattlegroundQueue::Update couldn't create arena instance for FSB solo arena match!");
return;
}
arena->SetArenaMatchmakerRating(soloSide, soloTeam->ArenaMatchmakerRating);
arena->SetArenaMatchmakerRating(oppSide, 0);
InviteGroupToBG(soloTeam, arena, soloSide);
TC_LOG_DEBUG("bg.battleground", "Starting FSB solo arena match with 1 team!");
arena->StartBattleground();
}
//if we have 2 teams, then start new arena and invite players!
if (found == 2)
{
@@ -1029,7 +1148,7 @@ void BattlegroundQueue::BattlegroundQueueUpdate(uint32 /*diff*/, BattlegroundBra
}
arena->SetArenaMatchmakerRating(ALLIANCE, aTeam->ArenaMatchmakerRating);
arena->SetArenaMatchmakerRating( HORDE, hTeam->ArenaMatchmakerRating);
arena->SetArenaMatchmakerRating(HORDE, hTeam->ArenaMatchmakerRating);
InviteGroupToBG(aTeam, arena, ALLIANCE);
InviteGroupToBG(hTeam, arena, HORDE);
@@ -1037,6 +1156,110 @@ void BattlegroundQueue::BattlegroundQueueUpdate(uint32 /*diff*/, BattlegroundBra
arena->StartBattleground();
}
}
else if (BattlegroundQueueIdType(m_queueId.Type) == BattlegroundQueueIdType::RatedSoloShuffle)
{
// Rated Solo Shuffle: assemble a 6-player lobby, exactly 3 per team, 1 healer per team (2 healers +
// 4 dps), no tanks. Same solo-matchmaker + all-or-nothing proposal machinery as Blitz.
uint32 const perTeam = sBattlegroundMgr->isTesting() ? 1 : 3;
uint32 const tanks = 0;
uint32 const healers = sBattlegroundMgr->isTesting() ? 0 : 1;
for (std::pair<uint32 const, BattlegroundProposal> const& pending : m_Proposals)
if (pending.second.BracketId == bracket_id)
return;
if (CheckSoloQueueMatch(bracket_id, perTeam, tanks, healers))
{
Battleground* bg2 = sBattlegroundMgr->CreateNewBattleground(m_queueId, bracket_id);
if (!bg2)
{
TC_LOG_ERROR("bg.battleground", "BattlegroundQueue::Update - Cannot create Rated Solo Shuffle instance: {}", m_queueId.BattlemasterListId);
return;
}
bg2->StartBattleground();
for (uint32 i = 0; i < PVP_TEAMS_COUNT; ++i)
for (GroupsQueueType::const_iterator citr = m_SelectionPools[TEAM_ALLIANCE + i].SelectedGroups.begin(); citr != m_SelectionPools[TEAM_ALLIANCE + i].SelectedGroups.end(); ++citr)
InviteGroupToBG((*citr), bg2, (*citr)->Team, PROPOSAL_CONFIRM_WAIT_TIME, true);
TC_LOG_DEBUG("bg.battleground", "Proposing a Rated Solo Shuffle match (3 per team, 1 healer per team)");
StartProposal(bg2, bracket_id, perTeam, SideQuota(perTeam, tanks, healers));
m_SelectionPools[TEAM_ALLIANCE].Init();
m_SelectionPools[TEAM_HORDE].Init();
}
}
else if (BattlegroundQueueIdType(m_queueId.Type) == BattlegroundQueueIdType::TrainingGrounds)
{
// Solo practice: pop the instant a single player is queued, with no opponents, into a
// BattlegroundTrainingGrounds instance (which never auto-ends). Direct invite (no proposal), like the
// rated-arena path - the player accepts via CMSG_BATTLEFIELD_PORT and the normal entry flow ports them.
for (uint32 qi = BG_QUEUE_NORMAL_ALLIANCE; qi <= BG_QUEUE_NORMAL_HORDE; ++qi)
{
for (GroupQueueInfo* ginfo : m_QueuedGroups[bracket_id][qi])
{
if (ginfo->IsInvitedToBGInstanceGUID)
continue;
Battleground* bg2 = sBattlegroundMgr->CreateNewBattleground(m_queueId, bracket_id);
if (!bg2)
{
TC_LOG_ERROR("bg.battleground", "BattlegroundQueue::Update - Cannot create Training Grounds instance: {}", m_queueId.BattlemasterListId);
return;
}
InviteGroupToBG(ginfo, bg2, ginfo->Team);
bg2->StartBattleground();
return; // one instance per pass
}
}
}
else if (BattlegroundQueueIdType(m_queueId.Type) == BattlegroundQueueIdType::RatedBattlegroundBlitz)
{
// Rated + non-arena previously fell through here doing nothing at all, which is why a rated
// battleground queue could never pop.
uint32 const perTeam = sBattlegroundMgr->isTesting() ? 1 : MaxPlayersPerTeam;
uint32 const tanks = sBattlegroundMgr->isTesting() ? 0 : sWorld->getIntConfig(CONFIG_BATTLEGROUND_BLITZ_TANKS_PER_TEAM);
uint32 const healers = sBattlegroundMgr->isTesting() ? 0 : sWorld->getIntConfig(CONFIG_BATTLEGROUND_BLITZ_HEALERS_PER_TEAM);
// One proposal at a time per bracket: a second lobby built while the first is still deciding would be
// drawing from entries the first one has already claimed.
for (std::pair<uint32 const, BattlegroundProposal> const& pending : m_Proposals)
if (pending.second.BracketId == bracket_id)
return;
if (CheckSoloQueueMatch(bracket_id, perTeam, tanks, healers))
{
// The battleground is created BEFORE anyone is asked to confirm, which is what makes the map id
// and the per-side split real numbers rather than guesses - see the decode block in
// BattlegroundPackets.h. A proposal that collapses drops this instance again.
Battleground* bg2 = sBattlegroundMgr->CreateNewBattleground(m_queueId, bracket_id);
if (!bg2)
{
TC_LOG_ERROR("bg.battleground", "BattlegroundQueue::Update - Cannot create Battleground Blitz instance: {}", m_queueId.BattlemasterListId);
return;
}
// Registers the instance with BattlegroundMgr, which CMSG_BATTLEFIELD_PORT needs to resolve the
// invite. Rated battlegrounds are skipped by the free-slot filler above, so this does not let
// anyone else be dealt into the lobby while it is deciding.
bg2->StartBattleground();
for (uint32 i = 0; i < PVP_TEAMS_COUNT; ++i)
for (GroupsQueueType::const_iterator citr = m_SelectionPools[TEAM_ALLIANCE + i].SelectedGroups.begin(); citr != m_SelectionPools[TEAM_ALLIANCE + i].SelectedGroups.end(); ++citr)
InviteGroupToBG((*citr), bg2, (*citr)->Team, PROPOSAL_ACCEPT_WAIT_TIME, true);
TC_LOG_DEBUG("bg.battleground", "Proposing a Battleground Blitz match ({} per team: {} tanks, {} healers, {} damagers)",
perTeam, tanks, healers, perTeam - tanks - healers);
StartProposal(bg2, bracket_id, perTeam, SideQuota(perTeam, tanks, healers));
m_SelectionPools[TEAM_ALLIANCE].Init();
m_SelectionPools[TEAM_HORDE].Init();
}
}
}
/*********************************************************/
@@ -1059,15 +1282,25 @@ bool BGQueueInviteEvent::Execute(uint64 /*e_time*/, uint32 /*p_time*/)
if (queueSlot < PLAYER_MAX_BATTLEGROUND_QUEUES) // player is in queue or in battleground
{
// check if player is invited to this bg
BattlegroundQueue &bgQueue = sBattlegroundMgr->GetBattlegroundQueue(m_QueueId);
BattlegroundQueue& bgQueue = sBattlegroundMgr->GetBattlegroundQueue(m_QueueId);
if (bgQueue.IsPlayerInvited(m_PlayerGuid, m_BgInstanceGUID, m_RemoveTime))
{
// Timeout is the REMAINING life of the invitation, not a constant. InviteGroupToBG schedules this
// reminder INVITATION_REMIND_TIME before ginfo->RemoveInviteTime, and that deadline is what
// BGQueueRemoveEvent / BGQueueProposalTimeoutEvent actually act on - so it is the only honest
// source for the number. A constant INVITE_ACCEPT_WAIT_TIME - INVITATION_REMIND_TIME would restart
// the client's confirmation countdown at 70000 ms when 20000 ms are left, and would be wrong by a
// further 60000 ms for the shorter PROPOSAL_ACCEPT_WAIT_TIME window of the solo queues, whose
// SMSG_BATTLEFIELD_STATUS_WAIT_FOR_GROUPS already told the same client 30000 ms.
uint32 now = GameTime::GetGameTimeMS();
uint32 remaining = m_RemoveTime > now ? m_RemoveTime - now : 0;
WorldPackets::Battleground::BattlefieldStatusNeedConfirmation battlefieldStatus;
BattlegroundMgr::BuildBattlegroundStatusNeedConfirmation(&battlefieldStatus, bg, player, queueSlot, player->GetBattlegroundQueueJoinTime(m_QueueId), INVITE_ACCEPT_WAIT_TIME - INVITATION_REMIND_TIME, m_QueueId);
BattlegroundMgr::BuildBattlegroundStatusNeedConfirmation(&battlefieldStatus, bg, player, queueSlot, player->GetBattlegroundQueueJoinTime(m_QueueId), remaining, m_QueueId, bgQueue.GetPlayerRole(m_PlayerGuid));
player->SendDirectMessage(battlefieldStatus.Write());
}
}
return true; //event will be deleted
return true; //event will be deleted
}
void BGQueueInviteEvent::Abort(uint64 /*e_time*/)
@@ -1144,3 +1377,512 @@ bool BattlegroundQueue::AddWargameSide(Player* leader, Group* group, Battlegroun
return InviteGroupToBG(ginfo, bg, team);
}
// Solo-queue matchmaker for Battleground Blitz (and any future rated solo-queue mode).
//
// Differs from CheckNormalMatch/CheckPremadeMatch in two ways:
// - it draws from the RATED lists. AddGroup only pushes an entry into BG_QUEUE_NORMAL_* when the queue is
// unrated (`if (!m_queueId.Rated && !isPremade) index += PVP_TEAMS_COUNT`), so for a rated queue every
// entry - solo or duo - lives in BG_QUEUE_PREMADE_ALLIANCE / _HORDE.
// - it is faction-blind. Blitz matches cross-faction, so entries are dealt into whichever pool needs them
// and their Team is rewritten, exactly as CheckSkirmishForSameFaction does for same-faction skirmishes.
//
// tanksPerTeam and healersPerTeam are configured quotas; damagers are the remainder of playersPerTeam, so a
// team composition is fully specified by those two numbers. They are not client-derived: the wire says what
// a queuer is willing to play, not how retail balances a Blitz match. Setting both to 0 turns the role check
// off and leaves a pure headcount match. The defaults (0 tanks, 2 healers, 8 per side) reproduce the
// 0 tanks / 4 healers / 12 damagers composition the client was told in C:\sniff\rated BG 12.0.7.pkt.
//
// Roles come from PlayerQueueInfo::Role, so they are per player, not per queue entry - a duo whose members
// have different specs is counted as the two roles it really contains.
bool BattlegroundQueue::CheckSoloQueueMatch(BattlegroundBracketId bracket_id, uint32 playersPerTeam, uint32 tanksPerTeam, uint32 healersPerTeam)
{
if (tanksPerTeam + healersPerTeam > playersPerTeam)
{
TC_LOG_ERROR("bg.battleground", "BattlegroundQueue: solo queue {} is configured with {} tanks + {} healers per team but only {} slots; refusing to match.",
m_queueId.BattlemasterListId, tanksPerTeam, healersPerTeam, playersPerTeam);
return false;
}
uint8 const ratedLists[PVP_TEAMS_COUNT] = { uint8(BG_QUEUE_PREMADE_ALLIANCE), uint8(BG_QUEUE_PREMADE_HORDE) };
PvpRoleHeadcount const perSideQuota = SideQuota(playersPerTeam, tanksPerTeam, healersPerTeam);
std::vector<GroupQueueInfo*> candidates;
uint32 totalPlayers = 0;
for (uint8 list : ratedLists)
{
for (GroupQueueInfo* ginfo : m_QueuedGroups[bracket_id][list])
{
if (ginfo->IsInvitedToBGInstanceGUID)
continue;
totalPlayers += uint32(ginfo->Players.size());
candidates.push_back(ginfo);
}
}
if (totalPlayers < playersPerTeam * PVP_TEAMS_COUNT)
return false;
// Longest waiting first, so the role quota never becomes a reason to jump the queue.
std::stable_sort(candidates.begin(), candidates.end(), [](GroupQueueInfo const* left, GroupQueueInfo const* right)
{
return left->JoinTime < right->JoinTime;
});
for (uint32 i = 0; i < PVP_TEAMS_COUNT; ++i)
m_SelectionPools[i].Init();
// Remaining need of each side, drained as entries are placed.
std::array<PvpRoleHeadcount, PVP_TEAMS_COUNT> need;
need.fill(perSideQuota);
for (GroupQueueInfo* ginfo : candidates)
{
if (m_SelectionPools[TEAM_ALLIANCE].GetPlayerCount() >= playersPerTeam
&& m_SelectionPools[TEAM_HORDE].GetPlayerCount() >= playersPerTeam)
break;
// What this entry brings, per role. A duo of a healer and a damager counts as one of each.
PvpRoleHeadcount entryRoles = { };
for (std::pair<ObjectGuid const, PlayerQueueInfo*> const& player : ginfo->Players)
++entryRoles[RoleIndex(FoldRole(player.second->Role, perSideQuota))];
for (uint32 side = 0; side < PVP_TEAMS_COUNT; ++side)
{
// SelectionPool::AddGroup answers "may I keep filling", not "did I take it", so the fit has to be
// decided here - otherwise the role budget below would be spent on an entry that was never added.
if (m_SelectionPools[side].GetPlayerCount() + ginfo->Players.size() > playersPerTeam)
continue;
bool fits = true;
for (std::size_t role = 0; role < PVP_QUEUE_ROLE_COUNT && fits; ++role)
fits = entryRoles[role] <= need[side][role];
if (!fits)
continue;
m_SelectionPools[side].AddGroup(ginfo, playersPerTeam);
for (std::size_t role = 0; role < PVP_QUEUE_ROLE_COUNT; ++role)
need[side][role] -= entryRoles[role];
break;
}
}
if (m_SelectionPools[TEAM_ALLIANCE].GetPlayerCount() != playersPerTeam
|| m_SelectionPools[TEAM_HORDE].GetPlayerCount() != playersPerTeam)
{
// Leave no half-built selection behind for the next caller.
for (uint32 i = 0; i < PVP_TEAMS_COUNT; ++i)
m_SelectionPools[i].Init();
return false;
}
// Both pools are full. Re-home every entry that ended up on the other faction's side: set its Team, push it
// into the destination rated list and erase it from the source list. Skipping the list move makes
// RemovePlayer fail to find the entry and leaks queue slots - the same idiom as CheckSkirmishForSameFaction.
for (uint32 i = 0; i < PVP_TEAMS_COUNT; ++i)
{
TeamId const poolTeam = TeamId(TEAM_ALLIANCE + i);
Team const poolTeamId = poolTeam == TEAM_ALLIANCE ? ALLIANCE : HORDE;
for (GroupQueueInfo* ginfo : m_SelectionPools[poolTeam].SelectedGroups)
{
if (ginfo->Team == poolTeamId)
continue;
uint8 const sourceList = ginfo->Team == ALLIANCE ? uint8(BG_QUEUE_PREMADE_ALLIANCE) : uint8(BG_QUEUE_PREMADE_HORDE);
uint8 const destList = poolTeam == TEAM_ALLIANCE ? uint8(BG_QUEUE_PREMADE_ALLIANCE) : uint8(BG_QUEUE_PREMADE_HORDE);
ginfo->Team = poolTeamId;
m_QueuedGroups[bracket_id][destList].push_front(ginfo);
for (GroupsQueueType::iterator itr = m_QueuedGroups[bracket_id][sourceList].begin();
itr != m_QueuedGroups[bracket_id][sourceList].end(); ++itr)
{
if (*itr == ginfo)
{
m_QueuedGroups[bracket_id][sourceList].erase(itr);
break;
}
}
}
}
return true;
}
/*********************************************************/
/*** ALL-OR-NOTHING GROUP PROPOSALS ***/
/*********************************************************/
BattlegroundProposal* BattlegroundQueue::FindProposalFor(ObjectGuid guid)
{
return const_cast<BattlegroundProposal*>(std::as_const(*this).FindProposalFor(guid));
}
BattlegroundProposal const* BattlegroundQueue::FindProposalFor(ObjectGuid guid) const
{
for (std::pair<uint32 const, BattlegroundProposal> const& pair : m_Proposals)
for (BattlegroundProposalMember const& member : pair.second.Members)
if (member.Guid == guid)
return &pair.second;
return nullptr;
}
void BattlegroundQueue::StartProposal(Battleground* bg, BattlegroundBracketId bracketId, uint32 playersPerTeam, PvpRoleHeadcount const& perSideQuota)
{
BattlegroundProposal proposal;
proposal.BgInstanceGUID = bg->GetInstanceID();
proposal.BgTypeId = bg->GetTypeID();
proposal.BracketId = bracketId;
proposal.MapId = bg->GetMapId();
proposal.SlotsPerSide.fill(uint8(playersPerTeam));
for (uint32 side = 0; side < PVP_TEAMS_COUNT; ++side)
{
for (GroupQueueInfo const* ginfo : m_SelectionPools[side].SelectedGroups)
{
for (std::pair<ObjectGuid const, PlayerQueueInfo*> const& player : ginfo->Players)
{
// Mirrors InviteGroupToBG, which only invites and only counts players it finds online.
if (!ObjectAccessor::FindConnectedPlayer(player.first))
continue;
BattlegroundProposalMember& member = proposal.Members.emplace_back();
member.Guid = player.first;
member.Side = TeamId(side);
// Folded exactly as CheckSoloQueueMatch folded it, so the role block the client is sent
// describes the same lobby the matcher built.
member.Role = FoldRole(player.second->Role, perSideQuota);
}
}
}
if (proposal.Members.empty())
return;
uint32 const instanceId = proposal.BgInstanceGUID;
BattlegroundProposal const& stored = m_Proposals.insert_or_assign(instanceId, std::move(proposal)).first->second;
m_events.AddEvent(new BGQueueProposalTimeoutEvent(instanceId, m_queueId), m_events.CalculateTime(Milliseconds(PROPOSAL_ACCEPT_WAIT_TIME)));
TC_LOG_DEBUG("bg.battleground", "Battleground: opened a {} ms group proposal over BG instance {} (bracket {}, map {}) for {} players.",
uint32(PROPOSAL_ACCEPT_WAIT_TIME), instanceId, uint32(bracketId), stored.MapId, uint32(stored.Members.size()));
SendProposalStatus(stored, BattlegroundProposalStatus::Waiting);
}
// Tells every member where the proposal stands.
// Waiting - SMSG_BATTLEFIELD_STATUS_WAIT_FOR_GROUPS, accepted players as Secured, undecided ones as Awaited.
// Failed - SMSG_BATTLEFIELD_STATUS_GROUP_PROPOSAL_FAILED, which keeps Secured and moves the outstanding
// players into Lost. That is the exact shape of both captured 0x48000E bodies.
// Formed - SMSG_BATTLEFIELD_STATUS_WAIT_FOR_GROUPS with every counter zeroed, matching the terminal
// 0x48000D body the capture ends on once the match exists.
void BattlegroundQueue::SendProposalStatus(BattlegroundProposal const& proposal, BattlegroundProposalStatus status) const
{
WorldPackets::Battleground::PvpRoleQueueCounts counts;
std::array<uint8, PVP_TEAMS_COUNT> awaitedPerSide = { };
if (status != BattlegroundProposalStatus::Formed)
{
for (BattlegroundProposalMember const& member : proposal.Members)
{
std::size_t const role = RoleIndex(member.Role);
if (member.Accepted)
{
++counts.Secured[role];
continue;
}
++awaitedPerSide[member.Side];
if (status == BattlegroundProposalStatus::Failed)
++counts.Lost[role];
else
++counts.Awaited[role];
}
}
for (BattlegroundProposalMember const& member : proposal.Members)
{
// Counted above, but not told: the decliner is answered by their own leave-queue path with
// SMSG_BATTLEFIELD_STATUS_NONE, which is the last word either way.
if (member.Declined)
continue;
Player* player = ObjectAccessor::FindConnectedPlayer(member.Guid);
if (!player)
continue;
uint32 const queueSlot = player->GetBattlegroundQueueIndex(m_queueId);
if (queueSlot >= PLAYER_MAX_BATTLEGROUND_QUEUES)
continue;
uint32 const joinTime = player->GetBattlegroundQueueJoinTime(m_queueId);
if (status == BattlegroundProposalStatus::Failed)
{
WorldPackets::Battleground::BattlefieldStatusGroupProposalFailed packet;
BattlegroundMgr::BuildBattlegroundStatusGroupProposalFailed(&packet, player, queueSlot, joinTime, m_queueId, counts);
player->SendDirectMessage(packet.Write());
}
else
{
WorldPackets::Battleground::BattlefieldStatusWaitForGroups packet;
BattlegroundMgr::BuildBattlegroundStatusWaitForGroups(&packet, player, queueSlot, joinTime, m_queueId,
proposal.MapId, PROPOSAL_ACCEPT_WAIT_TIME, proposal.SlotsPerSide, awaitedPerSide, counts);
player->SendDirectMessage(packet.Write());
}
}
}
bool BattlegroundQueue::ProposalAccept(ObjectGuid guid)
{
BattlegroundProposal* proposal = FindProposalFor(guid);
if (!proposal)
return false;
bool everyoneAccepted = true;
for (BattlegroundProposalMember& member : proposal->Members)
{
if (member.Guid == guid)
member.Accepted = true;
if (!member.Accepted)
everyoneAccepted = false;
}
if (!everyoneAccepted)
{
// Held. The client is told who is still missing rather than being left on a dialog that did nothing.
SendProposalStatus(*proposal, BattlegroundProposalStatus::Waiting);
return true;
}
ResolveProposal(proposal->BgInstanceGUID, true);
return true;
}
bool BattlegroundQueue::ProposalDecline(ObjectGuid guid)
{
BattlegroundProposal* proposal = FindProposalFor(guid);
if (!proposal)
return false;
TC_LOG_DEBUG("bg.battleground", "Battleground: {} declined the group proposal over BG instance {}; collapsing it.",
guid.ToString(), proposal->BgInstanceGUID);
// The decliner is marked, NOT removed. Removing them made the role block describe 15 of 16 players, and the
// client adds Awaited+Secured+Lost per role to get the lobby size: 20 decoded bodies have that sum constant
// at the team size, so a short sum is a wrong packet. They are counted as a loss (Accepted is cleared) and
// skipped by the collapse below, because their own removal from the queue is the caller's ordinary
// leave-queue path and must not happen twice.
uint32 const instanceId = proposal->BgInstanceGUID;
for (BattlegroundProposalMember& member : proposal->Members)
{
if (member.Guid != guid)
continue;
member.Accepted = false;
member.Declined = true;
}
ResolveProposal(instanceId, false);
return true;
}
void BattlegroundQueue::ProposalTimeout(uint32 bgInstanceGuid)
{
if (m_Proposals.find(bgInstanceGuid) == m_Proposals.end())
return; // already resolved - completed, or collapsed by a decline
TC_LOG_DEBUG("bg.battleground", "Battleground: group proposal over BG instance {} expired; collapsing it.", bgInstanceGuid);
ResolveProposal(bgInstanceGuid, false);
}
void BattlegroundQueue::ResolveProposal(uint32 bgInstanceGuid, bool accepted)
{
std::unordered_map<uint32, BattlegroundProposal>::iterator itr = m_Proposals.find(bgInstanceGuid);
if (itr == m_Proposals.end())
return;
// Take the proposal out of the map before doing anything that can re-enter this queue: porting a player
// calls RemovePlayer, which can free the GroupQueueInfo the pools point at.
BattlegroundProposal proposal = std::move(itr->second);
m_Proposals.erase(itr);
Battleground* bg = sBattlegroundMgr->GetBattleground(proposal.BgInstanceGUID, proposal.BgTypeId);
if (accepted)
{
if (!bg)
{
TC_LOG_ERROR("bg.battleground", "BattlegroundQueue: group proposal over BG instance {} completed but the battleground is gone.", proposal.BgInstanceGUID);
return;
}
// The client clears its role display when the match forms - that is what the terminal 0x48000D body
// in the capture is - so say so before the ports start rewriting queue state.
SendProposalStatus(proposal, BattlegroundProposalStatus::Formed);
for (BattlegroundProposalMember const& member : proposal.Members)
{
Player* player = ObjectAccessor::FindConnectedPlayer(member.Guid);
if (!player)
continue; // logged out between accepting and the last accept
uint32 const queueSlot = player->GetBattlegroundQueueIndex(m_queueId);
if (queueSlot >= PLAYER_MAX_BATTLEGROUND_QUEUES)
continue;
Team const team = member.Side == TEAM_ALLIANCE ? ALLIANCE : HORDE;
BattlegroundMgr::PortPlayerToBattleground(player, bg, team, m_queueId, queueSlot);
}
TC_LOG_DEBUG("bg.battleground", "Battleground: group proposal over BG instance {} was accepted by all {} members.",
proposal.BgInstanceGUID, uint32(proposal.Members.size()));
return;
}
// Collapse. Everyone still listed loses the invite; whether they keep their queue slot depends on whether
// they accepted - and, for a duo, on how the other half answered.
SendProposalStatus(proposal, BattlegroundProposalStatus::Failed);
// Blitz may be entered as a duo (BattlemasterList 1101, MaxGroupSize 2), and below the proposal a queue
// ENTRY is atomic: RemovePlayer drops every remaining member of a GroupQueueInfo the moment one of them
// leaves a rated queue - the recursive branch above, "everyone from the group should leave too". A duo
// whose halves answered differently can therefore not be split: the accepting half leaves with its
// partner, and the invariant documented on BattlegroundProposal holds per queue ENTRY, not per player.
// Which entries are about to break is settled here, before the first removal, instead of being left to
// fall out of that cascade. Otherwise the accepting member is told BATTLEFIELD_STATUS_QUEUED and then, in
// the same tick, BATTLEFIELD_STATUS_NONE by the cascade - and which of the two it ends up with depends on
// the order the two members happen to have in proposal.Members. A member who declined breaks the entry
// too: its own removal only happens after this function returns, in HandleBattleFieldPortOpcode.
std::vector<GroupQueueInfo const*> brokenEntries;
for (BattlegroundProposalMember const& member : proposal.Members)
if (!member.Accepted)
if (PlayerQueueInfo const* playerInfo = Trinity::Containers::MapGetValuePtr(m_QueuedPlayers, member.Guid))
brokenEntries.push_back(playerInfo->GroupInfo);
auto entryIsBroken = [&brokenEntries](GroupQueueInfo const* ginfo)
{
return std::find(brokenEntries.begin(), brokenEntries.end(), ginfo) != brokenEntries.end();
};
// The invite is revoked for everyone first, and only then is anyone removed: the first removal can delete
// a GroupQueueInfo that the members listed after it still point at.
for (BattlegroundProposalMember const& member : proposal.Members)
{
// The decliner is already being taken out of the queue by WorldSession::HandleBattleFieldPortOpcode,
// whose RemovePlayer(guid, true) does this same invited-count bookkeeping. Doing it here as well would
// decrement it twice.
if (member.Declined)
continue;
// The invited count was raised once per invited PLAYER, so it has to come back down once per member,
// while the group's invite flag is a per-entry thing that is only cleared the first time.
if (PlayerQueueInfo const* playerInfo = Trinity::Containers::MapGetValuePtr(m_QueuedPlayers, member.Guid))
{
if (GroupQueueInfo* ginfo = playerInfo->GroupInfo)
{
if (bg)
bg->DecreaseInvitedCount(ginfo->Team);
if (ginfo->IsInvitedToBGInstanceGUID == proposal.BgInstanceGUID)
{
ginfo->IsInvitedToBGInstanceGUID = 0;
ginfo->RemoveInviteTime = 0;
}
}
}
if (Player* player = ObjectAccessor::FindConnectedPlayer(member.Guid))
player->SetInviteForBattlegroundQueueType(m_queueId, 0);
}
for (BattlegroundProposalMember const& member : proposal.Members)
{
if (member.Declined)
continue;
Player* player = ObjectAccessor::FindConnectedPlayer(member.Guid);
if (!player)
continue;
// Removing one half of a duo takes the other half with it, so a member can already be out of the queue
// when its own turn comes. That cascade sent it BATTLEFIELD_STATUS_NONE and there is nothing to add.
PlayerQueueInfo const* playerInfo = Trinity::Containers::MapGetValuePtr(m_QueuedPlayers, member.Guid);
if (!playerInfo)
continue;
uint32 const queueSlot = player->GetBattlegroundQueueIndex(m_queueId);
if (queueSlot >= PLAYER_MAX_BATTLEGROUND_QUEUES)
continue;
uint32 const joinTime = player->GetBattlegroundQueueJoinTime(m_queueId);
if (!member.Accepted || entryIsBroken(playerInfo->GroupInfo))
{
// Never answered, answered no, or accepted while sharing a queue entry with someone who did not.
// Same outcome a plain invite timeout has: out of the queue. Where this removal cascades onto a
// partner who declined, that player sees the cascade BATTLEFIELD_STATUS_NONE shortly before the
// one its own session sends - the same ticket in the same state twice, a repeat rather than the
// QUEUED-then-NONE contradiction this ordering exists to prevent.
player->RemoveBattlegroundQueueId(m_queueId);
RemovePlayer(member.Guid, false);
WorldPackets::Battleground::BattlefieldStatusNone packet;
BattlegroundMgr::BuildBattlegroundStatusNone(&packet, player, queueSlot, joinTime);
player->SendDirectMessage(packet.Write());
continue;
}
// Accepted, and is being sent back through no fault of their own. Their GroupQueueInfo is left alone,
// so JoinTime - and with it the position CheckSoloQueueMatch orders by - is exactly what it was.
GroupQueueInfo groupInfo;
bool const hasGroupInfo = GetPlayerGroupInfoData(member.Guid, &groupInfo);
uint32 const avgWaitTime = hasGroupInfo ? GetAverageQueueWaitTime(&groupInfo, proposal.BracketId) : 0;
// AsGroup is derived, not assumed: a Blitz duo (BattlemasterList 1101, MaxGroupSize 2) that both
// accepted while a third member let the window lapse re-enters here with its queue entry intact, and
// the very next CMSG_REQUEST_BATTLEFIELD_STATUS would answer true from the same Players.size() - so a
// hardcoded false made the bit read true, false, true on one ticket within seconds.
WorldPackets::Battleground::BattlefieldStatusQueued packet;
BattlegroundMgr::BuildBattlegroundStatusQueued(&packet, player, queueSlot, joinTime, m_queueId, avgWaitTime,
hasGroupInfo && groupInfo.Players.size() > 1);
player->SendDirectMessage(packet.Write());
}
// The battleground was created for this proposal only. Drop it, so the next attempt picks a fresh map -
// which is what retail does across the three proposal runs in the capture.
if (bg)
{
bg->RemoveFromBGFreeSlotQueue();
bg->SetDeleteThis();
}
sBattlegroundMgr->ScheduleQueueUpdate(0, m_queueId, proposal.BracketId);
}
bool BGQueueProposalTimeoutEvent::Execute(uint64 /*e_time*/, uint32 /*p_time*/)
{
// No-op when the proposal already resolved - it is looked up by instance id, which is never reused.
sBattlegroundMgr->GetBattlegroundQueue(m_QueueId).ProposalTimeout(m_BgInstanceGUID);
return true; //event will be deleted
}
void BGQueueProposalTimeoutEvent::Abort(uint64 /*e_time*/)
{
//do nothing
}
ChrSpecializationRole BattlegroundQueue::GetPlayerRole(ObjectGuid guid) const
{
QueuedPlayersMap::const_iterator itr = m_QueuedPlayers.find(guid);
return itr != m_QueuedPlayers.end() ? itr->second.Role : ChrSpecializationRole::Dps;
}
@@ -22,6 +22,11 @@
#include "DBCEnums.h"
#include "Battleground.h"
#include "EventProcessor.h"
//WowCommunity
#include <array>
#include <unordered_map>
#include <vector>
//WowCommunity
//this container can't be deque, because deque doesn't like removing the last element - if you remove it, it invalidates next iterator and crash appears
typedef std::list<Battleground*> BGFreeSlotQueueContainer;
@@ -34,6 +39,7 @@ struct PlayerQueueInfo // stores informatio
uint32 LastOnlineTime; // for tracking and removing offline players from queue after 5 minutes
GroupQueueInfo* GroupInfo; // pointer to the associated groupqueueinfo
uint8 Roles = 0; // role selected when joining the queue (tank/healer/damage)
ChrSpecializationRole Role = ChrSpecializationRole::Dps;
};
struct GroupQueueInfo // stores information about the group in queue (also used when joined as solo!)
@@ -47,6 +53,11 @@ struct GroupQueueInfo // stores informatio
uint32 ArenaMatchmakerRating; // if rated match, inited to the rating of the team
uint32 OpponentsTeamRating; // for rated arena matches
uint32 OpponentsMatchmakerRating; // for rated arena matches
uint8 Roles; // lfg::PLAYER_ROLE_* mask from the join packet.
// Solo-queue modes (Battleground Blitz) match on this.
// For a group this is the QUEUER's mask only: the wire
// carries no per-member roles, so the other members'
// roles are genuinely unknown, not merely unread.
};
enum BattlegroundQueueGroupTypes
@@ -65,6 +76,64 @@ enum BattlegroundQueueInvitationType
BG_QUEUE_INVITATION_TYPE_EVEN = 2 // teams even: N vs N players
};
std::size_t constexpr PVP_QUEUE_ROLE_COUNT = 3; // ChrSpecializationRole: Tank, Healer, Dps
// Per-role headcounts, indexed by ChrSpecializationRole. Used both as the matchmaker's quota and as the
// payload of SMSG_BATTLEFIELD_STATUS_WAIT_FOR_GROUPS.
using PvpRoleHeadcount = std::array<uint8, PVP_QUEUE_ROLE_COUNT>;
struct BattlegroundProposalMember
{
ObjectGuid Guid;
TeamId Side = TEAM_ALLIANCE;
ChrSpecializationRole Role = ChrSpecializationRole::Dps;
bool Accepted = false;
// Answered no. Such a member stays in Members so the role block keeps describing the whole lobby - the
// client's own invariant, see the comment on BattlefieldStatusGroupProposalFailed - but is skipped by the
// collapse, because leaving the queue is the declining session's own business.
bool Declined = false;
};
/*
An all-or-nothing group proposal, used by solo-queue modes (Battleground Blitz).
The plain battleground invite is per player: everyone who presses Enter Battle ports in immediately and a
decline only removes the decliner. That is wrong for a solo queue, where a 16 player lobby that loses one
member is not a match. A proposal is therefore layered on top of the ordinary invite: the battleground is
created and everyone is invited exactly as before, but nobody is ported until EVERY member has accepted.
Collapse is all-or-nothing in both directions. If any member declines or the deadline passes:
- the members who never accepted leave the queue, as a plain invite timeout would have done;
- a member who actively declined stays listed as Declined so the role block still adds up to the lobby
size, but is otherwise left to the leave-queue path of the session that declined;
- the members who DID accept keep their GroupQueueInfo, and with it their JoinTime, so they return to
the queue in the position they already held rather than at the back of it - they get their invite
revoked, SMSG_BATTLEFIELD_STATUS_GROUP_PROPOSAL_FAILED, and then SMSG_BATTLEFIELD_STATUS_QUEUED again;
- the battleground that was created for the proposal is dropped, so the next attempt picks a fresh map -
which is exactly what retail does across the three proposal runs in C:\sniff\rated BG 12.0.7.pkt.
*/
struct BattlegroundProposal
{
uint32 BgInstanceGUID = 0;
BattlegroundTypeId BgTypeId = BATTLEGROUND_TYPE_NONE;
BattlegroundBracketId BracketId = BattlegroundBracketId(0);
uint32 MapId = 0;
std::array<uint8, PVP_TEAMS_COUNT> SlotsPerSide = { };
// Members are the players who were actually invited, i.e. the ones InviteGroupToBG found online. An
// offline queue entry is neither invited nor able to accept, so counting it would deadlock the proposal
// until the deadline.
std::vector<BattlegroundProposalMember> Members;
};
// What SendProposalStatus should tell the members.
enum class BattlegroundProposalStatus
{
Waiting, // still collecting accepts
Formed, // everyone accepted; clears the client's role display
Failed // collapsed; outstanding members become losses
};
class Battleground;
class TC_GAME_API BattlegroundQueue
{
@@ -79,12 +148,22 @@ class TC_GAME_API BattlegroundQueue
bool CheckPremadeMatch(BattlegroundBracketId bracket_id, uint32 MinPlayersPerTeam, uint32 MaxPlayersPerTeam);
bool CheckNormalMatch(BattlegroundBracketId bracket_id, uint32 minPlayers, uint32 maxPlayers);
bool CheckSkirmishForSameFaction(BattlegroundBracketId bracket_id, uint32 minPlayersPerTeam);
GroupQueueInfo* AddGroup(Player const* leader, Group const* group, Team team, PVPDifficultyEntry const* bracketEntry, bool isPremade, uint32 ArenaRating, uint32 MatchmakerRating);
// Solo-queue matchmaker for Battleground Blitz: fills both selection pools from the rated (premade-indexed)
// lists, honouring a full per-role quota per team - tanks, healers and, as the remainder, damagers.
// Returns false and leaves the pools untouched when the queue cannot yet field two full role-valid teams.
bool CheckSoloQueueMatch(BattlegroundBracketId bracket_id, uint32 playersPerTeam, uint32 tanksPerTeam, uint32 healersPerTeam);
GroupQueueInfo* AddGroup(Player const* leader, Group const* group, Team team, PVPDifficultyEntry const* bracketEntry, bool isPremade, uint32 ArenaRating, uint32 MatchmakerRating, uint8 roles = 0);
// War games bypass matchmaking: both premade groups are known up front, so this queues one side onto a
// forced team and immediately sends its members the enter-confirmation for the given battleground.
void RemovePlayer(ObjectGuid guid, bool decreaseInvitedCount);
//WowCommunity
// War games bypass matchmaking: both premade groups are known up front, so this queues one side onto a
// forced team and immediately sends its members the enter-confirmation for the given battleground.
bool AddWargameSide(Player* leader, Group* group, Battleground* bg, PVPDifficultyEntry const* bracketEntry, Team team);
// The queued player's own resolved role, for the callers that hold only a guid. Dps for a player who
// is not in this queue at all - the same value ResolveQueueRole falls back to - because every caller
// is about to write the byte into a packet and none of them can usefully refuse to send it.
ChrSpecializationRole GetPlayerRole(ObjectGuid guid) const;
//WowCommunity
bool IsPlayerInvited(ObjectGuid pl_guid, const uint32 bgInstanceGuid, const uint32 removeTime);
bool GetPlayerGroupInfoData(ObjectGuid guid, GroupQueueInfo* ginfo);
@@ -129,11 +208,43 @@ class TC_GAME_API BattlegroundQueue
uint32 GetQueuedPlayersCount(TeamId teamId, BattlegroundBracketId bracketId) const;
BattlegroundQueueTypeId GetQueueId() const { return m_queueId; }
/* All-or-nothing group proposals - see BattlegroundProposal above. */
// True when this player is held by a proposal, i.e. their accept/decline must not be acted on alone.
bool IsInProposal(ObjectGuid guid) const;
// Records an accept. Returns false when the player is not in a proposal, in which case the caller
// must fall back to the ordinary per-player invite handling. When the accept completes the proposal
// this ports every member.
bool ProposalAccept(ObjectGuid guid);
// Records a decline and collapses the proposal around it. The decliner itself is NOT removed from the
// queue here; the caller's ordinary leave-queue path still does that. Returns false when the player is
// not in a proposal.
bool ProposalDecline(ObjectGuid guid);
// Deadline reached: collapses the proposal, dropping everyone who did not accept.
void ProposalTimeout(uint32 bgInstanceGuid);
private:
BattlegroundQueueTypeId m_queueId;
bool InviteGroupToBG(GroupQueueInfo* ginfo, Battleground* bg, Team side);
// inviteTime is how long the invited players have to answer. A proposal-managed invite passes
// PROPOSAL_ACCEPT_WAIT_TIME and suppresses the per-player BGQueueRemoveEvent, because the proposal's
// own deadline owns the removal - two independent removers racing on the same tick would strand half
// the lobby.
bool InviteGroupToBG(GroupQueueInfo* ginfo, Battleground* bg, Team side, uint32 inviteTime = INVITE_ACCEPT_WAIT_TIME, bool proposalManaged = false);
// Opens a proposal over the two filled selection pools and tells its members it is running.
void StartProposal(Battleground* bg, BattlegroundBracketId bracketId, uint32 playersPerTeam, PvpRoleHeadcount const& perSideQuota);
// Ends a proposal. accepted == true ports everyone; otherwise the collapse described on
// BattlegroundProposal runs. Erases the proposal either way.
void ResolveProposal(uint32 bgInstanceGuid, bool accepted);
void SendProposalStatus(BattlegroundProposal const& proposal, BattlegroundProposalStatus status) const;
BattlegroundProposal* FindProposalFor(ObjectGuid guid);
BattlegroundProposal const* FindProposalFor(ObjectGuid guid) const;
// keyed by battleground instance guid; at most one proposal per created battleground
std::unordered_map<uint32, BattlegroundProposal> m_Proposals;
uint32 m_WaitTimes[PVP_TEAMS_COUNT][MAX_BATTLEGROUND_BRACKETS][COUNT_OF_PLAYERS_TO_AVERAGE_WAIT_TIME];
uint32 m_WaitTimeLastPlayer[PVP_TEAMS_COUNT][MAX_BATTLEGROUND_BRACKETS];
uint32 m_SumOfWaitTimes[PVP_TEAMS_COUNT][MAX_BATTLEGROUND_BRACKETS];
@@ -163,6 +274,26 @@ class BGQueueInviteEvent : public BasicEvent
BattlegroundQueueTypeId m_QueueId;
};
/*
Deadline of an all-or-nothing group proposal. One event per proposal, not per player: the whole lobby
stands or falls together, so a single timer collapses it rather than PROPOSAL_ACCEPT_WAIT_TIME worth of
per-player BGQueueRemoveEvents racing each other.
*/
class BGQueueProposalTimeoutEvent : public BasicEvent
{
public:
BGQueueProposalTimeoutEvent(uint32 bgInstanceGUID, BattlegroundQueueTypeId queueId)
: m_BgInstanceGUID(bgInstanceGUID), m_QueueId(queueId)
{
}
virtual bool Execute(uint64 e_time, uint32 p_time) override;
virtual void Abort(uint64 e_time) override;
private:
uint32 m_BgInstanceGUID;
BattlegroundQueueTypeId m_QueueId;
};
/*
This class is used to remove player from BG queue after 1 minute 20 seconds from first invitation
We must store removeInvite time in case player left queue and joined and is invited again
@@ -0,0 +1,201 @@
/*
* This file is part of the TrinityCore Project. See AUTHORS file for Copyright information
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation; either version 2 of the License, or (at your
* option) any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "BattlegroundSoloShuffle.h"
#include "DatabaseEnv.h"
#include "DB2Stores.h"
#include "DBCEnums.h"
#include "Log.h"
#include "ObjectAccessor.h"
#include "Player.h"
#include "SpellAuras.h"
#include "SpellHistory.h"
#include "World.h"
#include <cmath>
BattlegroundSoloShuffle::BattlegroundSoloShuffle(BattlegroundTemplate const* battlegroundTemplate)
: Arena(battlegroundTemplate)
{
}
void BattlegroundSoloShuffle::AddPlayer(Player* player, BattlegroundQueueTypeId queueId)
{
// Base does the arena flag-cast + team/score bookkeeping (round 1's teams are the queue's balanced split).
Arena::AddPlayer(player, queueId);
if (_assigned >= _lobby.size())
return;
// Classify by spec role. CheckSoloQueueMatch placed exactly 2 healers + 4 dps, so healers take slots 0/1
// and damage takes 2..5 - a stable identity used by every reshuffle.
ChrSpecializationEntry const* spec = player->GetPrimarySpecializationEntry();
bool const isHealer = spec && spec->GetRole() == ChrSpecializationRole::Healer;
uint8 slot = 6;
if (isHealer)
slot = _lobby[0].Guid.IsEmpty() ? 0 : 1;
else
for (uint8 i = 2; i < 6; ++i)
if (_lobby[i].Guid.IsEmpty()) { slot = i; break; }
// Defensive fallback if the role mix is not exactly 2+4 (e.g. a spec with no healer role queued a healer slot).
if (slot >= 6)
for (uint8 i = 0; i < 6; ++i)
if (_lobby[i].Guid.IsEmpty()) { slot = i; break; }
if (slot < 6)
{
_lobby[slot].Guid = player->GetGUID();
_lobby[slot].IsHealer = isHealer;
// Load this character's persisted solo-shuffle MMR (slot kSoloShuffleArenaSlot in character_arena_stats),
// defaulting to the configured start rating on the first ever queue. The statement is CONNECTION_SYNCH,
// so a direct query here is safe and mirrors ArenaTeam::LoadMemberFromDB.
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_MATCH_MAKER_RATING);
stmt->setUInt64(0, player->GetGUID().GetCounter());
stmt->setUInt8(1, kSoloShuffleArenaSlot);
if (PreparedQueryResult result = CharacterDatabase.Query(stmt))
_lobby[slot].Rating = (*result)[0].GetUInt16();
else
_lobby[slot].Rating = static_cast<uint16>(sWorld->getIntConfig(CONFIG_ARENA_START_MATCHMAKER_RATING));
++_assigned;
}
}
void BattlegroundSoloShuffle::EndBattleground(Team winner)
{
// Arena::CheckWinConditions calls this the instant one 3-stack is wiped - i.e. a ROUND ended. While the
// series is still running and all six players remain, tally the round and reshuffle for the next one rather
// than tearing the instance down. Round 6 (or an abnormal end where a leaver has dropped the head-count
// below 6) falls through to the real Arena/Battleground teardown. The round counter also bounds this: even
// a repeated non-wipe EndBattleground (e.g. a match timeout) advances the round and terminates by round 6.
if (GetStatus() == STATUS_IN_PROGRESS && _currentRound < 6
&& (GetPlayersCountByTeam(ALLIANCE) + GetPlayersCountByTeam(HORDE)) >= 6)
{
for (LobbySlot& s : _lobby)
if (Player* p = ObjectAccessor::FindPlayer(s.Guid))
if (p->GetBGTeam() == winner)
++s.RoundsWon;
TC_LOG_DEBUG("bg.battleground", "Solo Shuffle {}: round {} won by team {}", GetInstanceID(), _currentRound, uint32(winner));
++_currentRound;
StartRound();
return;
}
// Series over: persist each player's personal solo-shuffle MMR. Each of the six rounds is scored as one
// game against the lobby's average rating, so a player's rating moves by a bounded Elo step driven by how
// many of the six rounds they won. The lobby average is a fair single opponent proxy for a reshuffled pod
// where everyone faced everyone.
uint32 ratingSum = 0;
uint8 present = 0;
for (LobbySlot const& s : _lobby)
if (!s.Guid.IsEmpty())
{
ratingSum += s.Rating;
++present;
}
if (present)
{
double const avgRating = double(ratingSum) / double(present);
CharacterDatabaseTransaction trans = CharacterDatabase.BeginTransaction();
for (LobbySlot const& s : _lobby)
{
if (s.Guid.IsEmpty())
continue;
// Expected win probability of a single round against an average-rated opponent, then the whole-series
// delta = K * (actualWins - expectedWins) over the six rounds. At an even lobby (rating == average)
// expected is 3 wins, so >3 rounds gains and <3 loses, symmetric and bounded to +/- kRoundsPerSeries*kPerGameK/... .
double const expectedPerRound = 1.0 / (1.0 + std::pow(10.0, (avgRating - double(s.Rating)) / 400.0));
double const expectedWins = expectedPerRound * double(kRoundsPerSeries);
int32 const delta = int32(std::lround(double(kPerGameK) * (double(s.RoundsWon) - expectedWins)));
int32 newRating = int32(s.Rating) + delta;
if (newRating < 0)
newRating = 0;
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_REP_CHARACTER_ARENA_STATS);
stmt->setUInt64(0, s.Guid.GetCounter());
stmt->setUInt8(1, kSoloShuffleArenaSlot);
stmt->setUInt16(2, uint16(newRating));
trans->Append(stmt);
TC_LOG_DEBUG("bg.battleground", "Solo Shuffle {}: {} finished {}/{} rounds won, rating {} -> {} ({}{})",
GetInstanceID(), s.Guid.ToString(), s.RoundsWon, kRoundsPerSeries, s.Rating, newRating,
delta >= 0 ? "+" : "", delta);
}
CharacterDatabase.CommitTransaction(trans);
}
Battleground::EndBattleground(winner);
}
void BattlegroundSoloShuffle::StartRound()
{
std::array<uint8, 2> const& allianceDps = kDpsPairForAllianceSide[_currentRound - 1];
for (uint8 i = 0; i < 6; ++i)
{
Player* p = ObjectAccessor::FindPlayer(_lobby[i].Guid);
if (!p)
continue;
// Healer 0 anchors ALLIANCE, healer 1 anchors HORDE; the four damage players split by this round's
// fixed 2-subset, so no two rounds share a partition.
Team team;
if (i == 0)
team = ALLIANCE;
else if (i == 1)
team = HORDE;
else
{
uint8 const dpsIdx = i - 2; // 0..3
team = (dpsIdx == allianceDps[0] || dpsIdx == allianceDps[1]) ? ALLIANCE : HORDE;
}
AddOrSetPlayerToCorrectBgGroup(p, team);
p->SetBGTeam(team);
p->SetArenaFaction(team);
// Hard round reset: resurrect the losers, top health/power off, wipe cooldowns and every non-permanent
// aura (DoTs/HoTs/CC/buffs), then re-teleport to the team's start position.
if (!p->IsAlive())
{
p->ResurrectPlayer(1.0f);
p->SpawnCorpseBones();
}
p->SetFullHealth();
p->ResetAllPowers();
p->GetSpellHistory()->ResetAllCooldowns();
p->RemoveAppliedAuras([](AuraApplication const* aurApp)
{
return !aurApp->GetBase()->IsPermanent();
});
if (WorldSafeLocsEntry const* pos = GetTeamStartPosition(GetTeamIndexByTeamId(team)))
p->TeleportTo(pos->Loc);
}
UpdateWorldState(ARENA_WORLD_STATE_SOLO_SHUFFLE_ROUND, _currentRound);
UpdateWorldState(ARENA_WORLD_STATE_SHOW_SOLO_SHUFFLE_ROUND, 1);
}
@@ -0,0 +1,67 @@
/*
* This file is part of the TrinityCore Project. See AUTHORS file for Copyright information
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation; either version 2 of the License, or (at your
* option) any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef TRINITYCORE_BATTLEGROUND_SOLO_SHUFFLE_H
#define TRINITYCORE_BATTLEGROUND_SOLO_SHUFFLE_H
#include "Arena.h"
#include <array>
// Rated Solo Shuffle: 6 solo players (2 healers + 4 damage) play 6 rounds of 3v3, the two teams reshuffled
// each round so every round is a distinct partition. Built on Arena (reuses its flag-cast AddPlayer, arena
// score plumbing and CheckWinConditions "a team is wiped" round-end trigger). The only new behaviour is that
// a round ending does NOT tear the instance down until all six rounds are played - EndBattleground intercepts
// each round end and either reshuffles-and-continues or, on round 6, runs the real Arena/Battleground teardown.
class TC_GAME_API BattlegroundSoloShuffle : public Arena
{
public:
explicit BattlegroundSoloShuffle(BattlegroundTemplate const* battlegroundTemplate);
protected:
void AddPlayer(Player* player, BattlegroundQueueTypeId queueId) override;
private:
void EndBattleground(Team winner) override; // per-round end (Arena::CheckWinConditions calls this)
void StartRound(); // reassign teams + reset + re-teleport the 6 players
// The 6 distinct 2-element subsets of the 4 damage players {0,1,2,3}. Round k assigns subset k to the
// healer-1 (ALLIANCE) side; the complement goes to the healer-2 (HORDE) side. All 6 partitions are distinct.
static constexpr std::array<std::array<uint8, 2>, 6> kDpsPairForAllianceSide = { {
{ { 0, 1 } }, { { 0, 2 } }, { { 0, 3 } }, { { 1, 2 } }, { { 1, 3 } }, { { 2, 3 } }
} };
struct LobbySlot
{
ObjectGuid Guid;
bool IsHealer = false;
uint8 RoundsWon = 0;
uint16 Rating = 0; // personal solo-shuffle MMR, loaded at join, re-persisted at series end
};
// Solo Shuffle keeps a personal matchmaker rating in character_arena_stats under a slot distinct from the
// three team-arena slots (0=2v2, 1=3v3, 2=5v5); the series is 6 individual games, so the rating moves by a
// bounded per-game Elo step against the lobby's average rating.
static constexpr uint8 kSoloShuffleArenaSlot = 3;
static constexpr uint16 kRoundsPerSeries = 6;
static constexpr int32 kPerGameK = 16; // total swing bounded to +/- (kRoundsPerSeries*kPerGameK)/2
std::array<LobbySlot, 6> _lobby; // slots 0/1 = the two healers, 2..5 = the four damage players
uint8 _assigned = 0; // how many lobby slots have been filled by AddPlayer
uint8 _currentRound = 1; // 1..6
};
#endif // TRINITYCORE_BATTLEGROUND_SOLO_SHUFFLE_H
@@ -0,0 +1,23 @@
/*
* This file is part of the TrinityCore Project. See AUTHORS file for Copyright information
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation; either version 2 of the License, or (at your
* option) any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "BattlegroundTrainingGrounds.h"
BattlegroundTrainingGrounds::BattlegroundTrainingGrounds(BattlegroundTemplate const* battlegroundTemplate)
: Arena(battlegroundTemplate)
{
}
@@ -0,0 +1,35 @@
/*
* This file is part of the TrinityCore Project. See AUTHORS file for Copyright information
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation; either version 2 of the License, or (at your
* option) any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef TRINITYCORE_BATTLEGROUND_TRAINING_GROUNDS_H
#define TRINITYCORE_BATTLEGROUND_TRAINING_GROUNDS_H
#include "Arena.h"
// Training Grounds: a solo, unrated PvP practice instance (BattlemasterList 1145). Built on Arena to reuse its
// map/flag/score plumbing, but a lone player with no opposing team must NOT be auto-declared the winner - so
// CheckWinConditions is a no-op. The practice session ends only when the player leaves.
class TC_GAME_API BattlegroundTrainingGrounds : public Arena
{
public:
explicit BattlegroundTrainingGrounds(BattlegroundTemplate const* battlegroundTemplate);
private:
void CheckWinConditions() override { } // solo practice: never auto-end on "the other team is empty"
};
#endif // TRINITYCORE_BATTLEGROUND_TRAINING_GROUNDS_H
+116 -115
View File
@@ -97,8 +97,8 @@ namespace
}
CollectionMgr::CollectionMgr(WorldSession* owner) : _owner(owner),
_appearances(std::make_unique<boost::dynamic_bitset<uint32>>()),
_transmogIllusions(std::make_unique<boost::dynamic_bitset<uint32>>())
_appearances(std::make_unique<boost::dynamic_bitset<uint32>>()),
_transmogIllusions(std::make_unique<boost::dynamic_bitset<uint32>>())
{
}
@@ -193,7 +193,7 @@ void CollectionMgr::ToyClearFanfare(uint32 itemId)
if (itr == _toys.end())
return;
itr->second &= ~ ToyFlags::HasFanfare;
itr->second &= ~ToyFlags::HasFanfare;
}
void CollectionMgr::OnItemAdded(Item* item)
@@ -481,7 +481,7 @@ struct DynamicBitsetBlockOutputIterator
using pointer = void;
using reference = void;
explicit DynamicBitsetBlockOutputIterator(OutputAction const& action) : _action(&action) { }
explicit DynamicBitsetBlockOutputIterator(OutputAction const& action) : _action(&action) {}
DynamicBitsetBlockOutputIterator& operator=(uint32 value)
{
@@ -501,9 +501,9 @@ void CollectionMgr::LoadItemAppearances()
{
Player* owner = _owner->GetPlayer();
boost::to_block_range(*_appearances, DynamicBitsetBlockOutputIterator([owner](uint32 blockValue)
{
owner->AddTransmogBlock(blockValue);
}));
{
owner->AddTransmogBlock(blockValue);
}));
for (auto const& [itemModifiedAppearanceId, _] : _temporaryAppearances)
owner->AddConditionalTransmog(itemModifiedAppearanceId);
@@ -567,43 +567,43 @@ void CollectionMgr::SaveAccountItemAppearances(LoginDatabaseTransaction trans)
{
uint16 blockIndex = 0;
boost::to_block_range(*_appearances, DynamicBitsetBlockOutputIterator([this, &blockIndex, trans = trans.get()](uint32 blockValue)
{
if (blockValue) // this table is only appended/bits are set (never cleared) so don't save empty blocks
{
LoginDatabasePreparedStatement* stmt = LoginDatabase.GetPreparedStatement(LOGIN_INS_BNET_ITEM_APPEARANCES);
stmt->setUInt32(0, _owner->GetBattlenetAccountId());
stmt->setUInt16(1, blockIndex);
stmt->setUInt32(2, blockValue);
trans->Append(stmt);
}
if (blockValue) // this table is only appended/bits are set (never cleared) so don't save empty blocks
{
LoginDatabasePreparedStatement* stmt = LoginDatabase.GetPreparedStatement(LOGIN_INS_BNET_ITEM_APPEARANCES);
stmt->setUInt32(0, _owner->GetBattlenetAccountId());
stmt->setUInt16(1, blockIndex);
stmt->setUInt32(2, blockValue);
trans->Append(stmt);
}
++blockIndex;
}));
++blockIndex;
}));
LoginDatabasePreparedStatement* stmt;
for (auto itr = _favoriteAppearances.begin(); itr != _favoriteAppearances.end();)
{
switch (itr->second)
{
case CollectionItemState::New:
stmt = LoginDatabase.GetPreparedStatement(LOGIN_INS_BNET_ITEM_FAVORITE_APPEARANCE);
stmt->setUInt32(0, _owner->GetBattlenetAccountId());
stmt->setUInt32(1, itr->first);
trans->Append(stmt);
itr->second = CollectionItemState::Unchanged;
++itr;
break;
case CollectionItemState::Removed:
stmt = LoginDatabase.GetPreparedStatement(LOGIN_DEL_BNET_ITEM_FAVORITE_APPEARANCE);
stmt->setUInt32(0, _owner->GetBattlenetAccountId());
stmt->setUInt32(1, itr->first);
trans->Append(stmt);
itr = _favoriteAppearances.erase(itr);
break;
case CollectionItemState::Unchanged:
case CollectionItemState::Changed:
++itr;
break;
case CollectionItemState::New:
stmt = LoginDatabase.GetPreparedStatement(LOGIN_INS_BNET_ITEM_FAVORITE_APPEARANCE);
stmt->setUInt32(0, _owner->GetBattlenetAccountId());
stmt->setUInt32(1, itr->first);
trans->Append(stmt);
itr->second = CollectionItemState::Unchanged;
++itr;
break;
case CollectionItemState::Removed:
stmt = LoginDatabase.GetPreparedStatement(LOGIN_DEL_BNET_ITEM_FAVORITE_APPEARANCE);
stmt->setUInt32(0, _owner->GetBattlenetAccountId());
stmt->setUInt32(1, itr->first);
trans->Append(stmt);
itr = _favoriteAppearances.erase(itr);
break;
case CollectionItemState::Unchanged:
case CollectionItemState::Changed:
++itr;
break;
}
}
}
@@ -697,46 +697,46 @@ bool CollectionMgr::CanAddAppearance(ItemModifiedAppearanceEntry const* itemModi
switch (itemTemplate->GetClass())
{
case ITEM_CLASS_WEAPON:
case ITEM_CLASS_WEAPON:
{
if (itemTemplate->GetSubClass() == ITEM_SUBCLASS_WEAPON_EXOTIC ||
itemTemplate->GetSubClass() == ITEM_SUBCLASS_WEAPON_EXOTIC2 ||
itemTemplate->GetSubClass() == ITEM_SUBCLASS_WEAPON_MISCELLANEOUS ||
itemTemplate->GetSubClass() == ITEM_SUBCLASS_WEAPON_THROWN ||
itemTemplate->GetSubClass() == ITEM_SUBCLASS_WEAPON_SPEAR ||
itemTemplate->GetSubClass() == ITEM_SUBCLASS_WEAPON_FISHING_POLE)
return false;
break;
}
case ITEM_CLASS_ARMOR:
{
switch (itemTemplate->GetInventoryType())
{
if (itemTemplate->GetSubClass() == ITEM_SUBCLASS_WEAPON_EXOTIC ||
itemTemplate->GetSubClass() == ITEM_SUBCLASS_WEAPON_EXOTIC2 ||
itemTemplate->GetSubClass() == ITEM_SUBCLASS_WEAPON_MISCELLANEOUS ||
itemTemplate->GetSubClass() == ITEM_SUBCLASS_WEAPON_THROWN ||
itemTemplate->GetSubClass() == ITEM_SUBCLASS_WEAPON_SPEAR ||
itemTemplate->GetSubClass() == ITEM_SUBCLASS_WEAPON_FISHING_POLE)
case INVTYPE_BODY:
case INVTYPE_SHIELD:
case INVTYPE_CLOAK:
case INVTYPE_TABARD:
case INVTYPE_HOLDABLE:
break;
case INVTYPE_HEAD:
case INVTYPE_SHOULDERS:
case INVTYPE_CHEST:
case INVTYPE_WAIST:
case INVTYPE_LEGS:
case INVTYPE_FEET:
case INVTYPE_WRISTS:
case INVTYPE_HANDS:
case INVTYPE_ROBE:
if (itemTemplate->GetSubClass() == ITEM_SUBCLASS_ARMOR_MISCELLANEOUS)
return false;
break;
}
case ITEM_CLASS_ARMOR:
{
switch (itemTemplate->GetInventoryType())
{
case INVTYPE_BODY:
case INVTYPE_SHIELD:
case INVTYPE_CLOAK:
case INVTYPE_TABARD:
case INVTYPE_HOLDABLE:
break;
case INVTYPE_HEAD:
case INVTYPE_SHOULDERS:
case INVTYPE_CHEST:
case INVTYPE_WAIST:
case INVTYPE_LEGS:
case INVTYPE_FEET:
case INVTYPE_WRISTS:
case INVTYPE_HANDS:
case INVTYPE_ROBE:
if (itemTemplate->GetSubClass() == ITEM_SUBCLASS_ARMOR_MISCELLANEOUS)
return false;
break;
default:
return false;
}
break;
}
default:
return false;
}
break;
}
default:
return false;
}
if (itemModifiedAppearance->ID < _appearances->size() && _appearances->test(itemModifiedAppearance->ID))
@@ -782,7 +782,8 @@ void CollectionMgr::AddItemAppearance(ItemModifiedAppearanceEntry const* itemMod
if (IsSetCompleted(set->ID))
{
if (Quest const* quest = sObjectMgr->GetQuestTemplate(set->TrackingQuestID))
owner->RewardQuest(quest, LootItemType::Item, 0, owner, false);
if (!owner->GetQuestRewardStatus(quest->GetQuestId()))
owner->RewardQuest(quest, LootItemType::Item, 0, owner, false);
owner->UpdateCriteria(CriteriaType::CollectTransmogSetFromGroup, set->TransmogSetGroupID);
}
@@ -895,9 +896,9 @@ void CollectionMgr::LoadTransmogIllusions()
{
Player* owner = _owner->GetPlayer();
boost::to_block_range(*_transmogIllusions, DynamicBitsetBlockOutputIterator([owner](uint32 blockValue)
{
owner->AddIllusionBlock(blockValue);
}));
{
owner->AddIllusionBlock(blockValue);
}));
}
void CollectionMgr::LoadAccountTransmogIllusions(PreparedQueryResult knownTransmogIllusions)
@@ -946,17 +947,17 @@ void CollectionMgr::SaveAccountTransmogIllusions(LoginDatabaseTransaction trans)
uint16 blockIndex = 0;
boost::to_block_range(*_transmogIllusions, DynamicBitsetBlockOutputIterator([this, &blockIndex, trans = trans.get()](uint32 blockValue)
{
if (blockValue) // this table is only appended/bits are set (never cleared) so don't save empty blocks
{
LoginDatabasePreparedStatement* stmt = LoginDatabase.GetPreparedStatement(LOGIN_INS_BNET_TRANSMOG_ILLUSIONS);
stmt->setUInt32(0, _owner->GetBattlenetAccountId());
stmt->setUInt16(1, blockIndex);
stmt->setUInt32(2, blockValue);
trans->Append(stmt);
}
++blockIndex;
}));
if (blockValue) // this table is only appended/bits are set (never cleared) so don't save empty blocks
{
LoginDatabasePreparedStatement* stmt = LoginDatabase.GetPreparedStatement(LOGIN_INS_BNET_TRANSMOG_ILLUSIONS);
stmt->setUInt32(0, _owner->GetBattlenetAccountId());
stmt->setUInt16(1, blockIndex);
stmt->setUInt32(2, blockValue);
trans->Append(stmt);
}
++blockIndex;
}));
}
void CollectionMgr::AddTransmogIllusion(uint32 transmogIllusionId)
@@ -1079,36 +1080,36 @@ void CollectionMgr::SaveAccountWarbandScenes(LoginDatabaseTransaction trans)
auto& [warbandSceneId, data] = *itr;
switch (data.State)
{
case CollectionItemState::New:
stmt = LoginDatabase.GetPreparedStatement(LOGIN_INS_BNET_WARBAND_SCENE);
stmt->setUInt32(0, _owner->GetBattlenetAccountId());
stmt->setUInt32(1, warbandSceneId);
stmt->setBool(2, data.Flags.HasFlag(WarbandSceneCollectionFlags::Favorite));
stmt->setBool(3, data.Flags.HasFlag(WarbandSceneCollectionFlags::HasFanfare));
trans->Append(stmt);
data.State = CollectionItemState::Unchanged;
++itr;
break;
case CollectionItemState::Changed:
stmt = LoginDatabase.GetPreparedStatement(LOGIN_UPD_BNET_WARBAND_SCENE);
stmt->setBool(0, data.Flags.HasFlag(WarbandSceneCollectionFlags::Favorite));
stmt->setBool(1, data.Flags.HasFlag(WarbandSceneCollectionFlags::HasFanfare));
stmt->setUInt32(2, _owner->GetBattlenetAccountId());
stmt->setUInt32(3, warbandSceneId);
trans->Append(stmt);
data.State = CollectionItemState::Unchanged;
++itr;
break;
case CollectionItemState::Removed:
stmt = LoginDatabase.GetPreparedStatement(LOGIN_DEL_BNET_WARBAND_SCENE);
stmt->setUInt32(0, _owner->GetBattlenetAccountId());
stmt->setUInt32(1, warbandSceneId);
trans->Append(stmt);
itr = _warbandScenes.erase(itr);
break;
default:
++itr;
break;
case CollectionItemState::New:
stmt = LoginDatabase.GetPreparedStatement(LOGIN_INS_BNET_WARBAND_SCENE);
stmt->setUInt32(0, _owner->GetBattlenetAccountId());
stmt->setUInt32(1, warbandSceneId);
stmt->setBool(2, data.Flags.HasFlag(WarbandSceneCollectionFlags::Favorite));
stmt->setBool(3, data.Flags.HasFlag(WarbandSceneCollectionFlags::HasFanfare));
trans->Append(stmt);
data.State = CollectionItemState::Unchanged;
++itr;
break;
case CollectionItemState::Changed:
stmt = LoginDatabase.GetPreparedStatement(LOGIN_UPD_BNET_WARBAND_SCENE);
stmt->setBool(0, data.Flags.HasFlag(WarbandSceneCollectionFlags::Favorite));
stmt->setBool(1, data.Flags.HasFlag(WarbandSceneCollectionFlags::HasFanfare));
stmt->setUInt32(2, _owner->GetBattlenetAccountId());
stmt->setUInt32(3, warbandSceneId);
trans->Append(stmt);
data.State = CollectionItemState::Unchanged;
++itr;
break;
case CollectionItemState::Removed:
stmt = LoginDatabase.GetPreparedStatement(LOGIN_DEL_BNET_WARBAND_SCENE);
stmt->setUInt32(0, _owner->GetBattlenetAccountId());
stmt->setUInt32(1, warbandSceneId);
trans->Append(stmt);
itr = _warbandScenes.erase(itr);
break;
default:
++itr;
break;
}
}
}
+18 -2
View File
@@ -163,6 +163,7 @@
#include "OmniumFolioMgr.h"
#include "CovenantPackets.h"
#include "WeeklyRewardsMgr.h"
#include <LFGPackets.h>
//WowCommunity
// corpse reclaim times
@@ -7095,8 +7096,23 @@ void Player::SendCurrencies() const
void Player::SendPvpRewards() const
{
//WorldPacket packet(SMSG_REQUEST_PVP_REWARDS_RESPONSE, 24);
//GetSession()->SendPacket(&packet);
WorldPackets::LFG::RequestPvpRewardsResponse response;
// Mirrors Battleground::EndBattleground: the config is a kill count, not an honour amount.
uint32 const winnerKills = GetRandomWinner()
? sWorld->getIntConfig(CONFIG_BG_REWARD_WINNER_HONOR_LAST)
: sWorld->getIntConfig(CONFIG_BG_REWARD_WINNER_HONOR_FIRST);
uint32 const winnerHonor = Trinity::Honor::hk_honor_at_level(std::min<uint8>(GetLevel(), 80), float(winnerKills));
// Every battleground pays this same bonus - EndBattleground does not vary it by bracket - so the
// battleground-shaped activities this core actually queues for all advertise it, and nothing else does.
for (uint8 slot : { uint8(WorldPackets::LFG::RequestPvpRewardsResponse::RandomBattleground),
uint8(WorldPackets::LFG::RequestPvpRewardsResponse::RatedBattleground),
uint8(WorldPackets::LFG::RequestPvpRewardsResponse::BrawlBattleground),
uint8(WorldPackets::LFG::RequestPvpRewardsResponse::BattlegroundBlitz) })
response.Activity[slot].Honor = int32(winnerHonor);
SendDirectMessage(response.Write());
}
void Player::SetCreateCurrency(uint32 id, uint32 amount)
+529 -142
View File
@@ -197,13 +197,10 @@ void WorldSession::HandleBattlemasterJoinOpcode(WorldPackets::Battleground::Batt
return;
BattlegroundQueue& bgQueue = sBattlegroundMgr->GetBattlegroundQueue(bgQueueTypeId);
GroupQueueInfo* ginfo = bgQueue.AddGroup(_player, nullptr, getQueueTeam(), bracketEntry, false, isPremade, 0);
if (ginfo)
{
auto itr = bgQueue.m_QueuedPlayers.find(_player->GetGUID());
if (itr != bgQueue.m_QueuedPlayers.end())
itr->second.Roles = battlemasterJoin.Roles;
}
// Argument list unchanged from upstream; only the role mask is new. See the group branch below for why
// the premade flag is deliberately left where upstream put it. (Here isPremade is still false anyway -
// it is only computed in the group branch.)
GroupQueueInfo* ginfo = bgQueue.AddGroup(_player, nullptr, getQueueTeam(), bracketEntry, false, isPremade, 0, battlemasterJoin.Roles);
uint32 avgTime = bgQueue.GetAverageQueueWaitTime(ginfo, bracketEntry->GetBracketId());
uint32 queueSlot = _player->AddBattlegroundQueueId(bgQueueTypeId);
@@ -231,13 +228,22 @@ void WorldSession::HandleBattlemasterJoinOpcode(WorldPackets::Battleground::Batt
if (!err)
{
TC_LOG_DEBUG("bg.battleground", "Battleground: the following players are joining as group:");
ginfo = bgQueue.AddGroup(_player, grp, getQueueTeam(), bracketEntry, false, isPremade, 0);
if (ginfo)
{
auto itr = bgQueue.m_QueuedPlayers.find(_player->GetGUID());
if (itr != bgQueue.m_QueuedPlayers.end())
itr->second.Roles = battlemasterJoin.Roles;
}
// The premade flag is NOT promoted into AddGroup's isPremade parameter, and that is a decision, not
// an oversight. AddGroup buckets with `if (!m_queueId.Rated && !isPremade) index += PVP_TEAMS_COUNT`,
// so a true flag files the entry in BG_QUEUE_PREMADE_*. For an UNRATED queue exactly one matchmaker
// reads those lists - CheckPremadeMatch - and its first condition needs an uninvited premade on BOTH
// factions at once; CheckNormalMatch and FillPlayersToBG read BG_QUEUE_NORMAL_* only. A group that
// reaches BattlemasterList.MinPlayers would therefore drop out of ordinary matchmaking until an
// opposing premade turned up, or until the demotion loop at the end of CheckPremadeMatch released it
// - and that loop fires only on `JoinTime < now - CONFIG_BATTLEGROUND_PREMADE_GROUP_WAIT_FOR_MATCH`
// (Battleground.PremadeGroupWaitForMatch, 30 min by default) or on `Players.size() < MinPlayersPerTeam`,
// which is false for this group by construction. That is not a rare shape: BattlemasterList carries
// MinPlayers 5 at MaxGroupSize 5 for Random Battleground (32), Classic Warsong Gulch (2) and Twin
// Peaks (108), so ANY full party would be parked. CMSG_BATTLEMASTER_JOIN is not one of this unit's
// opcodes and nothing in the 12.1 client asks for a different queue layout, so the call is left
// byte-for-byte as upstream wrote it (`false, isPremade, 0` - the flag lands in ArenaRating, which no
// unrated code path reads) and only gains the role mask that the 12.1 role-aware queue needs.
ginfo = bgQueue.AddGroup(_player, grp, getQueueTeam(), bracketEntry, false, isPremade, 0, battlemasterJoin.Roles);
avgTime = bgQueue.GetAverageQueueWaitTime(ginfo, bracketEntry->GetBracketId());
}
@@ -347,6 +353,17 @@ void WorldSession::HandleBattleFieldPortOpcode(WorldPackets::Battleground::Battl
{
TC_LOG_DEBUG("bg.battleground", "CMSG_BATTLEFIELD_PORT {} Slot: {}, Unk: {}, Time: {}, AcceptedInvite: {}. Cant find BG with id {}!",
GetPlayerInfo(), battlefieldPort.Ticket.Id, uint32(battlefieldPort.Ticket.Type), battlefieldPort.Ticket.Time.AsUnderlyingType(), uint32(battlefieldPort.AcceptedInvite), ginfo.IsInvitedToBGInstanceGUID);
// The one refusal on this path that is a fact rather than a rule of ours: the player accepted a real
// invitation, and the battleground instance it pointed at is gone. Upstream returned in silence here, so
// the client kept a ready dialog that could never resolve. SMSG_BATTLEFIELD_PORT_DENIED is the only
// channel the client has for "your port did not happen": it reads nothing from the body and shows one
// system message, see the BattlefieldPortDenied class comment for the consumer.
// UNVERIFIED: which refusals retail answers with this message. The displayed text is settled
// (ERR_PLAYER_DEAD, table entry 171) and does not describe a vanished instance, but the alternative is
// the silence that leaves the dialog hanging, and no capture of any build contains this opcode. Needs a
// recording of a port into an instance that was torn down between invitation and accept.
SendPacket(WorldPackets::Battleground::BattlefieldPortDenied().Write());
return;
}
else if (bg)
@@ -391,44 +408,24 @@ void WorldSession::HandleBattleFieldPortOpcode(WorldPackets::Battleground::Battl
if (!_player->IsInvitedForBattlegroundQueueType(bgQueueTypeId))
return; // cheating?
if (!_player->InBattleground())
_player->SetBattlegroundEntryPoint();
// resurrect the player
if (!_player->IsAlive())
{
_player->ResurrectPlayer(1.0f);
_player->SpawnCorpseBones();
}
// stop taxi flight at port
_player->FinishTaxiFlight();
WorldPackets::Battleground::BattlefieldStatusActive battlefieldStatus;
BattlegroundMgr::BuildBattlegroundStatusActive(&battlefieldStatus, bg, _player, battlefieldPort.Ticket.Id, _player->GetBattlegroundQueueJoinTime(bgQueueTypeId), bgQueueTypeId);
SendPacket(battlefieldStatus.Write());
// remove battleground queue status from BGmgr
bgQueue.RemovePlayer(_player->GetGUID(), false);
// this is still needed here if battleground "jumping" shouldn't add deserter debuff
// also this is required to prevent stuck at old battleground after SetBattlegroundId set to new
if (Battleground* currentBg = _player->GetBattleground())
currentBg->RemovePlayerAtLeave(_player->GetGUID(), false, true);
// set the destination instance id
_player->SetBattlegroundId(bg->GetInstanceID(), bg->GetTypeID(), bgQueueTypeId);
// set the destination team
_player->SetBGTeam(ginfo.Team);
// Solo-queue modes hold the whole lobby together: the accept is recorded, the client is told who is
// still deciding, and nobody ports until everyone has answered. ProposalAccept does the porting - for
// every member at once - when this accept is the last one.
if (bgQueue.ProposalAccept(_player->GetGUID()))
return;
// bg->HandleBeforeTeleportToBattleground(_player);
BattlegroundMgr::SendToBattleground(_player, bg);
// add only in HandleMoveWorldPortAck()
// bg->AddPlayer(_player, team);
TC_LOG_DEBUG("bg.battleground", "Battleground: player {} ({}) joined battle for bg {}, bgtype {}, queue {{ BattlemasterListId: {}, Type: {}, Rated: {}, TeamSize: {} }}.",
_player->GetName(), _player->GetGUID().ToString(), bg->GetInstanceID(), bg->GetTypeID(),
bgQueueTypeId.BattlemasterListId, uint32(bgQueueTypeId.Type), bgQueueTypeId.Rated ? "true" : "false", uint32(bgQueueTypeId.TeamSize));
BattlegroundMgr::PortPlayerToBattleground(_player, bg, ginfo.Team, bgQueueTypeId, battlefieldPort.Ticket.Id);
}
else // leave queue
{
// Under a group proposal a decline is not just this player leaving: the whole proposal collapses, the
// others get SMSG_BATTLEFIELD_STATUS_GROUP_PROPOSAL_FAILED and those who had already accepted are put
// back in the queue at the position they held. This player's own removal is the code below.
bgQueue.ProposalDecline(_player->GetGUID());
// if player leaves rated arena match before match start, it is counted as he played but he lost
if (bgQueue.GetQueueId().Rated && ginfo.IsInvitedToBGInstanceGUID)
{
@@ -506,7 +503,8 @@ void WorldSession::HandleRequestBattlefieldStatusOpcode(WorldPackets::Battlegrou
continue;
WorldPackets::Battleground::BattlefieldStatusNeedConfirmation battlefieldStatus;
BattlegroundMgr::BuildBattlegroundStatusNeedConfirmation(&battlefieldStatus, bg, _player, i, _player->GetBattlegroundQueueJoinTime(bgQueueTypeId), getMSTimeDiff(GameTime::GetGameTimeMS(), ginfo.RemoveInviteTime), bgQueueTypeId);
BattlegroundMgr::BuildBattlegroundStatusNeedConfirmation(&battlefieldStatus, bg, _player, i, _player->GetBattlegroundQueueJoinTime(bgQueueTypeId), getMSTimeDiff(GameTime::GetGameTimeMS(), ginfo.RemoveInviteTime), bgQueueTypeId,
bgQueue.GetPlayerRole(_player->GetGUID()));
SendPacket(battlefieldStatus.Write());
}
else
@@ -610,7 +608,7 @@ void WorldSession::HandleBattlemasterJoinArena(WorldPackets::Battleground::Battl
{
TC_LOG_DEBUG("bg.battleground", "Battleground: arena team id {}, leader {} queued with matchmaker rating {} for type {}", _player->GetArenaTeamId(packet.TeamSizeIndex), _player->GetName(), matchmakerRating, arenatype);
ginfo = bgQueue.AddGroup(_player, grp, Team(_player->GetTeam()), bracketEntry, false, arenaRating, matchmakerRating);
ginfo = bgQueue.AddGroup(_player, grp, Team(_player->GetTeam()), bracketEntry, false, arenaRating, matchmakerRating, packet.Roles);
if (ginfo)
{
auto itr = bgQueue.m_QueuedPlayers.find(_player->GetGUID());
@@ -656,199 +654,519 @@ void WorldSession::HandleBattlemasterJoinArena(WorldPackets::Battleground::Battl
void WorldSession::HandleBattlemasterJoinBrawl(WorldPackets::Battleground::BattlemasterJoinBrawl& packet)
{
// We never advertise a special-event brawl (HandleRequestScheduledPvpInfo leaves that block out), so the
// client has nothing to set this bit for. Retail's captured special-event brawl is an LFGDungeons brawl with
// no BattlemasterList at all, which this queue could not serve even if it were advertised.
if (packet.IsSpecialBrawl)
return;
Optional<BattlegroundMgr::ActiveBrawl> brawl = sBattlegroundMgr->GetActiveBrawl();
if (!brawl)
return;
BattlegroundQueueTypeId bgQueueTypeId =
BattlegroundMgr::BGQueueTypeId(uint16(brawl->BattlemasterListId), BattlegroundQueueIdType::Battleground, false, 0);
if (!BattlegroundMgr::IsValidQueueId(bgQueueTypeId))
return;
BattlemasterListEntry const* battlemasterListEntry = sBattlemasterListStore.AssertEntry(bgQueueTypeId.BattlemasterListId);
if (_player->InBattleground())
return;
BattlegroundTypeId brawlBgTypeId = sBattlegroundMgr->GetActiveBrawl();
if (brawlBgTypeId == BATTLEGROUND_TYPE_NONE)
{
ChatHandler(this).PSendSysMessage("There is no active PvP Brawl at this time.");
return;
}
BattlegroundTemplate const* bgTemplate = sBattlegroundMgr->GetBattlegroundTemplateByTypeId(brawlBgTypeId);
// GetActiveBrawl already refused to advertise a brawl without a template, so this is a reload race, not a
// configuration error.
BattlegroundTemplate const* bgTemplate = sBattlegroundMgr->GetBattlegroundTemplateByTypeId(BattlegroundTypeId(bgQueueTypeId.BattlemasterListId));
if (!bgTemplate)
return;
BattlemasterListEntry const* battlemasterListEntry = sBattlemasterListStore.AssertEntry(brawlBgTypeId);
if (DisableMgr::IsDisabledFor(DISABLE_TYPE_BATTLEGROUND, brawlBgTypeId, nullptr) || battlemasterListEntry->GetFlags().HasFlag(BattlemasterListFlags::InternalOnly))
{
ChatHandler(this).PSendSysMessage(LANG_BG_DISABLED);
return;
}
BattlegroundQueueTypeId bgQueueTypeId = BattlegroundMgr::BGQueueTypeId(brawlBgTypeId, BattlegroundQueueIdType::Battleground, false, 0);
PVPDifficultyEntry const* bracketEntry = DB2Manager::GetBattlegroundBracketByLevel(bgTemplate->MapIDs.front(), _player->GetLevel());
if (!bracketEntry)
return;
auto sendFailed = [&](GroupJoinBattlegroundResult result, ObjectGuid const* errorGuid = nullptr)
{
WorldPackets::Battleground::BattlefieldStatusFailed battlefieldStatus;
BattlegroundMgr::BuildBattlegroundStatusFailed(&battlefieldStatus, bgQueueTypeId, _player, 0, result, errorGuid);
SendPacket(battlefieldStatus.Write());
};
// C_PvP.JoinBrawl refuses to emit the packet when the selected roles and the class's allowed roles do not
// intersect (client error 0x33A), so a zero mask means a client we do not model.
if (!packet.Roles)
{
sendFailed(ERR_BATTLEGROUND_JOIN_FAILED);
return;
}
Group* grp = _player->GetGroup();
if (grp)
{
if (grp->GetLeaderGUID() != _player->GetGUID())
return;
// BattlemasterList.MaxGroupSize is the brawl's own party cap (5 for Deep Six).
if (grp->GetMembersCount() > static_cast<uint32>(battlemasterListEntry->MaxGroupSize))
{
sendFailed(ERR_BATTLEGROUND_JOIN_FAILED);
return;
}
}
if (GetPlayer()->isUsingLfg())
{
sendFailed(ERR_LFG_CANT_USE_BATTLEGROUND);
return;
}
if (!_player->CanJoinToBattleground(bgTemplate))
{
WorldPackets::Battleground::BattlefieldStatusFailed battlefieldStatus;
BattlegroundMgr::BuildBattlegroundStatusFailed(&battlefieldStatus, bgQueueTypeId, _player, 0, ERR_BATTLEGROUND_JOIN_TIMED_OUT);
SendPacket(battlefieldStatus.Write());
sendFailed(ERR_BATTLEGROUND_JOIN_TIMED_OUT);
return;
}
if (_player->IsDeserter())
{
WorldPackets::Battleground::BattlefieldStatusFailed battlefieldStatus;
BattlegroundMgr::BuildBattlegroundStatusFailed(&battlefieldStatus, bgQueueTypeId, _player, 0, ERR_GROUP_JOIN_BATTLEGROUND_DESERTERS);
SendPacket(battlefieldStatus.Write());
sendFailed(ERR_GROUP_JOIN_BATTLEGROUND_DESERTERS);
return;
}
TC_LOG_DEBUG("bg.battleground", "Battleground: player joined queue for brawl (RolesMask: {}) queue {{ BattlemasterListId: {}, Type: {} }}, {}",
packet.RolesMask, bgQueueTypeId.BattlemasterListId, uint32(bgQueueTypeId.Type), _player->GetGUID().ToString());
if (_player->GetBattlegroundQueueIndex(bgQueueTypeId) < PLAYER_MAX_BATTLEGROUND_QUEUES)
return;
GroupQueueInfo* ginfo = sBattlegroundMgr->GetBattlegroundQueue(bgQueueTypeId).AddGroup(_player, nullptr, Team(_player->GetTeam()), bracketEntry, false, 0, 0);
if (ginfo)
if (!_player->HasFreeBattlegroundQueueId())
{
sendFailed(ERR_BATTLEGROUND_TOO_MANY_QUEUES);
return;
}
// check Freeze debuff
if (_player->HasAura(9454))
return;
ObjectGuid errorGuid;
GroupJoinBattlegroundResult err = ERR_BATTLEGROUND_NONE;
if (grp)
err = grp->CanJoinBattlegroundQueue(bgTemplate, bgQueueTypeId, 0, bgTemplate->GetMaxPlayersPerTeam(), false, 0, errorGuid);
if (err)
{
sendFailed(err, &errorGuid);
return;
}
BattlegroundQueue& bgQueue = sBattlegroundMgr->GetBattlegroundQueue(bgQueueTypeId);
// isPremade stays false, for the same reason it stays false in HandleBattlemasterJoinOpcode: a brawl queue is
// unrated, so a true flag would file the entry in BG_QUEUE_PREMADE_*, where only CheckPremadeMatch looks and
// only when both factions have a premade waiting. Deep Six (BattlemasterList 879) carries MinPlayers 5 at
// MaxGroupSize 6, so a full party would otherwise be invisible to CheckNormalMatch for up to
// Battleground.PremadeGroupWaitForMatch (30 min).
GroupQueueInfo* ginfo = bgQueue.AddGroup(_player, grp, Team(_player->GetTeam()), bracketEntry, false, 0, 0, packet.Roles);
uint32 avgTime = bgQueue.GetAverageQueueWaitTime(ginfo, bracketEntry->GetBracketId());
if (grp)
{
for (GroupReference const& itr : grp->GetMembers())
{
Player* member = itr.GetSource();
uint32 memberSlot = member->AddBattlegroundQueueId(bgQueueTypeId);
WorldPackets::Battleground::BattlefieldStatusQueued battlefieldStatus;
BattlegroundMgr::BuildBattlegroundStatusQueued(&battlefieldStatus, member, memberSlot, ginfo->JoinTime, bgQueueTypeId, avgTime, true);
member->SendDirectMessage(battlefieldStatus.Write());
}
}
else
{
uint32 queueSlot = _player->AddBattlegroundQueueId(bgQueueTypeId);
uint32 avgTime = sBattlegroundMgr->GetBattlegroundQueue(bgQueueTypeId).GetAverageQueueWaitTime(ginfo, bracketEntry->GetBracketId());
WorldPackets::Battleground::BattlefieldStatusQueued battlefieldStatus;
BattlegroundMgr::BuildBattlegroundStatusQueued(&battlefieldStatus, _player, queueSlot, ginfo->JoinTime, bgQueueTypeId, avgTime, false);
SendPacket(battlefieldStatus.Write());
}
TC_LOG_DEBUG("bg.battleground", "Brawl: {} ({}) queued for PvpBrawl {} (BattlemasterList {}) with roles {:#x}",
_player->GetName(), _player->GetGUID().ToString(), brawl->PvpBrawlId, bgQueueTypeId.BattlemasterListId, packet.Roles);
sBattlegroundMgr->ScheduleQueueUpdate(0, bgQueueTypeId, bracketEntry->GetBracketId());
}
void WorldSession::HandleBattlemasterJoinRatedBgBlitz(WorldPackets::Battleground::BattlemasterJoinRatedBgBlitz& packet)
{
if (_player->InBattleground())
BattlegroundQueueTypeId bgQueueTypeId =
BattlegroundMgr::BGQueueTypeId(BATTLEGROUND_BLITZ, BattlegroundQueueIdType::RatedBattlegroundBlitz, true, 0);
if (!BattlegroundMgr::IsValidQueueId(bgQueueTypeId))
{
TC_LOG_ERROR("network", "Battleground Blitz: queue id rejected by IsValidQueueId - BattlemasterList {} is missing from the client DB2 the server loaded.",
uint32(BATTLEGROUND_BLITZ));
return;
}
BattlegroundTypeId blitzBgTypeId = BATTLEGROUND_RB;
BattlegroundTemplate const* bgTemplate = sBattlegroundMgr->GetBattlegroundTemplateByTypeId(blitzBgTypeId);
if (!bgTemplate)
return;
BattlemasterListEntry const* battlemasterListEntry = sBattlemasterListStore.AssertEntry(bgQueueTypeId.BattlemasterListId);
BattlemasterListEntry const* battlemasterListEntry = sBattlemasterListStore.AssertEntry(blitzBgTypeId);
if (DisableMgr::IsDisabledFor(DISABLE_TYPE_BATTLEGROUND, blitzBgTypeId, nullptr) || battlemasterListEntry->GetFlags().HasFlag(BattlemasterListFlags::InternalOnly))
if (DisableMgr::IsDisabledFor(DISABLE_TYPE_BATTLEGROUND, bgQueueTypeId.BattlemasterListId, nullptr) || battlemasterListEntry->GetFlags().HasFlag(BattlemasterListFlags::InternalOnly))
{
ChatHandler(this).PSendSysMessage(LANG_BG_DISABLED);
return;
}
BattlegroundQueueTypeId bgQueueTypeId = BattlegroundMgr::BGQueueTypeId(blitzBgTypeId, BattlegroundQueueIdType::Battleground, true, 0);
if (_player->InBattleground())
return;
BattlegroundTemplate const* bgTemplate = sBattlegroundMgr->GetBattlegroundTemplateByTypeId(BATTLEGROUND_BLITZ);
if (!bgTemplate)
{
TC_LOG_ERROR("bg.battleground", "Battleground Blitz: no battleground_template row for {} - apply the Blitz world migration.", uint32(BATTLEGROUND_BLITZ));
return;
}
PVPDifficultyEntry const* bracketEntry = DB2Manager::GetBattlegroundBracketByLevel(bgTemplate->MapIDs.front(), _player->GetLevel());
if (!bracketEntry)
return;
if (_player->IsDeserter())
auto sendFailed = [&](GroupJoinBattlegroundResult result)
{
WorldPackets::Battleground::BattlefieldStatusFailed battlefieldStatus;
BattlegroundMgr::BuildBattlegroundStatusFailed(&battlefieldStatus, bgQueueTypeId, _player, 0, result);
SendPacket(battlefieldStatus.Write());
};
// The retail client refuses to send this opcode with no role selected, so a zero mask means either a
// modified client or a UI state we do not model. Either way the matchmaker cannot place the player.
if (!packet.Roles)
{
WorldPackets::Battleground::BattlefieldStatusFailed battlefieldStatus;
BattlegroundMgr::BuildBattlegroundStatusFailed(&battlefieldStatus, bgQueueTypeId, _player, 0, ERR_GROUP_JOIN_BATTLEGROUND_DESERTERS);
SendPacket(battlefieldStatus.Write());
sendFailed(ERR_BATTLEGROUND_JOIN_FAILED);
return;
}
TC_LOG_DEBUG("bg.battleground", "Battleground: player joined queue for rated bg blitz (Roles: {}) queue {{ BattlemasterListId: {}, Type: {} }}, {}",
packet.Roles, bgQueueTypeId.BattlemasterListId, uint32(bgQueueTypeId.Type), _player->GetGUID().ToString());
Group const* grp = _player->GetGroup();
if (grp)
{
if (grp->GetLeaderGUID() != _player->GetGUID())
return;
GroupQueueInfo* ginfo = sBattlegroundMgr->GetBattlegroundQueue(bgQueueTypeId).AddGroup(_player, nullptr, Team(_player->GetTeam()), bracketEntry, true, 0, 0);
if (ginfo)
// BattlemasterList 1101 caps the queueing party at MaxGroupSize (2 on retail - solo or duo).
if (grp->GetMembersCount() > static_cast<uint32>(battlemasterListEntry->MaxGroupSize))
{
sendFailed(ERR_BATTLEGROUND_JOIN_FAILED);
return;
}
}
if (GetPlayer()->isUsingLfg())
{
sendFailed(ERR_LFG_CANT_USE_BATTLEGROUND);
return;
}
if (!_player->CanJoinToBattleground(bgTemplate))
{
sendFailed(ERR_BATTLEGROUND_JOIN_TIMED_OUT);
return;
}
if (_player->IsDeserter())
{
sendFailed(ERR_GROUP_JOIN_BATTLEGROUND_DESERTERS);
return;
}
// The exclusion against the random-battleground queue, on the solo path. A party is already covered:
// Group::CanJoinBattlegroundQueue tests every member with
// "bgOrTemplate->Id != BATTLEGROUND_AA && isInRandomBgQueue -> ERR_IN_RANDOM_BG" (Group.cpp), and
// BattlemasterList 1101 is not BATTLEGROUND_AA - but that function is only called under "if (grp)"
// further down, so without this a player standing in the random queue may stack Blitz on top of it
// ALONE while the same player in a duo is refused. That asymmetry is not a retail question, it is an
// invariant of this tree; HandleBattlemasterJoinOpcode, which these handlers were written along, carries
// the same test on its own solo path.
// Only this half of the pair is needed. Its mirror, ERR_IN_NON_RANDOM_BG, guards joining the RANDOM
// queue while already queued elsewhere, and BattlegroundMgr::IsRandomBattleground is true only for
// BATTLEGROUND_RB (32) and BATTLEGROUND_RANDOM_EPIC (901) - never for 1101.
if (!grp
&& (_player->InBattlegroundQueueForBattlegroundQueueType(BattlegroundMgr::BGQueueTypeId(BATTLEGROUND_RB, BattlegroundQueueIdType::Battleground, false, 0))
|| _player->InBattlegroundQueueForBattlegroundQueueType(BattlegroundMgr::BGQueueTypeId(BATTLEGROUND_RANDOM_EPIC, BattlegroundQueueIdType::Battleground, false, 0))))
{
sendFailed(ERR_IN_RANDOM_BG);
return;
}
// already queued for Blitz
if (_player->GetBattlegroundQueueIndex(bgQueueTypeId) < PLAYER_MAX_BATTLEGROUND_QUEUES)
return;
if (!_player->HasFreeBattlegroundQueueId())
{
sendFailed(ERR_BATTLEGROUND_TOO_MANY_QUEUES);
return;
}
// check Freeze debuff
if (_player->HasAura(9454))
return;
BattlegroundQueue& bgQueue = sBattlegroundMgr->GetBattlegroundQueue(bgQueueTypeId);
GroupQueueInfo* ginfo = bgQueue.AddGroup(_player, grp, Team(_player->GetTeam()), bracketEntry, false, 0, 0, packet.Roles);
uint32 avgTime = bgQueue.GetAverageQueueWaitTime(ginfo, bracketEntry->GetBracketId());
if (grp)
{
for (GroupReference const& itr : grp->GetMembers())
{
Player* member = itr.GetSource();
uint32 memberSlot = member->AddBattlegroundQueueId(bgQueueTypeId);
WorldPackets::Battleground::BattlefieldStatusQueued battlefieldStatus;
BattlegroundMgr::BuildBattlegroundStatusQueued(&battlefieldStatus, member, memberSlot, ginfo->JoinTime, bgQueueTypeId, avgTime, true);
member->SendDirectMessage(battlefieldStatus.Write());
}
}
else
{
uint32 queueSlot = _player->AddBattlegroundQueueId(bgQueueTypeId);
uint32 avgTime = sBattlegroundMgr->GetBattlegroundQueue(bgQueueTypeId).GetAverageQueueWaitTime(ginfo, bracketEntry->GetBracketId());
WorldPackets::Battleground::BattlefieldStatusQueued battlefieldStatus;
BattlegroundMgr::BuildBattlegroundStatusQueued(&battlefieldStatus, _player, queueSlot, ginfo->JoinTime, bgQueueTypeId, avgTime, false);
SendPacket(battlefieldStatus.Write());
}
TC_LOG_DEBUG("bg.battleground", "Battleground Blitz: {} ({}) queued with roles {:#x}",
_player->GetName(), _player->GetGUID().ToString(), packet.Roles);
sBattlegroundMgr->ScheduleQueueUpdate(0, bgQueueTypeId, bracketEntry->GetBracketId());
}
void WorldSession::HandleBattlemasterJoinRatedSoloShuffle(WorldPackets::Battleground::BattlemasterJoinRatedSoloShuffle& packet)
{
BattlegroundQueueTypeId bgQueueTypeId =
BattlegroundMgr::BGQueueTypeId(BATTLEGROUND_SOLO_SHUFFLE, BattlegroundQueueIdType::RatedSoloShuffle, true, 0);
if (!BattlegroundMgr::IsValidQueueId(bgQueueTypeId))
{
TC_LOG_ERROR("network", "Rated Solo Shuffle: queue id rejected by IsValidQueueId - BattlemasterList {} is missing from the client DB2.",
uint32(BATTLEGROUND_SOLO_SHUFFLE));
return;
}
BattlemasterListEntry const* battlemasterListEntry = sBattlemasterListStore.AssertEntry(bgQueueTypeId.BattlemasterListId);
if (DisableMgr::IsDisabledFor(DISABLE_TYPE_BATTLEGROUND, bgQueueTypeId.BattlemasterListId, nullptr) || battlemasterListEntry->GetFlags().HasFlag(BattlemasterListFlags::InternalOnly))
{
ChatHandler(this).PSendSysMessage(LANG_BG_DISABLED);
return;
}
if (_player->InBattleground())
return;
uint8 arenatype = ARENA_TEAM_3v3;
BattlegroundTemplate const* bgTemplate = sBattlegroundMgr->GetBattlegroundTemplateByTypeId(BATTLEGROUND_AA);
BattlegroundTemplate const* bgTemplate = sBattlegroundMgr->GetBattlegroundTemplateByTypeId(BATTLEGROUND_SOLO_SHUFFLE);
if (!bgTemplate)
{
TC_LOG_ERROR("network", "Battleground: template bg (all arenas) not found");
TC_LOG_ERROR("bg.battleground", "Rated Solo Shuffle: no battleground_template row for {} - apply the Solo Shuffle world migration.", uint32(BATTLEGROUND_SOLO_SHUFFLE));
return;
}
if (DisableMgr::IsDisabledFor(DISABLE_TYPE_BATTLEGROUND, BATTLEGROUND_AA, nullptr))
auto sendFailed = [&](GroupJoinBattlegroundResult result, ObjectGuid const* errorGuid = nullptr)
{
WorldPackets::Battleground::BattlefieldStatusFailed battlefieldStatus;
BattlegroundMgr::BuildBattlegroundStatusFailed(&battlefieldStatus, bgQueueTypeId, _player, 0, result, errorGuid);
SendPacket(battlefieldStatus.Write());
};
if (!_player->GetBGAccessByLevel(BattlegroundTypeId(bgQueueTypeId.BattlemasterListId)))
{
ChatHandler(this).PSendSysMessage(LANG_ARENA_DISABLED);
sendFailed(ERR_BATTLEGROUND_JOIN_FAILED);
return;
}
BattlegroundQueueTypeId bgQueueTypeId = BattlegroundMgr::BGQueueTypeId(BATTLEGROUND_AA, BattlegroundQueueIdType::Arena, true, arenatype);
PVPDifficultyEntry const* bracketEntry = DB2Manager::GetBattlegroundBracketByLevel(bgTemplate->MapIDs.front(), _player->GetLevel());
if (!bracketEntry)
return;
TC_LOG_DEBUG("bg.battleground", "Battleground: solo shuffle queue, player {} (Roles: {})", _player->GetName(), packet.Roles);
GroupQueueInfo* ginfo = sBattlegroundMgr->GetBattlegroundQueue(bgQueueTypeId).AddGroup(_player, nullptr, Team(_player->GetTeam()), bracketEntry, false, 0, 0);
if (ginfo)
if (!packet.Roles)
{
uint32 queueSlot = _player->AddBattlegroundQueueId(bgQueueTypeId);
uint32 avgTime = sBattlegroundMgr->GetBattlegroundQueue(bgQueueTypeId).GetAverageQueueWaitTime(ginfo, bracketEntry->GetBracketId());
WorldPackets::Battleground::BattlefieldStatusQueued battlefieldStatus;
BattlegroundMgr::BuildBattlegroundStatusQueued(&battlefieldStatus, _player, queueSlot, ginfo->JoinTime, bgQueueTypeId, avgTime, false);
SendPacket(battlefieldStatus.Write());
sendFailed(ERR_BATTLEGROUND_JOIN_FAILED);
return;
}
// Strictly solo: BattlemasterList 1065 carries GroupsAllowed=0, so a premade cannot queue Solo Shuffle.
if (_player->GetGroup())
{
sendFailed(ERR_BATTLEGROUND_JOIN_FAILED);
return;
}
if (GetPlayer()->isUsingLfg())
{
sendFailed(ERR_LFG_CANT_USE_BATTLEGROUND);
return;
}
if (!_player->CanJoinToBattleground(bgTemplate))
{
sendFailed(ERR_BATTLEGROUND_JOIN_TIMED_OUT);
return;
}
if (_player->IsDeserter())
{
sendFailed(ERR_GROUP_JOIN_BATTLEGROUND_DESERTERS);
return;
}
// random-BG exclusion on the solo path (same invariant Blitz/HandleBattlemasterJoin carry).
if (_player->InBattlegroundQueueForBattlegroundQueueType(BattlegroundMgr::BGQueueTypeId(BATTLEGROUND_RB, BattlegroundQueueIdType::Battleground, false, 0))
|| _player->InBattlegroundQueueForBattlegroundQueueType(BattlegroundMgr::BGQueueTypeId(BATTLEGROUND_RANDOM_EPIC, BattlegroundQueueIdType::Battleground, false, 0)))
{
sendFailed(ERR_IN_RANDOM_BG);
return;
}
if (_player->GetBattlegroundQueueIndex(bgQueueTypeId) < PLAYER_MAX_BATTLEGROUND_QUEUES)
return;
if (!_player->HasFreeBattlegroundQueueId())
{
sendFailed(ERR_BATTLEGROUND_TOO_MANY_QUEUES);
return;
}
if (_player->HasAura(9454)) // Freeze debuff
return;
BattlegroundQueue& bgQueue = sBattlegroundMgr->GetBattlegroundQueue(bgQueueTypeId);
GroupQueueInfo* ginfo = bgQueue.AddGroup(_player, nullptr, Team(_player->GetTeam()), bracketEntry, false, 0, 0, packet.Roles);
uint32 avgTime = bgQueue.GetAverageQueueWaitTime(ginfo, bracketEntry->GetBracketId());
uint32 queueSlot = _player->AddBattlegroundQueueId(bgQueueTypeId);
WorldPackets::Battleground::BattlefieldStatusQueued battlefieldStatus;
BattlegroundMgr::BuildBattlegroundStatusQueued(&battlefieldStatus, _player, queueSlot, ginfo->JoinTime, bgQueueTypeId, avgTime, false);
SendPacket(battlefieldStatus.Write());
TC_LOG_DEBUG("bg.battleground", "Rated Solo Shuffle: {} ({}) queued with roles {:#x}",
_player->GetName(), _player->GetGUID().ToString(), packet.Roles);
sBattlegroundMgr->ScheduleQueueUpdate(0, bgQueueTypeId, bracketEntry->GetBracketId());
}
void WorldSession::HandleJoinRatedBattleground(WorldPackets::Battleground::JoinRatedBattleground& packet)
{
if (_player->InBattleground())
BattlegroundQueueTypeId bgQueueTypeId =
BattlegroundMgr::BGQueueTypeId(BATTLEGROUND_RATED_10_VS_10, BattlegroundQueueIdType::Battleground, true, 0);
if (!BattlegroundMgr::IsValidQueueId(bgQueueTypeId))
{
TC_LOG_ERROR("network", "Rated Battleground: queue id rejected by IsValidQueueId - BattlemasterList {} missing from the client DB2.",
uint32(BATTLEGROUND_RATED_10_VS_10));
return;
}
BattlegroundTypeId ratedBgTypeId = BATTLEGROUND_RB;
BattlegroundTemplate const* bgTemplate = sBattlegroundMgr->GetBattlegroundTemplateByTypeId(ratedBgTypeId);
if (!bgTemplate)
return;
BattlemasterListEntry const* battlemasterListEntry = sBattlemasterListStore.AssertEntry(bgQueueTypeId.BattlemasterListId);
BattlemasterListEntry const* battlemasterListEntry = sBattlemasterListStore.AssertEntry(ratedBgTypeId);
if (DisableMgr::IsDisabledFor(DISABLE_TYPE_BATTLEGROUND, ratedBgTypeId, nullptr) || battlemasterListEntry->GetFlags().HasFlag(BattlemasterListFlags::InternalOnly))
if (DisableMgr::IsDisabledFor(DISABLE_TYPE_BATTLEGROUND, bgQueueTypeId.BattlemasterListId, nullptr) || battlemasterListEntry->GetFlags().HasFlag(BattlemasterListFlags::InternalOnly))
{
ChatHandler(this).PSendSysMessage(LANG_BG_DISABLED);
return;
}
BattlegroundQueueTypeId bgQueueTypeId = BattlegroundMgr::BGQueueTypeId(ratedBgTypeId, BattlegroundQueueIdType::Battleground, true, 0);
if (_player->InBattleground())
return;
BattlegroundTemplate const* bgTemplate = sBattlegroundMgr->GetBattlegroundTemplateByTypeId(BATTLEGROUND_RATED_10_VS_10);
if (!bgTemplate)
{
TC_LOG_ERROR("bg.battleground", "Rated Battleground: no battleground_template row for {} - apply the rated-BG world migration.", uint32(BATTLEGROUND_RATED_10_VS_10));
return;
}
PVPDifficultyEntry const* bracketEntry = DB2Manager::GetBattlegroundBracketByLevel(bgTemplate->MapIDs.front(), _player->GetLevel());
if (!bracketEntry)
return;
if (_player->IsDeserter())
auto sendFailed = [&](GroupJoinBattlegroundResult result, ObjectGuid const* errorGuid = nullptr)
{
WorldPackets::Battleground::BattlefieldStatusFailed battlefieldStatus;
BattlegroundMgr::BuildBattlegroundStatusFailed(&battlefieldStatus, bgQueueTypeId, _player, 0, result, errorGuid);
SendPacket(battlefieldStatus.Write());
};
if (!packet.Roles)
{
WorldPackets::Battleground::BattlefieldStatusFailed battlefieldStatus;
BattlegroundMgr::BuildBattlegroundStatusFailed(&battlefieldStatus, bgQueueTypeId, _player, 0, ERR_GROUP_JOIN_BATTLEGROUND_DESERTERS);
SendPacket(battlefieldStatus.Write());
sendFailed(ERR_BATTLEGROUND_JOIN_FAILED);
return;
}
TC_LOG_DEBUG("bg.battleground", "Battleground: player joined queue for rated bg (Roles: {}) queue {{ BattlemasterListId: {}, Type: {} }}, {}",
packet.Roles, bgQueueTypeId.BattlemasterListId, uint32(bgQueueTypeId.Type), _player->GetGUID().ToString());
GroupQueueInfo* ginfo = sBattlegroundMgr->GetBattlegroundQueue(bgQueueTypeId).AddGroup(_player, nullptr, Team(_player->GetTeam()), bracketEntry, true, 0, 0);
if (ginfo)
Group* grp = _player->GetGroup();
if (!grp)
{
uint32 queueSlot = _player->AddBattlegroundQueueId(bgQueueTypeId);
uint32 avgTime = sBattlegroundMgr->GetBattlegroundQueue(bgQueueTypeId).GetAverageQueueWaitTime(ginfo, bracketEntry->GetBracketId());
sendFailed(ERR_BATTLEGROUND_JOIN_FAILED);
return;
}
if (grp->GetLeaderGUID() != _player->GetGUID())
return;
if (grp->GetMembersCount() != bgTemplate->GetMaxPlayersPerTeam())
{
sendFailed(ERR_ARENA_TEAM_PARTY_SIZE);
return;
}
if (GetPlayer()->isUsingLfg())
{
sendFailed(ERR_LFG_CANT_USE_BATTLEGROUND);
return;
}
// Exclusion against the random-battleground queue on the solo path, exactly as in
// HandleBattlemasterJoinRatedBGBlitz; the account of why the group path already has it and this one did
// not is there, do not restate it here. It applies unchanged to a brawl: BattlemasterList 879 is neither
// BATTLEGROUND_AA nor a random battleground, so Group::CanJoinBattlegroundQueue does refuse a party
// member who is in the random queue, and nothing refused the same player queueing alone.
if (!grp
&& (_player->InBattlegroundQueueForBattlegroundQueueType(BattlegroundMgr::BGQueueTypeId(BATTLEGROUND_RB, BattlegroundQueueIdType::Battleground, false, 0))
|| _player->InBattlegroundQueueForBattlegroundQueueType(BattlegroundMgr::BGQueueTypeId(BATTLEGROUND_RANDOM_EPIC, BattlegroundQueueIdType::Battleground, false, 0))))
{
sendFailed(ERR_IN_RANDOM_BG);
return;
}
if (_player->GetBattlegroundQueueIndex(bgQueueTypeId) < PLAYER_MAX_BATTLEGROUND_QUEUES)
return;
if (!_player->HasFreeBattlegroundQueueId())
{
sendFailed(ERR_BATTLEGROUND_TOO_MANY_QUEUES);
return;
}
ObjectGuid errorGuid;
GroupJoinBattlegroundResult err = grp->CanJoinBattlegroundQueue(bgTemplate, bgQueueTypeId, 0, bgTemplate->GetMaxPlayersPerTeam(), true, 0, errorGuid);
if (err)
{
sendFailed(err, &errorGuid);
return;
}
BattlegroundQueue& bgQueue = sBattlegroundMgr->GetBattlegroundQueue(bgQueueTypeId);
GroupQueueInfo* ginfo = bgQueue.AddGroup(_player, grp, Team(_player->GetTeam()), bracketEntry, true, 0, 0, packet.Roles);
uint32 avgTime = bgQueue.GetAverageQueueWaitTime(ginfo, bracketEntry->GetBracketId());
for (GroupReference const& itr : grp->GetMembers())
{
Player* member = itr.GetSource();
uint32 memberSlot = member->AddBattlegroundQueueId(bgQueueTypeId);
WorldPackets::Battleground::BattlefieldStatusQueued battlefieldStatus;
BattlegroundMgr::BuildBattlegroundStatusQueued(&battlefieldStatus, _player, queueSlot, ginfo->JoinTime, bgQueueTypeId, avgTime, false);
SendPacket(battlefieldStatus.Write());
BattlegroundMgr::BuildBattlegroundStatusQueued(&battlefieldStatus, member, memberSlot, ginfo->JoinTime, bgQueueTypeId, avgTime, true);
member->SendDirectMessage(battlefieldStatus.Write());
}
TC_LOG_DEBUG("bg.battleground", "Rated Battleground: {} queued a {}-man group with roles {:#x}",
_player->GetName(), grp->GetMembersCount(), packet.Roles);
sBattlegroundMgr->ScheduleQueueUpdate(0, bgQueueTypeId, bracketEntry->GetBracketId());
}
@@ -1075,26 +1393,80 @@ void WorldSession::HandleSurrenderArena(WorldPackets::Battleground::SurrenderAre
void WorldSession::HandleTrainingGroundsJoin(WorldPackets::Battleground::TrainingGroundsJoin& packet)
{
BattlegroundQueueTypeId bgQueueTypeId =
BattlegroundMgr::BGQueueTypeId(BATTLEGROUND_TRAINING_GROUNDS, BattlegroundQueueIdType::TrainingGrounds, false, 0);
if (!BattlegroundMgr::IsValidQueueId(bgQueueTypeId))
{
TC_LOG_ERROR("network", "Training Grounds: queue id rejected by IsValidQueueId - BattlemasterList {} is missing from the client DB2.",
uint32(BATTLEGROUND_TRAINING_GROUNDS));
return;
}
BattlemasterListEntry const* battlemasterListEntry = sBattlemasterListStore.AssertEntry(bgQueueTypeId.BattlemasterListId);
if (DisableMgr::IsDisabledFor(DISABLE_TYPE_BATTLEGROUND, bgQueueTypeId.BattlemasterListId, nullptr) || battlemasterListEntry->GetFlags().HasFlag(BattlemasterListFlags::InternalOnly))
{
ChatHandler(this).PSendSysMessage(LANG_BG_DISABLED);
return;
}
if (_player->InBattleground())
return;
BattlegroundTemplate const* bgTemplate = sBattlegroundMgr->GetBattlegroundTemplateByTypeId(BATTLEGROUND_TRAINING_GROUNDS);
if (!bgTemplate)
{
TC_LOG_ERROR("bg.battleground", "Training Grounds: no battleground_template row for {} - apply the Training Grounds world migration.", uint32(BATTLEGROUND_TRAINING_GROUNDS));
return;
}
auto sendFailed = [&](GroupJoinBattlegroundResult result)
{
WorldPackets::Battleground::BattlefieldStatusFailed battlefieldStatus;
BattlegroundMgr::BuildBattlegroundStatusFailed(&battlefieldStatus, bgQueueTypeId, _player, 0, result, nullptr);
SendPacket(battlefieldStatus.Write());
};
if (!_player->GetBGAccessByLevel(BattlegroundTypeId(bgQueueTypeId.BattlemasterListId)))
{
sendFailed(ERR_BATTLEGROUND_JOIN_FAILED);
return;
}
PVPDifficultyEntry const* bracketEntry = DB2Manager::GetBattlegroundBracketByLevel(bgTemplate->MapIDs.front(), _player->GetLevel());
if (!bracketEntry)
return;
// Solo practice: no premades.
if (_player->GetGroup())
{
sendFailed(ERR_BATTLEGROUND_JOIN_FAILED);
return;
}
if (_player->IsInCombat() || _player->isDead())
if (_player->GetBattlegroundQueueIndex(bgQueueTypeId) < PLAYER_MAX_BATTLEGROUND_QUEUES)
return; // already queued
if (!_player->HasFreeBattlegroundQueueId())
{
sendFailed(ERR_BATTLEGROUND_TOO_MANY_QUEUES);
return;
}
BattlemasterListEntry const* battlemasterListEntry = sBattlemasterListStore.LookupEntry(packet.EntryID);
if (!battlemasterListEntry)
return;
BattlegroundQueue& bgQueue = sBattlegroundMgr->GetBattlegroundQueue(bgQueueTypeId);
GroupQueueInfo* ginfo = bgQueue.AddGroup(_player, nullptr, Team(_player->GetTeam()), bracketEntry, false, 0, 0, packet.Roles);
uint32 avgTime = bgQueue.GetAverageQueueWaitTime(ginfo, bracketEntry->GetBracketId());
if (DisableMgr::IsDisabledFor(DISABLE_TYPE_BATTLEGROUND, packet.EntryID, nullptr) || battlemasterListEntry->GetFlags().HasFlag(BattlemasterListFlags::InternalOnly))
return;
uint32 queueSlot = _player->AddBattlegroundQueueId(bgQueueTypeId);
WorldPackets::Battleground::BattlefieldStatusQueued battlefieldStatus;
BattlegroundMgr::BuildBattlegroundStatusQueued(&battlefieldStatus, _player, queueSlot, ginfo->JoinTime, bgQueueTypeId, avgTime, false);
SendPacket(battlefieldStatus.Write());
if (_player->HasUnitState(UNIT_STATE_DIED))
_player->RemoveAurasByType(SPELL_AURA_FEIGN_DEATH);
TC_LOG_DEBUG("bg.battleground", "Training Grounds: {} ({}) queued (training ground {})",
_player->GetName(), _player->GetGUID().ToString(), packet.TrainingGroundID);
TC_LOG_DEBUG("network", "WORLD: CMSG_TRAINING_GROUNDS_JOIN - Type={}, EntryID={}", packet.Type, packet.EntryID);
sBattlegroundMgr->ScheduleQueueUpdate(0, bgQueueTypeId, bracketEntry->GetBracketId());
}
@@ -1252,8 +1624,23 @@ void WorldSession::HandleAcceptWargameInvite(WorldPackets::Battleground::AcceptW
void WorldSession::HandleRequestScheduledPvpInfo(WorldPackets::Battleground::RequestScheduledPvpInfo& /*packet*/)
{
// No PvP-event scheduler in core: answer with an all-inactive response (no scheduled PvP event), mirroring the
// default-response pattern of HandleRequestRatedPvpInfo. Clears the client's scheduled-PvP query state.
WorldPackets::Battleground::RequestScheduledPvpInfoResponse response;
if (Optional<BattlegroundMgr::ActiveBrawl> brawl = sBattlegroundMgr->GetActiveBrawl())
{
WorldPackets::Battleground::RequestScheduledPvpInfoResponse::BrawlInfo& info = response.Brawl.emplace();
info.BrawlID = brawl->PvpBrawlId;
info.CanQueue = true;
// The client turns this into `timeLeftUntilNextChange` by adding it to the moment this packet arrived,
// and hides the brawl entirely once that deadline passes - so it must be a real future instant, not a
// decoration. The brawl here is a fixed configuration rather than a rotation, so the honest deadline is
// the next weekly reset: that is when an operator changing the config would take effect, and it is the
// cadence retail rotates on. Re-asking after the reset gets a fresh window.
time_t const now = GameTime::GetGameTime();
time_t const nextChange = sWorld->GetNextWeeklyQuestsResetTime();
info.SecondsUntilNextChange = nextChange > now ? uint32(nextChange - now) : uint32(WEEK);
}
SendPacket(response.Write());
}
@@ -33,6 +33,7 @@
#include "Player.h"
#include "QueryHolder.h"
#include "RealmList.h"
#include "VasTransferMgr.h"
#include "World.h"
#include "WowTokenMgr.h"
#include <algorithm>
@@ -1558,3 +1559,261 @@ void WorldSession::HandleVasGetServiceStatus(WorldPackets::BattlePay::VasGetServ
WorldPackets::BattlePay::VasGetServiceStatusResponse response;
SendPacket(response.Write());
}
void WorldSession::HandleGetClientCheckoutLicenses(WorldPackets::BattlePay::GetClientCheckoutLicenses& packet)
{
// "Checkout licenses" == what this account already owns. Answer with the real entitlement ledger the
// rest of the shop uses (LoadBattlePayEntitlements re-pulls from the LoginDB and pushes the distribution
// list + SMSG_SYNC_WOW_ENTITLEMENTS) - proven wire, no invented layout.
TC_LOG_DEBUG("network", "BattlePay: GET_CLIENT_CHECKOUT_LICENSES from {} ({} body bytes) - resyncing entitlements.",
GetPlayerInfo(), packet.Data.size());
LoadBattlePayEntitlements(true);
}
void WorldSession::HandleRefreshEntitlementsOnOrderComplete(WorldPackets::BattlePay::RefreshEntitlementsOnOrderComplete& packet)
{
// The game-side signal that a web order finished (closes the PayPal/PaymentMgr settlement loop): re-pull
// the account's entitlements from the authoritative ledger and push them to the client.
TC_LOG_INFO("network", "BattlePay: REFRESH_ENTITLEMENTS_ON_ORDER_COMPLETE from {} ({} order-token bytes) - "
"resyncing entitlements.", GetPlayerInfo(), packet.Data.size());
LoadBattlePayEntitlements(true);
}
void WorldSession::HandleBattlePayBulkPurchase(WorldPackets::BattlePay::BulkPurchase& packet)
{
// Bulk (multi-product) purchase. The per-entry wire (interleaved ProductID + bits<7> string) is not
// verified against a live 12.1 client, and mis-parsing it would route the WRONG products through the
// real grant path, so P0 does not auto-grant: it records the request and leaves per-line routing through
// BattlePayProcessPurchase to a build that has a confirmed wire + an operator opt-in. This is a real,
// truthful handler (it consumes the packet and reports honestly), not a silent stub.
TC_LOG_INFO("network", "BattlePay: BULK_PURCHASE from {} ({} body bytes) - recorded; per-line grant routing "
"is deferred pending a live-verified per-entry wire (no products granted).", GetPlayerInfo(), packet.Data.size());
}
void WorldSession::HandleGetVasAccountCharacterList(WorldPackets::BattlePay::GetVasAccountCharacterList& packet)
{
// The account's characters, offered as VAS-transfer candidates. The verified per-entry wire carries the
// character guid, the owning account guid, the home realm's virtual address and the character name; the
// remaining per-entry fields (four flag bytes, an 8-byte housing key, a trailing uint32) have no proven
// offline meaning, so they stay 0. RealmName is left empty (the worldserver exposes no clean realm-name
// accessor here) - it is display-only and not required to identify a character.
WorldPackets::BattlePay::GetVasAccountCharacterListResult result;
result.Field1 = packet.Field1; // echo the request token so the client can correlate the answer
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_VAS_ACCOUNT_CHARACTER_LIST);
stmt->setUInt32(0, GetAccountId());
if (PreparedQueryResult res = CharacterDatabase.Query(stmt))
{
uint32 const virtualRealm = GetVirtualRealmAddress();
ObjectGuid const accountGuid = GetAccountGUID();
do
{
Field* fields = res->Fetch();
WorldPackets::BattlePay::VasAccountCharacterInfo info;
info.CharacterGUID = ObjectGuid::Create<HighGuid::Player>(fields[0].GetUInt64());
info.AccountGUID = accountGuid;
info.VirtualRealmAddress = virtualRealm;
info.CharacterName = fields[1].GetString();
result.Characters.push_back(std::move(info));
} while (res->NextRow());
}
SendPacket(result.Write());
}
void WorldSession::HandleGetVasTransferTargetRealmList(WorldPackets::BattlePay::GetVasTransferTargetRealmList& packet)
{
// The realms a character may be transferred to: every other realm this bnetserver fronts (our setup runs
// three). Enumerated from the shared auth realmlist, excluding this realm and any that are offline. Each
// entry mirrors the bnet RealmEntry the client already consumes at login - wowRealmAddress (the value the
// client sends back to target the transfer) is realm.Id.GetAddress(); the remaining fields are populated
// best-effort from realm id/flags/population and are live-test-pending on the exact field order.
WorldPackets::BattlePay::GetVasTransferTargetRealmListResult result;
result.Field1 = packet.Field1; // echo the request token for correlation
Battlenet::RealmHandle const currentRealm = sRealmList->GetCurrentRealmId();
LoginDatabasePreparedStatement* stmt = LoginDatabase.GetPreparedStatement(LOGIN_SEL_REALMLIST);
if (PreparedQueryResult res = LoginDatabase.Query(stmt))
{
do
{
Field* fields = res->Fetch();
uint32 const realmId = fields[0].GetUInt32();
uint8 const flag = fields[8].GetUInt8();
uint8 const region = fields[13].GetUInt8();
uint8 const battlegroup = fields[14].GetUInt8();
if (realmId == currentRealm.Realm) // not this realm
continue;
if (flag & Trinity::Legacy::REALM_FLAG_OFFLINE) // only realms that are up can receive a transfer
continue;
Battlenet::RealmHandle const handle(region, battlegroup, realmId);
WorldPackets::BattlePay::VasTargetRealmInfo entry;
entry.WowRealmAddress = handle.GetAddress();
entry.RealmId = realmId;
entry.Flags = flag;
entry.PopulationState = uint32(fields[11].GetFloat()); // population column
entry.CategoryId = fields[9].GetUInt8(); // timezone column
entry.RealmName = fields[1].GetString();
result.Realms.push_back(std::move(entry));
} while (res->NextRow());
}
SendPacket(result.Write());
}
void WorldSession::HandleVasCheckTransferOk(WorldPackets::BattlePay::VasCheckTransferOk& packet)
{
// Whether a VAS transfer is permitted for the requested context. This realm has no transfer network, so
// the honest, byte-correct answer is an empty target-account list; Field1 echoes the request context so
// the client can correlate the answer.
WorldPackets::BattlePay::VasCheckTransferOkResponse response;
response.Field1 = packet.Field1;
SendPacket(response.Write());
}
void WorldSession::HandleBattlePayDistributionAssignVas(WorldPackets::BattlePay::BattlePayDistributionAssignVas& packet)
{
// Assign an ALREADY-PURCHASED VAS distribution to a target. RE of the client serializer (sub_7FF72907F4B0)
// showed this opcode carries a u64 DistributionID (+0x28) and target guids but NO realm address - the
// realm is chosen earlier, at START_VAS_PURCHASE. The distribution it references only exists after a
// web-side purchase settles, which this realm has none of, so there is nothing to assign: answer honestly
// with "distribution not found" rather than drop the packet. (The paid-character-transfer flow itself does
// NOT use this opcode - it drives START_VAS_PURCHASE, handled above; this is the shop's assign-a-bought-
// distribution path.)
TC_LOG_INFO("network", "BattlePay: DistributionAssignVas from {}: distributionId-token={} - no VAS "
"distribution to assign.", GetPlayerInfo(), packet.Token);
WorldPackets::BattlePay::BattlePayDistributionAssignVasResponse response;
response.Field1 = packet.Token;
response.Result = uint32(RESULT_DISTRIBUTION_NOT_FOUND);
SendPacket(response.Write());
}
void WorldSession::HandleBattlePayStartVasPurchase(WorldPackets::BattlePay::BattlePayStartVasPurchase& packet)
{
// The paid-character-transfer flow's request (Lua AssignPCTDistribution): the selected character, the VAS
// service type, the TARGET realm's wowRealmAddress, and an IsValidationOnly bool (the flow validates, then
// commits). The character is the sole Player-type guid among the four the packet carries. Resolve the realm
// and drive VasTransferMgr - validate-only on the validation pass, a real cross-DB move on the commit pass -
// then answer with the SMSG the flow waits on (ASSIGN_VAS_RESPONSE: token, storeError, VasTransactionPurchaseResult).
ObjectGuid const character = packet.GetCharacterGuid();
uint32 const targetRealmId = packet.TargetRealmAddress ? Battlenet::RealmHandle(packet.TargetRealmAddress).Realm : 0;
// VasTransactionPurchaseResult values (Enum, from BattlepayConstantsDocumentation): 0 success, 2 no
// character, 5 invalid destination realm, 20 unique-key (a same-name character already on the target -
// exactly WoW's only hard transfer rejection), 43 locked-for-VAS (character online), 20011 realm not
// eligible, 44 generic.
auto mapResult = [](VasTransferMgr::TransferResult r) -> uint32
{
switch (r)
{
case VasTransferMgr::TRANSFER_OK: return 0;
case VasTransferMgr::TRANSFER_ERR_CHAR_NOT_FOUND: return 2;
case VasTransferMgr::TRANSFER_ERR_NO_TARGET: return 5;
case VasTransferMgr::TRANSFER_ERR_NO_SOURCE: return 20011;
case VasTransferMgr::TRANSFER_ERR_IN_WORLD: return 43;
case VasTransferMgr::TRANSFER_ERR_NAME_TAKEN: return 20;
case VasTransferMgr::TRANSFER_ERR_GUID_COLLISION: return 20;
case VasTransferMgr::TRANSFER_ERR_DB: return 44;
default: return 44;
}
};
auto respond = [&](uint32 vasResult)
{
WorldPackets::BattlePay::BattlePayDistributionAssignVasResponse response;
response.Field1 = packet.SequenceId; // token the client correlates the answer to
response.Field2 = 0; // storeError: no store-layer error
response.Result = vasResult; // VasTransactionPurchaseResult
SendPacket(response.Write());
};
if (!sVasTransferMgr->IsEnabled())
{
TC_LOG_INFO("network", "BattlePay: StartVasPurchase from {}: character transfer is not configured "
"(VAS.TransferRealmDatabases).", GetPlayerInfo());
respond(20011); // realm not eligible
return;
}
if (character.IsEmpty())
{
respond(2); // no character guid in the request
return;
}
std::string name;
VasTransferMgr::TransferResult const result = sVasTransferMgr->TransferCharacter(
character.GetCounter(), targetRealmId, &name, nullptr, packet.IsValidationOnly);
TC_LOG_INFO("network", "BattlePay: StartVasPurchase from {}: seq={} serviceType={} character={} '{}' "
"targetRealm={} validateOnly={} -> {} (vasResult {}).", GetPlayerInfo(), packet.SequenceId,
packet.ServiceType, character.ToString(), name, targetRealmId, packet.IsValidationOnly,
VasTransferMgr::ResultString(result), mapResult(result));
respond(mapResult(result));
}
void WorldSession::HandleCharacterCheckUpgrade(WorldPackets::BattlePay::CharacterCheckUpgrade& /*packet*/)
{
// The client polls whether this account can spend a character boost. Eligibility is already carried by the
// account's owned boost entitlements (delivered with the purchase list), and the boost is applied by its own
// opcode (CMSG_CHARACTER_UPGRADE_START, implemented), so this poll needs no separate answer. Logged rather
// than silently dropped.
TC_LOG_DEBUG("network", "BattlePay: CharacterCheckUpgrade from {} - boost eligibility comes from the owned "
"entitlement list; no separate response.", GetPlayerInfo());
}
void WorldSession::HandleCharacterUpgradeManualUnrevokeRequest(WorldPackets::BattlePay::CharacterUpgradeManualUnrevokeRequest& packet)
{
// Undo a revoked boost on a character. That requires a revoked boost entitlement, which exists only after a
// web-side purchase/refund cycle this realm has none of, so there is nothing to unrevoke. Answer with the
// real result wire (client parser sub_7FF72A663530: a single uint32; no guid) - the Lua handler treats 0 as
// success and any non-zero as failure (ERROR_MANUAL_UNREVOKE_FAILURE), so a non-zero code is the honest
// "nothing to unrevoke" answer rather than falsely reporting success.
TC_LOG_INFO("network", "BattlePay: CharacterUpgradeManualUnrevokeRequest from {}: character={} - no revoked "
"boost to unrevoke; returning failure.", GetPlayerInfo(), packet.CharacterGUID.ToString());
WorldPackets::BattlePay::CharacterUpgradeManualUnrevokeResult result;
result.Result = 1; // non-zero == failure (client shows the generic unrevoke-failure dialog)
SendPacket(result.Write());
}
void WorldSession::HandleVasGetQueueMinutes(WorldPackets::BattlePay::VasGetQueueMinutes& packet)
{
// Estimated queue time for a VAS service. This realm processes transfers synchronously (the GM/transfer path
// runs inline), so the honest estimate is zero. Wire recovered from the client parser sub_7FF72AE70450:
// { uint64 Handle; uint32 QueueMinutes } - echo the request's correlation handle so the client matches it.
WorldPackets::BattlePay::VasGetQueueMinutesResponse response;
response.Handle = packet.Handle;
response.QueueMinutes = 0;
SendPacket(response.Write());
}
void WorldSession::HandleBattlePayAckFailedResponse(WorldPackets::BattlePay::BattlePayAckFailedResponse& packet)
{
// The client acknowledges a purchase result it treated as failed. Fire-and-forget: there is nothing to send
// back, but it is read and logged rather than silently dropped.
TC_LOG_DEBUG("network", "BattlePay: AckFailedResponse from {}: serverToken={}.", GetPlayerInfo(), packet.ServerToken);
}
void WorldSession::HandleBattlePayRequestPriceInfo(WorldPackets::BattlePay::BattlePayRequestPriceInfo& packet)
{
// The client asks for a product's price. This core delivers prices inline with the product list
// (BattlePayGetProductList), so a product the client can see already carries its DisplayPrice; there is no
// separate price message to send. Logged for wire confirmation.
TC_LOG_DEBUG("network", "BattlePay: RequestPriceInfo from {}: product={} - price is carried by the product list.",
GetPlayerInfo(), packet.ProductID);
}
void WorldSession::HandleBattlePayCancelOpenCheckout(WorldPackets::BattlePay::BattlePayCancelOpenCheckout& /*packet*/)
{
// The client abandons a checkout it opened. The realm holds no server-side reservation for an open checkout
// (the web overlay owns that state), so there is nothing to release; acknowledged by log only.
TC_LOG_DEBUG("network", "BattlePay: CancelOpenCheckout from {}.", GetPlayerInfo());
}
@@ -18,6 +18,7 @@
#include "WorldSession.h"
#include "BattlePetMgr.h"
#include "BattlePetPackets.h"
#include "AccountMgr.h"
#include "Creature.h"
#include "DB2Stores.h"
#include "Log.h"
@@ -128,6 +129,17 @@ void WorldSession::HandleBattlePetDeletePet(WorldPackets::BattlePet::BattlePetDe
GetBattlePetMgr()->RemovePet(battlePetDeletePet.PetGuid);
}
void WorldSession::HandleBattlePetDeletePetCheat(WorldPackets::BattlePet::BattlePetDeletePetCheat& battlePetDeletePetCheat)
{
// Developer/GM cheat variant of CMSG_BATTLE_PET_DELETE_PET - the client only emits it in developer mode.
// Gate it on account security so a normal player cannot reach the cheat path; the effect is identical to
// the non-cheat handler (remove the pet from the journal).
if (AccountMgr::IsPlayerAccount(GetSecurity()))
return;
GetBattlePetMgr()->RemovePet(battlePetDeletePetCheat.PetGuid);
}
void WorldSession::HandleBattlePetSetFlags(WorldPackets::BattlePet::BattlePetSetFlags& battlePetSetFlags)
{
if (!GetBattlePetMgr()->HasJournalLock())
+11
View File
@@ -1036,3 +1036,14 @@ void WorldSession::HandleQuestSessionBeginResponse(WorldPackets::Quest::QuestSes
SendPacket(sessionResult.Write());
}
}
void WorldSession::HandleRequestTreasurePunchListItems(WorldPackets::Quest::RequestTreasurePunchListItems& packet)
{
// The client requests the outstanding map-treasure "punch list" for a selector (a UiMap/zone or treasure
// set). TrinityCore has no world punch-list data source - the only treasure infrastructure is the per-quest
// treasure_picker tables, which are unrelated - so there is nothing to enumerate. Answer with an honest
// empty response (Count 0) so the client frame does not sit waiting, without fabricating collectibles.
WorldPackets::Quest::TreasurePunchListItemsResponse response;
response.Selector = packet.Selector;
SendPacket(response.Write());
}
@@ -7020,9 +7020,12 @@ enum BattlegroundTypeId : uint32
BATTLEGROUND_DOM_DG = 1037, // Domination - Deepwind Gorge
BATTLEGROUND_DOM_DG2 = 1039, // Domination - Deepwind Gorge
BATTLEGROUND_ED = 1041, // Empyrean Domain
BATTLEGROUND_SOLO_SHUFFLE = 1065, // Rated Solo Shuffle ("All Arenas" solo queue entry; map pool 1053-1064)
BATTLEGROUND_MC3 = 1066, // Maldraxxus Coliseum
BATTLEGROUND_BLITZ = 1101, // Battleground Blitz (rated 8v8 solo queue)
BATTLEGROUND_CC3 = 1117, // Cage of Carnage
BATTLEGROUND_SLAYERS_RISE = 1141, // Slayer's Rise (Midnight S1, 40v40) [DB2 BattlemasterList 1141]
BATTLEGROUND_TRAINING_GROUNDS = 1145, // Training Grounds (solo unrated PvP practice)
};
#define MAX_BATTLEGROUND_TYPE_ID 845
@@ -343,4 +343,196 @@ namespace WorldPackets::BattlePay
return &_worldPacket;
}
void GetClientCheckoutLicenses::Read()
{
size_t const len = _worldPacket.size();
Data.resize(len);
if (len)
_worldPacket.read(Data.data(), len);
}
void RefreshEntitlementsOnOrderComplete::Read()
{
size_t const len = _worldPacket.size();
Data.resize(len);
if (len)
_worldPacket.read(Data.data(), len);
}
void BulkPurchase::Read()
{
size_t const len = _worldPacket.size();
Data.resize(len);
if (len)
_worldPacket.read(Data.data(), len);
}
void CharacterUpgradeManualUnrevokeRequest::Read()
{
_worldPacket >> CharacterGUID;
}
void GetVasAccountCharacterList::Read()
{
_worldPacket >> Field1;
_worldPacket >> Field2;
}
void GetVasTransferTargetRealmList::Read()
{
_worldPacket >> Field1;
_worldPacket >> Field2;
}
void VasGetQueueMinutes::Read()
{
// The response echoes a uint64 correlation handle; the request carries it. Read it as a uint64 when the
// body is wide enough, else zero-extend a uint32 - robust against either request width without throwing.
if (_worldPacket.size() - _worldPacket.rpos() >= sizeof(uint64))
_worldPacket >> Handle;
else
{
uint32 low = 0;
_worldPacket >> low;
Handle = low;
}
}
void VasCheckTransferOk::Read()
{
_worldPacket >> Field1;
}
WorldPacket const* VasGetQueueMinutesResponse::Write()
{
_worldPacket << uint64(Handle);
_worldPacket << uint32(QueueMinutes);
return &_worldPacket;
}
WorldPacket const* CharacterUpgradeManualUnrevokeResult::Write()
{
_worldPacket << uint32(Result);
return &_worldPacket;
}
WorldPacket const* BattlePayDistributionAssignVasResponse::Write()
{
_worldPacket << uint32(Field1);
_worldPacket << uint32(Field2);
_worldPacket << uint32(Result);
return &_worldPacket;
}
WorldPacket const* GetVasAccountCharacterListResult::Write()
{
// Outer header: 4 uint32 (both dump versions agree), then a uint32-counted vector of characters. The
// per-entry string pair shares one bit-packed length block exactly as the client reads it: the 6-bit
// name length then the 9-bit realm length (WriteBits 6 then 9, FlushBits), then the two raw bodies -
// this reproduces the verified nameLen = A>>2, realmLen = ((A&3)<<7)|(B>>1).
_worldPacket << uint32(Field1);
_worldPacket << uint32(Field2);
_worldPacket << uint32(Field3);
_worldPacket << uint32(Characters.size());
for (VasAccountCharacterInfo const& c : Characters)
{
_worldPacket << c.CharacterGUID;
_worldPacket << c.AccountGUID;
_worldPacket << uint32(c.VirtualRealmAddress);
_worldPacket << uint8(c.Flags1);
_worldPacket << uint8(c.Flags2);
_worldPacket << uint8(c.Flags3);
_worldPacket << uint8(c.Flags4);
_worldPacket << uint64(c.HousingData);
_worldPacket << uint32(c.Field9);
_worldPacket.WriteBits(c.CharacterName.length(), 6);
_worldPacket.WriteBits(c.RealmName.length(), 9);
_worldPacket.FlushBits();
_worldPacket.append(c.CharacterName.data(), c.CharacterName.length());
_worldPacket.append(c.RealmName.data(), c.RealmName.length());
}
return &_worldPacket;
}
WorldPacket const* GetVasTransferTargetRealmListResult::Write()
{
// Outer = 3 uint32 header + a flat uint32 count + the realm vector (VERIFIED, same shape as the account
// list). Header fields have no proven offline meaning and stay 0; the 6 uint32 per realm entry are an
// unlabeled reflected type populated best-effort - live-test-pending.
_worldPacket << uint32(Field1);
_worldPacket << uint32(Field2);
_worldPacket << uint32(Field3);
_worldPacket << uint32(Realms.size());
for (VasTargetRealmInfo const& r : Realms)
{
_worldPacket << uint32(r.WowRealmAddress);
_worldPacket << uint32(r.RealmId);
_worldPacket << uint32(r.Flags);
_worldPacket << uint32(r.PopulationState);
_worldPacket << uint32(r.CategoryId);
_worldPacket << uint32(r.ConfigId);
_worldPacket.WriteBits(r.RealmName.length(), 9);
_worldPacket.FlushBits();
_worldPacket.append(r.RealmName.data(), r.RealmName.length());
}
return &_worldPacket;
}
WorldPacket const* VasCheckTransferOkResponse::Write()
{
_worldPacket << uint32(Field1);
_worldPacket << uint32(Field2);
_worldPacket << CharacterGUID;
_worldPacket << uint32(Accounts.size());
for (VasTransferWowAccount const& a : Accounts)
{
_worldPacket << a.AccountGUID;
_worldPacket.WriteBits(a.AccountName.length(), 11);
_worldPacket.FlushBits();
_worldPacket.append(a.AccountName.data(), a.AccountName.length());
}
return &_worldPacket;
}
void BattlePayStartVasPurchase::Read()
{
// Full wire (serializer sub_7FF72907C390): 4x uint32 + 4x packed guid, then a 5-byte bit block of five
// string-length prefixes (6,7,7,6,12 bits) followed by the single IsValidationOnly bool bit, then the
// string bodies. Read through the bool; the string bodies are not needed, so rfinish afterwards.
_worldPacket >> SequenceId;
_worldPacket >> ServiceType;
_worldPacket >> Guid1;
_worldPacket >> Context;
_worldPacket >> TargetRealmAddress;
_worldPacket >> Guid2;
_worldPacket >> Guid3;
_worldPacket >> Guid4;
_worldPacket.ReadBits(6); // len(string1)
_worldPacket.ReadBits(7); // len(string2)
_worldPacket.ReadBits(7); // len(string3)
_worldPacket.ReadBits(6); // len(string4)
_worldPacket.ReadBits(12); // len(string5)
IsValidationOnly = _worldPacket.ReadBit();
_worldPacket.rfinish(); // string bodies not needed
}
void BattlePayDistributionAssignVas::Read()
{
_worldPacket >> Token;
_worldPacket.rfinish(); // the remaining fields are not modelled (see header); consume them
}
}
@@ -684,6 +684,341 @@ namespace WorldPackets
ObjectGuid CharacterGUID;
};
// Client requests its checkout licenses/entitlements mid-checkout. Exact field layout is not verified
// against a live 12.1 client, so the body is consumed wholesale (diagnostics) and the handler answers
// by re-pushing the account's real entitlement ledger (SMSG_SYNC_WOW_ENTITLEMENTS) - proven wire, no guess.
class GetClientCheckoutLicenses final : public ClientPacket
{
public:
explicit GetClientCheckoutLicenses(WorldPacket&& packet) : ClientPacket(CMSG_GET_CLIENT_CHECKOUT_LICENSES, std::move(packet)) {}
void Read() override;
std::vector<uint8> Data;
};
// Client asks the realm to refresh entitlements after a web order completed (the game-side signal that
// closes the PayPal/web settlement loop). Body is an opaque order token (SizedCString bits<24>);
// consumed wholesale here and answered by reloading the entitlement ledger.
class RefreshEntitlementsOnOrderComplete final : public ClientPacket
{
public:
explicit RefreshEntitlementsOnOrderComplete(WorldPacket&& packet) : ClientPacket(CMSG_REFRESH_ENTITLEMENTS_ON_ORDER_COMPLETE, std::move(packet)) {}
void Read() override;
std::vector<uint8> Data;
};
// Client purchases several shop products in one request. Wire (client serializer sweep): uint32 Count,
// then Count x { uint32 ProductID; SizedString bits<7> Extra }. Because a wrong parse of that
// interleaved per-entry string would route the WRONG products through the real grant path, and the
// layout is not verified against a live 12.1 client, P0 consumes the body wholesale and logs; per-line
// routing through BattlePayProcessPurchase is gated behind a config + a confirmed wire (P1).
class BulkPurchase final : public ClientPacket
{
public:
explicit BulkPurchase(WorldPacket&& packet) : ClientPacket(CMSG_BULK_PURCHASE, std::move(packet)) {}
void Read() override;
std::vector<uint8> Data;
};
// ---- VAS transfer/service request layer (client -> server) -------------------------------------
//
// CMSG read layouts recovered from the client deserializers (c:/dumps/all_cmsg_layouts_68275.json,
// opcode NAMES build-stable). The two-uint32 request bodies carry a request context whose exact
// send-side field names are not offline-proven; they are read verbatim and named by position so the
// server can echo/validate them without inventing semantics.
// CMSG_CHARACTER_CHECK_UPGRADE (0x4000F5) - empty body; a poll for boost eligibility of this account.
class CharacterCheckUpgrade final : public ClientPacket
{
public:
explicit CharacterCheckUpgrade(WorldPacket&& packet) : ClientPacket(CMSG_CHARACTER_CHECK_UPGRADE, std::move(packet)) {}
void Read() override {}
};
// CMSG_CHARACTER_UPGRADE_MANUAL_UNREVOKE_REQUEST (0x4000F3) - one character guid: undo a revoked boost.
class CharacterUpgradeManualUnrevokeRequest final : public ClientPacket
{
public:
explicit CharacterUpgradeManualUnrevokeRequest(WorldPacket&& packet) : ClientPacket(CMSG_CHARACTER_UPGRADE_MANUAL_UNREVOKE_REQUEST, std::move(packet)) {}
void Read() override;
ObjectGuid CharacterGUID;
};
// CMSG_GET_VAS_ACCOUNT_CHARACTER_LIST (0x400120) - two uint32 request context.
class GetVasAccountCharacterList final : public ClientPacket
{
public:
explicit GetVasAccountCharacterList(WorldPacket&& packet) : ClientPacket(CMSG_GET_VAS_ACCOUNT_CHARACTER_LIST, std::move(packet)) {}
void Read() override;
uint32 Field1 = 0;
uint32 Field2 = 0;
};
// CMSG_GET_VAS_TRANSFER_TARGET_REALM_LIST (0x400121) - two uint32 request context.
class GetVasTransferTargetRealmList final : public ClientPacket
{
public:
explicit GetVasTransferTargetRealmList(WorldPacket&& packet) : ClientPacket(CMSG_GET_VAS_TRANSFER_TARGET_REALM_LIST, std::move(packet)) {}
void Read() override;
uint32 Field1 = 0;
uint32 Field2 = 0;
};
// CMSG_VAS_GET_QUEUE_MINUTES (0x400138) - one uint32 (the VAS service/product context to estimate).
class VasGetQueueMinutes final : public ClientPacket
{
public:
explicit VasGetQueueMinutes(WorldPacket&& packet) : ClientPacket(CMSG_VAS_GET_QUEUE_MINUTES, std::move(packet)) {}
void Read() override;
uint64 Handle = 0; // the correlation token the response echoes (client matches it in its pending table)
};
// SMSG_VAS_GET_QUEUE_MINUTES_RESPONSE (0x4202C1) - flat 12 bytes, VERIFIED from the client parser
// sub_7FF72AE70450: { uint64 Handle; uint32 QueueMinutes }. No sub-frame, no bits.
class VasGetQueueMinutesResponse final : public ServerPacket
{
public:
explicit VasGetQueueMinutesResponse() : ServerPacket(SMSG_VAS_GET_QUEUE_MINUTES_RESPONSE, 12) {}
WorldPacket const* Write() override;
uint64 Handle = 0;
uint32 QueueMinutes = 0;
};
// SMSG_CHARACTER_UPGRADE_MANUAL_UNREVOKE_RESULT (0x42026B) - flat 4 bytes, VERIFIED from the client
// parser sub_7FF72A663530: a single uint32 Result. No character guid on the wire (resolved client-side).
class CharacterUpgradeManualUnrevokeResult final : public ServerPacket
{
public:
explicit CharacterUpgradeManualUnrevokeResult() : ServerPacket(SMSG_CHARACTER_UPGRADE_MANUAL_UNREVOKE_RESULT, 4) {}
WorldPacket const* Write() override;
uint32 Result = 0;
};
// CMSG_VAS_CHECK_TRANSFER_OK (0x400139) - one uint32 (the VAS service/product context to validate).
class VasCheckTransferOk final : public ClientPacket
{
public:
explicit VasCheckTransferOk(WorldPacket&& packet) : ClientPacket(CMSG_VAS_CHECK_TRANSFER_OK, std::move(packet)) {}
void Read() override;
uint32 Field1 = 0;
};
// SMSG_BATTLE_PAY_DISTRIBUTION_ASSIGN_VAS_RESPONSE (0x420316) - three uint32 (client parser
// sub_7FF7290B7D50 reads exactly {uint32, uint32, uint32}, no strings, no vector).
class BattlePayDistributionAssignVasResponse final : public ServerPacket
{
public:
explicit BattlePayDistributionAssignVasResponse() : ServerPacket(SMSG_BATTLE_PAY_DISTRIBUTION_ASSIGN_VAS_RESPONSE, 12) {}
WorldPacket const* Write() override;
uint32 Field1 = 0;
uint32 Field2 = 0;
uint32 Result = 0;
};
// ---- VAS transfer list responses (server -> client) --------------------------------------------
//
// Element layouts are VERIFIED from the client deserializers (cfunc_cache decompile). Outer headers
// and a few per-entry field SEMANTICS are not offline-provable (JamCliVASTargetRealm is a reflected
// type with no descriptor); those are populated with clearly-labeled best-effort values and are
// live-test-pending. String lengths are bit-packed exactly as the client reads them.
// One transferable character (SMSG_GET_VAS_ACCOUNT_CHARACTER_LIST_RESULT vector element, verified).
struct VasAccountCharacterInfo
{
ObjectGuid CharacterGUID; // the character
ObjectGuid AccountGUID; // 2nd guid: the owning bnet/wow-account guid (inferred)
uint32 VirtualRealmAddress = 0; // field 3 (inferred: the character's home realm address)
uint8 Flags1 = 0; // 4 per-entry u8s (transfer eligibility flags - unlabeled)
uint8 Flags2 = 0;
uint8 Flags3 = 0;
uint8 Flags4 = 0;
uint64 HousingData = 0; // opaque 8-byte housing/plot key (verified width, opaque)
uint32 Field9 = 0; // trailing uint32 (unlabeled)
std::string CharacterName; // 6-bit length prefix
std::string RealmName; // 9-bit length prefix
};
// SMSG_GET_VAS_ACCOUNT_CHARACTER_LIST_RESULT (0x420297). Outer = 3 uint32 header + a FLAT uint32 count +
// the character vector - VERIFIED (deserializer sub_7FF7290AE4B0; the "4th uint32" earlier dumps showed
// is the list count, not a header field). Header field meanings are unlabeled offline; Field1 echoes the
// request token so the client can correlate, the other two are 0 until proven.
class GetVasAccountCharacterListResult final : public ServerPacket
{
public:
explicit GetVasAccountCharacterListResult() : ServerPacket(SMSG_GET_VAS_ACCOUNT_CHARACTER_LIST_RESULT, 32) {}
WorldPacket const* Write() override;
uint32 Field1 = 0;
uint32 Field2 = 0;
uint32 Field3 = 0;
std::vector<VasAccountCharacterInfo> Characters;
};
// One transfer-target realm (SMSG_GET_VAS_TRANSFER_TARGET_REALM_LIST_RESULT element JamCliVASTargetRealm,
// verified widths). The 6 uint32s are an unlabeled reflected type; the mapping below is inferred so the
// client has a selectable, named realm - live-test-pending on which field it transfers TO.
struct VasTargetRealmInfo
{
// Field order mirrors the bnet JSON::RealmList::RealmEntry the client already consumes at login;
// wowRealmAddress (realm.Id.GetAddress()) is the value the client sends back to target the transfer.
uint32 WowRealmAddress = 0; // field[0]: realm.Id.GetAddress() - the transfer target
uint32 RealmId = 0; // field[1]: cfgRealmsID
uint32 Flags = 0; // field[2]
uint32 PopulationState = 0; // field[3]
uint32 CategoryId = 0; // field[4]: timezone/category
uint32 ConfigId = 0; // field[5]
std::string RealmName; // 9-bit length prefix
};
// SMSG_GET_VAS_TRANSFER_TARGET_REALM_LIST_RESULT (0x420298). Outer = 3 uint32 header + a FLAT uint32
// count + the realm vector - VERIFIED from the deserializer sub_7FF7290AE5B0 (same shape as the account
// list; the earlier "10x uint32" / "u8+bitfield" dumps were miscounts of the element string prefix).
// Header field meanings are unlabeled offline and stay 0 until proven.
class GetVasTransferTargetRealmListResult final : public ServerPacket
{
public:
explicit GetVasTransferTargetRealmListResult() : ServerPacket(SMSG_GET_VAS_TRANSFER_TARGET_REALM_LIST_RESULT, 16) {}
WorldPacket const* Write() override;
uint32 Field1 = 0;
uint32 Field2 = 0;
uint32 Field3 = 0;
std::vector<VasTargetRealmInfo> Realms;
};
// One WoW account a character may transfer to (SMSG_VAS_CHECK_TRANSFER_OK_RESPONSE element
// JamVASTransferWowAccount, verified: an account guid + an 11-bit-length-prefixed account name).
struct VasTransferWowAccount
{
ObjectGuid AccountGUID;
std::string AccountName; // 11-bit length prefix
};
// SMSG_VAS_CHECK_TRANSFER_OK_RESPONSE (0x4202C3). Outer (deserializer sub_7FF7290B1A10) =
// { uint32, uint32, ObjectGuid, uint32-count, vector<VasTransferWowAccount> }. The two leading uint32
// are unlabeled offline; Field1 echoes the request context. An empty account list is the honest,
// byte-correct answer when the realm has no VAS transfer network.
class VasCheckTransferOkResponse final : public ServerPacket
{
public:
explicit VasCheckTransferOkResponse() : ServerPacket(SMSG_VAS_CHECK_TRANSFER_OK_RESPONSE, 28) {}
WorldPacket const* Write() override;
uint32 Field1 = 0;
uint32 Field2 = 0;
ObjectGuid CharacterGUID;
std::vector<VasTransferWowAccount> Accounts;
};
// CMSG_BATTLE_PAY_ACK_FAILED_RESPONSE - the client acknowledges a failed purchase result. One uint32
// (the server token being acked). Fire-and-forget: no response.
class BattlePayAckFailedResponse final : public ClientPacket
{
public:
explicit BattlePayAckFailedResponse(WorldPacket&& packet) : ClientPacket(CMSG_BATTLE_PAY_ACK_FAILED_RESPONSE, std::move(packet)) {}
void Read() override { _worldPacket >> ServerToken; }
uint32 ServerToken = 0;
};
// CMSG_BATTLE_PAY_REQUEST_PRICE_INFO - one uint32 (the product/context to price).
class BattlePayRequestPriceInfo final : public ClientPacket
{
public:
explicit BattlePayRequestPriceInfo(WorldPacket&& packet) : ClientPacket(CMSG_BATTLE_PAY_REQUEST_PRICE_INFO, std::move(packet)) {}
void Read() override { _worldPacket >> ProductID; }
uint32 ProductID = 0;
};
// CMSG_BATTLE_PAY_CANCEL_OPEN_CHECKOUT - the client abandons an open checkout. Small body that the
// server does not need to act on (the checkout it opened carries no server-side reservation to release).
class BattlePayCancelOpenCheckout final : public ClientPacket
{
public:
explicit BattlePayCancelOpenCheckout(WorldPacket&& packet) : ClientPacket(CMSG_BATTLE_PAY_CANCEL_OPEN_CHECKOUT, std::move(packet)) {}
void Read() override { _worldPacket.rfinish(); }
};
// CMSG_BATTLE_PAY_START_VAS_PURCHASE (0x400122) - begins a paid VAS purchase. The leading fields are
// resolved from the client builder sub_7FF72AE6E2F0: a request sequence id, the VAS service type, a
// guid (the selected character/product), a context uint32, then the TARGET REALM's wowRealmAddress
// (copied from the picked JamCliVASTargetRealm[+0]). The tail (name/blob strings, more guids) is not
// needed to identify the transfer and is consumed. The per-guid role is not offline-provable, but the
// first guid is the selected character in the transfer flow; downstream validation (VasTransferMgr)
// rejects a wrong guid safely.
class BattlePayStartVasPurchase final : public ClientPacket
{
public:
explicit BattlePayStartVasPurchase(WorldPacket&& packet) : ClientPacket(CMSG_BATTLE_PAY_START_VAS_PURCHASE, std::move(packet)) {}
void Read() override;
// Wire (client serializer sub_7FF72907C390, fully RE'd): 4x uint32 + 4x packed guid header, then a
// 5-byte bit block of five string-length prefixes (6,7,7,6,12 bits) and a single trailing bool bit
// = IsValidationOnly, then the string bodies (not needed here). The four guids carry the character
// plus account/bnet/target guids; the character is the one that is a Player guid.
uint32 SequenceId = 0;
uint32 ServiceType = 0;
uint32 Context = 0;
uint32 TargetRealmAddress = 0; // wowRealmAddress of the picked target realm (JamCliVASTargetRealm[+0])
ObjectGuid Guid1;
ObjectGuid Guid2;
ObjectGuid Guid3;
ObjectGuid Guid4;
bool IsValidationOnly = false; // flow calls validate-pass first, then commit-pass
ObjectGuid GetCharacterGuid() const // the character is the sole Player-type guid among the four
{
for (ObjectGuid const& g : { Guid1, Guid2, Guid3, Guid4 })
if (g.IsPlayer())
return g;
return ObjectGuid::Empty;
}
};
// CMSG_BATTLE_PAY_DISTRIBUTION_ASSIGN_VAS (0x400167) - a large nested struct (client token, several
// guids, product choice and flag bytes). Only the leading uint32 (a client/distribution token used to
// correlate the answer) is modelled; the rest is consumed to keep the stream aligned. The exact struct
// is live-capture-pending and is not needed to refuse an assign for which no entitlement exists.
class BattlePayDistributionAssignVas final : public ClientPacket
{
public:
explicit BattlePayDistributionAssignVas(WorldPacket&& packet) : ClientPacket(CMSG_BATTLE_PAY_DISTRIBUTION_ASSIGN_VAS, std::move(packet)) {}
void Read() override;
uint32 Token = 0;
};
}
}
@@ -642,4 +642,9 @@ namespace WorldPackets::BattlePet
_worldPacket << uint32(RoundsRemaining);
return &_worldPacket;
}
void BattlePetDeletePetCheat::Read()
{
_worldPacket >> PetGuid;
}
}
@@ -742,6 +742,18 @@ namespace WorldPackets
uint16 TrapLevel = 0;
};
// Developer/GM cheat variant of DELETE_PET (opcode DELETE_PET+1). Same wire (one pet GUID); the handler
// is gated on GM security since the client only emits this in developer mode.
class BattlePetDeletePetCheat final : public ClientPacket
{
public:
explicit BattlePetDeletePetCheat(WorldPacket&& packet) : ClientPacket(CMSG_BATTLE_PET_DELETE_PET_CHEAT, std::move(packet)) {}
void Read() override;
ObjectGuid PetGuid;
};
}
}
@@ -461,7 +461,8 @@ WorldPacket const* CapturePointRemoved::Write()
void BattlemasterJoinBrawl::Read()
{
_worldPacket >> RolesMask;
_worldPacket >> Roles;
IsSpecialBrawl = _worldPacket.ReadBit();
}
void BattlemasterJoinRatedBgBlitz::Read()
@@ -488,8 +489,8 @@ void JoinRatedBattleground::Read()
void TrainingGroundsJoin::Read()
{
_worldPacket >> Type;
_worldPacket >> EntryID;
_worldPacket >> Roles;
_worldPacket >> TrainingGroundID;
}
void StartWarGame::Read()
@@ -536,17 +537,71 @@ WorldPacket const* WargameRequestOpponentResponse::Write()
WorldPacket const* RequestScheduledPvpInfoResponse::Write()
{
_worldPacket << uint8(Field1);
_worldPacket << uint32(Field2);
_worldPacket << uint32(Field3);
_worldPacket << Bits<1>(Flag1);
_worldPacket.FlushBits();
_worldPacket << uint32(Field4);
_worldPacket << uint32(Field5);
_worldPacket << Bits<1>(Flag2);
// Both presence bits share one flushed byte - the client's reader pulls a single byte and tests bit 7 and
// bit 6 of it. Each optional block then ends with its own flush, so its trailing bool costs a whole byte.
_worldPacket << OptionalInit(Brawl);
_worldPacket << OptionalInit(SpecialEventBrawl);
_worldPacket.FlushBits();
if (Brawl)
{
_worldPacket << uint32(Brawl->BrawlID);
_worldPacket << uint32(Brawl->SecondsUntilNextChange);
_worldPacket << Bits<1>(Brawl->CanQueue);
_worldPacket.FlushBits();
}
if (SpecialEventBrawl)
{
_worldPacket << uint32(SpecialEventBrawl->BrawlID);
_worldPacket << uint32(SpecialEventBrawl->SecondsUntilNextChange);
_worldPacket << Bits<1>(SpecialEventBrawl->CanQueue);
_worldPacket.FlushBits();
}
return &_worldPacket;
}
// Index-interleaved, as read by sub_7FF7290FAD90: the three counters of role 0, then of role 1, then of
// role 2, then the "role counts are populated" bit. See the decode block in BattlegroundPackets.h.
ByteBuffer& operator<<(ByteBuffer& data, PvpRoleQueueCounts const& counts)
{
for (std::size_t i = 0; i < PVP_QUEUE_ROLE_COUNT; ++i)
{
data << uint8(counts.Awaited[i]);
data << uint8(counts.Secured[i]);
data << uint8(counts.Lost[i]);
}
data << Bits<1>(counts.HasRoleCounts);
data.FlushBits();
return data;
}
WorldPacket const* BattlefieldStatusWaitForGroups::Write()
{
_worldPacket << Hdr;
_worldPacket << uint32(Mapid);
_worldPacket << uint32(Timeout);
for (std::size_t i = 0; i < SlotsPerSide.size(); ++i)
{
_worldPacket << uint8(SlotsPerSide[i]);
_worldPacket << uint8(AwaitedPerSide[i]);
}
_worldPacket << Roles;
return &_worldPacket;
}
WorldPacket const* BattlefieldStatusGroupProposalFailed::Write()
{
_worldPacket << Hdr;
_worldPacket << Roles;
return &_worldPacket;
}
}
@@ -578,7 +578,8 @@ namespace WorldPackets
void Read() override;
uint8 RolesMask = 0;
uint8 Roles = 0;
bool IsSpecialBrawl = false;
};
class BattlemasterJoinRatedBgBlitz final : public ClientPacket
@@ -638,8 +639,8 @@ namespace WorldPackets
void Read() override;
uint8 Type = 0;
int32 EntryID = 0;
uint8 Roles = 0;
uint32 TrainingGroundID = 0;
};
// War Games: an arranged PvP practice match between two premade groups. The initiating party leader
@@ -727,13 +728,67 @@ namespace WorldPackets
WorldPacket const* Write() override;
uint8 Field1 = 0;
uint32 Field2 = 0;
uint32 Field3 = 0;
bool Flag1 = false;
uint32 Field4 = 0;
uint32 Field5 = 0;
bool Flag2 = false;
struct BrawlInfo
{
uint32 BrawlID = 0; // PvpBrawl.db2 row id
uint32 SecondsUntilNextChange = 0;
bool CanQueue = false;
};
Optional<BrawlInfo> Brawl;
Optional<BrawlInfo> SpecialEventBrawl;
};
enum class PvpQueueRole : uint8
{
Tank = 0,
Healer = 1,
Damager = 2
};
std::size_t constexpr PVP_QUEUE_ROLE_COUNT = 3;
struct PvpRoleQueueCounts
{
std::array<uint8, PVP_QUEUE_ROLE_COUNT> Awaited = { }; // still to be secured
std::array<uint8, PVP_QUEUE_ROLE_COUNT> Secured = { }; // secured already
std::array<uint8, PVP_QUEUE_ROLE_COUNT> Lost = { }; // failed to secure
// Gates the client's entire role display - see sub_7FF72AAB93E0. Set in all 20 captured bodies.
bool HasRoleCounts = true;
};
class BattlefieldStatusWaitForGroups final : public ServerPacket
{
public:
explicit BattlefieldStatusWaitForGroups() : ServerPacket(SMSG_BATTLEFIELD_STATUS_WAIT_FOR_GROUPS, sizeof(BattlefieldStatusHeader) + 4 + 4 + 4 + 10) {}
WorldPacket const* Write() override;
BattlefieldStatusHeader Hdr;
uint32 Mapid = 0;
uint32 Timeout = 0;
std::array<uint8, 2> SlotsPerSide = { };
std::array<uint8, 2> AwaitedPerSide = { };
PvpRoleQueueCounts Roles;
};
class BattlefieldStatusGroupProposalFailed final : public ServerPacket
{
public:
explicit BattlefieldStatusGroupProposalFailed() : ServerPacket(SMSG_BATTLEFIELD_STATUS_GROUP_PROPOSAL_FAILED, sizeof(BattlefieldStatusHeader) + 10) {}
WorldPacket const* Write() override;
BattlefieldStatusHeader Hdr;
PvpRoleQueueCounts Roles;
};
class BattlefieldPortDenied final : public ServerPacket
{
public:
explicit BattlefieldPortDenied() : ServerPacket(SMSG_BATTLEFIELD_PORT_DENIED, 0) {}
WorldPacket const* Write() override { return &_worldPacket; }
};
}
}
@@ -446,4 +446,18 @@ WorldPacket const* LFGSlotInvalid::Write()
return &_worldPacket;
}
WorldPacket const* RequestPvpRewardsResponse::Write()
{
// 12.1 order: all thirteen blocks, THEN the two loose flag bytes. This is NOT the order the 12.0.7
// captures show - see the field-order note on the class - and it is deliberate: the structure of this
// branch follows the 12.1 client.
for (LfgPlayerQuestReward const& activity : Activity)
_worldPacket << activity;
_worldPacket << uint8(BrawlFlags);
_worldPacket << uint8(ExtraFlags);
return &_worldPacket;
}
}
@@ -495,6 +495,48 @@ namespace WorldPackets
int32 SubReason1 = 0;
int32 SubReason2 = 0;
};
class RequestPvpRewardsResponse final : public ServerPacket
{
public:
// Slot order is not guesswork: each block lands in its own client global, and each global is
// read by exactly one C_PvP getter which embeds its own name string as the Lua arg-check
// argument, so the blocks are self-labelling. Blocks 3/4 and 5/6/8/10 are the two multiplexed
// getters (GetArenaRewards by team size, GetBrawlRewards by brawl type).
enum PvpRewardSlot : uint8
{
RandomBattleground = 0, // C_PvP.GetRandomBGRewards
RatedBattleground = 1, // C_PvP.GetRatedBGRewards
ArenaSkirmish = 2, // C_PvP.GetArenaSkirmishRewards
Arena2v2 = 3, // C_PvP.GetArenaRewards(2)
Arena3v3 = 4, // C_PvP.GetArenaRewards(3)
BrawlBattleground = 5, // C_PvP.GetBrawlRewards(Battleground)
BrawlArena = 6, // C_PvP.GetBrawlRewards(Arena), aliased by (LFG)
RandomEpicBattleground = 7, // C_PvP.GetRandomEpicBGRewards
BrawlSoloShuffle = 8, // C_PvP.GetBrawlRewards(SoloShuffle)
RatedSoloShuffle = 9, // C_PvP.GetRatedSoloShuffleRewards
BrawlSoloRbg = 10, // C_PvP.GetBrawlRewards(SoloRbg)
BattlegroundBlitz = 11, // C_PvP.GetRatedSoloRBGRewards
RandomTrainingGround = 12, // C_PvP.GetRandomTrainingGroundRewards
MaxPvpRewardSlot = 13
};
explicit RequestPvpRewardsResponse() : ServerPacket(SMSG_REQUEST_PVP_REWARDS_RESPONSE) {}
WorldPacket const* Write() override;
std::array<LfgPlayerQuestReward, MaxPvpRewardSlot> Activity = { };
// The two loose bytes are twelve MSB-first booleans, of which only half are understood. Five of
// them (BrawlFlags 0x08/0x04/0x02 and ExtraFlags 0x40) are the per-brawl-type "has already won
// this brawl" markers the client returns as the extra `hasWon` value from GetBrawlRewards; we
// run no brawl rotation, so those are false and are written false. ExtraFlags 0x80 was set in
// every capture and gates something inside the client's Rated Solo Shuffle path; its meaning is
// not established, so it is written at the value that was observed and nothing more. The
// remaining six bits were zero in every capture and are left zero.
uint8 BrawlFlags = 0x00;
uint8 ExtraFlags = 0x80;
};
}
}
@@ -1047,4 +1047,18 @@ WorldPacket const* QuestSessionInfoResponse::Write()
return &_worldPacket;
}
void RequestTreasurePunchListItems::Read()
{
_worldPacket >> Selector;
Flag = _worldPacket.read<uint8>() != 0;
}
WorldPacket const* TreasurePunchListItemsResponse::Write()
{
_worldPacket << Selector;
_worldPacket << uint32(0); // Count: no world punch-list data source on this core -> honest empty list
return &_worldPacket;
}
}
@@ -1079,6 +1079,32 @@ namespace WorldPackets
ObjectGuid SessionOwner;
std::vector<int32> QuestIDs;
};
// Client asks for the outstanding "punch list" treasures for a selector (client builder 0x1406D23E0:
// { uint32 Selector; uint8 Flag }).
class RequestTreasurePunchListItems final : public ClientPacket
{
public:
explicit RequestTreasurePunchListItems(WorldPacket&& packet) : ClientPacket(CMSG_REQUEST_TREASURE_PUNCH_LIST_ITEMS, std::move(packet)) {}
void Read() override;
uint32 Selector = 0;
bool Flag = false;
};
// Reply carrying the remaining punch-list treasures. This core has no world punch-list data source, so
// an honest empty list (Count 0) is returned to unblock the client frame without fabricating entries.
class TreasurePunchListItemsResponse final : public ServerPacket
{
public:
explicit TreasurePunchListItemsResponse() : ServerPacket(SMSG_TREASURE_PUNCH_LIST_ITEMS_RESPONSE, 4 + 4) {}
WorldPacket const* Write() override;
uint32 Selector = 0;
};
}
}
+20 -20
View File
@@ -219,20 +219,20 @@ void OpcodeTable::InitializeClientOpcodes()
DEFINE_HANDLER(CMSG_BATTLEMASTER_JOIN_SKIRMISH, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleBattlemasterJoinSkirmish);
DEFINE_HANDLER(CMSG_BATTLENET_CHALLENGE_RESPONSE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
DEFINE_HANDLER(CMSG_BATTLENET_REQUEST, STATUS_AUTHED, PROCESS_THREADUNSAFE, &WorldSession::HandleBattlenetRequest);
DEFINE_HANDLER(CMSG_BATTLE_PAY_ACK_FAILED_RESPONSE, STATUS_IGNORED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
DEFINE_HANDLER(CMSG_BATTLE_PAY_CANCEL_OPEN_CHECKOUT, STATUS_IGNORED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
DEFINE_HANDLER(CMSG_BATTLE_PAY_ACK_FAILED_RESPONSE, STATUS_AUTHED, PROCESS_THREADUNSAFE, &WorldSession::HandleBattlePayAckFailedResponse);
DEFINE_HANDLER(CMSG_BATTLE_PAY_CANCEL_OPEN_CHECKOUT, STATUS_AUTHED, PROCESS_THREADUNSAFE, &WorldSession::HandleBattlePayCancelOpenCheckout);
DEFINE_HANDLER(CMSG_BATTLE_PAY_CONFIRM_PURCHASE_RESPONSE, STATUS_AUTHED, PROCESS_THREADUNSAFE, &WorldSession::HandleBattlePayConfirmPurchaseResponse);
DEFINE_HANDLER(CMSG_BATTLE_PAY_DISTRIBUTION_ASSIGN_TO_TARGET, STATUS_AUTHED, PROCESS_THREADUNSAFE, &WorldSession::HandleBattlePayDistributionAssignToTarget);
DEFINE_HANDLER(CMSG_BATTLE_PAY_DISTRIBUTION_ASSIGN_VAS, STATUS_IGNORED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
DEFINE_HANDLER(CMSG_BATTLE_PAY_DISTRIBUTION_ASSIGN_VAS, STATUS_AUTHED, PROCESS_THREADUNSAFE, &WorldSession::HandleBattlePayDistributionAssignVas);
DEFINE_HANDLER(CMSG_BATTLE_PAY_GET_PRODUCT_LIST, STATUS_AUTHED, PROCESS_THREADUNSAFE, &WorldSession::HandleBattlePayGetProductList);
DEFINE_HANDLER(CMSG_BATTLE_PAY_GET_PURCHASE_LIST, STATUS_AUTHED, PROCESS_THREADUNSAFE, &WorldSession::HandleBattlePayGetPurchaseList);
DEFINE_HANDLER(CMSG_BATTLE_PAY_OPEN_CHECKOUT, STATUS_AUTHED, PROCESS_THREADUNSAFE, &WorldSession::HandleBattlePayOpenCheckout);
DEFINE_HANDLER(CMSG_BATTLE_PAY_REQUEST_PRICE_INFO, STATUS_IGNORED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
DEFINE_HANDLER(CMSG_BATTLE_PAY_REQUEST_PRICE_INFO, STATUS_AUTHED, PROCESS_THREADUNSAFE, &WorldSession::HandleBattlePayRequestPriceInfo);
DEFINE_HANDLER(CMSG_BATTLE_PAY_START_PURCHASE, STATUS_AUTHED, PROCESS_THREADUNSAFE, &WorldSession::HandleBattlePayStartPurchase);
DEFINE_HANDLER(CMSG_BATTLE_PAY_START_VAS_PURCHASE, STATUS_IGNORED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
DEFINE_HANDLER(CMSG_BATTLE_PAY_START_VAS_PURCHASE, STATUS_AUTHED, PROCESS_THREADUNSAFE, &WorldSession::HandleBattlePayStartVasPurchase);
DEFINE_HANDLER(CMSG_BATTLE_PET_CLEAR_FANFARE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleBattlePetClearFanfare);
DEFINE_HANDLER(CMSG_BATTLE_PET_DELETE_PET, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleBattlePetDeletePet);
DEFINE_HANDLER(CMSG_BATTLE_PET_DELETE_PET_CHEAT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
DEFINE_HANDLER(CMSG_BATTLE_PET_DELETE_PET_CHEAT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleBattlePetDeletePetCheat);
DEFINE_HANDLER(CMSG_BATTLE_PET_MODIFY_NAME, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleBattlePetModifyName);
DEFINE_HANDLER(CMSG_BATTLE_PET_REQUEST_JOURNAL, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleBattlePetRequestJournal);
DEFINE_HANDLER(CMSG_BATTLE_PET_REQUEST_JOURNAL_LOCK, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleBattlePetRequestJournalLock);
@@ -249,7 +249,7 @@ void OpcodeTable::InitializeClientOpcodes()
DEFINE_HANDLER(CMSG_BLEEP_PONG, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
DEFINE_HANDLER(CMSG_BONUS_ROLL, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleBonusRoll);
DEFINE_HANDLER(CMSG_BUG_REPORT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleBugReportOpcode);
DEFINE_HANDLER(CMSG_BULK_PURCHASE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
DEFINE_HANDLER(CMSG_BULK_PURCHASE, STATUS_AUTHED, PROCESS_THREADUNSAFE, &WorldSession::HandleBattlePayBulkPurchase);
DEFINE_HANDLER(CMSG_BULK_REFUND, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
DEFINE_HANDLER(CMSG_BUSY_TRADE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleBusyTradeOpcode);
DEFINE_HANDLER(CMSG_BUY_ACCOUNT_BANK_TAB, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleBuyBankTab);
@@ -292,9 +292,9 @@ void OpcodeTable::InitializeClientOpcodes()
DEFINE_HANDLER(CMSG_CHANGE_MONUMENT_APPEARANCE, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleChangeMonumentAppearance);
DEFINE_HANDLER(CMSG_CHANGE_REALM_TICKET, STATUS_AUTHED, PROCESS_THREADUNSAFE, &WorldSession::HandleBattlenetChangeRealmTicket);
DEFINE_HANDLER(CMSG_CHANGE_SUB_GROUP, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleChangeSubGroupOpcode);
DEFINE_HANDLER(CMSG_CHARACTER_CHECK_UPGRADE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
DEFINE_HANDLER(CMSG_CHARACTER_CHECK_UPGRADE, STATUS_AUTHED, PROCESS_THREADUNSAFE, &WorldSession::HandleCharacterCheckUpgrade);
DEFINE_HANDLER(CMSG_CHARACTER_RENAME_REQUEST, STATUS_AUTHED, PROCESS_THREADUNSAFE, &WorldSession::HandleCharRenameOpcode);
DEFINE_HANDLER(CMSG_CHARACTER_UPGRADE_MANUAL_UNREVOKE_REQUEST, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
DEFINE_HANDLER(CMSG_CHARACTER_UPGRADE_MANUAL_UNREVOKE_REQUEST, STATUS_AUTHED, PROCESS_THREADUNSAFE, &WorldSession::HandleCharacterUpgradeManualUnrevokeRequest);
DEFINE_HANDLER(CMSG_CHARACTER_UPGRADE_START, STATUS_AUTHED, PROCESS_THREADUNSAFE, &WorldSession::HandleCharacterUpgradeStart);
DEFINE_HANDLER(CMSG_CHAR_CUSTOMIZE, STATUS_AUTHED, PROCESS_THREADUNSAFE, &WorldSession::HandleCharCustomizeOpcode);
DEFINE_HANDLER(CMSG_CHAR_DELETE, STATUS_AUTHED, PROCESS_THREADUNSAFE, &WorldSession::HandleCharDeleteOpcode);
@@ -497,7 +497,7 @@ void OpcodeTable::InitializeClientOpcodes()
DEFINE_HANDLER(CMSG_GET_ALL_LICENSED_DECOR_QUANTITIES, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
DEFINE_HANDLER(CMSG_GET_AVAILABLE_INITIATIVE_REQUEST, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
DEFINE_HANDLER(CMSG_GET_CHARACTER_CURRENCY_TRANSFER_LOG, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGetCharacterCurrencyTransferLog);
DEFINE_HANDLER(CMSG_GET_CLIENT_CHECKOUT_LICENSES, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
DEFINE_HANDLER(CMSG_GET_CLIENT_CHECKOUT_LICENSES, STATUS_AUTHED, PROCESS_THREADUNSAFE, &WorldSession::HandleGetClientCheckoutLicenses);
DEFINE_HANDLER(CMSG_GET_DECOR_REFUND_LIST, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
DEFINE_HANDLER(CMSG_GET_GARRISON_INFO, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGetGarrisonInfo);
DEFINE_HANDLER(CMSG_GET_INITIATIVE_ACTIVITY_LOG_REQUEST, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
@@ -511,8 +511,8 @@ void OpcodeTable::InitializeClientOpcodes()
DEFINE_HANDLER(CMSG_GET_REMAINING_GAME_TIME, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL);
DEFINE_HANDLER(CMSG_GET_TROPHY_LIST, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleGetTrophyList);
DEFINE_HANDLER(CMSG_GET_UNDELETE_CHARACTER_COOLDOWN_STATUS, STATUS_AUTHED, PROCESS_THREADUNSAFE, &WorldSession::HandleGetUndeleteCooldownStatus);
DEFINE_HANDLER(CMSG_GET_VAS_ACCOUNT_CHARACTER_LIST, STATUS_IGNORED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
DEFINE_HANDLER(CMSG_GET_VAS_TRANSFER_TARGET_REALM_LIST, STATUS_IGNORED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
DEFINE_HANDLER(CMSG_GET_VAS_ACCOUNT_CHARACTER_LIST, STATUS_AUTHED, PROCESS_THREADUNSAFE, &WorldSession::HandleGetVasAccountCharacterList);
DEFINE_HANDLER(CMSG_GET_VAS_TRANSFER_TARGET_REALM_LIST, STATUS_AUTHED, PROCESS_THREADUNSAFE, &WorldSession::HandleGetVasTransferTargetRealmList);
DEFINE_HANDLER(CMSG_GM_TICKET_ACKNOWLEDGE_SURVEY, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL);
DEFINE_HANDLER(CMSG_GM_TICKET_GET_CASE_STATUS, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleGMTicketGetCaseStatusOpcode);
DEFINE_HANDLER(CMSG_GM_TICKET_GET_SYSTEM_STATUS, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleGMTicketSystemStatusOpcode);
@@ -943,7 +943,7 @@ void OpcodeTable::InitializeClientOpcodes()
DEFINE_HANDLER(CMSG_RECENT_ALLY_SET_NOTE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleRecentAllySetNote);
DEFINE_HANDLER(CMSG_RECLAIM_CORPSE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleReclaimCorpse);
DEFINE_HANDLER(CMSG_REFRESH_BLEEP_TOKENS, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
DEFINE_HANDLER(CMSG_REFRESH_ENTITLEMENTS_ON_ORDER_COMPLETE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
DEFINE_HANDLER(CMSG_REFRESH_ENTITLEMENTS_ON_ORDER_COMPLETE, STATUS_AUTHED, PROCESS_THREADUNSAFE, &WorldSession::HandleRefreshEntitlementsOnOrderComplete);
DEFINE_HANDLER(CMSG_REGISTER_FAST_LOGIN, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
DEFINE_HANDLER(CMSG_REMOVE_NEW_ITEM, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleRemoveNewItem);
DEFINE_HANDLER(CMSG_REMOVE_RAF_RECRUIT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
@@ -985,7 +985,7 @@ void OpcodeTable::InitializeClientOpcodes()
DEFINE_HANDLER(CMSG_REQUEST_STABLED_PETS, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleRequestStabledPets);
DEFINE_HANDLER(CMSG_REQUEST_STORE_FRONT_INFO_UPDATE, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleRequestStoreFrontInfoUpdate);
DEFINE_HANDLER(CMSG_REQUEST_SURVEY, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
DEFINE_HANDLER(CMSG_REQUEST_TREASURE_PUNCH_LIST_ITEMS, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
DEFINE_HANDLER(CMSG_REQUEST_TREASURE_PUNCH_LIST_ITEMS, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleRequestTreasurePunchListItems);
DEFINE_HANDLER(CMSG_REQUEST_VEHICLE_EXIT, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleRequestVehicleExit);
DEFINE_HANDLER(CMSG_REQUEST_VEHICLE_NEXT_SEAT, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleRequestVehicleNextSeat);
DEFINE_HANDLER(CMSG_REQUEST_VEHICLE_PREV_SEAT, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleRequestVehiclePrevSeat);
@@ -1157,8 +1157,8 @@ void OpcodeTable::InitializeClientOpcodes()
DEFINE_HANDLER(CMSG_USE_EQUIPMENT_SET, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleUseEquipmentSet);
DEFINE_HANDLER(CMSG_USE_ITEM, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleUseItemOpcode);
DEFINE_HANDLER(CMSG_USE_TOY, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleUseToy);
DEFINE_HANDLER(CMSG_VAS_CHECK_TRANSFER_OK, STATUS_IGNORED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
DEFINE_HANDLER(CMSG_VAS_GET_QUEUE_MINUTES, STATUS_IGNORED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
DEFINE_HANDLER(CMSG_VAS_CHECK_TRANSFER_OK, STATUS_AUTHED, PROCESS_THREADUNSAFE, &WorldSession::HandleVasCheckTransferOk);
DEFINE_HANDLER(CMSG_VAS_GET_QUEUE_MINUTES, STATUS_AUTHED, PROCESS_THREADUNSAFE, &WorldSession::HandleVasGetQueueMinutes);
DEFINE_HANDLER(CMSG_VAS_GET_SERVICE_STATUS, STATUS_IGNORED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
DEFINE_HANDLER(CMSG_VIOLENCE_LEVEL, STATUS_AUTHED, PROCESS_INPLACE, &WorldSession::HandleViolenceLevel);
DEFINE_HANDLER(CMSG_VOICE_CHANNEL_STT_TOKEN_REQUEST, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
@@ -1278,11 +1278,11 @@ void OpcodeTable::InitializeServerOpcodes()
DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLEFIELD_PORT_DENIED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLEFIELD_STATUS_ACTIVE, STATUS_NEVER, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLEFIELD_STATUS_FAILED, STATUS_NEVER, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLEFIELD_STATUS_GROUP_PROPOSAL_FAILED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLEFIELD_STATUS_GROUP_PROPOSAL_FAILED, STATUS_NEVER, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLEFIELD_STATUS_NEED_CONFIRMATION, STATUS_NEVER, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLEFIELD_STATUS_NONE, STATUS_NEVER, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLEFIELD_STATUS_QUEUED, STATUS_NEVER, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLEFIELD_STATUS_WAIT_FOR_GROUPS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLEFIELD_STATUS_WAIT_FOR_GROUPS, STATUS_NEVER, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLEGROUND_INFO_THROTTLED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLEGROUND_INIT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLEGROUND_PLAYER_JOINED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);
@@ -2322,7 +2322,7 @@ void OpcodeTable::InitializeServerOpcodes()
DEFINE_SERVER_OPCODE_HANDLER(SMSG_REPLACE_TROPHY_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_REPORT_PVP_PLAYER_AFK_RESULT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_REQUEST_CEMETERY_LIST_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_REQUEST_PVP_REWARDS_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_REQUEST_PVP_REWARDS_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_REQUEST_SCHEDULED_PVP_INFO_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_RESET_COMPRESSION_CONTEXT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_RESET_FAILED_NOTIFY, STATUS_NEVER, CONNECTION_TYPE_REALM);
@@ -2506,7 +2506,7 @@ void OpcodeTable::InitializeServerOpcodes()
DEFINE_SERVER_OPCODE_HANDLER(SMSG_TRANSMOG_OUTFIT_SITUATIONS_UPDATED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_TRANSMOG_OUTFIT_SLOTS_UPDATED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_TREASURE_PICKER_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_TREASURE_PUNCH_LIST_ITEMS_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_TREASURE_PUNCH_LIST_ITEMS_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_TRIGGER_CINEMATIC, STATUS_NEVER, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_TRIGGER_MOVIE, STATUS_NEVER, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_TURN_IN_PETITION_RESULT, STATUS_NEVER, CONNECTION_TYPE_REALM);
+32
View File
@@ -131,6 +131,17 @@ namespace WorldPackets
{
class UpdateVasPurchaseStates;
class VasGetServiceStatus;
class GetVasAccountCharacterList;
class GetVasTransferTargetRealmList;
class VasCheckTransferOk;
class VasGetQueueMinutes;
class BattlePayDistributionAssignVas;
class BattlePayStartVasPurchase;
class BattlePayAckFailedResponse;
class BattlePayRequestPriceInfo;
class BattlePayCancelOpenCheckout;
class CharacterCheckUpgrade;
class CharacterUpgradeManualUnrevokeRequest;
class GetProductList;
class GetPurchaseList;
class StartPurchase;
@@ -139,6 +150,9 @@ namespace WorldPackets
class ConfirmPurchaseResponse;
class DistributionAssignToTarget;
class CharacterUpgradeStart;
class GetClientCheckoutLicenses;
class RefreshEntitlementsOnOrderComplete;
class BulkPurchase;
}
namespace AreaTrigger
@@ -243,6 +257,7 @@ namespace WorldPackets
class BattlePetModifyName;
class QueryBattlePetName;
class BattlePetDeletePet;
class BattlePetDeletePetCheat;
class BattlePetSetFlags;
class BattlePetClearFanfare;
class BattlePetSummon;
@@ -1087,6 +1102,7 @@ namespace WorldPackets
class QuestSessionRequestStart;
class QuestSessionRequestStop;
class QuestSessionBeginResponse;
class RequestTreasurePunchListItems;
}
namespace RaF
@@ -2314,6 +2330,7 @@ public:
void HandleQuestSessionRequestStart(WorldPackets::Quest::QuestSessionRequestStart& packet);
void HandleQuestSessionRequestStop(WorldPackets::Quest::QuestSessionRequestStop& packet);
void HandleQuestSessionBeginResponse(WorldPackets::Quest::QuestSessionBeginResponse& packet);
void HandleRequestTreasurePunchListItems(WorldPackets::Quest::RequestTreasurePunchListItems& packet);
void HandleChatMessageOpcode(WorldPackets::Chat::ChatMessage& chatMessage);
void HandleChatMessageWhisperOpcode(WorldPackets::Chat::ChatMessageWhisper& chatMessageWhisper);
@@ -2406,6 +2423,17 @@ public:
void HandleBattlePayGetProductList(WorldPackets::BattlePay::GetProductList& getProductList);
void HandleUpdateVasPurchaseStates(WorldPackets::BattlePay::UpdateVasPurchaseStates& packet);
void HandleVasGetServiceStatus(WorldPackets::BattlePay::VasGetServiceStatus& packet);
void HandleGetVasTransferTargetRealmList(WorldPackets::BattlePay::GetVasTransferTargetRealmList& packet);
void HandleVasCheckTransferOk(WorldPackets::BattlePay::VasCheckTransferOk& packet);
void HandleVasGetQueueMinutes(WorldPackets::BattlePay::VasGetQueueMinutes& packet);
void HandleBattlePayDistributionAssignVas(WorldPackets::BattlePay::BattlePayDistributionAssignVas& packet);
void HandleBattlePayStartVasPurchase(WorldPackets::BattlePay::BattlePayStartVasPurchase& packet);
void HandleBattlePayAckFailedResponse(WorldPackets::BattlePay::BattlePayAckFailedResponse& packet);
void HandleBattlePayRequestPriceInfo(WorldPackets::BattlePay::BattlePayRequestPriceInfo& packet);
void HandleBattlePayCancelOpenCheckout(WorldPackets::BattlePay::BattlePayCancelOpenCheckout& packet);
void HandleCharacterCheckUpgrade(WorldPackets::BattlePay::CharacterCheckUpgrade& packet);
void HandleCharacterUpgradeManualUnrevokeRequest(WorldPackets::BattlePay::CharacterUpgradeManualUnrevokeRequest& packet);
void HandleGetVasAccountCharacterList(WorldPackets::BattlePay::GetVasAccountCharacterList& packet);
void HandleBattlePayGetPurchaseList(WorldPackets::BattlePay::GetPurchaseList& getPurchaseList);
void HandleBattlePayStartPurchase(WorldPackets::BattlePay::StartPurchase& startPurchase);
void HandleBattlePayOpenCheckout(WorldPackets::BattlePay::OpenCheckout & openCheckout);
@@ -2431,6 +2459,9 @@ public:
void HandleCharacterUpgradeStart(WorldPackets::BattlePay::CharacterUpgradeStart& upgradeStart);
// Second half of the boost, run once the target's current level/class/race/inventory have been
// read. Claims the entitlement, writes the boost, then answers COMPLETE (or ABORTED).
void HandleGetClientCheckoutLicenses(WorldPackets::BattlePay::GetClientCheckoutLicenses& packet);
void HandleRefreshEntitlementsOnOrderComplete(WorldPackets::BattlePay::RefreshEntitlementsOnOrderComplete& packet);
void HandleBattlePayBulkPurchase(WorldPackets::BattlePay::BulkPurchase& packet);
void ApplyBattlePayCharacterBoost(CharacterDatabaseQueryHolder const& queryResult, ObjectGuid target,
uint32 specializationId, uint64 distributionId, uint64 purchaseId, uint32 productId);
// True once this account holds at least one unapplied character-boost entitlement. Drives the
@@ -2755,6 +2786,7 @@ public:
void HandleBattlePetModifyName(WorldPackets::BattlePet::BattlePetModifyName& battlePetModifyName);
void HandleQueryBattlePetName(WorldPackets::BattlePet::QueryBattlePetName& queryBattlePetName);
void HandleBattlePetDeletePet(WorldPackets::BattlePet::BattlePetDeletePet& battlePetDeletePet);
void HandleBattlePetDeletePetCheat(WorldPackets::BattlePet::BattlePetDeletePetCheat& battlePetDeletePetCheat);
void HandleBattlePetSetFlags(WorldPackets::BattlePet::BattlePetSetFlags& battlePetSetFlags);
void HandleBattlePetClearFanfare(WorldPackets::BattlePet::BattlePetClearFanfare& battlePetClearFanfare);
void HandleBattlePetSummon(WorldPackets::BattlePet::BattlePetSummon& battlePetSummon);
+6
View File
@@ -677,6 +677,7 @@ void World::LoadConfigSettings(bool reload)
{ .Name = "Battleground.QueueAnnouncer.Enable"sv, .DefaultValue = false, .Index = CONFIG_BATTLEGROUND_QUEUE_ANNOUNCER_ENABLE },
{ .Name = "Battleground.QueueAnnouncer.PlayerOnly"sv, .DefaultValue = false, .Index = CONFIG_BATTLEGROUND_QUEUE_ANNOUNCER_PLAYERONLY },
{ .Name = "Battleground.StoreStatistics.Enable"sv, .DefaultValue = false, .Index = CONFIG_BATTLEGROUND_STORE_STATISTICS_ENABLE },
{.Name = "Brawl.Enabled"sv, .DefaultValue = true, .Index = CONFIG_BRAWL_ENABLED },
{ .Name = "Battleground.GiveXPForKills"sv, .DefaultValue = false, .Index = CONFIG_BG_XP_FOR_KILL },
{ .Name = "Arena.QueueAnnouncer.Enable"sv, .DefaultValue = false, .Index = CONFIG_ARENA_QUEUE_ANNOUNCER_ENABLE },
{ .Name = "Arena.ArenaSeason.InProgress"sv, .DefaultValue = false, .Index = CONFIG_ARENA_SEASON_IN_PROGRESS },
@@ -861,6 +862,11 @@ void World::LoadConfigSettings(bool reload)
{ .Name = "Death.SicknessLevel"sv, .DefaultValue = 11, .Index = CONFIG_DEATH_SICKNESS_LEVEL },
{ .Name = "Battleground.ReportAFK"sv, .DefaultValue = 3, .Index = CONFIG_BATTLEGROUND_REPORT_AFK, .Min = 1, .Max = 9 },
{ .Name = "Battleground.InvitationType"sv, .DefaultValue = 0, .Index = CONFIG_BATTLEGROUND_INVITATION_TYPE },
{ .Name = "BattlegroundBlitz.TanksPerTeam"sv, .DefaultValue = 0, .Index = CONFIG_BATTLEGROUND_BLITZ_TANKS_PER_TEAM, .Min = 0, .Max = 8 },
{ .Name = "BattlegroundBlitz.HealersPerTeam"sv, .DefaultValue = 2, .Index = CONFIG_BATTLEGROUND_BLITZ_HEALERS_PER_TEAM, .Min = 0, .Max = 8 },
// PvpBrawl.db2 row 11 "Brawl: Deep Six" -> BattlemasterList 879 (BATTLEGROUND_BRAWL_DS).
{ .Name = "Brawl.PvpBrawlID"sv, .DefaultValue = 11, .Index = CONFIG_BRAWL_PVP_BRAWL_ID },
{ .Name = "Brawl.BattlemasterListID"sv, .DefaultValue = BATTLEGROUND_BRAWL_DS, .Index = CONFIG_BRAWL_BATTLEMASTER_LIST_ID },
{ .Name = "Battleground.PrematureFinishTimer"sv, .DefaultValue = 5 * MINUTE * IN_MILLISECONDS, .Index = CONFIG_BATTLEGROUND_PREMATURE_FINISH_TIMER },
{ .Name = "Battleground.PremadeGroupWaitForMatch"sv, .DefaultValue = 30 * MINUTE * IN_MILLISECONDS, .Index = CONFIG_BATTLEGROUND_PREMADE_GROUP_WAIT_FOR_MATCH },
{ .Name = "Arena.MaxRatingDifference"sv, .DefaultValue = 150, .Index = CONFIG_ARENA_MAX_RATING_DIFFERENCE },
+5
View File
@@ -137,6 +137,7 @@ enum WorldBoolConfigs : uint32
CONFIG_BATTLEGROUND_QUEUE_ANNOUNCER_ENABLE,
CONFIG_BATTLEGROUND_QUEUE_ANNOUNCER_PLAYERONLY,
CONFIG_BATTLEGROUND_STORE_STATISTICS_ENABLE,
CONFIG_BRAWL_ENABLED,
CONFIG_BG_XP_FOR_KILL,
CONFIG_ARENA_QUEUE_ANNOUNCER_ENABLE,
CONFIG_ARENA_SEASON_IN_PROGRESS,
@@ -340,6 +341,10 @@ enum WorldIntConfigs : uint32
CONFIG_DEATH_SICKNESS_LEVEL,
CONFIG_DISABLE_BREATHING,
CONFIG_BATTLEGROUND_INVITATION_TYPE,
CONFIG_BATTLEGROUND_BLITZ_TANKS_PER_TEAM,
CONFIG_BATTLEGROUND_BLITZ_HEALERS_PER_TEAM,
CONFIG_BRAWL_PVP_BRAWL_ID,
CONFIG_BRAWL_BATTLEMASTER_LIST_ID,
CONFIG_BATTLEGROUND_PREMATURE_FINISH_TIMER,
CONFIG_BATTLEGROUND_PREMADE_GROUP_WAIT_FOR_MATCH,
CONFIG_BATTLEGROUND_REPORT_AFK,
@@ -0,0 +1,178 @@
/*
* This file is part of the TrinityCore Project. See AUTHORS file for Copyright information
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation; either version 2 of the License, or (at your
* option) any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "InstanceScript.h"
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "nexuspointxenas.h"
static const Position coresparkSummonPos[3] =
{
{ 401.7f, 572.5f, 152.6f, 0.0f },
{ 420.6f, 557.0f, 152.7f, 0.0f },
{ 443.6f, 560.0f, 152.7f, 0.0f }
};
// 241539 - Chief Corewright Kasreth
struct boss_kasreth : public BossAI
{
boss_kasreth(Creature* creature) : BossAI(creature, DATA_KASRETH) { }
void JustEngagedWith(Unit* who) override
{
BossAI::JustEngagedWith(who);
instance->SendEncounterUnit(ENCOUNTER_FRAME_ENGAGE, me);
SetEventObject(DATA_ARCANE_BARRIER, false);
_phaseTwo = false;
Talk(1); // Stay away from my work!
events.ScheduleEvent(EVENT_ARCANE_ZAP, 4s);
events.ScheduleEvent(EVENT_REFLUX_CHARGE, 8s);
events.ScheduleEvent(EVENT_LEYLINE_ARRAY, 14s);
events.ScheduleEvent(EVENT_CORESPARK_DETONATION, 20s);
events.ScheduleEvent(EVENT_BERSERK, 6min);
}
void JustDied(Unit* killer) override
{
BossAI::JustDied(killer);
Talk(7); // But my job isn't done...
SetEventObject(DATA_ARCANE_BARRIER, true);
SetEventObject(DATA_CORE_ACCESS_CONSOLE, true);
SetEventObject(DATA_CORE_BRIDGE, true);
instance->SendEncounterUnit(ENCOUNTER_FRAME_DISENGAGE, me);
}
void JustReachedHome() override
{
BossAI::JustReachedHome();
SetEventObject(DATA_ARCANE_BARRIER, true);
instance->SendEncounterUnit(ENCOUNTER_FRAME_DISENGAGE, me);
}
void JustSummoned(Creature* summon) override
{
BossAI::JustSummoned(summon);
if (summon->GetEntry() == NPC_CORESPARK_PYLON)
summon->SetReactState(REACT_PASSIVE);
}
void ExecuteEvent(uint32 eventId) override
{
switch (eventId)
{
case EVENT_ARCANE_ZAP:
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 60.0f, true))
DoCast(target, urand(0, 1) ? SPELL_ARCANE_ZAP_A : SPELL_ARCANE_ZAP_B);
events.Repeat(6s, 9s);
break;
case EVENT_REFLUX_CHARGE:
if (Unit* target = me->GetVictim())
DoCast(target, SPELL_REFLUX_CHARGE_F);
events.Repeat(9s, 13s);
break;
case EVENT_LEYLINE_ARRAY:
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 60.0f, true))
DoCast(target, SPELL_LEYLINE_ARRAY_A);
events.Repeat(22s, 28s);
break;
case EVENT_CORESPARK_DETONATION:
Talk(5); // My power output is peaking!
DoCastSelf(SPELL_CORESPARK_DETONATION_E, true);
for (Position const& pos : coresparkSummonPos)
me->SummonCreature(NPC_CORESPARK_PYLON, pos, TEMPSUMMON_CORPSE_DESPAWN);
events.Repeat(35s, 45s);
break;
case EVENT_FLUX_COLLAPSE:
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 60.0f, true))
DoCast(target, urand(0, 1) ? SPELL_FLUX_COLLAPSE_A : SPELL_FLUX_COLLAPSE_B);
events.Repeat(14s, 18s);
break;
case EVENT_REFUELING_ORB:
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 60.0f, true))
DoCast(target, SPELL_REFUELING_ORB);
events.Repeat(20s, 25s);
break;
case EVENT_ARCANE_SPILL:
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 60.0f, true))
DoCast(target, SPELL_ARCANE_SPILL);
events.Repeat(10s, 15s);
break;
case EVENT_SUPPRESSION_FIELD:
DoCastSelf(SPELL_SUPPRESSION_FIELD);
events.Repeat(22s, 26s);
break;
case EVENT_SPARKBURN:
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 60.0f, true))
DoCast(target, SPELL_SPARKBURN);
events.Repeat(26s, 32s);
break;
case EVENT_VOLATILE_POWER:
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 60.0f, true))
DoCast(target, SPELL_VOLATILE_POWER);
events.Repeat(30s, 36s);
break;
case EVENT_BERSERK:
DoCastSelf(SPELL_BERSERK, true);
break;
default:
break;
}
}
void DamageTaken(Unit* /*attacker*/, uint32& /*damage*/, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo*/) override
{
if (!_phaseTwo && me->HealthBelowPct(45))
{
_phaseTwo = true;
Talk(4); // A good corewright always has his tools.
events.ScheduleEvent(EVENT_ARCANE_SPILL, 3s);
events.ScheduleEvent(EVENT_FLUX_COLLAPSE, 8s);
events.ScheduleEvent(EVENT_SUPPRESSION_FIELD, 16s);
events.ScheduleEvent(EVENT_REFUELING_ORB, 24s);
events.ScheduleEvent(EVENT_SPARKBURN, 12s);
events.ScheduleEvent(EVENT_VOLATILE_POWER, 20s);
}
}
void UpdateAI(uint32 diff) override
{
if (!UpdateVictim())
return;
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
events.Update(diff);
while (uint32 eventId = events.ExecuteEvent())
ExecuteEvent(eventId);
}
private:
bool _phaseTwo;
// Drives event/encounter props (Arcane Barrier, Core bridge/console, etc.)
void SetEventObject(uint32 data64, bool open)
{
instance->HandleGameObject(instance->GetGuidData(data64), open);
}
};
void AddSC_boss_kasreth()
{
RegisterNexusPointXenasCreatureAI(boss_kasreth);
}
@@ -0,0 +1,177 @@
/*
* This file is part of the TrinityCore Project. See AUTHORS file for Copyright information
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation; either version 2 of the License, or (at your
* option) any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "InstanceScript.h"
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "nexuspointxenas.h"
// 241546 - Lothraxion
struct boss_lothraxion : public BossAI
{
boss_lothraxion(Creature* creature) : BossAI(creature, DATA_LOTHRAXION) { }
void JustEngagedWith(Unit* who) override
{
BossAI::JustEngagedWith(who);
instance->SendEncounterUnit(ENCOUNTER_FRAME_ENGAGE, me);
_phaseTwo = false;
Talk(0); // You willingly choose to go against the Light's will.
events.ScheduleEvent(EVENT_BRILLIANT_DISPERSION, 5s);
events.ScheduleEvent(EVENT_SEARING_REND, 10s);
events.ScheduleEvent(EVENT_RADIANT_SCAR, 14s);
events.ScheduleEvent(EVENT_DIVINE_GUILE, 18s);
}
void JustDied(Unit* killer) override
{
BossAI::JustDied(killer);
Talk(6); // You will see.
instance->SendEncounterUnit(ENCOUNTER_FRAME_DISENGAGE, me);
}
void JustReachedHome() override
{
BossAI::JustReachedHome();
instance->SendEncounterUnit(ENCOUNTER_FRAME_DISENGAGE, me);
}
void JustSummoned(Creature* summon) override
{
BossAI::JustSummoned(summon);
}
void ExecuteEvent(uint32 eventId) override
{
switch (eventId)
{
case EVENT_BRILLIANT_DISPERSION:
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 60.0f, true))
DoCast(target, SPELL_BRILLIANT_DISPERSION_A);
events.Repeat(7s, 10s);
break;
case EVENT_SEARING_REND:
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 60.0f, true))
DoCast(target, urand(0, 1) ? SPELL_SEARING_REND_A : SPELL_SEARING_REND_B);
events.Repeat(12s, 16s);
break;
case EVENT_RADIANT_SCAR:
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 60.0f, true))
DoCast(target, SPELL_RADIANT_SCAR_IMAGE);
events.Repeat(6s, 9s);
break;
case EVENT_DIVINE_GUILE:
Talk(4); // begins Divine Guile
DoCastSelf(SPELL_DIVINE_GUILE_D, true);
me->SummonCreature(NPC_LINGERING_IMAGE, me->GetPosition(), TEMPSUMMON_CORPSE_DESPAWN);
me->SummonCreature(NPC_LINGERING_IMAGE, me->GetPosition(), TEMPSUMMON_CORPSE_DESPAWN);
events.Repeat(28s, 36s);
break;
default:
break;
}
}
void DamageTaken(Unit* /*attacker*/, uint32& /*damage*/, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo*/) override
{
if (!_phaseTwo && me->HealthBelowPct(45))
{
_phaseTwo = true;
Talk(3); // The Light will cleanse!
events.ScheduleEvent(EVENT_RADIANT_SCAR, 2s);
events.ScheduleEvent(EVENT_DIVINE_GUILE, 8s);
}
}
void UpdateAI(uint32 diff) override
{
if (!UpdateVictim())
return;
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
events.Update(diff);
while (uint32 eventId = events.ExecuteEvent())
ExecuteEvent(eventId);
}
private:
bool _phaseTwo;
};
// 241642 - Lingering Image (Lothraxion add)
struct npc_lingering_image : public ScriptedAI
{
npc_lingering_image(Creature* creature) : ScriptedAI(creature) { }
void JustEngagedWith(Unit* who) override
{
ScriptedAI::JustEngagedWith(who);
_events.ScheduleEvent(EVENT_LIGHT_BARRAGE_IMAGE, 2s);
_events.ScheduleEvent(EVENT_LINGER_SEARING_REND, 6s);
_events.ScheduleEvent(EVENT_LINGER_RADIANT_SCAR, 12s);
}
void ExecuteEvent(uint32 eventId)
{
switch (eventId)
{
case EVENT_LIGHT_BARRAGE_IMAGE:
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 40.0f, true))
DoCast(target, SPELL_LIGHT_BARRAGE);
_events.Repeat(3s, 5s);
break;
case EVENT_LINGER_SEARING_REND:
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 40.0f, true))
DoCast(target, urand(0, 2) ? SPELL_SEARING_REND_LINGER_A : SPELL_SEARING_REND_LINGER_B);
_events.Repeat(6s, 9s);
break;
case EVENT_LINGER_RADIANT_SCAR:
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 40.0f, true))
DoCast(target, SPELL_RADIANT_SCAR_A);
_events.Repeat(12s, 16s);
break;
default:
break;
}
}
void UpdateAI(uint32 diff) override
{
if (!UpdateVictim())
return;
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
_events.Update(diff);
while (uint32 eventId = _events.ExecuteEvent())
ExecuteEvent(eventId);
}
private:
EventMap _events;
};
void AddSC_boss_lothraxion()
{
RegisterNexusPointXenasCreatureAI(boss_lothraxion);
RegisterNexusPointXenasCreatureAI(npc_lingering_image);
}
@@ -0,0 +1,146 @@
/*
* This file is part of the TrinityCore Project. See AUTHORS file for Copyright information
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation; either version 2 of the License, or (at your
* option) any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "InstanceScript.h"
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "nexuspointxenas.h"
// 241542 - Corewarden Nysarra
struct boss_nysarra : public BossAI
{
boss_nysarra(Creature* creature) : BossAI(creature, DATA_NYSARRA) { }
void JustEngagedWith(Unit* who) override
{
BossAI::JustEngagedWith(who);
instance->SendEncounterUnit(ENCOUNTER_FRAME_ENGAGE, me);
_phaseTwo = false;
Talk(0); // Yet another battle. I am still wounded from the last one!
events.ScheduleEvent(EVENT_UMBRAL_LASH, 4s);
events.ScheduleEvent(EVENT_LIGHTSCAR_FLARE, 8s);
events.ScheduleEvent(EVENT_ECLIPSING_STEP, 14s);
events.ScheduleEvent(EVENT_DEVOUR_THE_UNWORTHY, 22s);
events.ScheduleEvent(EVENT_NULL_VANGUARD, 30s);
}
void JustDied(Unit* killer) override
{
BossAI::JustDied(killer);
Talk(7); // All this... for that wretched Xal'atath...
instance->SendEncounterUnit(ENCOUNTER_FRAME_DISENGAGE, me);
}
void JustReachedHome() override
{
BossAI::JustReachedHome();
instance->SendEncounterUnit(ENCOUNTER_FRAME_DISENGAGE, me);
}
void JustSummoned(Creature* summon) override
{
BossAI::JustSummoned(summon);
}
void ExecuteEvent(uint32 eventId) override
{
switch (eventId)
{
case EVENT_UMBRAL_LASH:
if (Unit* target = me->GetVictim())
DoCast(target, urand(0, 1) ? SPELL_UMBRAL_LASH_A : SPELL_UMBRAL_LASH_B);
events.Repeat(6s, 10s);
break;
case EVENT_LIGHTSCAR_FLARE:
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 60.0f, true))
DoCast(target, SPELL_LIGHTSCAR_FLARE_A);
events.Repeat(8s, 11s);
break;
case EVENT_ECLIPSING_STEP:
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 60.0f, true))
{
me->NearTeleportTo(target->GetPosition(), 0.0f);
DoCast(target, SPELL_ECLIPSING_STEP_D);
}
events.Repeat(20s, 28s);
break;
case EVENT_DEVOUR_THE_UNWORTHY:
Talk(1); // There will be no end to your suffering.
DoCastSelf(SPELL_DEVOUR_THE_UNWORTHY_A, true);
me->SummonCreature(NPC_FRACTURED_IMAGE, me->GetPosition(), TEMPSUMMON_CORPSE_DESPAWN);
me->SummonCreature(NPC_FRACTURED_IMAGE, me->GetPosition(), TEMPSUMMON_CORPSE_DESPAWN);
events.Repeat(30s, 40s);
break;
case EVENT_NULL_VANGUARD:
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 60.0f, true))
DoCast(target, SPELL_NULL_VANGUARD);
events.Repeat(32s, 40s);
break;
case EVENT_VOID_GASH:
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 60.0f, true))
DoCast(target, SPELL_VOID_GASH);
events.Repeat(12s, 16s);
break;
case EVENT_LIGHTSCARRED:
if (Unit* target = me->GetVictim())
DoCast(target, SPELL_LIGHTSCARRED);
events.Repeat(24s);
break;
case EVENT_BROUGHT_TO_LIGHT:
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 60.0f, true))
DoCast(target, SPELL_BROUGHT_TO_LIGHT);
events.Repeat(20s, 26s);
break;
default:
break;
}
}
void DamageTaken(Unit* /*attacker*/, uint32& /*damage*/, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo*/) override
{
if (!_phaseTwo && me->HealthBelowPct(45))
{
_phaseTwo = true;
Talk(5); // The Light still burns! Curse that damn nathrezim!
events.ScheduleEvent(EVENT_VOID_GASH, 4s);
events.ScheduleEvent(EVENT_LIGHTSCARRED, 8s);
events.ScheduleEvent(EVENT_BROUGHT_TO_LIGHT, 12s);
}
}
void UpdateAI(uint32 diff) override
{
if (!UpdateVictim())
return;
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
events.Update(diff);
while (uint32 eventId = events.ExecuteEvent())
ExecuteEvent(eventId);
}
private:
bool _phaseTwo;
};
void AddSC_boss_nysarra()
{
RegisterNexusPointXenasCreatureAI(boss_nysarra);
}
@@ -0,0 +1,60 @@
/*
* This file is part of the TrinityCore Project. See AUTHORS file for Copyright information
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation; either version 2 of the License, or (at your
* option) any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "InstanceScript.h"
#include "ScriptMgr.h"
#include "nexuspointxenas.h"
static constexpr DungeonEncounterData const encounters[] =
{
{ DATA_KASRETH, {{ 3328 }} },
{ DATA_NYSARRA, {{ 3332 }} },
{ DATA_LOTHRAXION,{{ 3333 }} }
};
static constexpr DoorData doorData[] =
{
{ GO_DOOR_BOSS1, DATA_KASRETH, EncounterDoorBehavior::OpenWhenDone },
{ GO_DOOR_BOSS2, DATA_NYSARRA, EncounterDoorBehavior::OpenWhenDone },
{ GO_VOID_BARRIER_A, DATA_NYSARRA, EncounterDoorBehavior::OpenWhenDone },
{ GO_VOID_BARRIER_B, DATA_NYSARRA, EncounterDoorBehavior::OpenWhenDone },
};
static constexpr ObjectData gameObjectData[] =
{
{ GO_ARCANE_BARRIER, DATA_ARCANE_BARRIER },
{ GO_CORE_BRIDGE, DATA_CORE_BRIDGE },
{ GO_CORE_ACCESS_CONSOLE, DATA_CORE_ACCESS_CONSOLE },
{ GO_MANACITE_CONDUIT, DATA_CORESPARKS_CONDUIT },
};
struct instance_nexuspointxenas : public InstanceScript
{
instance_nexuspointxenas(InstanceMap* map) : InstanceScript(map)
{
SetHeaders(DataHeader);
SetBossNumber(EncounterCount);
LoadDoorData(doorData);
LoadDungeonEncounterData(encounters);
LoadObjectData({}, gameObjectData);
}
};
void AddSC_instance_nexuspointxenas()
{
RegisterInstanceMapScript(instance_nexuspointxenas, 2915);
}
@@ -0,0 +1,269 @@
/*
* This file is part of the TrinityCore Project. See AUTHORS file for Copyright information
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation; either version 2 of the License, or (at your
* option) any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef DEF_NEXUSPOINTXENAS_H_
#define DEF_NEXUSPOINTXENAS_H_
#include "CreatureAIImpl.h"
#define NexusPointXenasScriptName "instance_nexuspointxenas"
#define DataHeader "NexusPointXenas"
uint32 const EncounterCount = 3;
enum NexusPointXenasDataTypes
{
// Encounter states (indices 0..EncounterCount-1 are boss states via SetBossNumber)
DATA_KASRETH = 0,
DATA_NYSARRA = 1,
DATA_LOTHRAXION = 2,
// 64-bit object data (used with GetGameObject) - must stay after the boss indices
DATA_ARCANE_BARRIER,
DATA_CORE_BRIDGE,
DATA_CORE_ACCESS_CONSOLE,
DATA_CORESPARKS_CONDUIT,
};
enum NexusPointXenasCreatureIds
{
// Bosses
NPC_CHIEF_COREWRIGHT_KASRETH = 241539,
NPC_COREWARDEN_NYSARRA = 241542,
NPC_LOTHRAXION = 241546,
// Adds / summons
NPC_LINGERING_IMAGE = 241642,
NPC_FRACTURED_IMAGE = 251568,
NPC_CORESPARK_CONDUIT = 252852,
NPC_CORESPARK_PYLON = 254485,
// Trash
NPC_CIRCUIT_SEER = 248373,
NPC_MANACITE_WORKER = 249096,
NPC_UMBRA_WEAVER = 248708,
NPC_FLUX_ENGINEER = 241647,
NPC_CORESPARKS = 252938,
NPC_VOID_PORTAL = 258604,
};
enum NexusPointXenasGameObjectIds
{
GO_DOOR_BOSS1 = 625725, // Kasreth
GO_DOOR_BOSS2 = 625714, // Nysarra
GO_VOID_BARRIER_A = 618395,
GO_VOID_BARRIER_B = 618394,
GO_ARCANE_BARRIER = 614553,
GO_CORE_BRIDGE = 587889,
GO_CORE_ACCESS_CONSOLE = 587890,
GO_MANACITE_CONDUIT = 587892,
GO_VANTACITE_CONDUIT = 587891,
GO_CORESPARK_CONDUIT_1 = 613865,
GO_CORESPARK_CONDUIT_2 = 613866,
GO_CORESPARK_CONDUIT_3 = 613867,
GO_CORESPARK_CONDUIT_4 = 613868,
GO_CORESPARK_CONDUIT_5 = 613869,
GO_CORESPARK_CONDUIT_6 = 613870,
GO_CORESPARK_CONDUIT_7 = 613871,
GO_CORESPARK_CONDUIT_8 = 613872,
GO_CORESPARK_CONDUIT_9 = 613873,
GO_CORESPARK_CONDUIT_10 = 613874,
};
// ===== Kasreth spells =====
enum KasrethSpells
{
SPELL_ARCANE_ZAP_A = 1250553,
SPELL_ARCANE_ZAP_B = 1250555,
SPELL_LEYLINE_ARRAY_A = 1251183,
SPELL_LEYLINE_ARRAY_B = 1251626,
SPELL_LEYLINE_ARRAY_C = 1251832,
SPELL_REFLUX_CHARGE_A = 1251767,
SPELL_REFLUX_CHARGE_B = 1251772,
SPELL_REFLUX_CHARGE_C = 1251785,
SPELL_REFLUX_CHARGE_D = 1257836,
SPELL_REFLUX_CHARGE_E = 1264681,
SPELL_REFLUX_CHARGE_F = 1282915,
SPELL_CORESPARK_DETONATION_A = 1257509,
SPELL_CORESPARK_DETONATION_B = 1257512,
SPELL_CORESPARK_DETONATION_C = 1257521,
SPELL_CORESPARK_DETONATION_D = 1257524,
SPELL_CORESPARK_DETONATION_E = 1265894,
SPELL_FLUX_COLLAPSE_A = 1264040,
SPELL_FLUX_COLLAPSE_B = 1264048,
SPELL_ARCANE_SPILL = 1264042,
SPELL_SPARKBURN = 1276485,
SPELL_REFUELING_ORB = 1254577,
SPELL_VOLATILE_POWER = 1270343,
SPELL_SUPPRESSION_FIELD = 1269286,
SPELL_BERSERK = 1269349,
};
// ===== Nysarra spells =====
enum NysarraSpells
{
SPELL_UMBRAL_LASH_A = 1247937,
SPELL_UMBRAL_LASH_B = 1248006,
SPELL_UMBRAL_LASH_C = 1248007,
SPELL_UMBRAL_LASH_D = 1271388,
SPELL_LIGHTSCAR_FLARE_A = 1247975,
SPELL_LIGHTSCAR_FLARE_B = 1247976,
SPELL_LIGHTSCAR_FLARE_C = 1247984,
SPELL_LIGHTSCAR_FLARE_D = 1261558,
SPELL_LIGHTSCAR_FLARE_E = 1264439,
SPELL_LIGHTSCAR_FLARE_F = 1271433,
SPELL_ECLIPSING_STEP_A = 1249014,
SPELL_ECLIPSING_STEP_B = 1249020,
SPELL_ECLIPSING_STEP_C = 1249027,
SPELL_ECLIPSING_STEP_D = 1249043,
SPELL_ECLIPSING_STEP_E = 1252875,
SPELL_ECLIPSING_STEP_F = 1261560,
SPELL_NULL_VANGUARD = 1252703,
SPELL_VOID_GASH = 1252828,
SPELL_LIGHTSCARRED = 1253965,
SPELL_DEVOUR_THE_UNWORTHY_A = 1259359,
SPELL_DEVOUR_THE_UNWORTHY_B = 1259360,
SPELL_DEVOUR_THE_UNWORTHY_C = 1259361,
SPELL_BROUGHT_TO_LIGHT = 1265595,
SPELL_VOID_RITUAL = 1261650,
};
// ===== Lothraxion spells =====
enum LothraxionSpells
{
SPELL_DIVINE_GUILE_A = 1257567,
SPELL_DIVINE_GUILE_B = 1257595,
SPELL_DIVINE_GUILE_C = 1257613,
SPELL_DIVINE_GUILE_D = 1257687,
SPELL_DIVINE_GUILE_E = 1278137,
SPELL_DIVINE_GUILE_F = 1278138,
SPELL_SEARING_REND_A = 1253950,
SPELL_SEARING_REND_B = 1253953,
SPELL_SEARING_REND_C = 1255208,
SPELL_SEARING_REND_D = 1255335,
SPELL_BRILLIANT_DISPERSION_A = 1253848,
SPELL_BRILLIANT_DISPERSION_B = 1253855,
SPELL_BRILLIANT_DISPERSION_C = 1255503,
SPELL_BRILLIANT_DISPERSION_D = 1282790,
};
// ===== Lingering Image attacks =====
enum LingeringImageSpells
{
SPELL_LIGHT_BARRAGE = 1271229,
SPELL_SEARING_REND_LINGER_A = 1257701,
SPELL_SEARING_REND_LINGER_B = 1257721,
SPELL_SEARING_REND_LINGER_C = 1257722,
SPELL_SEARING_REND_LINGER_D = 1257736,
SPELL_SEARING_REND_LINGER_E = 1257745,
SPELL_RADIANT_SCAR_A = 1257746,
SPELL_RADIANT_SCAR_B = 1277597,
};
// ===== Fractured Image (Nysarra player mirror) attacks =====
enum FracturedImageSpells
{
SPELL_MIRRORED_REND = 1269218,
SPELL_RADIANT_SCAR_IMAGE = 1255310,
SPELL_FLICKER = 1255530,
SPELL_ZENITH = 1249625,
SPELL_SPECTRAL_SIGHT = 1268900,
};
// ===== Trash spells =====
enum TrashSpells
{
SPELL_ERRATIC_ZAP_A = 1257105,
SPELL_ERRATIC_ZAP_B = 1257099,
SPELL_ERRATIC_SURGE = 1257103,
SPELL_ARCING_MANA_A = 1249801,
SPELL_ARCING_MANA_B = 1249803,
SPELL_ARCING_MANA_C = 1249806,
SPELL_POWER_FLUX_A = 1262719,
SPELL_POWER_FLUX_B = 1262720,
SPELL_UMBRA_BOLT_A = 1271094,
SPELL_UMBRA_BOLT_B = 1277360,
SPELL_SUPPRESSION_FIELD_CAST = 1269286,
SPELL_SUPPRESSION_FIELD_HEAVY = 1282950,
SPELL_SUPPRESSION_FIELD_WEAK = 1269283,
SPELL_MANA_BATTERY = 1257124,
SPELL_REPAIRING = 1271768,
SPELL_CORESPARKS_DETONATION = 1257526,
SPELL_CORESPARKS_SURGE = 1257079,
SPELL_ENERGY_INTAKE = 1279966,
SPELL_LEYLINE_ARRAY_WORKER = 1265841,
};
// ===== Corespark Pylon (Kasreth add) =====
enum CoresparkPylonSpells
{
SPELL_FLUX_COLLAPSE_PYLON = 1262084,
SPELL_ARCANE_SPILL_PYLON = 1262630,
};
enum NexusPointXenasEvents
{
EVENT_ARCANE_ZAP = 1,
EVENT_LEYLINE_ARRAY,
EVENT_REFLUX_CHARGE,
EVENT_CORESPARK_DETONATION,
EVENT_FLUX_COLLAPSE,
EVENT_REFUELING_ORB,
EVENT_ARCANE_SPILL,
EVENT_SUPPRESSION_FIELD,
EVENT_SPARKBURN,
EVENT_VOLATILE_POWER,
EVENT_BERSERK,
EVENT_UMBRAL_LASH = 100,
EVENT_LIGHTSCAR_FLARE,
EVENT_ECLIPSING_STEP,
EVENT_VOID_GASH,
EVENT_NULL_VANGUARD,
EVENT_DEVOUR_THE_UNWORTHY,
EVENT_BROUGHT_TO_LIGHT,
EVENT_LIGHTSCARRED,
EVENT_DIVINE_GUILE = 200,
EVENT_SEARING_REND,
EVENT_BRILLIANT_DISPERSION,
EVENT_RADIANT_SCAR,
EVENT_LIGHT_BARRAGE,
EVENT_LINGER_SEARING_REND = 300,
EVENT_LINGER_RADIANT_SCAR,
EVENT_LIGHT_BARRAGE_IMAGE = 400,
EVENT_IMAGE_FLICKER,
EVENT_IMAGE_ZENITH,
EVENT_IMAGE_MIRRORED_REND,
EVENT_IMAGE_RADIANT_SCAR,
EVENT_IMAGE_SPECTRAL_SIGHT,
EVENT_PYLON_FLUX_COLLAPSE = 500,
EVENT_PYLON_ARCANE_SPILL,
};
template <class AI, class T>
inline AI* GetNexusPointXenasAI(T* obj)
{
return GetInstanceAI<AI>(obj, NexusPointXenasScriptName);
}
#define RegisterNexusPointXenasCreatureAI(ai_name) RegisterCreatureAIWithFactory(ai_name, GetNexusPointXenasAI)
#endif // DEF_NEXUSPOINTXENAS_H_
@@ -0,0 +1,412 @@
/*
* This file is part of the TrinityCore Project. See AUTHORS file for Copyright information
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation; either version 2 of the License, or (at your
* option) any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "nexuspointxenas.h"
enum TrashEvents
{
EVENT_ERRATIC_ZAP = 1,
EVENT_ARCING_MANA,
EVENT_POWER_FLUX,
EVENT_UMBRA_BOLT,
EVENT_CORESPARK_SURGE,
EVENT_MANA_BATTERY,
EVENT_ERRATIC_SURGE,
EVENT_ENERGY_INTAKE,
EVENT_LEYLINE_ARRAY_WORKER,
EVENT_FLUX_SUPPRESSION,
EVENT_FLUX_REPAIR,
};
// 248373 - Circuit Seer
struct npc_circuit_seer : public ScriptedAI
{
npc_circuit_seer(Creature* creature) : ScriptedAI(creature) { }
void JustEngagedWith(Unit* who) override
{
ScriptedAI::JustEngagedWith(who);
_events.ScheduleEvent(EVENT_ERRATIC_ZAP, 3s);
_events.ScheduleEvent(EVENT_ARCING_MANA, 8s);
_events.ScheduleEvent(EVENT_ERRATIC_SURGE, 12s);
_events.ScheduleEvent(EVENT_POWER_FLUX, 16s);
}
void ExecuteEvent(uint32 eventId)
{
switch (eventId)
{
case EVENT_ERRATIC_ZAP:
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 40.0f, true))
DoCast(target, urand(0, 1) ? SPELL_ERRATIC_ZAP_A : SPELL_ERRATIC_ZAP_B);
_events.Repeat(6s, 9s);
break;
case EVENT_ARCING_MANA:
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 40.0f, true))
DoCast(target, SPELL_ARCING_MANA_A);
_events.Repeat(12s, 16s);
break;
case EVENT_ERRATIC_SURGE:
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 40.0f, true))
DoCast(target, SPELL_ERRATIC_SURGE);
_events.Repeat(16s, 22s);
break;
case EVENT_POWER_FLUX:
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 40.0f, true))
DoCast(target, SPELL_POWER_FLUX_B);
_events.Repeat(20s, 26s);
break;
default:
break;
}
}
void UpdateAI(uint32 diff) override
{
if (!UpdateVictim())
return;
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
_events.Update(diff);
while (uint32 eventId = _events.ExecuteEvent())
ExecuteEvent(eventId);
}
private:
EventMap _events;
};
// 248708 - Umbra Weaver
struct npc_umbra_weaver : public ScriptedAI
{
npc_umbra_weaver(Creature* creature) : ScriptedAI(creature) { }
void JustEngagedWith(Unit* who) override
{
ScriptedAI::JustEngagedWith(who);
_events.ScheduleEvent(EVENT_UMBRA_BOLT, 3s);
}
void ExecuteEvent(uint32 eventId)
{
switch (eventId)
{
case EVENT_UMBRA_BOLT:
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 40.0f, true))
DoCast(target, urand(0, 1) ? SPELL_UMBRA_BOLT_A : SPELL_UMBRA_BOLT_B);
_events.Repeat(5s, 8s);
break;
default:
break;
}
}
void UpdateAI(uint32 diff) override
{
if (!UpdateVictim())
return;
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
_events.Update(diff);
while (uint32 eventId = _events.ExecuteEvent())
ExecuteEvent(eventId);
}
private:
EventMap _events;
};
// 249096 - Manacite Worker
struct npc_manacite_worker : public ScriptedAI
{
npc_manacite_worker(Creature* creature) : ScriptedAI(creature) { }
void JustEngagedWith(Unit* who) override
{
ScriptedAI::JustEngagedWith(who);
_events.ScheduleEvent(EVENT_ARCING_MANA, 4s);
_events.ScheduleEvent(EVENT_ENERGY_INTAKE, 10s);
_events.ScheduleEvent(EVENT_LEYLINE_ARRAY_WORKER, 16s);
_events.ScheduleEvent(EVENT_MANA_BATTERY, 22s);
}
void ExecuteEvent(uint32 eventId)
{
switch (eventId)
{
case EVENT_ARCING_MANA:
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 40.0f, true))
DoCast(target, SPELL_ARCING_MANA_B);
_events.Repeat(10s, 14s);
break;
case EVENT_ENERGY_INTAKE:
DoCastSelf(SPELL_ENERGY_INTAKE);
_events.Repeat(13s, 17s);
break;
case EVENT_LEYLINE_ARRAY_WORKER:
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 40.0f, true))
DoCast(target, SPELL_LEYLINE_ARRAY_WORKER);
_events.Repeat(18s, 24s);
break;
case EVENT_MANA_BATTERY:
DoCastSelf(SPELL_MANA_BATTERY);
_events.Repeat(26s, 32s);
break;
default:
break;
}
}
void UpdateAI(uint32 diff) override
{
if (!UpdateVictim())
return;
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
_events.Update(diff);
while (uint32 eventId = _events.ExecuteEvent())
ExecuteEvent(eventId);
}
private:
EventMap _events;
};
// 241647 - Flux Engineer (suppression + repair trash)
struct npc_flux_engineer : public ScriptedAI
{
npc_flux_engineer(Creature* creature) : ScriptedAI(creature) { }
void JustEngagedWith(Unit* who) override
{
ScriptedAI::JustEngagedWith(who);
_events.ScheduleEvent(EVENT_FLUX_SUPPRESSION, 3s);
_events.ScheduleEvent(EVENT_MANA_BATTERY, 10s);
_events.ScheduleEvent(EVENT_FLUX_REPAIR, 16s);
}
void ExecuteEvent(uint32 eventId)
{
switch (eventId)
{
case EVENT_FLUX_SUPPRESSION:
DoCastSelf(urand(0, 2) ? SPELL_SUPPRESSION_FIELD_HEAVY : (urand(0, 1) ? SPELL_SUPPRESSION_FIELD_CAST : SPELL_SUPPRESSION_FIELD_WEAK));
_events.Repeat(8s, 12s);
break;
case EVENT_MANA_BATTERY:
DoCastSelf(SPELL_MANA_BATTERY);
_events.Repeat(16s, 22s);
break;
case EVENT_FLUX_REPAIR:
if (me->HealthBelowPct(60))
DoCastSelf(SPELL_REPAIRING);
_events.Repeat(20s, 26s);
break;
default:
break;
}
}
void UpdateAI(uint32 diff) override
{
if (!UpdateVictim())
return;
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
_events.Update(diff);
while (uint32 eventId = _events.ExecuteEvent())
ExecuteEvent(eventId);
}
private:
EventMap _events;
};
// 254485 - Corespark Pylon (Kasreth add)
struct npc_corespark_pylon : public ScriptedAI
{
npc_corespark_pylon(Creature* creature) : ScriptedAI(creature) { }
void JustEngagedWith(Unit* who) override
{
ScriptedAI::JustEngagedWith(who);
_events.ScheduleEvent(EVENT_PYLON_FLUX_COLLAPSE, 3s);
_events.ScheduleEvent(EVENT_PYLON_ARCANE_SPILL, 10s);
}
void ExecuteEvent(uint32 eventId)
{
switch (eventId)
{
case EVENT_PYLON_FLUX_COLLAPSE:
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 40.0f, true))
DoCast(target, SPELL_FLUX_COLLAPSE_PYLON);
_events.Repeat(6s, 9s);
break;
case EVENT_PYLON_ARCANE_SPILL:
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 40.0f, true))
DoCast(target, SPELL_ARCANE_SPILL_PYLON);
_events.Repeat(12s, 16s);
break;
default:
break;
}
}
void UpdateAI(uint32 diff) override
{
if (!UpdateVictim())
return;
_events.Update(diff);
while (uint32 eventId = _events.ExecuteEvent())
ExecuteEvent(eventId);
}
private:
EventMap _events;
};
// 251568 - Fractured Image (Nysarra player mirror clone)
struct npc_fractured_image : public ScriptedAI
{
npc_fractured_image(Creature* creature) : ScriptedAI(creature) { }
void IsSummonedBy(WorldObject* /*summoner*/) override
{
DoZoneInCombat();
_events.ScheduleEvent(EVENT_IMAGE_MIRRORED_REND, 3s);
_events.ScheduleEvent(EVENT_IMAGE_RADIANT_SCAR, 8s);
_events.ScheduleEvent(EVENT_IMAGE_FLICKER, 12s);
_events.ScheduleEvent(EVENT_IMAGE_SPECTRAL_SIGHT, 15s);
_events.ScheduleEvent(EVENT_IMAGE_ZENITH, 20s);
}
void ExecuteEvent(uint32 eventId)
{
switch (eventId)
{
case EVENT_IMAGE_MIRRORED_REND:
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 50.0f, true))
DoCast(target, SPELL_MIRRORED_REND);
_events.Repeat(10s, 14s);
break;
case EVENT_IMAGE_RADIANT_SCAR:
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 50.0f, true))
DoCast(target, SPELL_RADIANT_SCAR_IMAGE);
_events.Repeat(6s, 9s);
break;
case EVENT_IMAGE_SPECTRAL_SIGHT:
DoCastSelf(SPELL_SPECTRAL_SIGHT);
_events.Repeat(30s, 40s);
break;
case EVENT_IMAGE_FLICKER:
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 50.0f, true))
{
me->NearTeleportTo(target->GetPosition(), 0.0f);
DoCast(target, SPELL_FLICKER);
}
_events.Repeat(14s, 18s);
break;
case EVENT_IMAGE_ZENITH:
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 50.0f, true))
DoCast(target, SPELL_ZENITH);
_events.Repeat(22s, 28s);
break;
default:
break;
}
}
void UpdateAI(uint32 diff) override
{
if (!UpdateVictim())
return;
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
_events.Update(diff);
while (uint32 eventId = _events.ExecuteEvent())
ExecuteEvent(eventId);
}
private:
EventMap _events;
};
// 252938 - [DNT] Orb Stalker (Coresparks wandering detonation orb)
struct npc_coresparks : public ScriptedAI
{
npc_coresparks(Creature* creature) : ScriptedAI(creature) { }
void IsSummonedBy(WorldObject* /*summoner*/) override
{
DoZoneInCombat();
}
void UpdateAI(uint32 /*diff*/) override
{
if (!UpdateVictim())
return;
Unit* target = me->GetVictim();
if (!target)
target = SelectTarget(SelectTargetMethod::Random, 0, 100.0f, true);
if (!target)
return;
// Detonate when the orb reaches its target.
if (me->GetDistance(target) <= 2.5f)
{
DoCastSelf(SPELL_CORESPARKS_DETONATION, true);
me->DespawnOrUnsummon(500ms);
return;
}
// Otherwise drift toward the nearest player to chase them down.
me->GetMotionMaster()->MoveChase(target);
}
};
void AddSC_nexuspointxenas_trash()
{
RegisterNexusPointXenasCreatureAI(npc_circuit_seer);
RegisterNexusPointXenasCreatureAI(npc_umbra_weaver);
RegisterNexusPointXenasCreatureAI(npc_manacite_worker);
RegisterNexusPointXenasCreatureAI(npc_flux_engineer);
RegisterNexusPointXenasCreatureAI(npc_corespark_pylon);
RegisterNexusPointXenasCreatureAI(npc_coresparks);
RegisterNexusPointXenasCreatureAI(npc_fractured_image);
}
@@ -51,6 +51,11 @@ void AddSC_boss_lightblossom_trinity();
void AddSC_boss_ikuzz();
void AddSC_boss_lightwarden_ruia();
void AddSC_boss_ziekket();
void AddSC_instance_nexuspointxenas();
void AddSC_boss_kasreth();
void AddSC_boss_nysarra();
void AddSC_boss_lothraxion();
void AddSC_nexuspointxenas_trash();
void AddMidnightScripts()
{
@@ -85,4 +90,9 @@ void AddMidnightScripts()
AddSC_boss_ikuzz();
AddSC_boss_lightwarden_ruia();
AddSC_boss_ziekket();
AddSC_instance_nexuspointxenas();
AddSC_boss_kasreth();
AddSC_boss_nysarra();
AddSC_boss_lothraxion();
AddSC_nexuspointxenas_trash();
}
@@ -2868,6 +2868,87 @@ Battleground.StoreStatistics.Enable = 0
Battleground.InvitationType = 0
#
# BattlegroundBlitz.TanksPerTeam
# Description: Tanks required per team before a Battleground Blitz match pops.
# Together with BattlegroundBlitz.HealersPerTeam this fully specifies a
# team, because the remaining slots are damagers. Roles are resolved per
# player from the character's specialization (ChrSpecialization.db2 Role),
# narrowed by the role mask the queuer sent.
# 0 together with HealersPerTeam 0 disables role balancing entirely.
# Ignored while arena/bg testing mode is enabled.
# Default: 0 - the composition the client was actually told in the 12.0.7 rated
# Blitz capture was 0 tanks / 4 healers / 12 damagers over 8v8.
BattlegroundBlitz.TanksPerTeam = 0
#
# BattlegroundBlitz.HealersPerTeam
# Description: Healers required per team before a Battleground Blitz match pops.
# Blitz is 8v8 (BattlemasterList 1101). The client tells the server which
# role a player queued as, but nothing in the client states how retail
# balances the two teams, so this quota is configuration rather than a
# value derived from the client.
# 0 disables role balancing entirely (the first 16 in the queue play).
# Ignored while arena/bg testing mode is enabled.
# Default: 2
BattlegroundBlitz.HealersPerTeam = 2
#
# Brawl.Enabled
# Description: Advertise a PvP Brawl to clients and accept CMSG_BATTLEMASTER_JOIN_BRAWL.
# Which brawl is running is necessarily a server decision: PvpBrawl.db2 has no
# holiday, date or flag column, and the client learns the running brawl only
# from SMSG_REQUEST_SCHEDULED_PVP_INFO_RESPONSE - i.e. from us. With this off
# the server reports "no brawl scheduled" and the client's Brawl button stays
# unqueueable, which is also what happens automatically if the configured brawl
# below fails its validity checks.
# Default: 1 - (Enabled)
# 0 - (Disabled)
Brawl.Enabled = 1
#
# Brawl.PvpBrawlID
# Brawl.BattlemasterListID
# Description: The brawl to run. The two ids must be the ID and BattlemasterListID of the same
# PvpBrawl.db2 row: the first is what the client is told (it names and describes
# the brawl from that row), the second is what the server actually queues.
#
# The brawl is only advertised if its BattlemasterList exists, carries the IsBrawl
# flag, is not disabled, and has a battleground_template whose maps resolve - so a
# mismatched or unimplemented pair disables the Brawl button rather than producing
# a queue that never pops.
#
# Only 879 ships with a template (see the Deep Six world migration). Every other
# brawl below needs its own battleground_template row, and most of them point at
# maps this core has no implementation for.
#
# PvpBrawl.db2 rows that have a BattlemasterList (ID / BattlemasterListID / name):
# 2 / 789 Brawl: Southshore vs. Tarren Mill 3 / 858 Brawl: Temple of Hotmogu
# 4 / 859 Brawl: Gravity Lapse 5 / 847 Brawl: Arathi Blizzard
# 6 / 860 Brawl: Deepwind Dunk 7 / 862 Brawl: Eye of the Horn
# 8 / 866 Brawl: Packed House 9 / 861 Brawl: Warsong Scramble
# 10 / 853 Brawl: Shado-Pan Showdown 11 / 879 Brawl: Deep Six
# 12 / 885 Deep Six - The Battle for Gilneas 13 / 886 Deep Six - Warsong Gulch
# 14 / 883 Deep Six - Silvershard Mines 15 / 884 Deep Six - Temple of Kotmogu
# 16 / 882 Deep Six - Eye of the Storm 17 / 887 Brawl: Cooking: Impossible
# 19 / 894 Seething Shore 120 / 1021 Brawl: Classic Ashran
# 122 / 1030 Wintergrasp 124 / 1033 Korrak's Revenge
# 125 / 1039 Deepwind Gorge 126 / 1033 Brawl: Korrak's Revenge
# 130 / 1065 Solo Shuffle 133 / 1075 Brawl: Deepwind Detonation
# 136 / 1101 Brawl: Battleground Blitz 145 / 1111 Brawl: The Heat of Battle
# 148 / 1110 Deephaul Ravine 151 / 1144 Training Grounds
#
# The single-map Deep Six rows (12-16) and the per-map Blitz rows are deliberately
# omitted from the ones worth using: a single-map brawl template would register
# itself over that map's own template and hijack normal queues for it.
# Default: 11 (Brawl: Deep Six)
# 879 (BattlemasterList "Deep Six")
Brawl.PvpBrawlID = 11
Brawl.BattlemasterListID = 879
#
# Battleground.PrematureFinishTimer
# Description: Time (in milliseconds) before battleground will end prematurely if there are