diff options
170 files changed, 9147 insertions, 1602 deletions
diff --git a/.gitignore b/.gitignore index 02609aebbe7..5bceef179b9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ -build/ +build*/ .directory .mailmap *.orig diff --git a/sql/updates/world/2011_10_29_00_world_version.sql b/sql/old/3.3.5a/2011_10_29_00_world_version.sql index 17a94041a33..17a94041a33 100644 --- a/sql/updates/world/2011_10_29_00_world_version.sql +++ b/sql/old/3.3.5a/2011_10_29_00_world_version.sql diff --git a/sql/updates/world/2011_10_29_01_world_gameobject_template.sql b/sql/old/3.3.5a/2011_10_29_01_world_gameobject_template.sql index 744a549eebd..744a549eebd 100644 --- a/sql/updates/world/2011_10_29_01_world_gameobject_template.sql +++ b/sql/old/3.3.5a/2011_10_29_01_world_gameobject_template.sql diff --git a/sql/updates/world/2011_10_29_02_world_gameobject_template.sql b/sql/old/3.3.5a/2011_10_29_02_world_gameobject_template.sql index 9134a66ee2b..9134a66ee2b 100644 --- a/sql/updates/world/2011_10_29_02_world_gameobject_template.sql +++ b/sql/old/3.3.5a/2011_10_29_02_world_gameobject_template.sql diff --git a/sql/updates/world/2011_10_29_03_world_gameobject_template.sql b/sql/old/3.3.5a/2011_10_29_03_world_gameobject_template.sql index 6b73da94441..6b73da94441 100644 --- a/sql/updates/world/2011_10_29_03_world_gameobject_template.sql +++ b/sql/old/3.3.5a/2011_10_29_03_world_gameobject_template.sql diff --git a/sql/updates/world/2011_10_29_04_world_linked_respawn.sql b/sql/old/3.3.5a/2011_10_29_04_world_linked_respawn.sql index 94d2c0d730d..94d2c0d730d 100644 --- a/sql/updates/world/2011_10_29_04_world_linked_respawn.sql +++ b/sql/old/3.3.5a/2011_10_29_04_world_linked_respawn.sql diff --git a/sql/updates/world/2011_10_29_05_world_sai.sql b/sql/old/3.3.5a/2011_10_29_05_world_sai.sql index fc17ca8a1a7..fc17ca8a1a7 100644 --- a/sql/updates/world/2011_10_29_05_world_sai.sql +++ b/sql/old/3.3.5a/2011_10_29_05_world_sai.sql diff --git a/sql/updates/world/2011_10_29_06_world_misc.sql b/sql/old/3.3.5a/2011_10_29_06_world_misc.sql index 7706777b32f..7706777b32f 100644 --- a/sql/updates/world/2011_10_29_06_world_misc.sql +++ b/sql/old/3.3.5a/2011_10_29_06_world_misc.sql diff --git a/sql/updates/world/2011_10_29_06_world_sai.sql b/sql/old/3.3.5a/2011_10_29_06_world_sai.sql index a3d1626a8f9..a3d1626a8f9 100644 --- a/sql/updates/world/2011_10_29_06_world_sai.sql +++ b/sql/old/3.3.5a/2011_10_29_06_world_sai.sql diff --git a/sql/updates/world/2011_10_29_07_world_gameobjects.sql b/sql/old/3.3.5a/2011_10_29_07_world_gameobjects.sql index 541cadd71a0..541cadd71a0 100644 --- a/sql/updates/world/2011_10_29_07_world_gameobjects.sql +++ b/sql/old/3.3.5a/2011_10_29_07_world_gameobjects.sql diff --git a/sql/updates/world/2011_10_30_00_world_misc.sql b/sql/old/3.3.5a/2011_10_30_00_world_misc.sql index 912f13f364c..912f13f364c 100644 --- a/sql/updates/world/2011_10_30_00_world_misc.sql +++ b/sql/old/3.3.5a/2011_10_30_00_world_misc.sql diff --git a/sql/updates/world/2011_10_30_01_world_misc.sql b/sql/old/3.3.5a/2011_10_30_01_world_misc.sql index 9c42045c821..9c42045c821 100644 --- a/sql/updates/world/2011_10_30_01_world_misc.sql +++ b/sql/old/3.3.5a/2011_10_30_01_world_misc.sql diff --git a/sql/updates/world/2011_10_30_02_world_creature_template.sql b/sql/old/3.3.5a/2011_10_30_02_world_creature_template.sql index 50fc50e9c14..50fc50e9c14 100644 --- a/sql/updates/world/2011_10_30_02_world_creature_template.sql +++ b/sql/old/3.3.5a/2011_10_30_02_world_creature_template.sql diff --git a/sql/updates/world/2011_10_30_02_world_player_factionchange_achievement.sql b/sql/old/3.3.5a/2011_10_30_02_world_player_factionchange_achievement.sql index 5f7c3bf46f6..5f7c3bf46f6 100644 --- a/sql/updates/world/2011_10_30_02_world_player_factionchange_achievement.sql +++ b/sql/old/3.3.5a/2011_10_30_02_world_player_factionchange_achievement.sql diff --git a/sql/updates/world/2011_11_01_00_world_sai.sql b/sql/old/3.3.5a/2011_11_01_00_world_sai.sql index f4e12082ea9..f4e12082ea9 100644 --- a/sql/updates/world/2011_11_01_00_world_sai.sql +++ b/sql/old/3.3.5a/2011_11_01_00_world_sai.sql diff --git a/sql/updates/world/2011_11_07_00_world_player_factionchange_items.sql b/sql/old/3.3.5a/2011_11_07_00_world_player_factionchange_items.sql index 54a36473fb3..54a36473fb3 100644 --- a/sql/updates/world/2011_11_07_00_world_player_factionchange_items.sql +++ b/sql/old/3.3.5a/2011_11_07_00_world_player_factionchange_items.sql diff --git a/sql/updates/world/2011_11_07_01_world_areatrigger_teleport.sql b/sql/old/3.3.5a/2011_11_07_01_world_areatrigger_teleport.sql index 2164d24ef5f..2164d24ef5f 100644 --- a/sql/updates/world/2011_11_07_01_world_areatrigger_teleport.sql +++ b/sql/old/3.3.5a/2011_11_07_01_world_areatrigger_teleport.sql diff --git a/sql/updates/world/2011_11_07_02_world_misc.sql b/sql/old/3.3.5a/2011_11_07_02_world_misc.sql index b40ad4dc7bf..b40ad4dc7bf 100644 --- a/sql/updates/world/2011_11_07_02_world_misc.sql +++ b/sql/old/3.3.5a/2011_11_07_02_world_misc.sql diff --git a/sql/updates/world/2011_11_07_03_world_misc.sql b/sql/old/3.3.5a/2011_11_07_03_world_misc.sql index 97b538237bd..97b538237bd 100644 --- a/sql/updates/world/2011_11_07_03_world_misc.sql +++ b/sql/old/3.3.5a/2011_11_07_03_world_misc.sql diff --git a/sql/old/3.3.5a/2011_11_11_00_world_spell_proc_event.sql b/sql/old/3.3.5a/2011_11_11_00_world_spell_proc_event.sql new file mode 100644 index 00000000000..997ede4a886 --- /dev/null +++ b/sql/old/3.3.5a/2011_11_11_00_world_spell_proc_event.sql @@ -0,0 +1 @@ +UPDATE `spell_proc_event` SET `procFlags`=0x10 WHERE `entry` IN (20335,20336,20337,53695,53696); diff --git a/sql/old/3.3.5a/2011_11_11_01_world_misc.sql b/sql/old/3.3.5a/2011_11_11_01_world_misc.sql new file mode 100644 index 00000000000..f48d3f8200e --- /dev/null +++ b/sql/old/3.3.5a/2011_11_11_01_world_misc.sql @@ -0,0 +1,14 @@ +-- Template updates for creature 30560 (The RP-GG) +UPDATE `creature_template` SET `npcflag`=`npcflag`|16777216 WHERE `entry`=30560; -- The RP-GG +-- Addon data for creature 30560 (The RP-GG) +DELETE FROM `creature_template_addon` WHERE `entry`=30560; +INSERT INTO `creature_template_addon` (`entry`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES +(30560,0,0,1,0, NULL); -- The RP-GG + +-- Fixing spawntime for creature 30560 (The RP-GG) +UPDATE `creature` SET `spawntimesecs`=60 WHERE `id`=30560; + +-- Spellclick data for creature 30560 (The RP-GG) +DELETE FROM `npc_spellclick_spells` WHERE `npc_entry`=30560; +INSERT INTO `npc_spellclick_spells` VALUES +(30560,57347,0,0,0,1,0,57348,1); diff --git a/sql/old/3.3.5a/2011_11_13_00_world_spell_proc_event.sql b/sql/old/3.3.5a/2011_11_13_00_world_spell_proc_event.sql new file mode 100644 index 00000000000..393282c229c --- /dev/null +++ b/sql/old/3.3.5a/2011_11_13_00_world_spell_proc_event.sql @@ -0,0 +1,4 @@ +-- Spell proc cooldown for Item - Hunter T9 4P Bonus +DELETE FROM `spell_proc_event` WHERE `entry`=67151; +INSERT INTO `spell_proc_event` (`entry`,`Cooldown`) VALUES +(67151,45); diff --git a/sql/old/3.3.5a/2011_11_13_01_world_sai.sql b/sql/old/3.3.5a/2011_11_13_01_world_sai.sql new file mode 100644 index 00000000000..1a4ed5b29d9 --- /dev/null +++ b/sql/old/3.3.5a/2011_11_13_01_world_sai.sql @@ -0,0 +1,38 @@ +-- Areatrigger Warsong Farms SAI +SET @AT_SLAUGHTERHOUSE := 4873; +SET @AT_GRAINERY := 4871; +SET @AT_TORP_FARM := 4872; +SET @NPC_SLAUGHTERHOUSE := 25672; +SET @NPC_GRAINERY := 25669; +SET @NPC_TORP_FARM := 25671; +UPDATE `areatrigger_scripts` SET `ScriptName`='SmartTrigger' WHERE `entry` IN (@AT_SLAUGHTERHOUSE,@AT_GRAINERY,@AT_TORP_FARM); +DELETE FROM `smart_scripts` WHERE `entryorguid` IN (@AT_SLAUGHTERHOUSE,@AT_GRAINERY,@AT_TORP_FARM) AND `source_type`=2; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@AT_SLAUGHTERHOUSE,2,0,0,46,0,100,0,@AT_SLAUGHTERHOUSE,0,0,0,33,@NPC_SLAUGHTERHOUSE,0,0,0,0,0,7,0,0,0,0,0,0,0,"Areatrigger Slaughterhouse - On Trigger - Quest Credit"), +(@AT_GRAINERY,2,0,0,46,0,100,0,@AT_GRAINERY,0,0,0,33,@NPC_GRAINERY,0,0,0,0,0,7,0,0,0,0,0,0,0,"Areatrigger Grainery - On Trigger - Quest Credit"), +(@AT_TORP_FARM,2,0,0,46,0,100,0,@AT_TORP_FARM,0,0,0,33,@NPC_TORP_FARM,0,0,0,0,0,7,0,0,0,0,0,0,0,"Areatrigger Torp Farm - On Trigger - Quest Credit"); + +-- Areatrigger Ravenholdt SAI +SET @AT_RAVENHOLDT := 3066; +SET @NPC_RAVENHOLDT := 13936; +UPDATE `areatrigger_scripts` SET `ScriptName`='SmartTrigger' WHERE `entry`=@AT_RAVENHOLDT; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@AT_RAVENHOLDT AND `source_type`=2; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@AT_RAVENHOLDT,2,0,0,46,0,100,0,@AT_RAVENHOLDT,0,0,0,33,@NPC_RAVENHOLDT,0,0,0,0,0,7,0,0,0,0,0,0,0,"Areatrigger Ravenholdt - On Trigger - Quest Credit"); + +-- Areatrigger Aldurthar Gate SAI +SET @AT_SOUTH := 5284; +SET @AT_CENTRAL := 5285; +SET @AT_NORTH := 5286; +SET @AT_NORTHWEST := 5287; +SET @NPC_SOUTH := 32195; +SET @NPC_CENTRAL := 32196; +SET @NPC_NORTH := 32197; +SET @NPC_NORTHWEST := 32199; +UPDATE `areatrigger_scripts` SET `ScriptName`='SmartTrigger' WHERE `entry` IN (@AT_SOUTH,@AT_CENTRAL,@AT_NORTH,@AT_NORTHWEST); +DELETE FROM `smart_scripts` WHERE `entryorguid` IN (@AT_SOUTH,@AT_CENTRAL,@AT_NORTH,@AT_NORTHWEST) AND `source_type`=2; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@AT_SOUTH,2,0,0,46,0,100,0,@AT_SOUTH,0,0,0,33,@NPC_SOUTH,0,0,0,0,0,7,0,0,0,0,0,0,0,"Areatrigger South - On Trigger - Quest Credit"), +(@AT_CENTRAL,2,0,0,46,0,100,0,@AT_CENTRAL,0,0,0,33,@NPC_CENTRAL,0,0,0,0,0,7,0,0,0,0,0,0,0,"Areatrigger Central - On Trigger - Quest Credit"), +(@AT_NORTH,2,0,0,46,0,100,0,@AT_NORTH,0,0,0,33,@NPC_NORTH,0,0,0,0,0,7,0,0,0,0,0,0,0,"Areatrigger North - On Trigger - Quest Credit"), +(@AT_NORTHWEST,2,0,0,46,0,100,0,@AT_NORTHWEST,0,0,0,33,@NPC_NORTHWEST,0,0,0,0,0,7,0,0,0,0,0,0,0,"Areatrigger Northwest - On Trigger - Quest Credit"); diff --git a/sql/old/3.3.5a/2011_11_13_02_world_pool_template.sql b/sql/old/3.3.5a/2011_11_13_02_world_pool_template.sql new file mode 100644 index 00000000000..257398d4457 --- /dev/null +++ b/sql/old/3.3.5a/2011_11_13_02_world_pool_template.sql @@ -0,0 +1,6095 @@ +-- --- Northrend ore spawns --- +/* +Borean Tundra guid 160000 - 160299 pool 10000 - 10149 +150 - Cobalt +150 - Secondary +Howling Fjord guid 160300 - 160599 pool 10150 - 10299 +150 - Cobalt +150 - Secondary +Grizzly Hills guid 160600 - 160799 pool 10300 - 10499 +100 - Cobalt +100 - Secondary +Dragonblight guid 160800 - 161099 pool 10500 - 10649 +150 - Cobalt +150 - Secondary +Zul''Drak guid 161100 - 161399 pool 10650 - 10799 +150 - Cobalt +150 - Secondary +Sholazar Basin guid 161400 - 162449 pool 10800 - 11149 +350 - Saronite +350 - Secondary +350 - third +Storm Peaks guid 162450 - 163199 pool 11150 - 11399 +250 - Saronite +250 - Secondary +250 - Third +Icecrown guid 163200 - 164399 pool 11400 - 11799 +400 - Saronite +400 - Secondary +400 - Third +*/ +-- ---------------------------------------- +-- -- Fixup ore spawns for Borean Tundra -- +-- ---------------------------------------- +SET @RANGE := 150; +SET @GUID1 := 160000; +SET @GUID2 := @GUID1 + @RANGE; +SET @POOL := 10000; +SET @LASTGUID := 90; -- Total number of guids - 1 in zone +SET @CHANCE1 := 90; -- This value can be 0 to 100 +SET @CHANCE2 := 100 - @CHANCE1; +SET @MOTHER := 9900; +SET @ACTIVE := 30; -- Max number of active spawns +SET @TIMER := 900; -- Respawn timer in seconds +-- Remove Ore spawns from Borean Tundra +DELETE FROM gameobject WHERE id IN (189978,189979) AND map=571 AND position_y > 4800 AND `position_x` < 4600; +DELETE FROM gameobject WHERE id IN (189978,189979) AND map=571 AND position_y < 4800 AND position_y > 4235 AND `position_x` < 4420; +DELETE FROM gameobject WHERE id IN (189978,189979) AND map=571 AND position_y < 4235 AND position_y > 3120 AND `position_x` < 4290; +-- Remove old pools +DELETE FROM `pool_gameobject` WHERE `guid` NOT IN (SELECT `guid` FROM `gameobject`); +DELETE FROM `pool_template` WHERE `entry` BETWEEN 5000 AND 5064; +DELETE FROM `pool_template` WHERE `entry` BETWEEN 5283 AND 5291; +DELETE FROM `pool_pool` WHERE `pool_id` BETWEEN 5000 AND 5064; +DELETE FROM `pool_pool` WHERE `pool_id` BETWEEN 5283 AND 5291; +-- Colbalt Deposits Borean Tundra +INSERT INTO `gameobject` (`guid`, `id`, `map`, `spawnMask`, `phaseMask`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecs`, `animprogress`, `state`) VALUES +(@GUID1+0,189978,571,1,1,2041.020,5487.780,0.6657,-2.72271,0,0,0,1,@TIMER,255,1), +(@GUID1+1,189978,571,1,1,2107.070,5567.050,4.3290,0.61086,0,0,0,1,@TIMER,255,1), +(@GUID1+2,189978,571,1,1,2176.160,6465.650,36.7026,-1.91986,0,0,0,1,@TIMER,255,1), +(@GUID1+3,189978,571,1,1,2191.400,6179.220,59.8092,0.55850,0,0,0,1,@TIMER,255,1), +(@GUID1+4,189978,571,1,1,2207.810,5461.620,1.4179,-2.25147,0,0,0,1,@TIMER,255,1), +(@GUID1+5,189978,571,1,1,2210.390,6140.070,102.5860,-1.43117,0,0,0,1,@TIMER,255,1), +(@GUID1+6,189978,571,1,1,2268.480,6553.980,44.8410,2.23402,0,0,0,1,@TIMER,255,1), +(@GUID1+7,189978,571,1,1,2420.550,5354.250,1.1916,-2.87979,0,0,0,1,@TIMER,255,1), +(@GUID1+8,189978,571,1,1,2440.970,5670.830,55.7080,-1.72787,0,0,0,1,@TIMER,255,1), +(@GUID1+9,189978,571,1,1,2479.390,5862.970,123.9090,-2.67035,0,0,0,1,@TIMER,255,1), +(@GUID1+10,189978,571,1,1,2484.080,5877.070,-24.4687,-3.07177,0,0,0,1,@TIMER,255,1), +(@GUID1+11,189978,571,1,1,2522.500,5118.600,11.1408,-1.18682,0,0,0,1,@TIMER,255,1), +(@GUID1+12,189978,571,1,1,2599.540,5932.400,-15.0285,1.51844,0,0,0,1,@TIMER,255,1), +(@GUID1+13,189978,571,1,1,2650.770,5183.580,8.5151,1.57080,0,0,0,1,@TIMER,255,1), +(@GUID1+14,189978,571,1,1,2748.900,6927.940,-0.4558,0.64577,0,0,0,1,@TIMER,255,1), +(@GUID1+15,189978,571,1,1,2761.550,5608.240,45.2715,-0.80285,0,0,0,1,@TIMER,255,1), +(@GUID1+16,189978,571,1,1,2763.630,5342.760,30.6526,2.84488,0,0,0,1,@TIMER,255,1), +(@GUID1+17,189978,571,1,1,2770.520,5154.430,30.9665,-2.86233,0,0,0,1,@TIMER,255,1), +(@GUID1+18,189978,571,1,1,2790.090,5263.080,20.6015,-1.44862,0,0,0,1,@TIMER,255,1), +(@GUID1+19,189978,571,1,1,2840.900,4952.440,8.9537,2.65289,0,0,0,1,@TIMER,255,1), +(@GUID1+20,189978,571,1,1,2874.190,5228.350,8.6320,-2.98450,0,0,0,1,@TIMER,255,1), +(@GUID1+21,189978,571,1,1,2930.960,5704.170,48.5007,0.61086,0,0,0,1,@TIMER,255,1), +(@GUID1+22,189978,571,1,1,3027.790,4980.890,12.1247,-1.46608,0,0,0,1,@TIMER,255,1), +(@GUID1+23,189978,571,1,1,3034.250,4541.600,9.2876,-0.68068,0,0,0,1,@TIMER,255,1), +(@GUID1+24,189978,571,1,1,3099.810,4421.810,27.8759,2.56563,0,0,0,1,@TIMER,255,1), +(@GUID1+25,189978,571,1,1,3112.390,4653.800,7.5872,-1.98967,0,0,0,1,@TIMER,255,1), +(@GUID1+26,189978,571,1,1,3121.680,3765.480,9.0758,-2.80997,0,0,0,1,@TIMER,255,1), +(@GUID1+27,189978,571,1,1,3137.750,3442.070,3.3502,0.40143,0,0,0,1,@TIMER,255,1), +(@GUID1+28,189978,571,1,1,3138.650,5762.380,56.1208,0.97738,0,0,0,1,@TIMER,255,1), +(@GUID1+29,189978,571,1,1,3139.470,3676.510,4.5353,-2.53072,0,0,0,1,@TIMER,255,1), +(@GUID1+30,189978,571,1,1,3151.480,5622.400,31.6321,-0.57596,0,0,0,1,@TIMER,255,1), +(@GUID1+31,189978,571,1,1,3166.540,4828.210,8.4315,2.47837,0,0,0,1,@TIMER,255,1), +(@GUID1+32,189978,571,1,1,3178.550,4306.800,27.7940,-0.40143,0,0,0,1,@TIMER,255,1), +(@GUID1+33,189978,571,1,1,3185.580,3546.170,7.6564,2.39110,0,0,0,1,@TIMER,255,1), +(@GUID1+34,189978,571,1,1,3198.810,4009.430,26.2162,1.11701,0,0,0,1,@TIMER,255,1), +(@GUID1+35,189978,571,1,1,3236.340,5552.180,37.9475,2.87979,0,0,0,1,@TIMER,255,1), +(@GUID1+36,189978,571,1,1,3258.650,6215.420,66.4526,2.05949,0,0,0,1,@TIMER,255,1), +(@GUID1+37,189978,571,1,1,3286.000,3285.200,26.0825,2.30383,0,0,0,1,@TIMER,255,1), +(@GUID1+38,189978,571,1,1,3312.170,4442.610,16.2630,-2.70526,0,0,0,1,@TIMER,255,1), +(@GUID1+39,189978,571,1,1,3339.990,6077.690,70.5354,3.14159,0,0,0,1,@TIMER,255,1), +(@GUID1+40,189978,571,1,1,3373.570,5698.460,59.7515,2.51327,0,0,0,1,@TIMER,255,1), +(@GUID1+41,189978,571,1,1,3425.060,6250.550,59.3819,-1.02974,0,0,0,1,@TIMER,255,1), +(@GUID1+42,189978,571,1,1,3432.170,3205.750,28.7276,0.19199,0,0,0,1,@TIMER,255,1), +(@GUID1+43,189978,571,1,1,3442.730,4790.610,28.0548,-0.76794,0,0,0,1,@TIMER,255,1), +(@GUID1+44,189978,571,1,1,3456.690,4495.230,-14.5277,1.01229,0,0,0,1,@TIMER,255,1), +(@GUID1+45,189978,571,1,1,3471.360,3949.050,28.4666,1.36136,0,0,0,1,@TIMER,255,1), +(@GUID1+46,189978,571,1,1,3500.650,5648.270,61.2663,-1.30900,0,0,0,1,@TIMER,255,1), +(@GUID1+47,189978,571,1,1,3546.060,5485.130,28.2165,-1.20428,0,0,0,1,@TIMER,255,1), +(@GUID1+48,189978,571,1,1,3575.170,5582.850,36.2144,1.36136,0,0,0,1,@TIMER,255,1), +(@GUID1+49,189978,571,1,1,3589.770,4352.250,-0.0799,0.69813,0,0,0,1,@TIMER,255,1), +(@GUID1+50,189978,571,1,1,3597.660,7076.430,207.8640,-0.80285,0,0,0,1,@TIMER,255,1), +(@GUID1+51,189978,571,1,1,3602.530,3264.460,29.1279,3.01941,0,0,0,1,@TIMER,255,1), +(@GUID1+52,189978,571,1,1,3629.540,3121.820,52.9232,2.04204,0,0,0,1,@TIMER,255,1), +(@GUID1+53,189978,571,1,1,3637.100,4875.020,-4.4644,1.23918,0,0,0,1,@TIMER,255,1), +(@GUID1+54,189978,571,1,1,3641.540,7262.290,224.0600,0.33161,0,0,0,1,@TIMER,255,1), +(@GUID1+55,189978,571,1,1,3647.920,4760.270,-21.7579,2.96704,0,0,0,1,@TIMER,255,1), +(@GUID1+56,189978,571,1,1,3673.780,5719.620,65.1652,-0.76794,0,0,0,1,@TIMER,255,1), +(@GUID1+57,189978,571,1,1,3679.230,4027.050,25.4779,-0.66322,0,0,0,1,@TIMER,255,1), +(@GUID1+58,189978,571,1,1,3735.660,7364.340,221.5280,0.08727,0,0,0,1,@TIMER,255,1), +(@GUID1+59,189978,571,1,1,3773.740,4124.640,26.3959,2.19912,0,0,0,1,@TIMER,255,1), +(@GUID1+60,189978,571,1,1,3791.720,6400.170,201.6110,-0.68068,0,0,0,1,@TIMER,255,1), +(@GUID1+61,189978,571,1,1,3799.720,6641.220,152.9170,3.00195,0,0,0,1,@TIMER,255,1), +(@GUID1+62,189978,571,1,1,3806.030,4624.150,-4.2562,2.67035,0,0,0,1,@TIMER,255,1), +(@GUID1+63,189978,571,1,1,3815.140,4009.440,27.9435,-1.60570,0,0,0,1,@TIMER,255,1), +(@GUID1+64,189978,571,1,1,3835.130,4339.370,13.9343,-1.88495,0,0,0,1,@TIMER,255,1), +(@GUID1+65,189978,571,1,1,3903.800,6724.670,152.8680,-0.82030,0,0,0,1,@TIMER,255,1), +(@GUID1+66,189978,571,1,1,3917.590,6440.270,12.2326,-2.16421,0,0,0,1,@TIMER,255,1), +(@GUID1+67,189978,571,1,1,3966.950,4626.570,3.9666,1.48353,0,0,0,1,@TIMER,255,1), +(@GUID1+68,189978,571,1,1,3983.410,5187.210,14.7211,-0.50615,0,0,0,1,@TIMER,255,1), +(@GUID1+69,189978,571,1,1,4027.440,5977.490,-126.0680,-1.27409,0,0,0,1,@TIMER,255,1), +(@GUID1+70,189978,571,1,1,4032.270,4116.910,68.5057,2.30383,0,0,0,1,@TIMER,255,1), +(@GUID1+71,189978,571,1,1,4069.310,7227.390,193.9630,-0.17453,0,0,0,1,@TIMER,255,1), +(@GUID1+72,189978,571,1,1,4070.480,6434.010,18.6334,-2.39110,0,0,0,1,@TIMER,255,1), +(@GUID1+73,189978,571,1,1,4145.380,6067.060,-125.9360,-1.91986,0,0,0,1,@TIMER,255,1), +(@GUID1+74,189978,571,1,1,4171.720,5077.170,16.6149,2.18166,0,0,0,1,@TIMER,255,1), +(@GUID1+75,189978,571,1,1,4208.170,6800.440,237.2870,2.02458,0,0,0,1,@TIMER,255,1), +(@GUID1+76,189978,571,1,1,4230.770,4443.920,31.1130,3.14159,0,0,0,1,@TIMER,255,1), +(@GUID1+77,189978,571,1,1,4250.450,5738.320,63.6832,3.01941,0,0,0,1,@TIMER,255,1), +(@GUID1+78,189978,571,1,1,4284.010,6139.800,-124.8270,-1.36136,0,0,0,1,@TIMER,255,1), +(@GUID1+79,189978,571,1,1,4290.250,4914.950,24.5063,-0.45379,0,0,0,1,@TIMER,255,1), +(@GUID1+80,189978,571,1,1,4365.940,6207.040,-125.8980,1.06465,0,0,0,1,@TIMER,255,1), +(@GUID1+81,189978,571,1,1,4367.850,4251.450,97.6535,3.14159,0,0,0,1,@TIMER,255,1), +(@GUID1+82,189978,571,1,1,4368.080,5342.280,5.1373,-2.77507,0,0,0,1,@TIMER,255,1), +(@GUID1+83,189978,571,1,1,4420.920,5968.570,58.9111,-1.78023,0,0,0,1,@TIMER,255,1), +(@GUID1+84,189978,571,1,1,4428.090,4947.540,22.4015,-0.57596,0,0,0,1,@TIMER,255,1), +(@GUID1+85,189978,571,1,1,4474.030,5326.940,81.2181,0.89012,0,0,0,1,@TIMER,255,1), +(@GUID1+86,189978,571,1,1,4489.790,5061.610,53.6446,1.83259,0,0,0,1,@TIMER,255,1), +(@GUID1+87,189978,571,1,1,4495.700,5196.980,77.0767,-2.49582,0,0,0,1,@TIMER,255,1), +(@GUID1+88,189978,571,1,1,4510.570,5420.060,28.6437,0.87266,0,0,0,1,@TIMER,255,1), +(@GUID1+89,189978,571,1,1,4527.510,5433.780,-17.0905,0.45379,0,0,0,1,@TIMER,255,1), +(@GUID1+90,189978,571,1,1,4541.420,5349.580,-31.6367,1.36136,0,0,0,1,@TIMER,255,1); +-- Rich Colbalt Deposits Borean Tundra +INSERT INTO `gameobject` (`guid`, `id`, `map`, `spawnMask`, `phaseMask`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecs`, `animprogress`, `state`) VALUES +(@GUID2+0,189979,571,1,1,2041.020,5487.780,0.6657,-2.72271,0,0,0,1,@TIMER,255,1), +(@GUID2+1,189979,571,1,1,2107.070,5567.050,4.3290,0.61086,0,0,0,1,@TIMER,255,1), +(@GUID2+2,189979,571,1,1,2176.160,6465.650,36.7026,-1.91986,0,0,0,1,@TIMER,255,1), +(@GUID2+3,189979,571,1,1,2191.400,6179.220,59.8092,0.55850,0,0,0,1,@TIMER,255,1), +(@GUID2+4,189979,571,1,1,2207.810,5461.620,1.4179,-2.25147,0,0,0,1,@TIMER,255,1), +(@GUID2+5,189979,571,1,1,2210.390,6140.070,102.5860,-1.43117,0,0,0,1,@TIMER,255,1), +(@GUID2+6,189979,571,1,1,2268.480,6553.980,44.8410,2.23402,0,0,0,1,@TIMER,255,1), +(@GUID2+7,189979,571,1,1,2420.550,5354.250,1.1916,-2.87979,0,0,0,1,@TIMER,255,1), +(@GUID2+8,189979,571,1,1,2440.970,5670.830,55.7080,-1.72787,0,0,0,1,@TIMER,255,1), +(@GUID2+9,189979,571,1,1,2479.390,5862.970,123.9090,-2.67035,0,0,0,1,@TIMER,255,1), +(@GUID2+10,189979,571,1,1,2484.080,5877.070,-24.4687,-3.07177,0,0,0,1,@TIMER,255,1), +(@GUID2+11,189979,571,1,1,2522.500,5118.600,11.1408,-1.18682,0,0,0,1,@TIMER,255,1), +(@GUID2+12,189979,571,1,1,2599.540,5932.400,-15.0285,1.51844,0,0,0,1,@TIMER,255,1), +(@GUID2+13,189979,571,1,1,2650.770,5183.580,8.5151,1.57080,0,0,0,1,@TIMER,255,1), +(@GUID2+14,189979,571,1,1,2748.900,6927.940,-0.4558,0.64577,0,0,0,1,@TIMER,255,1), +(@GUID2+15,189979,571,1,1,2761.550,5608.240,45.2715,-0.80285,0,0,0,1,@TIMER,255,1), +(@GUID2+16,189979,571,1,1,2763.630,5342.760,30.6526,2.84488,0,0,0,1,@TIMER,255,1), +(@GUID2+17,189979,571,1,1,2770.520,5154.430,30.9665,-2.86233,0,0,0,1,@TIMER,255,1), +(@GUID2+18,189979,571,1,1,2790.090,5263.080,20.6015,-1.44862,0,0,0,1,@TIMER,255,1), +(@GUID2+19,189979,571,1,1,2840.900,4952.440,8.9537,2.65289,0,0,0,1,@TIMER,255,1), +(@GUID2+20,189979,571,1,1,2874.190,5228.350,8.6320,-2.98450,0,0,0,1,@TIMER,255,1), +(@GUID2+21,189979,571,1,1,2930.960,5704.170,48.5007,0.61086,0,0,0,1,@TIMER,255,1), +(@GUID2+22,189979,571,1,1,3027.790,4980.890,12.1247,-1.46608,0,0,0,1,@TIMER,255,1), +(@GUID2+23,189979,571,1,1,3034.250,4541.600,9.2876,-0.68068,0,0,0,1,@TIMER,255,1), +(@GUID2+24,189979,571,1,1,3099.810,4421.810,27.8759,2.56563,0,0,0,1,@TIMER,255,1), +(@GUID2+25,189979,571,1,1,3112.390,4653.800,7.5872,-1.98967,0,0,0,1,@TIMER,255,1), +(@GUID2+26,189979,571,1,1,3121.680,3765.480,9.0758,-2.80997,0,0,0,1,@TIMER,255,1), +(@GUID2+27,189979,571,1,1,3137.750,3442.070,3.3502,0.40143,0,0,0,1,@TIMER,255,1), +(@GUID2+28,189979,571,1,1,3138.650,5762.380,56.1208,0.97738,0,0,0,1,@TIMER,255,1), +(@GUID2+29,189979,571,1,1,3139.470,3676.510,4.5353,-2.53072,0,0,0,1,@TIMER,255,1), +(@GUID2+30,189979,571,1,1,3151.480,5622.400,31.6321,-0.57596,0,0,0,1,@TIMER,255,1), +(@GUID2+31,189979,571,1,1,3166.540,4828.210,8.4315,2.47837,0,0,0,1,@TIMER,255,1), +(@GUID2+32,189979,571,1,1,3178.550,4306.800,27.7940,-0.40143,0,0,0,1,@TIMER,255,1), +(@GUID2+33,189979,571,1,1,3185.580,3546.170,7.6564,2.39110,0,0,0,1,@TIMER,255,1), +(@GUID2+34,189979,571,1,1,3198.810,4009.430,26.2162,1.11701,0,0,0,1,@TIMER,255,1), +(@GUID2+35,189979,571,1,1,3236.340,5552.180,37.9475,2.87979,0,0,0,1,@TIMER,255,1), +(@GUID2+36,189979,571,1,1,3258.650,6215.420,66.4526,2.05949,0,0,0,1,@TIMER,255,1), +(@GUID2+37,189979,571,1,1,3286.000,3285.200,26.0825,2.30383,0,0,0,1,@TIMER,255,1), +(@GUID2+38,189979,571,1,1,3312.170,4442.610,16.2630,-2.70526,0,0,0,1,@TIMER,255,1), +(@GUID2+39,189979,571,1,1,3339.990,6077.690,70.5354,3.14159,0,0,0,1,@TIMER,255,1), +(@GUID2+40,189979,571,1,1,3373.570,5698.460,59.7515,2.51327,0,0,0,1,@TIMER,255,1), +(@GUID2+41,189979,571,1,1,3425.060,6250.550,59.3819,-1.02974,0,0,0,1,@TIMER,255,1), +(@GUID2+42,189979,571,1,1,3432.170,3205.750,28.7276,0.19199,0,0,0,1,@TIMER,255,1), +(@GUID2+43,189979,571,1,1,3442.730,4790.610,28.0548,-0.76794,0,0,0,1,@TIMER,255,1), +(@GUID2+44,189979,571,1,1,3456.690,4495.230,-14.5277,1.01229,0,0,0,1,@TIMER,255,1), +(@GUID2+45,189979,571,1,1,3471.360,3949.050,28.4666,1.36136,0,0,0,1,@TIMER,255,1), +(@GUID2+46,189979,571,1,1,3500.650,5648.270,61.2663,-1.30900,0,0,0,1,@TIMER,255,1), +(@GUID2+47,189979,571,1,1,3546.060,5485.130,28.2165,-1.20428,0,0,0,1,@TIMER,255,1), +(@GUID2+48,189979,571,1,1,3575.170,5582.850,36.2144,1.36136,0,0,0,1,@TIMER,255,1), +(@GUID2+49,189979,571,1,1,3589.770,4352.250,-0.0799,0.69813,0,0,0,1,@TIMER,255,1), +(@GUID2+50,189979,571,1,1,3597.660,7076.430,207.8640,-0.80285,0,0,0,1,@TIMER,255,1), +(@GUID2+51,189979,571,1,1,3602.530,3264.460,29.1279,3.01941,0,0,0,1,@TIMER,255,1), +(@GUID2+52,189979,571,1,1,3629.540,3121.820,52.9232,2.04204,0,0,0,1,@TIMER,255,1), +(@GUID2+53,189979,571,1,1,3637.100,4875.020,-4.4644,1.23918,0,0,0,1,@TIMER,255,1), +(@GUID2+54,189979,571,1,1,3641.540,7262.290,224.0600,0.33161,0,0,0,1,@TIMER,255,1), +(@GUID2+55,189979,571,1,1,3647.920,4760.270,-21.7579,2.96704,0,0,0,1,@TIMER,255,1), +(@GUID2+56,189979,571,1,1,3673.780,5719.620,65.1652,-0.76794,0,0,0,1,@TIMER,255,1), +(@GUID2+57,189979,571,1,1,3679.230,4027.050,25.4779,-0.66322,0,0,0,1,@TIMER,255,1), +(@GUID2+58,189979,571,1,1,3735.660,7364.340,221.5280,0.08727,0,0,0,1,@TIMER,255,1), +(@GUID2+59,189979,571,1,1,3773.740,4124.640,26.3959,2.19912,0,0,0,1,@TIMER,255,1), +(@GUID2+60,189979,571,1,1,3791.720,6400.170,201.6110,-0.68068,0,0,0,1,@TIMER,255,1), +(@GUID2+61,189979,571,1,1,3799.720,6641.220,152.9170,3.00195,0,0,0,1,@TIMER,255,1), +(@GUID2+62,189979,571,1,1,3806.030,4624.150,-4.2562,2.67035,0,0,0,1,@TIMER,255,1), +(@GUID2+63,189979,571,1,1,3815.140,4009.440,27.9435,-1.60570,0,0,0,1,@TIMER,255,1), +(@GUID2+64,189979,571,1,1,3835.130,4339.370,13.9343,-1.88495,0,0,0,1,@TIMER,255,1), +(@GUID2+65,189979,571,1,1,3903.800,6724.670,152.8680,-0.82030,0,0,0,1,@TIMER,255,1), +(@GUID2+66,189979,571,1,1,3917.590,6440.270,12.2326,-2.16421,0,0,0,1,@TIMER,255,1), +(@GUID2+67,189979,571,1,1,3966.950,4626.570,3.9666,1.48353,0,0,0,1,@TIMER,255,1), +(@GUID2+68,189979,571,1,1,3983.410,5187.210,14.7211,-0.50615,0,0,0,1,@TIMER,255,1), +(@GUID2+69,189979,571,1,1,4027.440,5977.490,-126.0680,-1.27409,0,0,0,1,@TIMER,255,1), +(@GUID2+70,189979,571,1,1,4032.270,4116.910,68.5057,2.30383,0,0,0,1,@TIMER,255,1), +(@GUID2+71,189979,571,1,1,4069.310,7227.390,193.9630,-0.17453,0,0,0,1,@TIMER,255,1), +(@GUID2+72,189979,571,1,1,4070.480,6434.010,18.6334,-2.39110,0,0,0,1,@TIMER,255,1), +(@GUID2+73,189979,571,1,1,4145.380,6067.060,-125.9360,-1.91986,0,0,0,1,@TIMER,255,1), +(@GUID2+74,189979,571,1,1,4171.720,5077.170,16.6149,2.18166,0,0,0,1,@TIMER,255,1), +(@GUID2+75,189979,571,1,1,4208.170,6800.440,237.2870,2.02458,0,0,0,1,@TIMER,255,1), +(@GUID2+76,189979,571,1,1,4230.770,4443.920,31.1130,3.14159,0,0,0,1,@TIMER,255,1), +(@GUID2+77,189979,571,1,1,4250.450,5738.320,63.6832,3.01941,0,0,0,1,@TIMER,255,1), +(@GUID2+78,189979,571,1,1,4284.010,6139.800,-124.8270,-1.36136,0,0,0,1,@TIMER,255,1), +(@GUID2+79,189979,571,1,1,4290.250,4914.950,24.5063,-0.45379,0,0,0,1,@TIMER,255,1), +(@GUID2+80,189979,571,1,1,4365.940,6207.040,-125.8980,1.06465,0,0,0,1,@TIMER,255,1), +(@GUID2+81,189979,571,1,1,4367.850,4251.450,97.6535,3.14159,0,0,0,1,@TIMER,255,1), +(@GUID2+82,189979,571,1,1,4368.080,5342.280,5.1373,-2.77507,0,0,0,1,@TIMER,255,1), +(@GUID2+83,189979,571,1,1,4420.920,5968.570,58.9111,-1.78023,0,0,0,1,@TIMER,255,1), +(@GUID2+84,189979,571,1,1,4428.090,4947.540,22.4015,-0.57596,0,0,0,1,@TIMER,255,1), +(@GUID2+85,189979,571,1,1,4474.030,5326.940,81.2181,0.89012,0,0,0,1,@TIMER,255,1), +(@GUID2+86,189979,571,1,1,4489.790,5061.610,53.6446,1.83259,0,0,0,1,@TIMER,255,1), +(@GUID2+87,189979,571,1,1,4495.700,5196.980,77.0767,-2.49582,0,0,0,1,@TIMER,255,1), +(@GUID2+88,189979,571,1,1,4510.570,5420.060,28.6437,0.87266,0,0,0,1,@TIMER,255,1), +(@GUID2+89,189979,571,1,1,4527.510,5433.780,-17.0905,0.45379,0,0,0,1,@TIMER,255,1), +(@GUID2+90,189979,571,1,1,4541.420,5349.580,-31.6367,1.36136,0,0,0,1,@TIMER,255,1); +-- Pooling +DELETE FROM `pool_gameobject` WHERE `guid` BETWEEN @GUID1 AND @GUID1+@LASTGUID; +DELETE FROM `pool_gameobject` WHERE `guid` BETWEEN @GUID2 AND @GUID2+@LASTGUID; +-- Pool different ore types to each spawnpoint +INSERT INTO `pool_gameobject` (`guid`,`pool_entry`,`chance`,`description`) VALUES +(@GUID1+0,@POOL+0,@CHANCE1, 'Borean Tundra Ore Spawnpoint 1 Cobalt'), +(@GUID2+0,@POOL+0,@CHANCE2, 'Borean Tundra Ore Spawnpoint 1 Rich Cobalt'), +(@GUID1+1,@POOL+1,@CHANCE1, 'Borean Tundra Ore Spawnpoint 2 Cobalt'), +(@GUID2+1,@POOL+1,@CHANCE2, 'Borean Tundra Ore Spawnpoint 2 Rich Cobalt'), +(@GUID1+2,@POOL+2,@CHANCE1, 'Borean Tundra Ore Spawnpoint 3 Cobalt'), +(@GUID2+2,@POOL+2,@CHANCE2, 'Borean Tundra Ore Spawnpoint 3 Rich Cobalt'), +(@GUID1+3,@POOL+3,@CHANCE1, 'Borean Tundra Ore Spawnpoint 4 Cobalt'), +(@GUID2+3,@POOL+3,@CHANCE2, 'Borean Tundra Ore Spawnpoint 4 Rich Cobalt'), +(@GUID1+4,@POOL+4,@CHANCE1, 'Borean Tundra Ore Spawnpoint 5 Cobalt'), +(@GUID2+4,@POOL+4,@CHANCE2, 'Borean Tundra Ore Spawnpoint 5 Rich Cobalt'), +(@GUID1+5,@POOL+5,@CHANCE1, 'Borean Tundra Ore Spawnpoint 6 Cobalt'), +(@GUID2+5,@POOL+5,@CHANCE2, 'Borean Tundra Ore Spawnpoint 6 Rich Cobalt'), +(@GUID1+6,@POOL+6,@CHANCE1, 'Borean Tundra Ore Spawnpoint 7 Cobalt'), +(@GUID2+6,@POOL+6,@CHANCE2, 'Borean Tundra Ore Spawnpoint 7 Rich Cobalt'), +(@GUID1+7,@POOL+7,@CHANCE1, 'Borean Tundra Ore Spawnpoint 8 Cobalt'), +(@GUID2+7,@POOL+7,@CHANCE2, 'Borean Tundra Ore Spawnpoint 8 Rich Cobalt'), +(@GUID1+8,@POOL+8,@CHANCE1, 'Borean Tundra Ore Spawnpoint 9 Cobalt'), +(@GUID2+8,@POOL+8,@CHANCE2, 'Borean Tundra Ore Spawnpoint 9 Rich Cobalt'), +(@GUID1+9,@POOL+9,@CHANCE1, 'Borean Tundra Ore Spawnpoint 10 Cobalt'), +(@GUID2+9,@POOL+9,@CHANCE2, 'Borean Tundra Ore Spawnpoint 10 Rich Cobalt'), +(@GUID1+10,@POOL+10,@CHANCE1, 'Borean Tundra Ore Spawnpoint 11 Cobalt'), +(@GUID2+10,@POOL+10,@CHANCE2, 'Borean Tundra Ore Spawnpoint 11 Rich Cobalt'), +(@GUID1+11,@POOL+11,@CHANCE1, 'Borean Tundra Ore Spawnpoint 12 Cobalt'), +(@GUID2+11,@POOL+11,@CHANCE2, 'Borean Tundra Ore Spawnpoint 12 Rich Cobalt'), +(@GUID1+12,@POOL+12,@CHANCE1, 'Borean Tundra Ore Spawnpoint 13 Cobalt'), +(@GUID2+12,@POOL+12,@CHANCE2, 'Borean Tundra Ore Spawnpoint 13 Rich Cobalt'), +(@GUID1+13,@POOL+13,@CHANCE1, 'Borean Tundra Ore Spawnpoint 14 Cobalt'), +(@GUID2+13,@POOL+13,@CHANCE2, 'Borean Tundra Ore Spawnpoint 14 Rich Cobalt'), +(@GUID1+14,@POOL+14,@CHANCE1, 'Borean Tundra Ore Spawnpoint 15 Cobalt'), +(@GUID2+14,@POOL+14,@CHANCE2, 'Borean Tundra Ore Spawnpoint 15 Rich Cobalt'), +(@GUID1+15,@POOL+15,@CHANCE1, 'Borean Tundra Ore Spawnpoint 16 Cobalt'), +(@GUID2+15,@POOL+15,@CHANCE2, 'Borean Tundra Ore Spawnpoint 16 Rich Cobalt'), +(@GUID1+16,@POOL+16,@CHANCE1, 'Borean Tundra Ore Spawnpoint 17 Cobalt'), +(@GUID2+16,@POOL+16,@CHANCE2, 'Borean Tundra Ore Spawnpoint 17 Rich Cobalt'), +(@GUID1+17,@POOL+17,@CHANCE1, 'Borean Tundra Ore Spawnpoint 18 Cobalt'), +(@GUID2+17,@POOL+17,@CHANCE2, 'Borean Tundra Ore Spawnpoint 18 Rich Cobalt'), +(@GUID1+18,@POOL+18,@CHANCE1, 'Borean Tundra Ore Spawnpoint 19 Cobalt'), +(@GUID2+18,@POOL+18,@CHANCE2, 'Borean Tundra Ore Spawnpoint 19 Rich Cobalt'), +(@GUID1+19,@POOL+19,@CHANCE1, 'Borean Tundra Ore Spawnpoint 20 Cobalt'), +(@GUID2+19,@POOL+19,@CHANCE2, 'Borean Tundra Ore Spawnpoint 20 Rich Cobalt'), +(@GUID1+20,@POOL+20,@CHANCE1, 'Borean Tundra Ore Spawnpoint 21 Cobalt'), +(@GUID2+20,@POOL+20,@CHANCE2, 'Borean Tundra Ore Spawnpoint 21 Rich Cobalt'), +(@GUID1+21,@POOL+21,@CHANCE1, 'Borean Tundra Ore Spawnpoint 22 Cobalt'), +(@GUID2+21,@POOL+21,@CHANCE2, 'Borean Tundra Ore Spawnpoint 22 Rich Cobalt'), +(@GUID1+22,@POOL+22,@CHANCE1, 'Borean Tundra Ore Spawnpoint 23 Cobalt'), +(@GUID2+22,@POOL+22,@CHANCE2, 'Borean Tundra Ore Spawnpoint 23 Rich Cobalt'), +(@GUID1+23,@POOL+23,@CHANCE1, 'Borean Tundra Ore Spawnpoint 24 Cobalt'), +(@GUID2+23,@POOL+23,@CHANCE2, 'Borean Tundra Ore Spawnpoint 24 Rich Cobalt'), +(@GUID1+24,@POOL+24,@CHANCE1, 'Borean Tundra Ore Spawnpoint 25 Cobalt'), +(@GUID2+24,@POOL+24,@CHANCE2, 'Borean Tundra Ore Spawnpoint 25 Rich Cobalt'), +(@GUID1+25,@POOL+25,@CHANCE1, 'Borean Tundra Ore Spawnpoint 26 Cobalt'), +(@GUID2+25,@POOL+25,@CHANCE2, 'Borean Tundra Ore Spawnpoint 26 Rich Cobalt'), +(@GUID1+26,@POOL+26,@CHANCE1, 'Borean Tundra Ore Spawnpoint 27 Cobalt'), +(@GUID2+26,@POOL+26,@CHANCE2, 'Borean Tundra Ore Spawnpoint 27 Rich Cobalt'), +(@GUID1+27,@POOL+27,@CHANCE1, 'Borean Tundra Ore Spawnpoint 28 Cobalt'), +(@GUID2+27,@POOL+27,@CHANCE2, 'Borean Tundra Ore Spawnpoint 28 Rich Cobalt'), +(@GUID1+28,@POOL+28,@CHANCE1, 'Borean Tundra Ore Spawnpoint 29 Cobalt'), +(@GUID2+28,@POOL+28,@CHANCE2, 'Borean Tundra Ore Spawnpoint 29 Rich Cobalt'), +(@GUID1+29,@POOL+29,@CHANCE1, 'Borean Tundra Ore Spawnpoint 30 Cobalt'), +(@GUID2+29,@POOL+29,@CHANCE2, 'Borean Tundra Ore Spawnpoint 30 Rich Cobalt'), +(@GUID1+30,@POOL+30,@CHANCE1, 'Borean Tundra Ore Spawnpoint 31 Cobalt'), +(@GUID2+30,@POOL+30,@CHANCE2, 'Borean Tundra Ore Spawnpoint 31 Rich Cobalt'), +(@GUID1+31,@POOL+31,@CHANCE1, 'Borean Tundra Ore Spawnpoint 32 Cobalt'), +(@GUID2+31,@POOL+31,@CHANCE2, 'Borean Tundra Ore Spawnpoint 32 Rich Cobalt'), +(@GUID1+32,@POOL+32,@CHANCE1, 'Borean Tundra Ore Spawnpoint 33 Cobalt'), +(@GUID2+32,@POOL+32,@CHANCE2, 'Borean Tundra Ore Spawnpoint 33 Rich Cobalt'), +(@GUID1+33,@POOL+33,@CHANCE1, 'Borean Tundra Ore Spawnpoint 34 Cobalt'), +(@GUID2+33,@POOL+33,@CHANCE2, 'Borean Tundra Ore Spawnpoint 34 Rich Cobalt'), +(@GUID1+34,@POOL+34,@CHANCE1, 'Borean Tundra Ore Spawnpoint 35 Cobalt'), +(@GUID2+34,@POOL+34,@CHANCE2, 'Borean Tundra Ore Spawnpoint 35 Rich Cobalt'), +(@GUID1+35,@POOL+35,@CHANCE1, 'Borean Tundra Ore Spawnpoint 36 Cobalt'), +(@GUID2+35,@POOL+35,@CHANCE2, 'Borean Tundra Ore Spawnpoint 36 Rich Cobalt'), +(@GUID1+36,@POOL+36,@CHANCE1, 'Borean Tundra Ore Spawnpoint 37 Cobalt'), +(@GUID2+36,@POOL+36,@CHANCE2, 'Borean Tundra Ore Spawnpoint 37 Rich Cobalt'), +(@GUID1+37,@POOL+37,@CHANCE1, 'Borean Tundra Ore Spawnpoint 38 Cobalt'), +(@GUID2+37,@POOL+37,@CHANCE2, 'Borean Tundra Ore Spawnpoint 38 Rich Cobalt'), +(@GUID1+38,@POOL+38,@CHANCE1, 'Borean Tundra Ore Spawnpoint 39 Cobalt'), +(@GUID2+38,@POOL+38,@CHANCE2, 'Borean Tundra Ore Spawnpoint 39 Rich Cobalt'), +(@GUID1+39,@POOL+39,@CHANCE1, 'Borean Tundra Ore Spawnpoint 40 Cobalt'), +(@GUID2+39,@POOL+39,@CHANCE2, 'Borean Tundra Ore Spawnpoint 40 Rich Cobalt'), +(@GUID1+40,@POOL+40,@CHANCE1, 'Borean Tundra Ore Spawnpoint 41 Cobalt'), +(@GUID2+40,@POOL+40,@CHANCE2, 'Borean Tundra Ore Spawnpoint 41 Rich Cobalt'), +(@GUID1+41,@POOL+41,@CHANCE1, 'Borean Tundra Ore Spawnpoint 42 Cobalt'), +(@GUID2+41,@POOL+41,@CHANCE2, 'Borean Tundra Ore Spawnpoint 42 Rich Cobalt'), +(@GUID1+42,@POOL+42,@CHANCE1, 'Borean Tundra Ore Spawnpoint 43 Cobalt'), +(@GUID2+42,@POOL+42,@CHANCE2, 'Borean Tundra Ore Spawnpoint 43 Rich Cobalt'), +(@GUID1+43,@POOL+43,@CHANCE1, 'Borean Tundra Ore Spawnpoint 44 Cobalt'), +(@GUID2+43,@POOL+43,@CHANCE2, 'Borean Tundra Ore Spawnpoint 44 Rich Cobalt'), +(@GUID1+44,@POOL+44,@CHANCE1, 'Borean Tundra Ore Spawnpoint 45 Cobalt'), +(@GUID2+44,@POOL+44,@CHANCE2, 'Borean Tundra Ore Spawnpoint 45 Rich Cobalt'), +(@GUID1+45,@POOL+45,@CHANCE1, 'Borean Tundra Ore Spawnpoint 46 Cobalt'), +(@GUID2+45,@POOL+45,@CHANCE2, 'Borean Tundra Ore Spawnpoint 46 Rich Cobalt'), +(@GUID1+46,@POOL+46,@CHANCE1, 'Borean Tundra Ore Spawnpoint 47 Cobalt'), +(@GUID2+46,@POOL+46,@CHANCE2, 'Borean Tundra Ore Spawnpoint 47 Rich Cobalt'), +(@GUID1+47,@POOL+47,@CHANCE1, 'Borean Tundra Ore Spawnpoint 48 Cobalt'), +(@GUID2+47,@POOL+47,@CHANCE2, 'Borean Tundra Ore Spawnpoint 48 Rich Cobalt'), +(@GUID1+48,@POOL+48,@CHANCE1, 'Borean Tundra Ore Spawnpoint 49 Cobalt'), +(@GUID2+48,@POOL+48,@CHANCE2, 'Borean Tundra Ore Spawnpoint 49 Rich Cobalt'), +(@GUID1+49,@POOL+49,@CHANCE1, 'Borean Tundra Ore Spawnpoint 50 Cobalt'), +(@GUID2+49,@POOL+49,@CHANCE2, 'Borean Tundra Ore Spawnpoint 50 Rich Cobalt'), +(@GUID1+50,@POOL+50,@CHANCE1, 'Borean Tundra Ore Spawnpoint 51 Cobalt'), +(@GUID2+50,@POOL+50,@CHANCE2, 'Borean Tundra Ore Spawnpoint 51 Rich Cobalt'), +(@GUID1+51,@POOL+51,@CHANCE1, 'Borean Tundra Ore Spawnpoint 52 Cobalt'), +(@GUID2+51,@POOL+51,@CHANCE2, 'Borean Tundra Ore Spawnpoint 52 Rich Cobalt'), +(@GUID1+52,@POOL+52,@CHANCE1, 'Borean Tundra Ore Spawnpoint 53 Cobalt'), +(@GUID2+52,@POOL+52,@CHANCE2, 'Borean Tundra Ore Spawnpoint 53 Rich Cobalt'), +(@GUID1+53,@POOL+53,@CHANCE1, 'Borean Tundra Ore Spawnpoint 54 Cobalt'), +(@GUID2+53,@POOL+53,@CHANCE2, 'Borean Tundra Ore Spawnpoint 54 Rich Cobalt'), +(@GUID1+54,@POOL+54,@CHANCE1, 'Borean Tundra Ore Spawnpoint 55 Cobalt'), +(@GUID2+54,@POOL+54,@CHANCE2, 'Borean Tundra Ore Spawnpoint 55 Rich Cobalt'), +(@GUID1+55,@POOL+55,@CHANCE1, 'Borean Tundra Ore Spawnpoint 56 Cobalt'), +(@GUID2+55,@POOL+55,@CHANCE2, 'Borean Tundra Ore Spawnpoint 56 Rich Cobalt'), +(@GUID1+56,@POOL+56,@CHANCE1, 'Borean Tundra Ore Spawnpoint 57 Cobalt'), +(@GUID2+56,@POOL+56,@CHANCE2, 'Borean Tundra Ore Spawnpoint 57 Rich Cobalt'), +(@GUID1+57,@POOL+57,@CHANCE1, 'Borean Tundra Ore Spawnpoint 58 Cobalt'), +(@GUID2+57,@POOL+57,@CHANCE2, 'Borean Tundra Ore Spawnpoint 58 Rich Cobalt'), +(@GUID1+58,@POOL+58,@CHANCE1, 'Borean Tundra Ore Spawnpoint 59 Cobalt'), +(@GUID2+58,@POOL+58,@CHANCE2, 'Borean Tundra Ore Spawnpoint 59 Rich Cobalt'), +(@GUID1+59,@POOL+59,@CHANCE1, 'Borean Tundra Ore Spawnpoint 60 Cobalt'), +(@GUID2+59,@POOL+59,@CHANCE2, 'Borean Tundra Ore Spawnpoint 60 Rich Cobalt'), +(@GUID1+60,@POOL+60,@CHANCE1, 'Borean Tundra Ore Spawnpoint 61 Cobalt'), +(@GUID2+60,@POOL+60,@CHANCE2, 'Borean Tundra Ore Spawnpoint 61 Rich Cobalt'), +(@GUID1+61,@POOL+61,@CHANCE1, 'Borean Tundra Ore Spawnpoint 62 Cobalt'), +(@GUID2+61,@POOL+61,@CHANCE2, 'Borean Tundra Ore Spawnpoint 62 Rich Cobalt'), +(@GUID1+62,@POOL+62,@CHANCE1, 'Borean Tundra Ore Spawnpoint 63 Cobalt'), +(@GUID2+62,@POOL+62,@CHANCE2, 'Borean Tundra Ore Spawnpoint 63 Rich Cobalt'), +(@GUID1+63,@POOL+63,@CHANCE1, 'Borean Tundra Ore Spawnpoint 64 Cobalt'), +(@GUID2+63,@POOL+63,@CHANCE2, 'Borean Tundra Ore Spawnpoint 64 Rich Cobalt'), +(@GUID1+64,@POOL+64,@CHANCE1, 'Borean Tundra Ore Spawnpoint 65 Cobalt'), +(@GUID2+64,@POOL+64,@CHANCE2, 'Borean Tundra Ore Spawnpoint 65 Rich Cobalt'), +(@GUID1+65,@POOL+65,@CHANCE1, 'Borean Tundra Ore Spawnpoint 66 Cobalt'), +(@GUID2+65,@POOL+65,@CHANCE2, 'Borean Tundra Ore Spawnpoint 66 Rich Cobalt'), +(@GUID1+66,@POOL+66,@CHANCE1, 'Borean Tundra Ore Spawnpoint 67 Cobalt'), +(@GUID2+66,@POOL+66,@CHANCE2, 'Borean Tundra Ore Spawnpoint 67 Rich Cobalt'), +(@GUID1+67,@POOL+67,@CHANCE1, 'Borean Tundra Ore Spawnpoint 68 Cobalt'), +(@GUID2+67,@POOL+67,@CHANCE2, 'Borean Tundra Ore Spawnpoint 68 Rich Cobalt'), +(@GUID1+68,@POOL+68,@CHANCE1, 'Borean Tundra Ore Spawnpoint 69 Cobalt'), +(@GUID2+68,@POOL+68,@CHANCE2, 'Borean Tundra Ore Spawnpoint 69 Rich Cobalt'), +(@GUID1+69,@POOL+69,@CHANCE1, 'Borean Tundra Ore Spawnpoint 70 Cobalt'), +(@GUID2+69,@POOL+69,@CHANCE2, 'Borean Tundra Ore Spawnpoint 70 Rich Cobalt'), +(@GUID1+70,@POOL+70,@CHANCE1, 'Borean Tundra Ore Spawnpoint 71 Cobalt'), +(@GUID2+70,@POOL+70,@CHANCE2, 'Borean Tundra Ore Spawnpoint 71 Rich Cobalt'), +(@GUID1+71,@POOL+71,@CHANCE1, 'Borean Tundra Ore Spawnpoint 72 Cobalt'), +(@GUID2+71,@POOL+71,@CHANCE2, 'Borean Tundra Ore Spawnpoint 72 Rich Cobalt'), +(@GUID1+72,@POOL+72,@CHANCE1, 'Borean Tundra Ore Spawnpoint 73 Cobalt'), +(@GUID2+72,@POOL+72,@CHANCE2, 'Borean Tundra Ore Spawnpoint 73 Rich Cobalt'), +(@GUID1+73,@POOL+73,@CHANCE1, 'Borean Tundra Ore Spawnpoint 74 Cobalt'), +(@GUID2+73,@POOL+73,@CHANCE2, 'Borean Tundra Ore Spawnpoint 74 Rich Cobalt'), +(@GUID1+74,@POOL+74,@CHANCE1, 'Borean Tundra Ore Spawnpoint 75 Cobalt'), +(@GUID2+74,@POOL+74,@CHANCE2, 'Borean Tundra Ore Spawnpoint 75 Rich Cobalt'), +(@GUID1+75,@POOL+75,@CHANCE1, 'Borean Tundra Ore Spawnpoint 76 Cobalt'), +(@GUID2+75,@POOL+75,@CHANCE2, 'Borean Tundra Ore Spawnpoint 76 Rich Cobalt'), +(@GUID1+76,@POOL+76,@CHANCE1, 'Borean Tundra Ore Spawnpoint 77 Cobalt'), +(@GUID2+76,@POOL+76,@CHANCE2, 'Borean Tundra Ore Spawnpoint 77 Rich Cobalt'), +(@GUID1+77,@POOL+77,@CHANCE1, 'Borean Tundra Ore Spawnpoint 78 Cobalt'), +(@GUID2+77,@POOL+77,@CHANCE2, 'Borean Tundra Ore Spawnpoint 78 Rich Cobalt'), +(@GUID1+78,@POOL+78,@CHANCE1, 'Borean Tundra Ore Spawnpoint 79 Cobalt'), +(@GUID2+78,@POOL+78,@CHANCE2, 'Borean Tundra Ore Spawnpoint 79 Rich Cobalt'), +(@GUID1+79,@POOL+79,@CHANCE1, 'Borean Tundra Ore Spawnpoint 80 Cobalt'), +(@GUID2+79,@POOL+79,@CHANCE2, 'Borean Tundra Ore Spawnpoint 80 Rich Cobalt'), +(@GUID1+80,@POOL+80,@CHANCE1, 'Borean Tundra Ore Spawnpoint 81 Cobalt'), +(@GUID2+80,@POOL+80,@CHANCE2, 'Borean Tundra Ore Spawnpoint 81 Rich Cobalt'), +(@GUID1+81,@POOL+81,@CHANCE1, 'Borean Tundra Ore Spawnpoint 82 Cobalt'), +(@GUID2+81,@POOL+81,@CHANCE2, 'Borean Tundra Ore Spawnpoint 82 Rich Cobalt'), +(@GUID1+82,@POOL+82,@CHANCE1, 'Borean Tundra Ore Spawnpoint 83 Cobalt'), +(@GUID2+82,@POOL+82,@CHANCE2, 'Borean Tundra Ore Spawnpoint 83 Rich Cobalt'), +(@GUID1+83,@POOL+83,@CHANCE1, 'Borean Tundra Ore Spawnpoint 84 Cobalt'), +(@GUID2+83,@POOL+83,@CHANCE2, 'Borean Tundra Ore Spawnpoint 84 Rich Cobalt'), +(@GUID1+84,@POOL+84,@CHANCE1, 'Borean Tundra Ore Spawnpoint 85 Cobalt'), +(@GUID2+84,@POOL+84,@CHANCE2, 'Borean Tundra Ore Spawnpoint 85 Rich Cobalt'), +(@GUID1+85,@POOL+85,@CHANCE1, 'Borean Tundra Ore Spawnpoint 86 Cobalt'), +(@GUID2+85,@POOL+85,@CHANCE2, 'Borean Tundra Ore Spawnpoint 86 Rich Cobalt'), +(@GUID1+86,@POOL+86,@CHANCE1, 'Borean Tundra Ore Spawnpoint 87 Cobalt'), +(@GUID2+86,@POOL+86,@CHANCE2, 'Borean Tundra Ore Spawnpoint 87 Rich Cobalt'), +(@GUID1+87,@POOL+87,@CHANCE1, 'Borean Tundra Ore Spawnpoint 88 Cobalt'), +(@GUID2+87,@POOL+87,@CHANCE2, 'Borean Tundra Ore Spawnpoint 88 Rich Cobalt'), +(@GUID1+88,@POOL+88,@CHANCE1, 'Borean Tundra Ore Spawnpoint 89 Cobalt'), +(@GUID2+88,@POOL+88,@CHANCE2, 'Borean Tundra Ore Spawnpoint 89 Rich Cobalt'), +(@GUID1+89,@POOL+89,@CHANCE1, 'Borean Tundra Ore Spawnpoint 90 Cobalt'), +(@GUID2+89,@POOL+89,@CHANCE2, 'Borean Tundra Ore Spawnpoint 90 Rich Cobalt'), +(@GUID1+90,@POOL+90,@CHANCE1, 'Borean Tundra Ore Spawnpoint 91 Cobalt'), +(@GUID2+90,@POOL+90,@CHANCE2, 'Borean Tundra Ore Spawnpoint 91 Rich Cobalt'); +-- Add each pool to pool template +DELETE FROM `pool_template` WHERE `entry` BETWEEN @POOL AND @POOL+@LASTGUID; +INSERT INTO `pool_template` (`entry`,`max_limit`,`description`) VALUES +(@POOL+0,1, 'Borean Tundra Ore Spawnpoint 1'), +(@POOL+1,1, 'Borean Tundra Ore Spawnpoint 2'), +(@POOL+2,1, 'Borean Tundra Ore Spawnpoint 3'), +(@POOL+3,1, 'Borean Tundra Ore Spawnpoint 4'), +(@POOL+4,1, 'Borean Tundra Ore Spawnpoint 5'), +(@POOL+5,1, 'Borean Tundra Ore Spawnpoint 6'), +(@POOL+6,1, 'Borean Tundra Ore Spawnpoint 7'), +(@POOL+7,1, 'Borean Tundra Ore Spawnpoint 8'), +(@POOL+8,1, 'Borean Tundra Ore Spawnpoint 9'), +(@POOL+9,1, 'Borean Tundra Ore Spawnpoint 10'), +(@POOL+10,1, 'Borean Tundra Ore Spawnpoint 11'), +(@POOL+11,1, 'Borean Tundra Ore Spawnpoint 12'), +(@POOL+12,1, 'Borean Tundra Ore Spawnpoint 13'), +(@POOL+13,1, 'Borean Tundra Ore Spawnpoint 14'), +(@POOL+14,1, 'Borean Tundra Ore Spawnpoint 15'), +(@POOL+15,1, 'Borean Tundra Ore Spawnpoint 16'), +(@POOL+16,1, 'Borean Tundra Ore Spawnpoint 17'), +(@POOL+17,1, 'Borean Tundra Ore Spawnpoint 18'), +(@POOL+18,1, 'Borean Tundra Ore Spawnpoint 19'), +(@POOL+19,1, 'Borean Tundra Ore Spawnpoint 20'), +(@POOL+20,1, 'Borean Tundra Ore Spawnpoint 21'), +(@POOL+21,1, 'Borean Tundra Ore Spawnpoint 22'), +(@POOL+22,1, 'Borean Tundra Ore Spawnpoint 23'), +(@POOL+23,1, 'Borean Tundra Ore Spawnpoint 24'), +(@POOL+24,1, 'Borean Tundra Ore Spawnpoint 25'), +(@POOL+25,1, 'Borean Tundra Ore Spawnpoint 26'), +(@POOL+26,1, 'Borean Tundra Ore Spawnpoint 27'), +(@POOL+27,1, 'Borean Tundra Ore Spawnpoint 28'), +(@POOL+28,1, 'Borean Tundra Ore Spawnpoint 29'), +(@POOL+29,1, 'Borean Tundra Ore Spawnpoint 30'), +(@POOL+30,1, 'Borean Tundra Ore Spawnpoint 31'), +(@POOL+31,1, 'Borean Tundra Ore Spawnpoint 32'), +(@POOL+32,1, 'Borean Tundra Ore Spawnpoint 33'), +(@POOL+33,1, 'Borean Tundra Ore Spawnpoint 34'), +(@POOL+34,1, 'Borean Tundra Ore Spawnpoint 35'), +(@POOL+35,1, 'Borean Tundra Ore Spawnpoint 36'), +(@POOL+36,1, 'Borean Tundra Ore Spawnpoint 37'), +(@POOL+37,1, 'Borean Tundra Ore Spawnpoint 38'), +(@POOL+38,1, 'Borean Tundra Ore Spawnpoint 39'), +(@POOL+39,1, 'Borean Tundra Ore Spawnpoint 40'), +(@POOL+40,1, 'Borean Tundra Ore Spawnpoint 41'), +(@POOL+41,1, 'Borean Tundra Ore Spawnpoint 42'), +(@POOL+42,1, 'Borean Tundra Ore Spawnpoint 43'), +(@POOL+43,1, 'Borean Tundra Ore Spawnpoint 44'), +(@POOL+44,1, 'Borean Tundra Ore Spawnpoint 45'), +(@POOL+45,1, 'Borean Tundra Ore Spawnpoint 46'), +(@POOL+46,1, 'Borean Tundra Ore Spawnpoint 47'), +(@POOL+47,1, 'Borean Tundra Ore Spawnpoint 48'), +(@POOL+48,1, 'Borean Tundra Ore Spawnpoint 49'), +(@POOL+49,1, 'Borean Tundra Ore Spawnpoint 50'), +(@POOL+50,1, 'Borean Tundra Ore Spawnpoint 51'), +(@POOL+51,1, 'Borean Tundra Ore Spawnpoint 52'), +(@POOL+52,1, 'Borean Tundra Ore Spawnpoint 53'), +(@POOL+53,1, 'Borean Tundra Ore Spawnpoint 54'), +(@POOL+54,1, 'Borean Tundra Ore Spawnpoint 55'), +(@POOL+55,1, 'Borean Tundra Ore Spawnpoint 56'), +(@POOL+56,1, 'Borean Tundra Ore Spawnpoint 57'), +(@POOL+57,1, 'Borean Tundra Ore Spawnpoint 58'), +(@POOL+58,1, 'Borean Tundra Ore Spawnpoint 59'), +(@POOL+59,1, 'Borean Tundra Ore Spawnpoint 60'), +(@POOL+60,1, 'Borean Tundra Ore Spawnpoint 61'), +(@POOL+61,1, 'Borean Tundra Ore Spawnpoint 62'), +(@POOL+62,1, 'Borean Tundra Ore Spawnpoint 63'), +(@POOL+63,1, 'Borean Tundra Ore Spawnpoint 64'), +(@POOL+64,1, 'Borean Tundra Ore Spawnpoint 65'), +(@POOL+65,1, 'Borean Tundra Ore Spawnpoint 66'), +(@POOL+66,1, 'Borean Tundra Ore Spawnpoint 67'), +(@POOL+67,1, 'Borean Tundra Ore Spawnpoint 68'), +(@POOL+68,1, 'Borean Tundra Ore Spawnpoint 69'), +(@POOL+69,1, 'Borean Tundra Ore Spawnpoint 70'), +(@POOL+70,1, 'Borean Tundra Ore Spawnpoint 71'), +(@POOL+71,1, 'Borean Tundra Ore Spawnpoint 72'), +(@POOL+72,1, 'Borean Tundra Ore Spawnpoint 73'), +(@POOL+73,1, 'Borean Tundra Ore Spawnpoint 74'), +(@POOL+74,1, 'Borean Tundra Ore Spawnpoint 75'), +(@POOL+75,1, 'Borean Tundra Ore Spawnpoint 76'), +(@POOL+76,1, 'Borean Tundra Ore Spawnpoint 77'), +(@POOL+77,1, 'Borean Tundra Ore Spawnpoint 78'), +(@POOL+78,1, 'Borean Tundra Ore Spawnpoint 79'), +(@POOL+79,1, 'Borean Tundra Ore Spawnpoint 80'), +(@POOL+80,1, 'Borean Tundra Ore Spawnpoint 81'), +(@POOL+81,1, 'Borean Tundra Ore Spawnpoint 82'), +(@POOL+82,1, 'Borean Tundra Ore Spawnpoint 83'), +(@POOL+83,1, 'Borean Tundra Ore Spawnpoint 84'), +(@POOL+84,1, 'Borean Tundra Ore Spawnpoint 85'), +(@POOL+85,1, 'Borean Tundra Ore Spawnpoint 86'), +(@POOL+86,1, 'Borean Tundra Ore Spawnpoint 87'), +(@POOL+87,1, 'Borean Tundra Ore Spawnpoint 88'), +(@POOL+88,1, 'Borean Tundra Ore Spawnpoint 89'), +(@POOL+89,1, 'Borean Tundra Ore Spawnpoint 90'), +(@POOL+90,1, 'Borean Tundra Ore Spawnpoint 91'); +-- Add mother pool to pool template +DELETE FROM `pool_template` WHERE `entry`=@MOTHER; +INSERT INTO `pool_template` (`entry`,`max_limit`,`description`) VALUES +(@MOTHER,@ACTIVE, 'Borean Tundra Ore Mother pool'); +-- Add each pool to pool_pool +DELETE FROM `pool_pool` WHERE `pool_id` BETWEEN @POOL AND @POOL+@LASTGUID; +INSERT INTO `pool_pool` (`pool_id`,`mother_pool`,`chance`,`description`) VALUES +(@POOL+0,@MOTHER,0, 'Borean Tundra Ore Spawnpoint 1'), +(@POOL+1,@MOTHER,0, 'Borean Tundra Ore Spawnpoint 2'), +(@POOL+2,@MOTHER,0, 'Borean Tundra Ore Spawnpoint 3'), +(@POOL+3,@MOTHER,0, 'Borean Tundra Ore Spawnpoint 4'), +(@POOL+4,@MOTHER,0, 'Borean Tundra Ore Spawnpoint 5'), +(@POOL+5,@MOTHER,0, 'Borean Tundra Ore Spawnpoint 6'), +(@POOL+6,@MOTHER,0, 'Borean Tundra Ore Spawnpoint 7'), +(@POOL+7,@MOTHER,0, 'Borean Tundra Ore Spawnpoint 8'), +(@POOL+8,@MOTHER,0, 'Borean Tundra Ore Spawnpoint 9'), +(@POOL+9,@MOTHER,0, 'Borean Tundra Ore Spawnpoint 10'), +(@POOL+10,@MOTHER,0, 'Borean Tundra Ore Spawnpoint 11'), +(@POOL+11,@MOTHER,0, 'Borean Tundra Ore Spawnpoint 12'), +(@POOL+12,@MOTHER,0, 'Borean Tundra Ore Spawnpoint 13'), +(@POOL+13,@MOTHER,0, 'Borean Tundra Ore Spawnpoint 14'), +(@POOL+14,@MOTHER,0, 'Borean Tundra Ore Spawnpoint 15'), +(@POOL+15,@MOTHER,0, 'Borean Tundra Ore Spawnpoint 16'), +(@POOL+16,@MOTHER,0, 'Borean Tundra Ore Spawnpoint 17'), +(@POOL+17,@MOTHER,0, 'Borean Tundra Ore Spawnpoint 18'), +(@POOL+18,@MOTHER,0, 'Borean Tundra Ore Spawnpoint 19'), +(@POOL+19,@MOTHER,0, 'Borean Tundra Ore Spawnpoint 20'), +(@POOL+20,@MOTHER,0, 'Borean Tundra Ore Spawnpoint 21'), +(@POOL+21,@MOTHER,0, 'Borean Tundra Ore Spawnpoint 22'), +(@POOL+22,@MOTHER,0, 'Borean Tundra Ore Spawnpoint 23'), +(@POOL+23,@MOTHER,0, 'Borean Tundra Ore Spawnpoint 24'), +(@POOL+24,@MOTHER,0, 'Borean Tundra Ore Spawnpoint 25'), +(@POOL+25,@MOTHER,0, 'Borean Tundra Ore Spawnpoint 26'), +(@POOL+26,@MOTHER,0, 'Borean Tundra Ore Spawnpoint 27'), +(@POOL+27,@MOTHER,0, 'Borean Tundra Ore Spawnpoint 28'), +(@POOL+28,@MOTHER,0, 'Borean Tundra Ore Spawnpoint 29'), +(@POOL+29,@MOTHER,0, 'Borean Tundra Ore Spawnpoint 30'), +(@POOL+30,@MOTHER,0, 'Borean Tundra Ore Spawnpoint 31'), +(@POOL+31,@MOTHER,0, 'Borean Tundra Ore Spawnpoint 32'), +(@POOL+32,@MOTHER,0, 'Borean Tundra Ore Spawnpoint 33'), +(@POOL+33,@MOTHER,0, 'Borean Tundra Ore Spawnpoint 34'), +(@POOL+34,@MOTHER,0, 'Borean Tundra Ore Spawnpoint 35'), +(@POOL+35,@MOTHER,0, 'Borean Tundra Ore Spawnpoint 36'), +(@POOL+36,@MOTHER,0, 'Borean Tundra Ore Spawnpoint 37'), +(@POOL+37,@MOTHER,0, 'Borean Tundra Ore Spawnpoint 38'), +(@POOL+38,@MOTHER,0, 'Borean Tundra Ore Spawnpoint 39'), +(@POOL+39,@MOTHER,0, 'Borean Tundra Ore Spawnpoint 40'), +(@POOL+40,@MOTHER,0, 'Borean Tundra Ore Spawnpoint 41'), +(@POOL+41,@MOTHER,0, 'Borean Tundra Ore Spawnpoint 42'), +(@POOL+42,@MOTHER,0, 'Borean Tundra Ore Spawnpoint 43'), +(@POOL+43,@MOTHER,0, 'Borean Tundra Ore Spawnpoint 44'), +(@POOL+44,@MOTHER,0, 'Borean Tundra Ore Spawnpoint 45'), +(@POOL+45,@MOTHER,0, 'Borean Tundra Ore Spawnpoint 46'), +(@POOL+46,@MOTHER,0, 'Borean Tundra Ore Spawnpoint 47'), +(@POOL+47,@MOTHER,0, 'Borean Tundra Ore Spawnpoint 48'), +(@POOL+48,@MOTHER,0, 'Borean Tundra Ore Spawnpoint 49'), +(@POOL+49,@MOTHER,0, 'Borean Tundra Ore Spawnpoint 50'), +(@POOL+50,@MOTHER,0, 'Borean Tundra Ore Spawnpoint 51'), +(@POOL+51,@MOTHER,0, 'Borean Tundra Ore Spawnpoint 52'), +(@POOL+52,@MOTHER,0, 'Borean Tundra Ore Spawnpoint 53'), +(@POOL+53,@MOTHER,0, 'Borean Tundra Ore Spawnpoint 54'), +(@POOL+54,@MOTHER,0, 'Borean Tundra Ore Spawnpoint 55'), +(@POOL+55,@MOTHER,0, 'Borean Tundra Ore Spawnpoint 56'), +(@POOL+56,@MOTHER,0, 'Borean Tundra Ore Spawnpoint 57'), +(@POOL+57,@MOTHER,0, 'Borean Tundra Ore Spawnpoint 58'), +(@POOL+58,@MOTHER,0, 'Borean Tundra Ore Spawnpoint 59'), +(@POOL+59,@MOTHER,0, 'Borean Tundra Ore Spawnpoint 60'), +(@POOL+60,@MOTHER,0, 'Borean Tundra Ore Spawnpoint 61'), +(@POOL+61,@MOTHER,0, 'Borean Tundra Ore Spawnpoint 62'), +(@POOL+62,@MOTHER,0, 'Borean Tundra Ore Spawnpoint 63'), +(@POOL+63,@MOTHER,0, 'Borean Tundra Ore Spawnpoint 64'), +(@POOL+64,@MOTHER,0, 'Borean Tundra Ore Spawnpoint 65'), +(@POOL+65,@MOTHER,0, 'Borean Tundra Ore Spawnpoint 66'), +(@POOL+66,@MOTHER,0, 'Borean Tundra Ore Spawnpoint 67'), +(@POOL+67,@MOTHER,0, 'Borean Tundra Ore Spawnpoint 68'), +(@POOL+68,@MOTHER,0, 'Borean Tundra Ore Spawnpoint 69'), +(@POOL+69,@MOTHER,0, 'Borean Tundra Ore Spawnpoint 70'), +(@POOL+70,@MOTHER,0, 'Borean Tundra Ore Spawnpoint 71'), +(@POOL+71,@MOTHER,0, 'Borean Tundra Ore Spawnpoint 72'), +(@POOL+72,@MOTHER,0, 'Borean Tundra Ore Spawnpoint 73'), +(@POOL+73,@MOTHER,0, 'Borean Tundra Ore Spawnpoint 74'), +(@POOL+74,@MOTHER,0, 'Borean Tundra Ore Spawnpoint 75'), +(@POOL+75,@MOTHER,0, 'Borean Tundra Ore Spawnpoint 76'), +(@POOL+76,@MOTHER,0, 'Borean Tundra Ore Spawnpoint 77'), +(@POOL+77,@MOTHER,0, 'Borean Tundra Ore Spawnpoint 78'), +(@POOL+78,@MOTHER,0, 'Borean Tundra Ore Spawnpoint 79'), +(@POOL+79,@MOTHER,0, 'Borean Tundra Ore Spawnpoint 80'), +(@POOL+80,@MOTHER,0, 'Borean Tundra Ore Spawnpoint 81'), +(@POOL+81,@MOTHER,0, 'Borean Tundra Ore Spawnpoint 82'), +(@POOL+82,@MOTHER,0, 'Borean Tundra Ore Spawnpoint 83'), +(@POOL+83,@MOTHER,0, 'Borean Tundra Ore Spawnpoint 84'), +(@POOL+84,@MOTHER,0, 'Borean Tundra Ore Spawnpoint 85'), +(@POOL+85,@MOTHER,0, 'Borean Tundra Ore Spawnpoint 86'), +(@POOL+86,@MOTHER,0, 'Borean Tundra Ore Spawnpoint 87'), +(@POOL+87,@MOTHER,0, 'Borean Tundra Ore Spawnpoint 88'), +(@POOL+88,@MOTHER,0, 'Borean Tundra Ore Spawnpoint 89'), +(@POOL+89,@MOTHER,0, 'Borean Tundra Ore Spawnpoint 90'), +(@POOL+90,@MOTHER,0, 'Borean Tundra Ore Spawnpoint 91'); + +-- ---------------------------------------- +-- Fixup ore spawns for Howling Fjord +-- ---------------------------------------- +SET @RANGE := 150; +SET @GUID1 := 160300; +SET @GUID2 := @GUID1 + @RANGE; +SET @POOL := 10150; +SET @LASTGUID := 99; -- Total number of guids - 1 in zone +SET @CHANCE1 := 90; -- This value can be 0 to 100 +SET @CHANCE2 := 100 - @CHANCE1; +SET @MOTHER := 9901; +SET @ACTIVE := 30; -- Max number of active spawns +SET @TIMER := 900; -- Respawn timer in seconds +-- Remove Ore spawns from Howling Fjord +DELETE FROM gameobject WHERE id IN (189978,189979) AND map=571 AND position_y < -1630 AND `position_x` < 3090; +-- Remove old pools +DELETE FROM `pool_gameobject` WHERE `guid` NOT IN (SELECT `guid` FROM `gameobject`); +DELETE FROM `pool_template` WHERE `entry` BETWEEN 5065 AND 5121; +DELETE FROM `pool_template` WHERE `entry` BETWEEN 5277 AND 5282; +DELETE FROM `pool_pool` WHERE `pool_id` BETWEEN 5065 AND 5120; +DELETE FROM `pool_pool` WHERE `pool_id` BETWEEN 5277 AND 5282; +-- Cobalt Deposits Howling Fjord +INSERT INTO `gameobject` (`guid`, `id`, `map`, `spawnMask`, `phaseMask`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecs`, `animprogress`, `state`) VALUES +(@GUID1,189978,571,1,1,-144.006,-4989.570,309.6730,2.02458,0,0,0,1,@TIMER,255,1), +(@GUID1+1,189978,571,1,1,-23.354,-3586.670,33.7790,3.10665,0,0,0,1,@TIMER,255,1), +(@GUID1+2,189978,571,1,1,27.324,-3423.650,35.6203,-1.02974,0,0,0,1,@TIMER,255,1), +(@GUID1+3,189978,571,1,1,85.848,-4961.880,316.0240,-1.74533,0,0,0,1,@TIMER,255,1), +(@GUID1+4,189978,571,1,1,124.983,-3449.730,11.4041,-2.04204,0,0,0,1,@TIMER,255,1), +(@GUID1+5,189978,571,1,1,146.113,-5708.520,190.8280,-1.25664,0,0,0,1,@TIMER,255,1), +(@GUID1+6,189978,571,1,1,196.368,-5529.420,341.1140,1.72787,0,0,0,1,@TIMER,255,1), +(@GUID1+7,189978,571,1,1,222.143,-4541.690,253.7470,0.82030,0,0,0,1,@TIMER,255,1), +(@GUID1+8,189978,571,1,1,229.642,-4166.400,247.4830,-0.78540,0,0,0,1,@TIMER,255,1), +(@GUID1+9,189978,571,1,1,299.400,-5925.310,169.6930,0.89012,0,0,0,1,@TIMER,255,1), +(@GUID1+10,189978,571,1,1,311.682,-5829.520,198.0980,2.58308,0,0,0,1,@TIMER,255,1), +(@GUID1+11,189978,571,1,1,316.353,-5817.650,83.6513,0.92502,0,0,0,1,@TIMER,255,1), +(@GUID1+12,189978,571,1,1,328.762,-5728.000,99.5547,-0.95993,0,0,0,1,@TIMER,255,1), +(@GUID1+13,189978,571,1,1,330.220,-3287.700,18.4444,-2.23402,0,0,0,1,@TIMER,255,1), +(@GUID1+14,189978,571,1,1,423.793,-4250.210,244.9780,2.26892,0,0,0,1,@TIMER,255,1), +(@GUID1+15,189978,571,1,1,492.294,-4829.170,197.9880,-1.83259,0,0,0,1,@TIMER,255,1), +(@GUID1+16,189978,571,1,1,500.158,-5366.890,254.5380,-2.47837,0,0,0,1,@TIMER,255,1), +(@GUID1+17,189978,571,1,1,541.476,-4125.020,233.4580,1.65806,0,0,0,1,@TIMER,255,1), +(@GUID1+18,189978,571,1,1,576.522,-5438.030,252.0870,2.60053,0,0,0,1,@TIMER,255,1), +(@GUID1+19,189978,571,1,1,589.568,-5148.210,-27.0699,-0.92502,0,0,0,1,@TIMER,255,1), +(@GUID1+20,189978,571,1,1,635.328,-5190.950,-62.0246,-0.47124,0,0,0,1,@TIMER,255,1), +(@GUID1+21,189978,571,1,1,667.572,-5772.810,284.2740,2.19912,0,0,0,1,@TIMER,255,1), +(@GUID1+22,189978,571,1,1,714.204,-5995.600,298.3530,-1.23918,0,0,0,1,@TIMER,255,1), +(@GUID1+23,189978,571,1,1,733.277,-5463.260,245.2840,-1.58825,0,0,0,1,@TIMER,255,1), +(@GUID1+24,189978,571,1,1,785.268,-4710.470,189.7250,0.78540,0,0,0,1,@TIMER,255,1), +(@GUID1+25,189978,571,1,3,788.804,-5611.920,231.8180,2.63544,0,0,0,1,@TIMER,255,1), +(@GUID1+26,189978,571,1,1,830.549,-5146.020,-89.1197,-2.82743,0,0,0,1,@TIMER,255,1), +(@GUID1+27,189978,571,1,1,837.785,-3214.380,20.0425,0.66322,0,0,0,1,@TIMER,255,1), +(@GUID1+28,189978,571,1,1,854.087,-5928.980,280.4520,-1.34390,0,0,0,1,@TIMER,255,1), +(@GUID1+29,189978,571,1,1,875.595,-3690.570,175.6530,2.63544,0,0,0,1,@TIMER,255,1), +(@GUID1+30,189978,571,1,1,886.931,-4307.350,193.8120,-1.72787,0,0,0,1,@TIMER,255,1), +(@GUID1+31,189978,571,1,1,895.472,-4540.750,159.1540,0.26180,0,0,0,1,@TIMER,255,1), +(@GUID1+32,189978,571,1,1,910.239,-3593.450,177.5230,2.46091,0,0,0,1,@TIMER,255,1), +(@GUID1+33,189978,571,1,1,937.882,-3032.450,48.7494,0.75049,0,0,0,1,@TIMER,255,1), +(@GUID1+34,189978,571,1,1,985.488,-5351.640,193.8970,3.10665,0,0,0,1,@TIMER,255,1), +(@GUID1+35,189978,571,1,1,997.533,-3464.590,186.6590,0.48869,0,0,0,1,@TIMER,255,1), +(@GUID1+36,189978,571,1,1,998.078,-5148.790,-57.7402,2.47837,0,0,0,1,@TIMER,255,1), +(@GUID1+37,189978,571,1,1,1016.760,-4291.670,174.0770,2.75761,0,0,0,1,@TIMER,255,1), +(@GUID1+38,189978,571,1,1,1041.890,-4154.150,152.6180,0.94248,0,0,0,1,@TIMER,255,1), +(@GUID1+39,189978,571,1,1,1118.230,-3437.520,182.9670,2.65289,0,0,0,1,@TIMER,255,1), +(@GUID1+40,189978,571,1,1,1257.230,-6054.090,270.8700,3.14159,0,0,0,1,@TIMER,255,1), +(@GUID1+41,189978,571,1,3,1257.940,-6169.470,234.7100,-2.72271,0,0,0,1,@TIMER,255,1), +(@GUID1+42,189978,571,1,1,1339.420,-5826.830,281.0600,2.58308,0,0,0,1,@TIMER,255,1), +(@GUID1+43,189978,571,1,1,1462.340,-5216.200,195.6330,-1.60570,0,0,0,1,@TIMER,255,1), +(@GUID1+44,189978,571,1,1,1541.420,-5149.820,182.1700,2.35619,0,0,0,1,@TIMER,255,1), +(@GUID1+45,189978,571,1,1,1598.760,-5001.500,144.0290,-0.52360,0,0,0,1,@TIMER,255,1), +(@GUID1+46,189978,571,1,1,1599.154,-4322.061,187.5960,-1.41372,0,0,0,1,@TIMER,255,1), +(@GUID1+47,189978,571,1,1,1615.540,-5234.790,181.3280,0.27925,0,0,0,1,@TIMER,255,1), +(@GUID1+48,189978,571,1,1,1653.280,-4680.180,88.7987,1.51844,0,0,0,1,@TIMER,255,1), +(@GUID1+49,189978,571,1,1,1660.280,-6275.210,-0.2026,-2.98450,0,0,0,1,@TIMER,255,1), +(@GUID1+50,189978,571,1,1,1683.270,-6037.250,7.9892,-3.12412,0,0,0,1,@TIMER,255,1), +(@GUID1+51,189978,571,1,1,1691.670,-4586.670,169.3620,-1.90241,0,0,0,1,@TIMER,255,1), +(@GUID1+52,189978,571,1,1,1725.580,-4852.210,115.8110,-2.00713,0,0,0,1,@TIMER,255,1), +(@GUID1+53,189978,571,1,1,1742.030,-4378.720,174.1920,2.58308,0,0,0,1,@TIMER,255,1), +(@GUID1+54,189978,571,1,1,1796.960,-6265.710,-0.9726,-2.14675,0,0,0,1,@TIMER,255,1), +(@GUID1+55,189978,571,1,1,1813.380,-5678.040,226.8270,0.29671,0,0,0,1,@TIMER,255,1), +(@GUID1+56,189978,571,1,1,1820.460,-3808.940,151.5820,-2.68781,0,0,0,1,@TIMER,255,1), +(@GUID1+57,189978,571,1,1,1836.030,-3927.070,177.5710,-1.39626,0,0,0,1,@TIMER,255,1), +(@GUID1+58,189978,571,1,1,1864.170,-3001.180,144.1620,2.77507,0,0,0,1,@TIMER,255,1), +(@GUID1+59,189978,571,1,1,1876.110,-4463.470,197.2810,2.53072,0,0,0,1,@TIMER,255,1), +(@GUID1+60,189978,571,1,1,1887.140,-3679.140,153.3620,-0.92502,0,0,0,1,@TIMER,255,1), +(@GUID1+61,189978,571,1,1,1963.890,-2986.950,155.5740,-2.18166,0,0,0,1,@TIMER,255,1), +(@GUID1+62,189978,571,1,1,1985.820,-5552.980,217.1860,1.43117,0,0,0,1,@TIMER,255,1), +(@GUID1+63,189978,571,1,1,2022.600,-2729.910,0.3004,0.83776,0,0,0,1,@TIMER,255,1), +(@GUID1+64,189978,571,1,1,2047.480,-5751.410,222.5030,-2.74016,0,0,0,1,@TIMER,255,1), +(@GUID1+65,189978,571,1,1,2063.090,-5004.980,231.0370,2.93214,0,0,0,1,@TIMER,255,1), +(@GUID1+66,189978,571,1,1,2136.450,-5652.090,224.3920,1.46608,0,0,0,1,@TIMER,255,1), +(@GUID1+67,189978,571,1,1,2143.750,-5151.330,240.6410,2.60053,0,0,0,1,@TIMER,255,1), +(@GUID1+68,189978,571,1,1,2183.740,-5265.660,250.0680,0.47124,0,0,0,1,@TIMER,255,1), +(@GUID1+69,189978,571,1,1,2192.250,-2648.390,1.1699,-1.55334,0,0,0,1,@TIMER,255,1), +(@GUID1+70,189978,571,1,1,2192.970,-2536.350,5.3353,2.49582,0,0,0,1,@TIMER,255,1), +(@GUID1+71,189978,571,1,1,2208.330,-3082.530,132.8410,-0.78540,0,0,0,1,@TIMER,255,1), +(@GUID1+72,189978,571,1,1,2275.290,-2949.500,123.7380,2.14675,0,0,0,1,@TIMER,255,1), +(@GUID1+73,189978,571,1,1,2304.780,-2744.870,-0.0415,2.47837,0,0,0,1,@TIMER,255,1), +(@GUID1+74,189978,571,1,1,2332.090,-5852.160,251.1900,-0.50614,0,0,0,1,@TIMER,255,1), +(@GUID1+75,189978,571,1,1,2357.480,-3706.470,223.2140,-2.32129,0,0,0,1,@TIMER,255,1), +(@GUID1+76,189978,571,1,1,2407.690,-2824.830,9.7012,-0.85521,0,0,0,1,@TIMER,255,1), +(@GUID1+77,189978,571,1,1,2467.060,-2824.690,20.6504,-1.09956,0,0,0,1,@TIMER,255,1), +(@GUID1+78,189978,571,1,1,2478.630,-3080.530,138.9920,0.48869,0,0,0,1,@TIMER,255,1), +(@GUID1+79,189978,571,1,1,2479.220,-5437.190,299.5430,1.74533,0,0,0,1,@TIMER,255,1), +(@GUID1+80,189978,571,1,1,2504.180,-3896.100,263.8390,1.76278,0,0,0,1,@TIMER,255,1), +(@GUID1+81,189978,571,1,1,2508.660,-3015.970,120.7830,-1.13446,0,0,0,1,@TIMER,255,1), +(@GUID1+82,189978,571,1,1,2518.630,-4743.720,246.5690,-0.66322,0,0,0,1,@TIMER,255,1), +(@GUID1+83,189978,571,1,1,2536.780,-3717.470,266.8920,1.43117,0,0,0,1,@TIMER,255,1), +(@GUID1+84,189978,571,1,1,2545.640,-4507.800,230.7980,-2.70526,0,0,0,1,@TIMER,255,1), +(@GUID1+85,189978,571,1,1,2557.900,-4616.650,229.8060,0.80285,0,0,0,1,@TIMER,255,1), +(@GUID1+86,189978,571,1,3,2570.450,-2766.360,8.7401,-0.48869,0,0,0,1,@TIMER,255,1), +(@GUID1+87,189978,571,1,1,2580.790,-4152.530,302.8390,0.75049,0,0,0,1,@TIMER,255,1), +(@GUID1+88,189978,571,1,1,2583.110,-3123.240,128.7190,2.12930,0,0,0,1,@TIMER,255,1), +(@GUID1+89,189978,571,1,1,2588.110,-3004.660,111.5360,-2.19912,0,0,0,1,@TIMER,255,1), +(@GUID1+90,189978,571,1,1,2589.780,-3917.450,296.8400,-0.29671,0,0,0,1,@TIMER,255,1), +(@GUID1+91,189978,571,1,1,2616.550,-5791.180,314.3880,0.03491,0,0,0,1,@TIMER,255,1), +(@GUID1+92,189978,571,1,1,2637.770,-3659.380,241.5800,-2.72271,0,0,0,1,@TIMER,255,1), +(@GUID1+93,189978,571,1,3,2696.920,-4105.830,365.9280,-2.44346,0,0,0,1,@TIMER,255,1), +(@GUID1+94,189978,571,1,1,2700.000,-3145.570,119.8800,1.22173,0,0,0,1,@TIMER,255,1), +(@GUID1+95,189978,571,1,1,2731.690,-5583.630,379.2140,-2.30383,0,0,0,1,@TIMER,255,1), +(@GUID1+96,189978,571,1,3,2733.180,-4021.560,378.2430,0.10472,0,0,0,1,@TIMER,255,1), +(@GUID1+97,189978,571,1,1,2821.700,-3719.720,232.7200,1.06465,0,0,0,1,@TIMER,255,1), +(@GUID1+98,189978,571,1,1,2869.770,-3186.190,134.0100,1.18682,0,0,0,1,@TIMER,255,1), +(@GUID1+99,189978,571,1,1,2918.130,-3075.250,91.0060,1.81514,0,0,0,1,@TIMER,255,1); +-- Rich Cobalt Deposits Howling Fjord +INSERT INTO `gameobject` (`guid`, `id`, `map`, `spawnMask`, `phaseMask`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecs`, `animprogress`, `state`) VALUES +(@GUID2,189979,571,1,1,-144.006,-4989.570,309.6730,2.02458,0,0,0,1,@TIMER,255,1), +(@GUID2+1,189979,571,1,1,-23.354,-3586.670,33.7790,3.10665,0,0,0,1,@TIMER,255,1), +(@GUID2+2,189979,571,1,1,27.324,-3423.650,35.6203,-1.02974,0,0,0,1,@TIMER,255,1), +(@GUID2+3,189979,571,1,1,85.848,-4961.880,316.0240,-1.74533,0,0,0,1,@TIMER,255,1), +(@GUID2+4,189979,571,1,1,124.983,-3449.730,11.4041,-2.04204,0,0,0,1,@TIMER,255,1), +(@GUID2+5,189979,571,1,1,146.113,-5708.520,190.8280,-1.25664,0,0,0,1,@TIMER,255,1), +(@GUID2+6,189979,571,1,1,196.368,-5529.420,341.1140,1.72787,0,0,0,1,@TIMER,255,1), +(@GUID2+7,189979,571,1,1,222.143,-4541.690,253.7470,0.82030,0,0,0,1,@TIMER,255,1), +(@GUID2+8,189979,571,1,1,229.642,-4166.400,247.4830,-0.78540,0,0,0,1,@TIMER,255,1), +(@GUID2+9,189979,571,1,1,299.400,-5925.310,169.6930,0.89012,0,0,0,1,@TIMER,255,1), +(@GUID2+10,189979,571,1,1,311.682,-5829.520,198.0980,2.58308,0,0,0,1,@TIMER,255,1), +(@GUID2+11,189979,571,1,1,316.353,-5817.650,83.6513,0.92502,0,0,0,1,@TIMER,255,1), +(@GUID2+12,189979,571,1,1,328.762,-5728.000,99.5547,-0.95993,0,0,0,1,@TIMER,255,1), +(@GUID2+13,189979,571,1,1,330.220,-3287.700,18.4444,-2.23402,0,0,0,1,@TIMER,255,1), +(@GUID2+14,189979,571,1,1,423.793,-4250.210,244.9780,2.26892,0,0,0,1,@TIMER,255,1), +(@GUID2+15,189979,571,1,1,492.294,-4829.170,197.9880,-1.83259,0,0,0,1,@TIMER,255,1), +(@GUID2+16,189979,571,1,1,500.158,-5366.890,254.5380,-2.47837,0,0,0,1,@TIMER,255,1), +(@GUID2+17,189979,571,1,1,541.476,-4125.020,233.4580,1.65806,0,0,0,1,@TIMER,255,1), +(@GUID2+18,189979,571,1,1,576.522,-5438.030,252.0870,2.60053,0,0,0,1,@TIMER,255,1), +(@GUID2+19,189979,571,1,1,589.568,-5148.210,-27.0699,-0.92502,0,0,0,1,@TIMER,255,1), +(@GUID2+20,189979,571,1,1,635.328,-5190.950,-62.0246,-0.47124,0,0,0,1,@TIMER,255,1), +(@GUID2+21,189979,571,1,1,667.572,-5772.810,284.2740,2.19912,0,0,0,1,@TIMER,255,1), +(@GUID2+22,189979,571,1,1,714.204,-5995.600,298.3530,-1.23918,0,0,0,1,@TIMER,255,1), +(@GUID2+23,189979,571,1,1,733.277,-5463.260,245.2840,-1.58825,0,0,0,1,@TIMER,255,1), +(@GUID2+24,189979,571,1,1,785.268,-4710.470,189.7250,0.78540,0,0,0,1,@TIMER,255,1), +(@GUID2+25,189979,571,1,3,788.804,-5611.920,231.8180,2.63544,0,0,0,1,@TIMER,255,1), +(@GUID2+26,189979,571,1,1,830.549,-5146.020,-89.1197,-2.82743,0,0,0,1,@TIMER,255,1), +(@GUID2+27,189979,571,1,1,837.785,-3214.380,20.0425,0.66322,0,0,0,1,@TIMER,255,1), +(@GUID2+28,189979,571,1,1,854.087,-5928.980,280.4520,-1.34390,0,0,0,1,@TIMER,255,1), +(@GUID2+29,189979,571,1,1,875.595,-3690.570,175.6530,2.63544,0,0,0,1,@TIMER,255,1), +(@GUID2+30,189979,571,1,1,886.931,-4307.350,193.8120,-1.72787,0,0,0,1,@TIMER,255,1), +(@GUID2+31,189979,571,1,1,895.472,-4540.750,159.1540,0.26180,0,0,0,1,@TIMER,255,1), +(@GUID2+32,189979,571,1,1,910.239,-3593.450,177.5230,2.46091,0,0,0,1,@TIMER,255,1), +(@GUID2+33,189979,571,1,1,937.882,-3032.450,48.7494,0.75049,0,0,0,1,@TIMER,255,1), +(@GUID2+34,189979,571,1,1,985.488,-5351.640,193.8970,3.10665,0,0,0,1,@TIMER,255,1), +(@GUID2+35,189979,571,1,1,997.533,-3464.590,186.6590,0.48869,0,0,0,1,@TIMER,255,1), +(@GUID2+36,189979,571,1,1,998.078,-5148.790,-57.7402,2.47837,0,0,0,1,@TIMER,255,1), +(@GUID2+37,189979,571,1,1,1016.760,-4291.670,174.0770,2.75761,0,0,0,1,@TIMER,255,1), +(@GUID2+38,189979,571,1,1,1041.890,-4154.150,152.6180,0.94248,0,0,0,1,@TIMER,255,1), +(@GUID2+39,189979,571,1,1,1118.230,-3437.520,182.9670,2.65289,0,0,0,1,@TIMER,255,1), +(@GUID2+40,189979,571,1,1,1257.230,-6054.090,270.8700,3.14159,0,0,0,1,@TIMER,255,1), +(@GUID2+41,189979,571,1,3,1257.940,-6169.470,234.7100,-2.72271,0,0,0,1,@TIMER,255,1), +(@GUID2+42,189979,571,1,1,1339.420,-5826.830,281.0600,2.58308,0,0,0,1,@TIMER,255,1), +(@GUID2+43,189979,571,1,1,1462.340,-5216.200,195.6330,-1.60570,0,0,0,1,@TIMER,255,1), +(@GUID2+44,189979,571,1,1,1541.420,-5149.820,182.1700,2.35619,0,0,0,1,@TIMER,255,1), +(@GUID2+45,189979,571,1,1,1598.760,-5001.500,144.0290,-0.52360,0,0,0,1,@TIMER,255,1), +(@GUID2+46,189979,571,1,1,1599.154,-4322.061,187.5960,-1.41372,0,0,0,1,@TIMER,255,1), +(@GUID2+47,189979,571,1,1,1615.540,-5234.790,181.3280,0.27925,0,0,0,1,@TIMER,255,1), +(@GUID2+48,189979,571,1,1,1653.280,-4680.180,88.7987,1.51844,0,0,0,1,@TIMER,255,1), +(@GUID2+49,189979,571,1,1,1660.280,-6275.210,-0.2026,-2.98450,0,0,0,1,@TIMER,255,1), +(@GUID2+50,189979,571,1,1,1683.270,-6037.250,7.9892,-3.12412,0,0,0,1,@TIMER,255,1), +(@GUID2+51,189979,571,1,1,1691.670,-4586.670,169.3620,-1.90241,0,0,0,1,@TIMER,255,1), +(@GUID2+52,189979,571,1,1,1725.580,-4852.210,115.8110,-2.00713,0,0,0,1,@TIMER,255,1), +(@GUID2+53,189979,571,1,1,1742.030,-4378.720,174.1920,2.58308,0,0,0,1,@TIMER,255,1), +(@GUID2+54,189979,571,1,1,1796.960,-6265.710,-0.9726,-2.14675,0,0,0,1,@TIMER,255,1), +(@GUID2+55,189979,571,1,1,1813.380,-5678.040,226.8270,0.29671,0,0,0,1,@TIMER,255,1), +(@GUID2+56,189979,571,1,1,1820.460,-3808.940,151.5820,-2.68781,0,0,0,1,@TIMER,255,1), +(@GUID2+57,189979,571,1,1,1836.030,-3927.070,177.5710,-1.39626,0,0,0,1,@TIMER,255,1), +(@GUID2+58,189979,571,1,1,1864.170,-3001.180,144.1620,2.77507,0,0,0,1,@TIMER,255,1), +(@GUID2+59,189979,571,1,1,1876.110,-4463.470,197.2810,2.53072,0,0,0,1,@TIMER,255,1), +(@GUID2+60,189979,571,1,1,1887.140,-3679.140,153.3620,-0.92502,0,0,0,1,@TIMER,255,1), +(@GUID2+61,189979,571,1,1,1963.890,-2986.950,155.5740,-2.18166,0,0,0,1,@TIMER,255,1), +(@GUID2+62,189979,571,1,1,1985.820,-5552.980,217.1860,1.43117,0,0,0,1,@TIMER,255,1), +(@GUID2+63,189979,571,1,1,2022.600,-2729.910,0.3004,0.83776,0,0,0,1,@TIMER,255,1), +(@GUID2+64,189979,571,1,1,2047.480,-5751.410,222.5030,-2.74016,0,0,0,1,@TIMER,255,1), +(@GUID2+65,189979,571,1,1,2063.090,-5004.980,231.0370,2.93214,0,0,0,1,@TIMER,255,1), +(@GUID2+66,189979,571,1,1,2136.450,-5652.090,224.3920,1.46608,0,0,0,1,@TIMER,255,1), +(@GUID2+67,189979,571,1,1,2143.750,-5151.330,240.6410,2.60053,0,0,0,1,@TIMER,255,1), +(@GUID2+68,189979,571,1,1,2183.740,-5265.660,250.0680,0.47124,0,0,0,1,@TIMER,255,1), +(@GUID2+69,189979,571,1,1,2192.250,-2648.390,1.1699,-1.55334,0,0,0,1,@TIMER,255,1), +(@GUID2+70,189979,571,1,1,2192.970,-2536.350,5.3353,2.49582,0,0,0,1,@TIMER,255,1), +(@GUID2+71,189979,571,1,1,2208.330,-3082.530,132.8410,-0.78540,0,0,0,1,@TIMER,255,1), +(@GUID2+72,189979,571,1,1,2275.290,-2949.500,123.7380,2.14675,0,0,0,1,@TIMER,255,1), +(@GUID2+73,189979,571,1,1,2304.780,-2744.870,-0.0415,2.47837,0,0,0,1,@TIMER,255,1), +(@GUID2+74,189979,571,1,1,2332.090,-5852.160,251.1900,-0.50614,0,0,0,1,@TIMER,255,1), +(@GUID2+75,189979,571,1,1,2357.480,-3706.470,223.2140,-2.32129,0,0,0,1,@TIMER,255,1), +(@GUID2+76,189979,571,1,1,2407.690,-2824.830,9.7012,-0.85521,0,0,0,1,@TIMER,255,1), +(@GUID2+77,189979,571,1,1,2467.060,-2824.690,20.6504,-1.09956,0,0,0,1,@TIMER,255,1), +(@GUID2+78,189979,571,1,1,2478.630,-3080.530,138.9920,0.48869,0,0,0,1,@TIMER,255,1), +(@GUID2+79,189979,571,1,1,2479.220,-5437.190,299.5430,1.74533,0,0,0,1,@TIMER,255,1), +(@GUID2+80,189979,571,1,1,2504.180,-3896.100,263.8390,1.76278,0,0,0,1,@TIMER,255,1), +(@GUID2+81,189979,571,1,1,2508.660,-3015.970,120.7830,-1.13446,0,0,0,1,@TIMER,255,1), +(@GUID2+82,189979,571,1,1,2518.630,-4743.720,246.5690,-0.66322,0,0,0,1,@TIMER,255,1), +(@GUID2+83,189979,571,1,1,2536.780,-3717.470,266.8920,1.43117,0,0,0,1,@TIMER,255,1), +(@GUID2+84,189979,571,1,1,2545.640,-4507.800,230.7980,-2.70526,0,0,0,1,@TIMER,255,1), +(@GUID2+85,189979,571,1,1,2557.900,-4616.650,229.8060,0.80285,0,0,0,1,@TIMER,255,1), +(@GUID2+86,189979,571,1,3,2570.450,-2766.360,8.7401,-0.48869,0,0,0,1,@TIMER,255,1), +(@GUID2+87,189979,571,1,1,2580.790,-4152.530,302.8390,0.75049,0,0,0,1,@TIMER,255,1), +(@GUID2+88,189979,571,1,1,2583.110,-3123.240,128.7190,2.12930,0,0,0,1,@TIMER,255,1), +(@GUID2+89,189979,571,1,1,2588.110,-3004.660,111.5360,-2.19912,0,0,0,1,@TIMER,255,1), +(@GUID2+90,189979,571,1,1,2589.780,-3917.450,296.8400,-0.29671,0,0,0,1,@TIMER,255,1), +(@GUID2+91,189979,571,1,1,2616.550,-5791.180,314.3880,0.03491,0,0,0,1,@TIMER,255,1), +(@GUID2+92,189979,571,1,1,2637.770,-3659.380,241.5800,-2.72271,0,0,0,1,@TIMER,255,1), +(@GUID2+93,189979,571,1,3,2696.920,-4105.830,365.9280,-2.44346,0,0,0,1,@TIMER,255,1), +(@GUID2+94,189979,571,1,1,2700.000,-3145.570,119.8800,1.22173,0,0,0,1,@TIMER,255,1), +(@GUID2+95,189979,571,1,1,2731.690,-5583.630,379.2140,-2.30383,0,0,0,1,@TIMER,255,1), +(@GUID2+96,189979,571,1,3,2733.180,-4021.560,378.2430,0.10472,0,0,0,1,@TIMER,255,1), +(@GUID2+97,189979,571,1,1,2821.700,-3719.720,232.7200,1.06465,0,0,0,1,@TIMER,255,1), +(@GUID2+98,189979,571,1,1,2869.770,-3186.190,134.0100,1.18682,0,0,0,1,@TIMER,255,1), +(@GUID2+99,189979,571,1,1,2918.130,-3075.250,91.0060,1.81514,0,0,0,1,@TIMER,255,1); +-- Pooling +DELETE FROM `pool_gameobject` WHERE `guid` BETWEEN @GUID1 AND @GUID1+@LASTGUID; +DELETE FROM `pool_gameobject` WHERE `guid` BETWEEN @GUID2 AND @GUID2+@LASTGUID; +-- Pool different ore types to each spawnpoint +INSERT INTO `pool_gameobject` (`guid`,`pool_entry`,`chance`,`description`) VALUES +(@GUID1+0,@POOL+0,@CHANCE1, 'Howling Fjord Ore Spawnpoint 1 Cobalt'), +(@GUID2+0,@POOL+0,@CHANCE2, 'Howling Fjord Ore Spawnpoint 1 Rich Cobalt'), +(@GUID1+1,@POOL+1,@CHANCE1, 'Howling Fjord Ore Spawnpoint 2 Cobalt'), +(@GUID2+1,@POOL+1,@CHANCE2, 'Howling Fjord Ore Spawnpoint 2 Rich Cobalt'), +(@GUID1+2,@POOL+2,@CHANCE1, 'Howling Fjord Ore Spawnpoint 3 Cobalt'), +(@GUID2+2,@POOL+2,@CHANCE2, 'Howling Fjord Ore Spawnpoint 3 Rich Cobalt'), +(@GUID1+3,@POOL+3,@CHANCE1, 'Howling Fjord Ore Spawnpoint 4 Cobalt'), +(@GUID2+3,@POOL+3,@CHANCE2, 'Howling Fjord Ore Spawnpoint 4 Rich Cobalt'), +(@GUID1+4,@POOL+4,@CHANCE1, 'Howling Fjord Ore Spawnpoint 5 Cobalt'), +(@GUID2+4,@POOL+4,@CHANCE2, 'Howling Fjord Ore Spawnpoint 5 Rich Cobalt'), +(@GUID1+5,@POOL+5,@CHANCE1, 'Howling Fjord Ore Spawnpoint 6 Cobalt'), +(@GUID2+5,@POOL+5,@CHANCE2, 'Howling Fjord Ore Spawnpoint 6 Rich Cobalt'), +(@GUID1+6,@POOL+6,@CHANCE1, 'Howling Fjord Ore Spawnpoint 7 Cobalt'), +(@GUID2+6,@POOL+6,@CHANCE2, 'Howling Fjord Ore Spawnpoint 7 Rich Cobalt'), +(@GUID1+7,@POOL+7,@CHANCE1, 'Howling Fjord Ore Spawnpoint 8 Cobalt'), +(@GUID2+7,@POOL+7,@CHANCE2, 'Howling Fjord Ore Spawnpoint 8 Rich Cobalt'), +(@GUID1+8,@POOL+8,@CHANCE1, 'Howling Fjord Ore Spawnpoint 9 Cobalt'), +(@GUID2+8,@POOL+8,@CHANCE2, 'Howling Fjord Ore Spawnpoint 9 Rich Cobalt'), +(@GUID1+9,@POOL+9,@CHANCE1, 'Howling Fjord Ore Spawnpoint 10 Cobalt'), +(@GUID2+9,@POOL+9,@CHANCE2, 'Howling Fjord Ore Spawnpoint 10 Rich Cobalt'), +(@GUID1+10,@POOL+10,@CHANCE1, 'Howling Fjord Ore Spawnpoint 11 Cobalt'), +(@GUID2+10,@POOL+10,@CHANCE2, 'Howling Fjord Ore Spawnpoint 11 Rich Cobalt'), +(@GUID1+11,@POOL+11,@CHANCE1, 'Howling Fjord Ore Spawnpoint 12 Cobalt'), +(@GUID2+11,@POOL+11,@CHANCE2, 'Howling Fjord Ore Spawnpoint 12 Rich Cobalt'), +(@GUID1+12,@POOL+12,@CHANCE1, 'Howling Fjord Ore Spawnpoint 13 Cobalt'), +(@GUID2+12,@POOL+12,@CHANCE2, 'Howling Fjord Ore Spawnpoint 13 Rich Cobalt'), +(@GUID1+13,@POOL+13,@CHANCE1, 'Howling Fjord Ore Spawnpoint 14 Cobalt'), +(@GUID2+13,@POOL+13,@CHANCE2, 'Howling Fjord Ore Spawnpoint 14 Rich Cobalt'), +(@GUID1+14,@POOL+14,@CHANCE1, 'Howling Fjord Ore Spawnpoint 15 Cobalt'), +(@GUID2+14,@POOL+14,@CHANCE2, 'Howling Fjord Ore Spawnpoint 15 Rich Cobalt'), +(@GUID1+15,@POOL+15,@CHANCE1, 'Howling Fjord Ore Spawnpoint 16 Cobalt'), +(@GUID2+15,@POOL+15,@CHANCE2, 'Howling Fjord Ore Spawnpoint 16 Rich Cobalt'), +(@GUID1+16,@POOL+16,@CHANCE1, 'Howling Fjord Ore Spawnpoint 17 Cobalt'), +(@GUID2+16,@POOL+16,@CHANCE2, 'Howling Fjord Ore Spawnpoint 17 Rich Cobalt'), +(@GUID1+17,@POOL+17,@CHANCE1, 'Howling Fjord Ore Spawnpoint 18 Cobalt'), +(@GUID2+17,@POOL+17,@CHANCE2, 'Howling Fjord Ore Spawnpoint 18 Rich Cobalt'), +(@GUID1+18,@POOL+18,@CHANCE1, 'Howling Fjord Ore Spawnpoint 19 Cobalt'), +(@GUID2+18,@POOL+18,@CHANCE2, 'Howling Fjord Ore Spawnpoint 19 Rich Cobalt'), +(@GUID1+19,@POOL+19,@CHANCE1, 'Howling Fjord Ore Spawnpoint 20 Cobalt'), +(@GUID2+19,@POOL+19,@CHANCE2, 'Howling Fjord Ore Spawnpoint 20 Rich Cobalt'), +(@GUID1+20,@POOL+20,@CHANCE1, 'Howling Fjord Ore Spawnpoint 21 Cobalt'), +(@GUID2+20,@POOL+20,@CHANCE2, 'Howling Fjord Ore Spawnpoint 21 Rich Cobalt'), +(@GUID1+21,@POOL+21,@CHANCE1, 'Howling Fjord Ore Spawnpoint 22 Cobalt'), +(@GUID2+21,@POOL+21,@CHANCE2, 'Howling Fjord Ore Spawnpoint 22 Rich Cobalt'), +(@GUID1+22,@POOL+22,@CHANCE1, 'Howling Fjord Ore Spawnpoint 23 Cobalt'), +(@GUID2+22,@POOL+22,@CHANCE2, 'Howling Fjord Ore Spawnpoint 23 Rich Cobalt'), +(@GUID1+23,@POOL+23,@CHANCE1, 'Howling Fjord Ore Spawnpoint 24 Cobalt'), +(@GUID2+23,@POOL+23,@CHANCE2, 'Howling Fjord Ore Spawnpoint 24 Rich Cobalt'), +(@GUID1+24,@POOL+24,@CHANCE1, 'Howling Fjord Ore Spawnpoint 25 Cobalt'), +(@GUID2+24,@POOL+24,@CHANCE2, 'Howling Fjord Ore Spawnpoint 25 Rich Cobalt'), +(@GUID1+25,@POOL+25,@CHANCE1, 'Howling Fjord Ore Spawnpoint 26 Cobalt'), +(@GUID2+25,@POOL+25,@CHANCE2, 'Howling Fjord Ore Spawnpoint 26 Rich Cobalt'), +(@GUID1+26,@POOL+26,@CHANCE1, 'Howling Fjord Ore Spawnpoint 27 Cobalt'), +(@GUID2+26,@POOL+26,@CHANCE2, 'Howling Fjord Ore Spawnpoint 27 Rich Cobalt'), +(@GUID1+27,@POOL+27,@CHANCE1, 'Howling Fjord Ore Spawnpoint 28 Cobalt'), +(@GUID2+27,@POOL+27,@CHANCE2, 'Howling Fjord Ore Spawnpoint 28 Rich Cobalt'), +(@GUID1+28,@POOL+28,@CHANCE1, 'Howling Fjord Ore Spawnpoint 29 Cobalt'), +(@GUID2+28,@POOL+28,@CHANCE2, 'Howling Fjord Ore Spawnpoint 29 Rich Cobalt'), +(@GUID1+29,@POOL+29,@CHANCE1, 'Howling Fjord Ore Spawnpoint 30 Cobalt'), +(@GUID2+29,@POOL+29,@CHANCE2, 'Howling Fjord Ore Spawnpoint 30 Rich Cobalt'), +(@GUID1+30,@POOL+30,@CHANCE1, 'Howling Fjord Ore Spawnpoint 31 Cobalt'), +(@GUID2+30,@POOL+30,@CHANCE2, 'Howling Fjord Ore Spawnpoint 31 Rich Cobalt'), +(@GUID1+31,@POOL+31,@CHANCE1, 'Howling Fjord Ore Spawnpoint 32 Cobalt'), +(@GUID2+31,@POOL+31,@CHANCE2, 'Howling Fjord Ore Spawnpoint 32 Rich Cobalt'), +(@GUID1+32,@POOL+32,@CHANCE1, 'Howling Fjord Ore Spawnpoint 33 Cobalt'), +(@GUID2+32,@POOL+32,@CHANCE2, 'Howling Fjord Ore Spawnpoint 33 Rich Cobalt'), +(@GUID1+33,@POOL+33,@CHANCE1, 'Howling Fjord Ore Spawnpoint 34 Cobalt'), +(@GUID2+33,@POOL+33,@CHANCE2, 'Howling Fjord Ore Spawnpoint 34 Rich Cobalt'), +(@GUID1+34,@POOL+34,@CHANCE1, 'Howling Fjord Ore Spawnpoint 35 Cobalt'), +(@GUID2+34,@POOL+34,@CHANCE2, 'Howling Fjord Ore Spawnpoint 35 Rich Cobalt'), +(@GUID1+35,@POOL+35,@CHANCE1, 'Howling Fjord Ore Spawnpoint 36 Cobalt'), +(@GUID2+35,@POOL+35,@CHANCE2, 'Howling Fjord Ore Spawnpoint 36 Rich Cobalt'), +(@GUID1+36,@POOL+36,@CHANCE1, 'Howling Fjord Ore Spawnpoint 37 Cobalt'), +(@GUID2+36,@POOL+36,@CHANCE2, 'Howling Fjord Ore Spawnpoint 37 Rich Cobalt'), +(@GUID1+37,@POOL+37,@CHANCE1, 'Howling Fjord Ore Spawnpoint 38 Cobalt'), +(@GUID2+37,@POOL+37,@CHANCE2, 'Howling Fjord Ore Spawnpoint 38 Rich Cobalt'), +(@GUID1+38,@POOL+38,@CHANCE1, 'Howling Fjord Ore Spawnpoint 39 Cobalt'), +(@GUID2+38,@POOL+38,@CHANCE2, 'Howling Fjord Ore Spawnpoint 39 Rich Cobalt'), +(@GUID1+39,@POOL+39,@CHANCE1, 'Howling Fjord Ore Spawnpoint 40 Cobalt'), +(@GUID2+39,@POOL+39,@CHANCE2, 'Howling Fjord Ore Spawnpoint 40 Rich Cobalt'), +(@GUID1+40,@POOL+40,@CHANCE1, 'Howling Fjord Ore Spawnpoint 41 Cobalt'), +(@GUID2+40,@POOL+40,@CHANCE2, 'Howling Fjord Ore Spawnpoint 41 Rich Cobalt'), +(@GUID1+41,@POOL+41,@CHANCE1, 'Howling Fjord Ore Spawnpoint 42 Cobalt'), +(@GUID2+41,@POOL+41,@CHANCE2, 'Howling Fjord Ore Spawnpoint 42 Rich Cobalt'), +(@GUID1+42,@POOL+42,@CHANCE1, 'Howling Fjord Ore Spawnpoint 43 Cobalt'), +(@GUID2+42,@POOL+42,@CHANCE2, 'Howling Fjord Ore Spawnpoint 43 Rich Cobalt'), +(@GUID1+43,@POOL+43,@CHANCE1, 'Howling Fjord Ore Spawnpoint 44 Cobalt'), +(@GUID2+43,@POOL+43,@CHANCE2, 'Howling Fjord Ore Spawnpoint 44 Rich Cobalt'), +(@GUID1+44,@POOL+44,@CHANCE1, 'Howling Fjord Ore Spawnpoint 45 Cobalt'), +(@GUID2+44,@POOL+44,@CHANCE2, 'Howling Fjord Ore Spawnpoint 45 Rich Cobalt'), +(@GUID1+45,@POOL+45,@CHANCE1, 'Howling Fjord Ore Spawnpoint 46 Cobalt'), +(@GUID2+45,@POOL+45,@CHANCE2, 'Howling Fjord Ore Spawnpoint 46 Rich Cobalt'), +(@GUID1+46,@POOL+46,@CHANCE1, 'Howling Fjord Ore Spawnpoint 47 Cobalt'), +(@GUID2+46,@POOL+46,@CHANCE2, 'Howling Fjord Ore Spawnpoint 47 Rich Cobalt'), +(@GUID1+47,@POOL+47,@CHANCE1, 'Howling Fjord Ore Spawnpoint 48 Cobalt'), +(@GUID2+47,@POOL+47,@CHANCE2, 'Howling Fjord Ore Spawnpoint 48 Rich Cobalt'), +(@GUID1+48,@POOL+48,@CHANCE1, 'Howling Fjord Ore Spawnpoint 49 Cobalt'), +(@GUID2+48,@POOL+48,@CHANCE2, 'Howling Fjord Ore Spawnpoint 49 Rich Cobalt'), +(@GUID1+49,@POOL+49,@CHANCE1, 'Howling Fjord Ore Spawnpoint 50 Cobalt'), +(@GUID2+49,@POOL+49,@CHANCE2, 'Howling Fjord Ore Spawnpoint 50 Rich Cobalt'), +(@GUID1+50,@POOL+50,@CHANCE1, 'Howling Fjord Ore Spawnpoint 51 Cobalt'), +(@GUID2+50,@POOL+50,@CHANCE2, 'Howling Fjord Ore Spawnpoint 51 Rich Cobalt'), +(@GUID1+51,@POOL+51,@CHANCE1, 'Howling Fjord Ore Spawnpoint 52 Cobalt'), +(@GUID2+51,@POOL+51,@CHANCE2, 'Howling Fjord Ore Spawnpoint 52 Rich Cobalt'), +(@GUID1+52,@POOL+52,@CHANCE1, 'Howling Fjord Ore Spawnpoint 53 Cobalt'), +(@GUID2+52,@POOL+52,@CHANCE2, 'Howling Fjord Ore Spawnpoint 53 Rich Cobalt'), +(@GUID1+53,@POOL+53,@CHANCE1, 'Howling Fjord Ore Spawnpoint 54 Cobalt'), +(@GUID2+53,@POOL+53,@CHANCE2, 'Howling Fjord Ore Spawnpoint 54 Rich Cobalt'), +(@GUID1+54,@POOL+54,@CHANCE1, 'Howling Fjord Ore Spawnpoint 55 Cobalt'), +(@GUID2+54,@POOL+54,@CHANCE2, 'Howling Fjord Ore Spawnpoint 55 Rich Cobalt'), +(@GUID1+55,@POOL+55,@CHANCE1, 'Howling Fjord Ore Spawnpoint 56 Cobalt'), +(@GUID2+55,@POOL+55,@CHANCE2, 'Howling Fjord Ore Spawnpoint 56 Rich Cobalt'), +(@GUID1+56,@POOL+56,@CHANCE1, 'Howling Fjord Ore Spawnpoint 57 Cobalt'), +(@GUID2+56,@POOL+56,@CHANCE2, 'Howling Fjord Ore Spawnpoint 57 Rich Cobalt'), +(@GUID1+57,@POOL+57,@CHANCE1, 'Howling Fjord Ore Spawnpoint 58 Cobalt'), +(@GUID2+57,@POOL+57,@CHANCE2, 'Howling Fjord Ore Spawnpoint 58 Rich Cobalt'), +(@GUID1+58,@POOL+58,@CHANCE1, 'Howling Fjord Ore Spawnpoint 59 Cobalt'), +(@GUID2+58,@POOL+58,@CHANCE2, 'Howling Fjord Ore Spawnpoint 59 Rich Cobalt'), +(@GUID1+59,@POOL+59,@CHANCE1, 'Howling Fjord Ore Spawnpoint 60 Cobalt'), +(@GUID2+59,@POOL+59,@CHANCE2, 'Howling Fjord Ore Spawnpoint 60 Rich Cobalt'), +(@GUID1+60,@POOL+60,@CHANCE1, 'Howling Fjord Ore Spawnpoint 61 Cobalt'), +(@GUID2+60,@POOL+60,@CHANCE2, 'Howling Fjord Ore Spawnpoint 61 Rich Cobalt'), +(@GUID1+61,@POOL+61,@CHANCE1, 'Howling Fjord Ore Spawnpoint 62 Cobalt'), +(@GUID2+61,@POOL+61,@CHANCE2, 'Howling Fjord Ore Spawnpoint 62 Rich Cobalt'), +(@GUID1+62,@POOL+62,@CHANCE1, 'Howling Fjord Ore Spawnpoint 63 Cobalt'), +(@GUID2+62,@POOL+62,@CHANCE2, 'Howling Fjord Ore Spawnpoint 63 Rich Cobalt'), +(@GUID1+63,@POOL+63,@CHANCE1, 'Howling Fjord Ore Spawnpoint 64 Cobalt'), +(@GUID2+63,@POOL+63,@CHANCE2, 'Howling Fjord Ore Spawnpoint 64 Rich Cobalt'), +(@GUID1+64,@POOL+64,@CHANCE1, 'Howling Fjord Ore Spawnpoint 65 Cobalt'), +(@GUID2+64,@POOL+64,@CHANCE2, 'Howling Fjord Ore Spawnpoint 65 Rich Cobalt'), +(@GUID1+65,@POOL+65,@CHANCE1, 'Howling Fjord Ore Spawnpoint 66 Cobalt'), +(@GUID2+65,@POOL+65,@CHANCE2, 'Howling Fjord Ore Spawnpoint 66 Rich Cobalt'), +(@GUID1+66,@POOL+66,@CHANCE1, 'Howling Fjord Ore Spawnpoint 67 Cobalt'), +(@GUID2+66,@POOL+66,@CHANCE2, 'Howling Fjord Ore Spawnpoint 67 Rich Cobalt'), +(@GUID1+67,@POOL+67,@CHANCE1, 'Howling Fjord Ore Spawnpoint 68 Cobalt'), +(@GUID2+67,@POOL+67,@CHANCE2, 'Howling Fjord Ore Spawnpoint 68 Rich Cobalt'), +(@GUID1+68,@POOL+68,@CHANCE1, 'Howling Fjord Ore Spawnpoint 69 Cobalt'), +(@GUID2+68,@POOL+68,@CHANCE2, 'Howling Fjord Ore Spawnpoint 69 Rich Cobalt'), +(@GUID1+69,@POOL+69,@CHANCE1, 'Howling Fjord Ore Spawnpoint 70 Cobalt'), +(@GUID2+69,@POOL+69,@CHANCE2, 'Howling Fjord Ore Spawnpoint 70 Rich Cobalt'), +(@GUID1+70,@POOL+70,@CHANCE1, 'Howling Fjord Ore Spawnpoint 71 Cobalt'), +(@GUID2+70,@POOL+70,@CHANCE2, 'Howling Fjord Ore Spawnpoint 71 Rich Cobalt'), +(@GUID1+71,@POOL+71,@CHANCE1, 'Howling Fjord Ore Spawnpoint 72 Cobalt'), +(@GUID2+71,@POOL+71,@CHANCE2, 'Howling Fjord Ore Spawnpoint 72 Rich Cobalt'), +(@GUID1+72,@POOL+72,@CHANCE1, 'Howling Fjord Ore Spawnpoint 73 Cobalt'), +(@GUID2+72,@POOL+72,@CHANCE2, 'Howling Fjord Ore Spawnpoint 73 Rich Cobalt'), +(@GUID1+73,@POOL+73,@CHANCE1, 'Howling Fjord Ore Spawnpoint 74 Cobalt'), +(@GUID2+73,@POOL+73,@CHANCE2, 'Howling Fjord Ore Spawnpoint 74 Rich Cobalt'), +(@GUID1+74,@POOL+74,@CHANCE1, 'Howling Fjord Ore Spawnpoint 75 Cobalt'), +(@GUID2+74,@POOL+74,@CHANCE2, 'Howling Fjord Ore Spawnpoint 75 Rich Cobalt'), +(@GUID1+75,@POOL+75,@CHANCE1, 'Howling Fjord Ore Spawnpoint 76 Cobalt'), +(@GUID2+75,@POOL+75,@CHANCE2, 'Howling Fjord Ore Spawnpoint 76 Rich Cobalt'), +(@GUID1+76,@POOL+76,@CHANCE1, 'Howling Fjord Ore Spawnpoint 77 Cobalt'), +(@GUID2+76,@POOL+76,@CHANCE2, 'Howling Fjord Ore Spawnpoint 77 Rich Cobalt'), +(@GUID1+77,@POOL+77,@CHANCE1, 'Howling Fjord Ore Spawnpoint 78 Cobalt'), +(@GUID2+77,@POOL+77,@CHANCE2, 'Howling Fjord Ore Spawnpoint 78 Rich Cobalt'), +(@GUID1+78,@POOL+78,@CHANCE1, 'Howling Fjord Ore Spawnpoint 79 Cobalt'), +(@GUID2+78,@POOL+78,@CHANCE2, 'Howling Fjord Ore Spawnpoint 79 Rich Cobalt'), +(@GUID1+79,@POOL+79,@CHANCE1, 'Howling Fjord Ore Spawnpoint 80 Cobalt'), +(@GUID2+79,@POOL+79,@CHANCE2, 'Howling Fjord Ore Spawnpoint 80 Rich Cobalt'), +(@GUID1+80,@POOL+80,@CHANCE1, 'Howling Fjord Ore Spawnpoint 81 Cobalt'), +(@GUID2+80,@POOL+80,@CHANCE2, 'Howling Fjord Ore Spawnpoint 81 Rich Cobalt'), +(@GUID1+81,@POOL+81,@CHANCE1, 'Howling Fjord Ore Spawnpoint 82 Cobalt'), +(@GUID2+81,@POOL+81,@CHANCE2, 'Howling Fjord Ore Spawnpoint 82 Rich Cobalt'), +(@GUID1+82,@POOL+82,@CHANCE1, 'Howling Fjord Ore Spawnpoint 83 Cobalt'), +(@GUID2+82,@POOL+82,@CHANCE2, 'Howling Fjord Ore Spawnpoint 83 Rich Cobalt'), +(@GUID1+83,@POOL+83,@CHANCE1, 'Howling Fjord Ore Spawnpoint 84 Cobalt'), +(@GUID2+83,@POOL+83,@CHANCE2, 'Howling Fjord Ore Spawnpoint 84 Rich Cobalt'), +(@GUID1+84,@POOL+84,@CHANCE1, 'Howling Fjord Ore Spawnpoint 85 Cobalt'), +(@GUID2+84,@POOL+84,@CHANCE2, 'Howling Fjord Ore Spawnpoint 85 Rich Cobalt'), +(@GUID1+85,@POOL+85,@CHANCE1, 'Howling Fjord Ore Spawnpoint 86 Cobalt'), +(@GUID2+85,@POOL+85,@CHANCE2, 'Howling Fjord Ore Spawnpoint 86 Rich Cobalt'), +(@GUID1+86,@POOL+86,@CHANCE1, 'Howling Fjord Ore Spawnpoint 87 Cobalt'), +(@GUID2+86,@POOL+86,@CHANCE2, 'Howling Fjord Ore Spawnpoint 87 Rich Cobalt'), +(@GUID1+87,@POOL+87,@CHANCE1, 'Howling Fjord Ore Spawnpoint 88 Cobalt'), +(@GUID2+87,@POOL+87,@CHANCE2, 'Howling Fjord Ore Spawnpoint 88 Rich Cobalt'), +(@GUID1+88,@POOL+88,@CHANCE1, 'Howling Fjord Ore Spawnpoint 89 Cobalt'), +(@GUID2+88,@POOL+88,@CHANCE2, 'Howling Fjord Ore Spawnpoint 89 Rich Cobalt'), +(@GUID1+89,@POOL+89,@CHANCE1, 'Howling Fjord Ore Spawnpoint 90 Cobalt'), +(@GUID2+89,@POOL+89,@CHANCE2, 'Howling Fjord Ore Spawnpoint 90 Rich Cobalt'), +(@GUID1+90,@POOL+90,@CHANCE1, 'Howling Fjord Ore Spawnpoint 91 Cobalt'), +(@GUID2+90,@POOL+90,@CHANCE2, 'Howling Fjord Ore Spawnpoint 91 Rich Cobalt'), +(@GUID1+91,@POOL+91,@CHANCE1, 'Howling Fjord Ore Spawnpoint 92 Cobalt'), +(@GUID2+91,@POOL+91,@CHANCE2, 'Howling Fjord Ore Spawnpoint 92 Rich Cobalt'), +(@GUID1+92,@POOL+92,@CHANCE1, 'Howling Fjord Ore Spawnpoint 93 Cobalt'), +(@GUID2+92,@POOL+92,@CHANCE2, 'Howling Fjord Ore Spawnpoint 93 Rich Cobalt'), +(@GUID1+93,@POOL+93,@CHANCE1, 'Howling Fjord Ore Spawnpoint 94 Cobalt'), +(@GUID2+93,@POOL+93,@CHANCE2, 'Howling Fjord Ore Spawnpoint 94 Rich Cobalt'), +(@GUID1+94,@POOL+94,@CHANCE1, 'Howling Fjord Ore Spawnpoint 95 Cobalt'), +(@GUID2+94,@POOL+94,@CHANCE2, 'Howling Fjord Ore Spawnpoint 95 Rich Cobalt'), +(@GUID1+95,@POOL+95,@CHANCE1, 'Howling Fjord Ore Spawnpoint 96 Cobalt'), +(@GUID2+95,@POOL+95,@CHANCE2, 'Howling Fjord Ore Spawnpoint 96 Rich Cobalt'), +(@GUID1+96,@POOL+96,@CHANCE1, 'Howling Fjord Ore Spawnpoint 97 Cobalt'), +(@GUID2+96,@POOL+96,@CHANCE2, 'Howling Fjord Ore Spawnpoint 97 Rich Cobalt'), +(@GUID1+97,@POOL+97,@CHANCE1, 'Howling Fjord Ore Spawnpoint 98 Cobalt'), +(@GUID2+97,@POOL+97,@CHANCE2, 'Howling Fjord Ore Spawnpoint 98 Rich Cobalt'), +(@GUID1+98,@POOL+98,@CHANCE1, 'Howling Fjord Ore Spawnpoint 99 Cobalt'), +(@GUID2+98,@POOL+98,@CHANCE2, 'Howling Fjord Ore Spawnpoint 99 Rich Cobalt'), +(@GUID1+99,@POOL+99,@CHANCE1, 'Howling Fjord Ore Spawnpoint 100 Cobalt'), +(@GUID2+99,@POOL+99,@CHANCE2, 'Howling Fjord Ore Spawnpoint 100 Rich Cobalt'); +-- Add each pool to pool template +DELETE FROM `pool_template` WHERE `entry` BETWEEN @POOL AND @POOL+@LASTGUID; +INSERT INTO `pool_template` (`entry`,`max_limit`,`description`) VALUES +(@POOL+0,1, 'Howling Fjord Ore Spawnpoint 1'), +(@POOL+1,1, 'Howling Fjord Ore Spawnpoint 2'), +(@POOL+2,1, 'Howling Fjord Ore Spawnpoint 3'), +(@POOL+3,1, 'Howling Fjord Ore Spawnpoint 4'), +(@POOL+4,1, 'Howling Fjord Ore Spawnpoint 5'), +(@POOL+5,1, 'Howling Fjord Ore Spawnpoint 6'), +(@POOL+6,1, 'Howling Fjord Ore Spawnpoint 7'), +(@POOL+7,1, 'Howling Fjord Ore Spawnpoint 8'), +(@POOL+8,1, 'Howling Fjord Ore Spawnpoint 9'), +(@POOL+9,1, 'Howling Fjord Ore Spawnpoint 10'), +(@POOL+10,1, 'Howling Fjord Ore Spawnpoint 11'), +(@POOL+11,1, 'Howling Fjord Ore Spawnpoint 12'), +(@POOL+12,1, 'Howling Fjord Ore Spawnpoint 13'), +(@POOL+13,1, 'Howling Fjord Ore Spawnpoint 14'), +(@POOL+14,1, 'Howling Fjord Ore Spawnpoint 15'), +(@POOL+15,1, 'Howling Fjord Ore Spawnpoint 16'), +(@POOL+16,1, 'Howling Fjord Ore Spawnpoint 17'), +(@POOL+17,1, 'Howling Fjord Ore Spawnpoint 18'), +(@POOL+18,1, 'Howling Fjord Ore Spawnpoint 19'), +(@POOL+19,1, 'Howling Fjord Ore Spawnpoint 20'), +(@POOL+20,1, 'Howling Fjord Ore Spawnpoint 21'), +(@POOL+21,1, 'Howling Fjord Ore Spawnpoint 22'), +(@POOL+22,1, 'Howling Fjord Ore Spawnpoint 23'), +(@POOL+23,1, 'Howling Fjord Ore Spawnpoint 24'), +(@POOL+24,1, 'Howling Fjord Ore Spawnpoint 25'), +(@POOL+25,1, 'Howling Fjord Ore Spawnpoint 26'), +(@POOL+26,1, 'Howling Fjord Ore Spawnpoint 27'), +(@POOL+27,1, 'Howling Fjord Ore Spawnpoint 28'), +(@POOL+28,1, 'Howling Fjord Ore Spawnpoint 29'), +(@POOL+29,1, 'Howling Fjord Ore Spawnpoint 30'), +(@POOL+30,1, 'Howling Fjord Ore Spawnpoint 31'), +(@POOL+31,1, 'Howling Fjord Ore Spawnpoint 32'), +(@POOL+32,1, 'Howling Fjord Ore Spawnpoint 33'), +(@POOL+33,1, 'Howling Fjord Ore Spawnpoint 34'), +(@POOL+34,1, 'Howling Fjord Ore Spawnpoint 35'), +(@POOL+35,1, 'Howling Fjord Ore Spawnpoint 36'), +(@POOL+36,1, 'Howling Fjord Ore Spawnpoint 37'), +(@POOL+37,1, 'Howling Fjord Ore Spawnpoint 38'), +(@POOL+38,1, 'Howling Fjord Ore Spawnpoint 39'), +(@POOL+39,1, 'Howling Fjord Ore Spawnpoint 40'), +(@POOL+40,1, 'Howling Fjord Ore Spawnpoint 41'), +(@POOL+41,1, 'Howling Fjord Ore Spawnpoint 42'), +(@POOL+42,1, 'Howling Fjord Ore Spawnpoint 43'), +(@POOL+43,1, 'Howling Fjord Ore Spawnpoint 44'), +(@POOL+44,1, 'Howling Fjord Ore Spawnpoint 45'), +(@POOL+45,1, 'Howling Fjord Ore Spawnpoint 46'), +(@POOL+46,1, 'Howling Fjord Ore Spawnpoint 47'), +(@POOL+47,1, 'Howling Fjord Ore Spawnpoint 48'), +(@POOL+48,1, 'Howling Fjord Ore Spawnpoint 49'), +(@POOL+49,1, 'Howling Fjord Ore Spawnpoint 50'), +(@POOL+50,1, 'Howling Fjord Ore Spawnpoint 51'), +(@POOL+51,1, 'Howling Fjord Ore Spawnpoint 52'), +(@POOL+52,1, 'Howling Fjord Ore Spawnpoint 53'), +(@POOL+53,1, 'Howling Fjord Ore Spawnpoint 54'), +(@POOL+54,1, 'Howling Fjord Ore Spawnpoint 55'), +(@POOL+55,1, 'Howling Fjord Ore Spawnpoint 56'), +(@POOL+56,1, 'Howling Fjord Ore Spawnpoint 57'), +(@POOL+57,1, 'Howling Fjord Ore Spawnpoint 58'), +(@POOL+58,1, 'Howling Fjord Ore Spawnpoint 59'), +(@POOL+59,1, 'Howling Fjord Ore Spawnpoint 60'), +(@POOL+60,1, 'Howling Fjord Ore Spawnpoint 61'), +(@POOL+61,1, 'Howling Fjord Ore Spawnpoint 62'), +(@POOL+62,1, 'Howling Fjord Ore Spawnpoint 63'), +(@POOL+63,1, 'Howling Fjord Ore Spawnpoint 64'), +(@POOL+64,1, 'Howling Fjord Ore Spawnpoint 65'), +(@POOL+65,1, 'Howling Fjord Ore Spawnpoint 66'), +(@POOL+66,1, 'Howling Fjord Ore Spawnpoint 67'), +(@POOL+67,1, 'Howling Fjord Ore Spawnpoint 68'), +(@POOL+68,1, 'Howling Fjord Ore Spawnpoint 69'), +(@POOL+69,1, 'Howling Fjord Ore Spawnpoint 70'), +(@POOL+70,1, 'Howling Fjord Ore Spawnpoint 71'), +(@POOL+71,1, 'Howling Fjord Ore Spawnpoint 72'), +(@POOL+72,1, 'Howling Fjord Ore Spawnpoint 73'), +(@POOL+73,1, 'Howling Fjord Ore Spawnpoint 74'), +(@POOL+74,1, 'Howling Fjord Ore Spawnpoint 75'), +(@POOL+75,1, 'Howling Fjord Ore Spawnpoint 76'), +(@POOL+76,1, 'Howling Fjord Ore Spawnpoint 77'), +(@POOL+77,1, 'Howling Fjord Ore Spawnpoint 78'), +(@POOL+78,1, 'Howling Fjord Ore Spawnpoint 79'), +(@POOL+79,1, 'Howling Fjord Ore Spawnpoint 80'), +(@POOL+80,1, 'Howling Fjord Ore Spawnpoint 81'), +(@POOL+81,1, 'Howling Fjord Ore Spawnpoint 82'), +(@POOL+82,1, 'Howling Fjord Ore Spawnpoint 83'), +(@POOL+83,1, 'Howling Fjord Ore Spawnpoint 84'), +(@POOL+84,1, 'Howling Fjord Ore Spawnpoint 85'), +(@POOL+85,1, 'Howling Fjord Ore Spawnpoint 86'), +(@POOL+86,1, 'Howling Fjord Ore Spawnpoint 87'), +(@POOL+87,1, 'Howling Fjord Ore Spawnpoint 88'), +(@POOL+88,1, 'Howling Fjord Ore Spawnpoint 89'), +(@POOL+89,1, 'Howling Fjord Ore Spawnpoint 90'), +(@POOL+90,1, 'Howling Fjord Ore Spawnpoint 91'), +(@POOL+91,1, 'Howling Fjord Ore Spawnpoint 92'), +(@POOL+92,1, 'Howling Fjord Ore Spawnpoint 93'), +(@POOL+93,1, 'Howling Fjord Ore Spawnpoint 94'), +(@POOL+94,1, 'Howling Fjord Ore Spawnpoint 95'), +(@POOL+95,1, 'Howling Fjord Ore Spawnpoint 96'), +(@POOL+96,1, 'Howling Fjord Ore Spawnpoint 97'), +(@POOL+97,1, 'Howling Fjord Ore Spawnpoint 98'), +(@POOL+98,1, 'Howling Fjord Ore Spawnpoint 99'), +(@POOL+99,1, 'Howling Fjord Ore Spawnpoint 100'); +-- Add mother pool to pool template +DELETE FROM `pool_template` WHERE `entry`=@MOTHER; +INSERT INTO `pool_template` (`entry`,`max_limit`,`description`) VALUES +(@MOTHER,@ACTIVE, 'Howling Fjord Ore Mother pool'); +-- Add each pool to pool_pool +DELETE FROM `pool_pool` WHERE `pool_id` BETWEEN @POOL AND @POOL+@LASTGUID; +INSERT INTO `pool_pool` (`pool_id`,`mother_pool`,`chance`,`description`) VALUES +(@POOL+0,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 1'), +(@POOL+1,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 2'), +(@POOL+2,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 3'), +(@POOL+3,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 4'), +(@POOL+4,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 5'), +(@POOL+5,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 6'), +(@POOL+6,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 7'), +(@POOL+7,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 8'), +(@POOL+8,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 9'), +(@POOL+9,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 10'), +(@POOL+10,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 11'), +(@POOL+11,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 12'), +(@POOL+12,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 13'), +(@POOL+13,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 14'), +(@POOL+14,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 15'), +(@POOL+15,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 16'), +(@POOL+16,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 17'), +(@POOL+17,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 18'), +(@POOL+18,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 19'), +(@POOL+19,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 20'), +(@POOL+20,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 21'), +(@POOL+21,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 22'), +(@POOL+22,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 23'), +(@POOL+23,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 24'), +(@POOL+24,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 25'), +(@POOL+25,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 26'), +(@POOL+26,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 27'), +(@POOL+27,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 28'), +(@POOL+28,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 29'), +(@POOL+29,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 30'), +(@POOL+30,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 31'), +(@POOL+31,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 32'), +(@POOL+32,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 33'), +(@POOL+33,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 34'), +(@POOL+34,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 35'), +(@POOL+35,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 36'), +(@POOL+36,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 37'), +(@POOL+37,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 38'), +(@POOL+38,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 39'), +(@POOL+39,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 40'), +(@POOL+40,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 41'), +(@POOL+41,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 42'), +(@POOL+42,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 43'), +(@POOL+43,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 44'), +(@POOL+44,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 45'), +(@POOL+45,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 46'), +(@POOL+46,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 47'), +(@POOL+47,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 48'), +(@POOL+48,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 49'), +(@POOL+49,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 50'), +(@POOL+50,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 51'), +(@POOL+51,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 52'), +(@POOL+52,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 53'), +(@POOL+53,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 54'), +(@POOL+54,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 55'), +(@POOL+55,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 56'), +(@POOL+56,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 57'), +(@POOL+57,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 58'), +(@POOL+58,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 59'), +(@POOL+59,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 60'), +(@POOL+60,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 61'), +(@POOL+61,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 62'), +(@POOL+62,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 63'), +(@POOL+63,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 64'), +(@POOL+64,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 65'), +(@POOL+65,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 66'), +(@POOL+66,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 67'), +(@POOL+67,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 68'), +(@POOL+68,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 69'), +(@POOL+69,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 70'), +(@POOL+70,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 71'), +(@POOL+71,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 72'), +(@POOL+72,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 73'), +(@POOL+73,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 74'), +(@POOL+74,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 75'), +(@POOL+75,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 76'), +(@POOL+76,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 77'), +(@POOL+77,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 78'), +(@POOL+78,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 79'), +(@POOL+79,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 80'), +(@POOL+80,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 81'), +(@POOL+81,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 82'), +(@POOL+82,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 83'), +(@POOL+83,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 84'), +(@POOL+84,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 85'), +(@POOL+85,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 86'), +(@POOL+86,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 87'), +(@POOL+87,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 88'), +(@POOL+88,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 89'), +(@POOL+89,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 90'), +(@POOL+90,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 91'), +(@POOL+91,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 92'), +(@POOL+92,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 93'), +(@POOL+93,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 94'), +(@POOL+94,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 95'), +(@POOL+95,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 96'), +(@POOL+96,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 97'), +(@POOL+97,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 98'), +(@POOL+98,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 99'), +(@POOL+99,@MOTHER,0, 'Howling Fjord Ore Spawnpoint 100'); + +-- ---------------------------------------- +-- -- Fixup ore spawns for Grizzly Hills -- +-- ---------------------------------------- +SET @RANGE := 100; +SET @GUID1 := 160600; +SET @GUID2 := @GUID1 + @RANGE; +SET @POOL := 10300; +SET @LASTGUID := 60; +SET @CHANCE1 := 90; +SET @CHANCE2 := 100 - @CHANCE1; +SET @MOTHER := 9902; +SET @ACTIVE := 20; -- Max number of active spawns +SET @TIMER := 600; -- Respawn timer in seconds +-- Remove Ore spawns from Grizzly Hills +DELETE FROM gameobject WHERE id IN (189978,189979) AND map=571 AND position_y < -1550 AND position_y > -2380 AND `position_x` < 4650 AND `position_x` > 3090; +DELETE FROM gameobject WHERE id IN (189978,189979) AND map=571 AND position_y < -2380 AND position_y > -3160 AND `position_x` < 4560 AND `position_x` > 3090; +DELETE FROM gameobject WHERE id IN (189978,189979) AND map=571 AND position_y < -3160 AND position_y > -5800 AND `position_x` < 4850 AND `position_x` > 3090; +DELETE FROM gameobject WHERE id IN (189978,189979) AND map=571 AND position_y < -3604 AND position_y > -5800 AND `position_x` < 5470 AND `position_x` > 4850 AND `position_z` < 380; +-- Remove old pools +DELETE FROM `pool_gameobject` WHERE `guid` NOT IN (SELECT `guid` FROM `gameobject`); +DELETE FROM `pool_template` WHERE `entry` BETWEEN 5181 AND 5216; +DELETE FROM `pool_template` WHERE `entry` BETWEEN 5240 AND 5243; +DELETE FROM `pool_pool` WHERE `pool_id` BETWEEN 5182 AND 5216; +DELETE FROM `pool_pool` WHERE `pool_id` BETWEEN 5240 AND 5243; +-- Colbalt Deposits Grizzly Hills +INSERT INTO `gameobject` (`guid`, `id`, `map`, `spawnMask`, `phaseMask`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecs`, `animprogress`, `state`) VALUES +(@GUID1,189978,571,1,1,3092.010,-3250.750,239.4220,0.27925,0,0,0,1,@TIMER,255,1), +(@GUID1+1,189978,571,1,1,3245.520,-4263.030,346.3790,-1.71042,0,0,0,1,@TIMER,255,1), +(@GUID1+2,189978,571,1,1,3278.070,-4631.530,274.2350,2.79252,0,0,0,1,@TIMER,255,1), +(@GUID1+3,189978,571,1,1,3297.320,-4432.250,323.8490,-1.71042,0,0,0,1,@TIMER,255,1), +(@GUID1+4,189978,571,1,1,3304.730,-1804.230,85.4142,2.82743,0,0,0,1,@TIMER,255,1), +(@GUID1+5,189978,571,1,1,3330.480,-4922.170,305.9250,-1.76278,0,0,0,1,@TIMER,255,1), +(@GUID1+6,189978,571,1,1,3374.104,-4776.897,274.4394,0.08727,0,0,0,1,@TIMER,255,1), +(@GUID1+7,189978,571,1,1,3402.580,-1772.610,93.7937,1.25664,0,0,0,1,@TIMER,255,1), +(@GUID1+8,189978,571,1,1,3482.790,-3444.500,267.0810,0.66322,0,0,0,1,@TIMER,255,1), +(@GUID1+9,189978,571,1,1,3504.310,-5246.790,179.1390,-0.69813,0,0,0,1,@TIMER,255,1), +(@GUID1+10,189978,571,1,1,3505.110,-4140.870,264.1560,1.65806,0,0,0,1,@TIMER,255,1), +(@GUID1+11,189978,571,1,1,3523.270,-2664.510,104.2180,-2.18166,0,0,0,1,@TIMER,255,1), +(@GUID1+12,189978,571,1,1,3543.850,-5054.890,234.0610,2.80997,0,0,0,1,@TIMER,255,1), +(@GUID1+13,189978,571,1,1,3546.450,-1799.920,161.3730,-0.78540,0,0,0,1,@TIMER,255,1), +(@GUID1+14,189978,571,1,1,3555.420,-3562.350,242.5690,0.19199,0,0,0,1,@TIMER,255,1), +(@GUID1+15,189978,571,1,1,3562.720,-5167.090,179.5770,-2.75761,0,0,0,1,@TIMER,255,1), +(@GUID1+16,189978,571,1,1,3593.700,-3737.760,231.2620,-3.12412,0,0,0,1,@TIMER,255,1), +(@GUID1+17,189978,571,1,1,3634.340,-2647.850,137.6100,1.13446,0,0,0,1,@TIMER,255,1), +(@GUID1+18,189978,571,1,1,3683.020,-1787.160,170.3800,2.30383,0,0,0,1,@TIMER,255,1), +(@GUID1+19,189978,571,1,1,3684.690,-2654.980,152.8360,-1.25664,0,0,0,1,@TIMER,255,1), +(@GUID1+20,189978,571,1,1,3689.440,-5363.480,107.9370,-2.93214,0,0,0,1,@TIMER,255,1), +(@GUID1+21,189978,571,1,1,3775.340,-3570.330,235.9720,2.39110,0,0,0,1,@TIMER,255,1), +(@GUID1+22,189978,571,1,1,3776.570,-2395.590,173.3690,-0.41888,0,0,0,1,@TIMER,255,1), +(@GUID1+23,189978,571,1,1,3779.940,-3770.120,179.4740,0.85521,0,0,0,1,@TIMER,255,1), +(@GUID1+24,189978,571,1,1,3806.770,-3351.670,282.0970,-1.98967,0,0,0,1,@TIMER,255,1), +(@GUID1+25,189978,571,1,1,3808.300,-1743.320,203.5550,1.65806,0,0,0,1,@TIMER,255,1), +(@GUID1+26,189978,571,1,1,3819.070,-2721.720,200.3380,-0.89012,0,0,0,1,@TIMER,255,1), +(@GUID1+27,189978,571,1,1,3823.790,-1846.020,215.9370,1.71042,0,0,0,1,@TIMER,255,1), +(@GUID1+28,189978,571,1,1,3887.610,-3704.440,173.5850,2.58308,0,0,0,1,@TIMER,255,1), +(@GUID1+29,189978,571,1,1,3892.340,-5151.140,73.8241,-1.53589,0,0,0,1,@TIMER,255,1), +(@GUID1+30,189978,571,1,1,3931.060,-1655.190,190.6440,1.37881,0,0,0,1,@TIMER,255,1), +(@GUID1+31,189978,571,1,3,3932.550,-3970.730,174.8070,-1.97222,0,0,0,1,@TIMER,255,1), +(@GUID1+32,189978,571,1,1,3943.470,-1843.410,217.4480,2.60053,0,0,0,1,@TIMER,255,1), +(@GUID1+33,189978,571,1,1,4101.430,-2955.460,270.9040,1.71042,0,0,0,1,@TIMER,255,1), +(@GUID1+34,189978,571,1,1,4109.900,-2432.630,221.0930,3.14159,0,0,0,1,@TIMER,255,1), +(@GUID1+35,189978,571,1,1,4128.130,-3959.530,160.6620,2.44346,0,0,0,1,@TIMER,255,1), +(@GUID1+36,189978,571,1,1,4151.420,-4614.510,144.2710,0.10472,0,0,0,1,@TIMER,255,1), +(@GUID1+37,189978,571,1,1,4152.130,-1891.690,187.4210,-1.41372,0,0,0,1,@TIMER,255,1), +(@GUID1+38,189978,571,1,1,4172.300,-3685.310,186.9110,-1.23918,0,0,0,1,@TIMER,255,1), +(@GUID1+39,189978,571,1,1,4196.390,-1995.750,211.0920,0.89012,0,0,0,1,@TIMER,255,1), +(@GUID1+40,189978,571,1,1,4208.140,-3133.170,282.3300,-1.46608,0,0,0,1,@TIMER,255,1), +(@GUID1+41,189978,571,1,1,4220.520,-3803.550,185.4780,-1.43117,0,0,0,1,@TIMER,255,1), +(@GUID1+42,189978,571,1,1,4303.788,-4978.636,23.5756,2.75761,0,0,0,1,@TIMER,255,1), +(@GUID1+43,189978,571,1,1,4408.610,-2408.180,228.9980,-2.00713,0,0,0,1,@TIMER,255,1), +(@GUID1+44,189978,571,1,1,4448.330,-4800.280,40.7411,-2.33874,0,0,0,1,@TIMER,255,1), +(@GUID1+45,189978,571,1,1,4560.060,-2319.040,181.0760,2.02458,0,0,0,1,@TIMER,255,1), +(@GUID1+46,189978,571,1,1,4560.340,-4972.120,48.4352,-2.53072,0,0,0,1,@TIMER,255,1), +(@GUID1+47,189978,571,1,1,4584.810,-4561.060,196.2030,0.38397,0,0,0,1,@TIMER,255,1), +(@GUID1+48,189978,571,1,1,4585.620,-3743.730,233.2730,-1.67551,0,0,0,1,@TIMER,255,1), +(@GUID1+49,189978,571,1,1,4641.260,-3944.710,249.8200,-1.91986,0,0,0,1,@TIMER,255,1), +(@GUID1+50,189978,571,1,1,4731.170,-3974.150,202.9880,2.87979,0,0,0,1,@TIMER,255,1), +(@GUID1+51,189978,571,1,1,4734.590,-4548.180,206.8140,-0.36652,0,0,0,1,@TIMER,255,1), +(@GUID1+52,189978,571,1,1,4774.960,-4882.750,58.8890,-2.39110,0,0,0,1,@TIMER,255,1), +(@GUID1+53,189978,571,1,1,4782.520,-3895.370,187.3920,2.60054,0,0,0,1,@TIMER,255,1), +(@GUID1+54,189978,571,1,1,4823.120,-3888.860,183.0190,2.75761,0,0,0,1,@TIMER,255,1), +(@GUID1+55,189978,571,1,1,4830.860,-4477.090,200.1495,1.39626,0,0,0,1,@TIMER,255,1), +(@GUID1+56,189978,571,1,1,4882.170,-4206.040,253.2890,-0.19199,0,0,0,1,@TIMER,255,1), +(@GUID1+57,189978,571,1,1,4934.329,-4555.055,220.0529,2.49582,0,0,0,1,@TIMER,255,1), +(@GUID1+58,189978,571,1,1,4956.457,-4666.764,214.5148,2.79252,0,0,0,1,@TIMER,255,1), +(@GUID1+59,189978,571,1,1,5018.210,-4794.480,217.7570,2.87979,0,0,0,1,@TIMER,255,1), +(@GUID1+60,189978,571,1,1,5060.030,-4828.330,212.2340,0.85521,0,0,0,1,@TIMER,255,1); +-- Rich Colbalt Deposits Grizzly Hills +INSERT INTO `gameobject` (`guid`, `id`, `map`, `spawnMask`, `phaseMask`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecs`, `animprogress`, `state`) VALUES +(@GUID2,189979,571,1,1,3092.010,-3250.750,239.4220,0.27925,0,0,0,1,@TIMER,255,1), +(@GUID2+1,189979,571,1,1,3245.520,-4263.030,346.3790,-1.71042,0,0,0,1,@TIMER,255,1), +(@GUID2+2,189979,571,1,1,3278.070,-4631.530,274.2350,2.79252,0,0,0,1,@TIMER,255,1), +(@GUID2+3,189979,571,1,1,3297.320,-4432.250,323.8490,-1.71042,0,0,0,1,@TIMER,255,1), +(@GUID2+4,189979,571,1,1,3304.730,-1804.230,85.4142,2.82743,0,0,0,1,@TIMER,255,1), +(@GUID2+5,189979,571,1,1,3330.480,-4922.170,305.9250,-1.76278,0,0,0,1,@TIMER,255,1), +(@GUID2+6,189979,571,1,1,3374.104,-4776.897,274.4394,0.08727,0,0,0,1,@TIMER,255,1), +(@GUID2+7,189979,571,1,1,3402.580,-1772.610,93.7937,1.25664,0,0,0,1,@TIMER,255,1), +(@GUID2+8,189979,571,1,1,3482.790,-3444.500,267.0810,0.66322,0,0,0,1,@TIMER,255,1), +(@GUID2+9,189979,571,1,1,3504.310,-5246.790,179.1390,-0.69813,0,0,0,1,@TIMER,255,1), +(@GUID2+10,189979,571,1,1,3505.110,-4140.870,264.1560,1.65806,0,0,0,1,@TIMER,255,1), +(@GUID2+11,189979,571,1,1,3523.270,-2664.510,104.2180,-2.18166,0,0,0,1,@TIMER,255,1), +(@GUID2+12,189979,571,1,1,3543.850,-5054.890,234.0610,2.80997,0,0,0,1,@TIMER,255,1), +(@GUID2+13,189979,571,1,1,3546.450,-1799.920,161.3730,-0.78540,0,0,0,1,@TIMER,255,1), +(@GUID2+14,189979,571,1,1,3555.420,-3562.350,242.5690,0.19199,0,0,0,1,@TIMER,255,1), +(@GUID2+15,189979,571,1,1,3562.720,-5167.090,179.5770,-2.75761,0,0,0,1,@TIMER,255,1), +(@GUID2+16,189979,571,1,1,3593.700,-3737.760,231.2620,-3.12412,0,0,0,1,@TIMER,255,1), +(@GUID2+17,189979,571,1,1,3634.340,-2647.850,137.6100,1.13446,0,0,0,1,@TIMER,255,1), +(@GUID2+18,189979,571,1,1,3683.020,-1787.160,170.3800,2.30383,0,0,0,1,@TIMER,255,1), +(@GUID2+19,189979,571,1,1,3684.690,-2654.980,152.8360,-1.25664,0,0,0,1,@TIMER,255,1), +(@GUID2+20,189979,571,1,1,3689.440,-5363.480,107.9370,-2.93214,0,0,0,1,@TIMER,255,1), +(@GUID2+21,189979,571,1,1,3775.340,-3570.330,235.9720,2.39110,0,0,0,1,@TIMER,255,1), +(@GUID2+22,189979,571,1,1,3776.570,-2395.590,173.3690,-0.41888,0,0,0,1,@TIMER,255,1), +(@GUID2+23,189979,571,1,1,3779.940,-3770.120,179.4740,0.85521,0,0,0,1,@TIMER,255,1), +(@GUID2+24,189979,571,1,1,3806.770,-3351.670,282.0970,-1.98967,0,0,0,1,@TIMER,255,1), +(@GUID2+25,189979,571,1,1,3808.300,-1743.320,203.5550,1.65806,0,0,0,1,@TIMER,255,1), +(@GUID2+26,189979,571,1,1,3819.070,-2721.720,200.3380,-0.89012,0,0,0,1,@TIMER,255,1), +(@GUID2+27,189979,571,1,1,3823.790,-1846.020,215.9370,1.71042,0,0,0,1,@TIMER,255,1), +(@GUID2+28,189979,571,1,1,3887.610,-3704.440,173.5850,2.58308,0,0,0,1,@TIMER,255,1), +(@GUID2+29,189979,571,1,1,3892.340,-5151.140,73.8241,-1.53589,0,0,0,1,@TIMER,255,1), +(@GUID2+30,189979,571,1,1,3931.060,-1655.190,190.6440,1.37881,0,0,0,1,@TIMER,255,1), +(@GUID2+31,189979,571,1,3,3932.550,-3970.730,174.8070,-1.97222,0,0,0,1,@TIMER,255,1), +(@GUID2+32,189979,571,1,1,3943.470,-1843.410,217.4480,2.60053,0,0,0,1,@TIMER,255,1), +(@GUID2+33,189979,571,1,1,4101.430,-2955.460,270.9040,1.71042,0,0,0,1,@TIMER,255,1), +(@GUID2+34,189979,571,1,1,4109.900,-2432.630,221.0930,3.14159,0,0,0,1,@TIMER,255,1), +(@GUID2+35,189979,571,1,1,4128.130,-3959.530,160.6620,2.44346,0,0,0,1,@TIMER,255,1), +(@GUID2+36,189979,571,1,1,4151.420,-4614.510,144.2710,0.10472,0,0,0,1,@TIMER,255,1), +(@GUID2+37,189979,571,1,1,4152.130,-1891.690,187.4210,-1.41372,0,0,0,1,@TIMER,255,1), +(@GUID2+38,189979,571,1,1,4172.300,-3685.310,186.9110,-1.23918,0,0,0,1,@TIMER,255,1), +(@GUID2+39,189979,571,1,1,4196.390,-1995.750,211.0920,0.89012,0,0,0,1,@TIMER,255,1), +(@GUID2+40,189979,571,1,1,4208.140,-3133.170,282.3300,-1.46608,0,0,0,1,@TIMER,255,1), +(@GUID2+41,189979,571,1,1,4220.520,-3803.550,185.4780,-1.43117,0,0,0,1,@TIMER,255,1), +(@GUID2+42,189979,571,1,1,4303.788,-4978.636,23.5756,2.75761,0,0,0,1,@TIMER,255,1), +(@GUID2+43,189979,571,1,1,4408.610,-2408.180,228.9980,-2.00713,0,0,0,1,@TIMER,255,1), +(@GUID2+44,189979,571,1,1,4448.330,-4800.280,40.7411,-2.33874,0,0,0,1,@TIMER,255,1), +(@GUID2+45,189979,571,1,1,4560.060,-2319.040,181.0760,2.02458,0,0,0,1,@TIMER,255,1), +(@GUID2+46,189979,571,1,1,4560.340,-4972.120,48.4352,-2.53072,0,0,0,1,@TIMER,255,1), +(@GUID2+47,189979,571,1,1,4584.810,-4561.060,196.2030,0.38397,0,0,0,1,@TIMER,255,1), +(@GUID2+48,189979,571,1,1,4585.620,-3743.730,233.2730,-1.67551,0,0,0,1,@TIMER,255,1), +(@GUID2+49,189979,571,1,1,4641.260,-3944.710,249.8200,-1.91986,0,0,0,1,@TIMER,255,1), +(@GUID2+50,189979,571,1,1,4731.170,-3974.150,202.9880,2.87979,0,0,0,1,@TIMER,255,1), +(@GUID2+51,189979,571,1,1,4734.590,-4548.180,206.8140,-0.36652,0,0,0,1,@TIMER,255,1), +(@GUID2+52,189979,571,1,1,4774.960,-4882.750,58.8890,-2.39110,0,0,0,1,@TIMER,255,1), +(@GUID2+53,189979,571,1,1,4782.520,-3895.370,187.3920,2.60054,0,0,0,1,@TIMER,255,1), +(@GUID2+54,189979,571,1,1,4823.120,-3888.860,183.0190,2.75761,0,0,0,1,@TIMER,255,1), +(@GUID2+55,189979,571,1,1,4830.860,-4477.090,200.1495,1.39626,0,0,0,1,@TIMER,255,1), +(@GUID2+56,189979,571,1,1,4882.170,-4206.040,253.2890,-0.19199,0,0,0,1,@TIMER,255,1), +(@GUID2+57,189979,571,1,1,4934.329,-4555.055,220.0529,2.49582,0,0,0,1,@TIMER,255,1), +(@GUID2+58,189979,571,1,1,4956.457,-4666.764,214.5148,2.79252,0,0,0,1,@TIMER,255,1), +(@GUID2+59,189979,571,1,1,5018.210,-4794.480,217.7570,2.87979,0,0,0,1,@TIMER,255,1), +(@GUID2+60,189979,571,1,1,5060.030,-4828.330,212.2340,0.85521,0,0,0,1,@TIMER,255,1); +-- Pooling +DELETE FROM `pool_gameobject` WHERE `guid` BETWEEN @GUID1 AND @GUID1+@LASTGUID; +DELETE FROM `pool_gameobject` WHERE `guid` BETWEEN @GUID2 AND @GUID2+@LASTGUID; +-- Pool different ore types to each spawnpoint +INSERT INTO `pool_gameobject` (`guid`,`pool_entry`,`chance`,`description`) VALUES +(@GUID1+0,@POOL+0,@CHANCE1, 'Grizzly Hills Ore Spawnpoint 1 Cobalt'), +(@GUID2+0,@POOL+0,@CHANCE2, 'Grizzly Hills Ore Spawnpoint 1 Rich Cobalt'), +(@GUID1+1,@POOL+1,@CHANCE1, 'Grizzly Hills Ore Spawnpoint 2 Cobalt'), +(@GUID2+1,@POOL+1,@CHANCE2, 'Grizzly Hills Ore Spawnpoint 2 Rich Cobalt'), +(@GUID1+2,@POOL+2,@CHANCE1, 'Grizzly Hills Ore Spawnpoint 3 Cobalt'), +(@GUID2+2,@POOL+2,@CHANCE2, 'Grizzly Hills Ore Spawnpoint 3 Rich Cobalt'), +(@GUID1+3,@POOL+3,@CHANCE1, 'Grizzly Hills Ore Spawnpoint 4 Cobalt'), +(@GUID2+3,@POOL+3,@CHANCE2, 'Grizzly Hills Ore Spawnpoint 4 Rich Cobalt'), +(@GUID1+4,@POOL+4,@CHANCE1, 'Grizzly Hills Ore Spawnpoint 5 Cobalt'), +(@GUID2+4,@POOL+4,@CHANCE2, 'Grizzly Hills Ore Spawnpoint 5 Rich Cobalt'), +(@GUID1+5,@POOL+5,@CHANCE1, 'Grizzly Hills Ore Spawnpoint 6 Cobalt'), +(@GUID2+5,@POOL+5,@CHANCE2, 'Grizzly Hills Ore Spawnpoint 6 Rich Cobalt'), +(@GUID1+6,@POOL+6,@CHANCE1, 'Grizzly Hills Ore Spawnpoint 7 Cobalt'), +(@GUID2+6,@POOL+6,@CHANCE2, 'Grizzly Hills Ore Spawnpoint 7 Rich Cobalt'), +(@GUID1+7,@POOL+7,@CHANCE1, 'Grizzly Hills Ore Spawnpoint 8 Cobalt'), +(@GUID2+7,@POOL+7,@CHANCE2, 'Grizzly Hills Ore Spawnpoint 8 Rich Cobalt'), +(@GUID1+8,@POOL+8,@CHANCE1, 'Grizzly Hills Ore Spawnpoint 9 Cobalt'), +(@GUID2+8,@POOL+8,@CHANCE2, 'Grizzly Hills Ore Spawnpoint 9 Rich Cobalt'), +(@GUID1+9,@POOL+9,@CHANCE1, 'Grizzly Hills Ore Spawnpoint 10 Cobalt'), +(@GUID2+9,@POOL+9,@CHANCE2, 'Grizzly Hills Ore Spawnpoint 10 Rich Cobalt'), +(@GUID1+10,@POOL+10,@CHANCE1, 'Grizzly Hills Ore Spawnpoint 11 Cobalt'), +(@GUID2+10,@POOL+10,@CHANCE2, 'Grizzly Hills Ore Spawnpoint 11 Rich Cobalt'), +(@GUID1+11,@POOL+11,@CHANCE1, 'Grizzly Hills Ore Spawnpoint 12 Cobalt'), +(@GUID2+11,@POOL+11,@CHANCE2, 'Grizzly Hills Ore Spawnpoint 12 Rich Cobalt'), +(@GUID1+12,@POOL+12,@CHANCE1, 'Grizzly Hills Ore Spawnpoint 13 Cobalt'), +(@GUID2+12,@POOL+12,@CHANCE2, 'Grizzly Hills Ore Spawnpoint 13 Rich Cobalt'), +(@GUID1+13,@POOL+13,@CHANCE1, 'Grizzly Hills Ore Spawnpoint 14 Cobalt'), +(@GUID2+13,@POOL+13,@CHANCE2, 'Grizzly Hills Ore Spawnpoint 14 Rich Cobalt'), +(@GUID1+14,@POOL+14,@CHANCE1, 'Grizzly Hills Ore Spawnpoint 15 Cobalt'), +(@GUID2+14,@POOL+14,@CHANCE2, 'Grizzly Hills Ore Spawnpoint 15 Rich Cobalt'), +(@GUID1+15,@POOL+15,@CHANCE1, 'Grizzly Hills Ore Spawnpoint 16 Cobalt'), +(@GUID2+15,@POOL+15,@CHANCE2, 'Grizzly Hills Ore Spawnpoint 16 Rich Cobalt'), +(@GUID1+16,@POOL+16,@CHANCE1, 'Grizzly Hills Ore Spawnpoint 17 Cobalt'), +(@GUID2+16,@POOL+16,@CHANCE2, 'Grizzly Hills Ore Spawnpoint 17 Rich Cobalt'), +(@GUID1+17,@POOL+17,@CHANCE1, 'Grizzly Hills Ore Spawnpoint 18 Cobalt'), +(@GUID2+17,@POOL+17,@CHANCE2, 'Grizzly Hills Ore Spawnpoint 18 Rich Cobalt'), +(@GUID1+18,@POOL+18,@CHANCE1, 'Grizzly Hills Ore Spawnpoint 19 Cobalt'), +(@GUID2+18,@POOL+18,@CHANCE2, 'Grizzly Hills Ore Spawnpoint 19 Rich Cobalt'), +(@GUID1+19,@POOL+19,@CHANCE1, 'Grizzly Hills Ore Spawnpoint 20 Cobalt'), +(@GUID2+19,@POOL+19,@CHANCE2, 'Grizzly Hills Ore Spawnpoint 20 Rich Cobalt'), +(@GUID1+20,@POOL+20,@CHANCE1, 'Grizzly Hills Ore Spawnpoint 21 Cobalt'), +(@GUID2+20,@POOL+20,@CHANCE2, 'Grizzly Hills Ore Spawnpoint 21 Rich Cobalt'), +(@GUID1+21,@POOL+21,@CHANCE1, 'Grizzly Hills Ore Spawnpoint 22 Cobalt'), +(@GUID2+21,@POOL+21,@CHANCE2, 'Grizzly Hills Ore Spawnpoint 22 Rich Cobalt'), +(@GUID1+22,@POOL+22,@CHANCE1, 'Grizzly Hills Ore Spawnpoint 23 Cobalt'), +(@GUID2+22,@POOL+22,@CHANCE2, 'Grizzly Hills Ore Spawnpoint 23 Rich Cobalt'), +(@GUID1+23,@POOL+23,@CHANCE1, 'Grizzly Hills Ore Spawnpoint 24 Cobalt'), +(@GUID2+23,@POOL+23,@CHANCE2, 'Grizzly Hills Ore Spawnpoint 24 Rich Cobalt'), +(@GUID1+24,@POOL+24,@CHANCE1, 'Grizzly Hills Ore Spawnpoint 25 Cobalt'), +(@GUID2+24,@POOL+24,@CHANCE2, 'Grizzly Hills Ore Spawnpoint 25 Rich Cobalt'), +(@GUID1+25,@POOL+25,@CHANCE1, 'Grizzly Hills Ore Spawnpoint 26 Cobalt'), +(@GUID2+25,@POOL+25,@CHANCE2, 'Grizzly Hills Ore Spawnpoint 26 Rich Cobalt'), +(@GUID1+26,@POOL+26,@CHANCE1, 'Grizzly Hills Ore Spawnpoint 27 Cobalt'), +(@GUID2+26,@POOL+26,@CHANCE2, 'Grizzly Hills Ore Spawnpoint 27 Rich Cobalt'), +(@GUID1+27,@POOL+27,@CHANCE1, 'Grizzly Hills Ore Spawnpoint 28 Cobalt'), +(@GUID2+27,@POOL+27,@CHANCE2, 'Grizzly Hills Ore Spawnpoint 28 Rich Cobalt'), +(@GUID1+28,@POOL+28,@CHANCE1, 'Grizzly Hills Ore Spawnpoint 29 Cobalt'), +(@GUID2+28,@POOL+28,@CHANCE2, 'Grizzly Hills Ore Spawnpoint 29 Rich Cobalt'), +(@GUID1+29,@POOL+29,@CHANCE1, 'Grizzly Hills Ore Spawnpoint 30 Cobalt'), +(@GUID2+29,@POOL+29,@CHANCE2, 'Grizzly Hills Ore Spawnpoint 30 Rich Cobalt'), +(@GUID1+30,@POOL+30,@CHANCE1, 'Grizzly Hills Ore Spawnpoint 31 Cobalt'), +(@GUID2+30,@POOL+30,@CHANCE2, 'Grizzly Hills Ore Spawnpoint 31 Rich Cobalt'), +(@GUID1+31,@POOL+31,@CHANCE1, 'Grizzly Hills Ore Spawnpoint 32 Cobalt'), +(@GUID2+31,@POOL+31,@CHANCE2, 'Grizzly Hills Ore Spawnpoint 32 Rich Cobalt'), +(@GUID1+32,@POOL+32,@CHANCE1, 'Grizzly Hills Ore Spawnpoint 33 Cobalt'), +(@GUID2+32,@POOL+32,@CHANCE2, 'Grizzly Hills Ore Spawnpoint 33 Rich Cobalt'), +(@GUID1+33,@POOL+33,@CHANCE1, 'Grizzly Hills Ore Spawnpoint 34 Cobalt'), +(@GUID2+33,@POOL+33,@CHANCE2, 'Grizzly Hills Ore Spawnpoint 34 Rich Cobalt'), +(@GUID1+34,@POOL+34,@CHANCE1, 'Grizzly Hills Ore Spawnpoint 35 Cobalt'), +(@GUID2+34,@POOL+34,@CHANCE2, 'Grizzly Hills Ore Spawnpoint 35 Rich Cobalt'), +(@GUID1+35,@POOL+35,@CHANCE1, 'Grizzly Hills Ore Spawnpoint 36 Cobalt'), +(@GUID2+35,@POOL+35,@CHANCE2, 'Grizzly Hills Ore Spawnpoint 36 Rich Cobalt'), +(@GUID1+36,@POOL+36,@CHANCE1, 'Grizzly Hills Ore Spawnpoint 37 Cobalt'), +(@GUID2+36,@POOL+36,@CHANCE2, 'Grizzly Hills Ore Spawnpoint 37 Rich Cobalt'), +(@GUID1+37,@POOL+37,@CHANCE1, 'Grizzly Hills Ore Spawnpoint 38 Cobalt'), +(@GUID2+37,@POOL+37,@CHANCE2, 'Grizzly Hills Ore Spawnpoint 38 Rich Cobalt'), +(@GUID1+38,@POOL+38,@CHANCE1, 'Grizzly Hills Ore Spawnpoint 39 Cobalt'), +(@GUID2+38,@POOL+38,@CHANCE2, 'Grizzly Hills Ore Spawnpoint 39 Rich Cobalt'), +(@GUID1+39,@POOL+39,@CHANCE1, 'Grizzly Hills Ore Spawnpoint 40 Cobalt'), +(@GUID2+39,@POOL+39,@CHANCE2, 'Grizzly Hills Ore Spawnpoint 40 Rich Cobalt'), +(@GUID1+40,@POOL+40,@CHANCE1, 'Grizzly Hills Ore Spawnpoint 41 Cobalt'), +(@GUID2+40,@POOL+40,@CHANCE2, 'Grizzly Hills Ore Spawnpoint 41 Rich Cobalt'), +(@GUID1+41,@POOL+41,@CHANCE1, 'Grizzly Hills Ore Spawnpoint 42 Cobalt'), +(@GUID2+41,@POOL+41,@CHANCE2, 'Grizzly Hills Ore Spawnpoint 42 Rich Cobalt'), +(@GUID1+42,@POOL+42,@CHANCE1, 'Grizzly Hills Ore Spawnpoint 43 Cobalt'), +(@GUID2+42,@POOL+42,@CHANCE2, 'Grizzly Hills Ore Spawnpoint 43 Rich Cobalt'), +(@GUID1+43,@POOL+43,@CHANCE1, 'Grizzly Hills Ore Spawnpoint 44 Cobalt'), +(@GUID2+43,@POOL+43,@CHANCE2, 'Grizzly Hills Ore Spawnpoint 44 Rich Cobalt'), +(@GUID1+44,@POOL+44,@CHANCE1, 'Grizzly Hills Ore Spawnpoint 45 Cobalt'), +(@GUID2+44,@POOL+44,@CHANCE2, 'Grizzly Hills Ore Spawnpoint 45 Rich Cobalt'), +(@GUID1+45,@POOL+45,@CHANCE1, 'Grizzly Hills Ore Spawnpoint 46 Cobalt'), +(@GUID2+45,@POOL+45,@CHANCE2, 'Grizzly Hills Ore Spawnpoint 46 Rich Cobalt'), +(@GUID1+46,@POOL+46,@CHANCE1, 'Grizzly Hills Ore Spawnpoint 47 Cobalt'), +(@GUID2+46,@POOL+46,@CHANCE2, 'Grizzly Hills Ore Spawnpoint 47 Rich Cobalt'), +(@GUID1+47,@POOL+47,@CHANCE1, 'Grizzly Hills Ore Spawnpoint 48 Cobalt'), +(@GUID2+47,@POOL+47,@CHANCE2, 'Grizzly Hills Ore Spawnpoint 48 Rich Cobalt'), +(@GUID1+48,@POOL+48,@CHANCE1, 'Grizzly Hills Ore Spawnpoint 49 Cobalt'), +(@GUID2+48,@POOL+48,@CHANCE2, 'Grizzly Hills Ore Spawnpoint 49 Rich Cobalt'), +(@GUID1+49,@POOL+49,@CHANCE1, 'Grizzly Hills Ore Spawnpoint 50 Cobalt'), +(@GUID2+49,@POOL+49,@CHANCE2, 'Grizzly Hills Ore Spawnpoint 50 Rich Cobalt'), +(@GUID1+50,@POOL+50,@CHANCE1, 'Grizzly Hills Ore Spawnpoint 51 Cobalt'), +(@GUID2+50,@POOL+50,@CHANCE2, 'Grizzly Hills Ore Spawnpoint 51 Rich Cobalt'), +(@GUID1+51,@POOL+51,@CHANCE1, 'Grizzly Hills Ore Spawnpoint 52 Cobalt'), +(@GUID2+51,@POOL+51,@CHANCE2, 'Grizzly Hills Ore Spawnpoint 52 Rich Cobalt'), +(@GUID1+52,@POOL+52,@CHANCE1, 'Grizzly Hills Ore Spawnpoint 53 Cobalt'), +(@GUID2+52,@POOL+52,@CHANCE2, 'Grizzly Hills Ore Spawnpoint 53 Rich Cobalt'), +(@GUID1+53,@POOL+53,@CHANCE1, 'Grizzly Hills Ore Spawnpoint 54 Cobalt'), +(@GUID2+53,@POOL+53,@CHANCE2, 'Grizzly Hills Ore Spawnpoint 54 Rich Cobalt'), +(@GUID1+54,@POOL+54,@CHANCE1, 'Grizzly Hills Ore Spawnpoint 55 Cobalt'), +(@GUID2+54,@POOL+54,@CHANCE2, 'Grizzly Hills Ore Spawnpoint 55 Rich Cobalt'), +(@GUID1+55,@POOL+55,@CHANCE1, 'Grizzly Hills Ore Spawnpoint 56 Cobalt'), +(@GUID2+55,@POOL+55,@CHANCE2, 'Grizzly Hills Ore Spawnpoint 56 Rich Cobalt'), +(@GUID1+56,@POOL+56,@CHANCE1, 'Grizzly Hills Ore Spawnpoint 57 Cobalt'), +(@GUID2+56,@POOL+56,@CHANCE2, 'Grizzly Hills Ore Spawnpoint 57 Rich Cobalt'), +(@GUID1+57,@POOL+57,@CHANCE1, 'Grizzly Hills Ore Spawnpoint 58 Cobalt'), +(@GUID2+57,@POOL+57,@CHANCE2, 'Grizzly Hills Ore Spawnpoint 58 Rich Cobalt'), +(@GUID1+58,@POOL+58,@CHANCE1, 'Grizzly Hills Ore Spawnpoint 59 Cobalt'), +(@GUID2+58,@POOL+58,@CHANCE2, 'Grizzly Hills Ore Spawnpoint 59 Rich Cobalt'), +(@GUID1+59,@POOL+59,@CHANCE1, 'Grizzly Hills Ore Spawnpoint 60 Cobalt'), +(@GUID2+59,@POOL+59,@CHANCE2, 'Grizzly Hills Ore Spawnpoint 60 Rich Cobalt'), +(@GUID1+60,@POOL+60,@CHANCE1, 'Grizzly Hills Ore Spawnpoint 61 Cobalt'), +(@GUID2+60,@POOL+60,@CHANCE2, 'Grizzly Hills Ore Spawnpoint 61 Rich Cobalt'); +-- Add each pool to pool template +DELETE FROM `pool_template` WHERE `entry` BETWEEN @POOL AND @POOL+@LASTGUID; +INSERT INTO `pool_template` (`entry`,`max_limit`,`description`) VALUES +(@POOL+0,1, 'Grizzly Hills Ore Spawnpoint 1'), +(@POOL+1,1, 'Grizzly Hills Ore Spawnpoint 2'), +(@POOL+2,1, 'Grizzly Hills Ore Spawnpoint 3'), +(@POOL+3,1, 'Grizzly Hills Ore Spawnpoint 4'), +(@POOL+4,1, 'Grizzly Hills Ore Spawnpoint 5'), +(@POOL+5,1, 'Grizzly Hills Ore Spawnpoint 6'), +(@POOL+6,1, 'Grizzly Hills Ore Spawnpoint 7'), +(@POOL+7,1, 'Grizzly Hills Ore Spawnpoint 8'), +(@POOL+8,1, 'Grizzly Hills Ore Spawnpoint 9'), +(@POOL+9,1, 'Grizzly Hills Ore Spawnpoint 10'), +(@POOL+10,1, 'Grizzly Hills Ore Spawnpoint 11'), +(@POOL+11,1, 'Grizzly Hills Ore Spawnpoint 12'), +(@POOL+12,1, 'Grizzly Hills Ore Spawnpoint 13'), +(@POOL+13,1, 'Grizzly Hills Ore Spawnpoint 14'), +(@POOL+14,1, 'Grizzly Hills Ore Spawnpoint 15'), +(@POOL+15,1, 'Grizzly Hills Ore Spawnpoint 16'), +(@POOL+16,1, 'Grizzly Hills Ore Spawnpoint 17'), +(@POOL+17,1, 'Grizzly Hills Ore Spawnpoint 18'), +(@POOL+18,1, 'Grizzly Hills Ore Spawnpoint 19'), +(@POOL+19,1, 'Grizzly Hills Ore Spawnpoint 20'), +(@POOL+20,1, 'Grizzly Hills Ore Spawnpoint 21'), +(@POOL+21,1, 'Grizzly Hills Ore Spawnpoint 22'), +(@POOL+22,1, 'Grizzly Hills Ore Spawnpoint 23'), +(@POOL+23,1, 'Grizzly Hills Ore Spawnpoint 24'), +(@POOL+24,1, 'Grizzly Hills Ore Spawnpoint 25'), +(@POOL+25,1, 'Grizzly Hills Ore Spawnpoint 26'), +(@POOL+26,1, 'Grizzly Hills Ore Spawnpoint 27'), +(@POOL+27,1, 'Grizzly Hills Ore Spawnpoint 28'), +(@POOL+28,1, 'Grizzly Hills Ore Spawnpoint 29'), +(@POOL+29,1, 'Grizzly Hills Ore Spawnpoint 30'), +(@POOL+30,1, 'Grizzly Hills Ore Spawnpoint 31'), +(@POOL+31,1, 'Grizzly Hills Ore Spawnpoint 32'), +(@POOL+32,1, 'Grizzly Hills Ore Spawnpoint 33'), +(@POOL+33,1, 'Grizzly Hills Ore Spawnpoint 34'), +(@POOL+34,1, 'Grizzly Hills Ore Spawnpoint 35'), +(@POOL+35,1, 'Grizzly Hills Ore Spawnpoint 36'), +(@POOL+36,1, 'Grizzly Hills Ore Spawnpoint 37'), +(@POOL+37,1, 'Grizzly Hills Ore Spawnpoint 38'), +(@POOL+38,1, 'Grizzly Hills Ore Spawnpoint 39'), +(@POOL+39,1, 'Grizzly Hills Ore Spawnpoint 40'), +(@POOL+40,1, 'Grizzly Hills Ore Spawnpoint 41'), +(@POOL+41,1, 'Grizzly Hills Ore Spawnpoint 42'), +(@POOL+42,1, 'Grizzly Hills Ore Spawnpoint 43'), +(@POOL+43,1, 'Grizzly Hills Ore Spawnpoint 44'), +(@POOL+44,1, 'Grizzly Hills Ore Spawnpoint 45'), +(@POOL+45,1, 'Grizzly Hills Ore Spawnpoint 46'), +(@POOL+46,1, 'Grizzly Hills Ore Spawnpoint 47'), +(@POOL+47,1, 'Grizzly Hills Ore Spawnpoint 48'), +(@POOL+48,1, 'Grizzly Hills Ore Spawnpoint 49'), +(@POOL+49,1, 'Grizzly Hills Ore Spawnpoint 50'), +(@POOL+50,1, 'Grizzly Hills Ore Spawnpoint 51'), +(@POOL+51,1, 'Grizzly Hills Ore Spawnpoint 52'), +(@POOL+52,1, 'Grizzly Hills Ore Spawnpoint 53'), +(@POOL+53,1, 'Grizzly Hills Ore Spawnpoint 54'), +(@POOL+54,1, 'Grizzly Hills Ore Spawnpoint 55'), +(@POOL+55,1, 'Grizzly Hills Ore Spawnpoint 56'), +(@POOL+56,1, 'Grizzly Hills Ore Spawnpoint 57'), +(@POOL+57,1, 'Grizzly Hills Ore Spawnpoint 58'), +(@POOL+58,1, 'Grizzly Hills Ore Spawnpoint 59'), +(@POOL+59,1, 'Grizzly Hills Ore Spawnpoint 60'), +(@POOL+60,1, 'Grizzly Hills Ore Spawnpoint 61'); +-- Add mother pool to pool template +DELETE FROM `pool_template` WHERE `entry`=@MOTHER; +INSERT INTO `pool_template` (`entry`,`max_limit`,`description`) VALUES +(@MOTHER,@ACTIVE, 'Grizzly Hills Ore Mother pool'); +-- Add each pool to pool_pool +DELETE FROM `pool_pool` WHERE `pool_id` BETWEEN @POOL AND @POOL+@LASTGUID; +INSERT INTO `pool_pool` (`pool_id`,`mother_pool`,`chance`,`description`) VALUES +(@POOL+0,@MOTHER,0, 'Grizzly Hills Ore Spawnpoint 1'), +(@POOL+1,@MOTHER,0, 'Grizzly Hills Ore Spawnpoint 2'), +(@POOL+2,@MOTHER,0, 'Grizzly Hills Ore Spawnpoint 3'), +(@POOL+3,@MOTHER,0, 'Grizzly Hills Ore Spawnpoint 4'), +(@POOL+4,@MOTHER,0, 'Grizzly Hills Ore Spawnpoint 5'), +(@POOL+5,@MOTHER,0, 'Grizzly Hills Ore Spawnpoint 6'), +(@POOL+6,@MOTHER,0, 'Grizzly Hills Ore Spawnpoint 7'), +(@POOL+7,@MOTHER,0, 'Grizzly Hills Ore Spawnpoint 8'), +(@POOL+8,@MOTHER,0, 'Grizzly Hills Ore Spawnpoint 9'), +(@POOL+9,@MOTHER,0, 'Grizzly Hills Ore Spawnpoint 10'), +(@POOL+10,@MOTHER,0, 'Grizzly Hills Ore Spawnpoint 11'), +(@POOL+11,@MOTHER,0, 'Grizzly Hills Ore Spawnpoint 12'), +(@POOL+12,@MOTHER,0, 'Grizzly Hills Ore Spawnpoint 13'), +(@POOL+13,@MOTHER,0, 'Grizzly Hills Ore Spawnpoint 14'), +(@POOL+14,@MOTHER,0, 'Grizzly Hills Ore Spawnpoint 15'), +(@POOL+15,@MOTHER,0, 'Grizzly Hills Ore Spawnpoint 16'), +(@POOL+16,@MOTHER,0, 'Grizzly Hills Ore Spawnpoint 17'), +(@POOL+17,@MOTHER,0, 'Grizzly Hills Ore Spawnpoint 18'), +(@POOL+18,@MOTHER,0, 'Grizzly Hills Ore Spawnpoint 19'), +(@POOL+19,@MOTHER,0, 'Grizzly Hills Ore Spawnpoint 20'), +(@POOL+20,@MOTHER,0, 'Grizzly Hills Ore Spawnpoint 21'), +(@POOL+21,@MOTHER,0, 'Grizzly Hills Ore Spawnpoint 22'), +(@POOL+22,@MOTHER,0, 'Grizzly Hills Ore Spawnpoint 23'), +(@POOL+23,@MOTHER,0, 'Grizzly Hills Ore Spawnpoint 24'), +(@POOL+24,@MOTHER,0, 'Grizzly Hills Ore Spawnpoint 25'), +(@POOL+25,@MOTHER,0, 'Grizzly Hills Ore Spawnpoint 26'), +(@POOL+26,@MOTHER,0, 'Grizzly Hills Ore Spawnpoint 27'), +(@POOL+27,@MOTHER,0, 'Grizzly Hills Ore Spawnpoint 28'), +(@POOL+28,@MOTHER,0, 'Grizzly Hills Ore Spawnpoint 29'), +(@POOL+29,@MOTHER,0, 'Grizzly Hills Ore Spawnpoint 30'), +(@POOL+30,@MOTHER,0, 'Grizzly Hills Ore Spawnpoint 31'), +(@POOL+31,@MOTHER,0, 'Grizzly Hills Ore Spawnpoint 32'), +(@POOL+32,@MOTHER,0, 'Grizzly Hills Ore Spawnpoint 33'), +(@POOL+33,@MOTHER,0, 'Grizzly Hills Ore Spawnpoint 34'), +(@POOL+34,@MOTHER,0, 'Grizzly Hills Ore Spawnpoint 35'), +(@POOL+35,@MOTHER,0, 'Grizzly Hills Ore Spawnpoint 36'), +(@POOL+36,@MOTHER,0, 'Grizzly Hills Ore Spawnpoint 37'), +(@POOL+37,@MOTHER,0, 'Grizzly Hills Ore Spawnpoint 38'), +(@POOL+38,@MOTHER,0, 'Grizzly Hills Ore Spawnpoint 39'), +(@POOL+39,@MOTHER,0, 'Grizzly Hills Ore Spawnpoint 40'), +(@POOL+40,@MOTHER,0, 'Grizzly Hills Ore Spawnpoint 41'), +(@POOL+41,@MOTHER,0, 'Grizzly Hills Ore Spawnpoint 42'), +(@POOL+42,@MOTHER,0, 'Grizzly Hills Ore Spawnpoint 43'), +(@POOL+43,@MOTHER,0, 'Grizzly Hills Ore Spawnpoint 44'), +(@POOL+44,@MOTHER,0, 'Grizzly Hills Ore Spawnpoint 45'), +(@POOL+45,@MOTHER,0, 'Grizzly Hills Ore Spawnpoint 46'), +(@POOL+46,@MOTHER,0, 'Grizzly Hills Ore Spawnpoint 47'), +(@POOL+47,@MOTHER,0, 'Grizzly Hills Ore Spawnpoint 48'), +(@POOL+48,@MOTHER,0, 'Grizzly Hills Ore Spawnpoint 49'), +(@POOL+49,@MOTHER,0, 'Grizzly Hills Ore Spawnpoint 50'), +(@POOL+50,@MOTHER,0, 'Grizzly Hills Ore Spawnpoint 51'), +(@POOL+51,@MOTHER,0, 'Grizzly Hills Ore Spawnpoint 52'), +(@POOL+52,@MOTHER,0, 'Grizzly Hills Ore Spawnpoint 53'), +(@POOL+53,@MOTHER,0, 'Grizzly Hills Ore Spawnpoint 54'), +(@POOL+54,@MOTHER,0, 'Grizzly Hills Ore Spawnpoint 55'), +(@POOL+55,@MOTHER,0, 'Grizzly Hills Ore Spawnpoint 56'), +(@POOL+56,@MOTHER,0, 'Grizzly Hills Ore Spawnpoint 57'), +(@POOL+57,@MOTHER,0, 'Grizzly Hills Ore Spawnpoint 58'), +(@POOL+58,@MOTHER,0, 'Grizzly Hills Ore Spawnpoint 59'), +(@POOL+59,@MOTHER,0, 'Grizzly Hills Ore Spawnpoint 60'), +(@POOL+60,@MOTHER,0, 'Grizzly Hills Ore Spawnpoint 61'); + +-- ----------------------------------- +-- -- Fixup ore spawns for Zul'Drak -- +-- ----------------------------------- +SET @RANGE := 150; +SET @GUID1 := 161100; +SET @GUID2 := @GUID1 + @RANGE; +SET @POOL := 10650; +SET @LASTGUID := 92; +SET @CHANCE1 := 90; +SET @CHANCE2 := 100 - @CHANCE1; +SET @MOTHER := 9904; +SET @ACTIVE := 30; -- Max number of active spawns +SET @TIMER := 900; -- Respawn timer in seconds +-- Remove existing Colbalt, Rich Colbalt, & Saronite Deposits from Zul''Drak +DELETE FROM gameobject WHERE id IN (189978,189979,189980) AND map=571 AND position_y < -1100 AND position_y > -3605 AND `position_x` > 4850 AND `position_x` < 6516 ORDER BY position_x; +DELETE FROM gameobject WHERE id IN (189978,189979,189980) AND map=571 AND position_y < -3605 AND position_y > -5500 AND `position_x` > 5100 AND `position_x` < 7000 ORDER BY position_x; +-- Remove old pools +DELETE FROM `pool_gameobject` WHERE `guid` NOT IN (SELECT `guid` FROM `gameobject`); +DELETE FROM `pool_template` WHERE `entry` BETWEEN 5256 AND 5276; +-- Colbalt Deposits Zul'Drak +INSERT INTO `gameobject` (`guid`, `id`, `map`, `spawnMask`, `phaseMask`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecs`, `animprogress`, `state`) VALUES +(@GUID1,189978,571,1,1,4859.570,-2766.920,293.1760,1.39626,0,0,0,1,@TIMER,255,1), +(@GUID1+1,189978,571,1,1,4862.150,-3603.410,307.0340,1.50098,0,0,0,1,@TIMER,255,1), +(@GUID1+2,189978,571,1,1,4865.680,-2458.640,213.6510,2.30383,0,0,0,1,@TIMER,255,1), +(@GUID1+3,189978,571,1,1,4914.590,-1231.760,174.7320,0.08727,0,0,0,1,@TIMER,255,1), +(@GUID1+4,189978,571,1,1,4930.794,-2900.828,290.6294,-0.55850,0,0,0,1,@TIMER,255,1), +(@GUID1+5,189978,571,1,1,4988.300,-3547.630,289.5220,3.07177,0,0,0,1,@TIMER,255,1), +(@GUID1+6,189978,571,1,1,5034.149,-3107.575,281.8192,-2.94960,0,0,0,1,@TIMER,255,1), +(@GUID1+7,189978,571,1,1,5068.390,-1175.990,260.7850,2.42601,0,0,0,1,@TIMER,255,1), +(@GUID1+8,189978,571,1,1,5086.030,-1155.550,265.3410,1.48353,0,0,0,1,@TIMER,255,1), +(@GUID1+9,189978,571,1,1,5090.210,-1197.570,267.1280,-2.60053,0,0,0,1,@TIMER,255,1), +(@GUID1+10,189978,571,1,1,5104.010,-1243.180,252.9670,2.25147,0,0,0,1,@TIMER,255,1), +(@GUID1+11,189978,571,1,1,5107.330,-1267.570,262.3820,2.28638,0,0,0,1,@TIMER,255,1), +(@GUID1+12,189978,571,1,1,5118.357,-2138.430,241.0557,2.16421,0,0,0,1,@TIMER,255,1), +(@GUID1+13,189978,571,1,1,5124.540,-2863.140,292.8380,-0.43633,0,0,0,1,@TIMER,255,1), +(@GUID1+14,189978,571,1,1,5126.980,-1597.360,236.5620,-3.05433,0,0,0,1,@TIMER,255,1), +(@GUID1+15,189978,571,1,1,5131.699,-2155.166,239.0023,0.99484,0,0,0,1,@TIMER,255,1), +(@GUID1+16,189978,571,1,1,5131.740,-1276.760,248.3140,3.07177,0,0,0,1,@TIMER,255,1), +(@GUID1+17,189978,571,1,1,5138.820,-1427.070,246.8070,-1.43117,0,0,0,1,@TIMER,255,1), +(@GUID1+18,189978,571,1,1,5174.090,-1159.020,257.8510,2.26892,0,0,0,1,@TIMER,255,1), +(@GUID1+19,189978,571,1,1,5179.080,-3316.920,283.7740,-0.90757,0,0,0,1,@TIMER,255,1), +(@GUID1+20,189978,571,1,1,5179.630,-3603.580,295.8630,-0.59341,0,0,0,1,@TIMER,255,1), +(@GUID1+21,189978,571,1,1,5193.190,-3341.850,289.4360,-2.65289,0,0,0,1,@TIMER,255,1), +(@GUID1+22,189978,571,1,1,5213.890,-3377.160,290.4010,1.81514,0,0,0,1,@TIMER,255,1), +(@GUID1+23,189978,571,1,1,5239.606,-2370.833,286.3241,0.33161,0,0,0,1,@TIMER,255,1), +(@GUID1+24,189978,571,1,1,5251.932,-2361.378,286.3510,-1.04720,0,0,0,1,@TIMER,255,1), +(@GUID1+25,189978,571,1,1,5272.223,-1614.815,231.3021,-0.55850,0,0,0,1,@TIMER,255,1), +(@GUID1+26,189978,571,1,1,5309.277,-3209.399,282.3378,-0.57596,0,0,0,1,@TIMER,255,1), +(@GUID1+27,189978,571,1,1,5309.970,-2060.150,241.4680,1.62316,0,0,0,1,@TIMER,255,1), +(@GUID1+28,189978,571,1,1,5311.820,-3125.220,280.9130,2.84488,0,0,0,1,@TIMER,255,1), +(@GUID1+29,189978,571,1,1,5311.940,-1202.480,246.5990,-1.16937,0,0,0,1,@TIMER,255,1), +(@GUID1+30,189978,571,1,1,5319.037,-4535.752,415.2371,1.18682,0,0,0,1,@TIMER,255,1), +(@GUID1+31,189978,571,1,1,5341.113,-1305.672,238.4332,-2.30383,0,0,0,1,@TIMER,255,1), +(@GUID1+32,189978,571,1,1,5355.556,-2016.313,235.9245,2.58308,0,0,0,1,@TIMER,255,1), +(@GUID1+33,189978,571,1,1,5364.510,-2058.915,242.2356,2.70526,0,0,0,1,@TIMER,255,1), +(@GUID1+34,189978,571,1,1,5368.401,-3257.874,290.5284,1.30900,0,0,0,1,@TIMER,255,1), +(@GUID1+35,189978,571,1,1,5374.420,-1755.010,240.0630,2.98450,0,0,0,1,@TIMER,255,1), +(@GUID1+36,189978,571,1,1,5380.200,-2170.010,237.1360,-1.32645,0,0,0,1,@TIMER,255,1), +(@GUID1+37,189978,571,1,1,5384.130,-1101.800,185.3190,2.58308,0,0,0,1,@TIMER,255,1), +(@GUID1+38,189978,571,1,1,5402.130,-1898.590,237.1590,1.74533,0,0,0,1,@TIMER,255,1), +(@GUID1+39,189978,571,1,1,5403.180,-2268.070,243.9030,2.40855,0,0,0,1,@TIMER,255,1), +(@GUID1+40,189978,571,1,1,5410.570,-2534.090,292.4060,2.51327,0,0,0,1,@TIMER,255,1), +(@GUID1+41,189978,571,1,1,5512.260,-1314.160,238.3930,-0.20944,0,0,0,1,@TIMER,255,1), +(@GUID1+42,189978,571,1,1,5517.676,-2101.106,239.9783,-0.71558,0,0,0,1,@TIMER,255,1), +(@GUID1+43,189978,571,1,1,5517.870,-1276.300,239.4080,2.16421,0,0,0,1,@TIMER,255,1), +(@GUID1+44,189978,571,1,1,5546.540,-1721.970,243.6690,-2.58308,0,0,0,1,@TIMER,255,1), +(@GUID1+45,189978,571,1,1,5557.930,-2331.110,287.8600,-1.50098,0,0,0,1,@TIMER,255,1), +(@GUID1+46,189978,571,1,1,5566.940,-1860.930,235.2660,-1.79769,0,0,0,1,@TIMER,255,1), +(@GUID1+47,189978,571,1,1,5673.484,-3554.344,373.4818,0.71558,0,0,0,1,@TIMER,255,1), +(@GUID1+48,189978,571,1,1,5697.810,-2317.470,288.6290,1.13446,0,0,0,1,@TIMER,255,1), +(@GUID1+49,189978,571,1,1,5711.410,-3665.910,372.2200,-2.75761,0,0,0,1,@TIMER,255,1), +(@GUID1+50,189978,571,1,1,5714.953,-2415.053,288.1849,2.16421,0,0,0,1,@TIMER,255,1), +(@GUID1+51,189978,571,1,1,5775.913,-3235.525,362.1545,-2.74016,0,0,0,1,@TIMER,255,1), +(@GUID1+52,189978,571,1,1,5840.190,-2309.730,288.2010,-1.08210,0,0,0,1,@TIMER,255,1), +(@GUID1+53,189978,571,1,1,5915.270,-1263.340,261.5160,-2.87979,0,0,0,1,@TIMER,255,1), +(@GUID1+54,189978,571,1,1,5953.860,-2800.040,270.2110,-1.04720,0,0,0,1,@TIMER,255,1), +(@GUID1+55,189978,571,1,1,5966.880,-4236.390,358.4940,-1.43117,0,0,0,1,@TIMER,255,1), +(@GUID1+56,189978,571,1,1,5970.190,-2870.240,287.2890,-0.66322,0,0,0,1,@TIMER,255,1), +(@GUID1+57,189978,571,1,1,5971.868,-3366.344,363.9691,-0.06981,0,0,0,1,@TIMER,255,1), +(@GUID1+58,189978,571,1,1,5972.123,-3234.955,361.8635,0.75049,0,0,0,1,@TIMER,255,1), +(@GUID1+59,189978,571,1,1,5990.524,-4156.240,377.7000,1.72787,0,0,0,1,@TIMER,255,1), +(@GUID1+60,189978,571,1,1,6033.010,-4086.710,355.1950,1.83259,0,0,0,1,@TIMER,255,1), +(@GUID1+61,189978,571,1,1,6051.720,-1285.410,503.8380,-1.88495,0,0,0,1,@TIMER,255,1), +(@GUID1+62,189978,571,1,1,6055.426,-4338.665,378.8201,2.60054,0,0,0,1,@TIMER,255,1), +(@GUID1+63,189978,571,1,1,6073.873,-2672.150,293.3498,0.27925,0,0,0,1,@TIMER,255,1), +(@GUID1+64,189978,571,1,1,6085.920,-1623.470,273.3960,-1.41372,0,0,0,1,@TIMER,255,1), +(@GUID1+65,189978,571,1,1,6093.193,-4243.174,319.0197,0.22689,0,0,0,1,@TIMER,255,1), +(@GUID1+66,189978,571,1,1,6106.116,-4426.526,366.1528,-0.95993,0,0,0,1,@TIMER,255,1), +(@GUID1+67,189978,571,1,1,6131.640,-2383.840,301.0840,-0.26180,0,0,0,1,@TIMER,255,1), +(@GUID1+68,189978,571,1,1,6171.825,-3366.969,363.1176,0.73304,0,0,0,1,@TIMER,255,1), +(@GUID1+69,189978,571,1,1,6176.548,-3235.763,362.9467,2.46091,0,0,0,1,@TIMER,255,1), +(@GUID1+70,189978,571,1,1,6217.740,-2238.070,238.7050,-1.97222,0,0,0,1,@TIMER,255,1), +(@GUID1+71,189978,571,1,1,6265.880,-2931.170,307.0120,0.76794,0,0,0,1,@TIMER,255,1), +(@GUID1+72,189978,571,1,1,6278.610,-2746.580,303.1850,2.87979,0,0,0,1,@TIMER,255,1), +(@GUID1+73,189978,571,1,1,6280.100,-2592.430,302.3720,-1.36136,0,0,0,1,@TIMER,255,1), +(@GUID1+74,189978,571,1,1,6286.331,-2263.173,237.8203,-2.37364,0,0,0,1,@TIMER,255,1), +(@GUID1+75,189978,571,1,1,6286.910,-2671.790,304.4130,-1.36136,0,0,0,1,@TIMER,255,1), +(@GUID1+76,189978,571,1,1,6331.420,-2977.620,339.6420,1.67551,0,0,0,1,@TIMER,255,1), +(@GUID1+77,189978,571,1,1,6365.950,-2193.240,272.6010,-0.47124,0,0,0,1,@TIMER,255,1), +(@GUID1+78,189978,571,1,1,6436.630,-3241.960,405.8750,-1.01229,0,0,0,1,@TIMER,255,1), +(@GUID1+79,189978,571,1,1,6439.040,-3330.390,404.9060,-0.66322,0,0,0,1,@TIMER,255,1), +(@GUID1+80,189978,571,1,1,6462.370,-3474.220,388.9030,-0.22689,0,0,0,1,@TIMER,255,1), +(@GUID1+81,189978,571,1,1,6512.855,-4255.316,463.8195,-0.29671,0,0,0,1,@TIMER,255,1), +(@GUID1+82,189978,571,1,1,6515.427,-3485.970,389.0715,1.64061,0,0,0,1,@TIMER,255,1), +(@GUID1+83,189978,571,1,1,6537.952,-4141.421,467.0403,-0.10472,0,0,0,1,@TIMER,255,1), +(@GUID1+84,189978,571,1,1,6564.480,-4107.550,464.1680,1.76278,0,0,0,1,@TIMER,255,1), +(@GUID1+85,189978,571,1,1,6572.520,-4193.380,468.7800,-1.55334,0,0,0,1,@TIMER,255,1), +(@GUID1+86,189978,571,1,1,6579.668,-4053.245,487.2758,-1.18682,0,0,0,1,@TIMER,255,1), +(@GUID1+87,189978,571,1,1,6700.080,-4231.600,461.2990,0.76794,0,0,0,1,@TIMER,255,1), +(@GUID1+88,189978,571,1,1,6779.470,-4100.770,470.9730,-3.10665,0,0,0,1,@TIMER,255,1), +(@GUID1+89,189978,571,1,1,6792.440,-4281.660,452.8340,0.85521,0,0,0,1,@TIMER,255,1), +(@GUID1+90,189978,571,1,1,6818.135,-4627.391,442.2250,1.34390,0,0,0,1,@TIMER,255,1), +(@GUID1+91,189978,571,1,1,6845.492,-4442.293,444.4835,-0.59341,0,0,0,1,@TIMER,255,1), +(@GUID1+92,189978,571,1,1,6914.570,-4477.570,444.9130,1.55334,0,0,0,1,@TIMER,255,1); +-- Rich Colbalt & Saronite Deposits Zul'Drak +INSERT INTO `gameobject` (`guid`, `id`, `map`, `spawnMask`, `phaseMask`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecs`, `animprogress`, `state`) VALUES +(@GUID2,189979,571,1,1,4859.570,-2766.920,293.1760,1.39626,0,0,0,1,@TIMER,255,1), +(@GUID2+1,189979,571,1,1,4862.150,-3603.410,307.0340,1.50098,0,0,0,1,@TIMER,255,1), +(@GUID2+2,189979,571,1,1,4865.680,-2458.640,213.6510,2.30383,0,0,0,1,@TIMER,255,1), +(@GUID2+3,189979,571,1,1,4914.590,-1231.760,174.7320,0.08727,0,0,0,1,@TIMER,255,1), +(@GUID2+4,189979,571,1,1,4930.794,-2900.828,290.6294,-0.55850,0,0,0,1,@TIMER,255,1), +(@GUID2+5,189979,571,1,1,4988.300,-3547.630,289.5220,3.07177,0,0,0,1,@TIMER,255,1), +(@GUID2+6,189979,571,1,1,5034.149,-3107.575,281.8192,-2.94960,0,0,0,1,@TIMER,255,1), +(@GUID2+7,189979,571,1,1,5068.390,-1175.990,260.7850,2.42601,0,0,0,1,@TIMER,255,1), +(@GUID2+8,189979,571,1,1,5086.030,-1155.550,265.3410,1.48353,0,0,0,1,@TIMER,255,1), +(@GUID2+9,189979,571,1,1,5090.210,-1197.570,267.1280,-2.60053,0,0,0,1,@TIMER,255,1), +(@GUID2+10,189979,571,1,1,5104.010,-1243.180,252.9670,2.25147,0,0,0,1,@TIMER,255,1), +(@GUID2+11,189979,571,1,1,5107.330,-1267.570,262.3820,2.28638,0,0,0,1,@TIMER,255,1), +(@GUID2+12,189979,571,1,1,5118.357,-2138.430,241.0557,2.16421,0,0,0,1,@TIMER,255,1), +(@GUID2+13,189979,571,1,1,5124.540,-2863.140,292.8380,-0.43633,0,0,0,1,@TIMER,255,1), +(@GUID2+14,189979,571,1,1,5126.980,-1597.360,236.5620,-3.05433,0,0,0,1,@TIMER,255,1), +(@GUID2+15,189979,571,1,1,5131.699,-2155.166,239.0023,0.99484,0,0,0,1,@TIMER,255,1), +(@GUID2+16,189979,571,1,1,5131.740,-1276.760,248.3140,3.07177,0,0,0,1,@TIMER,255,1), +(@GUID2+17,189979,571,1,1,5138.820,-1427.070,246.8070,-1.43117,0,0,0,1,@TIMER,255,1), +(@GUID2+18,189979,571,1,1,5174.090,-1159.020,257.8510,2.26892,0,0,0,1,@TIMER,255,1), +(@GUID2+19,189979,571,1,1,5179.080,-3316.920,283.7740,-0.90757,0,0,0,1,@TIMER,255,1), +(@GUID2+20,189979,571,1,1,5179.630,-3603.580,295.8630,-0.59341,0,0,0,1,@TIMER,255,1), +(@GUID2+21,189979,571,1,1,5193.190,-3341.850,289.4360,-2.65289,0,0,0,1,@TIMER,255,1), +(@GUID2+22,189980,571,1,1,5213.890,-3377.160,290.4010,1.81514,0,0,0,1,@TIMER,255,1), -- Saronite +(@GUID2+23,189979,571,1,1,5239.606,-2370.833,286.3241,0.33161,0,0,0,1,@TIMER,255,1), +(@GUID2+24,189979,571,1,1,5251.932,-2361.378,286.3510,-1.04720,0,0,0,1,@TIMER,255,1), +(@GUID2+25,189979,571,1,1,5272.223,-1614.815,231.3021,-0.55850,0,0,0,1,@TIMER,255,1), +(@GUID2+26,189979,571,1,1,5309.277,-3209.399,282.3378,-0.57596,0,0,0,1,@TIMER,255,1), +(@GUID2+27,189979,571,1,1,5309.970,-2060.150,241.4680,1.62316,0,0,0,1,@TIMER,255,1), +(@GUID2+28,189979,571,1,1,5311.820,-3125.220,280.9130,2.84488,0,0,0,1,@TIMER,255,1), +(@GUID2+29,189979,571,1,1,5311.940,-1202.480,246.5990,-1.16937,0,0,0,1,@TIMER,255,1), +(@GUID2+30,189979,571,1,1,5319.037,-4535.752,415.2371,1.18682,0,0,0,1,@TIMER,255,1), +(@GUID2+31,189979,571,1,1,5341.113,-1305.672,238.4332,-2.30383,0,0,0,1,@TIMER,255,1), +(@GUID2+32,189979,571,1,1,5355.556,-2016.313,235.9245,2.58308,0,0,0,1,@TIMER,255,1), +(@GUID2+33,189979,571,1,1,5364.510,-2058.915,242.2356,2.70526,0,0,0,1,@TIMER,255,1), +(@GUID2+34,189979,571,1,1,5368.401,-3257.874,290.5284,1.30900,0,0,0,1,@TIMER,255,1), +(@GUID2+35,189979,571,1,1,5374.420,-1755.010,240.0630,2.98450,0,0,0,1,@TIMER,255,1), +(@GUID2+36,189979,571,1,1,5380.200,-2170.010,237.1360,-1.32645,0,0,0,1,@TIMER,255,1), +(@GUID2+37,189979,571,1,1,5384.130,-1101.800,185.3190,2.58308,0,0,0,1,@TIMER,255,1), +(@GUID2+38,189979,571,1,1,5402.130,-1898.590,237.1590,1.74533,0,0,0,1,@TIMER,255,1), +(@GUID2+39,189979,571,1,1,5403.180,-2268.070,243.9030,2.40855,0,0,0,1,@TIMER,255,1), +(@GUID2+40,189979,571,1,1,5410.570,-2534.090,292.4060,2.51327,0,0,0,1,@TIMER,255,1), +(@GUID2+41,189979,571,1,1,5512.260,-1314.160,238.3930,-0.20944,0,0,0,1,@TIMER,255,1), +(@GUID2+42,189979,571,1,1,5517.676,-2101.106,239.9783,-0.71558,0,0,0,1,@TIMER,255,1), +(@GUID2+43,189979,571,1,1,5517.870,-1276.300,239.4080,2.16421,0,0,0,1,@TIMER,255,1), +(@GUID2+44,189979,571,1,1,5546.540,-1721.970,243.6690,-2.58308,0,0,0,1,@TIMER,255,1), +(@GUID2+45,189979,571,1,1,5557.930,-2331.110,287.8600,-1.50098,0,0,0,1,@TIMER,255,1), +(@GUID2+46,189980,571,1,1,5566.940,-1860.930,235.2660,-1.79769,0,0,0,1,@TIMER,255,1), -- Saronite +(@GUID2+47,189980,571,1,1,5673.484,-3554.344,373.4818,0.71558,0,0,0,1,@TIMER,255,1), -- Saronite +(@GUID2+48,189979,571,1,1,5697.810,-2317.470,288.6290,1.13446,0,0,0,1,@TIMER,255,1), +(@GUID2+49,189979,571,1,1,5711.410,-3665.910,372.2200,-2.75761,0,0,0,1,@TIMER,255,1), +(@GUID2+50,189979,571,1,1,5714.953,-2415.053,288.1849,2.16421,0,0,0,1,@TIMER,255,1), +(@GUID2+51,189979,571,1,1,5775.913,-3235.525,362.1545,-2.74016,0,0,0,1,@TIMER,255,1), +(@GUID2+52,189979,571,1,1,5840.190,-2309.730,288.2010,-1.08210,0,0,0,1,@TIMER,255,1), +(@GUID2+53,189979,571,1,1,5915.270,-1263.340,261.5160,-2.87979,0,0,0,1,@TIMER,255,1), +(@GUID2+54,189979,571,1,1,5953.860,-2800.040,270.2110,-1.04720,0,0,0,1,@TIMER,255,1), +(@GUID2+55,189979,571,1,1,5966.880,-4236.390,358.4940,-1.43117,0,0,0,1,@TIMER,255,1), +(@GUID2+56,189979,571,1,1,5970.190,-2870.240,287.2890,-0.66322,0,0,0,1,@TIMER,255,1), +(@GUID2+57,189979,571,1,1,5971.868,-3366.344,363.9691,-0.06981,0,0,0,1,@TIMER,255,1), +(@GUID2+58,189979,571,1,1,5972.123,-3234.955,361.8635,0.75049,0,0,0,1,@TIMER,255,1), +(@GUID2+59,189979,571,1,1,5990.524,-4156.240,377.7000,1.72787,0,0,0,1,@TIMER,255,1), +(@GUID2+60,189979,571,1,1,6033.010,-4086.710,355.1950,1.83259,0,0,0,1,@TIMER,255,1), +(@GUID2+61,189979,571,1,1,6051.720,-1285.410,503.8380,-1.88495,0,0,0,1,@TIMER,255,1), +(@GUID2+62,189980,571,1,1,6055.426,-4338.665,378.8201,2.60054,0,0,0,1,@TIMER,255,1), -- Saronite +(@GUID2+63,189979,571,1,1,6073.873,-2672.150,293.3498,0.27925,0,0,0,1,@TIMER,255,1), +(@GUID2+64,189979,571,1,1,6085.920,-1623.470,273.3960,-1.41372,0,0,0,1,@TIMER,255,1), +(@GUID2+65,189979,571,1,1,6093.193,-4243.174,319.0197,0.22689,0,0,0,1,@TIMER,255,1), +(@GUID2+66,189979,571,1,1,6106.116,-4426.526,366.1528,-0.95993,0,0,0,1,@TIMER,255,1), +(@GUID2+67,189979,571,1,1,6131.640,-2383.840,301.0840,-0.26180,0,0,0,1,@TIMER,255,1), +(@GUID2+68,189979,571,1,1,6171.825,-3366.969,363.1176,0.73304,0,0,0,1,@TIMER,255,1), +(@GUID2+69,189979,571,1,1,6176.548,-3235.763,362.9467,2.46091,0,0,0,1,@TIMER,255,1), +(@GUID2+70,189979,571,1,1,6217.740,-2238.070,238.7050,-1.97222,0,0,0,1,@TIMER,255,1), +(@GUID2+71,189980,571,1,1,6265.880,-2931.170,307.0120,0.76794,0,0,0,1,@TIMER,255,1), -- Saronite +(@GUID2+72,189979,571,1,1,6278.610,-2746.580,303.1850,2.87979,0,0,0,1,@TIMER,255,1), +(@GUID2+73,189979,571,1,1,6280.100,-2592.430,302.3720,-1.36136,0,0,0,1,@TIMER,255,1), +(@GUID2+74,189980,571,1,1,6286.331,-2263.173,237.8203,-2.37364,0,0,0,1,@TIMER,255,1), -- Saronite +(@GUID2+75,189979,571,1,1,6286.910,-2671.790,304.4130,-1.36136,0,0,0,1,@TIMER,255,1), +(@GUID2+76,189979,571,1,1,6331.420,-2977.620,339.6420,1.67551,0,0,0,1,@TIMER,255,1), +(@GUID2+77,189979,571,1,1,6365.950,-2193.240,272.6010,-0.47124,0,0,0,1,@TIMER,255,1), +(@GUID2+78,189979,571,1,1,6436.630,-3241.960,405.8750,-1.01229,0,0,0,1,@TIMER,255,1), +(@GUID2+79,189979,571,1,1,6439.040,-3330.390,404.9060,-0.66322,0,0,0,1,@TIMER,255,1), +(@GUID2+80,189979,571,1,1,6462.370,-3474.220,388.9030,-0.22689,0,0,0,1,@TIMER,255,1), +(@GUID2+81,189979,571,1,1,6512.855,-4255.316,463.8195,-0.29671,0,0,0,1,@TIMER,255,1), +(@GUID2+82,189979,571,1,1,6515.427,-3485.970,389.0715,1.64061,0,0,0,1,@TIMER,255,1), +(@GUID2+83,189979,571,1,1,6537.952,-4141.421,467.0403,-0.10472,0,0,0,1,@TIMER,255,1), +(@GUID2+84,189979,571,1,1,6564.480,-4107.550,464.1680,1.76278,0,0,0,1,@TIMER,255,1), +(@GUID2+85,189979,571,1,1,6572.520,-4193.380,468.7800,-1.55334,0,0,0,1,@TIMER,255,1), +(@GUID2+86,189979,571,1,1,6579.668,-4053.245,487.2758,-1.18682,0,0,0,1,@TIMER,255,1), +(@GUID2+87,189979,571,1,1,6700.080,-4231.600,461.2990,0.76794,0,0,0,1,@TIMER,255,1), +(@GUID2+88,189979,571,1,1,6779.470,-4100.770,470.9730,-3.10665,0,0,0,1,@TIMER,255,1), +(@GUID2+89,189979,571,1,1,6792.440,-4281.660,452.8340,0.85521,0,0,0,1,@TIMER,255,1), +(@GUID2+90,189979,571,1,1,6818.135,-4627.391,442.2250,1.34390,0,0,0,1,@TIMER,255,1), +(@GUID2+91,189979,571,1,1,6845.492,-4442.293,444.4835,-0.59341,0,0,0,1,@TIMER,255,1), +(@GUID2+92,189979,571,1,1,6914.570,-4477.570,444.9130,1.55334,0,0,0,1,@TIMER,255,1); +-- Pooling +DELETE FROM `pool_gameobject` WHERE `guid` BETWEEN @GUID1 AND @GUID1+@LASTGUID; +DELETE FROM `pool_gameobject` WHERE `guid` BETWEEN @GUID2 AND @GUID2+@LASTGUID; +-- Pool different ore types to each spawnpoint +INSERT INTO `pool_gameobject` (`guid`,`pool_entry`,`chance`,`description`) VALUES +(@GUID1+0,@POOL+0,@CHANCE1, 'Zul''Drak Ore Spawnpoint 1 Cobalt'), +(@GUID2+0,@POOL+0,@CHANCE2, 'Zul''Drak Ore Spawnpoint 1 Rich Cobalt'), +(@GUID1+1,@POOL+1,@CHANCE1, 'Zul''Drak Ore Spawnpoint 2 Cobalt'), +(@GUID2+1,@POOL+1,@CHANCE2, 'Zul''Drak Ore Spawnpoint 2 Rich Cobalt'), +(@GUID1+2,@POOL+2,@CHANCE1, 'Zul''Drak Ore Spawnpoint 3 Cobalt'), +(@GUID2+2,@POOL+2,@CHANCE2, 'Zul''Drak Ore Spawnpoint 3 Rich Cobalt'), +(@GUID1+3,@POOL+3,@CHANCE1, 'Zul''Drak Ore Spawnpoint 4 Cobalt'), +(@GUID2+3,@POOL+3,@CHANCE2, 'Zul''Drak Ore Spawnpoint 4 Rich Cobalt'), +(@GUID1+4,@POOL+4,@CHANCE1, 'Zul''Drak Ore Spawnpoint 5 Cobalt'), +(@GUID2+4,@POOL+4,@CHANCE2, 'Zul''Drak Ore Spawnpoint 5 Rich Cobalt'), +(@GUID1+5,@POOL+5,@CHANCE1, 'Zul''Drak Ore Spawnpoint 6 Cobalt'), +(@GUID2+5,@POOL+5,@CHANCE2, 'Zul''Drak Ore Spawnpoint 6 Rich Cobalt'), +(@GUID1+6,@POOL+6,@CHANCE1, 'Zul''Drak Ore Spawnpoint 7 Cobalt'), +(@GUID2+6,@POOL+6,@CHANCE2, 'Zul''Drak Ore Spawnpoint 7 Rich Cobalt'), +(@GUID1+7,@POOL+7,@CHANCE1, 'Zul''Drak Ore Spawnpoint 8 Cobalt'), +(@GUID2+7,@POOL+7,@CHANCE2, 'Zul''Drak Ore Spawnpoint 8 Rich Cobalt'), +(@GUID1+8,@POOL+8,@CHANCE1, 'Zul''Drak Ore Spawnpoint 9 Cobalt'), +(@GUID2+8,@POOL+8,@CHANCE2, 'Zul''Drak Ore Spawnpoint 9 Rich Cobalt'), +(@GUID1+9,@POOL+9,@CHANCE1, 'Zul''Drak Ore Spawnpoint 10 Cobalt'), +(@GUID2+9,@POOL+9,@CHANCE2, 'Zul''Drak Ore Spawnpoint 10 Rich Cobalt'), +(@GUID1+10,@POOL+10,@CHANCE1, 'Zul''Drak Ore Spawnpoint 11 Cobalt'), +(@GUID2+10,@POOL+10,@CHANCE2, 'Zul''Drak Ore Spawnpoint 11 Rich Cobalt'), +(@GUID1+11,@POOL+11,@CHANCE1, 'Zul''Drak Ore Spawnpoint 12 Cobalt'), +(@GUID2+11,@POOL+11,@CHANCE2, 'Zul''Drak Ore Spawnpoint 12 Rich Cobalt'), +(@GUID1+12,@POOL+12,@CHANCE1, 'Zul''Drak Ore Spawnpoint 13 Cobalt'), +(@GUID2+12,@POOL+12,@CHANCE2, 'Zul''Drak Ore Spawnpoint 13 Rich Cobalt'), +(@GUID1+13,@POOL+13,@CHANCE1, 'Zul''Drak Ore Spawnpoint 14 Cobalt'), +(@GUID2+13,@POOL+13,@CHANCE2, 'Zul''Drak Ore Spawnpoint 14 Rich Cobalt'), +(@GUID1+14,@POOL+14,@CHANCE1, 'Zul''Drak Ore Spawnpoint 15 Cobalt'), +(@GUID2+14,@POOL+14,@CHANCE2, 'Zul''Drak Ore Spawnpoint 15 Rich Cobalt'), +(@GUID1+15,@POOL+15,@CHANCE1, 'Zul''Drak Ore Spawnpoint 16 Cobalt'), +(@GUID2+15,@POOL+15,@CHANCE2, 'Zul''Drak Ore Spawnpoint 16 Rich Cobalt'), +(@GUID1+16,@POOL+16,@CHANCE1, 'Zul''Drak Ore Spawnpoint 17 Cobalt'), +(@GUID2+16,@POOL+16,@CHANCE2, 'Zul''Drak Ore Spawnpoint 17 Rich Cobalt'), +(@GUID1+17,@POOL+17,@CHANCE1, 'Zul''Drak Ore Spawnpoint 18 Cobalt'), +(@GUID2+17,@POOL+17,@CHANCE2, 'Zul''Drak Ore Spawnpoint 18 Rich Cobalt'), +(@GUID1+18,@POOL+18,@CHANCE1, 'Zul''Drak Ore Spawnpoint 19 Cobalt'), +(@GUID2+18,@POOL+18,@CHANCE2, 'Zul''Drak Ore Spawnpoint 19 Rich Cobalt'), +(@GUID1+19,@POOL+19,@CHANCE1, 'Zul''Drak Ore Spawnpoint 20 Cobalt'), +(@GUID2+19,@POOL+19,@CHANCE2, 'Zul''Drak Ore Spawnpoint 20 Rich Cobalt'), +(@GUID1+20,@POOL+20,@CHANCE1, 'Zul''Drak Ore Spawnpoint 21 Cobalt'), +(@GUID2+20,@POOL+20,@CHANCE2, 'Zul''Drak Ore Spawnpoint 21 Rich Cobalt'), +(@GUID1+21,@POOL+21,@CHANCE1, 'Zul''Drak Ore Spawnpoint 22 Cobalt'), +(@GUID2+21,@POOL+21,@CHANCE2, 'Zul''Drak Ore Spawnpoint 22 Rich Cobalt'), +(@GUID1+22,@POOL+22,@CHANCE1, 'Zul''Drak Ore Spawnpoint 23 Cobalt'), +(@GUID2+22,@POOL+22,@CHANCE2, 'Zul''Drak Ore Spawnpoint 23 Saronite'), +(@GUID1+23,@POOL+23,@CHANCE1, 'Zul''Drak Ore Spawnpoint 24 Cobalt'), +(@GUID2+23,@POOL+23,@CHANCE2, 'Zul''Drak Ore Spawnpoint 24 Rich Cobalt'), +(@GUID1+24,@POOL+24,@CHANCE1, 'Zul''Drak Ore Spawnpoint 25 Cobalt'), +(@GUID2+24,@POOL+24,@CHANCE2, 'Zul''Drak Ore Spawnpoint 25 Rich Cobalt'), +(@GUID1+25,@POOL+25,@CHANCE1, 'Zul''Drak Ore Spawnpoint 26 Cobalt'), +(@GUID2+25,@POOL+25,@CHANCE2, 'Zul''Drak Ore Spawnpoint 26 Rich Cobalt'), +(@GUID1+26,@POOL+26,@CHANCE1, 'Zul''Drak Ore Spawnpoint 27 Cobalt'), +(@GUID2+26,@POOL+26,@CHANCE2, 'Zul''Drak Ore Spawnpoint 27 Rich Cobalt'), +(@GUID1+27,@POOL+27,@CHANCE1, 'Zul''Drak Ore Spawnpoint 28 Cobalt'), +(@GUID2+27,@POOL+27,@CHANCE2, 'Zul''Drak Ore Spawnpoint 28 Rich Cobalt'), +(@GUID1+28,@POOL+28,@CHANCE1, 'Zul''Drak Ore Spawnpoint 29 Cobalt'), +(@GUID2+28,@POOL+28,@CHANCE2, 'Zul''Drak Ore Spawnpoint 29 Rich Cobalt'), +(@GUID1+29,@POOL+29,@CHANCE1, 'Zul''Drak Ore Spawnpoint 30 Cobalt'), +(@GUID2+29,@POOL+29,@CHANCE2, 'Zul''Drak Ore Spawnpoint 30 Rich Cobalt'), +(@GUID1+30,@POOL+30,@CHANCE1, 'Zul''Drak Ore Spawnpoint 31 Cobalt'), +(@GUID2+30,@POOL+30,@CHANCE2, 'Zul''Drak Ore Spawnpoint 31 Rich Cobalt'), +(@GUID1+31,@POOL+31,@CHANCE1, 'Zul''Drak Ore Spawnpoint 32 Cobalt'), +(@GUID2+31,@POOL+31,@CHANCE2, 'Zul''Drak Ore Spawnpoint 32 Rich Cobalt'), +(@GUID1+32,@POOL+32,@CHANCE1, 'Zul''Drak Ore Spawnpoint 33 Cobalt'), +(@GUID2+32,@POOL+32,@CHANCE2, 'Zul''Drak Ore Spawnpoint 33 Rich Cobalt'), +(@GUID1+33,@POOL+33,@CHANCE1, 'Zul''Drak Ore Spawnpoint 34 Cobalt'), +(@GUID2+33,@POOL+33,@CHANCE2, 'Zul''Drak Ore Spawnpoint 34 Rich Cobalt'), +(@GUID1+34,@POOL+34,@CHANCE1, 'Zul''Drak Ore Spawnpoint 35 Cobalt'), +(@GUID2+34,@POOL+34,@CHANCE2, 'Zul''Drak Ore Spawnpoint 35 Rich Cobalt'), +(@GUID1+35,@POOL+35,@CHANCE1, 'Zul''Drak Ore Spawnpoint 36 Cobalt'), +(@GUID2+35,@POOL+35,@CHANCE2, 'Zul''Drak Ore Spawnpoint 36 Rich Cobalt'), +(@GUID1+36,@POOL+36,@CHANCE1, 'Zul''Drak Ore Spawnpoint 37 Cobalt'), +(@GUID2+36,@POOL+36,@CHANCE2, 'Zul''Drak Ore Spawnpoint 37 Rich Cobalt'), +(@GUID1+37,@POOL+37,@CHANCE1, 'Zul''Drak Ore Spawnpoint 38 Cobalt'), +(@GUID2+37,@POOL+37,@CHANCE2, 'Zul''Drak Ore Spawnpoint 38 Rich Cobalt'), +(@GUID1+38,@POOL+38,@CHANCE1, 'Zul''Drak Ore Spawnpoint 39 Cobalt'), +(@GUID2+38,@POOL+38,@CHANCE2, 'Zul''Drak Ore Spawnpoint 39 Rich Cobalt'), +(@GUID1+39,@POOL+39,@CHANCE1, 'Zul''Drak Ore Spawnpoint 40 Cobalt'), +(@GUID2+39,@POOL+39,@CHANCE2, 'Zul''Drak Ore Spawnpoint 40 Rich Cobalt'), +(@GUID1+40,@POOL+40,@CHANCE1, 'Zul''Drak Ore Spawnpoint 41 Cobalt'), +(@GUID2+40,@POOL+40,@CHANCE2, 'Zul''Drak Ore Spawnpoint 41 Rich Cobalt'), +(@GUID1+41,@POOL+41,@CHANCE1, 'Zul''Drak Ore Spawnpoint 42 Cobalt'), +(@GUID2+41,@POOL+41,@CHANCE2, 'Zul''Drak Ore Spawnpoint 42 Rich Cobalt'), +(@GUID1+42,@POOL+42,@CHANCE1, 'Zul''Drak Ore Spawnpoint 43 Cobalt'), +(@GUID2+42,@POOL+42,@CHANCE2, 'Zul''Drak Ore Spawnpoint 43 Rich Cobalt'), +(@GUID1+43,@POOL+43,@CHANCE1, 'Zul''Drak Ore Spawnpoint 44 Cobalt'), +(@GUID2+43,@POOL+43,@CHANCE2, 'Zul''Drak Ore Spawnpoint 44 Rich Cobalt'), +(@GUID1+44,@POOL+44,@CHANCE1, 'Zul''Drak Ore Spawnpoint 45 Cobalt'), +(@GUID2+44,@POOL+44,@CHANCE2, 'Zul''Drak Ore Spawnpoint 45 Rich Cobalt'), +(@GUID1+45,@POOL+45,@CHANCE1, 'Zul''Drak Ore Spawnpoint 46 Cobalt'), +(@GUID2+45,@POOL+45,@CHANCE2, 'Zul''Drak Ore Spawnpoint 46 Rich Cobalt'), +(@GUID1+46,@POOL+46,@CHANCE1, 'Zul''Drak Ore Spawnpoint 47 Cobalt'), +(@GUID2+46,@POOL+46,@CHANCE2, 'Zul''Drak Ore Spawnpoint 47 Saronite'), +(@GUID1+47,@POOL+47,@CHANCE1, 'Zul''Drak Ore Spawnpoint 48 Cobalt'), +(@GUID2+47,@POOL+47,@CHANCE2, 'Zul''Drak Ore Spawnpoint 48 Saronite'), +(@GUID1+48,@POOL+48,@CHANCE1, 'Zul''Drak Ore Spawnpoint 49 Cobalt'), +(@GUID2+48,@POOL+48,@CHANCE2, 'Zul''Drak Ore Spawnpoint 49 Rich Cobalt'), +(@GUID1+49,@POOL+49,@CHANCE1, 'Zul''Drak Ore Spawnpoint 50 Cobalt'), +(@GUID2+49,@POOL+49,@CHANCE2, 'Zul''Drak Ore Spawnpoint 50 Rich Cobalt'), +(@GUID1+50,@POOL+50,@CHANCE1, 'Zul''Drak Ore Spawnpoint 51 Cobalt'), +(@GUID2+50,@POOL+50,@CHANCE2, 'Zul''Drak Ore Spawnpoint 51 Rich Cobalt'), +(@GUID1+51,@POOL+51,@CHANCE1, 'Zul''Drak Ore Spawnpoint 52 Cobalt'), +(@GUID2+51,@POOL+51,@CHANCE2, 'Zul''Drak Ore Spawnpoint 52 Rich Cobalt'), +(@GUID1+52,@POOL+52,@CHANCE1, 'Zul''Drak Ore Spawnpoint 53 Cobalt'), +(@GUID2+52,@POOL+52,@CHANCE2, 'Zul''Drak Ore Spawnpoint 53 Rich Cobalt'), +(@GUID1+53,@POOL+53,@CHANCE1, 'Zul''Drak Ore Spawnpoint 54 Cobalt'), +(@GUID2+53,@POOL+53,@CHANCE2, 'Zul''Drak Ore Spawnpoint 54 Rich Cobalt'), +(@GUID1+54,@POOL+54,@CHANCE1, 'Zul''Drak Ore Spawnpoint 55 Cobalt'), +(@GUID2+54,@POOL+54,@CHANCE2, 'Zul''Drak Ore Spawnpoint 55 Rich Cobalt'), +(@GUID1+55,@POOL+55,@CHANCE1, 'Zul''Drak Ore Spawnpoint 56 Cobalt'), +(@GUID2+55,@POOL+55,@CHANCE2, 'Zul''Drak Ore Spawnpoint 56 Rich Cobalt'), +(@GUID1+56,@POOL+56,@CHANCE1, 'Zul''Drak Ore Spawnpoint 57 Cobalt'), +(@GUID2+56,@POOL+56,@CHANCE2, 'Zul''Drak Ore Spawnpoint 57 Rich Cobalt'), +(@GUID1+57,@POOL+57,@CHANCE1, 'Zul''Drak Ore Spawnpoint 58 Cobalt'), +(@GUID2+57,@POOL+57,@CHANCE2, 'Zul''Drak Ore Spawnpoint 58 Rich Cobalt'), +(@GUID1+58,@POOL+58,@CHANCE1, 'Zul''Drak Ore Spawnpoint 59 Cobalt'), +(@GUID2+58,@POOL+58,@CHANCE2, 'Zul''Drak Ore Spawnpoint 59 Rich Cobalt'), +(@GUID1+59,@POOL+59,@CHANCE1, 'Zul''Drak Ore Spawnpoint 60 Cobalt'), +(@GUID2+59,@POOL+59,@CHANCE2, 'Zul''Drak Ore Spawnpoint 60 Rich Cobalt'), +(@GUID1+60,@POOL+60,@CHANCE1, 'Zul''Drak Ore Spawnpoint 61 Cobalt'), +(@GUID2+60,@POOL+60,@CHANCE2, 'Zul''Drak Ore Spawnpoint 61 Rich Cobalt'), +(@GUID1+61,@POOL+61,@CHANCE1, 'Zul''Drak Ore Spawnpoint 62 Cobalt'), +(@GUID2+61,@POOL+61,@CHANCE2, 'Zul''Drak Ore Spawnpoint 62 Saronite'), +(@GUID1+62,@POOL+62,@CHANCE1, 'Zul''Drak Ore Spawnpoint 63 Cobalt'), +(@GUID2+62,@POOL+62,@CHANCE2, 'Zul''Drak Ore Spawnpoint 63 Rich Cobalt'), +(@GUID1+63,@POOL+63,@CHANCE1, 'Zul''Drak Ore Spawnpoint 64 Cobalt'), +(@GUID2+63,@POOL+63,@CHANCE2, 'Zul''Drak Ore Spawnpoint 64 Rich Cobalt'), +(@GUID1+64,@POOL+64,@CHANCE1, 'Zul''Drak Ore Spawnpoint 65 Cobalt'), +(@GUID2+64,@POOL+64,@CHANCE2, 'Zul''Drak Ore Spawnpoint 65 Rich Cobalt'), +(@GUID1+65,@POOL+65,@CHANCE1, 'Zul''Drak Ore Spawnpoint 66 Cobalt'), +(@GUID2+65,@POOL+65,@CHANCE2, 'Zul''Drak Ore Spawnpoint 66 Rich Cobalt'), +(@GUID1+66,@POOL+66,@CHANCE1, 'Zul''Drak Ore Spawnpoint 67 Cobalt'), +(@GUID2+66,@POOL+66,@CHANCE2, 'Zul''Drak Ore Spawnpoint 67 Rich Cobalt'), +(@GUID1+67,@POOL+67,@CHANCE1, 'Zul''Drak Ore Spawnpoint 68 Cobalt'), +(@GUID2+67,@POOL+67,@CHANCE2, 'Zul''Drak Ore Spawnpoint 68 Rich Cobalt'), +(@GUID1+68,@POOL+68,@CHANCE1, 'Zul''Drak Ore Spawnpoint 69 Cobalt'), +(@GUID2+68,@POOL+68,@CHANCE2, 'Zul''Drak Ore Spawnpoint 69 Rich Cobalt'), +(@GUID1+69,@POOL+69,@CHANCE1, 'Zul''Drak Ore Spawnpoint 70 Cobalt'), +(@GUID2+69,@POOL+69,@CHANCE2, 'Zul''Drak Ore Spawnpoint 70 Rich Cobalt'), +(@GUID1+70,@POOL+70,@CHANCE1, 'Zul''Drak Ore Spawnpoint 71 Cobalt'), +(@GUID2+70,@POOL+70,@CHANCE2, 'Zul''Drak Ore Spawnpoint 71 Saronite'), +(@GUID1+71,@POOL+71,@CHANCE1, 'Zul''Drak Ore Spawnpoint 72 Cobalt'), +(@GUID2+71,@POOL+71,@CHANCE2, 'Zul''Drak Ore Spawnpoint 72 Rich Cobalt'), +(@GUID1+72,@POOL+72,@CHANCE1, 'Zul''Drak Ore Spawnpoint 73 Cobalt'), +(@GUID2+72,@POOL+72,@CHANCE2, 'Zul''Drak Ore Spawnpoint 73 Rich Cobalt'), +(@GUID1+73,@POOL+73,@CHANCE1, 'Zul''Drak Ore Spawnpoint 74 Cobalt'), +(@GUID2+73,@POOL+73,@CHANCE2, 'Zul''Drak Ore Spawnpoint 74 Saronite'), +(@GUID1+74,@POOL+74,@CHANCE1, 'Zul''Drak Ore Spawnpoint 75 Cobalt'), +(@GUID2+74,@POOL+74,@CHANCE2, 'Zul''Drak Ore Spawnpoint 75 Rich Cobalt'), +(@GUID1+75,@POOL+75,@CHANCE1, 'Zul''Drak Ore Spawnpoint 76 Cobalt'), +(@GUID2+75,@POOL+75,@CHANCE2, 'Zul''Drak Ore Spawnpoint 76 Rich Cobalt'), +(@GUID1+76,@POOL+76,@CHANCE1, 'Zul''Drak Ore Spawnpoint 77 Cobalt'), +(@GUID2+76,@POOL+76,@CHANCE2, 'Zul''Drak Ore Spawnpoint 77 Rich Cobalt'), +(@GUID1+77,@POOL+77,@CHANCE1, 'Zul''Drak Ore Spawnpoint 78 Cobalt'), +(@GUID2+77,@POOL+77,@CHANCE2, 'Zul''Drak Ore Spawnpoint 78 Rich Cobalt'), +(@GUID1+78,@POOL+78,@CHANCE1, 'Zul''Drak Ore Spawnpoint 79 Cobalt'), +(@GUID2+78,@POOL+78,@CHANCE2, 'Zul''Drak Ore Spawnpoint 79 Rich Cobalt'), +(@GUID1+79,@POOL+79,@CHANCE1, 'Zul''Drak Ore Spawnpoint 80 Cobalt'), +(@GUID2+79,@POOL+79,@CHANCE2, 'Zul''Drak Ore Spawnpoint 80 Rich Cobalt'), +(@GUID1+80,@POOL+80,@CHANCE1, 'Zul''Drak Ore Spawnpoint 81 Cobalt'), +(@GUID2+80,@POOL+80,@CHANCE2, 'Zul''Drak Ore Spawnpoint 81 Rich Cobalt'), +(@GUID1+81,@POOL+81,@CHANCE1, 'Zul''Drak Ore Spawnpoint 82 Cobalt'), +(@GUID2+81,@POOL+81,@CHANCE2, 'Zul''Drak Ore Spawnpoint 82 Rich Cobalt'), +(@GUID1+82,@POOL+82,@CHANCE1, 'Zul''Drak Ore Spawnpoint 83 Cobalt'), +(@GUID2+82,@POOL+82,@CHANCE2, 'Zul''Drak Ore Spawnpoint 83 Rich Cobalt'), +(@GUID1+83,@POOL+83,@CHANCE1, 'Zul''Drak Ore Spawnpoint 84 Cobalt'), +(@GUID2+83,@POOL+83,@CHANCE2, 'Zul''Drak Ore Spawnpoint 84 Rich Cobalt'), +(@GUID1+84,@POOL+84,@CHANCE1, 'Zul''Drak Ore Spawnpoint 85 Cobalt'), +(@GUID2+84,@POOL+84,@CHANCE2, 'Zul''Drak Ore Spawnpoint 85 Rich Cobalt'), +(@GUID1+85,@POOL+85,@CHANCE1, 'Zul''Drak Ore Spawnpoint 86 Cobalt'), +(@GUID2+85,@POOL+85,@CHANCE2, 'Zul''Drak Ore Spawnpoint 86 Rich Cobalt'), +(@GUID1+86,@POOL+86,@CHANCE1, 'Zul''Drak Ore Spawnpoint 87 Cobalt'), +(@GUID2+86,@POOL+86,@CHANCE2, 'Zul''Drak Ore Spawnpoint 87 Rich Cobalt'), +(@GUID1+87,@POOL+87,@CHANCE1, 'Zul''Drak Ore Spawnpoint 88 Cobalt'), +(@GUID2+87,@POOL+87,@CHANCE2, 'Zul''Drak Ore Spawnpoint 88 Rich Cobalt'), +(@GUID1+88,@POOL+88,@CHANCE1, 'Zul''Drak Ore Spawnpoint 89 Cobalt'), +(@GUID2+88,@POOL+88,@CHANCE2, 'Zul''Drak Ore Spawnpoint 89 Rich Cobalt'), +(@GUID1+89,@POOL+89,@CHANCE1, 'Zul''Drak Ore Spawnpoint 90 Cobalt'), +(@GUID2+89,@POOL+89,@CHANCE2, 'Zul''Drak Ore Spawnpoint 90 Rich Cobalt'), +(@GUID1+90,@POOL+90,@CHANCE1, 'Zul''Drak Ore Spawnpoint 91 Cobalt'), +(@GUID2+90,@POOL+90,@CHANCE2, 'Zul''Drak Ore Spawnpoint 91 Rich Cobalt'), +(@GUID1+91,@POOL+91,@CHANCE1, 'Zul''Drak Ore Spawnpoint 92 Cobalt'), +(@GUID2+91,@POOL+91,@CHANCE2, 'Zul''Drak Ore Spawnpoint 92 Rich Cobalt'), +(@GUID1+92,@POOL+92,@CHANCE1, 'Zul''Drak Ore Spawnpoint 93 Cobalt'), +(@GUID2+92,@POOL+92,@CHANCE2, 'Zul''Drak Ore Spawnpoint 93 Rich Cobalt'); +-- Add each pool to pool template +DELETE FROM `pool_template` WHERE `entry` BETWEEN @POOL AND @POOL+@LASTGUID; +INSERT INTO `pool_template` (`entry`,`max_limit`,`description`) VALUES +(@POOL+0,1, 'Zul''Drak Ore Spawnpoint 1'), +(@POOL+1,1, 'Zul''Drak Ore Spawnpoint 2'), +(@POOL+2,1, 'Zul''Drak Ore Spawnpoint 3'), +(@POOL+3,1, 'Zul''Drak Ore Spawnpoint 4'), +(@POOL+4,1, 'Zul''Drak Ore Spawnpoint 5'), +(@POOL+5,1, 'Zul''Drak Ore Spawnpoint 6'), +(@POOL+6,1, 'Zul''Drak Ore Spawnpoint 7'), +(@POOL+7,1, 'Zul''Drak Ore Spawnpoint 8'), +(@POOL+8,1, 'Zul''Drak Ore Spawnpoint 9'), +(@POOL+9,1, 'Zul''Drak Ore Spawnpoint 10'), +(@POOL+10,1, 'Zul''Drak Ore Spawnpoint 11'), +(@POOL+11,1, 'Zul''Drak Ore Spawnpoint 12'), +(@POOL+12,1, 'Zul''Drak Ore Spawnpoint 13'), +(@POOL+13,1, 'Zul''Drak Ore Spawnpoint 14'), +(@POOL+14,1, 'Zul''Drak Ore Spawnpoint 15'), +(@POOL+15,1, 'Zul''Drak Ore Spawnpoint 16'), +(@POOL+16,1, 'Zul''Drak Ore Spawnpoint 17'), +(@POOL+17,1, 'Zul''Drak Ore Spawnpoint 18'), +(@POOL+18,1, 'Zul''Drak Ore Spawnpoint 19'), +(@POOL+19,1, 'Zul''Drak Ore Spawnpoint 20'), +(@POOL+20,1, 'Zul''Drak Ore Spawnpoint 21'), +(@POOL+21,1, 'Zul''Drak Ore Spawnpoint 22'), +(@POOL+22,1, 'Zul''Drak Ore Spawnpoint 23'), +(@POOL+23,1, 'Zul''Drak Ore Spawnpoint 24'), +(@POOL+24,1, 'Zul''Drak Ore Spawnpoint 25'), +(@POOL+25,1, 'Zul''Drak Ore Spawnpoint 26'), +(@POOL+26,1, 'Zul''Drak Ore Spawnpoint 27'), +(@POOL+27,1, 'Zul''Drak Ore Spawnpoint 28'), +(@POOL+28,1, 'Zul''Drak Ore Spawnpoint 29'), +(@POOL+29,1, 'Zul''Drak Ore Spawnpoint 30'), +(@POOL+30,1, 'Zul''Drak Ore Spawnpoint 31'), +(@POOL+31,1, 'Zul''Drak Ore Spawnpoint 32'), +(@POOL+32,1, 'Zul''Drak Ore Spawnpoint 33'), +(@POOL+33,1, 'Zul''Drak Ore Spawnpoint 34'), +(@POOL+34,1, 'Zul''Drak Ore Spawnpoint 35'), +(@POOL+35,1, 'Zul''Drak Ore Spawnpoint 36'), +(@POOL+36,1, 'Zul''Drak Ore Spawnpoint 37'), +(@POOL+37,1, 'Zul''Drak Ore Spawnpoint 38'), +(@POOL+38,1, 'Zul''Drak Ore Spawnpoint 39'), +(@POOL+39,1, 'Zul''Drak Ore Spawnpoint 40'), +(@POOL+40,1, 'Zul''Drak Ore Spawnpoint 41'), +(@POOL+41,1, 'Zul''Drak Ore Spawnpoint 42'), +(@POOL+42,1, 'Zul''Drak Ore Spawnpoint 43'), +(@POOL+43,1, 'Zul''Drak Ore Spawnpoint 44'), +(@POOL+44,1, 'Zul''Drak Ore Spawnpoint 45'), +(@POOL+45,1, 'Zul''Drak Ore Spawnpoint 46'), +(@POOL+46,1, 'Zul''Drak Ore Spawnpoint 47'), +(@POOL+47,1, 'Zul''Drak Ore Spawnpoint 48'), +(@POOL+48,1, 'Zul''Drak Ore Spawnpoint 49'), +(@POOL+49,1, 'Zul''Drak Ore Spawnpoint 50'), +(@POOL+50,1, 'Zul''Drak Ore Spawnpoint 51'), +(@POOL+51,1, 'Zul''Drak Ore Spawnpoint 52'), +(@POOL+52,1, 'Zul''Drak Ore Spawnpoint 53'), +(@POOL+53,1, 'Zul''Drak Ore Spawnpoint 54'), +(@POOL+54,1, 'Zul''Drak Ore Spawnpoint 55'), +(@POOL+55,1, 'Zul''Drak Ore Spawnpoint 56'), +(@POOL+56,1, 'Zul''Drak Ore Spawnpoint 57'), +(@POOL+57,1, 'Zul''Drak Ore Spawnpoint 58'), +(@POOL+58,1, 'Zul''Drak Ore Spawnpoint 59'), +(@POOL+59,1, 'Zul''Drak Ore Spawnpoint 60'), +(@POOL+60,1, 'Zul''Drak Ore Spawnpoint 61'), +(@POOL+61,1, 'Zul''Drak Ore Spawnpoint 62'), +(@POOL+62,1, 'Zul''Drak Ore Spawnpoint 63'), +(@POOL+63,1, 'Zul''Drak Ore Spawnpoint 64'), +(@POOL+64,1, 'Zul''Drak Ore Spawnpoint 65'), +(@POOL+65,1, 'Zul''Drak Ore Spawnpoint 66'), +(@POOL+66,1, 'Zul''Drak Ore Spawnpoint 67'), +(@POOL+67,1, 'Zul''Drak Ore Spawnpoint 68'), +(@POOL+68,1, 'Zul''Drak Ore Spawnpoint 69'), +(@POOL+69,1, 'Zul''Drak Ore Spawnpoint 70'), +(@POOL+70,1, 'Zul''Drak Ore Spawnpoint 71'), +(@POOL+71,1, 'Zul''Drak Ore Spawnpoint 72'), +(@POOL+72,1, 'Zul''Drak Ore Spawnpoint 73'), +(@POOL+73,1, 'Zul''Drak Ore Spawnpoint 74'), +(@POOL+74,1, 'Zul''Drak Ore Spawnpoint 75'), +(@POOL+75,1, 'Zul''Drak Ore Spawnpoint 76'), +(@POOL+76,1, 'Zul''Drak Ore Spawnpoint 77'), +(@POOL+77,1, 'Zul''Drak Ore Spawnpoint 78'), +(@POOL+78,1, 'Zul''Drak Ore Spawnpoint 79'), +(@POOL+79,1, 'Zul''Drak Ore Spawnpoint 80'), +(@POOL+80,1, 'Zul''Drak Ore Spawnpoint 81'), +(@POOL+81,1, 'Zul''Drak Ore Spawnpoint 82'), +(@POOL+82,1, 'Zul''Drak Ore Spawnpoint 83'), +(@POOL+83,1, 'Zul''Drak Ore Spawnpoint 84'), +(@POOL+84,1, 'Zul''Drak Ore Spawnpoint 85'), +(@POOL+85,1, 'Zul''Drak Ore Spawnpoint 86'), +(@POOL+86,1, 'Zul''Drak Ore Spawnpoint 87'), +(@POOL+87,1, 'Zul''Drak Ore Spawnpoint 88'), +(@POOL+88,1, 'Zul''Drak Ore Spawnpoint 89'), +(@POOL+89,1, 'Zul''Drak Ore Spawnpoint 90'), +(@POOL+90,1, 'Zul''Drak Ore Spawnpoint 91'), +(@POOL+91,1, 'Zul''Drak Ore Spawnpoint 92'), +(@POOL+92,1, 'Zul''Drak Ore Spawnpoint 93'); +-- Add mother pool to pool template +DELETE FROM `pool_template` WHERE `entry`=@MOTHER; +INSERT INTO `pool_template` (`entry`,`max_limit`,`description`) VALUES +(@MOTHER,@ACTIVE, 'Zul''Drak Ore Mother pool'); +-- Add each pool to pool_pool +DELETE FROM `pool_pool` WHERE `pool_id` BETWEEN @POOL AND @POOL+@LASTGUID; +INSERT INTO `pool_pool` (`pool_id`,`mother_pool`,`chance`,`description`) VALUES +(@POOL+0,@MOTHER,0, 'Zul''Drak Ore Spawnpoint 1'), +(@POOL+1,@MOTHER,0, 'Zul''Drak Ore Spawnpoint 2'), +(@POOL+2,@MOTHER,0, 'Zul''Drak Ore Spawnpoint 3'), +(@POOL+3,@MOTHER,0, 'Zul''Drak Ore Spawnpoint 4'), +(@POOL+4,@MOTHER,0, 'Zul''Drak Ore Spawnpoint 5'), +(@POOL+5,@MOTHER,0, 'Zul''Drak Ore Spawnpoint 6'), +(@POOL+6,@MOTHER,0, 'Zul''Drak Ore Spawnpoint 7'), +(@POOL+7,@MOTHER,0, 'Zul''Drak Ore Spawnpoint 8'), +(@POOL+8,@MOTHER,0, 'Zul''Drak Ore Spawnpoint 9'), +(@POOL+9,@MOTHER,0, 'Zul''Drak Ore Spawnpoint 10'), +(@POOL+10,@MOTHER,0, 'Zul''Drak Ore Spawnpoint 11'), +(@POOL+11,@MOTHER,0, 'Zul''Drak Ore Spawnpoint 12'), +(@POOL+12,@MOTHER,0, 'Zul''Drak Ore Spawnpoint 13'), +(@POOL+13,@MOTHER,0, 'Zul''Drak Ore Spawnpoint 14'), +(@POOL+14,@MOTHER,0, 'Zul''Drak Ore Spawnpoint 15'), +(@POOL+15,@MOTHER,0, 'Zul''Drak Ore Spawnpoint 16'), +(@POOL+16,@MOTHER,0, 'Zul''Drak Ore Spawnpoint 17'), +(@POOL+17,@MOTHER,0, 'Zul''Drak Ore Spawnpoint 18'), +(@POOL+18,@MOTHER,0, 'Zul''Drak Ore Spawnpoint 19'), +(@POOL+19,@MOTHER,0, 'Zul''Drak Ore Spawnpoint 20'), +(@POOL+20,@MOTHER,0, 'Zul''Drak Ore Spawnpoint 21'), +(@POOL+21,@MOTHER,0, 'Zul''Drak Ore Spawnpoint 22'), +(@POOL+22,@MOTHER,0, 'Zul''Drak Ore Spawnpoint 23'), +(@POOL+23,@MOTHER,0, 'Zul''Drak Ore Spawnpoint 24'), +(@POOL+24,@MOTHER,0, 'Zul''Drak Ore Spawnpoint 25'), +(@POOL+25,@MOTHER,0, 'Zul''Drak Ore Spawnpoint 26'), +(@POOL+26,@MOTHER,0, 'Zul''Drak Ore Spawnpoint 27'), +(@POOL+27,@MOTHER,0, 'Zul''Drak Ore Spawnpoint 28'), +(@POOL+28,@MOTHER,0, 'Zul''Drak Ore Spawnpoint 29'), +(@POOL+29,@MOTHER,0, 'Zul''Drak Ore Spawnpoint 30'), +(@POOL+30,@MOTHER,0, 'Zul''Drak Ore Spawnpoint 31'), +(@POOL+31,@MOTHER,0, 'Zul''Drak Ore Spawnpoint 32'), +(@POOL+32,@MOTHER,0, 'Zul''Drak Ore Spawnpoint 33'), +(@POOL+33,@MOTHER,0, 'Zul''Drak Ore Spawnpoint 34'), +(@POOL+34,@MOTHER,0, 'Zul''Drak Ore Spawnpoint 35'), +(@POOL+35,@MOTHER,0, 'Zul''Drak Ore Spawnpoint 36'), +(@POOL+36,@MOTHER,0, 'Zul''Drak Ore Spawnpoint 37'), +(@POOL+37,@MOTHER,0, 'Zul''Drak Ore Spawnpoint 38'), +(@POOL+38,@MOTHER,0, 'Zul''Drak Ore Spawnpoint 39'), +(@POOL+39,@MOTHER,0, 'Zul''Drak Ore Spawnpoint 40'), +(@POOL+40,@MOTHER,0, 'Zul''Drak Ore Spawnpoint 41'), +(@POOL+41,@MOTHER,0, 'Zul''Drak Ore Spawnpoint 42'), +(@POOL+42,@MOTHER,0, 'Zul''Drak Ore Spawnpoint 43'), +(@POOL+43,@MOTHER,0, 'Zul''Drak Ore Spawnpoint 44'), +(@POOL+44,@MOTHER,0, 'Zul''Drak Ore Spawnpoint 45'), +(@POOL+45,@MOTHER,0, 'Zul''Drak Ore Spawnpoint 46'), +(@POOL+46,@MOTHER,0, 'Zul''Drak Ore Spawnpoint 47'), +(@POOL+47,@MOTHER,0, 'Zul''Drak Ore Spawnpoint 48'), +(@POOL+48,@MOTHER,0, 'Zul''Drak Ore Spawnpoint 49'), +(@POOL+49,@MOTHER,0, 'Zul''Drak Ore Spawnpoint 50'), +(@POOL+50,@MOTHER,0, 'Zul''Drak Ore Spawnpoint 51'), +(@POOL+51,@MOTHER,0, 'Zul''Drak Ore Spawnpoint 52'), +(@POOL+52,@MOTHER,0, 'Zul''Drak Ore Spawnpoint 53'), +(@POOL+53,@MOTHER,0, 'Zul''Drak Ore Spawnpoint 54'), +(@POOL+54,@MOTHER,0, 'Zul''Drak Ore Spawnpoint 55'), +(@POOL+55,@MOTHER,0, 'Zul''Drak Ore Spawnpoint 56'), +(@POOL+56,@MOTHER,0, 'Zul''Drak Ore Spawnpoint 57'), +(@POOL+57,@MOTHER,0, 'Zul''Drak Ore Spawnpoint 58'), +(@POOL+58,@MOTHER,0, 'Zul''Drak Ore Spawnpoint 59'), +(@POOL+59,@MOTHER,0, 'Zul''Drak Ore Spawnpoint 60'), +(@POOL+60,@MOTHER,0, 'Zul''Drak Ore Spawnpoint 61'), +(@POOL+61,@MOTHER,0, 'Zul''Drak Ore Spawnpoint 62'), +(@POOL+62,@MOTHER,0, 'Zul''Drak Ore Spawnpoint 63'), +(@POOL+63,@MOTHER,0, 'Zul''Drak Ore Spawnpoint 64'), +(@POOL+64,@MOTHER,0, 'Zul''Drak Ore Spawnpoint 65'), +(@POOL+65,@MOTHER,0, 'Zul''Drak Ore Spawnpoint 66'), +(@POOL+66,@MOTHER,0, 'Zul''Drak Ore Spawnpoint 67'), +(@POOL+67,@MOTHER,0, 'Zul''Drak Ore Spawnpoint 68'), +(@POOL+68,@MOTHER,0, 'Zul''Drak Ore Spawnpoint 69'), +(@POOL+69,@MOTHER,0, 'Zul''Drak Ore Spawnpoint 70'), +(@POOL+70,@MOTHER,0, 'Zul''Drak Ore Spawnpoint 71'), +(@POOL+71,@MOTHER,0, 'Zul''Drak Ore Spawnpoint 72'), +(@POOL+72,@MOTHER,0, 'Zul''Drak Ore Spawnpoint 73'), +(@POOL+73,@MOTHER,0, 'Zul''Drak Ore Spawnpoint 74'), +(@POOL+74,@MOTHER,0, 'Zul''Drak Ore Spawnpoint 75'), +(@POOL+75,@MOTHER,0, 'Zul''Drak Ore Spawnpoint 76'), +(@POOL+76,@MOTHER,0, 'Zul''Drak Ore Spawnpoint 77'), +(@POOL+77,@MOTHER,0, 'Zul''Drak Ore Spawnpoint 78'), +(@POOL+78,@MOTHER,0, 'Zul''Drak Ore Spawnpoint 79'), +(@POOL+79,@MOTHER,0, 'Zul''Drak Ore Spawnpoint 80'), +(@POOL+80,@MOTHER,0, 'Zul''Drak Ore Spawnpoint 81'), +(@POOL+81,@MOTHER,0, 'Zul''Drak Ore Spawnpoint 82'), +(@POOL+82,@MOTHER,0, 'Zul''Drak Ore Spawnpoint 83'), +(@POOL+83,@MOTHER,0, 'Zul''Drak Ore Spawnpoint 84'), +(@POOL+84,@MOTHER,0, 'Zul''Drak Ore Spawnpoint 85'), +(@POOL+85,@MOTHER,0, 'Zul''Drak Ore Spawnpoint 86'), +(@POOL+86,@MOTHER,0, 'Zul''Drak Ore Spawnpoint 87'), +(@POOL+87,@MOTHER,0, 'Zul''Drak Ore Spawnpoint 88'), +(@POOL+88,@MOTHER,0, 'Zul''Drak Ore Spawnpoint 89'), +(@POOL+89,@MOTHER,0, 'Zul''Drak Ore Spawnpoint 90'), +(@POOL+90,@MOTHER,0, 'Zul''Drak Ore Spawnpoint 91'), +(@POOL+91,@MOTHER,0, 'Zul''Drak Ore Spawnpoint 92'), +(@POOL+92,@MOTHER,0, 'Zul''Drak Ore Spawnpoint 93'); + +-- ----------------------------------------- +-- -- Fixup ore spawns for Sholazar Basin -- +-- ----------------------------------------- +SET @RANGE := 350; +SET @GUID1 := 161400; +SET @GUID2 := @GUID1 + @RANGE; +SET @GUID3 := @GUID2 + @RANGE; +SET @POOL := 10800; +SET @LASTGUID := 111; +SET @CHANCE1 := 75; +SET @CHANCE2 := 15; +SET @CHANCE3 := 10; +SET @MOTHER := 9905; +SET @ACTIVE := 35; -- Max number of active spawns +SET @TIMER := 600; -- Respawn timer in seconds +-- Remove Ore spawns from Sholazar Basin +DELETE FROM gameobject WHERE id IN (189980,189981,191133) AND map=571 AND `position_y` > 3500 AND `position_x` < 6825 AND `position_x` > 4650 AND `position_z` < 300; +DELETE FROM gameobject WHERE id IN (189980,189981,191133) AND map=571 AND `position_y` > 4450 AND `position_x` < 6400 AND `position_x` > 4825 AND `position_z` > 300; +-- Remove old pools +DELETE FROM `pool_gameobject` WHERE `guid` NOT IN (SELECT `guid` FROM `gameobject`); +DELETE FROM `pool_template` WHERE `entry` BETWEEN 5292 AND 5375; +DELETE FROM `pool_template` WHERE `entry`=899; +DELETE FROM `pool_pool` WHERE `pool_id` BETWEEN 5292 AND 5375; +-- Saronite Deposits Sholazar Basin +INSERT INTO `gameobject` (`guid`, `id`, `map`, `spawnMask`, `phaseMask`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecs`, `animprogress`, `state`) VALUES +(@GUID1,189980,571,1,1,4704.718,5425.793,-32.3253,1.79769,0,0,0,1,@TIMER,255,1), +(@GUID1+1,189980,571,1,1,4709.270,4367.730,-31.7133,-0.76794,0,0,0,1,@TIMER,255,1), +(@GUID1+2,189980,571,1,1,4716.542,4978.443,-44.2661,1.62316,0,0,0,1,@TIMER,255,1), +(@GUID1+3,189980,571,1,1,4722.860,5246.860,-42.0046,1.18682,0,0,0,1,@TIMER,255,1), +(@GUID1+4,189980,571,1,1,4724.210,5107.490,-46.3651,-1.78023,0,0,0,1,@TIMER,255,1), +(@GUID1+5,189980,571,1,1,4732.280,5135.100,-53.4326,-1.51844,0,0,0,1,@TIMER,255,1), +(@GUID1+6,189980,571,1,1,4732.570,5036.200,-54.9473,2.00713,0,0,0,1,@TIMER,255,1), +(@GUID1+7,189980,571,1,1,4737.140,4847.460,-67.2180,1.65806,0,0,0,1,@TIMER,255,1), +(@GUID1+8,189980,571,1,1,4738.390,4691.450,-56.7589,0.50615,0,0,0,1,@TIMER,255,1), +(@GUID1+9,189980,571,1,1,4794.450,5895.830,-30.9455,2.44346,0,0,0,1,@TIMER,255,1), +(@GUID1+10,189980,571,1,1,4837.230,4160.790,-3.6381,-0.62832,0,0,0,1,@TIMER,255,1), +(@GUID1+11,189980,571,1,1,4846.780,5769.550,-57.8889,2.56563,0,0,0,1,@TIMER,255,1), +(@GUID1+12,189980,571,1,1,4847.239,5953.834,-15.9588,-1.15192,0,0,0,1,@TIMER,255,1), +(@GUID1+13,189980,571,1,1,4866.020,4570.890,-60.3061,2.00713,0,0,0,1,@TIMER,255,1), +(@GUID1+14,189980,571,1,1,4884.830,4321.190,-54.8871,-3.00195,0,0,0,1,@TIMER,255,1), +(@GUID1+15,189980,571,1,1,4927.281,4328.632,-72.9263,0.59341,0,0,0,1,@TIMER,255,1), +(@GUID1+16,189980,571,1,1,4988.200,5373.050,-94.5907,1.36136,0,0,0,1,@TIMER,255,1), +(@GUID1+17,189980,571,1,1,4993.830,4180.020,-79.1709,0.01745,0,0,0,1,@TIMER,255,1), +(@GUID1+18,189980,571,1,1,5013.689,5436.410,-94.5146,-1.08210,0,0,0,1,@TIMER,255,1), +(@GUID1+19,189980,571,1,1,5015.700,4691.840,-91.0594,1.43117,0,0,0,1,@TIMER,255,1), +(@GUID1+20,189980,571,1,1,5052.430,5887.010,-69.4098,-1.69297,0,0,0,1,@TIMER,255,1), +(@GUID1+21,189980,571,1,1,5054.910,4412.610,-92.8146,1.22173,0,0,0,1,@TIMER,255,1), +(@GUID1+22,189980,571,1,1,5056.290,4819.880,-132.8840,-2.19912,0,0,0,1,@TIMER,255,1), +(@GUID1+23,189980,571,1,1,5062.380,4526.640,-96.4765,0.20944,0,0,0,1,@TIMER,255,1), +(@GUID1+24,189980,571,1,1,5062.479,5031.562,-131.0034,-1.22173,0,0,0,1,@TIMER,255,1), +(@GUID1+25,189980,571,1,1,5079.800,5468.130,-88.7503,-0.27925,0,0,0,1,@TIMER,255,1), +(@GUID1+26,189980,571,1,1,5086.370,5098.740,-134.5720,2.07694,0,0,0,1,@TIMER,255,1), +(@GUID1+27,189980,571,1,1,5093.570,4341.180,-82.7253,3.08918,0,0,0,1,@TIMER,255,1), +(@GUID1+28,189980,571,1,1,5094.270,5217.790,-88.3220,-2.21656,0,0,0,1,@TIMER,255,1), +(@GUID1+29,189980,571,1,1,5105.152,4639.756,-135.8839,-1.02974,0,0,0,1,@TIMER,255,1), +(@GUID1+30,189980,571,1,1,5125.490,6015.810,-50.0045,2.26892,0,0,0,1,@TIMER,255,1), +(@GUID1+31,189980,571,1,1,5128.380,4215.860,-83.4258,1.60570,0,0,0,1,@TIMER,255,1), +(@GUID1+32,189980,571,1,1,5159.018,5454.543,-88.2909,3.03684,0,0,0,1,@TIMER,255,1), +(@GUID1+33,189980,571,1,1,5171.400,3794.750,-12.2962,2.00713,0,0,0,1,@TIMER,255,1), +(@GUID1+34,189980,571,1,1,5190.180,6023.387,-37.9963,-0.76794,0,0,0,1,@TIMER,255,1), +(@GUID1+35,189980,571,1,1,5199.739,5436.705,-81.6717,-0.69813,0,0,0,1,@TIMER,255,1), +(@GUID1+36,189980,571,1,1,5226.190,4826.150,-132.7040,-2.77507,0,0,0,1,@TIMER,255,1), +(@GUID1+37,189980,571,1,1,5232.450,4195.245,-93.5727,1.67551,0,0,0,1,@TIMER,255,1), +(@GUID1+38,189980,571,1,1,5271.987,5251.519,-124.8593,1.57080,0,0,0,1,@TIMER,255,1), +(@GUID1+39,189980,571,1,1,5277.800,3702.890,12.7941,1.76278,0,0,0,1,@TIMER,255,1), +(@GUID1+40,189980,571,1,1,5309.020,4437.110,-101.2090,2.98450,0,0,0,1,@TIMER,255,1), +(@GUID1+41,189980,571,1,1,5324.950,5368.980,-123.4160,-1.37881,0,0,0,1,@TIMER,255,1), +(@GUID1+42,189980,571,1,1,5325.520,6025.470,-16.2582,-0.83776,0,0,0,1,@TIMER,255,1), +(@GUID1+43,189980,571,1,1,5331.860,4405.600,-126.9970,-1.51844,0,0,0,1,@TIMER,255,1), +(@GUID1+44,189980,571,1,1,5333.070,4300.510,-148.0820,0.68068,0,0,0,1,@TIMER,255,1), +(@GUID1+45,189980,571,1,1,5338.952,4182.072,-94.2039,-2.93214,0,0,0,1,@TIMER,255,1), +(@GUID1+46,189980,571,1,1,5341.820,5396.050,-106.7450,2.00713,0,0,0,1,@TIMER,255,1), +(@GUID1+47,189980,571,1,1,5354.230,4820.880,-198.8800,1.60570,0,0,0,1,@TIMER,255,1), +(@GUID1+48,189980,571,1,1,5358.900,4514.820,-127.6330,2.07694,0,0,0,1,@TIMER,255,1), +(@GUID1+49,189980,571,1,1,5385.530,4913.980,-195.3540,1.83259,0,0,0,1,@TIMER,255,1), +(@GUID1+50,189980,571,1,1,5388.270,4753.330,-198.7980,2.30383,0,0,0,1,@TIMER,255,1), +(@GUID1+51,189980,571,1,1,5418.620,4371.290,-137.6760,1.55334,0,0,0,1,@TIMER,255,1), +(@GUID1+52,189980,571,1,1,5434.910,3826.250,-65.5299,1.09956,0,0,0,1,@TIMER,255,1), +(@GUID1+53,189980,571,1,1,5443.155,4694.667,-187.9415,2.44346,0,0,0,1,@TIMER,255,1), +(@GUID1+54,189980,571,1,1,5446.752,5166.048,-133.7927,-3.07177,0,0,0,1,@TIMER,255,1), +(@GUID1+55,189980,571,1,1,5447.930,4519.890,-135.9880,-1.67551,0,0,0,1,@TIMER,255,1), +(@GUID1+56,189980,571,1,1,5449.870,4089.350,-91.0623,1.88495,0,0,0,1,@TIMER,255,1), +(@GUID1+57,189980,571,1,3,5451.860,5532.250,-101.7700,0.22689,0,0,0,1,@TIMER,255,1), +(@GUID1+58,189980,571,1,1,5455.970,5712.200,-102.7660,-0.59341,0,0,0,1,@TIMER,255,1), +(@GUID1+59,189980,571,1,1,5456.090,4679.770,-173.5170,1.93731,0,0,0,1,@TIMER,255,1), +(@GUID1+60,189980,571,1,1,5461.790,4916.510,-197.1930,-0.62832,0,0,0,1,@TIMER,255,1), +(@GUID1+61,189980,571,1,1,5479.190,4193.700,-97.0735,0.80285,0,0,0,1,@TIMER,255,1), +(@GUID1+62,189980,571,1,1,5482.810,3505.600,7.2101,-2.68781,0,0,0,1,@TIMER,255,1), +(@GUID1+63,189980,571,1,1,5483.640,4688.750,-122.0030,0.82030,0,0,0,1,@TIMER,255,1), +(@GUID1+64,189980,571,1,1,5494.615,5677.867,-97.2142,1.93731,0,0,0,1,@TIMER,255,1), +(@GUID1+65,189980,571,1,1,5509.580,3579.710,-12.9631,1.43117,0,0,0,1,@TIMER,255,1), +(@GUID1+66,189980,571,1,1,5521.060,4926.980,-192.7710,2.56563,0,0,0,1,@TIMER,255,1), +(@GUID1+67,189980,571,1,1,5522.840,3836.810,-62.7052,2.04204,0,0,0,1,@TIMER,255,1), +(@GUID1+68,189980,571,1,1,5528.730,4681.650,-127.0880,0.43633,0,0,0,1,@TIMER,255,1), +(@GUID1+69,189980,571,1,1,5529.634,4501.900,-132.3918,-2.33874,0,0,0,1,@TIMER,255,1), +(@GUID1+70,189980,571,1,1,5537.919,4315.394,-130.2137,-1.88495,0,0,0,1,@TIMER,255,1), +(@GUID1+71,189980,571,1,1,5553.280,3666.730,-28.5651,-1.79769,0,0,0,1,@TIMER,255,1), +(@GUID1+72,189980,571,1,3,5608.650,3865.180,-99.3376,-1.91986,0,0,0,1,@TIMER,255,1), +(@GUID1+73,189980,571,1,1,5652.200,3981.090,-83.0324,-1.13446,0,0,0,1,@TIMER,255,1), +(@GUID1+74,189980,571,1,3,5656.220,6023.450,-28.9304,-1.88495,0,0,0,1,@TIMER,255,1), +(@GUID1+75,189980,571,1,1,5660.409,3699.911,-13.5126,-2.37364,0,0,0,1,@TIMER,255,1), +(@GUID1+76,189980,571,1,1,5668.259,4118.605,-90.1961,2.37364,0,0,0,1,@TIMER,255,1), +(@GUID1+77,189980,571,1,3,5669.970,5463.910,-68.9469,2.89724,0,0,0,1,@TIMER,255,1), +(@GUID1+78,189980,571,1,1,5671.007,4389.625,-137.5537,-1.46608,0,0,0,1,@TIMER,255,1), +(@GUID1+79,189980,571,1,1,5679.051,5598.783,-73.9954,-0.97738,0,0,0,1,@TIMER,255,1), +(@GUID1+80,189980,571,1,1,5682.740,3538.940,-8.8133,-2.35619,0,0,0,1,@TIMER,255,1), +(@GUID1+81,189980,571,1,1,5684.080,5541.490,-72.1058,-1.64061,0,0,0,1,@TIMER,255,1), +(@GUID1+82,189980,571,1,1,5704.426,3884.596,-72.5278,1.86750,0,0,0,1,@TIMER,255,1), +(@GUID1+83,189980,571,1,1,5721.057,3655.517,-25.2488,0.27925,0,0,0,1,@TIMER,255,1), +(@GUID1+84,189980,571,1,1,5721.060,3655.520,-25.2488,0.27925,0,0,0,1,@TIMER,255,1), +(@GUID1+85,189980,571,1,1,5735.860,5612.500,-67.5912,-2.58308,0,0,0,1,@TIMER,255,1), +(@GUID1+86,189980,571,1,1,5740.394,5960.094,-36.3629,0.52360,0,0,0,1,@TIMER,255,1), +(@GUID1+87,189980,571,1,1,5762.140,3502.190,8.5711,-0.52360,0,0,0,1,@TIMER,255,1), +(@GUID1+88,189980,571,1,1,5827.040,4457.580,-130.4530,1.64061,0,0,0,1,@TIMER,255,1), +(@GUID1+89,189980,571,1,1,5834.000,5370.130,-87.9156,-0.06981,0,0,0,1,@TIMER,255,1), +(@GUID1+90,189980,571,1,1,5859.746,4020.988,-68.8248,0.10472,0,0,0,1,@TIMER,255,1), +(@GUID1+91,189980,571,1,3,5861.320,4419.110,-89.7436,-3.07177,0,0,0,1,@TIMER,255,1), +(@GUID1+92,189980,571,1,1,5882.228,5916.372,-25.0905,-1.60570,0,0,0,1,@TIMER,255,1), +(@GUID1+93,189980,571,1,1,5945.590,4566.130,-99.4520,1.69297,0,0,0,1,@TIMER,255,1), +(@GUID1+94,189980,571,1,1,6001.920,4160.640,-71.2961,0.83776,0,0,0,1,@TIMER,255,1), +(@GUID1+95,189980,571,1,1,6037.100,4847.040,-93.4030,-1.25664,0,0,0,1,@TIMER,255,1), +(@GUID1+96,189980,571,1,1,6053.300,4795.460,-92.8918,0.82030,0,0,0,1,@TIMER,255,1), +(@GUID1+97,189980,571,1,1,6077.970,4860.720,-94.5449,-1.71042,0,0,0,1,@TIMER,255,1), +(@GUID1+98,189980,571,1,1,6084.560,4079.100,-46.7275,-2.30383,0,0,0,1,@TIMER,255,1), +(@GUID1+99,189980,571,1,1,6096.587,3644.301,143.1275,-2.84488,0,0,0,1,@TIMER,255,1), +(@GUID1+100,189980,571,1,1,6107.000,5455.440,-97.4798,2.93214,0,0,0,1,@TIMER,255,1), +(@GUID1+101,189980,571,1,1,6167.440,5256.570,-127.8840,0.89012,0,0,0,1,@TIMER,255,1), +(@GUID1+102,189980,571,1,3,6173.290,4609.010,-92.2689,-1.90241,0,0,0,1,@TIMER,255,1), +(@GUID1+103,189980,571,1,1,6174.170,5636.430,-22.3877,-1.93731,0,0,0,1,@TIMER,255,1), +(@GUID1+104,189980,571,1,1,6205.150,4325.340,-38.2094,-0.05236,0,0,0,1,@TIMER,255,1), +(@GUID1+105,189980,571,1,1,6215.250,5172.350,-97.6636,0.24435,0,0,0,1,@TIMER,255,1), +(@GUID1+106,189980,571,1,1,6229.990,5392.570,-108.9900,-2.98450,0,0,0,1,@TIMER,255,1), +(@GUID1+107,189980,571,1,1,6277.390,4221.150,-40.3804,0.59341,0,0,0,1,@TIMER,255,1), +(@GUID1+108,189980,571,1,1,6302.940,5136.300,-81.6133,-3.01941,0,0,0,1,@TIMER,255,1), +(@GUID1+109,189980,571,1,1,6310.000,3957.290,109.0570,-0.76794,0,0,0,1,@TIMER,255,1), +(@GUID1+110,189980,571,1,1,6659.690,4690.380,0.1829,1.78023,0,0,0,1,@TIMER,255,1), +(@GUID1+111,189980,571,1,1,6672.220,4932.340,-17.9780,2.94959,0,0,0,1,@TIMER,255,1); +-- Rich Saronite Deposits Sholazar Basin +INSERT INTO `gameobject` (`guid`, `id`, `map`, `spawnMask`, `phaseMask`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecs`, `animprogress`, `state`) VALUES +(@GUID2,189981,571,1,1,4704.718,5425.793,-32.3253,1.79769,0,0,0,1,@TIMER,255,1), +(@GUID2+1,189981,571,1,1,4709.270,4367.730,-31.7133,-0.76794,0,0,0,1,@TIMER,255,1), +(@GUID2+2,189981,571,1,1,4716.542,4978.443,-44.2661,1.62316,0,0,0,1,@TIMER,255,1), +(@GUID2+3,189981,571,1,1,4722.860,5246.860,-42.0046,1.18682,0,0,0,1,@TIMER,255,1), +(@GUID2+4,189981,571,1,1,4724.210,5107.490,-46.3651,-1.78023,0,0,0,1,@TIMER,255,1), +(@GUID2+5,189981,571,1,1,4732.280,5135.100,-53.4326,-1.51844,0,0,0,1,@TIMER,255,1), +(@GUID2+6,189981,571,1,1,4732.570,5036.200,-54.9473,2.00713,0,0,0,1,@TIMER,255,1), +(@GUID2+7,189981,571,1,1,4737.140,4847.460,-67.2180,1.65806,0,0,0,1,@TIMER,255,1), +(@GUID2+8,189981,571,1,1,4738.390,4691.450,-56.7589,0.50615,0,0,0,1,@TIMER,255,1), +(@GUID2+9,189981,571,1,1,4794.450,5895.830,-30.9455,2.44346,0,0,0,1,@TIMER,255,1), +(@GUID2+10,189981,571,1,1,4837.230,4160.790,-3.6381,-0.62832,0,0,0,1,@TIMER,255,1), +(@GUID2+11,189981,571,1,1,4846.780,5769.550,-57.8889,2.56563,0,0,0,1,@TIMER,255,1), +(@GUID2+12,189981,571,1,1,4847.239,5953.834,-15.9588,-1.15192,0,0,0,1,@TIMER,255,1), +(@GUID2+13,189981,571,1,1,4866.020,4570.890,-60.3061,2.00713,0,0,0,1,@TIMER,255,1), +(@GUID2+14,189981,571,1,1,4884.830,4321.190,-54.8871,-3.00195,0,0,0,1,@TIMER,255,1), +(@GUID2+15,189981,571,1,1,4927.281,4328.632,-72.9263,0.59341,0,0,0,1,@TIMER,255,1), +(@GUID2+16,189981,571,1,1,4988.200,5373.050,-94.5907,1.36136,0,0,0,1,@TIMER,255,1), +(@GUID2+17,189981,571,1,1,4993.830,4180.020,-79.1709,0.01745,0,0,0,1,@TIMER,255,1), +(@GUID2+18,189981,571,1,1,5013.689,5436.410,-94.5146,-1.08210,0,0,0,1,@TIMER,255,1), +(@GUID2+19,189981,571,1,1,5015.700,4691.840,-91.0594,1.43117,0,0,0,1,@TIMER,255,1), +(@GUID2+20,189981,571,1,1,5052.430,5887.010,-69.4098,-1.69297,0,0,0,1,@TIMER,255,1), +(@GUID2+21,189981,571,1,1,5054.910,4412.610,-92.8146,1.22173,0,0,0,1,@TIMER,255,1), +(@GUID2+22,189981,571,1,1,5056.290,4819.880,-132.8840,-2.19912,0,0,0,1,@TIMER,255,1), +(@GUID2+23,189981,571,1,1,5062.380,4526.640,-96.4765,0.20944,0,0,0,1,@TIMER,255,1), +(@GUID2+24,189981,571,1,1,5062.479,5031.562,-131.0034,-1.22173,0,0,0,1,@TIMER,255,1), +(@GUID2+25,189981,571,1,1,5079.800,5468.130,-88.7503,-0.27925,0,0,0,1,@TIMER,255,1), +(@GUID2+26,189981,571,1,1,5086.370,5098.740,-134.5720,2.07694,0,0,0,1,@TIMER,255,1), +(@GUID2+27,189981,571,1,1,5093.570,4341.180,-82.7253,3.08918,0,0,0,1,@TIMER,255,1), +(@GUID2+28,189981,571,1,1,5094.270,5217.790,-88.3220,-2.21656,0,0,0,1,@TIMER,255,1), +(@GUID2+29,189981,571,1,1,5105.152,4639.756,-135.8839,-1.02974,0,0,0,1,@TIMER,255,1), +(@GUID2+30,189981,571,1,1,5125.490,6015.810,-50.0045,2.26892,0,0,0,1,@TIMER,255,1), +(@GUID2+31,189981,571,1,1,5128.380,4215.860,-83.4258,1.60570,0,0,0,1,@TIMER,255,1), +(@GUID2+32,189981,571,1,1,5159.018,5454.543,-88.2909,3.03684,0,0,0,1,@TIMER,255,1), +(@GUID2+33,189981,571,1,1,5171.400,3794.750,-12.2962,2.00713,0,0,0,1,@TIMER,255,1), +(@GUID2+34,189981,571,1,1,5190.180,6023.387,-37.9963,-0.76794,0,0,0,1,@TIMER,255,1), +(@GUID2+35,189981,571,1,1,5199.739,5436.705,-81.6717,-0.69813,0,0,0,1,@TIMER,255,1), +(@GUID2+36,189981,571,1,1,5226.190,4826.150,-132.7040,-2.77507,0,0,0,1,@TIMER,255,1), +(@GUID2+37,189981,571,1,1,5232.450,4195.245,-93.5727,1.67551,0,0,0,1,@TIMER,255,1), +(@GUID2+38,189981,571,1,1,5271.987,5251.519,-124.8593,1.57080,0,0,0,1,@TIMER,255,1), +(@GUID2+39,189981,571,1,1,5277.800,3702.890,12.7941,1.76278,0,0,0,1,@TIMER,255,1), +(@GUID2+40,189981,571,1,1,5309.020,4437.110,-101.2090,2.98450,0,0,0,1,@TIMER,255,1), +(@GUID2+41,189981,571,1,1,5324.950,5368.980,-123.4160,-1.37881,0,0,0,1,@TIMER,255,1), +(@GUID2+42,189981,571,1,1,5325.520,6025.470,-16.2582,-0.83776,0,0,0,1,@TIMER,255,1), +(@GUID2+43,189981,571,1,1,5331.860,4405.600,-126.9970,-1.51844,0,0,0,1,@TIMER,255,1), +(@GUID2+44,189981,571,1,1,5333.070,4300.510,-148.0820,0.68068,0,0,0,1,@TIMER,255,1), +(@GUID2+45,189981,571,1,1,5338.952,4182.072,-94.2039,-2.93214,0,0,0,1,@TIMER,255,1), +(@GUID2+46,189981,571,1,1,5341.820,5396.050,-106.7450,2.00713,0,0,0,1,@TIMER,255,1), +(@GUID2+47,189981,571,1,1,5354.230,4820.880,-198.8800,1.60570,0,0,0,1,@TIMER,255,1), +(@GUID2+48,189981,571,1,1,5358.900,4514.820,-127.6330,2.07694,0,0,0,1,@TIMER,255,1), +(@GUID2+49,189981,571,1,1,5385.530,4913.980,-195.3540,1.83259,0,0,0,1,@TIMER,255,1), +(@GUID2+50,189981,571,1,1,5388.270,4753.330,-198.7980,2.30383,0,0,0,1,@TIMER,255,1), +(@GUID2+51,189981,571,1,1,5418.620,4371.290,-137.6760,1.55334,0,0,0,1,@TIMER,255,1), +(@GUID2+52,189981,571,1,1,5434.910,3826.250,-65.5299,1.09956,0,0,0,1,@TIMER,255,1), +(@GUID2+53,189981,571,1,1,5443.155,4694.667,-187.9415,2.44346,0,0,0,1,@TIMER,255,1), +(@GUID2+54,189981,571,1,1,5446.752,5166.048,-133.7927,-3.07177,0,0,0,1,@TIMER,255,1), +(@GUID2+55,189981,571,1,1,5447.930,4519.890,-135.9880,-1.67551,0,0,0,1,@TIMER,255,1), +(@GUID2+56,189981,571,1,1,5449.870,4089.350,-91.0623,1.88495,0,0,0,1,@TIMER,255,1), +(@GUID2+57,189981,571,1,3,5451.860,5532.250,-101.7700,0.22689,0,0,0,1,@TIMER,255,1), +(@GUID2+58,189981,571,1,1,5455.970,5712.200,-102.7660,-0.59341,0,0,0,1,@TIMER,255,1), +(@GUID2+59,189981,571,1,1,5456.090,4679.770,-173.5170,1.93731,0,0,0,1,@TIMER,255,1), +(@GUID2+60,189981,571,1,1,5461.790,4916.510,-197.1930,-0.62832,0,0,0,1,@TIMER,255,1), +(@GUID2+61,189981,571,1,1,5479.190,4193.700,-97.0735,0.80285,0,0,0,1,@TIMER,255,1), +(@GUID2+62,189981,571,1,1,5482.810,3505.600,7.2101,-2.68781,0,0,0,1,@TIMER,255,1), +(@GUID2+63,189981,571,1,1,5483.640,4688.750,-122.0030,0.82030,0,0,0,1,@TIMER,255,1), +(@GUID2+64,189981,571,1,1,5494.615,5677.867,-97.2142,1.93731,0,0,0,1,@TIMER,255,1), +(@GUID2+65,189981,571,1,1,5509.580,3579.710,-12.9631,1.43117,0,0,0,1,@TIMER,255,1), +(@GUID2+66,189981,571,1,1,5521.060,4926.980,-192.7710,2.56563,0,0,0,1,@TIMER,255,1), +(@GUID2+67,189981,571,1,1,5522.840,3836.810,-62.7052,2.04204,0,0,0,1,@TIMER,255,1), +(@GUID2+68,189981,571,1,1,5528.730,4681.650,-127.0880,0.43633,0,0,0,1,@TIMER,255,1), +(@GUID2+69,189981,571,1,1,5529.634,4501.900,-132.3918,-2.33874,0,0,0,1,@TIMER,255,1), +(@GUID2+70,189981,571,1,1,5537.919,4315.394,-130.2137,-1.88495,0,0,0,1,@TIMER,255,1), +(@GUID2+71,189981,571,1,1,5553.280,3666.730,-28.5651,-1.79769,0,0,0,1,@TIMER,255,1), +(@GUID2+72,189981,571,1,3,5608.650,3865.180,-99.3376,-1.91986,0,0,0,1,@TIMER,255,1), +(@GUID2+73,189981,571,1,1,5652.200,3981.090,-83.0324,-1.13446,0,0,0,1,@TIMER,255,1), +(@GUID2+74,189981,571,1,3,5656.220,6023.450,-28.9304,-1.88495,0,0,0,1,@TIMER,255,1), +(@GUID2+75,189981,571,1,1,5660.409,3699.911,-13.5126,-2.37364,0,0,0,1,@TIMER,255,1), +(@GUID2+76,189981,571,1,1,5668.259,4118.605,-90.1961,2.37364,0,0,0,1,@TIMER,255,1), +(@GUID2+77,189981,571,1,3,5669.970,5463.910,-68.9469,2.89724,0,0,0,1,@TIMER,255,1), +(@GUID2+78,189981,571,1,1,5671.007,4389.625,-137.5537,-1.46608,0,0,0,1,@TIMER,255,1), +(@GUID2+79,189981,571,1,1,5679.051,5598.783,-73.9954,-0.97738,0,0,0,1,@TIMER,255,1), +(@GUID2+80,189981,571,1,1,5682.740,3538.940,-8.8133,-2.35619,0,0,0,1,@TIMER,255,1), +(@GUID2+81,189981,571,1,1,5684.080,5541.490,-72.1058,-1.64061,0,0,0,1,@TIMER,255,1), +(@GUID2+82,189981,571,1,1,5704.426,3884.596,-72.5278,1.86750,0,0,0,1,@TIMER,255,1), +(@GUID2+83,189981,571,1,1,5721.057,3655.517,-25.2488,0.27925,0,0,0,1,@TIMER,255,1), +(@GUID2+84,189981,571,1,1,5721.060,3655.520,-25.2488,0.27925,0,0,0,1,@TIMER,255,1), +(@GUID2+85,189981,571,1,1,5735.860,5612.500,-67.5912,-2.58308,0,0,0,1,@TIMER,255,1), +(@GUID2+86,189981,571,1,1,5740.394,5960.094,-36.3629,0.52360,0,0,0,1,@TIMER,255,1), +(@GUID2+87,189981,571,1,1,5762.140,3502.190,8.5711,-0.52360,0,0,0,1,@TIMER,255,1), +(@GUID2+88,189981,571,1,1,5827.040,4457.580,-130.4530,1.64061,0,0,0,1,@TIMER,255,1), +(@GUID2+89,189981,571,1,1,5834.000,5370.130,-87.9156,-0.06981,0,0,0,1,@TIMER,255,1), +(@GUID2+90,189981,571,1,1,5859.746,4020.988,-68.8248,0.10472,0,0,0,1,@TIMER,255,1), +(@GUID2+91,189981,571,1,3,5861.320,4419.110,-89.7436,-3.07177,0,0,0,1,@TIMER,255,1), +(@GUID2+92,189981,571,1,1,5882.228,5916.372,-25.0905,-1.60570,0,0,0,1,@TIMER,255,1), +(@GUID2+93,189981,571,1,1,5945.590,4566.130,-99.4520,1.69297,0,0,0,1,@TIMER,255,1), +(@GUID2+94,189981,571,1,1,6001.920,4160.640,-71.2961,0.83776,0,0,0,1,@TIMER,255,1), +(@GUID2+95,189981,571,1,1,6037.100,4847.040,-93.4030,-1.25664,0,0,0,1,@TIMER,255,1), +(@GUID2+96,189981,571,1,1,6053.300,4795.460,-92.8918,0.82030,0,0,0,1,@TIMER,255,1), +(@GUID2+97,189981,571,1,1,6077.970,4860.720,-94.5449,-1.71042,0,0,0,1,@TIMER,255,1), +(@GUID2+98,189981,571,1,1,6084.560,4079.100,-46.7275,-2.30383,0,0,0,1,@TIMER,255,1), +(@GUID2+99,189981,571,1,1,6096.587,3644.301,143.1275,-2.84488,0,0,0,1,@TIMER,255,1), +(@GUID2+100,189981,571,1,1,6107.000,5455.440,-97.4798,2.93214,0,0,0,1,@TIMER,255,1), +(@GUID2+101,189981,571,1,1,6167.440,5256.570,-127.8840,0.89012,0,0,0,1,@TIMER,255,1), +(@GUID2+102,189981,571,1,3,6173.290,4609.010,-92.2689,-1.90241,0,0,0,1,@TIMER,255,1), +(@GUID2+103,189981,571,1,1,6174.170,5636.430,-22.3877,-1.93731,0,0,0,1,@TIMER,255,1), +(@GUID2+104,189981,571,1,1,6205.150,4325.340,-38.2094,-0.05236,0,0,0,1,@TIMER,255,1), +(@GUID2+105,189981,571,1,1,6215.250,5172.350,-97.6636,0.24435,0,0,0,1,@TIMER,255,1), +(@GUID2+106,189981,571,1,1,6229.990,5392.570,-108.9900,-2.98450,0,0,0,1,@TIMER,255,1), +(@GUID2+107,189981,571,1,1,6277.390,4221.150,-40.3804,0.59341,0,0,0,1,@TIMER,255,1), +(@GUID2+108,189981,571,1,1,6302.940,5136.300,-81.6133,-3.01941,0,0,0,1,@TIMER,255,1), +(@GUID2+109,189981,571,1,1,6310.000,3957.290,109.0570,-0.76794,0,0,0,1,@TIMER,255,1), +(@GUID2+110,189981,571,1,1,6659.690,4690.380,0.1829,1.78023,0,0,0,1,@TIMER,255,1), +(@GUID2+111,189981,571,1,1,6672.220,4932.340,-17.9780,2.94959,0,0,0,1,@TIMER,255,1); +-- Titanium Deposits Sholazar Basin +INSERT INTO `gameobject` (`guid`, `id`, `map`, `spawnMask`, `phaseMask`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecs`, `animprogress`, `state`) VALUES +(@GUID3,191133,571,1,1,4704.718,5425.793,-32.3253,1.79769,0,0,0,1,@TIMER,255,1), +(@GUID3+1,191133,571,1,1,4709.270,4367.730,-31.7133,-0.76794,0,0,0,1,@TIMER,255,1), +(@GUID3+2,191133,571,1,1,4716.542,4978.443,-44.2661,1.62316,0,0,0,1,@TIMER,255,1), +(@GUID3+3,191133,571,1,1,4722.860,5246.860,-42.0046,1.18682,0,0,0,1,@TIMER,255,1), +(@GUID3+4,191133,571,1,1,4724.210,5107.490,-46.3651,-1.78023,0,0,0,1,@TIMER,255,1), +(@GUID3+5,191133,571,1,1,4732.280,5135.100,-53.4326,-1.51844,0,0,0,1,@TIMER,255,1), +(@GUID3+6,191133,571,1,1,4732.570,5036.200,-54.9473,2.00713,0,0,0,1,@TIMER,255,1), +(@GUID3+7,191133,571,1,1,4737.140,4847.460,-67.2180,1.65806,0,0,0,1,@TIMER,255,1), +(@GUID3+8,191133,571,1,1,4738.390,4691.450,-56.7589,0.50615,0,0,0,1,@TIMER,255,1), +(@GUID3+9,191133,571,1,1,4794.450,5895.830,-30.9455,2.44346,0,0,0,1,@TIMER,255,1), +(@GUID3+10,191133,571,1,1,4837.230,4160.790,-3.6381,-0.62832,0,0,0,1,@TIMER,255,1), +(@GUID3+11,191133,571,1,1,4846.780,5769.550,-57.8889,2.56563,0,0,0,1,@TIMER,255,1), +(@GUID3+12,191133,571,1,1,4847.239,5953.834,-15.9588,-1.15192,0,0,0,1,@TIMER,255,1), +(@GUID3+13,191133,571,1,1,4866.020,4570.890,-60.3061,2.00713,0,0,0,1,@TIMER,255,1), +(@GUID3+14,191133,571,1,1,4884.830,4321.190,-54.8871,-3.00195,0,0,0,1,@TIMER,255,1), +(@GUID3+15,191133,571,1,1,4927.281,4328.632,-72.9263,0.59341,0,0,0,1,@TIMER,255,1), +(@GUID3+16,191133,571,1,1,4988.200,5373.050,-94.5907,1.36136,0,0,0,1,@TIMER,255,1), +(@GUID3+17,191133,571,1,1,4993.830,4180.020,-79.1709,0.01745,0,0,0,1,@TIMER,255,1), +(@GUID3+18,191133,571,1,1,5013.689,5436.410,-94.5146,-1.08210,0,0,0,1,@TIMER,255,1), +(@GUID3+19,191133,571,1,1,5015.700,4691.840,-91.0594,1.43117,0,0,0,1,@TIMER,255,1), +(@GUID3+20,191133,571,1,1,5052.430,5887.010,-69.4098,-1.69297,0,0,0,1,@TIMER,255,1), +(@GUID3+21,191133,571,1,1,5054.910,4412.610,-92.8146,1.22173,0,0,0,1,@TIMER,255,1), +(@GUID3+22,191133,571,1,1,5056.290,4819.880,-132.8840,-2.19912,0,0,0,1,@TIMER,255,1), +(@GUID3+23,191133,571,1,1,5062.380,4526.640,-96.4765,0.20944,0,0,0,1,@TIMER,255,1), +(@GUID3+24,191133,571,1,1,5062.479,5031.562,-131.0034,-1.22173,0,0,0,1,@TIMER,255,1), +(@GUID3+25,191133,571,1,1,5079.800,5468.130,-88.7503,-0.27925,0,0,0,1,@TIMER,255,1), +(@GUID3+26,191133,571,1,1,5086.370,5098.740,-134.5720,2.07694,0,0,0,1,@TIMER,255,1), +(@GUID3+27,191133,571,1,1,5093.570,4341.180,-82.7253,3.08918,0,0,0,1,@TIMER,255,1), +(@GUID3+28,191133,571,1,1,5094.270,5217.790,-88.3220,-2.21656,0,0,0,1,@TIMER,255,1), +(@GUID3+29,191133,571,1,1,5105.152,4639.756,-135.8839,-1.02974,0,0,0,1,@TIMER,255,1), +(@GUID3+30,191133,571,1,1,5125.490,6015.810,-50.0045,2.26892,0,0,0,1,@TIMER,255,1), +(@GUID3+31,191133,571,1,1,5128.380,4215.860,-83.4258,1.60570,0,0,0,1,@TIMER,255,1), +(@GUID3+32,191133,571,1,1,5159.018,5454.543,-88.2909,3.03684,0,0,0,1,@TIMER,255,1), +(@GUID3+33,191133,571,1,1,5171.400,3794.750,-12.2962,2.00713,0,0,0,1,@TIMER,255,1), +(@GUID3+34,191133,571,1,1,5190.180,6023.387,-37.9963,-0.76794,0,0,0,1,@TIMER,255,1), +(@GUID3+35,191133,571,1,1,5199.739,5436.705,-81.6717,-0.69813,0,0,0,1,@TIMER,255,1), +(@GUID3+36,191133,571,1,1,5226.190,4826.150,-132.7040,-2.77507,0,0,0,1,@TIMER,255,1), +(@GUID3+37,191133,571,1,1,5232.450,4195.245,-93.5727,1.67551,0,0,0,1,@TIMER,255,1), +(@GUID3+38,191133,571,1,1,5271.987,5251.519,-124.8593,1.57080,0,0,0,1,@TIMER,255,1), +(@GUID3+39,191133,571,1,1,5277.800,3702.890,12.7941,1.76278,0,0,0,1,@TIMER,255,1), +(@GUID3+40,191133,571,1,1,5309.020,4437.110,-101.2090,2.98450,0,0,0,1,@TIMER,255,1), +(@GUID3+41,191133,571,1,1,5324.950,5368.980,-123.4160,-1.37881,0,0,0,1,@TIMER,255,1), +(@GUID3+42,191133,571,1,1,5325.520,6025.470,-16.2582,-0.83776,0,0,0,1,@TIMER,255,1), +(@GUID3+43,191133,571,1,1,5331.860,4405.600,-126.9970,-1.51844,0,0,0,1,@TIMER,255,1), +(@GUID3+44,191133,571,1,1,5333.070,4300.510,-148.0820,0.68068,0,0,0,1,@TIMER,255,1), +(@GUID3+45,191133,571,1,1,5338.952,4182.072,-94.2039,-2.93214,0,0,0,1,@TIMER,255,1), +(@GUID3+46,191133,571,1,1,5341.820,5396.050,-106.7450,2.00713,0,0,0,1,@TIMER,255,1), +(@GUID3+47,191133,571,1,1,5354.230,4820.880,-198.8800,1.60570,0,0,0,1,@TIMER,255,1), +(@GUID3+48,191133,571,1,1,5358.900,4514.820,-127.6330,2.07694,0,0,0,1,@TIMER,255,1), +(@GUID3+49,191133,571,1,1,5385.530,4913.980,-195.3540,1.83259,0,0,0,1,@TIMER,255,1), +(@GUID3+50,191133,571,1,1,5388.270,4753.330,-198.7980,2.30383,0,0,0,1,@TIMER,255,1), +(@GUID3+51,191133,571,1,1,5418.620,4371.290,-137.6760,1.55334,0,0,0,1,@TIMER,255,1), +(@GUID3+52,191133,571,1,1,5434.910,3826.250,-65.5299,1.09956,0,0,0,1,@TIMER,255,1), +(@GUID3+53,191133,571,1,1,5443.155,4694.667,-187.9415,2.44346,0,0,0,1,@TIMER,255,1), +(@GUID3+54,191133,571,1,1,5446.752,5166.048,-133.7927,-3.07177,0,0,0,1,@TIMER,255,1), +(@GUID3+55,191133,571,1,1,5447.930,4519.890,-135.9880,-1.67551,0,0,0,1,@TIMER,255,1), +(@GUID3+56,191133,571,1,1,5449.870,4089.350,-91.0623,1.88495,0,0,0,1,@TIMER,255,1), +(@GUID3+57,191133,571,1,3,5451.860,5532.250,-101.7700,0.22689,0,0,0,1,@TIMER,255,1), +(@GUID3+58,191133,571,1,1,5455.970,5712.200,-102.7660,-0.59341,0,0,0,1,@TIMER,255,1), +(@GUID3+59,191133,571,1,1,5456.090,4679.770,-173.5170,1.93731,0,0,0,1,@TIMER,255,1), +(@GUID3+60,191133,571,1,1,5461.790,4916.510,-197.1930,-0.62832,0,0,0,1,@TIMER,255,1), +(@GUID3+61,191133,571,1,1,5479.190,4193.700,-97.0735,0.80285,0,0,0,1,@TIMER,255,1), +(@GUID3+62,191133,571,1,1,5482.810,3505.600,7.2101,-2.68781,0,0,0,1,@TIMER,255,1), +(@GUID3+63,191133,571,1,1,5483.640,4688.750,-122.0030,0.82030,0,0,0,1,@TIMER,255,1), +(@GUID3+64,191133,571,1,1,5494.615,5677.867,-97.2142,1.93731,0,0,0,1,@TIMER,255,1), +(@GUID3+65,191133,571,1,1,5509.580,3579.710,-12.9631,1.43117,0,0,0,1,@TIMER,255,1), +(@GUID3+66,191133,571,1,1,5521.060,4926.980,-192.7710,2.56563,0,0,0,1,@TIMER,255,1), +(@GUID3+67,191133,571,1,1,5522.840,3836.810,-62.7052,2.04204,0,0,0,1,@TIMER,255,1), +(@GUID3+68,191133,571,1,1,5528.730,4681.650,-127.0880,0.43633,0,0,0,1,@TIMER,255,1), +(@GUID3+69,191133,571,1,1,5529.634,4501.900,-132.3918,-2.33874,0,0,0,1,@TIMER,255,1), +(@GUID3+70,191133,571,1,1,5537.919,4315.394,-130.2137,-1.88495,0,0,0,1,@TIMER,255,1), +(@GUID3+71,191133,571,1,1,5553.280,3666.730,-28.5651,-1.79769,0,0,0,1,@TIMER,255,1), +(@GUID3+72,191133,571,1,3,5608.650,3865.180,-99.3376,-1.91986,0,0,0,1,@TIMER,255,1), +(@GUID3+73,191133,571,1,1,5652.200,3981.090,-83.0324,-1.13446,0,0,0,1,@TIMER,255,1), +(@GUID3+74,191133,571,1,3,5656.220,6023.450,-28.9304,-1.88495,0,0,0,1,@TIMER,255,1), +(@GUID3+75,191133,571,1,1,5660.409,3699.911,-13.5126,-2.37364,0,0,0,1,@TIMER,255,1), +(@GUID3+76,191133,571,1,1,5668.259,4118.605,-90.1961,2.37364,0,0,0,1,@TIMER,255,1), +(@GUID3+77,191133,571,1,3,5669.970,5463.910,-68.9469,2.89724,0,0,0,1,@TIMER,255,1), +(@GUID3+78,191133,571,1,1,5671.007,4389.625,-137.5537,-1.46608,0,0,0,1,@TIMER,255,1), +(@GUID3+79,191133,571,1,1,5679.051,5598.783,-73.9954,-0.97738,0,0,0,1,@TIMER,255,1), +(@GUID3+80,191133,571,1,1,5682.740,3538.940,-8.8133,-2.35619,0,0,0,1,@TIMER,255,1), +(@GUID3+81,191133,571,1,1,5684.080,5541.490,-72.1058,-1.64061,0,0,0,1,@TIMER,255,1), +(@GUID3+82,191133,571,1,1,5704.426,3884.596,-72.5278,1.86750,0,0,0,1,@TIMER,255,1), +(@GUID3+83,191133,571,1,1,5721.057,3655.517,-25.2488,0.27925,0,0,0,1,@TIMER,255,1), +(@GUID3+84,191133,571,1,1,5721.060,3655.520,-25.2488,0.27925,0,0,0,1,@TIMER,255,1), +(@GUID3+85,191133,571,1,1,5735.860,5612.500,-67.5912,-2.58308,0,0,0,1,@TIMER,255,1), +(@GUID3+86,191133,571,1,1,5740.394,5960.094,-36.3629,0.52360,0,0,0,1,@TIMER,255,1), +(@GUID3+87,191133,571,1,1,5762.140,3502.190,8.5711,-0.52360,0,0,0,1,@TIMER,255,1), +(@GUID3+88,191133,571,1,1,5827.040,4457.580,-130.4530,1.64061,0,0,0,1,@TIMER,255,1), +(@GUID3+89,191133,571,1,1,5834.000,5370.130,-87.9156,-0.06981,0,0,0,1,@TIMER,255,1), +(@GUID3+90,191133,571,1,1,5859.746,4020.988,-68.8248,0.10472,0,0,0,1,@TIMER,255,1), +(@GUID3+91,191133,571,1,3,5861.320,4419.110,-89.7436,-3.07177,0,0,0,1,@TIMER,255,1), +(@GUID3+92,191133,571,1,1,5882.228,5916.372,-25.0905,-1.60570,0,0,0,1,@TIMER,255,1), +(@GUID3+93,191133,571,1,1,5945.590,4566.130,-99.4520,1.69297,0,0,0,1,@TIMER,255,1), +(@GUID3+94,191133,571,1,1,6001.920,4160.640,-71.2961,0.83776,0,0,0,1,@TIMER,255,1), +(@GUID3+95,191133,571,1,1,6037.100,4847.040,-93.4030,-1.25664,0,0,0,1,@TIMER,255,1), +(@GUID3+96,191133,571,1,1,6053.300,4795.460,-92.8918,0.82030,0,0,0,1,@TIMER,255,1), +(@GUID3+97,191133,571,1,1,6077.970,4860.720,-94.5449,-1.71042,0,0,0,1,@TIMER,255,1), +(@GUID3+98,191133,571,1,1,6084.560,4079.100,-46.7275,-2.30383,0,0,0,1,@TIMER,255,1), +(@GUID3+99,191133,571,1,1,6096.587,3644.301,143.1275,-2.84488,0,0,0,1,@TIMER,255,1), +(@GUID3+100,191133,571,1,1,6107.000,5455.440,-97.4798,2.93214,0,0,0,1,@TIMER,255,1), +(@GUID3+101,191133,571,1,1,6167.440,5256.570,-127.8840,0.89012,0,0,0,1,@TIMER,255,1), +(@GUID3+102,191133,571,1,3,6173.290,4609.010,-92.2689,-1.90241,0,0,0,1,@TIMER,255,1), +(@GUID3+103,191133,571,1,1,6174.170,5636.430,-22.3877,-1.93731,0,0,0,1,@TIMER,255,1), +(@GUID3+104,191133,571,1,1,6205.150,4325.340,-38.2094,-0.05236,0,0,0,1,@TIMER,255,1), +(@GUID3+105,191133,571,1,1,6215.250,5172.350,-97.6636,0.24435,0,0,0,1,@TIMER,255,1), +(@GUID3+106,191133,571,1,1,6229.990,5392.570,-108.9900,-2.98450,0,0,0,1,@TIMER,255,1), +(@GUID3+107,191133,571,1,1,6277.390,4221.150,-40.3804,0.59341,0,0,0,1,@TIMER,255,1), +(@GUID3+108,191133,571,1,1,6302.940,5136.300,-81.6133,-3.01941,0,0,0,1,@TIMER,255,1), +(@GUID3+109,191133,571,1,1,6310.000,3957.290,109.0570,-0.76794,0,0,0,1,@TIMER,255,1), +(@GUID3+110,191133,571,1,1,6659.690,4690.380,0.1829,1.78023,0,0,0,1,@TIMER,255,1), +(@GUID3+111,191133,571,1,1,6672.220,4932.340,-17.9780,2.94959,0,0,0,1,@TIMER,255,1); +-- Pooling +DELETE FROM `pool_gameobject` WHERE `guid` BETWEEN @GUID1 AND @GUID1+@LASTGUID; +DELETE FROM `pool_gameobject` WHERE `guid` BETWEEN @GUID2 AND @GUID2+@LASTGUID; +DELETE FROM `pool_gameobject` WHERE `guid` BETWEEN @GUID3 AND @GUID3+@LASTGUID; +-- Pool different ore types to each spawnpoint +INSERT INTO `pool_gameobject` (`guid`,`pool_entry`,`chance`,`description`) VALUES +(@GUID1+0,@POOL+0,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 1 Saronite'), +(@GUID2+0,@POOL+0,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 1 Rich Saronite'), +(@GUID3+0,@POOL+0,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 1 Titanium'), +(@GUID1+1,@POOL+1,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 2 Saronite'), +(@GUID2+1,@POOL+1,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 2 Rich Saronite'), +(@GUID3+1,@POOL+1,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 2 Titanium'), +(@GUID1+2,@POOL+2,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 3 Saronite'), +(@GUID2+2,@POOL+2,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 3 Rich Saronite'), +(@GUID3+2,@POOL+2,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 3 Titanium'), +(@GUID1+3,@POOL+3,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 4 Saronite'), +(@GUID2+3,@POOL+3,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 4 Rich Saronite'), +(@GUID3+3,@POOL+3,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 4 Titanium'), +(@GUID1+4,@POOL+4,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 5 Saronite'), +(@GUID2+4,@POOL+4,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 5 Rich Saronite'), +(@GUID3+4,@POOL+4,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 5 Titanium'), +(@GUID1+5,@POOL+5,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 6 Saronite'), +(@GUID2+5,@POOL+5,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 6 Rich Saronite'), +(@GUID3+5,@POOL+5,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 6 Titanium'), +(@GUID1+6,@POOL+6,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 7 Saronite'), +(@GUID2+6,@POOL+6,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 7 Rich Saronite'), +(@GUID3+6,@POOL+6,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 7 Titanium'), +(@GUID1+7,@POOL+7,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 8 Saronite'), +(@GUID2+7,@POOL+7,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 8 Rich Saronite'), +(@GUID3+7,@POOL+7,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 8 Titanium'), +(@GUID1+8,@POOL+8,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 9 Saronite'), +(@GUID2+8,@POOL+8,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 9 Rich Saronite'), +(@GUID3+8,@POOL+8,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 9 Titanium'), +(@GUID1+9,@POOL+9,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 10 Saronite'), +(@GUID2+9,@POOL+9,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 10 Rich Saronite'), +(@GUID3+9,@POOL+9,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 10 Titanium'), +(@GUID1+10,@POOL+10,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 11 Saronite'), +(@GUID2+10,@POOL+10,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 11 Rich Saronite'), +(@GUID3+10,@POOL+10,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 11 Titanium'), +(@GUID1+11,@POOL+11,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 12 Saronite'), +(@GUID2+11,@POOL+11,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 12 Rich Saronite'), +(@GUID3+11,@POOL+11,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 12 Titanium'), +(@GUID1+12,@POOL+12,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 13 Saronite'), +(@GUID2+12,@POOL+12,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 13 Rich Saronite'), +(@GUID3+12,@POOL+12,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 13 Titanium'), +(@GUID1+13,@POOL+13,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 14 Saronite'), +(@GUID2+13,@POOL+13,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 14 Rich Saronite'), +(@GUID3+13,@POOL+13,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 14 Titanium'), +(@GUID1+14,@POOL+14,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 15 Saronite'), +(@GUID2+14,@POOL+14,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 15 Rich Saronite'), +(@GUID3+14,@POOL+14,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 15 Titanium'), +(@GUID1+15,@POOL+15,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 16 Saronite'), +(@GUID2+15,@POOL+15,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 16 Rich Saronite'), +(@GUID3+15,@POOL+15,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 16 Titanium'), +(@GUID1+16,@POOL+16,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 17 Saronite'), +(@GUID2+16,@POOL+16,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 17 Rich Saronite'), +(@GUID3+16,@POOL+16,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 17 Titanium'), +(@GUID1+17,@POOL+17,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 18 Saronite'), +(@GUID2+17,@POOL+17,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 18 Rich Saronite'), +(@GUID3+17,@POOL+17,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 18 Titanium'), +(@GUID1+18,@POOL+18,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 19 Saronite'), +(@GUID2+18,@POOL+18,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 19 Rich Saronite'), +(@GUID3+18,@POOL+18,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 19 Titanium'), +(@GUID1+19,@POOL+19,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 20 Saronite'), +(@GUID2+19,@POOL+19,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 20 Rich Saronite'), +(@GUID3+19,@POOL+19,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 20 Titanium'), +(@GUID1+20,@POOL+20,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 21 Saronite'), +(@GUID2+20,@POOL+20,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 21 Rich Saronite'), +(@GUID3+20,@POOL+20,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 21 Titanium'), +(@GUID1+21,@POOL+21,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 22 Saronite'), +(@GUID2+21,@POOL+21,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 22 Rich Saronite'), +(@GUID3+21,@POOL+21,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 22 Titanium'), +(@GUID1+22,@POOL+22,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 23 Saronite'), +(@GUID2+22,@POOL+22,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 23 Rich Saronite'), +(@GUID3+22,@POOL+22,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 23 Titanium'), +(@GUID1+23,@POOL+23,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 24 Saronite'), +(@GUID2+23,@POOL+23,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 24 Rich Saronite'), +(@GUID3+23,@POOL+23,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 24 Titanium'), +(@GUID1+24,@POOL+24,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 25 Saronite'), +(@GUID2+24,@POOL+24,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 25 Rich Saronite'), +(@GUID3+24,@POOL+24,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 25 Titanium'), +(@GUID1+25,@POOL+25,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 26 Saronite'), +(@GUID2+25,@POOL+25,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 26 Rich Saronite'), +(@GUID3+25,@POOL+25,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 26 Titanium'), +(@GUID1+26,@POOL+26,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 27 Saronite'), +(@GUID2+26,@POOL+26,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 27 Rich Saronite'), +(@GUID3+26,@POOL+26,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 27 Titanium'), +(@GUID1+27,@POOL+27,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 28 Saronite'), +(@GUID2+27,@POOL+27,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 28 Rich Saronite'), +(@GUID3+27,@POOL+27,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 28 Titanium'), +(@GUID1+28,@POOL+28,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 29 Saronite'), +(@GUID2+28,@POOL+28,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 29 Rich Saronite'), +(@GUID3+28,@POOL+28,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 29 Titanium'), +(@GUID1+29,@POOL+29,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 30 Saronite'), +(@GUID2+29,@POOL+29,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 30 Rich Saronite'), +(@GUID3+29,@POOL+29,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 30 Titanium'), +(@GUID1+30,@POOL+30,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 31 Saronite'), +(@GUID2+30,@POOL+30,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 31 Rich Saronite'), +(@GUID3+30,@POOL+30,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 31 Titanium'), +(@GUID1+31,@POOL+31,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 32 Saronite'), +(@GUID2+31,@POOL+31,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 32 Rich Saronite'), +(@GUID3+31,@POOL+31,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 32 Titanium'), +(@GUID1+32,@POOL+32,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 33 Saronite'), +(@GUID2+32,@POOL+32,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 33 Rich Saronite'), +(@GUID3+32,@POOL+32,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 33 Titanium'), +(@GUID1+33,@POOL+33,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 34 Saronite'), +(@GUID2+33,@POOL+33,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 34 Rich Saronite'), +(@GUID3+33,@POOL+33,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 34 Titanium'), +(@GUID1+34,@POOL+34,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 35 Saronite'), +(@GUID2+34,@POOL+34,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 35 Rich Saronite'), +(@GUID3+34,@POOL+34,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 35 Titanium'), +(@GUID1+35,@POOL+35,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 36 Saronite'), +(@GUID2+35,@POOL+35,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 36 Rich Saronite'), +(@GUID3+35,@POOL+35,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 36 Titanium'), +(@GUID1+36,@POOL+36,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 37 Saronite'), +(@GUID2+36,@POOL+36,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 37 Rich Saronite'), +(@GUID3+36,@POOL+36,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 37 Titanium'), +(@GUID1+37,@POOL+37,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 38 Saronite'), +(@GUID2+37,@POOL+37,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 38 Rich Saronite'), +(@GUID3+37,@POOL+37,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 38 Titanium'), +(@GUID1+38,@POOL+38,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 39 Saronite'), +(@GUID2+38,@POOL+38,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 39 Rich Saronite'), +(@GUID3+38,@POOL+38,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 39 Titanium'), +(@GUID1+39,@POOL+39,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 40 Saronite'), +(@GUID2+39,@POOL+39,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 40 Rich Saronite'), +(@GUID3+39,@POOL+39,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 40 Titanium'), +(@GUID1+40,@POOL+40,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 41 Saronite'), +(@GUID2+40,@POOL+40,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 41 Rich Saronite'), +(@GUID3+40,@POOL+40,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 41 Titanium'), +(@GUID1+41,@POOL+41,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 42 Saronite'), +(@GUID2+41,@POOL+41,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 42 Rich Saronite'), +(@GUID3+41,@POOL+41,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 42 Titanium'), +(@GUID1+42,@POOL+42,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 43 Saronite'), +(@GUID2+42,@POOL+42,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 43 Rich Saronite'), +(@GUID3+42,@POOL+42,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 43 Titanium'), +(@GUID1+43,@POOL+43,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 44 Saronite'), +(@GUID2+43,@POOL+43,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 44 Rich Saronite'), +(@GUID3+43,@POOL+43,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 44 Titanium'), +(@GUID1+44,@POOL+44,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 45 Saronite'), +(@GUID2+44,@POOL+44,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 45 Rich Saronite'), +(@GUID3+44,@POOL+44,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 45 Titanium'), +(@GUID1+45,@POOL+45,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 46 Saronite'), +(@GUID2+45,@POOL+45,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 46 Rich Saronite'), +(@GUID3+45,@POOL+45,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 46 Titanium'), +(@GUID1+46,@POOL+46,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 47 Saronite'), +(@GUID2+46,@POOL+46,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 47 Rich Saronite'), +(@GUID3+46,@POOL+46,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 47 Titanium'), +(@GUID1+47,@POOL+47,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 48 Saronite'), +(@GUID2+47,@POOL+47,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 48 Rich Saronite'), +(@GUID3+47,@POOL+47,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 48 Titanium'), +(@GUID1+48,@POOL+48,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 49 Saronite'), +(@GUID2+48,@POOL+48,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 49 Rich Saronite'), +(@GUID3+48,@POOL+48,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 49 Titanium'), +(@GUID1+49,@POOL+49,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 50 Saronite'), +(@GUID2+49,@POOL+49,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 50 Rich Saronite'), +(@GUID3+49,@POOL+49,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 50 Titanium'), +(@GUID1+50,@POOL+50,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 51 Saronite'), +(@GUID2+50,@POOL+50,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 51 Rich Saronite'), +(@GUID3+50,@POOL+50,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 51 Titanium'), +(@GUID1+51,@POOL+51,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 52 Saronite'), +(@GUID2+51,@POOL+51,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 52 Rich Saronite'), +(@GUID3+51,@POOL+51,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 52 Titanium'), +(@GUID1+52,@POOL+52,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 53 Saronite'), +(@GUID2+52,@POOL+52,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 53 Rich Saronite'), +(@GUID3+52,@POOL+52,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 53 Titanium'), +(@GUID1+53,@POOL+53,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 54 Saronite'), +(@GUID2+53,@POOL+53,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 54 Rich Saronite'), +(@GUID3+53,@POOL+53,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 54 Titanium'), +(@GUID1+54,@POOL+54,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 55 Saronite'), +(@GUID2+54,@POOL+54,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 55 Rich Saronite'), +(@GUID3+54,@POOL+54,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 55 Titanium'), +(@GUID1+55,@POOL+55,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 56 Saronite'), +(@GUID2+55,@POOL+55,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 56 Rich Saronite'), +(@GUID3+55,@POOL+55,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 56 Titanium'), +(@GUID1+56,@POOL+56,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 57 Saronite'), +(@GUID2+56,@POOL+56,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 57 Rich Saronite'), +(@GUID3+56,@POOL+56,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 57 Titanium'), +(@GUID1+57,@POOL+57,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 58 Saronite'), +(@GUID2+57,@POOL+57,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 58 Rich Saronite'), +(@GUID3+57,@POOL+57,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 58 Titanium'), +(@GUID1+58,@POOL+58,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 59 Saronite'), +(@GUID2+58,@POOL+58,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 59 Rich Saronite'), +(@GUID3+58,@POOL+58,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 59 Titanium'), +(@GUID1+59,@POOL+59,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 60 Saronite'), +(@GUID2+59,@POOL+59,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 60 Rich Saronite'), +(@GUID3+59,@POOL+59,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 60 Titanium'), +(@GUID1+60,@POOL+60,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 61 Saronite'), +(@GUID2+60,@POOL+60,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 61 Rich Saronite'), +(@GUID3+60,@POOL+60,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 61 Titanium'), +(@GUID1+61,@POOL+61,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 62 Saronite'), +(@GUID2+61,@POOL+61,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 62 Rich Saronite'), +(@GUID3+61,@POOL+61,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 62 Titanium'), +(@GUID1+62,@POOL+62,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 63 Saronite'), +(@GUID2+62,@POOL+62,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 63 Rich Saronite'), +(@GUID3+62,@POOL+62,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 63 Titanium'), +(@GUID1+63,@POOL+63,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 64 Saronite'), +(@GUID2+63,@POOL+63,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 64 Rich Saronite'), +(@GUID3+63,@POOL+63,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 64 Titanium'), +(@GUID1+64,@POOL+64,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 65 Saronite'), +(@GUID2+64,@POOL+64,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 65 Rich Saronite'), +(@GUID3+64,@POOL+64,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 65 Titanium'), +(@GUID1+65,@POOL+65,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 66 Saronite'), +(@GUID2+65,@POOL+65,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 66 Rich Saronite'), +(@GUID3+65,@POOL+65,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 66 Titanium'), +(@GUID1+66,@POOL+66,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 67 Saronite'), +(@GUID2+66,@POOL+66,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 67 Rich Saronite'), +(@GUID3+66,@POOL+66,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 67 Titanium'), +(@GUID1+67,@POOL+67,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 68 Saronite'), +(@GUID2+67,@POOL+67,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 68 Rich Saronite'), +(@GUID3+67,@POOL+67,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 68 Titanium'), +(@GUID1+68,@POOL+68,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 69 Saronite'), +(@GUID2+68,@POOL+68,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 69 Rich Saronite'), +(@GUID3+68,@POOL+68,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 69 Titanium'), +(@GUID1+69,@POOL+69,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 70 Saronite'), +(@GUID2+69,@POOL+69,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 70 Rich Saronite'), +(@GUID3+69,@POOL+69,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 70 Titanium'), +(@GUID1+70,@POOL+70,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 71 Saronite'), +(@GUID2+70,@POOL+70,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 71 Rich Saronite'), +(@GUID3+70,@POOL+70,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 71 Titanium'), +(@GUID1+71,@POOL+71,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 72 Saronite'), +(@GUID2+71,@POOL+71,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 72 Rich Saronite'), +(@GUID3+71,@POOL+71,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 72 Titanium'), +(@GUID1+72,@POOL+72,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 73 Saronite'), +(@GUID2+72,@POOL+72,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 73 Rich Saronite'), +(@GUID3+72,@POOL+72,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 73 Titanium'), +(@GUID1+73,@POOL+73,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 74 Saronite'), +(@GUID2+73,@POOL+73,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 74 Rich Saronite'), +(@GUID3+73,@POOL+73,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 74 Titanium'), +(@GUID1+74,@POOL+74,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 75 Saronite'), +(@GUID2+74,@POOL+74,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 75 Rich Saronite'), +(@GUID3+74,@POOL+74,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 75 Titanium'), +(@GUID1+75,@POOL+75,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 76 Saronite'), +(@GUID2+75,@POOL+75,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 76 Rich Saronite'), +(@GUID3+75,@POOL+75,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 76 Titanium'), +(@GUID1+76,@POOL+76,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 77 Saronite'), +(@GUID2+76,@POOL+76,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 77 Rich Saronite'), +(@GUID3+76,@POOL+76,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 77 Titanium'), +(@GUID1+77,@POOL+77,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 78 Saronite'), +(@GUID2+77,@POOL+77,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 78 Rich Saronite'), +(@GUID3+77,@POOL+77,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 78 Titanium'), +(@GUID1+78,@POOL+78,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 79 Saronite'), +(@GUID2+78,@POOL+78,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 79 Rich Saronite'), +(@GUID3+78,@POOL+78,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 79 Titanium'), +(@GUID1+79,@POOL+79,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 80 Saronite'), +(@GUID2+79,@POOL+79,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 80 Rich Saronite'), +(@GUID3+79,@POOL+79,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 80 Titanium'), +(@GUID1+80,@POOL+80,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 81 Saronite'), +(@GUID2+80,@POOL+80,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 81 Rich Saronite'), +(@GUID3+80,@POOL+80,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 81 Titanium'), +(@GUID1+81,@POOL+81,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 82 Saronite'), +(@GUID2+81,@POOL+81,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 82 Rich Saronite'), +(@GUID3+81,@POOL+81,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 82 Titanium'), +(@GUID1+82,@POOL+82,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 83 Saronite'), +(@GUID2+82,@POOL+82,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 83 Rich Saronite'), +(@GUID3+82,@POOL+82,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 83 Titanium'), +(@GUID1+83,@POOL+83,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 84 Saronite'), +(@GUID2+83,@POOL+83,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 84 Rich Saronite'), +(@GUID3+83,@POOL+83,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 84 Titanium'), +(@GUID1+84,@POOL+84,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 85 Saronite'), +(@GUID2+84,@POOL+84,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 85 Rich Saronite'), +(@GUID3+84,@POOL+84,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 85 Titanium'), +(@GUID1+85,@POOL+85,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 86 Saronite'), +(@GUID2+85,@POOL+85,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 86 Rich Saronite'), +(@GUID3+85,@POOL+85,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 86 Titanium'), +(@GUID1+86,@POOL+86,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 87 Saronite'), +(@GUID2+86,@POOL+86,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 87 Rich Saronite'), +(@GUID3+86,@POOL+86,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 87 Titanium'), +(@GUID1+87,@POOL+87,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 88 Saronite'), +(@GUID2+87,@POOL+87,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 88 Rich Saronite'), +(@GUID3+87,@POOL+87,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 88 Titanium'), +(@GUID1+88,@POOL+88,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 89 Saronite'), +(@GUID2+88,@POOL+88,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 89 Rich Saronite'), +(@GUID3+88,@POOL+88,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 89 Titanium'), +(@GUID1+89,@POOL+89,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 90 Saronite'), +(@GUID2+89,@POOL+89,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 90 Rich Saronite'), +(@GUID3+89,@POOL+89,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 90 Titanium'), +(@GUID1+90,@POOL+90,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 91 Saronite'), +(@GUID2+90,@POOL+90,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 91 Rich Saronite'), +(@GUID3+90,@POOL+90,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 91 Titanium'), +(@GUID1+91,@POOL+91,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 92 Saronite'), +(@GUID2+91,@POOL+91,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 92 Rich Saronite'), +(@GUID3+91,@POOL+91,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 92 Titanium'), +(@GUID1+92,@POOL+92,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 93 Saronite'), +(@GUID2+92,@POOL+92,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 93 Rich Saronite'), +(@GUID3+92,@POOL+92,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 93 Titanium'), +(@GUID1+93,@POOL+93,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 94 Saronite'), +(@GUID2+93,@POOL+93,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 94 Rich Saronite'), +(@GUID3+93,@POOL+93,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 94 Titanium'), +(@GUID1+94,@POOL+94,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 95 Saronite'), +(@GUID2+94,@POOL+94,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 95 Rich Saronite'), +(@GUID3+94,@POOL+94,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 95 Titanium'), +(@GUID1+95,@POOL+95,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 96 Saronite'), +(@GUID2+95,@POOL+95,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 96 Rich Saronite'), +(@GUID3+95,@POOL+95,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 96 Titanium'), +(@GUID1+96,@POOL+96,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 97 Saronite'), +(@GUID2+96,@POOL+96,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 97 Rich Saronite'), +(@GUID3+96,@POOL+96,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 97 Titanium'), +(@GUID1+97,@POOL+97,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 98 Saronite'), +(@GUID2+97,@POOL+97,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 98 Rich Saronite'), +(@GUID3+97,@POOL+97,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 98 Titanium'), +(@GUID1+98,@POOL+98,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 99 Saronite'), +(@GUID2+98,@POOL+98,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 99 Rich Saronite'), +(@GUID3+98,@POOL+98,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 99 Titanium'), +(@GUID1+99,@POOL+99,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 100 Saronite'), +(@GUID2+99,@POOL+99,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 100 Rich Saronite'), +(@GUID3+99,@POOL+99,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 100 Titanium'), +(@GUID1+100,@POOL+100,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 101 Saronite'), +(@GUID2+100,@POOL+100,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 101 Rich Saronite'), +(@GUID3+100,@POOL+100,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 101 Titanium'), +(@GUID1+101,@POOL+101,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 102 Saronite'), +(@GUID2+101,@POOL+101,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 102 Rich Saronite'), +(@GUID3+101,@POOL+101,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 102 Titanium'), +(@GUID1+102,@POOL+102,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 103 Saronite'), +(@GUID2+102,@POOL+102,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 103 Rich Saronite'), +(@GUID3+102,@POOL+102,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 103 Titanium'), +(@GUID1+103,@POOL+103,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 104 Saronite'), +(@GUID2+103,@POOL+103,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 104 Rich Saronite'), +(@GUID3+103,@POOL+103,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 104 Titanium'), +(@GUID1+104,@POOL+104,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 105 Saronite'), +(@GUID2+104,@POOL+104,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 105 Rich Saronite'), +(@GUID3+104,@POOL+104,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 105 Titanium'), +(@GUID1+105,@POOL+105,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 106 Saronite'), +(@GUID2+105,@POOL+105,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 106 Rich Saronite'), +(@GUID3+105,@POOL+105,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 106 Titanium'), +(@GUID1+106,@POOL+106,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 107 Saronite'), +(@GUID2+106,@POOL+106,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 107 Rich Saronite'), +(@GUID3+106,@POOL+106,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 107 Titanium'), +(@GUID1+107,@POOL+107,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 108 Saronite'), +(@GUID2+107,@POOL+107,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 108 Rich Saronite'), +(@GUID3+107,@POOL+107,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 108 Titanium'), +(@GUID1+108,@POOL+108,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 109 Saronite'), +(@GUID2+108,@POOL+108,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 109 Rich Saronite'), +(@GUID3+108,@POOL+108,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 109 Titanium'), +(@GUID1+109,@POOL+109,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 110 Saronite'), +(@GUID2+109,@POOL+109,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 110 Rich Saronite'), +(@GUID3+109,@POOL+109,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 110 Titanium'), +(@GUID1+110,@POOL+110,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 111 Saronite'), +(@GUID2+110,@POOL+110,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 111 Rich Saronite'), +(@GUID3+110,@POOL+110,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 111 Titanium'), +(@GUID1+111,@POOL+111,@CHANCE1, 'Sholazar Basin Ore Spawnpoint 112 Saronite'), +(@GUID2+111,@POOL+111,@CHANCE2, 'Sholazar Basin Ore Spawnpoint 112 Rich Saronite'), +(@GUID3+111,@POOL+111,@CHANCE3, 'Sholazar Basin Ore Spawnpoint 112 Titanium'); +-- Add each pool to pool template +DELETE FROM `pool_template` WHERE `entry` BETWEEN @POOL AND @POOL+@LASTGUID; +INSERT INTO `pool_template` (`entry`,`max_limit`,`description`) VALUES +(@POOL+0,1, 'Sholazar Basin Ore Spawnpoint 1'), +(@POOL+1,1, 'Sholazar Basin Ore Spawnpoint 2'), +(@POOL+2,1, 'Sholazar Basin Ore Spawnpoint 3'), +(@POOL+3,1, 'Sholazar Basin Ore Spawnpoint 4'), +(@POOL+4,1, 'Sholazar Basin Ore Spawnpoint 5'), +(@POOL+5,1, 'Sholazar Basin Ore Spawnpoint 6'), +(@POOL+6,1, 'Sholazar Basin Ore Spawnpoint 7'), +(@POOL+7,1, 'Sholazar Basin Ore Spawnpoint 8'), +(@POOL+8,1, 'Sholazar Basin Ore Spawnpoint 9'), +(@POOL+9,1, 'Sholazar Basin Ore Spawnpoint 10'), +(@POOL+10,1, 'Sholazar Basin Ore Spawnpoint 11'), +(@POOL+11,1, 'Sholazar Basin Ore Spawnpoint 12'), +(@POOL+12,1, 'Sholazar Basin Ore Spawnpoint 13'), +(@POOL+13,1, 'Sholazar Basin Ore Spawnpoint 14'), +(@POOL+14,1, 'Sholazar Basin Ore Spawnpoint 15'), +(@POOL+15,1, 'Sholazar Basin Ore Spawnpoint 16'), +(@POOL+16,1, 'Sholazar Basin Ore Spawnpoint 17'), +(@POOL+17,1, 'Sholazar Basin Ore Spawnpoint 18'), +(@POOL+18,1, 'Sholazar Basin Ore Spawnpoint 19'), +(@POOL+19,1, 'Sholazar Basin Ore Spawnpoint 20'), +(@POOL+20,1, 'Sholazar Basin Ore Spawnpoint 21'), +(@POOL+21,1, 'Sholazar Basin Ore Spawnpoint 22'), +(@POOL+22,1, 'Sholazar Basin Ore Spawnpoint 23'), +(@POOL+23,1, 'Sholazar Basin Ore Spawnpoint 24'), +(@POOL+24,1, 'Sholazar Basin Ore Spawnpoint 25'), +(@POOL+25,1, 'Sholazar Basin Ore Spawnpoint 26'), +(@POOL+26,1, 'Sholazar Basin Ore Spawnpoint 27'), +(@POOL+27,1, 'Sholazar Basin Ore Spawnpoint 28'), +(@POOL+28,1, 'Sholazar Basin Ore Spawnpoint 29'), +(@POOL+29,1, 'Sholazar Basin Ore Spawnpoint 30'), +(@POOL+30,1, 'Sholazar Basin Ore Spawnpoint 31'), +(@POOL+31,1, 'Sholazar Basin Ore Spawnpoint 32'), +(@POOL+32,1, 'Sholazar Basin Ore Spawnpoint 33'), +(@POOL+33,1, 'Sholazar Basin Ore Spawnpoint 34'), +(@POOL+34,1, 'Sholazar Basin Ore Spawnpoint 35'), +(@POOL+35,1, 'Sholazar Basin Ore Spawnpoint 36'), +(@POOL+36,1, 'Sholazar Basin Ore Spawnpoint 37'), +(@POOL+37,1, 'Sholazar Basin Ore Spawnpoint 38'), +(@POOL+38,1, 'Sholazar Basin Ore Spawnpoint 39'), +(@POOL+39,1, 'Sholazar Basin Ore Spawnpoint 40'), +(@POOL+40,1, 'Sholazar Basin Ore Spawnpoint 41'), +(@POOL+41,1, 'Sholazar Basin Ore Spawnpoint 42'), +(@POOL+42,1, 'Sholazar Basin Ore Spawnpoint 43'), +(@POOL+43,1, 'Sholazar Basin Ore Spawnpoint 44'), +(@POOL+44,1, 'Sholazar Basin Ore Spawnpoint 45'), +(@POOL+45,1, 'Sholazar Basin Ore Spawnpoint 46'), +(@POOL+46,1, 'Sholazar Basin Ore Spawnpoint 47'), +(@POOL+47,1, 'Sholazar Basin Ore Spawnpoint 48'), +(@POOL+48,1, 'Sholazar Basin Ore Spawnpoint 49'), +(@POOL+49,1, 'Sholazar Basin Ore Spawnpoint 50'), +(@POOL+50,1, 'Sholazar Basin Ore Spawnpoint 51'), +(@POOL+51,1, 'Sholazar Basin Ore Spawnpoint 52'), +(@POOL+52,1, 'Sholazar Basin Ore Spawnpoint 53'), +(@POOL+53,1, 'Sholazar Basin Ore Spawnpoint 54'), +(@POOL+54,1, 'Sholazar Basin Ore Spawnpoint 55'), +(@POOL+55,1, 'Sholazar Basin Ore Spawnpoint 56'), +(@POOL+56,1, 'Sholazar Basin Ore Spawnpoint 57'), +(@POOL+57,1, 'Sholazar Basin Ore Spawnpoint 58'), +(@POOL+58,1, 'Sholazar Basin Ore Spawnpoint 59'), +(@POOL+59,1, 'Sholazar Basin Ore Spawnpoint 60'), +(@POOL+60,1, 'Sholazar Basin Ore Spawnpoint 61'), +(@POOL+61,1, 'Sholazar Basin Ore Spawnpoint 62'), +(@POOL+62,1, 'Sholazar Basin Ore Spawnpoint 63'), +(@POOL+63,1, 'Sholazar Basin Ore Spawnpoint 64'), +(@POOL+64,1, 'Sholazar Basin Ore Spawnpoint 65'), +(@POOL+65,1, 'Sholazar Basin Ore Spawnpoint 66'), +(@POOL+66,1, 'Sholazar Basin Ore Spawnpoint 67'), +(@POOL+67,1, 'Sholazar Basin Ore Spawnpoint 68'), +(@POOL+68,1, 'Sholazar Basin Ore Spawnpoint 69'), +(@POOL+69,1, 'Sholazar Basin Ore Spawnpoint 70'), +(@POOL+70,1, 'Sholazar Basin Ore Spawnpoint 71'), +(@POOL+71,1, 'Sholazar Basin Ore Spawnpoint 72'), +(@POOL+72,1, 'Sholazar Basin Ore Spawnpoint 73'), +(@POOL+73,1, 'Sholazar Basin Ore Spawnpoint 74'), +(@POOL+74,1, 'Sholazar Basin Ore Spawnpoint 75'), +(@POOL+75,1, 'Sholazar Basin Ore Spawnpoint 76'), +(@POOL+76,1, 'Sholazar Basin Ore Spawnpoint 77'), +(@POOL+77,1, 'Sholazar Basin Ore Spawnpoint 78'), +(@POOL+78,1, 'Sholazar Basin Ore Spawnpoint 79'), +(@POOL+79,1, 'Sholazar Basin Ore Spawnpoint 80'), +(@POOL+80,1, 'Sholazar Basin Ore Spawnpoint 81'), +(@POOL+81,1, 'Sholazar Basin Ore Spawnpoint 82'), +(@POOL+82,1, 'Sholazar Basin Ore Spawnpoint 83'), +(@POOL+83,1, 'Sholazar Basin Ore Spawnpoint 84'), +(@POOL+84,1, 'Sholazar Basin Ore Spawnpoint 85'), +(@POOL+85,1, 'Sholazar Basin Ore Spawnpoint 86'), +(@POOL+86,1, 'Sholazar Basin Ore Spawnpoint 87'), +(@POOL+87,1, 'Sholazar Basin Ore Spawnpoint 88'), +(@POOL+88,1, 'Sholazar Basin Ore Spawnpoint 89'), +(@POOL+89,1, 'Sholazar Basin Ore Spawnpoint 90'), +(@POOL+90,1, 'Sholazar Basin Ore Spawnpoint 91'), +(@POOL+91,1, 'Sholazar Basin Ore Spawnpoint 92'), +(@POOL+92,1, 'Sholazar Basin Ore Spawnpoint 93'), +(@POOL+93,1, 'Sholazar Basin Ore Spawnpoint 94'), +(@POOL+94,1, 'Sholazar Basin Ore Spawnpoint 95'), +(@POOL+95,1, 'Sholazar Basin Ore Spawnpoint 96'), +(@POOL+96,1, 'Sholazar Basin Ore Spawnpoint 97'), +(@POOL+97,1, 'Sholazar Basin Ore Spawnpoint 98'), +(@POOL+98,1, 'Sholazar Basin Ore Spawnpoint 99'), +(@POOL+99,1, 'Sholazar Basin Ore Spawnpoint 100'), +(@POOL+100,1, 'Sholazar Basin Ore Spawnpoint 101'), +(@POOL+101,1, 'Sholazar Basin Ore Spawnpoint 102'), +(@POOL+102,1, 'Sholazar Basin Ore Spawnpoint 103'), +(@POOL+103,1, 'Sholazar Basin Ore Spawnpoint 104'), +(@POOL+104,1, 'Sholazar Basin Ore Spawnpoint 105'), +(@POOL+105,1, 'Sholazar Basin Ore Spawnpoint 106'), +(@POOL+106,1, 'Sholazar Basin Ore Spawnpoint 107'), +(@POOL+107,1, 'Sholazar Basin Ore Spawnpoint 108'), +(@POOL+108,1, 'Sholazar Basin Ore Spawnpoint 109'), +(@POOL+109,1, 'Sholazar Basin Ore Spawnpoint 110'), +(@POOL+110,1, 'Sholazar Basin Ore Spawnpoint 111'), +(@POOL+111,1, 'Sholazar Basin Ore Spawnpoint 112'); +-- Add mother pool to pool template +DELETE FROM `pool_template` WHERE `entry`=@MOTHER; +INSERT INTO `pool_template` (`entry`,`max_limit`,`description`) VALUES +(@MOTHER,@ACTIVE, 'Sholazar Basin Ore Mother pool'); +-- Add each pool to pool_pool +DELETE FROM `pool_pool` WHERE `pool_id` BETWEEN @POOL AND @POOL+@LASTGUID; +INSERT INTO `pool_pool` (`pool_id`,`mother_pool`,`chance`,`description`) VALUES +(@POOL+0,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 1'), +(@POOL+1,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 2'), +(@POOL+2,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 3'), +(@POOL+3,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 4'), +(@POOL+4,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 5'), +(@POOL+5,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 6'), +(@POOL+6,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 7'), +(@POOL+7,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 8'), +(@POOL+8,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 9'), +(@POOL+9,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 10'), +(@POOL+10,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 11'), +(@POOL+11,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 12'), +(@POOL+12,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 13'), +(@POOL+13,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 14'), +(@POOL+14,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 15'), +(@POOL+15,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 16'), +(@POOL+16,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 17'), +(@POOL+17,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 18'), +(@POOL+18,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 19'), +(@POOL+19,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 20'), +(@POOL+20,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 21'), +(@POOL+21,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 22'), +(@POOL+22,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 23'), +(@POOL+23,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 24'), +(@POOL+24,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 25'), +(@POOL+25,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 26'), +(@POOL+26,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 27'), +(@POOL+27,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 28'), +(@POOL+28,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 29'), +(@POOL+29,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 30'), +(@POOL+30,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 31'), +(@POOL+31,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 32'), +(@POOL+32,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 33'), +(@POOL+33,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 34'), +(@POOL+34,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 35'), +(@POOL+35,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 36'), +(@POOL+36,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 37'), +(@POOL+37,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 38'), +(@POOL+38,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 39'), +(@POOL+39,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 40'), +(@POOL+40,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 41'), +(@POOL+41,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 42'), +(@POOL+42,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 43'), +(@POOL+43,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 44'), +(@POOL+44,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 45'), +(@POOL+45,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 46'), +(@POOL+46,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 47'), +(@POOL+47,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 48'), +(@POOL+48,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 49'), +(@POOL+49,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 50'), +(@POOL+50,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 51'), +(@POOL+51,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 52'), +(@POOL+52,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 53'), +(@POOL+53,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 54'), +(@POOL+54,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 55'), +(@POOL+55,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 56'), +(@POOL+56,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 57'), +(@POOL+57,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 58'), +(@POOL+58,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 59'), +(@POOL+59,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 60'), +(@POOL+60,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 61'), +(@POOL+61,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 62'), +(@POOL+62,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 63'), +(@POOL+63,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 64'), +(@POOL+64,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 65'), +(@POOL+65,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 66'), +(@POOL+66,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 67'), +(@POOL+67,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 68'), +(@POOL+68,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 69'), +(@POOL+69,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 70'), +(@POOL+70,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 71'), +(@POOL+71,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 72'), +(@POOL+72,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 73'), +(@POOL+73,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 74'), +(@POOL+74,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 75'), +(@POOL+75,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 76'), +(@POOL+76,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 77'), +(@POOL+77,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 78'), +(@POOL+78,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 79'), +(@POOL+79,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 80'), +(@POOL+80,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 81'), +(@POOL+81,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 82'), +(@POOL+82,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 83'), +(@POOL+83,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 84'), +(@POOL+84,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 85'), +(@POOL+85,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 86'), +(@POOL+86,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 87'), +(@POOL+87,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 88'), +(@POOL+88,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 89'), +(@POOL+89,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 90'), +(@POOL+90,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 91'), +(@POOL+91,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 92'), +(@POOL+92,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 93'), +(@POOL+93,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 94'), +(@POOL+94,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 95'), +(@POOL+95,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 96'), +(@POOL+96,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 97'), +(@POOL+97,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 98'), +(@POOL+98,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 99'), +(@POOL+99,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 100'), +(@POOL+100,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 101'), +(@POOL+101,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 102'), +(@POOL+102,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 103'), +(@POOL+103,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 104'), +(@POOL+104,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 105'), +(@POOL+105,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 106'), +(@POOL+106,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 107'), +(@POOL+107,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 108'), +(@POOL+108,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 109'), +(@POOL+109,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 110'), +(@POOL+110,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 111'), +(@POOL+111,@MOTHER,0, 'Sholazar Basin Ore Spawnpoint 112'); + +-- -------------------------------------- +-- -- Fixup ore spawns for Storm Peaks -- +-- -------------------------------------- +SET @RANGE := 250; +SET @GUID1 := 162450; +SET @GUID2 := @GUID1 + @RANGE; +SET @GUID3 := @GUID2 + @RANGE; +SET @POOL := 11150; +SET @LASTGUID := 109; +SET @CHANCE1 := 75; +SET @CHANCE2 := 15; +SET @CHANCE3 := 10; +SET @MOTHER := 9906; +SET @MOTHER2 := 9907; +SET @ACTIVE := 35; -- Max number of active spawns +SET @TIMER := 900; -- Respawn timer in seconds +-- Remove Ore spawns from Storm Peaks +DELETE FROM `gameobject` WHERE `id` IN (189978,189979,189980,189981,191133) AND `map`=571 AND `position_y` < -110 AND `position_y` > -3430 AND `position_x` > 6490; +DELETE FROM `gameobject` WHERE `id` IN (189978,189979,189980,189981,191133) AND `map`=571 AND `position_y` < -3430 AND `position_x` > 6980; +DELETE FROM `gameobject` WHERE `id` IN (189978,189979,189980,189981,191133) AND `map`=571 AND `position_y` < -110 AND `position_y` > -1890 AND `position_x` > 6100 AND `position_x` < 6490; +DELETE FROM `gameobject` WHERE `id` IN (189978,189979,189980,189981,191133) AND `map`=571 AND `position_y` < -230 AND `position_y` > -1195 AND `position_x` > 5790 AND `position_x` < 6100; +DELETE FROM `gameobject` WHERE `id` IN (189978,189979,189980,189981,191133) AND `map`=571 AND `position_y` < 225 AND `position_y` > -30 AND `position_x` > 6920 AND `position_x` < 7200; +DELETE FROM `gameobject` WHERE `id` IN (189978,189979,189980,189981,191133) AND `map`=571 AND `position_y` < 225 AND `position_y` > -110 AND `position_x` > 7300; +DELETE FROM `gameobject` WHERE `id` IN (189978,189979,189980,189981,191133) AND `map`=571 AND `position_y` > -4030 AND `position_y` < -2300 AND `position_x` > 6730 AND `position_x` < 6980; +-- Remove old pools +DELETE FROM `pool_gameobject` WHERE `guid` NOT IN (SELECT `guid` FROM `gameobject`); +DELETE FROM `pool_template` WHERE `entry` BETWEEN 5376 AND 5447; +DELETE FROM `pool_template` WHERE `entry`=898; +DELETE FROM `pool_pool` WHERE `pool_id` BETWEEN 5376 AND 5447; +-- Saronite Deposits Storm Peaks +INSERT INTO `gameobject` (`guid`, `id`, `map`, `spawnMask`, `phaseMask`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecs`, `animprogress`, `state`) VALUES +(@GUID1,189980,571,1,1,5973.130,-678.799,384.3029,-1.01229,0,0,0,1,@TIMER,255,1), +(@GUID1+1,189980,571,1,1,5990.065,-1015.166,446.6375,2.19911,0,0,0,1,@TIMER,255,1), +(@GUID1+2,189980,571,1,1,5990.990,-621.435,374.3110,-2.84488,0,0,0,1,@TIMER,255,1), +(@GUID1+3,189980,571,1,1,6344.363,-785.474,408.0191,-1.86750,0,0,0,1,@TIMER,255,1), +(@GUID1+4,189980,571,1,1,6394.662,-876.401,409.3433,1.27409,0,0,0,1,@TIMER,255,1), +(@GUID1+5,189980,571,1,1,6518.710,-1309.900,407.2080,2.21656,0,0,0,1,@TIMER,255,1), +(@GUID1+6,189980,571,1,1,6523.616,-1265.091,405.4821,-1.58825,0,0,0,1,@TIMER,255,1), +(@GUID1+7,189980,571,1,1,6570.893,-1050.817,432.5308,-1.36136,0,0,0,1,@TIMER,255,1), +(@GUID1+8,189980,571,1,1,6570.996,-1230.147,404.3670,1.78023,0,0,0,1,@TIMER,255,1), +(@GUID1+9,189980,571,1,1,6571.000,-1230.150,404.3670,1.78023,0,0,0,1,@TIMER,255,1), +(@GUID1+10,189980,571,1,1,6596.600,-1356.010,410.0870,1.25664,0,0,0,1,@TIMER,255,1), +(@GUID1+11,189980,571,1,1,6600.015,-977.058,430.9555,1.06465,0,0,0,1,@TIMER,255,1), +(@GUID1+12,189980,571,1,1,6646.551,-876.419,685.5173,2.87979,0,0,0,1,@TIMER,255,1), +(@GUID1+13,189980,571,1,1,6657.530,-1251.140,397.5630,-2.70526,0,0,0,1,@TIMER,255,1), +(@GUID1+14,189980,571,1,1,6666.780,-1032.980,413.8020,-0.08727,0,0,0,1,@TIMER,255,1), +(@GUID1+15,189980,571,1,1,6675.330,-1195.820,398.5400,-2.51327,0,0,0,1,@TIMER,255,1), +(@GUID1+16,189980,571,1,1,6677.080,-1207.990,398.8300,-1.90241,0,0,0,1,@TIMER,255,1), +(@GUID1+17,189980,571,1,1,6679.290,-1365.290,392.1810,2.87979,0,0,0,1,@TIMER,255,1), +(@GUID1+18,189980,571,1,1,6688.502,-1112.257,397.3456,-0.76794,0,0,0,1,@TIMER,255,1), +(@GUID1+19,189980,571,1,1,6756.100,-1530.500,369.0680,0.48869,0,0,0,1,@TIMER,255,1), +(@GUID1+20,189980,571,1,1,6799.450,-1602.820,354.4390,1.55334,0,0,0,1,@TIMER,255,1), +(@GUID1+21,189980,571,1,1,6816.010,-1364.550,819.6750,1.46608,0,0,0,1,@TIMER,255,1), +(@GUID1+22,189980,571,1,1,6821.420,-607.278,982.4290,3.10665,0,0,0,1,@TIMER,255,1), +(@GUID1+23,189980,571,1,1,6831.780,-1599.010,352.3690,1.60570,0,0,0,1,@TIMER,255,1), +(@GUID1+24,189980,571,1,1,6836.444,-1338.513,819.7522,-3.07177,0,0,0,1,@TIMER,255,1), +(@GUID1+25,189980,571,1,1,6847.579,-1230.780,806.6544,2.04204,0,0,0,1,@TIMER,255,1), +(@GUID1+26,189980,571,1,1,6866.660,-1725.760,827.2400,2.33874,0,0,0,1,@TIMER,255,1), +(@GUID1+27,189980,571,1,1,6867.097,-3428.810,629.1428,-1.44862,0,0,0,1,@TIMER,255,1), +(@GUID1+28,189980,571,1,1,6879.430,-1237.150,810.2590,1.39626,0,0,0,1,@TIMER,255,1), +(@GUID1+29,189980,571,1,1,6900.310,-1523.000,359.9120,-0.24435,0,0,0,1,@TIMER,255,1), +(@GUID1+30,189980,571,1,1,6927.970,-28.980,805.1720,0.38397,0,0,0,1,@TIMER,255,1), +(@GUID1+31,189980,571,1,1,6961.172,-6.584,809.1790,-2.72271,0,0,0,1,@TIMER,255,1), +(@GUID1+32,189980,571,1,1,6979.510,-658.492,770.4860,-2.94959,0,0,0,1,@TIMER,255,1), +(@GUID1+33,189980,571,1,1,6981.886,-1205.506,810.1734,2.44346,0,0,0,1,@TIMER,255,1), +(@GUID1+34,189980,571,1,1,6983.300,-1221.080,809.7370,2.96704,0,0,0,1,@TIMER,255,1), +(@GUID1+35,189980,571,1,1,6986.340,-1293.410,820.2910,-1.79769,0,0,0,1,@TIMER,255,1), +(@GUID1+36,189980,571,1,1,6994.690,-804.125,736.4880,-2.47837,0,0,0,1,@TIMER,255,1), +(@GUID1+37,189980,571,1,1,6996.860,34.220,810.4850,2.60054,0,0,0,1,@TIMER,255,1), +(@GUID1+38,189980,571,1,1,7002.330,-19.649,811.0490,-1.97222,0,0,0,1,@TIMER,255,1), +(@GUID1+39,189980,571,1,1,7005.420,-367.084,788.1000,-0.83776,0,0,0,1,@TIMER,255,1), +(@GUID1+40,189980,571,1,1,7008.100,-503.726,745.1890,-0.13962,0,0,0,1,@TIMER,255,1), +(@GUID1+41,189980,571,1,1,7010.060,90.342,814.8490,0.34907,0,0,0,1,@TIMER,255,1), +(@GUID1+42,189980,571,1,1,7019.150,-776.146,732.3610,-3.00195,0,0,0,1,@TIMER,255,1), +(@GUID1+43,189980,571,1,1,7019.820,-1357.060,833.0070,-0.68068,0,0,0,1,@TIMER,255,1), +(@GUID1+44,189980,571,1,3,7032.890,-1319.140,820.8290,0.52360,0,0,0,1,@TIMER,255,1), +(@GUID1+45,189980,571,1,1,7051.360,-2016.770,769.8010,-0.78540,0,0,0,1,@TIMER,255,1), +(@GUID1+46,189980,571,1,3,7052.570,-1106.910,934.5030,0.48869,0,0,0,1,@TIMER,255,1), +(@GUID1+47,189980,571,1,1,7075.710,-1920.550,774.8670,0.89012,0,0,0,1,@TIMER,255,1), +(@GUID1+48,189980,571,1,1,7075.710,-1920.546,774.8665,0.89012,0,0,0,1,@TIMER,255,1), +(@GUID1+49,189980,571,1,4,7080.040,-2724.640,756.8140,-2.00713,0,0,0,1,@TIMER,255,1), +(@GUID1+50,189980,571,1,1,7108.708,-390.674,785.4223,-2.60054,0,0,0,1,@TIMER,255,1), +(@GUID1+51,189980,571,1,2,7109.325,-2248.944,760.0534,2.18166,0,0,0,1,@TIMER,255,1), +(@GUID1+52,189980,571,1,1,7110.417,-543.947,739.8368,-0.73304,0,0,0,1,@TIMER,255,1), +(@GUID1+53,189980,571,1,1,7122.950,-1096.950,928.4570,0.61086,0,0,0,1,@TIMER,255,1), +(@GUID1+54,189980,571,1,4,7134.020,-2760.250,786.9060,0.22689,0,0,0,1,@TIMER,255,1), +(@GUID1+55,189980,571,1,8,7142.310,-3636.810,841.7630,2.72271,0,0,0,1,@TIMER,255,1), +(@GUID1+56,189980,571,1,4,7160.350,-2126.890,762.2910,-1.30900,0,0,0,1,@TIMER,255,1), +(@GUID1+57,189980,571,1,1,7169.138,-1110.031,933.9944,2.56563,0,0,0,1,@TIMER,255,1), +(@GUID1+58,189980,571,1,4,7170.760,-2087.910,771.9970,-2.07694,0,0,0,1,@TIMER,255,1), +(@GUID1+59,189980,571,1,1,7171.050,-232.757,808.5810,-0.92502,0,0,0,1,@TIMER,255,1), +(@GUID1+60,189980,571,1,4,7177.672,-2048.255,768.8198,-2.05949,0,0,0,1,@TIMER,255,1), +(@GUID1+61,189980,571,1,1,7187.288,-1305.361,946.4589,0.10472,0,0,0,1,@TIMER,255,1), +(@GUID1+62,189980,571,1,1,7187.840,220.090,793.1120,-2.74016,0,0,0,1,@TIMER,255,1), +(@GUID1+63,189980,571,1,4,7191.417,-2963.443,863.3470,0.71558,0,0,0,1,@TIMER,255,1), +(@GUID1+64,189980,571,1,4,7201.295,-1976.741,771.9154,2.70526,0,0,0,1,@TIMER,255,1), +(@GUID1+65,189980,571,1,8,7216.890,-3691.290,822.2200,1.95477,0,0,0,1,@TIMER,255,1), +(@GUID1+66,189980,571,1,1,7224.430,-993.775,926.9220,-2.53072,0,0,0,1,@TIMER,255,1), +(@GUID1+67,189980,571,1,2,7233.571,-3542.979,834.7737,1.64061,0,0,0,1,@TIMER,255,1), +(@GUID1+68,189980,571,1,1,7247.440,-1258.090,922.4690,0.12217,0,0,0,1,@TIMER,255,1), +(@GUID1+69,189980,571,1,4,7253.561,-2213.503,765.6185,0.20944,0,0,0,1,@TIMER,255,1), +(@GUID1+70,189980,571,1,3,7263.250,-2858.310,784.9630,3.05433,0,0,0,1,@TIMER,255,1), +(@GUID1+71,189980,571,1,1,7290.680,-158.387,791.6990,0.97738,0,0,0,1,@TIMER,255,1), +(@GUID1+72,189980,571,1,1,7301.970,-1076.270,922.8330,2.77507,0,0,0,1,@TIMER,255,1), +(@GUID1+73,189980,571,1,4,7308.590,-2918.880,829.2740,2.18166,0,0,0,1,@TIMER,255,1), +(@GUID1+74,189980,571,1,4,7310.649,-2244.919,759.6533,2.79252,0,0,0,1,@TIMER,255,1), +(@GUID1+75,189980,571,1,8,7343.630,-3631.950,827.0680,2.86233,0,0,0,1,@TIMER,255,1), +(@GUID1+76,189980,571,1,4,7375.280,-2741.830,755.0170,1.23918,0,0,0,1,@TIMER,255,1), +(@GUID1+77,189980,571,1,1,7402.413,-2801.713,771.3893,2.68781,0,0,0,1,@TIMER,255,1), +(@GUID1+78,189980,571,1,4,7407.630,-3292.640,865.9170,1.25664,0,0,0,1,@TIMER,255,1), +(@GUID1+79,189980,571,1,1,7425.510,-124.863,794.2450,-1.06465,0,0,0,1,@TIMER,255,1), +(@GUID1+80,189980,571,1,4,7440.669,-2350.947,758.8542,-2.58308,0,0,0,1,@TIMER,255,1), +(@GUID1+81,189980,571,1,2,7471.304,-2436.701,759.9119,-2.72271,0,0,0,1,@TIMER,255,1), +(@GUID1+82,189980,571,1,1,7610.480,-1368.060,958.4000,-1.50098,0,0,0,1,@TIMER,255,1), +(@GUID1+83,189980,571,1,1,7705.490,-3346.280,889.6080,-0.06981,0,0,0,1,@TIMER,255,1), +(@GUID1+84,189980,571,1,1,7751.970,-268.932,919.1180,-2.19912,0,0,0,1,@TIMER,255,1), +(@GUID1+85,189980,571,1,1,7776.040,-3094.280,917.4480,0.97738,0,0,0,1,@TIMER,255,1), +(@GUID1+86,189980,571,1,1,7808.350,-82.079,880.2680,1.55334,0,0,0,1,@TIMER,255,1), +(@GUID1+87,189980,571,1,1,7828.840,-115.694,886.1690,-1.25664,0,0,0,1,@TIMER,255,1), +(@GUID1+88,189980,571,1,1,7854.360,49.873,1010.9600,2.02458,0,0,0,1,@TIMER,255,1), +(@GUID1+89,189980,571,1,1,7908.766,124.441,1030.6354,-0.75049,0,0,0,1,@TIMER,255,1), +(@GUID1+90,189980,571,1,1,7923.454,-2642.304,1139.8401,0.41888,0,0,0,1,@TIMER,255,1), +(@GUID1+91,189980,571,1,1,8016.460,-2395.760,1161.8300,-0.66322,0,0,0,1,@TIMER,255,1), +(@GUID1+92,189980,571,1,1,8069.040,-2777.400,1050.3100,-1.23918,0,0,0,1,@TIMER,255,1), +(@GUID1+93,189980,571,1,1,8106.100,-2241.150,1167.3900,-0.34907,0,0,0,1,@TIMER,255,1), +(@GUID1+94,189980,571,1,1,8125.980,-218.974,848.5040,-1.09956,0,0,0,1,@TIMER,255,1), +(@GUID1+95,189980,571,1,3,8126.960,-1265.300,1018.4300,-0.99484,0,0,0,1,@TIMER,255,1), +(@GUID1+96,189980,571,1,1,8136.270,-286.253,867.3590,2.37364,0,0,0,1,@TIMER,255,1), +(@GUID1+97,189980,571,1,1,8153.250,-392.846,1020.5000,-2.94959,0,0,0,1,@TIMER,255,1), +(@GUID1+98,189980,571,1,1,8182.390,-729.494,929.5760,1.34390,0,0,0,1,@TIMER,255,1), +(@GUID1+99,189980,571,1,1,8184.400,-2399.480,1139.6400,-0.69813,0,0,0,1,@TIMER,255,1), +(@GUID1+100,189980,571,1,1,8191.020,-2794.480,1044.1400,-2.75761,0,0,0,1,@TIMER,255,1), +(@GUID1+101,189980,571,1,1,8196.150,-2734.560,1036.6200,-2.84488,0,0,0,1,@TIMER,255,1), +(@GUID1+102,189980,571,1,1,8223.970,-674.648,933.0660,2.26892,0,0,0,1,@TIMER,255,1), +(@GUID1+103,189980,571,1,1,8239.630,-2988.430,1087.3600,0.73304,0,0,0,1,@TIMER,255,1), +(@GUID1+104,189980,571,1,1,8286.560,-212.827,889.2710,0.76794,0,0,0,1,@TIMER,255,1), +(@GUID1+105,189980,571,1,1,8292.716,-2688.017,1036.6243,2.96704,0,0,0,1,@TIMER,255,1), +(@GUID1+106,189980,571,1,1,8297.316,-1323.155,989.2230,3.10665,0,0,0,1,@TIMER,255,1), +(@GUID1+107,189980,571,1,1,8443.600,-1578.120,1038.2500,0.15708,0,0,0,1,@TIMER,255,1), +(@GUID1+108,189980,571,1,1,8569.773,-1292.149,544.9063,1.43117,0,0,0,1,@TIMER,255,1), +(@GUID1+109,189980,571,1,1,8636.965,-1181.421,539.1292,-1.32645,0,0,0,1,@TIMER,255,1); +-- Rich Saronite Deposits Storm Peaks +INSERT INTO `gameobject` (`guid`, `id`, `map`, `spawnMask`, `phaseMask`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecs`, `animprogress`, `state`) VALUES +(@GUID2,189981,571,1,1,5973.130,-678.799,384.3029,-1.01229,0,0,0,1,@TIMER,255,1), +(@GUID2+1,189981,571,1,1,5990.065,-1015.166,446.6375,2.19911,0,0,0,1,@TIMER,255,1), +(@GUID2+2,189981,571,1,1,5990.990,-621.435,374.3110,-2.84488,0,0,0,1,@TIMER,255,1), +(@GUID2+3,189981,571,1,1,6344.363,-785.474,408.0191,-1.86750,0,0,0,1,@TIMER,255,1), +(@GUID2+4,189981,571,1,1,6394.662,-876.401,409.3433,1.27409,0,0,0,1,@TIMER,255,1), +(@GUID2+5,189981,571,1,1,6518.710,-1309.900,407.2080,2.21656,0,0,0,1,@TIMER,255,1), +(@GUID2+6,189981,571,1,1,6523.616,-1265.091,405.4821,-1.58825,0,0,0,1,@TIMER,255,1), +(@GUID2+7,189981,571,1,1,6570.893,-1050.817,432.5308,-1.36136,0,0,0,1,@TIMER,255,1), +(@GUID2+8,189981,571,1,1,6570.996,-1230.147,404.3670,1.78023,0,0,0,1,@TIMER,255,1), +(@GUID2+9,189981,571,1,1,6571.000,-1230.150,404.3670,1.78023,0,0,0,1,@TIMER,255,1), +(@GUID2+10,189981,571,1,1,6596.600,-1356.010,410.0870,1.25664,0,0,0,1,@TIMER,255,1), +(@GUID2+11,189981,571,1,1,6600.015,-977.058,430.9555,1.06465,0,0,0,1,@TIMER,255,1), +(@GUID2+12,189981,571,1,1,6646.551,-876.419,685.5173,2.87979,0,0,0,1,@TIMER,255,1), +(@GUID2+13,189981,571,1,1,6657.530,-1251.140,397.5630,-2.70526,0,0,0,1,@TIMER,255,1), +(@GUID2+14,189981,571,1,1,6666.780,-1032.980,413.8020,-0.08727,0,0,0,1,@TIMER,255,1), +(@GUID2+15,189981,571,1,1,6675.330,-1195.820,398.5400,-2.51327,0,0,0,1,@TIMER,255,1), +(@GUID2+16,189981,571,1,1,6677.080,-1207.990,398.8300,-1.90241,0,0,0,1,@TIMER,255,1), +(@GUID2+17,189981,571,1,1,6679.290,-1365.290,392.1810,2.87979,0,0,0,1,@TIMER,255,1), +(@GUID2+18,189981,571,1,1,6688.502,-1112.257,397.3456,-0.76794,0,0,0,1,@TIMER,255,1), +(@GUID2+19,189981,571,1,1,6756.100,-1530.500,369.0680,0.48869,0,0,0,1,@TIMER,255,1), +(@GUID2+20,189981,571,1,1,6799.450,-1602.820,354.4390,1.55334,0,0,0,1,@TIMER,255,1), +(@GUID2+21,189981,571,1,1,6816.010,-1364.550,819.6750,1.46608,0,0,0,1,@TIMER,255,1), +(@GUID2+22,189981,571,1,1,6821.420,-607.278,982.4290,3.10665,0,0,0,1,@TIMER,255,1), +(@GUID2+23,189981,571,1,1,6831.780,-1599.010,352.3690,1.60570,0,0,0,1,@TIMER,255,1), +(@GUID2+24,189981,571,1,1,6836.444,-1338.513,819.7522,-3.07177,0,0,0,1,@TIMER,255,1), +(@GUID2+25,189981,571,1,1,6847.579,-1230.780,806.6544,2.04204,0,0,0,1,@TIMER,255,1), +(@GUID2+26,189981,571,1,1,6866.660,-1725.760,827.2400,2.33874,0,0,0,1,@TIMER,255,1), +(@GUID2+27,189981,571,1,1,6867.097,-3428.810,629.1428,-1.44862,0,0,0,1,@TIMER,255,1), +(@GUID2+28,189981,571,1,1,6879.430,-1237.150,810.2590,1.39626,0,0,0,1,@TIMER,255,1), +(@GUID2+29,189981,571,1,1,6900.310,-1523.000,359.9120,-0.24435,0,0,0,1,@TIMER,255,1), +(@GUID2+30,189981,571,1,1,6927.970,-28.980,805.1720,0.38397,0,0,0,1,@TIMER,255,1), +(@GUID2+31,189981,571,1,1,6961.172,-6.584,809.1790,-2.72271,0,0,0,1,@TIMER,255,1), +(@GUID2+32,189981,571,1,1,6979.510,-658.492,770.4860,-2.94959,0,0,0,1,@TIMER,255,1), +(@GUID2+33,189981,571,1,1,6981.886,-1205.506,810.1734,2.44346,0,0,0,1,@TIMER,255,1), +(@GUID2+34,189981,571,1,1,6983.300,-1221.080,809.7370,2.96704,0,0,0,1,@TIMER,255,1), +(@GUID2+35,189981,571,1,1,6986.340,-1293.410,820.2910,-1.79769,0,0,0,1,@TIMER,255,1), +(@GUID2+36,189981,571,1,1,6994.690,-804.125,736.4880,-2.47837,0,0,0,1,@TIMER,255,1), +(@GUID2+37,189981,571,1,1,6996.860,34.220,810.4850,2.60054,0,0,0,1,@TIMER,255,1), +(@GUID2+38,189981,571,1,1,7002.330,-19.649,811.0490,-1.97222,0,0,0,1,@TIMER,255,1), +(@GUID2+39,189981,571,1,1,7005.420,-367.084,788.1000,-0.83776,0,0,0,1,@TIMER,255,1), +(@GUID2+40,189981,571,1,1,7008.100,-503.726,745.1890,-0.13962,0,0,0,1,@TIMER,255,1), +(@GUID2+41,189981,571,1,1,7010.060,90.342,814.8490,0.34907,0,0,0,1,@TIMER,255,1), +(@GUID2+42,189981,571,1,1,7019.150,-776.146,732.3610,-3.00195,0,0,0,1,@TIMER,255,1), +(@GUID2+43,189981,571,1,1,7019.820,-1357.060,833.0070,-0.68068,0,0,0,1,@TIMER,255,1), +(@GUID2+44,189981,571,1,3,7032.890,-1319.140,820.8290,0.52360,0,0,0,1,@TIMER,255,1), +(@GUID2+45,189981,571,1,1,7051.360,-2016.770,769.8010,-0.78540,0,0,0,1,@TIMER,255,1), +(@GUID2+46,189981,571,1,3,7052.570,-1106.910,934.5030,0.48869,0,0,0,1,@TIMER,255,1), +(@GUID2+47,189981,571,1,1,7075.710,-1920.550,774.8670,0.89012,0,0,0,1,@TIMER,255,1), +(@GUID2+48,189981,571,1,1,7075.710,-1920.546,774.8665,0.89012,0,0,0,1,@TIMER,255,1), +(@GUID2+49,189981,571,1,4,7080.040,-2724.640,756.8140,-2.00713,0,0,0,1,@TIMER,255,1), +(@GUID2+50,189981,571,1,1,7108.708,-390.674,785.4223,-2.60054,0,0,0,1,@TIMER,255,1), +(@GUID2+51,189981,571,1,2,7109.325,-2248.944,760.0534,2.18166,0,0,0,1,@TIMER,255,1), +(@GUID2+52,189981,571,1,1,7110.417,-543.947,739.8368,-0.73304,0,0,0,1,@TIMER,255,1), +(@GUID2+53,189981,571,1,1,7122.950,-1096.950,928.4570,0.61086,0,0,0,1,@TIMER,255,1), +(@GUID2+54,189981,571,1,4,7134.020,-2760.250,786.9060,0.22689,0,0,0,1,@TIMER,255,1), +(@GUID2+55,189981,571,1,8,7142.310,-3636.810,841.7630,2.72271,0,0,0,1,@TIMER,255,1), +(@GUID2+56,189981,571,1,4,7160.350,-2126.890,762.2910,-1.30900,0,0,0,1,@TIMER,255,1), +(@GUID2+57,189981,571,1,1,7169.138,-1110.031,933.9944,2.56563,0,0,0,1,@TIMER,255,1), +(@GUID2+58,189981,571,1,4,7170.760,-2087.910,771.9970,-2.07694,0,0,0,1,@TIMER,255,1), +(@GUID2+59,189981,571,1,1,7171.050,-232.757,808.5810,-0.92502,0,0,0,1,@TIMER,255,1), +(@GUID2+60,189981,571,1,4,7177.672,-2048.255,768.8198,-2.05949,0,0,0,1,@TIMER,255,1), +(@GUID2+61,189981,571,1,1,7187.288,-1305.361,946.4589,0.10472,0,0,0,1,@TIMER,255,1), +(@GUID2+62,189981,571,1,1,7187.840,220.090,793.1120,-2.74016,0,0,0,1,@TIMER,255,1), +(@GUID2+63,189981,571,1,4,7191.417,-2963.443,863.3470,0.71558,0,0,0,1,@TIMER,255,1), +(@GUID2+64,189981,571,1,4,7201.295,-1976.741,771.9154,2.70526,0,0,0,1,@TIMER,255,1), +(@GUID2+65,189981,571,1,8,7216.890,-3691.290,822.2200,1.95477,0,0,0,1,@TIMER,255,1), +(@GUID2+66,189981,571,1,1,7224.430,-993.775,926.9220,-2.53072,0,0,0,1,@TIMER,255,1), +(@GUID2+67,189981,571,1,2,7233.571,-3542.979,834.7737,1.64061,0,0,0,1,@TIMER,255,1), +(@GUID2+68,189981,571,1,1,7247.440,-1258.090,922.4690,0.12217,0,0,0,1,@TIMER,255,1), +(@GUID2+69,189981,571,1,4,7253.561,-2213.503,765.6185,0.20944,0,0,0,1,@TIMER,255,1), +(@GUID2+70,189981,571,1,3,7263.250,-2858.310,784.9630,3.05433,0,0,0,1,@TIMER,255,1), +(@GUID2+71,189981,571,1,1,7290.680,-158.387,791.6990,0.97738,0,0,0,1,@TIMER,255,1), +(@GUID2+72,189981,571,1,1,7301.970,-1076.270,922.8330,2.77507,0,0,0,1,@TIMER,255,1), +(@GUID2+73,189981,571,1,4,7308.590,-2918.880,829.2740,2.18166,0,0,0,1,@TIMER,255,1), +(@GUID2+74,189981,571,1,4,7310.649,-2244.919,759.6533,2.79252,0,0,0,1,@TIMER,255,1), +(@GUID2+75,189981,571,1,8,7343.630,-3631.950,827.0680,2.86233,0,0,0,1,@TIMER,255,1), +(@GUID2+76,189981,571,1,4,7375.280,-2741.830,755.0170,1.23918,0,0,0,1,@TIMER,255,1), +(@GUID2+77,189981,571,1,1,7402.413,-2801.713,771.3893,2.68781,0,0,0,1,@TIMER,255,1), +(@GUID2+78,189981,571,1,4,7407.630,-3292.640,865.9170,1.25664,0,0,0,1,@TIMER,255,1), +(@GUID2+79,189981,571,1,1,7425.510,-124.863,794.2450,-1.06465,0,0,0,1,@TIMER,255,1), +(@GUID2+80,189981,571,1,4,7440.669,-2350.947,758.8542,-2.58308,0,0,0,1,@TIMER,255,1), +(@GUID2+81,189981,571,1,2,7471.304,-2436.701,759.9119,-2.72271,0,0,0,1,@TIMER,255,1), +(@GUID2+82,189981,571,1,1,7610.480,-1368.060,958.4000,-1.50098,0,0,0,1,@TIMER,255,1), +(@GUID2+83,189981,571,1,1,7705.490,-3346.280,889.6080,-0.06981,0,0,0,1,@TIMER,255,1), +(@GUID2+84,189981,571,1,1,7751.970,-268.932,919.1180,-2.19912,0,0,0,1,@TIMER,255,1), +(@GUID2+85,189981,571,1,1,7776.040,-3094.280,917.4480,0.97738,0,0,0,1,@TIMER,255,1), +(@GUID2+86,189981,571,1,1,7808.350,-82.079,880.2680,1.55334,0,0,0,1,@TIMER,255,1), +(@GUID2+87,189981,571,1,1,7828.840,-115.694,886.1690,-1.25664,0,0,0,1,@TIMER,255,1), +(@GUID2+88,189981,571,1,1,7854.360,49.873,1010.9600,2.02458,0,0,0,1,@TIMER,255,1), +(@GUID2+89,189981,571,1,1,7908.766,124.441,1030.6354,-0.75049,0,0,0,1,@TIMER,255,1), +(@GUID2+90,189981,571,1,1,7923.454,-2642.304,1139.8401,0.41888,0,0,0,1,@TIMER,255,1), +(@GUID2+91,189981,571,1,1,8016.460,-2395.760,1161.8300,-0.66322,0,0,0,1,@TIMER,255,1), +(@GUID2+92,189981,571,1,1,8069.040,-2777.400,1050.3100,-1.23918,0,0,0,1,@TIMER,255,1), +(@GUID2+93,189981,571,1,1,8106.100,-2241.150,1167.3900,-0.34907,0,0,0,1,@TIMER,255,1), +(@GUID2+94,189981,571,1,1,8125.980,-218.974,848.5040,-1.09956,0,0,0,1,@TIMER,255,1), +(@GUID2+95,189981,571,1,3,8126.960,-1265.300,1018.4300,-0.99484,0,0,0,1,@TIMER,255,1), +(@GUID2+96,189981,571,1,1,8136.270,-286.253,867.3590,2.37364,0,0,0,1,@TIMER,255,1), +(@GUID2+97,189981,571,1,1,8153.250,-392.846,1020.5000,-2.94959,0,0,0,1,@TIMER,255,1), +(@GUID2+98,189981,571,1,1,8182.390,-729.494,929.5760,1.34390,0,0,0,1,@TIMER,255,1), +(@GUID2+99,189981,571,1,1,8184.400,-2399.480,1139.6400,-0.69813,0,0,0,1,@TIMER,255,1), +(@GUID2+100,189981,571,1,1,8191.020,-2794.480,1044.1400,-2.75761,0,0,0,1,@TIMER,255,1), +(@GUID2+101,189981,571,1,1,8196.150,-2734.560,1036.6200,-2.84488,0,0,0,1,@TIMER,255,1), +(@GUID2+102,189981,571,1,1,8223.970,-674.648,933.0660,2.26892,0,0,0,1,@TIMER,255,1), +(@GUID2+103,189981,571,1,1,8239.630,-2988.430,1087.3600,0.73304,0,0,0,1,@TIMER,255,1), +(@GUID2+104,189981,571,1,1,8286.560,-212.827,889.2710,0.76794,0,0,0,1,@TIMER,255,1), +(@GUID2+105,189981,571,1,1,8292.716,-2688.017,1036.6243,2.96704,0,0,0,1,@TIMER,255,1), +(@GUID2+106,189981,571,1,1,8297.316,-1323.155,989.2230,3.10665,0,0,0,1,@TIMER,255,1), +(@GUID2+107,189981,571,1,1,8443.600,-1578.120,1038.2500,0.15708,0,0,0,1,@TIMER,255,1), +(@GUID2+108,189981,571,1,1,8569.773,-1292.149,544.9063,1.43117,0,0,0,1,@TIMER,255,1), +(@GUID2+109,189981,571,1,1,8636.965,-1181.421,539.1292,-1.32645,0,0,0,1,@TIMER,255,1); +-- Titanium Deposits Storm Peaks +INSERT INTO `gameobject` (`guid`, `id`, `map`, `spawnMask`, `phaseMask`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecs`, `animprogress`, `state`) VALUES +(@GUID3,191133,571,1,1,5973.130,-678.799,384.3029,-1.01229,0,0,0,1,@TIMER,255,1), +(@GUID3+1,191133,571,1,1,5990.065,-1015.166,446.6375,2.19911,0,0,0,1,@TIMER,255,1), +(@GUID3+2,191133,571,1,1,5990.990,-621.435,374.3110,-2.84488,0,0,0,1,@TIMER,255,1), +(@GUID3+3,191133,571,1,1,6344.363,-785.474,408.0191,-1.86750,0,0,0,1,@TIMER,255,1), +(@GUID3+4,191133,571,1,1,6394.662,-876.401,409.3433,1.27409,0,0,0,1,@TIMER,255,1), +(@GUID3+5,191133,571,1,1,6518.710,-1309.900,407.2080,2.21656,0,0,0,1,@TIMER,255,1), +(@GUID3+6,191133,571,1,1,6523.616,-1265.091,405.4821,-1.58825,0,0,0,1,@TIMER,255,1), +(@GUID3+7,191133,571,1,1,6570.893,-1050.817,432.5308,-1.36136,0,0,0,1,@TIMER,255,1), +(@GUID3+8,191133,571,1,1,6570.996,-1230.147,404.3670,1.78023,0,0,0,1,@TIMER,255,1), +(@GUID3+9,191133,571,1,1,6571.000,-1230.150,404.3670,1.78023,0,0,0,1,@TIMER,255,1), +(@GUID3+10,191133,571,1,1,6596.600,-1356.010,410.0870,1.25664,0,0,0,1,@TIMER,255,1), +(@GUID3+11,191133,571,1,1,6600.015,-977.058,430.9555,1.06465,0,0,0,1,@TIMER,255,1), +(@GUID3+12,191133,571,1,1,6646.551,-876.419,685.5173,2.87979,0,0,0,1,@TIMER,255,1), +(@GUID3+13,191133,571,1,1,6657.530,-1251.140,397.5630,-2.70526,0,0,0,1,@TIMER,255,1), +(@GUID3+14,191133,571,1,1,6666.780,-1032.980,413.8020,-0.08727,0,0,0,1,@TIMER,255,1), +(@GUID3+15,191133,571,1,1,6675.330,-1195.820,398.5400,-2.51327,0,0,0,1,@TIMER,255,1), +(@GUID3+16,191133,571,1,1,6677.080,-1207.990,398.8300,-1.90241,0,0,0,1,@TIMER,255,1), +(@GUID3+17,191133,571,1,1,6679.290,-1365.290,392.1810,2.87979,0,0,0,1,@TIMER,255,1), +(@GUID3+18,191133,571,1,1,6688.502,-1112.257,397.3456,-0.76794,0,0,0,1,@TIMER,255,1), +(@GUID3+19,191133,571,1,1,6756.100,-1530.500,369.0680,0.48869,0,0,0,1,@TIMER,255,1), +(@GUID3+20,191133,571,1,1,6799.450,-1602.820,354.4390,1.55334,0,0,0,1,@TIMER,255,1), +(@GUID3+21,191133,571,1,1,6816.010,-1364.550,819.6750,1.46608,0,0,0,1,@TIMER,255,1), +(@GUID3+22,191133,571,1,1,6821.420,-607.278,982.4290,3.10665,0,0,0,1,@TIMER,255,1), +(@GUID3+23,191133,571,1,1,6831.780,-1599.010,352.3690,1.60570,0,0,0,1,@TIMER,255,1), +(@GUID3+24,191133,571,1,1,6836.444,-1338.513,819.7522,-3.07177,0,0,0,1,@TIMER,255,1), +(@GUID3+25,191133,571,1,1,6847.579,-1230.780,806.6544,2.04204,0,0,0,1,@TIMER,255,1), +(@GUID3+26,191133,571,1,1,6866.660,-1725.760,827.2400,2.33874,0,0,0,1,@TIMER,255,1), +(@GUID3+27,191133,571,1,1,6867.097,-3428.810,629.1428,-1.44862,0,0,0,1,@TIMER,255,1), +(@GUID3+28,191133,571,1,1,6879.430,-1237.150,810.2590,1.39626,0,0,0,1,@TIMER,255,1), +(@GUID3+29,191133,571,1,1,6900.310,-1523.000,359.9120,-0.24435,0,0,0,1,@TIMER,255,1), +(@GUID3+30,191133,571,1,1,6927.970,-28.980,805.1720,0.38397,0,0,0,1,@TIMER,255,1), +(@GUID3+31,191133,571,1,1,6961.172,-6.584,809.1790,-2.72271,0,0,0,1,@TIMER,255,1), +(@GUID3+32,191133,571,1,1,6979.510,-658.492,770.4860,-2.94959,0,0,0,1,@TIMER,255,1), +(@GUID3+33,191133,571,1,1,6981.886,-1205.506,810.1734,2.44346,0,0,0,1,@TIMER,255,1), +(@GUID3+34,191133,571,1,1,6983.300,-1221.080,809.7370,2.96704,0,0,0,1,@TIMER,255,1), +(@GUID3+35,191133,571,1,1,6986.340,-1293.410,820.2910,-1.79769,0,0,0,1,@TIMER,255,1), +(@GUID3+36,191133,571,1,1,6994.690,-804.125,736.4880,-2.47837,0,0,0,1,@TIMER,255,1), +(@GUID3+37,191133,571,1,1,6996.860,34.220,810.4850,2.60054,0,0,0,1,@TIMER,255,1), +(@GUID3+38,191133,571,1,1,7002.330,-19.649,811.0490,-1.97222,0,0,0,1,@TIMER,255,1), +(@GUID3+39,191133,571,1,1,7005.420,-367.084,788.1000,-0.83776,0,0,0,1,@TIMER,255,1), +(@GUID3+40,191133,571,1,1,7008.100,-503.726,745.1890,-0.13962,0,0,0,1,@TIMER,255,1), +(@GUID3+41,191133,571,1,1,7010.060,90.342,814.8490,0.34907,0,0,0,1,@TIMER,255,1), +(@GUID3+42,191133,571,1,1,7019.150,-776.146,732.3610,-3.00195,0,0,0,1,@TIMER,255,1), +(@GUID3+43,191133,571,1,1,7019.820,-1357.060,833.0070,-0.68068,0,0,0,1,@TIMER,255,1), +(@GUID3+44,191133,571,1,3,7032.890,-1319.140,820.8290,0.52360,0,0,0,1,@TIMER,255,1), +(@GUID3+45,191133,571,1,1,7051.360,-2016.770,769.8010,-0.78540,0,0,0,1,@TIMER,255,1), +(@GUID3+46,191133,571,1,3,7052.570,-1106.910,934.5030,0.48869,0,0,0,1,@TIMER,255,1), +(@GUID3+47,191133,571,1,1,7075.710,-1920.550,774.8670,0.89012,0,0,0,1,@TIMER,255,1), +(@GUID3+48,191133,571,1,1,7075.710,-1920.546,774.8665,0.89012,0,0,0,1,@TIMER,255,1), +(@GUID3+49,191133,571,1,4,7080.040,-2724.640,756.8140,-2.00713,0,0,0,1,@TIMER,255,1), +(@GUID3+50,191133,571,1,1,7108.708,-390.674,785.4223,-2.60054,0,0,0,1,@TIMER,255,1), +(@GUID3+51,191133,571,1,2,7109.325,-2248.944,760.0534,2.18166,0,0,0,1,@TIMER,255,1), +(@GUID3+52,191133,571,1,1,7110.417,-543.947,739.8368,-0.73304,0,0,0,1,@TIMER,255,1), +(@GUID3+53,191133,571,1,1,7122.950,-1096.950,928.4570,0.61086,0,0,0,1,@TIMER,255,1), +(@GUID3+54,191133,571,1,4,7134.020,-2760.250,786.9060,0.22689,0,0,0,1,@TIMER,255,1), +(@GUID3+55,191133,571,1,8,7142.310,-3636.810,841.7630,2.72271,0,0,0,1,@TIMER,255,1), +(@GUID3+56,191133,571,1,4,7160.350,-2126.890,762.2910,-1.30900,0,0,0,1,@TIMER,255,1), +(@GUID3+57,191133,571,1,1,7169.138,-1110.031,933.9944,2.56563,0,0,0,1,@TIMER,255,1), +(@GUID3+58,191133,571,1,4,7170.760,-2087.910,771.9970,-2.07694,0,0,0,1,@TIMER,255,1), +(@GUID3+59,191133,571,1,1,7171.050,-232.757,808.5810,-0.92502,0,0,0,1,@TIMER,255,1), +(@GUID3+60,191133,571,1,4,7177.672,-2048.255,768.8198,-2.05949,0,0,0,1,@TIMER,255,1), +(@GUID3+61,191133,571,1,1,7187.288,-1305.361,946.4589,0.10472,0,0,0,1,@TIMER,255,1), +(@GUID3+62,191133,571,1,1,7187.840,220.090,793.1120,-2.74016,0,0,0,1,@TIMER,255,1), +(@GUID3+63,191133,571,1,4,7191.417,-2963.443,863.3470,0.71558,0,0,0,1,@TIMER,255,1), +(@GUID3+64,191133,571,1,4,7201.295,-1976.741,771.9154,2.70526,0,0,0,1,@TIMER,255,1), +(@GUID3+65,191133,571,1,8,7216.890,-3691.290,822.2200,1.95477,0,0,0,1,@TIMER,255,1), +(@GUID3+66,191133,571,1,1,7224.430,-993.775,926.9220,-2.53072,0,0,0,1,@TIMER,255,1), +(@GUID3+67,191133,571,1,2,7233.571,-3542.979,834.7737,1.64061,0,0,0,1,@TIMER,255,1), +(@GUID3+68,191133,571,1,1,7247.440,-1258.090,922.4690,0.12217,0,0,0,1,@TIMER,255,1), +(@GUID3+69,191133,571,1,4,7253.561,-2213.503,765.6185,0.20944,0,0,0,1,@TIMER,255,1), +(@GUID3+70,191133,571,1,3,7263.250,-2858.310,784.9630,3.05433,0,0,0,1,@TIMER,255,1), +(@GUID3+71,191133,571,1,1,7290.680,-158.387,791.6990,0.97738,0,0,0,1,@TIMER,255,1), +(@GUID3+72,191133,571,1,1,7301.970,-1076.270,922.8330,2.77507,0,0,0,1,@TIMER,255,1), +(@GUID3+73,191133,571,1,4,7308.590,-2918.880,829.2740,2.18166,0,0,0,1,@TIMER,255,1), +(@GUID3+74,191133,571,1,4,7310.649,-2244.919,759.6533,2.79252,0,0,0,1,@TIMER,255,1), +(@GUID3+75,191133,571,1,8,7343.630,-3631.950,827.0680,2.86233,0,0,0,1,@TIMER,255,1), +(@GUID3+76,191133,571,1,4,7375.280,-2741.830,755.0170,1.23918,0,0,0,1,@TIMER,255,1), +(@GUID3+77,191133,571,1,1,7402.413,-2801.713,771.3893,2.68781,0,0,0,1,@TIMER,255,1), +(@GUID3+78,191133,571,1,4,7407.630,-3292.640,865.9170,1.25664,0,0,0,1,@TIMER,255,1), +(@GUID3+79,191133,571,1,1,7425.510,-124.863,794.2450,-1.06465,0,0,0,1,@TIMER,255,1), +(@GUID3+80,191133,571,1,4,7440.669,-2350.947,758.8542,-2.58308,0,0,0,1,@TIMER,255,1), +(@GUID3+81,191133,571,1,2,7471.304,-2436.701,759.9119,-2.72271,0,0,0,1,@TIMER,255,1), +(@GUID3+82,191133,571,1,1,7610.480,-1368.060,958.4000,-1.50098,0,0,0,1,@TIMER,255,1), +(@GUID3+83,191133,571,1,1,7705.490,-3346.280,889.6080,-0.06981,0,0,0,1,@TIMER,255,1), +(@GUID3+84,191133,571,1,1,7751.970,-268.932,919.1180,-2.19912,0,0,0,1,@TIMER,255,1), +(@GUID3+85,191133,571,1,1,7776.040,-3094.280,917.4480,0.97738,0,0,0,1,@TIMER,255,1), +(@GUID3+86,191133,571,1,1,7808.350,-82.079,880.2680,1.55334,0,0,0,1,@TIMER,255,1), +(@GUID3+87,191133,571,1,1,7828.840,-115.694,886.1690,-1.25664,0,0,0,1,@TIMER,255,1), +(@GUID3+88,191133,571,1,1,7854.360,49.873,1010.9600,2.02458,0,0,0,1,@TIMER,255,1), +(@GUID3+89,191133,571,1,1,7908.766,124.441,1030.6354,-0.75049,0,0,0,1,@TIMER,255,1), +(@GUID3+90,191133,571,1,1,7923.454,-2642.304,1139.8401,0.41888,0,0,0,1,@TIMER,255,1), +(@GUID3+91,191133,571,1,1,8016.460,-2395.760,1161.8300,-0.66322,0,0,0,1,@TIMER,255,1), +(@GUID3+92,191133,571,1,1,8069.040,-2777.400,1050.3100,-1.23918,0,0,0,1,@TIMER,255,1), +(@GUID3+93,191133,571,1,1,8106.100,-2241.150,1167.3900,-0.34907,0,0,0,1,@TIMER,255,1), +(@GUID3+94,191133,571,1,1,8125.980,-218.974,848.5040,-1.09956,0,0,0,1,@TIMER,255,1), +(@GUID3+95,191133,571,1,3,8126.960,-1265.300,1018.4300,-0.99484,0,0,0,1,@TIMER,255,1), +(@GUID3+96,191133,571,1,1,8136.270,-286.253,867.3590,2.37364,0,0,0,1,@TIMER,255,1), +(@GUID3+97,191133,571,1,1,8153.250,-392.846,1020.5000,-2.94959,0,0,0,1,@TIMER,255,1), +(@GUID3+98,191133,571,1,1,8182.390,-729.494,929.5760,1.34390,0,0,0,1,@TIMER,255,1), +(@GUID3+99,191133,571,1,1,8184.400,-2399.480,1139.6400,-0.69813,0,0,0,1,@TIMER,255,1), +(@GUID3+100,191133,571,1,1,8191.020,-2794.480,1044.1400,-2.75761,0,0,0,1,@TIMER,255,1), +(@GUID3+101,191133,571,1,1,8196.150,-2734.560,1036.6200,-2.84488,0,0,0,1,@TIMER,255,1), +(@GUID3+102,191133,571,1,1,8223.970,-674.648,933.0660,2.26892,0,0,0,1,@TIMER,255,1), +(@GUID3+103,191133,571,1,1,8239.630,-2988.430,1087.3600,0.73304,0,0,0,1,@TIMER,255,1), +(@GUID3+104,191133,571,1,1,8286.560,-212.827,889.2710,0.76794,0,0,0,1,@TIMER,255,1), +(@GUID3+105,191133,571,1,1,8292.716,-2688.017,1036.6243,2.96704,0,0,0,1,@TIMER,255,1), +(@GUID3+106,191133,571,1,1,8297.316,-1323.155,989.2230,3.10665,0,0,0,1,@TIMER,255,1), +(@GUID3+107,191133,571,1,1,8443.600,-1578.120,1038.2500,0.15708,0,0,0,1,@TIMER,255,1), +(@GUID3+108,191133,571,1,1,8569.773,-1292.149,544.9063,1.43117,0,0,0,1,@TIMER,255,1), +(@GUID3+109,191133,571,1,1,8636.965,-1181.421,539.1292,-1.32645,0,0,0,1,@TIMER,255,1); +-- Pooling +DELETE FROM `pool_gameobject` WHERE `guid` BETWEEN @GUID1 AND @GUID1+@RANGE; +DELETE FROM `pool_gameobject` WHERE `guid` BETWEEN @GUID2 AND @GUID2+@RANGE; +DELETE FROM `pool_gameobject` WHERE `guid` BETWEEN @GUID3 AND @GUID3+@RANGE; +-- Pool different ore types to each spawnpoint +INSERT INTO `pool_gameobject` (`guid`,`pool_entry`,`chance`,`description`) VALUES +(@GUID1+0,@POOL+0,@CHANCE1, 'Storm Peaks Ore Spawnpoint 1 Saronite'), +(@GUID2+0,@POOL+0,@CHANCE2, 'Storm Peaks Ore Spawnpoint 1 Rich Saronite'), +(@GUID3+0,@POOL+0,@CHANCE3, 'Storm Peaks Ore Spawnpoint 1 Titanium'), +(@GUID1+1,@POOL+1,@CHANCE1, 'Storm Peaks Ore Spawnpoint 2 Saronite'), +(@GUID2+1,@POOL+1,@CHANCE2, 'Storm Peaks Ore Spawnpoint 2 Rich Saronite'), +(@GUID3+1,@POOL+1,@CHANCE3, 'Storm Peaks Ore Spawnpoint 2 Titanium'), +(@GUID1+2,@POOL+2,@CHANCE1, 'Storm Peaks Ore Spawnpoint 3 Saronite'), +(@GUID2+2,@POOL+2,@CHANCE2, 'Storm Peaks Ore Spawnpoint 3 Rich Saronite'), +(@GUID3+2,@POOL+2,@CHANCE3, 'Storm Peaks Ore Spawnpoint 3 Titanium'), +(@GUID1+3,@POOL+3,@CHANCE1, 'Storm Peaks Ore Spawnpoint 4 Saronite'), +(@GUID2+3,@POOL+3,@CHANCE2, 'Storm Peaks Ore Spawnpoint 4 Rich Saronite'), +(@GUID3+3,@POOL+3,@CHANCE3, 'Storm Peaks Ore Spawnpoint 4 Titanium'), +(@GUID1+4,@POOL+4,@CHANCE1, 'Storm Peaks Ore Spawnpoint 5 Saronite'), +(@GUID2+4,@POOL+4,@CHANCE2, 'Storm Peaks Ore Spawnpoint 5 Rich Saronite'), +(@GUID3+4,@POOL+4,@CHANCE3, 'Storm Peaks Ore Spawnpoint 5 Titanium'), +(@GUID1+5,@POOL+5,@CHANCE1, 'Storm Peaks Ore Spawnpoint 6 Saronite'), +(@GUID2+5,@POOL+5,@CHANCE2, 'Storm Peaks Ore Spawnpoint 6 Rich Saronite'), +(@GUID3+5,@POOL+5,@CHANCE3, 'Storm Peaks Ore Spawnpoint 6 Titanium'), +(@GUID1+6,@POOL+6,@CHANCE1, 'Storm Peaks Ore Spawnpoint 7 Saronite'), +(@GUID2+6,@POOL+6,@CHANCE2, 'Storm Peaks Ore Spawnpoint 7 Rich Saronite'), +(@GUID3+6,@POOL+6,@CHANCE3, 'Storm Peaks Ore Spawnpoint 7 Titanium'), +(@GUID1+7,@POOL+7,@CHANCE1, 'Storm Peaks Ore Spawnpoint 8 Saronite'), +(@GUID2+7,@POOL+7,@CHANCE2, 'Storm Peaks Ore Spawnpoint 8 Rich Saronite'), +(@GUID3+7,@POOL+7,@CHANCE3, 'Storm Peaks Ore Spawnpoint 8 Titanium'), +(@GUID1+8,@POOL+8,@CHANCE1, 'Storm Peaks Ore Spawnpoint 9 Saronite'), +(@GUID2+8,@POOL+8,@CHANCE2, 'Storm Peaks Ore Spawnpoint 9 Rich Saronite'), +(@GUID3+8,@POOL+8,@CHANCE3, 'Storm Peaks Ore Spawnpoint 9 Titanium'), +(@GUID1+9,@POOL+9,@CHANCE1, 'Storm Peaks Ore Spawnpoint 10 Saronite'), +(@GUID2+9,@POOL+9,@CHANCE2, 'Storm Peaks Ore Spawnpoint 10 Rich Saronite'), +(@GUID3+9,@POOL+9,@CHANCE3, 'Storm Peaks Ore Spawnpoint 10 Titanium'), +(@GUID1+10,@POOL+10,@CHANCE1, 'Storm Peaks Ore Spawnpoint 11 Saronite'), +(@GUID2+10,@POOL+10,@CHANCE2, 'Storm Peaks Ore Spawnpoint 11 Rich Saronite'), +(@GUID3+10,@POOL+10,@CHANCE3, 'Storm Peaks Ore Spawnpoint 11 Titanium'), +(@GUID1+11,@POOL+11,@CHANCE1, 'Storm Peaks Ore Spawnpoint 12 Saronite'), +(@GUID2+11,@POOL+11,@CHANCE2, 'Storm Peaks Ore Spawnpoint 12 Rich Saronite'), +(@GUID3+11,@POOL+11,@CHANCE3, 'Storm Peaks Ore Spawnpoint 12 Titanium'), +(@GUID1+12,@POOL+12,@CHANCE1, 'Storm Peaks Ore Spawnpoint 13 Saronite'), +(@GUID2+12,@POOL+12,@CHANCE2, 'Storm Peaks Ore Spawnpoint 13 Rich Saronite'), +(@GUID3+12,@POOL+12,@CHANCE3, 'Storm Peaks Ore Spawnpoint 13 Titanium'), +(@GUID1+13,@POOL+13,@CHANCE1, 'Storm Peaks Ore Spawnpoint 14 Saronite'), +(@GUID2+13,@POOL+13,@CHANCE2, 'Storm Peaks Ore Spawnpoint 14 Rich Saronite'), +(@GUID3+13,@POOL+13,@CHANCE3, 'Storm Peaks Ore Spawnpoint 14 Titanium'), +(@GUID1+14,@POOL+14,@CHANCE1, 'Storm Peaks Ore Spawnpoint 15 Saronite'), +(@GUID2+14,@POOL+14,@CHANCE2, 'Storm Peaks Ore Spawnpoint 15 Rich Saronite'), +(@GUID3+14,@POOL+14,@CHANCE3, 'Storm Peaks Ore Spawnpoint 15 Titanium'), +(@GUID1+15,@POOL+15,@CHANCE1, 'Storm Peaks Ore Spawnpoint 16 Saronite'), +(@GUID2+15,@POOL+15,@CHANCE2, 'Storm Peaks Ore Spawnpoint 16 Rich Saronite'), +(@GUID3+15,@POOL+15,@CHANCE3, 'Storm Peaks Ore Spawnpoint 16 Titanium'), +(@GUID1+16,@POOL+16,@CHANCE1, 'Storm Peaks Ore Spawnpoint 17 Saronite'), +(@GUID2+16,@POOL+16,@CHANCE2, 'Storm Peaks Ore Spawnpoint 17 Rich Saronite'), +(@GUID3+16,@POOL+16,@CHANCE3, 'Storm Peaks Ore Spawnpoint 17 Titanium'), +(@GUID1+17,@POOL+17,@CHANCE1, 'Storm Peaks Ore Spawnpoint 18 Saronite'), +(@GUID2+17,@POOL+17,@CHANCE2, 'Storm Peaks Ore Spawnpoint 18 Rich Saronite'), +(@GUID3+17,@POOL+17,@CHANCE3, 'Storm Peaks Ore Spawnpoint 18 Titanium'), +(@GUID1+18,@POOL+18,@CHANCE1, 'Storm Peaks Ore Spawnpoint 19 Saronite'), +(@GUID2+18,@POOL+18,@CHANCE2, 'Storm Peaks Ore Spawnpoint 19 Rich Saronite'), +(@GUID3+18,@POOL+18,@CHANCE3, 'Storm Peaks Ore Spawnpoint 19 Titanium'), +(@GUID1+19,@POOL+19,@CHANCE1, 'Storm Peaks Ore Spawnpoint 20 Saronite'), +(@GUID2+19,@POOL+19,@CHANCE2, 'Storm Peaks Ore Spawnpoint 20 Rich Saronite'), +(@GUID3+19,@POOL+19,@CHANCE3, 'Storm Peaks Ore Spawnpoint 20 Titanium'), +(@GUID1+20,@POOL+20,@CHANCE1, 'Storm Peaks Ore Spawnpoint 21 Saronite'), +(@GUID2+20,@POOL+20,@CHANCE2, 'Storm Peaks Ore Spawnpoint 21 Rich Saronite'), +(@GUID3+20,@POOL+20,@CHANCE3, 'Storm Peaks Ore Spawnpoint 21 Titanium'), +(@GUID1+21,@POOL+21,@CHANCE1, 'Storm Peaks Ore Spawnpoint 22 Saronite'), +(@GUID2+21,@POOL+21,@CHANCE2, 'Storm Peaks Ore Spawnpoint 22 Rich Saronite'), +(@GUID3+21,@POOL+21,@CHANCE3, 'Storm Peaks Ore Spawnpoint 22 Titanium'), +(@GUID1+22,@POOL+22,@CHANCE1, 'Storm Peaks Ore Spawnpoint 23 Saronite'), +(@GUID2+22,@POOL+22,@CHANCE2, 'Storm Peaks Ore Spawnpoint 23 Rich Saronite'), +(@GUID3+22,@POOL+22,@CHANCE3, 'Storm Peaks Ore Spawnpoint 23 Titanium'), +(@GUID1+23,@POOL+23,@CHANCE1, 'Storm Peaks Ore Spawnpoint 24 Saronite'), +(@GUID2+23,@POOL+23,@CHANCE2, 'Storm Peaks Ore Spawnpoint 24 Rich Saronite'), +(@GUID3+23,@POOL+23,@CHANCE3, 'Storm Peaks Ore Spawnpoint 24 Titanium'), +(@GUID1+24,@POOL+24,@CHANCE1, 'Storm Peaks Ore Spawnpoint 25 Saronite'), +(@GUID2+24,@POOL+24,@CHANCE2, 'Storm Peaks Ore Spawnpoint 25 Rich Saronite'), +(@GUID3+24,@POOL+24,@CHANCE3, 'Storm Peaks Ore Spawnpoint 25 Titanium'), +(@GUID1+25,@POOL+25,@CHANCE1, 'Storm Peaks Ore Spawnpoint 26 Saronite'), +(@GUID2+25,@POOL+25,@CHANCE2, 'Storm Peaks Ore Spawnpoint 26 Rich Saronite'), +(@GUID3+25,@POOL+25,@CHANCE3, 'Storm Peaks Ore Spawnpoint 26 Titanium'), +(@GUID1+26,@POOL+26,@CHANCE1, 'Storm Peaks Ore Spawnpoint 27 Saronite'), +(@GUID2+26,@POOL+26,@CHANCE2, 'Storm Peaks Ore Spawnpoint 27 Rich Saronite'), +(@GUID3+26,@POOL+26,@CHANCE3, 'Storm Peaks Ore Spawnpoint 27 Titanium'), +(@GUID1+27,@POOL+27,@CHANCE1, 'Storm Peaks Ore Spawnpoint 28 Saronite'), +(@GUID2+27,@POOL+27,@CHANCE2, 'Storm Peaks Ore Spawnpoint 28 Rich Saronite'), +(@GUID3+27,@POOL+27,@CHANCE3, 'Storm Peaks Ore Spawnpoint 28 Titanium'), +(@GUID1+28,@POOL+28,@CHANCE1, 'Storm Peaks Ore Spawnpoint 29 Saronite'), +(@GUID2+28,@POOL+28,@CHANCE2, 'Storm Peaks Ore Spawnpoint 29 Rich Saronite'), +(@GUID3+28,@POOL+28,@CHANCE3, 'Storm Peaks Ore Spawnpoint 29 Titanium'), +(@GUID1+29,@POOL+29,@CHANCE1, 'Storm Peaks Ore Spawnpoint 30 Saronite'), +(@GUID2+29,@POOL+29,@CHANCE2, 'Storm Peaks Ore Spawnpoint 30 Rich Saronite'), +(@GUID3+29,@POOL+29,@CHANCE3, 'Storm Peaks Ore Spawnpoint 30 Titanium'), +(@GUID1+30,@POOL+30,@CHANCE1, 'Storm Peaks Ore Spawnpoint 31 Saronite'), +(@GUID2+30,@POOL+30,@CHANCE2, 'Storm Peaks Ore Spawnpoint 31 Rich Saronite'), +(@GUID3+30,@POOL+30,@CHANCE3, 'Storm Peaks Ore Spawnpoint 31 Titanium'), +(@GUID1+31,@POOL+31,@CHANCE1, 'Storm Peaks Ore Spawnpoint 32 Saronite'), +(@GUID2+31,@POOL+31,@CHANCE2, 'Storm Peaks Ore Spawnpoint 32 Rich Saronite'), +(@GUID3+31,@POOL+31,@CHANCE3, 'Storm Peaks Ore Spawnpoint 32 Titanium'), +(@GUID1+32,@POOL+32,@CHANCE1, 'Storm Peaks Ore Spawnpoint 33 Saronite'), +(@GUID2+32,@POOL+32,@CHANCE2, 'Storm Peaks Ore Spawnpoint 33 Rich Saronite'), +(@GUID3+32,@POOL+32,@CHANCE3, 'Storm Peaks Ore Spawnpoint 33 Titanium'), +(@GUID1+33,@POOL+33,@CHANCE1, 'Storm Peaks Ore Spawnpoint 34 Saronite'), +(@GUID2+33,@POOL+33,@CHANCE2, 'Storm Peaks Ore Spawnpoint 34 Rich Saronite'), +(@GUID3+33,@POOL+33,@CHANCE3, 'Storm Peaks Ore Spawnpoint 34 Titanium'), +(@GUID1+34,@POOL+34,@CHANCE1, 'Storm Peaks Ore Spawnpoint 35 Saronite'), +(@GUID2+34,@POOL+34,@CHANCE2, 'Storm Peaks Ore Spawnpoint 35 Rich Saronite'), +(@GUID3+34,@POOL+34,@CHANCE3, 'Storm Peaks Ore Spawnpoint 35 Titanium'), +(@GUID1+35,@POOL+35,@CHANCE1, 'Storm Peaks Ore Spawnpoint 36 Saronite'), +(@GUID2+35,@POOL+35,@CHANCE2, 'Storm Peaks Ore Spawnpoint 36 Rich Saronite'), +(@GUID3+35,@POOL+35,@CHANCE3, 'Storm Peaks Ore Spawnpoint 36 Titanium'), +(@GUID1+36,@POOL+36,@CHANCE1, 'Storm Peaks Ore Spawnpoint 37 Saronite'), +(@GUID2+36,@POOL+36,@CHANCE2, 'Storm Peaks Ore Spawnpoint 37 Rich Saronite'), +(@GUID3+36,@POOL+36,@CHANCE3, 'Storm Peaks Ore Spawnpoint 37 Titanium'), +(@GUID1+37,@POOL+37,@CHANCE1, 'Storm Peaks Ore Spawnpoint 38 Saronite'), +(@GUID2+37,@POOL+37,@CHANCE2, 'Storm Peaks Ore Spawnpoint 38 Rich Saronite'), +(@GUID3+37,@POOL+37,@CHANCE3, 'Storm Peaks Ore Spawnpoint 38 Titanium'), +(@GUID1+38,@POOL+38,@CHANCE1, 'Storm Peaks Ore Spawnpoint 39 Saronite'), +(@GUID2+38,@POOL+38,@CHANCE2, 'Storm Peaks Ore Spawnpoint 39 Rich Saronite'), +(@GUID3+38,@POOL+38,@CHANCE3, 'Storm Peaks Ore Spawnpoint 39 Titanium'), +(@GUID1+39,@POOL+39,@CHANCE1, 'Storm Peaks Ore Spawnpoint 40 Saronite'), +(@GUID2+39,@POOL+39,@CHANCE2, 'Storm Peaks Ore Spawnpoint 40 Rich Saronite'), +(@GUID3+39,@POOL+39,@CHANCE3, 'Storm Peaks Ore Spawnpoint 40 Titanium'), +(@GUID1+40,@POOL+40,@CHANCE1, 'Storm Peaks Ore Spawnpoint 41 Saronite'), +(@GUID2+40,@POOL+40,@CHANCE2, 'Storm Peaks Ore Spawnpoint 41 Rich Saronite'), +(@GUID3+40,@POOL+40,@CHANCE3, 'Storm Peaks Ore Spawnpoint 41 Titanium'), +(@GUID1+41,@POOL+41,@CHANCE1, 'Storm Peaks Ore Spawnpoint 42 Saronite'), +(@GUID2+41,@POOL+41,@CHANCE2, 'Storm Peaks Ore Spawnpoint 42 Rich Saronite'), +(@GUID3+41,@POOL+41,@CHANCE3, 'Storm Peaks Ore Spawnpoint 42 Titanium'), +(@GUID1+42,@POOL+42,@CHANCE1, 'Storm Peaks Ore Spawnpoint 43 Saronite'), +(@GUID2+42,@POOL+42,@CHANCE2, 'Storm Peaks Ore Spawnpoint 43 Rich Saronite'), +(@GUID3+42,@POOL+42,@CHANCE3, 'Storm Peaks Ore Spawnpoint 43 Titanium'), +(@GUID1+43,@POOL+43,@CHANCE1, 'Storm Peaks Ore Spawnpoint 44 Saronite'), +(@GUID2+43,@POOL+43,@CHANCE2, 'Storm Peaks Ore Spawnpoint 44 Rich Saronite'), +(@GUID3+43,@POOL+43,@CHANCE3, 'Storm Peaks Ore Spawnpoint 44 Titanium'), +(@GUID1+44,@POOL+44,@CHANCE1, 'Storm Peaks Ore Spawnpoint 45 Saronite'), +(@GUID2+44,@POOL+44,@CHANCE2, 'Storm Peaks Ore Spawnpoint 45 Rich Saronite'), +(@GUID3+44,@POOL+44,@CHANCE3, 'Storm Peaks Ore Spawnpoint 45 Titanium'), +(@GUID1+45,@POOL+45,@CHANCE1, 'Storm Peaks Ore Spawnpoint 46 Saronite'), +(@GUID2+45,@POOL+45,@CHANCE2, 'Storm Peaks Ore Spawnpoint 46 Rich Saronite'), +(@GUID3+45,@POOL+45,@CHANCE3, 'Storm Peaks Ore Spawnpoint 46 Titanium'), +(@GUID1+46,@POOL+46,@CHANCE1, 'Storm Peaks Ore Spawnpoint 47 Saronite'), +(@GUID2+46,@POOL+46,@CHANCE2, 'Storm Peaks Ore Spawnpoint 47 Rich Saronite'), +(@GUID3+46,@POOL+46,@CHANCE3, 'Storm Peaks Ore Spawnpoint 47 Titanium'), +(@GUID1+47,@POOL+47,@CHANCE1, 'Storm Peaks Ore Spawnpoint 48 Saronite'), +(@GUID2+47,@POOL+47,@CHANCE2, 'Storm Peaks Ore Spawnpoint 48 Rich Saronite'), +(@GUID3+47,@POOL+47,@CHANCE3, 'Storm Peaks Ore Spawnpoint 48 Titanium'), +(@GUID1+48,@POOL+48,@CHANCE1, 'Storm Peaks Ore Spawnpoint 49 Saronite'), +(@GUID2+48,@POOL+48,@CHANCE2, 'Storm Peaks Ore Spawnpoint 49 Rich Saronite'), +(@GUID3+48,@POOL+48,@CHANCE3, 'Storm Peaks Ore Spawnpoint 49 Titanium'), +(@GUID1+49,@POOL+49,@CHANCE1, 'Storm Peaks Ore Spawnpoint 50 Saronite'), +(@GUID2+49,@POOL+49,@CHANCE2, 'Storm Peaks Ore Spawnpoint 50 Rich Saronite'), +(@GUID3+49,@POOL+49,@CHANCE3, 'Storm Peaks Ore Spawnpoint 50 Titanium'), +(@GUID1+50,@POOL+50,@CHANCE1, 'Storm Peaks Ore Spawnpoint 51 Saronite'), +(@GUID2+50,@POOL+50,@CHANCE2, 'Storm Peaks Ore Spawnpoint 51 Rich Saronite'), +(@GUID3+50,@POOL+50,@CHANCE3, 'Storm Peaks Ore Spawnpoint 51 Titanium'), +(@GUID1+51,@POOL+51,@CHANCE1, 'Storm Peaks Ore Spawnpoint 52 Saronite'), +(@GUID2+51,@POOL+51,@CHANCE2, 'Storm Peaks Ore Spawnpoint 52 Rich Saronite'), +(@GUID3+51,@POOL+51,@CHANCE3, 'Storm Peaks Ore Spawnpoint 52 Titanium'), +(@GUID1+52,@POOL+52,@CHANCE1, 'Storm Peaks Ore Spawnpoint 53 Saronite'), +(@GUID2+52,@POOL+52,@CHANCE2, 'Storm Peaks Ore Spawnpoint 53 Rich Saronite'), +(@GUID3+52,@POOL+52,@CHANCE3, 'Storm Peaks Ore Spawnpoint 53 Titanium'), +(@GUID1+53,@POOL+53,@CHANCE1, 'Storm Peaks Ore Spawnpoint 54 Saronite'), +(@GUID2+53,@POOL+53,@CHANCE2, 'Storm Peaks Ore Spawnpoint 54 Rich Saronite'), +(@GUID3+53,@POOL+53,@CHANCE3, 'Storm Peaks Ore Spawnpoint 54 Titanium'), +(@GUID1+54,@POOL+54,@CHANCE1, 'Storm Peaks Ore Spawnpoint 55 Saronite'), +(@GUID2+54,@POOL+54,@CHANCE2, 'Storm Peaks Ore Spawnpoint 55 Rich Saronite'), +(@GUID3+54,@POOL+54,@CHANCE3, 'Storm Peaks Ore Spawnpoint 55 Titanium'), +(@GUID1+55,@POOL+55,@CHANCE1, 'Storm Peaks Ore Spawnpoint 56 Saronite'), +(@GUID2+55,@POOL+55,@CHANCE2, 'Storm Peaks Ore Spawnpoint 56 Rich Saronite'), +(@GUID3+55,@POOL+55,@CHANCE3, 'Storm Peaks Ore Spawnpoint 56 Titanium'), +(@GUID1+56,@POOL+56,@CHANCE1, 'Storm Peaks Ore Spawnpoint 57 Saronite'), +(@GUID2+56,@POOL+56,@CHANCE2, 'Storm Peaks Ore Spawnpoint 57 Rich Saronite'), +(@GUID3+56,@POOL+56,@CHANCE3, 'Storm Peaks Ore Spawnpoint 57 Titanium'), +(@GUID1+57,@POOL+57,@CHANCE1, 'Storm Peaks Ore Spawnpoint 58 Saronite'), +(@GUID2+57,@POOL+57,@CHANCE2, 'Storm Peaks Ore Spawnpoint 58 Rich Saronite'), +(@GUID3+57,@POOL+57,@CHANCE3, 'Storm Peaks Ore Spawnpoint 58 Titanium'), +(@GUID1+58,@POOL+58,@CHANCE1, 'Storm Peaks Ore Spawnpoint 59 Saronite'), +(@GUID2+58,@POOL+58,@CHANCE2, 'Storm Peaks Ore Spawnpoint 59 Rich Saronite'), +(@GUID3+58,@POOL+58,@CHANCE3, 'Storm Peaks Ore Spawnpoint 59 Titanium'), +(@GUID1+59,@POOL+59,@CHANCE1, 'Storm Peaks Ore Spawnpoint 60 Saronite'), +(@GUID2+59,@POOL+59,@CHANCE2, 'Storm Peaks Ore Spawnpoint 60 Rich Saronite'), +(@GUID3+59,@POOL+59,@CHANCE3, 'Storm Peaks Ore Spawnpoint 60 Titanium'), +(@GUID1+60,@POOL+60,@CHANCE1, 'Storm Peaks Ore Spawnpoint 61 Saronite'), +(@GUID2+60,@POOL+60,@CHANCE2, 'Storm Peaks Ore Spawnpoint 61 Rich Saronite'), +(@GUID3+60,@POOL+60,@CHANCE3, 'Storm Peaks Ore Spawnpoint 61 Titanium'), +(@GUID1+61,@POOL+61,@CHANCE1, 'Storm Peaks Ore Spawnpoint 62 Saronite'), +(@GUID2+61,@POOL+61,@CHANCE2, 'Storm Peaks Ore Spawnpoint 62 Rich Saronite'), +(@GUID3+61,@POOL+61,@CHANCE3, 'Storm Peaks Ore Spawnpoint 62 Titanium'), +(@GUID1+62,@POOL+62,@CHANCE1, 'Storm Peaks Ore Spawnpoint 63 Saronite'), +(@GUID2+62,@POOL+62,@CHANCE2, 'Storm Peaks Ore Spawnpoint 63 Rich Saronite'), +(@GUID3+62,@POOL+62,@CHANCE3, 'Storm Peaks Ore Spawnpoint 63 Titanium'), +(@GUID1+63,@POOL+63,@CHANCE1, 'Storm Peaks Ore Spawnpoint 64 Saronite'), +(@GUID2+63,@POOL+63,@CHANCE2, 'Storm Peaks Ore Spawnpoint 64 Rich Saronite'), +(@GUID3+63,@POOL+63,@CHANCE3, 'Storm Peaks Ore Spawnpoint 64 Titanium'), +(@GUID1+64,@POOL+64,@CHANCE1, 'Storm Peaks Ore Spawnpoint 65 Saronite'), +(@GUID2+64,@POOL+64,@CHANCE2, 'Storm Peaks Ore Spawnpoint 65 Rich Saronite'), +(@GUID3+64,@POOL+64,@CHANCE3, 'Storm Peaks Ore Spawnpoint 65 Titanium'), +(@GUID1+65,@POOL+65,@CHANCE1, 'Storm Peaks Ore Spawnpoint 66 Saronite'), +(@GUID2+65,@POOL+65,@CHANCE2, 'Storm Peaks Ore Spawnpoint 66 Rich Saronite'), +(@GUID3+65,@POOL+65,@CHANCE3, 'Storm Peaks Ore Spawnpoint 66 Titanium'), +(@GUID1+66,@POOL+66,@CHANCE1, 'Storm Peaks Ore Spawnpoint 67 Saronite'), +(@GUID2+66,@POOL+66,@CHANCE2, 'Storm Peaks Ore Spawnpoint 67 Rich Saronite'), +(@GUID3+66,@POOL+66,@CHANCE3, 'Storm Peaks Ore Spawnpoint 67 Titanium'), +(@GUID1+67,@POOL+67,@CHANCE1, 'Storm Peaks Ore Spawnpoint 68 Saronite'), +(@GUID2+67,@POOL+67,@CHANCE2, 'Storm Peaks Ore Spawnpoint 68 Rich Saronite'), +(@GUID3+67,@POOL+67,@CHANCE3, 'Storm Peaks Ore Spawnpoint 68 Titanium'), +(@GUID1+68,@POOL+68,@CHANCE1, 'Storm Peaks Ore Spawnpoint 69 Saronite'), +(@GUID2+68,@POOL+68,@CHANCE2, 'Storm Peaks Ore Spawnpoint 69 Rich Saronite'), +(@GUID3+68,@POOL+68,@CHANCE3, 'Storm Peaks Ore Spawnpoint 69 Titanium'), +(@GUID1+69,@POOL+69,@CHANCE1, 'Storm Peaks Ore Spawnpoint 70 Saronite'), +(@GUID2+69,@POOL+69,@CHANCE2, 'Storm Peaks Ore Spawnpoint 70 Rich Saronite'), +(@GUID3+69,@POOL+69,@CHANCE3, 'Storm Peaks Ore Spawnpoint 70 Titanium'), +(@GUID1+70,@POOL+70,@CHANCE1, 'Storm Peaks Ore Spawnpoint 71 Saronite'), +(@GUID2+70,@POOL+70,@CHANCE2, 'Storm Peaks Ore Spawnpoint 71 Rich Saronite'), +(@GUID3+70,@POOL+70,@CHANCE3, 'Storm Peaks Ore Spawnpoint 71 Titanium'), +(@GUID1+71,@POOL+71,@CHANCE1, 'Storm Peaks Ore Spawnpoint 72 Saronite'), +(@GUID2+71,@POOL+71,@CHANCE2, 'Storm Peaks Ore Spawnpoint 72 Rich Saronite'), +(@GUID3+71,@POOL+71,@CHANCE3, 'Storm Peaks Ore Spawnpoint 72 Titanium'), +(@GUID1+72,@POOL+72,@CHANCE1, 'Storm Peaks Ore Spawnpoint 73 Saronite'), +(@GUID2+72,@POOL+72,@CHANCE2, 'Storm Peaks Ore Spawnpoint 73 Rich Saronite'), +(@GUID3+72,@POOL+72,@CHANCE3, 'Storm Peaks Ore Spawnpoint 73 Titanium'), +(@GUID1+73,@POOL+73,@CHANCE1, 'Storm Peaks Ore Spawnpoint 74 Saronite'), +(@GUID2+73,@POOL+73,@CHANCE2, 'Storm Peaks Ore Spawnpoint 74 Rich Saronite'), +(@GUID3+73,@POOL+73,@CHANCE3, 'Storm Peaks Ore Spawnpoint 74 Titanium'), +(@GUID1+74,@POOL+74,@CHANCE1, 'Storm Peaks Ore Spawnpoint 75 Saronite'), +(@GUID2+74,@POOL+74,@CHANCE2, 'Storm Peaks Ore Spawnpoint 75 Rich Saronite'), +(@GUID3+74,@POOL+74,@CHANCE3, 'Storm Peaks Ore Spawnpoint 75 Titanium'), +(@GUID1+75,@POOL+75,@CHANCE1, 'Storm Peaks Ore Spawnpoint 76 Saronite'), +(@GUID2+75,@POOL+75,@CHANCE2, 'Storm Peaks Ore Spawnpoint 76 Rich Saronite'), +(@GUID3+75,@POOL+75,@CHANCE3, 'Storm Peaks Ore Spawnpoint 76 Titanium'), +(@GUID1+76,@POOL+76,@CHANCE1, 'Storm Peaks Ore Spawnpoint 77 Saronite'), +(@GUID2+76,@POOL+76,@CHANCE2, 'Storm Peaks Ore Spawnpoint 77 Rich Saronite'), +(@GUID3+76,@POOL+76,@CHANCE3, 'Storm Peaks Ore Spawnpoint 77 Titanium'), +(@GUID1+77,@POOL+77,@CHANCE1, 'Storm Peaks Ore Spawnpoint 78 Saronite'), +(@GUID2+77,@POOL+77,@CHANCE2, 'Storm Peaks Ore Spawnpoint 78 Rich Saronite'), +(@GUID3+77,@POOL+77,@CHANCE3, 'Storm Peaks Ore Spawnpoint 78 Titanium'), +(@GUID1+78,@POOL+78,@CHANCE1, 'Storm Peaks Ore Spawnpoint 79 Saronite'), +(@GUID2+78,@POOL+78,@CHANCE2, 'Storm Peaks Ore Spawnpoint 79 Rich Saronite'), +(@GUID3+78,@POOL+78,@CHANCE3, 'Storm Peaks Ore Spawnpoint 79 Titanium'), +(@GUID1+79,@POOL+79,@CHANCE1, 'Storm Peaks Ore Spawnpoint 80 Saronite'), +(@GUID2+79,@POOL+79,@CHANCE2, 'Storm Peaks Ore Spawnpoint 80 Rich Saronite'), +(@GUID3+79,@POOL+79,@CHANCE3, 'Storm Peaks Ore Spawnpoint 80 Titanium'), +(@GUID1+80,@POOL+80,@CHANCE1, 'Storm Peaks Ore Spawnpoint 81 Saronite'), +(@GUID2+80,@POOL+80,@CHANCE2, 'Storm Peaks Ore Spawnpoint 81 Rich Saronite'), +(@GUID3+80,@POOL+80,@CHANCE3, 'Storm Peaks Ore Spawnpoint 81 Titanium'), +(@GUID1+81,@POOL+81,@CHANCE1, 'Storm Peaks Ore Spawnpoint 82 Saronite'), +(@GUID2+81,@POOL+81,@CHANCE2, 'Storm Peaks Ore Spawnpoint 82 Rich Saronite'), +(@GUID3+81,@POOL+81,@CHANCE3, 'Storm Peaks Ore Spawnpoint 82 Titanium'), +(@GUID1+82,@POOL+82,@CHANCE1, 'Storm Peaks Ore Spawnpoint 83 Saronite'), +(@GUID2+82,@POOL+82,@CHANCE2, 'Storm Peaks Ore Spawnpoint 83 Rich Saronite'), +(@GUID3+82,@POOL+82,@CHANCE3, 'Storm Peaks Ore Spawnpoint 83 Titanium'), +(@GUID1+83,@POOL+83,@CHANCE1, 'Storm Peaks Ore Spawnpoint 84 Saronite'), +(@GUID2+83,@POOL+83,@CHANCE2, 'Storm Peaks Ore Spawnpoint 84 Rich Saronite'), +(@GUID3+83,@POOL+83,@CHANCE3, 'Storm Peaks Ore Spawnpoint 84 Titanium'), +(@GUID1+84,@POOL+84,@CHANCE1, 'Storm Peaks Ore Spawnpoint 85 Saronite'), +(@GUID2+84,@POOL+84,@CHANCE2, 'Storm Peaks Ore Spawnpoint 85 Rich Saronite'), +(@GUID3+84,@POOL+84,@CHANCE3, 'Storm Peaks Ore Spawnpoint 85 Titanium'), +(@GUID1+85,@POOL+85,@CHANCE1, 'Storm Peaks Ore Spawnpoint 86 Saronite'), +(@GUID2+85,@POOL+85,@CHANCE2, 'Storm Peaks Ore Spawnpoint 86 Rich Saronite'), +(@GUID3+85,@POOL+85,@CHANCE3, 'Storm Peaks Ore Spawnpoint 86 Titanium'), +(@GUID1+86,@POOL+86,@CHANCE1, 'Storm Peaks Ore Spawnpoint 87 Saronite'), +(@GUID2+86,@POOL+86,@CHANCE2, 'Storm Peaks Ore Spawnpoint 87 Rich Saronite'), +(@GUID3+86,@POOL+86,@CHANCE3, 'Storm Peaks Ore Spawnpoint 87 Titanium'), +(@GUID1+87,@POOL+87,@CHANCE1, 'Storm Peaks Ore Spawnpoint 88 Saronite'), +(@GUID2+87,@POOL+87,@CHANCE2, 'Storm Peaks Ore Spawnpoint 88 Rich Saronite'), +(@GUID3+87,@POOL+87,@CHANCE3, 'Storm Peaks Ore Spawnpoint 88 Titanium'), +(@GUID1+88,@POOL+88,@CHANCE1, 'Storm Peaks Ore Spawnpoint 89 Saronite'), +(@GUID2+88,@POOL+88,@CHANCE2, 'Storm Peaks Ore Spawnpoint 89 Rich Saronite'), +(@GUID3+88,@POOL+88,@CHANCE3, 'Storm Peaks Ore Spawnpoint 89 Titanium'), +(@GUID1+89,@POOL+89,@CHANCE1, 'Storm Peaks Ore Spawnpoint 90 Saronite'), +(@GUID2+89,@POOL+89,@CHANCE2, 'Storm Peaks Ore Spawnpoint 90 Rich Saronite'), +(@GUID3+89,@POOL+89,@CHANCE3, 'Storm Peaks Ore Spawnpoint 90 Titanium'), +(@GUID1+90,@POOL+90,@CHANCE1, 'Storm Peaks Ore Spawnpoint 91 Saronite'), +(@GUID2+90,@POOL+90,@CHANCE2, 'Storm Peaks Ore Spawnpoint 91 Rich Saronite'), +(@GUID3+90,@POOL+90,@CHANCE3, 'Storm Peaks Ore Spawnpoint 91 Titanium'), +(@GUID1+91,@POOL+91,@CHANCE1, 'Storm Peaks Ore Spawnpoint 92 Saronite'), +(@GUID2+91,@POOL+91,@CHANCE2, 'Storm Peaks Ore Spawnpoint 92 Rich Saronite'), +(@GUID3+91,@POOL+91,@CHANCE3, 'Storm Peaks Ore Spawnpoint 92 Titanium'), +(@GUID1+92,@POOL+92,@CHANCE1, 'Storm Peaks Ore Spawnpoint 93 Saronite'), +(@GUID2+92,@POOL+92,@CHANCE2, 'Storm Peaks Ore Spawnpoint 93 Rich Saronite'), +(@GUID3+92,@POOL+92,@CHANCE3, 'Storm Peaks Ore Spawnpoint 93 Titanium'), +(@GUID1+93,@POOL+93,@CHANCE1, 'Storm Peaks Ore Spawnpoint 94 Saronite'), +(@GUID2+93,@POOL+93,@CHANCE2, 'Storm Peaks Ore Spawnpoint 94 Rich Saronite'), +(@GUID3+93,@POOL+93,@CHANCE3, 'Storm Peaks Ore Spawnpoint 94 Titanium'), +(@GUID1+94,@POOL+94,@CHANCE1, 'Storm Peaks Ore Spawnpoint 95 Saronite'), +(@GUID2+94,@POOL+94,@CHANCE2, 'Storm Peaks Ore Spawnpoint 95 Rich Saronite'), +(@GUID3+94,@POOL+94,@CHANCE3, 'Storm Peaks Ore Spawnpoint 95 Titanium'), +(@GUID1+95,@POOL+95,@CHANCE1, 'Storm Peaks Ore Spawnpoint 96 Saronite'), +(@GUID2+95,@POOL+95,@CHANCE2, 'Storm Peaks Ore Spawnpoint 96 Rich Saronite'), +(@GUID3+95,@POOL+95,@CHANCE3, 'Storm Peaks Ore Spawnpoint 96 Titanium'), +(@GUID1+96,@POOL+96,@CHANCE1, 'Storm Peaks Ore Spawnpoint 97 Saronite'), +(@GUID2+96,@POOL+96,@CHANCE2, 'Storm Peaks Ore Spawnpoint 97 Rich Saronite'), +(@GUID3+96,@POOL+96,@CHANCE3, 'Storm Peaks Ore Spawnpoint 97 Titanium'), +(@GUID1+97,@POOL+97,@CHANCE1, 'Storm Peaks Ore Spawnpoint 98 Saronite'), +(@GUID2+97,@POOL+97,@CHANCE2, 'Storm Peaks Ore Spawnpoint 98 Rich Saronite'), +(@GUID3+97,@POOL+97,@CHANCE3, 'Storm Peaks Ore Spawnpoint 98 Titanium'), +(@GUID1+98,@POOL+98,@CHANCE1, 'Storm Peaks Ore Spawnpoint 99 Saronite'), +(@GUID2+98,@POOL+98,@CHANCE2, 'Storm Peaks Ore Spawnpoint 99 Rich Saronite'), +(@GUID3+98,@POOL+98,@CHANCE3, 'Storm Peaks Ore Spawnpoint 99 Titanium'), +(@GUID1+99,@POOL+99,@CHANCE1, 'Storm Peaks Ore Spawnpoint 100 Saronite'), +(@GUID2+99,@POOL+99,@CHANCE2, 'Storm Peaks Ore Spawnpoint 100 Rich Saronite'), +(@GUID3+99,@POOL+99,@CHANCE3, 'Storm Peaks Ore Spawnpoint 100 Titanium'), +(@GUID1+100,@POOL+100,@CHANCE1, 'Storm Peaks Ore Spawnpoint 101 Saronite'), +(@GUID2+100,@POOL+100,@CHANCE2, 'Storm Peaks Ore Spawnpoint 101 Rich Saronite'), +(@GUID3+100,@POOL+100,@CHANCE3, 'Storm Peaks Ore Spawnpoint 101 Titanium'), +(@GUID1+101,@POOL+101,@CHANCE1, 'Storm Peaks Ore Spawnpoint 102 Saronite'), +(@GUID2+101,@POOL+101,@CHANCE2, 'Storm Peaks Ore Spawnpoint 102 Rich Saronite'), +(@GUID3+101,@POOL+101,@CHANCE3, 'Storm Peaks Ore Spawnpoint 102 Titanium'), +(@GUID1+102,@POOL+102,@CHANCE1, 'Storm Peaks Ore Spawnpoint 103 Saronite'), +(@GUID2+102,@POOL+102,@CHANCE2, 'Storm Peaks Ore Spawnpoint 103 Rich Saronite'), +(@GUID3+102,@POOL+102,@CHANCE3, 'Storm Peaks Ore Spawnpoint 103 Titanium'), +(@GUID1+103,@POOL+103,@CHANCE1, 'Storm Peaks Ore Spawnpoint 104 Saronite'), +(@GUID2+103,@POOL+103,@CHANCE2, 'Storm Peaks Ore Spawnpoint 104 Rich Saronite'), +(@GUID3+103,@POOL+103,@CHANCE3, 'Storm Peaks Ore Spawnpoint 104 Titanium'), +(@GUID1+104,@POOL+104,@CHANCE1, 'Storm Peaks Ore Spawnpoint 105 Saronite'), +(@GUID2+104,@POOL+104,@CHANCE2, 'Storm Peaks Ore Spawnpoint 105 Rich Saronite'), +(@GUID3+104,@POOL+104,@CHANCE3, 'Storm Peaks Ore Spawnpoint 105 Titanium'), +(@GUID1+105,@POOL+105,@CHANCE1, 'Storm Peaks Ore Spawnpoint 106 Saronite'), +(@GUID2+105,@POOL+105,@CHANCE2, 'Storm Peaks Ore Spawnpoint 106 Rich Saronite'), +(@GUID3+105,@POOL+105,@CHANCE3, 'Storm Peaks Ore Spawnpoint 106 Titanium'), +(@GUID1+106,@POOL+106,@CHANCE1, 'Storm Peaks Ore Spawnpoint 107 Saronite'), +(@GUID2+106,@POOL+106,@CHANCE2, 'Storm Peaks Ore Spawnpoint 107 Rich Saronite'), +(@GUID3+106,@POOL+106,@CHANCE3, 'Storm Peaks Ore Spawnpoint 107 Titanium'), +(@GUID1+107,@POOL+107,@CHANCE1, 'Storm Peaks Ore Spawnpoint 108 Saronite'), +(@GUID2+107,@POOL+107,@CHANCE2, 'Storm Peaks Ore Spawnpoint 108 Rich Saronite'), +(@GUID3+107,@POOL+107,@CHANCE3, 'Storm Peaks Ore Spawnpoint 108 Titanium'), +(@GUID1+108,@POOL+108,@CHANCE1, 'Storm Peaks Ore Spawnpoint 109 Saronite'), +(@GUID2+108,@POOL+108,@CHANCE2, 'Storm Peaks Ore Spawnpoint 109 Rich Saronite'), +(@GUID3+108,@POOL+108,@CHANCE3, 'Storm Peaks Ore Spawnpoint 109 Titanium'), +(@GUID1+109,@POOL+109,@CHANCE1, 'Storm Peaks Ore Spawnpoint 110 Saronite'), +(@GUID2+109,@POOL+109,@CHANCE2, 'Storm Peaks Ore Spawnpoint 110 Rich Saronite'), +(@GUID3+109,@POOL+109,@CHANCE3, 'Storm Peaks Ore Spawnpoint 110 Titanium'); +-- Add each pool to pool template +DELETE FROM `pool_template` WHERE `entry` BETWEEN @POOL AND @POOL+@RANGE; +INSERT INTO `pool_template` (`entry`,`max_limit`,`description`) VALUES +(@POOL+0,1, 'Storm Peaks Ore Spawnpoint 1'), +(@POOL+1,1, 'Storm Peaks Ore Spawnpoint 2'), +(@POOL+2,1, 'Storm Peaks Ore Spawnpoint 3'), +(@POOL+3,1, 'Storm Peaks Ore Spawnpoint 4'), +(@POOL+4,1, 'Storm Peaks Ore Spawnpoint 5'), +(@POOL+5,1, 'Storm Peaks Ore Spawnpoint 6'), +(@POOL+6,1, 'Storm Peaks Ore Spawnpoint 7'), +(@POOL+7,1, 'Storm Peaks Ore Spawnpoint 8'), +(@POOL+8,1, 'Storm Peaks Ore Spawnpoint 9'), +(@POOL+9,1, 'Storm Peaks Ore Spawnpoint 10'), +(@POOL+10,1, 'Storm Peaks Ore Spawnpoint 11'), +(@POOL+11,1, 'Storm Peaks Ore Spawnpoint 12'), +(@POOL+12,1, 'Storm Peaks Ore Spawnpoint 13'), +(@POOL+13,1, 'Storm Peaks Ore Spawnpoint 14'), +(@POOL+14,1, 'Storm Peaks Ore Spawnpoint 15'), +(@POOL+15,1, 'Storm Peaks Ore Spawnpoint 16'), +(@POOL+16,1, 'Storm Peaks Ore Spawnpoint 17'), +(@POOL+17,1, 'Storm Peaks Ore Spawnpoint 18'), +(@POOL+18,1, 'Storm Peaks Ore Spawnpoint 19'), +(@POOL+19,1, 'Storm Peaks Ore Spawnpoint 20'), +(@POOL+20,1, 'Storm Peaks Ore Spawnpoint 21'), +(@POOL+21,1, 'Storm Peaks Ore Spawnpoint 22'), +(@POOL+22,1, 'Storm Peaks Ore Spawnpoint 23'), +(@POOL+23,1, 'Storm Peaks Ore Spawnpoint 24'), +(@POOL+24,1, 'Storm Peaks Ore Spawnpoint 25'), +(@POOL+25,1, 'Storm Peaks Ore Spawnpoint 26'), +(@POOL+26,1, 'Storm Peaks Ore Spawnpoint 27'), +(@POOL+27,1, 'Storm Peaks Ore Spawnpoint 28'), +(@POOL+28,1, 'Storm Peaks Ore Spawnpoint 29'), +(@POOL+29,1, 'Storm Peaks Ore Spawnpoint 30'), +(@POOL+30,1, 'Storm Peaks Ore Spawnpoint 31'), +(@POOL+31,1, 'Storm Peaks Ore Spawnpoint 32'), +(@POOL+32,1, 'Storm Peaks Ore Spawnpoint 33'), +(@POOL+33,1, 'Storm Peaks Ore Spawnpoint 34'), +(@POOL+34,1, 'Storm Peaks Ore Spawnpoint 35'), +(@POOL+35,1, 'Storm Peaks Ore Spawnpoint 36'), +(@POOL+36,1, 'Storm Peaks Ore Spawnpoint 37'), +(@POOL+37,1, 'Storm Peaks Ore Spawnpoint 38'), +(@POOL+38,1, 'Storm Peaks Ore Spawnpoint 39'), +(@POOL+39,1, 'Storm Peaks Ore Spawnpoint 40'), +(@POOL+40,1, 'Storm Peaks Ore Spawnpoint 41'), +(@POOL+41,1, 'Storm Peaks Ore Spawnpoint 42'), +(@POOL+42,1, 'Storm Peaks Ore Spawnpoint 43'), +(@POOL+43,1, 'Storm Peaks Ore Spawnpoint 44'), +(@POOL+44,1, 'Storm Peaks Ore Spawnpoint 45'), +(@POOL+45,1, 'Storm Peaks Ore Spawnpoint 46'), +(@POOL+46,1, 'Storm Peaks Ore Spawnpoint 47'), +(@POOL+47,1, 'Storm Peaks Ore Spawnpoint 48'), +(@POOL+48,1, 'Storm Peaks Ore Spawnpoint 49'), +(@POOL+49,1, 'Storm Peaks Ore Spawnpoint 50'), +(@POOL+50,1, 'Storm Peaks Ore Spawnpoint 51'), +(@POOL+51,1, 'Storm Peaks Ore Spawnpoint 52'), +(@POOL+52,1, 'Storm Peaks Ore Spawnpoint 53'), +(@POOL+53,1, 'Storm Peaks Ore Spawnpoint 54'), +(@POOL+54,1, 'Storm Peaks Ore Spawnpoint 55'), +(@POOL+55,1, 'Storm Peaks Ore Spawnpoint 56'), +(@POOL+56,1, 'Storm Peaks Ore Spawnpoint 57'), +(@POOL+57,1, 'Storm Peaks Ore Spawnpoint 58'), +(@POOL+58,1, 'Storm Peaks Ore Spawnpoint 59'), +(@POOL+59,1, 'Storm Peaks Ore Spawnpoint 60'), +(@POOL+60,1, 'Storm Peaks Ore Spawnpoint 61'), +(@POOL+61,1, 'Storm Peaks Ore Spawnpoint 62'), +(@POOL+62,1, 'Storm Peaks Ore Spawnpoint 63'), +(@POOL+63,1, 'Storm Peaks Ore Spawnpoint 64'), +(@POOL+64,1, 'Storm Peaks Ore Spawnpoint 65'), +(@POOL+65,1, 'Storm Peaks Ore Spawnpoint 66'), +(@POOL+66,1, 'Storm Peaks Ore Spawnpoint 67'), +(@POOL+67,1, 'Storm Peaks Ore Spawnpoint 68'), +(@POOL+68,1, 'Storm Peaks Ore Spawnpoint 69'), +(@POOL+69,1, 'Storm Peaks Ore Spawnpoint 70'), +(@POOL+70,1, 'Storm Peaks Ore Spawnpoint 71'), +(@POOL+71,1, 'Storm Peaks Ore Spawnpoint 72'), +(@POOL+72,1, 'Storm Peaks Ore Spawnpoint 73'), +(@POOL+73,1, 'Storm Peaks Ore Spawnpoint 74'), +(@POOL+74,1, 'Storm Peaks Ore Spawnpoint 75'), +(@POOL+75,1, 'Storm Peaks Ore Spawnpoint 76'), +(@POOL+76,1, 'Storm Peaks Ore Spawnpoint 77'), +(@POOL+77,1, 'Storm Peaks Ore Spawnpoint 78'), +(@POOL+78,1, 'Storm Peaks Ore Spawnpoint 79'), +(@POOL+79,1, 'Storm Peaks Ore Spawnpoint 80'), +(@POOL+80,1, 'Storm Peaks Ore Spawnpoint 81'), +(@POOL+81,1, 'Storm Peaks Ore Spawnpoint 82'), +(@POOL+82,1, 'Storm Peaks Ore Spawnpoint 83'), +(@POOL+83,1, 'Storm Peaks Ore Spawnpoint 84'), +(@POOL+84,1, 'Storm Peaks Ore Spawnpoint 85'), +(@POOL+85,1, 'Storm Peaks Ore Spawnpoint 86'), +(@POOL+86,1, 'Storm Peaks Ore Spawnpoint 87'), +(@POOL+87,1, 'Storm Peaks Ore Spawnpoint 88'), +(@POOL+88,1, 'Storm Peaks Ore Spawnpoint 89'), +(@POOL+89,1, 'Storm Peaks Ore Spawnpoint 90'), +(@POOL+90,1, 'Storm Peaks Ore Spawnpoint 91'), +(@POOL+91,1, 'Storm Peaks Ore Spawnpoint 92'), +(@POOL+92,1, 'Storm Peaks Ore Spawnpoint 93'), +(@POOL+93,1, 'Storm Peaks Ore Spawnpoint 94'), +(@POOL+94,1, 'Storm Peaks Ore Spawnpoint 95'), +(@POOL+95,1, 'Storm Peaks Ore Spawnpoint 96'), +(@POOL+96,1, 'Storm Peaks Ore Spawnpoint 97'), +(@POOL+97,1, 'Storm Peaks Ore Spawnpoint 98'), +(@POOL+98,1, 'Storm Peaks Ore Spawnpoint 99'), +(@POOL+99,1, 'Storm Peaks Ore Spawnpoint 100'), +(@POOL+100,1, 'Storm Peaks Ore Spawnpoint 101'), +(@POOL+101,1, 'Storm Peaks Ore Spawnpoint 102'), +(@POOL+102,1, 'Storm Peaks Ore Spawnpoint 103'), +(@POOL+103,1, 'Storm Peaks Ore Spawnpoint 104'), +(@POOL+104,1, 'Storm Peaks Ore Spawnpoint 105'), +(@POOL+105,1, 'Storm Peaks Ore Spawnpoint 106'), +(@POOL+106,1, 'Storm Peaks Ore Spawnpoint 107'), +(@POOL+107,1, 'Storm Peaks Ore Spawnpoint 108'), +(@POOL+108,1, 'Storm Peaks Ore Spawnpoint 109'), +(@POOL+109,1, 'Storm Peaks Ore Spawnpoint 110'); +-- Add mother pool to pool template +DELETE FROM `pool_template` WHERE `entry`=@MOTHER; +INSERT INTO `pool_template` (`entry`,`max_limit`,`description`) VALUES +(@MOTHER,@ACTIVE, 'Storm Peaks Ore Mother pool'); +-- Add each pool to pool_pool +DELETE FROM `pool_pool` WHERE `pool_id` BETWEEN @POOL AND @POOL+@RANGE; +INSERT INTO `pool_pool` (`pool_id`,`mother_pool`,`chance`,`description`) VALUES +(@POOL+0,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 1'), +(@POOL+1,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 2'), +(@POOL+2,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 3'), +(@POOL+3,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 4'), +(@POOL+4,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 5'), +(@POOL+5,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 6'), +(@POOL+6,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 7'), +(@POOL+7,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 8'), +(@POOL+8,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 9'), +(@POOL+9,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 10'), +(@POOL+10,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 11'), +(@POOL+11,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 12'), +(@POOL+12,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 13'), +(@POOL+13,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 14'), +(@POOL+14,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 15'), +(@POOL+15,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 16'), +(@POOL+16,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 17'), +(@POOL+17,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 18'), +(@POOL+18,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 19'), +(@POOL+19,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 20'), +(@POOL+20,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 21'), +(@POOL+21,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 22'), +(@POOL+22,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 23'), +(@POOL+23,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 24'), +(@POOL+24,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 25'), +(@POOL+25,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 26'), +(@POOL+26,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 27'), +(@POOL+27,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 28'), +(@POOL+28,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 29'), +(@POOL+29,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 30'), +(@POOL+30,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 31'), +(@POOL+31,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 32'), +(@POOL+32,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 33'), +(@POOL+33,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 34'), +(@POOL+34,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 35'), +(@POOL+35,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 36'), +(@POOL+36,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 37'), +(@POOL+37,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 38'), +(@POOL+38,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 39'), +(@POOL+39,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 40'), +(@POOL+40,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 41'), +(@POOL+41,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 42'), +(@POOL+42,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 43'), +(@POOL+43,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 44'), +(@POOL+44,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 45'), +(@POOL+45,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 46'), +(@POOL+46,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 47'), +(@POOL+47,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 48'), +(@POOL+48,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 49'), +(@POOL+49,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 50'), +(@POOL+50,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 51'), +(@POOL+51,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 52'), +(@POOL+52,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 53'), +(@POOL+53,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 54'), +(@POOL+54,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 55'), +(@POOL+55,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 56'), +(@POOL+56,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 57'), +(@POOL+57,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 58'), +(@POOL+58,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 59'), +(@POOL+59,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 60'), +(@POOL+60,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 61'), +(@POOL+61,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 62'), +(@POOL+62,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 63'), +(@POOL+63,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 64'), +(@POOL+64,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 65'), +(@POOL+65,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 66'), +(@POOL+66,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 67'), +(@POOL+67,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 68'), +(@POOL+68,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 69'), +(@POOL+69,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 70'), +(@POOL+70,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 71'), +(@POOL+71,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 72'), +(@POOL+72,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 73'), +(@POOL+73,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 74'), +(@POOL+74,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 75'), +(@POOL+75,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 76'), +(@POOL+76,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 77'), +(@POOL+77,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 78'), +(@POOL+78,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 79'), +(@POOL+79,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 80'), +(@POOL+80,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 81'), +(@POOL+81,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 82'), +(@POOL+82,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 83'), +(@POOL+83,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 84'), +(@POOL+84,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 85'), +(@POOL+85,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 86'), +(@POOL+86,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 87'), +(@POOL+87,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 88'), +(@POOL+88,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 89'), +(@POOL+89,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 90'), +(@POOL+90,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 91'), +(@POOL+91,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 92'), +(@POOL+92,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 93'), +(@POOL+93,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 94'), +(@POOL+94,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 95'), +(@POOL+95,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 96'), +(@POOL+96,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 97'), +(@POOL+97,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 98'), +(@POOL+98,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 99'), +(@POOL+99,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 100'), +(@POOL+100,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 101'), +(@POOL+101,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 102'), +(@POOL+102,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 103'), +(@POOL+103,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 104'), +(@POOL+104,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 105'), +(@POOL+105,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 106'), +(@POOL+106,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 107'), +(@POOL+107,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 108'), +(@POOL+108,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 109'), +(@POOL+109,@MOTHER,0, 'Storm Peaks Ore Spawnpoint 110'); +-- POOL 2 for Cobalt +-- Cobalt & Rich Cobalt Deposits Storm Peaks +INSERT INTO `gameobject` (`guid`, `id`, `map`, `spawnMask`, `phaseMask`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecs`, `animprogress`, `state`) VALUES +(@GUID1+239,189978,571,1,1,6749.401,-3469.023,563.5495,-1.30900,0,0,0,1,@TIMER,255,1), +(@GUID2+239,189979,571,1,1,6749.401,-3469.023,563.5495,-1.30900,0,0,0,1,@TIMER,255,1); +-- Pooling +-- Pool different ore types to each spawnpoint +INSERT INTO `pool_gameobject` (`guid`,`pool_entry`,`chance`,`description`) VALUES +(@GUID1+239,@POOL+239,@CHANCE1, 'Storm Peaks Ore Spawnpoint 1 Cobalt'), +(@GUID2+239,@POOL+239,@CHANCE2+@CHANCE3, 'Storm Peaks Ore Spawnpoint 1 Rich Cobalt'); +-- Add each pool to pool template +INSERT INTO `pool_template` (`entry`,`max_limit`,`description`) VALUES +(@POOL+239,1, 'Storm Peaks Ore Spawnpoint 240'); +-- Add mother pool to pool template +DELETE FROM `pool_template` WHERE `entry`=@MOTHER2; +INSERT INTO `pool_template` (`entry`,`max_limit`,`description`) VALUES +(@MOTHER2,@ACTIVE, 'Storm Peaks Ore Mother pool 2'); +-- Add each pool to pool_pool +DELETE FROM `pool_pool` WHERE `pool_id` BETWEEN @POOL AND @POOL+@LASTGUID; +INSERT INTO `pool_pool` (`pool_id`,`mother_pool`,`chance`,`description`) VALUES +(@POOL+239,@MOTHER2,0, 'Storm Peaks Ore Spawnpoint 240'); + +-- ----------------------------------- +-- -- Fixup ore spawns for Icecrown -- +-- ----------------------------------- +SET @RANGE := 400; +SET @GUID1 := 163200; +SET @GUID2 := @GUID1 + @RANGE; +SET @GUID3 := @GUID2 + @RANGE; +SET @POOL := 11400; +SET @LASTGUID := 234; +SET @CHANCE1 := 75; +SET @CHANCE2 := 15; +SET @CHANCE3 := 10; +SET @MOTHER := 9908; +SET @ACTIVE := 60; -- Max number of active spawns +SET @TIMER := 600; -- Respawn timer in seconds +-- Remove Ore spawns from Icecrown +DELETE FROM `gameobject` WHERE `id` IN (189978,189979,189980,189981,191133) AND `map`=571 AND `position_y` < 740 AND `position_y` > 535 AND `position_x` > 6220; +DELETE FROM `gameobject` WHERE `id` IN (189978,189979,189980,189981,191133) AND `map`=571 AND `position_y` < 1220 AND `position_y` > 740 AND `position_x` > 6380; +DELETE FROM `gameobject` WHERE `id` IN (189978,189979,189980,189981,191133) AND `map`=571 AND `position_x` > 5400 AND `position_y` > 1220 AND `position_y` < 2570; +DELETE FROM `gameobject` WHERE `id` IN (189978,189979,189980,189981,191133) AND `map`=571 AND `position_y` < 3360 AND `position_y` > 2570 AND `position_x` > 5600; +DELETE FROM `gameobject` WHERE `id` IN (189978,189979,189980,189981,191133) AND `map`=571 AND `position_y` > 3360 AND `position_x` > 6800; +DELETE FROM `gameobject` WHERE `id` IN (189978,189979,189980,189981,191133) AND `map`=571 AND `position_y` < 335 AND `position_y` > -110 AND `position_x` > 6100 AND `position_x` < 6460; +DELETE FROM `gameobject` WHERE `id` IN (189978,189979,189980,189981,191133) AND `map`=571 AND `position_y` < 535 AND `position_y` > 130 AND `position_x` > 6460; +DELETE FROM `gameobject` WHERE `id` IN (189978,189979,189980,189981,191133) AND `map`=571 AND `position_y` < 3835 AND `position_y` > 3360 AND `position_x` > 6450 AND `position_x` < 6800; + +-- Remove old pools +DELETE FROM `pool_gameobject` WHERE `guid` NOT IN (SELECT `guid` FROM `gameobject`); +DELETE FROM `pool_template` WHERE `entry` BETWEEN 5448 AND 5616; +DELETE FROM `pool_template` WHERE `entry`=897; +DELETE FROM `pool_pool` WHERE `pool_id` BETWEEN 5448 AND 5616; +-- Saronite Deposits Icecrown +INSERT INTO `gameobject` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`position_x`,`position_y`,`position_z`,`orientation`,`rotation0`,`rotation1`,`rotation2`,`rotation3`,`spawntimesecs`,`animprogress`,`state`) VALUES +(@GUID1+0,189980,571,1,1,6674.631,1332.353,299.6001,-1.34390,0,0,0,1,@TIMER,255,1), +(@GUID1+1,189980,571,1,1,6939.153,2862.694,435.1407,1.57080,0,0,0,1,@TIMER,255,1), +(@GUID1+2,189980,571,1,1,7980.812,3096.596,635.4854,-3.01941,0,0,0,1,@TIMER,255,1), +(@GUID1+3,189980,571,1,1,5636.890,1931.159,517.3533,-1.50098,0,0,0,1,@TIMER,255,1), +(@GUID1+4,189980,571,1,1,5665.190,1897.490,519.6750,2.93214,0,0,0,1,@TIMER,255,1), +(@GUID1+5,189980,571,1,1,5706.650,2046.590,-339.6590,-2.39110,0,0,0,1,@TIMER,255,1), +(@GUID1+6,189980,571,1,1,5711.610,2071.070,-340.7400,-1.15192,0,0,0,1,@TIMER,255,1), +(@GUID1+7,189980,571,1,1,5749.150,2086.660,-343.5200,-2.09439,0,0,0,1,@TIMER,255,1), +(@GUID1+8,189980,571,1,1,5753.728,2282.746,533.9716,-1.53589,0,0,0,1,@TIMER,255,1), +(@GUID1+9,189980,571,1,1,5775.480,2081.830,-342.7420,0.71559,0,0,0,1,@TIMER,255,1), +(@GUID1+10,189980,571,1,1,5790.740,2214.070,515.1540,1.30900,0,0,0,1,@TIMER,255,1), +(@GUID1+11,189980,571,1,1,5808.930,2268.290,523.3210,2.53072,0,0,0,1,@TIMER,255,1), +(@GUID1+12,189980,571,1,1,5826.980,1863.070,-345.8090,1.90241,0,0,0,1,@TIMER,255,1), +(@GUID1+13,189980,571,1,1,5842.430,1858.810,-345.3000,-2.68781,0,0,0,1,@TIMER,255,1), +(@GUID1+14,189980,571,1,1,5843.150,2256.140,520.1550,-1.06465,0,0,0,1,@TIMER,255,1), +(@GUID1+15,189980,571,1,1,5857.440,1936.720,510.8840,0.17453,0,0,0,1,@TIMER,255,1), +(@GUID1+16,189980,571,1,1,5890.500,1915.920,-345.9820,-1.76278,0,0,0,1,@TIMER,255,1), +(@GUID1+17,189980,571,1,1,5890.500,1915.920,-345.9820,-1.76278,0,0,0,1,@TIMER,255,1), +(@GUID1+18,189980,571,1,1,5894.700,1913.140,-345.9370,-2.07694,0,0,0,1,@TIMER,255,1), +(@GUID1+19,189980,571,1,1,5914.500,2015.980,516.3390,2.93214,0,0,0,1,@TIMER,255,1), +(@GUID1+20,189980,571,1,1,5941.548,1912.958,567.5397,0.97738,0,0,0,1,@TIMER,255,1), +(@GUID1+21,189980,571,1,1,5957.890,2517.910,537.2770,1.09956,0,0,0,1,@TIMER,255,1), +(@GUID1+22,189980,571,1,1,5961.092,2412.068,519.9221,2.51327,0,0,0,1,@TIMER,255,1), +(@GUID1+23,189980,571,1,1,5967.890,1850.520,630.5570,-0.52360,0,0,0,1,@TIMER,255,1), +(@GUID1+24,189980,571,1,1,6038.564,2326.347,514.5131,1.69297,0,0,0,1,@TIMER,255,1), +(@GUID1+25,189980,571,1,1,6171.915,2015.665,531.4319,-1.43117,0,0,0,1,@TIMER,255,1), +(@GUID1+26,189980,571,1,1,6448.210,1897.020,515.3600,0.36652,0,0,0,1,@TIMER,255,1), +(@GUID1+27,189980,571,1,1,6466.150,137.682,444.7190,2.35619,0,0,0,1,@TIMER,255,1), +(@GUID1+28,189980,571,1,1,6466.396,648.508,428.8037,1.79769,0,0,0,1,@TIMER,255,1), +(@GUID1+29,189980,571,1,1,6477.440,2487.120,475.9810,-0.27925,0,0,0,1,@TIMER,255,1), +(@GUID1+30,189980,571,1,1,6481.970,540.381,438.7030,0.47124,0,0,0,1,@TIMER,255,1), +(@GUID1+31,189980,571,1,1,6482.543,2462.866,468.1175,-1.91986,0,0,0,1,@TIMER,255,1), +(@GUID1+32,189980,571,1,1,6483.739,1237.931,286.9318,1.37881,0,0,0,1,@TIMER,255,1), +(@GUID1+33,189980,571,1,1,6484.370,294.937,399.8210,-1.15192,0,0,0,1,@TIMER,255,1), +(@GUID1+34,189980,571,1,1,6497.030,3510.880,540.2320,-2.70526,0,0,0,1,@TIMER,255,1), +(@GUID1+35,189980,571,1,1,6514.270,896.626,290.6450,1.29154,0,0,0,1,@TIMER,255,1), +(@GUID1+36,189980,571,1,1,6533.500,907.337,294.8920,0.17453,0,0,0,1,@TIMER,255,1), +(@GUID1+37,189980,571,1,1,6541.251,1011.675,276.9524,0.08727,0,0,0,1,@TIMER,255,1), +(@GUID1+38,189980,571,1,1,6554.230,332.830,411.5670,0.13962,0,0,0,1,@TIMER,255,1), +(@GUID1+39,189980,571,1,1,6557.070,284.192,401.7890,0.73304,0,0,0,1,@TIMER,255,1), +(@GUID1+40,189980,571,1,1,6559.550,659.112,408.1460,-2.67035,0,0,0,1,@TIMER,255,1), +(@GUID1+41,189980,571,1,1,6561.430,1050.489,275.1745,2.42601,0,0,0,1,@TIMER,255,1), +(@GUID1+42,189980,571,1,1,6583.151,1267.122,286.0256,0.92502,0,0,0,1,@TIMER,255,1), +(@GUID1+43,189980,571,1,1,6604.228,1248.473,282.4915,2.04204,0,0,0,1,@TIMER,255,1), +(@GUID1+44,189980,571,1,1,6608.890,990.280,284.7300,-2.77507,0,0,0,1,@TIMER,255,1), +(@GUID1+45,189980,571,1,1,6618.750,356.354,453.1560,0.68068,0,0,0,1,@TIMER,255,1), +(@GUID1+46,189980,571,1,1,6622.904,1252.617,282.5027,1.71042,0,0,0,1,@TIMER,255,1), +(@GUID1+47,189980,571,1,1,6636.596,3176.859,648.8128,1.15192,0,0,0,1,@TIMER,255,1), +(@GUID1+48,189980,571,1,1,6640.880,3346.680,677.4100,-0.76794,0,0,0,1,@TIMER,255,1), +(@GUID1+49,189980,571,1,1,6658.340,688.135,410.4380,2.14675,0,0,0,1,@TIMER,255,1), +(@GUID1+50,189980,571,1,1,6662.220,573.318,406.8580,-0.41888,0,0,0,1,@TIMER,255,1), +(@GUID1+51,189980,571,1,1,6664.980,615.527,410.0190,-2.86233,0,0,0,1,@TIMER,255,1), +(@GUID1+52,189980,571,1,1,6672.161,1189.572,273.2596,-2.49582,0,0,0,1,@TIMER,255,1), +(@GUID1+53,189980,571,1,1,6691.890,1520.673,466.3800,-2.07694,0,0,0,1,@TIMER,255,1), +(@GUID1+54,189980,571,1,1,6696.400,743.905,396.9640,-0.12217,0,0,0,1,@TIMER,255,1), +(@GUID1+55,189980,571,1,1,6710.980,644.300,412.4740,-1.29154,0,0,0,1,@TIMER,255,1), +(@GUID1+56,189980,571,1,1,6717.320,1228.804,275.0786,-2.86234,0,0,0,1,@TIMER,255,1), +(@GUID1+57,189980,571,1,1,6725.160,570.259,424.5290,-2.46091,0,0,0,1,@TIMER,255,1), +(@GUID1+58,189980,571,1,1,6734.880,1458.500,403.8720,0.31416,0,0,0,1,@TIMER,255,1), +(@GUID1+59,189980,571,1,1,6737.770,586.034,425.3840,1.48353,0,0,0,1,@TIMER,255,1), +(@GUID1+60,189980,571,1,1,6748.570,2727.220,435.5540,1.22173,0,0,0,1,@TIMER,255,1), +(@GUID1+61,189980,571,1,1,6751.800,1325.140,285.5890,-1.60570,0,0,0,1,@TIMER,255,1), +(@GUID1+62,189980,571,1,1,6753.930,328.981,442.2290,0.92502,0,0,0,1,@TIMER,255,1), +(@GUID1+63,189980,571,1,1,6754.170,2342.520,442.6880,-2.09439,0,0,0,1,@TIMER,255,1), +(@GUID1+64,189980,571,1,1,6754.800,575.615,425.3900,-1.41372,0,0,0,1,@TIMER,255,1), +(@GUID1+65,189980,571,1,1,6755.160,1224.160,276.8440,0.34907,0,0,0,1,@TIMER,255,1), +(@GUID1+66,189980,571,1,1,6755.390,974.467,312.3300,-2.19912,0,0,0,1,@TIMER,255,1), +(@GUID1+67,189980,571,1,1,6756.568,2694.843,427.8352,-2.80998,0,0,0,1,@TIMER,255,1), +(@GUID1+68,189980,571,1,1,6758.730,585.806,425.6570,0.26180,0,0,0,1,@TIMER,255,1), +(@GUID1+69,189980,571,1,1,6766.010,2936.860,456.1350,-2.00713,0,0,0,1,@TIMER,255,1), +(@GUID1+70,189980,571,1,1,6774.690,499.547,410.7330,-0.97738,0,0,0,1,@TIMER,255,1), +(@GUID1+71,189980,571,1,1,6781.035,1131.430,278.6142,2.04204,0,0,0,1,@TIMER,255,1), +(@GUID1+72,189980,571,1,1,6789.004,1141.311,277.1633,-1.81514,0,0,0,1,@TIMER,255,1), +(@GUID1+73,189980,571,1,1,6790.110,449.812,411.4930,-1.09956,0,0,0,1,@TIMER,255,1), +(@GUID1+74,189980,571,1,1,6793.867,924.565,348.8412,0.85521,0,0,0,1,@TIMER,255,1), +(@GUID1+75,189980,571,1,1,6797.174,2369.824,435.4318,-0.38397,0,0,0,1,@TIMER,255,1), +(@GUID1+76,189980,571,1,1,6804.510,1294.230,281.1890,0.50615,0,0,0,1,@TIMER,255,1), +(@GUID1+77,189980,571,1,1,6817.340,453.798,470.4500,-3.03684,0,0,0,1,@TIMER,255,1), +(@GUID1+78,189980,571,1,1,6818.782,2181.032,660.7790,-1.83259,0,0,0,1,@TIMER,255,1), +(@GUID1+79,189980,571,1,1,6824.141,2207.658,654.9231,-1.13446,0,0,0,1,@TIMER,255,1), +(@GUID1+80,189980,571,1,1,6830.670,762.702,409.8570,2.12930,0,0,0,1,@TIMER,255,1), +(@GUID1+81,189980,571,1,1,6833.760,2472.190,421.7130,0.15708,0,0,0,1,@TIMER,255,1), +(@GUID1+82,189980,571,1,1,6884.590,645.147,426.5720,-0.83776,0,0,0,1,@TIMER,255,1), +(@GUID1+83,189980,571,1,1,6885.250,2378.060,427.7960,2.37364,0,0,0,1,@TIMER,255,1), +(@GUID1+84,189980,571,1,1,6885.810,2052.910,828.6610,0.08727,0,0,0,1,@TIMER,255,1), +(@GUID1+85,189980,571,1,1,6897.245,819.820,399.8205,-2.82743,0,0,0,1,@TIMER,255,1), +(@GUID1+86,189980,571,1,1,6898.430,786.803,405.3570,-1.48353,0,0,0,1,@TIMER,255,1), +(@GUID1+87,189980,571,1,1,6901.678,2352.561,428.5658,0.48869,0,0,0,1,@TIMER,255,1), +(@GUID1+88,189980,571,1,1,6943.630,3630.960,830.1040,-1.46608,0,0,0,1,@TIMER,255,1), +(@GUID1+89,189980,571,1,1,6944.920,407.241,513.6190,2.49582,0,0,0,1,@TIMER,255,1), +(@GUID1+90,189980,571,1,1,6993.890,681.144,491.2140,0.38397,0,0,0,1,@TIMER,255,1), +(@GUID1+91,189980,571,1,1,6999.950,849.854,402.0200,-0.38397,0,0,0,1,@TIMER,255,1), +(@GUID1+92,189980,571,1,1,7010.360,702.436,473.7730,3.03684,0,0,0,1,@TIMER,255,1), +(@GUID1+93,189980,571,1,1,7027.862,3066.551,475.0314,1.78023,0,0,0,1,@TIMER,255,1), +(@GUID1+94,189980,571,1,1,7028.880,2508.660,409.5580,-0.54105,0,0,0,1,@TIMER,255,1), +(@GUID1+95,189980,571,1,1,7053.120,824.111,537.6430,-1.88495,0,0,0,1,@TIMER,255,1), +(@GUID1+96,189980,571,1,1,7064.830,1379.270,307.5810,1.85005,0,0,0,1,@TIMER,255,1), +(@GUID1+97,189980,571,1,1,7067.230,1367.880,306.2920,2.61799,0,0,0,1,@TIMER,255,1), +(@GUID1+98,189980,571,1,1,7070.190,574.218,498.3680,-0.61086,0,0,0,1,@TIMER,255,1), +(@GUID1+99,189980,571,1,1,7102.520,3022.010,446.9720,1.79769,0,0,0,1,@TIMER,255,1), +(@GUID1+100,189980,571,1,1,7115.280,1450.230,315.6940,-2.02458,0,0,0,1,@TIMER,255,1), +(@GUID1+101,189980,571,1,1,7136.144,1119.962,310.4275,-1.09956,0,0,0,1,@TIMER,255,1), +(@GUID1+102,189980,571,1,1,7144.400,2507.150,405.9100,-1.62316,0,0,0,1,@TIMER,255,1), +(@GUID1+103,189980,571,1,1,7162.500,2547.990,399.1830,1.71042,0,0,0,1,@TIMER,255,1), +(@GUID1+104,189980,571,1,1,7164.714,2521.346,402.8072,0.27925,0,0,0,1,@TIMER,255,1), +(@GUID1+105,189980,571,1,1,7185.228,2548.746,397.5674,1.55334,0,0,0,1,@TIMER,255,1), +(@GUID1+106,189980,571,1,1,7215.860,2846.910,408.1010,2.89724,0,0,0,1,@TIMER,255,1), +(@GUID1+107,189980,571,1,1,7231.514,2847.632,405.2855,-0.27925,0,0,0,1,@TIMER,255,1), +(@GUID1+108,189980,571,1,1,7235.410,575.545,499.3020,3.12412,0,0,0,1,@TIMER,255,1), +(@GUID1+109,189980,571,1,1,7235.530,1516.760,326.9980,-1.93732,0,0,0,1,@TIMER,255,1), +(@GUID1+110,189980,571,1,1,7238.310,785.106,552.4170,0.26180,0,0,0,1,@TIMER,255,1), +(@GUID1+111,189980,571,1,1,7240.890,2399.818,417.6793,-2.44346,0,0,0,1,@TIMER,255,1), +(@GUID1+112,189980,571,1,1,7260.710,1512.270,322.2740,2.19912,0,0,0,1,@TIMER,255,1), +(@GUID1+113,189980,571,1,1,7323.180,2252.330,461.4260,2.49582,0,0,0,1,@TIMER,255,1), +(@GUID1+114,189980,571,1,1,7330.260,2996.150,434.1070,-1.98967,0,0,0,1,@TIMER,255,1), +(@GUID1+115,189980,571,1,1,7330.480,2485.730,392.8050,1.11701,0,0,0,1,@TIMER,255,1), +(@GUID1+116,189980,571,1,1,7343.430,602.649,615.5180,2.42601,0,0,0,1,@TIMER,255,1), +(@GUID1+117,189980,571,1,1,7347.470,561.248,613.0550,-0.55850,0,0,0,1,@TIMER,255,1), +(@GUID1+118,189980,571,1,1,7362.550,614.322,580.0140,-3.01941,0,0,0,1,@TIMER,255,1), +(@GUID1+119,189980,571,1,1,7382.990,2443.480,387.4290,-2.37364,0,0,0,1,@TIMER,255,1), +(@GUID1+120,189980,571,1,1,7391.310,568.383,577.8610,-1.25664,0,0,0,1,@TIMER,255,1), +(@GUID1+121,189980,571,1,1,7399.734,2867.122,417.6852,-2.28638,0,0,0,1,@TIMER,255,1), +(@GUID1+122,189980,571,1,1,7420.410,3083.890,586.8870,-2.35619,0,0,0,1,@TIMER,255,1), +(@GUID1+123,189980,571,1,1,7420.450,632.061,497.2910,-1.79769,0,0,0,1,@TIMER,255,1), +(@GUID1+124,189980,571,1,1,7427.840,1463.890,324.1520,2.33874,0,0,0,1,@TIMER,255,1), +(@GUID1+125,189980,571,1,1,7431.122,3330.435,693.0119,1.08210,0,0,0,1,@TIMER,255,1), +(@GUID1+126,189980,571,1,1,7466.787,2726.011,412.2881,-0.24435,0,0,0,1,@TIMER,255,1), +(@GUID1+127,189980,571,1,1,7471.173,2497.169,390.4092,-1.34390,0,0,0,1,@TIMER,255,1), +(@GUID1+128,189980,571,1,1,7472.370,1305.690,320.0850,-2.28638,0,0,0,1,@TIMER,255,1), +(@GUID1+129,189980,571,1,1,7476.556,1295.246,322.1502,-0.55850,0,0,0,1,@TIMER,255,1), +(@GUID1+130,189980,571,1,1,7476.560,1295.250,322.1500,-0.55850,0,0,0,1,@TIMER,255,1), +(@GUID1+131,189980,571,1,1,7488.803,1813.892,361.4976,-2.65289,0,0,0,1,@TIMER,255,1), +(@GUID1+132,189980,571,1,1,7488.803,1813.892,361.4976,-2.65289,0,0,0,1,@TIMER,255,1), +(@GUID1+133,189980,571,1,1,7490.424,2678.968,433.0785,-1.15192,0,0,0,1,@TIMER,255,1), +(@GUID1+134,189980,571,1,1,7512.870,1172.610,344.4850,-1.32645,0,0,0,1,@TIMER,255,1), +(@GUID1+135,189980,571,1,1,7517.870,1846.080,360.2560,0.15708,0,0,0,1,@TIMER,255,1), +(@GUID1+136,189980,571,1,1,7521.310,2268.770,391.4060,-1.04720,0,0,0,1,@TIMER,255,1), +(@GUID1+137,189980,571,1,1,7523.600,2698.610,409.9320,2.96704,0,0,0,1,@TIMER,255,1), +(@GUID1+138,189980,571,1,1,7526.180,970.248,533.5250,0.75049,0,0,0,1,@TIMER,255,1), +(@GUID1+139,189980,571,1,1,7529.280,639.333,494.9540,-2.02458,0,0,0,1,@TIMER,255,1), +(@GUID1+140,189980,571,1,1,7541.840,896.319,489.3380,0.95993,0,0,0,1,@TIMER,255,1), +(@GUID1+141,189980,571,1,1,7542.460,2870.100,429.9170,1.85005,0,0,0,1,@TIMER,255,1), +(@GUID1+142,189980,571,1,1,7549.750,982.975,483.2320,0.76794,0,0,0,1,@TIMER,255,1), +(@GUID1+143,189980,571,1,1,7554.596,1864.645,367.2740,0.24435,0,0,0,1,@TIMER,255,1), +(@GUID1+144,189980,571,1,1,7576.460,1972.390,369.5900,-0.87266,0,0,0,1,@TIMER,255,1), +(@GUID1+145,189980,571,1,1,7595.120,1891.100,371.2320,-2.72271,0,0,0,1,@TIMER,255,1), +(@GUID1+146,189980,571,1,1,7607.160,1752.610,339.9570,0.15708,0,0,0,1,@TIMER,255,1), +(@GUID1+147,189980,571,1,1,7633.180,716.693,484.5840,1.88495,0,0,0,1,@TIMER,255,1), +(@GUID1+148,189980,571,1,1,7653.100,2792.670,414.9850,0.12217,0,0,0,1,@TIMER,255,1), +(@GUID1+149,189980,571,1,1,7656.878,1786.749,350.2715,-2.51327,0,0,0,1,@TIMER,255,1), +(@GUID1+150,189980,571,1,1,7656.880,1786.750,350.2720,-2.51327,0,0,0,1,@TIMER,255,1), +(@GUID1+151,189980,571,1,1,7664.280,1709.210,333.7010,1.85005,0,0,0,1,@TIMER,255,1), +(@GUID1+152,189980,571,1,1,7678.119,2818.930,444.8793,2.42601,0,0,0,1,@TIMER,255,1), +(@GUID1+153,189980,571,1,1,7679.018,1021.261,471.1822,1.83259,0,0,0,1,@TIMER,255,1), +(@GUID1+154,189980,571,1,1,7685.300,1256.030,341.5660,-2.30383,0,0,0,1,@TIMER,255,1), +(@GUID1+155,189980,571,1,1,7687.900,3554.850,736.6150,1.01229,0,0,0,1,@TIMER,255,1), +(@GUID1+156,189980,571,1,1,7688.260,1386.790,347.2900,-1.91986,0,0,0,1,@TIMER,255,1), +(@GUID1+157,189980,571,1,1,7689.330,3181.030,578.8330,0.40143,0,0,0,1,@TIMER,255,1), +(@GUID1+158,189980,571,1,1,7689.890,553.471,698.6200,0.68068,0,0,0,1,@TIMER,255,1), +(@GUID1+159,189980,571,1,1,7712.260,1282.210,339.2810,1.83259,0,0,0,1,@TIMER,255,1), +(@GUID1+160,189980,571,1,1,7720.600,1424.710,353.3610,-1.62316,0,0,0,1,@TIMER,255,1), +(@GUID1+161,189980,571,1,1,7726.390,1305.620,341.8380,-2.96704,0,0,0,1,@TIMER,255,1), +(@GUID1+162,189980,571,1,1,7733.940,1814.480,349.6280,-1.88495,0,0,0,1,@TIMER,255,1), +(@GUID1+163,189980,571,1,1,7744.650,1779.400,338.0610,3.03684,0,0,0,1,@TIMER,255,1), +(@GUID1+164,189980,571,1,1,7764.360,1088.720,395.6190,-0.61086,0,0,0,1,@TIMER,255,1), +(@GUID1+165,189980,571,1,1,7765.605,2713.188,409.2500,2.68781,0,0,0,1,@TIMER,255,1), +(@GUID1+166,189980,571,1,1,7772.450,796.567,517.5690,0.41888,0,0,0,1,@TIMER,255,1), +(@GUID1+167,189980,571,1,1,7773.792,1499.624,360.2978,-2.21657,0,0,0,1,@TIMER,255,1), +(@GUID1+168,189980,571,1,1,7774.563,2665.078,405.8254,-0.66322,0,0,0,1,@TIMER,255,1), +(@GUID1+169,189980,571,1,1,7774.563,2665.078,405.8254,-0.66322,0,0,0,1,@TIMER,255,1), +(@GUID1+170,189980,571,1,1,7779.620,1830.560,356.3590,-2.53072,0,0,0,1,@TIMER,255,1), +(@GUID1+171,189980,571,1,1,7781.560,1106.510,395.6670,2.54818,0,0,0,1,@TIMER,255,1), +(@GUID1+172,189980,571,1,1,7784.990,1043.740,395.6190,1.88495,0,0,0,1,@TIMER,255,1), +(@GUID1+173,189980,571,1,1,7793.370,1526.290,363.6070,0.48869,0,0,0,1,@TIMER,255,1), +(@GUID1+174,189980,571,1,1,7805.900,943.421,451.6210,-1.09956,0,0,0,1,@TIMER,255,1), +(@GUID1+175,189980,571,1,1,7819.700,1132.740,395.6190,-3.07177,0,0,0,1,@TIMER,255,1), +(@GUID1+176,189980,571,1,1,7822.420,696.106,554.0000,1.01229,0,0,0,1,@TIMER,255,1), +(@GUID1+177,189980,571,1,1,7833.479,3008.132,536.2718,-1.20428,0,0,0,1,@TIMER,255,1), +(@GUID1+178,189980,571,1,1,7834.560,818.007,501.7090,-0.92502,0,0,0,1,@TIMER,255,1), +(@GUID1+179,189980,571,1,1,7845.009,3354.724,736.6236,0.82030,0,0,0,1,@TIMER,255,1), +(@GUID1+180,189980,571,1,1,7848.730,1108.210,395.6100,2.74016,0,0,0,1,@TIMER,255,1), +(@GUID1+181,189980,571,1,1,7854.104,1125.911,395.6191,1.88495,0,0,0,1,@TIMER,255,1), +(@GUID1+182,189980,571,1,1,7857.740,1414.600,439.1670,-2.25147,0,0,0,1,@TIMER,255,1), +(@GUID1+183,189980,571,1,1,7867.160,1550.810,378.1740,0.27925,0,0,0,1,@TIMER,255,1), +(@GUID1+184,189980,571,1,1,7894.100,1533.870,396.8620,-3.07177,0,0,0,1,@TIMER,255,1), +(@GUID1+185,189980,571,1,1,7915.382,2484.846,405.5244,0.73304,0,0,0,1,@TIMER,255,1), +(@GUID1+186,189980,571,1,1,7926.210,2439.340,411.3850,2.67035,0,0,0,1,@TIMER,255,1), +(@GUID1+187,189980,571,1,1,7930.313,2802.014,499.5031,-2.44346,0,0,0,1,@TIMER,255,1), +(@GUID1+188,189980,571,1,1,7935.660,1579.350,411.4840,-1.91986,0,0,0,1,@TIMER,255,1), +(@GUID1+189,189980,571,1,1,7937.930,1442.640,520.4660,2.26892,0,0,0,1,@TIMER,255,1), +(@GUID1+190,189980,571,1,1,7940.259,3483.749,694.0527,-1.65806,0,0,0,1,@TIMER,255,1), +(@GUID1+191,189980,571,1,1,7941.500,1706.580,371.8170,-0.27925,0,0,0,1,@TIMER,255,1), +(@GUID1+192,189980,571,1,1,7958.130,1927.860,367.0540,3.05433,0,0,0,1,@TIMER,255,1), +(@GUID1+193,189980,571,1,1,7963.188,2787.479,525.1877,-1.83259,0,0,0,1,@TIMER,255,1), +(@GUID1+194,189980,571,1,1,7980.900,1539.410,467.7100,1.46608,0,0,0,1,@TIMER,255,1), +(@GUID1+195,189980,571,1,1,8006.929,1907.343,380.7083,-1.13446,0,0,0,1,@TIMER,255,1), +(@GUID1+196,189980,571,1,1,8044.050,1805.050,409.0340,2.09439,0,0,0,1,@TIMER,255,1), +(@GUID1+197,189980,571,1,1,8050.090,2858.940,510.4690,-1.65806,0,0,0,1,@TIMER,255,1), +(@GUID1+198,189980,571,1,1,8078.370,1646.490,553.9380,1.97222,0,0,0,1,@TIMER,255,1), +(@GUID1+199,189980,571,1,1,8128.210,1460.340,698.1700,0.20944,0,0,0,1,@TIMER,255,1), +(@GUID1+200,189980,571,1,1,8150.700,1169.640,687.5320,-0.83776,0,0,0,1,@TIMER,255,1), +(@GUID1+201,189980,571,1,1,8160.790,1539.710,630.5920,0.76794,0,0,0,1,@TIMER,255,1), +(@GUID1+202,189980,571,1,1,8161.500,1561.790,613.8130,2.05949,0,0,0,1,@TIMER,255,1), +(@GUID1+203,189980,571,1,1,8162.180,1286.700,785.9620,2.33874,0,0,0,1,@TIMER,255,1), +(@GUID1+204,189980,571,1,1,8168.020,1303.410,793.5940,0.15708,0,0,0,1,@TIMER,255,1), +(@GUID1+205,189980,571,1,1,8207.790,1281.010,775.6510,-0.87266,0,0,0,1,@TIMER,255,1), +(@GUID1+206,189980,571,1,1,8242.540,1257.540,741.1770,-1.37881,0,0,0,1,@TIMER,255,1), +(@GUID1+207,189980,571,1,1,8253.710,1842.500,563.0770,1.44862,0,0,0,1,@TIMER,255,1), +(@GUID1+208,189980,571,1,1,8266.340,1755.560,580.5210,-2.91469,0,0,0,1,@TIMER,255,1), +(@GUID1+209,189980,571,1,1,8292.690,2611.040,718.0010,-2.93214,0,0,0,1,@TIMER,255,1), +(@GUID1+210,189980,571,1,1,8308.630,3014.360,679.2830,1.44862,0,0,0,1,@TIMER,255,1), +(@GUID1+211,189980,571,1,1,8450.060,1675.780,701.8550,-2.04204,0,0,0,1,@TIMER,255,1), +(@GUID1+212,189980,571,1,1,8478.730,1445.280,641.2010,1.25664,0,0,0,1,@TIMER,255,1), +(@GUID1+213,189980,571,1,1,8478.730,1445.280,650.4550,1.25664,0,0,0,1,@TIMER,255,1), +(@GUID1+214,189980,571,1,1,8523.810,1290.220,623.7830,-3.00195,0,0,0,1,@TIMER,255,1), +(@GUID1+215,189980,571,1,1,8579.111,1431.439,615.5118,2.37364,0,0,0,1,@TIMER,255,1), +(@GUID1+216,189980,571,1,1,8698.680,909.670,496.3710,-0.71559,0,0,0,1,@TIMER,255,1), +(@GUID1+217,189980,571,1,1,8707.630,1008.050,443.8770,0.89012,0,0,0,1,@TIMER,255,1), +(@GUID1+218,189980,571,1,2,5915.753,1990.665,518.8197,-2.98450,0,0,0,1,@TIMER,255,1), +(@GUID1+219,189980,571,1,2,5996.645,2335.773,518.0319,-0.55850,0,0,0,1,@TIMER,255,1), +(@GUID1+220,189980,571,1,2,6367.613,1682.053,548.5184,-0.83776,0,0,0,1,@TIMER,255,1), +(@GUID1+221,189980,571,1,2,6691.890,1520.673,466.3800,-2.07694,0,0,0,1,@TIMER,255,1), +(@GUID1+222,189980,571,1,3,5715.870,2059.130,-340.3910,-2.25147,0,0,0,1,@TIMER,255,1), +(@GUID1+223,189980,571,1,3,7332.590,3024.400,440.8590,-1.22173,0,0,0,1,@TIMER,255,1), +(@GUID1+224,189980,571,1,3,8149.280,2384.140,510.6090,2.51327,0,0,0,1,@TIMER,255,1), +(@GUID1+225,189980,571,1,4,7566.926,1642.527,348.2145,1.09956,0,0,0,1,@TIMER,255,1), +(@GUID1+226,189980,571,1,4,7828.466,1809.705,348.0653,0.43633,0,0,0,1,@TIMER,255,1), +(@GUID1+227,189980,571,1,5,5877.630,1942.750,518.3700,-0.27925,0,0,0,1,@TIMER,255,1), +(@GUID1+228,189980,571,1,5,5889.070,2160.360,515.0020,-2.47837,0,0,0,1,@TIMER,255,1), +(@GUID1+229,189980,571,1,5,5966.520,1908.870,580.8170,0.71559,0,0,0,1,@TIMER,255,1), +(@GUID1+230,189980,571,1,64,6803.910,3634.238,743.4531,-0.33161,0,0,0,1,@TIMER,255,1), +(@GUID1+231,189980,571,1,64,7070.146,3508.667,733.4362,-1.22173,0,0,0,1,@TIMER,255,1), +(@GUID1+232,189980,571,1,256,6166.920,2004.080,541.9620,1.79769,0,0,0,1,@TIMER,255,1), +(@GUID1+233,189980,571,1,256,6522.390,2173.170,509.0700,-3.10665,0,0,0,1,@TIMER,255,1), +(@GUID1+234,189980,571,1,256,6831.540,2201.450,663.2940,2.98450,0,0,0,1,@TIMER,255,1); +-- Rich Saronite Deposits Icecrown +INSERT INTO `gameobject` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`position_x`,`position_y`,`position_z`,`orientation`,`rotation0`,`rotation1`,`rotation2`,`rotation3`,`spawntimesecs`,`animprogress`,`state`) VALUES +(@GUID2+0,189981,571,1,1,6674.631,1332.353,299.6001,-1.34390,0,0,0,1,@TIMER,255,1), +(@GUID2+1,189981,571,1,1,6939.153,2862.694,435.1407,1.57080,0,0,0,1,@TIMER,255,1), +(@GUID2+2,189981,571,1,1,7980.812,3096.596,635.4854,-3.01941,0,0,0,1,@TIMER,255,1), +(@GUID2+3,189981,571,1,1,5636.890,1931.159,517.3533,-1.50098,0,0,0,1,@TIMER,255,1), +(@GUID2+4,189981,571,1,1,5665.190,1897.490,519.6750,2.93214,0,0,0,1,@TIMER,255,1), +(@GUID2+5,189981,571,1,1,5706.650,2046.590,-339.6590,-2.39110,0,0,0,1,@TIMER,255,1), +(@GUID2+6,189981,571,1,1,5711.610,2071.070,-340.7400,-1.15192,0,0,0,1,@TIMER,255,1), +(@GUID2+7,189981,571,1,1,5749.150,2086.660,-343.5200,-2.09439,0,0,0,1,@TIMER,255,1), +(@GUID2+8,189981,571,1,1,5753.728,2282.746,533.9716,-1.53589,0,0,0,1,@TIMER,255,1), +(@GUID2+9,189981,571,1,1,5775.480,2081.830,-342.7420,0.71559,0,0,0,1,@TIMER,255,1), +(@GUID2+10,189981,571,1,1,5790.740,2214.070,515.1540,1.30900,0,0,0,1,@TIMER,255,1), +(@GUID2+11,189981,571,1,1,5808.930,2268.290,523.3210,2.53072,0,0,0,1,@TIMER,255,1), +(@GUID2+12,189981,571,1,1,5826.980,1863.070,-345.8090,1.90241,0,0,0,1,@TIMER,255,1), +(@GUID2+13,189981,571,1,1,5842.430,1858.810,-345.3000,-2.68781,0,0,0,1,@TIMER,255,1), +(@GUID2+14,189981,571,1,1,5843.150,2256.140,520.1550,-1.06465,0,0,0,1,@TIMER,255,1), +(@GUID2+15,189981,571,1,1,5857.440,1936.720,510.8840,0.17453,0,0,0,1,@TIMER,255,1), +(@GUID2+16,189981,571,1,1,5890.500,1915.920,-345.9820,-1.76278,0,0,0,1,@TIMER,255,1), +(@GUID2+17,189981,571,1,1,5890.500,1915.920,-345.9820,-1.76278,0,0,0,1,@TIMER,255,1), +(@GUID2+18,189981,571,1,1,5894.700,1913.140,-345.9370,-2.07694,0,0,0,1,@TIMER,255,1), +(@GUID2+19,189981,571,1,1,5914.500,2015.980,516.3390,2.93214,0,0,0,1,@TIMER,255,1), +(@GUID2+20,189981,571,1,1,5941.548,1912.958,567.5397,0.97738,0,0,0,1,@TIMER,255,1), +(@GUID2+21,189981,571,1,1,5957.890,2517.910,537.2770,1.09956,0,0,0,1,@TIMER,255,1), +(@GUID2+22,189981,571,1,1,5961.092,2412.068,519.9221,2.51327,0,0,0,1,@TIMER,255,1), +(@GUID2+23,189981,571,1,1,5967.890,1850.520,630.5570,-0.52360,0,0,0,1,@TIMER,255,1), +(@GUID2+24,189981,571,1,1,6038.564,2326.347,514.5131,1.69297,0,0,0,1,@TIMER,255,1), +(@GUID2+25,189981,571,1,1,6171.915,2015.665,531.4319,-1.43117,0,0,0,1,@TIMER,255,1), +(@GUID2+26,189981,571,1,1,6448.210,1897.020,515.3600,0.36652,0,0,0,1,@TIMER,255,1), +(@GUID2+27,189981,571,1,1,6466.150,137.682,444.7190,2.35619,0,0,0,1,@TIMER,255,1), +(@GUID2+28,189981,571,1,1,6466.396,648.508,428.8037,1.79769,0,0,0,1,@TIMER,255,1), +(@GUID2+29,189981,571,1,1,6477.440,2487.120,475.9810,-0.27925,0,0,0,1,@TIMER,255,1), +(@GUID2+30,189981,571,1,1,6481.970,540.381,438.7030,0.47124,0,0,0,1,@TIMER,255,1), +(@GUID2+31,189981,571,1,1,6482.543,2462.866,468.1175,-1.91986,0,0,0,1,@TIMER,255,1), +(@GUID2+32,189981,571,1,1,6483.739,1237.931,286.9318,1.37881,0,0,0,1,@TIMER,255,1), +(@GUID2+33,189981,571,1,1,6484.370,294.937,399.8210,-1.15192,0,0,0,1,@TIMER,255,1), +(@GUID2+34,189981,571,1,1,6497.030,3510.880,540.2320,-2.70526,0,0,0,1,@TIMER,255,1), +(@GUID2+35,189981,571,1,1,6514.270,896.626,290.6450,1.29154,0,0,0,1,@TIMER,255,1), +(@GUID2+36,189981,571,1,1,6533.500,907.337,294.8920,0.17453,0,0,0,1,@TIMER,255,1), +(@GUID2+37,189981,571,1,1,6541.251,1011.675,276.9524,0.08727,0,0,0,1,@TIMER,255,1), +(@GUID2+38,189981,571,1,1,6554.230,332.830,411.5670,0.13962,0,0,0,1,@TIMER,255,1), +(@GUID2+39,189981,571,1,1,6557.070,284.192,401.7890,0.73304,0,0,0,1,@TIMER,255,1), +(@GUID2+40,189981,571,1,1,6559.550,659.112,408.1460,-2.67035,0,0,0,1,@TIMER,255,1), +(@GUID2+41,189981,571,1,1,6561.430,1050.489,275.1745,2.42601,0,0,0,1,@TIMER,255,1), +(@GUID2+42,189981,571,1,1,6583.151,1267.122,286.0256,0.92502,0,0,0,1,@TIMER,255,1), +(@GUID2+43,189981,571,1,1,6604.228,1248.473,282.4915,2.04204,0,0,0,1,@TIMER,255,1), +(@GUID2+44,189981,571,1,1,6608.890,990.280,284.7300,-2.77507,0,0,0,1,@TIMER,255,1), +(@GUID2+45,189981,571,1,1,6618.750,356.354,453.1560,0.68068,0,0,0,1,@TIMER,255,1), +(@GUID2+46,189981,571,1,1,6622.904,1252.617,282.5027,1.71042,0,0,0,1,@TIMER,255,1), +(@GUID2+47,189981,571,1,1,6636.596,3176.859,648.8128,1.15192,0,0,0,1,@TIMER,255,1), +(@GUID2+48,189981,571,1,1,6640.880,3346.680,677.4100,-0.76794,0,0,0,1,@TIMER,255,1), +(@GUID2+49,189981,571,1,1,6658.340,688.135,410.4380,2.14675,0,0,0,1,@TIMER,255,1), +(@GUID2+50,189981,571,1,1,6662.220,573.318,406.8580,-0.41888,0,0,0,1,@TIMER,255,1), +(@GUID2+51,189981,571,1,1,6664.980,615.527,410.0190,-2.86233,0,0,0,1,@TIMER,255,1), +(@GUID2+52,189981,571,1,1,6672.161,1189.572,273.2596,-2.49582,0,0,0,1,@TIMER,255,1), +(@GUID2+53,189981,571,1,1,6691.890,1520.673,466.3800,-2.07694,0,0,0,1,@TIMER,255,1), +(@GUID2+54,189981,571,1,1,6696.400,743.905,396.9640,-0.12217,0,0,0,1,@TIMER,255,1), +(@GUID2+55,189981,571,1,1,6710.980,644.300,412.4740,-1.29154,0,0,0,1,@TIMER,255,1), +(@GUID2+56,189981,571,1,1,6717.320,1228.804,275.0786,-2.86234,0,0,0,1,@TIMER,255,1), +(@GUID2+57,189981,571,1,1,6725.160,570.259,424.5290,-2.46091,0,0,0,1,@TIMER,255,1), +(@GUID2+58,189981,571,1,1,6734.880,1458.500,403.8720,0.31416,0,0,0,1,@TIMER,255,1), +(@GUID2+59,189981,571,1,1,6737.770,586.034,425.3840,1.48353,0,0,0,1,@TIMER,255,1), +(@GUID2+60,189981,571,1,1,6748.570,2727.220,435.5540,1.22173,0,0,0,1,@TIMER,255,1), +(@GUID2+61,189981,571,1,1,6751.800,1325.140,285.5890,-1.60570,0,0,0,1,@TIMER,255,1), +(@GUID2+62,189981,571,1,1,6753.930,328.981,442.2290,0.92502,0,0,0,1,@TIMER,255,1), +(@GUID2+63,189981,571,1,1,6754.170,2342.520,442.6880,-2.09439,0,0,0,1,@TIMER,255,1), +(@GUID2+64,189981,571,1,1,6754.800,575.615,425.3900,-1.41372,0,0,0,1,@TIMER,255,1), +(@GUID2+65,189981,571,1,1,6755.160,1224.160,276.8440,0.34907,0,0,0,1,@TIMER,255,1), +(@GUID2+66,189981,571,1,1,6755.390,974.467,312.3300,-2.19912,0,0,0,1,@TIMER,255,1), +(@GUID2+67,189981,571,1,1,6756.568,2694.843,427.8352,-2.80998,0,0,0,1,@TIMER,255,1), +(@GUID2+68,189981,571,1,1,6758.730,585.806,425.6570,0.26180,0,0,0,1,@TIMER,255,1), +(@GUID2+69,189981,571,1,1,6766.010,2936.860,456.1350,-2.00713,0,0,0,1,@TIMER,255,1), +(@GUID2+70,189981,571,1,1,6774.690,499.547,410.7330,-0.97738,0,0,0,1,@TIMER,255,1), +(@GUID2+71,189981,571,1,1,6781.035,1131.430,278.6142,2.04204,0,0,0,1,@TIMER,255,1), +(@GUID2+72,189981,571,1,1,6789.004,1141.311,277.1633,-1.81514,0,0,0,1,@TIMER,255,1), +(@GUID2+73,189981,571,1,1,6790.110,449.812,411.4930,-1.09956,0,0,0,1,@TIMER,255,1), +(@GUID2+74,189981,571,1,1,6793.867,924.565,348.8412,0.85521,0,0,0,1,@TIMER,255,1), +(@GUID2+75,189981,571,1,1,6797.174,2369.824,435.4318,-0.38397,0,0,0,1,@TIMER,255,1), +(@GUID2+76,189981,571,1,1,6804.510,1294.230,281.1890,0.50615,0,0,0,1,@TIMER,255,1), +(@GUID2+77,189981,571,1,1,6817.340,453.798,470.4500,-3.03684,0,0,0,1,@TIMER,255,1), +(@GUID2+78,189981,571,1,1,6818.782,2181.032,660.7790,-1.83259,0,0,0,1,@TIMER,255,1), +(@GUID2+79,189981,571,1,1,6824.141,2207.658,654.9231,-1.13446,0,0,0,1,@TIMER,255,1), +(@GUID2+80,189981,571,1,1,6830.670,762.702,409.8570,2.12930,0,0,0,1,@TIMER,255,1), +(@GUID2+81,189981,571,1,1,6833.760,2472.190,421.7130,0.15708,0,0,0,1,@TIMER,255,1), +(@GUID2+82,189981,571,1,1,6884.590,645.147,426.5720,-0.83776,0,0,0,1,@TIMER,255,1), +(@GUID2+83,189981,571,1,1,6885.250,2378.060,427.7960,2.37364,0,0,0,1,@TIMER,255,1), +(@GUID2+84,189981,571,1,1,6885.810,2052.910,828.6610,0.08727,0,0,0,1,@TIMER,255,1), +(@GUID2+85,189981,571,1,1,6897.245,819.820,399.8205,-2.82743,0,0,0,1,@TIMER,255,1), +(@GUID2+86,189981,571,1,1,6898.430,786.803,405.3570,-1.48353,0,0,0,1,@TIMER,255,1), +(@GUID2+87,189981,571,1,1,6901.678,2352.561,428.5658,0.48869,0,0,0,1,@TIMER,255,1), +(@GUID2+88,189981,571,1,1,6943.630,3630.960,830.1040,-1.46608,0,0,0,1,@TIMER,255,1), +(@GUID2+89,189981,571,1,1,6944.920,407.241,513.6190,2.49582,0,0,0,1,@TIMER,255,1), +(@GUID2+90,189981,571,1,1,6993.890,681.144,491.2140,0.38397,0,0,0,1,@TIMER,255,1), +(@GUID2+91,189981,571,1,1,6999.950,849.854,402.0200,-0.38397,0,0,0,1,@TIMER,255,1), +(@GUID2+92,189981,571,1,1,7010.360,702.436,473.7730,3.03684,0,0,0,1,@TIMER,255,1), +(@GUID2+93,189981,571,1,1,7027.862,3066.551,475.0314,1.78023,0,0,0,1,@TIMER,255,1), +(@GUID2+94,189981,571,1,1,7028.880,2508.660,409.5580,-0.54105,0,0,0,1,@TIMER,255,1), +(@GUID2+95,189981,571,1,1,7053.120,824.111,537.6430,-1.88495,0,0,0,1,@TIMER,255,1), +(@GUID2+96,189981,571,1,1,7064.830,1379.270,307.5810,1.85005,0,0,0,1,@TIMER,255,1), +(@GUID2+97,189981,571,1,1,7067.230,1367.880,306.2920,2.61799,0,0,0,1,@TIMER,255,1), +(@GUID2+98,189981,571,1,1,7070.190,574.218,498.3680,-0.61086,0,0,0,1,@TIMER,255,1), +(@GUID2+99,189981,571,1,1,7102.520,3022.010,446.9720,1.79769,0,0,0,1,@TIMER,255,1), +(@GUID2+100,189981,571,1,1,7115.280,1450.230,315.6940,-2.02458,0,0,0,1,@TIMER,255,1), +(@GUID2+101,189981,571,1,1,7136.144,1119.962,310.4275,-1.09956,0,0,0,1,@TIMER,255,1), +(@GUID2+102,189981,571,1,1,7144.400,2507.150,405.9100,-1.62316,0,0,0,1,@TIMER,255,1), +(@GUID2+103,189981,571,1,1,7162.500,2547.990,399.1830,1.71042,0,0,0,1,@TIMER,255,1), +(@GUID2+104,189981,571,1,1,7164.714,2521.346,402.8072,0.27925,0,0,0,1,@TIMER,255,1), +(@GUID2+105,189981,571,1,1,7185.228,2548.746,397.5674,1.55334,0,0,0,1,@TIMER,255,1), +(@GUID2+106,189981,571,1,1,7215.860,2846.910,408.1010,2.89724,0,0,0,1,@TIMER,255,1), +(@GUID2+107,189981,571,1,1,7231.514,2847.632,405.2855,-0.27925,0,0,0,1,@TIMER,255,1), +(@GUID2+108,189981,571,1,1,7235.410,575.545,499.3020,3.12412,0,0,0,1,@TIMER,255,1), +(@GUID2+109,189981,571,1,1,7235.530,1516.760,326.9980,-1.93732,0,0,0,1,@TIMER,255,1), +(@GUID2+110,189981,571,1,1,7238.310,785.106,552.4170,0.26180,0,0,0,1,@TIMER,255,1), +(@GUID2+111,189981,571,1,1,7240.890,2399.818,417.6793,-2.44346,0,0,0,1,@TIMER,255,1), +(@GUID2+112,189981,571,1,1,7260.710,1512.270,322.2740,2.19912,0,0,0,1,@TIMER,255,1), +(@GUID2+113,189981,571,1,1,7323.180,2252.330,461.4260,2.49582,0,0,0,1,@TIMER,255,1), +(@GUID2+114,189981,571,1,1,7330.260,2996.150,434.1070,-1.98967,0,0,0,1,@TIMER,255,1), +(@GUID2+115,189981,571,1,1,7330.480,2485.730,392.8050,1.11701,0,0,0,1,@TIMER,255,1), +(@GUID2+116,189981,571,1,1,7343.430,602.649,615.5180,2.42601,0,0,0,1,@TIMER,255,1), +(@GUID2+117,189981,571,1,1,7347.470,561.248,613.0550,-0.55850,0,0,0,1,@TIMER,255,1), +(@GUID2+118,189981,571,1,1,7362.550,614.322,580.0140,-3.01941,0,0,0,1,@TIMER,255,1), +(@GUID2+119,189981,571,1,1,7382.990,2443.480,387.4290,-2.37364,0,0,0,1,@TIMER,255,1), +(@GUID2+120,189981,571,1,1,7391.310,568.383,577.8610,-1.25664,0,0,0,1,@TIMER,255,1), +(@GUID2+121,189981,571,1,1,7399.734,2867.122,417.6852,-2.28638,0,0,0,1,@TIMER,255,1), +(@GUID2+122,189981,571,1,1,7420.410,3083.890,586.8870,-2.35619,0,0,0,1,@TIMER,255,1), +(@GUID2+123,189981,571,1,1,7420.450,632.061,497.2910,-1.79769,0,0,0,1,@TIMER,255,1), +(@GUID2+124,189981,571,1,1,7427.840,1463.890,324.1520,2.33874,0,0,0,1,@TIMER,255,1), +(@GUID2+125,189981,571,1,1,7431.122,3330.435,693.0119,1.08210,0,0,0,1,@TIMER,255,1), +(@GUID2+126,189981,571,1,1,7466.787,2726.011,412.2881,-0.24435,0,0,0,1,@TIMER,255,1), +(@GUID2+127,189981,571,1,1,7471.173,2497.169,390.4092,-1.34390,0,0,0,1,@TIMER,255,1), +(@GUID2+128,189981,571,1,1,7472.370,1305.690,320.0850,-2.28638,0,0,0,1,@TIMER,255,1), +(@GUID2+129,189981,571,1,1,7476.556,1295.246,322.1502,-0.55850,0,0,0,1,@TIMER,255,1), +(@GUID2+130,189981,571,1,1,7476.560,1295.250,322.1500,-0.55850,0,0,0,1,@TIMER,255,1), +(@GUID2+131,189981,571,1,1,7488.803,1813.892,361.4976,-2.65289,0,0,0,1,@TIMER,255,1), +(@GUID2+132,189981,571,1,1,7488.803,1813.892,361.4976,-2.65289,0,0,0,1,@TIMER,255,1), +(@GUID2+133,189981,571,1,1,7490.424,2678.968,433.0785,-1.15192,0,0,0,1,@TIMER,255,1), +(@GUID2+134,189981,571,1,1,7512.870,1172.610,344.4850,-1.32645,0,0,0,1,@TIMER,255,1), +(@GUID2+135,189981,571,1,1,7517.870,1846.080,360.2560,0.15708,0,0,0,1,@TIMER,255,1), +(@GUID2+136,189981,571,1,1,7521.310,2268.770,391.4060,-1.04720,0,0,0,1,@TIMER,255,1), +(@GUID2+137,189981,571,1,1,7523.600,2698.610,409.9320,2.96704,0,0,0,1,@TIMER,255,1), +(@GUID2+138,189981,571,1,1,7526.180,970.248,533.5250,0.75049,0,0,0,1,@TIMER,255,1), +(@GUID2+139,189981,571,1,1,7529.280,639.333,494.9540,-2.02458,0,0,0,1,@TIMER,255,1), +(@GUID2+140,189981,571,1,1,7541.840,896.319,489.3380,0.95993,0,0,0,1,@TIMER,255,1), +(@GUID2+141,189981,571,1,1,7542.460,2870.100,429.9170,1.85005,0,0,0,1,@TIMER,255,1), +(@GUID2+142,189981,571,1,1,7549.750,982.975,483.2320,0.76794,0,0,0,1,@TIMER,255,1), +(@GUID2+143,189981,571,1,1,7554.596,1864.645,367.2740,0.24435,0,0,0,1,@TIMER,255,1), +(@GUID2+144,189981,571,1,1,7576.460,1972.390,369.5900,-0.87266,0,0,0,1,@TIMER,255,1), +(@GUID2+145,189981,571,1,1,7595.120,1891.100,371.2320,-2.72271,0,0,0,1,@TIMER,255,1), +(@GUID2+146,189981,571,1,1,7607.160,1752.610,339.9570,0.15708,0,0,0,1,@TIMER,255,1), +(@GUID2+147,189981,571,1,1,7633.180,716.693,484.5840,1.88495,0,0,0,1,@TIMER,255,1), +(@GUID2+148,189981,571,1,1,7653.100,2792.670,414.9850,0.12217,0,0,0,1,@TIMER,255,1), +(@GUID2+149,189981,571,1,1,7656.878,1786.749,350.2715,-2.51327,0,0,0,1,@TIMER,255,1), +(@GUID2+150,189981,571,1,1,7656.880,1786.750,350.2720,-2.51327,0,0,0,1,@TIMER,255,1), +(@GUID2+151,189981,571,1,1,7664.280,1709.210,333.7010,1.85005,0,0,0,1,@TIMER,255,1), +(@GUID2+152,189981,571,1,1,7678.119,2818.930,444.8793,2.42601,0,0,0,1,@TIMER,255,1), +(@GUID2+153,189981,571,1,1,7679.018,1021.261,471.1822,1.83259,0,0,0,1,@TIMER,255,1), +(@GUID2+154,189981,571,1,1,7685.300,1256.030,341.5660,-2.30383,0,0,0,1,@TIMER,255,1), +(@GUID2+155,189981,571,1,1,7687.900,3554.850,736.6150,1.01229,0,0,0,1,@TIMER,255,1), +(@GUID2+156,189981,571,1,1,7688.260,1386.790,347.2900,-1.91986,0,0,0,1,@TIMER,255,1), +(@GUID2+157,189981,571,1,1,7689.330,3181.030,578.8330,0.40143,0,0,0,1,@TIMER,255,1), +(@GUID2+158,189981,571,1,1,7689.890,553.471,698.6200,0.68068,0,0,0,1,@TIMER,255,1), +(@GUID2+159,189981,571,1,1,7712.260,1282.210,339.2810,1.83259,0,0,0,1,@TIMER,255,1), +(@GUID2+160,189981,571,1,1,7720.600,1424.710,353.3610,-1.62316,0,0,0,1,@TIMER,255,1), +(@GUID2+161,189981,571,1,1,7726.390,1305.620,341.8380,-2.96704,0,0,0,1,@TIMER,255,1), +(@GUID2+162,189981,571,1,1,7733.940,1814.480,349.6280,-1.88495,0,0,0,1,@TIMER,255,1), +(@GUID2+163,189981,571,1,1,7744.650,1779.400,338.0610,3.03684,0,0,0,1,@TIMER,255,1), +(@GUID2+164,189981,571,1,1,7764.360,1088.720,395.6190,-0.61086,0,0,0,1,@TIMER,255,1), +(@GUID2+165,189981,571,1,1,7765.605,2713.188,409.2500,2.68781,0,0,0,1,@TIMER,255,1), +(@GUID2+166,189981,571,1,1,7772.450,796.567,517.5690,0.41888,0,0,0,1,@TIMER,255,1), +(@GUID2+167,189981,571,1,1,7773.792,1499.624,360.2978,-2.21657,0,0,0,1,@TIMER,255,1), +(@GUID2+168,189981,571,1,1,7774.563,2665.078,405.8254,-0.66322,0,0,0,1,@TIMER,255,1), +(@GUID2+169,189981,571,1,1,7774.563,2665.078,405.8254,-0.66322,0,0,0,1,@TIMER,255,1), +(@GUID2+170,189981,571,1,1,7779.620,1830.560,356.3590,-2.53072,0,0,0,1,@TIMER,255,1), +(@GUID2+171,189981,571,1,1,7781.560,1106.510,395.6670,2.54818,0,0,0,1,@TIMER,255,1), +(@GUID2+172,189981,571,1,1,7784.990,1043.740,395.6190,1.88495,0,0,0,1,@TIMER,255,1), +(@GUID2+173,189981,571,1,1,7793.370,1526.290,363.6070,0.48869,0,0,0,1,@TIMER,255,1), +(@GUID2+174,189981,571,1,1,7805.900,943.421,451.6210,-1.09956,0,0,0,1,@TIMER,255,1), +(@GUID2+175,189981,571,1,1,7819.700,1132.740,395.6190,-3.07177,0,0,0,1,@TIMER,255,1), +(@GUID2+176,189981,571,1,1,7822.420,696.106,554.0000,1.01229,0,0,0,1,@TIMER,255,1), +(@GUID2+177,189981,571,1,1,7833.479,3008.132,536.2718,-1.20428,0,0,0,1,@TIMER,255,1), +(@GUID2+178,189981,571,1,1,7834.560,818.007,501.7090,-0.92502,0,0,0,1,@TIMER,255,1), +(@GUID2+179,189981,571,1,1,7845.009,3354.724,736.6236,0.82030,0,0,0,1,@TIMER,255,1), +(@GUID2+180,189981,571,1,1,7848.730,1108.210,395.6100,2.74016,0,0,0,1,@TIMER,255,1), +(@GUID2+181,189981,571,1,1,7854.104,1125.911,395.6191,1.88495,0,0,0,1,@TIMER,255,1), +(@GUID2+182,189981,571,1,1,7857.740,1414.600,439.1670,-2.25147,0,0,0,1,@TIMER,255,1), +(@GUID2+183,189981,571,1,1,7867.160,1550.810,378.1740,0.27925,0,0,0,1,@TIMER,255,1), +(@GUID2+184,189981,571,1,1,7894.100,1533.870,396.8620,-3.07177,0,0,0,1,@TIMER,255,1), +(@GUID2+185,189981,571,1,1,7915.382,2484.846,405.5244,0.73304,0,0,0,1,@TIMER,255,1), +(@GUID2+186,189981,571,1,1,7926.210,2439.340,411.3850,2.67035,0,0,0,1,@TIMER,255,1), +(@GUID2+187,189981,571,1,1,7930.313,2802.014,499.5031,-2.44346,0,0,0,1,@TIMER,255,1), +(@GUID2+188,189981,571,1,1,7935.660,1579.350,411.4840,-1.91986,0,0,0,1,@TIMER,255,1), +(@GUID2+189,189981,571,1,1,7937.930,1442.640,520.4660,2.26892,0,0,0,1,@TIMER,255,1), +(@GUID2+190,189981,571,1,1,7940.259,3483.749,694.0527,-1.65806,0,0,0,1,@TIMER,255,1), +(@GUID2+191,189981,571,1,1,7941.500,1706.580,371.8170,-0.27925,0,0,0,1,@TIMER,255,1), +(@GUID2+192,189981,571,1,1,7958.130,1927.860,367.0540,3.05433,0,0,0,1,@TIMER,255,1), +(@GUID2+193,189981,571,1,1,7963.188,2787.479,525.1877,-1.83259,0,0,0,1,@TIMER,255,1), +(@GUID2+194,189981,571,1,1,7980.900,1539.410,467.7100,1.46608,0,0,0,1,@TIMER,255,1), +(@GUID2+195,189981,571,1,1,8006.929,1907.343,380.7083,-1.13446,0,0,0,1,@TIMER,255,1), +(@GUID2+196,189981,571,1,1,8044.050,1805.050,409.0340,2.09439,0,0,0,1,@TIMER,255,1), +(@GUID2+197,189981,571,1,1,8050.090,2858.940,510.4690,-1.65806,0,0,0,1,@TIMER,255,1), +(@GUID2+198,189981,571,1,1,8078.370,1646.490,553.9380,1.97222,0,0,0,1,@TIMER,255,1), +(@GUID2+199,189981,571,1,1,8128.210,1460.340,698.1700,0.20944,0,0,0,1,@TIMER,255,1), +(@GUID2+200,189981,571,1,1,8150.700,1169.640,687.5320,-0.83776,0,0,0,1,@TIMER,255,1), +(@GUID2+201,189981,571,1,1,8160.790,1539.710,630.5920,0.76794,0,0,0,1,@TIMER,255,1), +(@GUID2+202,189981,571,1,1,8161.500,1561.790,613.8130,2.05949,0,0,0,1,@TIMER,255,1), +(@GUID2+203,189981,571,1,1,8162.180,1286.700,785.9620,2.33874,0,0,0,1,@TIMER,255,1), +(@GUID2+204,189981,571,1,1,8168.020,1303.410,793.5940,0.15708,0,0,0,1,@TIMER,255,1), +(@GUID2+205,189981,571,1,1,8207.790,1281.010,775.6510,-0.87266,0,0,0,1,@TIMER,255,1), +(@GUID2+206,189981,571,1,1,8242.540,1257.540,741.1770,-1.37881,0,0,0,1,@TIMER,255,1), +(@GUID2+207,189981,571,1,1,8253.710,1842.500,563.0770,1.44862,0,0,0,1,@TIMER,255,1), +(@GUID2+208,189981,571,1,1,8266.340,1755.560,580.5210,-2.91469,0,0,0,1,@TIMER,255,1), +(@GUID2+209,189981,571,1,1,8292.690,2611.040,718.0010,-2.93214,0,0,0,1,@TIMER,255,1), +(@GUID2+210,189981,571,1,1,8308.630,3014.360,679.2830,1.44862,0,0,0,1,@TIMER,255,1), +(@GUID2+211,189981,571,1,1,8450.060,1675.780,701.8550,-2.04204,0,0,0,1,@TIMER,255,1), +(@GUID2+212,189981,571,1,1,8478.730,1445.280,641.2010,1.25664,0,0,0,1,@TIMER,255,1), +(@GUID2+213,189981,571,1,1,8478.730,1445.280,650.4550,1.25664,0,0,0,1,@TIMER,255,1), +(@GUID2+214,189981,571,1,1,8523.810,1290.220,623.7830,-3.00195,0,0,0,1,@TIMER,255,1), +(@GUID2+215,189981,571,1,1,8579.111,1431.439,615.5118,2.37364,0,0,0,1,@TIMER,255,1), +(@GUID2+216,189981,571,1,1,8698.680,909.670,496.3710,-0.71559,0,0,0,1,@TIMER,255,1), +(@GUID2+217,189981,571,1,1,8707.630,1008.050,443.8770,0.89012,0,0,0,1,@TIMER,255,1), +(@GUID2+218,189981,571,1,2,5915.753,1990.665,518.8197,-2.98450,0,0,0,1,@TIMER,255,1), +(@GUID2+219,189981,571,1,2,5996.645,2335.773,518.0319,-0.55850,0,0,0,1,@TIMER,255,1), +(@GUID2+220,189981,571,1,2,6367.613,1682.053,548.5184,-0.83776,0,0,0,1,@TIMER,255,1), +(@GUID2+221,189981,571,1,2,6691.890,1520.673,466.3800,-2.07694,0,0,0,1,@TIMER,255,1), +(@GUID2+222,189981,571,1,3,5715.870,2059.130,-340.3910,-2.25147,0,0,0,1,@TIMER,255,1), +(@GUID2+223,189981,571,1,3,7332.590,3024.400,440.8590,-1.22173,0,0,0,1,@TIMER,255,1), +(@GUID2+224,189981,571,1,3,8149.280,2384.140,510.6090,2.51327,0,0,0,1,@TIMER,255,1), +(@GUID2+225,189981,571,1,4,7566.926,1642.527,348.2145,1.09956,0,0,0,1,@TIMER,255,1), +(@GUID2+226,189981,571,1,4,7828.466,1809.705,348.0653,0.43633,0,0,0,1,@TIMER,255,1), +(@GUID2+227,189981,571,1,5,5877.630,1942.750,518.3700,-0.27925,0,0,0,1,@TIMER,255,1), +(@GUID2+228,189981,571,1,5,5889.070,2160.360,515.0020,-2.47837,0,0,0,1,@TIMER,255,1), +(@GUID2+229,189981,571,1,5,5966.520,1908.870,580.8170,0.71559,0,0,0,1,@TIMER,255,1), +(@GUID2+230,189981,571,1,64,6803.910,3634.238,743.4531,-0.33161,0,0,0,1,@TIMER,255,1), +(@GUID2+231,189981,571,1,64,7070.146,3508.667,733.4362,-1.22173,0,0,0,1,@TIMER,255,1), +(@GUID2+232,189981,571,1,256,6166.920,2004.080,541.9620,1.79769,0,0,0,1,@TIMER,255,1), +(@GUID2+233,189981,571,1,256,6522.390,2173.170,509.0700,-3.10665,0,0,0,1,@TIMER,255,1), +(@GUID2+234,189981,571,1,256,6831.540,2201.450,663.2940,2.98450,0,0,0,1,@TIMER,255,1); +-- Titanium Deposits Icecrown +INSERT INTO `gameobject` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`position_x`,`position_y`,`position_z`,`orientation`,`rotation0`,`rotation1`,`rotation2`,`rotation3`,`spawntimesecs`,`animprogress`,`state`) VALUES +(@GUID3+0,191133,571,1,1,6674.631,1332.353,299.6001,-1.34390,0,0,0,1,@TIMER,255,1), +(@GUID3+1,191133,571,1,1,6939.153,2862.694,435.1407,1.57080,0,0,0,1,@TIMER,255,1), +(@GUID3+2,191133,571,1,1,7980.812,3096.596,635.4854,-3.01941,0,0,0,1,@TIMER,255,1), +(@GUID3+3,191133,571,1,1,5636.890,1931.159,517.3533,-1.50098,0,0,0,1,@TIMER,255,1), +(@GUID3+4,191133,571,1,1,5665.190,1897.490,519.6750,2.93214,0,0,0,1,@TIMER,255,1), +(@GUID3+5,191133,571,1,1,5706.650,2046.590,-339.6590,-2.39110,0,0,0,1,@TIMER,255,1), +(@GUID3+6,191133,571,1,1,5711.610,2071.070,-340.7400,-1.15192,0,0,0,1,@TIMER,255,1), +(@GUID3+7,191133,571,1,1,5749.150,2086.660,-343.5200,-2.09439,0,0,0,1,@TIMER,255,1), +(@GUID3+8,191133,571,1,1,5753.728,2282.746,533.9716,-1.53589,0,0,0,1,@TIMER,255,1), +(@GUID3+9,191133,571,1,1,5775.480,2081.830,-342.7420,0.71559,0,0,0,1,@TIMER,255,1), +(@GUID3+10,191133,571,1,1,5790.740,2214.070,515.1540,1.30900,0,0,0,1,@TIMER,255,1), +(@GUID3+11,191133,571,1,1,5808.930,2268.290,523.3210,2.53072,0,0,0,1,@TIMER,255,1), +(@GUID3+12,191133,571,1,1,5826.980,1863.070,-345.8090,1.90241,0,0,0,1,@TIMER,255,1), +(@GUID3+13,191133,571,1,1,5842.430,1858.810,-345.3000,-2.68781,0,0,0,1,@TIMER,255,1), +(@GUID3+14,191133,571,1,1,5843.150,2256.140,520.1550,-1.06465,0,0,0,1,@TIMER,255,1), +(@GUID3+15,191133,571,1,1,5857.440,1936.720,510.8840,0.17453,0,0,0,1,@TIMER,255,1), +(@GUID3+16,191133,571,1,1,5890.500,1915.920,-345.9820,-1.76278,0,0,0,1,@TIMER,255,1), +(@GUID3+17,191133,571,1,1,5890.500,1915.920,-345.9820,-1.76278,0,0,0,1,@TIMER,255,1), +(@GUID3+18,191133,571,1,1,5894.700,1913.140,-345.9370,-2.07694,0,0,0,1,@TIMER,255,1), +(@GUID3+19,191133,571,1,1,5914.500,2015.980,516.3390,2.93214,0,0,0,1,@TIMER,255,1), +(@GUID3+20,191133,571,1,1,5941.548,1912.958,567.5397,0.97738,0,0,0,1,@TIMER,255,1), +(@GUID3+21,191133,571,1,1,5957.890,2517.910,537.2770,1.09956,0,0,0,1,@TIMER,255,1), +(@GUID3+22,191133,571,1,1,5961.092,2412.068,519.9221,2.51327,0,0,0,1,@TIMER,255,1), +(@GUID3+23,191133,571,1,1,5967.890,1850.520,630.5570,-0.52360,0,0,0,1,@TIMER,255,1), +(@GUID3+24,191133,571,1,1,6038.564,2326.347,514.5131,1.69297,0,0,0,1,@TIMER,255,1), +(@GUID3+25,191133,571,1,1,6171.915,2015.665,531.4319,-1.43117,0,0,0,1,@TIMER,255,1), +(@GUID3+26,191133,571,1,1,6448.210,1897.020,515.3600,0.36652,0,0,0,1,@TIMER,255,1), +(@GUID3+27,191133,571,1,1,6466.150,137.682,444.7190,2.35619,0,0,0,1,@TIMER,255,1), +(@GUID3+28,191133,571,1,1,6466.396,648.508,428.8037,1.79769,0,0,0,1,@TIMER,255,1), +(@GUID3+29,191133,571,1,1,6477.440,2487.120,475.9810,-0.27925,0,0,0,1,@TIMER,255,1), +(@GUID3+30,191133,571,1,1,6481.970,540.381,438.7030,0.47124,0,0,0,1,@TIMER,255,1), +(@GUID3+31,191133,571,1,1,6482.543,2462.866,468.1175,-1.91986,0,0,0,1,@TIMER,255,1), +(@GUID3+32,191133,571,1,1,6483.739,1237.931,286.9318,1.37881,0,0,0,1,@TIMER,255,1), +(@GUID3+33,191133,571,1,1,6484.370,294.937,399.8210,-1.15192,0,0,0,1,@TIMER,255,1), +(@GUID3+34,191133,571,1,1,6497.030,3510.880,540.2320,-2.70526,0,0,0,1,@TIMER,255,1), +(@GUID3+35,191133,571,1,1,6514.270,896.626,290.6450,1.29154,0,0,0,1,@TIMER,255,1), +(@GUID3+36,191133,571,1,1,6533.500,907.337,294.8920,0.17453,0,0,0,1,@TIMER,255,1), +(@GUID3+37,191133,571,1,1,6541.251,1011.675,276.9524,0.08727,0,0,0,1,@TIMER,255,1), +(@GUID3+38,191133,571,1,1,6554.230,332.830,411.5670,0.13962,0,0,0,1,@TIMER,255,1), +(@GUID3+39,191133,571,1,1,6557.070,284.192,401.7890,0.73304,0,0,0,1,@TIMER,255,1), +(@GUID3+40,191133,571,1,1,6559.550,659.112,408.1460,-2.67035,0,0,0,1,@TIMER,255,1), +(@GUID3+41,191133,571,1,1,6561.430,1050.489,275.1745,2.42601,0,0,0,1,@TIMER,255,1), +(@GUID3+42,191133,571,1,1,6583.151,1267.122,286.0256,0.92502,0,0,0,1,@TIMER,255,1), +(@GUID3+43,191133,571,1,1,6604.228,1248.473,282.4915,2.04204,0,0,0,1,@TIMER,255,1), +(@GUID3+44,191133,571,1,1,6608.890,990.280,284.7300,-2.77507,0,0,0,1,@TIMER,255,1), +(@GUID3+45,191133,571,1,1,6618.750,356.354,453.1560,0.68068,0,0,0,1,@TIMER,255,1), +(@GUID3+46,191133,571,1,1,6622.904,1252.617,282.5027,1.71042,0,0,0,1,@TIMER,255,1), +(@GUID3+47,191133,571,1,1,6636.596,3176.859,648.8128,1.15192,0,0,0,1,@TIMER,255,1), +(@GUID3+48,191133,571,1,1,6640.880,3346.680,677.4100,-0.76794,0,0,0,1,@TIMER,255,1), +(@GUID3+49,191133,571,1,1,6658.340,688.135,410.4380,2.14675,0,0,0,1,@TIMER,255,1), +(@GUID3+50,191133,571,1,1,6662.220,573.318,406.8580,-0.41888,0,0,0,1,@TIMER,255,1), +(@GUID3+51,191133,571,1,1,6664.980,615.527,410.0190,-2.86233,0,0,0,1,@TIMER,255,1), +(@GUID3+52,191133,571,1,1,6672.161,1189.572,273.2596,-2.49582,0,0,0,1,@TIMER,255,1), +(@GUID3+53,191133,571,1,1,6691.890,1520.673,466.3800,-2.07694,0,0,0,1,@TIMER,255,1), +(@GUID3+54,191133,571,1,1,6696.400,743.905,396.9640,-0.12217,0,0,0,1,@TIMER,255,1), +(@GUID3+55,191133,571,1,1,6710.980,644.300,412.4740,-1.29154,0,0,0,1,@TIMER,255,1), +(@GUID3+56,191133,571,1,1,6717.320,1228.804,275.0786,-2.86234,0,0,0,1,@TIMER,255,1), +(@GUID3+57,191133,571,1,1,6725.160,570.259,424.5290,-2.46091,0,0,0,1,@TIMER,255,1), +(@GUID3+58,191133,571,1,1,6734.880,1458.500,403.8720,0.31416,0,0,0,1,@TIMER,255,1), +(@GUID3+59,191133,571,1,1,6737.770,586.034,425.3840,1.48353,0,0,0,1,@TIMER,255,1), +(@GUID3+60,191133,571,1,1,6748.570,2727.220,435.5540,1.22173,0,0,0,1,@TIMER,255,1), +(@GUID3+61,191133,571,1,1,6751.800,1325.140,285.5890,-1.60570,0,0,0,1,@TIMER,255,1), +(@GUID3+62,191133,571,1,1,6753.930,328.981,442.2290,0.92502,0,0,0,1,@TIMER,255,1), +(@GUID3+63,191133,571,1,1,6754.170,2342.520,442.6880,-2.09439,0,0,0,1,@TIMER,255,1), +(@GUID3+64,191133,571,1,1,6754.800,575.615,425.3900,-1.41372,0,0,0,1,@TIMER,255,1), +(@GUID3+65,191133,571,1,1,6755.160,1224.160,276.8440,0.34907,0,0,0,1,@TIMER,255,1), +(@GUID3+66,191133,571,1,1,6755.390,974.467,312.3300,-2.19912,0,0,0,1,@TIMER,255,1), +(@GUID3+67,191133,571,1,1,6756.568,2694.843,427.8352,-2.80998,0,0,0,1,@TIMER,255,1), +(@GUID3+68,191133,571,1,1,6758.730,585.806,425.6570,0.26180,0,0,0,1,@TIMER,255,1), +(@GUID3+69,191133,571,1,1,6766.010,2936.860,456.1350,-2.00713,0,0,0,1,@TIMER,255,1), +(@GUID3+70,191133,571,1,1,6774.690,499.547,410.7330,-0.97738,0,0,0,1,@TIMER,255,1), +(@GUID3+71,191133,571,1,1,6781.035,1131.430,278.6142,2.04204,0,0,0,1,@TIMER,255,1), +(@GUID3+72,191133,571,1,1,6789.004,1141.311,277.1633,-1.81514,0,0,0,1,@TIMER,255,1), +(@GUID3+73,191133,571,1,1,6790.110,449.812,411.4930,-1.09956,0,0,0,1,@TIMER,255,1), +(@GUID3+74,191133,571,1,1,6793.867,924.565,348.8412,0.85521,0,0,0,1,@TIMER,255,1), +(@GUID3+75,191133,571,1,1,6797.174,2369.824,435.4318,-0.38397,0,0,0,1,@TIMER,255,1), +(@GUID3+76,191133,571,1,1,6804.510,1294.230,281.1890,0.50615,0,0,0,1,@TIMER,255,1), +(@GUID3+77,191133,571,1,1,6817.340,453.798,470.4500,-3.03684,0,0,0,1,@TIMER,255,1), +(@GUID3+78,191133,571,1,1,6818.782,2181.032,660.7790,-1.83259,0,0,0,1,@TIMER,255,1), +(@GUID3+79,191133,571,1,1,6824.141,2207.658,654.9231,-1.13446,0,0,0,1,@TIMER,255,1), +(@GUID3+80,191133,571,1,1,6830.670,762.702,409.8570,2.12930,0,0,0,1,@TIMER,255,1), +(@GUID3+81,191133,571,1,1,6833.760,2472.190,421.7130,0.15708,0,0,0,1,@TIMER,255,1), +(@GUID3+82,191133,571,1,1,6884.590,645.147,426.5720,-0.83776,0,0,0,1,@TIMER,255,1), +(@GUID3+83,191133,571,1,1,6885.250,2378.060,427.7960,2.37364,0,0,0,1,@TIMER,255,1), +(@GUID3+84,191133,571,1,1,6885.810,2052.910,828.6610,0.08727,0,0,0,1,@TIMER,255,1), +(@GUID3+85,191133,571,1,1,6897.245,819.820,399.8205,-2.82743,0,0,0,1,@TIMER,255,1), +(@GUID3+86,191133,571,1,1,6898.430,786.803,405.3570,-1.48353,0,0,0,1,@TIMER,255,1), +(@GUID3+87,191133,571,1,1,6901.678,2352.561,428.5658,0.48869,0,0,0,1,@TIMER,255,1), +(@GUID3+88,191133,571,1,1,6943.630,3630.960,830.1040,-1.46608,0,0,0,1,@TIMER,255,1), +(@GUID3+89,191133,571,1,1,6944.920,407.241,513.6190,2.49582,0,0,0,1,@TIMER,255,1), +(@GUID3+90,191133,571,1,1,6993.890,681.144,491.2140,0.38397,0,0,0,1,@TIMER,255,1), +(@GUID3+91,191133,571,1,1,6999.950,849.854,402.0200,-0.38397,0,0,0,1,@TIMER,255,1), +(@GUID3+92,191133,571,1,1,7010.360,702.436,473.7730,3.03684,0,0,0,1,@TIMER,255,1), +(@GUID3+93,191133,571,1,1,7027.862,3066.551,475.0314,1.78023,0,0,0,1,@TIMER,255,1), +(@GUID3+94,191133,571,1,1,7028.880,2508.660,409.5580,-0.54105,0,0,0,1,@TIMER,255,1), +(@GUID3+95,191133,571,1,1,7053.120,824.111,537.6430,-1.88495,0,0,0,1,@TIMER,255,1), +(@GUID3+96,191133,571,1,1,7064.830,1379.270,307.5810,1.85005,0,0,0,1,@TIMER,255,1), +(@GUID3+97,191133,571,1,1,7067.230,1367.880,306.2920,2.61799,0,0,0,1,@TIMER,255,1), +(@GUID3+98,191133,571,1,1,7070.190,574.218,498.3680,-0.61086,0,0,0,1,@TIMER,255,1), +(@GUID3+99,191133,571,1,1,7102.520,3022.010,446.9720,1.79769,0,0,0,1,@TIMER,255,1), +(@GUID3+100,191133,571,1,1,7115.280,1450.230,315.6940,-2.02458,0,0,0,1,@TIMER,255,1), +(@GUID3+101,191133,571,1,1,7136.144,1119.962,310.4275,-1.09956,0,0,0,1,@TIMER,255,1), +(@GUID3+102,191133,571,1,1,7144.400,2507.150,405.9100,-1.62316,0,0,0,1,@TIMER,255,1), +(@GUID3+103,191133,571,1,1,7162.500,2547.990,399.1830,1.71042,0,0,0,1,@TIMER,255,1), +(@GUID3+104,191133,571,1,1,7164.714,2521.346,402.8072,0.27925,0,0,0,1,@TIMER,255,1), +(@GUID3+105,191133,571,1,1,7185.228,2548.746,397.5674,1.55334,0,0,0,1,@TIMER,255,1), +(@GUID3+106,191133,571,1,1,7215.860,2846.910,408.1010,2.89724,0,0,0,1,@TIMER,255,1), +(@GUID3+107,191133,571,1,1,7231.514,2847.632,405.2855,-0.27925,0,0,0,1,@TIMER,255,1), +(@GUID3+108,191133,571,1,1,7235.410,575.545,499.3020,3.12412,0,0,0,1,@TIMER,255,1), +(@GUID3+109,191133,571,1,1,7235.530,1516.760,326.9980,-1.93732,0,0,0,1,@TIMER,255,1), +(@GUID3+110,191133,571,1,1,7238.310,785.106,552.4170,0.26180,0,0,0,1,@TIMER,255,1), +(@GUID3+111,191133,571,1,1,7240.890,2399.818,417.6793,-2.44346,0,0,0,1,@TIMER,255,1), +(@GUID3+112,191133,571,1,1,7260.710,1512.270,322.2740,2.19912,0,0,0,1,@TIMER,255,1), +(@GUID3+113,191133,571,1,1,7323.180,2252.330,461.4260,2.49582,0,0,0,1,@TIMER,255,1), +(@GUID3+114,191133,571,1,1,7330.260,2996.150,434.1070,-1.98967,0,0,0,1,@TIMER,255,1), +(@GUID3+115,191133,571,1,1,7330.480,2485.730,392.8050,1.11701,0,0,0,1,@TIMER,255,1), +(@GUID3+116,191133,571,1,1,7343.430,602.649,615.5180,2.42601,0,0,0,1,@TIMER,255,1), +(@GUID3+117,191133,571,1,1,7347.470,561.248,613.0550,-0.55850,0,0,0,1,@TIMER,255,1), +(@GUID3+118,191133,571,1,1,7362.550,614.322,580.0140,-3.01941,0,0,0,1,@TIMER,255,1), +(@GUID3+119,191133,571,1,1,7382.990,2443.480,387.4290,-2.37364,0,0,0,1,@TIMER,255,1), +(@GUID3+120,191133,571,1,1,7391.310,568.383,577.8610,-1.25664,0,0,0,1,@TIMER,255,1), +(@GUID3+121,191133,571,1,1,7399.734,2867.122,417.6852,-2.28638,0,0,0,1,@TIMER,255,1), +(@GUID3+122,191133,571,1,1,7420.410,3083.890,586.8870,-2.35619,0,0,0,1,@TIMER,255,1), +(@GUID3+123,191133,571,1,1,7420.450,632.061,497.2910,-1.79769,0,0,0,1,@TIMER,255,1), +(@GUID3+124,191133,571,1,1,7427.840,1463.890,324.1520,2.33874,0,0,0,1,@TIMER,255,1), +(@GUID3+125,191133,571,1,1,7431.122,3330.435,693.0119,1.08210,0,0,0,1,@TIMER,255,1), +(@GUID3+126,191133,571,1,1,7466.787,2726.011,412.2881,-0.24435,0,0,0,1,@TIMER,255,1), +(@GUID3+127,191133,571,1,1,7471.173,2497.169,390.4092,-1.34390,0,0,0,1,@TIMER,255,1), +(@GUID3+128,191133,571,1,1,7472.370,1305.690,320.0850,-2.28638,0,0,0,1,@TIMER,255,1), +(@GUID3+129,191133,571,1,1,7476.556,1295.246,322.1502,-0.55850,0,0,0,1,@TIMER,255,1), +(@GUID3+130,191133,571,1,1,7476.560,1295.250,322.1500,-0.55850,0,0,0,1,@TIMER,255,1), +(@GUID3+131,191133,571,1,1,7488.803,1813.892,361.4976,-2.65289,0,0,0,1,@TIMER,255,1), +(@GUID3+132,191133,571,1,1,7488.803,1813.892,361.4976,-2.65289,0,0,0,1,@TIMER,255,1), +(@GUID3+133,191133,571,1,1,7490.424,2678.968,433.0785,-1.15192,0,0,0,1,@TIMER,255,1), +(@GUID3+134,191133,571,1,1,7512.870,1172.610,344.4850,-1.32645,0,0,0,1,@TIMER,255,1), +(@GUID3+135,191133,571,1,1,7517.870,1846.080,360.2560,0.15708,0,0,0,1,@TIMER,255,1), +(@GUID3+136,191133,571,1,1,7521.310,2268.770,391.4060,-1.04720,0,0,0,1,@TIMER,255,1), +(@GUID3+137,191133,571,1,1,7523.600,2698.610,409.9320,2.96704,0,0,0,1,@TIMER,255,1), +(@GUID3+138,191133,571,1,1,7526.180,970.248,533.5250,0.75049,0,0,0,1,@TIMER,255,1), +(@GUID3+139,191133,571,1,1,7529.280,639.333,494.9540,-2.02458,0,0,0,1,@TIMER,255,1), +(@GUID3+140,191133,571,1,1,7541.840,896.319,489.3380,0.95993,0,0,0,1,@TIMER,255,1), +(@GUID3+141,191133,571,1,1,7542.460,2870.100,429.9170,1.85005,0,0,0,1,@TIMER,255,1), +(@GUID3+142,191133,571,1,1,7549.750,982.975,483.2320,0.76794,0,0,0,1,@TIMER,255,1), +(@GUID3+143,191133,571,1,1,7554.596,1864.645,367.2740,0.24435,0,0,0,1,@TIMER,255,1), +(@GUID3+144,191133,571,1,1,7576.460,1972.390,369.5900,-0.87266,0,0,0,1,@TIMER,255,1), +(@GUID3+145,191133,571,1,1,7595.120,1891.100,371.2320,-2.72271,0,0,0,1,@TIMER,255,1), +(@GUID3+146,191133,571,1,1,7607.160,1752.610,339.9570,0.15708,0,0,0,1,@TIMER,255,1), +(@GUID3+147,191133,571,1,1,7633.180,716.693,484.5840,1.88495,0,0,0,1,@TIMER,255,1), +(@GUID3+148,191133,571,1,1,7653.100,2792.670,414.9850,0.12217,0,0,0,1,@TIMER,255,1), +(@GUID3+149,191133,571,1,1,7656.878,1786.749,350.2715,-2.51327,0,0,0,1,@TIMER,255,1), +(@GUID3+150,191133,571,1,1,7656.880,1786.750,350.2720,-2.51327,0,0,0,1,@TIMER,255,1), +(@GUID3+151,191133,571,1,1,7664.280,1709.210,333.7010,1.85005,0,0,0,1,@TIMER,255,1), +(@GUID3+152,191133,571,1,1,7678.119,2818.930,444.8793,2.42601,0,0,0,1,@TIMER,255,1), +(@GUID3+153,191133,571,1,1,7679.018,1021.261,471.1822,1.83259,0,0,0,1,@TIMER,255,1), +(@GUID3+154,191133,571,1,1,7685.300,1256.030,341.5660,-2.30383,0,0,0,1,@TIMER,255,1), +(@GUID3+155,191133,571,1,1,7687.900,3554.850,736.6150,1.01229,0,0,0,1,@TIMER,255,1), +(@GUID3+156,191133,571,1,1,7688.260,1386.790,347.2900,-1.91986,0,0,0,1,@TIMER,255,1), +(@GUID3+157,191133,571,1,1,7689.330,3181.030,578.8330,0.40143,0,0,0,1,@TIMER,255,1), +(@GUID3+158,191133,571,1,1,7689.890,553.471,698.6200,0.68068,0,0,0,1,@TIMER,255,1), +(@GUID3+159,191133,571,1,1,7712.260,1282.210,339.2810,1.83259,0,0,0,1,@TIMER,255,1), +(@GUID3+160,191133,571,1,1,7720.600,1424.710,353.3610,-1.62316,0,0,0,1,@TIMER,255,1), +(@GUID3+161,191133,571,1,1,7726.390,1305.620,341.8380,-2.96704,0,0,0,1,@TIMER,255,1), +(@GUID3+162,191133,571,1,1,7733.940,1814.480,349.6280,-1.88495,0,0,0,1,@TIMER,255,1), +(@GUID3+163,191133,571,1,1,7744.650,1779.400,338.0610,3.03684,0,0,0,1,@TIMER,255,1), +(@GUID3+164,191133,571,1,1,7764.360,1088.720,395.6190,-0.61086,0,0,0,1,@TIMER,255,1), +(@GUID3+165,191133,571,1,1,7765.605,2713.188,409.2500,2.68781,0,0,0,1,@TIMER,255,1), +(@GUID3+166,191133,571,1,1,7772.450,796.567,517.5690,0.41888,0,0,0,1,@TIMER,255,1), +(@GUID3+167,191133,571,1,1,7773.792,1499.624,360.2978,-2.21657,0,0,0,1,@TIMER,255,1), +(@GUID3+168,191133,571,1,1,7774.563,2665.078,405.8254,-0.66322,0,0,0,1,@TIMER,255,1), +(@GUID3+169,191133,571,1,1,7774.563,2665.078,405.8254,-0.66322,0,0,0,1,@TIMER,255,1), +(@GUID3+170,191133,571,1,1,7779.620,1830.560,356.3590,-2.53072,0,0,0,1,@TIMER,255,1), +(@GUID3+171,191133,571,1,1,7781.560,1106.510,395.6670,2.54818,0,0,0,1,@TIMER,255,1), +(@GUID3+172,191133,571,1,1,7784.990,1043.740,395.6190,1.88495,0,0,0,1,@TIMER,255,1), +(@GUID3+173,191133,571,1,1,7793.370,1526.290,363.6070,0.48869,0,0,0,1,@TIMER,255,1), +(@GUID3+174,191133,571,1,1,7805.900,943.421,451.6210,-1.09956,0,0,0,1,@TIMER,255,1), +(@GUID3+175,191133,571,1,1,7819.700,1132.740,395.6190,-3.07177,0,0,0,1,@TIMER,255,1), +(@GUID3+176,191133,571,1,1,7822.420,696.106,554.0000,1.01229,0,0,0,1,@TIMER,255,1), +(@GUID3+177,191133,571,1,1,7833.479,3008.132,536.2718,-1.20428,0,0,0,1,@TIMER,255,1), +(@GUID3+178,191133,571,1,1,7834.560,818.007,501.7090,-0.92502,0,0,0,1,@TIMER,255,1), +(@GUID3+179,191133,571,1,1,7845.009,3354.724,736.6236,0.82030,0,0,0,1,@TIMER,255,1), +(@GUID3+180,191133,571,1,1,7848.730,1108.210,395.6100,2.74016,0,0,0,1,@TIMER,255,1), +(@GUID3+181,191133,571,1,1,7854.104,1125.911,395.6191,1.88495,0,0,0,1,@TIMER,255,1), +(@GUID3+182,191133,571,1,1,7857.740,1414.600,439.1670,-2.25147,0,0,0,1,@TIMER,255,1), +(@GUID3+183,191133,571,1,1,7867.160,1550.810,378.1740,0.27925,0,0,0,1,@TIMER,255,1), +(@GUID3+184,191133,571,1,1,7894.100,1533.870,396.8620,-3.07177,0,0,0,1,@TIMER,255,1), +(@GUID3+185,191133,571,1,1,7915.382,2484.846,405.5244,0.73304,0,0,0,1,@TIMER,255,1), +(@GUID3+186,191133,571,1,1,7926.210,2439.340,411.3850,2.67035,0,0,0,1,@TIMER,255,1), +(@GUID3+187,191133,571,1,1,7930.313,2802.014,499.5031,-2.44346,0,0,0,1,@TIMER,255,1), +(@GUID3+188,191133,571,1,1,7935.660,1579.350,411.4840,-1.91986,0,0,0,1,@TIMER,255,1), +(@GUID3+189,191133,571,1,1,7937.930,1442.640,520.4660,2.26892,0,0,0,1,@TIMER,255,1), +(@GUID3+190,191133,571,1,1,7940.259,3483.749,694.0527,-1.65806,0,0,0,1,@TIMER,255,1), +(@GUID3+191,191133,571,1,1,7941.500,1706.580,371.8170,-0.27925,0,0,0,1,@TIMER,255,1), +(@GUID3+192,191133,571,1,1,7958.130,1927.860,367.0540,3.05433,0,0,0,1,@TIMER,255,1), +(@GUID3+193,191133,571,1,1,7963.188,2787.479,525.1877,-1.83259,0,0,0,1,@TIMER,255,1), +(@GUID3+194,191133,571,1,1,7980.900,1539.410,467.7100,1.46608,0,0,0,1,@TIMER,255,1), +(@GUID3+195,191133,571,1,1,8006.929,1907.343,380.7083,-1.13446,0,0,0,1,@TIMER,255,1), +(@GUID3+196,191133,571,1,1,8044.050,1805.050,409.0340,2.09439,0,0,0,1,@TIMER,255,1), +(@GUID3+197,191133,571,1,1,8050.090,2858.940,510.4690,-1.65806,0,0,0,1,@TIMER,255,1), +(@GUID3+198,191133,571,1,1,8078.370,1646.490,553.9380,1.97222,0,0,0,1,@TIMER,255,1), +(@GUID3+199,191133,571,1,1,8128.210,1460.340,698.1700,0.20944,0,0,0,1,@TIMER,255,1), +(@GUID3+200,191133,571,1,1,8150.700,1169.640,687.5320,-0.83776,0,0,0,1,@TIMER,255,1), +(@GUID3+201,191133,571,1,1,8160.790,1539.710,630.5920,0.76794,0,0,0,1,@TIMER,255,1), +(@GUID3+202,191133,571,1,1,8161.500,1561.790,613.8130,2.05949,0,0,0,1,@TIMER,255,1), +(@GUID3+203,191133,571,1,1,8162.180,1286.700,785.9620,2.33874,0,0,0,1,@TIMER,255,1), +(@GUID3+204,191133,571,1,1,8168.020,1303.410,793.5940,0.15708,0,0,0,1,@TIMER,255,1), +(@GUID3+205,191133,571,1,1,8207.790,1281.010,775.6510,-0.87266,0,0,0,1,@TIMER,255,1), +(@GUID3+206,191133,571,1,1,8242.540,1257.540,741.1770,-1.37881,0,0,0,1,@TIMER,255,1), +(@GUID3+207,191133,571,1,1,8253.710,1842.500,563.0770,1.44862,0,0,0,1,@TIMER,255,1), +(@GUID3+208,191133,571,1,1,8266.340,1755.560,580.5210,-2.91469,0,0,0,1,@TIMER,255,1), +(@GUID3+209,191133,571,1,1,8292.690,2611.040,718.0010,-2.93214,0,0,0,1,@TIMER,255,1), +(@GUID3+210,191133,571,1,1,8308.630,3014.360,679.2830,1.44862,0,0,0,1,@TIMER,255,1), +(@GUID3+211,191133,571,1,1,8450.060,1675.780,701.8550,-2.04204,0,0,0,1,@TIMER,255,1), +(@GUID3+212,191133,571,1,1,8478.730,1445.280,641.2010,1.25664,0,0,0,1,@TIMER,255,1), +(@GUID3+213,191133,571,1,1,8478.730,1445.280,650.4550,1.25664,0,0,0,1,@TIMER,255,1), +(@GUID3+214,191133,571,1,1,8523.810,1290.220,623.7830,-3.00195,0,0,0,1,@TIMER,255,1), +(@GUID3+215,191133,571,1,1,8579.111,1431.439,615.5118,2.37364,0,0,0,1,@TIMER,255,1), +(@GUID3+216,191133,571,1,1,8698.680,909.670,496.3710,-0.71559,0,0,0,1,@TIMER,255,1), +(@GUID3+217,191133,571,1,1,8707.630,1008.050,443.8770,0.89012,0,0,0,1,@TIMER,255,1), +(@GUID3+218,191133,571,1,2,5915.753,1990.665,518.8197,-2.98450,0,0,0,1,@TIMER,255,1), +(@GUID3+219,191133,571,1,2,5996.645,2335.773,518.0319,-0.55850,0,0,0,1,@TIMER,255,1), +(@GUID3+220,191133,571,1,2,6367.613,1682.053,548.5184,-0.83776,0,0,0,1,@TIMER,255,1), +(@GUID3+221,191133,571,1,2,6691.890,1520.673,466.3800,-2.07694,0,0,0,1,@TIMER,255,1), +(@GUID3+222,191133,571,1,3,5715.870,2059.130,-340.3910,-2.25147,0,0,0,1,@TIMER,255,1), +(@GUID3+223,191133,571,1,3,7332.590,3024.400,440.8590,-1.22173,0,0,0,1,@TIMER,255,1), +(@GUID3+224,191133,571,1,3,8149.280,2384.140,510.6090,2.51327,0,0,0,1,@TIMER,255,1), +(@GUID3+225,191133,571,1,4,7566.926,1642.527,348.2145,1.09956,0,0,0,1,@TIMER,255,1), +(@GUID3+226,191133,571,1,4,7828.466,1809.705,348.0653,0.43633,0,0,0,1,@TIMER,255,1), +(@GUID3+227,191133,571,1,5,5877.630,1942.750,518.3700,-0.27925,0,0,0,1,@TIMER,255,1), +(@GUID3+228,191133,571,1,5,5889.070,2160.360,515.0020,-2.47837,0,0,0,1,@TIMER,255,1), +(@GUID3+229,191133,571,1,5,5966.520,1908.870,580.8170,0.71559,0,0,0,1,@TIMER,255,1), +(@GUID3+230,191133,571,1,64,6803.910,3634.238,743.4531,-0.33161,0,0,0,1,@TIMER,255,1), +(@GUID3+231,191133,571,1,64,7070.146,3508.667,733.4362,-1.22173,0,0,0,1,@TIMER,255,1), +(@GUID3+232,191133,571,1,256,6166.920,2004.080,541.9620,1.79769,0,0,0,1,@TIMER,255,1), +(@GUID3+233,191133,571,1,256,6522.390,2173.170,509.0700,-3.10665,0,0,0,1,@TIMER,255,1), +(@GUID3+234,191133,571,1,256,6831.540,2201.450,663.2940,2.98450,0,0,0,1,@TIMER,255,1); +-- Pooling +DELETE FROM `pool_gameobject` WHERE `guid` BETWEEN @GUID1 AND @GUID1+@LASTGUID; +DELETE FROM `pool_gameobject` WHERE `guid` BETWEEN @GUID2 AND @GUID2+@LASTGUID; +DELETE FROM `pool_gameobject` WHERE `guid` BETWEEN @GUID3 AND @GUID3+@LASTGUID; +-- Pool different ore types to each spawnpoint +INSERT INTO `pool_gameobject` (`guid`,`pool_entry`,`chance`,`description`) VALUES +(@GUID1+0,@POOL+0,@CHANCE1, 'Icecrown Ore Spawnpoint 1 Saronite'), +(@GUID2+0,@POOL+0,@CHANCE2, 'Icecrown Ore Spawnpoint 1 Rich Saronite'), +(@GUID3+0,@POOL+0,@CHANCE3, 'Icecrown Ore Spawnpoint 1 Titanium'), +(@GUID1+1,@POOL+1,@CHANCE1, 'Icecrown Ore Spawnpoint 2 Saronite'), +(@GUID2+1,@POOL+1,@CHANCE2, 'Icecrown Ore Spawnpoint 2 Rich Saronite'), +(@GUID3+1,@POOL+1,@CHANCE3, 'Icecrown Ore Spawnpoint 2 Titanium'), +(@GUID1+2,@POOL+2,@CHANCE1, 'Icecrown Ore Spawnpoint 3 Saronite'), +(@GUID2+2,@POOL+2,@CHANCE2, 'Icecrown Ore Spawnpoint 3 Rich Saronite'), +(@GUID3+2,@POOL+2,@CHANCE3, 'Icecrown Ore Spawnpoint 3 Titanium'), +(@GUID1+3,@POOL+3,@CHANCE1, 'Icecrown Ore Spawnpoint 4 Saronite'), +(@GUID2+3,@POOL+3,@CHANCE2, 'Icecrown Ore Spawnpoint 4 Rich Saronite'), +(@GUID3+3,@POOL+3,@CHANCE3, 'Icecrown Ore Spawnpoint 4 Titanium'), +(@GUID1+4,@POOL+4,@CHANCE1, 'Icecrown Ore Spawnpoint 5 Saronite'), +(@GUID2+4,@POOL+4,@CHANCE2, 'Icecrown Ore Spawnpoint 5 Rich Saronite'), +(@GUID3+4,@POOL+4,@CHANCE3, 'Icecrown Ore Spawnpoint 5 Titanium'), +(@GUID1+5,@POOL+5,@CHANCE1, 'Icecrown Ore Spawnpoint 6 Saronite'), +(@GUID2+5,@POOL+5,@CHANCE2, 'Icecrown Ore Spawnpoint 6 Rich Saronite'), +(@GUID3+5,@POOL+5,@CHANCE3, 'Icecrown Ore Spawnpoint 6 Titanium'), +(@GUID1+6,@POOL+6,@CHANCE1, 'Icecrown Ore Spawnpoint 7 Saronite'), +(@GUID2+6,@POOL+6,@CHANCE2, 'Icecrown Ore Spawnpoint 7 Rich Saronite'), +(@GUID3+6,@POOL+6,@CHANCE3, 'Icecrown Ore Spawnpoint 7 Titanium'), +(@GUID1+7,@POOL+7,@CHANCE1, 'Icecrown Ore Spawnpoint 8 Saronite'), +(@GUID2+7,@POOL+7,@CHANCE2, 'Icecrown Ore Spawnpoint 8 Rich Saronite'), +(@GUID3+7,@POOL+7,@CHANCE3, 'Icecrown Ore Spawnpoint 8 Titanium'), +(@GUID1+8,@POOL+8,@CHANCE1, 'Icecrown Ore Spawnpoint 9 Saronite'), +(@GUID2+8,@POOL+8,@CHANCE2, 'Icecrown Ore Spawnpoint 9 Rich Saronite'), +(@GUID3+8,@POOL+8,@CHANCE3, 'Icecrown Ore Spawnpoint 9 Titanium'), +(@GUID1+9,@POOL+9,@CHANCE1, 'Icecrown Ore Spawnpoint 10 Saronite'), +(@GUID2+9,@POOL+9,@CHANCE2, 'Icecrown Ore Spawnpoint 10 Rich Saronite'), +(@GUID3+9,@POOL+9,@CHANCE3, 'Icecrown Ore Spawnpoint 10 Titanium'), +(@GUID1+10,@POOL+10,@CHANCE1, 'Icecrown Ore Spawnpoint 11 Saronite'), +(@GUID2+10,@POOL+10,@CHANCE2, 'Icecrown Ore Spawnpoint 11 Rich Saronite'), +(@GUID3+10,@POOL+10,@CHANCE3, 'Icecrown Ore Spawnpoint 11 Titanium'), +(@GUID1+11,@POOL+11,@CHANCE1, 'Icecrown Ore Spawnpoint 12 Saronite'), +(@GUID2+11,@POOL+11,@CHANCE2, 'Icecrown Ore Spawnpoint 12 Rich Saronite'), +(@GUID3+11,@POOL+11,@CHANCE3, 'Icecrown Ore Spawnpoint 12 Titanium'), +(@GUID1+12,@POOL+12,@CHANCE1, 'Icecrown Ore Spawnpoint 13 Saronite'), +(@GUID2+12,@POOL+12,@CHANCE2, 'Icecrown Ore Spawnpoint 13 Rich Saronite'), +(@GUID3+12,@POOL+12,@CHANCE3, 'Icecrown Ore Spawnpoint 13 Titanium'), +(@GUID1+13,@POOL+13,@CHANCE1, 'Icecrown Ore Spawnpoint 14 Saronite'), +(@GUID2+13,@POOL+13,@CHANCE2, 'Icecrown Ore Spawnpoint 14 Rich Saronite'), +(@GUID3+13,@POOL+13,@CHANCE3, 'Icecrown Ore Spawnpoint 14 Titanium'), +(@GUID1+14,@POOL+14,@CHANCE1, 'Icecrown Ore Spawnpoint 15 Saronite'), +(@GUID2+14,@POOL+14,@CHANCE2, 'Icecrown Ore Spawnpoint 15 Rich Saronite'), +(@GUID3+14,@POOL+14,@CHANCE3, 'Icecrown Ore Spawnpoint 15 Titanium'), +(@GUID1+15,@POOL+15,@CHANCE1, 'Icecrown Ore Spawnpoint 16 Saronite'), +(@GUID2+15,@POOL+15,@CHANCE2, 'Icecrown Ore Spawnpoint 16 Rich Saronite'), +(@GUID3+15,@POOL+15,@CHANCE3, 'Icecrown Ore Spawnpoint 16 Titanium'), +(@GUID1+16,@POOL+16,@CHANCE1, 'Icecrown Ore Spawnpoint 17 Saronite'), +(@GUID2+16,@POOL+16,@CHANCE2, 'Icecrown Ore Spawnpoint 17 Rich Saronite'), +(@GUID3+16,@POOL+16,@CHANCE3, 'Icecrown Ore Spawnpoint 17 Titanium'), +(@GUID1+17,@POOL+17,@CHANCE1, 'Icecrown Ore Spawnpoint 18 Saronite'), +(@GUID2+17,@POOL+17,@CHANCE2, 'Icecrown Ore Spawnpoint 18 Rich Saronite'), +(@GUID3+17,@POOL+17,@CHANCE3, 'Icecrown Ore Spawnpoint 18 Titanium'), +(@GUID1+18,@POOL+18,@CHANCE1, 'Icecrown Ore Spawnpoint 19 Saronite'), +(@GUID2+18,@POOL+18,@CHANCE2, 'Icecrown Ore Spawnpoint 19 Rich Saronite'), +(@GUID3+18,@POOL+18,@CHANCE3, 'Icecrown Ore Spawnpoint 19 Titanium'), +(@GUID1+19,@POOL+19,@CHANCE1, 'Icecrown Ore Spawnpoint 20 Saronite'), +(@GUID2+19,@POOL+19,@CHANCE2, 'Icecrown Ore Spawnpoint 20 Rich Saronite'), +(@GUID3+19,@POOL+19,@CHANCE3, 'Icecrown Ore Spawnpoint 20 Titanium'), +(@GUID1+20,@POOL+20,@CHANCE1, 'Icecrown Ore Spawnpoint 21 Saronite'), +(@GUID2+20,@POOL+20,@CHANCE2, 'Icecrown Ore Spawnpoint 21 Rich Saronite'), +(@GUID3+20,@POOL+20,@CHANCE3, 'Icecrown Ore Spawnpoint 21 Titanium'), +(@GUID1+21,@POOL+21,@CHANCE1, 'Icecrown Ore Spawnpoint 22 Saronite'), +(@GUID2+21,@POOL+21,@CHANCE2, 'Icecrown Ore Spawnpoint 22 Rich Saronite'), +(@GUID3+21,@POOL+21,@CHANCE3, 'Icecrown Ore Spawnpoint 22 Titanium'), +(@GUID1+22,@POOL+22,@CHANCE1, 'Icecrown Ore Spawnpoint 23 Saronite'), +(@GUID2+22,@POOL+22,@CHANCE2, 'Icecrown Ore Spawnpoint 23 Rich Saronite'), +(@GUID3+22,@POOL+22,@CHANCE3, 'Icecrown Ore Spawnpoint 23 Titanium'), +(@GUID1+23,@POOL+23,@CHANCE1, 'Icecrown Ore Spawnpoint 24 Saronite'), +(@GUID2+23,@POOL+23,@CHANCE2, 'Icecrown Ore Spawnpoint 24 Rich Saronite'), +(@GUID3+23,@POOL+23,@CHANCE3, 'Icecrown Ore Spawnpoint 24 Titanium'), +(@GUID1+24,@POOL+24,@CHANCE1, 'Icecrown Ore Spawnpoint 25 Saronite'), +(@GUID2+24,@POOL+24,@CHANCE2, 'Icecrown Ore Spawnpoint 25 Rich Saronite'), +(@GUID3+24,@POOL+24,@CHANCE3, 'Icecrown Ore Spawnpoint 25 Titanium'), +(@GUID1+25,@POOL+25,@CHANCE1, 'Icecrown Ore Spawnpoint 26 Saronite'), +(@GUID2+25,@POOL+25,@CHANCE2, 'Icecrown Ore Spawnpoint 26 Rich Saronite'), +(@GUID3+25,@POOL+25,@CHANCE3, 'Icecrown Ore Spawnpoint 26 Titanium'), +(@GUID1+26,@POOL+26,@CHANCE1, 'Icecrown Ore Spawnpoint 27 Saronite'), +(@GUID2+26,@POOL+26,@CHANCE2, 'Icecrown Ore Spawnpoint 27 Rich Saronite'), +(@GUID3+26,@POOL+26,@CHANCE3, 'Icecrown Ore Spawnpoint 27 Titanium'), +(@GUID1+27,@POOL+27,@CHANCE1, 'Icecrown Ore Spawnpoint 28 Saronite'), +(@GUID2+27,@POOL+27,@CHANCE2, 'Icecrown Ore Spawnpoint 28 Rich Saronite'), +(@GUID3+27,@POOL+27,@CHANCE3, 'Icecrown Ore Spawnpoint 28 Titanium'), +(@GUID1+28,@POOL+28,@CHANCE1, 'Icecrown Ore Spawnpoint 29 Saronite'), +(@GUID2+28,@POOL+28,@CHANCE2, 'Icecrown Ore Spawnpoint 29 Rich Saronite'), +(@GUID3+28,@POOL+28,@CHANCE3, 'Icecrown Ore Spawnpoint 29 Titanium'), +(@GUID1+29,@POOL+29,@CHANCE1, 'Icecrown Ore Spawnpoint 30 Saronite'), +(@GUID2+29,@POOL+29,@CHANCE2, 'Icecrown Ore Spawnpoint 30 Rich Saronite'), +(@GUID3+29,@POOL+29,@CHANCE3, 'Icecrown Ore Spawnpoint 30 Titanium'), +(@GUID1+30,@POOL+30,@CHANCE1, 'Icecrown Ore Spawnpoint 31 Saronite'), +(@GUID2+30,@POOL+30,@CHANCE2, 'Icecrown Ore Spawnpoint 31 Rich Saronite'), +(@GUID3+30,@POOL+30,@CHANCE3, 'Icecrown Ore Spawnpoint 31 Titanium'), +(@GUID1+31,@POOL+31,@CHANCE1, 'Icecrown Ore Spawnpoint 32 Saronite'), +(@GUID2+31,@POOL+31,@CHANCE2, 'Icecrown Ore Spawnpoint 32 Rich Saronite'), +(@GUID3+31,@POOL+31,@CHANCE3, 'Icecrown Ore Spawnpoint 32 Titanium'), +(@GUID1+32,@POOL+32,@CHANCE1, 'Icecrown Ore Spawnpoint 33 Saronite'), +(@GUID2+32,@POOL+32,@CHANCE2, 'Icecrown Ore Spawnpoint 33 Rich Saronite'), +(@GUID3+32,@POOL+32,@CHANCE3, 'Icecrown Ore Spawnpoint 33 Titanium'), +(@GUID1+33,@POOL+33,@CHANCE1, 'Icecrown Ore Spawnpoint 34 Saronite'), +(@GUID2+33,@POOL+33,@CHANCE2, 'Icecrown Ore Spawnpoint 34 Rich Saronite'), +(@GUID3+33,@POOL+33,@CHANCE3, 'Icecrown Ore Spawnpoint 34 Titanium'), +(@GUID1+34,@POOL+34,@CHANCE1, 'Icecrown Ore Spawnpoint 35 Saronite'), +(@GUID2+34,@POOL+34,@CHANCE2, 'Icecrown Ore Spawnpoint 35 Rich Saronite'), +(@GUID3+34,@POOL+34,@CHANCE3, 'Icecrown Ore Spawnpoint 35 Titanium'), +(@GUID1+35,@POOL+35,@CHANCE1, 'Icecrown Ore Spawnpoint 36 Saronite'), +(@GUID2+35,@POOL+35,@CHANCE2, 'Icecrown Ore Spawnpoint 36 Rich Saronite'), +(@GUID3+35,@POOL+35,@CHANCE3, 'Icecrown Ore Spawnpoint 36 Titanium'), +(@GUID1+36,@POOL+36,@CHANCE1, 'Icecrown Ore Spawnpoint 37 Saronite'), +(@GUID2+36,@POOL+36,@CHANCE2, 'Icecrown Ore Spawnpoint 37 Rich Saronite'), +(@GUID3+36,@POOL+36,@CHANCE3, 'Icecrown Ore Spawnpoint 37 Titanium'), +(@GUID1+37,@POOL+37,@CHANCE1, 'Icecrown Ore Spawnpoint 38 Saronite'), +(@GUID2+37,@POOL+37,@CHANCE2, 'Icecrown Ore Spawnpoint 38 Rich Saronite'), +(@GUID3+37,@POOL+37,@CHANCE3, 'Icecrown Ore Spawnpoint 38 Titanium'), +(@GUID1+38,@POOL+38,@CHANCE1, 'Icecrown Ore Spawnpoint 39 Saronite'), +(@GUID2+38,@POOL+38,@CHANCE2, 'Icecrown Ore Spawnpoint 39 Rich Saronite'), +(@GUID3+38,@POOL+38,@CHANCE3, 'Icecrown Ore Spawnpoint 39 Titanium'), +(@GUID1+39,@POOL+39,@CHANCE1, 'Icecrown Ore Spawnpoint 40 Saronite'), +(@GUID2+39,@POOL+39,@CHANCE2, 'Icecrown Ore Spawnpoint 40 Rich Saronite'), +(@GUID3+39,@POOL+39,@CHANCE3, 'Icecrown Ore Spawnpoint 40 Titanium'), +(@GUID1+40,@POOL+40,@CHANCE1, 'Icecrown Ore Spawnpoint 41 Saronite'), +(@GUID2+40,@POOL+40,@CHANCE2, 'Icecrown Ore Spawnpoint 41 Rich Saronite'), +(@GUID3+40,@POOL+40,@CHANCE3, 'Icecrown Ore Spawnpoint 41 Titanium'), +(@GUID1+41,@POOL+41,@CHANCE1, 'Icecrown Ore Spawnpoint 42 Saronite'), +(@GUID2+41,@POOL+41,@CHANCE2, 'Icecrown Ore Spawnpoint 42 Rich Saronite'), +(@GUID3+41,@POOL+41,@CHANCE3, 'Icecrown Ore Spawnpoint 42 Titanium'), +(@GUID1+42,@POOL+42,@CHANCE1, 'Icecrown Ore Spawnpoint 43 Saronite'), +(@GUID2+42,@POOL+42,@CHANCE2, 'Icecrown Ore Spawnpoint 43 Rich Saronite'), +(@GUID3+42,@POOL+42,@CHANCE3, 'Icecrown Ore Spawnpoint 43 Titanium'), +(@GUID1+43,@POOL+43,@CHANCE1, 'Icecrown Ore Spawnpoint 44 Saronite'), +(@GUID2+43,@POOL+43,@CHANCE2, 'Icecrown Ore Spawnpoint 44 Rich Saronite'), +(@GUID3+43,@POOL+43,@CHANCE3, 'Icecrown Ore Spawnpoint 44 Titanium'), +(@GUID1+44,@POOL+44,@CHANCE1, 'Icecrown Ore Spawnpoint 45 Saronite'), +(@GUID2+44,@POOL+44,@CHANCE2, 'Icecrown Ore Spawnpoint 45 Rich Saronite'), +(@GUID3+44,@POOL+44,@CHANCE3, 'Icecrown Ore Spawnpoint 45 Titanium'), +(@GUID1+45,@POOL+45,@CHANCE1, 'Icecrown Ore Spawnpoint 46 Saronite'), +(@GUID2+45,@POOL+45,@CHANCE2, 'Icecrown Ore Spawnpoint 46 Rich Saronite'), +(@GUID3+45,@POOL+45,@CHANCE3, 'Icecrown Ore Spawnpoint 46 Titanium'), +(@GUID1+46,@POOL+46,@CHANCE1, 'Icecrown Ore Spawnpoint 47 Saronite'), +(@GUID2+46,@POOL+46,@CHANCE2, 'Icecrown Ore Spawnpoint 47 Rich Saronite'), +(@GUID3+46,@POOL+46,@CHANCE3, 'Icecrown Ore Spawnpoint 47 Titanium'), +(@GUID1+47,@POOL+47,@CHANCE1, 'Icecrown Ore Spawnpoint 48 Saronite'), +(@GUID2+47,@POOL+47,@CHANCE2, 'Icecrown Ore Spawnpoint 48 Rich Saronite'), +(@GUID3+47,@POOL+47,@CHANCE3, 'Icecrown Ore Spawnpoint 48 Titanium'), +(@GUID1+48,@POOL+48,@CHANCE1, 'Icecrown Ore Spawnpoint 49 Saronite'), +(@GUID2+48,@POOL+48,@CHANCE2, 'Icecrown Ore Spawnpoint 49 Rich Saronite'), +(@GUID3+48,@POOL+48,@CHANCE3, 'Icecrown Ore Spawnpoint 49 Titanium'), +(@GUID1+49,@POOL+49,@CHANCE1, 'Icecrown Ore Spawnpoint 50 Saronite'), +(@GUID2+49,@POOL+49,@CHANCE2, 'Icecrown Ore Spawnpoint 50 Rich Saronite'), +(@GUID3+49,@POOL+49,@CHANCE3, 'Icecrown Ore Spawnpoint 50 Titanium'), +(@GUID1+50,@POOL+50,@CHANCE1, 'Icecrown Ore Spawnpoint 51 Saronite'), +(@GUID2+50,@POOL+50,@CHANCE2, 'Icecrown Ore Spawnpoint 51 Rich Saronite'), +(@GUID3+50,@POOL+50,@CHANCE3, 'Icecrown Ore Spawnpoint 51 Titanium'), +(@GUID1+51,@POOL+51,@CHANCE1, 'Icecrown Ore Spawnpoint 52 Saronite'), +(@GUID2+51,@POOL+51,@CHANCE2, 'Icecrown Ore Spawnpoint 52 Rich Saronite'), +(@GUID3+51,@POOL+51,@CHANCE3, 'Icecrown Ore Spawnpoint 52 Titanium'), +(@GUID1+52,@POOL+52,@CHANCE1, 'Icecrown Ore Spawnpoint 53 Saronite'), +(@GUID2+52,@POOL+52,@CHANCE2, 'Icecrown Ore Spawnpoint 53 Rich Saronite'), +(@GUID3+52,@POOL+52,@CHANCE3, 'Icecrown Ore Spawnpoint 53 Titanium'), +(@GUID1+53,@POOL+53,@CHANCE1, 'Icecrown Ore Spawnpoint 54 Saronite'), +(@GUID2+53,@POOL+53,@CHANCE2, 'Icecrown Ore Spawnpoint 54 Rich Saronite'), +(@GUID3+53,@POOL+53,@CHANCE3, 'Icecrown Ore Spawnpoint 54 Titanium'), +(@GUID1+54,@POOL+54,@CHANCE1, 'Icecrown Ore Spawnpoint 55 Saronite'), +(@GUID2+54,@POOL+54,@CHANCE2, 'Icecrown Ore Spawnpoint 55 Rich Saronite'), +(@GUID3+54,@POOL+54,@CHANCE3, 'Icecrown Ore Spawnpoint 55 Titanium'), +(@GUID1+55,@POOL+55,@CHANCE1, 'Icecrown Ore Spawnpoint 56 Saronite'), +(@GUID2+55,@POOL+55,@CHANCE2, 'Icecrown Ore Spawnpoint 56 Rich Saronite'), +(@GUID3+55,@POOL+55,@CHANCE3, 'Icecrown Ore Spawnpoint 56 Titanium'), +(@GUID1+56,@POOL+56,@CHANCE1, 'Icecrown Ore Spawnpoint 57 Saronite'), +(@GUID2+56,@POOL+56,@CHANCE2, 'Icecrown Ore Spawnpoint 57 Rich Saronite'), +(@GUID3+56,@POOL+56,@CHANCE3, 'Icecrown Ore Spawnpoint 57 Titanium'), +(@GUID1+57,@POOL+57,@CHANCE1, 'Icecrown Ore Spawnpoint 58 Saronite'), +(@GUID2+57,@POOL+57,@CHANCE2, 'Icecrown Ore Spawnpoint 58 Rich Saronite'), +(@GUID3+57,@POOL+57,@CHANCE3, 'Icecrown Ore Spawnpoint 58 Titanium'), +(@GUID1+58,@POOL+58,@CHANCE1, 'Icecrown Ore Spawnpoint 59 Saronite'), +(@GUID2+58,@POOL+58,@CHANCE2, 'Icecrown Ore Spawnpoint 59 Rich Saronite'), +(@GUID3+58,@POOL+58,@CHANCE3, 'Icecrown Ore Spawnpoint 59 Titanium'), +(@GUID1+59,@POOL+59,@CHANCE1, 'Icecrown Ore Spawnpoint 60 Saronite'), +(@GUID2+59,@POOL+59,@CHANCE2, 'Icecrown Ore Spawnpoint 60 Rich Saronite'), +(@GUID3+59,@POOL+59,@CHANCE3, 'Icecrown Ore Spawnpoint 60 Titanium'), +(@GUID1+60,@POOL+60,@CHANCE1, 'Icecrown Ore Spawnpoint 61 Saronite'), +(@GUID2+60,@POOL+60,@CHANCE2, 'Icecrown Ore Spawnpoint 61 Rich Saronite'), +(@GUID3+60,@POOL+60,@CHANCE3, 'Icecrown Ore Spawnpoint 61 Titanium'), +(@GUID1+61,@POOL+61,@CHANCE1, 'Icecrown Ore Spawnpoint 62 Saronite'), +(@GUID2+61,@POOL+61,@CHANCE2, 'Icecrown Ore Spawnpoint 62 Rich Saronite'), +(@GUID3+61,@POOL+61,@CHANCE3, 'Icecrown Ore Spawnpoint 62 Titanium'), +(@GUID1+62,@POOL+62,@CHANCE1, 'Icecrown Ore Spawnpoint 63 Saronite'), +(@GUID2+62,@POOL+62,@CHANCE2, 'Icecrown Ore Spawnpoint 63 Rich Saronite'), +(@GUID3+62,@POOL+62,@CHANCE3, 'Icecrown Ore Spawnpoint 63 Titanium'), +(@GUID1+63,@POOL+63,@CHANCE1, 'Icecrown Ore Spawnpoint 64 Saronite'), +(@GUID2+63,@POOL+63,@CHANCE2, 'Icecrown Ore Spawnpoint 64 Rich Saronite'), +(@GUID3+63,@POOL+63,@CHANCE3, 'Icecrown Ore Spawnpoint 64 Titanium'), +(@GUID1+64,@POOL+64,@CHANCE1, 'Icecrown Ore Spawnpoint 65 Saronite'), +(@GUID2+64,@POOL+64,@CHANCE2, 'Icecrown Ore Spawnpoint 65 Rich Saronite'), +(@GUID3+64,@POOL+64,@CHANCE3, 'Icecrown Ore Spawnpoint 65 Titanium'), +(@GUID1+65,@POOL+65,@CHANCE1, 'Icecrown Ore Spawnpoint 66 Saronite'), +(@GUID2+65,@POOL+65,@CHANCE2, 'Icecrown Ore Spawnpoint 66 Rich Saronite'), +(@GUID3+65,@POOL+65,@CHANCE3, 'Icecrown Ore Spawnpoint 66 Titanium'), +(@GUID1+66,@POOL+66,@CHANCE1, 'Icecrown Ore Spawnpoint 67 Saronite'), +(@GUID2+66,@POOL+66,@CHANCE2, 'Icecrown Ore Spawnpoint 67 Rich Saronite'), +(@GUID3+66,@POOL+66,@CHANCE3, 'Icecrown Ore Spawnpoint 67 Titanium'), +(@GUID1+67,@POOL+67,@CHANCE1, 'Icecrown Ore Spawnpoint 68 Saronite'), +(@GUID2+67,@POOL+67,@CHANCE2, 'Icecrown Ore Spawnpoint 68 Rich Saronite'), +(@GUID3+67,@POOL+67,@CHANCE3, 'Icecrown Ore Spawnpoint 68 Titanium'), +(@GUID1+68,@POOL+68,@CHANCE1, 'Icecrown Ore Spawnpoint 69 Saronite'), +(@GUID2+68,@POOL+68,@CHANCE2, 'Icecrown Ore Spawnpoint 69 Rich Saronite'), +(@GUID3+68,@POOL+68,@CHANCE3, 'Icecrown Ore Spawnpoint 69 Titanium'), +(@GUID1+69,@POOL+69,@CHANCE1, 'Icecrown Ore Spawnpoint 70 Saronite'), +(@GUID2+69,@POOL+69,@CHANCE2, 'Icecrown Ore Spawnpoint 70 Rich Saronite'), +(@GUID3+69,@POOL+69,@CHANCE3, 'Icecrown Ore Spawnpoint 70 Titanium'), +(@GUID1+70,@POOL+70,@CHANCE1, 'Icecrown Ore Spawnpoint 71 Saronite'), +(@GUID2+70,@POOL+70,@CHANCE2, 'Icecrown Ore Spawnpoint 71 Rich Saronite'), +(@GUID3+70,@POOL+70,@CHANCE3, 'Icecrown Ore Spawnpoint 71 Titanium'), +(@GUID1+71,@POOL+71,@CHANCE1, 'Icecrown Ore Spawnpoint 72 Saronite'), +(@GUID2+71,@POOL+71,@CHANCE2, 'Icecrown Ore Spawnpoint 72 Rich Saronite'), +(@GUID3+71,@POOL+71,@CHANCE3, 'Icecrown Ore Spawnpoint 72 Titanium'), +(@GUID1+72,@POOL+72,@CHANCE1, 'Icecrown Ore Spawnpoint 73 Saronite'), +(@GUID2+72,@POOL+72,@CHANCE2, 'Icecrown Ore Spawnpoint 73 Rich Saronite'), +(@GUID3+72,@POOL+72,@CHANCE3, 'Icecrown Ore Spawnpoint 73 Titanium'), +(@GUID1+73,@POOL+73,@CHANCE1, 'Icecrown Ore Spawnpoint 74 Saronite'), +(@GUID2+73,@POOL+73,@CHANCE2, 'Icecrown Ore Spawnpoint 74 Rich Saronite'), +(@GUID3+73,@POOL+73,@CHANCE3, 'Icecrown Ore Spawnpoint 74 Titanium'), +(@GUID1+74,@POOL+74,@CHANCE1, 'Icecrown Ore Spawnpoint 75 Saronite'), +(@GUID2+74,@POOL+74,@CHANCE2, 'Icecrown Ore Spawnpoint 75 Rich Saronite'), +(@GUID3+74,@POOL+74,@CHANCE3, 'Icecrown Ore Spawnpoint 75 Titanium'), +(@GUID1+75,@POOL+75,@CHANCE1, 'Icecrown Ore Spawnpoint 76 Saronite'), +(@GUID2+75,@POOL+75,@CHANCE2, 'Icecrown Ore Spawnpoint 76 Rich Saronite'), +(@GUID3+75,@POOL+75,@CHANCE3, 'Icecrown Ore Spawnpoint 76 Titanium'), +(@GUID1+76,@POOL+76,@CHANCE1, 'Icecrown Ore Spawnpoint 77 Saronite'), +(@GUID2+76,@POOL+76,@CHANCE2, 'Icecrown Ore Spawnpoint 77 Rich Saronite'), +(@GUID3+76,@POOL+76,@CHANCE3, 'Icecrown Ore Spawnpoint 77 Titanium'), +(@GUID1+77,@POOL+77,@CHANCE1, 'Icecrown Ore Spawnpoint 78 Saronite'), +(@GUID2+77,@POOL+77,@CHANCE2, 'Icecrown Ore Spawnpoint 78 Rich Saronite'), +(@GUID3+77,@POOL+77,@CHANCE3, 'Icecrown Ore Spawnpoint 78 Titanium'), +(@GUID1+78,@POOL+78,@CHANCE1, 'Icecrown Ore Spawnpoint 79 Saronite'), +(@GUID2+78,@POOL+78,@CHANCE2, 'Icecrown Ore Spawnpoint 79 Rich Saronite'), +(@GUID3+78,@POOL+78,@CHANCE3, 'Icecrown Ore Spawnpoint 79 Titanium'), +(@GUID1+79,@POOL+79,@CHANCE1, 'Icecrown Ore Spawnpoint 80 Saronite'), +(@GUID2+79,@POOL+79,@CHANCE2, 'Icecrown Ore Spawnpoint 80 Rich Saronite'), +(@GUID3+79,@POOL+79,@CHANCE3, 'Icecrown Ore Spawnpoint 80 Titanium'), +(@GUID1+80,@POOL+80,@CHANCE1, 'Icecrown Ore Spawnpoint 81 Saronite'), +(@GUID2+80,@POOL+80,@CHANCE2, 'Icecrown Ore Spawnpoint 81 Rich Saronite'), +(@GUID3+80,@POOL+80,@CHANCE3, 'Icecrown Ore Spawnpoint 81 Titanium'), +(@GUID1+81,@POOL+81,@CHANCE1, 'Icecrown Ore Spawnpoint 82 Saronite'), +(@GUID2+81,@POOL+81,@CHANCE2, 'Icecrown Ore Spawnpoint 82 Rich Saronite'), +(@GUID3+81,@POOL+81,@CHANCE3, 'Icecrown Ore Spawnpoint 82 Titanium'), +(@GUID1+82,@POOL+82,@CHANCE1, 'Icecrown Ore Spawnpoint 83 Saronite'), +(@GUID2+82,@POOL+82,@CHANCE2, 'Icecrown Ore Spawnpoint 83 Rich Saronite'), +(@GUID3+82,@POOL+82,@CHANCE3, 'Icecrown Ore Spawnpoint 83 Titanium'), +(@GUID1+83,@POOL+83,@CHANCE1, 'Icecrown Ore Spawnpoint 84 Saronite'), +(@GUID2+83,@POOL+83,@CHANCE2, 'Icecrown Ore Spawnpoint 84 Rich Saronite'), +(@GUID3+83,@POOL+83,@CHANCE3, 'Icecrown Ore Spawnpoint 84 Titanium'), +(@GUID1+84,@POOL+84,@CHANCE1, 'Icecrown Ore Spawnpoint 85 Saronite'), +(@GUID2+84,@POOL+84,@CHANCE2, 'Icecrown Ore Spawnpoint 85 Rich Saronite'), +(@GUID3+84,@POOL+84,@CHANCE3, 'Icecrown Ore Spawnpoint 85 Titanium'), +(@GUID1+85,@POOL+85,@CHANCE1, 'Icecrown Ore Spawnpoint 86 Saronite'), +(@GUID2+85,@POOL+85,@CHANCE2, 'Icecrown Ore Spawnpoint 86 Rich Saronite'), +(@GUID3+85,@POOL+85,@CHANCE3, 'Icecrown Ore Spawnpoint 86 Titanium'), +(@GUID1+86,@POOL+86,@CHANCE1, 'Icecrown Ore Spawnpoint 87 Saronite'), +(@GUID2+86,@POOL+86,@CHANCE2, 'Icecrown Ore Spawnpoint 87 Rich Saronite'), +(@GUID3+86,@POOL+86,@CHANCE3, 'Icecrown Ore Spawnpoint 87 Titanium'), +(@GUID1+87,@POOL+87,@CHANCE1, 'Icecrown Ore Spawnpoint 88 Saronite'), +(@GUID2+87,@POOL+87,@CHANCE2, 'Icecrown Ore Spawnpoint 88 Rich Saronite'), +(@GUID3+87,@POOL+87,@CHANCE3, 'Icecrown Ore Spawnpoint 88 Titanium'), +(@GUID1+88,@POOL+88,@CHANCE1, 'Icecrown Ore Spawnpoint 89 Saronite'), +(@GUID2+88,@POOL+88,@CHANCE2, 'Icecrown Ore Spawnpoint 89 Rich Saronite'), +(@GUID3+88,@POOL+88,@CHANCE3, 'Icecrown Ore Spawnpoint 89 Titanium'), +(@GUID1+89,@POOL+89,@CHANCE1, 'Icecrown Ore Spawnpoint 90 Saronite'), +(@GUID2+89,@POOL+89,@CHANCE2, 'Icecrown Ore Spawnpoint 90 Rich Saronite'), +(@GUID3+89,@POOL+89,@CHANCE3, 'Icecrown Ore Spawnpoint 90 Titanium'), +(@GUID1+90,@POOL+90,@CHANCE1, 'Icecrown Ore Spawnpoint 91 Saronite'), +(@GUID2+90,@POOL+90,@CHANCE2, 'Icecrown Ore Spawnpoint 91 Rich Saronite'), +(@GUID3+90,@POOL+90,@CHANCE3, 'Icecrown Ore Spawnpoint 91 Titanium'), +(@GUID1+91,@POOL+91,@CHANCE1, 'Icecrown Ore Spawnpoint 92 Saronite'), +(@GUID2+91,@POOL+91,@CHANCE2, 'Icecrown Ore Spawnpoint 92 Rich Saronite'), +(@GUID3+91,@POOL+91,@CHANCE3, 'Icecrown Ore Spawnpoint 92 Titanium'), +(@GUID1+92,@POOL+92,@CHANCE1, 'Icecrown Ore Spawnpoint 93 Saronite'), +(@GUID2+92,@POOL+92,@CHANCE2, 'Icecrown Ore Spawnpoint 93 Rich Saronite'), +(@GUID3+92,@POOL+92,@CHANCE3, 'Icecrown Ore Spawnpoint 93 Titanium'), +(@GUID1+93,@POOL+93,@CHANCE1, 'Icecrown Ore Spawnpoint 94 Saronite'), +(@GUID2+93,@POOL+93,@CHANCE2, 'Icecrown Ore Spawnpoint 94 Rich Saronite'), +(@GUID3+93,@POOL+93,@CHANCE3, 'Icecrown Ore Spawnpoint 94 Titanium'), +(@GUID1+94,@POOL+94,@CHANCE1, 'Icecrown Ore Spawnpoint 95 Saronite'), +(@GUID2+94,@POOL+94,@CHANCE2, 'Icecrown Ore Spawnpoint 95 Rich Saronite'), +(@GUID3+94,@POOL+94,@CHANCE3, 'Icecrown Ore Spawnpoint 95 Titanium'), +(@GUID1+95,@POOL+95,@CHANCE1, 'Icecrown Ore Spawnpoint 96 Saronite'), +(@GUID2+95,@POOL+95,@CHANCE2, 'Icecrown Ore Spawnpoint 96 Rich Saronite'), +(@GUID3+95,@POOL+95,@CHANCE3, 'Icecrown Ore Spawnpoint 96 Titanium'), +(@GUID1+96,@POOL+96,@CHANCE1, 'Icecrown Ore Spawnpoint 97 Saronite'), +(@GUID2+96,@POOL+96,@CHANCE2, 'Icecrown Ore Spawnpoint 97 Rich Saronite'), +(@GUID3+96,@POOL+96,@CHANCE3, 'Icecrown Ore Spawnpoint 97 Titanium'), +(@GUID1+97,@POOL+97,@CHANCE1, 'Icecrown Ore Spawnpoint 98 Saronite'), +(@GUID2+97,@POOL+97,@CHANCE2, 'Icecrown Ore Spawnpoint 98 Rich Saronite'), +(@GUID3+97,@POOL+97,@CHANCE3, 'Icecrown Ore Spawnpoint 98 Titanium'), +(@GUID1+98,@POOL+98,@CHANCE1, 'Icecrown Ore Spawnpoint 99 Saronite'), +(@GUID2+98,@POOL+98,@CHANCE2, 'Icecrown Ore Spawnpoint 99 Rich Saronite'), +(@GUID3+98,@POOL+98,@CHANCE3, 'Icecrown Ore Spawnpoint 99 Titanium'), +(@GUID1+99,@POOL+99,@CHANCE1, 'Icecrown Ore Spawnpoint 100 Saronite'), +(@GUID2+99,@POOL+99,@CHANCE2, 'Icecrown Ore Spawnpoint 100 Rich Saronite'), +(@GUID3+99,@POOL+99,@CHANCE3, 'Icecrown Ore Spawnpoint 100 Titanium'), +(@GUID1+100,@POOL+100,@CHANCE1, 'Icecrown Ore Spawnpoint 101 Saronite'), +(@GUID2+100,@POOL+100,@CHANCE2, 'Icecrown Ore Spawnpoint 101 Rich Saronite'), +(@GUID3+100,@POOL+100,@CHANCE3, 'Icecrown Ore Spawnpoint 101 Titanium'), +(@GUID1+101,@POOL+101,@CHANCE1, 'Icecrown Ore Spawnpoint 102 Saronite'), +(@GUID2+101,@POOL+101,@CHANCE2, 'Icecrown Ore Spawnpoint 102 Rich Saronite'), +(@GUID3+101,@POOL+101,@CHANCE3, 'Icecrown Ore Spawnpoint 102 Titanium'), +(@GUID1+102,@POOL+102,@CHANCE1, 'Icecrown Ore Spawnpoint 103 Saronite'), +(@GUID2+102,@POOL+102,@CHANCE2, 'Icecrown Ore Spawnpoint 103 Rich Saronite'), +(@GUID3+102,@POOL+102,@CHANCE3, 'Icecrown Ore Spawnpoint 103 Titanium'), +(@GUID1+103,@POOL+103,@CHANCE1, 'Icecrown Ore Spawnpoint 104 Saronite'), +(@GUID2+103,@POOL+103,@CHANCE2, 'Icecrown Ore Spawnpoint 104 Rich Saronite'), +(@GUID3+103,@POOL+103,@CHANCE3, 'Icecrown Ore Spawnpoint 104 Titanium'), +(@GUID1+104,@POOL+104,@CHANCE1, 'Icecrown Ore Spawnpoint 105 Saronite'), +(@GUID2+104,@POOL+104,@CHANCE2, 'Icecrown Ore Spawnpoint 105 Rich Saronite'), +(@GUID3+104,@POOL+104,@CHANCE3, 'Icecrown Ore Spawnpoint 105 Titanium'), +(@GUID1+105,@POOL+105,@CHANCE1, 'Icecrown Ore Spawnpoint 106 Saronite'), +(@GUID2+105,@POOL+105,@CHANCE2, 'Icecrown Ore Spawnpoint 106 Rich Saronite'), +(@GUID3+105,@POOL+105,@CHANCE3, 'Icecrown Ore Spawnpoint 106 Titanium'), +(@GUID1+106,@POOL+106,@CHANCE1, 'Icecrown Ore Spawnpoint 107 Saronite'), +(@GUID2+106,@POOL+106,@CHANCE2, 'Icecrown Ore Spawnpoint 107 Rich Saronite'), +(@GUID3+106,@POOL+106,@CHANCE3, 'Icecrown Ore Spawnpoint 107 Titanium'), +(@GUID1+107,@POOL+107,@CHANCE1, 'Icecrown Ore Spawnpoint 108 Saronite'), +(@GUID2+107,@POOL+107,@CHANCE2, 'Icecrown Ore Spawnpoint 108 Rich Saronite'), +(@GUID3+107,@POOL+107,@CHANCE3, 'Icecrown Ore Spawnpoint 108 Titanium'), +(@GUID1+108,@POOL+108,@CHANCE1, 'Icecrown Ore Spawnpoint 109 Saronite'), +(@GUID2+108,@POOL+108,@CHANCE2, 'Icecrown Ore Spawnpoint 109 Rich Saronite'), +(@GUID3+108,@POOL+108,@CHANCE3, 'Icecrown Ore Spawnpoint 109 Titanium'), +(@GUID1+109,@POOL+109,@CHANCE1, 'Icecrown Ore Spawnpoint 110 Saronite'), +(@GUID2+109,@POOL+109,@CHANCE2, 'Icecrown Ore Spawnpoint 110 Rich Saronite'), +(@GUID3+109,@POOL+109,@CHANCE3, 'Icecrown Ore Spawnpoint 110 Titanium'), +(@GUID1+110,@POOL+110,@CHANCE1, 'Icecrown Ore Spawnpoint 111 Saronite'), +(@GUID2+110,@POOL+110,@CHANCE2, 'Icecrown Ore Spawnpoint 111 Rich Saronite'), +(@GUID3+110,@POOL+110,@CHANCE3, 'Icecrown Ore Spawnpoint 111 Titanium'), +(@GUID1+111,@POOL+111,@CHANCE1, 'Icecrown Ore Spawnpoint 112 Saronite'), +(@GUID2+111,@POOL+111,@CHANCE2, 'Icecrown Ore Spawnpoint 112 Rich Saronite'), +(@GUID3+111,@POOL+111,@CHANCE3, 'Icecrown Ore Spawnpoint 112 Titanium'), +(@GUID1+112,@POOL+112,@CHANCE1, 'Icecrown Ore Spawnpoint 113 Saronite'), +(@GUID2+112,@POOL+112,@CHANCE2, 'Icecrown Ore Spawnpoint 113 Rich Saronite'), +(@GUID3+112,@POOL+112,@CHANCE3, 'Icecrown Ore Spawnpoint 113 Titanium'), +(@GUID1+113,@POOL+113,@CHANCE1, 'Icecrown Ore Spawnpoint 114 Saronite'), +(@GUID2+113,@POOL+113,@CHANCE2, 'Icecrown Ore Spawnpoint 114 Rich Saronite'), +(@GUID3+113,@POOL+113,@CHANCE3, 'Icecrown Ore Spawnpoint 114 Titanium'), +(@GUID1+114,@POOL+114,@CHANCE1, 'Icecrown Ore Spawnpoint 115 Saronite'), +(@GUID2+114,@POOL+114,@CHANCE2, 'Icecrown Ore Spawnpoint 115 Rich Saronite'), +(@GUID3+114,@POOL+114,@CHANCE3, 'Icecrown Ore Spawnpoint 115 Titanium'), +(@GUID1+115,@POOL+115,@CHANCE1, 'Icecrown Ore Spawnpoint 116 Saronite'), +(@GUID2+115,@POOL+115,@CHANCE2, 'Icecrown Ore Spawnpoint 116 Rich Saronite'), +(@GUID3+115,@POOL+115,@CHANCE3, 'Icecrown Ore Spawnpoint 116 Titanium'), +(@GUID1+116,@POOL+116,@CHANCE1, 'Icecrown Ore Spawnpoint 117 Saronite'), +(@GUID2+116,@POOL+116,@CHANCE2, 'Icecrown Ore Spawnpoint 117 Rich Saronite'), +(@GUID3+116,@POOL+116,@CHANCE3, 'Icecrown Ore Spawnpoint 117 Titanium'), +(@GUID1+117,@POOL+117,@CHANCE1, 'Icecrown Ore Spawnpoint 118 Saronite'), +(@GUID2+117,@POOL+117,@CHANCE2, 'Icecrown Ore Spawnpoint 118 Rich Saronite'), +(@GUID3+117,@POOL+117,@CHANCE3, 'Icecrown Ore Spawnpoint 118 Titanium'), +(@GUID1+118,@POOL+118,@CHANCE1, 'Icecrown Ore Spawnpoint 119 Saronite'), +(@GUID2+118,@POOL+118,@CHANCE2, 'Icecrown Ore Spawnpoint 119 Rich Saronite'), +(@GUID3+118,@POOL+118,@CHANCE3, 'Icecrown Ore Spawnpoint 119 Titanium'), +(@GUID1+119,@POOL+119,@CHANCE1, 'Icecrown Ore Spawnpoint 120 Saronite'), +(@GUID2+119,@POOL+119,@CHANCE2, 'Icecrown Ore Spawnpoint 120 Rich Saronite'), +(@GUID3+119,@POOL+119,@CHANCE3, 'Icecrown Ore Spawnpoint 120 Titanium'), +(@GUID1+120,@POOL+120,@CHANCE1, 'Icecrown Ore Spawnpoint 121 Saronite'), +(@GUID2+120,@POOL+120,@CHANCE2, 'Icecrown Ore Spawnpoint 121 Rich Saronite'), +(@GUID3+120,@POOL+120,@CHANCE3, 'Icecrown Ore Spawnpoint 121 Titanium'), +(@GUID1+121,@POOL+121,@CHANCE1, 'Icecrown Ore Spawnpoint 122 Saronite'), +(@GUID2+121,@POOL+121,@CHANCE2, 'Icecrown Ore Spawnpoint 122 Rich Saronite'), +(@GUID3+121,@POOL+121,@CHANCE3, 'Icecrown Ore Spawnpoint 122 Titanium'), +(@GUID1+122,@POOL+122,@CHANCE1, 'Icecrown Ore Spawnpoint 123 Saronite'), +(@GUID2+122,@POOL+122,@CHANCE2, 'Icecrown Ore Spawnpoint 123 Rich Saronite'), +(@GUID3+122,@POOL+122,@CHANCE3, 'Icecrown Ore Spawnpoint 123 Titanium'), +(@GUID1+123,@POOL+123,@CHANCE1, 'Icecrown Ore Spawnpoint 124 Saronite'), +(@GUID2+123,@POOL+123,@CHANCE2, 'Icecrown Ore Spawnpoint 124 Rich Saronite'), +(@GUID3+123,@POOL+123,@CHANCE3, 'Icecrown Ore Spawnpoint 124 Titanium'), +(@GUID1+124,@POOL+124,@CHANCE1, 'Icecrown Ore Spawnpoint 125 Saronite'), +(@GUID2+124,@POOL+124,@CHANCE2, 'Icecrown Ore Spawnpoint 125 Rich Saronite'), +(@GUID3+124,@POOL+124,@CHANCE3, 'Icecrown Ore Spawnpoint 125 Titanium'), +(@GUID1+125,@POOL+125,@CHANCE1, 'Icecrown Ore Spawnpoint 126 Saronite'), +(@GUID2+125,@POOL+125,@CHANCE2, 'Icecrown Ore Spawnpoint 126 Rich Saronite'), +(@GUID3+125,@POOL+125,@CHANCE3, 'Icecrown Ore Spawnpoint 126 Titanium'), +(@GUID1+126,@POOL+126,@CHANCE1, 'Icecrown Ore Spawnpoint 127 Saronite'), +(@GUID2+126,@POOL+126,@CHANCE2, 'Icecrown Ore Spawnpoint 127 Rich Saronite'), +(@GUID3+126,@POOL+126,@CHANCE3, 'Icecrown Ore Spawnpoint 127 Titanium'), +(@GUID1+127,@POOL+127,@CHANCE1, 'Icecrown Ore Spawnpoint 128 Saronite'), +(@GUID2+127,@POOL+127,@CHANCE2, 'Icecrown Ore Spawnpoint 128 Rich Saronite'), +(@GUID3+127,@POOL+127,@CHANCE3, 'Icecrown Ore Spawnpoint 128 Titanium'), +(@GUID1+128,@POOL+128,@CHANCE1, 'Icecrown Ore Spawnpoint 129 Saronite'), +(@GUID2+128,@POOL+128,@CHANCE2, 'Icecrown Ore Spawnpoint 129 Rich Saronite'), +(@GUID3+128,@POOL+128,@CHANCE3, 'Icecrown Ore Spawnpoint 129 Titanium'), +(@GUID1+129,@POOL+129,@CHANCE1, 'Icecrown Ore Spawnpoint 130 Saronite'), +(@GUID2+129,@POOL+129,@CHANCE2, 'Icecrown Ore Spawnpoint 130 Rich Saronite'), +(@GUID3+129,@POOL+129,@CHANCE3, 'Icecrown Ore Spawnpoint 130 Titanium'), +(@GUID1+130,@POOL+130,@CHANCE1, 'Icecrown Ore Spawnpoint 131 Saronite'), +(@GUID2+130,@POOL+130,@CHANCE2, 'Icecrown Ore Spawnpoint 131 Rich Saronite'), +(@GUID3+130,@POOL+130,@CHANCE3, 'Icecrown Ore Spawnpoint 131 Titanium'), +(@GUID1+131,@POOL+131,@CHANCE1, 'Icecrown Ore Spawnpoint 132 Saronite'), +(@GUID2+131,@POOL+131,@CHANCE2, 'Icecrown Ore Spawnpoint 132 Rich Saronite'), +(@GUID3+131,@POOL+131,@CHANCE3, 'Icecrown Ore Spawnpoint 132 Titanium'), +(@GUID1+132,@POOL+132,@CHANCE1, 'Icecrown Ore Spawnpoint 133 Saronite'), +(@GUID2+132,@POOL+132,@CHANCE2, 'Icecrown Ore Spawnpoint 133 Rich Saronite'), +(@GUID3+132,@POOL+132,@CHANCE3, 'Icecrown Ore Spawnpoint 133 Titanium'), +(@GUID1+133,@POOL+133,@CHANCE1, 'Icecrown Ore Spawnpoint 134 Saronite'), +(@GUID2+133,@POOL+133,@CHANCE2, 'Icecrown Ore Spawnpoint 134 Rich Saronite'), +(@GUID3+133,@POOL+133,@CHANCE3, 'Icecrown Ore Spawnpoint 134 Titanium'), +(@GUID1+134,@POOL+134,@CHANCE1, 'Icecrown Ore Spawnpoint 135 Saronite'), +(@GUID2+134,@POOL+134,@CHANCE2, 'Icecrown Ore Spawnpoint 135 Rich Saronite'), +(@GUID3+134,@POOL+134,@CHANCE3, 'Icecrown Ore Spawnpoint 135 Titanium'), +(@GUID1+135,@POOL+135,@CHANCE1, 'Icecrown Ore Spawnpoint 136 Saronite'), +(@GUID2+135,@POOL+135,@CHANCE2, 'Icecrown Ore Spawnpoint 136 Rich Saronite'), +(@GUID3+135,@POOL+135,@CHANCE3, 'Icecrown Ore Spawnpoint 136 Titanium'), +(@GUID1+136,@POOL+136,@CHANCE1, 'Icecrown Ore Spawnpoint 137 Saronite'), +(@GUID2+136,@POOL+136,@CHANCE2, 'Icecrown Ore Spawnpoint 137 Rich Saronite'), +(@GUID3+136,@POOL+136,@CHANCE3, 'Icecrown Ore Spawnpoint 137 Titanium'), +(@GUID1+137,@POOL+137,@CHANCE1, 'Icecrown Ore Spawnpoint 138 Saronite'), +(@GUID2+137,@POOL+137,@CHANCE2, 'Icecrown Ore Spawnpoint 138 Rich Saronite'), +(@GUID3+137,@POOL+137,@CHANCE3, 'Icecrown Ore Spawnpoint 138 Titanium'), +(@GUID1+138,@POOL+138,@CHANCE1, 'Icecrown Ore Spawnpoint 139 Saronite'), +(@GUID2+138,@POOL+138,@CHANCE2, 'Icecrown Ore Spawnpoint 139 Rich Saronite'), +(@GUID3+138,@POOL+138,@CHANCE3, 'Icecrown Ore Spawnpoint 139 Titanium'), +(@GUID1+139,@POOL+139,@CHANCE1, 'Icecrown Ore Spawnpoint 140 Saronite'), +(@GUID2+139,@POOL+139,@CHANCE2, 'Icecrown Ore Spawnpoint 140 Rich Saronite'), +(@GUID3+139,@POOL+139,@CHANCE3, 'Icecrown Ore Spawnpoint 140 Titanium'), +(@GUID1+140,@POOL+140,@CHANCE1, 'Icecrown Ore Spawnpoint 141 Saronite'), +(@GUID2+140,@POOL+140,@CHANCE2, 'Icecrown Ore Spawnpoint 141 Rich Saronite'), +(@GUID3+140,@POOL+140,@CHANCE3, 'Icecrown Ore Spawnpoint 141 Titanium'), +(@GUID1+141,@POOL+141,@CHANCE1, 'Icecrown Ore Spawnpoint 142 Saronite'), +(@GUID2+141,@POOL+141,@CHANCE2, 'Icecrown Ore Spawnpoint 142 Rich Saronite'), +(@GUID3+141,@POOL+141,@CHANCE3, 'Icecrown Ore Spawnpoint 142 Titanium'), +(@GUID1+142,@POOL+142,@CHANCE1, 'Icecrown Ore Spawnpoint 143 Saronite'), +(@GUID2+142,@POOL+142,@CHANCE2, 'Icecrown Ore Spawnpoint 143 Rich Saronite'), +(@GUID3+142,@POOL+142,@CHANCE3, 'Icecrown Ore Spawnpoint 143 Titanium'), +(@GUID1+143,@POOL+143,@CHANCE1, 'Icecrown Ore Spawnpoint 144 Saronite'), +(@GUID2+143,@POOL+143,@CHANCE2, 'Icecrown Ore Spawnpoint 144 Rich Saronite'), +(@GUID3+143,@POOL+143,@CHANCE3, 'Icecrown Ore Spawnpoint 144 Titanium'), +(@GUID1+144,@POOL+144,@CHANCE1, 'Icecrown Ore Spawnpoint 145 Saronite'), +(@GUID2+144,@POOL+144,@CHANCE2, 'Icecrown Ore Spawnpoint 145 Rich Saronite'), +(@GUID3+144,@POOL+144,@CHANCE3, 'Icecrown Ore Spawnpoint 145 Titanium'), +(@GUID1+145,@POOL+145,@CHANCE1, 'Icecrown Ore Spawnpoint 146 Saronite'), +(@GUID2+145,@POOL+145,@CHANCE2, 'Icecrown Ore Spawnpoint 146 Rich Saronite'), +(@GUID3+145,@POOL+145,@CHANCE3, 'Icecrown Ore Spawnpoint 146 Titanium'), +(@GUID1+146,@POOL+146,@CHANCE1, 'Icecrown Ore Spawnpoint 147 Saronite'), +(@GUID2+146,@POOL+146,@CHANCE2, 'Icecrown Ore Spawnpoint 147 Rich Saronite'), +(@GUID3+146,@POOL+146,@CHANCE3, 'Icecrown Ore Spawnpoint 147 Titanium'), +(@GUID1+147,@POOL+147,@CHANCE1, 'Icecrown Ore Spawnpoint 148 Saronite'), +(@GUID2+147,@POOL+147,@CHANCE2, 'Icecrown Ore Spawnpoint 148 Rich Saronite'), +(@GUID3+147,@POOL+147,@CHANCE3, 'Icecrown Ore Spawnpoint 148 Titanium'), +(@GUID1+148,@POOL+148,@CHANCE1, 'Icecrown Ore Spawnpoint 149 Saronite'), +(@GUID2+148,@POOL+148,@CHANCE2, 'Icecrown Ore Spawnpoint 149 Rich Saronite'), +(@GUID3+148,@POOL+148,@CHANCE3, 'Icecrown Ore Spawnpoint 149 Titanium'), +(@GUID1+149,@POOL+149,@CHANCE1, 'Icecrown Ore Spawnpoint 150 Saronite'), +(@GUID2+149,@POOL+149,@CHANCE2, 'Icecrown Ore Spawnpoint 150 Rich Saronite'), +(@GUID3+149,@POOL+149,@CHANCE3, 'Icecrown Ore Spawnpoint 150 Titanium'), +(@GUID1+150,@POOL+150,@CHANCE1, 'Icecrown Ore Spawnpoint 151 Saronite'), +(@GUID2+150,@POOL+150,@CHANCE2, 'Icecrown Ore Spawnpoint 151 Rich Saronite'), +(@GUID3+150,@POOL+150,@CHANCE3, 'Icecrown Ore Spawnpoint 151 Titanium'), +(@GUID1+151,@POOL+151,@CHANCE1, 'Icecrown Ore Spawnpoint 152 Saronite'), +(@GUID2+151,@POOL+151,@CHANCE2, 'Icecrown Ore Spawnpoint 152 Rich Saronite'), +(@GUID3+151,@POOL+151,@CHANCE3, 'Icecrown Ore Spawnpoint 152 Titanium'), +(@GUID1+152,@POOL+152,@CHANCE1, 'Icecrown Ore Spawnpoint 153 Saronite'), +(@GUID2+152,@POOL+152,@CHANCE2, 'Icecrown Ore Spawnpoint 153 Rich Saronite'), +(@GUID3+152,@POOL+152,@CHANCE3, 'Icecrown Ore Spawnpoint 153 Titanium'), +(@GUID1+153,@POOL+153,@CHANCE1, 'Icecrown Ore Spawnpoint 154 Saronite'), +(@GUID2+153,@POOL+153,@CHANCE2, 'Icecrown Ore Spawnpoint 154 Rich Saronite'), +(@GUID3+153,@POOL+153,@CHANCE3, 'Icecrown Ore Spawnpoint 154 Titanium'), +(@GUID1+154,@POOL+154,@CHANCE1, 'Icecrown Ore Spawnpoint 155 Saronite'), +(@GUID2+154,@POOL+154,@CHANCE2, 'Icecrown Ore Spawnpoint 155 Rich Saronite'), +(@GUID3+154,@POOL+154,@CHANCE3, 'Icecrown Ore Spawnpoint 155 Titanium'), +(@GUID1+155,@POOL+155,@CHANCE1, 'Icecrown Ore Spawnpoint 156 Saronite'), +(@GUID2+155,@POOL+155,@CHANCE2, 'Icecrown Ore Spawnpoint 156 Rich Saronite'), +(@GUID3+155,@POOL+155,@CHANCE3, 'Icecrown Ore Spawnpoint 156 Titanium'), +(@GUID1+156,@POOL+156,@CHANCE1, 'Icecrown Ore Spawnpoint 157 Saronite'), +(@GUID2+156,@POOL+156,@CHANCE2, 'Icecrown Ore Spawnpoint 157 Rich Saronite'), +(@GUID3+156,@POOL+156,@CHANCE3, 'Icecrown Ore Spawnpoint 157 Titanium'), +(@GUID1+157,@POOL+157,@CHANCE1, 'Icecrown Ore Spawnpoint 158 Saronite'), +(@GUID2+157,@POOL+157,@CHANCE2, 'Icecrown Ore Spawnpoint 158 Rich Saronite'), +(@GUID3+157,@POOL+157,@CHANCE3, 'Icecrown Ore Spawnpoint 158 Titanium'), +(@GUID1+158,@POOL+158,@CHANCE1, 'Icecrown Ore Spawnpoint 159 Saronite'), +(@GUID2+158,@POOL+158,@CHANCE2, 'Icecrown Ore Spawnpoint 159 Rich Saronite'), +(@GUID3+158,@POOL+158,@CHANCE3, 'Icecrown Ore Spawnpoint 159 Titanium'), +(@GUID1+159,@POOL+159,@CHANCE1, 'Icecrown Ore Spawnpoint 160 Saronite'), +(@GUID2+159,@POOL+159,@CHANCE2, 'Icecrown Ore Spawnpoint 160 Rich Saronite'), +(@GUID3+159,@POOL+159,@CHANCE3, 'Icecrown Ore Spawnpoint 160 Titanium'), +(@GUID1+160,@POOL+160,@CHANCE1, 'Icecrown Ore Spawnpoint 161 Saronite'), +(@GUID2+160,@POOL+160,@CHANCE2, 'Icecrown Ore Spawnpoint 161 Rich Saronite'), +(@GUID3+160,@POOL+160,@CHANCE3, 'Icecrown Ore Spawnpoint 161 Titanium'), +(@GUID1+161,@POOL+161,@CHANCE1, 'Icecrown Ore Spawnpoint 162 Saronite'), +(@GUID2+161,@POOL+161,@CHANCE2, 'Icecrown Ore Spawnpoint 162 Rich Saronite'), +(@GUID3+161,@POOL+161,@CHANCE3, 'Icecrown Ore Spawnpoint 162 Titanium'), +(@GUID1+162,@POOL+162,@CHANCE1, 'Icecrown Ore Spawnpoint 163 Saronite'), +(@GUID2+162,@POOL+162,@CHANCE2, 'Icecrown Ore Spawnpoint 163 Rich Saronite'), +(@GUID3+162,@POOL+162,@CHANCE3, 'Icecrown Ore Spawnpoint 163 Titanium'), +(@GUID1+163,@POOL+163,@CHANCE1, 'Icecrown Ore Spawnpoint 164 Saronite'), +(@GUID2+163,@POOL+163,@CHANCE2, 'Icecrown Ore Spawnpoint 164 Rich Saronite'), +(@GUID3+163,@POOL+163,@CHANCE3, 'Icecrown Ore Spawnpoint 164 Titanium'), +(@GUID1+164,@POOL+164,@CHANCE1, 'Icecrown Ore Spawnpoint 165 Saronite'), +(@GUID2+164,@POOL+164,@CHANCE2, 'Icecrown Ore Spawnpoint 165 Rich Saronite'), +(@GUID3+164,@POOL+164,@CHANCE3, 'Icecrown Ore Spawnpoint 165 Titanium'), +(@GUID1+165,@POOL+165,@CHANCE1, 'Icecrown Ore Spawnpoint 166 Saronite'), +(@GUID2+165,@POOL+165,@CHANCE2, 'Icecrown Ore Spawnpoint 166 Rich Saronite'), +(@GUID3+165,@POOL+165,@CHANCE3, 'Icecrown Ore Spawnpoint 166 Titanium'), +(@GUID1+166,@POOL+166,@CHANCE1, 'Icecrown Ore Spawnpoint 167 Saronite'), +(@GUID2+166,@POOL+166,@CHANCE2, 'Icecrown Ore Spawnpoint 167 Rich Saronite'), +(@GUID3+166,@POOL+166,@CHANCE3, 'Icecrown Ore Spawnpoint 167 Titanium'), +(@GUID1+167,@POOL+167,@CHANCE1, 'Icecrown Ore Spawnpoint 168 Saronite'), +(@GUID2+167,@POOL+167,@CHANCE2, 'Icecrown Ore Spawnpoint 168 Rich Saronite'), +(@GUID3+167,@POOL+167,@CHANCE3, 'Icecrown Ore Spawnpoint 168 Titanium'), +(@GUID1+168,@POOL+168,@CHANCE1, 'Icecrown Ore Spawnpoint 169 Saronite'), +(@GUID2+168,@POOL+168,@CHANCE2, 'Icecrown Ore Spawnpoint 169 Rich Saronite'), +(@GUID3+168,@POOL+168,@CHANCE3, 'Icecrown Ore Spawnpoint 169 Titanium'), +(@GUID1+169,@POOL+169,@CHANCE1, 'Icecrown Ore Spawnpoint 170 Saronite'), +(@GUID2+169,@POOL+169,@CHANCE2, 'Icecrown Ore Spawnpoint 170 Rich Saronite'), +(@GUID3+169,@POOL+169,@CHANCE3, 'Icecrown Ore Spawnpoint 170 Titanium'), +(@GUID1+170,@POOL+170,@CHANCE1, 'Icecrown Ore Spawnpoint 171 Saronite'), +(@GUID2+170,@POOL+170,@CHANCE2, 'Icecrown Ore Spawnpoint 171 Rich Saronite'), +(@GUID3+170,@POOL+170,@CHANCE3, 'Icecrown Ore Spawnpoint 171 Titanium'), +(@GUID1+171,@POOL+171,@CHANCE1, 'Icecrown Ore Spawnpoint 172 Saronite'), +(@GUID2+171,@POOL+171,@CHANCE2, 'Icecrown Ore Spawnpoint 172 Rich Saronite'), +(@GUID3+171,@POOL+171,@CHANCE3, 'Icecrown Ore Spawnpoint 172 Titanium'), +(@GUID1+172,@POOL+172,@CHANCE1, 'Icecrown Ore Spawnpoint 173 Saronite'), +(@GUID2+172,@POOL+172,@CHANCE2, 'Icecrown Ore Spawnpoint 173 Rich Saronite'), +(@GUID3+172,@POOL+172,@CHANCE3, 'Icecrown Ore Spawnpoint 173 Titanium'), +(@GUID1+173,@POOL+173,@CHANCE1, 'Icecrown Ore Spawnpoint 174 Saronite'), +(@GUID2+173,@POOL+173,@CHANCE2, 'Icecrown Ore Spawnpoint 174 Rich Saronite'), +(@GUID3+173,@POOL+173,@CHANCE3, 'Icecrown Ore Spawnpoint 174 Titanium'), +(@GUID1+174,@POOL+174,@CHANCE1, 'Icecrown Ore Spawnpoint 175 Saronite'), +(@GUID2+174,@POOL+174,@CHANCE2, 'Icecrown Ore Spawnpoint 175 Rich Saronite'), +(@GUID3+174,@POOL+174,@CHANCE3, 'Icecrown Ore Spawnpoint 175 Titanium'), +(@GUID1+175,@POOL+175,@CHANCE1, 'Icecrown Ore Spawnpoint 176 Saronite'), +(@GUID2+175,@POOL+175,@CHANCE2, 'Icecrown Ore Spawnpoint 176 Rich Saronite'), +(@GUID3+175,@POOL+175,@CHANCE3, 'Icecrown Ore Spawnpoint 176 Titanium'), +(@GUID1+176,@POOL+176,@CHANCE1, 'Icecrown Ore Spawnpoint 177 Saronite'), +(@GUID2+176,@POOL+176,@CHANCE2, 'Icecrown Ore Spawnpoint 177 Rich Saronite'), +(@GUID3+176,@POOL+176,@CHANCE3, 'Icecrown Ore Spawnpoint 177 Titanium'), +(@GUID1+177,@POOL+177,@CHANCE1, 'Icecrown Ore Spawnpoint 178 Saronite'), +(@GUID2+177,@POOL+177,@CHANCE2, 'Icecrown Ore Spawnpoint 178 Rich Saronite'), +(@GUID3+177,@POOL+177,@CHANCE3, 'Icecrown Ore Spawnpoint 178 Titanium'), +(@GUID1+178,@POOL+178,@CHANCE1, 'Icecrown Ore Spawnpoint 179 Saronite'), +(@GUID2+178,@POOL+178,@CHANCE2, 'Icecrown Ore Spawnpoint 179 Rich Saronite'), +(@GUID3+178,@POOL+178,@CHANCE3, 'Icecrown Ore Spawnpoint 179 Titanium'), +(@GUID1+179,@POOL+179,@CHANCE1, 'Icecrown Ore Spawnpoint 180 Saronite'), +(@GUID2+179,@POOL+179,@CHANCE2, 'Icecrown Ore Spawnpoint 180 Rich Saronite'), +(@GUID3+179,@POOL+179,@CHANCE3, 'Icecrown Ore Spawnpoint 180 Titanium'), +(@GUID1+180,@POOL+180,@CHANCE1, 'Icecrown Ore Spawnpoint 181 Saronite'), +(@GUID2+180,@POOL+180,@CHANCE2, 'Icecrown Ore Spawnpoint 181 Rich Saronite'), +(@GUID3+180,@POOL+180,@CHANCE3, 'Icecrown Ore Spawnpoint 181 Titanium'), +(@GUID1+181,@POOL+181,@CHANCE1, 'Icecrown Ore Spawnpoint 182 Saronite'), +(@GUID2+181,@POOL+181,@CHANCE2, 'Icecrown Ore Spawnpoint 182 Rich Saronite'), +(@GUID3+181,@POOL+181,@CHANCE3, 'Icecrown Ore Spawnpoint 182 Titanium'), +(@GUID1+182,@POOL+182,@CHANCE1, 'Icecrown Ore Spawnpoint 183 Saronite'), +(@GUID2+182,@POOL+182,@CHANCE2, 'Icecrown Ore Spawnpoint 183 Rich Saronite'), +(@GUID3+182,@POOL+182,@CHANCE3, 'Icecrown Ore Spawnpoint 183 Titanium'), +(@GUID1+183,@POOL+183,@CHANCE1, 'Icecrown Ore Spawnpoint 184 Saronite'), +(@GUID2+183,@POOL+183,@CHANCE2, 'Icecrown Ore Spawnpoint 184 Rich Saronite'), +(@GUID3+183,@POOL+183,@CHANCE3, 'Icecrown Ore Spawnpoint 184 Titanium'), +(@GUID1+184,@POOL+184,@CHANCE1, 'Icecrown Ore Spawnpoint 185 Saronite'), +(@GUID2+184,@POOL+184,@CHANCE2, 'Icecrown Ore Spawnpoint 185 Rich Saronite'), +(@GUID3+184,@POOL+184,@CHANCE3, 'Icecrown Ore Spawnpoint 185 Titanium'), +(@GUID1+185,@POOL+185,@CHANCE1, 'Icecrown Ore Spawnpoint 186 Saronite'), +(@GUID2+185,@POOL+185,@CHANCE2, 'Icecrown Ore Spawnpoint 186 Rich Saronite'), +(@GUID3+185,@POOL+185,@CHANCE3, 'Icecrown Ore Spawnpoint 186 Titanium'), +(@GUID1+186,@POOL+186,@CHANCE1, 'Icecrown Ore Spawnpoint 187 Saronite'), +(@GUID2+186,@POOL+186,@CHANCE2, 'Icecrown Ore Spawnpoint 187 Rich Saronite'), +(@GUID3+186,@POOL+186,@CHANCE3, 'Icecrown Ore Spawnpoint 187 Titanium'), +(@GUID1+187,@POOL+187,@CHANCE1, 'Icecrown Ore Spawnpoint 188 Saronite'), +(@GUID2+187,@POOL+187,@CHANCE2, 'Icecrown Ore Spawnpoint 188 Rich Saronite'), +(@GUID3+187,@POOL+187,@CHANCE3, 'Icecrown Ore Spawnpoint 188 Titanium'), +(@GUID1+188,@POOL+188,@CHANCE1, 'Icecrown Ore Spawnpoint 189 Saronite'), +(@GUID2+188,@POOL+188,@CHANCE2, 'Icecrown Ore Spawnpoint 189 Rich Saronite'), +(@GUID3+188,@POOL+188,@CHANCE3, 'Icecrown Ore Spawnpoint 189 Titanium'), +(@GUID1+189,@POOL+189,@CHANCE1, 'Icecrown Ore Spawnpoint 190 Saronite'), +(@GUID2+189,@POOL+189,@CHANCE2, 'Icecrown Ore Spawnpoint 190 Rich Saronite'), +(@GUID3+189,@POOL+189,@CHANCE3, 'Icecrown Ore Spawnpoint 190 Titanium'), +(@GUID1+190,@POOL+190,@CHANCE1, 'Icecrown Ore Spawnpoint 191 Saronite'), +(@GUID2+190,@POOL+190,@CHANCE2, 'Icecrown Ore Spawnpoint 191 Rich Saronite'), +(@GUID3+190,@POOL+190,@CHANCE3, 'Icecrown Ore Spawnpoint 191 Titanium'), +(@GUID1+191,@POOL+191,@CHANCE1, 'Icecrown Ore Spawnpoint 192 Saronite'), +(@GUID2+191,@POOL+191,@CHANCE2, 'Icecrown Ore Spawnpoint 192 Rich Saronite'), +(@GUID3+191,@POOL+191,@CHANCE3, 'Icecrown Ore Spawnpoint 192 Titanium'), +(@GUID1+192,@POOL+192,@CHANCE1, 'Icecrown Ore Spawnpoint 193 Saronite'), +(@GUID2+192,@POOL+192,@CHANCE2, 'Icecrown Ore Spawnpoint 193 Rich Saronite'), +(@GUID3+192,@POOL+192,@CHANCE3, 'Icecrown Ore Spawnpoint 193 Titanium'), +(@GUID1+193,@POOL+193,@CHANCE1, 'Icecrown Ore Spawnpoint 194 Saronite'), +(@GUID2+193,@POOL+193,@CHANCE2, 'Icecrown Ore Spawnpoint 194 Rich Saronite'), +(@GUID3+193,@POOL+193,@CHANCE3, 'Icecrown Ore Spawnpoint 194 Titanium'), +(@GUID1+194,@POOL+194,@CHANCE1, 'Icecrown Ore Spawnpoint 195 Saronite'), +(@GUID2+194,@POOL+194,@CHANCE2, 'Icecrown Ore Spawnpoint 195 Rich Saronite'), +(@GUID3+194,@POOL+194,@CHANCE3, 'Icecrown Ore Spawnpoint 195 Titanium'), +(@GUID1+195,@POOL+195,@CHANCE1, 'Icecrown Ore Spawnpoint 196 Saronite'), +(@GUID2+195,@POOL+195,@CHANCE2, 'Icecrown Ore Spawnpoint 196 Rich Saronite'), +(@GUID3+195,@POOL+195,@CHANCE3, 'Icecrown Ore Spawnpoint 196 Titanium'), +(@GUID1+196,@POOL+196,@CHANCE1, 'Icecrown Ore Spawnpoint 197 Saronite'), +(@GUID2+196,@POOL+196,@CHANCE2, 'Icecrown Ore Spawnpoint 197 Rich Saronite'), +(@GUID3+196,@POOL+196,@CHANCE3, 'Icecrown Ore Spawnpoint 197 Titanium'), +(@GUID1+197,@POOL+197,@CHANCE1, 'Icecrown Ore Spawnpoint 198 Saronite'), +(@GUID2+197,@POOL+197,@CHANCE2, 'Icecrown Ore Spawnpoint 198 Rich Saronite'), +(@GUID3+197,@POOL+197,@CHANCE3, 'Icecrown Ore Spawnpoint 198 Titanium'), +(@GUID1+198,@POOL+198,@CHANCE1, 'Icecrown Ore Spawnpoint 199 Saronite'), +(@GUID2+198,@POOL+198,@CHANCE2, 'Icecrown Ore Spawnpoint 199 Rich Saronite'), +(@GUID3+198,@POOL+198,@CHANCE3, 'Icecrown Ore Spawnpoint 199 Titanium'), +(@GUID1+199,@POOL+199,@CHANCE1, 'Icecrown Ore Spawnpoint 200 Saronite'), +(@GUID2+199,@POOL+199,@CHANCE2, 'Icecrown Ore Spawnpoint 200 Rich Saronite'), +(@GUID3+199,@POOL+199,@CHANCE3, 'Icecrown Ore Spawnpoint 200 Titanium'), +(@GUID1+200,@POOL+200,@CHANCE1, 'Icecrown Ore Spawnpoint 201 Saronite'), +(@GUID2+200,@POOL+200,@CHANCE2, 'Icecrown Ore Spawnpoint 201 Rich Saronite'), +(@GUID3+200,@POOL+200,@CHANCE3, 'Icecrown Ore Spawnpoint 201 Titanium'), +(@GUID1+201,@POOL+201,@CHANCE1, 'Icecrown Ore Spawnpoint 202 Saronite'), +(@GUID2+201,@POOL+201,@CHANCE2, 'Icecrown Ore Spawnpoint 202 Rich Saronite'), +(@GUID3+201,@POOL+201,@CHANCE3, 'Icecrown Ore Spawnpoint 202 Titanium'), +(@GUID1+202,@POOL+202,@CHANCE1, 'Icecrown Ore Spawnpoint 203 Saronite'), +(@GUID2+202,@POOL+202,@CHANCE2, 'Icecrown Ore Spawnpoint 203 Rich Saronite'), +(@GUID3+202,@POOL+202,@CHANCE3, 'Icecrown Ore Spawnpoint 203 Titanium'), +(@GUID1+203,@POOL+203,@CHANCE1, 'Icecrown Ore Spawnpoint 204 Saronite'), +(@GUID2+203,@POOL+203,@CHANCE2, 'Icecrown Ore Spawnpoint 204 Rich Saronite'), +(@GUID3+203,@POOL+203,@CHANCE3, 'Icecrown Ore Spawnpoint 204 Titanium'), +(@GUID1+204,@POOL+204,@CHANCE1, 'Icecrown Ore Spawnpoint 205 Saronite'), +(@GUID2+204,@POOL+204,@CHANCE2, 'Icecrown Ore Spawnpoint 205 Rich Saronite'), +(@GUID3+204,@POOL+204,@CHANCE3, 'Icecrown Ore Spawnpoint 205 Titanium'), +(@GUID1+205,@POOL+205,@CHANCE1, 'Icecrown Ore Spawnpoint 206 Saronite'), +(@GUID2+205,@POOL+205,@CHANCE2, 'Icecrown Ore Spawnpoint 206 Rich Saronite'), +(@GUID3+205,@POOL+205,@CHANCE3, 'Icecrown Ore Spawnpoint 206 Titanium'), +(@GUID1+206,@POOL+206,@CHANCE1, 'Icecrown Ore Spawnpoint 207 Saronite'), +(@GUID2+206,@POOL+206,@CHANCE2, 'Icecrown Ore Spawnpoint 207 Rich Saronite'), +(@GUID3+206,@POOL+206,@CHANCE3, 'Icecrown Ore Spawnpoint 207 Titanium'), +(@GUID1+207,@POOL+207,@CHANCE1, 'Icecrown Ore Spawnpoint 208 Saronite'), +(@GUID2+207,@POOL+207,@CHANCE2, 'Icecrown Ore Spawnpoint 208 Rich Saronite'), +(@GUID3+207,@POOL+207,@CHANCE3, 'Icecrown Ore Spawnpoint 208 Titanium'), +(@GUID1+208,@POOL+208,@CHANCE1, 'Icecrown Ore Spawnpoint 209 Saronite'), +(@GUID2+208,@POOL+208,@CHANCE2, 'Icecrown Ore Spawnpoint 209 Rich Saronite'), +(@GUID3+208,@POOL+208,@CHANCE3, 'Icecrown Ore Spawnpoint 209 Titanium'), +(@GUID1+209,@POOL+209,@CHANCE1, 'Icecrown Ore Spawnpoint 210 Saronite'), +(@GUID2+209,@POOL+209,@CHANCE2, 'Icecrown Ore Spawnpoint 210 Rich Saronite'), +(@GUID3+209,@POOL+209,@CHANCE3, 'Icecrown Ore Spawnpoint 210 Titanium'), +(@GUID1+210,@POOL+210,@CHANCE1, 'Icecrown Ore Spawnpoint 211 Saronite'), +(@GUID2+210,@POOL+210,@CHANCE2, 'Icecrown Ore Spawnpoint 211 Rich Saronite'), +(@GUID3+210,@POOL+210,@CHANCE3, 'Icecrown Ore Spawnpoint 211 Titanium'), +(@GUID1+211,@POOL+211,@CHANCE1, 'Icecrown Ore Spawnpoint 212 Saronite'), +(@GUID2+211,@POOL+211,@CHANCE2, 'Icecrown Ore Spawnpoint 212 Rich Saronite'), +(@GUID3+211,@POOL+211,@CHANCE3, 'Icecrown Ore Spawnpoint 212 Titanium'), +(@GUID1+212,@POOL+212,@CHANCE1, 'Icecrown Ore Spawnpoint 213 Saronite'), +(@GUID2+212,@POOL+212,@CHANCE2, 'Icecrown Ore Spawnpoint 213 Rich Saronite'), +(@GUID3+212,@POOL+212,@CHANCE3, 'Icecrown Ore Spawnpoint 213 Titanium'), +(@GUID1+213,@POOL+213,@CHANCE1, 'Icecrown Ore Spawnpoint 214 Saronite'), +(@GUID2+213,@POOL+213,@CHANCE2, 'Icecrown Ore Spawnpoint 214 Rich Saronite'), +(@GUID3+213,@POOL+213,@CHANCE3, 'Icecrown Ore Spawnpoint 214 Titanium'), +(@GUID1+214,@POOL+214,@CHANCE1, 'Icecrown Ore Spawnpoint 215 Saronite'), +(@GUID2+214,@POOL+214,@CHANCE2, 'Icecrown Ore Spawnpoint 215 Rich Saronite'), +(@GUID3+214,@POOL+214,@CHANCE3, 'Icecrown Ore Spawnpoint 215 Titanium'), +(@GUID1+215,@POOL+215,@CHANCE1, 'Icecrown Ore Spawnpoint 216 Saronite'), +(@GUID2+215,@POOL+215,@CHANCE2, 'Icecrown Ore Spawnpoint 216 Rich Saronite'), +(@GUID3+215,@POOL+215,@CHANCE3, 'Icecrown Ore Spawnpoint 216 Titanium'), +(@GUID1+216,@POOL+216,@CHANCE1, 'Icecrown Ore Spawnpoint 217 Saronite'), +(@GUID2+216,@POOL+216,@CHANCE2, 'Icecrown Ore Spawnpoint 217 Rich Saronite'), +(@GUID3+216,@POOL+216,@CHANCE3, 'Icecrown Ore Spawnpoint 217 Titanium'), +(@GUID1+217,@POOL+217,@CHANCE1, 'Icecrown Ore Spawnpoint 218 Saronite'), +(@GUID2+217,@POOL+217,@CHANCE2, 'Icecrown Ore Spawnpoint 218 Rich Saronite'), +(@GUID3+217,@POOL+217,@CHANCE3, 'Icecrown Ore Spawnpoint 218 Titanium'), +(@GUID1+218,@POOL+218,@CHANCE1, 'Icecrown Ore Spawnpoint 219 Saronite'), +(@GUID2+218,@POOL+218,@CHANCE2, 'Icecrown Ore Spawnpoint 219 Rich Saronite'), +(@GUID3+218,@POOL+218,@CHANCE3, 'Icecrown Ore Spawnpoint 219 Titanium'), +(@GUID1+219,@POOL+219,@CHANCE1, 'Icecrown Ore Spawnpoint 220 Saronite'), +(@GUID2+219,@POOL+219,@CHANCE2, 'Icecrown Ore Spawnpoint 220 Rich Saronite'), +(@GUID3+219,@POOL+219,@CHANCE3, 'Icecrown Ore Spawnpoint 220 Titanium'), +(@GUID1+220,@POOL+220,@CHANCE1, 'Icecrown Ore Spawnpoint 221 Saronite'), +(@GUID2+220,@POOL+220,@CHANCE2, 'Icecrown Ore Spawnpoint 221 Rich Saronite'), +(@GUID3+220,@POOL+220,@CHANCE3, 'Icecrown Ore Spawnpoint 221 Titanium'), +(@GUID1+221,@POOL+221,@CHANCE1, 'Icecrown Ore Spawnpoint 222 Saronite'), +(@GUID2+221,@POOL+221,@CHANCE2, 'Icecrown Ore Spawnpoint 222 Rich Saronite'), +(@GUID3+221,@POOL+221,@CHANCE3, 'Icecrown Ore Spawnpoint 222 Titanium'), +(@GUID1+222,@POOL+222,@CHANCE1, 'Icecrown Ore Spawnpoint 223 Saronite'), +(@GUID2+222,@POOL+222,@CHANCE2, 'Icecrown Ore Spawnpoint 223 Rich Saronite'), +(@GUID3+222,@POOL+222,@CHANCE3, 'Icecrown Ore Spawnpoint 223 Titanium'), +(@GUID1+223,@POOL+223,@CHANCE1, 'Icecrown Ore Spawnpoint 224 Saronite'), +(@GUID2+223,@POOL+223,@CHANCE2, 'Icecrown Ore Spawnpoint 224 Rich Saronite'), +(@GUID3+223,@POOL+223,@CHANCE3, 'Icecrown Ore Spawnpoint 224 Titanium'), +(@GUID1+224,@POOL+224,@CHANCE1, 'Icecrown Ore Spawnpoint 225 Saronite'), +(@GUID2+224,@POOL+224,@CHANCE2, 'Icecrown Ore Spawnpoint 225 Rich Saronite'), +(@GUID3+224,@POOL+224,@CHANCE3, 'Icecrown Ore Spawnpoint 225 Titanium'), +(@GUID1+225,@POOL+225,@CHANCE1, 'Icecrown Ore Spawnpoint 226 Saronite'), +(@GUID2+225,@POOL+225,@CHANCE2, 'Icecrown Ore Spawnpoint 226 Rich Saronite'), +(@GUID3+225,@POOL+225,@CHANCE3, 'Icecrown Ore Spawnpoint 226 Titanium'), +(@GUID1+226,@POOL+226,@CHANCE1, 'Icecrown Ore Spawnpoint 227 Saronite'), +(@GUID2+226,@POOL+226,@CHANCE2, 'Icecrown Ore Spawnpoint 227 Rich Saronite'), +(@GUID3+226,@POOL+226,@CHANCE3, 'Icecrown Ore Spawnpoint 227 Titanium'), +(@GUID1+227,@POOL+227,@CHANCE1, 'Icecrown Ore Spawnpoint 228 Saronite'), +(@GUID2+227,@POOL+227,@CHANCE2, 'Icecrown Ore Spawnpoint 228 Rich Saronite'), +(@GUID3+227,@POOL+227,@CHANCE3, 'Icecrown Ore Spawnpoint 228 Titanium'), +(@GUID1+228,@POOL+228,@CHANCE1, 'Icecrown Ore Spawnpoint 229 Saronite'), +(@GUID2+228,@POOL+228,@CHANCE2, 'Icecrown Ore Spawnpoint 229 Rich Saronite'), +(@GUID3+228,@POOL+228,@CHANCE3, 'Icecrown Ore Spawnpoint 229 Titanium'), +(@GUID1+229,@POOL+229,@CHANCE1, 'Icecrown Ore Spawnpoint 230 Saronite'), +(@GUID2+229,@POOL+229,@CHANCE2, 'Icecrown Ore Spawnpoint 230 Rich Saronite'), +(@GUID3+229,@POOL+229,@CHANCE3, 'Icecrown Ore Spawnpoint 230 Titanium'), +(@GUID1+230,@POOL+230,@CHANCE1, 'Icecrown Ore Spawnpoint 231 Saronite'), +(@GUID2+230,@POOL+230,@CHANCE2, 'Icecrown Ore Spawnpoint 231 Rich Saronite'), +(@GUID3+230,@POOL+230,@CHANCE3, 'Icecrown Ore Spawnpoint 231 Titanium'), +(@GUID1+231,@POOL+231,@CHANCE1, 'Icecrown Ore Spawnpoint 232 Saronite'), +(@GUID2+231,@POOL+231,@CHANCE2, 'Icecrown Ore Spawnpoint 232 Rich Saronite'), +(@GUID3+231,@POOL+231,@CHANCE3, 'Icecrown Ore Spawnpoint 232 Titanium'), +(@GUID1+232,@POOL+232,@CHANCE1, 'Icecrown Ore Spawnpoint 233 Saronite'), +(@GUID2+232,@POOL+232,@CHANCE2, 'Icecrown Ore Spawnpoint 233 Rich Saronite'), +(@GUID3+232,@POOL+232,@CHANCE3, 'Icecrown Ore Spawnpoint 233 Titanium'), +(@GUID1+233,@POOL+233,@CHANCE1, 'Icecrown Ore Spawnpoint 234 Saronite'), +(@GUID2+233,@POOL+233,@CHANCE2, 'Icecrown Ore Spawnpoint 234 Rich Saronite'), +(@GUID3+233,@POOL+233,@CHANCE3, 'Icecrown Ore Spawnpoint 234 Titanium'), +(@GUID1+234,@POOL+234,@CHANCE1, 'Icecrown Ore Spawnpoint 235 Saronite'), +(@GUID2+234,@POOL+234,@CHANCE2, 'Icecrown Ore Spawnpoint 235 Rich Saronite'), +(@GUID3+234,@POOL+234,@CHANCE3, 'Icecrown Ore Spawnpoint 235 Titanium'); +-- Add each pool to pool template +DELETE FROM `pool_template` WHERE `entry` BETWEEN @POOL AND @POOL+@LASTGUID; +INSERT INTO `pool_template` (`entry`,`max_limit`,`description`) VALUES +(@POOL+0,1, 'Icecrown Ore Spawnpoint 1'), +(@POOL+1,1, 'Icecrown Ore Spawnpoint 2'), +(@POOL+2,1, 'Icecrown Ore Spawnpoint 3'), +(@POOL+3,1, 'Icecrown Ore Spawnpoint 4'), +(@POOL+4,1, 'Icecrown Ore Spawnpoint 5'), +(@POOL+5,1, 'Icecrown Ore Spawnpoint 6'), +(@POOL+6,1, 'Icecrown Ore Spawnpoint 7'), +(@POOL+7,1, 'Icecrown Ore Spawnpoint 8'), +(@POOL+8,1, 'Icecrown Ore Spawnpoint 9'), +(@POOL+9,1, 'Icecrown Ore Spawnpoint 10'), +(@POOL+10,1, 'Icecrown Ore Spawnpoint 11'), +(@POOL+11,1, 'Icecrown Ore Spawnpoint 12'), +(@POOL+12,1, 'Icecrown Ore Spawnpoint 13'), +(@POOL+13,1, 'Icecrown Ore Spawnpoint 14'), +(@POOL+14,1, 'Icecrown Ore Spawnpoint 15'), +(@POOL+15,1, 'Icecrown Ore Spawnpoint 16'), +(@POOL+16,1, 'Icecrown Ore Spawnpoint 17'), +(@POOL+17,1, 'Icecrown Ore Spawnpoint 18'), +(@POOL+18,1, 'Icecrown Ore Spawnpoint 19'), +(@POOL+19,1, 'Icecrown Ore Spawnpoint 20'), +(@POOL+20,1, 'Icecrown Ore Spawnpoint 21'), +(@POOL+21,1, 'Icecrown Ore Spawnpoint 22'), +(@POOL+22,1, 'Icecrown Ore Spawnpoint 23'), +(@POOL+23,1, 'Icecrown Ore Spawnpoint 24'), +(@POOL+24,1, 'Icecrown Ore Spawnpoint 25'), +(@POOL+25,1, 'Icecrown Ore Spawnpoint 26'), +(@POOL+26,1, 'Icecrown Ore Spawnpoint 27'), +(@POOL+27,1, 'Icecrown Ore Spawnpoint 28'), +(@POOL+28,1, 'Icecrown Ore Spawnpoint 29'), +(@POOL+29,1, 'Icecrown Ore Spawnpoint 30'), +(@POOL+30,1, 'Icecrown Ore Spawnpoint 31'), +(@POOL+31,1, 'Icecrown Ore Spawnpoint 32'), +(@POOL+32,1, 'Icecrown Ore Spawnpoint 33'), +(@POOL+33,1, 'Icecrown Ore Spawnpoint 34'), +(@POOL+34,1, 'Icecrown Ore Spawnpoint 35'), +(@POOL+35,1, 'Icecrown Ore Spawnpoint 36'), +(@POOL+36,1, 'Icecrown Ore Spawnpoint 37'), +(@POOL+37,1, 'Icecrown Ore Spawnpoint 38'), +(@POOL+38,1, 'Icecrown Ore Spawnpoint 39'), +(@POOL+39,1, 'Icecrown Ore Spawnpoint 40'), +(@POOL+40,1, 'Icecrown Ore Spawnpoint 41'), +(@POOL+41,1, 'Icecrown Ore Spawnpoint 42'), +(@POOL+42,1, 'Icecrown Ore Spawnpoint 43'), +(@POOL+43,1, 'Icecrown Ore Spawnpoint 44'), +(@POOL+44,1, 'Icecrown Ore Spawnpoint 45'), +(@POOL+45,1, 'Icecrown Ore Spawnpoint 46'), +(@POOL+46,1, 'Icecrown Ore Spawnpoint 47'), +(@POOL+47,1, 'Icecrown Ore Spawnpoint 48'), +(@POOL+48,1, 'Icecrown Ore Spawnpoint 49'), +(@POOL+49,1, 'Icecrown Ore Spawnpoint 50'), +(@POOL+50,1, 'Icecrown Ore Spawnpoint 51'), +(@POOL+51,1, 'Icecrown Ore Spawnpoint 52'), +(@POOL+52,1, 'Icecrown Ore Spawnpoint 53'), +(@POOL+53,1, 'Icecrown Ore Spawnpoint 54'), +(@POOL+54,1, 'Icecrown Ore Spawnpoint 55'), +(@POOL+55,1, 'Icecrown Ore Spawnpoint 56'), +(@POOL+56,1, 'Icecrown Ore Spawnpoint 57'), +(@POOL+57,1, 'Icecrown Ore Spawnpoint 58'), +(@POOL+58,1, 'Icecrown Ore Spawnpoint 59'), +(@POOL+59,1, 'Icecrown Ore Spawnpoint 60'), +(@POOL+60,1, 'Icecrown Ore Spawnpoint 61'), +(@POOL+61,1, 'Icecrown Ore Spawnpoint 62'), +(@POOL+62,1, 'Icecrown Ore Spawnpoint 63'), +(@POOL+63,1, 'Icecrown Ore Spawnpoint 64'), +(@POOL+64,1, 'Icecrown Ore Spawnpoint 65'), +(@POOL+65,1, 'Icecrown Ore Spawnpoint 66'), +(@POOL+66,1, 'Icecrown Ore Spawnpoint 67'), +(@POOL+67,1, 'Icecrown Ore Spawnpoint 68'), +(@POOL+68,1, 'Icecrown Ore Spawnpoint 69'), +(@POOL+69,1, 'Icecrown Ore Spawnpoint 70'), +(@POOL+70,1, 'Icecrown Ore Spawnpoint 71'), +(@POOL+71,1, 'Icecrown Ore Spawnpoint 72'), +(@POOL+72,1, 'Icecrown Ore Spawnpoint 73'), +(@POOL+73,1, 'Icecrown Ore Spawnpoint 74'), +(@POOL+74,1, 'Icecrown Ore Spawnpoint 75'), +(@POOL+75,1, 'Icecrown Ore Spawnpoint 76'), +(@POOL+76,1, 'Icecrown Ore Spawnpoint 77'), +(@POOL+77,1, 'Icecrown Ore Spawnpoint 78'), +(@POOL+78,1, 'Icecrown Ore Spawnpoint 79'), +(@POOL+79,1, 'Icecrown Ore Spawnpoint 80'), +(@POOL+80,1, 'Icecrown Ore Spawnpoint 81'), +(@POOL+81,1, 'Icecrown Ore Spawnpoint 82'), +(@POOL+82,1, 'Icecrown Ore Spawnpoint 83'), +(@POOL+83,1, 'Icecrown Ore Spawnpoint 84'), +(@POOL+84,1, 'Icecrown Ore Spawnpoint 85'), +(@POOL+85,1, 'Icecrown Ore Spawnpoint 86'), +(@POOL+86,1, 'Icecrown Ore Spawnpoint 87'), +(@POOL+87,1, 'Icecrown Ore Spawnpoint 88'), +(@POOL+88,1, 'Icecrown Ore Spawnpoint 89'), +(@POOL+89,1, 'Icecrown Ore Spawnpoint 90'), +(@POOL+90,1, 'Icecrown Ore Spawnpoint 91'), +(@POOL+91,1, 'Icecrown Ore Spawnpoint 92'), +(@POOL+92,1, 'Icecrown Ore Spawnpoint 93'), +(@POOL+93,1, 'Icecrown Ore Spawnpoint 94'), +(@POOL+94,1, 'Icecrown Ore Spawnpoint 95'), +(@POOL+95,1, 'Icecrown Ore Spawnpoint 96'), +(@POOL+96,1, 'Icecrown Ore Spawnpoint 97'), +(@POOL+97,1, 'Icecrown Ore Spawnpoint 98'), +(@POOL+98,1, 'Icecrown Ore Spawnpoint 99'), +(@POOL+99,1, 'Icecrown Ore Spawnpoint 100'), +(@POOL+100,1, 'Icecrown Ore Spawnpoint 101'), +(@POOL+101,1, 'Icecrown Ore Spawnpoint 102'), +(@POOL+102,1, 'Icecrown Ore Spawnpoint 103'), +(@POOL+103,1, 'Icecrown Ore Spawnpoint 104'), +(@POOL+104,1, 'Icecrown Ore Spawnpoint 105'), +(@POOL+105,1, 'Icecrown Ore Spawnpoint 106'), +(@POOL+106,1, 'Icecrown Ore Spawnpoint 107'), +(@POOL+107,1, 'Icecrown Ore Spawnpoint 108'), +(@POOL+108,1, 'Icecrown Ore Spawnpoint 109'), +(@POOL+109,1, 'Icecrown Ore Spawnpoint 110'), +(@POOL+110,1, 'Icecrown Ore Spawnpoint 111'), +(@POOL+111,1, 'Icecrown Ore Spawnpoint 112'), +(@POOL+112,1, 'Icecrown Ore Spawnpoint 113'), +(@POOL+113,1, 'Icecrown Ore Spawnpoint 114'), +(@POOL+114,1, 'Icecrown Ore Spawnpoint 115'), +(@POOL+115,1, 'Icecrown Ore Spawnpoint 116'), +(@POOL+116,1, 'Icecrown Ore Spawnpoint 117'), +(@POOL+117,1, 'Icecrown Ore Spawnpoint 118'), +(@POOL+118,1, 'Icecrown Ore Spawnpoint 119'), +(@POOL+119,1, 'Icecrown Ore Spawnpoint 120'), +(@POOL+120,1, 'Icecrown Ore Spawnpoint 121'), +(@POOL+121,1, 'Icecrown Ore Spawnpoint 122'), +(@POOL+122,1, 'Icecrown Ore Spawnpoint 123'), +(@POOL+123,1, 'Icecrown Ore Spawnpoint 124'), +(@POOL+124,1, 'Icecrown Ore Spawnpoint 125'), +(@POOL+125,1, 'Icecrown Ore Spawnpoint 126'), +(@POOL+126,1, 'Icecrown Ore Spawnpoint 127'), +(@POOL+127,1, 'Icecrown Ore Spawnpoint 128'), +(@POOL+128,1, 'Icecrown Ore Spawnpoint 129'), +(@POOL+129,1, 'Icecrown Ore Spawnpoint 130'), +(@POOL+130,1, 'Icecrown Ore Spawnpoint 131'), +(@POOL+131,1, 'Icecrown Ore Spawnpoint 132'), +(@POOL+132,1, 'Icecrown Ore Spawnpoint 133'), +(@POOL+133,1, 'Icecrown Ore Spawnpoint 134'), +(@POOL+134,1, 'Icecrown Ore Spawnpoint 135'), +(@POOL+135,1, 'Icecrown Ore Spawnpoint 136'), +(@POOL+136,1, 'Icecrown Ore Spawnpoint 137'), +(@POOL+137,1, 'Icecrown Ore Spawnpoint 138'), +(@POOL+138,1, 'Icecrown Ore Spawnpoint 139'), +(@POOL+139,1, 'Icecrown Ore Spawnpoint 140'), +(@POOL+140,1, 'Icecrown Ore Spawnpoint 141'), +(@POOL+141,1, 'Icecrown Ore Spawnpoint 142'), +(@POOL+142,1, 'Icecrown Ore Spawnpoint 143'), +(@POOL+143,1, 'Icecrown Ore Spawnpoint 144'), +(@POOL+144,1, 'Icecrown Ore Spawnpoint 145'), +(@POOL+145,1, 'Icecrown Ore Spawnpoint 146'), +(@POOL+146,1, 'Icecrown Ore Spawnpoint 147'), +(@POOL+147,1, 'Icecrown Ore Spawnpoint 148'), +(@POOL+148,1, 'Icecrown Ore Spawnpoint 149'), +(@POOL+149,1, 'Icecrown Ore Spawnpoint 150'), +(@POOL+150,1, 'Icecrown Ore Spawnpoint 151'), +(@POOL+151,1, 'Icecrown Ore Spawnpoint 152'), +(@POOL+152,1, 'Icecrown Ore Spawnpoint 153'), +(@POOL+153,1, 'Icecrown Ore Spawnpoint 154'), +(@POOL+154,1, 'Icecrown Ore Spawnpoint 155'), +(@POOL+155,1, 'Icecrown Ore Spawnpoint 156'), +(@POOL+156,1, 'Icecrown Ore Spawnpoint 157'), +(@POOL+157,1, 'Icecrown Ore Spawnpoint 158'), +(@POOL+158,1, 'Icecrown Ore Spawnpoint 159'), +(@POOL+159,1, 'Icecrown Ore Spawnpoint 160'), +(@POOL+160,1, 'Icecrown Ore Spawnpoint 161'), +(@POOL+161,1, 'Icecrown Ore Spawnpoint 162'), +(@POOL+162,1, 'Icecrown Ore Spawnpoint 163'), +(@POOL+163,1, 'Icecrown Ore Spawnpoint 164'), +(@POOL+164,1, 'Icecrown Ore Spawnpoint 165'), +(@POOL+165,1, 'Icecrown Ore Spawnpoint 166'), +(@POOL+166,1, 'Icecrown Ore Spawnpoint 167'), +(@POOL+167,1, 'Icecrown Ore Spawnpoint 168'), +(@POOL+168,1, 'Icecrown Ore Spawnpoint 169'), +(@POOL+169,1, 'Icecrown Ore Spawnpoint 170'), +(@POOL+170,1, 'Icecrown Ore Spawnpoint 171'), +(@POOL+171,1, 'Icecrown Ore Spawnpoint 172'), +(@POOL+172,1, 'Icecrown Ore Spawnpoint 173'), +(@POOL+173,1, 'Icecrown Ore Spawnpoint 174'), +(@POOL+174,1, 'Icecrown Ore Spawnpoint 175'), +(@POOL+175,1, 'Icecrown Ore Spawnpoint 176'), +(@POOL+176,1, 'Icecrown Ore Spawnpoint 177'), +(@POOL+177,1, 'Icecrown Ore Spawnpoint 178'), +(@POOL+178,1, 'Icecrown Ore Spawnpoint 179'), +(@POOL+179,1, 'Icecrown Ore Spawnpoint 180'), +(@POOL+180,1, 'Icecrown Ore Spawnpoint 181'), +(@POOL+181,1, 'Icecrown Ore Spawnpoint 182'), +(@POOL+182,1, 'Icecrown Ore Spawnpoint 183'), +(@POOL+183,1, 'Icecrown Ore Spawnpoint 184'), +(@POOL+184,1, 'Icecrown Ore Spawnpoint 185'), +(@POOL+185,1, 'Icecrown Ore Spawnpoint 186'), +(@POOL+186,1, 'Icecrown Ore Spawnpoint 187'), +(@POOL+187,1, 'Icecrown Ore Spawnpoint 188'), +(@POOL+188,1, 'Icecrown Ore Spawnpoint 189'), +(@POOL+189,1, 'Icecrown Ore Spawnpoint 190'), +(@POOL+190,1, 'Icecrown Ore Spawnpoint 191'), +(@POOL+191,1, 'Icecrown Ore Spawnpoint 192'), +(@POOL+192,1, 'Icecrown Ore Spawnpoint 193'), +(@POOL+193,1, 'Icecrown Ore Spawnpoint 194'), +(@POOL+194,1, 'Icecrown Ore Spawnpoint 195'), +(@POOL+195,1, 'Icecrown Ore Spawnpoint 196'), +(@POOL+196,1, 'Icecrown Ore Spawnpoint 197'), +(@POOL+197,1, 'Icecrown Ore Spawnpoint 198'), +(@POOL+198,1, 'Icecrown Ore Spawnpoint 199'), +(@POOL+199,1, 'Icecrown Ore Spawnpoint 200'), +(@POOL+200,1, 'Icecrown Ore Spawnpoint 201'), +(@POOL+201,1, 'Icecrown Ore Spawnpoint 202'), +(@POOL+202,1, 'Icecrown Ore Spawnpoint 203'), +(@POOL+203,1, 'Icecrown Ore Spawnpoint 204'), +(@POOL+204,1, 'Icecrown Ore Spawnpoint 205'), +(@POOL+205,1, 'Icecrown Ore Spawnpoint 206'), +(@POOL+206,1, 'Icecrown Ore Spawnpoint 207'), +(@POOL+207,1, 'Icecrown Ore Spawnpoint 208'), +(@POOL+208,1, 'Icecrown Ore Spawnpoint 209'), +(@POOL+209,1, 'Icecrown Ore Spawnpoint 210'), +(@POOL+210,1, 'Icecrown Ore Spawnpoint 211'), +(@POOL+211,1, 'Icecrown Ore Spawnpoint 212'), +(@POOL+212,1, 'Icecrown Ore Spawnpoint 213'), +(@POOL+213,1, 'Icecrown Ore Spawnpoint 214'), +(@POOL+214,1, 'Icecrown Ore Spawnpoint 215'), +(@POOL+215,1, 'Icecrown Ore Spawnpoint 216'), +(@POOL+216,1, 'Icecrown Ore Spawnpoint 217'), +(@POOL+217,1, 'Icecrown Ore Spawnpoint 218'), +(@POOL+218,1, 'Icecrown Ore Spawnpoint 219'), +(@POOL+219,1, 'Icecrown Ore Spawnpoint 220'), +(@POOL+220,1, 'Icecrown Ore Spawnpoint 221'), +(@POOL+221,1, 'Icecrown Ore Spawnpoint 222'), +(@POOL+222,1, 'Icecrown Ore Spawnpoint 223'), +(@POOL+223,1, 'Icecrown Ore Spawnpoint 224'), +(@POOL+224,1, 'Icecrown Ore Spawnpoint 225'), +(@POOL+225,1, 'Icecrown Ore Spawnpoint 226'), +(@POOL+226,1, 'Icecrown Ore Spawnpoint 227'), +(@POOL+227,1, 'Icecrown Ore Spawnpoint 228'), +(@POOL+228,1, 'Icecrown Ore Spawnpoint 229'), +(@POOL+229,1, 'Icecrown Ore Spawnpoint 230'), +(@POOL+230,1, 'Icecrown Ore Spawnpoint 231'), +(@POOL+231,1, 'Icecrown Ore Spawnpoint 232'), +(@POOL+232,1, 'Icecrown Ore Spawnpoint 233'), +(@POOL+233,1, 'Icecrown Ore Spawnpoint 234'), +(@POOL+234,1, 'Icecrown Ore Spawnpoint 235'); +-- Add mother pool to pool template +DELETE FROM `pool_template` WHERE `entry`=@MOTHER; +INSERT INTO `pool_template` (`entry`,`max_limit`,`description`) VALUES +(@MOTHER,@ACTIVE, 'Icecrown Ore Mother pool'); +-- Add each pool to pool_pool +DELETE FROM `pool_pool` WHERE `pool_id` BETWEEN @POOL AND @POOL+@LASTGUID; +INSERT INTO `pool_pool` (`pool_id`,`mother_pool`,`chance`,`description`) VALUES +(@POOL+0,@MOTHER,0, 'Icecrown Ore Spawnpoint 1'), +(@POOL+1,@MOTHER,0, 'Icecrown Ore Spawnpoint 2'), +(@POOL+2,@MOTHER,0, 'Icecrown Ore Spawnpoint 3'), +(@POOL+3,@MOTHER,0, 'Icecrown Ore Spawnpoint 4'), +(@POOL+4,@MOTHER,0, 'Icecrown Ore Spawnpoint 5'), +(@POOL+5,@MOTHER,0, 'Icecrown Ore Spawnpoint 6'), +(@POOL+6,@MOTHER,0, 'Icecrown Ore Spawnpoint 7'), +(@POOL+7,@MOTHER,0, 'Icecrown Ore Spawnpoint 8'), +(@POOL+8,@MOTHER,0, 'Icecrown Ore Spawnpoint 9'), +(@POOL+9,@MOTHER,0, 'Icecrown Ore Spawnpoint 10'), +(@POOL+10,@MOTHER,0, 'Icecrown Ore Spawnpoint 11'), +(@POOL+11,@MOTHER,0, 'Icecrown Ore Spawnpoint 12'), +(@POOL+12,@MOTHER,0, 'Icecrown Ore Spawnpoint 13'), +(@POOL+13,@MOTHER,0, 'Icecrown Ore Spawnpoint 14'), +(@POOL+14,@MOTHER,0, 'Icecrown Ore Spawnpoint 15'), +(@POOL+15,@MOTHER,0, 'Icecrown Ore Spawnpoint 16'), +(@POOL+16,@MOTHER,0, 'Icecrown Ore Spawnpoint 17'), +(@POOL+17,@MOTHER,0, 'Icecrown Ore Spawnpoint 18'), +(@POOL+18,@MOTHER,0, 'Icecrown Ore Spawnpoint 19'), +(@POOL+19,@MOTHER,0, 'Icecrown Ore Spawnpoint 20'), +(@POOL+20,@MOTHER,0, 'Icecrown Ore Spawnpoint 21'), +(@POOL+21,@MOTHER,0, 'Icecrown Ore Spawnpoint 22'), +(@POOL+22,@MOTHER,0, 'Icecrown Ore Spawnpoint 23'), +(@POOL+23,@MOTHER,0, 'Icecrown Ore Spawnpoint 24'), +(@POOL+24,@MOTHER,0, 'Icecrown Ore Spawnpoint 25'), +(@POOL+25,@MOTHER,0, 'Icecrown Ore Spawnpoint 26'), +(@POOL+26,@MOTHER,0, 'Icecrown Ore Spawnpoint 27'), +(@POOL+27,@MOTHER,0, 'Icecrown Ore Spawnpoint 28'), +(@POOL+28,@MOTHER,0, 'Icecrown Ore Spawnpoint 29'), +(@POOL+29,@MOTHER,0, 'Icecrown Ore Spawnpoint 30'), +(@POOL+30,@MOTHER,0, 'Icecrown Ore Spawnpoint 31'), +(@POOL+31,@MOTHER,0, 'Icecrown Ore Spawnpoint 32'), +(@POOL+32,@MOTHER,0, 'Icecrown Ore Spawnpoint 33'), +(@POOL+33,@MOTHER,0, 'Icecrown Ore Spawnpoint 34'), +(@POOL+34,@MOTHER,0, 'Icecrown Ore Spawnpoint 35'), +(@POOL+35,@MOTHER,0, 'Icecrown Ore Spawnpoint 36'), +(@POOL+36,@MOTHER,0, 'Icecrown Ore Spawnpoint 37'), +(@POOL+37,@MOTHER,0, 'Icecrown Ore Spawnpoint 38'), +(@POOL+38,@MOTHER,0, 'Icecrown Ore Spawnpoint 39'), +(@POOL+39,@MOTHER,0, 'Icecrown Ore Spawnpoint 40'), +(@POOL+40,@MOTHER,0, 'Icecrown Ore Spawnpoint 41'), +(@POOL+41,@MOTHER,0, 'Icecrown Ore Spawnpoint 42'), +(@POOL+42,@MOTHER,0, 'Icecrown Ore Spawnpoint 43'), +(@POOL+43,@MOTHER,0, 'Icecrown Ore Spawnpoint 44'), +(@POOL+44,@MOTHER,0, 'Icecrown Ore Spawnpoint 45'), +(@POOL+45,@MOTHER,0, 'Icecrown Ore Spawnpoint 46'), +(@POOL+46,@MOTHER,0, 'Icecrown Ore Spawnpoint 47'), +(@POOL+47,@MOTHER,0, 'Icecrown Ore Spawnpoint 48'), +(@POOL+48,@MOTHER,0, 'Icecrown Ore Spawnpoint 49'), +(@POOL+49,@MOTHER,0, 'Icecrown Ore Spawnpoint 50'), +(@POOL+50,@MOTHER,0, 'Icecrown Ore Spawnpoint 51'), +(@POOL+51,@MOTHER,0, 'Icecrown Ore Spawnpoint 52'), +(@POOL+52,@MOTHER,0, 'Icecrown Ore Spawnpoint 53'), +(@POOL+53,@MOTHER,0, 'Icecrown Ore Spawnpoint 54'), +(@POOL+54,@MOTHER,0, 'Icecrown Ore Spawnpoint 55'), +(@POOL+55,@MOTHER,0, 'Icecrown Ore Spawnpoint 56'), +(@POOL+56,@MOTHER,0, 'Icecrown Ore Spawnpoint 57'), +(@POOL+57,@MOTHER,0, 'Icecrown Ore Spawnpoint 58'), +(@POOL+58,@MOTHER,0, 'Icecrown Ore Spawnpoint 59'), +(@POOL+59,@MOTHER,0, 'Icecrown Ore Spawnpoint 60'), +(@POOL+60,@MOTHER,0, 'Icecrown Ore Spawnpoint 61'), +(@POOL+61,@MOTHER,0, 'Icecrown Ore Spawnpoint 62'), +(@POOL+62,@MOTHER,0, 'Icecrown Ore Spawnpoint 63'), +(@POOL+63,@MOTHER,0, 'Icecrown Ore Spawnpoint 64'), +(@POOL+64,@MOTHER,0, 'Icecrown Ore Spawnpoint 65'), +(@POOL+65,@MOTHER,0, 'Icecrown Ore Spawnpoint 66'), +(@POOL+66,@MOTHER,0, 'Icecrown Ore Spawnpoint 67'), +(@POOL+67,@MOTHER,0, 'Icecrown Ore Spawnpoint 68'), +(@POOL+68,@MOTHER,0, 'Icecrown Ore Spawnpoint 69'), +(@POOL+69,@MOTHER,0, 'Icecrown Ore Spawnpoint 70'), +(@POOL+70,@MOTHER,0, 'Icecrown Ore Spawnpoint 71'), +(@POOL+71,@MOTHER,0, 'Icecrown Ore Spawnpoint 72'), +(@POOL+72,@MOTHER,0, 'Icecrown Ore Spawnpoint 73'), +(@POOL+73,@MOTHER,0, 'Icecrown Ore Spawnpoint 74'), +(@POOL+74,@MOTHER,0, 'Icecrown Ore Spawnpoint 75'), +(@POOL+75,@MOTHER,0, 'Icecrown Ore Spawnpoint 76'), +(@POOL+76,@MOTHER,0, 'Icecrown Ore Spawnpoint 77'), +(@POOL+77,@MOTHER,0, 'Icecrown Ore Spawnpoint 78'), +(@POOL+78,@MOTHER,0, 'Icecrown Ore Spawnpoint 79'), +(@POOL+79,@MOTHER,0, 'Icecrown Ore Spawnpoint 80'), +(@POOL+80,@MOTHER,0, 'Icecrown Ore Spawnpoint 81'), +(@POOL+81,@MOTHER,0, 'Icecrown Ore Spawnpoint 82'), +(@POOL+82,@MOTHER,0, 'Icecrown Ore Spawnpoint 83'), +(@POOL+83,@MOTHER,0, 'Icecrown Ore Spawnpoint 84'), +(@POOL+84,@MOTHER,0, 'Icecrown Ore Spawnpoint 85'), +(@POOL+85,@MOTHER,0, 'Icecrown Ore Spawnpoint 86'), +(@POOL+86,@MOTHER,0, 'Icecrown Ore Spawnpoint 87'), +(@POOL+87,@MOTHER,0, 'Icecrown Ore Spawnpoint 88'), +(@POOL+88,@MOTHER,0, 'Icecrown Ore Spawnpoint 89'), +(@POOL+89,@MOTHER,0, 'Icecrown Ore Spawnpoint 90'), +(@POOL+90,@MOTHER,0, 'Icecrown Ore Spawnpoint 91'), +(@POOL+91,@MOTHER,0, 'Icecrown Ore Spawnpoint 92'), +(@POOL+92,@MOTHER,0, 'Icecrown Ore Spawnpoint 93'), +(@POOL+93,@MOTHER,0, 'Icecrown Ore Spawnpoint 94'), +(@POOL+94,@MOTHER,0, 'Icecrown Ore Spawnpoint 95'), +(@POOL+95,@MOTHER,0, 'Icecrown Ore Spawnpoint 96'), +(@POOL+96,@MOTHER,0, 'Icecrown Ore Spawnpoint 97'), +(@POOL+97,@MOTHER,0, 'Icecrown Ore Spawnpoint 98'), +(@POOL+98,@MOTHER,0, 'Icecrown Ore Spawnpoint 99'), +(@POOL+99,@MOTHER,0, 'Icecrown Ore Spawnpoint 100'), +(@POOL+100,@MOTHER,0, 'Icecrown Ore Spawnpoint 101'), +(@POOL+101,@MOTHER,0, 'Icecrown Ore Spawnpoint 102'), +(@POOL+102,@MOTHER,0, 'Icecrown Ore Spawnpoint 103'), +(@POOL+103,@MOTHER,0, 'Icecrown Ore Spawnpoint 104'), +(@POOL+104,@MOTHER,0, 'Icecrown Ore Spawnpoint 105'), +(@POOL+105,@MOTHER,0, 'Icecrown Ore Spawnpoint 106'), +(@POOL+106,@MOTHER,0, 'Icecrown Ore Spawnpoint 107'), +(@POOL+107,@MOTHER,0, 'Icecrown Ore Spawnpoint 108'), +(@POOL+108,@MOTHER,0, 'Icecrown Ore Spawnpoint 109'), +(@POOL+109,@MOTHER,0, 'Icecrown Ore Spawnpoint 110'), +(@POOL+110,@MOTHER,0, 'Icecrown Ore Spawnpoint 111'), +(@POOL+111,@MOTHER,0, 'Icecrown Ore Spawnpoint 112'), +(@POOL+112,@MOTHER,0, 'Icecrown Ore Spawnpoint 113'), +(@POOL+113,@MOTHER,0, 'Icecrown Ore Spawnpoint 114'), +(@POOL+114,@MOTHER,0, 'Icecrown Ore Spawnpoint 115'), +(@POOL+115,@MOTHER,0, 'Icecrown Ore Spawnpoint 116'), +(@POOL+116,@MOTHER,0, 'Icecrown Ore Spawnpoint 117'), +(@POOL+117,@MOTHER,0, 'Icecrown Ore Spawnpoint 118'), +(@POOL+118,@MOTHER,0, 'Icecrown Ore Spawnpoint 119'), +(@POOL+119,@MOTHER,0, 'Icecrown Ore Spawnpoint 120'), +(@POOL+120,@MOTHER,0, 'Icecrown Ore Spawnpoint 121'), +(@POOL+121,@MOTHER,0, 'Icecrown Ore Spawnpoint 122'), +(@POOL+122,@MOTHER,0, 'Icecrown Ore Spawnpoint 123'), +(@POOL+123,@MOTHER,0, 'Icecrown Ore Spawnpoint 124'), +(@POOL+124,@MOTHER,0, 'Icecrown Ore Spawnpoint 125'), +(@POOL+125,@MOTHER,0, 'Icecrown Ore Spawnpoint 126'), +(@POOL+126,@MOTHER,0, 'Icecrown Ore Spawnpoint 127'), +(@POOL+127,@MOTHER,0, 'Icecrown Ore Spawnpoint 128'), +(@POOL+128,@MOTHER,0, 'Icecrown Ore Spawnpoint 129'), +(@POOL+129,@MOTHER,0, 'Icecrown Ore Spawnpoint 130'), +(@POOL+130,@MOTHER,0, 'Icecrown Ore Spawnpoint 131'), +(@POOL+131,@MOTHER,0, 'Icecrown Ore Spawnpoint 132'), +(@POOL+132,@MOTHER,0, 'Icecrown Ore Spawnpoint 133'), +(@POOL+133,@MOTHER,0, 'Icecrown Ore Spawnpoint 134'), +(@POOL+134,@MOTHER,0, 'Icecrown Ore Spawnpoint 135'), +(@POOL+135,@MOTHER,0, 'Icecrown Ore Spawnpoint 136'), +(@POOL+136,@MOTHER,0, 'Icecrown Ore Spawnpoint 137'), +(@POOL+137,@MOTHER,0, 'Icecrown Ore Spawnpoint 138'), +(@POOL+138,@MOTHER,0, 'Icecrown Ore Spawnpoint 139'), +(@POOL+139,@MOTHER,0, 'Icecrown Ore Spawnpoint 140'), +(@POOL+140,@MOTHER,0, 'Icecrown Ore Spawnpoint 141'), +(@POOL+141,@MOTHER,0, 'Icecrown Ore Spawnpoint 142'), +(@POOL+142,@MOTHER,0, 'Icecrown Ore Spawnpoint 143'), +(@POOL+143,@MOTHER,0, 'Icecrown Ore Spawnpoint 144'), +(@POOL+144,@MOTHER,0, 'Icecrown Ore Spawnpoint 145'), +(@POOL+145,@MOTHER,0, 'Icecrown Ore Spawnpoint 146'), +(@POOL+146,@MOTHER,0, 'Icecrown Ore Spawnpoint 147'), +(@POOL+147,@MOTHER,0, 'Icecrown Ore Spawnpoint 148'), +(@POOL+148,@MOTHER,0, 'Icecrown Ore Spawnpoint 149'), +(@POOL+149,@MOTHER,0, 'Icecrown Ore Spawnpoint 150'), +(@POOL+150,@MOTHER,0, 'Icecrown Ore Spawnpoint 151'), +(@POOL+151,@MOTHER,0, 'Icecrown Ore Spawnpoint 152'), +(@POOL+152,@MOTHER,0, 'Icecrown Ore Spawnpoint 153'), +(@POOL+153,@MOTHER,0, 'Icecrown Ore Spawnpoint 154'), +(@POOL+154,@MOTHER,0, 'Icecrown Ore Spawnpoint 155'), +(@POOL+155,@MOTHER,0, 'Icecrown Ore Spawnpoint 156'), +(@POOL+156,@MOTHER,0, 'Icecrown Ore Spawnpoint 157'), +(@POOL+157,@MOTHER,0, 'Icecrown Ore Spawnpoint 158'), +(@POOL+158,@MOTHER,0, 'Icecrown Ore Spawnpoint 159'), +(@POOL+159,@MOTHER,0, 'Icecrown Ore Spawnpoint 160'), +(@POOL+160,@MOTHER,0, 'Icecrown Ore Spawnpoint 161'), +(@POOL+161,@MOTHER,0, 'Icecrown Ore Spawnpoint 162'), +(@POOL+162,@MOTHER,0, 'Icecrown Ore Spawnpoint 163'), +(@POOL+163,@MOTHER,0, 'Icecrown Ore Spawnpoint 164'), +(@POOL+164,@MOTHER,0, 'Icecrown Ore Spawnpoint 165'), +(@POOL+165,@MOTHER,0, 'Icecrown Ore Spawnpoint 166'), +(@POOL+166,@MOTHER,0, 'Icecrown Ore Spawnpoint 167'), +(@POOL+167,@MOTHER,0, 'Icecrown Ore Spawnpoint 168'), +(@POOL+168,@MOTHER,0, 'Icecrown Ore Spawnpoint 169'), +(@POOL+169,@MOTHER,0, 'Icecrown Ore Spawnpoint 170'), +(@POOL+170,@MOTHER,0, 'Icecrown Ore Spawnpoint 171'), +(@POOL+171,@MOTHER,0, 'Icecrown Ore Spawnpoint 172'), +(@POOL+172,@MOTHER,0, 'Icecrown Ore Spawnpoint 173'), +(@POOL+173,@MOTHER,0, 'Icecrown Ore Spawnpoint 174'), +(@POOL+174,@MOTHER,0, 'Icecrown Ore Spawnpoint 175'), +(@POOL+175,@MOTHER,0, 'Icecrown Ore Spawnpoint 176'), +(@POOL+176,@MOTHER,0, 'Icecrown Ore Spawnpoint 177'), +(@POOL+177,@MOTHER,0, 'Icecrown Ore Spawnpoint 178'), +(@POOL+178,@MOTHER,0, 'Icecrown Ore Spawnpoint 179'), +(@POOL+179,@MOTHER,0, 'Icecrown Ore Spawnpoint 180'), +(@POOL+180,@MOTHER,0, 'Icecrown Ore Spawnpoint 181'), +(@POOL+181,@MOTHER,0, 'Icecrown Ore Spawnpoint 182'), +(@POOL+182,@MOTHER,0, 'Icecrown Ore Spawnpoint 183'), +(@POOL+183,@MOTHER,0, 'Icecrown Ore Spawnpoint 184'), +(@POOL+184,@MOTHER,0, 'Icecrown Ore Spawnpoint 185'), +(@POOL+185,@MOTHER,0, 'Icecrown Ore Spawnpoint 186'), +(@POOL+186,@MOTHER,0, 'Icecrown Ore Spawnpoint 187'), +(@POOL+187,@MOTHER,0, 'Icecrown Ore Spawnpoint 188'), +(@POOL+188,@MOTHER,0, 'Icecrown Ore Spawnpoint 189'), +(@POOL+189,@MOTHER,0, 'Icecrown Ore Spawnpoint 190'), +(@POOL+190,@MOTHER,0, 'Icecrown Ore Spawnpoint 191'), +(@POOL+191,@MOTHER,0, 'Icecrown Ore Spawnpoint 192'), +(@POOL+192,@MOTHER,0, 'Icecrown Ore Spawnpoint 193'), +(@POOL+193,@MOTHER,0, 'Icecrown Ore Spawnpoint 194'), +(@POOL+194,@MOTHER,0, 'Icecrown Ore Spawnpoint 195'), +(@POOL+195,@MOTHER,0, 'Icecrown Ore Spawnpoint 196'), +(@POOL+196,@MOTHER,0, 'Icecrown Ore Spawnpoint 197'), +(@POOL+197,@MOTHER,0, 'Icecrown Ore Spawnpoint 198'), +(@POOL+198,@MOTHER,0, 'Icecrown Ore Spawnpoint 199'), +(@POOL+199,@MOTHER,0, 'Icecrown Ore Spawnpoint 200'), +(@POOL+200,@MOTHER,0, 'Icecrown Ore Spawnpoint 201'), +(@POOL+201,@MOTHER,0, 'Icecrown Ore Spawnpoint 202'), +(@POOL+202,@MOTHER,0, 'Icecrown Ore Spawnpoint 203'), +(@POOL+203,@MOTHER,0, 'Icecrown Ore Spawnpoint 204'), +(@POOL+204,@MOTHER,0, 'Icecrown Ore Spawnpoint 205'), +(@POOL+205,@MOTHER,0, 'Icecrown Ore Spawnpoint 206'), +(@POOL+206,@MOTHER,0, 'Icecrown Ore Spawnpoint 207'), +(@POOL+207,@MOTHER,0, 'Icecrown Ore Spawnpoint 208'), +(@POOL+208,@MOTHER,0, 'Icecrown Ore Spawnpoint 209'), +(@POOL+209,@MOTHER,0, 'Icecrown Ore Spawnpoint 210'), +(@POOL+210,@MOTHER,0, 'Icecrown Ore Spawnpoint 211'), +(@POOL+211,@MOTHER,0, 'Icecrown Ore Spawnpoint 212'), +(@POOL+212,@MOTHER,0, 'Icecrown Ore Spawnpoint 213'), +(@POOL+213,@MOTHER,0, 'Icecrown Ore Spawnpoint 214'), +(@POOL+214,@MOTHER,0, 'Icecrown Ore Spawnpoint 215'), +(@POOL+215,@MOTHER,0, 'Icecrown Ore Spawnpoint 216'), +(@POOL+216,@MOTHER,0, 'Icecrown Ore Spawnpoint 217'), +(@POOL+217,@MOTHER,0, 'Icecrown Ore Spawnpoint 218'), +(@POOL+218,@MOTHER,0, 'Icecrown Ore Spawnpoint 219'), +(@POOL+219,@MOTHER,0, 'Icecrown Ore Spawnpoint 220'), +(@POOL+220,@MOTHER,0, 'Icecrown Ore Spawnpoint 221'), +(@POOL+221,@MOTHER,0, 'Icecrown Ore Spawnpoint 222'), +(@POOL+222,@MOTHER,0, 'Icecrown Ore Spawnpoint 223'), +(@POOL+223,@MOTHER,0, 'Icecrown Ore Spawnpoint 224'), +(@POOL+224,@MOTHER,0, 'Icecrown Ore Spawnpoint 225'), +(@POOL+225,@MOTHER,0, 'Icecrown Ore Spawnpoint 226'), +(@POOL+226,@MOTHER,0, 'Icecrown Ore Spawnpoint 227'), +(@POOL+227,@MOTHER,0, 'Icecrown Ore Spawnpoint 228'), +(@POOL+228,@MOTHER,0, 'Icecrown Ore Spawnpoint 229'), +(@POOL+229,@MOTHER,0, 'Icecrown Ore Spawnpoint 230'), +(@POOL+230,@MOTHER,0, 'Icecrown Ore Spawnpoint 231'), +(@POOL+231,@MOTHER,0, 'Icecrown Ore Spawnpoint 232'), +(@POOL+232,@MOTHER,0, 'Icecrown Ore Spawnpoint 233'), +(@POOL+233,@MOTHER,0, 'Icecrown Ore Spawnpoint 234'), +(@POOL+234,@MOTHER,0, 'Icecrown Ore Spawnpoint 235'); + diff --git a/sql/old/3.3.5a/2011_11_13_03_world_npc_trainer.sql b/sql/old/3.3.5a/2011_11_13_03_world_npc_trainer.sql new file mode 100644 index 00000000000..0db753c008b --- /dev/null +++ b/sql/old/3.3.5a/2011_11_13_03_world_npc_trainer.sql @@ -0,0 +1,5 @@ +-- Remove Manual: Netherweave Bandage & and Manual: Heavy Netherweave Bandage from vendors (Patch 3.1.0) +DELETE FROM `npc_vendor` WHERE `item` IN (21992,21991); +-- Update reqskillvalue for Netherweave Bandage & Heavy Netherweave Bandage (Patch 3.1.0) +UPDATE `npc_trainer` SET `reqskillvalue`=300 WHERE spell=27032; +UPDATE `npc_trainer` SET `reqskillvalue`=330 WHERE spell=27033; diff --git a/sql/old/3.3.5a/2011_11_13_04_world_creature_loot_template.sql b/sql/old/3.3.5a/2011_11_13_04_world_creature_loot_template.sql new file mode 100644 index 00000000000..b68d12a031d --- /dev/null +++ b/sql/old/3.3.5a/2011_11_13_04_world_creature_loot_template.sql @@ -0,0 +1,4 @@ +DELETE FROM `creature_loot_template` WHERE `entry` IN (4356,4357) AND `item`=33085; +INSERT INTO `creature_loot_template` (`entry`,`item`,`ChanceOrQuestChance`,`lootmode`,`groupid`,`mincountOrRef`,`maxcount`) VALUES +(4356,33085,-37,1,0,1,1), -- Feathers drop from Bloodfen Razormaw +(4357,33085,-33,1,0,1,1); -- Feathers drop from Bloodfen Lashtail diff --git a/sql/old/3.3.5a/2011_11_13_05_world_creature_loot_template.sql b/sql/old/3.3.5a/2011_11_13_05_world_creature_loot_template.sql new file mode 100644 index 00000000000..722027bd343 --- /dev/null +++ b/sql/old/3.3.5a/2011_11_13_05_world_creature_loot_template.sql @@ -0,0 +1,4 @@ +-- Add Jormungar Egg Sac on Deep Jormungar +DELETE FROM `creature_loot_template` WHERE `entry`=34920 AND `item`=46889; +INSERT INTO `creature_loot_template` (`entry`,`item`,`ChanceOrQuestChance`,`lootmode`,`groupid`,`mincountOrRef`,`maxcount`) VALUES +(34920,46889,-100,1,0,1,1); -- Jormungar Egg Sac diff --git a/sql/old/3.3.5a/2011_11_13_06_world_reference_loot_template.sql b/sql/old/3.3.5a/2011_11_13_06_world_reference_loot_template.sql new file mode 100644 index 00000000000..efb2fec72f3 --- /dev/null +++ b/sql/old/3.3.5a/2011_11_13_06_world_reference_loot_template.sql @@ -0,0 +1,9 @@ +SET @Ref = 10020; +DELETE FROM `reference_loot_template` WHERE `entry`=@Ref AND `item`IN (34000,34001,34002,34003,33292,37606); +INSERT INTO `reference_loot_template` (`entry`,`item`,`ChanceOrQuestChance`,`lootmode`,`groupid`,`mincountOrRef`,`maxcount`) VALUES +(@REF,34000,0.8,1,0,1,1), -- Flimsy Female Blood Elf Mask +(@REF,34001,0.8,1,0,1,1), -- Flimsy Female Draenei Mask +(@REF,34002,0.8,1,0,1,1), -- Flimsy Male Blood Elf Mask +(@REF,34003,0.8,1,0,1,1), -- Flimsy Male Draenei Mask +(@REF,37606,11,1,0,1,1), -- Penny Pouch +(@REF,33292,2,1,0,1,1); -- Hallowed Helm diff --git a/sql/old/3.3.5a/2011_11_13_07_world_creature_loot_template.sql b/sql/old/3.3.5a/2011_11_13_07_world_creature_loot_template.sql new file mode 100644 index 00000000000..728ce731313 --- /dev/null +++ b/sql/old/3.3.5a/2011_11_13_07_world_creature_loot_template.sql @@ -0,0 +1,5 @@ +-- Add Formula: Enchant Cloak - Superior Arcane Resistance to Frostbrood Spawn & Cult Researcher +DELETE FROM `creature_loot_template` WHERE `entry` IN (31702,32297) AND `item`=37330; +INSERT INTO `creature_loot_template` (`entry`,`item`,`ChanceOrQuestChance`,`lootmode`,`groupid`,`mincountOrRef`,`maxcount`) VALUES +(31702,37330,1.5,1,0,1,1), -- Formula: Enchant Cloak - Superior Arcane Resistance +(32297,37330,0.8,1,0,1,1); -- Formula: Enchant Cloak - Superior Arcane Resistance diff --git a/sql/old/3.3.5a/2011_11_13_08_world_creature_loot_template.sql b/sql/old/3.3.5a/2011_11_13_08_world_creature_loot_template.sql new file mode 100644 index 00000000000..55f58d4fbba --- /dev/null +++ b/sql/old/3.3.5a/2011_11_13_08_world_creature_loot_template.sql @@ -0,0 +1,2 @@ +-- Update Dropchance for Narain's Scrying Goggles +UPDATE `creature_loot_template` SET `ChanceOrQuestChance`=100 WHERE `item`=20951; diff --git a/sql/old/3.3.5a/2011_11_13_09_world_creature_loot_template.sql b/sql/old/3.3.5a/2011_11_13_09_world_creature_loot_template.sql new file mode 100644 index 00000000000..6356c93a9ba --- /dev/null +++ b/sql/old/3.3.5a/2011_11_13_09_world_creature_loot_template.sql @@ -0,0 +1,2 @@ +-- None of the creatures should drop Scarlet Cannonball +DELETE FROM `creature_loot_template` WHERE `item`=12973; diff --git a/sql/old/3.3.5a/2011_11_13_10_world_creature_loot_template.sql b/sql/old/3.3.5a/2011_11_13_10_world_creature_loot_template.sql new file mode 100644 index 00000000000..3052ba96745 --- /dev/null +++ b/sql/old/3.3.5a/2011_11_13_10_world_creature_loot_template.sql @@ -0,0 +1,2 @@ +-- Drakkari Offerings should also drop when NOT on a quest: +UPDATE `creature_loot_template` SET `ChanceOrQuestChance`=ABS(`ChanceOrQuestChance`) WHERE `item`=38551; diff --git a/sql/old/3.3.5a/2011_11_13_11_world_creature_loot_template.sql b/sql/old/3.3.5a/2011_11_13_11_world_creature_loot_template.sql new file mode 100644 index 00000000000..9f753577844 --- /dev/null +++ b/sql/old/3.3.5a/2011_11_13_11_world_creature_loot_template.sql @@ -0,0 +1,6 @@ +-- Add Orders From Kael'thas to the following creatures +DELETE FROM `creature_loot_template` WHERE `item`=29797; +INSERT INTO `creature_loot_template` (`entry`,`item`,`ChanceOrQuestChance`,`lootmode`,`groupid`,`mincountOrRef`,`maxcount`) VALUES +(18860,29797,-80,1,0,1,1), -- Daughter of Destiny +(20285,29797,-80,1,0,1,1), -- Gan'arg Warp-Tinker +(20326,29797,-80,1,0,1,1); -- Mo'arg Warp-Master diff --git a/sql/old/3.3.5a/2011_11_13_12_world_creature_loot_template.sql b/sql/old/3.3.5a/2011_11_13_12_world_creature_loot_template.sql new file mode 100644 index 00000000000..7982910cee6 --- /dev/null +++ b/sql/old/3.3.5a/2011_11_13_12_world_creature_loot_template.sql @@ -0,0 +1,4 @@ +-- Add Heavy Scorpid Vest to Shadowsworn Thug and remove from Portal Seeker +DELETE FROM `creature_loot_template` WHERE `item`=15727; +INSERT INTO `creature_loot_template` (`entry`,`item`,`ChanceOrQuestChance`,`lootmode`,`groupid`,`mincountOrRef`,`maxcount`) VALUES +(6005,15727,0.5,1,0,1,1); -- Shadowsworn Thug diff --git a/sql/old/3.3.5a/2011_11_20_00_world_command.sql b/sql/old/3.3.5a/2011_11_20_00_world_command.sql new file mode 100644 index 00000000000..73d52974766 --- /dev/null +++ b/sql/old/3.3.5a/2011_11_20_00_world_command.sql @@ -0,0 +1 @@ +UPDATE `command` SET `help`='Syntax: .tele name [#playername] #location\n\nTeleport the given character to a given location. Character can be offline.\n\nTo teleport to homebind, set #location to "$home" (without quotes).' WHERE `name` = 'tele name'; diff --git a/sql/old/3.3.5a/2011_11_20_01_world_sai.sql b/sql/old/3.3.5a/2011_11_20_01_world_sai.sql new file mode 100644 index 00000000000..dbb4f39a499 --- /dev/null +++ b/sql/old/3.3.5a/2011_11_20_01_world_sai.sql @@ -0,0 +1,45 @@ +-- [Q] Laying Waste to the Unwanted + +-- Invis Horde Siege Engine - West SAI +SET @ENTRY := 19009; +SET @SPELL_IGNITE_SIEGE := 32979; +SET @SPELL_HELLFIRE_FIRE := 34386; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +UPDATE `creature` SET `position_x`=-183.947998,`position_y`=2773.389893,`position_z`=49.198399 WHERE `guid`=68321 AND `id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,1,8,0,100,0,@SPELL_IGNITE_SIEGE,0,60000,60000,11,@SPELL_HELLFIRE_FIRE,0,0,0,0,0,1,0,0,0,0,0,0,0,"Invis Horde Siege Engine - West - On Spellhit - Cast Create Hellfire Fire"), +(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,33,@ENTRY,0,0,0,0,0,1,0,0,0,0,0,0,0,"Invis Horde Siege Engine - West - On Spellhit - Quest Credit"); + +-- Invis Horde Siege Engine - West 02 SAI +SET @ENTRY := 21236; +SET @SPELL_IGNITE_SIEGE := 32979; +SET @SPELL_HELLFIRE_FIRE := 34386; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +UPDATE `creature` SET `position_z`=43.094120 WHERE `guid`=74454 AND `id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,1,8,0,100,0,@SPELL_IGNITE_SIEGE,0,60000,60000,11,@SPELL_HELLFIRE_FIRE,0,0,0,0,0,1,0,0,0,0,0,0,0,"Invis Horde Siege Engine - West 02 - On Spellhit - Cast Create Hellfire Fire"), +(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,33,@ENTRY,0,0,0,0,0,1,0,0,0,0,0,0,0,"Invis Horde Siege Engine - West 02 - On Spellhit - Quest Credit"); + +-- Invis Horde Siege Engine - East SAI +SET @ENTRY := 21237; +SET @SPELL_IGNITE_SIEGE := 32979; +SET @SPELL_HELLFIRE_FIRE := 34386; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +UPDATE `creature` SET `position_x`=-157.329712,`position_y`=2518.655273,`position_z`=58.221237 WHERE `guid`=67186 AND `id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,1,8,0,100,0,@SPELL_IGNITE_SIEGE,0,60000,60000,11,@SPELL_HELLFIRE_FIRE,0,0,0,0,0,1,0,0,0,0,0,0,0,"Invis Horde Siege Engine - East - On Spellhit - Cast Create Hellfire Fire"), +(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,33,@ENTRY,0,0,0,0,0,1,0,0,0,0,0,0,0,"Invis Horde Siege Engine - East - On Spellhit - Quest Credit"); + +-- Invis Horde Siege Engine - East 02 SAI +SET @ENTRY := 18818; +SET @SPELL_IGNITE_SIEGE := 32979; +SET @SPELL_HELLFIRE_FIRE := 34386; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +UPDATE `creature` SET `position_x`=-152.163116,`position_y`=2662.497314,`position_z`=60.728378 WHERE `guid`=74455 AND `id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,1,8,0,100,0,@SPELL_IGNITE_SIEGE,0,60000,60000,11,@SPELL_HELLFIRE_FIRE,0,0,0,0,0,1,0,0,0,0,0,0,0,"Invis Horde Siege Engine - East 02 - On Spellhit - Cast Create Hellfire Fire"), +(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,33,@ENTRY,0,0,0,0,0,1,0,0,0,0,0,0,0,"Invis Horde Siege Engine - East 02 - On Spellhit - Quest Credit"); diff --git a/sql/old/3.3.5a/2011_11_20_02_world_sai.sql b/sql/old/3.3.5a/2011_11_20_02_world_sai.sql new file mode 100644 index 00000000000..f064aa67f9f --- /dev/null +++ b/sql/old/3.3.5a/2011_11_20_02_world_sai.sql @@ -0,0 +1,45 @@ +-- [Q] Fel Spirits + +-- Port Fel Spirit's EAI to creature_template_addon +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=22454; +DELETE FROM `creature_template_addon` WHERE `entry`=22454; +INSERT INTO `creature_template_addon` (`entry`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES (22454,0,0,1,0,"39205"); +UPDATE `creature_template` SET `AIName`='',`unit_flags`=32768,`baseattacktime`=2000 WHERE `entry`=22454; + +-- Shattered Hand Berserker SAI +SET @ENTRY := 16878; +SET @SPELL_CHARGE := 35570; +SET @SPELL_ENRAGE := 8599; +SET @SPELL_SUMMON := 39206; +SET @SPELL_CONTRITION := 39184; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,4,0,100,0,0,0,0,0,11,@SPELL_CHARGE,0,0,0,0,0,2,0,0,0,0,0,0,0,"Shattered Hand Berserker - On Aggro - Cast Charge"), +(@ENTRY,0,1,0,8,0,100,0,@SPELL_CONTRITION,0,0,0,22,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Shattered Hand Berserker - On Spellhit - Set Phase 1"), +(@ENTRY,0,2,0,6,1,100,0,0,0,0,0,11,@SPELL_SUMMON,2,0,0,0,0,1,0,0,0,0,0,0,0,"Shattered Hand Berserker - On Death (P1) - Cast Summon Fel Spirit"), +(@ENTRY,0,3,4,2,0,100,1,0,30,0,0,11,@SPELL_ENRAGE,1,0,0,0,0,1,0,0,0,0,0,0,0,"Shattered Hand Berserker - At 30% HP - Cast Enrage"), +(@ENTRY,0,4,0,61,0,100,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Shattered Hand Berserker - At 30% HP - Say Line 0"); +-- Text +DELETE FROM `creature_text` WHERE `entry`=@ENTRY; +INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES +(@ENTRY,0,0,"%s becomes enraged!",16,0,100,0,0,0,"Shattered Hand Berserker"); + +-- Anchorite Relic Bunny SAI +SET @ENTRY := 22444; +SET @SPELL_CONTRITION := 39184; +UPDATE `creature_template` SET `AIName`='SmartAI',`exp`=2,`minlevel`=35,`maxlevel`=35,`baseattacktime`=2000,`unit_flags`=`unit_flags`|2048 WHERE `entry`=@ENTRY; +DELETE FROM `creature_template_addon` WHERE `entry`=@ENTRY; +INSERT INTO `creature_template_addon` (`entry`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES (@ENTRY,0,0,1,0, NULL); +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,54,0,100,0,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Anchorite Relic Bunny - Just Summoned - Prevent Combat Movemenet"), +(@ENTRY,0,1,0,60,0,100,0,1000,3000,15000,20000,11,@SPELL_CONTRITION,0,0,0,0,0,11,16878,0,0,0,0,0,0,"Anchorite Relic Bunny - On Update - Cast Anchorite Contrition"); + +-- Condition for spell Anchorite Contrition +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=13 AND `SourceEntry` IN (@SPELL_CONTRITION,@SPELL_SUMMON); +INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES +(13,0,@SPELL_CONTRITION,0,18,1,16878,0,0,'',"Spell Anchorite Contrition targets Shattered Hand Berserker"), +(13,0,@SPELL_SUMMON,0,18,1,22444,0,0,'',"Spell Summon Fel Spirit targets Anchorite Relic Bunny"); diff --git a/sql/old/3.3.5a/2011_11_20_03_world_sai.sql b/sql/old/3.3.5a/2011_11_20_03_world_sai.sql new file mode 100644 index 00000000000..bd47430acd8 --- /dev/null +++ b/sql/old/3.3.5a/2011_11_20_03_world_sai.sql @@ -0,0 +1,49 @@ +-- [Q] Hard to Swallow + +-- Hulking Jormungar SAI +SET @ENTRY := 26293; +SET @SPELL_CORROSIVE_POISON := 50293; +SET @SPELL_GRENADE := 47305; +SET @SPELL_EXPLOSION := 47311; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid` IN (@ENTRY,@ENTRY*100,@ENTRY*100+1); +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,0,0,100,0,6000,7000,11000,13000,11,@SPELL_CORROSIVE_POISON,0,0,0,0,0,2,0,0,0,0,0,0,0,"Hulking Jormungar - In Combat - Cast Corrode Flesh"), +(@ENTRY,0,1,0,2,0,100,1,0,80,0,0,80,@ENTRY*100,0,2,0,0,0,1,0,0,0,0,0,0,0,"Hulking Jormungar - At 80% HP - Run Script"), +(@ENTRY*100,9,0,0,0,0,100,0,0,0,0,0,1,0,0,0,0,0,0,2,0,0,0,0,0,0,0,"Hulking Jormungar - On Script - Say Line 0"), +(@ENTRY*100,9,1,0,0,0,100,0,0,0,0,0,22,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Hulking Jormungar - On Script - Set Phase 1"), +(@ENTRY*100,9,2,0,0,0,100,0,5000,5000,0,0,22,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Hulking Jormungar - On Script - Set Phase 0"), +(@ENTRY,0,2,0,8,1,100,0,@SPELL_GRENADE,0,0,0,80,@ENTRY*100+1,0,2,0,0,0,1,0,0,0,0,0,0,0,"Hulking Jormungar - On Spellhit (P1) - Run Script"), +(@ENTRY*100+1,9,0,0,0,0,100,0,3000,3000,0,0,11,@SPELL_EXPLOSION,0,0,0,0,0,1,0,0,0,0,0,0,0,"Hulking Jormungar - On Script - Cast Quest - Jormungar Explosion Spell Spawner"), +(@ENTRY*100+1,9,1,0,0,0,100,0,0,0,0,0,37,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Hulking Jormungar - On Script - Die"); + +-- Text +DELETE FROM `creature_text` WHERE `entry`=@ENTRY; +INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES +(@ENTRY,0,0,"The Hulking Jormungar falters for a moment, opening its mouth wide.",41,0,100,0,0,0,"Hulking Jormungar"); + +-- Potent Explosive Charge conditions +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=13 AND `SourceEntry`=@SPELL_GRENADE; +INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES +(13,0,@SPELL_GRENADE,0,18,1,@ENTRY,0,0,'',"Potent Explosive Charge only targets Hulking Jormungar"), +(13,0,@SPELL_GRENADE,0,20,80,0,0,0,'',"Potent Explosive Charge requires target to be below 80% HP"); + +-- Quest - Jormungar Explosion Spell Spawner triggers the meat throw spells +DELETE FROM `spell_linked_spell` WHERE `spell_trigger`=@SPELL_EXPLOSION; +INSERT INTO `spell_linked_spell` (`spell_trigger`,`spell_effect`,`type`,`comment`) VALUES +(@SPELL_EXPLOSION,47925,0,"Quest - Jormungar Explosion Spell Spawner triggers Quest - Jormungar Explosion Summon Object"), +(@SPELL_EXPLOSION,47924,0,"Quest - Jormungar Explosion Spell Spawner triggers Quest - Jormungar Explosion Summon Object"), +(@SPELL_EXPLOSION,47309,0,"Quest - Jormungar Explosion Spell Spawner triggers Quest - Jormungar Explosion Summon Object"); + +-- Jormungar Meat SAI +SET @ENTRY := 26699; +UPDATE `creature_template` SET `AIname`='SmartAI',`unit_flags`=`unit_flags`|33554432,`flags_extra`=`flags_extra`|128 WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,54,0,100,0,0,0,0,0,50,188434,120000,0,0,0,0,1,0,0,0,0,0,0,0,"Jormungar Meat - Just Summoned - Summon Jormungar Meat"); + +-- Give Jormungar Meat quest item loot +DELETE FROM `gameobject_loot_template` WHERE `entry`=23442; +INSERT INTO `gameobject_loot_template` (`entry`,`item`,`ChanceOrQuestChance`,`lootmode`,`groupid`,`mincountOrRef`,`maxcount`) VALUES +(23442,36731,-100,1,0,1,1); diff --git a/sql/old/3.3.5a/2011_11_20_04_world_sai.sql b/sql/old/3.3.5a/2011_11_20_04_world_sai.sql new file mode 100644 index 00000000000..e362b0d0866 --- /dev/null +++ b/sql/old/3.3.5a/2011_11_20_04_world_sai.sql @@ -0,0 +1,24 @@ +-- [Q] The Might of the Horde + +-- Warsong Battle Standard SAI +SET @ENTRY := 26678; +SET @QUEST := 12053; +UPDATE `creature_template` SET `AIName`='SmartAI',`minlevel`=70,`maxlevel`=71,`exp`=1 WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid` IN (@ENTRY,@ENTRY*100); +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,8,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Warsong Battle Standard - On Spawn - Set React State Passive"), -- We shouldn't EVER attack back or move +(@ENTRY,0,1,0,6,0,100,0,0,0,0,0,6,@QUEST,0,0,0,0,0,23,0,0,0,0,0,0,0,"Warsong Battle Standard - On Death - Fail Quest"), +(@ENTRY,0,2,0,54,0,100,0,0,0,0,0,80,@ENTRY*100,0,2,0,0,0,1,0,0,0,0,0,0,0,"Warsong Battle Standard - Just Summoned - Run Script"), +(@ENTRY*100,9,0,0,0,0,100,0,5000,15000,0,0,12,26676,1,30000,0,0,0,1,0,0,0,0,0,0,0,"Warsong Battle Standard - On Script - Summon Anub'ar Invader"), +(@ENTRY*100,9,1,0,0,0,100,0,8000,15000,0,0,12,26676,1,30000,0,0,0,1,0,0,0,0,0,0,0,"Warsong Battle Standard - On Script - Summon Anub'ar Invader"), +(@ENTRY*100,9,2,0,0,0,100,0,8000,15000,0,0,12,26676,1,30000,0,0,0,1,0,0,0,0,0,0,0,"Warsong Battle Standard - On Script - Summon Anub'ar Invader"), +(@ENTRY*100,9,3,0,0,0,100,0,8000,15000,0,0,12,26676,1,30000,0,0,0,1,0,0,0,0,0,0,0,"Warsong Battle Standard - On Script - Summon Anub'ar Invader"), +(@ENTRY*100,9,4,0,0,0,100,0,8000,15000,0,0,12,26676,1,30000,0,0,0,1,0,0,0,0,0,0,0,"Warsong Battle Standard - On Script - Summon Anub'ar Invader"), +(@ENTRY*100,9,5,0,0,0,100,0,4000,4000,0,0,15,@QUEST,0,0,0,0,0,23,0,0,0,0,0,0,0,"Warsong Battle Standard - On Script - Quest Credit"); + +-- Anub'ar Invader SAI +SET @ENTRY := 26676; +UPDATE `creature_template` SET `AIName`='SmartAI',`faction_A`=2018,`faction_H`=2018 WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid` IN (@ENTRY,@ENTRY*100); +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,54,0,100,1,0,0,0,0,49,0,0,0,0,0,0,23,0,0,0,0,0,0,0,"Anub'ar Invader - Just Summoned - Attack Summoner"); diff --git a/sql/old/3.3.5a/2011_11_20_05_world_sai.sql b/sql/old/3.3.5a/2011_11_20_05_world_sai.sql new file mode 100644 index 00000000000..464d0635bb8 --- /dev/null +++ b/sql/old/3.3.5a/2011_11_20_05_world_sai.sql @@ -0,0 +1,78 @@ +-- [Q] Jack Likes His Drink +-- We are making Jack dance through SAI instead of creature(_template)_addon so we can cancel it in the actual SAI + +-- Olga, the Scalawag Wench SAI +SET @ENTRY_OLGA := 24639; +SET @ENTRY_JACK := 24788; +SET @GOSSIP := 9015; +SET @QUEST := 11466; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry` IN (@ENTRY_OLGA,@ENTRY_JACK); +UPDATE `creature_template` SET `gossip_menu_id`=@GOSSIP+10 WHERE `entry`=@ENTRY_JACK; +DELETE FROM `smart_scripts` WHERE `entryorguid` IN (@ENTRY_OLGA,@ENTRY_OLGA*100,@ENTRY_OLGA*100+1,@ENTRY_OLGA*100+2,@ENTRY_JACK,@ENTRY_JACK*100); +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY_OLGA,0,0,0,62,0,100,0,@GOSSIP+1,0,0,0,80,@ENTRY_OLGA*100,0,0,0,0,0,1,0,0,0,0,0,0,0,"Olga, the Scalawag Wench - On Gossip Select - Run Script"), +(@ENTRY_OLGA*100,9,0,0,0,0,100,0,0,0,0,0,53,0,@ENTRY_OLGA,0,0,0,0,1,0,0,0,0,0,0,0,"Olga, the Scalawag Wench - On Script - Start WP"), +(@ENTRY_OLGA*100,9,1,0,0,0,100,0,0,0,0,0,72,0,0,0,0,0,0,7,0,0,0,0,0,0,0,"Olga, the Scalawag Wench - On Script - Close Gossip"), +(@ENTRY_OLGA*100,9,2,0,0,0,100,0,0,0,0,0,1,0,0,0,0,0,0,7,0,0,0,0,0,0,0,"Olga, the Scalawag Wench - On Script - Whisper Line 0"), +(@ENTRY_OLGA*100,9,3,0,0,0,100,0,0,0,0,0,81,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Olga, the Scalawag Wench - On Script - Remove Gossip Flag"), + +(@ENTRY_OLGA,0,1,0,40,0,100,0,2,@ENTRY_OLGA,0,0,80,@ENTRY_OLGA*100+1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Olga, the Scalawag Wench - On WP 2 - Run Script 2"), +(@ENTRY_OLGA*100+1,9,0,0,0,0,100,0,0,0,0,0,66,0,0,0,0,0,0,11,@ENTRY_JACK,15,0,0,0,0,0,"Olga, the Scalawag Wench - On Script 2 - Face Jack Adams"), +(@ENTRY_OLGA*100+1,9,1,0,0,0,100,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Olga, the Scalawag Wench - On Script 2 - Say Line 1"), +(@ENTRY_OLGA*100+1,9,2,0,0,0,100,0,3000,3000,0,0,45,1,1,0,0,0,0,19,@ENTRY_JACK,0,0,0,0,0,0,"Olga, the Scalawag Wench - On Script 2 - Set Data 1 1 Jack Adams"), +(@ENTRY_OLGA*100+1,9,3,0,0,0,100,0,3000,3000,0,0,1,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Olga, the Scalawag Wench - On Script 2 - Say Line 2"), +(@ENTRY_OLGA*100+1,9,4,0,0,0,100,0,4000,4000,0,0,45,2,2,0,0,0,0,19,@ENTRY_JACK,0,0,0,0,0,0,"Olga, the Scalawag Wench - On Script 2 - Set Data 2 2 Jack Adams"), +(@ENTRY_OLGA,0,2,0,38,0,100,0,3,3,0,0,53,0,@ENTRY_OLGA*10,0,0,0,0,1,0,0,0,0,0,0,0,"Olga, the Scalawag Wench - On Data 3 3 Set - Start WP 2"), + +(@ENTRY_JACK,0,0,0,1,0,100,1,0,0,0,0,5,10,0,0,0,0,0,1,0,0,0,0,0,0,0,"Jack Adams - Out of Combat - Start Dancing"), +(@ENTRY_JACK,0,1,2,38,0,100,0,1,1,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Jack Adams - On Data 1 1 Set - Say Line 0"), +(@ENTRY_JACK,0,2,0,61,0,100,0,0,0,0,0,2,35,0,0,0,0,0,1,0,0,0,0,0,0,0,"Jack Adams - On Data 1 1 Set - Set Faction 35"), +(@ENTRY_JACK,0,3,4,62,0,100,0,@GOSSIP+10,0,0,0,56,34116,1,0,0,0,0,7,0,0,0,0,0,0,0,"Jack Adams - On Gossip Select - Give Quest Item"), +(@ENTRY_JACK,0,4,5,61,0,100,0,0,0,0,0,72,0,0,0,0,0,0,7,0,0,0,0,0,0,0,"Jack Adams - On Gossip Select - Close Gossip"), +(@ENTRY_JACK,0,5,6,61,0,100,0,0,0,0,0,81,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Jack Adams - On Gossip Select - Remove Gossip Flag"), -- To prevent getting more than one item per event +(@ENTRY_JACK,0,6,0,61,0,100,0,0,0,0,0,45,3,3,0,0,0,0,19,@ENTRY_OLGA,0,0,0,0,0,0,"Jack Adams - On Gossip Select - Set Data Olga, the Scalawag Wench"), + +(@ENTRY_JACK,0,7,0,38,0,100,0,2,2,0,0,80,@ENTRY_JACK*100,0,0,0,0,0,1,0,0,0,0,0,0,0,"Jack Adams - On Data 2 2 Set - Run Script"), +(@ENTRY_JACK*100,9,0,0,0,0,100,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Jack Adams - On Script - Say Line 1"), +(@ENTRY_JACK*100,9,1,0,0,0,100,0,0,0,0,0,5,26,0,0,0,0,0,1,0,0,0,0,0,0,0,"Jack Adams - On Script - Stop Dancing"), +(@ENTRY_JACK*100,9,2,0,0,0,100,0,2000,2000,0,0,5,16,0,0,0,0,0,1,0,0,0,0,0,0,0,"Jack Adams - On Script - EMOTE_ONESHOT_KNEEL"), +(@ENTRY_JACK*100,9,3,0,0,0,100,0,4000,4000,0,0,5,7,0,0,0,0,0,1,0,0,0,0,0,0,0,"Jack Adams - On Script - EMOTE_ONESHOT_EAT"), +(@ENTRY_JACK*100,9,4,0,0,0,100,0,4000,4000,0,0,1,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Jack Adams - On Script - Say Line 2"), +(@ENTRY_JACK*100,9,5,0,0,0,100,0,4000,4000,0,0,11,43391,0,0,0,0,0,1,0,0,0,0,0,0,0,"Jack Adams - On Script - Cast Vomit"), +(@ENTRY_JACK*100,9,6,0,0,0,100,0,3000,3000,0,0,11,29266,0,0,0,0,0,1,0,0,0,0,0,0,0,"Jack Adams - On Script - Cast Permanent Feign Death"), +(@ENTRY_JACK*100,9,7,0,0,0,100,0,0,0,0,0,81,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Jack Adams - On Script - Add Gossip Flag"), +(@ENTRY_JACK*100,9,8,0,0,0,100,0,0,0,0,0,41,30000,0,0,0,0,0,1,0,0,0,0,0,0,0,"Jack Adams - On Script - Forced Despawn"); + +-- Texts +DELETE FROM `creature_text` WHERE `entry` IN (@ENTRY_OLGA,@ENTRY_JACK); +INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES +(@ENTRY_OLGA,0,0,"Keep quiet, will you? If anyone catches on, we're both dead.",15,0,100,0,0,0,"Olga, the Scalawag Wench"), +(@ENTRY_OLGA,1,0,"All right, fellas! Who ordered the spiced rum? Was it you, Jackie boy?",12,0,100,0,0,0,"Olga, the Scalawag Wench"), +(@ENTRY_OLGA,2,0,"It's okay, sweetheart. This one's on the house.",12,0,100,0,0,0,"Olga, the Scalawag Wench"), + +(@ENTRY_JACK,0,0,"Sure thing, love. Put it on Harry's tab, will ya? He owes me a drink!",12,0,100,0,0,0,"Jack Adams"), +(@ENTRY_JACK,1,0,"Free rum? Why... that's me favorite kind!",12,0,100,0,0,0,"Jack Adams"), +(@ENTRY_JACK,2,0,"Sweet Neptulon! That was... one drink... too many!",12,0,100,0,0,0,"Jack Adams"); + +-- Insert option menu +DELETE FROM `gossip_menu_option` WHERE `menu_id` IN (@GOSSIP,@GOSSIP+1,@GOSSIP+10); +INSERT INTO `gossip_menu_option` (`menu_id`,`id`,`option_icon`,`option_text`,`option_id`,`npc_option_npcflag`,`action_menu_id`,`box_money`,`box_text`) VALUES +(@GOSSIP+0,0,0,"I'd like to buy Jack a drink. Perhaps something... extra strong.",1,1,@GOSSIP+1,0,''), +(@GOSSIP+1,0,0,"Here's a gold, buy yourself something nice.",1,1,0,10000,'Do you really want to bribe Olga?'), +(@GOSSIP+10,0,0,"<Discreetly search the pirate's pockets for Taruk's payment.>",1,1,0,0,''); + +-- Waypoints for Olga, the Scalawag Wench +DELETE FROM `waypoints` WHERE `entry` IN (@ENTRY_OLGA,@ENTRY_OLGA*10); +INSERT INTO `waypoints` (`entry`,`pointid`,`position_x`,`position_y`,`position_z`,`point_comment`) VALUES +(@ENTRY_OLGA,1,-89.466621,-3539.939941,7.715524,'Olga, the Scalawag Wench'), +(@ENTRY_OLGA,2,-86.451447,-3544.374268,7.716601,'Olga, the Scalawag Wench'), + +(@ENTRY_OLGA*10,1,-86.451447,-3544.374268,7.716601,'Olga, the Scalawag Wench'), +(@ENTRY_OLGA*10,2,-89.466621,-3539.939941,7.715524,'Olga, the Scalawag Wench'); + +-- Only show first gossip if player is on quest Gambling Debt +DELETE FROM `conditions` WHERE `SourceGroup` IN (@GOSSIP+0,@GOSSIP+10) AND `ConditionValue1` IN (@QUEST); +INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES +(15,@GOSSIP+0,0,0,9,@QUEST,0,0,0,'',"Only show first gossip if player is on quest Gambling Debt"), + +(15,@GOSSIP+10,0,0,9,@QUEST,0,0,0,'',"Only show first gossip if player is on quest Gambling Debt"); diff --git a/sql/old/3.3.5a/2011_11_20_06_world_sai.sql b/sql/old/3.3.5a/2011_11_20_06_world_sai.sql new file mode 100644 index 00000000000..68bffade858 --- /dev/null +++ b/sql/old/3.3.5a/2011_11_20_06_world_sai.sql @@ -0,0 +1,57 @@ +-- Tapper Swindlekeg SAI +SET @ENTRY := 24711; +SET @SPELL_GROW := 50551; +SET @SPELL_DRINK := 50552; +SET @SPELL_FINISH := 50555; +SET @QUEST_DIRE_BREW := 12492; +UPDATE `creature_template` SET `AIName`='SmartAI',`flags_extra`=`flags_extra`|2 WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid` IN (@ENTRY,@ENTRY*100); +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,20,0,100,0,@QUEST_DIRE_BREW,0,0,0,80,@ENTRY*100,0,0,0,0,0,1,0,0,0,0,0,0,0,"Tapper Swindlekeg - On Quest Complete - Run Script"), +(@ENTRY*100+0,9,0,0,0,0,100,0,1500,1500,0,0,1,0,0,0,0,0,0,0,7,0,0,0,0,0,0,"Tapper Swindlekeg - On Script - Say Line 0"), +(@ENTRY*100+0,9,1,0,0,0,100,0,0,0,0,0,11,@SPELL_DRINK,0,0,0,0,0,0,1,0,0,0,0,0,0,"Tapper Swindlekeg - On Script - Cast Questgiver Tries Dire Brew"), +(@ENTRY*100+0,9,2,0,0,0,100,0,8500,8500,0,0,11,@SPELL_FINISH,0,0,0,0,0,0,1,0,0,0,0,0,0,"Tapper Swindlekeg - On Script - Cast Questgiver Finishes Drinking"), +(@ENTRY*100+0,9,3,0,0,0,100,0,0,0,0,0,28,@SPELL_GROW,0,0,0,0,0,0,1,0,0,0,0,0,0,"Tapper Swindlekeg - On Script - Remove Growth Aura"), +(@ENTRY*100+0,9,4,0,0,0,100,0,0,0,0,0,1,1,0,0,0,0,0,0,7,0,0,0,0,0,0,"Tapper Swindlekeg - On Script - Say Line 1"), +(@ENTRY*100+0,9,5,0,0,0,100,0,3500,3500,0,0,1,2,0,0,0,0,0,0,7,0,0,0,0,0,0,"Tapper Swindlekeg - On Script - Say Line 2"), +(@ENTRY*100+0,9,6,0,0,0,100,0,3500,3500,0,0,1,3,0,0,0,0,0,0,7,0,0,0,0,0,0,"Tapper Swindlekeg - On Script - Say Line 3"); +-- Text +DELETE FROM `creature_text` WHERE `entry`=@ENTRY; +INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES +(@ENTRY,0,0,"Well time's money, and time's wasting! Let's have that drink...",12,0,100,1,0,0,"Tapper Swindlekeg"), +(@ENTRY,1,0,"Wow! This really greases the steamplugs!",12,0,100,1,0,0,"Tapper Swindlekeg"), +(@ENTRY,2,0,"If I were an honest goblin, I'd say this was the best beer of the festival...",12,0,100,1,0,0,"Tapper Swindlekeg"), +(@ENTRY,3,0,"Too bad Coren's dead. If I could buy that brew from him and resell it - watered down and rebottled under my own label, of course - I'd be rich!",12,0,100,1,0,0,"Tapper Swindlekeg"), +-- These three are used in areatrigger script +(@ENTRY,4,0,"Hey there, and welcome to Brewfest. Come in and have a drink or three!",12,1,100,3,0,0,"Tapper Swindlekeg"), +(@ENTRY,4,1,"What's up, friend? Welcome to the Brewfest Grounds! Now go buy some drinks!",12,1,100,3,0,0,"Tapper Swindlekeg"), +(@ENTRY,4,2,"Hey hey, it's another $r! Welcome to my annual Brewfest celebration... now go feast and drink some!",12,1,100,3,0,0,"Tapper Swindlekeg"); + +-- Ipfelkofer Ironkeg SAI +SET @ENTRY := 24710; +SET @SPELL_GROW := 50551; +SET @SPELL_DRINK := 50552; +SET @SPELL_FINISH := 50555; +SET @QUEST_DIRE_BREW := 12491; +UPDATE `creature_template` SET `AIName`='SmartAI',`flags_extra`=`flags_extra`|2 WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid` IN (@ENTRY,@ENTRY*100); +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,20,0,100,0,@QUEST_DIRE_BREW,0,0,0,80,@ENTRY*100,0,0,0,0,0,1,0,0,0,0,0,0,0,"Ipfelkofer Ironkeg - On Quest Complete - Run Script"), +(@ENTRY*100+0,9,0,0,0,0,100,0,1500,1500,0,0,1,0,0,0,0,0,0,0,7,0,0,0,0,0,0,"Ipfelkofer Ironkeg - On Script - Say Line 0"), +(@ENTRY*100+0,9,1,0,0,0,100,0,0,0,0,0,11,@SPELL_DRINK,0,0,0,0,0,0,1,0,0,0,0,0,0,"Ipfelkofer Ironkeg - On Script - Cast Questgiver Tries Dire Brew"), +(@ENTRY*100+0,9,2,0,0,0,100,0,8500,8500,0,0,11,@SPELL_FINISH,0,0,0,0,0,0,1,0,0,0,0,0,0,"Ipfelkofer Ironkeg - On Script - Cast Questgiver Finishes Drinking"), +(@ENTRY*100+0,9,3,0,0,0,100,0,0,0,0,0,28,@SPELL_GROW,0,0,0,0,0,0,1,0,0,0,0,0,0,"Ipfelkofer Ironkeg - On Script - Remove Growth Aura"), +(@ENTRY*100+0,9,4,0,0,0,100,0,0,0,0,0,1,1,0,0,0,0,0,0,7,0,0,0,0,0,0,"Ipfelkofer Ironkeg - On Script - Say Line 1"), +(@ENTRY*100+0,9,5,0,0,0,100,0,3500,3500,0,0,1,2,0,0,0,0,0,0,7,0,0,0,0,0,0,"Ipfelkofer Ironkeg - On Script - Say Line 2"), +(@ENTRY*100+0,9,6,0,0,0,100,0,3500,3500,0,0,1,3,0,0,0,0,0,0,7,0,0,0,0,0,0,"Ipfelkofer Ironkeg - On Script - Say Line 3"); +-- Text +DELETE FROM `creature_text` WHERE `entry`=@ENTRY; +INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES +(@ENTRY,0,0,"Right! Let's try this so-called dire brew...",12,0,100,0,0,0,"Ipfelkofer Ironkeg"), +(@ENTRY,1,0,"Bronzebeard's beard! What a drink!",12,0,100,0,0,0,"Ipfelkofer Ironkeg"), +(@ENTRY,2,0,"$N, this beer... well, it might be the best of Brewfest!",12,0,100,15,0,0,"Ipfelkofer Ironkeg"), +(@ENTRY,3,0,"It is a shame Coren's Dire Brew can't quench more thirsting throats! It's blasphemy, I know, but I envy those Dark Iron dwarves!",12,0,100,274,0,0,"Ipfelkofer Ironkeg"), +-- These three are used in areatrigger script +(@ENTRY,4,0,"Ho there, and welcome to Brewfest!",12,7,100,3,0,0,"Ipfelkofer Ironkeg"), +(@ENTRY,4,1,"Hello, friend! Welcome to the Brewfest Grounds!",12,7,100,3,0,0,"Ipfelkofer Ironkeg"), +(@ENTRY,4,2,"Hail, good $c! Welcome to Ironforge's annual Brewfest celebration!",12,7,100,3,0,0,"Ipfelkofer Ironkeg"); diff --git a/sql/old/3.3.5a/2011_11_20_07_world_sai.sql b/sql/old/3.3.5a/2011_11_20_07_world_sai.sql new file mode 100644 index 00000000000..efb89f6ba5a --- /dev/null +++ b/sql/old/3.3.5a/2011_11_20_07_world_sai.sql @@ -0,0 +1,212 @@ +-- [Q] [A/H] Ring of Blood +-- Gurghthock SAI +SET @ENTRY_GURTHOCK := 18471; +SET @ENTRY_BROKENTOE := 18398; +SET @ENTRY_TWIN := 18399; +SET @ENTRY_ROKDAR := 18400; +SET @ENTRY_SKRAGATH := 18401; +SET @ENTRY_WARMAUL := 18402; +SET @ENTRY_MOGOR := 18069; +SET @QUEST_BROKENTOE := 9962; +SET @QUEST_BLUE_BROTHERS := 9967; +SET @QUEST_ROKDAR := 9970; +SET @QUEST_SKRAGATH := 9972; +SET @QUEST_WARMAUL := 9973; +SET @QUEST_MOGOR := 9977; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY_GURTHOCK; +UPDATE `quest_template` SET `StartScript`=0,`CompleteScript`=0,`SpecialFlags`=2 WHERE `entry` IN (@QUEST_BROKENTOE,@QUEST_BLUE_BROTHERS,@QUEST_ROKDAR,@QUEST_SKRAGATH,@QUEST_WARMAUL,@QUEST_MOGOR); +DELETE FROM `quest_start_scripts` WHERE `id` IN (@QUEST_BROKENTOE,@QUEST_BLUE_BROTHERS,@QUEST_ROKDAR,@QUEST_SKRAGATH,@QUEST_WARMAUL,@QUEST_MOGOR); +DELETE FROM `smart_scripts` WHERE `entryorguid` IN (@ENTRY_GURTHOCK,@ENTRY_GURTHOCK*100+0,@ENTRY_GURTHOCK*100+1,@ENTRY_GURTHOCK*100+2,@ENTRY_GURTHOCK*100+3,@ENTRY_GURTHOCK*100+4); +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY_GURTHOCK,0,0,1,19,0,100,0,@QUEST_BROKENTOE,0,0,0,1,0,0,0,0,0,0,7,0,0,0,0,0,0,0,"Gurghthock - On Quest Accept - Say Line 0"), +(@ENTRY_GURTHOCK,0,1,0,61,0,100,0,0,0,0,0,80,@ENTRY_GURTHOCK*100+0,0,2,0,0,0,1,0,0,0,0,0,0,0,"Gurghthock - On Quest Accept - Run Script"), +(@ENTRY_GURTHOCK,0,2,3,19,0,100,0,@QUEST_BLUE_BROTHERS,0,0,0,1,0,0,0,0,0,0,7,0,0,0,0,0,0,0,"Gurghthock - On Quest Accept - Say Line 0"), +(@ENTRY_GURTHOCK,0,3,0,61,0,100,0,0,0,0,0,80,@ENTRY_GURTHOCK*100+1,0,2,0,0,0,1,0,0,0,0,0,0,0,"Gurghthock - On Quest Accept - Run Script"), +(@ENTRY_GURTHOCK,0,4,5,19,0,100,0,@QUEST_ROKDAR,0,0,0,1,0,0,0,0,0,0,7,0,0,0,0,0,0,0,"Gurghthock - On Quest Accept - Say Line 0"), +(@ENTRY_GURTHOCK,0,5,0,61,0,100,0,0,0,0,0,80,@ENTRY_GURTHOCK*100+2,0,2,0,0,0,1,0,0,0,0,0,0,0,"Gurghthock - On Quest Accept - Run Script"), +(@ENTRY_GURTHOCK,0,6,7,19,0,100,0,@QUEST_SKRAGATH,0,0,0,1,0,0,0,0,0,0,7,0,0,0,0,0,0,0,"Gurghthock - On Quest Accept - Say Line 0"), +(@ENTRY_GURTHOCK,0,7,0,61,0,100,0,0,0,0,0,80,@ENTRY_GURTHOCK*100+3,0,2,0,0,0,1,0,0,0,0,0,0,0,"Gurghthock - On Quest Accept - Run Script"), +(@ENTRY_GURTHOCK,0,8,9,19,0,100,0,@QUEST_WARMAUL,0,0,0,1,0,0,0,0,0,0,7,0,0,0,0,0,0,0,"Gurghthock - On Quest Accept - Say Line 0"), +(@ENTRY_GURTHOCK,0,9,0,61,0,100,0,0,0,0,0,80,@ENTRY_GURTHOCK*100+4,0,2,0,0,0,1,0,0,0,0,0,0,0,"Gurghthock - On Quest Accept - Run Script"), +(@ENTRY_GURTHOCK*100+0,9,0,0,0,0,100,0,13000,13000,0,0,1,1,0,0,0,0,0,7,0,0,0,0,0,0,0,"Gurgthock - On Script - Say Line 1"), +(@ENTRY_GURTHOCK*100+0,9,1,0,0,0,100,0,5000,5000,0,0,12,@ENTRY_BROKENTOE,1,120000,0,0,0,8,0,0,0,-704.669,7871.08,45.0387,1.59531,"Gurghthock - On Script - Summon Brokentoe"), +(@ENTRY_GURTHOCK*100+1,9,0,0,0,0,100,0,13000,13000,0,0,1,3,0,0,0,0,0,7,0,0,0,0,0,0,0,"Gurgthock - On Script - Say Line 3"), +(@ENTRY_GURTHOCK*100+1,9,1,0,0,0,100,0,5000,5000,0,0,12,@ENTRY_TWIN,1,120000,0,0,0,8,0,0,0,-717.852356,7877.326660,45.547367,1.599185,"Gurghthock - On Script - Summon Murkblood Twin"), +(@ENTRY_GURTHOCK*100+1,9,2,0,0,0,100,0,0,0,0,0,12,@ENTRY_TWIN,1,120000,0,0,0,8,0,0,0,-695.944275,7880.357910,47.097507,2.084561,"Gurghthock - On Script - Summon Murkblood Twin"), +(@ENTRY_GURTHOCK*100+2,9,0,0,0,0,100,0,13000,13000,0,0,1,5,0,0,0,0,0,7,0,0,0,0,0,0,0,"Gurgthock - On Script - Say Line 5"), +(@ENTRY_GURTHOCK*100+2,9,1,0,0,0,100,0,5000,5000,0,0,12,@ENTRY_ROKDAR,1,120000,0,0,0,8,0,0,0,-704.669,7871.08,45.0387,1.59531,"Gurghthock - On Script - Summon Rokdar the Sundered Lord"), +(@ENTRY_GURTHOCK*100+3,9,0,0,0,0,100,0,13000,13000,0,0,1,7,0,0,0,0,0,7,0,0,0,0,0,0,0,"Gurgthock - On Script - Say Line 7"), +(@ENTRY_GURTHOCK*100+3,9,1,0,0,0,100,0,5000,5000,0,0,12,@ENTRY_SKRAGATH,1,120000,0,0,0,8,0,0,0,-704.669,7871.08,45.0387,1.59531,"Gurghthock - On Script - Summon Skra'gath"), +(@ENTRY_GURTHOCK*100+4,9,0,0,0,0,100,0,13000,13000,0,0,1,9,0,0,0,0,0,7,0,0,0,0,0,0,0,"Gurgthock - On Script - Say Line 9"), +(@ENTRY_GURTHOCK*100+4,9,1,0,0,0,100,0,5000,5000,0,0,12,@ENTRY_WARMAUL,1,120000,0,0,0,8,0,0,0,-704.669,7871.08,45.0387,1.59531,"Gurghthock - On Script - Summon Warmaul Champion"), +(@ENTRY_GURTHOCK,0,10,11,19,0,100,0,@QUEST_MOGOR,0,0,0,1,11,0,0,0,0,0,7,0,0,0,0,0,0,0,"Gurghthock - On Quest Accept - Say Line 11"), +(@ENTRY_GURTHOCK,0,11,0,61,0,100,0,0,0,0,0,45,1,1,0,0,0,0,19,@ENTRY_MOGOR,0,0,0,0,0,0,"Gurghthock - On Quest Accept - Set Data Mogor"), +(@ENTRY_GURTHOCK,0,12,0,38,0,100,0,10,10,0,0,1,2,0,0,0,0,0,7,0,0,0,0,0,0,0,"Gurghthock - On Data Set - Say Line 2"), -- Brokentoe's death +(@ENTRY_GURTHOCK,0,13,0,38,0,100,0,11,11,0,0,1,4,0,0,0,0,0,7,0,0,0,0,0,0,0,"Gurghthock - On Data Set - Say Line 4"), -- Murkblood Twins death +(@ENTRY_GURTHOCK,0,14,15,38,0,100,0,12,12,0,0,1,6,0,0,0,0,0,7,0,0,0,0,0,0,0,"Gurghthock - On Data Set - Say Line 6"), -- Rokdar the Sundered Lord's death +(@ENTRY_GURTHOCK,0,15,0,61,0,100,0,0,0,0,0,45,12,12,0,0,0,0,19,18069,0,0,0,0,0,0,"Gurghthock - On Data Set - Set Data Mogor"), -- Rokdar the Sundered Lord's death +(@ENTRY_GURTHOCK,0,16,17,38,0,100,0,13,13,0,0,1,8,0,0,0,0,0,7,0,0,0,0,0,0,0,"Gurghthock - On Data Set - Say Line 8"), -- Skra'gath's death +(@ENTRY_GURTHOCK,0,17,0,61,0,100,0,0,0,0,0,45,13,13,0,0,0,0,19,18069,0,0,0,0,0,0,"Gurghthock - On Data Set - Set Data Mogor"), -- Skra'gath's death +(@ENTRY_GURTHOCK,0,18,19,38,0,100,0,14,14,0,0,1,10,0,0,0,0,0,7,0,0,0,0,0,0,0,"Gurghthock - On Data Set - Say Line 10"), -- Warmaul Champion's death +(@ENTRY_GURTHOCK,0,19,0,61,0,100,0,0,0,0,0,45,14,14,0,0,0,0,19,18069,0,0,0,0,0,0,"Gurghthock - On Data Set - Set Data Mogor"); -- Warmaul Champion's death +-- Text +DELETE FROM `db_script_string` WHERE `entry` IN (2000000001,2000000002,2000000003,2000000102,2000000103,2000000104); +DELETE FROM `creature_text` WHERE `entry`=@ENTRY_GURTHOCK; +INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES +(@ENTRY_GURTHOCK,0,0,"Get in the Ring of Blood, $N. The fight is about to start!",12,0,100,0,0,0,"Gurgthock"), +(@ENTRY_GURTHOCK,1,0,"The battle is about to begin! $N versus the ferocious clefthoof, Brokentoe!",14,0,100,0,0,0,"Gurgthock"), +(@ENTRY_GURTHOCK,2,0,"$N has defeated Brokentoe!",14,0,100,0,0,0,"Gurgthock"), +(@ENTRY_GURTHOCK,3,0,"The battle is about to begin! The unmerciful Murkblood twins versus $N!",14,0,100,0,0,0,"Gurgthock"), +(@ENTRY_GURTHOCK,4,0,"Unbelievable! $N has defeated the Murkblood Twins!",14,0,100,0,0,0,"Gurgthock"), +(@ENTRY_GURTHOCK,5,0,"Hailing from the mountains of Blade's Edge comes Rokdar the Sundered Lord! $N is in for the fight of $g his:her; life.",14,0,100,0,0,0,"Gurgthock"), +(@ENTRY_GURTHOCK,6,0,"$N is victorious once more!",14,0,100,0,0,0,"Gurgthock"), +(@ENTRY_GURTHOCK,7,0,"From parts unkown: Skra'gath! Can $N possibly survive the onslaught of void energies?",14,0,100,0,0,0,"Gurgthock"), +(@ENTRY_GURTHOCK,8,0,"$N is victorious once more!",14,0,100,0,0,0,"Gurgthock"), +(@ENTRY_GURTHOCK,9,0,"This is the moment we've all been waiting for! The Warmaul champion is about to make $g his:her; first showing at the Ring of Blood in weeks! Will $N go down in defeat as easily as the champion's other opponents? We shall see...",14,0,100,0,0,0,"Gurgthock"), +(@ENTRY_GURTHOCK,10,0,"$N is victorious once more!",14,0,100,0,0,0,"Gurgthock"), +(@ENTRY_GURTHOCK,11,0,"Mogor has challenged you. You have to accept! Get in the ring if you are ready to fight.",12,0,100,0,0,0,"Gurgthock"); +-- Mogor SAI +SET @ENTRY := 18069; +SET @QUEST := 9977; +SET @SPELL_CHAIN_LIGHTNING := 16033; +SET @SPELL_FLAME_SHOCK := 39529; +SET @SPELL_HEALING_WAVE := 15982; +SET @SPELL_FRENZY := 28747; +SET @SPELL_REVIVE_SELF := 32343; +UPDATE `creature_template` SET `AIName`="SmartAI",`faction_A`=35,`faction_H`=35 WHERE `entry`=@ENTRY; +DELETE FROM `creature` WHERE `id`=@ENTRY; +INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`,`npcflag`,`unit_flags`,`dynamicflags`) VALUES +(1022681,@ENTRY,530,1,1,0,0,-714.823,7931.65,58.8672,4.3693,300,0,0,60720,29330,0,0,0,0); +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid` IN (@ENTRY,@ENTRY*100,@ENTRY*100+1); +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,0,0,100,0,1000,1000,3500,3500,11,@SPELL_CHAIN_LIGHTNING,0,0,0,0,0,2,0,0,0,0,0,0,0,"Mogor - In Combat - Cast Chain Lightning"), +(@ENTRY,0,1,0,0,0,100,0,4000,4000,11000,13000,11,@SPELL_FLAME_SHOCK,0,0,0,0,0,2,0,0,0,0,0,0,0,"Mogor - In Combat - Cast Flame Shock"), +(@ENTRY,0,2,0,2,0,100,1,0,60,0,0,11,@SPELL_HEALING_WAVE,1,0,0,0,0,1,0,0,0,0,0,0,0,"Mogor - At 60% HP - Cast Healing Wave"), +(@ENTRY,0,3,0,2,0,100,1,0,30,0,0,11,@SPELL_FRENZY,1,0,0,0,0,1,0,0,0,0,0,0,0,"Mogor - At 30% HP - Cast Frenzy"), +(@ENTRY,0,4,0,2,0,100,1,0,30,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Mogor - At 30% HP - Say Line 0"), +(@ENTRY,0,5,0,6,0,100,1,0,0,0,0,80,@ENTRY*100+1,0,2,0,0,0,1,0,0,0,0,0,0,0,"Mogor - On Death - Run Script"), +(@ENTRY*100+1,9,0,0,0,0,100,0,2000,2000,0,0,11,@SPELL_REVIVE_SELF,2,0,0,0,0,1,0,0,0,0,0,0,0,"Mogor - On Script - Cast Revive Self"), +(@ENTRY*100+1,9,1,0,0,0,100,0,1000,1000,0,0,70,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Mogor - On Script - Revive Self"), +(@ENTRY*100+1,9,2,0,0,0,100,0,1000,1000,0,0,1,5,0,0,0,0,0,1,0,0,0,0,0,0,0,"Mogor - On Script - Say Line 5"), +(@ENTRY*100+1,9,3,0,0,0,100,0,500,500,0,0,49,0,0,0,0,0,0,21,0,0,0,0,0,0,0,"Mogor - On Script - Attack Closest Player"), +(@ENTRY,0,6,0,38,0,100,0,12,12,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Mogor - On Data Set - Say Line 1"), -- Rokdar the Sundered Lord's death +(@ENTRY,0,7,0,38,0,100,0,13,13,0,0,1,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Mogor - On Data Set - Say Line 2"), -- Skra'gath's death +(@ENTRY,0,8,0,38,0,100,0,14,14,0,0,1,6,0,0,0,0,0,1,0,0,0,0,0,0,0,"Mogor - On Data Set - Say Line 6"), -- Warmaul Champion's death +(@ENTRY,0,9,10,38,0,100,0,1,1,0,0,53,0,@ENTRY,0,0,0,0,1,0,0,0,0,0,0,0,"Mogor - On Data Set - Start WP"), +(@ENTRY,0,10,0,61,0,100,0,0,0,0,0,1,3,0,0,0,0,0,7,0,0,0,0,0,0,0,"Mogor - On Data Set - Say Line 3"), +(@ENTRY,0,11,12,40,0,100,0,4,@ENTRY,0,0,54,100000,0,2,0,0,0,1,0,0,0,0,0,0,0,"Mogor - At WP 4 - Pause Path"), +(@ENTRY,0,12,0,61,0,100,0,0,0,0,0,80,@ENTRY*100,0,2,0,0,0,1,0,0,0,0,0,0,0,"Mogor - At WP 4 - Run Script"), +(@ENTRY*100,9,0,0,0,0,100,0,0,0,0,0,1,4,0,0,0,0,0,1,0,0,0,0,0,0,0,"Mogor - On Script - Say Line 4"), +(@ENTRY*100,9,1,0,0,0,100,0,5000,5000,0,0,2,14,0,0,0,0,0,1,0,0,0,0,0,0,0,"Mogor - On Script - Set Faction Aggressive"), +(@ENTRY*100,9,2,0,0,0,100,0,9,9,0,0,8,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Mogor - On Script - Set React State Aggressive"), +(@ENTRY,0,13,0,21,0,100,0,0,0,0,0,2,35,0,0,0,0,0,1,0,0,0,0,0,0,0,"Mogor - Reached Home - Set Faction Friendly"); -- To prevent issues =) +-- Waypoints +DELETE FROM `waypoints` WHERE `entry`=@ENTRY; +INSERT INTO `waypoints` (`entry`,`pointid`,`position_x`,`position_y`,`position_z`,`point_comment`) VALUES +(@ENTRY,1,-715.036621,7922.948730,59.506184,"Mogor"), +(@ENTRY,2,-720.282532,7916.268066,57.146416,"Mogor"), +(@ENTRY,3,-724.706299,7909.140137,51.817696,"Mogor"), +(@ENTRY,4,-717.016479,7896.937500,48.460430,"Mogor"); +-- Texts +DELETE FROM `db_script_string` WHERE `entry` IN (2000000001,2000000002,2000000003); +DELETE FROM `creature_text` WHERE `entry`=@ENTRY; +INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES +(@ENTRY,0,0,"%s goes into a frenzy!",16,0,100,0,0,0,"Mogor"), +(@ENTRY,1,0,"Dat was poop! Mogor could put up much better fight den dat!",14,0,100,0,0,0,"Mogor"), +(@ENTRY,2,0,"Mogor not impressed! Skra'gath wuz made of da air and shadow! Soft like da squishy orcies!",14,0,100,0,0,0,"Mogor"), +(@ENTRY,3,0,"Now you face da true champion! I give you chance to run away little one. Run away now before Mogor decim... destyor... Run away before Mogor KILL!",14,0,100,0,0,0,"Mogor"), +(@ENTRY,4,0,"No more chances! Now you pay da ogre!",14,0,100,15,0,0,"Mogor"), -- ONESHOT_ROAR +(@ENTRY,5,0,"No more nice ogre! You hurt Mogor!",14,0,100,0,0,0,"Mogor"), +(@ENTRY,6,0,"WUT!? UNPOSSIBLE!! You fight Mogor now! Mogor destroy!",14,0,100,0,0,0,"Mogor"); +-- Brokentoe SAI +SET @ENTRY := 18398; +SET @QUEST := 9962; +SET @SPELL_HOOF_STOMP := 32023; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,0,0,100,0,1000,1000,9000,11000,11,@SPELL_HOOF_STOMP,0,0,0,0,0,2,0,0,0,0,0,0,0,"Brokentoe - In Combat - Cast Hoof Stomp"), +(@ENTRY,0,1,2,6,0,100,1,0,0,0,0,15,@QUEST,0,0,0,0,0,24,0,0,0,0,0,0,0,"Brokentoe - On Death - Give Quest Credit"), +(@ENTRY,0,2,0,61,0,100,1,0,0,0,0,45,10,10,0,0,0,0,19,18471,0,0,0,0,0,0,"Brokentoe - On Death - Set Data Gurghthock"); +-- Murkblood Twin SAI +SET @ENTRY := 18399; +SET @QUEST := 9967; +SET @SPELL_EVISCERATE := 15691; +SET @SPELL_MUTILATE := 32319; +SET @SPELL_SINISTER_STRIKE := 14873; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,4,0,100,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Murkblood Twin - On Aggro - Say Line 0"), +(@ENTRY,0,1,0,0,0,100,0,1000,1000,2000,2000,11,@SPELL_SINISTER_STRIKE,1,0,0,0,0,2,0,0,0,0,0,0,0,"Murkblood Twin - In Combat - Cast Sinister Strike"), +(@ENTRY,0,2,0,0,0,100,0,5000,6000,11000,12000,11,@SPELL_EVISCERATE,1,0,0,0,0,2,0,0,0,0,0,0,0,"Murkblood Twin - In Combat - Cast Eviscerate"), +(@ENTRY,0,3,0,0,0,100,0,8000,9000,15000,16000,11,@SPELL_MUTILATE,1,0,0,0,0,2,0,0,0,0,0,0,0,"Murkblood Twin - In Combat - Cast Gouge"), +(@ENTRY,0,4,5,6,0,100,1,0,0,0,0,15,@QUEST,0,0,0,0,0,24,0,0,0,0,0,0,0,"Murkblood Twin - On Death - Give Quest Credit"), +(@ENTRY,0,5,0,61,0,100,1,0,0,0,0,45,11,11,0,0,0,0,19,18471,0,0,0,0,0,0,"Murkblood Twin - On Death - Set Data Gurghthock"); +-- Texts +DELETE FROM `creature_text` WHERE `entry`=@ENTRY; +INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES +(@ENTRY,0,0,"Blue brothers reign supreme!",12,0,100,0,0,0,"Murkblood Twin"); +-- Rokdar the Sundered Lord SAI +SET @ENTRY := 18400; +SET @QUEST := 9970; +SET @SPELL_WAR_STOMP := 16727; +SET @SPELL_PUNCTURE := 15976; +SET @SPELL_KNOCK_AWAY := 31389; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Rokdar the Sundered Lord - Out of Combat - Say Line"), +(@ENTRY,0,1,0,0,0,100,0,1000,1000,9000,11000,11,@SPELL_WAR_STOMP,0,0,0,0,0,2,0,0,0,0,0,0,0,"Rokdar the Sundered Lord - In Combat - Cast War Stomp"), +(@ENTRY,0,2,0,31,0,100,0,@SPELL_KNOCK_AWAY,0,0,0,1,0,0,0,0,0,0,2,0,0,0,0,0,0,0,"Rokdar the Sundered Lord - On Target Spellhit War Stomp - Say Line"), +(@ENTRY,0,3,0,0,0,100,0,6000,6000,12000,12000,11,@SPELL_KNOCK_AWAY,0,0,0,0,0,2,0,0,0,0,0,0,0,"Rokdar the Sundered Lord - In Combat - Cast Knock Away"), +(@ENTRY,0,4,0,0,0,100,0,20000,20000,25000,25000,11,@SPELL_PUNCTURE,0,0,0,0,0,2,0,0,0,0,0,0,0,"Rokdar the Sundered Lord - In Combat - Cast Puncture"), +(@ENTRY,0,5,6,6,0,100,1,0,0,0,0,15,@QUEST,0,0,0,0,0,24,0,0,0,0,0,0,0,"Rokdar the Sundered Lord - On Death - Give Quest Credit"), +(@ENTRY,0,6,0,61,0,100,1,0,0,0,0,45,12,12,0,0,0,0,19,18471,0,0,0,0,0,0,"Rokdar the Sundered Lord - On Death - Set Data Gurghthock"); +-- Texts +DELETE FROM `creature_text` WHERE `entry`=@ENTRY; +INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES +(@ENTRY,0,0,"ROKDAR SMASH PUNY %t!",14,0,100,0,0,0,"Rokdar the Sundered Lord"); +-- Skra'gath SAI +SET @ENTRY := 18401; +SET @QUEST := 9972; +SET @SPELL_DRAINING_TOUCH := 29299; +SET @SPELL_SHADOW_BURST := 32324; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,1,0,0,0,0,11,@SPELL_DRAINING_TOUCH,0,0,0,0,0,1,0,0,0,0,0,0,0,"Skra'gath - Out of Combat - Cast Draining Touch"), +(@ENTRY,0,1,0,4,0,100,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Skra'gath - On Aggro - Say Line"), +(@ENTRY,0,2,0,0,0,100,0,6000,6000,12000,12000,11,@SPELL_SHADOW_BURST,0,0,0,0,0,2,0,0,0,0,0,0,0,"Skra'gath - In Combat - Cast Shadow Burst"), +(@ENTRY,0,3,4,6,0,100,1,0,0,0,0,15,@QUEST,0,0,0,0,0,24,0,0,0,0,0,0,0,"Skra'gath - On Death - Give Quest Credit"), +(@ENTRY,0,4,0,61,0,100,1,0,0,0,0,45,13,13,0,0,0,0,19,18471,0,0,0,0,0,0,"Skra'gath - On Death - Set Data Gurgthock"); +-- Texts +DELETE FROM `creature_text` WHERE `entry`=@ENTRY; +INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES +(@ENTRY,0,0,"Closer... Come closer... See what the void brings!",14,0,100,0,0,0,"Skra'gath"); +-- Warmaul Champion SAI +SET @ENTRY := 18402; +SET @QUEST := 9973; +SET @SPELL_BATTLE_SHOUT := 31403; +SET @SPELL_CHARGE := 32323; +SET @SPELL_MORTAL_STRIKE := 15708; +SET @SPELL_SUNDERING_CLEAVE := 17963; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,4,0,100,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Warmaul Champion - On Aggro - Say Line"), +(@ENTRY,0,1,0,4,0,100,0,0,0,0,0,11,@SPELL_BATTLE_SHOUT,1,0,0,0,0,1,0,0,0,0,0,0,0,"Warmaul Champion - On Aggro - Cast Battle Shout"), +(@ENTRY,0,2,0,9,0,100,1,5,30,1500,2000,11,@SPELL_CHARGE,1,0,0,0,0,2,0,0,0,0,0,0,0,"Warmaul Champion - On Player Range - Cast Charge"), +(@ENTRY,0,3,0,0,0,100,0,3000,4000,6000,7000,11,@SPELL_MORTAL_STRIKE,1,0,0,0,0,2,0,0,0,0,0,0,0,"Warmaul Champion - In Combat - Cast Mortal Strike"), +(@ENTRY,0,4,0,0,0,100,0,1000,1000,9000,11000,11,@SPELL_SUNDERING_CLEAVE,1,0,0,0,0,2,0,0,0,0,0,0,0,"Warmaul Champion - In Combat - Cast Sundering Cleave"), +(@ENTRY,0,4,5,6,0,100,1,0,0,0,0,15,@QUEST,0,0,0,0,0,24,0,0,0,0,0,0,0,"Warmaul Champion - On Death - Give Quest Credit"), +(@ENTRY,0,5,0,61,0,100,1,0,0,0,0,45,14,14,0,0,0,0,19,18471,0,0,0,0,0,0,"Warmaul Champion - On Death - Set Data Gurgthock"); +-- Text +DELETE FROM `creature_text` WHERE `entry`=@ENTRY; +INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES +(@ENTRY,0,0,"Piece by piece I will tear this challenger apart... PIECE BY PIECE!",14,0,100,0,0,0,"Warmaul Champion"); diff --git a/sql/old/3.3.5a/2011_11_20_08_world_achievement_criteria_data.sql b/sql/old/3.3.5a/2011_11_20_08_world_achievement_criteria_data.sql new file mode 100644 index 00000000000..6e121274acb --- /dev/null +++ b/sql/old/3.3.5a/2011_11_20_08_world_achievement_criteria_data.sql @@ -0,0 +1,5 @@ +-- G.N.E.R.D. Rage +DELETE FROM `achievement_criteria_data` WHERE `criteria_id`=3882; +INSERT INTO `achievement_criteria_data` (`criteria_id`,`type`,`value1`,`value2`,`ScriptName`) VALUES +(3882,5,48890,0,''), -- The aura +(3882,16,324,0,''); -- Holiday must be active diff --git a/sql/old/3.3.5a/2011_11_20_09_world_sai.sql b/sql/old/3.3.5a/2011_11_20_09_world_sai.sql new file mode 100644 index 00000000000..8931a7084d9 --- /dev/null +++ b/sql/old/3.3.5a/2011_11_20_09_world_sai.sql @@ -0,0 +1,35 @@ +-- [Q] Maintaining Discipline + +-- Exhausted Vrykul SAI +SET @ENTRY := 30146; +SET @SPELL_DESPERATE_BLOW := 57395; +SET @SPELL_DISCIPLINING_ROD := 42837; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid` IN (@ENTRY,@ENTRY*100+0,@ENTRY*100+1); +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,0,0,0,0,0,90,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Exhausted Vrykul - Out of Combat - Set Bytes1 Sit"), -- Not doing this in creature_addon(_template) so that we can cancel this in SAI +(@ENTRY,0,1,2,8,0,100,0,@SPELL_DISCIPLINING_ROD,0,0,0,87,@ENTRY*100+0,@ENTRY*100+1,0,0,0,0,1,0,0,0,0,0,0,0,"Exhausted Vrykul - On Spellhit - Run Random Script"), +(@ENTRY,0,2,0,61,0,100,0,0,0,0,0,23,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Exhausted Vrykul - On Spellhit - Set Phase 1"), -- To prevent the same one to give more credits +(@ENTRY*100+0,9,0,0,0,0,100,0,0,0,0,0,49,0,0,0,0,0,0,7,0,0,0,0,0,0,0,"Exhausted Vrykul - On Script - Attack Player"), +(@ENTRY*100+0,9,1,0,0,0,100,0,0,0,0,0,1,0,0,0,0,0,0,7,0,0,0,0,0,0,0,"Exhausted Vrykul - On Script - Say Line 0 (random)"), +(@ENTRY*100+1,9,0,0,0,0,100,0,0,0,0,0,1,1,0,0,0,0,0,7,0,0,0,0,0,0,0,"Exhausted Vrykul - On Script - Say Line 1 (random)"), +(@ENTRY*100+1,9,1,0,0,0,100,0,0,0,0,0,91,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Exhausted Vrykul - On Script - Stand Up"), +(@ENTRY*100+1,9,2,0,0,0,100,0,0,0,0,0,5,233,0,0,0,0,0,1,0,0,0,0,0,0,0,"Exhausted Vrykul - On Script - Emote Work"), +(@ENTRY*100+1,9,3,0,0,0,100,0,0,0,0,0,33,29886,0,0,0,0,0,7,0,0,0,0,0,0,0,"Exhausted Vrykul - On Script - Kill Credit"), +(@ENTRY,0,3,0,2,0,100,1,0,15,0,0,11,@SPELL_DESPERATE_BLOW,0,0,0,0,0,2,0,0,0,0,0,0,0,"Exhausted Vrykul - At 15% HP - Cast Desperate Blow"); + +-- Texts +DELETE FROM `creature_text` WHERE `entry`=@ENTRY; +INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES +(@ENTRY,0,0,"Curse you! You will not treat me like a beast!",12,0,100,1,0,0,"Exhausted Vrykul"), +(@ENTRY,0,1,"Enough! I will teach you some manners, wench!",12,0,100,1,0,0,"Exhausted Vrykul"), +(@ENTRY,0,2,"I'd rather die fighting than live like a slave!",12,0,100,1,0,0,"Exhausted Vrykul"), + +(@ENTRY,1,0,"Back... to work...",12,0,100,1,0,0,"Exhausted Vrykul"), +(@ENTRY,1,1,"We will have revenge... some day.",12,0,100,1,0,0,"Exhausted Vrykul"), +(@ENTRY,1,2,"You treat us worse than animals!",12,0,100,1,0,0,"Exhausted Vrykul"); + +-- Captive Vrykul should be mining +DELETE FROM `creature_template_addon` WHERE `entry`=29427; +INSERT INTO `creature_template_addon` (`entry`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES (29427,0,0,1,233,NULL); diff --git a/sql/old/3.3.5a/2011_11_20_10_world_sai.sql b/sql/old/3.3.5a/2011_11_20_10_world_sai.sql new file mode 100644 index 00000000000..b56fd826e95 --- /dev/null +++ b/sql/old/3.3.5a/2011_11_20_10_world_sai.sql @@ -0,0 +1,55 @@ +-- [Q] [A/H] The Skettis Offensive +-- Defender Grashna SAI +SET @ENTRY := 22373; +SET @QUEST := 10879; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +UPDATE `quest_template` SET `StartScript`=0,`CompleteScript`=0,`SpecialFlags`=2 WHERE `entry`=@QUEST; +DELETE FROM `quest_start_scripts` WHERE `id`=@QUEST; +DELETE FROM `smart_scripts` WHERE `entryorguid` IN (@ENTRY,@ENTRY*100); +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,19,0,100,0,@QUEST,0,0,0,80,@ENTRY*100,0,2,0,0,0,1,0,0,0,0,0,0,0,"Defender Grashna - On Quest Accept - Run Script"), +-- Wave one - no text +(@ENTRY*100,9,0,0,0,0,100,0,0,0,0,0,12,22376,1,60000,0,0,0,8,0,0,0,-1626.12,5402.47,-42.31,2.08131,"Defender Grashna - On Script - Summon Minion of Terokk"), +(@ENTRY*100,9,1,0,0,0,100,0,0,0,0,0,12,22376,1,60000,0,0,0,8,0,0,0,-1626.12,5402.47,-42.31,2.08131,"Defender Grashna - On Script - Summon Minion of Terokk"), +-- Wave two +(@ENTRY*100,9,2,0,0,0,100,0,30000,30000,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defender Grashna - On Script - Say Line 0"), +(@ENTRY*100,9,3,0,0,0,100,0,0,0,0,0,12,22376,1,60000,0,0,0,8,0,0,0,-1626.12,5402.47,-42.31,2.08131,"Defender Grashna - On Script - Summon Minion of Terokk"), +(@ENTRY*100,9,4,0,0,0,100,0,0,0,0,0,12,22376,1,60000,0,0,0,8,0,0,0,-1626.12,5402.47,-42.31,2.08131,"Defender Grashna - On Script - Summon Minion of Terokk"), +-- Wave three +(@ENTRY*100,9,5,0,0,0,100,0,30000,30000,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defender Grashna - On Script - Say Line 1"), +(@ENTRY*100,9,6,0,0,0,100,0,0,0,0,0,12,22376,1,60000,0,0,0,8,0,0,0,-1626.12,5402.47,-42.31,2.08131,"Defender Grashna - On Script - Summon Minion of Terokk"), +(@ENTRY*100,9,7,0,0,0,100,0,0,0,0,0,12,22376,1,60000,0,0,0,8,0,0,0,-1626.12,5402.47,-42.31,2.08131,"Defender Grashna - On Script - Summon Minion of Terokk"), +(@ENTRY*100,9,8,0,0,0,100,0,0,0,0,0,12,22376,1,60000,0,0,0,8,0,0,0,-1626.12,5402.47,-42.31,2.08131,"Defender Grashna - On Script - Summon Minion of Terokk"), +-- Wave four +(@ENTRY*100,9,9,0,0,0,100,0,30000,30000,0,0,1,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defender Grashna - On Script - Say Line 2"), +(@ENTRY*100,9,10,0,0,0,100,0,0,0,0,0,12,22375,1,60000,0,0,0,8,0,0,0,-1626.12,5402.47,-42.31,2.08131,"Defender Grashna - On Script - Summon Avatar of Terokk"), +(@ENTRY,0,1,0,38,0,100,0,1,1,0,0,1,3,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defender Grashna - On Data Set - Say Line 3"); +-- Text +DELETE FROM `db_script_string` WHERE `entry` IN (2000000022,2000000023,2000000024,2000000025); +DELETE FROM `creature_text` WHERE `entry`=@ENTRY; +INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES +(@ENTRY,0,0,"More Minions of Terokk are coming!",12,0,100,0,0,0,"Defender Grashna"), +(@ENTRY,1,0,"The invaders persist! Hold them off!",12,0,100,0,0,0,"Defender Grashna"), +(@ENTRY,2,0,"An Avatar of Terokk!! To arms!",12,0,100,0,0,0,"Defender Grashna"), +(@ENTRY,3,0,"The Avatar of Terokk has been defeated! Death to Terokk! Death to Skettis!",12,0,100,0,0,0,"Defender Grashna"); +-- Minion of Terokk SAI +SET @ENTRY := 22376; +SET @SPELL_SCREECH := 38021; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,54,0,100,0,0,0,0,0,69,0,0,0,0,0,0,8,0,0,0,-1647.329956,5443.410156,-40.911999,2.254425,"Minion of Terokk - Just Summoned - Move To Pos"), +(@ENTRY,0,1,0,0,0,100,1,3000,4000,8000,8000,11,@SPELL_SCREECH,0,0,0,0,0,2,0,0,0,0,0,0,0,"Minion of Terokk - In Combat - Cast Terrifying Screech"); +-- Avatar of Terokk SAI +SET @ENTRY := 22375; +SET @SPELL_CHARGE := 24193; +SET @SPELL_FEATHER_BURST := 39068; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,54,0,100,0,0,0,0,0,69,0,0,0,0,0,0,8,0,0,0,-1641.118652,5436.648926,-43.344521,0.803601,"Avatar of Terokk - Just Summoned - Move To Pos"), +(@ENTRY,0,1,0,4,0,100,0,0,0,0,0,69,0,0,0,0,0,0,8,0,0,0,-1641.118652,5436.648926,-43.344521,0.803601,"Avatar of Terokk - Just Summoned - Move To Pos"), +(@ENTRY,0,2,3,6,0,100,0,0,0,0,0,45,1,1,0,0,0,0,19,6546,0,0,0,0,0,0,"Avatar of Terokk - On Death - Set Data Defender Grashna"), +(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,15,@QUEST,0,0,0,0,0,7,0,0,0,0,0,0,0,"Avatar of Terokk - On Death - Quest Credit"), +(@ENTRY,0,4,0,4,0,100,1,0,0,0,0,11,@SPELL_CHARGE,0,0,0,0,0,2,0,0,0,0,0,0,0,"Avatar of Terokk - On Aggro - Cast Charge"), +(@ENTRY,0,5,0,0,0,100,0,6000,9000,11000,14000,11,@SPELL_FEATHER_BURST,0,0,0,0,0,2,0,0,0,0,0,0,0,"Avatar of Terokk - In Combat - Cast Feather Burst"); diff --git a/sql/old/3.3.5a/2011_11_20_11_world_sai.sql b/sql/old/3.3.5a/2011_11_20_11_world_sai.sql new file mode 100644 index 00000000000..a05b26e6831 --- /dev/null +++ b/sql/old/3.3.5a/2011_11_20_11_world_sai.sql @@ -0,0 +1,9 @@ +-- [Q] A Carver and a Croaker + +-- Scalawag Frog SAI +SET @ENTRY := 26503; +UPDATE `creature_template` SET `AIName`='SmartAI',`npcflag`=`npcflag`|1,`IconName`='LootAll' WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,1,64,0,100,0,0,0,0,0,56,35803,1,0,0,0,0,7,0,0,0,0,0,0,0,"Scalawag Frog - Gossip Hello - Create Item Scalawag Frog"), +(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,41,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Scalawag Frog - Gossip Hello - Force Despawn"); diff --git a/sql/old/3.3.5a/2011_11_20_12_world_sai.sql b/sql/old/3.3.5a/2011_11_20_12_world_sai.sql new file mode 100644 index 00000000000..527db0e02e7 --- /dev/null +++ b/sql/old/3.3.5a/2011_11_20_12_world_sai.sql @@ -0,0 +1,30 @@ +-- [Q] Rivenwood Captives + +-- Riven Widow Cocoon SAI +SET @ENTRY := 24210; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +UPDATE `creature` SET `MovementType`=0,`spawndist`=0 WHERE `id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,1,6,0,25,0,0,0,0,0,12,24211,2,8000,0,0,0,1,0,0,0,0,0,0,0,"Riven Widow Cocoon - On Death - Summon Freed Winterhoof Longrunner (25%)"), +(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,33,24211,0,0,0,0,0,7,0,0,0,0,0,0,0,"Riven Widow Cocoon - On Death - Quest Credit"); + +-- Freed Winterhoof Longrunner SAI +SET @ENTRY := 24211; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,1,54,0,100,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Freed Winterhoof Longrunner - Just Summoned - Say Line 0"), +(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,41,6000,0,0,0,0,0,1,0,0,0,0,0,0,0,"Freed Winterhoof Longrunner - Just Summoned - Forced Desoawn"); + +-- Texts +DELETE FROM `creature_text` WHERE `entry`=@ENTRY; +INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES +(@ENTRY,0,0,"Blessings of the spirits of the land and air upon you.",12,0,100,1,0,0,"Freed Winterhoof Longrunner"), +(@ENTRY,0,1,"I must return. Good hunting to you.",12,0,100,1,0,0,"Freed Winterhoof Longrunner"), +(@ENTRY,0,2,"I owe you a life debt, stranger.",12,0,100,1,0,0,"Freed Winterhoof Longrunner"), +(@ENTRY,0,3,"Strange ghosts walk the land. Be careful!",12,0,100,1,0,0,"Freed Winterhoof Longrunner"), +(@ENTRY,0,4,"Thank you, stranger.",12,0,100,1,0,0,"Freed Winterhoof Longrunner"), +(@ENTRY,0,5,"They took us one by one. I'm sure there are other survivors.",12,0,100,1,0,0,"Freed Winterhoof Longrunner"), +(@ENTRY,0,6,"We should never have traveled through the Rivenwood. Everyone knows this!",12,0,100,1,0,0,"Freed Winterhoof Longrunner"), +(@ENTRY,0,7,"You saved me from certain death. I owe you.",12,0,100,1,0,0,"Freed Winterhoof Longrunner"); diff --git a/sql/old/3.3.5a/2011_11_20_13_world_sai.sql b/sql/old/3.3.5a/2011_11_20_13_world_sai.sql new file mode 100644 index 00000000000..c4cd10912a3 --- /dev/null +++ b/sql/old/3.3.5a/2011_11_20_13_world_sai.sql @@ -0,0 +1,15 @@ +-- [Q] Elixir of Pain +-- Stanley SAI +SET @ENTRY := 2274; +SET @QUEST := 502; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,20,0,100,0,@QUEST,0,0,0,36,2275,0,0,0,0,0,1,0,0,0,0,0,0,0,"Stanley - On Quest Complete - Update Entry"); +-- Enraged Standley SAI +SET @ENTRY := 2275; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,54,0,100,0,0,0,0,0,49,0,0,0,0,0,0,21,0,0,0,0,0,0,0,"Enraged Standley - Just Summoned - Attack Closest Player"); diff --git a/sql/old/3.3.5a/2011_11_20_14_world_revert.sql b/sql/old/3.3.5a/2011_11_20_14_world_revert.sql new file mode 100644 index 00000000000..067c750b694 --- /dev/null +++ b/sql/old/3.3.5a/2011_11_20_14_world_revert.sql @@ -0,0 +1,4 @@ +-- revert 2011_11_20_11_world_sai.sql +SET @ENTRY := 26503; +UPDATE `creature_template` SET `AIName`='',`npcflag`=`npcflag`&~1,`IconName`='' WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`= @ENTRY AND `source_type`=0; diff --git a/sql/old/3.3.5a/2011_11_20_15_world_sai.sql b/sql/old/3.3.5a/2011_11_20_15_world_sai.sql new file mode 100644 index 00000000000..8e0b4141379 --- /dev/null +++ b/sql/old/3.3.5a/2011_11_20_15_world_sai.sql @@ -0,0 +1,41 @@ +-- [Q] [A/H] Cleansing of the Orb of Orahil +-- [Q] [A/H] Mana Surges +-- Tabetha SAI +SET @ENTRY := 6546; +SET @QUEST_CLEANSING := 4961; +SET @QUEST_MANA_SURGE := 1957; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +UPDATE `quest_template` SET `StartScript`=0,`CompleteScript`=0 WHERE `entry` IN (@QUEST_CLEANSING,@QUEST_MANA_SURGE); +DELETE FROM `quest_start_scripts` WHERE `id` IN (@QUEST_CLEANSING,@QUEST_MANA_SURGE); +DELETE FROM `smart_scripts` WHERE `entryorguid` IN (@ENTRY,@ENTRY*100,@ENTRY*100+1,@ENTRY*100+2,@ENTRY*100+3) AND `source_type` IN (0,9); +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,19,0,100,0,@QUEST_CLEANSING,0,0,0,80,@ENTRY*100,0,2,0,0,0,1,0,0,0,0,0,0,0,"Tabetha - On Quest Accept - Run Script"), +(@ENTRY*100,9,0,0,0,0,100,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Tabetha - On Script - Say Line 0"), +(@ENTRY*100,9,1,0,0,0,100,0,2000,2000,0,0,11,9097,0,0,0,0,0,1,0,0,0,0,0,0,0,"Tabetha - On Script - Cast Summon Demon of the Orb"), + +(@ENTRY,0,1,0,20,0,100,0,@QUEST_MANA_SURGE,0,0,0,9,0,0,0,0,0,0,14,28294,103680,0,0,0,0,0,"Tabetha - On Quest Complete - Deactivate Mana Rift (GO)"), -- Make it stop being visual +(@ENTRY,0,2,3,19,0,100,0,@QUEST_MANA_SURGE,0,0,0,9,0,0,0,0,0,0,14,28294,103680,0,0,0,0,0,"Tabetha - On Quest Accept - Activate Mana Rift (GO)"), +(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,87,@ENTRY*100+1,@ENTRY*100+2,@ENTRY*100+3,0,0,0,1,0,0,0,0,0,0,0,"Tabetha - On Quest Accept - Run Random Script"), +(@ENTRY,0,4,0,38,0,100,0,1,1,0,0,87,@ENTRY*100+1,@ENTRY*100+2,@ENTRY*100+3,0,0,0,1,0,0,0,0,0,0,0,"Tabetha - On Data Set - Run Random Script"), +(@ENTRY*100+1,9,0,0,0,0,100,0,0,0,0,0,12,6550,1,600000,0,0,0,8,0,0,0,-4019.22,-3383.91,38.2265,2.7963,"Tabetha - On Random Script - Summon Mana Surge"), +(@ENTRY*100+1,9,1,0,0,0,100,0,0,0,0,0,12,6550,1,600000,0,0,0,8,0,0,0,-4019.22,-3383.91,38.2265,2.7963,"Tabetha - On Random Script - Summon Mana Surge"), +(@ENTRY*100+1,9,2,0,0,0,100,0,0,0,0,0,12,6550,1,600000,0,0,0,8,0,0,0,-4019.22,-3383.91,38.2265,2.7963,"Tabetha - On Random Script - Summon Mana Surge"), +(@ENTRY*100+2,9,0,0,0,0,100,0,0,0,0,0,12,6550,1,600000,0,0,0,8,0,0,0,-4019.99,-3394.54,38.5507,1.8342,"Tabetha - On Random Script - Summon Mana Surge"), +(@ENTRY*100+2,9,1,0,0,0,100,0,0,0,0,0,12,6550,1,600000,0,0,0,8,0,0,0,-4019.99,-3394.54,38.5507,1.8342,"Tabetha - On Random Script - Summon Mana Surge"), +(@ENTRY*100+3,9,0,0,0,0,100,0,0,0,0,0,12,6550,1,600000,0,0,0,8,0,0,0,-4013.29,-3385.14,38.4656,2.3801,"Tabetha - On Random Script - Summon Mana Surge"), +(@ENTRY*100+3,9,1,0,0,0,100,0,0,0,0,0,12,6550,1,600000,0,0,0,8,0,0,0,-4013.29,-3385.14,38.4656,2.3801,"Tabetha - On Random Script - Summon Mana Surge"), +(@ENTRY*100+3,9,2,0,0,0,100,0,0,0,0,0,12,6550,1,600000,0,0,0,8,0,0,0,-4013.29,-3385.14,38.4656,2.3801,"Tabetha - On Random Script - Summon Mana Surge"); +-- Text +DELETE FROM `db_script_string` WHERE `entry`=2000000032; +DELETE FROM `creature_text` WHERE `entry`=@ENTRY; +INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES +(@ENTRY,0,0,"Grid yourself, $N. The demon in this orb is a fel beast.",12,0,100,0,0,0,"Tabetha"); +-- Mana Surge SAI +SET @ENTRY := 6550; +SET @SPELL_SHOCK := 11824; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,54,0,100,1,0,0,0,0,89,10,0,0,0,0,0,1,0,0,0,0,0,0,0,"Mana Surge - On Just Summoned - Set Random Movement"), +(@ENTRY,0,1,0,6,0,100,0,0,0,0,0,45,1,1,0,0,0,0,19,6546,0,0,0,0,0,0,"Mana Surge - On Death - Set Data Tabetha"), +(@ENTRY,0,2,0,0,0,100,0,3000,4000,8000,8000,11,@SPELL_SHOCK,0,0,0,0,0,2,0,0,0,0,0,0,0,'Mana Surge - In Combat - Cast Shock'); diff --git a/sql/old/3.3.5a/2011_11_21_00_world_db_errors.sql b/sql/old/3.3.5a/2011_11_21_00_world_db_errors.sql new file mode 100644 index 00000000000..d3ae6fb197b --- /dev/null +++ b/sql/old/3.3.5a/2011_11_21_00_world_db_errors.sql @@ -0,0 +1,11 @@ +UPDATE `creature_template` SET `lootid`=0 WHERE `entry`=11054; +UPDATE `conditions` SET `SourceTypeOrReferenceId`=17 WHERE `SourceTypeOrReferenceId`=13 AND `SourceEntry`=47305 AND `ConditionTypeOrReference`=20; +UPDATE `conditions` SET `SourceTypeOrReferenceId`=18, `SourceEntry`=36732, `ConditionTypeOrReference`=24 WHERE `SourceTypeOrReferenceId`=13 AND `SourceEntry`=47305 AND `ConditionTypeOrReference`=18; +UPDATE `smart_scripts` SET `target_param1`=35 WHERE `entryorguid`=2275 AND `source_type`=0 AND `id`=0; +UPDATE `smart_scripts` SET `target_param1`=35 WHERE `entryorguid`=1806901 AND `source_type`=9 AND `id`=3; + +DELETE FROM `db_script_string` WHERE `entry` IN (2000000102, 2000000103, 2000000104); +INSERT INTO `db_script_string` (`entry`, `content_default`, `content_loc1`, `content_loc2`, `content_loc3`, `content_loc4`, `content_loc5`, `content_loc6`, `content_loc7`, `content_loc8`) VALUES +(2000000102,'Oh, darn...',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(2000000103,'Ok, let''s get started!',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(2000000104,'... oops.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); diff --git a/sql/old/3.3.5a/2011_11_21_01_pilgrim_achievement_reward.sql b/sql/old/3.3.5a/2011_11_21_01_pilgrim_achievement_reward.sql new file mode 100644 index 00000000000..7083107a8c2 --- /dev/null +++ b/sql/old/3.3.5a/2011_11_21_01_pilgrim_achievement_reward.sql @@ -0,0 +1 @@ +UPDATE `achievement_reward` SET `item`=44810, `sender`=28951, `subject`='A Gobbler not yet Gobbled', `text` = 'Can you believe this Plump Turkey made it through November alive?$B$BSince all this friends have been served up on Bountiful Tables with sides of Cranberry Chutney and Spice Bread Stuffing and... ooo... I''m getting hungry. But anyhow! He''s all alone, now, so I was hoping you might be willing to take care of him. There simply isn''t enough room left in my shop!$B$BJust keep him away from cooking fires, please. He gets this strange look in his eyes around them...' WHERE `entry` IN (3478,3656); -- Pilgrim achievement (A/H) diff --git a/sql/old/3.3.5a/2011_11_21_02_pilgrim_achievement_criteria_data.sql b/sql/old/3.3.5a/2011_11_21_02_pilgrim_achievement_criteria_data.sql new file mode 100644 index 00000000000..589dbb0b2a4 --- /dev/null +++ b/sql/old/3.3.5a/2011_11_21_02_pilgrim_achievement_criteria_data.sql @@ -0,0 +1,11 @@ +-- Achievement: Turkey Lurkey +DELETE FROM `achievement_criteria_data` WHERE `type`=2 AND `criteria_id` IN (11158,11159,11160,11161,11162,11163,11164,11165); +INSERT INTO `achievement_criteria_data` (`criteria_id`, `type`, `value1`, `value2`) VALUES +(11158, 2, 4, 1), -- Human Rogue +(11159, 2, 4, 4), -- Night Elf Rogue +(11160, 2, 4, 2), -- Orc Rogue +(11161, 2, 4, 8), -- Troll Rogue +(11162, 2, 4, 5), -- Undead Rogue +(11163, 2, 4, 10), -- Blood Elf Rogue +(11164, 2, 4, 3), -- Dwarf Rogue +(11165, 2, 4, 7); -- Gnome Rogue diff --git a/sql/old/3.3.5a/2011_11_21_03_pilgrim_misc.sql b/sql/old/3.3.5a/2011_11_21_03_pilgrim_misc.sql new file mode 100644 index 00000000000..6547fe9a53a --- /dev/null +++ b/sql/old/3.3.5a/2011_11_21_03_pilgrim_misc.sql @@ -0,0 +1,145 @@ +-- Misc stuffz +UPDATE `npc_text` SET `WDBVerified`=12340 WHERE `ID`=14648; -- "A Bountiful Table is laid out..." + +-- Template updates +UPDATE `creature_template` SET `faction_A`=714,`faction_H`=714,`baseattacktime`=2000,`npcflag`=3, `unit_flags`=33536 WHERE `entry`=34654; -- Bountiful Feast Hostess +UPDATE `creature_template` SET `faction_A`=714,`faction_H`=714,`baseattacktime`=2000,`unit_flags`=33536 WHERE `entry`=34678; -- Dokin Farplain +UPDATE `creature_template` SET `faction_A`=714,`faction_H`=714,`baseattacktime`=2000,`npcflag`=640,`unit_flags`=33536 WHERE `entry`=34684; -- Laha Farplain +UPDATE `creature_template` SET `faction_A`=714,`faction_H`=714,`baseattacktime`=2000,`npcflag`=640,`speed_run`=1 WHERE `entry`=35343; -- Bountiful Barrel +UPDATE `creature_template` SET `faction_A`=714,`faction_H`=714,`baseattacktime`=2000,`npcflag`=640,`unit_flags`=33536 WHERE `entry`=34685; -- Dalni Tallgrass +UPDATE `creature_template` SET `faction_A`=714,`faction_H`=714,`baseattacktime`=2000,`npcflag`=640,`speed_run`=1 WHERE `entry`=35342; -- Bountiful Barrel +UPDATE `creature_template` SET `faction_A`=714,`faction_H`=714,`baseattacktime`=2000,`npcflag`=83,`unit_flags`=33536 WHERE `entry`=34713; -- Ondani Greatmill +UPDATE `creature_template` SET `faction_A`=714,`faction_H`=714,`baseattacktime`=2000,`npcflag`=640,`unit_flags`=33536 WHERE `entry`=34787; -- John Rigsdale +UPDATE `creature_template` SET `faction_A`=714,`faction_H`=714,`baseattacktime`=2000,`npcflag`=83,`unit_flags`=33536 WHERE `entry`=34786; -- Alice Rigsdale +UPDATE `creature_template` SET `faction_A`=714,`faction_H`=714,`baseattacktime`=2000,`unit_flags`=33536 WHERE `entry`=34677; -- Miles Standish +UPDATE `creature_template` SET `faction_A`=714,`faction_H`=714,`baseattacktime`=2000,`npcflag`=83,`unit_flags`=33536 WHERE `entry`=34712; -- Roberta Carter +UPDATE `creature_template` SET `faction_A`=714,`faction_H`=714,`baseattacktime`=2000,`npcflag`=640,`unit_flags`=33536 WHERE `entry`=34683; -- Rose Standish +UPDATE `creature_template` SET `faction_A`=714,`faction_H`=714,`baseattacktime`=2000,`npcflag`=640,`speed_run`=1 WHERE `entry`=35341; -- Bountiful Barrel + +UPDATE `creature_template` SET `baseattacktime`=2000,`npcflag`=16777216,`unit_flags`=16384,`speed_run`=1.57143,`VehicleId`=321 WHERE `entry`=34819; -- The Stuffing Chair +UPDATE `creature_template` SET `baseattacktime`=2000,`npcflag`=16777216,`unit_flags`=16384,`speed_run`=1.57143,`VehicleId`=321 WHERE `entry`=34824; -- The Sweet Potato Chair +UPDATE `creature_template` SET `baseattacktime`=2000,`npcflag`=16777216,`unit_flags`=16384,`speed_run`=1.57143,`VehicleId`=321 WHERE `entry`=34823; -- The Cranberry Chair +UPDATE `creature_template` SET `baseattacktime`=2000,`npcflag`=16777216,`unit_flags`=16384,`speed_run`=1.57143,`VehicleId`=321 WHERE `entry`=34812; -- The Turkey Chair +UPDATE `creature_template` SET `baseattacktime`=2000,`npcflag`=16777216,`unit_flags`=16384,`speed_run`=1.57143,`VehicleId`=321 WHERE `entry`=34822; -- The Pie Chair + +UPDATE `creature_model_info` SET `bounding_radius`=0.8725,`combat_reach`=3.75,`gender`=1 WHERE `modelid`=29330; -- Bountiful Feast Hostess +UPDATE `creature_model_info` SET `bounding_radius`=0.9747,`combat_reach`=4.05,`gender`=0 WHERE `modelid`=29339; -- Dokin Farplain +UPDATE `creature_model_info` SET `bounding_radius`=1,`combat_reach`=0,`gender`=0 WHERE `modelid`=29775; -- Bountiful Barrel +UPDATE `creature_model_info` SET `bounding_radius`=0.8725,`combat_reach`=3.75,`gender`=1 WHERE `modelid`=29342; -- Laha Farplain +UPDATE `creature_model_info` SET `bounding_radius`=1.6,`combat_reach`=0,`gender`=2 WHERE `modelid`=29205; -- Chairs +UPDATE `creature_model_info` SET `bounding_radius`=0.8725,`combat_reach`=3.75,`gender`=1 WHERE `modelid`=29397; -- Dalni Tallgrass +UPDATE `creature_model_info` SET `bounding_radius`=0.8725,`combat_reach`=3.75,`gender`=1 WHERE `modelid`=29401; -- Ondani Greatmill +UPDATE `creature_model_info` SET `bounding_radius`=0.383,`combat_reach`=1.5,`gender`=0 WHERE `modelid`=29428; -- John Rigsdale +UPDATE `creature_model_info` SET `bounding_radius`=0.383,`combat_reach`=1.5,`gender`=1 WHERE `modelid`=29427; -- Alice Rigsdale +UPDATE `creature_model_info` SET `bounding_radius`=0.383,`combat_reach`=1.5,`gender`=0 WHERE `modelid`=29338; -- Miles Standish +UPDATE `creature_model_info` SET `bounding_radius`=0.383,`combat_reach`=1.5,`gender`=1 WHERE `modelid`=29365; -- Roberta Carter +UPDATE `creature_model_info` SET `bounding_radius`=0.383,`combat_reach`=1.5,`gender`=1 WHERE `modelid`=29340; -- Rose Standish + +DELETE FROM `creature_template_addon` WHERE `entry` IN (34654,34678,35343,34684,34819,34824,34823,34812,34822,34685,35342,34713,34787,34786,34677,34712,34683,35341); +INSERT INTO `creature_template_addon` (`entry`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES +(34654,0,0,1,0, NULL), -- Bountiful Feast Hostess +(34678,0,0,2,0, NULL), -- Dokin Farplain +(35343,0,0,1,0, NULL), -- Bountiful Barrel (TB) +(34684,0,0,1,0, NULL), -- Laha Farplain +(34685,0,0,1,0, NULL), -- Dalni Tallgrass +(35342,0,0,1,0, NULL), -- Bountiful Barrel (OG) +(34713,0,0,2,0, NULL), -- Ondani Greatmill +(34787,0,0,1,0, NULL), -- John Rigsdale +(34786,0,0,2,0, NULL), -- Alice Rigsdale +(34677,0,0,2,0, NULL), -- Miles Standish +(34712,0,0,2,0, NULL), -- Roberta Carter +(34683,0,0,1,0, NULL), -- Rose Standish +(35341,0,0,1,0, NULL), -- Bountiful Barrel +(34819,0,0,1,0, '61795'), -- The Stuffing Chair (Stuffing Server) +(34824,0,0,1,0, '61797'), -- The Sweet Potato Chair (Sweet Potatoes Server) +(34823,0,0,1,0, '61793'), -- The Cranberry Chair (Cranberry Server) +(34812,0,0,1,0, '61796'), -- The Turkey Chair (Turkey Server) +(34822,0,0,1,0, '61794'); -- The Pie Chair (Pie Server) + +-- Vehicles +DELETE FROM `npc_spellclick_spells` WHERE `npc_entry` IN (34819,34824,34823,34812,34822); +INSERT INTO `npc_spellclick_spells` (`npc_entry`, `spell_id`, `quest_start`, `quest_start_active`, `quest_end`, `cast_flags`, `aura_required`, `aura_forbidden`, `user_type`) VALUES +(34819, 65403, 0, 0, 0, 1, 0, 0, 0), -- The Stuffing Chair (Ride Vehicle) +(34824, 65403, 0, 0, 0, 1, 0, 0, 0), -- The Sweet Potato Chair (Ride Vehicle) +(34823, 65403, 0, 0, 0, 1, 0, 0, 0), -- The Cranberry Chair (Ride Vehicle) +(34812, 65403, 0, 0, 0, 1, 0, 0, 0), -- The Turkey Chair (Ride Vehicle) +(34822, 65403, 0, 0, 0, 1, 0, 0, 0); -- The Pie Chair (Ride Vehicle) + +-- Gossips +UPDATE `creature_template` SET `gossip_menu_id`=10575 WHERE `entry`=34654; -- Bountiful Feast Hostess +DELETE FROM `gossip_menu` WHERE `entry`=10575 AND `text_id`=14633; +DELETE FROM `gossip_menu` WHERE `entry`=10589 AND `text_id`=14648; +INSERT INTO `gossip_menu` (`entry`, `text_id`) VALUES +(10575, 14633), +(10589, 14648); + +DELETE FROM `gossip_menu_option` WHERE `menu_id`=10575 AND `id`=0; +INSERT INTO `gossip_menu_option` (`menu_id`, `id`, `option_icon`, `option_text`, `option_id`, `npc_option_npcflag`, `action_menu_id`, `action_poi_id`, `box_coded`, `box_money`, `box_text`) VALUES +(10575, 0, 0, 'How do the Bountiful Tables work?', 1, 1, 10589, 0, 0, 0, NULL); + +-- Vendor tables +UPDATE `item_template` SET `BuyCount`=5 WHERE `entry` IN (44835,44853,46797,46793,46796); -- Autumnal Herbs, Honey, Mulgore Sweet Potato, Tangy Southfury Cranberries, Ripe Tirisfal Pumpkin +DELETE FROM `npc_vendor` WHERE `entry` IN (35343,34684,35342,34685,34787,35341,34683); +INSERT INTO `npc_vendor` (`entry`, `slot`, `item`, `maxcount`, `ExtendedCost`) VALUES +-- 35343 (Bountiful Barrel) +(35343, 1, 46810, 0, 0), -- Bountiful Cookbook +(35343, 2, 46797, 0, 0), -- Mulgore Sweet Potato +(35343, 3, 44835, 0, 0), -- Autumnal Herbs +(35343, 4, 44853, 0, 0), -- Honey +(35343, 5, 159, 0, 0), -- Refreshing Spring Water +(35343, 6, 2678, 0, 0), -- Mild Spices +(35343, 7, 30817, 0, 0), -- Simple Flour +(35343, 8, 46888, 0, 0), -- Bountiful Basket +-- 34684 (Laha Farplain) +(34684, 1, 46810, 0, 0), -- Bountiful Cookbook +(34684, 2, 46797, 0, 0), -- Mulgore Sweet Potato +(34684, 3, 44835, 0, 0), -- Autumnal Herbs +(34684, 4, 44853, 0, 0), -- Honey +(34684, 5, 159, 0, 0), -- Refreshing Spring Water +(34684, 6, 2678, 0, 0), -- Mild Spices +(34684, 7, 30817, 0, 0), -- Simple Flour +(34684, 8, 46888, 0, 0), -- Bountiful Basket +-- 35342 (Bountiful Barrel) +(35342, 1, 46810, 0, 0), -- Bountiful Cookbook +(35342, 2, 46793, 0, 0), -- Tangy Southfury Cranberries +(35342, 3, 44835, 0, 0), -- Autumnal Herbs +(35342, 4, 44853, 0, 0), -- Honey +(35342, 5, 159, 0, 0), -- Refreshing Spring Water +(35342, 6, 2678, 0, 0), -- Mild Spices +(35342, 7, 30817, 0, 0), -- Simple Flour +(35342, 8, 46888, 0, 0), -- Bountiful Basket +-- 34685 (Dalni Tallgrass) +(34685, 1, 46810, 0, 0), -- Bountiful Cookbook +(34685, 2, 46793, 0, 0), -- Tangy Southfury Cranberries +(34685, 3, 44835, 0, 0), -- Autumnal Herbs +(34685, 4, 44853, 0, 0), -- Honey +(34685, 5, 159, 0, 0), -- Refreshing Spring Water +(34685, 6, 2678, 0, 0), -- Mild Spices +(34685, 7, 30817, 0, 0), -- Simple Flour +(34685, 8, 46888, 0, 0), -- Bountiful Basket +-- 34787 (John Rigsdale) +(34787, 1, 46810, 0, 0), -- Bountiful Cookbook +(34787, 2, 44835, 0, 0), -- Autumnal Herbs +(34787, 3, 44853, 0, 0), -- Honey +(34787, 4, 159, 0, 0), -- Refreshing Spring Water +(34787, 5, 2678, 0, 0), -- Mild Spices +(34787, 6, 30817, 0, 0), -- Simple Flour +(34787, 7, 46888, 0, 0), -- Bountiful Basket +-- 35341 (Bountiful Barrel) +(35341, 1, 46810, 0, 0), -- Bountiful Cookbook +(35341, 2, 46796, 0, 0), -- Ripe Tirisfal Pumpkin +(35341, 3, 44835, 0, 0), -- Autumnal Herbs +(35341, 4, 44853, 0, 0), -- Honey +(35341, 5, 159, 0, 0), -- Refreshing Spring Water +(35341, 6, 2678, 0, 0), -- Mild Spices +(35341, 7, 30817, 0, 0), -- Simple Flour +(35341, 8, 46888, 0, 0), -- Bountiful Basket +-- 34683 (Rose Standish) +(34683, 1, 46810, 0, 0), -- Bountiful Cookbook +(34683, 2, 46796, 0, 0), -- Ripe Tirisfal Pumpkin +(34683, 3, 44835, 0, 0), -- Autumnal Herbs +(34683, 4, 44853, 0, 0), -- Honey +(34683, 5, 159, 0, 0), -- Refreshing Spring Water +(34683, 6, 2678, 0, 0), -- Mild Spices +(34683, 7, 30817, 0, 0), -- Simple Flour +(34683, 8, 46888, 0, 0); -- Bountiful Basket diff --git a/sql/old/3.3.5a/2011_11_21_04_pilgrim_misc.sql b/sql/old/3.3.5a/2011_11_21_04_pilgrim_misc.sql new file mode 100644 index 00000000000..194c084ebc5 --- /dev/null +++ b/sql/old/3.3.5a/2011_11_21_04_pilgrim_misc.sql @@ -0,0 +1,109 @@ +DELETE FROM `creature_template_addon` WHERE `entry` IN (32823,34645,34783,34682,35337,35338,35340,34711,34676,34708,34644,34744,34710,34675); +INSERT INTO `creature_template_addon` (`entry`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES +(32823,0,0,1,0, NULL), -- Bountiful Table +(34645,0,0,1,0, NULL), -- Elizabeth Barker Winslow +(34783,0,0,1,0, NULL), -- Ranisa Whitebough +(34682,0,0,1,0, NULL), -- Wilmina Holbeck +(35337,0,0,1,0, NULL), -- Bountiful Barrel +(35338,0,0,1,0, NULL), -- Bountiful Barrel +(35340,0,0,1,0, NULL), -- Bountiful Barrel +(34711,0,0,2,0, NULL), -- Mary Allerton +(34676,0,0,2,0, NULL), -- Isaac Allerton +(34708,0,0,2,0, NULL), -- Caitrin Ironkettle +(34644,0,0,2,0, NULL), -- Edward Winslow +(34744,0,0,1,0, NULL), -- Jasper Moore +(34710,0,0,1,0, NULL), -- Ellen Moore +(34675,0,0,2,0, NULL); -- Gregory Tabor + +UPDATE `creature_template` SET `faction_A`=534,`faction_H`=534,`baseattacktime`=2000,`npcflag`=640,`unit_flags`=33536 WHERE `entry`=34783; -- Ranisa Whitebough +UPDATE `creature_template` SET `faction_A`=534,`faction_H`=534,`baseattacktime`=2000,`npcflag`=640,`unit_flags`=33536 WHERE `entry`=34645; -- Elizabeth Barker Winslow +UPDATE `creature_template` SET `faction_A`=534,`faction_H`=534,`baseattacktime`=2000,`npcflag`=640,`unit_flags`=33536 WHERE `entry`=34681; -- Ikaneba Summerset +UPDATE `creature_template` SET `faction_A`=534,`faction_H`=534,`baseattacktime`=2000,`npcflag`=640,`unit_flags`=33536 WHERE `entry`=34682; -- Wilmina Holbeck +UPDATE `creature_template` SET `faction_A`=534,`faction_H`=534,`baseattacktime`=2000,`npcflag`=640,`speed_run`=1 WHERE `entry`=35337; -- Bountiful Barrel +UPDATE `creature_template` SET `faction_A`=534,`faction_H`=534,`baseattacktime`=2000,`npcflag`=640,`speed_run`=1 WHERE `entry`=35338; -- Bountiful Barrel +UPDATE `creature_template` SET `faction_A`=534,`faction_H`=534,`baseattacktime`=2000,`npcflag`=640,`speed_run`=1 WHERE `entry`=35340; -- Bountiful Barrel +UPDATE `creature_template` SET `faction_A`=534,`faction_H`=534,`baseattacktime`=2000,`npcflag`=83,`unit_flags`=33536 WHERE `entry`=34711; -- Mary Allerton +UPDATE `creature_template` SET `faction_A`=534,`faction_H`=534,`baseattacktime`=2000,`unit_flags`=33536 WHERE `entry`=34676; -- Isaac Allerton +UPDATE `creature_template` SET `faction_A`=534,`faction_H`=534,`baseattacktime`=2000,`npcflag`=83,`unit_flags`=33536 WHERE `entry`=34708; -- Caitrin Ironkettle +UPDATE `creature_template` SET `faction_A`=534,`faction_H`=534,`baseattacktime`=2000,`unit_flags`=33536 WHERE `entry`=34644; -- Edward Winslow +UPDATE `creature_template` SET `faction_A`=534,`faction_H`=534,`baseattacktime`=2000,`npcflag`=3,`unit_flags`=33536 WHERE `entry`=34744; -- Jasper Moore +UPDATE `creature_template` SET `faction_A`=534,`faction_H`=534,`baseattacktime`=2000,`npcflag`=83,`unit_flags`=33536 WHERE `entry`=34710; -- Ellen Moore +UPDATE `creature_template` SET `faction_A`=534,`faction_H`=534,`baseattacktime`=2000,`unit_flags`=33536 WHERE `entry`=34675; -- Gregory Tabor + +UPDATE `creature_model_info` SET `bounding_radius`=0.208,`combat_reach`=1.5,`gender`=1 WHERE `modelid`=29394; -- Elizabeth Barker Winslow +UPDATE `creature_model_info` SET `bounding_radius`=0.306,`combat_reach`=1.5,`gender`=1 WHERE `modelid`=29430; -- Ranisa Whitebough +UPDATE `creature_model_info` SET `bounding_radius`=0.208,`combat_reach`=1.5,`gender`=1 WHERE `modelid`=29393; -- Ikaneba Summerset +UPDATE `creature_model_info` SET `bounding_radius`=0.208,`combat_reach`=1.5,`gender`=1 WHERE `modelid`=29329; -- Wilmina Holbeck +UPDATE `creature_model_info` SET `bounding_radius`=0.208,`combat_reach`=1.5,`gender`=1 WHERE `modelid`=29388; -- Mary Allerton +UPDATE `creature_model_info` SET `bounding_radius`=0.306,`combat_reach`=1.5,`gender`=0 WHERE `modelid`=29391; -- Isaac Allerton +UPDATE `creature_model_info` SET `bounding_radius`=0.347,`combat_reach`=1.5,`gender`=1 WHERE `modelid`=29324; -- Caitrin Ironkettle +UPDATE `creature_model_info` SET `bounding_radius`=0.306,`combat_reach`=1.5,`gender`=0 WHERE `modelid`=29392; -- Edward Winslow +UPDATE `creature_model_info` SET `bounding_radius`=0.306,`combat_reach`=1.5,`gender`=0 WHERE `modelid`=29444; -- Jasper Moore +UPDATE `creature_model_info` SET `bounding_radius`=0.208,`combat_reach`=1.5,`gender`=1 WHERE `modelid`=29400; -- Ellen Moore +UPDATE `creature_model_info` SET `bounding_radius`=0.306,`combat_reach`=1.5,`gender`=0 WHERE `modelid`=29337; -- Gregory Tabor + +UPDATE `item_template` SET `BuyCount`=5 WHERE `entry` IN (44854,46784,44855); +DELETE FROM `npc_vendor` WHERE `entry` IN (34645, 34783, 35337, 35338, 35340, 34681, 34682); +INSERT INTO `npc_vendor` (`entry`, `slot`, `item`, `maxcount`, `ExtendedCost`) VALUES +-- 34645 (Elizabeth Barker Winslow) +(34645, 1, 46809, 0, 0), -- Bountiful Cookbook +(34645, 2, 44854, 0, 0), -- Tangy Wetland Cranberries +(34645, 3, 44835, 0, 0), -- Autumnal Herbs +(34645, 4, 44853, 0, 0), -- Honey +(34645, 5, 159, 0, 0), -- Refreshing Spring Water +(34645, 6, 2678, 0, 0), -- Mild Spices +(34645, 7, 30817, 0, 0), -- Simple Flour +(34645, 8, 46888, 0, 0), -- Bountiful Basket +-- 34783 (Ranisa Whitebough) +(34783, 1, 46809, 0, 0), -- Bountiful Cookbook +(34783, 2, 44835, 0, 0), -- Autumnal Herbs +(34783, 3, 44853, 0, 0), -- Honey +(34783, 4, 159, 0, 0), -- Refreshing Spring Water +(34783, 5, 2678, 0, 0), -- Mild Spices +(34783, 6, 30817, 0, 0), -- Simple Flour +(34783, 7, 46888, 0, 0), -- Bountiful Basket +-- 35337 (Bountiful Barrel) +(35337, 1, 46809, 0, 0), -- Bountiful Cookbook +(35337, 2, 46784, 0, 0), -- Ripe Elwynn Pumpkin +(35337, 3, 44835, 0, 0), -- Autumnal Herbs +(35337, 4, 44853, 0, 0), -- Honey +(35337, 5, 159, 0, 0), -- Refreshing Spring Water +(35337, 6, 2678, 0, 0), -- Mild Spices +(35337, 7, 30817, 0, 0), -- Simple Flour +(35337, 8, 46888, 0, 0), -- Bountiful Basket +-- 35338 (Bountiful Barrel) +(35338, 1, 46809, 0, 0), -- Bountiful Cookbook +(35338, 2, 44855, 0, 0), -- Teldrassil Sweet Potato +(35338, 3, 44835, 0, 0), -- Autumnal Herbs +(35338, 4, 44853, 0, 0), -- Honey +(35338, 5, 159, 0, 0), -- Refreshing Spring Water +(35338, 6, 2678, 0, 0), -- Mild Spices +(35338, 7, 30817, 0, 0), -- Simple Flour +(35338, 8, 46888, 0, 0), -- Bountiful Basket +-- 35340 (Bountiful Barrel) +(35340, 1, 46809, 0, 0), -- Bountiful Cookbook +(35340, 2, 44854, 0, 0), -- Tangy Wetland Cranberries +(35340, 3, 44835, 0, 0), -- Autumnal Herbs +(35340, 4, 44853, 0, 0), -- Honey +(35340, 5, 159, 0, 0), -- Refreshing Spring Water +(35340, 6, 2678, 0, 0), -- Mild Spices +(35340, 7, 30817, 0, 0), -- Simple Flour +(35340, 8, 46888, 0, 0), -- Bountiful Basket +-- 34681 (Ikaneba Summerset) +(34681, 1, 46809, 0, 0), -- Bountiful Cookbook +(34681, 2, 44855, 0, 0), -- Teldrassil Sweet Potato +(34681, 3, 44835, 0, 0), -- Autumnal Herbs +(34681, 4, 44853, 0, 0), -- Honey +(34681, 5, 159, 0, 0), -- Refreshing Spring Water +(34681, 6, 2678, 0, 0), -- Mild Spices +(34681, 7, 30817, 0, 0), -- Simple Flour +(34681, 8, 46888, 0, 0), -- Bountiful Basket +-- 34682 (Wilmina Holbeck) +(34682, 1, 46809, 0, 0), -- Bountiful Cookbook +(34682, 2, 46784, 0, 0), -- Ripe Elwynn Pumpkin +(34682, 3, 44835, 0, 0), -- Autumnal Herbs +(34682, 4, 44853, 0, 0), -- Honey +(34682, 5, 159, 0, 0), -- Refreshing Spring Water +(34682, 6, 2678, 0, 0), -- Mild Spices +(34682, 7, 30817, 0, 0), -- Simple Flour +(34682, 8, 46888, 0, 0); -- Bountiful Basket diff --git a/sql/old/3.3.5a/2011_11_21_05_pilgrim_tables.sql b/sql/old/3.3.5a/2011_11_21_05_pilgrim_tables.sql new file mode 100644 index 00000000000..18881e14eaf --- /dev/null +++ b/sql/old/3.3.5a/2011_11_21_05_pilgrim_tables.sql @@ -0,0 +1,52 @@ +UPDATE `creature_template` SET `unit_flags`=33555200,`VehicleId`=323 WHERE `entry`=32830; -- Food Holder +UPDATE `creature_template` SET `unit_flags`=33555200,`VehicleId`=325 WHERE `entry`=32840; -- Plate Holder +UPDATE `creature_template` SET `unit_flags`=33554432,`speed_run`=1,`VehicleId`=320 WHERE `entry`=32823; -- Bountiful Table +UPDATE `creature_template` SET `unit_flags`=33554432,`speed_run`=1 WHERE `entry`=32839; -- Sturdy Plate +UPDATE `creature_template` SET `unit_flags`=33554432 WHERE `entry`=32824; -- [PH] Pilgrim's Bounty Table - Turkey +UPDATE `creature_template` SET `unit_flags`=33554432 WHERE `entry`=32827; -- [PH] Pilgrim's Bounty Table - Cranberry Sauce +UPDATE `creature_template` SET `unit_flags`=33554432 WHERE `entry`=32831; -- [PH] Pilgrim's Bounty Table - Stuffing +UPDATE `creature_template` SET `unit_flags`=33554432 WHERE `entry`=32825; -- [PH] Pilgrim's Bounty Table - Yams +UPDATE `creature_template` SET `unit_flags`=33554432 WHERE `entry`=32829; -- [PH] Pilgrim's Bounty Table - Pie + +UPDATE `creature_model_info` SET `bounding_radius`=1.8,`combat_reach`=0,`gender`=2 WHERE `modelid`=28293; -- Bountiful Table +UPDATE `creature_model_info` SET `bounding_radius`=1.75,`combat_reach`=0,`gender`=2 WHERE `modelid`=28310; -- Sturdy Plate +UPDATE `creature_model_info` SET `bounding_radius`=0.125,`combat_reach`=0.25,`gender`=2 WHERE `modelid`=17188; -- [PH] Pilgrim's Bounty Table - X + +DELETE FROM `creature_template_addon` WHERE `entry` IN (32830,32840,32839,32824,32827,32831,32829,32825); +INSERT INTO `creature_template_addon` (`entry`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES +(32830,0,0,1,0, NULL), -- Food Holder +(32840,0,0,1,0, NULL), -- Plate Holder +(32839,0,0,1,0, NULL), -- Sturdy Plate +(32824,0,0,1,0, NULL), -- [PH] Pilgrim's Bounty Table - Turkey +(32827,0,0,1,0, NULL), -- [PH] Pilgrim's Bounty Table - Cranberry Sauce +(32831,0,0,1,0, NULL), -- [PH] Pilgrim's Bounty Table - Stuffing +(32825,0,0,1,0, NULL), -- [PH] Pilgrim's Bounty Table - Yams +(32829,0,0,1,0, NULL); -- [PH] Pilgrim's Bounty Table - Pie + +DELETE FROM `npc_spellclick_spells` WHERE `npc_entry` IN (32823,32830,32840); +INSERT INTO `npc_spellclick_spells` (`npc_entry`, `spell_id`, `quest_start`, `quest_start_active`, `quest_end`, `cast_flags`, `aura_required`, `aura_forbidden`, `user_type`) VALUES +(32823, 46598, 0, 0, 0, 1, 0, 0, 0), -- Bountiful Table (Ride Vehicle Hardcoded) +(32830, 46598, 0, 0, 0, 1, 0, 0, 0), -- Food Holder (Ride Vehicle Hardcoded) +(32840, 46598, 0, 0, 0, 1, 0, 0, 0); -- Plate Holder (Ride Vehicle Hardcoded) + +DELETE FROM `vehicle_template_accessory` WHERE `entry` IN (32823,32830,32840); +INSERT INTO `vehicle_template_accessory` (`entry`, `accessory_entry`, `seat_id`, `minion`, `description`, `summontype`, `summontimer`) VALUES +(32823, 34812, 0, 1, 'Bountiful Table - The Turkey Chair', 8, 0), +(32823, 34823, 1, 1, 'Bountiful Table - The Cranberry Chair', 8, 0), +(32823, 34819, 2, 1, 'Bountiful Table - The Stuffing Chair', 8, 0), +(32823, 34824, 3, 1, 'Bountiful Table - The Sweet Potato Chair', 8, 0), +(32823, 34822, 4, 1, 'Bountiful Table - The Pie Chair', 8, 0), +(32823, 32830, 5, 1, 'Bountiful Table - Food Holder', 8, 0), +(32823, 32840, 6, 1, 'Bountiful Table - Plate Holder', 8, 0), +-- +(32830, 32824, 0, 1, 'Food Holder - [PH] Pilgrim''s Bounty Table - Turkey', 8, 0), +(32830, 32827, 1, 1, 'Food Holder - [PH] Pilgrim''s Bounty Table - Cranberry Sauce', 8, 0), +(32830, 32831, 2, 1, 'Food Holder - [PH] Pilgrim''s Bounty Table - Stuffing', 8, 0), +(32830, 32825, 3, 1, 'Food Holder - [PH] Pilgrim''s Bounty Table - Yams', 8, 0), +(32830, 32829, 4, 1, 'Food Holder - [PH] Pilgrim''s Bounty Table - Pie', 8, 0), +-- +(32840, 32839, 0, 1, 'Plate Holder - Sturdy Plate', 8, 0), +(32840, 32839, 1, 1, 'Plate Holder - Sturdy Plate', 8, 0), +(32840, 32839, 2, 1, 'Plate Holder - Sturdy Plate', 8, 0), +(32840, 32839, 3, 1, 'Plate Holder - Sturdy Plate', 8, 0), +(32840, 32839, 4, 1, 'Plate Holder - Sturdy Plate', 8, 0); diff --git a/sql/updates/world/2011_11_24_00_world_version.sql b/sql/updates/world/2011_11_24_00_world_version.sql new file mode 100644 index 00000000000..ad2396f29e1 --- /dev/null +++ b/sql/updates/world/2011_11_24_00_world_version.sql @@ -0,0 +1 @@ +UPDATE `version` SET `db_version`='TDB 335.11.44' LIMIT 1; diff --git a/sql/updates/world/2011_11_25_00_world_quest_template.sql b/sql/updates/world/2011_11_25_00_world_quest_template.sql new file mode 100644 index 00000000000..eee92a3761b --- /dev/null +++ b/sql/updates/world/2011_11_25_00_world_quest_template.sql @@ -0,0 +1,38 @@ +ALTER TABLE `quest_template` ADD COLUMN `RequiredClasses` smallint(5) unsigned NOT NULL default '0' AFTER `Type`; + +UPDATE `quest_template` + SET `RequiredClasses` = `RequiredClasses`| + CASE `SkillOrClassMask` + WHEN -1 THEN 1 -- warrior + WHEN -2 THEN 2 -- paladin + WHEN -3 THEN 4 -- hunter + WHEN -4 THEN 8 -- rogue + WHEN -5 THEN 16 -- priest + WHEN -6 THEN 32 -- dk + WHEN -7 THEN 64 -- shaman + WHEN -8 THEN 128 -- mage + WHEN -9 THEN 256 -- warlock + WHEN -11 THEN 1024 -- druid + ELSE 0 + END + WHERE `SkillOrClassMask` < 0; + +UPDATE `quest_template` + SET `RequiredClasses` = `RequiredClasses`| + CASE `ZoneOrSort` + WHEN -81 THEN 1 -- warrior + WHEN -141 THEN 2 -- paladin + WHEN -261 THEN 4 -- hunter + WHEN -162 THEN 8 -- rogue + WHEN -262 THEN 16 -- priest + WHEN -372 THEN 32 -- dk + WHEN -82 THEN 64 -- shaman + WHEN -161 THEN 128 -- mage + WHEN -61 THEN 256 -- warlock + WHEN -263 THEN 1024 -- druid + ELSE 0 + END + WHERE `ZoneOrSort` < 0; + +UPDATE `quest_template` SET `SkillOrClassMask`=0 WHERE `SkillOrClassMask`<0; +ALTER TABLE `quest_template` CHANGE COLUMN `SkillOrClassMask` `RequiredSkill` smallint(5) unsigned NOT NULL default '0' AFTER `RequiredRaces`; diff --git a/sql/updates/world/2011_11_25_01_world_quest_template.sql b/sql/updates/world/2011_11_25_01_world_quest_template.sql new file mode 100644 index 00000000000..f7e4555f093 --- /dev/null +++ b/sql/updates/world/2011_11_25_01_world_quest_template.sql @@ -0,0 +1 @@ +UPDATE `quest_template` SET `RequiredClasses`=0 WHERE `entry`=8249; -- Junkboxes Needed diff --git a/sql/updates/world/2011_11_25_02_world_creature.sql b/sql/updates/world/2011_11_25_02_world_creature.sql new file mode 100644 index 00000000000..0b26187f196 --- /dev/null +++ b/sql/updates/world/2011_11_25_02_world_creature.sql @@ -0,0 +1,4 @@ +-- re-guid +DELETE FROM `creature` WHERE `guid`=1022681 OR (`guid`=48191 AND `id`=18069); +INSERT INTO `creature` (`guid`, `id`, `map`, `spawnMask`, `phaseMask`, `modelid`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `spawndist`, `currentwaypoint`, `curhealth`, `curmana`, `MovementType`, `npcflag`, `unit_flags`, `dynamicflags`) VALUES +(48191, 18069, 530, 1, 1, 0, 0, -714.823, 7931.65, 58.8672, 4.3693, 300, 0, 0, 60720, 29330, 0, 0, 0, 0); diff --git a/sql/updates/world/2011_11_26_00_world_quest_template.sql b/sql/updates/world/2011_11_26_00_world_quest_template.sql new file mode 100644 index 00000000000..6a7834e0a76 --- /dev/null +++ b/sql/updates/world/2011_11_26_00_world_quest_template.sql @@ -0,0 +1,177 @@ +-- Naming +ALTER TABLE `quest_template` + CHANGE `entry` `Id` mediumint(8) UNSIGNED NOT NULL default '0', + CHANGE `QuestLevel` `Level` smallint(3) NOT NULL DEFAULT '1', + CHANGE `RequiredSkill` `RequiredSkillId` smallint(5) UNSIGNED NOT NULL DEFAULT '0', + CHANGE `RequiredSkillValue` `RequiredSkillPoints` smallint(5) UNSIGNED NOT NULL DEFAULT '0', + CHANGE `RepObjectiveFaction` `RequiredFactionId1` smallint(5) UNSIGNED NOT NULL DEFAULT '0', + CHANGE `RepObjectiveFaction2` `RequiredFactionId2` smallint(5) UNSIGNED NOT NULL DEFAULT '0', + CHANGE `RepObjectiveValue` `RequiredFactionValue1` mediumint(9) default '0' NOT NULL, + CHANGE `RepObjectiveValue2` `RequiredFactionValue2` mediumint(9) default '0' NOT NULL, + CHANGE `QuestFlags` `Flags` int(10) UNSIGNED default '0' NOT NULL, + CHANGE `SpecialFlags` `SpecialFlags` tinyint(3) UNSIGNED default '0' NOT NULL, + CHANGE `CharTitleId` `RewardTitleId` tinyint(3) UNSIGNED default '0' NOT NULL, + CHANGE `PlayersSlain` `RequiredPlayerKills` tinyint(3) UNSIGNED default '0' NOT NULL, + CHANGE `BonusTalents` `RewardTalents` tinyint(3) UNSIGNED default '0' NOT NULL, + CHANGE `RewardArenaPoints` `RewardArenaPoints` smallint(5) UNSIGNED default '0' NOT NULL, + CHANGE `NextQuestInChain` `NextQuestIdChain` mediumint(8) UNSIGNED default '0' NOT NULL, + CHANGE `RewXPId` `RewardXPId` tinyint(2) UNSIGNED default '0' NOT NULL, + CHANGE `SrcItemId` `SourceItemId` mediumint(8) UNSIGNED default '0' NOT NULL, + CHANGE `SrcItemCount` `SourceItemCount` tinyint(3) UNSIGNED default '0' NOT NULL, + CHANGE `SrcSpell` `SourceSpellId` mediumint(8) UNSIGNED default '0' NOT NULL, + CHANGE `ReqItemId1` `RequiredItemId1` mediumint(8) UNSIGNED default '0' NOT NULL, + CHANGE `ReqItemId2` `RequiredItemId2` mediumint(8) UNSIGNED default '0' NOT NULL, + CHANGE `ReqItemId3` `RequiredItemId3` mediumint(8) UNSIGNED default '0' NOT NULL, + CHANGE `ReqItemId4` `RequiredItemId4` mediumint(8) UNSIGNED default '0' NOT NULL, + CHANGE `ReqItemId5` `RequiredItemId5` mediumint(8) UNSIGNED default '0' NOT NULL, + CHANGE `ReqItemId6` `RequiredItemId6` mediumint(8) UNSIGNED default '0' NOT NULL, + CHANGE `ReqItemCount1` `RequiredItemCount1` smallint(5) UNSIGNED default '0' NOT NULL, + CHANGE `ReqItemCount2` `RequiredItemCount2` smallint(5) UNSIGNED default '0' NOT NULL, + CHANGE `ReqItemCount3` `RequiredItemCount3` smallint(5) UNSIGNED default '0' NOT NULL, + CHANGE `ReqItemCount4` `RequiredItemCount4` smallint(5) UNSIGNED default '0' NOT NULL, + CHANGE `ReqItemCount5` `RequiredItemCount5` smallint(5) UNSIGNED default '0' NOT NULL, + CHANGE `ReqItemCount6` `RequiredItemCount6` smallint(5) UNSIGNED default '0' NOT NULL, + CHANGE `ReqSourceId1` `RequiredSourceItemId1` mediumint(8) UNSIGNED default '0' NOT NULL, + CHANGE `ReqSourceId2` `RequiredSourceItemId2` mediumint(8) UNSIGNED default '0' NOT NULL, + CHANGE `ReqSourceId3` `RequiredSourceItemId3` mediumint(8) UNSIGNED default '0' NOT NULL, + CHANGE `ReqSourceId4` `RequiredSourceItemId4` mediumint(8) UNSIGNED default '0' NOT NULL, + CHANGE `ReqSourceCount1` `RequiredSourceItemCount1` smallint(5) UNSIGNED default '0' NOT NULL, + CHANGE `ReqSourceCount2` `RequiredSourceItemCount2` smallint(5) UNSIGNED default '0' NOT NULL, + CHANGE `ReqSourceCount3` `RequiredSourceItemCount3` smallint(5) UNSIGNED default '0' NOT NULL, + CHANGE `ReqSourceCount4` `RequiredSourceItemCount4` smallint(5) UNSIGNED default '0' NOT NULL, + CHANGE `ReqCreatureOrGOId1` `RequiredNpcOrGo1` mediumint(9) default '0' NOT NULL, + CHANGE `ReqCreatureOrGOId2` `RequiredNpcOrGo2` mediumint(9) default '0' NOT NULL, + CHANGE `ReqCreatureOrGOId3` `RequiredNpcOrGo3` mediumint(9) default '0' NOT NULL, + CHANGE `ReqCreatureOrGOId4` `RequiredNpcOrGo4` mediumint(9) default '0' NOT NULL, + CHANGE `ReqCreatureOrGOCount1` `RequiredNpcOrGoCount1` smallint(5) UNSIGNED default '0' NOT NULL, + CHANGE `ReqCreatureOrGOCount2` `RequiredNpcOrGoCount2` smallint(5) UNSIGNED default '0' NOT NULL, + CHANGE `ReqCreatureOrGOCount3` `RequiredNpcOrGoCount3` smallint(5) UNSIGNED default '0' NOT NULL, + CHANGE `ReqCreatureOrGOCount4` `RequiredNpcOrGoCount4` smallint(5) UNSIGNED default '0' NOT NULL, + CHANGE `ReqSpellCast1` `RequiredSpellCast1` mediumint(8) UNSIGNED default '0' NOT NULL, + CHANGE `ReqSpellCast2` `RequiredSpellCast2` mediumint(8) UNSIGNED default '0' NOT NULL, + CHANGE `ReqSpellCast3` `RequiredSpellCast3` mediumint(8) UNSIGNED default '0' NOT NULL, + CHANGE `ReqSpellCast4` `RequiredSpellCast4` mediumint(8) UNSIGNED default '0' NOT NULL, + CHANGE `RewChoiceItemId1` `RewardChoiceItemId1` mediumint(8) UNSIGNED default '0' NOT NULL, + CHANGE `RewChoiceItemId2` `RewardChoiceItemId2` mediumint(8) UNSIGNED default '0' NOT NULL, + CHANGE `RewChoiceItemId3` `RewardChoiceItemId3` mediumint(8) UNSIGNED default '0' NOT NULL, + CHANGE `RewChoiceItemId4` `RewardChoiceItemId4` mediumint(8) UNSIGNED default '0' NOT NULL, + CHANGE `RewChoiceItemId5` `RewardChoiceItemId5` mediumint(8) UNSIGNED default '0' NOT NULL, + CHANGE `RewChoiceItemId6` `RewardChoiceItemId6` mediumint(8) UNSIGNED default '0' NOT NULL, + CHANGE `RewChoiceItemCount1` `RewardChoiceItemCount1` smallint(5) UNSIGNED default '0' NOT NULL, + CHANGE `RewChoiceItemCount2` `RewardChoiceItemCount2` smallint(5) UNSIGNED default '0' NOT NULL, + CHANGE `RewChoiceItemCount3` `RewardChoiceItemCount3` smallint(5) UNSIGNED default '0' NOT NULL, + CHANGE `RewChoiceItemCount4` `RewardChoiceItemCount4` smallint(5) UNSIGNED default '0' NOT NULL, + CHANGE `RewChoiceItemCount5` `RewardChoiceItemCount5` smallint(5) UNSIGNED default '0' NOT NULL, + CHANGE `RewChoiceItemCount6` `RewardChoiceItemCount6` smallint(5) UNSIGNED default '0' NOT NULL, + CHANGE `RewItemId1` `RewardItemId1` mediumint(8) UNSIGNED default '0' NOT NULL, + CHANGE `RewItemId2` `RewardItemId2` mediumint(8) UNSIGNED default '0' NOT NULL, + CHANGE `RewItemId3` `RewardItemId3` mediumint(8) UNSIGNED default '0' NOT NULL, + CHANGE `RewItemId4` `RewardItemId4` mediumint(8) UNSIGNED default '0' NOT NULL, + CHANGE `RewItemCount1` `RewardItemCount1` smallint(5) UNSIGNED default '0' NOT NULL, + CHANGE `RewItemCount2` `RewardItemCount2` smallint(5) UNSIGNED default '0' NOT NULL, + CHANGE `RewItemCount3` `RewardItemCount3` smallint(5) UNSIGNED default '0' NOT NULL, + CHANGE `RewItemCount4` `RewardItemCount4` smallint(5) UNSIGNED default '0' NOT NULL, + CHANGE `RewRepFaction1` `RewardFactionId1` smallint(5) UNSIGNED default '0' NOT NULL comment 'faction id from Faction.dbc in this case', + CHANGE `RewRepFaction2` `RewardFactionId2` smallint(5) UNSIGNED default '0' NOT NULL comment 'faction id from Faction.dbc in this case', + CHANGE `RewRepFaction3` `RewardFactionId3` smallint(5) UNSIGNED default '0' NOT NULL comment 'faction id from Faction.dbc in this case', + CHANGE `RewRepFaction4` `RewardFactionId4` smallint(5) UNSIGNED default '0' NOT NULL comment 'faction id from Faction.dbc in this case', + CHANGE `RewRepFaction5` `RewardFactionId5` smallint(5) UNSIGNED default '0' NOT NULL comment 'faction id from Faction.dbc in this case', + CHANGE `RewRepValueId1` `RewardFactionValueId1` mediumint(6) default '0' NOT NULL, + CHANGE `RewRepValueId2` `RewardFactionValueId2` mediumint(6) default '0' NOT NULL, + CHANGE `RewRepValueId3` `RewardFactionValueId3` mediumint(6) default '0' NOT NULL, + CHANGE `RewRepValueId4` `RewardFactionValueId4` mediumint(6) default '0' NOT NULL, + CHANGE `RewRepValueId5` `RewardFactionValueId5` mediumint(6) default '0' NOT NULL, + CHANGE `RewRepValue1` `RewardFactionValueIdOverride1` mediumint(9) default '0' NOT NULL, + CHANGE `RewRepValue2` `RewardFactionValueIdOverride2` mediumint(9) default '0' NOT NULL, + CHANGE `RewRepValue3` `RewardFactionValueIdOverride3` mediumint(9) default '0' NOT NULL, + CHANGE `RewRepValue4` `RewardFactionValueIdOverride4` mediumint(9) default '0' NOT NULL, + CHANGE `RewRepValue5` `RewardFactionValueIdOverride5` mediumint(9) default '0' NOT NULL, + CHANGE `RewHonorAddition` `RewardHonor` int(10) default '0' NOT NULL, + CHANGE `RewHonorMultiplier` `RewardHonorMultiplier` float default '1' NOT NULL, + CHANGE `RewOrReqMoney` `RewardOrRequiredMoney` int(11) default '0' NOT NULL, + CHANGE `RewMoneyMaxLevel` `RewardMoneyMaxLevel` int(10) UNSIGNED default '0' NOT NULL, + CHANGE `RewSpell` `RewardSpell` mediumint(8) UNSIGNED default '0' NOT NULL, + CHANGE `RewSpellCast` `RewardSpellCast` int(11) default '0' NOT NULL, + CHANGE `RewMailTemplateId` `RewardMailTemplateId` mediumint(8) UNSIGNED default '0' NOT NULL, + CHANGE `RewMailDelaySecs` `RewardMailDelay` int(11) UNSIGNED default '0' NOT NULL, + CHANGE `PointOpt` `PointOption` mediumint(8) UNSIGNED default '0' NOT NULL, + CHANGE `DetailsEmote1` `DetailsEmote1` smallint(5) UNSIGNED default '0' NOT NULL, + CHANGE `IncompleteEmote` `EmoteOnIncomplete` smallint(5) UNSIGNED default '0' NOT NULL, + CHANGE `CompleteEmote` `EmoteOnComplete` smallint(5) UNSIGNED default '0' NOT NULL, + CHANGE `unk0` `Unknown0` TINYINT(2) UNSIGNED NOT NULL DEFAULT '0'; + +-- Order +ALTER TABLE `quest_template` CHANGE COLUMN `Level` `Level` SMALLINT(3) NOT NULL DEFAULT '1' AFTER `Method`, + CHANGE COLUMN `ZoneOrSort` `ZoneOrSort` SMALLINT(6) NOT NULL DEFAULT '0' AFTER `MaxLevel`, + CHANGE COLUMN `SuggestedPlayers` `SuggestedPlayers` TINYINT(3) UNSIGNED NOT NULL DEFAULT '0' AFTER `Type`, + CHANGE COLUMN `LimitTime` `LimitTime` INT(10) UNSIGNED NOT NULL DEFAULT '0' AFTER `SuggestedPlayers`, + CHANGE COLUMN `RequiredFactionId2` `RequiredFactionId2` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `RequiredFactionId1`, + CHANGE COLUMN `RequiredMaxRepFaction` `RequiredMaxRepFaction` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `RequiredMinRepFaction`, + CHANGE COLUMN `RewardOrRequiredMoney` `RewardOrRequiredMoney` INT(11) NOT NULL DEFAULT '0' AFTER `RewardXPId`, + CHANGE COLUMN `RewardMoneyMaxLevel` `RewardMoneyMaxLevel` INT(10) UNSIGNED NOT NULL DEFAULT '0' AFTER `RewardOrRequiredMoney`, + CHANGE COLUMN `RewardSpell` `RewardSpell` MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0' AFTER `RewardMoneyMaxLevel`, + CHANGE COLUMN `RewardSpellCast` `RewardSpellCast` INT(11) NOT NULL DEFAULT '0' AFTER `RewardSpell`, + CHANGE COLUMN `RewardHonor` `RewardHonor` INT(10) NOT NULL DEFAULT '0' AFTER `RewardSpellCast`, + CHANGE COLUMN `RewardHonorMultiplier` `RewardHonorMultiplier` FLOAT NOT NULL DEFAULT '1' AFTER `RewardHonor`, + CHANGE COLUMN `RewardMailTemplateId` `RewardMailTemplateId` MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0' AFTER `RewardHonorMultiplier`, + CHANGE COLUMN `RewardMailDelay` `RewardMailDelay` INT(11) UNSIGNED NOT NULL DEFAULT '0' AFTER `RewardMailTemplateId`, + CHANGE COLUMN `Flags` `Flags` INT(10) UNSIGNED NOT NULL DEFAULT '0' AFTER `SourceSpellId`, + CHANGE COLUMN `SpecialFlags` `SpecialFlags` TINYINT(3) UNSIGNED NOT NULL DEFAULT '0' AFTER `Flags`, + CHANGE COLUMN `RewardTitleId` `RewardTitleId` TINYINT(3) UNSIGNED NOT NULL DEFAULT '0' AFTER `SpecialFlags`, + CHANGE COLUMN `RequiredPlayerKills` `RequiredPlayerKills` TINYINT(3) UNSIGNED NOT NULL DEFAULT '0' AFTER `RewardTitleId`, + CHANGE COLUMN `RewardTalents` `RewardTalents` TINYINT(3) UNSIGNED NOT NULL DEFAULT '0' AFTER `RequiredPlayerKills`, + CHANGE COLUMN `RewardArenaPoints` `RewardArenaPoints` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `RewardTalents`, + CHANGE COLUMN `RewardItemId1` `RewardItemId1` MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0' AFTER `RewardArenaPoints`, + CHANGE COLUMN `RewardItemId2` `RewardItemId2` MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0' AFTER `RewardItemId1`, + CHANGE COLUMN `RewardItemId3` `RewardItemId3` MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0' AFTER `RewardItemId2`, + CHANGE COLUMN `RewardItemId4` `RewardItemId4` MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0' AFTER `RewardItemId3`, + CHANGE COLUMN `RewardItemCount1` `RewardItemCount1` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `RewardItemId4`, + CHANGE COLUMN `RewardItemCount2` `RewardItemCount2` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `RewardItemCount1`, + CHANGE COLUMN `RewardItemCount3` `RewardItemCount3` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `RewardItemCount2`, + CHANGE COLUMN `RewardItemCount4` `RewardItemCount4` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `RewardItemCount3`, + CHANGE COLUMN `Title` `Title` TEXT NULL DEFAULT NULL AFTER `PointOption`, + CHANGE COLUMN `Objectives` `Objectives` TEXT NULL DEFAULT NULL AFTER `Title`, + CHANGE COLUMN `Details` `Details` TEXT NULL DEFAULT NULL AFTER `Objectives`, + CHANGE COLUMN `EndText` `EndText` TEXT NULL DEFAULT NULL AFTER `Details`, + CHANGE COLUMN `OfferRewardText` `OfferRewardText` TEXT NULL DEFAULT NULL AFTER `EndText`, + CHANGE COLUMN `RequestItemsText` `RequestItemsText` TEXT NULL DEFAULT NULL AFTER `OfferRewardText`, + CHANGE COLUMN `CompletedText` `CompletedText` TEXT NULL DEFAULT NULL AFTER `RequestItemsText`, + CHANGE COLUMN `RequiredNpcOrGo1` `RequiredNpcOrGo1` MEDIUMINT(9) NOT NULL DEFAULT '0' AFTER `CompletedText`, + CHANGE COLUMN `RequiredNpcOrGo2` `RequiredNpcOrGo2` MEDIUMINT(9) NOT NULL DEFAULT '0' AFTER `RequiredNpcOrGo1`, + CHANGE COLUMN `RequiredNpcOrGo3` `RequiredNpcOrGo3` MEDIUMINT(9) NOT NULL DEFAULT '0' AFTER `RequiredNpcOrGo2`, + CHANGE COLUMN `RequiredNpcOrGo4` `RequiredNpcOrGo4` MEDIUMINT(9) NOT NULL DEFAULT '0' AFTER `RequiredNpcOrGo3`, + CHANGE COLUMN `RequiredNpcOrGoCount1` `RequiredNpcOrGoCount1` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `RequiredNpcOrGo4`, + CHANGE COLUMN `RequiredNpcOrGoCount2` `RequiredNpcOrGoCount2` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `RequiredNpcOrGoCount1`, + CHANGE COLUMN `RequiredNpcOrGoCount3` `RequiredNpcOrGoCount3` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `RequiredNpcOrGoCount2`, + CHANGE COLUMN `RequiredNpcOrGoCount4` `RequiredNpcOrGoCount4` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `RequiredNpcOrGoCount3`, + CHANGE COLUMN `RequiredSourceItemId1` `RequiredSourceItemId1` MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0' AFTER `RequiredNpcOrGoCount4`, + CHANGE COLUMN `RequiredSourceItemId2` `RequiredSourceItemId2` MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0' AFTER `RequiredSourceItemId1`, + CHANGE COLUMN `RequiredSourceItemId3` `RequiredSourceItemId3` MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0' AFTER `RequiredSourceItemId2`, + CHANGE COLUMN `RequiredSourceItemId4` `RequiredSourceItemId4` MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0' AFTER `RequiredSourceItemId3`, + CHANGE COLUMN `RequiredSourceItemCount1` `RequiredSourceItemCount1` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `RequiredSourceItemId4`, + CHANGE COLUMN `RequiredSourceItemCount2` `RequiredSourceItemCount2` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `RequiredSourceItemCount1`, + CHANGE COLUMN `RequiredSourceItemCount3` `RequiredSourceItemCount3` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `RequiredSourceItemCount2`, + CHANGE COLUMN `RequiredSourceItemCount4` `RequiredSourceItemCount4` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `RequiredSourceItemCount3`, + CHANGE COLUMN `RequiredItemId1` `RequiredItemId1` MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0' AFTER `RequiredSourceItemCount4`, + CHANGE COLUMN `RequiredItemId2` `RequiredItemId2` MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0' AFTER `RequiredItemId1`, + CHANGE COLUMN `RequiredItemId3` `RequiredItemId3` MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0' AFTER `RequiredItemId2`, + CHANGE COLUMN `RequiredItemId4` `RequiredItemId4` MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0' AFTER `RequiredItemId3`, + CHANGE COLUMN `RequiredItemId5` `RequiredItemId5` MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0' AFTER `RequiredItemId4`, + CHANGE COLUMN `RequiredItemId6` `RequiredItemId6` MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0' AFTER `RequiredItemId5`, + CHANGE COLUMN `RequiredItemCount1` `RequiredItemCount1` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `RequiredItemId6`, + CHANGE COLUMN `RequiredItemCount2` `RequiredItemCount2` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `RequiredItemCount1`, + CHANGE COLUMN `RequiredItemCount3` `RequiredItemCount3` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `RequiredItemCount2`, + CHANGE COLUMN `RequiredItemCount4` `RequiredItemCount4` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `RequiredItemCount3`, + CHANGE COLUMN `RequiredItemCount5` `RequiredItemCount5` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `RequiredItemCount4`, + CHANGE COLUMN `RequiredItemCount6` `RequiredItemCount6` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `RequiredItemCount5`, + CHANGE COLUMN `RequiredSpellCast1` `RequiredSpellCast1` MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0' AFTER `RequiredItemCount6`, + CHANGE COLUMN `RequiredSpellCast2` `RequiredSpellCast2` MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0' AFTER `RequiredSpellCast1`, + CHANGE COLUMN `RequiredSpellCast3` `RequiredSpellCast3` MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0' AFTER `RequiredSpellCast2`, + CHANGE COLUMN `RequiredSpellCast4` `RequiredSpellCast4` MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0' AFTER `RequiredSpellCast3`, + CHANGE COLUMN `Unknown0` `Unknown0` TINYINT(2) UNSIGNED NOT NULL DEFAULT '0' AFTER `RequiredSpellCast4`, + CHANGE COLUMN `ObjectiveText1` `ObjectiveText1` TEXT NULL DEFAULT NULL AFTER `Unknown0`, + CHANGE COLUMN `ObjectiveText2` `ObjectiveText2` TEXT NULL DEFAULT NULL AFTER `ObjectiveText1`, + CHANGE COLUMN `ObjectiveText3` `ObjectiveText3` TEXT NULL DEFAULT NULL AFTER `ObjectiveText2`, + CHANGE COLUMN `ObjectiveText4` `ObjectiveText4` TEXT NULL DEFAULT NULL AFTER `ObjectiveText3`; + +-- Note: These two ALTER could have been merged into one diff --git a/sql/updates/world/2011_11_26_01_world_quest_template.sql b/sql/updates/world/2011_11_26_01_world_quest_template.sql new file mode 100644 index 00000000000..44548ec9981 --- /dev/null +++ b/sql/updates/world/2011_11_26_01_world_quest_template.sql @@ -0,0 +1 @@ +UPDATE `quest_template` SET `RequiredRaces`=0 WHERE `entry`=14171; diff --git a/sql/updates/world/2011_11_26_02_world_spell_group.sql b/sql/updates/world/2011_11_26_02_world_spell_group.sql new file mode 100644 index 00000000000..71ad2eaf9fb --- /dev/null +++ b/sql/updates/world/2011_11_26_02_world_spell_group.sql @@ -0,0 +1,7 @@ +-- Blessing of Sanctuary + Grace +DELETE FROM `spell_group` WHERE `id`>=1091 AND `id`<=1093 LIMIT 4; +DELETE FROM `spell_group_stack_rules` WHERE `group_id`=1093 LIMIT 1; + +-- Ebon Plague + Curse of Elements + Earth and Moon +DELETE FROM `spell_group` WHERE `id`>=1040 AND `id`<=1043 LIMIT 6; +DELETE FROM `spell_group_stack_rules` WHERE `group_id`=1043 LIMIT 1; diff --git a/sql/updates/world/2011_11_26_03_world_spell_proc_event.sql b/sql/updates/world/2011_11_26_03_world_spell_proc_event.sql new file mode 100644 index 00000000000..36837be8ab6 --- /dev/null +++ b/sql/updates/world/2011_11_26_03_world_spell_proc_event.sql @@ -0,0 +1,2 @@ +-- Misery +UPDATE `spell_proc_event` SET `SpellFamilyMask2` = `SpellFamilyMask2` | 64 WHERE `entry` = 33193; diff --git a/src/server/authserver/Server/AuthSocket.cpp b/src/server/authserver/Server/AuthSocket.cpp index 7b2ad044eb9..c24012efcef 100755 --- a/src/server/authserver/Server/AuthSocket.cpp +++ b/src/server/authserver/Server/AuthSocket.cpp @@ -616,8 +616,8 @@ bool AuthSocket::_HandleLogonProof() memcpy(proof.M2, sha.GetDigest(), 20); proof.cmd = AUTH_LOGON_PROOF; proof.error = 0; - proof.unk1 = 0x00800000; - proof.unk2 = 0x00; + proof.unk1 = 0x00800000; // Accountflags. 0x01 = GM, 0x08 = Trial, 0x00800000 = Pro pass (arena tournament) + proof.unk2 = 0x00; // SurveyId proof.unk3 = 0x00; socket().send((char *)&proof, sizeof(proof)); } diff --git a/src/server/collision/Management/VMapManager2.cpp b/src/server/collision/Management/VMapManager2.cpp index 9f32c749c5c..0632542f82e 100644 --- a/src/server/collision/Management/VMapManager2.cpp +++ b/src/server/collision/Management/VMapManager2.cpp @@ -247,6 +247,9 @@ namespace VMAP WorldModel* VMapManager2::acquireModelInstance(const std::string& basepath, const std::string& filename) { + //! Critical section, thread safe access to iLoadedModelFiles + TRINITY_GUARD(ACE_Thread_Mutex, LoadedModelFilesLock); + ModelFileMap::iterator model = iLoadedModelFiles.find(filename); if (model == iLoadedModelFiles.end()) { @@ -267,6 +270,9 @@ namespace VMAP void VMapManager2::releaseModelInstance(const std::string &filename) { + //! Critical section, thread safe access to iLoadedModelFiles + TRINITY_GUARD(ACE_Thread_Mutex, LoadedModelFilesLock); + ModelFileMap::iterator model = iLoadedModelFiles.find(filename); if (model == iLoadedModelFiles.end()) { diff --git a/src/server/collision/Management/VMapManager2.h b/src/server/collision/Management/VMapManager2.h index ac293e2071b..83fec0f0d11 100755 --- a/src/server/collision/Management/VMapManager2.h +++ b/src/server/collision/Management/VMapManager2.h @@ -22,6 +22,7 @@ #include "IVMapManager.h" #include "Dynamic/UnorderedMap.h" #include "Define.h" +#include <ace/Thread_Mutex.h> //=========================================================== @@ -71,6 +72,8 @@ namespace VMAP // Tree to check collision ModelFileMap iLoadedModelFiles; InstanceTreeMap iInstanceMapTrees; + // Mutex for iLoadedModelFiles + ACE_Thread_Mutex LoadedModelFilesLock; bool _loadMap(uint32 mapId, const std::string& basePath, uint32 tileX, uint32 tileY); /* void _unloadMap(uint32 pMapId, uint32 x, uint32 y); */ diff --git a/src/server/collision/Maps/TileAssembler.cpp b/src/server/collision/Maps/TileAssembler.cpp index 594e1a9382b..533a7ca825c 100644 --- a/src/server/collision/Maps/TileAssembler.cpp +++ b/src/server/collision/Maps/TileAssembler.cpp @@ -500,10 +500,10 @@ namespace VMAP { model.setGroupModels(groupsArray); - std::string filename(iSrcDir); - filename.push_back('/'); - filename.append(pModelFilename).append(".vmo"); - success = model.writeFile(filename); + std::string worldModelFileName(iSrcDir); + worldModelFileName.push_back('/'); + worldModelFileName.append(pModelFilename).append(".vmo"); + success = model.writeFile(worldModelFileName); } //std::cout << "readRawFile2: '" << pModelFilename << "' tris: " << nElements << " nodes: " << nNodes << std::endl; diff --git a/src/server/game/AI/CreatureAI.cpp b/src/server/game/AI/CreatureAI.cpp index 329a2d004a5..5752fcede7b 100755 --- a/src/server/game/AI/CreatureAI.cpp +++ b/src/server/game/AI/CreatureAI.cpp @@ -59,8 +59,8 @@ void CreatureAI::DoZoneInCombat(Creature* creature /*= NULL*/, float maxRangeToN if (!creature->HasReactState(REACT_PASSIVE) && !creature->getVictim()) { - if (Unit* target = creature->SelectNearestTarget(maxRangeToNearestTarget)) - creature->AI()->AttackStart(target); + if (Unit* nearTarget = creature->SelectNearestTarget(maxRangeToNearestTarget)) + creature->AI()->AttackStart(nearTarget); else if (creature->isSummon()) { if (Unit* summoner = creature->ToTempSummon()->GetSummoner()) diff --git a/src/server/game/AI/SmartScripts/SmartScript.cpp b/src/server/game/AI/SmartScripts/SmartScript.cpp index 9563a5d3b4c..ffe21536de4 100644 --- a/src/server/game/AI/SmartScripts/SmartScript.cpp +++ b/src/server/game/AI/SmartScripts/SmartScript.cpp @@ -224,7 +224,7 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u { for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); ++itr) { - if (IsPlayer(*itr)) + if (IsUnit(*itr)) { (*itr)->SendPlaySound(e.action.sound.sound, e.action.sound.range > 0 ? true : false); sLog->outDebug(LOG_FILTER_DATABASE_AI, "SmartScript::ProcessAction:: SMART_ACTION_SOUND: target: %s (GuidLow: %u), sound: %u, onlyself: %u", @@ -1490,9 +1490,9 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u if (IsSmart(target)) CAST_AI(SmartAI, target->AI())->SetScript9(e, e.action.timedActionList.id, GetLastInvoker()); } - else if (GameObject* target = (*itr)->ToGameObject()) + else if (GameObject* goTarget = (*itr)->ToGameObject()) { - if (IsSmartGO(target)) + if (IsSmartGO(goTarget)) CAST_AI(SmartGameObjectAI, target->AI())->SetScript9(e, e.action.timedActionList.id, GetLastInvoker()); } } @@ -1607,9 +1607,9 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u if (IsSmart(target)) CAST_AI(SmartAI, target->AI())->SetScript9(e, id, GetLastInvoker()); } - else if (GameObject* target = (*itr)->ToGameObject()) + else if (GameObject* goTarget = (*itr)->ToGameObject()) { - if (IsSmartGO(target)) + if (IsSmartGO(goTarget)) CAST_AI(SmartGameObjectAI, target->AI())->SetScript9(e, id, GetLastInvoker()); } } @@ -1637,9 +1637,9 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u if (IsSmart(target)) CAST_AI(SmartAI, target->AI())->SetScript9(e, id, GetLastInvoker()); } - else if (GameObject* target = (*itr)->ToGameObject()) + else if (GameObject* goTarget = (*itr)->ToGameObject()) { - if (IsSmartGO(target)) + if (IsSmartGO(goTarget)) CAST_AI(SmartGameObjectAI, target->AI())->SetScript9(e, id, GetLastInvoker()); } } @@ -2298,10 +2298,10 @@ void SmartScript::ProcessEvent(SmartScriptHolder& e, Unit* unit, uint32 var0, ui if (!me || !me->isInCombat()) return; - Unit* unit = DoSelectLowestHpFriendly((float)e.event.friendlyHealt.radius, e.event.friendlyHealt.hpDeficit); - if (!unit) + Unit* target = DoSelectLowestHpFriendly((float)e.event.friendlyHealt.radius, e.event.friendlyHealt.hpDeficit); + if (!target) return; - ProcessAction(e, unit); + ProcessAction(e, target); RecalcTimer(e, e.event.friendlyHealt.repeatMin, e.event.friendlyHealt.repeatMax); break; } diff --git a/src/server/game/AI/SmartScripts/SmartScriptMgr.cpp b/src/server/game/AI/SmartScripts/SmartScriptMgr.cpp index fc3db7a0fe6..011ed75205d 100644 --- a/src/server/game/AI/SmartScripts/SmartScriptMgr.cpp +++ b/src/server/game/AI/SmartScripts/SmartScriptMgr.cpp @@ -68,10 +68,12 @@ void SmartWaypointMgr::LoadFromDB() path = new WPPath; last_id = 1; } + if (last_id != id) { sLog->outErrorDb("SmartWaypointMgr::LoadFromDB: Path entry %u, unexpected point id %u, expected %u.", entry, id, last_id); } + last_id++; (*path)[id] = wp; diff --git a/src/server/game/Battlegrounds/Battleground.cpp b/src/server/game/Battlegrounds/Battleground.cpp index b2842025127..af350ac39d6 100755 --- a/src/server/game/Battlegrounds/Battleground.cpp +++ b/src/server/game/Battlegrounds/Battleground.cpp @@ -1759,12 +1759,12 @@ void Battleground::HandleKillPlayer(Player* player, Player* killer) for (BattlegroundPlayerMap::const_iterator itr = m_Players.begin(); itr != m_Players.end(); ++itr) { - Player* player = ObjectAccessor::FindPlayer(itr->first); - if (!player || player == killer) + Player* creditedPlayer = ObjectAccessor::FindPlayer(itr->first); + if (!creditedPlayer || creditedPlayer == killer) continue; - if (player->GetTeam() == killer->GetTeam() && player->IsAtGroupRewardDistance(player)) - UpdatePlayerScore(player, SCORE_HONORABLE_KILLS, 1); + if (creditedPlayer->GetTeam() == killer->GetTeam() && creditedPlayer->IsAtGroupRewardDistance(player)) + UpdatePlayerScore(creditedPlayer, SCORE_HONORABLE_KILLS, 1); } } diff --git a/src/server/game/Battlegrounds/BattlegroundQueue.cpp b/src/server/game/Battlegrounds/BattlegroundQueue.cpp index ed5c6df16c9..0d76759e1be 100755 --- a/src/server/game/Battlegrounds/BattlegroundQueue.cpp +++ b/src/server/game/Battlegrounds/BattlegroundQueue.cpp @@ -911,68 +911,51 @@ void BattlegroundQueue::BattlegroundQueueUpdate(uint32 diff, BattlegroundTypeId uint32 discardTime = getMSTime() - sBattlegroundMgr->GetRatingDiscardTimer(); // we need to find 2 teams which will play next game + GroupsQueueType::iterator itr_teams[BG_TEAMS_COUNT]; + uint8 found = 0; + uint8 team = 0; - GroupsQueueType::iterator itr_team[BG_TEAMS_COUNT]; - - //optimalization : --- we dont need to use selection_pools - each update we select max 2 groups - for (uint32 i = BG_QUEUE_PREMADE_ALLIANCE; i < BG_QUEUE_NORMAL_ALLIANCE; i++) + for (uint8 i = BG_QUEUE_PREMADE_ALLIANCE; i < BG_QUEUE_NORMAL_ALLIANCE; i++) { // take the group that joined first - itr_team[i] = m_QueuedGroups[bracket_id][i].begin(); - for (; itr_team[i] != m_QueuedGroups[bracket_id][i].end(); ++(itr_team[i])) + GroupsQueueType::iterator itr2 = m_QueuedGroups[bracket_id][i].begin(); + for (; itr2 != m_QueuedGroups[bracket_id][i].end(); ++itr2) { // if group match conditions, then add it to pool - if (!(*itr_team[i])->IsInvitedToBGInstanceGUID - && (((*itr_team[i])->ArenaMatchmakerRating >= arenaMinRating && (*itr_team[i])->ArenaMatchmakerRating <= arenaMaxRating) - || (*itr_team[i])->JoinTime < discardTime)) + if (!(*itr2)->IsInvitedToBGInstanceGUID + && (((*itr2)->ArenaMatchmakerRating >= arenaMinRating && (*itr2)->ArenaMatchmakerRating <= arenaMaxRating) + || (*itr2)->JoinTime < discardTime)) { - m_SelectionPools[i].AddGroup((*itr_team[i]), MaxPlayersPerTeam); - // break for cycle to be able to start selecting another group from same faction queue + itr_teams[found++] = itr2; + team = i; break; } } } - // now we are done if we have 2 groups - ali vs horde! - // if we don't have, we must try to continue search in same queue - // tmp variables are correctly set - // this code isn't much userfriendly - but it is supposed to continue search for mathing group in HORDE queue - if (m_SelectionPools[BG_TEAM_ALLIANCE].GetPlayerCount() == 0 && m_SelectionPools[BG_TEAM_HORDE].GetPlayerCount()) - { - itr_team[BG_TEAM_ALLIANCE] = itr_team[BG_TEAM_HORDE]; - ++itr_team[BG_TEAM_ALLIANCE]; - for (; itr_team[BG_TEAM_ALLIANCE] != m_QueuedGroups[bracket_id][BG_QUEUE_PREMADE_HORDE].end(); ++(itr_team[BG_TEAM_ALLIANCE])) - { - if (!(*itr_team[BG_TEAM_ALLIANCE])->IsInvitedToBGInstanceGUID - && (((*itr_team[BG_TEAM_ALLIANCE])->ArenaMatchmakerRating >= arenaMinRating && (*itr_team[BG_TEAM_ALLIANCE])->ArenaMatchmakerRating <= arenaMaxRating) - || (*itr_team[BG_TEAM_ALLIANCE])->JoinTime < discardTime)) - { - m_SelectionPools[BG_TEAM_ALLIANCE].AddGroup((*itr_team[BG_TEAM_ALLIANCE]), MaxPlayersPerTeam); - break; - } - } - } + if (!found) + return; - // this code isn't much userfriendly - but it is supposed to continue search for mathing group in ALLIANCE queue - if (m_SelectionPools[BG_TEAM_HORDE].GetPlayerCount() == 0 && m_SelectionPools[BG_TEAM_ALLIANCE].GetPlayerCount()) + if (found == 1) { - itr_team[BG_TEAM_HORDE] = itr_team[BG_TEAM_ALLIANCE]; - ++itr_team[BG_TEAM_HORDE]; - for (; itr_team[BG_TEAM_HORDE] != m_QueuedGroups[bracket_id][BG_QUEUE_PREMADE_ALLIANCE].end(); ++(itr_team[BG_TEAM_HORDE])) + for (GroupsQueueType::iterator itr3 = itr_teams[0]; itr3 != m_QueuedGroups[bracket_id][team].end(); ++itr3) { - if (!(*itr_team[BG_TEAM_HORDE])->IsInvitedToBGInstanceGUID - && (((*itr_team[BG_TEAM_HORDE])->ArenaMatchmakerRating >= arenaMinRating && (*itr_team[BG_TEAM_HORDE])->ArenaMatchmakerRating <= arenaMaxRating) - || (*itr_team[BG_TEAM_HORDE])->JoinTime < discardTime)) + if (!(*itr3)->IsInvitedToBGInstanceGUID + && (((*itr3)->ArenaMatchmakerRating >= arenaMinRating && (*itr3)->ArenaMatchmakerRating <= arenaMaxRating) + || (*itr3)->JoinTime < discardTime) + && (*itr_teams[0])->ArenaTeamId != (*itr3)->ArenaTeamId) { - m_SelectionPools[BG_TEAM_HORDE].AddGroup((*itr_team[BG_TEAM_HORDE]), MaxPlayersPerTeam); + itr_teams[found++] = itr3; break; } } } //if we have 2 teams, then start new arena and invite players! - if (m_SelectionPools[BG_TEAM_ALLIANCE].GetPlayerCount() && m_SelectionPools[BG_TEAM_HORDE].GetPlayerCount()) + if (found == 2) { + GroupQueueInfo* aTeam = *itr_teams[BG_TEAM_ALLIANCE]; + GroupQueueInfo* hTeam = *itr_teams[BG_TEAM_HORDE]; Battleground* arena = sBattlegroundMgr->CreateNewBattleground(bgTypeId, bracketEntry, arenaType, true); if (!arena) { @@ -980,35 +963,31 @@ void BattlegroundQueue::BattlegroundQueueUpdate(uint32 diff, BattlegroundTypeId return; } - (*(itr_team[BG_TEAM_ALLIANCE]))->OpponentsTeamRating = (*(itr_team[BG_TEAM_HORDE]))->ArenaTeamRating; - (*(itr_team[BG_TEAM_ALLIANCE]))->OpponentsMatchmakerRating = (*(itr_team[BG_TEAM_HORDE]))->ArenaMatchmakerRating; - sLog->outDebug(LOG_FILTER_BATTLEGROUND, "setting oposite teamrating for team %u to %u", (*(itr_team[BG_TEAM_ALLIANCE]))->ArenaTeamId, (*(itr_team[BG_TEAM_ALLIANCE]))->OpponentsTeamRating); - (*(itr_team[BG_TEAM_HORDE]))->OpponentsTeamRating = (*(itr_team[BG_TEAM_ALLIANCE]))->ArenaTeamRating; - (*(itr_team[BG_TEAM_HORDE]))->OpponentsMatchmakerRating = (*(itr_team[BG_TEAM_ALLIANCE]))->ArenaMatchmakerRating; - sLog->outDebug(LOG_FILTER_BATTLEGROUND, "setting oposite teamrating for team %u to %u", (*(itr_team[BG_TEAM_HORDE]))->ArenaTeamId, (*(itr_team[BG_TEAM_HORDE]))->OpponentsTeamRating); + aTeam->OpponentsTeamRating = hTeam->ArenaTeamRating; + hTeam->OpponentsTeamRating = aTeam->ArenaTeamRating; + aTeam->OpponentsMatchmakerRating = hTeam->ArenaMatchmakerRating; + hTeam->OpponentsMatchmakerRating = aTeam->ArenaMatchmakerRating; + sLog->outDebug(LOG_FILTER_BATTLEGROUND, "setting oposite teamrating for team %u to %u", aTeam->ArenaTeamId, aTeam->OpponentsTeamRating); + sLog->outDebug(LOG_FILTER_BATTLEGROUND, "setting oposite teamrating for team %u to %u", hTeam->ArenaTeamId, hTeam->OpponentsTeamRating); + // now we must move team if we changed its faction to another faction queue, because then we will spam log by errors in Queue::RemovePlayer - if ((*(itr_team[BG_TEAM_ALLIANCE]))->Team != ALLIANCE) + if (aTeam->Team != ALLIANCE) { - // add to alliance queue - m_QueuedGroups[bracket_id][BG_QUEUE_PREMADE_ALLIANCE].push_front(*(itr_team[BG_TEAM_ALLIANCE])); - // erase from horde queue - m_QueuedGroups[bracket_id][BG_QUEUE_PREMADE_HORDE].erase(itr_team[BG_TEAM_ALLIANCE]); - itr_team[BG_TEAM_ALLIANCE] = m_QueuedGroups[bracket_id][BG_QUEUE_PREMADE_ALLIANCE].begin(); + m_QueuedGroups[bracket_id][BG_QUEUE_PREMADE_ALLIANCE].push_front(aTeam); + m_QueuedGroups[bracket_id][BG_QUEUE_PREMADE_HORDE].erase(itr_teams[BG_TEAM_ALLIANCE]); } - if ((*(itr_team[BG_TEAM_HORDE]))->Team != HORDE) + if (hTeam->Team != HORDE) { - m_QueuedGroups[bracket_id][BG_QUEUE_PREMADE_HORDE].push_front(*(itr_team[BG_TEAM_HORDE])); - m_QueuedGroups[bracket_id][BG_QUEUE_PREMADE_ALLIANCE].erase(itr_team[BG_TEAM_HORDE]); - itr_team[BG_TEAM_HORDE] = m_QueuedGroups[bracket_id][BG_QUEUE_PREMADE_HORDE].begin(); + m_QueuedGroups[bracket_id][BG_QUEUE_PREMADE_HORDE].push_front(hTeam); + m_QueuedGroups[bracket_id][BG_QUEUE_PREMADE_ALLIANCE].erase(itr_teams[BG_TEAM_HORDE]); } - arena->SetArenaMatchmakerRating(ALLIANCE, (*(itr_team[BG_TEAM_ALLIANCE]))->ArenaMatchmakerRating); - arena->SetArenaMatchmakerRating(HORDE, (*(itr_team[BG_TEAM_HORDE]))->ArenaMatchmakerRating); - InviteGroupToBG(*(itr_team[BG_TEAM_ALLIANCE]), arena, ALLIANCE); - InviteGroupToBG(*(itr_team[BG_TEAM_HORDE]), arena, HORDE); + arena->SetArenaMatchmakerRating(ALLIANCE, aTeam->ArenaMatchmakerRating); + arena->SetArenaMatchmakerRating( HORDE, hTeam->ArenaMatchmakerRating); + InviteGroupToBG(aTeam, arena, ALLIANCE); + InviteGroupToBG(hTeam, arena, HORDE); sLog->outDebug(LOG_FILTER_BATTLEGROUND, "Starting rated arena match!"); - arena->StartBattleground(); } } diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundAV.cpp b/src/server/game/Battlegrounds/Zones/BattlegroundAV.cpp index 491584557a3..fe570930870 100755 --- a/src/server/game/Battlegrounds/Zones/BattlegroundAV.cpp +++ b/src/server/game/Battlegrounds/Zones/BattlegroundAV.cpp @@ -1348,23 +1348,23 @@ bool BattlegroundAV::SetupBattleground() //creatures sLog->outDebug(LOG_FILTER_BATTLEGROUND, "BG_AV start poputlating nodes"); - for (BG_AV_Nodes i = BG_AV_NODES_FIRSTAID_STATION; i < BG_AV_NODES_MAX; ++i) + for (i = BG_AV_NODES_FIRSTAID_STATION; i < BG_AV_NODES_MAX; ++i) { if (m_Nodes[i].Owner) - PopulateNode(i); + PopulateNode(BG_AV_Nodes(i)); } //all creatures which don't get despawned through the script are static sLog->outDebug(LOG_FILTER_BATTLEGROUND, "BG_AV: start spawning static creatures"); - for (i=0; i < AV_STATICCPLACE_MAX; i++) - AddAVCreature(0, i+AV_CPLACE_MAX); + for (i = 0; i < AV_STATICCPLACE_MAX; i++) + AddAVCreature(0, i + AV_CPLACE_MAX); //mainspiritguides: sLog->outDebug(LOG_FILTER_BATTLEGROUND, "BG_AV: start spawning spiritguides creatures"); AddSpiritGuide(7, BG_AV_CreaturePos[7][0], BG_AV_CreaturePos[7][1], BG_AV_CreaturePos[7][2], BG_AV_CreaturePos[7][3], ALLIANCE); AddSpiritGuide(8, BG_AV_CreaturePos[8][0], BG_AV_CreaturePos[8][1], BG_AV_CreaturePos[8][2], BG_AV_CreaturePos[8][3], HORDE); //spawn the marshals (those who get deleted, if a tower gets destroyed) sLog->outDebug(LOG_FILTER_BATTLEGROUND, "BG_AV: start spawning marshal creatures"); - for (i=AV_NPC_A_MARSHAL_SOUTH; i <= AV_NPC_H_MARSHAL_WTOWER; i++) - AddAVCreature(i, AV_CPLACE_A_MARSHAL_SOUTH+(i-AV_NPC_A_MARSHAL_SOUTH)); + for (i = AV_NPC_A_MARSHAL_SOUTH; i <= AV_NPC_H_MARSHAL_WTOWER; i++) + AddAVCreature(i, AV_CPLACE_A_MARSHAL_SOUTH + (i - AV_NPC_A_MARSHAL_SOUTH)); AddAVCreature(AV_NPC_HERALD, AV_CPLACE_HERALD); return true; } diff --git a/src/server/game/Chat/Channels/Channel.cpp b/src/server/game/Chat/Channels/Channel.cpp index 7717d319bb0..1968de70f46 100755 --- a/src/server/game/Chat/Channels/Channel.cpp +++ b/src/server/game/Chat/Channels/Channel.cpp @@ -85,7 +85,7 @@ Channel::Channel(const std::string& name, uint32 channel_id, uint32 Team) } else // save { - PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_ADD_CHANNEL); + stmt = CharacterDatabase.GetPreparedStatement(CHAR_ADD_CHANNEL); stmt->setString(0, name); stmt->setUInt32(1, m_Team); CharacterDatabase.Execute(stmt); @@ -563,12 +563,12 @@ void Channel::List(Player* player) uint32 count = 0; for (PlayerList::const_iterator i = players.begin(); i != players.end(); ++i) { - Player* player = ObjectAccessor::FindPlayer(i->first); + Player* member = ObjectAccessor::FindPlayer(i->first); // PLAYER can't see MODERATOR, GAME MASTER, ADMINISTRATOR characters // MODERATOR, GAME MASTER, ADMINISTRATOR can see all - if (player && (!AccountMgr::IsPlayerAccount(player->GetSession()->GetSecurity()) || player->GetSession()->GetSecurity() <= AccountTypes(gmLevelInWhoList)) && - player->IsVisibleGloballyFor(player)) + if (member && (!AccountMgr::IsPlayerAccount(player->GetSession()->GetSecurity()) || member->GetSession()->GetSecurity() <= AccountTypes(gmLevelInWhoList)) && + member->IsVisibleGloballyFor(player)) { data << uint64(i->first); data << uint8(i->second.flags); // flags seems to be changed... diff --git a/src/server/game/Chat/Commands/Level2.cpp b/src/server/game/Chat/Commands/Level2.cpp index 763f3654860..1dd603094f6 100755 --- a/src/server/game/Chat/Commands/Level2.cpp +++ b/src/server/game/Chat/Commands/Level2.cpp @@ -349,18 +349,18 @@ bool ChatHandler::HandlePInfoCommand(const char* args) std::string bannedby = "unknown"; std::string banreason = ""; - if (QueryResult result = LoginDatabase.PQuery("SELECT unbandate, bandate = unbandate, bannedby, banreason FROM account_banned " + if (QueryResult result2 = LoginDatabase.PQuery("SELECT unbandate, bandate = unbandate, bannedby, banreason FROM account_banned " "WHERE id = '%u' AND active ORDER BY bandate ASC LIMIT 1", accId)) { - Field* fields = result->Fetch(); + Field* fields = result2->Fetch(); banTime = fields[1].GetBool() ? 0 : fields[0].GetUInt64(); bannedby = fields[2].GetString(); banreason = fields[3].GetString(); } - else if (QueryResult result = CharacterDatabase.PQuery("SELECT unbandate, bandate = unbandate, bannedby, banreason FROM character_banned " + else if (QueryResult result3 = CharacterDatabase.PQuery("SELECT unbandate, bandate = unbandate, bannedby, banreason FROM character_banned " "WHERE guid = '%u' AND active ORDER BY bandate ASC LIMIT 1", GUID_LOPART(target_guid))) { - Field* fields = result->Fetch(); + Field* fields = result3->Fetch(); banTime = fields[1].GetBool() ? 0 : fields[0].GetUInt64(); bannedby = fields[2].GetString(); banreason = fields[3].GetString(); diff --git a/src/server/game/Conditions/DisableMgr.cpp b/src/server/game/Conditions/DisableMgr.cpp index dafb0ebc11f..07febf889d0 100755 --- a/src/server/game/Conditions/DisableMgr.cpp +++ b/src/server/game/Conditions/DisableMgr.cpp @@ -277,26 +277,25 @@ bool IsDisabledFor(DisableType type, uint32 entry, Unit const* unit, uint8 flags { case DISABLE_TYPE_SPELL: { - uint8 flags = itr->second.flags; + uint8 spellFlags = itr->second.flags; if (unit) { - - if ((flags & SPELL_DISABLE_PLAYER && unit->GetTypeId() == TYPEID_PLAYER) || - (unit->GetTypeId() == TYPEID_UNIT && ((unit->ToCreature()->isPet() && flags & SPELL_DISABLE_PET) || flags & SPELL_DISABLE_CREATURE))) + if ((spellFlags & SPELL_DISABLE_PLAYER && unit->GetTypeId() == TYPEID_PLAYER) || + (unit->GetTypeId() == TYPEID_UNIT && ((unit->ToCreature()->isPet() && spellFlags & SPELL_DISABLE_PET) || spellFlags & SPELL_DISABLE_CREATURE))) { - if (flags & SPELL_DISABLE_MAP) + if (spellFlags & SPELL_DISABLE_MAP) { std::set<uint32> const& mapIds = itr->second.params[0]; if (mapIds.find(unit->GetMapId()) != mapIds.end()) return true; // Spell is disabled on current map - if (!(flags & SPELL_DISABLE_AREA)) + if (!(spellFlags & SPELL_DISABLE_AREA)) return false; // Spell is disabled on another map, but not this one, return false // Spell is disabled in an area, but not explicitly our current mapId. Continue processing. } - if (flags & SPELL_DISABLE_AREA) + if (spellFlags & SPELL_DISABLE_AREA) { std::set<uint32> const& areaIds = itr->second.params[1]; if (areaIds.find(unit->GetAreaId()) != areaIds.end()) @@ -309,8 +308,10 @@ bool IsDisabledFor(DisableType type, uint32 entry, Unit const* unit, uint8 flags return false; } - else if (flags & SPELL_DISABLE_DEPRECATED_SPELL) // call not from spellcast + else if (spellFlags & SPELL_DISABLE_DEPRECATED_SPELL) // call not from spellcast return true; + + break; } case DISABLE_TYPE_MAP: if (Player const* player = unit->ToPlayer()) diff --git a/src/server/game/DataStores/DBCStores.cpp b/src/server/game/DataStores/DBCStores.cpp index faa73cefb11..6815d73d1b3 100755 --- a/src/server/game/DataStores/DBCStores.cpp +++ b/src/server/game/DataStores/DBCStores.cpp @@ -71,6 +71,7 @@ DBCStorage <ChrRacesEntry> sChrRacesStore(ChrRacesEntryfmt); DBCStorage <CinematicSequencesEntry> sCinematicSequencesStore(CinematicSequencesEntryfmt); DBCStorage <CreatureDisplayInfoEntry> sCreatureDisplayInfoStore(CreatureDisplayInfofmt); DBCStorage <CreatureFamilyEntry> sCreatureFamilyStore(CreatureFamilyfmt); +DBCStorage <CreatureModelDataEntry> sCreatureModelDataStore(CreatureModelDatafmt); DBCStorage <CreatureSpellDataEntry> sCreatureSpellDataStore(CreatureSpellDatafmt); DBCStorage <CreatureTypeEntry> sCreatureTypeStore(CreatureTypefmt); DBCStorage <CurrencyTypesEntry> sCurrencyTypesStore(CurrencyTypesfmt); @@ -292,6 +293,7 @@ void LoadDBCStores(const std::string& dataPath) LoadDBC(availableDbcLocales, bad_dbc_files, sCinematicSequencesStore, dbcPath, "CinematicSequences.dbc"); LoadDBC(availableDbcLocales, bad_dbc_files, sCreatureDisplayInfoStore, dbcPath, "CreatureDisplayInfo.dbc"); LoadDBC(availableDbcLocales, bad_dbc_files, sCreatureFamilyStore, dbcPath, "CreatureFamily.dbc"); + LoadDBC(availableDbcLocales, bad_dbc_files, sCreatureModelDataStore, dbcPath, "CreatureModelData.dbc"); LoadDBC(availableDbcLocales, bad_dbc_files, sCreatureSpellDataStore, dbcPath, "CreatureSpellData.dbc"); LoadDBC(availableDbcLocales, bad_dbc_files, sCreatureTypeStore, dbcPath, "CreatureType.dbc"); LoadDBC(availableDbcLocales, bad_dbc_files, sCurrencyTypesStore, dbcPath, "CurrencyTypes.dbc"); diff --git a/src/server/game/DataStores/DBCStores.h b/src/server/game/DataStores/DBCStores.h index 367746616d1..7edfaad03f1 100755 --- a/src/server/game/DataStores/DBCStores.h +++ b/src/server/game/DataStores/DBCStores.h @@ -81,6 +81,7 @@ extern DBCStorage <ChrRacesEntry> sChrRacesStore; extern DBCStorage <CinematicSequencesEntry> sCinematicSequencesStore; extern DBCStorage <CreatureDisplayInfoEntry> sCreatureDisplayInfoStore; extern DBCStorage <CreatureFamilyEntry> sCreatureFamilyStore; +extern DBCStorage <CreatureModelDataEntry> sCreatureModelDataStore; extern DBCStorage <CreatureSpellDataEntry> sCreatureSpellDataStore; extern DBCStorage <CreatureTypeEntry> sCreatureTypeStore; extern DBCStorage <CurrencyTypesEntry> sCurrencyTypesStore; diff --git a/src/server/game/DataStores/DBCStructure.h b/src/server/game/DataStores/DBCStructure.h index e01acd2e03d..ba7be495c77 100755 --- a/src/server/game/DataStores/DBCStructure.h +++ b/src/server/game/DataStores/DBCStructure.h @@ -723,7 +723,7 @@ struct CinematicSequencesEntry struct CreatureDisplayInfoEntry { uint32 Displayid; // 0 m_ID - // 1 m_modelID + uint32 ModelId; // 1 m_modelID // 2 m_soundID // 3 m_extendedDisplayInfoID float scale; // 4 m_creatureModelScale @@ -754,6 +754,28 @@ struct CreatureFamilyEntry // 27 m_iconFile }; +struct CreatureModelDataEntry +{ + uint32 Id; + //uint32 Flags; + //char* ModelPath[16] + //uint32 Unk1; + float Scale; // Used in calculation of unit collision data + //int32 Unk2 + //int32 Unk3 + //uint32 Unk4 + //uint32 Unk5 + //float Unk6 + //uint32 Unk7 + //float Unk8 + //uint32 Unk9 + //uint32 Unk10 + //float CollisionWidth; + float CollisionHeight; + float MountHeight; // Used in calculation of unit collision data when mounted + //float Unks[11] +}; + #define MAX_CREATURE_SPELL_DATA_SLOT 4 struct CreatureSpellDataEntry diff --git a/src/server/game/DataStores/DBCfmt.h b/src/server/game/DataStores/DBCfmt.h index 5d33a3011ab..ac0b60d7f80 100755 --- a/src/server/game/DataStores/DBCfmt.h +++ b/src/server/game/DataStores/DBCfmt.h @@ -38,8 +38,9 @@ const char ChatChannelsEntryfmt[]="nixssssssssssssssssxxxxxxxxxxxxxxxxxx"; const char ChrClassesEntryfmt[]="nxixxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxixii"; const char ChrRacesEntryfmt[]="nxixiixixxxxixssssssssssssssssxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxi"; const char CinematicSequencesEntryfmt[]="nxxxxxxxxx"; -const char CreatureDisplayInfofmt[]="nxxxfxxxxxxxxxxx"; +const char CreatureDisplayInfofmt[]="nixxfxxxxxxxxxxx"; const char CreatureFamilyfmt[]="nfifiiiiixssssssssssssssssxx"; +const char CreatureModelDatafmt[]="nxxxfxxxxxxxxxxffxxxxxxxxxxx"; const char CreatureSpellDatafmt[]="niiiixxxx"; const char CreatureTypefmt[]="nxxxxxxxxxxxxxxxxxx"; const char CurrencyTypesfmt[]="xnxi"; diff --git a/src/server/game/DungeonFinding/LFGMgr.cpp b/src/server/game/DungeonFinding/LFGMgr.cpp index 1364f739663..55f798204db 100755 --- a/src/server/game/DungeonFinding/LFGMgr.cpp +++ b/src/server/game/DungeonFinding/LFGMgr.cpp @@ -254,7 +254,7 @@ void LFGMgr::Update(uint32 diff) if (m_QueueTimer > LFG_QUEUEUPDATE_INTERVAL) { m_QueueTimer = 0; - time_t currTime = time(NULL); + currTime = time(NULL); for (LfgQueueInfoMap::const_iterator itQueue = m_QueueInfoMap.begin(); itQueue != m_QueueInfoMap.end(); ++itQueue) { LfgQueueInfo* queue = itQueue->second; @@ -689,10 +689,9 @@ void LFGMgr::Leave(Player* player, Group* grp /* = NULL*/) { // Remove from Proposals LfgProposalMap::iterator it = m_Proposals.begin(); - uint64 guid = player ? player->GetGUID() : grp->GetLeaderGUID(); while (it != m_Proposals.end()) { - LfgProposalPlayerMap::iterator itPlayer = it->second->players.find(guid); + LfgProposalPlayerMap::iterator itPlayer = it->second->players.find(player ? player->GetGUID() : grp->GetLeaderGUID()); if (itPlayer != it->second->players.end()) { // Mark the player/leader of group who left as didn't accept the proposal @@ -1069,10 +1068,10 @@ void LFGMgr::UpdateRoleCheck(uint64 gguid, uint64 guid /* = 0 */, uint8 roles /* // Set queue roles needed - As we are using check_roles will not have more that 1 tank, 1 healer, 3 dps for (LfgRolesMap::const_iterator it = check_roles.begin(); it != check_roles.end(); ++it) { - uint8 roles = it->second; - if (roles & ROLE_TANK) + uint8 roles2 = it->second; + if (roles2 & ROLE_TANK) --pqInfo->tanks; - else if (roles & ROLE_HEALER) + else if (roles2 & ROLE_HEALER) --pqInfo->healers; else --pqInfo->dps; @@ -1152,14 +1151,14 @@ void LFGMgr::GetCompatibleDungeons(LfgDungeonSet& dungeons, const PlayerSet& pla { uint64 guid = (*it)->GetGUID(); LfgLockMap cachedLockMap = GetLockedDungeons(guid); - for (LfgLockMap::const_iterator it = cachedLockMap.begin(); it != cachedLockMap.end() && dungeons.size(); ++it) + for (LfgLockMap::const_iterator it2 = cachedLockMap.begin(); it2 != cachedLockMap.end() && dungeons.size(); ++it2) { - uint32 dungeonId = (it->first & 0x00FFFFFF); // Compare dungeon ids + uint32 dungeonId = (it2->first & 0x00FFFFFF); // Compare dungeon ids LfgDungeonSet::iterator itDungeon = dungeons.find(dungeonId); if (itDungeon != dungeons.end()) { dungeons.erase(itDungeon); - lockMap[guid][dungeonId] = it->second; + lockMap[guid][dungeonId] = it2->second; } } } @@ -1313,8 +1312,8 @@ void LFGMgr::UpdateProposal(uint32 proposalId, uint64 guid, bool accept) if (player->groupLowGuid != lowgroupguid) sLog->outError("LFGMgr::UpdateProposal: [" UI64FMTD "] group mismatch: actual (%u) - queued (%u)", (*it)->GetGUID(), lowgroupguid, player->groupLowGuid); - uint64 guid = player->groupLowGuid ? MAKE_NEW_GUID(player->groupLowGuid, 0, HIGHGUID_GROUP) : (*it)->GetGUID(); - LfgQueueInfoMap::iterator itQueue = m_QueueInfoMap.find(guid); + uint64 guid2 = player->groupLowGuid ? MAKE_NEW_GUID(player->groupLowGuid, 0, HIGHGUID_GROUP) : (*it)->GetGUID(); + LfgQueueInfoMap::iterator itQueue = m_QueueInfoMap.find(guid2); if (itQueue == m_QueueInfoMap.end()) { sLog->outError("LFGMgr::UpdateProposal: Queue info for guid [" UI64FMTD "] not found!", guid); @@ -1399,10 +1398,7 @@ void LFGMgr::UpdateProposal(uint32 proposalId, uint64 guid, bool accept) // Remove players/groups from Queue for (LfgGuidList::const_iterator it = pProposal->queues.begin(); it != pProposal->queues.end(); ++it) - { - uint64 guid = (*it); - RemoveFromQueue(guid); - } + RemoveFromQueue(*it); // Teleport Player for (LfgPlayerList::const_iterator it = playersToTeleport.begin(); it != playersToTeleport.end(); ++it) diff --git a/src/server/game/DungeonFinding/LFGMgr.h b/src/server/game/DungeonFinding/LFGMgr.h index 0d11405789d..95cb2e81869 100755 --- a/src/server/game/DungeonFinding/LFGMgr.h +++ b/src/server/game/DungeonFinding/LFGMgr.h @@ -292,6 +292,7 @@ class LFGMgr LfgState GetState(uint64 guid); const LfgDungeonSet& GetSelectedDungeons(uint64 guid); uint32 GetDungeon(uint64 guid, bool asId = true); + void SetState(uint64 guid, LfgState state); void ClearState(uint64 guid); void RemovePlayerData(uint64 guid); void RemoveGroupData(uint64 guid); @@ -304,7 +305,6 @@ class LFGMgr uint8 GetRoles(uint64 guid); const std::string& GetComment(uint64 gguid); void RestoreState(uint64 guid); - void SetState(uint64 guid, LfgState state); void SetDungeon(uint64 guid, uint32 dungeon); void SetSelectedDungeons(uint64 guid, const LfgDungeonSet& dungeons); void SetLockedDungeons(uint64 guid, const LfgLockMap& lock); diff --git a/src/server/game/DungeonFinding/LFGScripts.cpp b/src/server/game/DungeonFinding/LFGScripts.cpp index f553b069162..42119a02ef8 100644 --- a/src/server/game/DungeonFinding/LFGScripts.cpp +++ b/src/server/game/DungeonFinding/LFGScripts.cpp @@ -82,6 +82,7 @@ void LFGScripts::OnRemoveMember(Group* group, uint64 guid, RemoveMethod method, } sLFGMgr->ClearState(guid); + sLFGMgr->SetState(guid, LFG_STATE_NONE); if (Player* player = ObjectAccessor::FindPlayer(guid)) { /* diff --git a/src/server/game/Entities/Creature/GossipDef.cpp b/src/server/game/Entities/Creature/GossipDef.cpp index 90011dbae22..5bf7910466c 100755 --- a/src/server/game/Entities/Creature/GossipDef.cpp +++ b/src/server/game/Entities/Creature/GossipDef.cpp @@ -337,13 +337,13 @@ void PlayerMenu::SendQuestGiverQuestDetails(Quest const* quest, uint64 npcGUID, data << uint32(quest->GetRewChoiceItemsCount()); for (uint32 i=0; i < QUEST_REWARD_CHOICES_COUNT; ++i) { - if (!quest->RewChoiceItemId[i]) + if (!quest->RewardChoiceItemId[i]) continue; - data << uint32(quest->RewChoiceItemId[i]); - data << uint32(quest->RewChoiceItemCount[i]); + data << uint32(quest->RewardChoiceItemId[i]); + data << uint32(quest->RewardChoiceItemCount[i]); - if (ItemTemplate const* itemTemplate = sObjectMgr->GetItemTemplate(quest->RewChoiceItemId[i])) + if (ItemTemplate const* itemTemplate = sObjectMgr->GetItemTemplate(quest->RewardChoiceItemId[i])) data << uint32(itemTemplate->DisplayInfoID); else data << uint32(0x00); @@ -353,13 +353,13 @@ void PlayerMenu::SendQuestGiverQuestDetails(Quest const* quest, uint64 npcGUID, for (uint32 i=0; i < QUEST_REWARDS_COUNT; ++i) { - if (!quest->RewItemId[i]) + if (!quest->RewardItemId[i]) continue; - data << uint32(quest->RewItemId[i]); - data << uint32(quest->RewItemCount[i]); + data << uint32(quest->RewardItemId[i]); + data << uint32(quest->RewardItemIdCount[i]); - if (ItemTemplate const* itemTemplate = sObjectMgr->GetItemTemplate(quest->RewItemId[i])) + if (ItemTemplate const* itemTemplate = sObjectMgr->GetItemTemplate(quest->RewardItemId[i])) data << uint32(itemTemplate->DisplayInfoID); else data << uint32(0); @@ -380,13 +380,13 @@ void PlayerMenu::SendQuestGiverQuestDetails(Quest const* quest, uint64 npcGUID, data << uint32(0); // unk for (uint32 i = 0; i < QUEST_REPUTATIONS_COUNT; ++i) - data << uint32(quest->RewRepFaction[i]); + data << uint32(quest->RewardFactionId[i]); for (uint32 i = 0; i < QUEST_REPUTATIONS_COUNT; ++i) - data << int32(quest->RewRepValueId[i]); + data << int32(quest->RewardFactionValueId[i]); for (uint32 i = 0; i < QUEST_REPUTATIONS_COUNT; ++i) - data << int32(quest->RewRepValue[i]); + data << int32(quest->RewardFactionValueIdOverride[i]); data << uint32(QUEST_EMOTE_COUNT); for (uint32 i = 0; i < QUEST_EMOTE_COUNT; ++i) @@ -478,24 +478,24 @@ void PlayerMenu::SendQuestQueryResponse(Quest const* quest) const { for (uint32 i = 0; i < QUEST_REWARDS_COUNT; ++i) { - data << uint32(quest->RewItemId[i]); - data << uint32(quest->RewItemCount[i]); + data << uint32(quest->RewardItemId[i]); + data << uint32(quest->RewardItemIdCount[i]); } for (uint32 i = 0; i < QUEST_REWARD_CHOICES_COUNT; ++i) { - data << uint32(quest->RewChoiceItemId[i]); - data << uint32(quest->RewChoiceItemCount[i]); + data << uint32(quest->RewardChoiceItemId[i]); + data << uint32(quest->RewardChoiceItemCount[i]); } } for (uint32 i = 0; i < QUEST_REPUTATIONS_COUNT; ++i) // reward factions ids - data << uint32(quest->RewRepFaction[i]); + data << uint32(quest->RewardFactionId[i]); for (uint32 i = 0; i < QUEST_REPUTATIONS_COUNT; ++i) // columnid+1 QuestFactionReward.dbc? - data << int32(quest->RewRepValueId[i]); + data << int32(quest->RewardFactionValueId[i]); for (int i = 0; i < QUEST_REPUTATIONS_COUNT; ++i) // unk (0) - data << int32(quest->RewRepValue[i]); + data << int32(quest->RewardFactionValueIdOverride[i]); data << quest->GetPointMapId(); data << quest->GetPointX(); @@ -510,20 +510,20 @@ void PlayerMenu::SendQuestQueryResponse(Quest const* quest) const for (uint32 i = 0; i < QUEST_OBJECTIVES_COUNT; ++i) { - if (quest->ReqCreatureOrGOId[i] < 0) - data << uint32((quest->ReqCreatureOrGOId[i] * (-1)) | 0x80000000); // client expects gameobject template id in form (id|0x80000000) + if (quest->RequiredNpcOrGo[i] < 0) + data << uint32((quest->RequiredNpcOrGo[i] * (-1)) | 0x80000000); // client expects gameobject template id in form (id|0x80000000) else - data << uint32(quest->ReqCreatureOrGOId[i]); + data << uint32(quest->RequiredNpcOrGo[i]); - data << uint32(quest->ReqCreatureOrGOCount[i]); - data << uint32(quest->ReqSourceId[i]); + data << uint32(quest->RequiredNpcOrGoCount[i]); + data << uint32(quest->RequiredSourceItemid[i]); data << uint32(0); // req source count? } for (uint32 i = 0; i < QUEST_ITEM_OBJECTIVES_COUNT; ++i) { - data << uint32(quest->ReqItemId[i]); - data << uint32(quest->ReqItemCount[i]); + data << uint32(quest->RequiredItemId[i]); + data << uint32(quest->RequiredItemCount[i]); } for (uint32 i = 0; i < QUEST_OBJECTIVES_COUNT; ++i) @@ -576,10 +576,10 @@ void PlayerMenu::SendQuestGiverOfferReward(Quest const* quest, uint64 npcGUID, b data << uint32(quest->GetRewChoiceItemsCount()); for (uint32 i=0; i < quest->GetRewChoiceItemsCount(); ++i) { - data << uint32(quest->RewChoiceItemId[i]); - data << uint32(quest->RewChoiceItemCount[i]); + data << uint32(quest->RewardChoiceItemId[i]); + data << uint32(quest->RewardChoiceItemCount[i]); - if (ItemTemplate const* itemTemplate = sObjectMgr->GetItemTemplate(quest->RewChoiceItemId[i])) + if (ItemTemplate const* itemTemplate = sObjectMgr->GetItemTemplate(quest->RewardChoiceItemId[i])) data << uint32(itemTemplate->DisplayInfoID); else data << uint32(0); @@ -588,10 +588,10 @@ void PlayerMenu::SendQuestGiverOfferReward(Quest const* quest, uint64 npcGUID, b data << uint32(quest->GetRewItemsCount()); for (uint32 i = 0; i < quest->GetRewItemsCount(); ++i) { - data << uint32(quest->RewItemId[i]); - data << uint32(quest->RewItemCount[i]); + data << uint32(quest->RewardItemId[i]); + data << uint32(quest->RewardItemIdCount[i]); - if (ItemTemplate const* itemTemplate = sObjectMgr->GetItemTemplate(quest->RewItemId[i])) + if (ItemTemplate const* itemTemplate = sObjectMgr->GetItemTemplate(quest->RewardItemId[i])) data << uint32(itemTemplate->DisplayInfoID); else data << uint32(0); @@ -612,13 +612,13 @@ void PlayerMenu::SendQuestGiverOfferReward(Quest const* quest, uint64 npcGUID, b data << uint32(0); for (uint32 i = 0; i < QUEST_REPUTATIONS_COUNT; ++i) // reward factions ids - data << uint32(quest->RewRepFaction[i]); + data << uint32(quest->RewardFactionId[i]); for (uint32 i = 0; i < QUEST_REPUTATIONS_COUNT; ++i) // columnid in QuestFactionReward.dbc (zero based)? - data << int32(quest->RewRepValueId[i]); + data << int32(quest->RewardFactionValueId[i]); for (uint32 i = 0; i < QUEST_REPUTATIONS_COUNT; ++i) // reward reputation override? - data << uint32(quest->RewRepValue[i]); + data << uint32(quest->RewardFactionValueIdOverride[i]); _session->SendPacket(&data); sLog->outDebug(LOG_FILTER_NETWORKIO, "WORLD: Sent SMSG_QUESTGIVER_OFFER_REWARD NPCGuid=%u, questid=%u", GUID_LOPART(npcGUID), quest->GetQuestId()); @@ -676,13 +676,13 @@ void PlayerMenu::SendQuestGiverRequestItems(Quest const* quest, uint64 npcGUID, data << uint32(quest->GetReqItemsCount()); for (int i = 0; i < QUEST_ITEM_OBJECTIVES_COUNT; ++i) { - if (!quest->ReqItemId[i]) + if (!quest->RequiredItemId[i]) continue; - data << uint32(quest->ReqItemId[i]); - data << uint32(quest->ReqItemCount[i]); + data << uint32(quest->RequiredItemId[i]); + data << uint32(quest->RequiredItemCount[i]); - if (ItemTemplate const* itemTemplate = sObjectMgr->GetItemTemplate(quest->ReqItemId[i])) + if (ItemTemplate const* itemTemplate = sObjectMgr->GetItemTemplate(quest->RequiredItemId[i])) data << uint32(itemTemplate->DisplayInfoID); else data << uint32(0); diff --git a/src/server/game/Entities/Object/Object.cpp b/src/server/game/Entities/Object/Object.cpp index a354422c9ae..978d9accb64 100755 --- a/src/server/game/Entities/Object/Object.cpp +++ b/src/server/game/Entities/Object/Object.cpp @@ -1273,6 +1273,8 @@ void WorldObject::setActive(bool on) void WorldObject::CleanupsBeforeDelete(bool /*finalCleanup*/) { + if (IsInWorld()) + RemoveFromWorld(); } void WorldObject::_Create(uint32 guidlow, HighGuid guidhigh, uint32 phaseMask) diff --git a/src/server/game/Entities/Object/Object.h b/src/server/game/Entities/Object/Object.h index dfcf6a3cfa4..eab4dbeba99 100755 --- a/src/server/game/Entities/Object/Object.h +++ b/src/server/game/Entities/Object/Object.h @@ -527,9 +527,11 @@ template<class T> class GridObject { public: - GridReference<T> &GetGridRef() { return m_gridRef; } - protected: - GridReference<T> m_gridRef; + bool IsInGrid() const { return _gridRef.isValid(); } + void AddToGrid(GridRefManager<T>& m) { ASSERT(!IsInGrid()); _gridRef.link(&m, (T*)this); } + void RemoveFromGrid() { ASSERT(IsInGrid()); _gridRef.unlink(); } + private: + GridReference<T> _gridRef; }; template <class T_VALUES, class T_FLAGS, class FLAG_TYPE, uint8 ARRAY_SIZE> @@ -667,12 +669,17 @@ class WorldObject : public Object, public WorldLocation } float GetDistanceZ(const WorldObject* obj) const; + bool IsSelfOrInSameMap(const WorldObject* obj) const + { + if (this == obj) + return true; + return IsInMap(obj); + } bool IsInMap(const WorldObject* obj) const { if (obj) return IsInWorld() && obj->IsInWorld() && (GetMap() == obj->GetMap()) && InSamePhase(obj); - else - return false; + return false; } bool IsWithinDist3d(float x, float y, float z, float dist) const { return IsInDist(x, y, z, dist + GetObjectSize()); } diff --git a/src/server/game/Entities/Pet/Pet.cpp b/src/server/game/Entities/Pet/Pet.cpp index 82c551c2374..404fe24d467 100755 --- a/src/server/game/Entities/Pet/Pet.cpp +++ b/src/server/game/Entities/Pet/Pet.cpp @@ -382,29 +382,29 @@ void Pet::SavePetToDB(PetSaveMode mode) // current/stable/not_in_slot if (mode >= PET_SAVE_AS_CURRENT) { - uint32 owner = GUID_LOPART(GetOwnerGUID()); + uint32 ownerLowGUID = GUID_LOPART(GetOwnerGUID()); std::string name = m_name; CharacterDatabase.EscapeString(name); - SQLTransaction trans = CharacterDatabase.BeginTransaction(); + trans = CharacterDatabase.BeginTransaction(); // remove current data - trans->PAppend("DELETE FROM character_pet WHERE owner = '%u' AND id = '%u'", owner, m_charmInfo->GetPetNumber()); + trans->PAppend("DELETE FROM character_pet WHERE owner = '%u' AND id = '%u'", ownerLowGUID, m_charmInfo->GetPetNumber()); // prevent duplicate using slot (except PET_SAVE_NOT_IN_SLOT) if (mode <= PET_SAVE_LAST_STABLE_SLOT) trans->PAppend("UPDATE character_pet SET slot = '%u' WHERE owner = '%u' AND slot = '%u'", - PET_SAVE_NOT_IN_SLOT, owner, uint32(mode)); + PET_SAVE_NOT_IN_SLOT, ownerLowGUID, uint32(mode)); // prevent existence another hunter pet in PET_SAVE_AS_CURRENT and PET_SAVE_NOT_IN_SLOT - if (getPetType() == HUNTER_PET && (mode == PET_SAVE_AS_CURRENT||mode > PET_SAVE_LAST_STABLE_SLOT)) + if (getPetType() == HUNTER_PET && (mode == PET_SAVE_AS_CURRENT || mode > PET_SAVE_LAST_STABLE_SLOT)) trans->PAppend("DELETE FROM character_pet WHERE owner = '%u' AND (slot = '%u' OR slot > '%u')", - owner, PET_SAVE_AS_CURRENT, PET_SAVE_LAST_STABLE_SLOT); + ownerLowGUID, PET_SAVE_AS_CURRENT, PET_SAVE_LAST_STABLE_SLOT); // save pet std::ostringstream ss; ss << "INSERT INTO character_pet (id, entry, owner, modelid, level, exp, Reactstate, slot, name, renamed, curhealth, curmana, curhappiness, abdata, savetime, CreatedBySpell, PetType) " << "VALUES (" << m_charmInfo->GetPetNumber() << ',' << GetEntry() << ',' - << owner << ',' + << ownerLowGUID << ',' << GetNativeDisplayId() << ',' << uint32(getLevel()) << ',' << GetUInt32Value(UNIT_FIELD_PETEXPERIENCE) << ',' diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index adcefdddab2..401e965f816 100755 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -279,10 +279,8 @@ uint32 PlayerTaxi::GetCurrentTaxiPath() const std::ostringstream& operator<< (std::ostringstream& ss, PlayerTaxi const& taxi) { - ss << '\''; for (uint8 i = 0; i < TaxiMaskSize; ++i) ss << taxi.m_taximask[i] << ' '; - ss << '\''; return ss; } @@ -940,7 +938,7 @@ bool Player::Create(uint32 guidlow, CharacterCreateInfo* createInfo) return false; } - SetMap(sMapMgr->CreateMap(info->mapId, this, 0)); + SetMap(sMapMgr->CreateMap(info->mapId, this)); uint8 powertype = cEntry->powerType; @@ -2205,8 +2203,11 @@ bool Player::TeleportTo(uint32 mapid, float x, float y, float z, float orientati if (!sMapMgr->CanPlayerEnter(mapid, this, false)) return false; - Map* map = sMapMgr->CreateMap(mapid, this, 0); - if (!map || map->CanEnter(this)) + //I think this always returns true. Correct me if I am wrong. + // If the map is not created, assume it is possible to enter it. + // It will be created in the WorldPortAck. + //Map* map = sMapMgr->FindBaseNonInstanceMap(mapid); + //if (!map || map->CanEnter(this)) { //lets reset near teleport flag if it wasn't reset during chained teleports SetSemaphoreTeleportNear(false); @@ -2277,7 +2278,7 @@ bool Player::TeleportTo(uint32 mapid, float x, float y, float z, float orientati // remove from old map now if (oldmap) - oldmap->RemoveFromMap(this, false); + oldmap->RemovePlayerFromMap(this, false); // new final coordinates float final_x = x; @@ -2315,8 +2316,8 @@ bool Player::TeleportTo(uint32 mapid, float x, float y, float z, float orientati // code for finish transfer to new map called in WorldSession::HandleMoveWorldportAckOpcode at client packet SetSemaphoreTeleportFar(true); } - else - return false; + //else + // return false; } return true; } @@ -3087,7 +3088,8 @@ void Player::GiveLevel(uint8 level) // Refer-A-Friend if (GetSession()->GetRecruiterId()) if (level < sWorld->getIntConfig(CONFIG_MAX_RECRUIT_A_FRIEND_BONUS_PLAYER_LEVEL)) - if (level % 2 == 0) { + if (level % 2 == 0) + { ++m_grantableLevels; if (!HasByteFlag(PLAYER_FIELD_BYTES, 1, 0x01)) @@ -3482,7 +3484,7 @@ bool Player::AddTalent(uint32 spell_id, uint8 spec, bool learning) if (!rankSpellId || rankSpellId == spell_id) continue; - PlayerTalentMap::iterator itr = m_talents[spec]->find(rankSpellId); + itr = m_talents[spec]->find(rankSpellId); if (itr != m_talents[spec]->end()) itr->second->state = PLAYERSPELL_REMOVED; } @@ -4092,8 +4094,6 @@ void Player::removeSpell(uint32 spell_id, bool disabled, bool learn_low_rank) if (uint32 prev_id = sSpellMgr->GetPrevSpellInChain(spell_id)) { - SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(spell_id); - // if talent then lesser rank also talent and need learn if (talentCosts) { @@ -4241,8 +4241,8 @@ void Player::RemoveArenaSpellCooldowns(bool removeActivePetCooldowns) if (Pet* pet = GetPet()) { // notify player - for (CreatureSpellCooldowns::const_iterator itr = pet->m_CreatureSpellCooldowns.begin(); itr != pet->m_CreatureSpellCooldowns.end(); ++itr) - SendClearCooldown(itr->first, pet); + for (CreatureSpellCooldowns::const_iterator itr2 = pet->m_CreatureSpellCooldowns.begin(); itr2 != pet->m_CreatureSpellCooldowns.end(); ++itr2) + SendClearCooldown(itr2->first, pet); // actually clear cooldowns pet->m_CreatureSpellCooldowns.clear(); @@ -4395,9 +4395,9 @@ bool Player::resetTalents(bool no_cost) RemovePet(NULL, PET_SAVE_NOT_IN_SLOT, true); - for (uint32 i = 0; i < sTalentStore.GetNumRows(); ++i) + for (uint32 talentId = 0; talentId < sTalentStore.GetNumRows(); ++talentId) { - TalentEntry const* talentInfo = sTalentStore.LookupEntry(i); + TalentEntry const* talentInfo = sTalentStore.LookupEntry(talentId); if (!talentInfo) continue; @@ -4833,14 +4833,14 @@ void Player::DeleteFromDB(uint64 playerguid, uint32 accountId, bool updateRealmC { do { - Field* fields = resultItems->Fetch(); - uint32 item_guidlow = fields[11].GetUInt32(); - uint32 item_template = fields[12].GetUInt32(); + Field* fields2 = resultItems->Fetch(); + uint32 item_guidlow = fields2[11].GetUInt32(); + uint32 item_template = fields2[12].GetUInt32(); ItemTemplate const* itemProto = sObjectMgr->GetItemTemplate(item_template); if (!itemProto) { - PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_ITEM_INSTANCE); + stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_ITEM_INSTANCE); stmt->setUInt32(0, item_guidlow); trans->Append(stmt); continue; @@ -5087,8 +5087,6 @@ void Player::ResurrectPlayer(float restore_percent, bool applySickness) if (GetSession()->IsARecruiter() || (GetSession()->GetRecruiterId() != 0)) SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_REFER_A_FRIEND); - setDeathState(ALIVE); - SetMovement(MOVE_LAND_WALK); SetMovement(MOVE_UNROOT); @@ -5118,6 +5116,8 @@ void Player::ResurrectPlayer(float restore_percent, bool applySickness) // update visibility UpdateObjectVisibility(); + setDeathState(ALIVE); + if (!applySickness) return; @@ -7016,22 +7016,22 @@ void Player::RewardReputation(Quest const* quest) // quest reputation reward/loss for (uint8 i = 0; i < QUEST_REPUTATIONS_COUNT; ++i) { - if (!quest->RewRepFaction[i]) + if (!quest->RewardFactionId[i]) continue; - if (quest->RewRepValue[i]) + if (quest->RewardFactionValueIdOverride[i]) { - int32 rep = CalculateReputationGain(GetQuestLevel(quest), quest->RewRepValue[i]/100, quest->RewRepFaction[i], true, true); + int32 rep = CalculateReputationGain(GetQuestLevel(quest), quest->RewardFactionValueIdOverride[i]/100, quest->RewardFactionId[i], true, true); if (recruitAFriend) rep = int32(rep * (1 + sWorld->getRate(RATE_REPUTATION_RECRUIT_A_FRIEND_BONUS))); - if (FactionEntry const* factionEntry = sFactionStore.LookupEntry(quest->RewRepFaction[i])) + if (FactionEntry const* factionEntry = sFactionStore.LookupEntry(quest->RewardFactionId[i])) GetReputationMgr().ModifyReputation(factionEntry, rep); } else { - uint32 row = ((quest->RewRepValueId[i] < 0) ? 1 : 0) + 1; - uint32 field = abs(quest->RewRepValueId[i]); + uint32 row = ((quest->RewardFactionValueId[i] < 0) ? 1 : 0) + 1; + uint32 field = abs(quest->RewardFactionValueId[i]); if (const QuestFactionRewEntry* pRow = sQuestFactionRewardStore.LookupEntry(row)) { @@ -7040,12 +7040,12 @@ void Player::RewardReputation(Quest const* quest) if (!repPoints) continue; - repPoints = CalculateReputationGain(GetQuestLevel(quest), repPoints, quest->RewRepFaction[i], true); + repPoints = CalculateReputationGain(GetQuestLevel(quest), repPoints, quest->RewardFactionId[i], true); if (recruitAFriend) repPoints = int32(repPoints * (1 + sWorld->getRate(RATE_REPUTATION_RECRUIT_A_FRIEND_BONUS))); - if (const FactionEntry* factionEntry = sFactionStore.LookupEntry(quest->RewRepFaction[i])) + if (const FactionEntry* factionEntry = sFactionStore.LookupEntry(quest->RewardFactionId[i])) GetReputationMgr().ModifyReputation(factionEntry, repPoints); } } @@ -14514,7 +14514,7 @@ Quest const* Player::GetNextQuest(uint64 guid, Quest const* quest) bool Player::CanSeeStartQuest(Quest const* quest) { - if (SatisfyQuestRace(quest, false) && SatisfyQuestSkillOrClass(quest, false) && + if (SatisfyQuestClass(quest, false) && SatisfyQuestRace(quest, false) && SatisfyQuestSkill(quest, false) && SatisfyQuestExclusiveGroup(quest, false) && SatisfyQuestReputation(quest, false) && SatisfyQuestPreviousQuest(quest, false) && SatisfyQuestNextChain(quest, false) && SatisfyQuestPrevChain(quest, false) && SatisfyQuestDay(quest, false) && SatisfyQuestWeek(quest, false) && @@ -14529,8 +14529,8 @@ bool Player::CanSeeStartQuest(Quest const* quest) bool Player::CanTakeQuest(Quest const* quest, bool msg) { return SatisfyQuestStatus(quest, msg) && SatisfyQuestExclusiveGroup(quest, msg) - && SatisfyQuestRace(quest, msg) && SatisfyQuestLevel(quest, msg) - && SatisfyQuestSkillOrClass(quest, msg) && SatisfyQuestReputation(quest, msg) + && SatisfyQuestClass(quest, msg) && SatisfyQuestRace(quest, msg) && SatisfyQuestLevel(quest, msg) + && SatisfyQuestSkill(quest, msg) && SatisfyQuestReputation(quest, msg) && SatisfyQuestPreviousQuest(quest, msg) && SatisfyQuestTimed(quest, msg) && SatisfyQuestNextChain(quest, msg) && SatisfyQuestPrevChain(quest, msg) && SatisfyQuestDay(quest, msg) && SatisfyQuestWeek(quest, msg) @@ -14589,7 +14589,7 @@ bool Player::CanCompleteQuest(uint32 quest_id) { for (uint8 i = 0; i < QUEST_ITEM_OBJECTIVES_COUNT; i++) { - if (qInfo->ReqItemCount[i]!= 0 && q_status.m_itemcount[i] < qInfo->ReqItemCount[i]) + if (qInfo->RequiredItemCount[i]!= 0 && q_status.m_itemcount[i] < qInfo->RequiredItemCount[i]) return false; } } @@ -14598,10 +14598,10 @@ bool Player::CanCompleteQuest(uint32 quest_id) { for (uint8 i = 0; i < QUEST_OBJECTIVES_COUNT; i++) { - if (qInfo->ReqCreatureOrGOId[i] == 0) + if (qInfo->RequiredNpcOrGo[i] == 0) continue; - if (qInfo->ReqCreatureOrGOCount[i] != 0 && q_status.m_creatureOrGOcount[i] < qInfo->ReqCreatureOrGOCount[i]) + if (qInfo->RequiredNpcOrGoCount[i] != 0 && q_status.m_creatureOrGOcount[i] < qInfo->RequiredNpcOrGoCount[i]) return false; } } @@ -14642,7 +14642,7 @@ bool Player::CanCompleteRepeatableQuest(Quest const* quest) if (quest->HasFlag(QUEST_TRINITY_FLAGS_DELIVER)) for (uint8 i = 0; i < QUEST_ITEM_OBJECTIVES_COUNT; i++) - if (quest->ReqItemId[i] && quest->ReqItemCount[i] && !HasItemCount(quest->ReqItemId[i], quest->ReqItemCount[i])) + if (quest->RequiredItemId[i] && quest->RequiredItemCount[i] && !HasItemCount(quest->RequiredItemId[i], quest->RequiredItemCount[i])) return false; if (!CanRewardQuest(quest, false)) @@ -14670,11 +14670,11 @@ bool Player::CanRewardQuest(Quest const* quest, bool msg) { for (uint8 i = 0; i < QUEST_ITEM_OBJECTIVES_COUNT; i++) { - if (quest->ReqItemCount[i]!= 0 && - GetItemCount(quest->ReqItemId[i]) < quest->ReqItemCount[i]) + if (quest->RequiredItemCount[i]!= 0 && + GetItemCount(quest->RequiredItemId[i]) < quest->RequiredItemCount[i]) { if (msg) - SendEquipError(EQUIP_ERR_ITEM_NOT_FOUND, NULL, NULL, quest->ReqItemId[i]); + SendEquipError(EQUIP_ERR_ITEM_NOT_FOUND, NULL, NULL, quest->RequiredItemId[i]); return false; } } @@ -14695,13 +14695,13 @@ bool Player::CanRewardQuest(Quest const* quest, uint32 reward, bool msg) if (quest->GetRewChoiceItemsCount() > 0) { - if (quest->RewChoiceItemId[reward]) + if (quest->RewardChoiceItemId[reward]) { ItemPosCountVec dest; - InventoryResult res = CanStoreNewItem(NULL_BAG, NULL_SLOT, dest, quest->RewChoiceItemId[reward], quest->RewChoiceItemCount[reward]); + InventoryResult res = CanStoreNewItem(NULL_BAG, NULL_SLOT, dest, quest->RewardChoiceItemId[reward], quest->RewardChoiceItemCount[reward]); if (res != EQUIP_ERR_OK) { - SendEquipError(res, NULL, NULL, quest->RewChoiceItemId[reward]); + SendEquipError(res, NULL, NULL, quest->RewardChoiceItemId[reward]); return false; } } @@ -14711,13 +14711,13 @@ bool Player::CanRewardQuest(Quest const* quest, uint32 reward, bool msg) { for (uint32 i = 0; i < quest->GetRewItemsCount(); ++i) { - if (quest->RewItemId[i]) + if (quest->RewardItemId[i]) { ItemPosCountVec dest; - InventoryResult res = CanStoreNewItem(NULL_BAG, NULL_SLOT, dest, quest->RewItemId[i], quest->RewItemCount[i]); + InventoryResult res = CanStoreNewItem(NULL_BAG, NULL_SLOT, dest, quest->RewardItemId[i], quest->RewardItemIdCount[i]); if (res != EQUIP_ERR_OK) { - SendEquipError(res, NULL, NULL, quest->RewItemId[i]); + SendEquipError(res, NULL, NULL, quest->RewardItemId[i]); return false; } } @@ -14850,15 +14850,15 @@ void Player::RewardQuest(Quest const* quest, uint32 reward, Object* questGiver, uint32 quest_id = quest->GetQuestId(); for (uint8 i = 0; i < QUEST_ITEM_OBJECTIVES_COUNT; ++i) - if (quest->ReqItemId[i]) - DestroyItemCount(quest->ReqItemId[i], quest->ReqItemCount[i], true); + if (quest->RequiredItemId[i]) + DestroyItemCount(quest->RequiredItemId[i], quest->RequiredItemCount[i], true); for (uint8 i = 0; i < QUEST_SOURCE_ITEM_IDS_COUNT; ++i) { - if (quest->ReqSourceId[i]) + if (quest->RequiredSourceItemid[i]) { - uint32 count = quest->ReqSourceCount[i]; - DestroyItemCount(quest->ReqSourceId[i], count ? count : 9999, true); + uint32 count = quest->RequiredSourceItemId[i]; + DestroyItemCount(quest->RequiredSourceItemid[i], count ? count : 9999, true); } } @@ -14866,13 +14866,13 @@ void Player::RewardQuest(Quest const* quest, uint32 reward, Object* questGiver, if (quest->GetRewChoiceItemsCount() > 0) { - if (uint32 itemId = quest->RewChoiceItemId[reward]) + if (uint32 itemId = quest->RewardChoiceItemId[reward]) { ItemPosCountVec dest; - if (CanStoreNewItem(NULL_BAG, NULL_SLOT, dest, itemId, quest->RewChoiceItemCount[reward]) == EQUIP_ERR_OK) + if (CanStoreNewItem(NULL_BAG, NULL_SLOT, dest, itemId, quest->RewardChoiceItemCount[reward]) == EQUIP_ERR_OK) { Item* item = StoreNewItem(dest, itemId, true, Item::GenerateItemRandomPropertyId(itemId)); - SendNewItem(item, quest->RewChoiceItemCount[reward], true, false); + SendNewItem(item, quest->RewardChoiceItemCount[reward], true, false); } } } @@ -14881,13 +14881,13 @@ void Player::RewardQuest(Quest const* quest, uint32 reward, Object* questGiver, { for (uint32 i = 0; i < quest->GetRewItemsCount(); ++i) { - if (uint32 itemId = quest->RewItemId[i]) + if (uint32 itemId = quest->RewardItemId[i]) { ItemPosCountVec dest; - if (CanStoreNewItem(NULL_BAG, NULL_SLOT, dest, itemId, quest->RewItemCount[i]) == EQUIP_ERR_OK) + if (CanStoreNewItem(NULL_BAG, NULL_SLOT, dest, itemId, quest->RewardItemIdCount[i]) == EQUIP_ERR_OK) { Item* item = StoreNewItem(dest, itemId, true, Item::GenerateItemRandomPropertyId(itemId)); - SendNewItem(item, quest->RewItemCount[i], true, false); + SendNewItem(item, quest->RewardItemIdCount[i], true, false); } } } @@ -15051,57 +15051,31 @@ void Player::FailQuest(uint32 questId) // Destroy quest items on quest failure. for (uint8 i = 0; i < QUEST_OBJECTIVES_COUNT; ++i) - if (quest->ReqItemId[i] > 0 && quest->ReqItemCount[i] > 0) + if (quest->RequiredItemId[i] > 0 && quest->RequiredItemCount[i] > 0) // Destroy items recieved on starting the quest. - DestroyItemCount(quest->ReqItemId[i], quest->ReqItemCount[i], true, true); + DestroyItemCount(quest->RequiredItemId[i], quest->RequiredItemCount[i], true, true); for (uint8 i = 0; i < QUEST_SOURCE_ITEM_IDS_COUNT; ++i) - if (quest->ReqSourceId[i] > 0 && quest->ReqSourceCount[i] > 0) + if (quest->RequiredSourceItemid[i] > 0 && quest->RequiredSourceItemId[i] > 0) // Destroy items recieved during the quest. - DestroyItemCount(quest->ReqSourceId[i], quest->ReqSourceCount[i], true, true); + DestroyItemCount(quest->RequiredSourceItemid[i], quest->RequiredSourceItemId[i], true, true); } } -bool Player::SatisfyQuestSkillOrClass(Quest const* qInfo, bool msg) +bool Player::SatisfyQuestSkill(Quest const* qInfo, bool msg) const { - int32 zoneOrSort = qInfo->GetZoneOrSort(); - int32 skillOrClassMask = qInfo->GetSkillOrClassMask(); + uint32 skill = qInfo->GetRequiredSkill(); - // skip zone zoneOrSort and 0 case skillOrClass - if (zoneOrSort >= 0 && skillOrClassMask == 0) + // skip 0 case RequiredSkill + if (skill == 0) return true; - int32 questSort = -zoneOrSort; - uint8 reqSortClass = ClassByQuestSort(questSort); - - // check class sort cases in zoneOrSort - if (reqSortClass != 0 && getClass() != reqSortClass) + // check skill value + if (GetSkillValue(skill) < qInfo->GetRequiredSkillValue()) { if (msg) SendCanTakeQuestResponse(INVALIDREASON_DONT_HAVE_REQ); - return false; - } - // check class - if (skillOrClassMask < 0) - { - uint32 reqClassMask = -int32(skillOrClassMask); - if (!(reqClassMask & getClassMask())) - { - if (msg) - SendCanTakeQuestResponse(INVALIDREASON_DONT_HAVE_REQ); - return false; - } - } - // check skill - else if (skillOrClassMask > 0) - { - uint32 reqSkill = skillOrClassMask; - if (GetSkillValue(reqSkill) < qInfo->GetRequiredSkillValue()) - { - if (msg) - SendCanTakeQuestResponse(INVALIDREASON_DONT_HAVE_REQ); - return false; - } + return false; } return true; @@ -15229,6 +15203,24 @@ bool Player::SatisfyQuestPreviousQuest(Quest const* qInfo, bool msg) return false; } +bool Player::SatisfyQuestClass(Quest const* qInfo, bool msg) const +{ + uint32 reqClass = qInfo->GetRequiredClasses(); + + if (reqClass == 0) + return true; + + if ((reqClass & getClassMask()) == 0) + { + if (msg) + SendCanTakeQuestResponse(INVALIDREASON_DONT_HAVE_REQ); + + return false; + } + + return true; +} + bool Player::SatisfyQuestRace(Quest const* qInfo, bool msg) { uint32 reqraces = qInfo->GetRequiredRaces(); @@ -15486,7 +15478,7 @@ bool Player::TakeQuestSourceItem(uint32 questId, bool msg) // exist two cases when destroy source quest item not possible: // a) non un-equippable item (equipped non-empty bag, for example) // b) when quest is started from an item and item also is needed in - // the end as ReqItemId + // the end as RequiredItemId InventoryResult res = CanUnequipItems(srcItemId, count); if (res != EQUIP_ERR_OK) { @@ -15496,7 +15488,7 @@ bool Player::TakeQuestSourceItem(uint32 questId, bool msg) } for (uint8 n = 0; n < QUEST_ITEM_OBJECTIVES_COUNT; ++n) - if (item->StartQuest == questId && srcItemId == quest->ReqItemId[n]) + if (item->StartQuest == questId && srcItemId == quest->RequiredItemId[n]) destroyItem = false; if (destroyItem) @@ -15588,7 +15580,7 @@ uint16 Player::GetReqKillOrCastCurrentCount(uint32 quest_id, int32 entry) return 0; for (uint8 j = 0; j < QUEST_OBJECTIVES_COUNT; ++j) - if (qInfo->ReqCreatureOrGOId[j] == entry) + if (qInfo->RequiredNpcOrGo[j] == entry) return m_QuestStatus[quest_id].m_creatureOrGOcount[j]; return 0; @@ -15600,10 +15592,10 @@ void Player::AdjustQuestReqItemCount(Quest const* quest, QuestStatusData& questS { for (uint8 i = 0; i < QUEST_ITEM_OBJECTIVES_COUNT; ++i) { - uint32 reqitemcount = quest->ReqItemCount[i]; + uint32 reqitemcount = quest->RequiredItemCount[i]; if (reqitemcount != 0) { - uint32 curitemcount = GetItemCount(quest->ReqItemId[i], true); + uint32 curitemcount = GetItemCount(quest->RequiredItemId[i], true); questStatusData.m_itemcount[i] = std::min(curitemcount, reqitemcount); m_QuestStatusSave[quest->GetQuestId()] = true; @@ -15678,10 +15670,10 @@ void Player::ItemAddedQuestCheck(uint32 entry, uint32 count) for (uint8 j = 0; j < QUEST_ITEM_OBJECTIVES_COUNT; ++j) { - uint32 reqitem = qInfo->ReqItemId[j]; + uint32 reqitem = qInfo->RequiredItemId[j]; if (reqitem == entry) { - uint32 reqitemcount = qInfo->ReqItemCount[j]; + uint32 reqitemcount = qInfo->RequiredItemCount[j]; uint16 curitemcount = q_status.m_itemcount[j]; if (curitemcount < reqitemcount) { @@ -15716,12 +15708,12 @@ void Player::ItemRemovedQuestCheck(uint32 entry, uint32 count) for (uint8 j = 0; j < QUEST_ITEM_OBJECTIVES_COUNT; ++j) { - uint32 reqitem = qInfo->ReqItemId[j]; + uint32 reqitem = qInfo->RequiredItemId[j]; if (reqitem == entry) { QuestStatusData& q_status = m_QuestStatus[questid]; - uint32 reqitemcount = qInfo->ReqItemCount[j]; + uint32 reqitemcount = qInfo->RequiredItemCount[j]; uint16 curitemcount; if (q_status.m_status != QUEST_STATUS_COMPLETE) curitemcount = q_status.m_itemcount[j]; @@ -15785,18 +15777,18 @@ void Player::KilledMonsterCredit(uint32 entry, uint64 guid) for (uint8 j = 0; j < QUEST_OBJECTIVES_COUNT; ++j) { // skip GO activate objective or none - if (qInfo->ReqCreatureOrGOId[j] <= 0) + if (qInfo->RequiredNpcOrGo[j] <= 0) continue; // skip Cast at creature objective - if (qInfo->ReqSpell[j] != 0) + if (qInfo->RequiredSpellCast[j] != 0) continue; - uint32 reqkill = qInfo->ReqCreatureOrGOId[j]; + uint32 reqkill = qInfo->RequiredNpcOrGo[j]; if (reqkill == real_entry) { - uint32 reqkillcount = qInfo->ReqCreatureOrGOCount[j]; + uint32 reqkillcount = qInfo->RequiredNpcOrGoCount[j]; uint16 curkillcount = q_status.m_creatureOrGOcount[j]; if (curkillcount < reqkillcount) { @@ -15882,7 +15874,7 @@ void Player::CastedCreatureOrGO(uint32 entry, uint64 guid, uint32 spell_id) for (uint8 j = 0; j < QUEST_OBJECTIVES_COUNT; ++j) { // skip kill creature objective (0) or wrong spell casts - if (qInfo->ReqSpell[j] != spell_id) + if (qInfo->RequiredSpellCast[j] != spell_id) continue; uint32 reqTarget = 0; @@ -15890,32 +15882,32 @@ void Player::CastedCreatureOrGO(uint32 entry, uint64 guid, uint32 spell_id) if (isCreature) { // creature activate objectives - if (qInfo->ReqCreatureOrGOId[j] > 0) + if (qInfo->RequiredNpcOrGo[j] > 0) { // checked at quest_template loading - reqTarget = qInfo->ReqCreatureOrGOId[j]; + reqTarget = qInfo->RequiredNpcOrGo[j]; if (reqTarget != entry) // if entry doesn't match, check for killcredits referenced in template { CreatureTemplate const* cinfo = sObjectMgr->GetCreatureTemplate(entry); - for (uint8 i = 0; i < MAX_KILL_CREDIT; ++i) - if (cinfo->KillCredit[i] == reqTarget) - entry = cinfo->KillCredit[i]; + for (uint8 j = 0; j < MAX_KILL_CREDIT; ++j) + if (cinfo->KillCredit[j] == reqTarget) + entry = cinfo->KillCredit[j]; } } } else { // GO activate objective - if (qInfo->ReqCreatureOrGOId[j] < 0) + if (qInfo->RequiredNpcOrGo[j] < 0) // checked at quest_template loading - reqTarget = - qInfo->ReqCreatureOrGOId[j]; + reqTarget = - qInfo->RequiredNpcOrGo[j]; } // other not this creature/GO related objectives if (reqTarget != entry) continue; - uint32 reqCastCount = qInfo->ReqCreatureOrGOCount[j]; + uint32 reqCastCount = qInfo->RequiredNpcOrGoCount[j]; uint16 curCastCount = q_status.m_creatureOrGOcount[j]; if (curCastCount < reqCastCount) { @@ -15959,20 +15951,20 @@ void Player::TalkedToCreature(uint32 entry, uint64 guid) for (uint8 j = 0; j < QUEST_OBJECTIVES_COUNT; ++j) { // skip spell casts and Gameobject objectives - if (qInfo->ReqSpell[j] > 0 || qInfo->ReqCreatureOrGOId[j] < 0) + if (qInfo->RequiredSpellCast[j] > 0 || qInfo->RequiredNpcOrGo[j] < 0) continue; uint32 reqTarget = 0; - if (qInfo->ReqCreatureOrGOId[j] > 0) // creature activate objectives + if (qInfo->RequiredNpcOrGo[j] > 0) // creature activate objectives // checked at quest_template loading - reqTarget = qInfo->ReqCreatureOrGOId[j]; + reqTarget = qInfo->RequiredNpcOrGo[j]; else continue; if (reqTarget == entry) { - uint32 reqTalkCount = qInfo->ReqCreatureOrGOCount[j]; + uint32 reqTalkCount = qInfo->RequiredNpcOrGoCount[j]; uint16 curTalkCount = q_status.m_creatureOrGOcount[j]; if (curTalkCount < reqTalkCount) { @@ -16109,14 +16101,14 @@ bool Player::HasQuestForItem(uint32 itemid) const // This part for ReqItem drop for (uint8 j = 0; j < QUEST_ITEM_OBJECTIVES_COUNT; ++j) { - if (itemid == qinfo->ReqItemId[j] && q_status.m_itemcount[j] < qinfo->ReqItemCount[j]) + if (itemid == qinfo->RequiredItemId[j] && q_status.m_itemcount[j] < qinfo->RequiredItemCount[j]) return true; } // This part - for ReqSource for (uint8 j = 0; j < QUEST_SOURCE_ITEM_IDS_COUNT; ++j) { // examined item is a source item - if (qinfo->ReqSourceId[j] == itemid) + if (qinfo->RequiredSourceItemid[j] == itemid) { ItemTemplate const* pProto = sObjectMgr->GetItemTemplate(itemid); @@ -16125,9 +16117,9 @@ bool Player::HasQuestForItem(uint32 itemid) const return true; // allows custom amount drop when not 0 - if (qinfo->ReqSourceCount[j]) + if (qinfo->RequiredSourceItemId[j]) { - if (GetItemCount(itemid, true) < qinfo->ReqSourceCount[j]) + if (GetItemCount(itemid, true) < qinfo->RequiredSourceItemId[j]) return true; } else if (GetItemCount(itemid, true) < pProto->GetMaxStackSize()) return true; @@ -16200,7 +16192,7 @@ void Player::SendQuestTimerFailed(uint32 quest_id) } } -void Player::SendCanTakeQuestResponse(uint32 msg) +void Player::SendCanTakeQuestResponse(uint32 msg) const { WorldPacket data(SMSG_QUESTGIVER_QUEST_INVALID, 4); data << uint32(msg); @@ -16245,7 +16237,7 @@ void Player::SendQuestUpdateAddItem(Quest const* /*quest*/, uint32 /*item_idx*/, { WorldPacket data(SMSG_QUESTUPDATE_ADD_ITEM, 0); sLog->outDebug(LOG_FILTER_NETWORKIO, "WORLD: Sent SMSG_QUESTUPDATE_ADD_ITEM"); - //data << quest->ReqItemId[item_idx]; + //data << quest->RequiredItemId[item_idx]; //data << count; GetSession()->SendPacket(&data); } @@ -16254,7 +16246,7 @@ void Player::SendQuestUpdateAddCreatureOrGo(Quest const* quest, uint64 guid, uin { ASSERT(old_count + add_count < 65536 && "mob/GO count store in 16 bits 2^16 = 65536 (0..65536)"); - int32 entry = quest->ReqCreatureOrGOId[ creatureOrGO_idx ]; + int32 entry = quest->RequiredNpcOrGo[ creatureOrGO_idx ]; if (entry < 0) // client expected gameobject template id in form (id|0x80000000) entry = (-entry) | 0x80000000; @@ -16264,7 +16256,7 @@ void Player::SendQuestUpdateAddCreatureOrGo(Quest const* quest, uint64 guid, uin data << uint32(quest->GetQuestId()); data << uint32(entry); data << uint32(old_count + add_count); - data << uint32(quest->ReqCreatureOrGOCount[ creatureOrGO_idx ]); + data << uint32(quest->RequiredNpcOrGoCount[ creatureOrGO_idx ]); data << uint64(guid); GetSession()->SendPacket(&data); @@ -16790,7 +16782,7 @@ bool Player::LoadFromDB(uint32 guid, SQLQueryHolder *holder) // NOW player must have valid map // load the player's map here if it's not already loaded - Map* map = sMapMgr->CreateMap(mapId, this, instanceId); + Map* map = sMapMgr->CreateMap(mapId, this); if (!map) { @@ -16808,14 +16800,14 @@ bool Player::LoadFromDB(uint32 guid, SQLQueryHolder *holder) RelocateToHomebind(); } - map = sMapMgr->CreateMap(mapId, this, 0); + map = sMapMgr->CreateMap(mapId, this); if (!map) { PlayerInfo const* info = sObjectMgr->GetPlayerInfo(getRace(), getClass()); mapId = info->mapId; Relocate(info->positionX, info->positionY, info->positionZ, 0.0f); sLog->outError("Player (guidlow %d) have invalid coordinates (X: %f Y: %f Z: %f O: %f). Teleport to default race/class locations.", guid, GetPositionX(), GetPositionY(), GetPositionZ(), GetOrientation()); - map = sMapMgr->CreateMap(mapId, this, 0); + map = sMapMgr->CreateMap(mapId, this); if (!map) { sLog->outError("Player (guidlow %d) has invalid default map coordinates (X: %f Y: %f Z: %f O: %f). or instance couldn't be created", guid, GetPositionX(), GetPositionY(), GetPositionZ(), GetOrientation()); @@ -17536,7 +17528,7 @@ void Player::_LoadMailedItems(Mail* mail) { sLog->outError("Player %u has unknown item_template (ProtoType) in mailed items(GUID: %u template: %u) in mail (%u), deleted.", GetGUIDLow(), item_guid_low, item_template, mail->messageID); CharacterDatabase.PExecute("DELETE FROM mail_items WHERE item_guid = '%u'", item_guid_low); - PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_ITEM_INSTANCE); + stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_ITEM_INSTANCE); stmt->setUInt32(0, item_guid_low); CharacterDatabase.Execute(stmt); continue; @@ -18263,7 +18255,7 @@ bool Player::_LoadHomeBind(PreparedQueryResult result) /*** SAVE SYSTEM ***/ /*********************************************************/ -void Player::SaveToDB() +void Player::SaveToDB(bool create /*=false*/) { // delay auto save at any saves (manual, in code, or autosave) m_nextSave = sWorld->getIntConfig(CONFIG_INTERVAL_SAVE); @@ -18281,156 +18273,228 @@ void Player::SaveToDB() sLog->outDebug(LOG_FILTER_UNITS, "The value of player %s at save: ", m_name.c_str()); outDebugValues(); - std::string sql_name = m_name; - CharacterDatabase.EscapeString(sql_name); + PreparedStatement* stmt = NULL; + uint16 index = 0; - std::ostringstream ss; - ss << "REPLACE INTO characters (guid, account, name, race, class, gender, level, xp, money, playerBytes, playerBytes2, playerFlags, " - "map, instance_id, instance_mode_mask, position_x, position_y, position_z, orientation, " - "taximask, online, cinematic, " - "totaltime, leveltime, rest_bonus, logout_time, is_logout_resting, resettalents_cost, resettalents_time, " - "trans_x, trans_y, trans_z, trans_o, transguid, extra_flags, stable_slots, at_login, zone, " - "death_expire_time, taxi_path, arenaPoints, totalHonorPoints, todayHonorPoints, yesterdayHonorPoints, totalKills, " - "todayKills, yesterdayKills, chosenTitle, knownCurrencies, watchedFaction, drunk, health, power1, power2, power3, " - "power4, power5, power6, power7, latency, speccount, activespec, exploredZones, equipmentCache, ammoId, knownTitles, actionBars, grantableLevels) VALUES (" - << GetGUIDLow() << ',' - << GetSession()->GetAccountId() << ", '" - << sql_name << "', " - << uint32(getRace()) << ',' - << uint32(getClass()) << ',' - << uint32(getGender()) << ',' - << uint32(getLevel()) << ',' - << GetUInt32Value(PLAYER_XP) << ',' - << GetMoney() << ',' - << GetUInt32Value(PLAYER_BYTES) << ',' - << GetUInt32Value(PLAYER_BYTES_2) << ',' - << GetUInt32Value(PLAYER_FLAGS) << ','; - - if (!IsBeingTeleported()) - { - ss << GetMapId() << ',' - << (uint32)GetInstanceId() << ',' - << uint32(uint8(GetDungeonDifficulty()) | uint8(GetRaidDifficulty()) << 4) << ',' - << finiteAlways(GetPositionX()) << ',' - << finiteAlways(GetPositionY()) << ',' - << finiteAlways(GetPositionZ()) << ',' - << finiteAlways(GetOrientation()) << ','; - } - else + if (create) { - ss << GetTeleportDest().GetMapId() << ',' - << (uint32)0 << ',' - << uint32(uint8(GetDungeonDifficulty()) | uint8(GetRaidDifficulty()) << 4) << ',' - << finiteAlways(GetTeleportDest().GetPositionX()) << ',' - << finiteAlways(GetTeleportDest().GetPositionY()) << ',' - << finiteAlways(GetTeleportDest().GetPositionZ()) << ',' - << finiteAlways(GetTeleportDest().GetOrientation()) << ','; - } - - ss << m_taxi << ','; // string with TaxiMaskSize numbers - - ss << (IsInWorld() ? 1 : 0) << ','; - - ss << uint32(m_cinematic) << ','; + //! Insert query + //! TO DO: Filter out more redundant fields that can take their default value at player create + stmt = CharacterDatabase.GetPreparedStatement(CHAR_ADD_CHARACTER); + stmt->setUInt32(index++, GetGUIDLow()); + stmt->setUInt32(index++, GetSession()->GetAccountId()); + stmt->setString(index++, GetName()); + stmt->setUInt8(index++, getRace()); + stmt->setUInt8(index++, getClass()); + stmt->setUInt8(index++, getGender()); + stmt->setUInt8(index++, getLevel()); + stmt->setUInt32(index++, GetUInt32Value(PLAYER_XP)); + stmt->setUInt32(index++, GetMoney()); + stmt->setUInt32(index++, GetUInt32Value(PLAYER_BYTES)); + stmt->setUInt32(index++, GetUInt32Value(PLAYER_BYTES_2)); + stmt->setUInt32(index++, GetUInt32Value(PLAYER_FLAGS)); + stmt->setUInt16(index++, (uint16)GetMapId()); + stmt->setUInt32(index++, (uint32)GetInstanceId()); + stmt->setUInt8(index++, (uint8(GetDungeonDifficulty()) | uint8(GetRaidDifficulty()) << 4)); + stmt->setFloat(index++, finiteAlways(GetPositionX())); + stmt->setFloat(index++, finiteAlways(GetPositionY())); + stmt->setFloat(index++, finiteAlways(GetPositionZ())); + stmt->setFloat(index++, finiteAlways(GetOrientation())); + + std::ostringstream ss; + ss << m_taxi; + stmt->setString(index++, ss.str()); + stmt->setUInt8(index++, m_cinematic); + stmt->setUInt32(index++, m_Played_time[PLAYED_TIME_TOTAL]); + stmt->setUInt32(index++, m_Played_time[PLAYED_TIME_LEVEL]); + stmt->setFloat(index++, finiteAlways(m_rest_bonus)); + stmt->setUInt32(index++, uint32(time(NULL))); + stmt->setUInt8(index++, (HasFlag(PLAYER_FLAGS, PLAYER_FLAGS_RESTING) ? 1 : 0)); + //save, far from tavern/city + //save, but in tavern/city + stmt->setUInt32(index++, m_resetTalentsCost); + stmt->setUInt32(index++, m_resetTalentsTime); + stmt->setUInt16(index++, (uint16)m_ExtraFlags); + stmt->setUInt8(index++, m_stableSlots); + stmt->setUInt16(index++, (uint16)m_atLoginFlags); + stmt->setUInt16(index++, GetZoneId()); + stmt->setUInt32(index++, m_deathExpireTime); + + ss.str(""); + ss << m_taxi.SaveTaxiDestinationsToString(); + + stmt->setString(index++, ss.str()); + stmt->setUInt32(index++, GetArenaPoints()); + stmt->setUInt32(index++, GetHonorPoints()); + stmt->setUInt32(index++, GetUInt32Value(PLAYER_FIELD_TODAY_CONTRIBUTION)); + stmt->setUInt32(index++, GetUInt32Value(PLAYER_FIELD_YESTERDAY_CONTRIBUTION)); + stmt->setUInt32(index++, GetUInt32Value(PLAYER_FIELD_LIFETIME_HONORABLE_KILLS)); + stmt->setUInt16(index++, GetUInt16Value(PLAYER_FIELD_KILLS, 0)); + stmt->setUInt16(index++, GetUInt16Value(PLAYER_FIELD_KILLS, 1)); + stmt->setUInt32(index++, GetUInt32Value(PLAYER_CHOSEN_TITLE)); + stmt->setUInt64(index++, GetUInt64Value(PLAYER_FIELD_KNOWN_CURRENCIES)); + stmt->setUInt32(index++, GetUInt32Value(PLAYER_FIELD_WATCHED_FACTION_INDEX)); + stmt->setUInt16(index++, (uint16)(GetUInt32Value(PLAYER_BYTES_3) & 0xFFFE)); + stmt->setUInt32(index++, GetHealth()); + + for (uint32 i = 0; i < MAX_POWERS; ++i) + stmt->setUInt32(index++, GetPower(Powers(i))); + + stmt->setUInt32(index++, GetSession()->GetLatency()); + + stmt->setUInt8(index++, m_specsCount); + stmt->setUInt8(index++, m_activeSpec); + + ss.str(""); + for (uint32 i = 0; i < PLAYER_EXPLORED_ZONES_SIZE; ++i) + ss << GetUInt32Value(PLAYER_EXPLORED_ZONES_1 + i) << ' '; + stmt->setString(index++, ss.str()); + + ss.str(""); + // cache equipment... + for (uint32 i = 0; i < EQUIPMENT_SLOT_END * 2; ++i) + ss << GetUInt32Value(PLAYER_VISIBLE_ITEM_1_ENTRYID + i) << ' '; + + // ...and bags for enum opcode + for (uint32 i = INVENTORY_SLOT_BAG_START; i < INVENTORY_SLOT_BAG_END; ++i) + { + if (Item* item = GetItemByPos(INVENTORY_SLOT_BAG_0, i)) + ss << item->GetEntry(); + else + ss << '0'; + ss << " 0 "; + } - ss << m_Played_time[PLAYED_TIME_TOTAL] << ','; - ss << m_Played_time[PLAYED_TIME_LEVEL] << ','; + stmt->setString(index++, ss.str()); + stmt->setUInt32(index++, GetUInt32Value(PLAYER_AMMO_ID)); - ss << finiteAlways(m_rest_bonus) << ','; - ss << uint32(time(NULL)) << ','; - ss << (HasFlag(PLAYER_FLAGS, PLAYER_FLAGS_RESTING) ? 1 : 0) << ','; - //save, far from tavern/city - //save, but in tavern/city - ss << m_resetTalentsCost << ','; - ss << uint32(m_resetTalentsTime) << ','; + ss.str(""); + for (uint32 i = 0; i < KNOWN_TITLES_SIZE*2; ++i) + ss << GetUInt32Value(PLAYER__FIELD_KNOWN_TITLES + i) << ' '; - ss << finiteAlways(m_movementInfo.t_pos.GetPositionX()) << ','; - ss << finiteAlways(m_movementInfo.t_pos.GetPositionY()) << ','; - ss << finiteAlways(m_movementInfo.t_pos.GetPositionZ()) << ','; - ss << finiteAlways(m_movementInfo.t_pos.GetOrientation()) << ','; - if (m_transport) - ss << m_transport->GetGUIDLow(); + stmt->setString(index++, ss.str()); + stmt->setUInt8(index++, GetByteValue(PLAYER_FIELD_BYTES, 2)); + stmt->setUInt32(index++, m_grantableLevels); + } else - ss << '0'; - ss << ','; - - ss << m_ExtraFlags << ','; - - ss << uint32(m_stableSlots) << ','; // to prevent save uint8 as char - - ss << uint32(m_atLoginFlags) << ','; - - ss << GetZoneId() << ','; - - ss << uint32(m_deathExpireTime) << ", '"; - - ss << m_taxi.SaveTaxiDestinationsToString() << "', "; - - ss << GetArenaPoints() << ','; - - ss << GetHonorPoints() << ','; - - ss << GetUInt32Value(PLAYER_FIELD_TODAY_CONTRIBUTION) << ','; - - ss << GetUInt32Value(PLAYER_FIELD_YESTERDAY_CONTRIBUTION) << ','; - - ss << GetUInt32Value(PLAYER_FIELD_LIFETIME_HONORABLE_KILLS) << ','; - - ss << GetUInt16Value(PLAYER_FIELD_KILLS, 0) << ','; - - ss << GetUInt16Value(PLAYER_FIELD_KILLS, 1) << ','; - - ss << GetUInt32Value(PLAYER_CHOSEN_TITLE) << ','; - - ss << GetUInt64Value(PLAYER_FIELD_KNOWN_CURRENCIES) << ','; - - ss << GetUInt32Value(PLAYER_FIELD_WATCHED_FACTION_INDEX) << ','; - - ss << (uint16)(GetUInt32Value(PLAYER_BYTES_3) & 0xFFFE) << ','; - - ss << GetHealth(); - - for (uint32 i = 0; i < MAX_POWERS; ++i) - ss << ',' << GetPower(Powers(i)); - ss << ','; - ss << GetSession()->GetLatency(); - ss << ','; - ss << uint32(m_specsCount); - ss << ','; - ss << uint32(m_activeSpec) << ", '"; - for (uint32 i = 0; i < PLAYER_EXPLORED_ZONES_SIZE; ++i) - ss << GetUInt32Value(PLAYER_EXPLORED_ZONES_1 + i) << ' '; - - // cache equipment... - ss << "', '"; - for (uint32 i = 0; i < EQUIPMENT_SLOT_END * 2; ++i) - ss << GetUInt32Value(PLAYER_VISIBLE_ITEM_1_ENTRYID + i) << ' '; - - // ...and bags for enum opcode - for (uint32 i = INVENTORY_SLOT_BAG_START; i < INVENTORY_SLOT_BAG_END; ++i) { - if (Item* item = GetItemByPos(INVENTORY_SLOT_BAG_0, i)) - ss << item->GetEntry(); + // Update query + stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_CHARACTER); + stmt->setString(index++, GetName()); + stmt->setUInt8(index++, getRace()); + stmt->setUInt8(index++, getClass()); + stmt->setUInt8(index++, getGender()); + stmt->setUInt8(index++, getLevel()); + stmt->setUInt32(index++, GetUInt32Value(PLAYER_XP)); + stmt->setUInt32(index++, GetMoney()); + stmt->setUInt32(index++, GetUInt32Value(PLAYER_BYTES)); + stmt->setUInt32(index++, GetUInt32Value(PLAYER_BYTES_2)); + stmt->setUInt32(index++, GetUInt32Value(PLAYER_FLAGS)); + + if (!IsBeingTeleported()) + { + stmt->setUInt16(index++, (uint16)GetMapId()); + stmt->setUInt32(index++, (uint32)GetInstanceId()); + stmt->setUInt8(index++, (uint8(GetDungeonDifficulty()) | uint8(GetRaidDifficulty()) << 4)); + stmt->setFloat(index++, finiteAlways(GetPositionX())); + stmt->setFloat(index++, finiteAlways(GetPositionY())); + stmt->setFloat(index++, finiteAlways(GetPositionZ())); + stmt->setFloat(index++, finiteAlways(GetOrientation())); + } else - ss << '0'; - ss << " 0 "; - } + { + stmt->setUInt16(index++, (uint16)GetTeleportDest().GetMapId()); + stmt->setUInt32(index++, (uint32)0); + stmt->setUInt8(index++, (uint8(GetDungeonDifficulty()) | uint8(GetRaidDifficulty()) << 4)); + stmt->setFloat(index++, finiteAlways(GetTeleportDest().GetPositionX())); + stmt->setFloat(index++, finiteAlways(GetTeleportDest().GetPositionY())); + stmt->setFloat(index++, finiteAlways(GetTeleportDest().GetPositionZ())); + stmt->setFloat(index++, finiteAlways(GetTeleportDest().GetOrientation())); + } + + std::ostringstream ss; + ss << m_taxi; + stmt->setString(index++, ss.str()); + stmt->setUInt8(index++, m_cinematic); + stmt->setUInt32(index++, m_Played_time[PLAYED_TIME_TOTAL]); + stmt->setUInt32(index++, m_Played_time[PLAYED_TIME_LEVEL]); + stmt->setFloat(index++, finiteAlways(m_rest_bonus)); + stmt->setUInt32(index++, uint32(time(NULL))); + stmt->setUInt8(index++, (HasFlag(PLAYER_FLAGS, PLAYER_FLAGS_RESTING) ? 1 : 0)); + //save, far from tavern/city + //save, but in tavern/city + stmt->setUInt32(index++, m_resetTalentsCost); + stmt->setUInt32(index++, m_resetTalentsTime); + stmt->setUInt16(index++, (uint16)m_ExtraFlags); + stmt->setUInt8(index++, m_stableSlots); + stmt->setUInt16(index++, (uint16)m_atLoginFlags); + stmt->setUInt16(index++, GetZoneId()); + stmt->setUInt32(index++, m_deathExpireTime); + + ss.str(""); + ss << m_taxi.SaveTaxiDestinationsToString(); + + stmt->setString(index++, ss.str()); + stmt->setUInt32(index++, GetArenaPoints()); + stmt->setUInt32(index++, GetHonorPoints()); + stmt->setUInt32(index++, GetUInt32Value(PLAYER_FIELD_TODAY_CONTRIBUTION)); + stmt->setUInt32(index++, GetUInt32Value(PLAYER_FIELD_YESTERDAY_CONTRIBUTION)); + stmt->setUInt32(index++, GetUInt32Value(PLAYER_FIELD_LIFETIME_HONORABLE_KILLS)); + stmt->setUInt16(index++, GetUInt16Value(PLAYER_FIELD_KILLS, 0)); + stmt->setUInt16(index++, GetUInt16Value(PLAYER_FIELD_KILLS, 1)); + stmt->setUInt32(index++, GetUInt32Value(PLAYER_CHOSEN_TITLE)); + stmt->setUInt64(index++, GetUInt64Value(PLAYER_FIELD_KNOWN_CURRENCIES)); + stmt->setUInt32(index++, GetUInt32Value(PLAYER_FIELD_WATCHED_FACTION_INDEX)); + stmt->setUInt16(index++, (uint16)(GetUInt32Value(PLAYER_BYTES_3) & 0xFFFE)); + stmt->setUInt32(index++, GetHealth()); + + for (uint32 i = 0; i < MAX_POWERS; ++i) + stmt->setUInt32(index++, GetPower(Powers(i))); + + stmt->setUInt32(index++, GetSession()->GetLatency()); + + stmt->setUInt8(index++, m_specsCount); + stmt->setUInt8(index++, m_activeSpec); + + ss.str(""); + for (uint32 i = 0; i < PLAYER_EXPLORED_ZONES_SIZE; ++i) + ss << GetUInt32Value(PLAYER_EXPLORED_ZONES_1 + i) << ' '; + stmt->setString(index++, ss.str()); + + ss.str(""); + // cache equipment... + for (uint32 i = 0; i < EQUIPMENT_SLOT_END * 2; ++i) + ss << GetUInt32Value(PLAYER_VISIBLE_ITEM_1_ENTRYID + i) << ' '; + + // ...and bags for enum opcode + for (uint32 i = INVENTORY_SLOT_BAG_START; i < INVENTORY_SLOT_BAG_END; ++i) + { + if (Item* item = GetItemByPos(INVENTORY_SLOT_BAG_0, i)) + ss << item->GetEntry(); + else + ss << '0'; + ss << " 0 "; + } - ss << "',"; + stmt->setString(index++, ss.str()); + stmt->setUInt32(index++, GetUInt32Value(PLAYER_AMMO_ID)); - ss << GetUInt32Value(PLAYER_AMMO_ID) << ", '"; - for (uint32 i = 0; i < KNOWN_TITLES_SIZE*2; ++i) - ss << GetUInt32Value(PLAYER__FIELD_KNOWN_TITLES + i) << ' '; + ss.str(""); + for (uint32 i = 0; i < KNOWN_TITLES_SIZE*2; ++i) + ss << GetUInt32Value(PLAYER__FIELD_KNOWN_TITLES + i) << ' '; - ss << "',"; - ss << uint32(GetByteValue(PLAYER_FIELD_BYTES, 2)); - ss << ","; - ss << uint32(m_grantableLevels); - ss << ')'; + stmt->setString(index++, ss.str()); + stmt->setUInt8(index++, GetByteValue(PLAYER_FIELD_BYTES, 2)); + stmt->setUInt32(index++, m_grantableLevels); + + stmt->setUInt8(index++, IsInWorld() ? 1 : 0); + // Index + stmt->setUInt32(index++, GetGUIDLow()); + } SQLTransaction trans = CharacterDatabase.BeginTransaction(); - trans->Append(ss.str().c_str()); + trans->Append(stmt); if (m_mailsUpdated) //save mails only when needed _SaveMail(trans); @@ -20123,9 +20187,9 @@ bool Player::ActivateTaxiPathTo(std::vector<uint32> const& nodes, Creature* npc if (sWorld->getBoolConfig(CONFIG_INSTANT_TAXI)) { - TaxiNodesEntry const* lastnode = sTaxiNodesStore.LookupEntry(nodes[nodes.size()-1]); + TaxiNodesEntry const* lastPathNode = sTaxiNodesStore.LookupEntry(nodes[nodes.size()-1]); m_taxi.ClearTaxiDestinations(); - TeleportTo(lastnode->map_id, lastnode->x, lastnode->y, lastnode->z, GetOrientation()); + TeleportTo(lastPathNode->map_id, lastPathNode->x, lastPathNode->y, lastPathNode->z, GetOrientation()); return false; } else @@ -22000,10 +22064,10 @@ bool Player::HasQuestForGO(int32 GOId) const for (uint8 j = 0; j < QUEST_OBJECTIVES_COUNT; ++j) { - if (qinfo->ReqCreatureOrGOId[j] >= 0) //skip non GO case + if (qinfo->RequiredNpcOrGo[j] >= 0) //skip non GO case continue; - if ((-1)*GOId == qinfo->ReqCreatureOrGOId[j] && qs.m_creatureOrGOcount[j] < qinfo->ReqCreatureOrGOCount[j]) + if ((-1)*GOId == qinfo->RequiredNpcOrGo[j] && qs.m_creatureOrGOcount[j] < qinfo->RequiredNpcOrGoCount[j]) return true; } } @@ -22850,7 +22914,6 @@ bool Player::CanCaptureTowerPoint() } uint32 Player::GetBarberShopCost(uint8 newhairstyle, uint8 newhaircolor, uint8 newfacialhair, BarberShopStyleEntry const* newSkin) - { uint8 level = getLevel(); @@ -24328,9 +24391,9 @@ void Player::ActivateSpec(uint8 spec) // Let client clear his current Actions SendActionButtons(2); // m_actionButtons.clear() is called in the next _LoadActionButtons - for (uint32 i = 0; i < sTalentStore.GetNumRows(); ++i) + for (uint32 talentId = 0; talentId < sTalentStore.GetNumRows(); ++talentId) { - TalentEntry const* talentInfo = sTalentStore.LookupEntry(i); + TalentEntry const* talentInfo = sTalentStore.LookupEntry(talentId); if (!talentInfo) continue; diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h index bb39d902ae7..651b99e7cb4 100755 --- a/src/server/game/Entities/Player/Player.h +++ b/src/server/game/Entities/Player/Player.h @@ -395,10 +395,10 @@ enum PlayerFlags PLAYER_FLAGS_NO_XP_GAIN = 0x02000000, PLAYER_FLAGS_UNK26 = 0x04000000, PLAYER_FLAGS_UNK27 = 0x08000000, - PLAYER_FLAGS_UNK28 = 0x01000000, - PLAYER_FLAGS_UNK29 = 0x02000000, - PLAYER_FLAGS_UNK30 = 0x04000000, - PLAYER_FLAGS_UNK31 = 0x08000000, + PLAYER_FLAGS_UNK28 = 0x10000000, + PLAYER_FLAGS_UNK29 = 0x20000000, + PLAYER_FLAGS_UNK30 = 0x40000000, + PLAYER_FLAGS_UNK31 = 0x80000000, }; // used for PLAYER__FIELD_KNOWN_TITLES field (uint64), (1<<bit_index) without (-1) @@ -774,7 +774,7 @@ enum PlayerChatTag CHAT_TAG_AFK = 0x01, CHAT_TAG_DND = 0x02, CHAT_TAG_GM = 0x04, - CHAT_TAG_UNK = 0x08, // Probably battleground commentator + CHAT_TAG_COM = 0x08, // Commentator CHAT_TAG_DEV = 0x10, }; @@ -1410,10 +1410,11 @@ class Player : public Unit, public GridObject<Player> void IncompleteQuest(uint32 quest_id); void RewardQuest(Quest const* quest, uint32 reward, Object* questGiver, bool announce = true); void FailQuest(uint32 quest_id); - bool SatisfyQuestSkillOrClass(Quest const* qInfo, bool msg); + bool SatisfyQuestSkill(Quest const* qInfo, bool msg) const; bool SatisfyQuestLevel(Quest const* qInfo, bool msg); bool SatisfyQuestLog(bool msg); bool SatisfyQuestPreviousQuest(Quest const* qInfo, bool msg); + bool SatisfyQuestClass(Quest const* qInfo, bool msg) const; bool SatisfyQuestRace(Quest const* qInfo, bool msg); bool SatisfyQuestReputation(Quest const* qInfo, bool msg); bool SatisfyQuestStatus(Quest const* qInfo, bool msg); @@ -1493,7 +1494,7 @@ class Player : public Unit, public GridObject<Player> void SendQuestReward(Quest const* quest, uint32 XP, Object* questGiver); void SendQuestFailed(uint32 questId, InventoryResult reason = EQUIP_ERR_OK); void SendQuestTimerFailed(uint32 quest_id); - void SendCanTakeQuestResponse(uint32 msg); + void SendCanTakeQuestResponse(uint32 msg) const; void SendQuestConfirmAccept(Quest const* quest, Player* pReceiver); void SendPushToPartyResponse(Player* player, uint32 msg); void SendQuestUpdateAddItem(Quest const* quest, uint32 item_idx, uint16 count); @@ -1530,7 +1531,7 @@ class Player : public Unit, public GridObject<Player> /*** SAVE SYSTEM ***/ /*********************************************************/ - void SaveToDB(); + void SaveToDB(bool create = false); void SaveInventoryAndGoldToDB(SQLTransaction& trans); // fast save function for item/money cheating preventing void SaveGoldToDB(SQLTransaction& trans); @@ -2300,6 +2301,7 @@ class Player : public Unit, public GridObject<Player> m_mover = target; m_mover->m_movedPlayer = this; } + void SetSeer(WorldObject* target) { m_seer = target; } void SetViewpoint(WorldObject* target, bool apply); WorldObject* GetViewpoint() const; @@ -2493,6 +2495,41 @@ class Player : public Unit, public GridObject<Player> void AddWhisperWhiteList(uint64 guid) { WhisperList.push_back(guid); } bool IsInWhisperWhiteList(uint64 guid); + //! Return collision height sent to client + float GetCollisionHeight(bool mounted) + { + if (mounted) + { + CreatureDisplayInfoEntry const* mountDisplayInfo = sCreatureDisplayInfoStore.LookupEntry(GetUInt32Value(UNIT_FIELD_MOUNTDISPLAYID)); + if (!mountDisplayInfo) + return GetCollisionHeight(false); + + CreatureModelDataEntry const* mountModelData = sCreatureModelDataStore.LookupEntry(mountDisplayInfo->ModelId); + if (!mountModelData) + return GetCollisionHeight(false); + + CreatureDisplayInfoEntry const* displayInfo = sCreatureDisplayInfoStore.LookupEntry(GetNativeDisplayId()); + ASSERT(displayInfo); + CreatureModelDataEntry const* modelData = sCreatureModelDataStore.LookupEntry(displayInfo->ModelId); + ASSERT(modelData); + + float scaleMod = GetFloatValue(OBJECT_FIELD_SCALE_X); // 99% sure about this + + return scaleMod * mountModelData->MountHeight + modelData->CollisionHeight * 0.5f; + } + else + { + //! Dismounting case - use basic default model data + CreatureDisplayInfoEntry const* displayInfo = sCreatureDisplayInfoStore.LookupEntry(GetNativeDisplayId()); + ASSERT(displayInfo); + CreatureModelDataEntry const* modelData = sCreatureModelDataStore.LookupEntry(displayInfo->ModelId); + ASSERT(modelData); + + return modelData->CollisionHeight; + } + //! TODO: Need a proper calculation for collision height when mounted + } + protected: // Gamemaster whisper whitelist WhisperListContainer WhisperList; diff --git a/src/server/game/Entities/Player/SocialMgr.cpp b/src/server/game/Entities/Player/SocialMgr.cpp index e9798b61a60..dbb18496515 100755 --- a/src/server/game/Entities/Player/SocialMgr.cpp +++ b/src/server/game/Entities/Player/SocialMgr.cpp @@ -130,7 +130,7 @@ void PlayerSocial::SendSocialList(Player* player) sSocialMgr->GetFriendInfo(player, itr->first, itr->second); data << uint64(itr->first); // player guid - data << uint32(itr->second.Flags); // player flag (0x1-friend?, 0x2-ignored?, 0x4-muted?) + data << uint32(itr->second.Flags); // player flag (0x1 = Friend, 0x2 = Ignored, 0x4 = Muted) data << itr->second.Note; // string note if (itr->second.Flags & SOCIAL_FLAG_FRIEND) // if IsFriend() { diff --git a/src/server/game/Entities/Transport/Transport.cpp b/src/server/game/Entities/Transport/Transport.cpp index 28895cff35e..b92e1ad21dc 100755 --- a/src/server/game/Entities/Transport/Transport.cpp +++ b/src/server/game/Entities/Transport/Transport.cpp @@ -98,7 +98,7 @@ void MapManager::LoadTransports() m_TransportsByMap[*i].insert(t); //If we someday decide to use the grid to track transports, here: - t->SetMap(sMapMgr->CreateMap(mapid, t, 0)); + t->SetMap(sMapMgr->CreateBaseMap(mapid)); t->AddToWorld(); ++count; @@ -365,9 +365,9 @@ bool Transport::GenerateWaypoints(uint32 pathid, std::set<uint32> &mapids) if (keyFrames[keyFrames.size() - 1].node->mapid != keyFrames[0].node->mapid) teleport = true; - WayPoint pos(keyFrames[0].node->mapid, keyFrames[0].node->x, keyFrames[0].node->y, keyFrames[0].node->z, teleport, 0, + m_WayPoints[0] = WayPoint(keyFrames[0].node->mapid, keyFrames[0].node->x, keyFrames[0].node->y, keyFrames[0].node->z, teleport, 0, keyFrames[0].node->arrivalEventID, keyFrames[0].node->departureEventID); - m_WayPoints[0] = pos; + t += keyFrames[0].node->delay * 1000; uint32 cM = keyFrames[0].node->mapid; @@ -387,12 +387,11 @@ bool Transport::GenerateWaypoints(uint32 pathid, std::set<uint32> &mapids) if (d > 0) { - float newX, newY, newZ; - newX = keyFrames[i].node->x + (keyFrames[i + 1].node->x - keyFrames[i].node->x) * d / keyFrames[i + 1].distFromPrev; - newY = keyFrames[i].node->y + (keyFrames[i + 1].node->y - keyFrames[i].node->y) * d / keyFrames[i + 1].distFromPrev; - newZ = keyFrames[i].node->z + (keyFrames[i + 1].node->z - keyFrames[i].node->z) * d / keyFrames[i + 1].distFromPrev; + float newX = keyFrames[i].node->x + (keyFrames[i + 1].node->x - keyFrames[i].node->x) * d / keyFrames[i + 1].distFromPrev; + float newY = keyFrames[i].node->y + (keyFrames[i + 1].node->y - keyFrames[i].node->y) * d / keyFrames[i + 1].distFromPrev; + float newZ = keyFrames[i].node->z + (keyFrames[i + 1].node->z - keyFrames[i].node->z) * d / keyFrames[i + 1].distFromPrev; - bool teleport = false; + teleport = false; if (keyFrames[i].node->mapid != cM) { teleport = true; @@ -400,9 +399,8 @@ bool Transport::GenerateWaypoints(uint32 pathid, std::set<uint32> &mapids) } // sLog->outString("T: %d, D: %f, x: %f, y: %f, z: %f", t, d, newX, newY, newZ); - WayPoint pos(keyFrames[i].node->mapid, newX, newY, newZ, teleport, 0); if (teleport) - m_WayPoints[t] = pos; + m_WayPoints[t] = WayPoint(keyFrames[i].node->mapid, newX, newY, newZ, teleport, 0); } if (tFrom < tTo) // caught in tFrom dock's "gravitational pull" @@ -439,25 +437,18 @@ bool Transport::GenerateWaypoints(uint32 pathid, std::set<uint32> &mapids) else t += (long)keyFrames[i + 1].tTo % 100; - bool teleport = false; + teleport = false; if ((keyFrames[i + 1].node->actionFlag == 1) || (keyFrames[i + 1].node->mapid != keyFrames[i].node->mapid)) { teleport = true; cM = keyFrames[i + 1].node->mapid; } - WayPoint pos(keyFrames[i + 1].node->mapid, keyFrames[i + 1].node->x, keyFrames[i + 1].node->y, keyFrames[i + 1].node->z, teleport, + m_WayPoints[t] = WayPoint(keyFrames[i + 1].node->mapid, keyFrames[i + 1].node->x, keyFrames[i + 1].node->y, keyFrames[i + 1].node->z, teleport, 0, keyFrames[i + 1].node->arrivalEventID, keyFrames[i + 1].node->departureEventID); // sLog->outString("T: %d, x: %f, y: %f, z: %f, t:%d", t, pos.x, pos.y, pos.z, teleport); -/* - if (keyFrames[i+1].delay > 5) - pos.delayed = true; -*/ - //if (teleport) - m_WayPoints[t] = pos; t += keyFrames[i + 1].node->delay * 1000; - // sLog->outString("------"); } uint32 timer = t; @@ -503,7 +494,7 @@ void Transport::TeleportTransport(uint32 newMapid, float x, float y, float z) RemoveFromWorld(); ResetMap(); - Map* newMap = sMapMgr->CreateMap(newMapid, this, 0); + Map* newMap = sMapMgr->CreateBaseMap(newMapid); SetMap(newMap); ASSERT (GetMap()); AddToWorld(); diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index 109479c3fe6..2e2f5591a5d 100755 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -1512,44 +1512,36 @@ uint32 Unit::CalcArmorReducedDamage(Unit* victim, const uint32 damage, SpellInfo armor = floor(AddPctN(armor, -(*j)->GetAmount())); } + // Apply Player CR_ARMOR_PENETRATION rating and buffs from stances\specializations etc. if (GetTypeId() == TYPEID_PLAYER) { + float bonusPct = 0; AuraEffectList const& ResIgnoreAuras = GetAuraEffectsByType(SPELL_AURA_MOD_ARMOR_PENETRATION_PCT); for (AuraEffectList::const_iterator itr = ResIgnoreAuras.begin(); itr != ResIgnoreAuras.end(); ++itr) { - // item neutral spell if ((*itr)->GetSpellInfo()->EquippedItemClass == -1) { - armor = floor(AddPctN(armor, -(*itr)->GetAmount())); - continue; + if (!spellInfo || (*itr)->IsAffectedOnSpell(spellInfo) || (*itr)->GetMiscValue() & spellInfo->GetSchoolMask()) + bonusPct += (*itr)->GetAmount(); + else if (!(*itr)->GetMiscValue() && !(*itr)->HasSpellClassMask()) + bonusPct += (*itr)->GetAmount(); } - - // item dependent spell - check current weapons - for (int i = 0; i < MAX_ATTACK; ++i) + else { - Item* weapon = ToPlayer()->GetWeaponForAttack(WeaponAttackType(i), true); - - if (weapon && weapon->IsFitToSpellRequirements((*itr)->GetSpellInfo())) - { - armor = floor(AddPctN(armor, -(*itr)->GetAmount())); - break; - } + if (ToPlayer() && ToPlayer()->HasItemFitToSpellRequirements((*itr)->GetSpellInfo())) + bonusPct += (*itr)->GetAmount(); } } - } - // Apply Player CR_ARMOR_PENETRATION rating - if (GetTypeId() == TYPEID_PLAYER) - { float maxArmorPen = 0; - if (getLevel() < 60) + if (victim->getLevel() < 60) maxArmorPen = float(400 + 85 * victim->getLevel()); else maxArmorPen = 400 + 85 * victim->getLevel() + 4.5f * 85 * (victim->getLevel() - 59); // Cap armor penetration to this number maxArmorPen = std::min((armor + maxArmorPen) / 3, armor); // Figure out how much armor do we ignore - float armorPen = CalculatePctF(maxArmorPen, ToPlayer()->GetRatingBonusValue(CR_ARMOR_PENETRATION)); + float armorPen = CalculatePctF(maxArmorPen, bonusPct + ToPlayer()->GetRatingBonusValue(CR_ARMOR_PENETRATION)); // Got the value, apply it armor -= std::min(armorPen, maxArmorPen); } @@ -1584,7 +1576,7 @@ void Unit::CalcAbsorbResist(Unit* victim, SpellSchoolMask schoolMask, DamageEffe // Magic damage, check for resists if ((schoolMask & SPELL_SCHOOL_MASK_NORMAL) == 0) { - float victimResistance = float(victim->GetResistance(GetFirstSchoolInMask(schoolMask))); + float victimResistance = float(victim->GetResistance(schoolMask)); victimResistance += float(GetTotalAuraModifierByMiscMask(SPELL_AURA_MOD_TARGET_RESISTANCE, schoolMask)); if (Player* player = ToPlayer()) @@ -1687,12 +1679,12 @@ void Unit::CalcAbsorbResist(Unit* victim, SpellSchoolMask schoolMask, DamageEffe if (currentAbsorb < 0) currentAbsorb = 0; - uint32 absorb = currentAbsorb; + uint32 tempAbsorb = uint32(currentAbsorb); bool defaultPrevented = false; - absorbAurEff->GetBase()->CallScriptEffectAbsorbHandlers(absorbAurEff, aurApp, dmgInfo, absorb, defaultPrevented); - currentAbsorb = absorb; + absorbAurEff->GetBase()->CallScriptEffectAbsorbHandlers(absorbAurEff, aurApp, dmgInfo, tempAbsorb, defaultPrevented); + currentAbsorb = tempAbsorb; if (defaultPrevented) continue; @@ -1705,8 +1697,8 @@ void Unit::CalcAbsorbResist(Unit* victim, SpellSchoolMask schoolMask, DamageEffe dmgInfo.AbsorbDamage(currentAbsorb); - absorb = currentAbsorb; - absorbAurEff->GetBase()->CallScriptEffectAfterAbsorbHandlers(absorbAurEff, aurApp, dmgInfo, absorb); + tempAbsorb = currentAbsorb; + absorbAurEff->GetBase()->CallScriptEffectAfterAbsorbHandlers(absorbAurEff, aurApp, dmgInfo, tempAbsorb); // Check if our aura is using amount to count damage if (absorbAurEff->GetAmount() >= 0) @@ -1738,12 +1730,12 @@ void Unit::CalcAbsorbResist(Unit* victim, SpellSchoolMask schoolMask, DamageEffe if (currentAbsorb < 0) currentAbsorb = 0; - uint32 absorb = currentAbsorb; + uint32 tempAbsorb = currentAbsorb; bool defaultPrevented = false; - absorbAurEff->GetBase()->CallScriptEffectManaShieldHandlers(absorbAurEff, aurApp, dmgInfo, absorb, defaultPrevented); - currentAbsorb = absorb; + absorbAurEff->GetBase()->CallScriptEffectManaShieldHandlers(absorbAurEff, aurApp, dmgInfo, tempAbsorb, defaultPrevented); + currentAbsorb = tempAbsorb; if (defaultPrevented) continue; @@ -1766,8 +1758,8 @@ void Unit::CalcAbsorbResist(Unit* victim, SpellSchoolMask schoolMask, DamageEffe dmgInfo.AbsorbDamage(currentAbsorb); - absorb = currentAbsorb; - absorbAurEff->GetBase()->CallScriptEffectAfterManaShieldHandlers(absorbAurEff, aurApp, dmgInfo, absorb); + tempAbsorb = currentAbsorb; + absorbAurEff->GetBase()->CallScriptEffectAfterManaShieldHandlers(absorbAurEff, aurApp, dmgInfo, tempAbsorb); // Check if our aura is using amount to count damage if (absorbAurEff->GetAmount() >= 0) @@ -2220,22 +2212,23 @@ void Unit::SendMeleeAttackStart(Unit* victim) WorldPacket data(SMSG_ATTACKSTART, 8 + 8); data << uint64(GetGUID()); data << uint64(victim->GetGUID()); - SendMessageToSet(&data, true); sLog->outStaticDebug("WORLD: Sent SMSG_ATTACKSTART"); } void Unit::SendMeleeAttackStop(Unit* victim) { - if (!victim) - return; - WorldPacket data(SMSG_ATTACKSTOP, (8+8+4)); // we guess size data.append(GetPackGUID()); - data.append(victim->GetPackGUID()); // can be 0x00... - data << uint32(0); // can be 0x1 + data.append(victim ? victim->GetPackGUID() : 0); // can be 0x00... + data << uint32(0); // can be 0x1 SendMessageToSet(&data, true); - sLog->outDetail("%s %u stopped attacking %s %u", (GetTypeId() == TYPEID_PLAYER ? "player" : "creature"), GetGUIDLow(), (victim->GetTypeId() == TYPEID_PLAYER ? "player" : "creature"), victim->GetGUIDLow()); + sLog->outStaticDebug("WORLD: Sent SMSG_ATTACKSTART"); + + if (victim) + sLog->outDetail("%s %u stopped attacking %s %u", (GetTypeId() == TYPEID_PLAYER ? "Player" : "Creature"), GetGUIDLow(), (victim->GetTypeId() == TYPEID_PLAYER ? "player" : "creature"), victim->GetGUIDLow()); + else + sLog->outDetail("%s %u stopped attacking", (GetTypeId() == TYPEID_PLAYER ? "Player" : "Creature"), GetGUIDLow()); } bool Unit::isSpellBlocked(Unit* victim, SpellInfo const* spellProto, WeaponAttackType attackType) @@ -3743,13 +3736,13 @@ void Unit::RemoveAurasDueToSpellBySteal(uint32 spellId, uint64 casterGUID, Unit* // Cast duration to unsigned to prevent permanent aura's such as Righteous Fury being permanently added to caster uint32 dur = std::min(2u * MINUTE * IN_MILLISECONDS, uint32(aura->GetDuration())); - if (Aura* newAura = stealer->GetAura(aura->GetId(), aura->GetCasterGUID())) + if (Aura* oldAura = stealer->GetAura(aura->GetId(), aura->GetCasterGUID())) { if (stealCharge) - newAura->ModCharges(1); + oldAura->ModCharges(1); else - newAura->ModStackAmount(1); - newAura->SetDuration(int32(dur)); + oldAura->ModStackAmount(1); + oldAura->SetDuration(int32(dur)); } else { @@ -5241,6 +5234,7 @@ bool Unit::HandleDummyAuraProc(Unit* victim, uint32 damage, AuraEffect* triggere break; case CLASS_ROGUE: // 39511, 40997, 40998, 41002, 41005, 41011 case CLASS_WARRIOR: // 39511, 40997, 40998, 41002, 41005, 41011 + case CLASS_DEATH_KNIGHT: triggered_spell_id = RAND(39511, 40997, 40998, 41002, 41005, 41011); cooldown_spell_id = 39511; break; @@ -6289,7 +6283,7 @@ bool Unit::HandleDummyAuraProc(Unit* victim, uint32 damage, AuraEffect* triggere { if (procSpell->SpellVisual[0] == 750 && procSpell->Effects[1].ApplyAuraName == 3) { - if (target->GetTypeId() == TYPEID_UNIT) + if (target && target->GetTypeId() == TYPEID_UNIT) { triggered_spell_id = 54820; break; @@ -7249,7 +7243,7 @@ bool Unit::HandleDummyAuraProc(Unit* victim, uint32 damage, AuraEffect* triggere // Item - Shaman T10 Elemental 4P Bonus case 70817: { - if(!target) + if (!target) return false; // try to find spell Flame Shock on the target if (AuraEffect const* aurEff = target->GetAuraEffect(SPELL_AURA_PERIODIC_DAMAGE, SPELLFAMILY_SHAMAN, 0x10000000, 0x0, 0x0, GetGUID())) @@ -8000,11 +7994,8 @@ bool Unit::HandleAuraProc(Unit* victim, uint32 damage, Aura* triggeredByAura, Sp else if (dummySpell->SpellIconID == 3015) { *handled = true; - if (procSpell->Category == SPELLCATEGORY_JUDGEMENT) - { - CastSpell(victim, 68055, true); - return true; - } + CastSpell(victim, 68055, true); + return true; } // Glyph of Divinity else if (dummySpell->Id == 54939) @@ -8409,6 +8400,13 @@ bool Unit::HandleProcTriggerSpell(Unit* victim, uint32 damage, AuraEffect* trigg basepoints0 += victim->GetRemainingPeriodicAmount(GetGUID(), trigger_spell_id, SPELL_AURA_PERIODIC_DAMAGE); break; } + // Item - Hunter T9 4P Bonus + if (auraSpellInfo->Id == 67151) + { + trigger_spell_id = 68130; + target = this; + break; + } break; } case SPELLFAMILY_PALADIN: @@ -10895,12 +10893,6 @@ bool Unit::isSpellCrit(Unit* victim, SpellInfo const* spellProto, SpellSchoolMas if (victim->HasAura(6788)) crit_chance+=(*i)->GetAmount(); break; - case 21: // Test of Faith - case 6935: - case 6918: - if (victim->HealthBelowPct(50)) - crit_chance+=(*i)->GetAmount(); - break; default: break; } @@ -11125,11 +11117,6 @@ uint32 Unit::SpellHealingBonus(Unit* victim, SpellInfo const* spellProto, uint32 case 3736: // Hateful Totem of the Third Wind / Increased Lesser Healing Wave / LK Arena (4/5/6) Totem of the Third Wind / Savage Totem of the Third Wind DoneTotal += (*i)->GetAmount(); break; - case 7997: // Renewed Hope - case 7998: - if (victim->HasAura(6788)) - AddPctN(DoneTotalMod, (*i)->GetAmount()); - break; case 21: // Test of Faith case 6935: case 6918: @@ -11754,23 +11741,6 @@ void Unit::MeleeDamageBonus(Unit* victim, uint32 *pdamage, WeaponAttackType attT AddPctF(TakenTotalMod, std::max(mod, float((*i)->GetAmount()))); } break; - // Blessing of Sanctuary - // Greater Blessing of Sanctuary - case 19: - case 1804: - { - if ((*i)->GetSpellInfo()->SpellFamilyName != SPELLFAMILY_PALADIN) - continue; - - if ((*i)->GetMiscValue() & (spellProto ? spellProto->GetSchoolMask() : 0)) - AddPctN(TakenTotalMod, (*i)->GetAmount()); - break; - } - // Ebon Plague - case 1933: - if ((*i)->GetMiscValue() & (spellProto ? spellProto->GetSchoolMask() : 0)) - AddPctN(TakenTotalMod, (*i)->GetAmount()); - break; } } @@ -11928,6 +11898,12 @@ void Unit::Mount(uint32 mount, uint32 VehicleId, uint32 creatureEntry) else player->UnsummonPetTemporaryIfAny(); } + + WorldPacket data(SMSG_MOVE_SET_COLLISION_HGT, GetPackGUID().size() + 4 + 4); + data.append(GetPackGUID()); + data << uint32(sWorld->GetGameTime()); // Packet counter + data << player->GetCollisionHeight(true); + player->GetSession()->SendPacket(&data); } RemoveAurasWithInterruptFlags(AURA_INTERRUPT_FLAG_MOUNT); @@ -11941,6 +11917,15 @@ void Unit::Unmount() SetUInt32Value(UNIT_FIELD_MOUNTDISPLAYID, 0); RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_MOUNT); + if (Player* thisPlayer = ToPlayer()) + { + WorldPacket data(SMSG_MOVE_SET_COLLISION_HGT, GetPackGUID().size() + 4 + 4); + data.append(GetPackGUID()); + data << uint32(sWorld->GetGameTime()); // Packet counter + data << thisPlayer->GetCollisionHeight(false); + thisPlayer->GetSession()->SendPacket(&data); + } + WorldPacket data(SMSG_DISMOUNT, 8); data.appendPackGUID(GetGUID()); SendMessageToSet(&data, true); @@ -11949,7 +11934,7 @@ void Unit::Unmount() if (GetTypeId() == TYPEID_PLAYER && GetVehicleKit()) { // Send other players that we are no longer a vehicle - WorldPacket data(SMSG_PLAYER_VEHICLE_DATA, 8+4); + data.Initialize(SMSG_PLAYER_VEHICLE_DATA, 8+4); data.appendPackGUID(GetGUID()); data << uint32(0); ToPlayer()->SendMessageToSet(&data, true); @@ -14331,7 +14316,7 @@ void Unit::ProcDamageAndSpellFor(bool isVictim, Unit* target, uint32 procFlag, u } if (!handled) - for (uint8 effIndex = 0; effIndex<MAX_SPELL_EFFECTS; ++effIndex) + for (uint8 effIndex = 0; effIndex < MAX_SPELL_EFFECTS; ++effIndex) { if (!(i->effMask & (1<<effIndex))) continue; @@ -14357,8 +14342,8 @@ void Unit::ProcDamageAndSpellFor(bool isVictim, Unit* target, uint32 procFlag, u sLog->outDebug(LOG_FILTER_SPELLS_AURAS, "ProcDamageAndSpell: doing %u damage from spell id %u (triggered by %s aura of spell %u)", triggeredByAura->GetAmount(), spellInfo->Id, (isVictim?"a victim's":"an attacker's"), triggeredByAura->GetId()); SpellNonMeleeDamage damageInfo(this, target, spellInfo->Id, spellInfo->SchoolMask); - uint32 damage = SpellDamageBonus(target, spellInfo, triggeredByAura->GetAmount(), SPELL_DIRECT_DAMAGE); - CalculateSpellDamageTaken(&damageInfo, damage, spellInfo); + uint32 newDamage = SpellDamageBonus(target, spellInfo, triggeredByAura->GetAmount(), SPELL_DIRECT_DAMAGE); + CalculateSpellDamageTaken(&damageInfo, newDamage, spellInfo); DealDamageMods(damageInfo.target, damageInfo.damage, &damageInfo.absorb); SendSpellNonMeleeDamageLog(&damageInfo); DealSpellDamage(&damageInfo, true); @@ -15638,6 +15623,9 @@ void Unit::SetControlled(bool apply, UnitState state) case UNIT_STAT_CONFUSED: if (!HasUnitState(UNIT_STAT_STUNNED)) { + ClearUnitState(UNIT_STAT_MELEE_ATTACKING); + SendMeleeAttackStop(); + // SendAutoRepeatCancel ? SetConfused(true); CastStop(); } @@ -15645,6 +15633,9 @@ void Unit::SetControlled(bool apply, UnitState state) case UNIT_STAT_FLEEING: if (!HasUnitState(UNIT_STAT_STUNNED | UNIT_STAT_CONFUSED)) { + ClearUnitState(UNIT_STAT_MELEE_ATTACKING); + SendMeleeAttackStop(); + // SendAutoRepeatCancel ? SetFeared(true); CastStop(); } @@ -16562,10 +16553,9 @@ float Unit::GetCombatRatingReduction(CombatRating cr) const if (Player const* player = ToPlayer()) return player->GetRatingBonusValue(cr); // Player's pet get resilience from owner - else if (isPet()) - if (Unit* owner = GetOwner()) - if (Player* player = owner->ToPlayer()) - return player->GetRatingBonusValue(cr); + else if (isPet() && GetOwner()) + if (Player* owner = GetOwner()->ToPlayer()) + return owner->GetRatingBonusValue(cr); return 0.0f; } @@ -17389,7 +17379,7 @@ uint32 Unit::GetRemainingPeriodicAmount(uint64 caster, uint32 spellId, AuraType AuraEffectList const& periodicAuras = GetAuraEffectsByType(auraType); for (AuraEffectList::const_iterator i = periodicAuras.begin(); i != periodicAuras.end(); ++i) { - if ((*i)->GetCasterGUID() != caster || (*i)->GetId() != spellId || (*i)->GetEffIndex() != effectIndex || (*i)->GetTotalTicks() == 0) + if ((*i)->GetCasterGUID() != caster || (*i)->GetId() != spellId || (*i)->GetEffIndex() != effectIndex || !(*i)->GetTotalTicks()) continue; amount += uint32(((*i)->GetAmount() * std::max<int32>((*i)->GetTotalTicks() - int32((*i)->GetTickNumber()), 0)) / (*i)->GetTotalTicks()); break; @@ -17405,6 +17395,17 @@ void Unit::SendClearTarget() SendMessageToSet(&data, false); } +uint32 Unit::GetResistance(SpellSchoolMask mask) const +{ + int32 resist = -1; + for (int i = SPELL_SCHOOL_NORMAL; i < MAX_SPELL_SCHOOL; ++i) + if (mask & (1 << i) && (resist < 0 || resist > int32(GetResistance(SpellSchools(i))))) + resist = int32(GetResistance(SpellSchools(i))); + + // resist value will never be negative here + return uint32(resist); +} + void CharmInfo::SetIsCommandAttack(bool val) { m_isCommandAttack = val; diff --git a/src/server/game/Entities/Unit/Unit.h b/src/server/game/Entities/Unit/Unit.h index 36844d97b67..5906a7f3a2b 100755 --- a/src/server/game/Entities/Unit/Unit.h +++ b/src/server/game/Entities/Unit/Unit.h @@ -1310,7 +1310,7 @@ class Unit : public WorldObject void CombatStopWithPets(bool includingCast = false); void StopAttackFaction(uint32 faction_id); Unit* SelectNearbyTarget(float dist = NOMINAL_MELEE_RANGE) const; - void SendMeleeAttackStop(Unit* victim); + void SendMeleeAttackStop(Unit* victim = NULL); void SendMeleeAttackStart(Unit* pVictim); void AddUnitState(uint32 f) { m_state |= f; } @@ -1346,6 +1346,7 @@ class Unit : public WorldObject void SetArmor(int32 val) { SetResistance(SPELL_SCHOOL_NORMAL, val); } uint32 GetResistance(SpellSchools school) const { return GetUInt32Value(UNIT_FIELD_RESISTANCES+school); } + uint32 GetResistance(SpellSchoolMask mask) const; void SetResistance(SpellSchools school, int32 val) { SetStatInt32Value(UNIT_FIELD_RESISTANCES+school, val); } uint32 GetHealth() const { return GetUInt32Value(UNIT_FIELD_HEALTH); } @@ -1517,7 +1518,7 @@ class Unit : public WorldObject { value = soft_cap + ((value - soft_cap) / 2); } - + return value; } uint32 GetUnitMeleeSkill(Unit const* target = NULL) const { return (target ? getLevelForTarget(target) : getLevel()) * 5; } diff --git a/src/server/game/Entities/Vehicle/Vehicle.cpp b/src/server/game/Entities/Vehicle/Vehicle.cpp index 107e275d47b..fe018ec78ce 100755 --- a/src/server/game/Entities/Vehicle/Vehicle.cpp +++ b/src/server/game/Entities/Vehicle/Vehicle.cpp @@ -172,8 +172,12 @@ void Vehicle::ApplyAllImmunities() // Different immunities for vehicles goes below switch (GetVehicleInfo()->m_ID) { - case 160: + // code below prevents a bug with movable cannons + case 160: // Strand of the Ancients + case 244: // Wintergrasp + case 510: // Isle of Conquest _me->SetControlled(true, UNIT_STAT_ROOT); + // why we need to apply this? we can simple add immunities to slow mechanic in DB _me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_MOD_DECREASE_SPEED, true); break; default: diff --git a/src/server/game/Events/GameEventMgr.cpp b/src/server/game/Events/GameEventMgr.cpp index 4cc735a98d7..dbcb07e88f5 100755 --- a/src/server/game/Events/GameEventMgr.cpp +++ b/src/server/game/Events/GameEventMgr.cpp @@ -1170,7 +1170,7 @@ void GameEventMgr::GameEventSpawn(int16 event_id) sObjectMgr->AddCreatureToGrid(*itr, data); // Spawn if necessary (loaded grids only) - Map* map = const_cast<Map*>(sMapMgr->CreateBaseMap(data->mapid)); + Map* map = sMapMgr->CreateBaseMap(data->mapid); // We use spawn coords to spawn if (!map->Instanceable() && map->IsGridLoaded(data->posX, data->posY)) { @@ -1199,7 +1199,7 @@ void GameEventMgr::GameEventSpawn(int16 event_id) sObjectMgr->AddGameobjectToGrid(*itr, data); // Spawn if necessary (loaded grids only) // this base map checked as non-instanced and then only existed - Map* map = const_cast<Map*>(sMapMgr->CreateBaseMap(data->mapid)); + Map* map = sMapMgr->CreateBaseMap(data->mapid); // We use current coords to unspawn, not spawn coords since creature can have changed grid if (!map->Instanceable() && map->IsGridLoaded(data->posX, data->posY)) { diff --git a/src/server/game/Globals/ObjectAccessor.cpp b/src/server/game/Globals/ObjectAccessor.cpp index 28dcd64e3b7..82532e6ae29 100755 --- a/src/server/game/Globals/ObjectAccessor.cpp +++ b/src/server/game/Globals/ObjectAccessor.cpp @@ -199,12 +199,20 @@ void ObjectAccessor::RemoveCorpse(Corpse* corpse) { ASSERT(corpse && corpse->GetType() != CORPSE_BONES); + //TODO: more works need to be done for corpse and other world object if (Map* map = corpse->FindMap()) { corpse->DestroyForNearbyPlayers(); - map->RemoveFromMap(corpse, false); + if (corpse->IsInGrid()) + map->RemoveFromMap(corpse, false); + else + { + corpse->RemoveFromWorld(); + corpse->ResetMap(); + } } else + corpse->RemoveFromWorld(); // Critical section @@ -250,6 +258,10 @@ void ObjectAccessor::AddCorpsesToGrid(GridCoord const& gridpair, GridType& grid, for (Player2CorpsesMapType::iterator iter = i_player2corpse.begin(); iter != i_player2corpse.end(); ++iter) { + // We need this check otherwise a corpose may be added to a grid twice + if (iter->second->IsInGrid()) + continue; + if (iter->second->GetGridCoord() == gridpair) { // verify, if the corpse in our instance (add only corpses which are) @@ -281,6 +293,7 @@ Corpse* ObjectAccessor::ConvertCorpseForPlayer(uint64 player_guid, bool insignia // remove corpse from player_guid -> corpse map and from current map RemoveCorpse(corpse); + // remove corpse from DB SQLTransaction trans = CharacterDatabase.BeginTransaction(); corpse->DeleteFromDB(trans); diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp index 287ce288a88..6b0601d9663 100755 --- a/src/server/game/Globals/ObjectMgr.cpp +++ b/src/server/game/Globals/ObjectMgr.cpp @@ -1599,7 +1599,7 @@ uint32 ObjectMgr::AddGOData(uint32 entry, uint32 mapId, float x, float y, float if (!goinfo) return 0; - Map* map = const_cast<Map*>(sMapMgr->CreateBaseMap(mapId)); + Map* map = sMapMgr->CreateBaseMap(mapId); if (!map) return 0; @@ -1660,7 +1660,7 @@ bool ObjectMgr::MoveCreData(uint32 guid, uint32 mapId, Position pos) AddCreatureToGrid(guid, &data); // Spawn if necessary (loaded grids only) - if (Map* map = const_cast<Map*>(sMapMgr->CreateBaseMap(mapId))) + if (Map* map = sMapMgr->CreateBaseMap(mapId)) { // We use spawn coords to spawn if (!map->Instanceable() && map->IsGridLoaded(data.posX, data.posY)) @@ -1713,7 +1713,7 @@ uint32 ObjectMgr::AddCreData(uint32 entry, uint32 /*team*/, uint32 mapId, float AddCreatureToGrid(guid, &data); // Spawn if necessary (loaded grids only) - if (Map* map = const_cast<Map*>(sMapMgr->CreateBaseMap(mapId))) + if (Map* map = sMapMgr->CreateBaseMap(mapId)) { // We use spawn coords to spawn if (!map->Instanceable() && !map->IsRemovalGrid(x, y)) @@ -3691,42 +3691,41 @@ void ObjectMgr::LoadQuests() mExclusiveQuestGroups.clear(); - // 0 1 2 3 4 5 6 7 8 9 - QueryResult result = WorldDatabase.Query("SELECT entry, Method, ZoneOrSort, SkillOrClassMask, MinLevel, MaxLevel, QuestLevel, Type, RequiredRaces, RequiredSkillValue, " - // 10 11 12 13 14 15 16 17 18 19 - "RepObjectiveFaction, RepObjectiveValue, RepObjectiveFaction2, RepObjectiveValue2, RequiredMinRepFaction, RequiredMinRepValue, RequiredMaxRepFaction, RequiredMaxRepValue, SuggestedPlayers, LimitTime, " - // 20 21 22 23 24 25 26 27 28 29 30 31 32 33 - "QuestFlags, SpecialFlags, CharTitleId, PlayersSlain, BonusTalents, RewardArenaPoints, PrevQuestId, NextQuestId, ExclusiveGroup, NextQuestInChain, RewXPId, SrcItemId, SrcItemCount, SrcSpell, " - // 34 35 36 37 38 39 40 41 42 43 44 - "Title, Details, Objectives, OfferRewardText, RequestItemsText, EndText, CompletedText, ObjectiveText1, ObjectiveText2, ObjectiveText3, ObjectiveText4, " - // 45 46 47 48 49 50 51 52 53 54 55 56 - "ReqItemId1, ReqItemId2, ReqItemId3, ReqItemId4, ReqItemId5, ReqItemId6, ReqItemCount1, ReqItemCount2, ReqItemCount3, ReqItemCount4, ReqItemCount5, ReqItemCount6, " - // 57 58 59 60 61 62 63 64 - "ReqSourceId1, ReqSourceId2, ReqSourceId3, ReqSourceId4, ReqSourceCount1, ReqSourceCount2, ReqSourceCount3, ReqSourceCount4, " - // 65 66 67 68 69 70 71 72 - "ReqCreatureOrGOId1, ReqCreatureOrGOId2, ReqCreatureOrGOId3, ReqCreatureOrGOId4, ReqCreatureOrGOCount1, ReqCreatureOrGOCount2, ReqCreatureOrGOCount3, ReqCreatureOrGOCount4, " - // 73 74 75 76 - "ReqSpellCast1, ReqSpellCast2, ReqSpellCast3, ReqSpellCast4, " - // 77 78 79 80 81 82 - "RewChoiceItemId1, RewChoiceItemId2, RewChoiceItemId3, RewChoiceItemId4, RewChoiceItemId5, RewChoiceItemId6, " - // 83 84 85 86 87 88 - "RewChoiceItemCount1, RewChoiceItemCount2, RewChoiceItemCount3, RewChoiceItemCount4, RewChoiceItemCount5, RewChoiceItemCount6, " - // 89 90 91 92 93 94 95 96 - "RewItemId1, RewItemId2, RewItemId3, RewItemId4, RewItemCount1, RewItemCount2, RewItemCount3, RewItemCount4, " - // 97 98 99 100 101 102 103 104 105 106 - "RewRepFaction1, RewRepFaction2, RewRepFaction3, RewRepFaction4, RewRepFaction5, RewRepValueId1, RewRepValueId2, RewRepValueId3, RewRepValueId4, RewRepValueId5, " - // 107 108 109 110 111 - "RewRepValue1, RewRepValue2, RewRepValue3, RewRepValue4, RewRepValue5, " - // 112 113 114 115 116 117 118 119 120 121 122 123 - "RewHonorAddition, RewHonorMultiplier, RewOrReqMoney, RewMoneyMaxLevel, RewSpell, RewSpellCast, RewMailTemplateId, RewMailDelaySecs, PointMapId, PointX, PointY, PointOpt, " - // 124 125 126 127 128 129 130 131 - "DetailsEmote1, DetailsEmote2, DetailsEmote3, DetailsEmote4, DetailsEmoteDelay1, DetailsEmoteDelay2, DetailsEmoteDelay3, DetailsEmoteDelay4, " - // 132 133 134 135 136 137 - "IncompleteEmote, CompleteEmote, OfferRewardEmote1, OfferRewardEmote2, OfferRewardEmote3, OfferRewardEmote4, " - // 138 139 140 141 - "OfferRewardEmoteDelay1, OfferRewardEmoteDelay2, OfferRewardEmoteDelay3, OfferRewardEmoteDelay4, " - // 142 143 - "StartScript, CompleteScript" + QueryResult result = WorldDatabase.Query("SELECT " + //0 1 2 3 4 5 6 7 8 9 10 11 12 + "Id, Method, Level, MinLevel, MaxLevel, ZoneOrSort, Type, SuggestedPlayers, LimitTime, RequiredClasses, RequiredRaces, RequiredSkillId, RequiredSkillPoints, " + // 13 14 15 16 17 18 19 20 + "RequiredFactionId1, RequiredFactionId2, RequiredFactionValue1, RequiredFactionValue2, RequiredMinRepFaction, RequiredMaxRepFaction, RequiredMinRepValue, RequiredMaxRepValue, " + // 21 22 23 24 25 26 27 28 29 30 31 + "PrevQuestId, NextQuestId, ExclusiveGroup, NextQuestIdChain, RewardXPId, RewardOrRequiredMoney, RewardMoneyMaxLevel, RewardSpell, RewardSpellCast, RewardHonor, RewardHonorMultiplier, " + // 32 33 34 35 36 37 38 39 40 41 42 + "RewardMailTemplateId, RewardMailDelay, SourceItemId, SourceItemCount, SourceSpellId, Flags, SpecialFlags, RewardTitleId, RequiredPlayerKills, RewardTalents, RewardArenaPoints, " + // 43 44 45 46 47 48 49 50 + "RewardItemId1, RewardItemId2, RewardItemId3, RewardItemId4, RewardItemCount1, RewardItemCount2, RewardItemCount3, RewardItemCount4, " + // 51 52 53 54 55 56 57 58 59 60 61 62 + "RewardChoiceItemId1, RewardChoiceItemId2, RewardChoiceItemId3, RewardChoiceItemId4, RewardChoiceItemId5, RewardChoiceItemId6, RewardChoiceItemCount1, RewardChoiceItemCount2, RewardChoiceItemCount3, RewardChoiceItemCount4, RewardChoiceItemCount5, RewardChoiceItemCount6, " + // 63 64 65 66 67 68 69 70 71 72 + "RewardFactionId1, RewardFactionId2, RewardFactionId3, RewardFactionId4, RewardFactionId5, RewardFactionValueId1, RewardFactionValueId2, RewardFactionValueId3, RewardFactionValueId4, RewardFactionValueId5, " + // 73 74 75 76 77 + "RewardFactionValueIdOverride1, RewardFactionValueIdOverride2, RewardFactionValueIdOverride3, RewardFactionValueIdOverride4, RewardFactionValueIdOverride5, " + // 78 79 80 81 + "PointMapId, PointX, PointY, PointOption, " + // 82 83 84 85 86 87 88 + "Title, Objectives, Details, EndText, OfferRewardText, RequestItemsText, CompletedText, " + // 89 90 91 92 93 94 95 96 + "RequiredNpcOrGo1, RequiredNpcOrGo2, RequiredNpcOrGo3, RequiredNpcOrGo4, RequiredNpcOrGoCount1, RequiredNpcOrGoCount2, RequiredNpcOrGoCount3, RequiredNpcOrGoCount4, " + // 97 98 99 100 101 102 103 104 + "RequiredSourceItemId1, RequiredSourceItemId2, RequiredSourceItemId3, RequiredSourceItemId4, RequiredSourceItemCount1, RequiredSourceItemCount2, RequiredSourceItemCount3, RequiredSourceItemCount4, " + // 105 106 107 108 109 110 111 112 113 114 115 116 + "RequiredItemId1, RequiredItemId2, RequiredItemId3, RequiredItemId4, RequiredItemId5, RequiredItemId6, RequiredItemCount1, RequiredItemCount2, RequiredItemCount3, RequiredItemCount4, RequiredItemCount5, RequiredItemCount6, " + // 117 118 119 120 121 122 123 124 125 + "RequiredSpellCast1, RequiredSpellCast2, RequiredSpellCast3, RequiredSpellCast4, Unknown0, ObjectiveText1, ObjectiveText2, ObjectiveText3, ObjectiveText4, " + // 126 127 128 129 130 131 132 133 134 135 + "DetailsEmote1, DetailsEmote2, DetailsEmote3, DetailsEmote4, DetailsEmoteDelay1, DetailsEmoteDelay2, DetailsEmoteDelay3, DetailsEmoteDelay4, EmoteOnIncomplete, EmoteOnComplete, " + // 136 137 138 139 140 141 142 143 + "OfferRewardEmote1, OfferRewardEmote2, OfferRewardEmote3, OfferRewardEmote4, OfferRewardEmoteDelay1, OfferRewardEmoteDelay2, OfferRewardEmoteDelay3, OfferRewardEmoteDelay4, " + // 144 145 146 + "StartScript, CompleteScript, WDBVerified" " FROM quest_template"); if (!result) { @@ -3764,45 +3763,45 @@ void ObjectMgr::LoadQuests() sLog->outErrorDb("Quest %u has `Method` = %u, expected values are 0, 1 or 2.", qinfo->GetQuestId(), qinfo->GetQuestMethod()); } - if (qinfo->QuestFlags & ~QUEST_TRINITY_FLAGS_DB_ALLOWED) + if (qinfo->Flags & ~QUEST_TRINITY_FLAGS_DB_ALLOWED) { sLog->outErrorDb("Quest %u has `SpecialFlags` = %u > max allowed value. Correct `SpecialFlags` to value <= %u", - qinfo->GetQuestId(), qinfo->QuestFlags >> 20, QUEST_TRINITY_FLAGS_DB_ALLOWED >> 20); - qinfo->QuestFlags &= QUEST_TRINITY_FLAGS_DB_ALLOWED; + qinfo->GetQuestId(), qinfo->Flags >> 20, QUEST_TRINITY_FLAGS_DB_ALLOWED >> 20); + qinfo->Flags &= QUEST_TRINITY_FLAGS_DB_ALLOWED; } - if (qinfo->QuestFlags & QUEST_FLAGS_DAILY && qinfo->QuestFlags & QUEST_FLAGS_WEEKLY) + if (qinfo->Flags & QUEST_FLAGS_DAILY && qinfo->Flags & QUEST_FLAGS_WEEKLY) { - sLog->outErrorDb("Weekly Quest %u is marked as daily quest in `QuestFlags`, removed daily flag.", qinfo->GetQuestId()); - qinfo->QuestFlags &= ~QUEST_FLAGS_DAILY; + sLog->outErrorDb("Weekly Quest %u is marked as daily quest in `Flags`, removed daily flag.", qinfo->GetQuestId()); + qinfo->Flags &= ~QUEST_FLAGS_DAILY; } - if (qinfo->QuestFlags & QUEST_FLAGS_DAILY) + if (qinfo->Flags & QUEST_FLAGS_DAILY) { - if (!(qinfo->QuestFlags & QUEST_TRINITY_FLAGS_REPEATABLE)) + if (!(qinfo->Flags & QUEST_TRINITY_FLAGS_REPEATABLE)) { sLog->outErrorDb("Daily Quest %u not marked as repeatable in `SpecialFlags`, added.", qinfo->GetQuestId()); - qinfo->QuestFlags |= QUEST_TRINITY_FLAGS_REPEATABLE; + qinfo->Flags |= QUEST_TRINITY_FLAGS_REPEATABLE; } } - if (qinfo->QuestFlags & QUEST_FLAGS_WEEKLY) + if (qinfo->Flags & QUEST_FLAGS_WEEKLY) { - if (!(qinfo->QuestFlags & QUEST_TRINITY_FLAGS_REPEATABLE)) + if (!(qinfo->Flags & QUEST_TRINITY_FLAGS_REPEATABLE)) { sLog->outErrorDb("Weekly Quest %u not marked as repeatable in `SpecialFlags`, added.", qinfo->GetQuestId()); - qinfo->QuestFlags |= QUEST_TRINITY_FLAGS_REPEATABLE; + qinfo->Flags |= QUEST_TRINITY_FLAGS_REPEATABLE; } } - if (qinfo->QuestFlags & QUEST_FLAGS_AUTO_REWARDED) + if (qinfo->Flags & QUEST_FLAGS_AUTO_REWARDED) { - // at auto-reward can be rewarded only RewChoiceItemId[0] + // at auto-reward can be rewarded only RewardChoiceItemId[0] for (int j = 1; j < QUEST_REWARD_CHOICES_COUNT; ++j ) { - if (uint32 id = qinfo->RewChoiceItemId[j]) + if (uint32 id = qinfo->RewardChoiceItemId[j]) { - sLog->outErrorDb("Quest %u has `RewChoiceItemId%d` = %u but item from `RewChoiceItemId%d` can't be rewarded with quest flag QUEST_FLAGS_AUTO_REWARDED.", + sLog->outErrorDb("Quest %u has `RewardChoiceItemId%d` = %u but item from `RewardChoiceItemId%d` can't be rewarded with quest flag QUEST_FLAGS_AUTO_REWARDED.", qinfo->GetQuestId(), j+1, id, j+1); // no changes, quest ignore this data } @@ -3829,77 +3828,68 @@ void ObjectMgr::LoadQuests() qinfo->GetQuestId(), qinfo->ZoneOrSort); // no changes, quest not dependent from this value but can have problems at client (note some may be 0, we must allow this so no check) } - //check SkillOrClass value (class case). - if (ClassByQuestSort(-int32(qinfo->ZoneOrSort))) - { - // SkillOrClass should not have class case when class case already set in ZoneOrSort. - if (qinfo->SkillOrClassMask < 0) - { - sLog->outErrorDb("Quest %u has `ZoneOrSort` = %i (class sort case) and `SkillOrClassMask` = %i (class case), redundant.", - qinfo->GetQuestId(), qinfo->ZoneOrSort, qinfo->SkillOrClassMask); - } - } - //check for proper SkillOrClass value (skill case) + //check for proper RequiredSkillId value (skill case) if (int32 skill_id = SkillByQuestSort(-int32(qinfo->ZoneOrSort))) { - // skill is positive value in SkillOrClass - if (qinfo->SkillOrClassMask != skill_id) + if (qinfo->RequiredSkillId != skill_id) { - sLog->outErrorDb("Quest %u has `ZoneOrSort` = %i (skill sort case) but `SkillOrClassMask` does not have a corresponding value (%i).", + sLog->outErrorDb("Quest %u has `ZoneOrSort` = %i but `RequiredSkillId` does not have a corresponding value (%i).", qinfo->GetQuestId(), qinfo->ZoneOrSort, skill_id); //override, and force proper value here? } } } - // SkillOrClassMask (class case) - if (qinfo->SkillOrClassMask < 0) + // RequiredClasses, can be 0/CLASSMASK_ALL_PLAYABLE to allow any class + if (qinfo->RequiredClasses) { - if (!(-int32(qinfo->SkillOrClassMask) & CLASSMASK_ALL_PLAYABLE)) + if (!(qinfo->RequiredClasses & CLASSMASK_ALL_PLAYABLE)) { - sLog->outErrorDb("Quest %u has `SkillOrClassMask` = %i (class case) but classmask does not have valid class", - qinfo->GetQuestId(), qinfo->SkillOrClassMask); + sLog->outErrorDb("Quest %u does not contain any playable classes in `RequiredClasses` (%u), value set to 0 (all classes).", qinfo->GetQuestId(), qinfo->RequiredClasses); + qinfo->RequiredClasses = 0; } } - // SkillOrClassMask (skill case) - if (qinfo->SkillOrClassMask > 0) + // RequiredRaces, can be 0/RACEMASK_ALL_PLAYABLE to allow any race + if (qinfo->RequiredRaces) + { + if (!(qinfo->RequiredRaces & RACEMASK_ALL_PLAYABLE)) + { + sLog->outErrorDb("Quest %u does not contain any playable races in `RequiredRaces` (%u), value set to 0 (all races).", qinfo->GetQuestId(), qinfo->RequiredRaces); + qinfo->RequiredRaces = 0; + } + } + // RequiredSkillId, can be 0 + if (qinfo->RequiredSkillId) { - if (!sSkillLineStore.LookupEntry(qinfo->SkillOrClassMask)) + if (!sSkillLineStore.LookupEntry(qinfo->RequiredSkillId)) { - sLog->outErrorDb("Quest %u has `SkillOrClass` = %u (skill case) but skill (%i) does not exist", - qinfo->GetQuestId(), qinfo->SkillOrClassMask, qinfo->SkillOrClassMask); + sLog->outErrorDb("Quest %u has `RequiredSkillId` = %u but this skill does not exist", + qinfo->GetQuestId(), qinfo->RequiredSkillId); } } - if (qinfo->RequiredSkillValue) + if (qinfo->RequiredSkillPoints) { - if (qinfo->RequiredSkillValue > sWorld->GetConfigMaxSkillValue()) + if (qinfo->RequiredSkillPoints > sWorld->GetConfigMaxSkillValue()) { - sLog->outErrorDb("Quest %u has `RequiredSkillValue` = %u but max possible skill is %u, quest can't be done.", - qinfo->GetQuestId(), qinfo->RequiredSkillValue, sWorld->GetConfigMaxSkillValue()); + sLog->outErrorDb("Quest %u has `RequiredSkillPoints` = %u but max possible skill is %u, quest can't be done.", + qinfo->GetQuestId(), qinfo->RequiredSkillPoints, sWorld->GetConfigMaxSkillValue()); // no changes, quest can't be done for this requirement } - - if (qinfo->SkillOrClassMask <= 0) - { - sLog->outErrorDb("Quest %u has `RequiredSkillValue` = %u but `SkillOrClass` = %i (class case), value ignored.", - qinfo->GetQuestId(), qinfo->RequiredSkillValue, qinfo->SkillOrClassMask); - // no changes, quest can't be done for this requirement (fail at wrong skill id) - } } // else Skill quests can have 0 skill level, this is ok - if (qinfo->RepObjectiveFaction2 && !sFactionStore.LookupEntry(qinfo->RepObjectiveFaction2)) + if (qinfo->RequiredFactionId2 && !sFactionStore.LookupEntry(qinfo->RequiredFactionId2)) { - sLog->outErrorDb("Quest %u has `RepObjectiveFaction2` = %u but faction template %u does not exist, quest can't be done.", - qinfo->GetQuestId(), qinfo->RepObjectiveFaction2, qinfo->RepObjectiveFaction2); + sLog->outErrorDb("Quest %u has `RequiredFactionId2` = %u but faction template %u does not exist, quest can't be done.", + qinfo->GetQuestId(), qinfo->RequiredFactionId2, qinfo->RequiredFactionId2); // no changes, quest can't be done for this requirement } - if (qinfo->RepObjectiveFaction && !sFactionStore.LookupEntry(qinfo->RepObjectiveFaction)) + if (qinfo->RequiredFactionId1 && !sFactionStore.LookupEntry(qinfo->RequiredFactionId1)) { - sLog->outErrorDb("Quest %u has `RepObjectiveFaction` = %u but faction template %u does not exist, quest can't be done.", - qinfo->GetQuestId(), qinfo->RepObjectiveFaction, qinfo->RepObjectiveFaction); + sLog->outErrorDb("Quest %u has `RequiredFactionId1` = %u but faction template %u does not exist, quest can't be done.", + qinfo->GetQuestId(), qinfo->RequiredFactionId1, qinfo->RequiredFactionId1); // no changes, quest can't be done for this requirement } @@ -3931,17 +3921,17 @@ void ObjectMgr::LoadQuests() // no changes, quest can't be done for this requirement } - if (!qinfo->RepObjectiveFaction && qinfo->RepObjectiveValue != 0) + if (!qinfo->RequiredFactionId1 && qinfo->RequiredFactionValue1 != 0) { - sLog->outErrorDb("Quest %u has `RepObjectiveValue` = %d but `RepObjectiveFaction` is 0, value has no effect", - qinfo->GetQuestId(), qinfo->RepObjectiveValue); + sLog->outErrorDb("Quest %u has `RequiredFactionValue1` = %d but `RequiredFactionId1` is 0, value has no effect", + qinfo->GetQuestId(), qinfo->RequiredFactionValue1); // warning } - if (!qinfo->RepObjectiveFaction2 && qinfo->RepObjectiveValue2 != 0) + if (!qinfo->RequiredFactionId2 && qinfo->RequiredFactionValue2 != 0) { - sLog->outErrorDb("Quest %u has `RepObjectiveValue2` = %d but `RepObjectiveFaction2` is 0, value has no effect", - qinfo->GetQuestId(), qinfo->RepObjectiveValue2); + sLog->outErrorDb("Quest %u has `RequiredFactionValue2` = %d but `RequiredFactionId2` is 0, value has no effect", + qinfo->GetQuestId(), qinfo->RequiredFactionValue2); // warning } @@ -3959,61 +3949,61 @@ void ObjectMgr::LoadQuests() // warning } - if (qinfo->CharTitleId && !sCharTitlesStore.LookupEntry(qinfo->CharTitleId)) + if (qinfo->RewardTitleId && !sCharTitlesStore.LookupEntry(qinfo->RewardTitleId)) { - sLog->outErrorDb("Quest %u has `CharTitleId` = %u but CharTitle Id %u does not exist, quest can't be rewarded with title.", + sLog->outErrorDb("Quest %u has `RewardTitleId` = %u but CharTitle Id %u does not exist, quest can't be rewarded with title.", qinfo->GetQuestId(), qinfo->GetCharTitleId(), qinfo->GetCharTitleId()); - qinfo->CharTitleId = 0; + qinfo->RewardTitleId = 0; // quest can't reward this title } - if (qinfo->SrcItemId) + if (qinfo->SourceItemId) { - if (!sObjectMgr->GetItemTemplate(qinfo->SrcItemId)) + if (!sObjectMgr->GetItemTemplate(qinfo->SourceItemId)) { - sLog->outErrorDb("Quest %u has `SrcItemId` = %u but item with entry %u does not exist, quest can't be done.", - qinfo->GetQuestId(), qinfo->SrcItemId, qinfo->SrcItemId); - qinfo->SrcItemId = 0; // quest can't be done for this requirement + sLog->outErrorDb("Quest %u has `SourceItemId` = %u but item with entry %u does not exist, quest can't be done.", + qinfo->GetQuestId(), qinfo->SourceItemId, qinfo->SourceItemId); + qinfo->SourceItemId = 0; // quest can't be done for this requirement } - else if (qinfo->SrcItemCount == 0) + else if (qinfo->SourceItemIdCount == 0) { - sLog->outErrorDb("Quest %u has `SrcItemId` = %u but `SrcItemCount` = 0, set to 1 but need fix in DB.", - qinfo->GetQuestId(), qinfo->SrcItemId); - qinfo->SrcItemCount = 1; // update to 1 for allow quest work for backward compatibility with DB + sLog->outErrorDb("Quest %u has `SourceItemId` = %u but `SourceItemIdCount` = 0, set to 1 but need fix in DB.", + qinfo->GetQuestId(), qinfo->SourceItemId); + qinfo->SourceItemIdCount = 1; // update to 1 for allow quest work for backward compatibility with DB } } - else if (qinfo->SrcItemCount>0) + else if (qinfo->SourceItemIdCount>0) { - sLog->outErrorDb("Quest %u has `SrcItemId` = 0 but `SrcItemCount` = %u, useless value.", - qinfo->GetQuestId(), qinfo->SrcItemCount); - qinfo->SrcItemCount=0; // no quest work changes in fact + sLog->outErrorDb("Quest %u has `SourceItemId` = 0 but `SourceItemIdCount` = %u, useless value.", + qinfo->GetQuestId(), qinfo->SourceItemIdCount); + qinfo->SourceItemIdCount=0; // no quest work changes in fact } - if (qinfo->SrcSpell) + if (qinfo->SourceSpellid) { - SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(qinfo->SrcSpell); + SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(qinfo->SourceSpellid); if (!spellInfo) { - sLog->outErrorDb("Quest %u has `SrcSpell` = %u but spell %u doesn't exist, quest can't be done.", - qinfo->GetQuestId(), qinfo->SrcSpell, qinfo->SrcSpell); - qinfo->SrcSpell = 0; // quest can't be done for this requirement + sLog->outErrorDb("Quest %u has `SourceSpellid` = %u but spell %u doesn't exist, quest can't be done.", + qinfo->GetQuestId(), qinfo->SourceSpellid, qinfo->SourceSpellid); + qinfo->SourceSpellid = 0; // quest can't be done for this requirement } else if (!SpellMgr::IsSpellValid(spellInfo)) { - sLog->outErrorDb("Quest %u has `SrcSpell` = %u but spell %u is broken, quest can't be done.", - qinfo->GetQuestId(), qinfo->SrcSpell, qinfo->SrcSpell); - qinfo->SrcSpell = 0; // quest can't be done for this requirement + sLog->outErrorDb("Quest %u has `SourceSpellid` = %u but spell %u is broken, quest can't be done.", + qinfo->GetQuestId(), qinfo->SourceSpellid, qinfo->SourceSpellid); + qinfo->SourceSpellid = 0; // quest can't be done for this requirement } } for (uint8 j = 0; j < QUEST_ITEM_OBJECTIVES_COUNT; ++j) { - uint32 id = qinfo->ReqItemId[j]; + uint32 id = qinfo->RequiredItemId[j]; if (id) { - if (qinfo->ReqItemCount[j] == 0) + if (qinfo->RequiredItemCount[j] == 0) { - sLog->outErrorDb("Quest %u has `ReqItemId%d` = %u but `ReqItemCount%d` = 0, quest can't be done.", + sLog->outErrorDb("Quest %u has `RequiredItemId%d` = %u but `RequiredItemCount%d` = 0, quest can't be done.", qinfo->GetQuestId(), j+1, id, j+1); // no changes, quest can't be done for this requirement } @@ -4022,37 +4012,37 @@ void ObjectMgr::LoadQuests() if (!sObjectMgr->GetItemTemplate(id)) { - sLog->outErrorDb("Quest %u has `ReqItemId%d` = %u but item with entry %u does not exist, quest can't be done.", + sLog->outErrorDb("Quest %u has `RequiredItemId%d` = %u but item with entry %u does not exist, quest can't be done.", qinfo->GetQuestId(), j+1, id, id); - qinfo->ReqItemCount[j] = 0; // prevent incorrect work of quest + qinfo->RequiredItemCount[j] = 0; // prevent incorrect work of quest } } - else if (qinfo->ReqItemCount[j]>0) + else if (qinfo->RequiredItemCount[j]>0) { - sLog->outErrorDb("Quest %u has `ReqItemId%d` = 0 but `ReqItemCount%d` = %u, quest can't be done.", - qinfo->GetQuestId(), j+1, j+1, qinfo->ReqItemCount[j]); - qinfo->ReqItemCount[j] = 0; // prevent incorrect work of quest + sLog->outErrorDb("Quest %u has `RequiredItemId%d` = 0 but `RequiredItemCount%d` = %u, quest can't be done.", + qinfo->GetQuestId(), j+1, j+1, qinfo->RequiredItemCount[j]); + qinfo->RequiredItemCount[j] = 0; // prevent incorrect work of quest } } for (uint8 j = 0; j < QUEST_SOURCE_ITEM_IDS_COUNT; ++j) { - uint32 id = qinfo->ReqSourceId[j]; + uint32 id = qinfo->RequiredSourceItemid[j]; if (id) { if (!sObjectMgr->GetItemTemplate(id)) { - sLog->outErrorDb("Quest %u has `ReqSourceId%d` = %u but item with entry %u does not exist, quest can't be done.", + sLog->outErrorDb("Quest %u has `RequiredSourceItemid%d` = %u but item with entry %u does not exist, quest can't be done.", qinfo->GetQuestId(), j+1, id, id); // no changes, quest can't be done for this requirement } } else { - if (qinfo->ReqSourceCount[j]>0) + if (qinfo->RequiredSourceItemId[j]>0) { - sLog->outErrorDb("Quest %u has `ReqSourceId%d` = 0 but `ReqSourceCount%d` = %u.", - qinfo->GetQuestId(), j+1, j+1, qinfo->ReqSourceCount[j]); + sLog->outErrorDb("Quest %u has `RequiredSourceItemid%d` = 0 but `RequiredSourceItemId%d` = %u.", + qinfo->GetQuestId(), j+1, j+1, qinfo->RequiredSourceItemId[j]); // no changes, quest ignore this data } } @@ -4060,7 +4050,7 @@ void ObjectMgr::LoadQuests() for (uint8 j = 0; j < QUEST_OBJECTIVES_COUNT; ++j) { - uint32 id = qinfo->ReqSpell[j]; + uint32 id = qinfo->RequiredSpellCast[j]; if (id) { SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(id); @@ -4071,12 +4061,12 @@ void ObjectMgr::LoadQuests() continue; } - if (!qinfo->ReqCreatureOrGOId[j]) + if (!qinfo->RequiredNpcOrGo[j]) { bool found = false; for (uint8 k = 0; k < MAX_SPELL_EFFECTS; ++k) { - if ((spellInfo->Effects[k].Effect == SPELL_EFFECT_QUEST_COMPLETE && uint32(spellInfo->Effects[k].MiscValue) == qinfo->QuestId) || + if ((spellInfo->Effects[k].Effect == SPELL_EFFECT_QUEST_COMPLETE && uint32(spellInfo->Effects[k].MiscValue) == qinfo->Id) || spellInfo->Effects[k].Effect == SPELL_EFFECT_SEND_EVENT) { found = true; @@ -4088,7 +4078,7 @@ void ObjectMgr::LoadQuests() { if (!qinfo->HasFlag(QUEST_TRINITY_FLAGS_EXPLORATION_OR_EVENT)) { - sLog->outErrorDb("Spell (id: %u) have SPELL_EFFECT_QUEST_COMPLETE or SPELL_EFFECT_SEND_EVENT for quest %u and ReqCreatureOrGOId%d = 0, but quest not have flag QUEST_TRINITY_FLAGS_EXPLORATION_OR_EVENT. Quest flags or ReqCreatureOrGOId%d must be fixed, quest modified to enable objective.", spellInfo->Id, qinfo->QuestId, j+1, j+1); + sLog->outErrorDb("Spell (id: %u) have SPELL_EFFECT_QUEST_COMPLETE or SPELL_EFFECT_SEND_EVENT for quest %u and RequiredNpcOrGo%d = 0, but quest not have flag QUEST_TRINITY_FLAGS_EXPLORATION_OR_EVENT. Quest flags or RequiredNpcOrGo%d must be fixed, quest modified to enable objective.", spellInfo->Id, qinfo->Id, j+1, j+1); // this will prevent quest completing without objective const_cast<Quest*>(qinfo)->SetFlag(QUEST_TRINITY_FLAGS_EXPLORATION_OR_EVENT); @@ -4096,7 +4086,7 @@ void ObjectMgr::LoadQuests() } else { - sLog->outErrorDb("Quest %u has `ReqSpellCast%d` = %u and ReqCreatureOrGOId%d = 0 but spell %u does not have SPELL_EFFECT_QUEST_COMPLETE or SPELL_EFFECT_SEND_EVENT effect for this quest, quest can't be done.", + sLog->outErrorDb("Quest %u has `ReqSpellCast%d` = %u and RequiredNpcOrGo%d = 0 but spell %u does not have SPELL_EFFECT_QUEST_COMPLETE or SPELL_EFFECT_SEND_EVENT effect for this quest, quest can't be done.", qinfo->GetQuestId(), j+1, id, j+1, id); // no changes, quest can't be done for this requirement } @@ -4106,19 +4096,19 @@ void ObjectMgr::LoadQuests() for (uint8 j = 0; j < QUEST_OBJECTIVES_COUNT; ++j) { - int32 id = qinfo->ReqCreatureOrGOId[j]; + int32 id = qinfo->RequiredNpcOrGo[j]; if (id < 0 && !sObjectMgr->GetGameObjectTemplate(-id)) { - sLog->outErrorDb("Quest %u has `ReqCreatureOrGOId%d` = %i but gameobject %u does not exist, quest can't be done.", + sLog->outErrorDb("Quest %u has `RequiredNpcOrGo%d` = %i but gameobject %u does not exist, quest can't be done.", qinfo->GetQuestId(), j+1, id, uint32(-id)); - qinfo->ReqCreatureOrGOId[j] = 0; // quest can't be done for this requirement + qinfo->RequiredNpcOrGo[j] = 0; // quest can't be done for this requirement } if (id > 0 && !sObjectMgr->GetCreatureTemplate(id)) { - sLog->outErrorDb("Quest %u has `ReqCreatureOrGOId%d` = %i but creature with entry %u does not exist, quest can't be done.", + sLog->outErrorDb("Quest %u has `RequiredNpcOrGo%d` = %i but creature with entry %u does not exist, quest can't be done.", qinfo->GetQuestId(), j+1, id, uint32(id)); - qinfo->ReqCreatureOrGOId[j] = 0; // quest can't be done for this requirement + qinfo->RequiredNpcOrGo[j] = 0; // quest can't be done for this requirement } if (id) @@ -4127,179 +4117,179 @@ void ObjectMgr::LoadQuests() qinfo->SetFlag(QUEST_TRINITY_FLAGS_KILL_OR_CAST | QUEST_TRINITY_FLAGS_SPEAKTO); - if (!qinfo->ReqCreatureOrGOCount[j]) + if (!qinfo->RequiredNpcOrGoCount[j]) { - sLog->outErrorDb("Quest %u has `ReqCreatureOrGOId%d` = %u but `ReqCreatureOrGOCount%d` = 0, quest can't be done.", + sLog->outErrorDb("Quest %u has `RequiredNpcOrGo%d` = %u but `RequiredNpcOrGoCount%d` = 0, quest can't be done.", qinfo->GetQuestId(), j+1, id, j+1); // no changes, quest can be incorrectly done, but we already report this } } - else if (qinfo->ReqCreatureOrGOCount[j]>0) + else if (qinfo->RequiredNpcOrGoCount[j]>0) { - sLog->outErrorDb("Quest %u has `ReqCreatureOrGOId%d` = 0 but `ReqCreatureOrGOCount%d` = %u.", - qinfo->GetQuestId(), j+1, j+1, qinfo->ReqCreatureOrGOCount[j]); + sLog->outErrorDb("Quest %u has `RequiredNpcOrGo%d` = 0 but `RequiredNpcOrGoCount%d` = %u.", + qinfo->GetQuestId(), j+1, j+1, qinfo->RequiredNpcOrGoCount[j]); // no changes, quest ignore this data } } for (uint8 j = 0; j < QUEST_REWARD_CHOICES_COUNT; ++j) { - uint32 id = qinfo->RewChoiceItemId[j]; + uint32 id = qinfo->RewardChoiceItemId[j]; if (id) { if (!sObjectMgr->GetItemTemplate(id)) { - sLog->outErrorDb("Quest %u has `RewChoiceItemId%d` = %u but item with entry %u does not exist, quest will not reward this item.", + sLog->outErrorDb("Quest %u has `RewardChoiceItemId%d` = %u but item with entry %u does not exist, quest will not reward this item.", qinfo->GetQuestId(), j+1, id, id); - qinfo->RewChoiceItemId[j] = 0; // no changes, quest will not reward this + qinfo->RewardChoiceItemId[j] = 0; // no changes, quest will not reward this } - if (!qinfo->RewChoiceItemCount[j]) + if (!qinfo->RewardChoiceItemCount[j]) { - sLog->outErrorDb("Quest %u has `RewChoiceItemId%d` = %u but `RewChoiceItemCount%d` = 0, quest can't be done.", + sLog->outErrorDb("Quest %u has `RewardChoiceItemId%d` = %u but `RewardChoiceItemCount%d` = 0, quest can't be done.", qinfo->GetQuestId(), j+1, id, j+1); // no changes, quest can't be done } } - else if (qinfo->RewChoiceItemCount[j]>0) + else if (qinfo->RewardChoiceItemCount[j]>0) { - sLog->outErrorDb("Quest %u has `RewChoiceItemId%d` = 0 but `RewChoiceItemCount%d` = %u.", - qinfo->GetQuestId(), j+1, j+1, qinfo->RewChoiceItemCount[j]); + sLog->outErrorDb("Quest %u has `RewardChoiceItemId%d` = 0 but `RewardChoiceItemCount%d` = %u.", + qinfo->GetQuestId(), j+1, j+1, qinfo->RewardChoiceItemCount[j]); // no changes, quest ignore this data } } for (uint8 j = 0; j < QUEST_REWARDS_COUNT; ++j) { - uint32 id = qinfo->RewItemId[j]; + uint32 id = qinfo->RewardItemId[j]; if (id) { if (!sObjectMgr->GetItemTemplate(id)) { - sLog->outErrorDb("Quest %u has `RewItemId%d` = %u but item with entry %u does not exist, quest will not reward this item.", + sLog->outErrorDb("Quest %u has `RewardItemId%d` = %u but item with entry %u does not exist, quest will not reward this item.", qinfo->GetQuestId(), j+1, id, id); - qinfo->RewItemId[j] = 0; // no changes, quest will not reward this item + qinfo->RewardItemId[j] = 0; // no changes, quest will not reward this item } - if (!qinfo->RewItemCount[j]) + if (!qinfo->RewardItemIdCount[j]) { - sLog->outErrorDb("Quest %u has `RewItemId%d` = %u but `RewItemCount%d` = 0, quest will not reward this item.", + sLog->outErrorDb("Quest %u has `RewardItemId%d` = %u but `RewardItemIdCount%d` = 0, quest will not reward this item.", qinfo->GetQuestId(), j+1, id, j+1); // no changes } } - else if (qinfo->RewItemCount[j]>0) + else if (qinfo->RewardItemIdCount[j]>0) { - sLog->outErrorDb("Quest %u has `RewItemId%d` = 0 but `RewItemCount%d` = %u.", - qinfo->GetQuestId(), j+1, j+1, qinfo->RewItemCount[j]); + sLog->outErrorDb("Quest %u has `RewardItemId%d` = 0 but `RewardItemIdCount%d` = %u.", + qinfo->GetQuestId(), j+1, j+1, qinfo->RewardItemIdCount[j]); // no changes, quest ignore this data } } for (uint8 j = 0; j < QUEST_REPUTATIONS_COUNT; ++j) { - if (qinfo->RewRepFaction[j]) + if (qinfo->RewardFactionId[j]) { - if (abs(qinfo->RewRepValueId[j]) > 9) + if (abs(qinfo->RewardFactionValueId[j]) > 9) { - sLog->outErrorDb("Quest %u has RewRepValueId%d = %i. That is outside the range of valid values (-9 to 9).", qinfo->GetQuestId(), j+1, qinfo->RewRepValueId[j]); + sLog->outErrorDb("Quest %u has RewardFactionValueId%d = %i. That is outside the range of valid values (-9 to 9).", qinfo->GetQuestId(), j+1, qinfo->RewardFactionValueId[j]); } - if (!sFactionStore.LookupEntry(qinfo->RewRepFaction[j])) + if (!sFactionStore.LookupEntry(qinfo->RewardFactionId[j])) { - sLog->outErrorDb("Quest %u has `RewRepFaction%d` = %u but raw faction (faction.dbc) %u does not exist, quest will not reward reputation for this faction.", qinfo->GetQuestId(), j+1, qinfo->RewRepFaction[j], qinfo->RewRepFaction[j]); - qinfo->RewRepFaction[j] = 0; // quest will not reward this + sLog->outErrorDb("Quest %u has `RewardFactionId%d` = %u but raw faction (faction.dbc) %u does not exist, quest will not reward reputation for this faction.", qinfo->GetQuestId(), j+1, qinfo->RewardFactionId[j], qinfo->RewardFactionId[j]); + qinfo->RewardFactionId[j] = 0; // quest will not reward this } } - else if (qinfo->RewRepValue[j] != 0) + else if (qinfo->RewardFactionValueIdOverride[j] != 0) { - sLog->outErrorDb("Quest %u has `RewRepFaction%d` = 0 but `RewRepValue%d` = %i.", - qinfo->GetQuestId(), j+1, j+1, qinfo->RewRepValue[j]); + sLog->outErrorDb("Quest %u has `RewardFactionId%d` = 0 but `RewardFactionValueIdOverride%d` = %i.", + qinfo->GetQuestId(), j+1, j+1, qinfo->RewardFactionValueIdOverride[j]); // no changes, quest ignore this data } } - if (qinfo->RewSpell) + if (qinfo->RewardSpell) { - SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(qinfo->RewSpell); + SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(qinfo->RewardSpell); if (!spellInfo) { - sLog->outErrorDb("Quest %u has `RewSpell` = %u but spell %u does not exist, spell removed as display reward.", - qinfo->GetQuestId(), qinfo->RewSpell, qinfo->RewSpell); - qinfo->RewSpell = 0; // no spell reward will display for this quest + sLog->outErrorDb("Quest %u has `RewardSpell` = %u but spell %u does not exist, spell removed as display reward.", + qinfo->GetQuestId(), qinfo->RewardSpell, qinfo->RewardSpell); + qinfo->RewardSpell = 0; // no spell reward will display for this quest } else if (!SpellMgr::IsSpellValid(spellInfo)) { - sLog->outErrorDb("Quest %u has `RewSpell` = %u but spell %u is broken, quest will not have a spell reward.", - qinfo->GetQuestId(), qinfo->RewSpell, qinfo->RewSpell); - qinfo->RewSpell = 0; // no spell reward will display for this quest + sLog->outErrorDb("Quest %u has `RewardSpell` = %u but spell %u is broken, quest will not have a spell reward.", + qinfo->GetQuestId(), qinfo->RewardSpell, qinfo->RewardSpell); + qinfo->RewardSpell = 0; // no spell reward will display for this quest } - else if (GetTalentSpellCost(qinfo->RewSpell)) + else if (GetTalentSpellCost(qinfo->RewardSpell)) { - sLog->outErrorDb("Quest %u has `RewSpell` = %u but spell %u is talent, quest will not have a spell reward.", - qinfo->GetQuestId(), qinfo->RewSpell, qinfo->RewSpell); - qinfo->RewSpell = 0; // no spell reward will display for this quest + sLog->outErrorDb("Quest %u has `RewardSpell` = %u but spell %u is talent, quest will not have a spell reward.", + qinfo->GetQuestId(), qinfo->RewardSpell, qinfo->RewardSpell); + qinfo->RewardSpell = 0; // no spell reward will display for this quest } } - if (qinfo->RewSpellCast > 0) + if (qinfo->RewardSpellCast > 0) { - SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(qinfo->RewSpellCast); + SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(qinfo->RewardSpellCast); if (!spellInfo) { - sLog->outErrorDb("Quest %u has `RewSpellCast` = %u but spell %u does not exist, quest will not have a spell reward.", - qinfo->GetQuestId(), qinfo->RewSpellCast, qinfo->RewSpellCast); - qinfo->RewSpellCast = 0; // no spell will be casted on player + sLog->outErrorDb("Quest %u has `RewardSpellCast` = %u but spell %u does not exist, quest will not have a spell reward.", + qinfo->GetQuestId(), qinfo->RewardSpellCast, qinfo->RewardSpellCast); + qinfo->RewardSpellCast = 0; // no spell will be casted on player } else if (!SpellMgr::IsSpellValid(spellInfo)) { - sLog->outErrorDb("Quest %u has `RewSpellCast` = %u but spell %u is broken, quest will not have a spell reward.", - qinfo->GetQuestId(), qinfo->RewSpellCast, qinfo->RewSpellCast); - qinfo->RewSpellCast = 0; // no spell will be casted on player + sLog->outErrorDb("Quest %u has `RewardSpellCast` = %u but spell %u is broken, quest will not have a spell reward.", + qinfo->GetQuestId(), qinfo->RewardSpellCast, qinfo->RewardSpellCast); + qinfo->RewardSpellCast = 0; // no spell will be casted on player } - else if (GetTalentSpellCost(qinfo->RewSpellCast)) + else if (GetTalentSpellCost(qinfo->RewardSpellCast)) { - sLog->outErrorDb("Quest %u has `RewSpell` = %u but spell %u is talent, quest will not have a spell reward.", - qinfo->GetQuestId(), qinfo->RewSpellCast, qinfo->RewSpellCast); - qinfo->RewSpellCast = 0; // no spell will be casted on player + sLog->outErrorDb("Quest %u has `RewardSpell` = %u but spell %u is talent, quest will not have a spell reward.", + qinfo->GetQuestId(), qinfo->RewardSpellCast, qinfo->RewardSpellCast); + qinfo->RewardSpellCast = 0; // no spell will be casted on player } } - if (qinfo->RewMailTemplateId) + if (qinfo->RewardMailTemplateId) { - if (!sMailTemplateStore.LookupEntry(qinfo->RewMailTemplateId)) + if (!sMailTemplateStore.LookupEntry(qinfo->RewardMailTemplateId)) { - sLog->outErrorDb("Quest %u has `RewMailTemplateId` = %u but mail template %u does not exist, quest will not have a mail reward.", - qinfo->GetQuestId(), qinfo->RewMailTemplateId, qinfo->RewMailTemplateId); - qinfo->RewMailTemplateId = 0; // no mail will send to player - qinfo->RewMailDelaySecs = 0; // no mail will send to player + sLog->outErrorDb("Quest %u has `RewardMailTemplateId` = %u but mail template %u does not exist, quest will not have a mail reward.", + qinfo->GetQuestId(), qinfo->RewardMailTemplateId, qinfo->RewardMailTemplateId); + qinfo->RewardMailTemplateId = 0; // no mail will send to player + qinfo->RewardMailDelay = 0; // no mail will send to player } - else if (usedMailTemplates.find(qinfo->RewMailTemplateId) != usedMailTemplates.end()) + else if (usedMailTemplates.find(qinfo->RewardMailTemplateId) != usedMailTemplates.end()) { - std::map<uint32, uint32>::const_iterator used_mt_itr = usedMailTemplates.find(qinfo->RewMailTemplateId); - sLog->outErrorDb("Quest %u has `RewMailTemplateId` = %u but mail template %u already used for quest %u, quest will not have a mail reward.", - qinfo->GetQuestId(), qinfo->RewMailTemplateId, qinfo->RewMailTemplateId, used_mt_itr->second); - qinfo->RewMailTemplateId = 0; // no mail will send to player - qinfo->RewMailDelaySecs = 0; // no mail will send to player + std::map<uint32, uint32>::const_iterator used_mt_itr = usedMailTemplates.find(qinfo->RewardMailTemplateId); + sLog->outErrorDb("Quest %u has `RewardMailTemplateId` = %u but mail template %u already used for quest %u, quest will not have a mail reward.", + qinfo->GetQuestId(), qinfo->RewardMailTemplateId, qinfo->RewardMailTemplateId, used_mt_itr->second); + qinfo->RewardMailTemplateId = 0; // no mail will send to player + qinfo->RewardMailDelay = 0; // no mail will send to player } else - usedMailTemplates[qinfo->RewMailTemplateId] = qinfo->GetQuestId(); + usedMailTemplates[qinfo->RewardMailTemplateId] = qinfo->GetQuestId(); } - if (qinfo->NextQuestInChain) + if (qinfo->NextQuestIdChain) { - QuestMap::iterator qNextItr = mQuestTemplates.find(qinfo->NextQuestInChain); + QuestMap::iterator qNextItr = mQuestTemplates.find(qinfo->NextQuestIdChain); if (qNextItr == mQuestTemplates.end()) { - sLog->outErrorDb("Quest %u has `NextQuestInChain` = %u but quest %u does not exist, quest chain will not work.", - qinfo->GetQuestId(), qinfo->NextQuestInChain, qinfo->NextQuestInChain); - qinfo->NextQuestInChain = 0; + sLog->outErrorDb("Quest %u has `NextQuestIdChain` = %u but quest %u does not exist, quest chain will not work.", + qinfo->GetQuestId(), qinfo->NextQuestIdChain, qinfo->NextQuestIdChain); + qinfo->NextQuestIdChain = 0; } else qNextItr->second->prevChainQuests.push_back(qinfo->GetQuestId()); @@ -4336,7 +4326,7 @@ void ObjectMgr::LoadQuests() mExclusiveQuestGroups.insert(std::pair<int32, uint32>(qinfo->ExclusiveGroup, qinfo->GetQuestId())); if (qinfo->LimitTime) qinfo->SetFlag(QUEST_TRINITY_FLAGS_TIMED); - if (qinfo->PlayersSlain) + if (qinfo->RequiredPlayerKills) qinfo->SetFlag(QUEST_TRINITY_FLAGS_PLAYER_KILL); } @@ -5392,7 +5382,7 @@ void ObjectMgr::ReturnOrDeleteOldMails(bool serverUp) // mail open and then not returned for (MailItemInfoVec::iterator itr2 = m->items.begin(); itr2 != m->items.end(); ++itr2) { - PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_ITEM_INSTANCE); + stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_ITEM_INSTANCE); stmt->setUInt32(0, itr2->item_guid); CharacterDatabase.Execute(stmt); } @@ -7084,13 +7074,13 @@ void ObjectMgr::LoadQuestPOI() { // The first result should have the highest questId Field* fields = points->Fetch(); - uint32 questId = fields[0].GetUInt32(); - POIs.resize(questId + 1); + uint32 questIdMax = fields[0].GetUInt32(); + POIs.resize(questIdMax + 1); do { - Field* fields = points->Fetch(); + fields = points->Fetch(); uint32 questId = fields[0].GetUInt32(); uint32 id = fields[1].GetUInt32(); diff --git a/src/server/game/Grids/Grid.h b/src/server/game/Grids/Grid.h index a90915d49f0..448c4cb35fd 100755 --- a/src/server/game/Grids/Grid.h +++ b/src/server/game/Grids/Grid.h @@ -58,17 +58,19 @@ class Grid */ template<class SPECIFIC_OBJECT> void AddWorldObject(SPECIFIC_OBJECT *obj) { - if (!i_objects.template insert<SPECIFIC_OBJECT>(obj)) - ASSERT(false); + i_objects.template insert<SPECIFIC_OBJECT>(obj); + ASSERT(obj->IsInGrid()); } /** an object of interested exits the grid */ - template<class SPECIFIC_OBJECT> void RemoveWorldObject(SPECIFIC_OBJECT *obj) - { - if (!i_objects.template remove<SPECIFIC_OBJECT>(obj)) - ASSERT(false); - } + //Actually an unlink is enough, no need to go through the container + //template<class SPECIFIC_OBJECT> void RemoveWorldObject(SPECIFIC_OBJECT *obj) + //{ + // ASSERT(obj->GetGridRef().isValid()); + // i_objects.template remove<SPECIFIC_OBJECT>(obj); + // ASSERT(!obj->GetGridRef().isValid()); + //} /** Refreshes/update the grid. This required for remote grids. */ @@ -104,17 +106,18 @@ class Grid */ template<class SPECIFIC_OBJECT> void AddGridObject(SPECIFIC_OBJECT *obj) { - if (!i_container.template insert<SPECIFIC_OBJECT>(obj)) - ASSERT(false); + i_container.template insert<SPECIFIC_OBJECT>(obj); + ASSERT(obj->IsInGrid()); } /** Removes a containter type object from the grid */ - template<class SPECIFIC_OBJECT> void RemoveGridObject(SPECIFIC_OBJECT *obj) - { - if (!i_container.template remove<SPECIFIC_OBJECT>(obj)) - ASSERT(false); - } + //template<class SPECIFIC_OBJECT> void RemoveGridObject(SPECIFIC_OBJECT *obj) + //{ + // ASSERT(obj->GetGridRef().isValid()); + // i_container.template remove<SPECIFIC_OBJECT>(obj); + // ASSERT(!obj->GetGridRef().isValid()); + //} /*bool NoWorldObjectInGrid() const { diff --git a/src/server/game/Grids/NGrid.h b/src/server/game/Grids/NGrid.h index b814fd386a5..97a47f7d272 100755 --- a/src/server/game/Grids/NGrid.h +++ b/src/server/game/Grids/NGrid.h @@ -120,6 +120,7 @@ class NGrid void ResetTimeTracker(time_t interval) { i_GridInfo.ResetTimeTracker(interval); } void UpdateTimeTracker(time_t diff) { i_GridInfo.UpdateTimeTracker(diff); } + /* template<class SPECIFIC_OBJECT> void AddWorldObject(const uint32 x, const uint32 y, SPECIFIC_OBJECT *obj) { GetGridType(x, y).AddWorldObject(obj); @@ -139,6 +140,7 @@ class NGrid { GetGridType(x, y).RemoveGridObject(obj); } + */ // Visit all Grids (cells) in NGrid (grid) template<class T, class TT> diff --git a/src/server/game/Grids/ObjectGridLoader.cpp b/src/server/game/Grids/ObjectGridLoader.cpp index e38c74dd8e4..56c6410e6d7 100755 --- a/src/server/game/Grids/ObjectGridLoader.cpp +++ b/src/server/game/Grids/ObjectGridLoader.cpp @@ -77,7 +77,7 @@ template<> void ObjectGridLoader::SetObjectCell(Creature* obj, CellCoord const& template <class T> void AddObjectHelper(CellCoord &cell, GridRefManager<T> &m, uint32 &count, Map* map, T *obj) { - obj->GetGridRef().link(&m, obj); + obj->AddToGrid(m); ObjectGridLoader::SetObjectCell(obj, cell); obj->AddToWorld(); if (obj->isActiveObject()) @@ -126,6 +126,12 @@ void LoadHelper(CellCorpseSet const& cell_corpses, CellCoord &cell, CorpseMapTyp // in that case map == currMap obj->SetMap(map); + if (obj->IsInGrid()) + { + obj->AddToWorld(); + continue; + } + AddObjectHelper(cell, m, count, map, obj); } } @@ -205,6 +211,11 @@ void ObjectGridUnloader::Visit(GridRefManager<T> &m) // if option set then object already saved at this moment if (!sWorld->getBoolConfig(CONFIG_SAVE_RESPAWN_TIME_IMMEDIATELY)) obj->SaveRespawnTime(); + //Some creatures may summon other temp summons in CleanupsBeforeDelete() + //So we need this even after cleaner (maybe we can remove cleaner) + //Example: Flame Leviathan Turret 33139 is summoned when a creature is deleted + //TODO: Check if that script has the correct logic. Do we really need to summons something before deleting? + obj->CleanupsBeforeDelete(); ///- object will get delinked from the manager when deleted delete obj; } @@ -225,23 +236,18 @@ void ObjectGridStoper::Visit(CreatureMapType &m) } } -void ObjectGridCleaner::Visit(CreatureMapType &m) -{ - for (CreatureMapType::iterator iter=m.begin(); iter != m.end(); ++iter) - iter->getSource()->CleanupsBeforeDelete(); -} - template<class T> void ObjectGridCleaner::Visit(GridRefManager<T> &m) { for (typename GridRefManager<T>::iterator iter = m.begin(); iter != m.end(); ++iter) - iter->getSource()->RemoveFromWorld(); + iter->getSource()->CleanupsBeforeDelete(); } template void ObjectGridUnloader::Visit(CreatureMapType &); template void ObjectGridUnloader::Visit(GameObjectMapType &); template void ObjectGridUnloader::Visit(DynamicObjectMapType &); template void ObjectGridUnloader::Visit(CorpseMapType &); +template void ObjectGridCleaner::Visit(CreatureMapType &); template void ObjectGridCleaner::Visit<GameObject>(GameObjectMapType &); template void ObjectGridCleaner::Visit<DynamicObject>(DynamicObjectMapType &); template void ObjectGridCleaner::Visit<Corpse>(CorpseMapType &); diff --git a/src/server/game/Grids/ObjectGridLoader.h b/src/server/game/Grids/ObjectGridLoader.h index 411cae10a90..09a8fb2af9c 100755 --- a/src/server/game/Grids/ObjectGridLoader.h +++ b/src/server/game/Grids/ObjectGridLoader.h @@ -74,7 +74,6 @@ class ObjectGridEvacuator class ObjectGridCleaner { public: - void Visit(CreatureMapType &m); template<class T> void Visit(GridRefManager<T> &); }; diff --git a/src/server/game/Instances/InstanceSaveMgr.cpp b/src/server/game/Instances/InstanceSaveMgr.cpp index bc2648ed02b..7a2368161d8 100755 --- a/src/server/game/Instances/InstanceSaveMgr.cpp +++ b/src/server/game/Instances/InstanceSaveMgr.cpp @@ -309,11 +309,11 @@ void InstanceSaveManager::LoadResetTimes() while (result->NextRow()); // update reset time for normal instances with the max creature respawn time + X hours - if (PreparedQueryResult result = CharacterDatabase.Query(CharacterDatabase.GetPreparedStatement(CHAR_GET_MAX_CREATURE_RESPAWNS))) + if (PreparedQueryResult result2 = CharacterDatabase.Query(CharacterDatabase.GetPreparedStatement(CHAR_GET_MAX_CREATURE_RESPAWNS))) { do { - Field* fields = result->Fetch(); + Field* fields = result2->Fetch(); uint32 instance = fields[1].GetUInt32(); time_t resettime = time_t(fields[0].GetUInt32() + 2 * HOUR); InstResetTimeMapDiffType::iterator itr = instResetTime.find(instance); @@ -511,7 +511,7 @@ void InstanceSaveManager::_ResetSave(InstanceSaveHashMap::iterator &itr) void InstanceSaveManager::_ResetInstance(uint32 mapid, uint32 instanceId) { sLog->outDebug(LOG_FILTER_MAPS, "InstanceSaveMgr::_ResetInstance %u, %u", mapid, instanceId); - Map* map = (MapInstanced*)sMapMgr->CreateBaseMap(mapid); + Map const* map = sMapMgr->CreateBaseMap(mapid); if (!map->Instanceable()) return; @@ -521,7 +521,7 @@ void InstanceSaveManager::_ResetInstance(uint32 mapid, uint32 instanceId) DeleteInstanceFromDB(instanceId); // even if save not loaded - Map* iMap = ((MapInstanced*)map)->FindMap(instanceId); + Map* iMap = ((MapInstanced*)map)->FindInstanceMap(instanceId); if (iMap && iMap->IsDungeon()) ((InstanceMap*)iMap)->Reset(INSTANCE_RESET_RESPAWN_DELAY); diff --git a/src/server/game/Instances/InstanceScript.cpp b/src/server/game/Instances/InstanceScript.cpp index f0e21f7f709..b8987be9adb 100755 --- a/src/server/game/Instances/InstanceScript.cpp +++ b/src/server/game/Instances/InstanceScript.cpp @@ -305,7 +305,6 @@ void InstanceScript::DoUpdateWorldState(uint32 uiStateId, uint32 uiStateData) void InstanceScript::DoSendNotifyToInstance(const char *format, ...) { InstanceMap::PlayerList const &PlayerList = instance->GetPlayers(); - InstanceMap::PlayerList::const_iterator i; if (!PlayerList.isEmpty()) { diff --git a/src/server/game/Maps/Map.cpp b/src/server/game/Maps/Map.cpp index e193325b72e..bd419482b5b 100755 --- a/src/server/game/Maps/Map.cpp +++ b/src/server/game/Maps/Map.cpp @@ -256,16 +256,6 @@ void Map::AddToGrid(Creature* obj, Cell const& cell) } template<class T> -void Map::RemoveFromGrid(T* obj, Cell const& cell) -{ - NGridType* grid = getNGrid(cell.GridX(), cell.GridY()); - if (obj->m_isWorldObject) - grid->GetGridType(cell.CellX(), cell.CellY()).template RemoveWorldObject<T>(obj); - else - grid->GetGridType(cell.CellX(), cell.CellY()).template RemoveGridObject<T>(obj); -} - -template<class T> void Map::SwitchGridContainers(T* obj, bool on) { CellCoord p = Trinity::ComputeCellCoord(obj->GetPositionX(), obj->GetPositionY()); @@ -285,16 +275,11 @@ void Map::SwitchGridContainers(T* obj, bool on) GridType &grid = ngrid->GetGridType(cell.CellX(), cell.CellY()); + obj->RemoveFromGrid(); //This step is not really necessary but we want to do ASSERT in remove/add if (on) - { - grid.RemoveGridObject<T>(obj); grid.AddWorldObject<T>(obj); - } else - { - grid.RemoveWorldObject<T>(obj); grid.AddGridObject<T>(obj); - } obj->m_isWorldObject = on; } @@ -390,23 +375,22 @@ void Map::LoadGrid(float x, float y) EnsureGridLoaded(Cell(x, y)); } -bool Map::AddToMap(Player* player) +bool Map::AddPlayerToMap(Player* player) { - // Check if we are adding to correct map - ASSERT (player->GetMap() == this); - CellCoord p = Trinity::ComputeCellCoord(player->GetPositionX(), player->GetPositionY()); - if (!p.IsCoordValid()) + CellCoord cellCoord = Trinity::ComputeCellCoord(player->GetPositionX(), player->GetPositionY()); + if (!cellCoord.IsCoordValid()) { - sLog->outError("Map::Add: Player (GUID: %u) has invalid coordinates X:%f Y:%f grid cell [%u:%u]", player->GetGUIDLow(), player->GetPositionX(), player->GetPositionY(), p.x_coord, p.y_coord); + sLog->outError("Map::Add: Player (GUID: %u) has invalid coordinates X:%f Y:%f grid cell [%u:%u]", player->GetGUIDLow(), player->GetPositionX(), player->GetPositionY(), cellCoord.x_coord, cellCoord.y_coord); return false; } - player->SetMap(this); - - Cell cell(p); + Cell cell(cellCoord); EnsureGridLoadedForActiveObject(cell, player); AddToGrid(player, cell); + // Check if we are adding to correct map + ASSERT (player->GetMap() == this); + player->SetMap(this); player->AddToWorld(); SendInitSelf(player); @@ -431,38 +415,40 @@ void Map::InitializeObject(Creature* obj) } template<class T> -void -Map::AddToMap(T *obj) +void Map::AddToMap(T *obj) { - CellCoord p = Trinity::ComputeCellCoord(obj->GetPositionX(), obj->GetPositionY()); - if (!p.IsCoordValid()) + //TODO: Needs clean up. An object should not be added to map twice. + if (obj->IsInWorld()) { - sLog->outError("Map::Add: Object " UI64FMTD " has invalid coordinates X:%f Y:%f grid cell [%u:%u]", obj->GetGUID(), obj->GetPositionX(), obj->GetPositionY(), p.x_coord, p.y_coord); + ASSERT(obj->IsInGrid()); + obj->UpdateObjectVisibility(true); return; } - Cell cell(p); - if (obj->IsInWorld()) // need some clean up later + CellCoord cellCoord = Trinity::ComputeCellCoord(obj->GetPositionX(), obj->GetPositionY()); + if (!cellCoord.IsCoordValid()) { - obj->UpdateObjectVisibility(true); + sLog->outError("Map::Add: Object " UI64FMTD " has invalid coordinates X:%f Y:%f grid cell [%u:%u]", obj->GetGUID(), obj->GetPositionX(), obj->GetPositionY(), cellCoord.x_coord, cellCoord.y_coord); return; } + Cell cell(cellCoord); if (obj->isActiveObject()) EnsureGridLoadedForActiveObject(cell, obj); else EnsureGridCreated(GridCoord(cell.GridX(), cell.GridY())); - AddToGrid(obj, cell); + sLog->outStaticDebug("Object %u enters grid[%u, %u]", GUID_LOPART(obj->GetGUID()), cell.GridX(), cell.GridY()); + + //Must already be set before AddToMap. Usually during obj->Create. //obj->SetMap(this); obj->AddToWorld(); + InitializeObject(obj); if (obj->isActiveObject()) AddToActive(obj); - sLog->outStaticDebug("Object %u enters grid[%u, %u]", GUID_LOPART(obj->GetGUID()), cell.GridX(), cell.GridY()); - //something, such as vehicle, needs to be update immediately //also, trigger needs to cast spell, if not update, cannot see visual obj->UpdateObjectVisibility(true); @@ -656,26 +642,16 @@ void Map::ProcessRelocationNotifies(const uint32 diff) } } -void Map::RemoveFromMap(Player* player, bool remove) +void Map::RemovePlayerFromMap(Player* player, bool remove) { player->RemoveFromWorld(); SendRemoveTransports(player); - CellCoord p = Trinity::ComputeCellCoord(player->GetPositionX(), player->GetPositionY()); - if (!p.IsCoordValid()) - sLog->outCrash("Map::Remove: Player is in invalid cell!"); + player->UpdateObjectVisibility(true); + if (player->IsInGrid()) + player->RemoveFromGrid(); else - { - Cell cell(p); - if (!getNGrid(cell.data.Part.grid_x, cell.data.Part.grid_y)) - sLog->outError("Map::Remove() i_grids was NULL x:%d, y:%d", cell.data.Part.grid_x, cell.data.Part.grid_y); - else - { - sLog->outStaticDebug("Remove player %s from grid[%u, %u]", player->GetName(), cell.GridX(), cell.GridY()); - player->UpdateObjectVisibility(true); - RemoveFromGrid(player, cell); - } - } + ASSERT(remove); //maybe deleted in logoutplayer when player is not in a map if (remove) DeleteFromWorld(player); @@ -691,19 +667,8 @@ Map::RemoveFromMap(T *obj, bool remove) if (obj->isActiveObject()) RemoveFromActive(obj); - CellCoord p = Trinity::ComputeCellCoord(obj->GetPositionX(), obj->GetPositionY()); - if (!p.IsCoordValid()) - sLog->outError("Map::Remove: Object " UI64FMTD " has invalid coordinates X:%f Y:%f grid cell [%u:%u]", obj->GetGUID(), obj->GetPositionX(), obj->GetPositionY(), p.x_coord, p.y_coord); - else - { - Cell cell(p); - if (IsGridLoaded(GridCoord(cell.data.Part.grid_x, cell.data.Part.grid_y))) - { - sLog->outStaticDebug("Remove object " UI64FMTD " from grid[%u, %u]", obj->GetGUID(), cell.data.Part.grid_x, cell.data.Part.grid_y); - obj->UpdateObjectVisibility(true); - RemoveFromGrid(obj, cell); - } - } + obj->UpdateObjectVisibility(true); + obj->RemoveFromGrid(); obj->ResetMap(); @@ -730,7 +695,7 @@ Map::PlayerRelocation(Player* player, float x, float y, float z, float orientati { sLog->outStaticDebug("Player %s relocation grid[%u, %u]cell[%u, %u]->grid[%u, %u]cell[%u, %u]", player->GetName(), old_cell.GridX(), old_cell.GridY(), old_cell.CellX(), old_cell.CellY(), new_cell.GridX(), new_cell.GridY(), new_cell.CellX(), new_cell.CellY()); - RemoveFromGrid(player, old_cell); + player->RemoveFromGrid(); if (old_cell.DiffGrid(new_cell)) EnsureGridLoadedForActiveObject(new_cell, player); @@ -856,7 +821,7 @@ bool Map::CreatureCellRelocation(Creature* c, Cell new_cell) sLog->outDebug(LOG_FILTER_MAPS, "Creature (GUID: %u Entry: %u) moved in grid[%u, %u] from cell[%u, %u] to cell[%u, %u].", c->GetGUIDLow(), c->GetEntry(), old_cell.GridX(), old_cell.GridY(), old_cell.CellX(), old_cell.CellY(), new_cell.CellX(), new_cell.CellY()); #endif - RemoveFromGrid(c, old_cell); + c->RemoveFromGrid(); AddToGrid(c, new_cell); } else @@ -878,7 +843,7 @@ bool Map::CreatureCellRelocation(Creature* c, Cell new_cell) sLog->outDebug(LOG_FILTER_MAPS, "Active creature (GUID: %u Entry: %u) moved from grid[%u, %u]cell[%u, %u] to grid[%u, %u]cell[%u, %u].", c->GetGUIDLow(), c->GetEntry(), old_cell.GridX(), old_cell.GridY(), old_cell.CellX(), old_cell.CellY(), new_cell.GridX(), new_cell.GridY(), new_cell.CellX(), new_cell.CellY()); #endif - RemoveFromGrid(c, old_cell); + c->RemoveFromGrid(); AddToGrid(c, new_cell); return true; @@ -891,7 +856,7 @@ bool Map::CreatureCellRelocation(Creature* c, Cell new_cell) sLog->outDebug(LOG_FILTER_MAPS, "Creature (GUID: %u Entry: %u) moved from grid[%u, %u]cell[%u, %u] to grid[%u, %u]cell[%u, %u].", c->GetGUIDLow(), c->GetEntry(), old_cell.GridX(), old_cell.GridY(), old_cell.CellX(), old_cell.CellY(), new_cell.GridX(), new_cell.GridY(), new_cell.CellX(), new_cell.CellY()); #endif - RemoveFromGrid(c, old_cell); + c->RemoveFromGrid(); EnsureGridCreated(GridCoord(new_cell.GridX(), new_cell.GridY())); AddToGrid(c, new_cell); @@ -2275,7 +2240,7 @@ bool InstanceMap::CanEnter(Player* player) /* Do map specific checks and add the player to the map if successful. */ -bool InstanceMap::AddToMap(Player* player) +bool InstanceMap::AddPlayerToMap(Player* player) { // TODO: Not sure about checking player level: already done in HandleAreaTriggerOpcode // GMs still can teleport player in instance. @@ -2385,7 +2350,7 @@ bool InstanceMap::AddToMap(Player* player) } // this will acquire the same mutex so it cannot be in the previous block - Map::AddToMap(player); + Map::AddPlayerToMap(player); if (i_data) i_data->OnPlayerEnter(player); @@ -2401,13 +2366,13 @@ void InstanceMap::Update(const uint32 t_diff) i_data->Update(t_diff); } -void InstanceMap::RemoveFromMap(Player* player, bool remove) +void InstanceMap::RemovePlayerFromMap(Player* player, bool remove) { sLog->outDetail("MAP: Removing player '%s' from instance '%u' of map '%s' before relocating to another map", player->GetName(), GetInstanceId(), GetMapName()); //if last player set unload timer if (!m_unloadTimer && m_mapRefManager.getSize() == 1) m_unloadTimer = m_unloadWhenEmpty ? MIN_UNLOAD_DELAY : std::max(sWorld->getIntConfig(CONFIG_INSTANCE_UNLOAD_DELAY), (uint32)MIN_UNLOAD_DELAY); - Map::RemoveFromMap(player, remove); + Map::RemovePlayerFromMap(player, remove); // for normal instances schedule the reset after all players have left SetResetSchedule(true); } @@ -2486,7 +2451,7 @@ bool InstanceMap::Reset(uint8 method) return m_mapRefManager.isEmpty(); } -void InstanceMap::PermBindAllPlayers(Player* player) +void InstanceMap::PermBindAllPlayers(Player* source) { if (!IsDungeon()) return; @@ -2494,11 +2459,11 @@ void InstanceMap::PermBindAllPlayers(Player* player) InstanceSave* save = sInstanceSaveMgr->GetInstanceSave(GetInstanceId()); if (!save) { - sLog->outError("Cannot bind player (GUID: %u, Name: %s), because no instance save is available for instance map (Name: %s, Entry: %u, InstanceId: %u)!", player->GetGUIDLow(), player->GetName(), player->GetMap()->GetMapName(), player->GetMapId(), GetInstanceId()); + sLog->outError("Cannot bind player (GUID: %u, Name: %s), because no instance save is available for instance map (Name: %s, Entry: %u, InstanceId: %u)!", source->GetGUIDLow(), source->GetName(), source->GetMap()->GetMapName(), source->GetMapId(), GetInstanceId()); return; } - Group* group = player->GetGroup(); + Group* group = source->GetGroup(); // group members outside the instance group don't get bound for (MapRefManager::iterator itr = m_mapRefManager.begin(); itr != m_mapRefManager.end(); ++itr) { @@ -2621,7 +2586,7 @@ bool BattlegroundMap::CanEnter(Player* player) return Map::CanEnter(player); } -bool BattlegroundMap::AddToMap(Player* player) +bool BattlegroundMap::AddPlayerToMap(Player* player) { { TRINITY_GUARD(ACE_Thread_Mutex, Lock); @@ -2631,13 +2596,13 @@ bool BattlegroundMap::AddToMap(Player* player) // reset instance validity, battleground maps do not homebind player->m_InstanceValid = true; } - return Map::AddToMap(player); + return Map::AddPlayerToMap(player); } -void BattlegroundMap::RemoveFromMap(Player* player, bool remove) +void BattlegroundMap::RemovePlayerFromMap(Player* player, bool remove) { sLog->outDetail("MAP: Removing player '%s' from bg '%u' of map '%s' before relocating to another map", player->GetName(), GetInstanceId(), GetMapName()); - Map::RemoveFromMap(player, remove); + Map::RemovePlayerFromMap(player, remove); } void BattlegroundMap::SetUnload() diff --git a/src/server/game/Maps/Map.h b/src/server/game/Maps/Map.h index 053759a3ab3..9caef8457b8 100755 --- a/src/server/game/Maps/Map.h +++ b/src/server/game/Maps/Map.h @@ -244,8 +244,8 @@ class Map : public GridRefManager<NGridType> return false; } - virtual bool AddToMap(Player*); - virtual void RemoveFromMap(Player*, bool); + virtual bool AddPlayerToMap(Player*); + virtual void RemovePlayerFromMap(Player*, bool); template<class T> void AddToMap(T *); template<class T> void RemoveFromMap(T *, bool); @@ -526,9 +526,6 @@ class Map : public GridRefManager<NGridType> void AddToGrid(T* object, Cell const& cell); template<class T> - void RemoveFromGrid(T* object, Cell const& cell); - - template<class T> void DeleteFromWorld(T*); template<class T> @@ -570,14 +567,14 @@ class InstanceMap : public Map public: InstanceMap(uint32 id, time_t, uint32 InstanceId, uint8 SpawnMode, Map* _parent); ~InstanceMap(); - bool AddToMap(Player*); - void RemoveFromMap(Player*, bool); + bool AddPlayerToMap(Player*); + void RemovePlayerFromMap(Player*, bool); void Update(const uint32); void CreateInstanceData(bool load); bool Reset(uint8 method); uint32 GetScriptId() { return i_script_id; } InstanceScript* GetInstanceScript() { return i_data; } - void PermBindAllPlayers(Player* player); + void PermBindAllPlayers(Player* source); void UnloadAll(); bool CanEnter(Player* player); void SendResetWarnings(uint32 timeLeft) const; @@ -600,8 +597,8 @@ class BattlegroundMap : public Map BattlegroundMap(uint32 id, time_t, uint32 InstanceId, Map* _parent, uint8 spawnMode); ~BattlegroundMap(); - bool AddToMap(Player*); - void RemoveFromMap(Player*, bool); + bool AddPlayerToMap(Player*); + void RemovePlayerFromMap(Player*, bool); bool CanEnter(Player* player); void SetUnload(); //void UnloadAll(bool pForce); diff --git a/src/server/game/Maps/MapInstanced.cpp b/src/server/game/Maps/MapInstanced.cpp index bbade4c9dc3..a56a193ba64 100755 --- a/src/server/game/Maps/MapInstanced.cpp +++ b/src/server/game/Maps/MapInstanced.cpp @@ -110,7 +110,7 @@ void MapInstanced::UnloadAll() - create the instance if it's not created already - the player is not actually added to the instance (only in InstanceMap::Add) */ -Map* MapInstanced::CreateInstance(const uint32 mapId, Player* player) +Map* MapInstanced::CreateInstanceForPlayer(const uint32 mapId, Player* player) { if (GetId() != mapId || !player) return NULL; @@ -124,7 +124,7 @@ Map* MapInstanced::CreateInstance(const uint32 mapId, Player* player) // the instance id is set in battlegroundid NewInstanceId = player->GetBattlegroundId(); if (!NewInstanceId) return NULL; - map = _FindMap(NewInstanceId); + map = FindInstanceMap(NewInstanceId); if (!map) map = CreateBattleground(NewInstanceId, player->GetBattleground()); } @@ -151,7 +151,7 @@ Map* MapInstanced::CreateInstance(const uint32 mapId, Player* player) { // solo/perm/group NewInstanceId = pSave->GetInstanceId(); - map = _FindMap(NewInstanceId); + map = FindInstanceMap(NewInstanceId); // it is possible that the save exists but the map doesn't if (!map) map = CreateInstance(NewInstanceId, pSave, pSave->GetDifficulty()); @@ -163,7 +163,11 @@ Map* MapInstanced::CreateInstance(const uint32 mapId, Player* player) NewInstanceId = sMapMgr->GenerateInstanceId(); Difficulty diff = player->GetGroup() ? player->GetGroup()->GetDifficulty(IsRaid()) : player->GetDifficulty(IsRaid()); - map = CreateInstance(NewInstanceId, NULL, diff); + //Seems it is now possible, but I do not know if it should be allowed + //ASSERT(!FindInstanceMap(NewInstanceId)); + map = FindInstanceMap(NewInstanceId); + if (!map) + map = CreateInstance(NewInstanceId, NULL, diff); } } diff --git a/src/server/game/Maps/MapInstanced.h b/src/server/game/Maps/MapInstanced.h index af303ed0e9e..9b714cb7fb3 100755 --- a/src/server/game/Maps/MapInstanced.h +++ b/src/server/game/Maps/MapInstanced.h @@ -39,8 +39,12 @@ class MapInstanced : public Map void UnloadAll(); bool CanEnter(Player* player); - Map* CreateInstance(const uint32 mapId, Player* player); - Map* FindMap(uint32 InstanceId) const { return _FindMap(InstanceId); } + Map* CreateInstanceForPlayer(const uint32 mapId, Player* player); + Map* FindInstanceMap(uint32 instanceId) const + { + InstancedMaps::const_iterator i = m_InstancedMaps.find(instanceId); + return(i == m_InstancedMaps.end() ? NULL : i->second); + } bool DestroyInstance(InstancedMaps::iterator &itr); void AddGridMapReference(const GridCoord &p) @@ -60,18 +64,11 @@ class MapInstanced : public Map virtual void InitVisibilityDistance(); private: - InstanceMap* CreateInstance(uint32 InstanceId, InstanceSave* save, Difficulty difficulty); BattlegroundMap* CreateBattleground(uint32 InstanceId, Battleground* bg); InstancedMaps m_InstancedMaps; - Map* _FindMap(uint32 InstanceId) const - { - InstancedMaps::const_iterator i = m_InstancedMaps.find(InstanceId); - return(i == m_InstancedMaps.end() ? NULL : i->second); - } - uint16 GridMapReference[MAX_NUMBER_OF_GRIDS][MAX_NUMBER_OF_GRIDS]; }; #endif diff --git a/src/server/game/Maps/MapManager.cpp b/src/server/game/Maps/MapManager.cpp index 78aeb32ab2d..f31f1348b44 100755 --- a/src/server/game/Maps/MapManager.cpp +++ b/src/server/game/Maps/MapManager.cpp @@ -95,9 +95,9 @@ void MapManager::checkAndCorrectGridStatesArray() ++i_GridStateErrorCount; } -Map* MapManager::_createBaseMap(uint32 id) +Map* MapManager::CreateBaseMap(uint32 id) { - Map* m = _findMap(id); + Map* m = FindBaseMap(id); if (m == NULL) { @@ -119,27 +119,34 @@ Map* MapManager::_createBaseMap(uint32 id) return m; } -Map* MapManager::CreateMap(uint32 id, const WorldObject* obj, uint32 /*instanceId*/) +Map* MapManager::FindBaseNonInstanceMap(uint32 mapId) const { - ASSERT(obj); - //if (!obj->IsInWorld()) sLog->outError("GetMap: called for map %d with object (typeid %d, guid %d, mapid %d, instanceid %d) who is not in world!", id, obj->GetTypeId(), obj->GetGUIDLow(), obj->GetMapId(), obj->GetInstanceId()); - Map* m = _createBaseMap(id); + Map* map = FindBaseMap(mapId); + if(map && map->Instanceable()) + return NULL; + return map; +} + +Map* MapManager::CreateMap(uint32 id, Player* player) +{ + Map* m = CreateBaseMap(id); - if (m && (obj->GetTypeId() == TYPEID_PLAYER) && m->Instanceable()) m = ((MapInstanced*)m)->CreateInstance(id, (Player*)obj); + if (m && m->Instanceable()) + m = ((MapInstanced*)m)->CreateInstanceForPlayer(id, player); return m; } Map* MapManager::FindMap(uint32 mapid, uint32 instanceId) const { - Map* map = _findMap(mapid); + Map* map = FindBaseMap(mapid); if (!map) return NULL; if (!map->Instanceable()) return instanceId == 0 ? map : NULL; - return ((MapInstanced*)map)->FindMap(instanceId); + return ((MapInstanced*)map)->FindInstanceMap(instanceId); } bool MapManager::CanPlayerEnter(uint32 mapid, Player* player, bool loginCheck) @@ -201,8 +208,8 @@ bool MapManager::CanPlayerEnter(uint32 mapid, Player* player, bool loginCheck) if (corpseMap == mapid) break; - InstanceTemplate const* instance = sObjectMgr->GetInstanceTemplate(corpseMap); - corpseMap = instance ? instance->Parent : 0; + InstanceTemplate const* corpseInstance = sObjectMgr->GetInstanceTemplate(corpseMap); + corpseMap = corpseInstance ? corpseInstance->Parent : 0; } while (corpseMap); if (!corpseMap) @@ -248,7 +255,7 @@ bool MapManager::CanPlayerEnter(uint32 mapid, Player* player, bool loginCheck) instaceIdToCheck = save->GetInstanceId(); // instanceId can never be 0 - will not be found - if (!player->CheckInstanceCount(instaceIdToCheck)) + if (!player->CheckInstanceCount(instaceIdToCheck) && !player->isDead()) { player->SendTransferAborted(mapid, TRANSFER_ABORT_TOO_MANY_INSTANCES); return false; @@ -280,8 +287,8 @@ void MapManager::Update(uint32 diff) iter->second->DelayedUpdate(uint32(i_timer.GetCurrent())); sObjectAccessor->Update(uint32(i_timer.GetCurrent())); - for (TransportSet::iterator iter = m_Transports.begin(); iter != m_Transports.end(); ++iter) - (*iter)->Update(uint32(i_timer.GetCurrent())); + for (TransportSet::iterator itr = m_Transports.begin(); itr != m_Transports.end(); ++itr) + (*itr)->Update(uint32(i_timer.GetCurrent())); i_timer.SetCurrent(0); } diff --git a/src/server/game/Maps/MapManager.h b/src/server/game/Maps/MapManager.h index 926ff2c8051..3b168a57cd5 100755 --- a/src/server/game/Maps/MapManager.h +++ b/src/server/game/Maps/MapManager.h @@ -35,14 +35,14 @@ class MapManager friend class ACE_Singleton<MapManager, ACE_Thread_Mutex>; public: - - Map* CreateMap(uint32, const WorldObject* obj, uint32 instanceId); - Map const* CreateBaseMap(uint32 id) const { return const_cast<MapManager*>(this)->_createBaseMap(id); } - Map* FindMap(uint32 mapid, uint32 instanceId = 0) const; + Map* CreateBaseMap(uint32 mapId); + Map* FindBaseNonInstanceMap(uint32 mapId) const; + Map* CreateMap(uint32 mapId, Player* player); + Map* FindMap(uint32 mapId, uint32 instanceId) const; uint16 GetAreaFlag(uint32 mapid, float x, float y, float z) const { - Map const* m = CreateBaseMap(mapid); + Map const* m = const_cast<MapManager*>(this)->CreateBaseMap(mapid); return m->GetAreaFlag(x, y, z); } uint32 GetAreaId(uint32 mapid, float x, float y, float z) const @@ -160,16 +160,15 @@ class MapManager MapManager(); ~MapManager(); - MapManager(const MapManager &); - MapManager& operator=(const MapManager &); - - Map* _createBaseMap(uint32 id); - Map* _findMap(uint32 id) const + Map* FindBaseMap(uint32 mapId) const { - MapMapType::const_iterator iter = i_maps.find(id); + MapMapType::const_iterator iter = i_maps.find(mapId); return (iter == i_maps.end() ? NULL : iter->second); } + MapManager(const MapManager &); + MapManager& operator=(const MapManager &); + ACE_Thread_Mutex Lock; uint32 i_gridCleanUpDelay; MapMapType i_maps; diff --git a/src/server/game/Miscellaneous/SharedDefines.h b/src/server/game/Miscellaneous/SharedDefines.h index 1eba2fea1a2..a99d0f37c02 100755 --- a/src/server/game/Miscellaneous/SharedDefines.h +++ b/src/server/game/Miscellaneous/SharedDefines.h @@ -2816,7 +2816,8 @@ enum DiminishingGroup DIMINISHING_SILENCE = 16, DIMINISHING_SLEEP = 17, DIMINISHING_TAUNT = 18, - DIMINISHING_LIMITONLY = 19 + DIMINISHING_LIMITONLY = 19, + DIMINISHING_DRAGONS_BREATH = 20, }; enum SummonCategory diff --git a/src/server/game/Movement/MovementGenerators/ConfusedMovementGenerator.cpp b/src/server/game/Movement/MovementGenerators/ConfusedMovementGenerator.cpp index 991b03c44e4..7c3b26c2646 100755 --- a/src/server/game/Movement/MovementGenerators/ConfusedMovementGenerator.cpp +++ b/src/server/game/Movement/MovementGenerators/ConfusedMovementGenerator.cpp @@ -29,10 +29,9 @@ #endif template<class T> -void -ConfusedMovementGenerator<T>::Initialize(T &unit) +void ConfusedMovementGenerator<T>::Initialize(T &unit) { - const float wander_distance = 11; + float const wanderDistance = 4; float x, y, z; x = unit.GetPositionX(); y = unit.GetPositionY(); @@ -47,8 +46,8 @@ ConfusedMovementGenerator<T>::Initialize(T &unit) for (uint8 idx = 0; idx <= MAX_CONF_WAYPOINTS; ++idx) { - float wanderX = x + wander_distance*(float)rand_norm() - wander_distance/2; - float wanderY = y + wander_distance*(float)rand_norm() - wander_distance/2; + float wanderX = x + wanderDistance * (float)rand_norm() - wanderDistance/2; + float wanderY = y + wanderDistance * (float)rand_norm() - wanderDistance/2; Trinity::NormalizeMapCoord(wanderX); Trinity::NormalizeMapCoord(wanderY); @@ -68,7 +67,7 @@ ConfusedMovementGenerator<T>::Initialize(T &unit) } // Taken from FleeingMovementGenerator - if (!(new_z - z) || wander_distance / fabs(new_z - z) > 1.0f) + if (!(new_z - z) || wanderDistance / fabs(new_z - z) > 1.0f) { i_waypoints[idx][0] = wanderX; i_waypoints[idx][1] = wanderY; @@ -89,29 +88,26 @@ ConfusedMovementGenerator<T>::Initialize(T &unit) unit.SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_CONFUSED); unit.CastStop(); unit.StopMoving(); - unit.RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING); + unit.AddUnitMovementFlag(MOVEMENTFLAG_WALKING); // Should actually be splineflag unit.AddUnitState(UNIT_STAT_CONFUSED); } template<> -void -ConfusedMovementGenerator<Creature>::_InitSpecific(Creature &creature, bool &is_water_ok, bool &is_land_ok) +void ConfusedMovementGenerator<Creature>::_InitSpecific(Creature &creature, bool &is_water_ok, bool &is_land_ok) { is_water_ok = creature.canSwim(); is_land_ok = creature.canWalk(); } template<> -void -ConfusedMovementGenerator<Player>::_InitSpecific(Player &, bool &is_water_ok, bool &is_land_ok) +void ConfusedMovementGenerator<Player>::_InitSpecific(Player &, bool &is_water_ok, bool &is_land_ok) { is_water_ok = true; is_land_ok = true; } template<class T> -void -ConfusedMovementGenerator<T>::Reset(T &unit) +void ConfusedMovementGenerator<T>::Reset(T &unit) { i_nextMove = 1; i_nextMoveTime.Reset(0); @@ -120,8 +116,7 @@ ConfusedMovementGenerator<T>::Reset(T &unit) } template<class T> -bool -ConfusedMovementGenerator<T>::Update(T &unit, const uint32 diff) +bool ConfusedMovementGenerator<T>::Update(T &unit, const uint32 diff) { if (!&unit) return true; @@ -141,7 +136,7 @@ ConfusedMovementGenerator<T>::Update(T &unit, const uint32 diff) unit.ClearUnitState(UNIT_STAT_MOVE); i_nextMove = urand(1, MAX_CONF_WAYPOINTS); - i_nextMoveTime.Reset(urand(0, 1500-1)); // TODO: check the minimum reset time, should be probably higher + i_nextMoveTime.Reset(urand(100, 1000)); } } } @@ -164,11 +159,11 @@ ConfusedMovementGenerator<T>::Update(T &unit, const uint32 diff) } template<class T> -void -ConfusedMovementGenerator<T>::Finalize(T &unit) +void ConfusedMovementGenerator<T>::Finalize(T &unit) { unit.RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_CONFUSED); unit.ClearUnitState(UNIT_STAT_CONFUSED); + if (unit.GetTypeId() == TYPEID_UNIT && unit.getVictim()) unit.SetTarget(unit.getVictim()->GetGUID()); } diff --git a/src/server/game/Movement/MovementGenerators/WaypointMovementGenerator.cpp b/src/server/game/Movement/MovementGenerators/WaypointMovementGenerator.cpp index 808d8318ea9..396b0c489f2 100755 --- a/src/server/game/Movement/MovementGenerators/WaypointMovementGenerator.cpp +++ b/src/server/game/Movement/MovementGenerators/WaypointMovementGenerator.cpp @@ -351,7 +351,7 @@ void FlightPathMovementGenerator::InitEndGridInfo() void FlightPathMovementGenerator::PreloadEndGrid() { // used to preload the final grid where the flightmaster is - Map* endMap = sMapMgr->FindMap(m_endMapId); + Map* endMap = sMapMgr->FindBaseNonInstanceMap(m_endMapId); // Load the grid if (endMap) diff --git a/src/server/game/Pools/PoolMgr.cpp b/src/server/game/Pools/PoolMgr.cpp index bbef60aa5e7..bd8840ff8a8 100755 --- a/src/server/game/Pools/PoolMgr.cpp +++ b/src/server/game/Pools/PoolMgr.cpp @@ -359,7 +359,7 @@ void PoolGroup<Creature>::Spawn1Object(PoolObject* obj) sObjectMgr->AddCreatureToGrid(obj->guid, data); // Spawn if necessary (loaded grids only) - Map* map = const_cast<Map*>(sMapMgr->CreateBaseMap(data->mapid)); + Map* map = sMapMgr->CreateBaseMap(data->mapid); // We use spawn coords to spawn if (!map->Instanceable() && map->IsGridLoaded(data->posX, data->posY)) { @@ -385,7 +385,7 @@ void PoolGroup<GameObject>::Spawn1Object(PoolObject* obj) sObjectMgr->AddGameobjectToGrid(obj->guid, data); // Spawn if necessary (loaded grids only) // this base map checked as non-instanced and then only existed - Map* map = const_cast<Map*>(sMapMgr->CreateBaseMap(data->mapid)); + Map* map = sMapMgr->CreateBaseMap(data->mapid); // We use current coords to unspawn, not spawn coords since creature can have changed grid if (!map->Instanceable() && map->IsGridLoaded(data->posX, data->posY)) { diff --git a/src/server/game/Quests/QuestDef.cpp b/src/server/game/Quests/QuestDef.cpp index 9650afb60e2..29bd95a73a3 100755 --- a/src/server/game/Quests/QuestDef.cpp +++ b/src/server/game/Quests/QuestDef.cpp @@ -22,127 +22,132 @@ Quest::Quest(Field* questRecord) { - QuestId = questRecord[0].GetUInt32(); - QuestMethod = questRecord[1].GetUInt32(); - ZoneOrSort = questRecord[2].GetInt32(); - SkillOrClassMask = questRecord[3].GetInt32(); - MinLevel = questRecord[4].GetUInt32(); - MaxLevel = questRecord[5].GetUInt32(); - QuestLevel = questRecord[6].GetInt32(); - Type = questRecord[7].GetUInt32(); - RequiredRaces = questRecord[8].GetUInt32(); - RequiredSkillValue = questRecord[9].GetUInt32(); - RepObjectiveFaction = questRecord[10].GetUInt32(); - RepObjectiveValue = questRecord[11].GetInt32(); - RepObjectiveFaction2 = questRecord[12].GetUInt32(); - RepObjectiveValue2 = questRecord[13].GetInt32(); - RequiredMinRepFaction = questRecord[14].GetUInt32(); - RequiredMinRepValue = questRecord[15].GetInt32(); - RequiredMaxRepFaction = questRecord[16].GetUInt32(); - RequiredMaxRepValue = questRecord[17].GetInt32(); - SuggestedPlayers = questRecord[18].GetUInt32(); - LimitTime = questRecord[19].GetUInt32(); - QuestFlags = questRecord[20].GetUInt32(); - uint32 SpecialFlags = questRecord[21].GetUInt16(); - CharTitleId = questRecord[22].GetUInt32(); - PlayersSlain = questRecord[23].GetUInt32(); - BonusTalents = questRecord[24].GetUInt32(); - RewArenaPoints = questRecord[25].GetInt32(); - PrevQuestId = questRecord[26].GetInt32(); - NextQuestId = questRecord[27].GetInt32(); - ExclusiveGroup = questRecord[28].GetInt32(); - NextQuestInChain = questRecord[29].GetUInt32(); - XPId = questRecord[30].GetUInt32(); - SrcItemId = questRecord[31].GetUInt32(); - SrcItemCount = questRecord[32].GetUInt32(); - SrcSpell = questRecord[33].GetUInt32(); - Title = questRecord[34].GetString(); - Details = questRecord[35].GetString(); - Objectives = questRecord[36].GetString(); - OfferRewardText = questRecord[37].GetString(); - RequestItemsText = questRecord[38].GetString(); - EndText = questRecord[39].GetString(); - CompletedText = questRecord[40].GetString(); + Id = questRecord[0].GetUInt32(); + Method = questRecord[1].GetUInt32(); + Level = questRecord[2].GetInt32(); + MinLevel = questRecord[3].GetUInt32(); + MaxLevel = questRecord[4].GetUInt32(); + ZoneOrSort = questRecord[5].GetInt32(); + Type = questRecord[6].GetUInt32(); + SuggestedPlayers = questRecord[7].GetUInt32(); + LimitTime = questRecord[8].GetUInt32(); + RequiredClasses = questRecord[9].GetUInt32(); + RequiredRaces = questRecord[10].GetUInt32(); + RequiredSkillId = questRecord[11].GetUInt32(); + RequiredSkillPoints = questRecord[12].GetUInt32(); + RequiredFactionId1 = questRecord[13].GetUInt32(); + RequiredFactionId2 = questRecord[14].GetUInt32(); + RequiredFactionValue1 = questRecord[15].GetInt32(); + RequiredFactionValue2 = questRecord[16].GetInt32(); + RequiredMinRepFaction = questRecord[17].GetUInt32(); + RequiredMaxRepFaction = questRecord[18].GetUInt32(); + RequiredMinRepValue = questRecord[19].GetInt32(); + RequiredMaxRepValue = questRecord[20].GetInt32(); + PrevQuestId = questRecord[21].GetInt32(); + NextQuestId = questRecord[22].GetInt32(); + ExclusiveGroup = questRecord[23].GetInt32(); + NextQuestIdChain = questRecord[24].GetUInt32(); + RewardXPId = questRecord[25].GetUInt32(); + RewardOrRequiredMoney = questRecord[26].GetInt32(); + RewardMoneyMaxLevel = questRecord[27].GetUInt32(); + RewardSpell = questRecord[28].GetUInt32(); + RewardSpellCast = questRecord[29].GetInt32(); + RewardHonor = questRecord[30].GetUInt32(); + RewardHonorMultiplier = questRecord[31].GetFloat(); + RewardMailTemplateId = questRecord[32].GetUInt32(); + RewardMailDelay = questRecord[33].GetUInt32(); + SourceItemId = questRecord[34].GetUInt32(); + SourceItemIdCount = questRecord[35].GetUInt32(); + SourceSpellid = questRecord[36].GetUInt32(); + Flags = questRecord[37].GetUInt32(); + uint32 SpecialFlags = questRecord[38].GetUInt16(); + RewardTitleId = questRecord[39].GetUInt32(); + RequiredPlayerKills = questRecord[40].GetUInt32(); + RewardTalents = questRecord[41].GetUInt32(); + RewardArenaPoints = questRecord[42].GetInt32(); - for (int i = 0; i < QUEST_OBJECTIVES_COUNT; ++i) - ObjectiveText[i] = questRecord[41+i].GetString(); + for (int i = 0; i < QUEST_REWARDS_COUNT; ++i) + RewardItemId[i] = questRecord[43+i].GetUInt32(); - for (int i = 0; i < QUEST_ITEM_OBJECTIVES_COUNT; ++i) - ReqItemId[i] = questRecord[45+i].GetUInt32(); + for (int i = 0; i < QUEST_REWARDS_COUNT; ++i) + RewardItemIdCount[i] = questRecord[47+i].GetUInt32(); - for (int i = 0; i < QUEST_ITEM_OBJECTIVES_COUNT; ++i) - ReqItemCount[i] = questRecord[51+i].GetUInt32(); + for (int i = 0; i < QUEST_REWARD_CHOICES_COUNT; ++i) + RewardChoiceItemId[i] = questRecord[51+i].GetUInt32(); - for (int i = 0; i < QUEST_SOURCE_ITEM_IDS_COUNT; ++i) - ReqSourceId[i] = questRecord[57+i].GetUInt32(); + for (int i = 0; i < QUEST_REWARD_CHOICES_COUNT; ++i) + RewardChoiceItemCount[i] = questRecord[57+i].GetUInt32(); + + for (int i = 0; i < QUEST_REPUTATIONS_COUNT; ++i) + RewardFactionId[i] = questRecord[63+i].GetUInt32(); - for (int i = 0; i < QUEST_SOURCE_ITEM_IDS_COUNT; ++i) - ReqSourceCount[i] = questRecord[61+i].GetUInt32(); + for (int i = 0; i < QUEST_REPUTATIONS_COUNT; ++i) + RewardFactionValueId[i] = questRecord[68+i].GetInt32(); - for (int i = 0; i < QUEST_OBJECTIVES_COUNT; ++i) - ReqCreatureOrGOId[i] = questRecord[65+i].GetInt32(); + for (int i = 0; i < QUEST_REPUTATIONS_COUNT; ++i) + RewardFactionValueIdOverride[i] = questRecord[73+i].GetInt32(); + + PointMapId = questRecord[78].GetUInt32(); + PointX = questRecord[79].GetFloat(); + PointY = questRecord[80].GetFloat(); + PointOption = questRecord[81].GetUInt32(); + Title = questRecord[82].GetString(); + Objectives = questRecord[83].GetString(); + Details = questRecord[84].GetString(); + EndText = questRecord[85].GetString(); + OfferRewardText = questRecord[86].GetString(); + RequestItemsText = questRecord[87].GetString(); + CompletedText = questRecord[88].GetString(); for (int i = 0; i < QUEST_OBJECTIVES_COUNT; ++i) - ReqCreatureOrGOCount[i] = questRecord[69+i].GetUInt32(); + RequiredNpcOrGo[i] = questRecord[89+i].GetInt32(); for (int i = 0; i < QUEST_OBJECTIVES_COUNT; ++i) - ReqSpell[i] = questRecord[73+i].GetUInt32(); + RequiredNpcOrGoCount[i] = questRecord[93+i].GetUInt32(); - for (int i = 0; i < QUEST_REWARD_CHOICES_COUNT; ++i) - RewChoiceItemId[i] = questRecord[77+i].GetUInt32(); + for (int i = 0; i < QUEST_SOURCE_ITEM_IDS_COUNT; ++i) + RequiredSourceItemid[i] = questRecord[97+i].GetUInt32(); - for (int i = 0; i < QUEST_REWARD_CHOICES_COUNT; ++i) - RewChoiceItemCount[i] = questRecord[83+i].GetUInt32(); + for (int i = 0; i < QUEST_SOURCE_ITEM_IDS_COUNT; ++i) + RequiredSourceItemId[i] = questRecord[101+i].GetUInt32(); - for (int i = 0; i < QUEST_REWARDS_COUNT; ++i) - RewItemId[i] = questRecord[89+i].GetUInt32(); + for (int i = 0; i < QUEST_ITEM_OBJECTIVES_COUNT; ++i) + RequiredItemId[i] = questRecord[105+i].GetUInt32(); - for (int i = 0; i < QUEST_REWARDS_COUNT; ++i) - RewItemCount[i] = questRecord[93+i].GetUInt32(); + for (int i = 0; i < QUEST_ITEM_OBJECTIVES_COUNT; ++i) + RequiredItemCount[i] = questRecord[111+i].GetUInt32(); - for (int i = 0; i < QUEST_REPUTATIONS_COUNT; ++i) - RewRepFaction[i] = questRecord[97+i].GetUInt32(); + for (int i = 0; i < QUEST_OBJECTIVES_COUNT; ++i) + RequiredSpellCast[i] = questRecord[117+i].GetUInt32(); - for (int i = 0; i < QUEST_REPUTATIONS_COUNT; ++i) - RewRepValueId[i] = questRecord[102+i].GetInt32(); + // int8 Unknown0 = questRecord[121].GetUInt32(); - for (int i = 0; i < QUEST_REPUTATIONS_COUNT; ++i) - RewRepValue[i] = questRecord[107+i].GetInt32(); - - RewHonorAddition = questRecord[112].GetUInt32(); - RewHonorMultiplier = questRecord[113].GetFloat(); - RewOrReqMoney = questRecord[114].GetInt32(); - RewMoneyMaxLevel = questRecord[115].GetUInt32(); - RewSpell = questRecord[116].GetUInt32(); - RewSpellCast = questRecord[117].GetInt32(); - RewMailTemplateId = questRecord[118].GetUInt32(); - RewMailDelaySecs = questRecord[119].GetUInt32(); - PointMapId = questRecord[120].GetUInt32(); - PointX = questRecord[121].GetFloat(); - PointY = questRecord[122].GetFloat(); - PointOpt = questRecord[123].GetUInt32(); + for (int i = 0; i < QUEST_OBJECTIVES_COUNT; ++i) + ObjectiveText[i] = questRecord[122+i].GetString(); for (int i = 0; i < QUEST_EMOTE_COUNT; ++i) - DetailsEmote[i] = questRecord[124+i].GetUInt32(); + DetailsEmote[i] = questRecord[126+i].GetUInt32(); for (int i = 0; i < QUEST_EMOTE_COUNT; ++i) - DetailsEmoteDelay[i] = questRecord[128+i].GetUInt32(); + DetailsEmoteDelay[i] = questRecord[130+i].GetUInt32(); - IncompleteEmote = questRecord[132].GetUInt32(); - CompleteEmote = questRecord[133].GetUInt32(); + EmoteOnIncomplete = questRecord[134].GetUInt32(); + EmoteOnComplete = questRecord[135].GetUInt32(); for (int i = 0; i < QUEST_EMOTE_COUNT; ++i) - OfferRewardEmote[i] = questRecord[134+i].GetInt32(); + OfferRewardEmote[i] = questRecord[136+i].GetInt32(); for (int i = 0; i < QUEST_EMOTE_COUNT; ++i) - OfferRewardEmoteDelay[i] = questRecord[138+i].GetInt32(); + OfferRewardEmoteDelay[i] = questRecord[140+i].GetInt32(); + + StartScript = questRecord[144].GetUInt32(); + CompleteScript = questRecord[145].GetUInt32(); - QuestStartScript = questRecord[142].GetUInt32(); - QuestCompleteScript = questRecord[143].GetUInt32(); + // int32 WDBVerified = questRecord[146].GetInt32(); - QuestFlags |= SpecialFlags << 20; - if (QuestFlags & QUEST_TRINITY_FLAGS_AUTO_ACCEPT) - QuestFlags |= QUEST_FLAGS_AUTO_ACCEPT; + Flags |= SpecialFlags << 20; + if (Flags & QUEST_TRINITY_FLAGS_AUTO_ACCEPT) + Flags |= QUEST_FLAGS_AUTO_ACCEPT; m_reqitemscount = 0; m_reqCreatureOrGOcount = 0; @@ -150,19 +155,19 @@ Quest::Quest(Field* questRecord) m_rewchoiceitemscount = 0; for (int i=0; i < QUEST_ITEM_OBJECTIVES_COUNT; ++i) - if (ReqItemId[i]) + if (RequiredItemId[i]) ++m_reqitemscount; for (int i=0; i < QUEST_OBJECTIVES_COUNT; ++i) - if (ReqCreatureOrGOId[i]) + if (RequiredNpcOrGo[i]) ++m_reqCreatureOrGOcount; for (int i=0; i < QUEST_REWARDS_COUNT; ++i) - if (RewItemId[i]) + if (RewardItemId[i]) ++m_rewitemscount; for (int i=0; i < QUEST_REWARD_CHOICES_COUNT; ++i) - if (RewChoiceItemId[i]) + if (RewardChoiceItemId[i]) ++m_rewchoiceitemscount; } @@ -170,7 +175,7 @@ uint32 Quest::XPValue(Player* player) const { if (player) { - int32 quest_level = (QuestLevel == -1 ? player->getLevel() : QuestLevel); + int32 quest_level = (Level == -1 ? player->getLevel() : Level); const QuestXPEntry* xpentry = sQuestXPStore.LookupEntry(quest_level); if (!xpentry) return 0; @@ -181,7 +186,7 @@ uint32 Quest::XPValue(Player* player) const else if (diffFactor > 10) diffFactor = 10; - uint32 xp = diffFactor * xpentry->Exp[XPId] / 10; + uint32 xp = diffFactor * xpentry->Exp[RewardXPId] / 10; if (xp <= 100) xp = 5 * ((xp + 2) / 5); else if (xp <= 500) @@ -199,15 +204,15 @@ uint32 Quest::XPValue(Player* player) const int32 Quest::GetRewOrReqMoney() const { - if (RewOrReqMoney <= 0) - return RewOrReqMoney; + if (RewardOrRequiredMoney <= 0) + return RewardOrRequiredMoney; - return int32(RewOrReqMoney * sWorld->getRate(RATE_DROP_MONEY)); + return int32(RewardOrRequiredMoney * sWorld->getRate(RATE_DROP_MONEY)); } bool Quest::IsAutoComplete() const { - return QuestMethod == 0 || HasFlag(QUEST_FLAGS_AUTOCOMPLETE); + return Method == 0 || HasFlag(QUEST_FLAGS_AUTOCOMPLETE); } bool Quest::IsAllowedInRaid() const diff --git a/src/server/game/Quests/QuestDef.h b/src/server/game/Quests/QuestDef.h index 90e52660160..fc9a432a11b 100755 --- a/src/server/game/Quests/QuestDef.h +++ b/src/server/game/Quests/QuestDef.h @@ -141,7 +141,7 @@ enum __QuestFlags QUEST_FLAGS_UNAVAILABLE = 0x00004000, // Used on quests that are not generically available QUEST_FLAGS_WEEKLY = 0x00008000, QUEST_FLAGS_AUTOCOMPLETE = 0x00010000, // auto complete - QUEST_FLAGS_SPECIAL_ITEM = 0x00020000, // has something to do with ReqItemId and SrcItemId + QUEST_FLAGS_SPECIAL_ITEM = 0x00020000, // has something to do with RequiredItemId and SourceItemId QUEST_FLAGS_OBJ_TEXT = 0x00040000, // use Objective text as Complete text QUEST_FLAGS_AUTO_ACCEPT = 0x00080000, // The client recognizes this flag as auto-accept. However, NONE of the current quests (3.3.5a) have this flag. Maybe blizz used to use it, or will use it in the future. @@ -185,24 +185,25 @@ class Quest Quest(Field* questRecord); uint32 XPValue(Player* player) const; - bool HasFlag(uint32 flag) const { return (QuestFlags & flag) != 0; } - void SetFlag(uint32 flag) { QuestFlags |= flag; } + bool HasFlag(uint32 flag) const { return (Flags & flag) != 0; } + void SetFlag(uint32 flag) { Flags |= flag; } // table data accessors: - uint32 GetQuestId() const { return QuestId; } - uint32 GetQuestMethod() const { return QuestMethod; } + uint32 GetQuestId() const { return Id; } + uint32 GetQuestMethod() const { return Method; } int32 GetZoneOrSort() const { return ZoneOrSort; } - int32 GetSkillOrClassMask() const { return SkillOrClassMask; } uint32 GetMinLevel() const { return MinLevel; } uint32 GetMaxLevel() const { return MaxLevel; } - uint32 GetQuestLevel() const { return QuestLevel; } + uint32 GetQuestLevel() const { return Level; } uint32 GetType() const { return Type; } + uint32 GetRequiredClasses() const { return RequiredClasses; } uint32 GetRequiredRaces() const { return RequiredRaces; } - uint32 GetRequiredSkillValue() const { return RequiredSkillValue; } - uint32 GetRepObjectiveFaction() const { return RepObjectiveFaction; } - int32 GetRepObjectiveValue() const { return RepObjectiveValue; } - uint32 GetRepObjectiveFaction2() const { return RepObjectiveFaction2; } - int32 GetRepObjectiveValue2() const { return RepObjectiveValue2; } + uint32 GetRequiredSkill() const { return RequiredSkillId; } + uint32 GetRequiredSkillValue() const { return RequiredSkillPoints; } + uint32 GetRepObjectiveFaction() const { return RequiredFactionId1; } + int32 GetRepObjectiveValue() const { return RequiredFactionValue1; } + uint32 GetRepObjectiveFaction2() const { return RequiredFactionId2; } + int32 GetRepObjectiveValue2() const { return RequiredFactionValue2; } uint32 GetRequiredMinRepFaction() const { return RequiredMinRepFaction; } int32 GetRequiredMinRepValue() const { return RequiredMinRepValue; } uint32 GetRequiredMaxRepFaction() const { return RequiredMaxRepFaction; } @@ -212,15 +213,15 @@ class Quest int32 GetPrevQuestId() const { return PrevQuestId; } int32 GetNextQuestId() const { return NextQuestId; } int32 GetExclusiveGroup() const { return ExclusiveGroup; } - uint32 GetNextQuestInChain() const { return NextQuestInChain; } - uint32 GetCharTitleId() const { return CharTitleId; } - uint32 GetPlayersSlain() const { return PlayersSlain; } - uint32 GetBonusTalents() const { return BonusTalents; } - int32 GetRewArenaPoints() const {return RewArenaPoints; } - uint32 GetXPId() const { return XPId; } - uint32 GetSrcItemId() const { return SrcItemId; } - uint32 GetSrcItemCount() const { return SrcItemCount; } - uint32 GetSrcSpell() const { return SrcSpell; } + uint32 GetNextQuestInChain() const { return NextQuestIdChain; } + uint32 GetCharTitleId() const { return RewardTitleId; } + uint32 GetPlayersSlain() const { return RequiredPlayerKills; } + uint32 GetBonusTalents() const { return RewardTalents; } + int32 GetRewArenaPoints() const {return RewardArenaPoints; } + uint32 GetXPId() const { return RewardXPId; } + uint32 GetSrcItemId() const { return SourceItemId; } + uint32 GetSrcItemCount() const { return SourceItemIdCount; } + uint32 GetSrcSpell() const { return SourceSpellid; } std::string GetTitle() const { return Title; } std::string GetDetails() const { return Details; } std::string GetObjectives() const { return Objectives; } @@ -229,50 +230,50 @@ class Quest std::string GetEndText() const { return EndText; } std::string GetCompletedText() const { return CompletedText; } int32 GetRewOrReqMoney() const; - uint32 GetRewHonorAddition() const { return RewHonorAddition; } - float GetRewHonorMultiplier() const { return RewHonorMultiplier; } - uint32 GetRewMoneyMaxLevel() const { return RewMoneyMaxLevel; } + uint32 GetRewHonorAddition() const { return RewardHonor; } + float GetRewHonorMultiplier() const { return RewardHonorMultiplier; } + uint32 GetRewMoneyMaxLevel() const { return RewardMoneyMaxLevel; } // use in XP calculation at client - uint32 GetRewSpell() const { return RewSpell; } - int32 GetRewSpellCast() const { return RewSpellCast; } - uint32 GetRewMailTemplateId() const { return RewMailTemplateId; } - uint32 GetRewMailDelaySecs() const { return RewMailDelaySecs; } + uint32 GetRewSpell() const { return RewardSpell; } + int32 GetRewSpellCast() const { return RewardSpellCast; } + uint32 GetRewMailTemplateId() const { return RewardMailTemplateId; } + uint32 GetRewMailDelaySecs() const { return RewardMailDelay; } uint32 GetPointMapId() const { return PointMapId; } float GetPointX() const { return PointX; } float GetPointY() const { return PointY; } - uint32 GetPointOpt() const { return PointOpt; } - uint32 GetIncompleteEmote() const { return IncompleteEmote; } - uint32 GetCompleteEmote() const { return CompleteEmote; } - uint32 GetQuestStartScript() const { return QuestStartScript; } - uint32 GetQuestCompleteScript() const { return QuestCompleteScript; } - bool IsRepeatable() const { return QuestFlags & QUEST_TRINITY_FLAGS_REPEATABLE; } + uint32 GetPointOpt() const { return PointOption; } + uint32 GetIncompleteEmote() const { return EmoteOnIncomplete; } + uint32 GetCompleteEmote() const { return EmoteOnComplete; } + uint32 GetQuestStartScript() const { return StartScript; } + uint32 GetQuestCompleteScript() const { return CompleteScript; } + bool IsRepeatable() const { return Flags & QUEST_TRINITY_FLAGS_REPEATABLE; } bool IsAutoComplete() const; - uint32 GetFlags() const { return QuestFlags; } - bool IsDaily() const { return QuestFlags & QUEST_FLAGS_DAILY; } - bool IsWeekly() const { return QuestFlags & QUEST_FLAGS_WEEKLY; } - bool IsDailyOrWeekly() const { return QuestFlags & (QUEST_FLAGS_DAILY | QUEST_FLAGS_WEEKLY); } - bool IsAutoAccept() const { return QuestFlags & QUEST_FLAGS_AUTO_ACCEPT; } + uint32 GetFlags() const { return Flags; } + bool IsDaily() const { return Flags & QUEST_FLAGS_DAILY; } + bool IsWeekly() const { return Flags & QUEST_FLAGS_WEEKLY; } + bool IsDailyOrWeekly() const { return Flags & (QUEST_FLAGS_DAILY | QUEST_FLAGS_WEEKLY); } + bool IsAutoAccept() const { return Flags & QUEST_FLAGS_AUTO_ACCEPT; } bool IsRaidQuest() const { return Type == QUEST_TYPE_RAID || Type == QUEST_TYPE_RAID_10 || Type == QUEST_TYPE_RAID_25; } bool IsAllowedInRaid() const; - bool IsDFQuest() const { return QuestFlags & QUEST_TRINITY_FLAGS_DF_QUEST; } + bool IsDFQuest() const { return Flags & QUEST_TRINITY_FLAGS_DF_QUEST; } uint32 CalculateHonorGain(uint8 level) const; // multiple values std::string ObjectiveText[QUEST_OBJECTIVES_COUNT]; - uint32 ReqItemId[QUEST_ITEM_OBJECTIVES_COUNT]; - uint32 ReqItemCount[QUEST_ITEM_OBJECTIVES_COUNT]; - uint32 ReqSourceId[QUEST_SOURCE_ITEM_IDS_COUNT]; - uint32 ReqSourceCount[QUEST_SOURCE_ITEM_IDS_COUNT]; - int32 ReqCreatureOrGOId[QUEST_OBJECTIVES_COUNT]; // >0 Creature <0 Gameobject - uint32 ReqCreatureOrGOCount[QUEST_OBJECTIVES_COUNT]; - uint32 ReqSpell[QUEST_OBJECTIVES_COUNT]; - uint32 RewChoiceItemId[QUEST_REWARD_CHOICES_COUNT]; - uint32 RewChoiceItemCount[QUEST_REWARD_CHOICES_COUNT]; - uint32 RewItemId[QUEST_REWARDS_COUNT]; - uint32 RewItemCount[QUEST_REWARDS_COUNT]; - uint32 RewRepFaction[QUEST_REPUTATIONS_COUNT]; - int32 RewRepValueId[QUEST_REPUTATIONS_COUNT]; - int32 RewRepValue[QUEST_REPUTATIONS_COUNT]; + uint32 RequiredItemId[QUEST_ITEM_OBJECTIVES_COUNT]; + uint32 RequiredItemCount[QUEST_ITEM_OBJECTIVES_COUNT]; + uint32 RequiredSourceItemid[QUEST_SOURCE_ITEM_IDS_COUNT]; + uint32 RequiredSourceItemId[QUEST_SOURCE_ITEM_IDS_COUNT]; + int32 RequiredNpcOrGo[QUEST_OBJECTIVES_COUNT]; // >0 Creature <0 Gameobject + uint32 RequiredNpcOrGoCount[QUEST_OBJECTIVES_COUNT]; + uint32 RequiredSpellCast[QUEST_OBJECTIVES_COUNT]; + uint32 RewardChoiceItemId[QUEST_REWARD_CHOICES_COUNT]; + uint32 RewardChoiceItemCount[QUEST_REWARD_CHOICES_COUNT]; + uint32 RewardItemId[QUEST_REWARDS_COUNT]; + uint32 RewardItemIdCount[QUEST_REWARDS_COUNT]; + uint32 RewardFactionId[QUEST_REPUTATIONS_COUNT]; + int32 RewardFactionValueId[QUEST_REPUTATIONS_COUNT]; + int32 RewardFactionValueIdOverride[QUEST_REPUTATIONS_COUNT]; uint32 DetailsEmote[QUEST_EMOTE_COUNT]; uint32 DetailsEmoteDelay[QUEST_EMOTE_COUNT]; uint32 OfferRewardEmote[QUEST_EMOTE_COUNT]; @@ -297,39 +298,40 @@ class Quest // table data protected: - uint32 QuestId; - uint32 QuestMethod; + uint32 Id; + uint32 Method; int32 ZoneOrSort; - int32 SkillOrClassMask; uint32 MinLevel; uint32 MaxLevel; - int32 QuestLevel; + int32 Level; uint32 Type; + uint32 RequiredClasses; uint32 RequiredRaces; - uint32 RequiredSkillValue; - uint32 RepObjectiveFaction; - int32 RepObjectiveValue; - uint32 RepObjectiveFaction2; - int32 RepObjectiveValue2; + uint32 RequiredSkillId; + uint32 RequiredSkillPoints; + uint32 RequiredFactionId1; + int32 RequiredFactionValue1; + uint32 RequiredFactionId2; + int32 RequiredFactionValue2; uint32 RequiredMinRepFaction; int32 RequiredMinRepValue; uint32 RequiredMaxRepFaction; int32 RequiredMaxRepValue; uint32 SuggestedPlayers; uint32 LimitTime; - uint32 QuestFlags; - uint32 CharTitleId; - uint32 PlayersSlain; - uint32 BonusTalents; - int32 RewArenaPoints; + uint32 Flags; + uint32 RewardTitleId; + uint32 RequiredPlayerKills; + uint32 RewardTalents; + int32 RewardArenaPoints; int32 PrevQuestId; int32 NextQuestId; int32 ExclusiveGroup; - uint32 NextQuestInChain; - uint32 XPId; - uint32 SrcItemId; - uint32 SrcItemCount; - uint32 SrcSpell; + uint32 NextQuestIdChain; + uint32 RewardXPId; + uint32 SourceItemId; + uint32 SourceItemIdCount; + uint32 SourceSpellid; std::string Title; std::string Details; std::string Objectives; @@ -337,22 +339,22 @@ class Quest std::string RequestItemsText; std::string EndText; std::string CompletedText; - uint32 RewHonorAddition; - float RewHonorMultiplier; - int32 RewOrReqMoney; - uint32 RewMoneyMaxLevel; - uint32 RewSpell; - int32 RewSpellCast; - uint32 RewMailTemplateId; - uint32 RewMailDelaySecs; + uint32 RewardHonor; + float RewardHonorMultiplier; + int32 RewardOrRequiredMoney; + uint32 RewardMoneyMaxLevel; + uint32 RewardSpell; + int32 RewardSpellCast; + uint32 RewardMailTemplateId; + uint32 RewardMailDelay; uint32 PointMapId; float PointX; float PointY; - uint32 PointOpt; - uint32 IncompleteEmote; - uint32 CompleteEmote; - uint32 QuestStartScript; - uint32 QuestCompleteScript; + uint32 PointOption; + uint32 EmoteOnIncomplete; + uint32 EmoteOnComplete; + uint32 StartScript; + uint32 CompleteScript; }; struct QuestStatusData diff --git a/src/server/game/Scripting/MapScripts.cpp b/src/server/game/Scripting/MapScripts.cpp index 88c9795e896..4236ef49212 100755 --- a/src/server/game/Scripting/MapScripts.cpp +++ b/src/server/game/Scripting/MapScripts.cpp @@ -321,11 +321,11 @@ void Map::ScriptsProcess() source = HashMapHolder<Corpse>::Find(step.sourceGUID); break; case HIGHGUID_MO_TRANSPORT: - for (MapManager::TransportSet::iterator iter = sMapMgr->m_Transports.begin(); iter != sMapMgr->m_Transports.end(); ++iter) + for (MapManager::TransportSet::iterator itr2 = sMapMgr->m_Transports.begin(); itr2 != sMapMgr->m_Transports.end(); ++itr2) { - if ((*iter)->GetGUID() == step.sourceGUID) + if ((*itr2)->GetGUID() == step.sourceGUID) { - source = *iter; + source = *itr2; break; } } diff --git a/src/server/game/Server/Protocol/Handlers/AddonHandler.cpp b/src/server/game/Server/Protocol/Handlers/AddonHandler.cpp index 9bbf98ce3fc..c7299eb0caa 100755 --- a/src/server/game/Server/Protocol/Handlers/AddonHandler.cpp +++ b/src/server/game/Server/Protocol/Handlers/AddonHandler.cpp @@ -107,9 +107,9 @@ bool AddonHandler::BuildAddonPacket(WorldPacket* Source, WorldPacket* Target) *Target << uint8(unk1); if (unk1) { - uint8 unk2 = (crc != 0x4c1c776d); // If addon is Standard addon CRC - *Target << uint8(unk2); - if (unk2) + uint8 unk = (crc != 0x4c1c776d); // If addon is Standard addon CRC + *Target << uint8(unk); + if (unk) Target->append(tdata, sizeof(tdata)); *Target << uint32(0); diff --git a/src/server/game/Server/Protocol/Handlers/CharacterHandler.cpp b/src/server/game/Server/Protocol/Handlers/CharacterHandler.cpp index a468d05bcdf..83b9ab048ad 100755 --- a/src/server/game/Server/Protocol/Handlers/CharacterHandler.cpp +++ b/src/server/game/Server/Protocol/Handlers/CharacterHandler.cpp @@ -658,7 +658,7 @@ void WorldSession::HandleCharCreateCallback(PreparedQueryResult result, Characte newChar.SetAtLoginFlag(AT_LOGIN_FIRST); // First login // Player created, save it now - newChar.SaveToDB(); + newChar.SaveToDB(true); createInfo->CharCount += 1; SQLTransaction trans = LoginDatabase.BeginTransaction(); @@ -920,7 +920,7 @@ void WorldSession::HandlePlayerLogin(LoginQueryHolder * holder) } } - if (!pCurrChar->GetMap()->AddToMap(pCurrChar) || !pCurrChar->CheckInstanceLoginValid()) + if (!pCurrChar->GetMap()->AddPlayerToMap(pCurrChar) || !pCurrChar->CheckInstanceLoginValid()) { AreaTrigger const* at = sObjectMgr->GetGoBackTrigger(pCurrChar->GetMapId()); if (at) @@ -1170,6 +1170,8 @@ void WorldSession::HandleChangePlayerNameOpcodeCallBack(QueryResult result, std: data << uint64(guid); data << newname; SendPacket(&data); + + sWorld->UpdateCharacterNameData(guidLow, newname); } void WorldSession::HandleSetPlayerDeclinedNames(WorldPacket& recv_data) @@ -1407,9 +1409,9 @@ void WorldSession::HandleCharCustomize(WorldPacket& recv_data) } CharacterDatabase.EscapeString(newname); - if (QueryResult result = CharacterDatabase.PQuery("SELECT name FROM characters WHERE guid ='%u'", GUID_LOPART(guid))) + if (QueryResult oldNameResult = CharacterDatabase.PQuery("SELECT name FROM characters WHERE guid ='%u'", GUID_LOPART(guid))) { - std::string oldname = result->Fetch()[0].GetString(); + std::string oldname = oldNameResult->Fetch()[0].GetString(); std::string IP_str = GetRemoteAddress(); sLog->outChar("Account: %d (IP: %s), Character[%s] (guid:%u) Customized to: %s", GetAccountId(), IP_str.c_str(), oldname.c_str(), GUID_LOPART(guid), newname.c_str()); } @@ -1634,7 +1636,7 @@ void WorldSession::HandleCharFactionOrRaceChange(WorldPacket& recv_data) SQLTransaction trans = CharacterDatabase.BeginTransaction(); trans->PAppend("UPDATE `characters` SET name='%s', race='%u', at_login=at_login & ~ %u WHERE guid='%u'", newname.c_str(), race, used_loginFlag, lowGuid); trans->PAppend("DELETE FROM character_declinedname WHERE guid ='%u'", lowGuid); - sWorld->UpdateCharacterNameData(GUID_LOPART(guid), newname, gender, race); + sWorld->UpdateCharacterNameData(GUID_LOPART(guid), newname, gender, race); BattlegroundTeamId team = BG_TEAM_ALLIANCE; diff --git a/src/server/game/Server/Protocol/Handlers/LFGHandler.cpp b/src/server/game/Server/Protocol/Handlers/LFGHandler.cpp index 1ff1181bc6a..3df59b9bba1 100755 --- a/src/server/game/Server/Protocol/Handlers/LFGHandler.cpp +++ b/src/server/game/Server/Protocol/Handlers/LFGHandler.cpp @@ -205,14 +205,14 @@ void WorldSession::HandleLfgPlayerLockInfoRequestOpcode(WorldPacket& /*recv_data ItemTemplate const* iProto = NULL; for (uint8 i = 0; i < QUEST_REWARDS_COUNT; ++i) { - if (!qRew->RewItemId[i]) + if (!qRew->RewardItemId[i]) continue; - iProto = sObjectMgr->GetItemTemplate(qRew->RewItemId[i]); + iProto = sObjectMgr->GetItemTemplate(qRew->RewardItemId[i]); - data << uint32(qRew->RewItemId[i]); + data << uint32(qRew->RewardItemId[i]); data << uint32(iProto ? iProto->DisplayInfoID : 0); - data << uint32(qRew->RewItemCount[i]); + data << uint32(qRew->RewardItemIdCount[i]); } } } @@ -495,14 +495,14 @@ void WorldSession::SendLfgPlayerReward(uint32 rdungeonEntry, uint32 sdungeonEntr ItemTemplate const* iProto = NULL; for (uint8 i = 0; i < QUEST_REWARDS_COUNT; ++i) { - if (!qRew->RewItemId[i]) + if (!qRew->RewardItemId[i]) continue; - iProto = sObjectMgr->GetItemTemplate(qRew->RewItemId[i]); + iProto = sObjectMgr->GetItemTemplate(qRew->RewardItemId[i]); - data << uint32(qRew->RewItemId[i]); + data << uint32(qRew->RewardItemId[i]); data << uint32(iProto ? iProto->DisplayInfoID : 0); - data << uint32(qRew->RewItemCount[i]); + data << uint32(qRew->RewardItemIdCount[i]); } } SendPacket(&data); diff --git a/src/server/game/Server/Protocol/Handlers/MailHandler.cpp b/src/server/game/Server/Protocol/Handlers/MailHandler.cpp index 785fcdbf067..2dee8e3ae15 100755 --- a/src/server/game/Server/Protocol/Handlers/MailHandler.cpp +++ b/src/server/game/Server/Protocol/Handlers/MailHandler.cpp @@ -596,11 +596,11 @@ void WorldSession::HandleGetMailList(WorldPacket & recv_data) data << uint32(0); // probably changed in 3.3.3 data << uint32((*itr)->stationery); // stationery (Stationery.dbc) data << uint32((*itr)->money); // Gold - data << uint32((*itr)->checked); // flags + data << uint32((*itr)->checked); // flags data << float(((*itr)->expire_time-time(NULL))/DAY); // Time data << uint32((*itr)->mailTemplateId); // mail template (MailTemplate.dbc) - data << (*itr)->subject; // Subject string - once 00, when mail type = 3, max 256 - data << (*itr)->body; // message? max 8000 + data << (*itr)->subject; // Subject string - once 00, when mail type = 3, max 256 + data << (*itr)->body; // message? max 8000 data << uint8(item_count); // client limit is 0x10 for (uint8 i = 0; i < item_count; ++i) diff --git a/src/server/game/Server/Protocol/Handlers/MovementHandler.cpp b/src/server/game/Server/Protocol/Handlers/MovementHandler.cpp index 0e96d22310d..4e45eb2d6c6 100755 --- a/src/server/game/Server/Protocol/Handlers/MovementHandler.cpp +++ b/src/server/game/Server/Protocol/Handlers/MovementHandler.cpp @@ -68,11 +68,11 @@ void WorldSession::HandleMoveWorldportAckOpcode() if (GetPlayer()->IsInWorld()) { sLog->outCrash("Player (Name %s) is still in world when teleported from map %u to new map %u", GetPlayer()->GetName(), oldMap->GetId(), loc.GetMapId()); - oldMap->RemoveFromMap(GetPlayer(), false); + oldMap->RemovePlayerFromMap(GetPlayer(), false); } // relocate the player to the teleport destination - Map* newMap = sMapMgr->CreateMap(loc.GetMapId(), GetPlayer(), 0); + Map* newMap = sMapMgr->CreateMap(loc.GetMapId(), GetPlayer()); // the CanEnter checks are done in TeleporTo but conditions may change // while the player is in transit, for example the map may get full if (!newMap || !newMap->CanEnter(GetPlayer())) @@ -88,7 +88,7 @@ void WorldSession::HandleMoveWorldportAckOpcode() GetPlayer()->SetMap(newMap); GetPlayer()->SendInitialPacketsBeforeAddToMap(); - if (!GetPlayer()->GetMap()->AddToMap(GetPlayer())) + if (!GetPlayer()->GetMap()->AddPlayerToMap(GetPlayer())) { sLog->outError("WORLD: failed to teleport player %s (%d) to map %d because of unknown reason!", GetPlayer()->GetName(), GetPlayer()->GetGUIDLow(), loc.GetMapId()); GetPlayer()->ResetMap(); diff --git a/src/server/game/Server/Protocol/Handlers/QuestHandler.cpp b/src/server/game/Server/Protocol/Handlers/QuestHandler.cpp index fbd6c23d20f..e0bcadc89e9 100755 --- a/src/server/game/Server/Protocol/Handlers/QuestHandler.cpp +++ b/src/server/game/Server/Protocol/Handlers/QuestHandler.cpp @@ -200,7 +200,7 @@ void WorldSession::HandleQuestgiverAcceptQuestOpcode(WorldPacket & recv_data) bool destroyItem = true; for (int i = 0; i < QUEST_ITEM_OBJECTIVES_COUNT; ++i) { - if ((qInfo->ReqItemId[i] == ((Item*)pObject)->GetEntry()) && (((Item*)pObject)->GetTemplate()->MaxCount > 0)) + if ((qInfo->RequiredItemId[i] == ((Item*)pObject)->GetEntry()) && (((Item*)pObject)->GetTemplate()->MaxCount > 0)) { destroyItem = false; break; diff --git a/src/server/game/Server/Protocol/Opcodes.cpp b/src/server/game/Server/Protocol/Opcodes.cpp index df7816f7cb9..311a94d4217 100755 --- a/src/server/game/Server/Protocol/Opcodes.cpp +++ b/src/server/game/Server/Protocol/Opcodes.cpp @@ -1329,7 +1329,7 @@ OpcodeHandler opcodeTable[NUM_MSG_TYPES] = /*0x514*/ { "SMSG_SEND_ALL_COMBAT_LOG", STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide }, /*0x515*/ { "SMSG_OPEN_LFG_DUNGEON_FINDER", STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide }, /*0x516*/ { "SMSG_MOVE_SET_COLLISION_HGT", STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide }, - /*0x517*/ { "CMSG_MOVE_SET_COLLISION_HGT_ACK", STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL }, + /*0x517*/ { "CMSG_MOVE_SET_COLLISION_HGT_ACK", STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL }, /*0x518*/ { "MSG_MOVE_SET_COLLISION_HGT", STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL }, /*0x519*/ { "CMSG_CLEAR_RANDOM_BG_WIN_TIME", STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL }, /*0x51A*/ { "CMSG_CLEAR_HOLIDAY_BG_WIN_TIME", STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL }, diff --git a/src/server/game/Server/WorldSession.cpp b/src/server/game/Server/WorldSession.cpp index dccb320328d..14c86286718 100755 --- a/src/server/game/Server/WorldSession.cpp +++ b/src/server/game/Server/WorldSession.cpp @@ -494,7 +494,7 @@ void WorldSession::LogoutPlayer(bool Save) _player->CleanupsBeforeDelete(); sLog->outChar("Account: %d (IP: %s) Logout Character:[%s] (GUID: %u)", GetAccountId(), GetRemoteAddress().c_str(), _player->GetName(), _player->GetGUIDLow()); Map* _map = _player->GetMap(); - _map->RemoveFromMap(_player, true); + _map->RemovePlayerFromMap(_player, true); SetPlayer(NULL); // deleted in Remove call ///- Send the 'logout complete' packet to the client diff --git a/src/server/game/Spells/Auras/SpellAuraEffects.cpp b/src/server/game/Spells/Auras/SpellAuraEffects.cpp index 152f94ad420..c4487fbd950 100755 --- a/src/server/game/Spells/Auras/SpellAuraEffects.cpp +++ b/src/server/game/Spells/Auras/SpellAuraEffects.cpp @@ -563,10 +563,10 @@ int32 AuraEffect::CalculateAmount(Unit* caster) amount += (int32)DoneActualBenefit; // Arena - Dampening - if (AuraEffect const* pAurEff = caster->GetAuraEffect(74410, 0)) - AddPctN(amount, pAurEff->GetAmount()); - // Battleground - Dampening - else if (AuraEffect const* pAurEff = caster->GetAuraEffect(74411, 0)) + AuraEffect const* pAurEff = caster->GetAuraEffect(74410, 0); + if (!pAurEff) + pAurEff = caster->GetAuraEffect(74411, 0); // Battleground - Dampening + if (pAurEff) AddPctN(amount, pAurEff->GetAmount()); return amount; @@ -1508,15 +1508,15 @@ void AuraEffect::HandleShapeshiftBoosts(Unit* target, bool apply) const // Nurturing Instinct if (AuraEffect const* aurEff = target->GetAuraEffect(SPELL_AURA_MOD_SPELL_HEALING_OF_STAT_PERCENT, SPELLFAMILY_DRUID, 2254, 0)) { - uint32 spellId = 0; + uint32 spellId3 = 0; switch (aurEff->GetId()) { - case 33872: - spellId = 47179; - break; - case 33873: - spellId = 47180; - break; + case 33872: + spellId3 = 47179; + break; + case 33873: + spellId3 = 47180; + break; } target->CastSpell(target, spellId, true, NULL, this); } @@ -4892,8 +4892,8 @@ void AuraEffect::HandleAuraDummy(AuraApplication const* aurApp, uint8 mode, bool // Living Bomb if (m_spellInfo->SpellFamilyFlags[1] & 0x20000) { - AuraRemoveMode mode = aurApp->GetRemoveMode(); - if (caster && (mode == AURA_REMOVE_BY_ENEMY_SPELL || mode == AURA_REMOVE_BY_EXPIRE)) + AuraRemoveMode removeMode = aurApp->GetRemoveMode(); + if (caster && (removeMode == AURA_REMOVE_BY_ENEMY_SPELL || removeMode == AURA_REMOVE_BY_EXPIRE)) caster->CastSpell(target, GetAmount(), true); } break; @@ -6019,13 +6019,15 @@ void AuraEffect::HandlePeriodicTriggerSpellAuraTick(Unit* target, Unit* caster) case 65923: { Unit* permafrostCaster = NULL; - if (Aura* permafrostAura = target->GetAura(66193)) - permafrostCaster = permafrostAura->GetCaster(); - else if (Aura* permafrostAura = target->GetAura(67855)) - permafrostCaster = permafrostAura->GetCaster(); - else if (Aura* permafrostAura = target->GetAura(67856)) - permafrostCaster = permafrostAura->GetCaster(); - else if (Aura* permafrostAura = target->GetAura(67857)) + Aura* permafrostAura = target->GetAura(66193); + if (!permafrostAura) + permafrostAura = target->GetAura(67855); + if (!permafrostAura) + permafrostAura = target->GetAura(67856); + if (!permafrostAura) + permafrostAura = target->GetAura(67857); + + if (permafrostAura) permafrostCaster = permafrostAura->GetCaster(); if (permafrostCaster) @@ -6461,15 +6463,15 @@ void AuraEffect::HandlePeriodicHealAurasTick(Unit* target, Unit* caster) const // damage caster for heal amount if (target != caster && GetSpellInfo()->AttributesEx2 & SPELL_ATTR2_HEALTH_FUNNEL) { - uint32 damage = GetSpellInfo()->Effects[EFFECT_0].CalcValue(); // damage is not affected by spell power - if ((int32)damage > gain) - damage = gain; - uint32 absorb = 0; - caster->DealDamageMods(caster, damage, &absorb); - caster->SendSpellNonMeleeDamageLog(caster, GetId(), damage, GetSpellInfo()->GetSchoolMask(), absorb, 0, false, 0, false); + uint32 funnelDamage = GetSpellInfo()->Effects[EFFECT_0].CalcValue(); // damage is not affected by spell power + if ((int32)funnelDamage > gain) + funnelDamage = gain; + uint32 funnelAbsorb = 0; + caster->DealDamageMods(caster, funnelDamage, &funnelAbsorb); + caster->SendSpellNonMeleeDamageLog(caster, GetId(), funnelDamage, GetSpellInfo()->GetSchoolMask(), funnelAbsorb, 0, false, 0, false); CleanDamage cleanDamage = CleanDamage(0, 0, BASE_ATTACK, MELEE_HIT_NORMAL); - caster->DealDamage(caster, damage, &cleanDamage, NODAMAGE, GetSpellInfo()->GetSchoolMask(), GetSpellInfo(), true); + caster->DealDamage(caster, funnelDamage, &cleanDamage, NODAMAGE, GetSpellInfo()->GetSchoolMask(), GetSpellInfo(), true); } uint32 procAttacker = PROC_FLAG_DONE_PERIODIC; diff --git a/src/server/game/Spells/Auras/SpellAuraEffects.h b/src/server/game/Spells/Auras/SpellAuraEffects.h index c34391471d7..7f754253719 100644 --- a/src/server/game/Spells/Auras/SpellAuraEffects.h +++ b/src/server/game/Spells/Auras/SpellAuraEffects.h @@ -80,6 +80,7 @@ class AuraEffect bool IsPeriodic() const { return m_isPeriodic; } void SetPeriodic(bool isPeriodic) { m_isPeriodic = isPeriodic; } bool IsAffectedOnSpell(SpellInfo const* spell) const; + bool HasSpellClassMask() const { return m_spellInfo->Effects[m_effIndex].SpellClassMask; } void SendTickImmune(Unit* target, Unit* caster) const; void PeriodicTick(AuraApplication * aurApp, Unit* caster) const; diff --git a/src/server/game/Spells/Auras/SpellAuras.cpp b/src/server/game/Spells/Auras/SpellAuras.cpp index df6ac44f2cc..525084a70ed 100755 --- a/src/server/game/Spells/Auras/SpellAuras.cpp +++ b/src/server/game/Spells/Auras/SpellAuras.cpp @@ -557,7 +557,14 @@ void Aura::UpdateTargetMap(Unit* caster, bool apply) else { // owner has to be in world, or effect has to be applied to self - ASSERT((!GetOwner()->IsInWorld() && GetOwner() == itr->first) || GetOwner()->IsInMap(itr->first)); + if (!GetOwner()->IsSelfOrInSameMap(itr->first)) + { + //TODO: There is a crash caused by shadowfiend load addon + sLog->outCrash("Aura %u: Owner %s (map %u) is not in the same map as target %s (map %u).", GetSpellInfo()->Id, + GetOwner()->GetName(), GetOwner()->IsInWorld() ? GetOwner()->GetMap()->GetId() : uint32(-1), + itr->first->GetName(), itr->first->IsInWorld() ? itr->first->GetMap()->GetId() : uint32(-1)); + ASSERT(false); + } itr->first->_CreateAuraApplication(this, itr->second); ++itr; } diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp index dc56e04c3b5..8a4c0a768d8 100755 --- a/src/server/game/Spells/Spell.cpp +++ b/src/server/game/Spells/Spell.cpp @@ -641,23 +641,24 @@ void Spell::InitExplicitTargets(SpellCastTargets const& targets) // try to select correct unit target if not provided by client or by serverside cast if (neededTargets & (TARGET_FLAG_UNIT_MASK)) { - Unit* target = NULL; + Unit* unit = NULL; // try to use player selection as a target if (Player* playerCaster = m_caster->ToPlayer()) { // selection has to be found and to be valid target for the spell if (Unit* selectedUnit = ObjectAccessor::GetUnit(*m_caster, playerCaster->GetSelection())) if (m_spellInfo->CheckExplicitTarget(m_caster, selectedUnit) == SPELL_CAST_OK) - target = selectedUnit; + unit = selectedUnit; } // try to use attacked unit as a target else if ((m_caster->GetTypeId() == TYPEID_UNIT) && neededTargets & (TARGET_FLAG_UNIT_ENEMY | TARGET_FLAG_UNIT)) - target = m_caster->getVictim(); + unit = m_caster->getVictim(); + // didn't find anything - let's use self as target - if (!target && neededTargets & (TARGET_FLAG_UNIT_RAID | TARGET_FLAG_UNIT_PARTY | TARGET_FLAG_UNIT_ALLY)) - target = m_caster; + if (!unit && neededTargets & (TARGET_FLAG_UNIT_RAID | TARGET_FLAG_UNIT_PARTY | TARGET_FLAG_UNIT_ALLY)) + unit = m_caster; - m_targets.SetUnitTarget(target); + m_targets.SetUnitTarget(unit); } } @@ -1218,11 +1219,11 @@ void Spell::DoAllEffectOnTarget(TargetInfo* target) if (spellHitTarget) { - SpellMissInfo missInfo = DoSpellHitOnUnit(spellHitTarget, mask, target->scaleAura); - if (missInfo != SPELL_MISS_NONE) + SpellMissInfo missInfo2 = DoSpellHitOnUnit(spellHitTarget, mask, target->scaleAura); + if (missInfo2 != SPELL_MISS_NONE) { - if (missInfo != SPELL_MISS_MISS) - m_caster->SendSpellMiss(unit, m_spellInfo->Id, missInfo); + if (missInfo2 != SPELL_MISS_MISS) + m_caster->SendSpellMiss(unit, m_spellInfo->Id, missInfo2); m_damage = 0; spellHitTarget = NULL; } @@ -6798,7 +6799,7 @@ void Spell::SelectTrajTargets() if (!dist2d) return; - float dz = m_targets.GetDst()->m_positionZ - m_targets.GetSrc()->m_positionZ; + float srcToDestDelta = m_targets.GetDst()->m_positionZ - m_targets.GetSrc()->m_positionZ; UnitList unitList; SearchAreaTarget(unitList, dist2d, PUSH_IN_THIN_LINE, SPELL_TARGETS_ANY); @@ -6808,8 +6809,9 @@ void Spell::SelectTrajTargets() unitList.sort(Trinity::ObjectDistanceOrderPred(m_caster)); float b = tangent(m_targets.GetElevation()); - float a = (dz - dist2d * b) / (dist2d * dist2d); - if (a > -0.0001f) a = 0; + float a = (srcToDestDelta - dist2d * b) / (dist2d * dist2d); + if (a > -0.0001f) + a = 0; DEBUG_TRAJ(sLog->outError("Spell::SelectTrajTargets: a %f b %f", a, b);) float bestDist = m_spellInfo->GetMaxRange(false); @@ -6837,9 +6839,14 @@ void Spell::SelectTrajTargets() } #define CHECK_DIST {\ - DEBUG_TRAJ(sLog->outError("Spell::SelectTrajTargets: dist %f, height %f.", dist, height);)\ - if (dist > bestDist) continue;\ - if (dist < objDist2d + size && dist > objDist2d - size) { bestDist = dist; break; }\ + DEBUG_TRAJ(sLog->outError("Spell::SelectTrajTargets: dist %f, height %f.", dist, height);)\ + if (dist > bestDist)\ + continue;\ + if (dist < objDist2d + size && dist > objDist2d - size)\ + {\ + bestDist = dist;\ + break;\ + }\ } if (!a) @@ -7027,7 +7034,7 @@ bool Spell::CallScriptEffectHandlers(SpellEffIndex effIndex, SpellEffectHandleMo break; default: ASSERT(false); - break; + return false; } (*scritr)->_PrepareScriptCall(hookType); for (; effItr != effEndItr ; ++effItr) diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp index 26ef498b6ff..a4cf8e6a469 100755 --- a/src/server/game/Spells/SpellEffects.cpp +++ b/src/server/game/Spells/SpellEffects.cpp @@ -923,7 +923,7 @@ void Spell::EffectDummy(SpellEffIndex effIndex) if (m_caster->GetTypeId() != TYPEID_PLAYER) return; - uint32 spell_id = roll_chance_i(50) + spell_id = roll_chance_i(50) ? 29277 // Summon Purified Helboar Meat : 29278; // Summon Toxic Helboar Meat @@ -951,12 +951,16 @@ void Spell::EffectDummy(SpellEffIndex effIndex) return; case 35745: // Socrethar's Stone { - uint32 spell_id; switch (m_caster->GetAreaId()) { - case 3900: spell_id = 35743; break; // Socrethar Portal - case 3742: spell_id = 35744; break; // Socrethar Portal - default: return; + case 3900: + spell_id = 35743; + break; // Socrethar Portal + case 3742: + spell_id = 35744; + break; // Socrethar Portal + default: + return; } m_caster->CastSpell(m_caster, spell_id, true); @@ -1453,7 +1457,7 @@ void Spell::EffectDummy(SpellEffIndex effIndex) if (m_spellInfo->SpellFamilyFlags[0] & SPELLFAMILYFLAG_DK_DEATH_STRIKE) { uint32 count = unitTarget->GetDiseasesByCaster(m_caster->GetGUID()); - int32 bp = int32(count * m_caster->CountPctFromMaxHealth(int32(m_spellInfo->Effects[EFFECT_0].DamageMultiplier))); + bp = int32(count * m_caster->CountPctFromMaxHealth(int32(m_spellInfo->Effects[EFFECT_0].DamageMultiplier))); // Improved Death Strike if (AuraEffect const* aurEff = m_caster->GetAuraEffect(SPELL_AURA_ADD_PCT_MODIFIER, SPELLFAMILY_DEATHKNIGHT, 2751, 0)) AddPctN(bp, m_caster->CalculateSpellDamage(m_caster, aurEff->GetSpellInfo(), 2)); @@ -1465,12 +1469,12 @@ void Spell::EffectDummy(SpellEffIndex effIndex) { if (m_caster->IsFriendlyTo(unitTarget)) { - int32 bp = int32(damage * 1.5f); + bp = int32(damage * 1.5f); m_caster->CastCustomSpell(unitTarget, 47633, &bp, NULL, NULL, true); } else { - int32 bp = damage; + bp = damage; m_caster->CastCustomSpell(unitTarget, 47632, &bp, NULL, NULL, true); } return; @@ -2141,6 +2145,16 @@ void Spell::EffectSendEvent(SpellEffIndex effIndex) && effectHandleMode != SPELL_EFFECT_HANDLE_HIT) return; + //! it's possible for spells with this spell effect to either have a target or no target + //! in case of a target, we will execute this handler on SPELL_EFFECT_HANDLE_HIT_TARGET + //! with all relevant variables, and we will skip SPELL_EFFECT_HANDLE_HIT + if (effectHandleMode == SPELL_EFFECT_HANDLE_HIT) + { + if (GetSpellInfo()->Effects[effIndex].TargetA.GetTarget() != 0 || + GetSpellInfo()->Effects[effIndex].TargetB.GetTarget() != 0) + return; + } + WorldObject* target = NULL; // call events for target if present @@ -4953,6 +4967,25 @@ void Spell::EffectScriptEffect(SpellEffIndex effIndex) } return; } + case 57347: // Retrieving (Wintergrasp RP-GG pickup spell) + { + if (!unitTarget || unitTarget->GetTypeId() != TYPEID_UNIT || m_caster->GetTypeId() != TYPEID_PLAYER) + return; + + unitTarget->ToCreature()->DespawnOrUnsummon(); + + return; + } + case 57349: // Drop RP-GG (Wintergrasp RP-GG at death drop spell) + { + if (m_caster->GetTypeId() != TYPEID_PLAYER) + return; + + // Delete item from inventory at death + m_caster->ToPlayer()->DestroyItemCount(damage, 5, true); + + return; + } case 58418: // Portal to Orgrimmar case 58420: // Portal to Stormwind { @@ -6319,13 +6352,13 @@ void Spell::EffectQuestClear(SpellEffIndex effIndex) // remove all quest entries for 'entry' from quest log for (uint8 slot = 0; slot < MAX_QUEST_LOG_SIZE; ++slot) { - uint32 quest = player->GetQuestSlotQuestId(slot); - if (quest == quest_id) + uint32 logQuest = player->GetQuestSlotQuestId(slot); + if (logQuest == quest_id) { player->SetQuestSlot(slot, 0); - // we ignore unequippable quest items in this case, its' still be equipped - player->TakeQuestSourceItem(quest, false); + // we ignore unequippable quest items in this case, it's still be equipped + player->TakeQuestSourceItem(logQuest, false); } } diff --git a/src/server/game/Spells/SpellMgr.cpp b/src/server/game/Spells/SpellMgr.cpp index b669f8fe866..c382cb56a62 100755 --- a/src/server/game/Spells/SpellMgr.cpp +++ b/src/server/game/Spells/SpellMgr.cpp @@ -96,7 +96,7 @@ DiminishingGroup GetDiminishingReturnsGroupForSpell(SpellInfo const* spellproto, return DIMINISHING_CONTROLLED_ROOT; // Dragon's Breath else if (spellproto->SpellFamilyFlags[0] & 0x800000) - return DIMINISHING_DISORIENT; + return DIMINISHING_DRAGONS_BREATH; break; } case SPELLFAMILY_WARRIOR: @@ -167,7 +167,7 @@ DiminishingGroup GetDiminishingReturnsGroupForSpell(SpellInfo const* spellproto, } case SPELLFAMILY_HUNTER: { - // Hunter's mark + // Hunter's Mark if ((spellproto->SpellFamilyFlags[0] & 0x400) && spellproto->SpellIconID == 538) return DIMINISHING_LIMITONLY; // Scatter Shot (own diminishing) @@ -321,20 +321,20 @@ bool IsDiminishingReturnsGroupDurationLimited(DiminishingGroup group) { switch (group) { + case DIMINISHING_BANISH: case DIMINISHING_CONTROLLED_STUN: - case DIMINISHING_STUN: - case DIMINISHING_ENTRAPMENT: case DIMINISHING_CONTROLLED_ROOT: - case DIMINISHING_ROOT: + case DIMINISHING_CYCLONE: + case DIMINISHING_DISORIENT: + case DIMINISHING_ENTRAPMENT: case DIMINISHING_FEAR: + case DIMINISHING_HORROR: case DIMINISHING_MIND_CONTROL: - case DIMINISHING_DISORIENT: - case DIMINISHING_CYCLONE: - case DIMINISHING_BANISH: - case DIMINISHING_LIMITONLY: case DIMINISHING_OPENING_STUN: - case DIMINISHING_HORROR: + case DIMINISHING_ROOT: + case DIMINISHING_STUN: case DIMINISHING_SLEEP: + case DIMINISHING_LIMITONLY: return true; default: return false; @@ -1005,7 +1005,7 @@ SpellThreatEntry const* SpellMgr::GetSpellThreatEntry(uint32 spellID) const else { uint32 firstSpell = GetFirstSpellInChain(spellID); - SpellThreatMap::const_iterator itr = mSpellThreatMap.find(firstSpell); + itr = mSpellThreatMap.find(firstSpell); if (itr != mSpellThreatMap.end()) return &itr->second; } diff --git a/src/server/game/Tools/PlayerDump.cpp b/src/server/game/Tools/PlayerDump.cpp index 92fa001fe46..0c3fd957165 100644 --- a/src/server/game/Tools/PlayerDump.cpp +++ b/src/server/game/Tools/PlayerDump.cpp @@ -443,6 +443,10 @@ DumpReturn PlayerDumpReader::LoadDump(const std::string& file, uint32 account, s typedef PetIds::value_type PetIdsPair; PetIds petids; + uint8 gender = GENDER_NONE; + uint8 race = RACE_NONE; + uint8 playerClass = 0; + SQLTransaction trans = CharacterDatabase.BeginTransaction(); while (!feof(fin)) { @@ -512,6 +516,9 @@ DumpReturn PlayerDumpReader::LoadDump(const std::string& file, uint32 account, s if (!changenth(line, 2, chraccount)) // characters.account update ROLLBACK(DUMP_FILE_BROKEN); + race = uint8(atol(getnth(line, 4).c_str())); + playerClass = uint8(atol(getnth(line, 5).c_str())); + gender = uint8(atol(getnth(line, 6).c_str())); if (name == "") { // check if the original name already exists @@ -520,10 +527,8 @@ DumpReturn PlayerDumpReader::LoadDump(const std::string& file, uint32 account, s result = CharacterDatabase.PQuery("SELECT 1 FROM characters WHERE name = '%s'", name.c_str()); if (result) - { if (!changenth(line, 37, "1")) // characters.at_login set to "rename on login" ROLLBACK(DUMP_FILE_BROKEN); - } } else if (!changenth(line, 3, name.c_str())) // characters.name ROLLBACK(DUMP_FILE_BROKEN); @@ -654,6 +659,9 @@ DumpReturn PlayerDumpReader::LoadDump(const std::string& file, uint32 account, s CharacterDatabase.CommitTransaction(trans); + // in case of name conflict player has to rename at login anyway + sWorld->AddCharacterNameData(guid, name, gender, race, playerClass); + sObjectMgr->m_hiItemGuid += items.size(); sObjectMgr->m_mailid += mails.size(); @@ -664,4 +672,3 @@ DumpReturn PlayerDumpReader::LoadDump(const std::string& file, uint32 account, s return DUMP_SUCCESS; } - diff --git a/src/server/game/World/World.cpp b/src/server/game/World/World.cpp index 408db187aae..8aca4563b91 100755 --- a/src/server/game/World/World.cpp +++ b/src/server/game/World/World.cpp @@ -2869,7 +2869,7 @@ void World::LoadCharacterNameData() sLog->outString("Loaded name data for %u characters", count); } -void World::AddCharacterNameData(uint32 guid, const std::string& name, uint8 gender, uint8 race, uint8 playerClass) +void World::AddCharacterNameData(uint32 guid, std::string const& name, uint8 gender, uint8 race, uint8 playerClass) { CharacterNameData& data = _characterNameDataMap[guid]; data.m_name = name; @@ -2878,18 +2878,22 @@ void World::AddCharacterNameData(uint32 guid, const std::string& name, uint8 gen data.m_class = playerClass; } -void World::UpdateCharacterNameData(uint32 guid, const std::string& name, uint8 gender, uint8 race) +void World::UpdateCharacterNameData(uint32 guid, std::string const& name, uint8 gender /*= GENDER_NONE*/, uint8 race /*= RACE_NONE*/) { std::map<uint32, CharacterNameData>::iterator itr = _characterNameDataMap.find(guid); if (itr == _characterNameDataMap.end()) return; + itr->second.m_name = name; - itr->second.m_gender = gender; - if(race != RACE_NONE) + + if (gender != GENDER_NONE) + itr->second.m_gender = gender; + + if (race != RACE_NONE) itr->second.m_race = race; } -const CharacterNameData* World::GetCharacterNameData(uint32 guid) const +CharacterNameData const* World::GetCharacterNameData(uint32 guid) const { std::map<uint32, CharacterNameData>::const_iterator itr = _characterNameDataMap.find(guid); if (itr != _characterNameDataMap.end()) diff --git a/src/server/game/World/World.h b/src/server/game/World/World.h index b493b8b0c7b..f643ae60287 100755 --- a/src/server/game/World/World.h +++ b/src/server/game/World/World.h @@ -738,9 +738,9 @@ class World bool isEventKillStart; - const CharacterNameData* GetCharacterNameData(uint32 guid) const; - void AddCharacterNameData(uint32 guid, const std::string& name, uint8 gender, uint8 race, uint8 playerClass); - void UpdateCharacterNameData(uint32 guid, const std::string& name, uint8 gender, uint8 race = RACE_NONE); + CharacterNameData const* GetCharacterNameData(uint32 guid) const; + void AddCharacterNameData(uint32 guid, std::string const& name, uint8 gender, uint8 race, uint8 playerClass); + void UpdateCharacterNameData(uint32 guid, std::string const& name, uint8 gender = GENDER_NONE, uint8 race = RACE_NONE); void DeleteCharaceterNameData(uint32 guid) { _characterNameDataMap.erase(guid); } uint32 GetCleaningFlags() const { return m_CleaningFlags; } diff --git a/src/server/scripts/Commands/cs_account.cpp b/src/server/scripts/Commands/cs_account.cpp index 80dd2dc366a..ae3250ad7b7 100644 --- a/src/server/scripts/Commands/cs_account.cpp +++ b/src/server/scripts/Commands/cs_account.cpp @@ -473,7 +473,7 @@ public: LoginDatabase.PExecute("DELETE FROM account_access WHERE id = '%u' AND (RealmID = '%d' OR RealmID = '-1')", targetAccountId, realmID); if (gm != 0) - LoginDatabase.PExecute("INSERT INTO account_access VALUES ('%u', '%d', '%d')", targetAccountId, gm, realmID); + LoginDatabase.PExecute("INSERT INTO account_access VALUES ('%u', '%d', '%d')", targetAccountId, gm, gmRealmID); handler->PSendSysMessage(LANG_YOU_CHANGE_SECURITY, targetAccountName.c_str(), gm); return true; diff --git a/src/server/scripts/Commands/cs_quest.cpp b/src/server/scripts/Commands/cs_quest.cpp index 31d8cd3c8f2..3d437e473f7 100644 --- a/src/server/scripts/Commands/cs_quest.cpp +++ b/src/server/scripts/Commands/cs_quest.cpp @@ -128,13 +128,13 @@ public: // remove all quest entries for 'entry' from quest log for (uint8 slot = 0; slot < MAX_QUEST_LOG_SIZE; ++slot) { - uint32 quest = player->GetQuestSlotQuestId(slot); - if (quest == entry) + uint32 logQuest = player->GetQuestSlotQuestId(slot); + if (logQuest == entry) { player->SetQuestSlot(slot, 0); // we ignore unequippable quest items in this case, its' still be equipped - player->TakeQuestSourceItem(quest, false); + player->TakeQuestSourceItem(logQuest, false); } } @@ -176,8 +176,8 @@ public: // Add quest items for quests that require items for (uint8 x = 0; x < QUEST_ITEM_OBJECTIVES_COUNT; ++x) { - uint32 id = quest->ReqItemId[x]; - uint32 count = quest->ReqItemCount[x]; + uint32 id = quest->RequiredItemId[x]; + uint32 count = quest->RequiredItemCount[x]; if (!id || !count) continue; @@ -195,10 +195,10 @@ public: // All creature/GO slain/casted (not required, but otherwise it will display "Creature slain 0/10") for (uint8 i = 0; i < QUEST_OBJECTIVES_COUNT; ++i) { - int32 creature = quest->ReqCreatureOrGOId[i]; - uint32 creaturecount = quest->ReqCreatureOrGOCount[i]; + int32 creature = quest->RequiredNpcOrGo[i]; + uint32 creaturecount = quest->RequiredNpcOrGoCount[i]; - if (uint32 spell_id = quest->ReqSpell[i]) + if (uint32 spell_id = quest->RequiredSpellCast[i]) { for (uint16 z = 0; z < creaturecount; ++z) player->CastedCreatureOrGO(creature, 0, spell_id); diff --git a/src/server/scripts/Commands/cs_tele.cpp b/src/server/scripts/Commands/cs_tele.cpp index 85e0ff2390b..ef4ddf17476 100644 --- a/src/server/scripts/Commands/cs_tele.cpp +++ b/src/server/scripts/Commands/cs_tele.cpp @@ -125,6 +125,29 @@ public: if (!handler->extractPlayerTarget(nameStr, &target, &target_guid, &target_name)) return false; + if (strcmp(teleStr, "$home") == 0) // References target's homebind + { + if (target) + target->TeleportTo(target->m_homebindMapId, target->m_homebindX, target->m_homebindY, target->m_homebindZ, target->GetOrientation()); + else + { + QueryResult resultDB = CharacterDatabase.PQuery("SELECT mapId, zoneId, posX, posY, posZ FROM character_homebind WHERE guid = %u", target_guid); + if (resultDB) + { + Field* fieldsDB = resultDB->Fetch(); + uint32 mapId = fieldsDB[0].GetUInt32(); + uint32 zoneId = fieldsDB[1].GetUInt32(); + float posX = fieldsDB[2].GetFloat(); + float posY = fieldsDB[3].GetFloat(); + float posZ = fieldsDB[4].GetFloat(); + + Player::SavePositionInDB(mapId, posX, posY, posZ, 0, zoneId, target_guid); + } + } + + return true; + } + // id, or string, or [name] Shift-click form |color|Htele:id|h[name]|h|r GameTele const* tele = handler->extractGameTeleFromLink(teleStr); if (!tele) @@ -187,8 +210,8 @@ public: if (!*args) return false; - Player* player = handler->getSelectedPlayer(); - if (!player) + Player* target = handler->getSelectedPlayer(); + if (!target) { handler->SendSysMessage(LANG_NO_CHAR_SELECTED); handler->SetSentErrorMessage(true); @@ -196,7 +219,7 @@ public: } // check online security - if (handler->HasLowerSecurity(player, 0)) + if (handler->HasLowerSecurity(target, 0)) return false; // id, or string, or [name] Shift-click form |color|Htele:id|h[name]|h|r @@ -216,9 +239,9 @@ public: return false; } - std::string nameLink = handler->GetNameLink(player); + std::string nameLink = handler->GetNameLink(target); - Group* grp = player->GetGroup(); + Group* grp = target->GetGroup(); if (!grp) { handler->PSendSysMessage(LANG_NOT_IN_GROUP, nameLink.c_str()); diff --git a/src/server/scripts/Commands/cs_wp.cpp b/src/server/scripts/Commands/cs_wp.cpp index f754a32fbfc..ebeb7b8f4f4 100644 --- a/src/server/scripts/Commands/cs_wp.cpp +++ b/src/server/scripts/Commands/cs_wp.cpp @@ -480,55 +480,43 @@ public: } // The visual waypoint - Creature* wpCreature = NULL; wpGuid = target->GetGUIDLow(); - // Did the user select a visual spawnpoint? - if (wpGuid) - wpCreature = handler->GetSession()->GetPlayer()->GetMap()->GetCreature(MAKE_NEW_GUID(wpGuid, VISUAL_WAYPOINT, HIGHGUID_UNIT)); - // attempt check creature existence by DB data - else - { - handler->PSendSysMessage(LANG_WAYPOINT_CREATNOTFOUND, wpGuid); - return false; - } // User did select a visual waypoint? + // Check the creature - if (wpCreature->GetEntry() == VISUAL_WAYPOINT) - { - QueryResult result = WorldDatabase.PQuery("SELECT id, point FROM waypoint_data WHERE wpguid = %u", wpGuid); + QueryResult result = WorldDatabase.PQuery("SELECT id, point FROM waypoint_data WHERE wpguid = %u", wpGuid); + if (!result) + { + handler->PSendSysMessage(LANG_WAYPOINT_NOTFOUNDSEARCH, target->GetGUIDLow()); + // Select waypoint number from database + // Since we compare float values, we have to deal with + // some difficulties. + // Here we search for all waypoints that only differ in one from 1 thousand + // (0.001) - There is no other way to compare C++ floats with mySQL floats + // See also: http://dev.mysql.com/doc/refman/5.0/en/problems-with-float.html + const char* maxDIFF = "0.01"; + result = WorldDatabase.PQuery("SELECT id, point FROM waypoint_data WHERE (abs(position_x - %f) <= %s) and (abs(position_y - %f) <= %s) and (abs(position_z - %f) <= %s)", + target->GetPositionX(), maxDIFF, target->GetPositionY(), maxDIFF, target->GetPositionZ(), maxDIFF); if (!result) { - handler->PSendSysMessage(LANG_WAYPOINT_NOTFOUNDSEARCH, target->GetGUIDLow()); - // Select waypoint number from database - // Since we compare float values, we have to deal with - // some difficulties. - // Here we search for all waypoints that only differ in one from 1 thousand - // (0.001) - There is no other way to compare C++ floats with mySQL floats - // See also: http://dev.mysql.com/doc/refman/5.0/en/problems-with-float.html - const char* maxDIFF = "0.01"; - result = WorldDatabase.PQuery("SELECT id, point FROM waypoint_data WHERE (abs(position_x - %f) <= %s) and (abs(position_y - %f) <= %s) and (abs(position_z - %f) <= %s)", - wpCreature->GetPositionX(), maxDIFF, wpCreature->GetPositionY(), maxDIFF, wpCreature->GetPositionZ(), maxDIFF); - if (!result) - { - handler->PSendSysMessage(LANG_WAYPOINT_NOTFOUNDDBPROBLEM, wpGuid); - return true; - } - } - - do - { - Field* fields = result->Fetch(); - pathid = fields[0].GetUInt32(); - point = fields[1].GetUInt32(); + handler->PSendSysMessage(LANG_WAYPOINT_NOTFOUNDDBPROBLEM, wpGuid); + return true; } - while (result->NextRow()); + } - // We have the waypoint number and the GUID of the "master npc" - // Text is enclosed in "<>", all other arguments not - arg_str = strtok((char*)NULL, " "); + do + { + Field* fields = result->Fetch(); + pathid = fields[0].GetUInt32(); + point = fields[1].GetUInt32(); } + while (result->NextRow()); + + // We have the waypoint number and the GUID of the "master npc" + // Text is enclosed in "<>", all other arguments not + arg_str = strtok((char*)NULL, " "); // Check for argument if (show != "del" && show != "move" && arg_str == NULL) diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_netherspite.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_netherspite.cpp index 2bcfab80056..aa0fee873e1 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/boss_netherspite.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_netherspite.cpp @@ -136,9 +136,9 @@ public: { uint8 r = rand()%4; uint8 pos[3]; - pos[RED_PORTAL] = (r%2 ? (r>1 ? 2: 1): 0); - pos[GREEN_PORTAL] = (r%2 ? 0: (r>1 ? 2: 1)); - pos[BLUE_PORTAL] = (r>1 ? 1: 2); // Blue Portal not on the left side (0) + pos[RED_PORTAL] = ((r % 2) ? (r > 1 ? 2 : 1) : 0); + pos[GREEN_PORTAL] = ((r % 2) ? 0 : (r > 1 ? 2 : 1)); + pos[BLUE_PORTAL] = (r > 1 ? 1 : 2); // Blue Portal not on the left side (0) for (int i=0; i<3; ++i) if (Creature* portal = me->SummonCreature(PortalID[i], PortalCoord[pos[i]][0], PortalCoord[pos[i]][1], PortalCoord[pos[i]][2], 0, TEMPSUMMON_TIMED_DESPAWN, 60000)) diff --git a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_priestess_delrissa.cpp b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_priestess_delrissa.cpp index 719c42c0a57..55254a3b8ee 100644 --- a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_priestess_delrissa.cpp +++ b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_priestess_delrissa.cpp @@ -201,7 +201,8 @@ public: //object already removed, not exist if (!pAdd) { - if (Creature* pAdd = me->SummonCreature((*itr), LackeyLocations[j][0], LackeyLocations[j][1], fZLocation, fOrientation, TEMPSUMMON_CORPSE_DESPAWN, 0)) + pAdd = me->SummonCreature((*itr), LackeyLocations[j][0], LackeyLocations[j][1], fZLocation, fOrientation, TEMPSUMMON_CORPSE_DESPAWN, 0); + if (pAdd) m_auiLackeyGUID[j] = pAdd->GetGUID(); } ++j; diff --git a/src/server/scripts/EasternKingdoms/MoltenCore/boss_ragnaros.cpp b/src/server/scripts/EasternKingdoms/MoltenCore/boss_ragnaros.cpp index 592e0054fa4..4bc3da16651 100644 --- a/src/server/scripts/EasternKingdoms/MoltenCore/boss_ragnaros.cpp +++ b/src/server/scripts/EasternKingdoms/MoltenCore/boss_ragnaros.cpp @@ -110,7 +110,7 @@ class boss_ragnaros : public CreatureScript void KilledUnit(Unit* /*victim*/) { - if (urand(0, 99 < 25)) + if (urand(0, 99) < 25) DoScriptText(SAY_KILL, me); } diff --git a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter5.cpp b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter5.cpp index aea25af87bf..18316d67cd4 100644 --- a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter5.cpp +++ b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter5.cpp @@ -497,9 +497,9 @@ public: SetEscortPaused(bOnHold); } - void WaypointReached(uint32 i) + void WaypointReached(uint32 wpId) { - switch (i) + switch (wpId) { case 0: me->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING); @@ -1173,8 +1173,8 @@ public: temp->SetSpeed(MOVE_RUN, 3.0f); // workarounds, make Tirion still running temp->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING); temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[2].x, LightofDawnLoc[2].y, LightofDawnLoc[2].z); - if (Creature* temp = Unit::GetCreature(*me, uiLichKingGUID)) - temp->Relocate(LightofDawnLoc[28].x, LightofDawnLoc[28].y, LightofDawnLoc[28].z); // workarounds, he should kick back by Tirion, but here we relocate him + if (Creature* lktemp = Unit::GetCreature(*me, uiLichKingGUID)) + lktemp->Relocate(LightofDawnLoc[28].x, LightofDawnLoc[28].y, LightofDawnLoc[28].z); // workarounds, he should kick back by Tirion, but here we relocate him } JumpToNextStep(1500); break; diff --git a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp index 9afbeaa0172..c9ab9084d22 100644 --- a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp +++ b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp @@ -504,15 +504,14 @@ public: Player* SelectRandomPlayer(float range = 0.0f, bool checkLoS = true) { Map* map = me->GetMap(); - if (!map->IsDungeon()) return NULL; + if (!map->IsDungeon()) + return NULL; Map::PlayerList const &PlayerList = map->GetPlayers(); - Map::PlayerList::const_iterator i; - if (PlayerList.isEmpty()) return NULL; + if (PlayerList.isEmpty()) + return NULL; std::list<Player*> temp; - std::list<Player*>::const_iterator j; - for (Map::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i) if ((me->IsWithinLOSInMap(i->getSource()) || !checkLoS) && me->getVictim() != i->getSource() && me->IsWithinDistInMap(i->getSource(), range) && i->getSource()->isAlive()) @@ -520,7 +519,7 @@ public: if (!temp.empty()) { - j = temp.begin(); + std::list<Player*>::const_iterator j = temp.begin(); advance(j, rand()%temp.size()); return (*j); } diff --git a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_mograine_and_whitemane.cpp b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_mograine_and_whitemane.cpp index 3b788c72cd8..d0ea617b734 100644 --- a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_mograine_and_whitemane.cpp +++ b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_mograine_and_whitemane.cpp @@ -102,7 +102,7 @@ public: { if (m_instance) { - if (m_instance->GetData(TYPE_MOGRAINE_AND_WHITE_EVENT != NOT_STARTED)) + if (m_instance->GetData(TYPE_MOGRAINE_AND_WHITE_EVENT) != NOT_STARTED) m_instance->SetData(TYPE_MOGRAINE_AND_WHITE_EVENT, FAIL); } } diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp index b29a0c491cc..ca853d5684e 100644 --- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp +++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp @@ -662,11 +662,13 @@ public: { float x, y, z; Unit* target = NULL; - for (uint8 z = 0; z < 6; ++z) + for (uint8 i = 0; i < 6; ++i) { target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true); - if (!target || !target->HasAura(SPELL_VENGEANCE_OF_THE_BLUE_FLIGHT, 0))break; + if (!target || !target->HasAura(SPELL_VENGEANCE_OF_THE_BLUE_FLIGHT, 0)) + break; } + if (target) { target->GetPosition(x, y, z); diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp index fd11b4a4985..7c14845f060 100644 --- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp +++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp @@ -330,14 +330,14 @@ public: else { DarkFiend = false; - for (uint8 i = 0; i < 8; ++i) - me->SummonCreature(CREATURE_DARK_FIENDS, DarkFiends[i][0], DarkFiends[i][1], DarkFiends[i][2], DarkFiends[i][3], TEMPSUMMON_CORPSE_DESPAWN, 0); + for (uint8 j = 0; j < 8; ++j) + me->SummonCreature(CREATURE_DARK_FIENDS, DarkFiends[j][0], DarkFiends[j][1], DarkFiends[j][2], DarkFiends[j][3], TEMPSUMMON_CORPSE_DESPAWN, 0); Timer[TIMER_DARKNESS] = 42000; } break; case TIMER_HUMANOIDES: - for (uint8 i = 0; i < 6; ++i) - me->SummonCreature(uint32(Humanoides[i][0]), Humanoides[i][1], Humanoides[i][2], Humanoides[i][3], Humanoides[i][4], TEMPSUMMON_CORPSE_DESPAWN, 0); + for (uint8 j = 0; j < 6; ++j) + me->SummonCreature(uint32(Humanoides[j][0]), Humanoides[j][1], Humanoides[j][2], Humanoides[j][3], Humanoides[j][4], TEMPSUMMON_CORPSE_DESPAWN, 0); Timer[TIMER_HUMANOIDES] = 60000; break; case TIMER_PHASE: diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/instance_hyjal.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/instance_hyjal.cpp index 0e5233d6620..338f320dcc2 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/instance_hyjal.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/instance_hyjal.cpp @@ -205,9 +205,9 @@ public: { if (i->getSource()) { - WorldPacket data(SMSG_MESSAGECHAT, 200); - unit->BuildMonsterChat(&data, CHAT_MSG_MONSTER_YELL, YELL_EFFORTS, 0, YELL_EFFORTS_NAME, i->getSource()->GetGUID()); - i->getSource()->GetSession()->SendPacket(&data); + WorldPacket packet(SMSG_MESSAGECHAT, 200); + unit->BuildMonsterChat(&packet, CHAT_MSG_MONSTER_YELL, YELL_EFFORTS, 0, YELL_EFFORTS_NAME, i->getSource()->GetGUID()); + i->getSource()->GetSession()->SendPacket(&packet); WorldPacket data2(SMSG_PLAY_SOUND, 4); data2 << 10986; diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.cpp index 02f9435db49..82f16dd7784 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.cpp @@ -579,13 +579,16 @@ public: { //After reset case 0: - if (Unit* pJaina = GetClosestCreatureWithEntry(me, NPC_JAINA, 50.0f)) - uiJainaGUID = pJaina->GetGUID(); - else if (Unit* pJaina = me->SummonCreature(NPC_JAINA, 1895.48f, 1292.66f, 143.706f, 0.023475f, TEMPSUMMON_DEAD_DESPAWN, 180000)) + { + Unit* pJaina = GetClosestCreatureWithEntry(me, NPC_JAINA, 50.0f); + if (!pJaina) + pJaina = pJaina = me->SummonCreature(NPC_JAINA, 1895.48f, 1292.66f, 143.706f, 0.023475f, TEMPSUMMON_DEAD_DESPAWN, 180000); + if (pJaina) uiJainaGUID = pJaina->GetGUID(); bStepping = false; JumpToNextStep(0); break; + } //After waypoint 0 case 1: me->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING); @@ -829,9 +832,10 @@ public: case 37: if (Creature* pMalganis = Unit::GetCreature(*me, uiMalganisGUID)) { - if (Creature* pZombie = GetClosestCreatureWithEntry(pMalganis, NPC_CITY_MAN, 100.0f)) - pZombie->UpdateEntry(NPC_ZOMBIE, 0); - else if (Creature* pZombie = GetClosestCreatureWithEntry(pMalganis, NPC_CITY_MAN2, 100.0f)) + Creature* pZombie = GetClosestCreatureWithEntry(pMalganis, NPC_CITY_MAN, 100.0f); + if (!pZombie) + pZombie = GetClosestCreatureWithEntry(pMalganis, NPC_CITY_MAN2, 100.0f); + if (pZombie) pZombie->UpdateEntry(NPC_ZOMBIE, 0); else //There's no one else to transform uiStep++; diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp index 4cc1069b838..43265cb4430 100644 --- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp +++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp @@ -680,12 +680,8 @@ public: //Place all units in threat list on outside of stomach Stomach_Map.clear(); - std::list<HostileReference*>::const_iterator i = me->getThreatManager().getThreatList().begin(); - for (; i != me->getThreatManager().getThreatList().end(); ++i) - { - //Outside stomach - Stomach_Map[(*i)->getUnitGuid()] = false; - } + for (std::list<HostileReference*>::const_iterator i = me->getThreatManager().getThreatList().begin(); i != me->getThreatManager().getThreatList().end(); ++i) + Stomach_Map[(*i)->getUnitGuid()] = false; //Outside stomach //Spawn 2 flesh tentacles FleshTentaclesKilled = 0; diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/trial_of_the_champion.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/trial_of_the_champion.cpp index 2688005ee22..a1e906e214a 100644 --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/trial_of_the_champion.cpp +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/trial_of_the_champion.cpp @@ -221,10 +221,9 @@ public: { uiVehicle1GUID = pBoss->GetGUID(); uint64 uiGrandChampionBoss1 = 0; - if (Creature* pBoss = Unit::GetCreature(*me, uiVehicle1GUID)) - if (Vehicle* pVehicle = pBoss->GetVehicleKit()) - if (Unit* unit = pVehicle->GetPassenger(0)) - uiGrandChampionBoss1 = unit->GetGUID(); + if (Vehicle* pVehicle = pBoss->GetVehicleKit()) + if (Unit* unit = pVehicle->GetPassenger(0)) + uiGrandChampionBoss1 = unit->GetGUID(); if (instance) { instance->SetData64(DATA_GRAND_CHAMPION_VEHICLE_1, uiVehicle1GUID); @@ -237,10 +236,9 @@ public: { uiVehicle2GUID = pBoss->GetGUID(); uint64 uiGrandChampionBoss2 = 0; - if (Creature* pBoss = Unit::GetCreature(*me, uiVehicle2GUID)) - if (Vehicle* pVehicle = pBoss->GetVehicleKit()) - if (Unit* unit = pVehicle->GetPassenger(0)) - uiGrandChampionBoss2 = unit->GetGUID(); + if (Vehicle* pVehicle = pBoss->GetVehicleKit()) + if (Unit* unit = pVehicle->GetPassenger(0)) + uiGrandChampionBoss2 = unit->GetGUID(); if (instance) { instance->SetData64(DATA_GRAND_CHAMPION_VEHICLE_2, uiVehicle2GUID); @@ -253,10 +251,9 @@ public: { uiVehicle3GUID = pBoss->GetGUID(); uint64 uiGrandChampionBoss3 = 0; - if (Creature* pBoss = Unit::GetCreature(*me, uiVehicle3GUID)) - if (Vehicle* pVehicle = pBoss->GetVehicleKit()) - if (Unit* unit = pVehicle->GetPassenger(0)) - uiGrandChampionBoss3 = unit->GetGUID(); + if (Vehicle* pVehicle = pBoss->GetVehicleKit()) + if (Unit* unit = pVehicle->GetPassenger(0)) + uiGrandChampionBoss3 = unit->GetGUID(); if (instance) { instance->SetData64(DATA_GRAND_CHAMPION_VEHICLE_3, uiVehicle3GUID); diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp index d4514dd547e..1ee7bcb4120 100755 --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp @@ -348,10 +348,10 @@ public: m_bTargetDied = true; me->GetMotionMaster()->MoveJump(gormok->GetPositionX(), gormok->GetPositionY(), gormok->GetPositionZ(), 15.0f, 15.0f); } - else if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0)) + else if (Unit* target2 = SelectTarget(SELECT_TARGET_RANDOM, 0)) { - m_uiTargetGUID = target->GetGUID(); - me->GetMotionMaster()->MoveJump(target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(), 15.0f, 15.0f); + m_uiTargetGUID = target2->GetGUID(); + me->GetMotionMaster()->MoveJump(target2->GetPositionX(), target2->GetPositionY(), target2->GetPositionZ(), 15.0f, 15.0f); } } } diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp index 5b612942435..29c3276467b 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp @@ -242,6 +242,9 @@ class boss_sindragosa : public CreatureScript { if (action == ACTION_START_FROSTWYRM) { + if (TempSummon* summon = me->ToTempSummon()) + summon->SetTempSummonType(TEMPSUMMON_DEAD_DESPAWN); + instance->SetData(DATA_SINDRAGOSA_FROSTWYRMS, 255); if (me->isDead()) return; @@ -971,7 +974,7 @@ class spell_sindragosa_s_fury : public SpellScriptLoader if (!GetHitUnit()->isAlive() || !_targetCount) return; - float resistance = float(GetHitUnit()->GetResistance(GetFirstSchoolInMask(SpellSchoolMask(GetSpellInfo()->SchoolMask)))); + float resistance = float(GetHitUnit()->GetResistance(SpellSchoolMask(GetSpellInfo()->SchoolMask))); uint32 minResistFactor = uint32((resistance / (resistance + 510.0f))* 10.0f) * 2; uint32 randomResist = urand(0, (9 - minResistFactor) * 100)/100 + minResistFactor; diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp index 38f334058b8..2f4f225561c 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp @@ -1335,7 +1335,7 @@ class npc_shambling_horror_icc : public CreatureScript void DamageTaken(Unit* /*attacker*/, uint32& damage) { - if (IsHeroic() && me->HealthBelowPctDamaged(20, damage)) + if (!_frenzied && IsHeroic() && me->HealthBelowPctDamaged(20, damage)) { _frenzied = true; DoCast(me, SPELL_FRENZY, true); diff --git a/src/server/scripts/Northrend/Naxxramas/boss_patchwerk.cpp b/src/server/scripts/Northrend/Naxxramas/boss_patchwerk.cpp index 10f1b809694..3b87dea025c 100644 --- a/src/server/scripts/Northrend/Naxxramas/boss_patchwerk.cpp +++ b/src/server/scripts/Northrend/Naxxramas/boss_patchwerk.cpp @@ -91,7 +91,7 @@ public: _EnterCombat(); Enraged = false; DoScriptText(RAND(SAY_AGGRO_1, SAY_AGGRO_2), me); - events.ScheduleEvent(EVENT_HATEFUL, 1200); + events.ScheduleEvent(EVENT_HATEFUL, 1000); events.ScheduleEvent(EVENT_BERSERK, 360000); if (instance) @@ -131,7 +131,7 @@ public: DoCast(pMostHPTarget, RAID_MODE(SPELL_HATEFUL_STRIKE, H_SPELL_HATEFUL_STRIKE), true); - events.ScheduleEvent(EVENT_HATEFUL, 1200); + events.ScheduleEvent(EVENT_HATEFUL, 1000); break; } case EVENT_BERSERK: @@ -140,7 +140,7 @@ public: events.ScheduleEvent(EVENT_SLIME, 2000); break; case EVENT_SLIME: - DoCast(me->getVictim(), SPELL_SLIME_BOLT); + DoCast(me->getVictim(), SPELL_SLIME_BOLT, true); events.ScheduleEvent(EVENT_SLIME, 2000); break; } diff --git a/src/server/scripts/Northrend/Naxxramas/boss_sapphiron.cpp b/src/server/scripts/Northrend/Naxxramas/boss_sapphiron.cpp index d620289a72f..ed1bbd1971a 100644 --- a/src/server/scripts/Northrend/Naxxramas/boss_sapphiron.cpp +++ b/src/server/scripts/Northrend/Naxxramas/boss_sapphiron.cpp @@ -271,14 +271,18 @@ public: break; } case EVENT_FLIGHT: - phase = PHASE_FLIGHT; - events.SetPhase(PHASE_FLIGHT); - me->SetReactState(REACT_PASSIVE); - me->AttackStop(); - float x, y, z, o; - me->GetHomePosition(x, y, z, o); - me->GetMotionMaster()->MovePoint(1, x, y, z); - return; + if (HealthAbovePct(10)) + { + phase = PHASE_FLIGHT; + events.SetPhase(PHASE_FLIGHT); + me->SetReactState(REACT_PASSIVE); + me->AttackStop(); + float x, y, z, o; + me->GetHomePosition(x, y, z, o); + me->GetMotionMaster()->MovePoint(1, x, y, z); + return; + } + break; } } diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_freya.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_freya.cpp index f59ef8afe10..e7d8b070e53 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_freya.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_freya.cpp @@ -321,35 +321,12 @@ class boss_freya : public CreatureScript DoScriptText(RAND(SAY_SLAY_1, SAY_SLAY_2), me); } - void DamageTaken(Unit* /*who*/, uint32& damage) + void DamageTaken(Unit* who, uint32& damage) { if (damage >= me->GetHealth()) { damage = 0; - DoScriptText(SAY_DEATH, me); - me->SetReactState(REACT_PASSIVE); - _JustDied(); - me->RemoveAllAuras(); - me->AttackStop(); - me->setFaction(35); - me->DeleteThreatList(); - me->CombatStop(true); - me->DespawnOrUnsummon(7500); - me->CastSpell(me, SPELL_KNOCK_ON_WOOD_CREDIT, true); - - Creature* Elder[3]; - for (uint8 n = 0; n < 3; ++n) - { - Elder[n] = ObjectAccessor::GetCreature(*me, instance->GetData64(BOSS_BRIGHTLEAF + n)); - if (Elder[n] && Elder[n]->isAlive()) - { - Elder[n]->RemoveAllAuras(); - Elder[n]->AttackStop(); - Elder[n]->CombatStop(true); - Elder[n]->DeleteThreatList(); - Elder[n]->GetAI()->DoAction(ACTION_ELDER_FREYA_KILLED); - } - } + JustDied(who); } } @@ -625,7 +602,30 @@ class boss_freya : public CreatureScript me->CastSpell((Unit*)NULL, summonSpell[me->GetMap()->GetDifficulty()][elderCount], true); + DoScriptText(SAY_DEATH, me); + me->SetReactState(REACT_PASSIVE); _JustDied(); + me->RemoveAllAuras(); + me->AttackStop(); + me->setFaction(35); + me->DeleteThreatList(); + me->CombatStop(true); + me->DespawnOrUnsummon(7500); + me->CastSpell(me, SPELL_KNOCK_ON_WOOD_CREDIT, true); + + Creature* Elder[3]; + for (uint8 n = 0; n < 3; ++n) + { + Elder[n] = ObjectAccessor::GetCreature(*me, instance->GetData64(BOSS_BRIGHTLEAF + n)); + if (Elder[n] && Elder[n]->isAlive()) + { + Elder[n]->RemoveAllAuras(); + Elder[n]->AttackStop(); + Elder[n]->CombatStop(true); + Elder[n]->DeleteThreatList(); + Elder[n]->GetAI()->DoAction(ACTION_ELDER_FREYA_KILLED); + } + } } void JustSummoned(Creature* summoned) diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_ingvar_the_plunderer.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_ingvar_the_plunderer.cpp index 55211f3f047..dc2d34326a7 100644 --- a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_ingvar_the_plunderer.cpp +++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_ingvar_the_plunderer.cpp @@ -130,7 +130,7 @@ public: me->SetHealth(0); me->InterruptNonMeleeSpells(true); me->RemoveAllAuras(); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_OOC_NOT_ATTACKABLE); + me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); me->GetMotionMaster()->MovementExpired(false); me->GetMotionMaster()->MoveIdle(); me->SetStandState(UNIT_STAND_STATE_DEAD); @@ -152,7 +152,7 @@ public: { bIsUndead = true; bEventInProgress = false; - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_OOC_NOT_ATTACKABLE); + me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); me->UpdateEntry(MOB_INGVAR_UNDEAD); me->SetInCombatWith(me->getVictim()); me->GetMotionMaster()->MoveChase(me->getVictim()); diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_svala.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_svala.cpp index e06da5bb7ea..45534824860 100644 --- a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_svala.cpp +++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_svala.cpp @@ -136,7 +136,6 @@ public: if (Creature* pArthas = me->SummonCreature(CREATURE_ARTHAS, ArthasPos, TEMPSUMMON_MANUAL_DESPAWN)) { pArthas->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE); - pArthas->SetFloatValue(OBJECT_FIELD_SCALE_X, 5); uiArthasGUID = pArthas->GetGUID(); } } diff --git a/src/server/scripts/Northrend/borean_tundra.cpp b/src/server/scripts/Northrend/borean_tundra.cpp index 9c40fbb3f82..96f1cb49b84 100644 --- a/src/server/scripts/Northrend/borean_tundra.cpp +++ b/src/server/scripts/Northrend/borean_tundra.cpp @@ -2125,7 +2125,7 @@ public: { Quest const* qInfo = sObjectMgr->GetQuestTemplate(QUEST_YOU_RE_NOT_SO_BIG_NOW); if (qInfo) - CAST_PLR(killer)->KilledMonsterCredit(qInfo->ReqCreatureOrGOId[0], 0); + CAST_PLR(killer)->KilledMonsterCredit(qInfo->RequiredNpcOrGo[0], 0); } } }; diff --git a/src/server/scripts/Northrend/sholazar_basin.cpp b/src/server/scripts/Northrend/sholazar_basin.cpp index b3f1fb1b8b0..6f9481ec226 100644 --- a/src/server/scripts/Northrend/sholazar_basin.cpp +++ b/src/server/scripts/Northrend/sholazar_basin.cpp @@ -98,8 +98,7 @@ public: me->SetUnitMovementFlags(MOVEMENTFLAG_JUMPING); break; case 28: - if (Player* player = GetPlayerForEscort()) - player->GroupEventHappens(QUEST_FORTUNATE_MISUNDERSTANDINGS, me); + player->GroupEventHappens(QUEST_FORTUNATE_MISUNDERSTANDINGS, me); // me->RestoreFaction(); DoScriptText(SAY_END_IRO, me); SetRun(false); diff --git a/src/server/scripts/Outland/BlackTemple/boss_warlord_najentus.cpp b/src/server/scripts/Outland/BlackTemple/boss_warlord_najentus.cpp index 1f603699060..6bf26e795ca 100644 --- a/src/server/scripts/Outland/BlackTemple/boss_warlord_najentus.cpp +++ b/src/server/scripts/Outland/BlackTemple/boss_warlord_najentus.cpp @@ -94,7 +94,7 @@ public: void KilledUnit(Unit* /*victim*/) { - DoScriptText(rand()%2 ? SAY_SLAY1 : SAY_SLAY2, me); + DoScriptText(urand(0, 1) ? SAY_SLAY1 : SAY_SLAY2, me); events.DelayEvents(5000, GCD_YELL); } @@ -175,7 +175,7 @@ public: SpineTargetGUID = target->GetGUID(); //must let target summon, otherwise you cannot click the spine target->SummonGameObject(GOBJECT_SPINE, target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(), me->GetOrientation(), 0, 0, 0, 0, 30); - DoScriptText(rand()%2 ? SAY_NEEDLE1 : SAY_NEEDLE2, me); + DoScriptText(urand(0, 1) ? SAY_NEEDLE1 : SAY_NEEDLE2, me); events.DelayEvents(1500, GCD_CAST); events.DelayEvents(15000, GCD_YELL); } diff --git a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_lurker_below.cpp b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_lurker_below.cpp index f69aa1f0757..f8ed96632df 100644 --- a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_lurker_below.cpp +++ b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_lurker_below.cpp @@ -234,7 +234,7 @@ public: { me->MonsterTextEmote(EMOTE_SPOUT, 0, true); me->SetReactState(REACT_PASSIVE); - me->GetMotionMaster()->MoveRotate(20000, rand()%2 ? ROTATE_DIRECTION_LEFT : ROTATE_DIRECTION_RIGHT); + me->GetMotionMaster()->MoveRotate(20000, urand(0, 1) ? ROTATE_DIRECTION_LEFT : ROTATE_DIRECTION_RIGHT); SpoutTimer = 45000; WhirlTimer = 20000;//whirl directly after spout RotTimer = 20000; diff --git a/src/server/scripts/Outland/shadowmoon_valley.cpp b/src/server/scripts/Outland/shadowmoon_valley.cpp index 31aea5ea576..610cf684a77 100644 --- a/src/server/scripts/Outland/shadowmoon_valley.cpp +++ b/src/server/scripts/Outland/shadowmoon_valley.cpp @@ -998,8 +998,7 @@ public: case 50: DoScriptText(SAY_WIL_END, me, player); - if (Player* player = GetPlayerForEscort()) - player->GroupEventHappens(QUEST_ESCAPE_COILSCAR, me); + player->GroupEventHappens(QUEST_ESCAPE_COILSCAR, me); break; } } diff --git a/src/server/scripts/World/areatrigger_scripts.cpp b/src/server/scripts/World/areatrigger_scripts.cpp index a9ed794ab45..517746dac55 100644 --- a/src/server/scripts/World/areatrigger_scripts.cpp +++ b/src/server/scripts/World/areatrigger_scripts.cpp @@ -24,14 +24,8 @@ SDCategory: Areatrigger EndScriptData */ /* ContentData -at_aldurthar_gate q13315/q13351 at_coilfang_waterfall 4591 at_legion_teleporter 4560 Teleporter TO Invasion Point: Cataclysm -at_ravenholdt -at_warsong_slaughterhouse -at_warsong_grainery -at_torp_farm -at_warsong_farms q11686 at_stormwright_shelf q12741 at_last_rites q12019 at_sholazar_waygate q12548 @@ -40,46 +34,6 @@ EndContentData */ #include "ScriptPCH.h" /*###### -## AreaTrigger_at_aldurthar_gate -######*/ - -enum eAldurtharGate -{ - TRIGGER_SOUTH = 5284, - - TRIGGER_CENTRAL = 5285, - TRIGGER_NORTH = 5286, - TRIGGER_NORTHWEST = 5287, - - NPC_SOUTH_GATE = 32195, - NPC_CENTRAL_GATE = 32196, - NPC_NORTH_GATE = 32197, - NPC_NORTHWEST_GATE = 32199 -}; - -class AreaTrigger_at_aldurthar_gate : public AreaTriggerScript -{ - public: - - AreaTrigger_at_aldurthar_gate() - : AreaTriggerScript("at_aldurthar_gate") - { - } - - bool OnTrigger(Player* player, AreaTriggerEntry const* trigger) - { - switch (trigger->id) - { - case TRIGGER_SOUTH: player->KilledMonsterCredit(NPC_SOUTH_GATE, 0); break; - case TRIGGER_CENTRAL: player->KilledMonsterCredit(NPC_CENTRAL_GATE, 0); break; - case TRIGGER_NORTH: player->KilledMonsterCredit(NPC_NORTH_GATE, 0); break; - case TRIGGER_NORTHWEST: player->KilledMonsterCredit(NPC_NORTHWEST_GATE, 0); break; - } - return true; - } -}; - -/*###### ## at_coilfang_waterfall ######*/ @@ -151,71 +105,6 @@ class AreaTrigger_at_legion_teleporter : public AreaTriggerScript } }; -enum eRavenholdt -{ - QUEST_MANOR_RAVENHOLDT = 6681, - NPC_RAVENHOLDT = 13936 -}; - -class AreaTrigger_at_ravenholdt : public AreaTriggerScript -{ - public: - - AreaTrigger_at_ravenholdt() - : AreaTriggerScript("at_ravenholdt") - { - } - - bool OnTrigger(Player* player, AreaTriggerEntry const* /*trigger*/) - { - if (player->GetQuestStatus(QUEST_MANOR_RAVENHOLDT) == QUEST_STATUS_INCOMPLETE) - player->KilledMonsterCredit(NPC_RAVENHOLDT, 0); - - return false; - } -}; - -/*###### -## at_warsong_farms -######*/ - -enum eWarsongFarms -{ - QUEST_THE_WARSONG_FARMS = 11686, - - NPC_CREDIT_SLAUGHTERHOUSE = 25672, - NPC_CREDIT_GRAINERY = 25669, - NPC_CREDIT_TORP_FARM = 25671, - - AT_SLAUGHTERHOUSE = 4873, - AT_GRAINERY = 4871, - AT_TORP_FARM = 4872 -}; - -class AreaTrigger_at_warsong_farms : public AreaTriggerScript -{ - public: - - AreaTrigger_at_warsong_farms() - : AreaTriggerScript("at_warsong_farms") - { - } - - bool OnTrigger(Player* player, AreaTriggerEntry const* trigger) - { - if (!player->isDead() && player->GetQuestStatus(QUEST_THE_WARSONG_FARMS) == QUEST_STATUS_INCOMPLETE) - { - switch (trigger->id) - { - case AT_SLAUGHTERHOUSE: player->KilledMonsterCredit(NPC_CREDIT_SLAUGHTERHOUSE, 0); break; - case AT_GRAINERY: player->KilledMonsterCredit(NPC_CREDIT_GRAINERY, 0); break; - case AT_TORP_FARM: player->KilledMonsterCredit(NPC_CREDIT_TORP_FARM, 0); break; - } - } - return true; - } -}; - /*###### ## at_stormwright_shelf ######*/ @@ -370,11 +259,8 @@ class AreaTrigger_at_sholazar_waygate : public AreaTriggerScript void AddSC_areatrigger_scripts() { - new AreaTrigger_at_aldurthar_gate(); new AreaTrigger_at_coilfang_waterfall(); new AreaTrigger_at_legion_teleporter(); - new AreaTrigger_at_ravenholdt(); - new AreaTrigger_at_warsong_farms(); new AreaTrigger_at_stormwright_shelf(); new AreaTrigger_at_scent_larkorwi(); new AreaTrigger_at_last_rites(); diff --git a/src/server/scripts/World/go_scripts.cpp b/src/server/scripts/World/go_scripts.cpp index f83b728ee01..3bb969977b6 100644 --- a/src/server/scripts/World/go_scripts.cpp +++ b/src/server/scripts/World/go_scripts.cpp @@ -1009,7 +1009,7 @@ public: if (qInfo) { //TODO: prisoner should help player for a short period of time - player->KilledMonsterCredit(qInfo->ReqCreatureOrGOId[0], 0); + player->KilledMonsterCredit(qInfo->RequiredNpcOrGo[0], 0); pPrisoner->DisappearAndDie(); } return true; diff --git a/src/server/shared/Database/Implementation/CharacterDatabase.cpp b/src/server/shared/Database/Implementation/CharacterDatabase.cpp index 816dc25f1b3..f93c4a70d7c 100755 --- a/src/server/shared/Database/Implementation/CharacterDatabase.cpp +++ b/src/server/shared/Database/Implementation/CharacterDatabase.cpp @@ -300,4 +300,20 @@ void CharacterDatabaseConnection::DoPrepareStatements() // For loading and deleting expired auctions at startup PREPARE_STATEMENT(CHAR_LOAD_EXPIRED_AUCTIONS, "SELECT id, auctioneerguid, itemguid, itemEntry, itemowner, buyoutprice, time, buyguid, lastbid, startbid, deposit FROM auctionhouse ah INNER JOIN item_instance ii ON ii.guid = ah.itemguid WHERE ah.time <= ?", CONNECTION_SYNCH) + // Player saving + PREPARE_STATEMENT(CHAR_ADD_CHARACTER, "INSERT INTO characters (guid, account, name, race, class, gender, level, xp, money, playerBytes, playerBytes2, playerFlags, " + "map, instance_id, instance_mode_mask, position_x, position_y, position_z, orientation, " + "taximask, cinematic, " + "totaltime, leveltime, rest_bonus, logout_time, is_logout_resting, resettalents_cost, resettalents_time, " + "extra_flags, stable_slots, at_login, zone, " + "death_expire_time, taxi_path, arenaPoints, totalHonorPoints, todayHonorPoints, yesterdayHonorPoints, totalKills, " + "todayKills, yesterdayKills, chosenTitle, knownCurrencies, watchedFaction, drunk, health, power1, power2, power3, " + "power4, power5, power6, power7, latency, speccount, activespec, exploredZones, equipmentCache, ammoId, knownTitles, actionBars, grantableLevels) VALUES " + "(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)", CONNECTION_ASYNC); + PREPARE_STATEMENT(CHAR_UPD_CHARACTER, "UPDATE characters SET name=?,race=?,class=?,gender=?,level=?,xp=?,money=?,playerBytes=?,playerBytes2=?,playerFlags=?," + "map=?,instance_id=?,instance_mode_mask=?,position_x=?,position_y=?,position_z=?,orientation=?,taximask=?,cinematic=?,totaltime=?,leveltime=?,rest_bonus=?," + "logout_time=?,is_logout_resting=?,resettalents_cost=?,resettalents_time=?,extra_flags=?,stable_slots=?,at_login=?,zone=?,death_expire_time=?,taxi_path=?," + "arenaPoints=?,totalHonorPoints=?,todayHonorPoints=?,yesterdayHonorPoints=?,totalKills=?,todayKills=?,yesterdayKills=?,chosenTitle=?,knownCurrencies=?," + "watchedFaction=?,drunk=?,health=?,power1=?,power2=?,power3=?,power4=?,power5=?,power6=?,power7=?,latency=?,speccount=?,activespec=?,exploredZones=?," + "equipmentCache=?,ammoId=?,knownTitles=?,actionBars=?,grantableLevels=?,online=? WHERE guid=?", CONNECTION_ASYNC); } diff --git a/src/server/shared/Database/Implementation/CharacterDatabase.h b/src/server/shared/Database/Implementation/CharacterDatabase.h index dd752914138..f06a17aa924 100755 --- a/src/server/shared/Database/Implementation/CharacterDatabase.h +++ b/src/server/shared/Database/Implementation/CharacterDatabase.h @@ -275,6 +275,9 @@ enum CharacterDatabaseStatements CHAR_LOAD_EXPIRED_AUCTIONS, + CHAR_ADD_CHARACTER, + CHAR_UPD_CHARACTER, + MAX_CHARACTERDATABASE_STATEMENTS, }; diff --git a/src/server/shared/Dynamic/TypeContainer.h b/src/server/shared/Dynamic/TypeContainer.h index 0fb3eb25347..7f6f5fa661c 100755 --- a/src/server/shared/Dynamic/TypeContainer.h +++ b/src/server/shared/Dynamic/TypeContainer.h @@ -108,11 +108,11 @@ class TypeMapContainer } /// Removes the object from the container, and returns the removed object - template<class SPECIFIC_TYPE> bool remove(SPECIFIC_TYPE* obj) - { - SPECIFIC_TYPE* t = Trinity::Remove(i_elements, obj); - return (t != NULL); - } + //template<class SPECIFIC_TYPE> bool remove(SPECIFIC_TYPE* obj) + //{ + // SPECIFIC_TYPE* t = Trinity::Remove(i_elements, obj); + // return (t != NULL); + //} ContainerMapList<OBJECT_TYPES> & GetElements(void) { return i_elements; } const ContainerMapList<OBJECT_TYPES> & GetElements(void) const { return i_elements;} diff --git a/src/server/shared/Dynamic/TypeContainerFunctions.h b/src/server/shared/Dynamic/TypeContainerFunctions.h index 981cd82197f..9bfbf47da93 100755 --- a/src/server/shared/Dynamic/TypeContainerFunctions.h +++ b/src/server/shared/Dynamic/TypeContainerFunctions.h @@ -62,7 +62,7 @@ namespace Trinity template<class SPECIFIC_TYPE> SPECIFIC_TYPE* Insert(ContainerMapList<SPECIFIC_TYPE> &elements, SPECIFIC_TYPE *obj) { //elements._element[hdl] = obj; - obj->GetGridRef().link(&elements._element, obj); + obj->AddToGrid(elements._element); return obj; }; @@ -84,31 +84,30 @@ namespace Trinity return (t != NULL ? t : Insert(elements._TailElements, obj)); } - // non-const remove method - template<class SPECIFIC_TYPE> SPECIFIC_TYPE* Remove(ContainerMapList<SPECIFIC_TYPE> & /*elements*/, SPECIFIC_TYPE *obj) - { - obj->GetGridRef().unlink(); - return obj; - } - - template<class SPECIFIC_TYPE> SPECIFIC_TYPE* Remove(ContainerMapList<TypeNull> &/*elements*/, SPECIFIC_TYPE * /*obj*/) - { - return NULL; - } - - // this is a missed - template<class SPECIFIC_TYPE, class T> SPECIFIC_TYPE* Remove(ContainerMapList<T> &/*elements*/, SPECIFIC_TYPE * /*obj*/) - { - return NULL; // a missed - } - - template<class SPECIFIC_TYPE, class T, class H> SPECIFIC_TYPE* Remove(ContainerMapList<TypeList<H, T> > &elements, SPECIFIC_TYPE *obj) - { - // The head element is bad - SPECIFIC_TYPE* t = Remove(elements._elements, obj); - return ( t != NULL ? t : Remove(elements._TailElements, obj) ); - } - + //// non-const remove method + //template<class SPECIFIC_TYPE> SPECIFIC_TYPE* Remove(ContainerMapList<SPECIFIC_TYPE> & /*elements*/, SPECIFIC_TYPE *obj) + //{ + // obj->GetGridRef().unlink(); + // return obj; + //} + + //template<class SPECIFIC_TYPE> SPECIFIC_TYPE* Remove(ContainerMapList<TypeNull> &/*elements*/, SPECIFIC_TYPE * /*obj*/) + //{ + // return NULL; + //} + + //// this is a missed + //template<class SPECIFIC_TYPE, class T> SPECIFIC_TYPE* Remove(ContainerMapList<T> &/*elements*/, SPECIFIC_TYPE * /*obj*/) + //{ + // return NULL; // a missed + //} + + //template<class SPECIFIC_TYPE, class T, class H> SPECIFIC_TYPE* Remove(ContainerMapList<TypeList<H, T> > &elements, SPECIFIC_TYPE *obj) + //{ + // // The head element is bad + // SPECIFIC_TYPE* t = Remove(elements._elements, obj); + // return ( t != NULL ? t : Remove(elements._TailElements, obj) ); + //} } #endif diff --git a/src/server/shared/Logging/Log.cpp b/src/server/shared/Logging/Log.cpp index 15008f13c10..697e7616c40 100755 --- a/src/server/shared/Logging/Log.cpp +++ b/src/server/shared/Logging/Log.cpp @@ -556,10 +556,10 @@ void Log::outSQLDriver(const char* str, ...) { outTimestamp(sqlLogFile); - va_list ap; - va_start(ap, str); - vfprintf(sqlLogFile, str, ap); - va_end(ap); + va_list apSQL; + va_start(apSQL, str); + vfprintf(sqlLogFile, str, apSQL); + va_end(apSQL); fprintf(sqlLogFile, "\n"); fflush(sqlLogFile); @@ -646,11 +646,11 @@ void Log::outBasic(const char * str, ...) if (logfile) { outTimestamp(logfile); - va_list ap; - va_start(ap, str); - vfprintf(logfile, str, ap); + va_list ap2; + va_start(ap2, str); + vfprintf(logfile, str, ap2); fprintf(logfile, "\n" ); - va_end(ap); + va_end(ap2); fflush(logfile); } } @@ -690,10 +690,10 @@ void Log::outDetail(const char * str, ...) if (logfile) { outTimestamp(logfile); - va_list ap; - va_start(ap, str); - vfprintf(logfile, str, ap); - va_end(ap); + va_list ap2; + va_start(ap2, str); + vfprintf(logfile, str, ap2); + va_end(ap2); fprintf(logfile, "\n"); fflush(logfile); @@ -720,10 +720,10 @@ void Log::outDebugInLine(const char * str, ...) if (logfile) { - va_list ap; - va_start(ap, str); - vfprintf(logfile, str, ap); - va_end(ap); + va_list ap2; + va_start(ap2, str); + vfprintf(logfile, str, ap2); + va_end(ap2); } } } @@ -742,10 +742,10 @@ void Log::outSQLDev(const char* str, ...) if (sqlDevLogFile) { - va_list ap; - va_start(ap, str); - vfprintf(sqlDevLogFile, str, ap); - va_end(ap); + va_list ap2; + va_start(ap2, str); + vfprintf(sqlDevLogFile, str, ap2); + va_end(ap2); fprintf(sqlDevLogFile, "\n"); fflush(sqlDevLogFile); @@ -790,10 +790,10 @@ void Log::outDebug(DebugLogFilters f, const char * str, ...) if (logfile) { outTimestamp(logfile); - va_list ap; - va_start(ap, str); - vfprintf(logfile, str, ap); - va_end(ap); + va_list ap2; + va_start(ap2, str); + vfprintf(logfile, str, ap2); + va_end(ap2); fprintf(logfile, "\n" ); fflush(logfile); @@ -835,10 +835,10 @@ void Log::outStaticDebug(const char * str, ...) if (logfile) { outTimestamp(logfile); - va_list ap; - va_start(ap, str); - vfprintf(logfile, str, ap); - va_end(ap); + va_list ap2; + va_start(ap2, str); + vfprintf(logfile, str, ap2); + va_end(ap2); fprintf(logfile, "\n" ); fflush(logfile); @@ -900,11 +900,11 @@ void Log::outCommand(uint32 account, const char * str, ...) if (logfile) { outTimestamp(logfile); - va_list ap; - va_start(ap, str); - vfprintf(logfile, str, ap); + va_list ap2; + va_start(ap2, str); + vfprintf(logfile, str, ap2); fprintf(logfile, "\n" ); - va_end(ap); + va_end(ap2); fflush(logfile); } } |