diff options
54 files changed, 2134 insertions, 245 deletions
diff --git a/sql/updates/world/2011_12_14_01_world_gameobject_template.sql b/sql/updates/world/2011_12_14_01_world_gameobject_template.sql new file mode 100644 index 00000000000..12729afd6b8 --- /dev/null +++ b/sql/updates/world/2011_12_14_01_world_gameobject_template.sql @@ -0,0 +1 @@ +UPDATE `gameobject_template` SET `scriptName` = 'go_ethereal_teleport_pad' WHERE `entry` = 184073; -- Update Ethereal Teleport Pad scriptname
\ No newline at end of file diff --git a/sql/updates/world/2011_12_16_00_world_creature_template.sql b/sql/updates/world/2011_12_16_00_world_creature_template.sql new file mode 100644 index 00000000000..156fd431359 --- /dev/null +++ b/sql/updates/world/2011_12_16_00_world_creature_template.sql @@ -0,0 +1,4 @@ +-- Greater Fire Elemental script +UPDATE `creature_template` SET `ScriptName`='npc_fire_elemental' WHERE `entry`=15438; +-- Greater Earth Elemental script +UPDATE `creature_template` SET `ScriptName`='npc_earth_elemental' WHERE `entry`=15352;
\ No newline at end of file diff --git a/sql/updates/world/2011_12_16_00_world_spell_bonus_data.sql b/sql/updates/world/2011_12_16_00_world_spell_bonus_data.sql new file mode 100644 index 00000000000..3250bda4fdb --- /dev/null +++ b/sql/updates/world/2011_12_16_00_world_spell_bonus_data.sql @@ -0,0 +1,5 @@ +-- Bounus coef for Greater Fire Elemental spells +DELETE FROM `spell_bonus_data` WHERE `entry` IN (13376,57984); +INSERT INTO `spell_bonus_data` (`entry`, `direct_bonus`, `dot_bonus`,`ap_bonus`, `ap_dot_bonus`, `comments`) VALUES +(13376,0.032,-1,-1,-1,'Greater Fire Elemental - Fire Shield'), +(57984,0.4289,-1,-1,-1,'Greater Fire Elemental - Fire Blast');
\ No newline at end of file diff --git a/sql/updates/world/2011_12_17_00_world_creature.sql b/sql/updates/world/2011_12_17_00_world_creature.sql new file mode 100644 index 00000000000..0126561da01 --- /dev/null +++ b/sql/updates/world/2011_12_17_00_world_creature.sql @@ -0,0 +1,974 @@ +-- ------------- +-- UBRS FIXUP -- +-- ------------- +SET @GUID := 137817; -- 289 required +DELETE FROM `creature` WHERE `map`=229 AND `id` IN (9098,9257,9258,9416,9045,9097,10339,9096,10083,10366,10371,10372,10680,10681,9816,9817,9818,9819,10317,10316,10740,16048,10430,10509,10363,10429,10318,10319,10742,10762,10899,10683,10264,10162); +DELETE FROM `creature` WHERE `guid` BETWEEN @GUID AND @GUID+288; +INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES +-- Pyroguard Emberseer +(@GUID,9816,229,1,1,0,0,144.438171,-258.034149,96.40662,4.677482,1000000,0,0,1,0,0), +-- Rage Talon Dragonspawn +(@GUID+1,9096,229,1,1,0,0,100.742607,-246.0053,106.518906,2.65290046,7200,0,0,1,0,0), +(@GUID+2,9096,229,1,1,0,0,101.678032,-237.6665,106.518906,3.54301834,7200,0,0,1,0,0), +(@GUID+3,9096,229,1,1,0,0,102.156441,-253.07338,106.5189,4.72320032,7200,0,0,1,0,0), +(@GUID+4,9096,229,1,1,0,0,103.098129,-364.3394,116.925743,5.86430645,7200,0,0,1,0,0), +(@GUID+5,9096,229,1,1,0,0,105.175392,-327.1109,106.518906,2.53072739,7200,0,0,1,0,0), +(@GUID+6,9096,229,1,1,0,0,128.020447,-315.29,111.029076,2.984513,7200,0,0,1,0,0), +(@GUID+7,9096,229,1,1,0,0,136.037247,-338.207458,111.043625,0.6457718,7200,0,0,1,0,0), +(@GUID+8,9096,229,1,1,0,0,136.2818,-308.682281,111.073242,0.279252678,7200,0,0,1,0,0), +(@GUID+9,9096,229,1,1,0,0,136.424042,-316.1892,111.063728,0.0174532924,7200,0,0,1,0,0), +(@GUID+10,9096,229,1,1,0,0,138.315643,-395.08606,122.058578,4.764749,7200,0,0,1,0,0), +(@GUID+11,9096,229,1,1,0,0,142.593109,-342.274048,111.040665,1.39626336,7200,0,0,1,0,0), +(@GUID+12,9096,229,1,1,0,0,147.042328,-312.391449,71.03966,5.550147,7200,10,0,1,0,1), +(@GUID+13,9096,229,1,1,0,0,153.89537,-332.387146,70.95632,3.14905024,7200,0,0,1,0,0), +(@GUID+14,9096,229,1,1,0,0,161.09,-316.201721,70.95632,1.913126,7200,10,0,1,0,1), +(@GUID+15,9096,229,1,1,0,0,165.520889,-394.921417,122.058556,4.677482,7200,0,0,1,0,0), +(@GUID+16,9096,229,1,1,0,0,167.774048,-338.655426,111.0341,2.79252672,7200,0,0,1,0,0), +(@GUID+17,9096,229,1,1,0,0,193.480331,-314.875244,77.0207748,5.375614,7200,10,0,1,0,1), +(@GUID+18,9096,229,1,1,0,0,195.986176,-291.863159,76.93301,2.74624467,7200,10,0,1,0,1), +(@GUID+19,9096,229,1,1,0,0,92.24497,-427.635468,111.006088,3.159046,7200,0,0,1,0,0), +(@GUID+20,9096,229,1,1,0,0,94.5186539,-256.702728,91.53693,6.265732,7200,0,0,1,0,0), +(@GUID+21,9096,229,1,1,0,0,96.17891,-268.540375,91.53113,1.37881,7200,0,0,1,0,0), +(@GUID+22,9096,229,1,1,0,0,97.91753,-333.680664,106.5189,1.93731546,7200,0,0,1,0,0), +-- Rage Talon Flamescale +(@GUID+23,10083,229,1,1,0,0,102.801758,-332.1205,106.518906,2.21656823,7200,0,0,1,0,0), +(@GUID+24,10083,229,1,1,0,0,141.698181,-394.829071,122.058556,4.86946869,7200,0,0,1,0,0), +(@GUID+25,10083,229,1,1,0,0,151.5985,-312.834961,110.825859,1.583788,7200,0,0,1,0,0), +(@GUID+26,10083,229,1,1,0,0,157.517059,-366.047333,116.844231,6.27482271,7200,0,0,1,0,0), +(@GUID+27,10083,229,1,1,0,0,161.314163,-393.648651,122.058533,4.86946869,7200,0,0,1,0,0), +(@GUID+28,10083,229,1,1,0,0,161.339554,-343.435425,111.039314,1.850049,7200,0,0,1,0,0), +(@GUID+29,10083,229,1,1,0,0,74.99681,-316.2664,91.52034,5.86179638,7200,7,0,1,0,1), +(@GUID+30,10083,229,1,1,0,0,81.0063858,-284.352936,91.53317,5.951573,7200,7,0,1,0,1), +-- Rage Talon Dragon Guard +(@GUID+31,10366,229,1,1,0,0,11.332943,-492.121582,111.022545,0.7330383,7200,0,0,1,0,0), +(@GUID+32,10366,229,1,1,0,0,165.272675,-475.4804,116.842445,0.01255145,7200,0,0,1,0,0), +(@GUID+33,10366,229,1,1,0,0,27.6826859,-426.0668,111.009117,5.480334,7200,0,0,1,0,0), +(@GUID+34,10366,229,1,1,0,0,31.2498379,-497.100922,111.035072,1.27409029,7200,0,0,1,0,0), +(@GUID+35,10366,229,1,1,0,0,39.75237,-426.769226,111.010643,3.96189737,7200,0,0,1,0,0), +(@GUID+36,10366,229,1,1,0,0,43.22777,-449.182983,111.026749,3.85717773,7200,0,0,1,0,0), +(@GUID+37,10366,229,1,1,0,0,8.27626,-487.534119,111.013985,0.436332315,7200,0,0,1,0,0), +(@GUID+38,10366,229,1,1,0,0,92.84775,-489.693024,116.925728,1.58824956,7200,0,0,1,0,0), +-- Goraluk Anvilcrack <Blackhand Legion Armorsmith> +(@GUID+39,10899,229,1,1,0,0,147.684921,-242.757523,111.004608,1.7652961,7200,0,0,1,0,0), +-- Rage Talon Captain +(@GUID+40,10371,229,1,1,0,0,-10.6942663,-350.008,111.026779,0.8552113,7200,0,0,1,0,0), +(@GUID+41,10371,229,1,1,0,0,-16.02218,-263.335266,111.026764,5.70722675,7200,0,0,1,0,0), +(@GUID+42,10371,229,1,1,0,0,20.24981,-263.2449,111.026764,3.651049,7200,0,0,1,0,0), +(@GUID+43,10371,229,1,1,0,0,33.96815,-327.537231,111.026779,4.729842,7200,0,0,1,0,0), +(@GUID+44,10371,229,1,1,0,0,8.802712,-450.5478,111.020157,5.689773,7200,0,0,1,0,0), +-- Rage Talon Fire Tongue +(@GUID+45,10372,229,1,1,0,0,-15.58145,-344.314941,111.026779,0.715585,7200,0,0,1,0,0), +(@GUID+46,10372,229,1,1,0,0,16.30601,-449.322784,111.029114,4.468043,7200,0,0,1,0,0), +(@GUID+47,10372,229,1,1,0,0,21.4282932,-475.194733,111.038452,1.76278257,7200,0,0,1,0,0), +(@GUID+48,10372,229,1,1,0,0,23.7180157,-258.2444,111.030754,3.46037364,7200,0,0,1,0,0), +(@GUID+49,10372,229,1,1,0,0,26.412632,-327.414429,111.026779,4.79965544,7200,0,0,1,0,0), +(@GUID+50,10372,229,1,1,0,0,6.645312,-460.464966,111.016,0.418879032,7200,0,0,1,0,0), +(@GUID+51,10372,229,1,1,0,0,86.68403,-480.173737,116.925743,0.8552113,7200,0,0,1,0,0), +-- Blackhand Summoner <Blackhand Legion> +(@GUID+52,9818,229,1,1,0,0,124.871681,-334.522583,71.04309,4.694936,7200,0,0,1,0,0), +(@GUID+53,9818,229,1,1,0,0,128.321472,-295.045166,71.06125,3.874631,7200,0,0,1,0,0), +(@GUID+54,9818,229,1,1,0,0,130.4315,-340.0683,71.0431061,3.17649913,7200,0,0,1,0,0), +(@GUID+55,9818,229,1,1,0,0,151.102859,-358.37,71.02174,1.20427716,7200,0,0,1,0,0), +(@GUID+56,9818,229,1,1,0,0,156.814621,-283.34024,71.03544,1.98967528,7200,0,0,1,0,0), +(@GUID+57,9818,229,1,1,0,0,162.630127,-243.073456,111.034378,4.32841635,7200,0,0,1,0,0), +(@GUID+58,9818,229,1,1,0,0,170.605957,-362.35318,116.924133,4.86946869,7200,0,0,1,0,0), +(@GUID+59,9818,229,1,1,0,0,179.994781,-365.8944,116.925758,3.19395256,7200,0,0,1,0,0), +(@GUID+60,9818,229,1,1,0,0,188.856033,-258.8772,77.03584,6.07374573,7200,0,0,1,0,0), +(@GUID+61,9818,229,1,1,0,0,212.137329,-339.792267,76.9862747,1.15191734,7200,0,0,1,0,0), +(@GUID+62,9818,229,1,1,0,0,217.200012,-259.563751,82.1870956,6.265732,7200,0,0,1,0,0), +(@GUID+63,9818,229,1,1,0,0,223.7043,-297.484253,77.05145,5.46288061,7200,0,0,1,0,0), +(@GUID+64,9818,229,1,1,0,0,224.405029,-307.493042,77.05062,0.7853982,7200,0,0,1,0,0), +(@GUID+65,9818,229,1,1,0,0,87.17487,-363.085022,117.796295,4.729842,7200,0,0,1,0,0), +(@GUID+66,9818,229,1,1,0,0,90.10163,-419.203979,111.006088,0.994837642,7200,0,0,1,0,0), +-- Blackhand Veteran <Blackhand Legion> +(@GUID+67,9819,229,1,1,0,0,113.70948,-366.072266,116.932022,5.82939959,7200,0,0,1,0,0), +(@GUID+68,9819,229,1,1,0,0,120.166054,-295.048645,71.06183,5.497787,7200,0,0,1,0,0), +(@GUID+69,9819,229,1,1,0,0,121.719147,-301.576538,71.0559845,0.75049156,7200,0,0,1,0,0), +(@GUID+70,9819,229,1,1,0,0,141.709488,-299.4828,111.032074,0.0349065848,7200,0,0,1,0,0), +(@GUID+71,9819,229,1,1,0,0,141.762787,-302.243439,111.031624,0.122173049,7200,0,0,1,0,0), +(@GUID+72,9819,229,1,1,0,0,141.79213,-296.809937,111.031372,6.23082542,7200,0,0,1,0,0), +(@GUID+73,9819,229,1,1,0,0,142.861816,-272.084259,111.026764,6.213372,7200,0,0,1,0,0), +(@GUID+74,9819,229,1,1,0,0,142.902451,-275.0304,111.026955,0.0349065848,7200,0,0,1,0,0), +(@GUID+75,9819,229,1,1,0,0,142.97287,-277.891327,111.027122,0.139626339,7200,0,0,1,0,0), +(@GUID+76,9819,229,1,1,0,0,144.939285,-257.132019,110.919548,5.82939959,7200,0,0,1,0,0), +(@GUID+77,9819,229,1,1,0,0,149.200531,-252.04541,110.907585,1.20427716,7200,0,0,1,0,0), +(@GUID+78,9819,229,1,1,0,0,149.248459,-249.036591,110.907883,4.86946869,7200,0,0,1,0,0), +(@GUID+79,9819,229,1,1,0,0,150.514359,-354.057831,71.0197,5.21853447,7200,0,0,1,0,0), +(@GUID+80,9819,229,1,1,0,0,157.248657,-291.7521,71.0334,1.69296932,7200,0,0,1,0,0), +(@GUID+81,9819,229,1,1,0,0,157.8796,-359.290649,71.0255661,1.53588974,7200,0,0,1,0,0), +(@GUID+82,9819,229,1,1,0,0,159.268585,-245.612747,111.026138,6.23082542,7200,0,0,1,0,0), +(@GUID+83,9819,229,1,1,0,0,161.448456,-317.885559,111.022552,3.17649913,7200,0,0,1,0,0), +(@GUID+84,9819,229,1,1,0,0,161.471252,-314.998138,111.022469,3.19395256,7200,0,0,1,0,0), +(@GUID+85,9819,229,1,1,0,0,161.5384,-320.877258,111.025208,3.12413931,7200,0,0,1,0,0), +(@GUID+86,9819,229,1,1,0,0,168.431061,-288.5739,111.0254,2.91469979,7200,0,0,1,0,0), +(@GUID+87,9819,229,1,1,0,0,168.467117,-285.357452,111.0254,3.159046,7200,0,0,1,0,0), +(@GUID+88,9819,229,1,1,0,0,168.529587,-282.207245,111.0254,3.38593864,7200,0,0,1,0,0), +(@GUID+89,9819,229,1,1,0,0,172.878586,-365.445526,116.925789,2.84488654,7200,0,0,1,0,0), +(@GUID+90,9819,229,1,1,0,0,178.113251,-364.08963,116.925758,4.956735,7200,0,0,1,0,0), +(@GUID+91,9819,229,1,1,0,0,191.3293,-272.009766,77.03062,5.61996031,7200,0,0,1,0,0), +(@GUID+92,9819,229,1,1,0,0,194.615189,-255.948486,77.019455,4.310963,7200,0,0,1,0,0), +(@GUID+93,9819,229,1,1,0,0,195.222046,-271.912567,77.03062,3.78736448,7200,0,0,1,0,0), +(@GUID+94,9819,229,1,1,0,0,212.101151,-336.132416,76.955864,5.096361,7200,0,0,1,0,0), +(@GUID+95,9819,229,1,1,0,0,222.666229,-334.5855,77.01298,3.07177949,7200,0,0,1,0,0), +(@GUID+96,9819,229,1,1,0,0,225.916336,-261.5317,82.1132355,4.103862,7200,0,0,1,0,0), +(@GUID+97,9819,229,1,1,0,0,85.73412,-373.6244,116.925743,0.6806784,7200,0,0,1,0,0), +(@GUID+98,9819,229,1,1,0,0,87.50004,-426.620819,111.006088,5.916666,7200,0,0,1,0,0), +(@GUID+99,9819,229,1,1,0,0,90.02657,-367.4056,117.518463,2.51327419,7200,0,0,1,0,0), +(@GUID+100,9819,229,1,1,0,0,92.1094,-415.1748,111.006096,4.59021568,7200,0,0,1,0,0), +(@GUID+101,9819,229,1,1,0,0,106.9291,-367.275757,116.925743,2.30383468,7200,0,0,1,0,0), +-- Awbee +(@GUID+102,10740,229,1,1,0,0,70.54358,-420.442535,110.846558,0.75049156,7200,0,0,1,0,0), +-- Blackhand Incarcerator <Blackhand Legion> +(@GUID+103,10316,229,1,1,0,0,126.3072,-258.6249,91.637146,0.0349065848,7200,0,0,1,0,0), +(@GUID+104,10316,229,1,1,0,0,126.446983,-276.596771,91.6375656,0.820304751,7200,0,0,1,0,0), +(@GUID+105,10316,229,1,1,0,0,126.507553,-240.895081,91.62151,5.532694,7200,0,0,1,0,0), +(@GUID+106,10316,229,1,1,0,0,144.283234,-240.993958,91.62266,4.729842,7200,0,0,1,0,0), +(@GUID+107,10316,229,1,1,0,0,162.216324,-240.97139,91.68952,3.89208412,7200,0,0,1,0,0), +(@GUID+108,10316,229,1,1,0,0,162.327271,-276.7592,91.69608,2.32128787,7200,0,0,1,0,0), +(@GUID+109,10316,229,1,1,0,0,162.459671,-258.961456,91.61771,3.08923268,7200,0,0,1,0,0), +-- Lord Valthalak Trigger +(@GUID+110,16048,229,1,1,0,0,50.1153679,-534.537354,111.019806,6.161012,7200,0,0,1,0,0), +-- Blackhand Dreadweaver <Blackhand Legion> +(@GUID+111,9817,229,1,1,0,0,119.028313,-340.441254,71.04595,0.0349065848,7200,0,0,1,0,0), +(@GUID+112,9817,229,1,1,0,0,122.051933,-293.15744,71.06183,5.497787,7200,0,0,1,0,0), +(@GUID+113,9817,229,1,1,0,0,125.033432,-346.358124,71.04615,1.60570288,7200,0,0,1,0,0), +(@GUID+114,9817,229,1,1,0,0,154.42865,-289.456,71.02977,6.17846537,7200,0,0,1,0,0), +(@GUID+116,9817,229,1,1,0,0,159.006119,-347.022461,71.01292,0.802851439,7200,0,0,1,0,0), +(@GUID+117,9817,229,1,1,0,0,159.043167,-288.595856,71.03185,3.64773822,7200,0,0,1,0,0), +(@GUID+118,9817,229,1,1,0,0,163.503326,-247.513779,111.025925,2.09439516,7200,0,0,1,0,0), +(@GUID+119,9817,229,1,1,0,0,169.915909,-367.141479,116.925789,1.134464,7200,0,0,1,0,0), +(@GUID+120,9817,229,1,1,0,0,177.830521,-367.561035,116.925758,1.15191734,7200,0,0,1,0,0), +(@GUID+121,9817,229,1,1,0,0,190.633072,-263.9589,77.03324,0.9599311,7200,0,0,1,0,0), +(@GUID+122,9817,229,1,1,0,0,215.519485,-337.73288,76.95243,3.106686,7200,0,0,1,0,0), +(@GUID+123,9817,229,1,1,0,0,221.517853,-258.423828,82.12929,3.04173565,7200,0,0,1,0,0), +(@GUID+124,9817,229,1,1,0,0,225.8605,-266.1465,82.087326,3.30034256,7200,0,0,1,0,0), +(@GUID+125,9817,229,1,1,0,0,232.839737,-297.4911,77.0545654,4.08407,7200,0,0,1,0,0), +(@GUID+126,9817,229,1,1,0,0,234.324112,-306.76416,77.06055,2.443461,7200,0,0,1,0,0), +(@GUID+127,9817,229,1,1,0,0,85.6391449,-366.950134,116.925743,0.802851439,7200,0,0,1,0,0), +(@GUID+128,9817,229,1,1,0,0,93.9203949,-417.965485,111.006088,2.79252672,7200,0,0,1,0,0), +-- Blackhand Thug +(@GUID+129,10762,229,1,1,0,0,71.6325,-421.34613,110.794823,1.74532926,7200,0,0,1,0,0), +(@GUID+130,10762,229,1,1,0,0,71.74594,-419.1056,111.144218,4.694936,7200,0,0,1,0,0), +-- Blackhand Elite <Blackhand Legion> +(@GUID+131,10317,229,1,1,0,0,119.342194,-567.1412,107.25071,5.916666,7200,0,0,1,0,0), +(@GUID+132,10317,229,1,1,0,0,120.0068,-563.2474,107.453323,5.846853,7200,0,0,1,0,0), +(@GUID+133,10317,229,1,1,0,0,144.60112,-299.439117,110.735207,3.08923268,7200,0,0,1,0,0), +(@GUID+134,10317,229,1,1,0,0,146.275345,-275.0636,111.0268,3.106686,7200,0,0,1,0,0), +(@GUID+135,10317,229,1,1,0,0,15.7085686,-269.44873,110.943428,3.70086622,7200,0,0,1,0,0), +(@GUID+136,10317,229,1,1,0,0,158.335342,-317.906342,110.734566,0.0349065848,7200,0,0,1,0,0), +(@GUID+137,10317,229,1,1,0,0,11.4635525,-262.667877,110.943428,3.70086479,7200,0,0,1,0,0), +(@GUID+138,10317,229,1,1,0,0,164.433945,-285.266144,111.025864,0,7200,0,0,1,0,0), +(@GUID+139,10317,229,1,1,0,0,-18.404726,-338.186249,111.026764,0.5934119,7200,0,0,1,0,0), +(@GUID+140,10317,229,1,1,0,0,20.7244225,-468.8023,111.035339,4.834562,7200,0,0,1,0,0), +(@GUID+141,10317,229,1,1,0,0,24.4351749,-268.222015,111.026764,2.830616,7200,0,0,1,0,0), +(@GUID+142,10317,229,1,1,0,0,29.5069962,-385.555267,110.747688,5.42797375,7200,0,0,1,0,0), +(@GUID+143,10317,229,1,1,0,0,-3.292078,-259.9108,111.026764,5.480334,7200,0,0,1,0,0), +(@GUID+144,10317,229,1,1,0,0,30.4171047,-332.906921,111.026779,4.764749,7200,0,0,1,0,0), +(@GUID+145,10317,229,1,1,0,0,35.48675,-492.949921,111.035957,3.054326,7200,0,0,1,0,0), +(@GUID+146,10317,229,1,1,0,0,37.333168,-333.77887,111.026779,4.660029,7200,0,0,1,0,0), +(@GUID+147,10317,229,1,1,0,0,37.9199028,-451.0573,111.028809,0.08726646,7200,0,0,1,0,0), +(@GUID+148,10317,229,1,1,0,0,-5.026564,-352.542572,111.026779,0.9599311,7200,0,0,1,0,0), +(@GUID+149,10317,229,1,1,0,0,97.21676,-476.817535,116.925743,5.23598766,7200,0,0,1,0,0), +-- Lord Victor Nefarius <Lord of Blackrock> +(@GUID+150,10162,229,1,1,0,0,163.168335,-444.165,122.058609,3.12413931,7200,0,0,1,0,0), +-- Warchief Rend Blackhand +(@GUID+151,10429,229,1,1,0,0,159.276138,-443.619049,122.058609,6.265732,7200,0,0,1,0,0), +-- The Beast +(@GUID+152,10430,229,1,1,0,0,124.21048,-563.799438,107.4246,2.75762,7200,0,0,1,0,0), +-- Jed Runewatcher <Blackhand Legion> RARE +(@GUID+153,10509,229,1,1,0,0,165.09407,-341.9633,110.951019,1.588817,7200,0,0,1,0,0), +-- General Drakkisath +(@GUID+154,10363,229,1,1,0,0,36.4508629,-285.993561,111.036224,3.14159274,7200,0,0,1,0,0), +-- Blackhand Assassin <Blackhand Legion> +(@GUID+155,10318,229,1,1,0,0,117.948341,-569.3336,107.13662,5.98647928,7200,0,0,1,0,0), +(@GUID+156,10318,229,1,1,0,0,18.2123585,-471.40033,111.030594,6.17846537,7200,0,0,1,0,0), +(@GUID+157,10318,229,1,1,0,0,23.50665,-470.537872,111.03933,3.56047153,7200,0,0,1,0,0), +(@GUID+158,10318,229,1,1,0,0,31.8534851,-490.6625,111.036209,4.32841635,7200,0,0,1,0,0), +(@GUID+159,10318,229,1,1,0,0,38.164032,-385.480133,110.797859,4.18879032,7200,0,0,1,0,0), +(@GUID+160,10318,229,1,1,0,0,40.42038,-453.613342,111.024033,1.34390354,7200,0,0,1,0,0), +(@GUID+161,10318,229,1,1,0,0,-6.880112,-252.370468,111.026764,5.42797375,7200,0,0,1,0,0), +(@GUID+162,10318,229,1,1,0,0,71.493454,-474.6056,115.778786,6.27848864,7200,0,0,1,0,0), +(@GUID+163,10318,229,1,1,0,0,99.72865,-479.4235,116.925743,2.75762,7200,0,0,1,0,0), +-- Blackhand Iron Guard <Blackhand Legion> +(@GUID+164,10319,229,1,1,0,0,10.1526937,-457.006958,111.020668,4.502949,7200,0,0,1,0,0), +(@GUID+165,10319,229,1,1,0,0,11.7395382,-460.466461,111.021942,2.80998015,7200,0,0,1,0,0), +(@GUID+166,10319,229,1,1,0,0,124.05793,-470.958618,116.925743,3.85717773,7200,0,0,1,0,0), +(@GUID+167,10319,229,1,1,0,0,124.094147,-478.257874,116.925743,2.37364769,7200,0,0,1,0,0), +(@GUID+168,10319,229,1,1,0,0,-13.7761574,-274.925873,111.026764,5.899213,7200,0,0,1,0,0), +(@GUID+169,10319,229,1,1,0,0,137.4377,-458.1639,121.873993,1.61019349,7200,0,0,1,0,0), +(@GUID+170,10319,229,1,1,0,0,172.060364,-470.11795,116.907768,3.38593864,7200,0,0,1,0,0), +(@GUID+171,10319,229,1,1,0,0,172.2113,-479.1257,116.922729,2.77507353,7200,0,0,1,0,0), +(@GUID+172,10319,229,1,1,0,0,25.9503689,-431.148,111.036423,3.455752,7200,0,0,1,0,0), +(@GUID+173,10319,229,1,1,0,0,27.20901,-487.106232,110.948944,5.92132044,7200,0,0,1,0,0), +(@GUID+174,10319,229,1,1,0,0,30.4782486,-381.1838,110.765739,4.97418833,7200,0,0,1,0,0), +(@GUID+175,10319,229,1,1,0,0,32.98562,-441.197968,110.947975,4.68552542,7200,0,0,1,0,0), +(@GUID+177,10319,229,1,1,0,0,40.66904,-330.527466,111.026779,4.62512255,7200,0,0,1,0,0), +(@GUID+178,10319,229,1,1,0,0,42.51416,-431.718781,111.029396,5.934119,7200,0,0,1,0,0), +(@GUID+179,10319,229,1,1,0,0,-8.141677,-341.8935,111.026779,0.7679449,7200,0,0,1,0,0), +(@GUID+180,10319,229,1,1,0,0,-9.265498,-265.802856,111.026764,5.67232,7200,0,0,1,0,0), +-- Scarshield Acolyte <Scarshield Legion> +(@GUID+181,9045,229,1,1,0,0,107.023872,-306.314117,54.00366,4.22369671,7200,0,0,1,0,0), +(@GUID+182,9045,229,1,1,0,0,107.412292,-329.5834,54.003273,5.20108128,7200,0,0,1,0,0), +(@GUID+183,9045,229,1,1,0,0,14.1215773,-259.2284,65.43308,2.3561945,7200,0,0,1,0,0), +(@GUID+184,9045,229,1,1,0,0,18.0154171,-276.733521,65.375824,1.0306716,7200,4,0,1,0,1), +(@GUID+185,9045,229,1,1,0,0,46.5601959,-453.7283,26.3562088,2.40855432,7200,0,0,1,0,0), +(@GUID+186,9045,229,1,1,0,0,48.0624542,-257.406921,65.45917,0.418879032,7200,0,0,1,0,0), +(@GUID+187,9045,229,1,1,0,0,5.471476,-520.6829,29.48178,3.4382987,7200,0,0,1,0,0), +(@GUID+188,9045,229,1,1,0,0,52.8444061,-312.8106,54.00366,0.575958669,7200,0,0,1,0,0), +(@GUID+189,9045,229,1,1,0,0,69.2313843,-439.3284,41.19126,3.159046,7200,0,0,1,0,0), +(@GUID+190,9045,229,1,1,0,0,75.6738052,-319.729126,55.8668,1.71042264,7200,5,0,1,0,1), +(@GUID+191,9045,229,1,1,0,0,79.86551,-353.9204,60.78536,0.87266463,7200,4,0,1,0,1), +-- Scarshield Legionnaire <Scarshield Legion> +(@GUID+192,9097,229,1,1,0,0,-1.888463,-585.6428,29.2742,2.49582076,7200,0,0,1,0,0), +(@GUID+193,9097,229,1,1,0,0,102.429573,-314.697754,54.00119,1.06465089,7200,0,0,1,0,0), +(@GUID+194,9097,229,1,1,0,0,107.2788,-324.246582,54.00367,3.50811172,7200,0,0,1,0,0), +(@GUID+195,9097,229,1,1,0,0,107.6331,-311.3865,54.00366,2.67035365,7200,0,0,1,0,0), +(@GUID+196,9097,229,1,1,0,0,12.8929729,-329.7429,48.8472366,3.159046,7200,0,0,1,0,0), +(@GUID+197,9097,229,1,1,0,0,12.9406261,-279.607941,65.45197,5.969026,7200,5,0,1,0,1), +(@GUID+198,9097,229,1,1,0,0,18.7627659,-284.2841,65.45917,2.12930179,7200,5,0,1,0,1), +(@GUID+199,9097,229,1,1,0,0,-2.931882,-524.657837,29.27372,0.5934119,7200,0,0,1,0,0), +(@GUID+200,9097,229,1,1,0,0,-28.38935,-563.0387,29.2742,2.86234,7200,0,0,1,0,0), +(@GUID+201,9097,229,1,1,0,0,30.9195728,-399.682678,48.7868233,3.00196624,7200,0,0,1,0,0), +(@GUID+202,9097,229,1,1,0,0,-31.5340881,-564.217163,29.2742,1.16937053,7200,0,0,1,0,0), +(@GUID+203,9097,229,1,1,0,0,-34.0393829,-585.6407,29.2742,6.19591856,7200,0,0,1,0,0), +(@GUID+204,9097,229,1,1,0,0,-37.9832726,-585.003052,29.2742,1.50098312,7200,0,0,1,0,0), +(@GUID+205,9097,229,1,1,0,0,43.5522041,-274.521637,65.45917,6.108652,7200,4,0,1,0,1), +(@GUID+206,9097,229,1,1,0,0,45.7239571,-449.172668,27.6064148,3.700098,7200,0,0,1,0,0), +(@GUID+207,9097,229,1,1,0,0,45.8465,-279.354,65.3547,1.03702569,7200,4,0,1,0,1), +(@GUID+208,9097,229,1,1,0,0,51.89088,-287.3514,65.45917,3.03687286,7200,0,0,1,0,0), +(@GUID+209,9097,229,1,1,0,0,54.68561,-325.345245,54.00365,1.39626336,7200,0,0,1,0,0), +(@GUID+210,9097,229,1,1,0,0,55.91653,-459.1569,24.6387119,4.74729538,7200,0,0,1,0,0), +(@GUID+211,9097,229,1,1,0,0,57.3262329,-569.6453,30.678772,0.191986218,7200,0,0,1,0,0), +(@GUID+212,9097,229,1,1,0,0,57.5051956,-314.922241,54.0019226,2.268928,7200,0,0,1,0,0), +(@GUID+213,9097,229,1,1,0,0,57.8382835,-310.131531,54.00148,3.577925,7200,0,0,1,0,0), +(@GUID+214,9097,229,1,1,0,0,59.3199,-507.905,29.2652359,6.05629253,7200,0,0,1,0,0), +(@GUID+215,9097,229,1,1,0,0,6.909,-271.977539,65.41073,0.209439516,7200,0,0,1,0,0), +(@GUID+216,9097,229,1,1,0,0,61.8540535,-560.6797,30.6882877,3.49065852,7200,0,0,1,0,0), +(@GUID+217,9097,229,1,1,0,0,63.39378,-505.4025,29.2684975,4.57276249,7200,0,0,1,0,0), +(@GUID+218,9097,229,1,1,0,0,66.23844,-274.531647,60.73464,6.23082542,7200,0,0,1,0,0), +(@GUID+219,9097,229,1,1,0,0,66.43544,-435.9842,42.10328,4.32841635,7200,0,0,1,0,0), +(@GUID+220,9097,229,1,1,0,0,69.6397,-278.3183,60.67765,0.296705961,7200,0,0,1,0,0), +(@GUID+221,9097,229,1,1,0,0,-7.64752,-586.2085,29.2742,0.9250245,7200,0,0,1,0,0), +(@GUID+222,9097,229,1,1,0,0,71.6458054,-586.649231,30.686348,6.265732,7200,0,0,1,0,0), +(@GUID+223,9097,229,1,1,0,0,79.0274353,-287.054626,60.77396,1.98967528,7200,5,0,1,0,1), +(@GUID+224,9097,229,1,1,0,0,8.43384,-253.37677,65.4404,5.46288061,7200,0,0,1,0,0), +(@GUID+225,9097,229,1,1,0,0,82.27611,-580.576843,30.6900673,4.118977,7200,0,0,1,0,0), +(@GUID+226,9097,229,1,1,0,0,82.37819,-315.5727,55.78426,2.65947676,7200,5,0,1,0,1), +(@GUID+227,9097,229,1,1,0,0,85.21238,-357.96698,60.78536,6.05629253,7200,4,0,1,0,1), +(@GUID+228,9097,229,1,1,0,0,86.74077,-283.049225,60.610733,2.49932933,7200,0,0,1,0,0), +(@GUID+229,9097,229,1,1,0,0,87.000885,-316.9617,65.48379,3.38828468,7200,0,0,1,0,0), +(@GUID+230,9097,229,1,1,0,0,87.48928,-318.901154,65.49227,3.38828754,7200,0,0,1,0,0), +(@GUID+231,9097,229,1,1,0,0,9.058154,-257.7314,65.41364,0.6981317,7200,0,0,1,0,0), +(@GUID+232,9097,229,1,1,0,0,9.251252,-332.5572,48.7950478,1.23918378,7200,0,0,1,0,0), +(@GUID+233,9097,229,1,1,0,0,90.2249146,-280.722229,60.6818237,4.834562,7200,0,0,1,0,0), +(@GUID+234,9097,229,1,1,0,0,91.53687,-361.906,60.7020264,1.54308629,7200,4,0,1,0,1), +(@GUID+235,9097,229,1,1,0,0,94.65439,-275.0468,60.7526,3.14159274,7200,0,0,1,0,0), +(@GUID+236,9097,229,1,1,0,0,-52.07244,-586.2182,29.2742,2.96705961,7200,0,0,1,0,0), +(@GUID+237,9097,229,1,1,0,0,-55.7421837,-581.55426,29.2742,4.24115,7200,0,0,1,0,0), +(@GUID+238,9097,229,1,1,0,0,-63.33937,-572.386353,29.2742,0.122173049,7200,0,0,1,0,0), +(@GUID+239,9097,229,1,1,0,0,-67.22875,-535.405151,29.2742,3.874631,7200,0,0,1,0,0), +(@GUID+240,9097,229,1,1,0,0,-70.01909,-575.8177,29.2742,1.16937053,7200,0,0,1,0,0), +-- Scarshield Spellbinder <Scarshield Legion> +(@GUID+241,9098,229,1,1,0,0,-1.331627,-519.548645,29.3309135,5.42797375,7200,0,0,1,0,0), +(@GUID+242,9098,229,1,1,0,0,102.172279,-308.9317,54.0021477,5.916666,7200,0,0,1,0,0), +(@GUID+243,9098,229,1,1,0,0,105.506432,-332.577332,54.0027466,6.23082542,7200,0,0,1,0,0), +(@GUID+244,9098,229,1,1,0,0,14.2493792,-254.139786,65.4354858,3.68264461,7200,0,0,1,0,0), +(@GUID+245,9098,229,1,1,0,0,-2.807793,-580.5389,29.2742,3.94444418,7200,0,0,1,0,0), +(@GUID+246,9098,229,1,1,0,0,29.0991611,-396.495331,48.80111,4.537856,7200,0,0,1,0,0), +(@GUID+247,9098,229,1,1,0,0,-31.529623,-559.1773,29.2742,5.480334,7200,0,0,1,0,0), +(@GUID+248,9098,229,1,1,0,0,40.8953743,-448.450134,27.932621,5.497787,7200,0,0,1,0,0), +(@GUID+249,9098,229,1,1,0,0,47.6854668,-270.914276,65.3638,6.241553,7200,4,0,1,0,1), +(@GUID+250,9098,229,1,1,0,0,52.1842651,-307.34,54.0018921,5.253441,7200,0,0,1,0,0), +(@GUID+251,9098,229,1,1,0,0,52.41355,-255.366913,65.45917,3.63028479,7200,0,0,1,0,0), +(@GUID+252,9098,229,1,1,0,0,54.9745064,-327.755585,54.00365,1.41371667,7200,0,0,1,0,0), +(@GUID+253,9098,229,1,1,0,0,55.53388,-464.8595,24.94574,1.4486233,7200,0,0,1,0,0), +(@GUID+254,9098,229,1,1,0,0,57.2190132,-562.799744,30.6716766,0.418879032,7200,0,0,1,0,0), +(@GUID+255,9098,229,1,1,0,0,65.42762,-510.3604,29.3167419,2.565634,7200,0,0,1,0,0), +(@GUID+256,9098,229,1,1,0,0,67.43828,-443.5344,40.726696,2.09439516,7200,0,0,1,0,0), +(@GUID+257,9098,229,1,1,0,0,8.843101,-326.523132,48.8573074,5.113815,7200,0,0,1,0,0), +(@GUID+258,9098,229,1,1,0,0,80.25544,-584.6707,30.6894226,1.2566371,7200,0,0,1,0,0), +(@GUID+259,9098,229,1,1,0,0,81.61091,-325.340729,55.8671455,1.79768908,7200,6,0,1,0,1), +(@GUID+260,9098,229,1,1,0,0,90.11126,-354.347534,60.78536,4.485496,7200,4,0,1,0,1), +-- Scarshield Worg <Scarshield Legion> +(@GUID+261,9416,229,1,1,0,0,15.70567,-319.694763,48.9296379,4.81710863,7200,0,0,1,0,0), +(@GUID+262,9416,229,1,1,0,0,21.6263542,-319.307526,48.921833,4.59021568,7200,0,0,1,0,0), +(@GUID+263,9416,229,1,1,0,0,39.9757576,-401.308,48.73395,1.37881,7200,0,0,1,0,0), +(@GUID+264,9416,229,1,1,0,0,-43.9925423,-560.761658,29.2742,5.77704,7200,0,0,1,0,0), +(@GUID+265,9416,229,1,1,0,0,44.2465363,-401.749878,48.8481827,1.41371667,7200,0,0,1,0,0), +(@GUID+266,9416,229,1,1,0,0,-44.5054626,-555.940247,29.2742,5.44542742,7200,0,0,1,0,0), +(@GUID+267,9416,229,1,1,0,0,45.85862,-503.317871,29.2189922,0.628318548,7200,0,0,1,0,0), +(@GUID+268,9416,229,1,1,0,0,48.7350845,-507.5874,29.2278786,0.802851439,7200,0,0,1,0,0), +(@GUID+269,9416,229,1,1,0,0,54.7811,-477.6601,26.7370472,2.51327419,7200,0,0,1,0,0), +(@GUID+270,9416,229,1,1,0,0,57.44511,-472.058868,25.8572731,2.740167,7200,0,0,1,0,0), +(@GUID+271,9416,229,1,1,0,0,-62.07272,-550.186646,29.2742,0.9075712,7200,0,0,1,0,0), +(@GUID+273,9416,229,1,1,0,0,-65.6472,-544.931946,29.2742,0.575958669,7200,0,0,1,0,0), +-- Scarshield Raider <Scarshield Legion> +(@GUID+274,9258,229,1,1,0,0,18.6335163,-319.563538,48.92536,4.694936,7200,0,0,1,0,0), +(@GUID+275,9258,229,1,1,0,0,42.2404366,-400.899567,48.78902,1.39626336,7200,0,0,1,0,0), +(@GUID+276,9258,229,1,1,0,0,-43.1253738,-558.9627,29.2742,5.61996031,7200,0,0,1,0,0), +(@GUID+277,9258,229,1,1,0,0,48.0036926,-504.871857,29.22562,0.715585,7200,0,0,1,0,0), +(@GUID+278,9258,229,1,1,0,0,55.2906952,-474.477264,26.0807571,2.61799383,7200,0,0,1,0,0), +(@GUID+279,9258,229,1,1,0,0,-62.76482,-546.4872,29.2742,0.75049156,7200,0,0,1,0,0), +-- Scarshield Warlock <Scarshield Legion> +(@GUID+280,9257,229,1,1,0,0,26.0838318,-398.5821,48.8247757,6.07374573,7200,0,0,1,0,0), +(@GUID+281,9257,229,1,1,0,0,3.1376,-524.950745,29.456665,2.23402143,7200,0,0,1,0,0), +(@GUID+282,9257,229,1,1,0,0,41.2527657,-453.779816,26.4869156,1.012291,7200,0,0,1,0,0), +(@GUID+283,9257,229,1,1,0,0,60.2924347,-460.7934,24.84539,3.2986722,7200,0,0,1,0,0), +(@GUID+284,9257,229,1,1,0,0,62.5478935,-437.094635,42.1535568,5.532694,7200,0,0,1,0,0), +(@GUID+285,9257,229,1,1,0,0,62.9071541,-569.002136,30.6996365,3.106686,7200,0,0,1,0,0), +(@GUID+286,9257,229,1,1,0,0,75.31803,-587.21405,30.68769,2.86234,7200,0,0,1,0,0), +(@GUID+287,9257,229,1,1,0,0,-8.240628,-580.9951,29.2742,5.67232,7200,0,0,1,0,0), +(@GUID+288,9257,229,1,1,0,0,-56.70842,-586.1366,29.2742,1.2915436,7200,0,0,1,0,0); + +-- Add sitting to some Scarshield Legionnaires +DELETE FROM `creature_addon` WHERE `guid` IN (209318,209333,209315,209337,209308,209312,209331,209320,209335); +INSERT INTO `creature_addon` (`guid`,`bytes1`,`bytes2`) VALUES +(209318,1,1),(209333,1,1),(209315,1,1),(209337,1,1),(209308,1,1),(209312,1,1),(209331,1,1),(209320,1,1),(209335,1,1); + +-- Pathing for Blackhand Dreadweaver Entry: 9817 +SET @NPC := @GUID+116; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=156.027,`position_y`=-256.98,`position_z`=110.873 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`) VALUES (@NPC,@PATH,1,0); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,156.655,-261.057,110.911,0,0,0,100,0), +(@PATH,2,156.697,-270.709,110.945,0,0,0,100,0), +(@PATH,3,157.437,-283.381,110.653,0,0,0,100,0), +(@PATH,4,156.721,-302.091,110.655,0,0,0,100,0), +(@PATH,5,155.393,-316.954,110.658,0,0,0,100,0), +(@PATH,6,145.795,-316.889,110.658,0,0,0,100,0), +(@PATH,7,138.546,-312.556,110.971,0,0,0,100,0), +(@PATH,8,128.11,-312.561,110.948,0,0,0,100,0), +(@PATH,9,113.444,-312.323,106.436,0,0,0,100,0), +(@PATH,10,107.291,-311.159,106.436,0,0,0,100,0), +(@PATH,11,107.143,-305.034,106.436,0,0,0,100,0), +(@PATH,12,107.968,-294.352,106.436,0,0,0,100,0), +(@PATH,13,108.13,-273.961,106.436,0,0,0,100,0), +(@PATH,14,108.325,-262.696,106.436,0,0,0,100,0), +(@PATH,15,113.576,-260.461,106.436,0,0,0,100,0), +(@PATH,16,119.512,-259.629,108.912,0,0,0,100,0), +(@PATH,17,126.887,-258.807,110.95,0,0,0,100,0), +(@PATH,18,134.264,-256.577,110.872,0,0,0,100,0), +(@PATH,19,142.107,-253.858,110.808,0,0,0,100,0), +(@PATH,20,149.232,-254.785,110.835,0,0,0,100,0), +(@PATH,21,156.027,-256.98,110.873,0,0,0,100,0); + +-- Pathing for Rage Talon Dragonspawn Entry: 9096 +SET @NPC := @GUID+13; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=141.415,`position_y`=-328.32,`position_z`=70.9563 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`) VALUES (@NPC,@PATH,1,0); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,137.036,-318.309,70.9563,0,0,0,100,0), +(@PATH,2,139.625,-311.595,70.9563,0,0,0,100,0), +(@PATH,3,145.022,-306.612,70.9563,0,0,0,100,0), +(@PATH,4,155.634,-307.226,70.9563,0,0,0,100,0), +(@PATH,5,165.665,-309.29,70.9563,0,0,0,100,0), +(@PATH,6,179.918,-308.349,75.0044,0,0,0,100,0), +(@PATH,7,186.484,-307.375,76.8804,0,0,0,100,0), +(@PATH,8,190.417,-303.615,76.8863,0,0,0,100,0), +(@PATH,9,190,-295.833,76.9324,0,0,0,100,0), +(@PATH,10,192.748,-284.944,76.9366,0,0,0,100,0), +(@PATH,11,197.221,-281.635,76.9372,0,0,0,100,0), +(@PATH,12,205.403,-280.035,76.9363,0,0,0,100,0), +(@PATH,13,206.769,-288.047,76.9327,0,0,0,100,0), +(@PATH,14,206.049,-300.881,76.9044,0,0,0,100,0), +(@PATH,15,203.805,-308.685,76.8987,0,0,0,100,0), +(@PATH,16,200.091,-314.903,76.892,0,0,0,100,0), +(@PATH,17,196.037,-321.532,76.8849,0,0,0,100,0), +(@PATH,18,187.264,-325.25,76.8738,0,0,0,100,0), +(@PATH,19,172.508,-330.708,71.6636,0,0,0,100,0), +(@PATH,20,157.819,-330.472,70.9563,0,0,0,100,0), +(@PATH,21,151.347,-332.406,70.9563,0,0,0,100,0), +(@PATH,22,141.415,-328.32,70.9563,0,0,0,100,0); + +-- Pathing for Rage Talon Dragonspawn Entry: 9096 +SET @NPC := @GUID+3; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=102.111,`position_y`=-255.036,`position_z`=106.436 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`) VALUES (@NPC,@PATH,1,0); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,102.492,-284.08,106.436,0,0,0,100,0), +(@PATH,2,103.388,-312.501,106.436,0,0,0,100,0), +(@PATH,3,102.492,-284.08,106.436,0,0,0,100,0), +(@PATH,4,102.111,-255.036,106.436,0,0,0,100,0); + +-- Pathing for Rage Talon Flamescale Entry: 10083 +SET @NPC := @GUID+25; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=151.43,`position_y`=-299.848,`position_z`=110.655 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`) VALUES (@NPC,@PATH,1,0); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,151.483,-266.668,110.941,0,0,0,100,0), +(@PATH,2,151.43,-299.848,110.655,0,0,0,100,0), +(@PATH,3,151.826,-337.478,110.948,0,0,0,100,0), +(@PATH,4,151.43,-299.848,110.655,0,0,0,100,0); + +-- Pathing for Rage Talon Flamescale Entry: 10083 +SET @NPC := @GUID+26; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=159.69,`position_y`=-366.065,`position_z`=116.844 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`) VALUES (@NPC,@PATH,1,0); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,164.673,-366.137,116.844,0,0,0,100,0), +(@PATH,2,159.69,-366.065,116.844,0,0,0,100,0), +(@PATH,3,134.314,-365.853,116.844,0,0,0,100,0), +(@PATH,4,113.681,-366.227,116.844,0,0,0,100,0), +(@PATH,5,134.314,-365.853,116.844,0,0,0,100,0), +(@PATH,6,159.69,-366.065,116.844,0,0,0,100,0); + +-- Pathing for Blackhand Veteran Entry: 9819 +SET @NPC := @GUID+77; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=151.986,`position_y`=-343.381,`position_z`=110.952 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`) VALUES (@NPC,@PATH,1,0); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,156.734,-340.574,110.949,0,0,0,100,0), +(@PATH,2,161.285,-330.085,110.941,0,0,0,100,0), +(@PATH,3,164.349,-321.437,110.935,0,0,0,100,0), +(@PATH,4,164.066,-307.895,110.926,0,0,0,100,0), +(@PATH,5,161.931,-295.254,110.937,0,0,0,100,0), +(@PATH,6,161.54,-286.843,110.94,0,0,0,100,0), +(@PATH,7,161.626,-276.16,110.942,0,0,0,100,0), +(@PATH,8,162.619,-260.48,110.922,0,0,0,100,0), +(@PATH,9,160.883,-251.074,110.911,0,0,0,100,0), +(@PATH,10,153.333,-254.239,110.841,0,0,0,100,0), +(@PATH,11,147.933,-256.874,110.85,0,0,0,100,0), +(@PATH,12,144.41,-258.089,110.852,0,0,0,100,0), +(@PATH,13,142.226,-262.721,110.888,0,0,0,100,0), +(@PATH,14,139.325,-272.981,110.928,0,0,0,100,0), +(@PATH,15,139.064,-292.411,110.964,0,0,0,100,0), +(@PATH,16,138.366,-304.562,110.976,0,0,0,100,0), +(@PATH,17,140.202,-318.19,110.956,0,0,0,100,0), +(@PATH,18,141.56,-328.348,110.948,0,0,0,100,0), +(@PATH,19,145.867,-339.175,110.95,0,0,0,100,0), +(@PATH,20,151.986,-343.381,110.952,0,0,0,100,0); + +-- Pathing for Blackhand Veteran Entry: 9819 +SET @NPC := @GUID+68; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=137.681,`position_y`=-374.135,`position_z`=116.807 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`) VALUES (@NPC,@PATH,1,0); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,137.932,-365.946,116.844,0,0,0,100,0), +(@PATH,2,119.13,-366.058,116.848,0,0,0,100,0), +(@PATH,3,137.932,-365.946,116.844,0,0,0,100,0), +(@PATH,4,137.681,-374.135,116.807,0,0,0,100,0), +(@PATH,5,138.003,-383.829,121.975,0,0,0,100,0), +(@PATH,6,137.621,-374.032,116.807,0,0,0,100,0), +(@PATH,7,137.28,-358.897,116.838,0,0,0,100,0), +(@PATH,8,138.01,-349.646,111.285,0,0,0,100,0), +(@PATH,9,138.504,-339.926,110.965,0,0,0,100,0), +(@PATH,10,138.055,-349.128,110.97,0,0,0,100,0), +(@PATH,11,137.272,-358.828,116.838,0,0,0,100,0), +(@PATH,12,137.975,-366.027,116.844,0,0,0,100,0), +(@PATH,13,151.988,-365.319,116.844,0,0,0,100,0), +(@PATH,14,168.97,-365.253,116.844,0,0,0,100,0), +(@PATH,15,151.988,-365.319,116.844,0,0,0,100,0), +(@PATH,16,137.975,-366.027,116.844,0,0,0,100,0), +(@PATH,17,137.263,-358.934,116.838,0,0,0,100,0), +(@PATH,18,138.048,-349.209,110.971,0,0,0,100,0), +(@PATH,19,138.504,-339.926,110.965,0,0,0,100,0), +(@PATH,20,138.01,-349.646,111.285,0,0,0,100,0), +(@PATH,21,137.286,-358.828,116.838,0,0,0,100,0), +(@PATH,22,137.621,-374.032,116.807,0,0,0,100,0), +(@PATH,23,138.003,-383.829,121.975,0,0,0,100,0), +(@PATH,24,137.681,-374.135,116.807,0,0,0,100,0); + +-- Pathing for Rage Talon Dragon Guard Entry: 10366 +SET @NPC := @GUID+32; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=137.109,`position_y`=-474.652,`position_z`=116.842 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`) VALUES (@NPC,@PATH,1,0); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,150.917,-475.661,116.826,0,0,0,100,0), +(@PATH,2,165.273,-475.48,116.842,0,0,0,100,0), +(@PATH,3,150.917,-475.661,116.826,0,0,0,100,0), +(@PATH,4,137.109,-474.652,116.842,0,0,0,100,0), +(@PATH,5,120.161,-474.673,116.842,0,0,0,100,0), +(@PATH,6,106.258,-474.643,116.842,0,0,0,100,0), +(@PATH,7,94.7496,-473.079,116.842,0,0,0,100,0), +(@PATH,8,83.6851,-474.242,116.842,0,0,0,100,0), +(@PATH,9,77.1173,-474.496,116.842,0,0,0,100,0), +(@PATH,10,65.0976,-474.578,113.951,0,0,0,100,0), +(@PATH,11,51.9036,-474.688,110.923,0,0,0,100,0), +(@PATH,12,64.8587,-474.58,113.951,0,0,0,100,0), +(@PATH,13,77.1173,-474.496,116.842,0,0,0,100,0), +(@PATH,14,83.4094,-474.271,116.842,0,0,0,100,0), +(@PATH,15,94.7496,-473.079,116.842,0,0,0,100,0), +(@PATH,16,106.258,-474.643,116.842,0,0,0,100,0), +(@PATH,17,120.161,-474.673,116.842,0,0,0,100,0), +(@PATH,18,137.109,-474.652,116.842,0,0,0,100,0); + +-- Pathing for Jed Runewatcher Entry: 10509 "RARE" +SET @NPC := @GUID+153; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=165.094,`position_y`=-341.963,`position_z`=110.951 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`) VALUES (@NPC,@PATH,1,0); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,143.081,-332.039,110.946,0,0,0,100,0), +(@PATH,2,137.568,-346.437,110.972,0,0,0,100,0), +(@PATH,3,137.582,-349.249,110.999,0,0,0,100,0), +(@PATH,4,137.404,-357.640,116.838,0,0,0,100,0), +(@PATH,5,137.005,-366.262,116.844,0,0,0,100,0), +(@PATH,6,137.173,-374.983,116.807,0,0,0,100,0), +(@PATH,7,137.252,-383.108,121.975,0,0,0,100,0), +(@PATH,8,137.299,-392.334,121.975,0,0,0,100,0), +(@PATH,9,151.393,-392.988,121.975,0,0,0,100,0), +(@PATH,10,165.537,-392.823,121.975,0,0,0,100,0), +(@PATH,11,165.440,-383.058,121.975,0,0,0,100,0), +(@PATH,12,165.651,-374.907,116.807,0,0,0,100,0), +(@PATH,13,165.556,-367.59,116.845,0,0,0,100,0), +(@PATH,14,165.415,-357.528,116.837,0,0,0,100,0), +(@PATH,15,165.545,-348.847,110.969,0,0,0,100,0), +(@PATH,16,165.094,-341.963,110.951,0,0,0,100,0), +(@PATH,17,160.784,-330.969,110.941,0,0,0,100,0), +(@PATH,18,160.191,-309.153,110.656,0,0,0,100,0), +(@PATH,19,160.079,-280.562,110.652,0,0,0,100,0), +(@PATH,20,144.032,-280.615,110.653,0,0,0,100,0), +(@PATH,21,142.987,-312.006,110.658,0,0,0,100,0); + +-- Pathing for Blackhand Assassin Entry: 10318 +SET @NPC := @GUID+173; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=70.90186,`position_y`=-474.6028,`position_z`=115.4964 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '22766'); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,83.54216,-474.6622,116.8424,0,0,0,100,0), +(@PATH,2,93.11698,-476.8058,116.8424,0,0,0,100,0), +(@PATH,3,93.16169,-492.36,116.8424,0,0,0,100,0), +(@PATH,4,93.11698,-476.8058,116.8424,0,0,0,100,0), +(@PATH,5,83.68505,-474.6942,116.8424,0,0,0,100,0), +(@PATH,6,70.90186,-474.6028,115.4964,0,0,0,100,0), +(@PATH,7,60.60706,-474.3578,112.1393,0,0,0,100,0), +(@PATH,8,45.0526,-476.1751,110.926,0,0,0,100,0), +(@PATH,9,36.50502,-483.8639,110.9392,0,0,0,100,0), +(@PATH,10,24.51036,-485.5788,110.9466,0,0,0,100,0), +(@PATH,11,12.32181,-481.5825,110.9355,0,0,0,100,0), +(@PATH,12,10.06764,-472.9978,110.9354,0,0,0,100,0), +(@PATH,13,17.3661,-456.8065,110.9467,0,0,0,100,0), +(@PATH,14,29.56967,-454.026,110.9595,0,0,0,100,0), +(@PATH,15,35.45218,-454.5979,110.943,0,0,0,100,0), +(@PATH,16,34.74645,-442.8175,110.945,0,0,0,100,0), +(@PATH,17,33.50422,-417.918,110.7123,0,0,0,100,0), +(@PATH,18,34.74645,-442.8175,110.945,0,0,0,100,0), +(@PATH,19,35.45218,-454.5979,110.943,0,0,0,100,0), +(@PATH,20,29.56967,-454.026,110.9595,0,0,0,100,0), +(@PATH,21,17.3661,-456.8065,110.9467,0,0,0,100,0), +(@PATH,22,10.06764,-472.9978,110.9354,0,0,0,100,0), +(@PATH,23,12.32181,-481.5825,110.9355,0,0,0,100,0), +(@PATH,24,24.51036,-485.5788,110.9466,0,0,0,100,0), +(@PATH,25,36.50502,-483.8639,110.9392,0,0,0,100,0), +(@PATH,26,45.0526,-476.1751,110.926,0,0,0,100,0), +(@PATH,27,60.60706,-474.3578,112.1393,0,0,0,100,0), +(@PATH,28,70.90186,-474.6028,115.4964,0,0,0,100,0); +-- 0xF13000284E0957D1 .go 83.54216 -474.6622 116.8424 + +-- Pathing for Blackhand Assassin Entry: 10318 +SET @NPC := @GUID+155; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=117.2911,`position_y`=-562.6133,`position_z`=107.403 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, ''); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,117.5151,-567.9547,107.125,0,0,0,100,0), +(@PATH,2,117.2911,-562.6133,107.403,0,0,0,100,0), +(@PATH,3,112.9668,-557.6212,107.6628,0,0,0,100,0), +(@PATH,4,105.0914,-557.2451,107.6823,0,0,0,100,0), +(@PATH,5,96.04835,-553.9485,110.5781,0,0,0,100,0), +(@PATH,6,87.70401,-550.9095,110.9234,0,0,0,100,0), +(@PATH,7,79.952,-545.0425,110.9392,0,0,0,100,0), +(@PATH,8,71.74578,-539.9948,110.9404,0,0,0,100,0), +(@PATH,9,63.53278,-534.9427,110.9417,0,0,0,100,0), +(@PATH,10,71.6881,-539.9797,110.9404,0,0,0,100,0), +(@PATH,11,79.952,-545.0425,110.9392,0,0,0,100,0), +(@PATH,12,87.70401,-550.9095,110.9234,0,0,0,100,0), +(@PATH,13,96.04835,-553.9485,110.5781,0,0,0,100,0), +(@PATH,14,105.0914,-557.2451,107.6823,0,0,0,100,0), +(@PATH,15,112.9668,-557.6212,107.6628,0,0,0,100,0), +(@PATH,16,117.2911,-562.6133,107.403,0,0,0,100,0); +-- 0xF13000284E0957CB .go 117.5151 -567.9547 107.125 + +-- Pathing for Blackhand Iron Guard Entry: 10319 +SET @NPC := @GUID+185; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=27.209,`position_y`=-487.106,`position_z`=110.949 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`) VALUES (@NPC,@PATH,1,0); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,41.0048,-479.188,110.932,0,0,0,100,0), +(@PATH,2,40.6946,-470.055,110.934,0,0,0,100,0), +(@PATH,3,28.987,-457.701,110.958,0,0,0,100,0), +(@PATH,4,19.4282,-458.143,110.948,0,0,0,100,0), +(@PATH,5,10.9487,-465.839,110.938,0,0,0,100,0), +(@PATH,6,12.0295,-481.36,110.935,0,0,0,100,0), +(@PATH,7,27.209,-487.106,110.949,0,0,0,100,0); + +-- Pathing for Blackhand Iron Guard Entry: 10319 +SET @NPC := @GUID+187; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=32.9856,`position_y`=-441.198,`position_z`=110.948 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`) VALUES (@NPC,@PATH,1,0); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,33.2388,-451.331,110.947,0,0,0,100,0), +(@PATH,2,27.8349,-467.173,110.954,0,0,0,100,0), +(@PATH,3,22.5882,-486.309,110.945,0,0,0,100,0), +(@PATH,4,21.3946,-495.946,110.941,0,0,0,100,0), +(@PATH,5,22.5882,-486.309,110.945,0,0,0,100,0), +(@PATH,6,27.8349,-467.173,110.954,0,0,0,100,0), +(@PATH,7,33.2388,-451.331,110.947,0,0,0,100,0), +(@PATH,8,32.9856,-441.198,110.948,0,0,0,100,0), +(@PATH,9,33.2187,-432.523,110.949,0,0,0,100,0), +(@PATH,10,32.9856,-441.198,110.948,0,0,0,100,0); + +-- Pathing for Blackhand Iron Guard Entry: 10319 +SET @NPC := @GUID+180; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=137.438,`position_y`=-458.164,`position_z`=121.874 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`) VALUES (@NPC,@PATH,1,0); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,137.876,-449.432,121.975,0,0,0,100,0), +(@PATH,2,142.882,-447.466,121.975,0,0,0,100,0), +(@PATH,3,150.106,-447.552,121.975,0,0,0,100,0), +(@PATH,4,158.939,-447.841,121.975,0,0,0,100,0), +(@PATH,5,162.936,-450.315,121.975,0,0,0,100,0), +(@PATH,6,164.986,-455.795,121.975,0,0,0,100,0), +(@PATH,7,165.879,-465.25,116.954,0,0,0,100,0), +(@PATH,8,165.223,-470.568,116.829,0,0,0,100,0), +(@PATH,9,158.806,-470.375,116.826,0,0,0,100,0), +(@PATH,10,148.989,-470.486,116.816,0,0,0,100,0), +(@PATH,11,142.296,-471.539,116.839,0,0,0,100,0), +(@PATH,12,127.625,-473.384,116.845,0,0,0,100,0), +(@PATH,13,118.149,-473.105,116.842,0,0,0,100,0), +(@PATH,14,109.252,-473.191,116.842,0,0,0,100,0), +(@PATH,15,101.37,-473.117,116.842,0,0,0,100,0), +(@PATH,16,97.2847,-470.1,116.842,0,0,0,100,0), +(@PATH,17,93.7787,-464.77,116.842,0,0,0,100,0), +(@PATH,18,93.1996,-456.881,116.842,0,0,0,100,0), +(@PATH,19,93.0105,-447.581,113.951,0,0,0,100,0), +(@PATH,20,92.7964,-437.883,110.923,0,0,0,100,0), +(@PATH,21,92.9087,-447.432,113.951,0,0,0,100,0), +(@PATH,22,93.261,-456.932,116.842,0,0,0,100,0), +(@PATH,23,94.0509,-465.158,116.842,0,0,0,100,0), +(@PATH,24,97.3934,-470.372,116.842,0,0,0,100,0), +(@PATH,25,101.615,-473.2,116.842,0,0,0,100,0), +(@PATH,26,109.96,-473.221,116.842,0,0,0,100,0), +(@PATH,27,119.431,-472.966,116.842,0,0,0,100,0), +(@PATH,28,129.714,-473.405,116.844,0,0,0,100,0), +(@PATH,29,137.726,-471.057,116.836,0,0,0,100,0), +(@PATH,30,137.759,-466.307,116.807,0,0,0,100,0), +(@PATH,31,137.438,-458.164,121.874,0,0,0,100,0); + +-- Pathing for Goraluk Anvilcrack Entry: 10899 +SET @NPC := @GUID+39; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=145.1794,`position_y`=-242.7074,`position_z`=110.8712 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, ''); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,140.8718,-243.5903,110.8264,0,0,0,100,0), +(@PATH,2,140.0336,-244.9933,110.8045,7000,0,@PATH+1,100,0), +(@PATH,3,140.0312,-247.3475,110.7735,0,0,0,100,0), +(@PATH,4,142.0183,-248.9341,110.7787,0,0,0,100,0), +(@PATH,5,144.8816,-250.2995,110.7876,0,0,0,100,0), +(@PATH,6,148.9328,-246.4266,110.8622,0,0,0,100,0), +(@PATH,7,152.1183,-245.3219,110.9002,0,0,0,100,0), +(@PATH,8,159.5392,-248.6294,110.9232,48000,0,@PATH+2,100,0), +(@PATH,9,155.1528,-243.6318,110.9261,0,0,0,100,0), +(@PATH,10,148.9452,-243.1658,110.8972,0,0,0,100,0), +(@PATH,11,147.2209,-242.0178,110.8953,70000,0,@PATH+3,100,0), +(@PATH,12,144.9547,-246.9615,110.8239,0,0,0,100,0), +(@PATH,13,147.9653,-244.2648,110.8774,0,0,0,100,0), +(@PATH,14,149.6411,-243.5608,110.8987,0,0,0,100,0), +(@PATH,15,147.806,-248.5052,110.8308,0,0,0,100,0), +(@PATH,16,148.3326,-245.9803,110.8621,0,0,0,100,0), +(@PATH,17,152.27,-246.4282,110.8896,0,0,0,100,0), +(@PATH,18,147.7813,-243.522,110.8838,0,0,0,100,0), +(@PATH,19,148.1721,-245.3295,110.8677,0,0,0,100,0), +(@PATH,20,149.0415,-247.1999,110.8549,0,0,0,100,0), +(@PATH,21,150.1232,-244.7369,110.8901,0,0,0,100,0), +(@PATH,22,145.1794,-242.7074,110.8712,0,0,0,100,0); +DELETE FROM `waypoint_scripts` WHERE `id` IN (@PATH+1,@PATH+2,@PATH+3); +INSERT INTO `waypoint_scripts` (`id`,`delay`,`command`,`datalong`,`datalong2`,`o`,`guid`) VALUES +(@PATH+1,0,30,0,0,5.759586,89), +(@PATH+1,3,1,69,1,0,90), +(@PATH+2,0,30,0,0,0.715585,91), +(@PATH+2,4,1,133,1,0,92), +(@PATH+2,39,1,0,1,0,93), +(@PATH+3,0,30,0,0,1.801312,94), +(@PATH+3,1,1,28,1,0,95), +(@PATH+3,22,1,0,1,0,96); + +-- Pathing for Rage Talon Captain Entry: 10371 +SET @NPC := @GUID+42; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=17.7263,`position_y`=-263.467,`position_z`=110.943 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`) VALUES (@NPC,@PATH,1,0); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,0.073367,-274.516,110.929,0,0,0,100,0), +(@PATH,2,-0.197867,-320.715,110.939,0,0,0,100,0), +(@PATH,3,32.9907,-344.613,110.943,0,0,0,100,0), +(@PATH,4,2.70391,-335.468,110.942,0,0,0,100,0), +(@PATH,5,21.5374,-315.253,110.945,0,0,0,100,0), +(@PATH,6,21.8535,-266.793,110.943,0,0,0,100,0), +(@PATH,7,21.5374,-315.253,110.945,0,0,0,100,0), +(@PATH,8,2.70391,-335.468,110.942,0,0,0,100,0), +(@PATH,9,32.9907,-344.613,110.943,0,0,0,100,0), +(@PATH,10,-0.199047,-320.916,110.942,0,0,0,100,0), +(@PATH,11,0.073367,-274.516,110.929,0,0,0,100,0), +(@PATH,12,17.7263,-263.467,110.943,0,0,0,100,0); + +-- Pathing for Blackrock Drake Entry: 8964 +SET @NPC := 3343; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-7502.985,`position_y`=-1091.508,`position_z`=286.4399 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`) VALUES (@NPC,@PATH,1,0); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,-7526.111,-1065.07,290.0508,0,0,0,100,0), +(@PATH,2,-7528.773,-1060.98,289.8008,0,0,0,100,0), +(@PATH,3,-7554.438,-1032.648,293.9675,0,0,0,100,0), +(@PATH,4,-7569.052,-1024.164,297.7729,0,0,0,100,0), +(@PATH,5,-7603.773,-1019.187,303.3568,0,0,0,100,0), +(@PATH,6,-7625.236,-1030.118,300.6064,0,0,0,100,0), +(@PATH,7,-7652.77,-1045.974,291.5509,0,0,0,100,0), +(@PATH,8,-7670.932,-1065.009,280.1344,0,0,0,100,0), +(@PATH,9,-7677.66,-1074.487,277.8844,0,0,0,100,0), +(@PATH,10,-7685.643,-1097.263,280.412,0,0,0,100,0), +(@PATH,11,-7684.969,-1144.9,293.829,0,0,0,100,0), +(@PATH,12,-7666.268,-1177.758,297.051,0,0,0,100,0), +(@PATH,13,-7643.656,-1196.774,297.273,0,0,0,100,0), +(@PATH,14,-7634.542,-1201.614,295.5235,0,0,0,100,0), +(@PATH,15,-7597.882,-1211.088,294.7454,0,0,0,100,0), +(@PATH,16,-7560.959,-1205.237,290.3565,0,0,0,100,0), +(@PATH,17,-7536.037,-1191.708,287.6343,0,0,0,100,0), +(@PATH,18,-7519.03,-1173.085,287.1065,0,0,0,100,0), +(@PATH,19,-7502.939,-1142.821,286.4399,0,0,0,100,0), +(@PATH,20,-7499.304,-1120.659,286.4399,0,0,0,100,0), +(@PATH,21,-7502.985,-1091.508,286.4399,0,0,0,100,0); + +-- Pathing for Blackrock Drake Entry: 8964 +SET @NPC := 3344; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-7587.611,`position_y`=-1127.057,`position_z`=299.0391 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`) VALUES (@NPC,@PATH,1,0); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,-7595.692,-1122.375,300.0919,0,0,0,100,0), +(@PATH,2,-7602.509,-1119.911,298.7615,0,0,0,100,0), +(@PATH,3,-7623.113,-1121.951,299.8724,0,0,0,100,0), +(@PATH,4,-7624.854,-1116.178,298.9836,0,0,0,100,0), +(@PATH,5,-7623.076,-1109.361,301.2891,0,0,0,100,0), +(@PATH,6,-7621.203,-1101.338,301.6222,0,0,0,100,0), +(@PATH,7,-7617.672,-1097.37,302.9557,0,0,0,100,0), +(@PATH,8,-7612.521,-1091.614,305.2333,0,0,0,100,0), +(@PATH,9,-7603.752,-1088.397,307.15,0,0,0,100,0), +(@PATH,10,-7595.697,-1086.253,309.7056,0,0,0,100,0), +(@PATH,11,-7584.765,-1084.863,313.5945,0,0,0,100,0), +(@PATH,12,-7573.741,-1089.98,318.4,0,0,0,100,0), +(@PATH,13,-7563.752,-1095.654,321.1225,0,0,0,100,0), +(@PATH,14,-7561.293,-1111.069,323.0945,0,0,0,100,0), +(@PATH,15,-7562.622,-1134.871,324.7891,0,0,0,100,0), +(@PATH,16,-7575.259,-1146.927,321.928,0,0,0,100,0), +(@PATH,17,-7587.246,-1150.965,322.5114,0,0,0,100,0), +(@PATH,18,-7599.556,-1147.009,320.2891,0,0,0,100,0), +(@PATH,19,-7609.301,-1143.611,316.2057,0,0,0,100,0), +(@PATH,20,-7634.01,-1120.37,312.1778,0,0,0,100,0), +(@PATH,21,-7622.606,-1101.056,311.3446,0,0,0,100,0), +(@PATH,22,-7614.432,-1092.255,305.6779,0,0,0,100,0), +(@PATH,23,-7582.061,-1084.941,298.7889,0,0,0,100,0), +(@PATH,24,-7562.621,-1112.578,307.4555,0,0,0,100,0), +(@PATH,25,-7567.333,-1126.35,304.3445,0,0,0,100,0), +(@PATH,26,-7587.611,-1127.057,299.0391,0,0,0,100,0); + +-- Pathing for Scarshield Legionnaire Entry: 9097 +SET @NPC := @GUID+228; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=70.94958,`position_y`=-282.0711,`position_z`=60.60775 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, ''); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,72.5072,-281.7826,60.62373,0,0,0,100,0), +(@PATH,2,87.12473,-283.3365,60.60862,29000,0,@PATH+1,100,0), +(@PATH,3,86.74077,-283.0492,60.61073,0,0,0,100,0), +(@PATH,4,70.94958,-282.0711,60.60775,24000,0,@PATH+2,100,0); +DELETE FROM `waypoint_scripts` WHERE `id` IN (@PATH+1,@PATH+2); +INSERT INTO `waypoint_scripts` (`id`,`delay`,`command`,`datalong`,`datalong2`,`o`,`guid`) VALUES +(@PATH+1,2,2,74,1,0,97), +(@PATH+1,2,1,7,0,0,98), +(@PATH+1,24,2,74,0,0,99), +(@PATH+2,0,30,0,0,3.892084,100), +(@PATH+2,7,1,69,1,0,101), +(@PATH+2,16,1,0,1,0,102); + +-- Pathing for Scarshield Legionnaire Entry: 9097 +SET @NPC := @GUID+209; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=53.45955,`position_y`=-325.36,`position_z`=53.91605 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, ''); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,41.51676,-327.2762,53.74633,0,0,0,100,0), +(@PATH,2,34.57693,-329.2669,53.62961,0,0,0,100,0), +(@PATH,3,22.06219,-329.2139,48.75629,0,0,0,100,0), +(@PATH,4,18.71977,-332.48,48.72622,0,0,0,100,0), +(@PATH,5,18.61024,-346.3583,48.6756,0,0,0,100,0), +(@PATH,6,20.25173,-349.2039,48.67309,0,0,0,100,0), +(@PATH,7,35.13033,-349.1511,48.67545,0,0,0,100,0), +(@PATH,8,37.16372,-352.3886,48.67825,0,0,0,100,0), +(@PATH,9,37.26665,-364.0914,48.65669,0,0,0,100,0), +(@PATH,10,37.16372,-352.3886,48.67825,0,0,0,100,0), +(@PATH,11,35.13033,-349.1511,48.67545,0,0,0,100,0), +(@PATH,12,20.25173,-349.2039,48.67309,0,0,0,100,0), +(@PATH,13,18.61024,-346.3583,48.6756,0,0,0,100,0), +(@PATH,14,18.71977,-332.48,48.72622,0,0,0,100,0), +(@PATH,15,22.06219,-329.2139,48.75629,0,0,0,100,0), +(@PATH,16,34.57693,-329.2669,53.62961,0,0,0,100,0), +(@PATH,17,41.51676,-327.2762,53.74633,0,0,0,100,0), +(@PATH,18,53.45955,-325.36,53.91605,0,0,0,100,0); + +-- Pathing for Scarshield Legionnaire Entry: 9097 +SET @NPC := @GUID+229; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=81.97402,`position_y`=-288.0753,`position_z`=60.66125 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, ''); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,88.13084,-288.4329,60.61533,0,0,0,100,0), +(@PATH,2,93.48189,-291.8687,60.63227,0,0,0,100,0), +(@PATH,3,95.94733,-296.9316,60.66517,0,0,0,100,0), +(@PATH,4,95.94772,-309.7263,65.39042,0,0,0,100,0), +(@PATH,5,94.99308,-314.9491,65.47927,0,0,0,100,0), +(@PATH,6,87.00089,-316.9617,65.48379,0,0,0,100,0), +(@PATH,7,71.71636,-319.5778,65.46734,0,0,0,100,0), +(@PATH,8,65.58628,-320.8983,65.45923,0,0,0,100,0), +(@PATH,9,64.69189,-327.0649,65.46348,0,0,0,100,0), +(@PATH,10,64.73603,-340.4908,60.70201,0,0,0,100,0), +(@PATH,11,66.16424,-345.6102,60.70203,0,0,0,100,0), +(@PATH,12,71.37296,-346.4238,60.70203,0,0,0,100,0), +(@PATH,13,75.15958,-346.2384,60.70203,0,0,0,100,0), +(@PATH,14,83.80564,-346.3136,60.70203,0,0,0,100,0), +(@PATH,15,91.50565,-346.1702,60.70203,0,0,0,100,0), +(@PATH,16,94.48775,-344.4582,60.70203,0,0,0,100,0), +(@PATH,17,95.49223,-340.7823,60.70203,0,0,0,100,0), +(@PATH,18,95.32813,-327.5041,65.46348,0,0,0,100,0), +(@PATH,19,94.68663,-322.0191,65.46594,0,0,0,100,0), +(@PATH,20,89.48792,-319.0262,65.4938,0,0,0,100,0), +(@PATH,21,80.78517,-319.4615,65.47144,0,0,0,100,0), +(@PATH,22,70.61723,-318.8349,65.48348,0,0,0,100,0), +(@PATH,23,65.92691,-314.6129,65.46348,0,0,0,100,0), +(@PATH,24,64.53401,-310.319,65.46348,0,0,0,100,0), +(@PATH,25,64.13761,-297.2044,60.74208,0,0,0,100,0), +(@PATH,26,67.14284,-292.4547,60.63996,0,0,0,100,0), +(@PATH,27,74.20583,-289.4101,60.64116,0,0,0,100,0), +(@PATH,28,81.97402,-288.0753,60.66125,0,0,0,100,0); + +-- Pathing for Scarshield Legionnaire Entry: 9097 +SET @NPC := @GUID+230; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=83.98484,`position_y`=-287.0403,`position_z`=60.643 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, ''); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,89.93808,-286.1351,60.59507,0,0,0,100,0), +(@PATH,2,93.29991,-289.3597,60.59763,0,0,0,100,0), +(@PATH,3,96.0648,-291.1504,60.62643,0,0,0,100,0), +(@PATH,4,97.3805,-295.3065,60.67328,0,0,0,100,0), +(@PATH,5,97.94749,-302.046,62.42866,0,0,0,100,0), +(@PATH,6,97.94783,-313.342,65.46348,0,0,0,100,0), +(@PATH,7,96.72861,-316.5773,65.48706,0,0,0,100,0), +(@PATH,8,91.31343,-317.9382,65.49011,0,0,0,100,0), +(@PATH,9,68.48672,-322.1597,65.45495,0,0,0,100,0), +(@PATH,10,65.65896,-322.9286,65.45052,0,0,0,100,0), +(@PATH,11,66.58692,-327.4106,65.46348,0,0,0,100,0), +(@PATH,12,66.21835,-330.4742,64.56249,0,0,0,100,0), +(@PATH,13,66.71193,-333.1539,63.52972,0,0,0,100,0), +(@PATH,14,66.74886,-344.3894,60.70203,0,0,0,100,0), +(@PATH,15,94.72881,-344.1098,60.70203,0,0,0,100,0), +(@PATH,16,95.94814,-341.3136,60.70203,0,0,0,100,0), +(@PATH,17,94.90443,-337.6124,61.81128,0,0,0,100,0), +(@PATH,18,95.29044,-329.2947,65.01956,0,0,0,100,0), +(@PATH,19,93.29169,-324.5692,65.46348,0,0,0,100,0), +(@PATH,20,92.33022,-319.0261,65.49524,0,0,0,100,0), +(@PATH,21,88.11071,-320.541,65.4697,0,0,0,100,0), +(@PATH,22,77.12846,-321.647,65.46059,0,0,0,100,0), +(@PATH,23,73.90438,-321.0413,65.46191,0,0,0,100,0), +(@PATH,24,70.89841,-320.856,65.46152,0,0,0,100,0), +(@PATH,25,67.89243,-320.6708,65.46112,0,0,0,100,0), +(@PATH,26,62.8699,-314.552,65.46348,0,0,0,100,0), +(@PATH,27,62.38148,-310.165,65.46348,0,0,0,100,0), +(@PATH,28,62.16359,-298.0943,60.90481,0,0,0,100,0), +(@PATH,29,62.07857,-295.2815,60.75649,0,0,0,100,0), +(@PATH,30,66.51885,-289.6947,60.65805,0,0,0,100,0), +(@PATH,31,71.19937,-288.5282,60.61031,0,0,0,100,0), +(@PATH,32,76.71995,-286.1484,60.66695,0,0,0,100,0), +(@PATH,33,83.98484,-287.0403,60.643,0,0,0,100,0); + +-- Pathing for Scarshield Spellbinder Entry: 9098 +SET @NPC := @GUID+252; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=36.89285,`position_y`=-331.2767,`position_z`=53.68202 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, ''); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,39.96936,-329.8007,53.7379,0,0,0,100,0), +(@PATH,2,57.18673,-326.7872,53.91625,0,0,0,100,0), +(@PATH,3,34.34272,-331.2659,53.48465,0,0,0,100,0), +(@PATH,4,26.80801,-331.241,48.74844,0,0,0,100,0), +(@PATH,5,23.99778,-331.2221,48.75055,0,0,0,100,0), +(@PATH,6,18.19567,-331.1975,48.73712,0,0,0,100,0), +(@PATH,7,18.45785,-335.4669,48.70008,0,0,0,100,0), +(@PATH,8,20.61245,-337.6364,48.681,0,0,0,100,0), +(@PATH,9,20.58323,-349.7892,48.67257,0,0,0,100,0), +(@PATH,10,23.55131,-350.9213,48.67374,0,0,0,100,0), +(@PATH,11,26.39461,-347.1821,48.68155,0,0,0,100,0), +(@PATH,12,38.42376,-347.1394,48.67081,0,0,0,100,0), +(@PATH,13,39.21199,-357.8676,48.65726,0,0,0,100,0), +(@PATH,14,39.29136,-366.8922,48.65531,0,0,0,100,0), +(@PATH,15,39.13438,-349.0444,48.67277,0,0,0,100,0), +(@PATH,16,35.49154,-345.9659,48.6712,0,0,0,100,0), +(@PATH,17,29.60406,-347.1707,48.68155,0,0,0,100,0), +(@PATH,18,17.56905,-347.2134,48.6734,0,0,0,100,0), +(@PATH,19,20.65288,-340.964,48.6903,0,0,0,100,0), +(@PATH,20,20.74783,-328.9321,48.7581,0,0,0,100,0), +(@PATH,21,24.81668,-329.3186,48.77163,0,0,0,100,0), +(@PATH,22,28.94844,-331.2431,50.09388,0,0,0,100,0), +(@PATH,23,31.78614,-331.2551,51.87762,0,0,0,100,0), +(@PATH,24,34.34272,-331.2659,53.48465,0,0,0,100,0), +(@PATH,25,36.89285,-331.2767,53.68202,0,0,0,100,0); diff --git a/sql/updates/world/2011_12_17_00_world_gameobject.sql b/sql/updates/world/2011_12_17_00_world_gameobject.sql new file mode 100644 index 00000000000..98752a1b7ec --- /dev/null +++ b/sql/updates/world/2011_12_17_00_world_gameobject.sql @@ -0,0 +1,384 @@ +-- Add missing Go spawns for UBRS & LBRS +SET @OGUID := 87602; -- 261 required +DELETE FROM `gameobject` WHERE `map`=229 AND `id` IN (153464,175124,175194,175195,175196,175197,175198,175199,175200,175266,175267,175268,175269,175270,175271,175272,175706,175244,175187,175153,175705,175185,175186,164726, +164726,175382,175385,175528,175529,175530,175531,175532,175533,175946,175947,175970,176447,176448,176449,176450,176451,176452,136950,136952,136955,176459,176460,176461,176462,176463,136922,136923,136925,136926,136927, +136928,136929,136930,136931,136932,136933,136934,136935,136936,136937,136938,136939,136940,136941,136942,136943,136944,136945,136946,136947,136948,136949,136951,136954,136957,136959,136961,136962,136963,136964,153469, +164725,175334,175571,175584,175588,175606,175607,175608,175609,175886,175949,175950,176089,176090,176425,176426,176427,176428,176429,176430,176431,176432,176433,176434,176435,176436,176437,176438,176439,176440,176441, +176442,176443,176444,176445,176446,176454,176455,176456,176457,176458); +INSERT INTO `gameobject` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`position_x`,`position_y`,`position_z`,`orientation`,`rotation0`,`rotation1`,`rotation2`,`rotation3`,`spawntimesecs`,`animprogress`,`state`) VALUES +(@OGUID,175124,229,1,1,100.579681,-312.488953,91.4455,0.122172989,0,0,0,0,120,0,1), +(@OGUID+1,175124,229,1,1,101.516693,-311.471344,91.4455,-1.58824873,0,0,0,0,120,0,1), +(@OGUID+2,175124,229,1,1,102.414017,-304.376343,91.4466248,0.0174524616,0,0,0,0,120,0,1), +(@OGUID+3,175124,229,1,1,104.212967,-289.411041,91.47319,1.50098288,0,0,0,0,120,0,1), +(@OGUID+4,175124,229,1,1,104.316406,-302.841278,91.47408,3.07176614,0,0,0,0,120,0,1), +(@OGUID+5,175124,229,1,1,104.403542,-299.438263,91.47574,0.6806767,0,0,0,0,120,0,1), +(@OGUID+6,175124,229,1,1,104.601669,-287.9975,91.47882,-1.97221982,0,0,0,0,120,0,1), +(@OGUID+7,175124,229,1,1,104.926949,-286.137817,91.48353,1.448622,0,0,0,0,120,0,1), +(@OGUID+8,175124,229,1,1,105.029182,-300.911469,91.4845352,1.57079577,0,0,0,0,120,0,1), +(@OGUID+9,175124,229,1,1,106.199173,-299.793121,91.50144,-1.20427728,0,0,0,0,120,0,1), +(@OGUID+10,175124,229,1,1,106.420288,-281.429016,91.50514,-0.593412,0,0,0,0,120,0,1), +(@OGUID+11,175124,229,1,1,106.603729,-283.775574,91.5078,1.954769,0,0,0,0,120,0,1), +(@OGUID+12,175124,229,1,1,107.189377,-287.659851,91.51627,0.7504908,0,0,0,0,120,0,1), +(@OGUID+13,175124,229,1,1,107.418739,-282.511749,91.5196,-2.19911456,0,0,0,0,120,0,1), +(@OGUID+14,175124,229,1,1,107.927856,-299.94812,91.52648,2.00712848,0,0,0,0,120,0,1), +(@OGUID+15,175124,229,1,1,112.297363,-390.177521,110.862892,-0.122172989,0,0,0,0,120,0,1), +(@OGUID+16,175124,229,1,1,113.017937,-451.803925,110.862892,2.82742977,0,0,0,0,120,0,1), +(@OGUID+17,175124,229,1,1,113.929672,-389.215057,110.862892,-0.785396755,0,0,0,0,120,0,1), +(@OGUID+18,175124,229,1,1,114.805519,-450.286,110.862892,0.767943859,0,0,0,0,120,0,1), +(@OGUID+19,175124,229,1,1,115.410751,-389.923,110.862892,-0.8377574,0,0,0,0,120,0,1), +(@OGUID+20,175124,229,1,1,115.812012,-453.056946,110.862892,-1.98967242,0,0,0,0,120,0,1), +(@OGUID+21,175124,229,1,1,186.987213,-389.476227,110.862892,-1.53588951,0,0,0,0,120,0,1), +(@OGUID+22,175124,229,1,1,187.74115,-387.874451,110.862892,1.134463,0,0,0,0,120,0,1), +(@OGUID+23,175124,229,1,1,188.002533,-452.5383,110.862892,1.34390128,0,0,0,0,120,0,1), +(@OGUID+24,175124,229,1,1,188.12558,-450.820068,110.862892,1.48352814,0,0,0,0,120,0,1), +(@OGUID+25,175124,229,1,1,189.080276,-388.61087,110.862892,-0.296705216,0,0,0,0,120,0,1), +(@OGUID+26,175124,229,1,1,189.834488,-451.310455,110.862892,-2.86233544,0,0,0,0,120,0,1), +(@OGUID+27,175124,229,1,1,197.826462,-407.929718,110.885162,-2.16420579,0,0,0,0,120,0,1), +(@OGUID+28,175124,229,1,1,197.889175,-409.4169,110.885162,-1.51843619,0,0,0,0,120,0,1), +(@OGUID+29,175124,229,1,1,198.345856,-432.6916,110.885071,-2.0594883,0,0,0,0,120,0,1), +(@OGUID+30,175124,229,1,1,199.2812,-431.4338,110.885071,-2.44346023,0,0,0,0,120,0,1), +(@OGUID+31,175124,229,1,1,199.588242,-433.8074,110.885071,1.11700928,0,0,0,0,120,0,1), +(@OGUID+32,175124,229,1,1,199.616272,-410.271881,110.885689,-2.932139,0,0,0,0,120,0,1), +(@OGUID+33,175124,229,1,1,200.124588,-407.845734,110.885162,2.879789,0,0,0,0,120,0,1), +(@OGUID+34,175124,229,1,1,200.719711,-431.708069,110.885071,1.7802341,0,0,0,0,120,0,1), +(@OGUID+35,175124,229,1,1,200.743408,-409.405762,110.885162,-1.37880921,0,0,0,0,120,0,1), +(@OGUID+36,175124,229,1,1,201.846771,-432.208649,110.885483,1.448622,0,0,0,0,120,0,1), +(@OGUID+37,175124,229,1,1,202.572159,-392.328,111.153641,-1.36135614,0,0,0,0,120,0,1), +(@OGUID+38,175124,229,1,1,202.891327,-394.92514,111.134247,-2.80997539,0,0,0,0,120,0,1), +(@OGUID+39,175124,229,1,1,203.082092,-401.453033,111.08667,-1.06464958,0,0,0,0,120,0,1), +(@OGUID+40,175124,229,1,1,203.280655,-398.871735,111.104973,2.86233544,0,0,0,0,120,0,1), +(@OGUID+41,175124,229,1,1,203.856339,-403.369232,111.071358,-1.15191638,0,0,0,0,120,0,1), +(@OGUID+42,175124,229,1,1,204.114517,-393.5981,111.141563,-0.6457717,0,0,0,0,120,0,1), +(@OGUID+43,175124,229,1,1,204.389526,-395.494537,111.127327,-1.2915417,0,0,0,0,120,0,1), +(@OGUID+44,175124,229,1,1,204.402267,-400.3069,111.092491,-2.19911456,0,0,0,0,120,0,1), +(@OGUID+45,175124,229,1,1,205.198654,-401.573273,111.081833,0.261798173,0,0,0,0,120,0,1), +(@OGUID+46,175124,229,1,1,206.9045,-419.7901,110.925056,-0.7504908,0,0,0,0,120,0,1), +(@OGUID+47,175124,229,1,1,207.266647,-434.7158,110.886642,0.226892471,0,0,0,0,120,0,1), +(@OGUID+48,175124,229,1,1,207.935486,-420.0201,110.930283,-0.174532115,0,0,0,0,120,0,1), +(@OGUID+49,175124,229,1,1,208.006454,-422.068726,110.929123,-1.51843619,0,0,0,0,120,0,1), +(@OGUID+50,175124,229,1,1,208.166092,-418.3611,110.932716,2.21656513,0,0,0,0,120,0,1), +(@OGUID+51,175124,229,1,1,208.798172,-433.633331,110.888489,-2.82742977,0,0,0,0,120,0,1), +(@OGUID+52,175124,229,1,1,209.071991,-435.188141,110.884933,-2.94959545,0,0,0,0,120,0,1), +(@OGUID+53,175124,229,1,1,209.28624,-391.269562,111.14872,-2.94959545,0,0,0,0,120,0,1), +(@OGUID+54,175124,229,1,1,209.562531,-419.839661,110.938927,-0.5410506,0,0,0,0,120,0,1), +(@OGUID+55,175124,229,1,1,210.485046,-393.288025,111.131866,-0.122172989,0,0,0,0,120,0,1), +(@OGUID+56,175124,229,1,1,210.653778,-391.8297,111.142113,1.91986156,0,0,0,0,120,0,1), +(@OGUID+57,175124,229,1,1,211.61734,-434.677,110.887962,-1.55334139,0,0,0,0,120,0,1), +(@OGUID+58,175124,229,1,1,211.90686,-420.1357,110.945183,1.93731225,0,0,0,0,120,0,1), +(@OGUID+59,175124,229,1,1,212.066559,-392.1727,111.136993,-0.5585039,0,0,0,0,120,0,1), +(@OGUID+60,175124,229,1,1,212.458679,-418.521362,110.9529,2.98449826,0,0,0,0,120,0,1), +(@OGUID+61,175124,229,1,1,212.63623,-432.306061,110.89183,-0.174532115,0,0,0,0,120,0,1), +(@OGUID+62,175124,229,1,1,213.310959,-410.503100,110.962784,2.146753,0,0,0,0,120,0,1), +(@OGUID+63,175124,229,1,1,213.576500,-419.532900,110.949500,0.628317,0,0,0,0,120,0,1), +(@OGUID+64,175124,229,1,1,214.320190,-408.951233,110.967888,2.967041,0,0,0,0,120,0,1), +(@OGUID+65,175124,229,1,1,217.875015,-392.086517,111.126740,0.907570,0,0,0,0,120,0,1), +(@OGUID+66,175124,229,1,1,218.954147,-392.578674,111.121162,1.919862,0,0,0,0,120,0,1), +(@OGUID+67,175124,229,1,1,219.678818,-393.405100,111.113823,-1.989672,0,0,0,0,120,0,1), +(@OGUID+68,175124,229,1,1,219.995500,-399.617200,111.068283,-2.617989,0,0,0,0,120,0,1), +(@OGUID+69,175124,229,1,1,220.161682,-421.224945,110.948463,-1.762782,0,0,0,0,120,0,1), +(@OGUID+70,175124,229,1,1,220.172836,-391.630066,111.125732,1.361356,0,0,0,0,120,0,1), +(@OGUID+71,175124,229,1,1,220.181274,-401.405100,111.055000,-1.989672,0,0,0,0,120,0,1), +(@OGUID+72,175124,229,1,1,220.601800,-418.446900,110.961227,-1.221729,0,0,0,0,120,0,1), +(@OGUID+73,175124,229,1,1,220.823685,-398.356600,111.075851,1.989672,0,0,0,0,120,0,1), +(@OGUID+74,175124,229,1,1,220.835770,-393.648834,111.109894,-1.972220,0,0,0,0,120,0,1), +(@OGUID+75,175124,229,1,1,220.869781,-411.346252,110.993027,-2.478367,0,0,0,0,120,0,1), +(@OGUID+76,175124,229,1,1,221.281387,-400.066300,111.062630,0.977383,0,0,0,0,120,0,1), +(@OGUID+77,175124,229,1,1,221.347992,-409.122284,111.003387,-2.076939,0,0,0,0,120,0,1), +(@OGUID+78,175124,229,1,1,221.701370,-420.444366,110.953438,1.640607,0,0,0,0,120,0,1), +(@OGUID+79,175124,229,1,1,222.093460,-432.249939,110.901382,0.000000,0,0,0,0,120,0,1), +(@OGUID+80,175124,229,1,1,222.151962,-411.776367,110.992393,-3.071766,0,0,0,0,120,0,1), +(@OGUID+81,175124,229,1,1,222.218918,-428.907776,110.916351,2.792518,0,0,0,0,120,0,1), +(@OGUID+82,175124,229,1,1,222.736313,-410.476624,110.998500,-1.204277,0,0,0,0,120,0,1), +(@OGUID+83,175124,229,1,1,222.815536,-430.970551,110.907448,-0.261798,0,0,0,0,120,0,1), +(@OGUID+84,175124,229,1,1,223.579010,-419.323151,110.959229,-1.884953,0,0,0,0,120,0,1), +(@OGUID+85,175124,229,1,1,223.816528,-429.410300,110.914421,-0.174532,0,0,0,0,120,0,1), +(@OGUID+86,175124,229,1,1,223.977676,-432.850037,110.899147,1.884953,0,0,0,0,120,0,1), +(@OGUID+87,175124,229,1,1,224.212540,-412.156647,110.991089,1.588249,0,0,0,0,120,0,1), +(@OGUID+88,175124,229,1,1,48.812670,-337.076050,91.530170,2.268925,0,0,0,0,120,0,1), +(@OGUID+89,175124,229,1,1,50.171127,-316.651550,91.530350,-2.426003,0,0,0,0,120,0,1), +(@OGUID+90,175124,229,1,1,51.266464,-338.088400,91.541910,-1.989672,0,0,0,0,120,0,1), +(@OGUID+91,175124,229,1,1,51.575382,-315.041870,91.522530,2.146753,0,0,0,0,120,0,1), +(@OGUID+92,175124,229,1,1,51.863476,-316.613831,91.520930,-0.593412,0,0,0,0,120,0,1), +(@OGUID+93,175124,229,1,1,54.265644,-255.434738,96.858940,1.343901,0,0,0,0,120,0,1), +(@OGUID+94,175124,229,1,1,54.572220,-336.735138,91.529305,-1.134463,0,0,0,0,120,0,1), +(@OGUID+95,175124,229,1,1,55.353077,-249.984161,97.048740,-2.652894,0,0,0,0,120,0,1), +(@OGUID+96,175124,229,1,1,55.441975,-254.350900,97.197754,0.541051,0,0,0,0,120,0,1), +(@OGUID+97,175124,229,1,1,56.761517,-332.325000,91.465240,-1.064650,0,0,0,0,120,0,1), +(@OGUID+98,175124,229,1,1,56.851460,-253.342600,96.962560,-0.087266,0,0,0,0,120,0,1), +(@OGUID+99,175124,229,1,1,56.876007,-255.377335,96.968940,0.261798,0,0,0,0,120,0,1), +(@OGUID+100,175124,229,1,1,57.859043,-336.093262,91.523320,-2.234018,0,0,0,0,120,0,1), +(@OGUID+101,175124,229,1,1,57.860306,-256.662100,96.739450,-1.012289,0,0,0,0,120,0,1), +(@OGUID+102,175124,229,1,1,58.117460,-253.946426,96.880950,0.506145,0,0,0,0,120,0,1), +(@OGUID+103,175124,229,1,1,58.817844,-334.106964,91.504810,0.977383,0,0,0,0,120,0,1), +(@OGUID+104,175124,229,1,1,59.025590,-271.140137,93.636284,-2.495818,0,0,0,0,120,0,1), +(@OGUID+105,175124,229,1,1,59.168900,-255.102982,96.815750,1.082103,0,0,0,0,120,0,1), +(@OGUID+106,175124,229,1,1,59.192165,-317.294067,91.480150,-0.191985,0,0,0,0,120,0,1), +(@OGUID+107,175124,229,1,1,59.330967,-332.230164,91.472916,-1.640610,0,0,0,0,120,0,1), +(@OGUID+108,175124,229,1,1,59.419060,-337.406500,91.535560,-0.471239,0,0,0,0,120,0,1), +(@OGUID+109,175124,229,1,1,60.185110,-270.196200,93.681820,-2.268925,0,0,0,0,120,0,1), +(@OGUID+110,175124,229,1,1,60.351400,-312.296539,91.522070,1.134463,0,0,0,0,120,0,1), +(@OGUID+111,175124,229,1,1,60.664970,-268.136017,93.601850,2.356195,0,0,0,0,120,0,1), +(@OGUID+112,175124,229,1,1,61.012710,-315.652800,91.484780,0.733038,0,0,0,0,120,0,1), +(@OGUID+113,175124,229,1,1,61.056700,-313.921875,91.505030,-0.680679,0,0,0,0,120,0,1), +(@OGUID+114,175124,229,1,1,61.321583,-272.012665,93.600870,-1.151916,0,0,0,0,120,0,1), +(@OGUID+115,175124,229,1,1,62.495476,-334.331300,91.506905,-0.349065,0,0,0,0,120,0,1), +(@OGUID+116,175124,229,1,1,63.307910,-317.114000,91.471550,-3.089183,0,0,0,0,120,0,1), +(@OGUID+117,175124,229,1,1,63.571682,-336.638200,91.528400,0.069812,0,0,0,0,120,0,1), +(@OGUID+118,175124,229,1,1,64.204040,-268.474300,93.245410,-1.570796,0,0,0,0,120,0,1), +(@OGUID+119,175124,229,1,1,64.925964,-317.059448,91.461044,1.780234,0,0,0,0,120,0,1), +(@OGUID+120,175124,229,1,1,65.296530,-267.929600,93.076380,0.349065,0,0,0,0,120,0,1), +(@OGUID+121,175124,229,1,1,65.583550,-305.104828,91.485280,1.099556,0,0,0,0,120,0,1), +(@OGUID+122,175124,229,1,1,65.987790,-303.633759,91.469400,-2.617989,0,0,0,0,120,0,1), +(@OGUID+123,175124,229,1,1,66.801750,-302.481100,91.451454,3.141593,0,0,0,0,120,0,1), +(@OGUID+124,175124,229,1,1,68.121820,-302.416382,91.438910,3.124123,0,0,0,0,120,0,1), +(@OGUID+125,175124,229,1,1,68.251770,-314.874634,91.433460,1.361356,0,0,0,0,120,0,1), +(@OGUID+126,175124,229,1,1,68.728424,-307.073029,91.450460,0.994837,0,0,0,0,120,0,1), +(@OGUID+127,175124,229,1,1,69.459880,-303.626923,91.437965,-1.396262,0,0,0,0,120,0,1), +(@OGUID+128,175124,229,1,1,69.691370,-332.161224,91.486680,1.134463,0,0,0,0,120,0,1), +(@OGUID+129,175124,229,1,1,69.930570,-326.639800,91.458800,2.897245,0,0,0,0,120,0,1), +(@OGUID+130,175124,229,1,1,69.991165,-329.339233,91.465836,-0.401425,0,0,0,0,120,0,1), +(@OGUID+131,175124,229,1,1,70.507195,-334.149000,91.505200,0.610864,0,0,0,0,120,0,1), +(@OGUID+132,175124,229,1,1,70.929120,-304.969635,91.431526,3.036838,0,0,0,0,120,0,1), +(@OGUID+133,175124,229,1,1,71.711500,-306.066100,91.418205,-1.518436,0,0,0,0,120,0,1), +(@OGUID+134,175124,229,1,1,71.794900,-278.164948,92.456700,2.234018,0,0,0,0,120,0,1), +(@OGUID+135,175124,229,1,1,72.002580,-328.391968,91.461020,-1.431168,0,0,0,0,120,0,1), +(@OGUID+136,175124,229,1,1,72.026024,-331.224518,91.472250,-2.687807,0,0,0,0,120,0,1), +(@OGUID+137,175124,229,1,1,72.053100,-325.809235,91.454160,1.431168,0,0,0,0,120,0,1), +(@OGUID+138,175124,229,1,1,72.068990,-276.632355,92.298294,2.617989,0,0,0,0,120,0,1), +(@OGUID+139,175124,229,1,1,72.141040,-285.905670,91.945180,-1.012289,0,0,0,0,120,0,1), +(@OGUID+140,175124,229,1,1,73.133210,-306.736481,91.412690,-0.645772,0,0,0,0,120,0,1), +(@OGUID+141,175124,229,1,1,73.545160,-324.155731,91.448090,0.453785,0,0,0,0,120,0,1), +(@OGUID+142,175124,229,1,1,74.038910,-287.330600,91.448830,-1.012289,0,0,0,0,120,0,1), +(@OGUID+143,175124,229,1,1,74.100430,-291.836700,91.442010,-0.401425,0,0,0,0,120,0,1), +(@OGUID+144,175124,229,1,1,74.206830,-273.590729,91.642830,-1.396262,0,0,0,0,120,0,1), +(@OGUID+145,175124,229,1,1,74.449070,-307.402924,91.414390,-0.733038,0,0,0,0,120,0,1), +(@OGUID+146,175124,229,1,1,74.752180,-275.849121,91.650276,0.959930,0,0,0,0,120,0,1), +(@OGUID+147,175124,229,1,1,75.177895,-292.906250,91.444630,1.989672,0,0,0,0,120,0,1), +(@OGUID+148,175124,229,1,1,76.242165,-277.381100,91.473785,-0.785397,0,0,0,0,120,0,1), +(@OGUID+149,175124,229,1,1,76.649890,-263.575470,91.480260,0.767944,0,0,0,0,120,0,1), +(@OGUID+150,175124,229,1,1,76.864716,-275.632080,91.477770,2.321287,0,0,0,0,120,0,1), +(@OGUID+151,175124,229,1,1,77.275060,-262.142944,91.479930,-1.256636,0,0,0,0,120,0,1), +(@OGUID+152,175124,229,1,1,77.482170,-292.279968,91.447014,-0.087266,0,0,0,0,120,0,1), +(@OGUID+153,175124,229,1,1,77.701280,-295.117300,91.443660,-1.117009,0,0,0,0,120,0,1), +(@OGUID+154,175124,229,1,1,78.590004,-266.496338,91.474560,2.007128,0,0,0,0,120,0,1), +(@OGUID+155,175124,229,1,1,79.001236,-331.653259,91.471030,-2.338740,0,0,0,0,120,0,1), +(@OGUID+156,175124,229,1,1,79.072030,-328.432700,91.452940,-0.541051,0,0,0,0,120,0,1), +(@OGUID+157,175124,229,1,1,79.206190,-262.497070,91.475750,-2.129301,0,0,0,0,120,0,1), +(@OGUID+158,175124,229,1,1,79.568920,-291.473877,91.449265,-0.174532,0,0,0,0,120,0,1), +(@OGUID+159,175124,229,1,1,79.786570,-325.953278,91.445595,1.605702,0,0,0,0,120,0,1), +(@OGUID+160,175124,229,1,1,80.484150,-316.636383,91.437960,-0.855211,0,0,0,0,120,0,1), +(@OGUID+161,175124,229,1,1,80.788110,-253.589417,91.475460,-2.146753,0,0,0,0,120,0,1), +(@OGUID+162,175124,229,1,1,80.916214,-328.544200,91.451100,-2.094393,0,0,0,0,120,0,1), +(@OGUID+163,175124,229,1,1,81.006350,-332.454468,91.481350,-2.513274,0,0,0,0,120,0,1), +(@OGUID+164,175124,229,1,1,81.010410,-264.958038,91.470480,2.757613,0,0,0,0,120,0,1), +(@OGUID+165,175124,229,1,1,81.071785,-330.128571,91.455090,-1.029743,0,0,0,0,120,0,1), +(@OGUID+166,175124,229,1,1,81.765560,-326.139557,91.445510,2.460913,0,0,0,0,120,0,1), +(@OGUID+167,175124,229,1,1,81.817490,-317.400055,91.439900,0.174532,0,0,0,0,120,0,1), +(@OGUID+168,175124,229,1,1,81.974480,-335.983826,91.522300,-1.500983,0,0,0,0,120,0,1), +(@OGUID+169,175124,229,1,1,82.075060,-251.810257,91.472730,-1.692969,0,0,0,0,120,0,1), +(@OGUID+170,175124,229,1,1,82.531170,-315.925079,91.436134,1.710422,0,0,0,0,120,0,1), +(@OGUID+171,175124,229,1,1,82.764340,-267.748474,91.465096,-3.019413,0,0,0,0,120,0,1), +(@OGUID+172,175124,229,1,1,82.941520,-330.608337,91.454190,0.698132,0,0,0,0,120,0,1), +(@OGUID+173,175124,229,1,1,82.960050,-249.989090,91.470880,-1.640610,0,0,0,0,120,0,1), +(@OGUID+174,175124,229,1,1,83.030556,-333.102661,91.489250,-0.209439,0,0,0,0,120,0,1), +(@OGUID+175,175124,229,1,1,83.216140,-327.689700,91.446200,-0.296705,0,0,0,0,120,0,1), +(@OGUID+176,175124,229,1,1,83.653244,-252.415115,91.469410,1.954769,0,0,0,0,120,0,1), +(@OGUID+177,175124,229,1,1,83.950905,-325.865200,91.445510,-2.967041,0,0,0,0,120,0,1), +(@OGUID+178,175124,229,1,1,83.954080,-315.109400,91.434060,-0.541051,0,0,0,0,120,0,1), +(@OGUID+179,175124,229,1,1,84.112040,-268.795441,91.461670,-2.879789,0,0,0,0,120,0,1), +(@OGUID+180,175124,229,1,1,84.506134,-248.377167,91.467630,1.780234,0,0,0,0,120,0,1), +(@OGUID+181,175124,229,1,1,84.657295,-301.760900,91.443214,0.157079,0,0,0,0,120,0,1), +(@OGUID+182,175124,229,1,1,85.563520,-293.522736,91.447860,1.308995,0,0,0,0,120,0,1), +(@OGUID+183,175124,229,1,1,85.667694,-314.023560,91.436035,-2.076939,0,0,0,0,120,0,1), +(@OGUID+184,175124,229,1,1,85.834040,-295.413666,91.447740,2.775069,0,0,0,0,120,0,1), +(@OGUID+185,175124,229,1,1,85.975090,-250.809708,91.464530,-2.932139,0,0,0,0,120,0,1), +(@OGUID+186,175124,229,1,1,86.112880,-302.506317,91.443740,0.767944,0,0,0,0,120,0,1), +(@OGUID+187,175124,229,1,1,86.367140,-246.965225,91.463715,1.815142,0,0,0,0,120,0,1), +(@OGUID+188,175124,229,1,1,87.226135,-252.472137,91.461900,-0.942477,0,0,0,0,120,0,1), +(@OGUID+189,175124,229,1,1,87.281105,-254.392151,91.461790,0.034906,0,0,0,0,120,0,1), +(@OGUID+190,175124,229,1,1,87.410990,-278.121460,91.453200,-2.565632,0,0,0,0,120,0,1), +(@OGUID+191,175124,229,1,1,87.812740,-314.716200,91.444310,3.019413,0,0,0,0,120,0,1), +(@OGUID+192,175124,229,1,1,87.861210,-303.151947,91.444374,-1.797689,0,0,0,0,120,0,1), +(@OGUID+193,175124,229,1,1,87.923130,-280.001373,91.447140,-2.705255,0,0,0,0,120,0,1), +(@OGUID+194,175124,229,1,1,88.098390,-333.163361,91.484410,1.431168,0,0,0,0,120,0,1), +(@OGUID+195,175124,229,1,1,88.343250,-248.339035,91.459560,2.286379,0,0,0,0,120,0,1), +(@OGUID+196,175124,229,1,1,88.691250,-301.069800,91.444680,0.366518,0,0,0,0,120,0,1), +(@OGUID+197,175124,229,1,1,88.808876,-316.133700,91.444670,-0.698132,0,0,0,0,120,0,1), +(@OGUID+198,175124,229,1,1,89.004050,-251.208176,91.458170,2.949595,0,0,0,0,120,0,1), +(@OGUID+199,175124,229,1,1,89.099160,-290.132965,91.446330,1.535890,0,0,0,0,120,0,1), +(@OGUID+200,175124,229,1,1,89.926796,-301.831146,91.445114,0.541051,0,0,0,0,120,0,1), +(@OGUID+201,175124,229,1,1,89.958930,-318.158875,91.444320,-0.872664,0,0,0,0,120,0,1), +(@OGUID+202,175124,229,1,1,90.307120,-332.646332,91.473750,2.617989,0,0,0,0,120,0,1), +(@OGUID+203,175124,229,1,1,90.575424,-320.018616,91.445500,1.204277,0,0,0,0,120,0,1), +(@OGUID+204,175124,229,1,1,91.830710,-291.348500,91.445500,-3.089183,0,0,0,0,120,0,1), +(@OGUID+205,175124,229,1,1,91.860870,-301.934900,91.445500,0.733038,0,0,0,0,120,0,1), +(@OGUID+206,175124,229,1,1,92.115500,-334.860800,91.506560,0.453785,0,0,0,0,120,0,1), +(@OGUID+207,175124,229,1,1,92.125114,-279.851044,91.445500,-1.675514,0,0,0,0,120,0,1), +(@OGUID+208,175124,229,1,1,92.600150,-288.176178,91.445500,0.436332,0,0,0,0,120,0,1), +(@OGUID+209,175124,229,1,1,92.644230,-304.446533,91.445500,2.443460,0,0,0,0,120,0,1), +(@OGUID+210,175124,229,1,1,93.673340,-290.120483,91.445500,-0.750491,0,0,0,0,120,0,1), +(@OGUID+211,175124,229,1,1,93.811460,-305.536255,91.445500,1.029743,0,0,0,0,120,0,1), +(@OGUID+212,175124,229,1,1,93.890366,-288.281036,91.445500,2.356195,0,0,0,0,120,0,1), +(@OGUID+213,175124,229,1,1,94.564140,-281.093300,91.445500,2.513274,0,0,0,0,120,0,1), +(@OGUID+214,175124,229,1,1,94.917090,-288.643616,91.445500,2.967041,0,0,0,0,120,0,1), +(@OGUID+215,175124,229,1,1,95.461464,-313.583679,91.445500,0.855211,0,0,0,0,120,0,1), +(@OGUID+216,175124,229,1,1,96.062840,-287.470337,91.445500,1.710422,0,0,0,0,120,0,1), +(@OGUID+217,175124,229,1,1,96.341835,-280.517578,91.445500,0.139624,0,0,0,0,120,0,1), +(@OGUID+218,175124,229,1,1,97.125830,-281.948944,91.445500,-1.274091,0,0,0,0,120,0,1), +(@OGUID+219,175124,229,1,1,97.196310,-310.890533,91.445500,-3.036838,0,0,0,0,120,0,1), +(@OGUID+220,175124,229,1,1,97.340485,-313.429962,91.445500,2.670348,0,0,0,0,120,0,1), +(@OGUID+221,175124,229,1,1,98.855940,-313.048950,91.445500,-1.012289,0,0,0,0,120,0,1), +(@OGUID+222,175194,229,1,1,192.740372,-258.394226,76.86026,0,0,0,0,0,120,0,0), +(@OGUID+223,175195,229,1,1,124.778954,-298.037384,70.85264,0.785396755,0,0,0,0,120,0,0), +(@OGUID+224,175196,229,1,1,228.802658,-301.542084,76.88119,-1.57079577,0,0,0,0,120,0,0), +(@OGUID+225,175197,229,1,1,125.357704,-340.4654,70.875206,2.356195,0,0,0,0,120,0,0), +(@OGUID+226,175198,229,1,1,215.157425,-334.733,76.81243,-2.356195,0,0,0,0,120,0,0), +(@OGUID+227,175199,229,1,1,155.33374,-353.044769,70.83366,3.14159274,0,0,0,0,120,0,0), +(@OGUID+228,175200,229,1,1,155.320572,-286.073547,70.87632,0,0,0,0,0,120,0,0), +(@OGUID+229,175266,229,1,1,144.3746,-240.826111,91.471344,0,0,0,0,0,120,0,0), +(@OGUID+230,175267,229,1,1,126.354256,-240.769867,91.47007,0,0,0,0,0,120,0,0), +(@OGUID+231,175268,229,1,1,162.465958,-240.764633,91.46876,0,0,0,0,0,120,0,0), +(@OGUID+232,175269,229,1,1,126.295486,-258.731628,91.47007,0,0,0,0,0,120,0,0), +(@OGUID+233,175270,229,1,1,162.443268,-258.9044,91.47007,0,0,0,0,0,120,0,0), +(@OGUID+234,175271,229,1,1,126.4017,-276.79007,91.47007,0,0,0,0,0,120,0,0), +(@OGUID+235,175272,229,1,1,162.400742,-276.823822,91.47007,0,0,0,0,0,120,0,0), +(@OGUID+236,175706,229,1,1,144.445023,-280.941467,91.54761,1.58824873,0,0,0,0,120,0,0), +(@OGUID+237,175244,229,1,1,216.44342,-286.135376,76.94057,3.14159274,0,0,0,0,120,0,1), +(@OGUID+238,175187,229,1,1,144.369614,-299.198425,91.47007,0,0,0,0,0,120,0,1), +(@OGUID+239,175153,229,1,1,113.751076,-258.944977,91.56026,0,0,0,0,0,120,0,1), +(@OGUID+240,175705,229,1,1,175.127151,-258.944946,91.56026,0,0,0,0,0,120,0,1), +(@OGUID+241,175185,229,1,1,194.234833,-420.225037,110.76078,3.14159274,0,0,0,0,120,0,1), +(@OGUID+242,175186,229,1,1,92.959465,-435.590027,110.954376,-1.57079577,0,0,0,0,120,0,1), +(@OGUID+243,164726,229,1,1,108.036087,-420.3313,110.954376,3.14159274,0,0,0,0,120,0,1), +(@OGUID+244,175382,229,1,1,67.1283,-297.421021,91.42554,-0.0349062532,0,0,0,0,120,0,1), +(@OGUID+245,175385,229,1,1,65.41786,-280.4161,94.04653,0.06981169,0,0,0,0,120,0,1), +(@OGUID+246,175528,229,1,1,100.25692,-313.139862,66.5452652,3.14159274,0,0,0,0,120,0,0), +(@OGUID+247,175529,229,1,1,100.25692,-324.880249,66.5452652,3.14159274,0,0,0,0,120,0,0), +(@OGUID+248,175530,229,1,1,110.21476,-324.880249,68.03545,3.14159274,0,0,0,0,120,0,0), +(@OGUID+249,175531,229,1,1,110.21476,-313.139862,68.03545,3.14159274,0,0,0,0,120,0,0), +(@OGUID+250,175532,229,1,1,120.461563,-324.880249,73.53309,3.14159274,0,0,0,0,120,0,0), +(@OGUID+251,175533,229,1,1,120.461563,-313.139862,73.53309,3.14159274,0,0,0,0,120,0,0), +(@OGUID+252,175946,229,1,1,45.1932869,-259.712219,106.532768,3.14159274,0,0,0,0,120,0,1), +(@OGUID+253,175947,229,1,1,45.19329,-312.5203,106.532768,3.14159274,0,0,0,0,120,0,1), +(@OGUID+254,175970,229,1,1,147.227539,-240.435669,112.20472,-1.64933348,0,0,0,0,120,0,1), +(@OGUID+255,176447,229,1,1,35.2498856,-505.634277,110.91436,-3.13874269,0,0,0,0,120,0,1), +(@OGUID+256,176448,229,1,1,31.2830067,-505.634277,110.91436,1.57142222,0,0,0,0,120,0,1), +(@OGUID+257,176449,229,1,1,27.4453468,-505.634277,110.91436,-0.261172324,0,0,0,0,120,0,1), +(@OGUID+258,176450,229,1,1,21.5667877,-506.580719,110.91436,-1.57016766,0,0,0,0,120,0,1), +(@OGUID+259,176451,229,1,1,18.0824432,-505.634277,110.91436,-3.13874269,0,0,0,0,120,0,1), +(@OGUID+260,176452,229,1,1,24.5420456,-504.7355,110.91436,-2.35556316,0,0,0,0,120,0,1), +(@OGUID+261,136950,229,1,1,72.83732,-265.629639,60.73645,3.14159274,0,0,0,0,120,0,1), +(@OGUID+262,136952,229,1,1,69.97309,-329.867767,55.8721352,3.14159274,0,0,0,0,120,0,1), +(@OGUID+263,136955,229,1,1,56.3640633,-306.158142,54.01571,3.14159274,0,0,0,0,120,0,1), +(@OGUID+264,176459,229,1,1,68.64788,-270.903229,60.73748,3.14159274,0,0,0,0,120,0,1), +(@OGUID+265,176460,229,1,1,70.54355,-257.169067,60.74014,3.124123,0,0,0,0,120,0,1), +(@OGUID+266,176461,229,1,1,69.3254242,-265.102051,60.60442,3.14159274,0,0,0,0,120,0,1), +(@OGUID+267,176462,229,1,1,90.48029,-283.217,60.70017,3.14159274,0,0,0,0,120,0,1), +(@OGUID+268,176463,229,1,1,91.63333,-262.053284,60.70017,3.14159274,0,0,0,0,120,0,1), +(@OGUID+269,136922,229,1,1,88.21516,-415.1,110.95723,2.72271276,0,0,0,0,120,0,1), +(@OGUID+270,136923,229,1,1,87.4498444,-468.453552,116.886841,2.72271276,0,0,0,0,120,0,1), +(@OGUID+271,136925,229,1,1,40.7229156,-586.7098,30.6816959,1.74532676,0,0,0,0,120,0,1), +(@OGUID+272,136926,229,1,1,43.3148575,-572.47644,30.6816959,1.74532676,0,0,0,0,120,0,1), +(@OGUID+273,136927,229,1,1,4.75705242,-567.072754,29.2221813,1.74532676,0,0,0,0,120,0,1), +(@OGUID+274,136928,229,1,1,8.392041,-583.677,29.2221813,1.74532676,0,0,0,0,120,0,1), +(@OGUID+275,136929,229,1,1,152.587021,-396.408356,121.963966,-1.57079577,0,0,0,0,120,0,1), +(@OGUID+276,136930,229,1,1,147.161285,-389.9539,121.963966,-1.57079577,0,0,0,0,120,0,1), +(@OGUID+277,136931,229,1,1,149.6765,-386.148346,121.963966,-1.57079577,0,0,0,0,120,0,1), +(@OGUID+278,136932,229,1,1,157.7783,-389.9539,121.963966,-1.57079577,0,0,0,0,120,0,1), +(@OGUID+279,136933,229,1,1,150.609192,-396.408356,121.963966,-1.57079577,0,0,0,0,120,0,1), +(@OGUID+280,136934,229,1,1,155.816116,-390.034546,121.963966,-1.57079577,0,0,0,0,120,0,1), +(@OGUID+281,136935,229,1,1,145.1764,-390.034546,121.963966,-1.57079577,0,0,0,0,120,0,1), +(@OGUID+282,136936,229,1,1,153.360245,-386.1687,121.963966,-1.57079577,0,0,0,0,120,0,1), +(@OGUID+283,136937,229,1,1,149.569,-454.6866,121.963966,1.57079577,0,0,0,0,120,0,1), +(@OGUID+284,136938,229,1,1,153.252762,-454.70694,121.963966,1.57079577,0,0,0,0,120,0,1), +(@OGUID+285,136939,229,1,1,157.752838,-450.1581,121.963966,1.57079577,0,0,0,0,120,0,1), +(@OGUID+286,136940,229,1,1,155.76796,-450.238739,121.963966,1.57079577,0,0,0,0,120,0,1), +(@OGUID+287,136941,229,1,1,152.320068,-444.3045,121.963966,1.57079577,0,0,0,0,120,0,1), +(@OGUID+288,136942,229,1,1,150.342224,-444.3045,121.963966,1.57079577,0,0,0,0,120,0,1), +(@OGUID+289,136943,229,1,1,147.113144,-450.1581,121.963966,1.57079577,0,0,0,0,120,0,1), +(@OGUID+290,136944,229,1,1,145.15094,-450.238739,121.963966,1.57079577,0,0,0,0,120,0,1), +(@OGUID+291,136945,229,1,1,-174.133926,-342.7732,64.39388,3.14159274,0,0,0,0,120,0,1), +(@OGUID+292,136946,229,1,1,-172.351959,-462.842072,87.39826,-1.60570168,0,0,0,0,120,0,1), +(@OGUID+293,136947,229,1,1,16.9936657,-253.820969,65.44975,3.14159274,0,0,0,0,120,0,1), +(@OGUID+294,136948,229,1,1,8.170414,-268.9804,65.44975,3.14159274,0,0,0,0,120,0,1), +(@OGUID+295,136949,229,1,1,51.2451057,-274.132843,65.44975,3.14159274,0,0,0,0,120,0,1), +(@OGUID+296,136951,229,1,1,68.8801651,-283.793518,60.73645,3.14159274,0,0,0,0,120,0,1), +(@OGUID+297,136954,229,1,1,16.1673641,-280.865326,9.61726,3.14159274,0,0,0,0,120,0,1), +(@OGUID+298,136957,229,1,1,117.4544,-254.2912,91.57107,2.72271276,0,0,0,0,120,0,1), +(@OGUID+299,136959,229,1,1,125.65564,-280.80777,91.57107,2.72271276,0,0,0,0,120,0,1), +(@OGUID+300,136961,229,1,1,46.4689255,-309.64917,91.57107,2.72271276,0,0,0,0,120,0,1), +(@OGUID+301,136962,229,1,1,106.176666,-265.9525,91.57107,-1.46607578,0,0,0,0,120,0,1), +(@OGUID+302,136963,229,1,1,107.690056,-253.095154,91.57107,2.72271276,0,0,0,0,120,0,1), +(@OGUID+303,136964,229,1,1,82.58793,-364.5863,116.859177,2.72271276,0,0,0,0,120,0,1), +(@OGUID+304,153464,229,1,1,-36.1175957,-583.8276,-18.8201447,1.97221982,0,0,0,0,120,0,1), +(@OGUID+305,153469,229,1,1,-73.99849,-453.3353,-18.9350014,-3.08918333,0,0,0,0,120,0,1), +(@OGUID+306,153469,229,1,1,-84.26773,-350.10376,70.9524155,1.91986156,0,0,0,0,120,0,1), +(@OGUID+307,153469,229,1,1,86.85506,-587.50116,30.6085377,2.63544416,0,0,0,0,120,0,1), +(@OGUID+308,164725,229,1,1,126.878883,-319.108551,70.93496,3.14159274,0,0,0,0,120,0,0), +(@OGUID+309,175334,229,1,1,33.71665,-466.067383,-18.46511,-1.53588951,0,0,0,0,120,0,1), +(@OGUID+310,175584,229,1,1,-14.3415041,-395.7287,48.5381279,2.86233544,0,0,0,0,120,0,1), +(@OGUID+311,175588,229,1,1,-139.523071,-525.87854,6.363978,-2.4260025,0,0,0,0,120,0,1), +(@OGUID+312,175606,229,1,1,-100.230141,-529.5372,-5.773813,-0.43633157,0,0,0,0,120,0,1), +(@OGUID+313,175606,229,1,1,-100.324532,-523.847,10.7028713,2.111848,0,0,0,0,120,0,1), +(@OGUID+314,175606,229,1,1,-101.885674,-521.985168,-7.841986,-0.0349062532,0,0,0,0,120,0,1), +(@OGUID+315,175606,229,1,1,-102.4652,-575.651062,9.900889,2.478367,0,0,0,0,120,0,1), +(@OGUID+316,175606,229,1,1,-112.209923,-569.506165,10.1991549,2.18166041,0,0,0,0,120,0,1), +(@OGUID+317,175606,229,1,1,-125.2294,-576.6645,13.7725887,-0.296705216,0,0,0,0,120,0,1), +(@OGUID+318,175606,229,1,1,-126.745758,-514.1637,-12.1469631,3.10665226,0,0,0,0,120,0,1), +(@OGUID+319,175606,229,1,1,-129.513687,-441.7,24.4328327,0.9773831,0,0,0,0,120,0,1), +(@OGUID+320,175606,229,1,1,-131.570419,-439.602051,22.8934059,-1.134463,0,0,0,0,120,0,1), +(@OGUID+321,175606,229,1,1,-131.804932,-526.783936,6.556513,-2.28637886,0,0,0,0,120,0,1), +(@OGUID+322,175606,229,1,1,-132.261276,-474.847717,9.822438,-2.82742977,0,0,0,0,120,0,1), +(@OGUID+323,175606,229,1,1,-132.404343,-514.960754,-15.93743,-1.79768872,0,0,0,0,120,0,1), +(@OGUID+324,175606,229,1,1,-138.894241,-439.497467,24.8087673,1.76278245,0,0,0,0,120,0,1), +(@OGUID+325,175606,229,1,1,-139.15303,-434.7381,23.11234,-2.740162,0,0,0,0,120,0,1), +(@OGUID+326,175606,229,1,1,-144.504959,-441.602783,23.1015816,0.3316107,0,0,0,0,120,0,1), +(@OGUID+327,175606,229,1,1,-146.906982,-441.462952,22.4743786,-0.8028509,0,0,0,0,120,0,1), +(@OGUID+328,175606,229,1,1,-147.8808,-448.5486,20.091135,1.3264482,0,0,0,0,120,0,1), +(@OGUID+329,175606,229,1,1,-150.1039,-470.007965,16.2278,1.76278245,0,0,0,0,120,0,1), +(@OGUID+330,175606,229,1,1,-153.787643,-515.2272,-15.9504414,-0.95993,0,0,0,0,120,0,1), +(@OGUID+331,175606,229,1,1,-154.378235,-552.2341,9.918845,-2.0594883,0,0,0,0,120,0,1), +(@OGUID+332,175606,229,1,1,-154.59169,-525.218567,8.161819,2.042035,0,0,0,0,120,0,1), +(@OGUID+333,175606,229,1,1,-154.769653,-541.317,9.022168,-0.104719326,0,0,0,0,120,0,1), +(@OGUID+334,175606,229,1,1,-154.889313,-570.3387,10.0172291,2.478367,0,0,0,0,120,0,1), +(@OGUID+335,175607,229,1,1,20.4895344,-438.85733,-18.78273,-2.26892543,0,0,0,0,120,0,1), +(@OGUID+336,175608,229,1,1,23.8203316,-440.8061,-18.75866,1.43116808,0,0,0,0,120,0,1), +(@OGUID+337,175609,229,1,1,20.99143,-443.1193,-18.91834,1.08210289,0,0,0,0,120,0,1), +(@OGUID+338,175609,229,1,1,23.7352352,-445.173035,-18.9350014,2.111848,0,0,0,0,120,0,1), +(@OGUID+339,175609,229,1,1,25.9651279,-443.5448,-18.9203186,-2.75761318,0,0,0,0,120,0,1), +(@OGUID+340,175886,229,1,1,-34.5386,-589.6351,30.9964237,-0.593412,0,0,0,0,120,0,1), +(@OGUID+341,175886,229,1,1,-34.7323723,-589.6146,30.9339237,1.62315571,0,0,0,0,120,0,1), +(@OGUID+342,175886,229,1,1,-35.6387024,-589.632263,30.9825344,-1.97221982,0,0,0,0,120,0,1), +(@OGUID+343,175886,229,1,1,-36.297657,-589.616943,31.0103111,1.09955645,0,0,0,0,120,0,1), +(@OGUID+344,175886,229,1,1,-37.7856445,-589.639465,30.9964237,-3.08918333,0,0,0,0,120,0,1), +(@OGUID+345,175949,229,1,1,-128.233643,-482.381,25.4534683,-0.0174524616,0,0,0,0,120,0,1), +(@OGUID+346,175950,229,1,1,-11.1344738,-466.205139,-16.8552532,-1.55334139,0,0,0,0,120,0,1), +(@OGUID+347,176089,229,1,1,-18.8625946,-360.393951,-31.426754,2.513274,0,0,0,0,120,0,1), +(@OGUID+348,176090,229,1,1,-19.0726433,-361.990631,-31.523716,-0.3490652,0,0,0,0,120,0,1), +(@OGUID+349,176425,229,1,1,60.0723534,-511.967224,29.2142811,-3.13874269,0,0,0,0,120,0,1), +(@OGUID+350,176426,229,1,1,56.9334679,-556.048035,30.66044,-3.13874269,0,0,0,0,120,0,1), +(@OGUID+351,176427,229,1,1,53.1921,-461.069824,24.3897438,-3.14149952,0,0,0,0,120,0,1), +(@OGUID+352,176428,229,1,1,-63.25678,-581.4829,29.29337,-3.14149952,0,0,0,0,120,0,1), +(@OGUID+353,176429,229,1,1,-37.6862526,-551.8221,16.2163448,3.14159274,0,0,0,0,120,0,1), +(@OGUID+354,176430,229,1,1,-25.3348827,-478.438263,17.2503757,3.14159274,0,0,0,0,120,0,1), +(@OGUID+355,176431,229,1,1,-46.3864632,-448.609955,-18.5644283,3.14159274,0,0,0,0,120,0,1), +(@OGUID+356,176432,229,1,1,-2.64241648,-579.1437,-18.7608662,3.14159274,0,0,0,0,120,0,1), +(@OGUID+357,176433,229,1,1,26.982,-583.365234,-18.515255,3.14159274,0,0,0,0,120,0,1), +(@OGUID+358,176434,229,1,1,35.6424026,-550.729858,-18.41096,3.14159274,0,0,0,0,120,0,1), +(@OGUID+359,176435,229,1,1,33.1642647,-471.046875,-18.5059147,3.14159274,0,0,0,0,120,0,1), +(@OGUID+360,176436,229,1,1,31.9839039,-495.3488,-18.8984013,-3.13874269,0,0,0,0,120,0,1), +(@OGUID+361,176437,229,1,1,-39.3852,-424.8782,-18.84707,3.14159274,0,0,0,0,120,0,1), +(@OGUID+362,176438,229,1,1,-23.2051277,-410.6093,-18.8984013,3.14159274,0,0,0,0,120,0,1), +(@OGUID+363,176439,229,1,1,-76.09747,-418.800659,-18.9234028,-1.83259165,0,0,0,0,120,0,1), +(@OGUID+364,176440,229,1,1,-59.9712257,-409.6412,-18.8442917,3.14159274,0,0,0,0,120,0,1), +(@OGUID+365,176441,229,1,1,-79.5308762,-453.927216,-18.8331814,3.14159274,0,0,0,0,120,0,1), +(@OGUID+366,176442,229,1,1,-15.437788,-368.78067,49.49363,3.14085126,0,0,0,0,120,0,1), +(@OGUID+367,176443,229,1,1,-121.137337,-296.445465,71.0397,3.14159274,0,0,0,0,120,0,1), +(@OGUID+368,176444,229,1,1,-137.26358,-305.604919,70.9605942,-1.83259165,0,0,0,0,120,0,1), +(@OGUID+369,176445,229,1,1,-59.1198235,-339.829254,70.9605942,-1.83259165,0,0,0,0,120,0,1), +(@OGUID+370,176446,229,1,1,-87.3357,-348.370026,71.0397,3.14159274,0,0,0,0,120,0,1), +(@OGUID+371,176454,229,1,1,60.57147,-562.5008,30.48111,3.14159274,0,0,0,0,120,0,1), +(@OGUID+372,176455,229,1,1,52.2036819,-470.448181,25.11214,3.14148068,0,0,0,0,120,0,1), +(@OGUID+373,176456,229,1,1,-60.6475868,-584.3826,29.1114845,3.14159274,0,0,0,0,120,0,1), +(@OGUID+374,176457,229,1,1,-115.273315,-428.517548,-18.7010059,3.14159274,0,0,0,0,120,0,1), +(@OGUID+375,176458,229,1,1,-114.981789,-421.896851,-18.9178715,3.14159274,0,0,0,0,120,0,1); diff --git a/sql/updates/world/2011_12_18_00_world_creature_addon.sql b/sql/updates/world/2011_12_18_00_world_creature_addon.sql new file mode 100644 index 00000000000..5df7f000b06 --- /dev/null +++ b/sql/updates/world/2011_12_18_00_world_creature_addon.sql @@ -0,0 +1,2 @@ +-- Delete addons for some creatures that has been removed +DELETE FROM `creature_addon` WHERE `guid` IN (209318,209333,209315,209337,209308,209312,209331,209320,209335,209318,209333,209315,209337,209308,209312,209331,209320,209335); diff --git a/sql/updates/world/2011_12_18_01_world_gossip.sql b/sql/updates/world/2011_12_18_01_world_gossip.sql new file mode 100644 index 00000000000..eb76ffe4009 --- /dev/null +++ b/sql/updates/world/2011_12_18_01_world_gossip.sql @@ -0,0 +1,42 @@ +-- Gossip Menu insert from sniff +DELETE FROM `gossip_menu` WHERE `entry`=7610 AND `text_id`=9261; +INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (7610,9261); +DELETE FROM `gossip_menu` WHERE `entry`=8249 AND `text_id`=10266; +INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (8249,10266); +DELETE FROM `gossip_menu` WHERE `entry`=7612 AND `text_id`=9263; +INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (7612,9263); +DELETE FROM `gossip_menu` WHERE `entry`=7611 AND `text_id`=9262; +INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (7611,9262); +DELETE FROM `gossip_menu` WHERE `entry`=7588 AND `text_id`=9236; +INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (7588,9236); +DELETE FROM `gossip_menu` WHERE `entry`=7590 AND `text_id`=9238; +INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (7590,9238); +DELETE FROM `gossip_menu` WHERE `entry`=7591 AND `text_id`=9239; +INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (7591,9239); +DELETE FROM `gossip_menu` WHERE `entry`=7589 AND `text_id`=9237; +INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (7589,9237); +DELETE FROM `gossip_menu` WHERE `entry`=7526 AND `text_id`=9128; +INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (7526,9128); +DELETE FROM `gossip_menu` WHERE `entry`=7614 AND `text_id`=9265; +INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (7614,9265); +-- Creature Gossip_menu_id Update from sniff +UPDATE `creature_template` SET `gossip_menu_id`=7610 WHERE `entry`=18004; +UPDATE `creature_template` SET `gossip_menu_id`=8249 WHERE `entry`=21172; +UPDATE `creature_template` SET `gossip_menu_id`=7612 WHERE `entry`=18005; +UPDATE `creature_template` SET `gossip_menu_id`=7611 WHERE `entry`=18006; +UPDATE `creature_template` SET `gossip_menu_id`=7588 WHERE `entry`=18010; +UPDATE `creature_template` SET `gossip_menu_id`=7590 WHERE `entry`=18019; +UPDATE `creature_template` SET `gossip_menu_id`=7589 WHERE `entry`=18009; +UPDATE `creature_template` SET `gossip_menu_id`=7614 WHERE `entry`=18003; +-- Creature Gossip_menu_option Update from sniff +DELETE FROM `gossip_menu_option` WHERE `menu_id` IN (8249,7612,7611,7588,7590,7589,7495) AND `id`=0; +DELETE FROM `gossip_menu_option` WHERE `menu_id`=7590 AND `id`=1; +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 +(8249,0,1, 'I want to browse your goods.',3,128,0,0,0,0, ''), +(7612,0,1, 'I wish to buy from you.',3,128,0,0,0,0, ''), +(7611,0,1, 'I would like to buy from you.',3,128,0,0,0,0, ''), +(7588,0,1, 'Show me your wares, Maktu.',3,128,0,0,0,0, ''), +(7590,0,1, 'Let me browse your reagents and poison supplies.',3,128,0,0,0,0, ''), +(7590,1,0, 'Specialist, eh? Just what kind of specialist are you, anyway?',1,1,7591,0,0,0, ''), +(7589,0,1, 'I wish to browse your wares.',3,128,0,0,0,0, ''), +(7495,0,0, 'Watcher Leesa''oh, why are you out here?',1,1,7526,0,0,0, ''); diff --git a/sql/updates/world/2011_12_18_02_world_spell_script_names.sql b/sql/updates/world/2011_12_18_02_world_spell_script_names.sql new file mode 100644 index 00000000000..c5f9a4376df --- /dev/null +++ b/sql/updates/world/2011_12_18_02_world_spell_script_names.sql @@ -0,0 +1,3 @@ +DELETE FROM `spell_script_names` WHERE `ScriptName`='spell_gen_luck_of_the_draw'; +INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES +(72221,'spell_gen_luck_of_the_draw'); diff --git a/sql/updates/world/2011_12_18_03_world_trinity_string.sql b/sql/updates/world/2011_12_18_03_world_trinity_string.sql new file mode 100644 index 00000000000..d26cc356cff --- /dev/null +++ b/sql/updates/world/2011_12_18_03_world_trinity_string.sql @@ -0,0 +1,3 @@ +DELETE FROM `trinity_string` WHERE `entry`=5031; +INSERT INTO `trinity_string` (`entry`,`content_default`) VALUES +(5031, 'AIName: %s ScriptName: %s'); diff --git a/sql/updates/world/2011_12_18_04_world_conditions.sql b/sql/updates/world/2011_12_18_04_world_conditions.sql new file mode 100644 index 00000000000..a56151a9f8f --- /dev/null +++ b/sql/updates/world/2011_12_18_04_world_conditions.sql @@ -0,0 +1,7 @@ +UPDATE spell_dbc SET EffectImplicitTargetA1 = 22, EffectImplicitTargetB1 = 7 WHERE Id = 58630; + +DELETE FROM conditions WHERE SourceTypeOrReferenceId = 13 AND SourceEntry IN (61863, 68663); +INSERT INTO conditions (SourceTypeOrReferenceId, SourceEntry, ConditionTypeOrReference, ConditionValue1, Comment) VALUES +(13, 61863, 18, 1, 'The Prophet Tharon''ja - Achievement Check'), +(13, 68663, 18, 1, 'The Black Knight - Kill Credit'), +(13, 58630, 18, 1, 'Mal''Ganis - Kill Credit'); diff --git a/sql/updates/world/2011_12_18_04_world_misc.sql b/sql/updates/world/2011_12_18_04_world_misc.sql new file mode 100644 index 00000000000..3404e4f285f --- /dev/null +++ b/sql/updates/world/2011_12_18_04_world_misc.sql @@ -0,0 +1,87 @@ +-- Remove empty EAI Script call from the following entries +UPDATE `creature_template` SET `AIName` = '' WHERE `entry` IN (30243,30632); + +-- Crimson Hammersmith summon from Blacksmithing Plans fix +-- Black Guard Swordsmith summon from Blacksmithing Plans fix +UPDATE `gameobject_template` SET `AIName` = 'SmartGameObjectAI' WHERE `entry` IN (176325, 176327); +DELETE FROM `smart_scripts` WHERE `entryorguid` IN (176325, 176327) AND `source_type`=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 +(176325, 1, 0, 0, 64, 0, 100, 1, 0, 0, 0, 0, 12, 11120, 6, 60000, 0, 0, 0, 8, 0, 0, 0, 3585.5, -3000.15, 125, 2.19912, 'Blacksmithing Plans - summon Crimson Hammersmith'), +(176327, 1, 0, 0, 64, 0, 100, 1, 0, 0, 0, 0, 12, 11121, 6, 60000, 0, 0, 0, 8, 0, 0, 0, 3818.4, -3693.32, 144.242, 0.261799, 'Blacksmithing Plans - summon Black Guard Swordsmith'); + +-- Sleeping Giants fix +UPDATE `creature_template` SET `AIName` = 'SmartAI' WHERE `entry` = 24669; +DELETE FROM `smart_scripts` WHERE (`entryorguid`=24669 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 +(24669, 0, 0, 1, 8, 0, 100, 0, 44261, 1, 0, 0, 33, 24669, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Dormant Vrykul - Sleeping Giants quest credit'), +(24669, 0, 1, 0, 61, 0, 100, 0, 0, 0, 0, 0, 37, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Dormant Vrykul - Sleeping Giants despawn'); + +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=18 AND `SourceEntry`=34083; +INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES +(18, 0, 34083, 0, 24, 1, 24669, 0, 63, '', 'Awakening Rod target limit to Dormant Vrykul'); -- changed to item script by Nay, not tested. + +-- Culling of Stratholme Hemotoxin SAI spell fix version +SET @ENTRY := 28199; +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` VALUES +(@ENTRY, 0, 0, 0, 9, 0, 25, 2, 0, 20, 5000, 8000, 11, 52522, 32, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 'Tomb Stalker - Cast Hemotoxin Normal'), +(@ENTRY, 0, 1, 0, 9, 0, 40, 4, 0, 20, 5000, 8000, 11, 58782, 32, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 'Tomb Stalker - Cast Hemotoxin Heroic'); + +DELETE FROM `creature` WHERE `id` IN (28318, 29346); +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 +(40153, 28318, 530, 1, 1, 0, 0, -1775.148438, 5548.291992, -12.428190, 4.146070, 300, 0, 0, 1, 0, 0, 0, 0, 0), -- Grand Apothecary Putress +(40251, 29346, 530, 1, 1, 0, 0, 1925, -4123.1899, 43.1780, 4.79965, 300, 0, 0, 1, 0, 0, 0, 0, 0); -- Apothecary Karlov + +-- Fix NPCs falling underground when killed by nelegalno +UPDATE `creature_template` SET `InhabitType` = 3 WHERE `entry` IN (5936, 24899); -- Orca and Scoodles + +-- Removes wrong restriction from G.N.E.R.D. rage +DELETE FROM `achievement_criteria_data` WHERE `criteria_id`=3882 AND `type`=16; + +-- Kalu'ak Fishing Derby start time fix +UPDATE `game_event` SET `start_time` = '2011-01-01 13:00:00' WHERE `eventEntry`=63; +UPDATE `game_event` SET `start_time` = '2011-01-01 14:00:00' WHERE `eventEntry`=64; + +-- Stranglethorn Fishing Extravaganza start time fix ( http://old.wowhead.com/event=301 ) +UPDATE `game_event` SET `start_time` = '2011-01-01 14:00:00' WHERE `eventEntry` IN (14, 15, 62); +UPDATE `game_event` SET `description` = 'Stranglethorn Fishing Extravaganza Announce' WHERE `eventEntry`=14; +UPDATE `game_event` SET `description` = 'Stranglethorn Fishing Extravaganza Fishing Pools' WHERE `eventEntry`=15; +UPDATE `game_event` SET `description` = 'Stranglethorn Fishing Extravaganza Turn-ins' WHERE `eventEntry`=62; + +-- Eitrigg's Wisdom fix +SET @GOSSIP = 21312; +SET @NPC = 3144; +SET @QUEST = 4941; +-- Add gossip options for each menu id +DELETE FROM `gossip_menu_option` WHERE `menu_id` BETWEEN @GOSSIP AND @GOSSIP+7; +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 +(@GOSSIP, 0, 0, 'Hello, Eitrigg. I bring news from Blackrock Spire.', 1, 1, @GOSSIP+1, 0, 0, 0, ''), +(@GOSSIP+1, 0, 0, 'There is only one Warchief, Eitrigg!', 1, 1, @GOSSIP+2, 0, 0, 0, ''), +(@GOSSIP+2, 0, 0, 'What do you mean?', 1, 1, @GOSSIP+3, 0, 0, 0, ''), +(@GOSSIP+3, 0, 0, 'Hearthglen? But...', 1, 1, @GOSSIP+4, 0, 0, 0, ''), +(@GOSSIP+4, 0, 0, 'I will take you up on that offer, Eitrigg.', 1, 1, @GOSSIP+5, 0, 0, 0, ''), +(@GOSSIP+5, 0, 0, 'Ah, so that is how they pushed the Dark Iron to the lower parts of the Spire.', 1, 1, @GOSSIP+6, 0, 0, 0, ''), +(@GOSSIP+6, 0, 0, 'Perhaps there exists a way?', 1, 1, @GOSSIP+7, 0, 0, 0, ''), +(@GOSSIP+7, 0, 0, 'As you wish, Eitrigg.', 1, 1, 0, 0, 0, 0, ''); +-- Add gossip menus (text values already in db) +DELETE FROM `gossip_menu` WHERE `entry`BETWEEN @GOSSIP+1 AND @GOSSIP+7; +INSERT INTO `gossip_menu` (`entry`, `text_id`) VALUES +(@GOSSIP+1, 3574), +(@GOSSIP+2, 3575), +(@GOSSIP+3, 3576), +(@GOSSIP+4, 3577), +(@GOSSIP+5, 3578), +(@GOSSIP+6, 3579), +(@GOSSIP+7, 3580); +-- Add Condtion so gossip only shows when on quest +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=15 AND `SourceGroup`=@GOSSIP; +INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES +(15, @GOSSIP, 0, 0, 9, 4941, 0, 0, 0, '', NULL); +-- Add SAI for quest complete and close of gossip when last option selected +UPDATE `creature_template` SET `AIName`= 'SmartAI' WHERE `entry`=@NPC; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@NPC; +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 +(@NPC,0,0,1,62,0,100,0,@GOSSIP+7,0,0,0,72,0,0,0,0,0,0,7,0,0,0,0.0,0.0,0.0,0.0,'Eitrigg - Select As you wish, Eitrigg. - Close gossip'), +(@NPC,0,1,0,61,0,100,0,0,0,0,0,15,@QUEST,0,0,0,0,0,7,0,0,0,0.0,0.0,0.0,0.0,'Eitrigg - On link - Give credit quest (4941)'); diff --git a/sql/updates/world/2011_12_18_05_world_misc.sql b/sql/updates/world/2011_12_18_05_world_misc.sql new file mode 100644 index 00000000000..b8435c4211e --- /dev/null +++ b/sql/updates/world/2011_12_18_05_world_misc.sql @@ -0,0 +1,94 @@ +-- Quest: The Black Knight's Orders (13663) SQL fix +-- Black Knights Camp Spawns +SET @OGUID=100489; -- Need 10 +SET @CGUID=152277; -- Need 3 +DELETE FROM `gameobject` WHERE `guid` BETWEEN @OGUID+0 AND @OGUID+9; +INSERT INTO `gameobject` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`position_x`,`position_y`,`position_z`,`orientation`,`rotation0`,`rotation1`,`rotation2`,`rotation3`,`spawntimesecs`,`animprogress`,`state`) VALUES +(@OGUID+0,194357,571,1,1,9070.324,2050.733,67.21755,0,0,0,0,1,0,0,0), -- Poison Vial +(@OGUID+1,194357,571,1,1,9073.764,2050.120,68.15718,0,0,0,0,1,0,0,0), -- Poison Vial +(@OGUID+2,194357,571,1,1,9074.699,2050.709,68.17049,0,0,0,0,1,0,0,0), -- Poison Vial +(@OGUID+3,194357,571,1,1,9069.595,2050.349,67.21755,0,0,0,0,1,0,0,0), -- Poison Vial +(@OGUID+4,194357,571,1,1,9069.961,2050.538,67.21755,0,0,0,0,1,0,0,0), -- Poison Vial +(@OGUID+5,194357,571,1,1,9072.077,2049.292,67.78963,0,0,0,0,1,0,0,0), -- Poison Vial +(@OGUID+6,194357,571,1,1,9065.680,2052.618,67.28638,0,0,0,0,1,0,0,0), -- Poison Vial +(@OGUID+7,194394,571,1,1,9083.578,2041.696,67.81812,0,0,0,0,1,0,0,0), -- Cult Rune Circle +(@OGUID+8,195011,571,1,1,9078.471,2057.547,67.21606,0,0,0,0.9981346,0.06105176,0,0,0), -- Bonfire +(@OGUID+9,300007,571,1,1,8523.51,566.994,552.841,2.1518,0,0,0.880019,0.474938,300,0,1); -- Spell Focus GO? + +DELETE FROM `creature` WHERE `id`=33537; +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 +(@CGUID+0,33537,571,1,1,0,0,9071.043,2075.388,67.21542,4.935980,120,0,0,1,0,0,0,0,0), +(@CGUID+1,33537,571,1,1,0,0,9074.414,2049.259,67.34636,2.181662,120,0,0,1,0,0,0,0,0), +(@CGUID+2,33537,571,1,1,0,0,9081.280,2058.925,67.38979,3.612832,120,0,0,1,0,0,0,0,0); + +-- Template updates +UPDATE `creature_template` SET `unit_flags`=`unit_flags`|8,`speed_run`=4, `InhabitType`=5 WHERE `entry`=33519; -- Black Knight''s Gryphon +UPDATE `creature_template` SET `faction_A`=2080,`faction_H`=2080,`unit_flags`=`unit_flags`|32768,`equipment_id`=823 WHERE `entry`=33537; -- Cult Conspirator + +-- See black knight's invisibility while on quest The Black Knight's Orders +DELETE FROM `spell_area` WHERE `spell`=67471 AND `area` IN (4658); +INSERT INTO `spell_area` (`spell`,`area`,`quest_start`,`quest_start_active`,`quest_end`,`aura_spell`,`racemask`,`gender`,`autocast`) VALUES +(67471,4658,13663,1,13663,0,0,2,1); -- See Black Knight Invis + +-- Addon data +DELETE FROM `creature_template_addon` WHERE `entry` IN (33519,33537); +INSERT INTO `creature_template_addon` (`entry`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES +(33519,0,0,2049,0,NULL),-- Black Knight''s Gryphon +(33537,0,1,1,0,NULL); -- Cult Conspirator + +-- SAI for Black Knight''s Gryphon +SET @entry :=33519; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@entry; +DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `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,27,0,100,0,0,0,0,0,53,0,@entry,0,13663,0,0,1,0,0,0,0,0,0,0,'Black Knight''s Gryphon - On passenger - Start WP movement'), +(@entry,0,1,0,40,0,100,0,40,@entry,0,0,33,33519,0,0,0,0,0,7,0,0,0,0,0,0,0,'Black Knight''s Gryphon - On WP 40 - Quest Credit'), +(@entry,0,2,0,40,0,100,0,43,@entry,0,0,11,50630,0,0,0,0,0,7,0,0,0,0,0,0,0,'Black Knight''s Gryphon - On WP 43 - Dismount Spell'), +(@entry,0,3,0,40,0,100,0,44,@entry,0,0,41,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Black Knight''s Gryphon - On WP 44 - Despawn'); + +DELETE FROM `waypoints` WHERE `entry`=33519; +INSERT INTO `waypoints` (`entry`,`pointid`,`position_x`,`position_y`,`position_z`,`point_comment`) VALUES +(33519, 1,8521.271,569.5960,552.8375,'Black Knight''s Gryphon'), +(33519, 2,8517.864,579.1095,553.2125,'Black Knight''s Gryphon'), +(33519, 3,8513.146,594.6724,551.2125,'Black Knight''s Gryphon'), +(33519, 4,8505.263,606.5569,550.4177,'Black Knight''s Gryphon'), +(33519, 5,8503.017,628.4188,547.4177,'Black Knight''s Gryphon'), +(33519, 6,8480.271,652.7083,547.4177,'Black Knight''s Gryphon'), +(33519, 7,8459.121,686.1427,547.4177,'Black Knight''s Gryphon'), +(33519, 8,8436.802,713.8687,547.3428,'Black Knight''s Gryphon'), +(33519, 9,8405.380,740.0045,547.4177,'Black Knight''s Gryphon'), +(33519,10,8386.139,770.6009,547.5881,'Black Knight''s Gryphon'), +(33519,11,8374.297,802.2525,547.9304,'Black Knight''s Gryphon'), +(33519,12,8374.271,847.0363,548.0427,'Black Knight''s Gryphon'), +(33519,13,8385.988,868.9881,548.0491,'Black Knight''s Gryphon'), +(33519,14,8413.027,867.8573,547.2991,'Black Knight''s Gryphon'), +(33519,15,8452.552,869.0339,547.2991,'Black Knight''s Gryphon'), +(33519,16,8473.058,875.2012,547.2955,'Black Knight''s Gryphon'), +(33519,17,8472.278,912.3134,547.4169,'Black Knight''s Gryphon'), +(33519,18,8479.666,954.1650,547.3298,'Black Knight''s Gryphon'), +(33519,19,8477.349,1001.368,547.3372,'Black Knight''s Gryphon'), +(33519,20,8484.538,1025.797,547.4622,'Black Knight''s Gryphon'), +(33519,21,8525.363,1029.284,547.4177,'Black Knight''s Gryphon'), +(33519,22,8532.808,1052.904,548.1677,'Black Knight''s Gryphon'), +(33519,23,8537.356,1077.927,554.5791,'Black Knight''s Gryphon'), +(33519,24,8540.528,1083.379,569.6827,'Black Knight''s Gryphon'), +(33519,25,8563.641,1140.965,569.6827,'Black Knight''s Gryphon'), +(33519,26,8594.897,1205.458,569.6827,'Black Knight''s Gryphon'), +(33519,27,8617.104,1257.399,566.1833,'Black Knight''s Gryphon'), +(33519,28,8648.496,1329.349,558.0187,'Black Knight''s Gryphon'), +(33519,29,8667.723,1388.411,546.1880,'Black Knight''s Gryphon'), +(33519,30,8699.145,1474.898,528.2197,'Black Knight''s Gryphon'), +(33519,31,8726.869,1546.006,501.7741,'Black Knight''s Gryphon'), +(33519,32,8739.058,1592.157,478.5511,'Black Knight''s Gryphon'), +(33519,33,8750.799,1636.771,455.0797,'Black Knight''s Gryphon'), +(33519,34,8760.006,1669.482,423.2208,'Black Knight''s Gryphon'), +(33519,35,8783.310,1701.852,375.8872,'Black Knight''s Gryphon'), +(33519,36,8817.336,1735.731,343.3323,'Black Knight''s Gryphon'), +(33519,37,8882.320,1789.754,301.5807,'Black Knight''s Gryphon'), +(33519,38,8958.597,1841.807,259.9141,'Black Knight''s Gryphon'), +(33519,39,9045.891,1908.076,233.4143,'Black Knight''s Gryphon'), +(33519,40,9107.177,1964.594,215.9704,'Black Knight''s Gryphon'), +(33519,41,9134.763,2036.925,175.1925,'Black Knight''s Gryphon'), +(33519,42,9128.608,2089.091,141.3593,'Black Knight''s Gryphon'), +(33519,43,9093.364,2128.384,99.38685,'Black Knight''s Gryphon'), +(33519,44,9050.709,2123.656,60.24802,'Black Knight''s Gryphon'); diff --git a/sql/updates/world/2011_12_18_06_world_sai.sql b/sql/updates/world/2011_12_18_06_world_sai.sql new file mode 100644 index 00000000000..2fce176cd0f --- /dev/null +++ b/sql/updates/world/2011_12_18_06_world_sai.sql @@ -0,0 +1,14 @@ +SET @JEEVES := 35642; +SET @SPELL_GOODBYE := 68052; +DELETE FROM `spell_linked_spell` WHERE `spell_effect`=@SPELL_GOODBYE AND `spell_trigger`=-68054 AND `type`=0; +INSERT INTO `spell_linked_spell` (`spell_trigger`,`spell_effect`,`type`,`comment`) VALUES +(-68054,@SPELL_GOODBYE,0, 'Jeeves - Say Goodbye'); + +UPDATE `creature_template` SET `AIName`= 'SmartAI' WHERE `entry`=@JEEVES; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@JEEVES 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 +(@JEEVES,0,0,0,8,0,100,0,@SPELL_GOODBYE,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,"Jeeves - On Spellhit - Say Line 0"); + +DELETE FROM `creature_text` WHERE `entry`=@JEEVES; +INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES +(@JEEVES,0,0,"If you'll excuse me, I'm afraid I have other business I must attend to. Please call on me again in the future.",12,0,100,3,0,0, 'Jeeves'); diff --git a/sql/updates/world/2011_12_18_07_world_conditions.sql b/sql/updates/world/2011_12_18_07_world_conditions.sql new file mode 100644 index 00000000000..ef669dd2dbb --- /dev/null +++ b/sql/updates/world/2011_12_18_07_world_conditions.sql @@ -0,0 +1,17 @@ +-- Fix condition for Bom'bay's npc_text, gossip_menu and gossip_menu_option +-- Player must to complete quest 826 'Zalazane' to see gossip_menu_option +DELETE FROM `gossip_menu` WHERE `entry`=3062 AND `text_id` IN (3794,3795); +INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES +(3062,3794), -- text before to complete quest 826 +(3062,3795); -- text after to complete quest 826 +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` IN (14,15) AND `SourceGroup`=3062; +INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES +(14,3062,3794,0,14,826,0,0,0,'', "Bom'bay - show text 3794 if player does not have quest Zalazane"), +(14,3062,3795,0,8,826,0,0,0,'', "Bom'bay - show text 3795 if player has quest Zalazane rewarded"), +(15,3062,0,0,8,826,0,0,0,'', "Bom'bay - show gossip option 0 if player has quest Zalazane rewarded"), +(15,3062,1,0,8,826,0,0,0,'', "Bom'bay - show gossip option 1 if player has quest Zalazane rewarded"), +(15,3062,2,0,8,826,0,0,0,'', "Bom'bay - show gossip option 2 if player has quest Zalazane rewarded"), +(15,3062,3,0,8,826,0,0,0,'', "Bom'bay - show gossip option 3 if player has quest Zalazane rewarded"), +(15,3062,4,0,8,826,0,0,0,'', "Bom'bay - show gossip option 4 if player has quest Zalazane rewarded"), +(15,3062,5,0,8,826,0,0,0,'', "Bom'bay - show gossip option 5 if player has quest Zalazane rewarded"), +(15,3062,6,0,8,826,0,0,0,'', "Bom'bay - show gossip option 6 if player has quest Zalazane rewarded"); diff --git a/src/server/game/AI/ScriptedAI/ScriptedEscortAI.cpp b/src/server/game/AI/ScriptedAI/ScriptedEscortAI.cpp index 06c1570ccd9..c5f04d4ff5f 100644 --- a/src/server/game/AI/ScriptedAI/ScriptedEscortAI.cpp +++ b/src/server/game/AI/ScriptedAI/ScriptedEscortAI.cpp @@ -543,7 +543,6 @@ bool npc_escortAI::GetWaypointPosition(uint32 pointId, float& x, float& y, float if (waypoints.empty()) return false; - ScriptPointVector::const_iterator itrEnd = waypoints.end(); for (ScriptPointVector::const_iterator itr = waypoints.begin(); itr != waypoints.end(); ++itr) { if (itr->uiPointId == pointId) diff --git a/src/server/game/Achievements/AchievementMgr.cpp b/src/server/game/Achievements/AchievementMgr.cpp index c43bfb2ca8b..596c85a6075 100755 --- a/src/server/game/Achievements/AchievementMgr.cpp +++ b/src/server/game/Achievements/AchievementMgr.cpp @@ -1075,7 +1075,6 @@ void AchievementMgr::UpdateAchievementCriteria(AchievementCriteriaTypes type, ui AchievementCriteriaDataSet const* data = sAchievementMgr->GetCriteriaDataSet(achievementCriteria); if (!data || !data->Meets(GetPlayer(), unit)) continue; - break; } SetCriteriaProgress(achievementCriteria, 1); diff --git a/src/server/game/Chat/Commands/TicketCommands.cpp b/src/server/game/Chat/Commands/TicketCommands.cpp index 559d2186ff7..d38da9eb97c 100755 --- a/src/server/game/Chat/Commands/TicketCommands.cpp +++ b/src/server/game/Chat/Commands/TicketCommands.cpp @@ -122,28 +122,29 @@ bool ChatHandler::HandleGMTicketCloseByIdCommand(const char* args) return true; } - // Ticket must be assigned to player, who tries to close it. - uint64 guid = m_session->GetPlayer()->GetGUID(); - if (ticket->IsAssignedNotTo(guid)) + // Ticket should be assigned to the player who tries to close it. + // Console can override though + Player* player = m_session ? m_session->GetPlayer() : NULL; + if (player && ticket->IsAssignedNotTo(player->GetGUID())) { PSendSysMessage(LANG_COMMAND_TICKETCANNOTCLOSE, ticket->GetId()); return true; } - sTicketMgr->CloseTicket(ticket->GetId(), guid); + sTicketMgr->CloseTicket(ticket->GetId(), player ? player->GetGUID() : -1); sTicketMgr->UpdateLastChange(); - std::string msg = ticket->FormatMessageString(*this, m_session->GetPlayer()->GetName(), NULL, NULL, NULL); + std::string msg = ticket->FormatMessageString(*this, player ? player->GetName() : "Console", NULL, NULL, NULL); SendGlobalGMSysMessage(msg.c_str()); // Inform player, who submitted this ticket, that it is closed - if (Player* player = ticket->GetPlayer()) + if (Player* submitter = ticket->GetPlayer()) { - if (player->IsInWorld()) + if (submitter->IsInWorld()) { WorldPacket data(SMSG_GMTICKET_DELETETICKET, 4); data << uint32(GMTICKET_RESPONSE_TICKET_DELETED); - player->GetSession()->SendPacket(&data); + submitter->GetSession()->SendPacket(&data); } } return true; diff --git a/src/server/game/Entities/Pet/Pet.cpp b/src/server/game/Entities/Pet/Pet.cpp index 404fe24d467..f730363d0c6 100755 --- a/src/server/game/Entities/Pet/Pet.cpp +++ b/src/server/game/Entities/Pet/Pet.cpp @@ -908,6 +908,7 @@ bool Guardian::InitStatsForLevel(uint8 petlevel) SetCreateHealth(40*petlevel); SetCreateMana(28 + 10*petlevel); } + SetBonusDamage(m_owner->SpellBaseDamageBonus(SPELL_SCHOOL_MASK_FIRE) * 0.5f); SetBaseWeaponDamage(BASE_ATTACK, MINDAMAGE, float(petlevel * 4 - petlevel)); SetBaseWeaponDamage(BASE_ATTACK, MAXDAMAGE, float(petlevel * 4 + petlevel)); break; diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 5a9a3d2c751..b59c8c0bdd7 100755 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -1850,7 +1850,7 @@ void Player::setDeathState(DeathState s) SetUInt32Value(PLAYER_SELF_RES_SPELL, 0); } -bool Player::BuildEnumData(QueryResult result, WorldPacket* data) +bool Player::BuildEnumData(PreparedQueryResult result, WorldPacket* data) { // 0 1 2 3 4 5 6 7 // "SELECT characters.guid, characters.name, characters.race, characters.class, characters.gender, characters.playerBytes, characters.playerBytes2, characters.level, " @@ -1894,8 +1894,8 @@ bool Player::BuildEnumData(QueryResult result, WorldPacket* data) *data << uint8(playerBytes2 & 0xFF); // facial hair *data << uint8(fields[7].GetUInt8()); // level - *data << uint32(fields[8].GetUInt32()); // zone - *data << uint32(fields[9].GetUInt32()); // map + *data << uint32(fields[8].GetUInt16()); // zone + *data << uint32(fields[9].GetUInt16()); // map *data << fields[10].GetFloat(); // x *data << fields[11].GetFloat(); // y @@ -12863,6 +12863,8 @@ void Player::SwapItem(uint16 src, uint16 dst) RemoveItem(srcbag, srcslot, true); StoreItem(dest, pSrcItem, true); + if (IsBankPos(src)) + ItemAddedQuestCheck(pSrcItem->GetEntry(), pSrcItem->GetCount()); } else if (IsBankPos (dst)) { @@ -12876,6 +12878,7 @@ void Player::SwapItem(uint16 src, uint16 dst) RemoveItem(srcbag, srcslot, true); BankItem(dest, pSrcItem, true); + ItemRemovedQuestCheck(pSrcItem->GetEntry(), pSrcItem->GetCount()); } else if (IsEquipmentPos (dst)) { @@ -13300,11 +13303,7 @@ void Player::UpdateSoulboundTradeItems() // also checks for garbage data for (ItemDurationList::iterator itr = m_itemSoulboundTradeable.begin(); itr != m_itemSoulboundTradeable.end();) { - if (!*itr) - { - m_itemSoulboundTradeable.erase(itr++); - continue; - } + ASSERT(*itr); if ((*itr)->GetOwnerGUID() != GetGUID()) { m_itemSoulboundTradeable.erase(itr++); @@ -13319,16 +13318,10 @@ void Player::UpdateSoulboundTradeItems() } } +//TODO: should never allow an item to be added to m_itemSoulboundTradeable twice void Player::RemoveTradeableItem(Item* item) { - for (ItemDurationList::iterator itr = m_itemSoulboundTradeable.begin(); itr != m_itemSoulboundTradeable.end(); ++itr) - { - if ((*itr) == item) - { - m_itemSoulboundTradeable.erase(itr); - break; - } - } + m_itemSoulboundTradeable.remove(item); } void Player::UpdateItemDuration(uint32 time, bool realtimeonly) @@ -18903,7 +18896,7 @@ void Player::_SaveSkills(SQLTransaction& trans) void Player::_SaveSpells(SQLTransaction& trans) { - for (PlayerSpellMap::iterator itr = m_spells.begin(), next = m_spells.begin(); itr != m_spells.end();) + for (PlayerSpellMap::iterator itr = m_spells.begin(); itr != m_spells.end();) { if (itr->second->state == PLAYERSPELL_REMOVED || itr->second->state == PLAYERSPELL_CHANGED) trans->PAppend("DELETE FROM character_spell WHERE guid = '%u' and spell = '%u'", GetGUIDLow(), itr->first); diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h index 2b84a116ee8..8ee7d1a417f 100755 --- a/src/server/game/Entities/Player/Player.h +++ b/src/server/game/Entities/Player/Player.h @@ -1111,7 +1111,7 @@ class Player : public Unit, public GridObject<Player> void Update(uint32 time); - static bool BuildEnumData(QueryResult result, WorldPacket* data); + static bool BuildEnumData(PreparedQueryResult result, WorldPacket* data); void SetInWater(bool apply); @@ -2500,7 +2500,7 @@ class Player : public Unit, public GridObject<Player> 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); diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index 3b5b210d18e..5a7645bd513 100755 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -1926,12 +1926,7 @@ void Unit::AttackerStateUpdate (Unit* victim, WeaponAttackType attType, bool ext CombatStart(victim); RemoveAurasWithInterruptFlags(AURA_INTERRUPT_FLAG_MELEE_ATTACK); - uint32 hitInfo; - if (attType == BASE_ATTACK) - hitInfo = HITINFO_NORMALSWING2; - else if (attType == OFF_ATTACK) - hitInfo = HITINFO_LEFTSWING; - else + if (attType != BASE_ATTACK && attType != OFF_ATTACK) return; // ignore ranged case // melee attack spell casted at main hand attack only - no normal melee dmg dealt @@ -5474,7 +5469,7 @@ bool Unit::HandleDummyAuraProc(Unit* victim, uint32 damage, AuraEffect* triggere case CLASS_DRUID: RandomSpells.push_back(71484); RandomSpells.push_back(71485); - RandomSpells.push_back(71486); + RandomSpells.push_back(71492); break; case CLASS_HUNTER: RandomSpells.push_back(71486); @@ -5520,7 +5515,7 @@ bool Unit::HandleDummyAuraProc(Unit* victim, uint32 damage, AuraEffect* triggere case CLASS_DRUID: RandomSpells.push_back(71561); RandomSpells.push_back(71556); - RandomSpells.push_back(71558); + RandomSpells.push_back(71560); break; case CLASS_HUNTER: RandomSpells.push_back(71558); @@ -6502,7 +6497,7 @@ bool Unit::HandleDummyAuraProc(Unit* victim, uint32 damage, AuraEffect* triggere RemoveAura(57934); if (!redirectTarget) break; - redirectTarget->CastSpell(this,59628,true); + CastSpell(this,59628,true); CastSpell(redirectTarget,57933,true); break; } diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp index 4e159209e86..020f7bd56a9 100755 --- a/src/server/game/Globals/ObjectMgr.cpp +++ b/src/server/game/Globals/ObjectMgr.cpp @@ -3818,11 +3818,11 @@ void ObjectMgr::LoadQuests() // 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 for proper RequiredSkillId value (skill case) - if (int32 skill_id = SkillByQuestSort(-int32(qinfo->ZoneOrSort))) + if (uint32 skill_id = SkillByQuestSort(-int32(qinfo->ZoneOrSort))) { if (qinfo->RequiredSkillId != skill_id) { - sLog->outErrorDb("Quest %u has `ZoneOrSort` = %i but `RequiredSkillId` does not have a corresponding value (%i).", + sLog->outErrorDb("Quest %u has `ZoneOrSort` = %i but `RequiredSkillId` does not have a corresponding value (%d).", qinfo->GetQuestId(), qinfo->ZoneOrSort, skill_id); //override, and force proper value here? } diff --git a/src/server/game/Maps/Map.cpp b/src/server/game/Maps/Map.cpp index 04a5b102a6d..306af9c962a 100755 --- a/src/server/game/Maps/Map.cpp +++ b/src/server/game/Maps/Map.cpp @@ -30,6 +30,7 @@ #include "MapManager.h" #include "ObjectMgr.h" #include "Group.h" +#include "LFGMgr.h" union u_map_magic { @@ -2318,6 +2319,13 @@ bool InstanceMap::AddPlayerToMap(Player* player) ASSERT(playerBind->save == mapSave); } } + + if (group && group->isLFGGroup()) + if (uint32 dungeonId = sLFGMgr->GetDungeon(group->GetGUID(), true)) + if (LFGDungeonEntry const* dungeon = sLFGDungeonStore.LookupEntry(dungeonId)) + if (LFGDungeonEntry const* randomDungeon = sLFGDungeonStore.LookupEntry(*(sLFGMgr->GetSelectedDungeons(player->GetGUID()).begin()))) + if (dungeon->map == GetId() && dungeon->difficulty == GetDifficulty() && randomDungeon->type == LFG_TYPE_RANDOM) + player->CastSpell(player, LFG_SPELL_LUCK_OF_THE_DRAW, true); } // for normal instances cancel the reset schedule when the diff --git a/src/server/game/Miscellaneous/Language.h b/src/server/game/Miscellaneous/Language.h index a6ff663b302..a5935e1de9f 100755 --- a/src/server/game/Miscellaneous/Language.h +++ b/src/server/game/Miscellaneous/Language.h @@ -946,8 +946,9 @@ enum TrinityStrings LANG_GOINFO_NAME = 5027, LANG_GOINFO_LOOTID = 5028, LANG_COMMAND_LOOKUP_MAX_RESULTS = 5029, - // Room for more Trinity strings 5030-9999 LANG_FLEE = 5030, + LANG_NPCINFO_AIINFO = 5031, + // Room for more Trinity strings 5032-9999 // Level requirement notifications LANG_SAY_REQ = 6604, diff --git a/src/server/game/Movement/MovementGenerators/RandomMovementGenerator.cpp b/src/server/game/Movement/MovementGenerators/RandomMovementGenerator.cpp index 5bd0a23207e..09af2303397 100755 --- a/src/server/game/Movement/MovementGenerators/RandomMovementGenerator.cpp +++ b/src/server/game/Movement/MovementGenerators/RandomMovementGenerator.cpp @@ -47,11 +47,10 @@ template<> void RandomMovementGenerator<Creature>::_setRandomLocation(Creature &creature) { - float X, Y, Z, z, nx, ny, nz, ori, dist; + float X, Y, Z, nx, ny, nz, ori, dist; creature.GetHomePosition(X, Y, Z, ori); - z = creature.GetPositionZ(); Map const* map = creature.GetBaseMap(); // For 2D/3D system selection diff --git a/src/server/game/Server/Protocol/Handlers/CharacterHandler.cpp b/src/server/game/Server/Protocol/Handlers/CharacterHandler.cpp index 9ad07685900..017fd5a78ad 100755 --- a/src/server/game/Server/Protocol/Handlers/CharacterHandler.cpp +++ b/src/server/game/Server/Protocol/Handlers/CharacterHandler.cpp @@ -196,7 +196,7 @@ bool LoginQueryHolder::Initialize() return res; } -void WorldSession::HandleCharEnum(QueryResult result) +void WorldSession::HandleCharEnum(PreparedQueryResult result) { WorldPacket data(SMSG_CHAR_ENUM, 100); // we guess size @@ -232,35 +232,16 @@ void WorldSession::HandleCharEnumOpcode(WorldPacket & /*recv_data*/) CharacterDatabase.Execute(stmt); /// get all the data necessary for loading all characters (along with their pets) on the account - _charEnumCallback = - CharacterDatabase.AsyncPQuery( - !sWorld->getBoolConfig(CONFIG_DECLINED_NAMES_USED) ? - // ------- Query Without Declined Names -------- - // 0 1 2 3 4 5 6 7 - "SELECT characters.guid, characters.name, characters.race, characters.class, characters.gender, characters.playerBytes, characters.playerBytes2, characters.level, " - // 8 9 10 11 12 13 14 - "characters.zone, characters.map, characters.position_x, characters.position_y, characters.position_z, guild_member.guildid, characters.playerFlags, " - // 15 16 17 18 19 20 - "characters.at_login, character_pet.entry, character_pet.modelid, character_pet.level, characters.equipmentCache, character_banned.guid " - "FROM characters LEFT JOIN character_pet ON characters.guid=character_pet.owner AND character_pet.slot='%u' " - "LEFT JOIN guild_member ON characters.guid = guild_member.guid " - "LEFT JOIN character_banned ON characters.guid = character_banned.guid AND character_banned.active = 1 " - "WHERE characters.account = '%u' ORDER BY characters.guid" - : - // --------- Query With Declined Names --------- - // 0 1 2 3 4 5 6 7 - "SELECT characters.guid, characters.name, characters.race, characters.class, characters.gender, characters.playerBytes, characters.playerBytes2, characters.level, " - // 8 9 10 11 12 13 14 - "characters.zone, characters.map, characters.position_x, characters.position_y, characters.position_z, guild_member.guildid, characters.playerFlags, " - // 15 16 17 18 19 20 21 - "characters.at_login, character_pet.entry, character_pet.modelid, character_pet.level, characters.equipmentCache, character_banned.guid, character_declinedname.genitive " - "FROM characters LEFT JOIN character_pet ON characters.guid = character_pet.owner AND character_pet.slot='%u' " - "LEFT JOIN character_declinedname ON characters.guid = character_declinedname.guid " - "LEFT JOIN guild_member ON characters.guid = guild_member.guid " - "LEFT JOIN character_banned ON characters.guid = character_banned.guid AND character_banned.active = 1 " - "WHERE characters.account = '%u' ORDER BY characters.guid", - PET_SAVE_AS_CURRENT, GetAccountId() - ); + + if (sWorld->getBoolConfig(CONFIG_DECLINED_NAMES_USED)) + stmt = CharacterDatabase.GetPreparedStatement(CHAR_GET_ENUM_DECLINED_NAME); + else + stmt = CharacterDatabase.GetPreparedStatement(CHAR_GET_ENUM); + + stmt->setUInt8(0, PET_SAVE_AS_CURRENT); + stmt->setUInt32(1, GetAccountId()); + + _charEnumCallback = CharacterDatabase.AsyncQuery(stmt); } void WorldSession::HandleCharCreateOpcode(WorldPacket & recv_data) @@ -1102,13 +1083,13 @@ void WorldSession::HandleShowingCloakOpcode(WorldPacket& recv_data) void WorldSession::HandleCharRenameOpcode(WorldPacket& recv_data) { uint64 guid; - std::string newname; + std::string newName; recv_data >> guid; - recv_data >> newname; + recv_data >> newName; // prevent character rename to invalid name - if (!normalizePlayerName(newname)) + if (!normalizePlayerName(newName)) { WorldPacket data(SMSG_CHAR_RENAME, 1); data << uint8(CHAR_NAME_NO_NAME); @@ -1116,7 +1097,7 @@ void WorldSession::HandleCharRenameOpcode(WorldPacket& recv_data) return; } - uint8 res = ObjectMgr::CheckPlayerName(newname, true); + uint8 res = ObjectMgr::CheckPlayerName(newName, true); if (res != CHAR_NAME_SUCCESS) { WorldPacket data(SMSG_CHAR_RENAME, 1); @@ -1126,7 +1107,7 @@ void WorldSession::HandleCharRenameOpcode(WorldPacket& recv_data) } // check name limitations - if (AccountMgr::IsPlayerAccount(GetSecurity()) && sObjectMgr->IsReservedName(newname)) + if (AccountMgr::IsPlayerAccount(GetSecurity()) && sObjectMgr->IsReservedName(newName)) { WorldPacket data(SMSG_CHAR_RENAME, 1); data << uint8(CHAR_NAME_RESERVED); @@ -1134,21 +1115,22 @@ void WorldSession::HandleCharRenameOpcode(WorldPacket& recv_data) return; } - std::string escaped_newname = newname; - CharacterDatabase.EscapeString(escaped_newname); - - // make sure that the character belongs to the current account, that rename at login is enabled + // Ensure that the character belongs to the current account, that rename at login is enabled // and that there is no character with the desired new name - _charRenameCallback.SetParam(newname); - _charRenameCallback.SetFutureResult( - CharacterDatabase.AsyncPQuery( - "SELECT guid, name FROM characters WHERE guid = %d AND account = %d AND (at_login & %d) = %d AND NOT EXISTS (SELECT NULL FROM characters WHERE name = '%s')", - GUID_LOPART(guid), GetAccountId(), AT_LOGIN_RENAME, AT_LOGIN_RENAME, escaped_newname.c_str() - ) - ); + _charRenameCallback.SetParam(newName); + + PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_GET_FREE_NAME); + + stmt->setUInt32(0, GUID_LOPART(guid)); + stmt->setUInt32(1, GetAccountId()); + stmt->setUInt16(2, AT_LOGIN_RENAME); + stmt->setUInt16(3, AT_LOGIN_RENAME); + stmt->setString(4, newName); + + _charRenameCallback.SetFutureResult(CharacterDatabase.AsyncQuery(stmt)); } -void WorldSession::HandleChangePlayerNameOpcodeCallBack(QueryResult result, std::string newname) +void WorldSession::HandleChangePlayerNameOpcodeCallBack(PreparedQueryResult result, std::string newName) { if (!result) { @@ -1158,22 +1140,38 @@ void WorldSession::HandleChangePlayerNameOpcodeCallBack(QueryResult result, std: return; } - uint32 guidLow = result->Fetch()[0].GetUInt32(); + Field* fields = result->Fetch(); + + uint32 guidLow = fields[0].GetUInt32(); + std::string oldName = fields[1].GetString(); + uint64 guid = MAKE_NEW_GUID(guidLow, 0, HIGHGUID_PLAYER); - std::string oldname = result->Fetch()[1].GetString(); - CharacterDatabase.PExecute("UPDATE characters set name = '%s', at_login = at_login & ~ %u WHERE guid ='%u'", newname.c_str(), uint32(AT_LOGIN_RENAME), guidLow); - CharacterDatabase.PExecute("DELETE FROM character_declinedname WHERE guid ='%u'", guidLow); + // Update name and at_login flag in the db + PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPDATE_NAME); + + stmt->setString(0, newName); + stmt->setUInt16(1, AT_LOGIN_RENAME); + stmt->setUInt32(2, guidLow); + + CharacterDatabase.Execute(stmt); + + // Removed declined name from db + stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_DECLINED_NAME); + + stmt->setUInt32(0, guidLow); - sLog->outChar("Account: %d (IP: %s) Character:[%s] (guid:%u) Changed name to: %s", GetAccountId(), GetRemoteAddress().c_str(), oldname.c_str(), guidLow, newname.c_str()); + CharacterDatabase.Execute(stmt); + + sLog->outChar("Account: %d (IP: %s) Character:[%s] (guid:%u) Changed name to: %s", GetAccountId(), GetRemoteAddress().c_str(), oldName.c_str(), guidLow, newName.c_str()); - WorldPacket data(SMSG_CHAR_RENAME, 1+8+(newname.size()+1)); + WorldPacket data(SMSG_CHAR_RENAME, 1+8+(newName.size()+1)); data << uint8(RESPONSE_SUCCESS); data << uint64(guid); - data << newname; + data << newName; SendPacket(&data); - sWorld->UpdateCharacterNameData(guidLow, newname); + sWorld->UpdateCharacterNameData(guidLow, newName); } void WorldSession::HandleSetPlayerDeclinedNames(WorldPacket& recv_data) diff --git a/src/server/game/Server/Protocol/Handlers/ItemHandler.cpp b/src/server/game/Server/Protocol/Handlers/ItemHandler.cpp index f4e3af72892..4d323996de7 100755 --- a/src/server/game/Server/Protocol/Handlers/ItemHandler.cpp +++ b/src/server/game/Server/Protocol/Handlers/ItemHandler.cpp @@ -938,6 +938,7 @@ void WorldSession::HandleAutoBankItemOpcode(WorldPacket& recvPacket) } _player->RemoveItem(srcbag, srcslot, true); + _player->ItemRemovedQuestCheck(pItem->GetEntry(), pItem->GetCount()); _player->BankItem(dest, pItem, true); } @@ -965,6 +966,7 @@ void WorldSession::HandleAutoStoreBankItemOpcode(WorldPacket& recvPacket) _player->RemoveItem(srcbag, srcslot, true); _player->StoreItem(dest, pItem, true); + _player->ItemAddedQuestCheck(pItem->GetEntry(), pItem->GetCount()); } else // moving from inventory to bank { diff --git a/src/server/game/Server/Protocol/Handlers/MiscHandler.cpp b/src/server/game/Server/Protocol/Handlers/MiscHandler.cpp index 7327cdbba65..d4211bad293 100755 --- a/src/server/game/Server/Protocol/Handlers/MiscHandler.cpp +++ b/src/server/game/Server/Protocol/Handlers/MiscHandler.cpp @@ -613,22 +613,24 @@ void WorldSession::HandleAddIgnoreOpcode(WorldPacket & recv_data) { sLog->outDebug(LOG_FILTER_NETWORKIO, "WORLD: Received CMSG_ADD_IGNORE"); - std::string IgnoreName = GetTrinityString(LANG_FRIEND_IGNORE_UNKNOWN); + std::string ignoreName = GetTrinityString(LANG_FRIEND_IGNORE_UNKNOWN); - recv_data >> IgnoreName; + recv_data >> ignoreName; - if (!normalizePlayerName(IgnoreName)) + if (!normalizePlayerName(ignoreName)) return; - CharacterDatabase.EscapeString(IgnoreName); // prevent SQL injection - normal name must not be changed by this call - sLog->outDebug(LOG_FILTER_NETWORKIO, "WORLD: %s asked to Ignore: '%s'", - GetPlayer()->GetName(), IgnoreName.c_str()); + GetPlayer()->GetName(), ignoreName.c_str()); + + PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_GET_GUID_BY_NAME); + + stmt->setString(0, ignoreName); - _addIgnoreCallback = CharacterDatabase.AsyncPQuery("SELECT guid FROM characters WHERE name = '%s'", IgnoreName.c_str()); + _addIgnoreCallback = CharacterDatabase.AsyncQuery(stmt); } -void WorldSession::HandleAddIgnoreOpcodeCallBack(QueryResult result) +void WorldSession::HandleAddIgnoreOpcodeCallBack(PreparedQueryResult result) { if (!GetPlayer()) return; diff --git a/src/server/game/Server/Protocol/Handlers/NPCHandler.cpp b/src/server/game/Server/Protocol/Handlers/NPCHandler.cpp index a675214930a..9d1e806dada 100755 --- a/src/server/game/Server/Protocol/Handlers/NPCHandler.cpp +++ b/src/server/game/Server/Protocol/Handlers/NPCHandler.cpp @@ -618,39 +618,43 @@ void WorldSession::HandleStablePet(WorldPacket & recv_data) return; } - _stablePetCallback = CharacterDatabase.AsyncPQuery("SELECT owner, slot, id FROM character_pet WHERE owner = '%u' AND slot >= '%u' AND slot <= '%u' ORDER BY slot ", - _player->GetGUIDLow(), PET_SAVE_FIRST_STABLE_SLOT, PET_SAVE_LAST_STABLE_SLOT); + PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_GET_PET_SLOTS); + stmt->setUInt32(0, _player->GetGUIDLow()); + stmt->setUInt8(1, PET_SAVE_FIRST_STABLE_SLOT); + stmt->setUInt8(2, PET_SAVE_LAST_STABLE_SLOT); + + _stablePetCallback = CharacterDatabase.AsyncQuery(stmt); } -void WorldSession::HandleStablePetCallback(QueryResult result) +void WorldSession::HandleStablePetCallback(PreparedQueryResult result) { if (!GetPlayer()) return; - uint32 free_slot = 1; + uint8 freeSlot = 1; if (result) { do { Field* fields = result->Fetch(); - uint32 slot = fields[1].GetUInt32(); + uint8 slot = fields[1].GetUInt8(); // slots ordered in query, and if not equal then free - if (slot != free_slot) + if (slot != freeSlot) break; // this slot not free, skip - ++free_slot; + ++freeSlot; } while (result->NextRow()); } WorldPacket data(SMSG_STABLE_RESULT, 1); - if (free_slot > 0 && free_slot <= GetPlayer()->m_stableSlots) + if (freeSlot > 0 && freeSlot <= GetPlayer()->m_stableSlots) { - _player->RemovePet(_player->GetPet(), PetSaveMode(free_slot)); + _player->RemovePet(_player->GetPet(), PetSaveMode(freeSlot)); SendStableResult(STABLE_SUCCESS_STABLE); } else @@ -878,19 +882,18 @@ void WorldSession::HandleRepairItemOpcode(WorldPacket & recv_data) // reputation discount float discountMod = _player->GetReputationPriceDiscount(unit); - uint32 TotalCost = 0; if (itemGUID) { sLog->outDebug(LOG_FILTER_NETWORKIO, "ITEM: Repair item, itemGUID = %u, npcGUID = %u", GUID_LOPART(itemGUID), GUID_LOPART(npcGUID)); Item* item = _player->GetItemByGuid(itemGUID); if (item) - TotalCost = _player->DurabilityRepair(item->GetPos(), true, discountMod, guildBank); + _player->DurabilityRepair(item->GetPos(), true, discountMod, guildBank); } else { sLog->outDebug(LOG_FILTER_NETWORKIO, "ITEM: Repair all items, npcGUID = %u", GUID_LOPART(npcGUID)); - TotalCost = _player->DurabilityRepairAll(true, discountMod, guildBank); + _player->DurabilityRepairAll(true, discountMod, guildBank); } } diff --git a/src/server/game/Server/Protocol/Handlers/PetitionsHandler.cpp b/src/server/game/Server/Protocol/Handlers/PetitionsHandler.cpp index a931d8a5b3d..2e9b88bd3f0 100755 --- a/src/server/game/Server/Protocol/Handlers/PetitionsHandler.cpp +++ b/src/server/game/Server/Protocol/Handlers/PetitionsHandler.cpp @@ -311,21 +311,17 @@ void WorldSession::SendPetitionQueryOpcode(uint64 petitionguid) uint64 ownerguid = 0; uint32 type; std::string name = "NO_NAME_FOR_GUID"; - uint8 signs = 0; - QueryResult result = CharacterDatabase.PQuery( - "SELECT ownerguid, name, " - " (SELECT COUNT(playerguid) FROM petition_sign WHERE petition_sign.petitionguid = '%u') AS signs, " - " type " - "FROM petition WHERE petitionguid = '%u'", GUID_LOPART(petitionguid), GUID_LOPART(petitionguid)); + // TODO: Use CHAR_LOAD_PETITION PS + QueryResult result = CharacterDatabase.PQuery("SELECT ownerguid, name, type " + "FROM petition WHERE petitionguid = '%u'", GUID_LOPART(petitionguid)); if (result) { Field* fields = result->Fetch(); ownerguid = MAKE_NEW_GUID(fields[0].GetUInt32(), 0, HIGHGUID_PLAYER); name = fields[1].GetString(); - signs = fields[2].GetUInt8(); - type = fields[3].GetUInt32(); + type = fields[2].GetUInt32(); } else { diff --git a/src/server/game/Server/WorldSession.cpp b/src/server/game/Server/WorldSession.cpp index ceb3c5acc0f..be6f152d891 100755 --- a/src/server/game/Server/WorldSession.cpp +++ b/src/server/game/Server/WorldSession.cpp @@ -998,12 +998,13 @@ void WorldSession::InitializeQueryCallbackParameters() void WorldSession::ProcessQueryCallbacks() { QueryResult result; + PreparedQueryResult result2; //! HandleCharEnumOpcode if (_charEnumCallback.ready()) { - _charEnumCallback.get(result); - HandleCharEnum(result); + _charEnumCallback.get(result2); + HandleCharEnum(result2); _charEnumCallback.cancel(); } @@ -1037,16 +1038,16 @@ void WorldSession::ProcessQueryCallbacks() if (_charRenameCallback.IsReady()) { std::string param = _charRenameCallback.GetParam(); - _charRenameCallback.GetResult(result); - HandleChangePlayerNameOpcodeCallBack(result, param); + _charRenameCallback.GetResult(result2); + HandleChangePlayerNameOpcodeCallBack(result2, param); _charRenameCallback.FreeResult(); } //- HandleCharAddIgnoreOpcode if (_addIgnoreCallback.ready()) { - _addIgnoreCallback.get(result); - HandleAddIgnoreOpcodeCallBack(result); + _addIgnoreCallback.get(result2); + HandleAddIgnoreOpcodeCallBack(result2); _addIgnoreCallback.cancel(); } @@ -1062,8 +1063,8 @@ void WorldSession::ProcessQueryCallbacks() //- HandleStablePet if (_stablePetCallback.ready()) { - _stablePetCallback.get(result); - HandleStablePetCallback(result); + _stablePetCallback.get(result2); + HandleStablePetCallback(result2); _stablePetCallback.cancel(); } diff --git a/src/server/game/Server/WorldSession.h b/src/server/game/Server/WorldSession.h index 4a83c2d4092..0763602e9c1 100755 --- a/src/server/game/Server/WorldSession.h +++ b/src/server/game/Server/WorldSession.h @@ -400,7 +400,7 @@ class WorldSession void HandleCharCreateOpcode(WorldPacket& recvPacket); void HandleCharCreateCallback(PreparedQueryResult result, CharacterCreateInfo* createInfo); void HandlePlayerLoginOpcode(WorldPacket& recvPacket); - void HandleCharEnum(QueryResult result); + void HandleCharEnum(PreparedQueryResult result); void HandlePlayerLogin(LoginQueryHolder * holder); void HandleCharFactionOrRaceChange(WorldPacket& recv_data); @@ -472,7 +472,7 @@ class WorldSession void HandleAddFriendOpcodeCallBack(QueryResult result, std::string friendNote); void HandleDelFriendOpcode(WorldPacket& recvPacket); void HandleAddIgnoreOpcode(WorldPacket& recvPacket); - void HandleAddIgnoreOpcodeCallBack(QueryResult result); + void HandleAddIgnoreOpcodeCallBack(PreparedQueryResult result); void HandleDelIgnoreOpcode(WorldPacket& recvPacket); void HandleSetContactNotesOpcode(WorldPacket& recvPacket); void HandleBugOpcode(WorldPacket& recvPacket); @@ -588,7 +588,7 @@ class WorldSession void HandleBinderActivateOpcode(WorldPacket& recvPacket); void HandleListStabledPetsOpcode(WorldPacket& recvPacket); void HandleStablePet(WorldPacket& recvPacket); - void HandleStablePetCallback(QueryResult result); + void HandleStablePetCallback(PreparedQueryResult result); void HandleUnstablePet(WorldPacket& recvPacket); void HandleUnstablePetCallback(QueryResult result, uint32 petnumber); void HandleBuyStableSlot(WorldPacket& recvPacket); @@ -747,7 +747,7 @@ class WorldSession void HandleSetActionBarToggles(WorldPacket& recv_data); void HandleCharRenameOpcode(WorldPacket& recv_data); - void HandleChangePlayerNameOpcodeCallBack(QueryResult result, std::string newname); + void HandleChangePlayerNameOpcodeCallBack(PreparedQueryResult result, std::string newName); void HandleSetPlayerDeclinedNames(WorldPacket& recv_data); void HandleTotemDestroyed(WorldPacket& recv_data); @@ -896,11 +896,10 @@ class WorldSession void InitializeQueryCallbackParameters(); void ProcessQueryCallbacks(); - ACE_Future_Set<QueryResult> _nameQueryCallbacks; - QueryResultFuture _charEnumCallback; - QueryResultFuture _addIgnoreCallback; - QueryResultFuture _stablePetCallback; - QueryCallback<QueryResult, std::string> _charRenameCallback; + PreparedQueryResultFuture _charEnumCallback; + PreparedQueryResultFuture _addIgnoreCallback; + PreparedQueryResultFuture _stablePetCallback; + QueryCallback<PreparedQueryResult, std::string> _charRenameCallback; QueryCallback<QueryResult, std::string> _addFriendCallback; QueryCallback<QueryResult, uint32> _unstablePetCallback; QueryCallback<QueryResult, uint32> _stableSwapCallback; diff --git a/src/server/game/Spells/Auras/SpellAuraEffects.cpp b/src/server/game/Spells/Auras/SpellAuraEffects.cpp index b690a811fbb..71122775492 100755 --- a/src/server/game/Spells/Auras/SpellAuraEffects.cpp +++ b/src/server/game/Spells/Auras/SpellAuraEffects.cpp @@ -1518,7 +1518,7 @@ void AuraEffect::HandleShapeshiftBoosts(Unit* target, bool apply) const spellId3 = 47180; break; } - target->CastSpell(target, spellId, true, NULL, this); + target->CastSpell(target, spellId3, true, NULL, this); } // Master Shapeshifter - Cat if (AuraEffect const* aurEff = target->GetDummyAuraEffect(SPELLFAMILY_GENERIC, 2851, 0)) @@ -4804,8 +4804,10 @@ void AuraEffect::HandleAuraDummy(AuraApplication const* aurApp, uint8 mode, bool if (Aura* newAura = target->AddAura(71564, target)) newAura->SetStackAmount(newAura->GetSpellInfo()->StackAmount); break; - case 59628: // Tricks of the Trade - target->SetReducedThreatPercent(100,caster->GetGUID()); + case 59628: // Tricks of the Trade + if (!caster->GetMisdirectionTarget()) + break; + target->SetReducedThreatPercent(100,caster->GetMisdirectionTarget()->GetGUID()); break; } } @@ -4958,9 +4960,14 @@ void AuraEffect::HandleAuraDummy(AuraApplication const* aurApp, uint8 mode, bool // Tricks of the trade switch(GetId()) { - case 59628: - case 57934: + case 59628: //Tricks of the trade buff on rogue (6sec duration) target->SetReducedThreatPercent(0,0); + break; + case 57934: //Tricks of the trade buff on rogue (30sec duration) + if (aurApp->GetRemoveMode() == AURA_REMOVE_BY_EXPIRE || !caster->GetMisdirectionTarget()) + target->SetReducedThreatPercent(0,0); + else + target->SetReducedThreatPercent(0,caster->GetMisdirectionTarget()->GetGUID()); break; } default: diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp index 839a466f0f0..97332436f09 100755 --- a/src/server/game/Spells/SpellEffects.cpp +++ b/src/server/game/Spells/SpellEffects.cpp @@ -606,57 +606,67 @@ void Spell::EffectSchoolDMG(SpellEffIndex effIndex) case SPELLFAMILY_ROGUE: { // Envenom - if (m_caster->GetTypeId() == TYPEID_PLAYER && (m_spellInfo->SpellFamilyFlags[1] & 0x8)) + if (m_spellInfo->SpellFamilyFlags[1] & 0x00000008) { - // consume from stack dozes not more that have combo-points - if (uint32 combo = m_caster->ToPlayer()->GetComboPoints()) + if (Player* player = m_caster->ToPlayer()) { - // Lookup for Deadly poison (only attacker applied) - if (AuraEffect const* aurEff = unitTarget->GetAuraEffect(SPELL_AURA_PERIODIC_DAMAGE, SPELLFAMILY_ROGUE, 0x10000, 0, 0, m_caster->GetGUID())) + // consume from stack dozes not more that have combo-points + if (uint32 combo = player->GetComboPoints()) { - // count consumed deadly poison doses at target - bool needConsume = true; - uint32 spellId = aurEff->GetId(); - uint32 doses = aurEff->GetBase()->GetStackAmount(); - if (doses > combo) - doses = combo; - // Master Poisoner - Unit::AuraEffectList const& auraList = m_caster->ToPlayer()->GetAuraEffectsByType(SPELL_AURA_MOD_AURA_DURATION_BY_DISPEL_NOT_STACK); - for (Unit::AuraEffectList::const_iterator iter = auraList.begin(); iter != auraList.end(); ++iter) + // Lookup for Deadly poison (only attacker applied) + if (AuraEffect const* aurEff = unitTarget->GetAuraEffect(SPELL_AURA_PERIODIC_DAMAGE, SPELLFAMILY_ROGUE, 0x00010000, 0, 0, m_caster->GetGUID())) { - if ((*iter)->GetSpellInfo()->SpellFamilyName == SPELLFAMILY_ROGUE && (*iter)->GetSpellInfo()->SpellIconID == 1960) + // count consumed deadly poison doses at target + bool needConsume = true; + uint32 spellId = aurEff->GetId(); + + uint32 doses = aurEff->GetBase()->GetStackAmount(); + if (doses > combo) + doses = combo; + + // Master Poisoner + Unit::AuraEffectList const& auraList = player->GetAuraEffectsByType(SPELL_AURA_MOD_AURA_DURATION_BY_DISPEL_NOT_STACK); + for (Unit::AuraEffectList::const_iterator iter = auraList.begin(); iter != auraList.end(); ++iter) { - uint32 chance = (*iter)->GetSpellInfo()->Effects[EFFECT_2].CalcValue(m_caster); + if ((*iter)->GetSpellInfo()->SpellFamilyName == SPELLFAMILY_ROGUE && (*iter)->GetSpellInfo()->SpellIconID == 1960) + { + uint32 chance = (*iter)->GetSpellInfo()->Effects[EFFECT_2].CalcValue(m_caster); - if (chance && roll_chance_i(chance)) - needConsume = false; + if (chance && roll_chance_i(chance)) + needConsume = false; - break; + break; + } } + + if (needConsume) + for (uint32 i = 0; i < doses; ++i) + unitTarget->RemoveAuraFromStack(spellId); + + damage *= doses; + damage += int32(player->GetTotalAttackPowerValue(BASE_ATTACK) * 0.09f * combo); } - if (needConsume) - for (uint32 i = 0; i < doses; ++i) - unitTarget->RemoveAuraFromStack(spellId); - damage *= doses; - damage += int32(((Player*)m_caster)->GetTotalAttackPowerValue(BASE_ATTACK) * 0.09f * doses); + // Eviscerate and Envenom Bonus Damage (item set effect) + if (m_caster->HasAura(37169)) + damage += combo * 40; } - // Eviscerate and Envenom Bonus Damage (item set effect) - if (m_caster->HasAura(37169)) - damage += ((Player*)m_caster)->GetComboPoints()*40; } } // Eviscerate - else if ((m_spellInfo->SpellFamilyFlags[0] & 0x00020000) && m_caster->GetTypeId() == TYPEID_PLAYER) + else if (m_spellInfo->SpellFamilyFlags[0] & 0x00020000) { - if (uint32 combo = ((Player*)m_caster)->GetComboPoints()) + if (m_caster->GetTypeId() == TYPEID_PLAYER) { - float ap = m_caster->GetTotalAttackPowerValue(BASE_ATTACK); - damage += irand(int32(ap * combo * 0.03f), int32(ap * combo * 0.07f)); + if (uint32 combo = ((Player*)m_caster)->GetComboPoints()) + { + float ap = m_caster->GetTotalAttackPowerValue(BASE_ATTACK); + damage += irand(int32(ap * combo * 0.03f), int32(ap * combo * 0.07f)); - // Eviscerate and Envenom Bonus Damage (item set effect) - if (m_caster->HasAura(37169)) - damage += combo*40; + // Eviscerate and Envenom Bonus Damage (item set effect) + if (m_caster->HasAura(37169)) + damage += combo*40; + } } } break; @@ -6234,9 +6244,13 @@ void Spell::EffectCharge(SpellEffIndex /*effIndex*/) if (!unitTarget) return; - float x, y, z; - unitTarget->GetContactPoint(m_caster, x, y, z); - m_caster->GetMotionMaster()->MoveCharge(x, y, z); + float angle = unitTarget->GetRelativeAngle(m_caster); + Position pos; + + unitTarget->GetContactPoint(m_caster, pos.m_positionX, pos.m_positionY, pos.m_positionZ); + unitTarget->GetFirstCollisionPosition(pos, unitTarget->GetObjectSize(), angle); + + m_caster->GetMotionMaster()->MoveCharge(pos.m_positionX, pos.m_positionY, pos.m_positionZ + unitTarget->GetObjectSize()); } if (effectHandleMode == SPELL_EFFECT_HANDLE_HIT_TARGET) @@ -6257,9 +6271,13 @@ void Spell::EffectChargeDest(SpellEffIndex /*effIndex*/) if (m_targets.HasDst()) { - float x, y, z; - m_targets.GetDst()->GetPosition(x, y, z); - m_caster->GetMotionMaster()->MoveCharge(x, y, z); + Position pos; + m_targets.GetDst()->GetPosition(&pos); + float angle = m_caster->GetRelativeAngle(pos.GetPositionX(), pos.GetPositionY()); + float dist = m_caster->GetDistance(pos); + m_caster->GetFirstCollisionPosition(pos, dist, angle); + + m_caster->GetMotionMaster()->MoveCharge(pos.m_positionX, pos.m_positionY, pos.m_positionZ); } } diff --git a/src/server/game/Spells/SpellInfo.cpp b/src/server/game/Spells/SpellInfo.cpp index 972276c7d26..463b46972fa 100644 --- a/src/server/game/Spells/SpellInfo.cpp +++ b/src/server/game/Spells/SpellInfo.cpp @@ -2304,6 +2304,19 @@ bool SpellInfo::_IsPositiveEffect(uint8 effIndex, bool deep) const if (Id == 30708) return false; break; + case SPELLFAMILY_ROGUE: + switch (Id) + { + // Envenom must be considered as a positive effect even though it deals damage + case 32645: // Envenom (Rank 1) + case 32684: // Envenom (Rank 2) + case 57992: // Envenom (Rank 3) + case 57993: // Envenom (Rank 4) + return true; + default: + break; + } + break; default: break; } diff --git a/src/server/game/Spells/SpellMgr.cpp b/src/server/game/Spells/SpellMgr.cpp index 058ddf7d269..7170aa818b5 100755 --- a/src/server/game/Spells/SpellMgr.cpp +++ b/src/server/game/Spells/SpellMgr.cpp @@ -3227,6 +3227,10 @@ void SpellMgr::LoadDbcDataCorrections() // this needs research on modifier applying rules, does not seem to be in Attributes fields spellInfo->EffectSpellClassMask[0] = flag96(0x00000040, 0x00000000, 0x00000000); break; + case 63163: // Apply Enchanted Bridle (Argent Tournament) + spellInfo->EffectDieSides[0] = 0; // was 1, that should probably mean seat 0, but instead it's treated as spell 1 + spellInfo->EffectBasePoints[0] = 52391; // Ride Vehicle (forces seat 0) + break; case 19970: // Entangling Roots (Rank 6) -- Nature's Grasp Proc case 19971: // Entangling Roots (Rank 5) -- Nature's Grasp Proc case 19972: // Entangling Roots (Rank 4) -- Nature's Grasp Proc diff --git a/src/server/game/World/World.h b/src/server/game/World/World.h index 4c5c2596fa0..9354c14f51c 100755 --- a/src/server/game/World/World.h +++ b/src/server/game/World/World.h @@ -635,7 +635,7 @@ class World /// Are we in the middle of a shutdown? bool IsShuttingDown() const { return m_ShutdownTimer > 0; } - uint32 const GetShutDownTimeLeft() { return m_ShutdownTimer; } + uint32 GetShutDownTimeLeft() const { return m_ShutdownTimer; } void ShutdownServ(uint32 time, uint32 options, uint8 exitcode); void ShutdownCancel(); void ShutdownMsg(bool show = false, Player* player = NULL); diff --git a/src/server/scripts/Commands/cs_npc.cpp b/src/server/scripts/Commands/cs_npc.cpp index b9ac21cc040..a5aa2a516f3 100644 --- a/src/server/scripts/Commands/cs_npc.cpp +++ b/src/server/scripts/Commands/cs_npc.cpp @@ -552,15 +552,13 @@ public: handler->PSendSysMessage(LANG_NPCINFO_PHASEMASK, target->GetPhaseMask()); handler->PSendSysMessage(LANG_NPCINFO_ARMOR, target->GetArmor()); handler->PSendSysMessage(LANG_NPCINFO_POSITION, float(target->GetPositionX()), float(target->GetPositionY()), float(target->GetPositionZ())); + handler->PSendSysMessage(LANG_NPCINFO_AIINFO, target->GetAIName().c_str(), target->GetScriptName().c_str()); - if ((npcflags & UNIT_NPC_FLAG_VENDOR)) - { + if (npcflags & UNIT_NPC_FLAG_VENDOR) handler->SendSysMessage(LANG_NPCINFO_VENDOR); - } - if ((npcflags & UNIT_NPC_FLAG_TRAINER)) - { + + if (npcflags & UNIT_NPC_FLAG_TRAINER) handler->SendSysMessage(LANG_NPCINFO_TRAINER); - } return true; } diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_mal_ganis.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_mal_ganis.cpp index 1a43472365a..798ea3925dc 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_mal_ganis.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_mal_ganis.cpp @@ -34,7 +34,8 @@ enum Spells H_SPELL_MIND_BLAST = 58850, SPELL_SLEEP = 52721, //Puts an enemy to sleep for up to 10 sec. Any damage caused will awaken the target. H_SPELL_SLEEP = 58849, - SPELL_VAMPIRIC_TOUCH = 52723 //Heals the caster for half the damage dealt by a melee attack. + SPELL_VAMPIRIC_TOUCH = 52723, //Heals the caster for half the damage dealt by a melee attack. + SPELL_KILL_CREDIT = 58630 // Non-existing spell as encounter credit, created in spell_dbc }; enum Yells @@ -237,9 +238,8 @@ public: { instance->SetData(DATA_MAL_GANIS_EVENT, DONE); - // give achievement credit to players. criteria use spell 58630 which doesn't exist. - if (instance) - instance->DoUpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_BE_SPELL_TARGET, 58630); + // give achievement credit and LFG rewards to players. criteria use spell 58630 which doesn't exist, but it was created in spell_dbc + DoCast(me, SPELL_KILL_CREDIT); } } 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 82f16dd7784..7cbb1b91755 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.cpp @@ -582,7 +582,7 @@ public: { 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); + pJaina = me->SummonCreature(NPC_JAINA, 1895.48f, 1292.66f, 143.706f, 0.023475f, TEMPSUMMON_DEAD_DESPAWN, 180000); if (pJaina) uiJainaGUID = pJaina->GetGUID(); bStepping = false; diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_black_knight.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_black_knight.cpp index fd84c1eec8a..f73e9779248 100644 --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_black_knight.cpp +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_black_knight.cpp @@ -54,8 +54,10 @@ enum eSpells SPELL_BLACK_KNIGHT_RES = 67693, - SPELL_LEAP = 67749, - SPELL_LEAP_H = 67880 + SPELL_LEAP = 67749, + SPELL_LEAP_H = 67880, + + SPELL_KILL_CREDIT = 68663 }; enum eModels @@ -288,6 +290,8 @@ public: void JustDied(Unit* /*killer*/) { + DoCast(me, SPELL_KILL_CREDIT); + if (instance) instance->SetData(BOSS_BLACK_KNIGHT, DONE); } diff --git a/src/server/scripts/Northrend/DraktharonKeep/boss_tharon_ja.cpp b/src/server/scripts/Northrend/DraktharonKeep/boss_tharon_ja.cpp index e552341fd1e..d877bbd0842 100644 --- a/src/server/scripts/Northrend/DraktharonKeep/boss_tharon_ja.cpp +++ b/src/server/scripts/Northrend/DraktharonKeep/boss_tharon_ja.cpp @@ -237,7 +237,8 @@ public: for (Map::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i) if (Player* player = i->getSource()) player->DeMorph(); - instance->DoUpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_BE_SPELL_TARGET2, SPELL_ACHIEVEMENT_CHECK); + + DoCast(me, SPELL_ACHIEVEMENT_CHECK); instance->SetData(DATA_THARON_JA_EVENT, DONE); } diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_freya.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_freya.cpp index 877971aa502..13c174a9607 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_freya.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_freya.cpp @@ -590,7 +590,7 @@ class boss_freya : public CreatureScript waveCount++; } - void JustDied(Unit* who) + void JustDied(Unit* /*who*/) { //! Freya's chest is dynamically spawned on death by different spells. const uint32 summonSpell[2][4] = 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 dc2d34326a7..3712bd748a5 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 @@ -173,7 +173,11 @@ public: DoScriptText(YELL_DEAD_2, me); if (instance) + { + // Ingvar has MOB_INGVAR_UNDEAD id in this moment, so we have to update encounter state for his original id + instance->UpdateEncounterState(ENCOUNTER_CREDIT_KILL_CREATURE, MOB_INGVAR_HUMAN, me); instance->SetData(DATA_INGVAR_EVENT, DONE); + } } void KilledUnit(Unit* /*victim*/) diff --git a/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warchief_kargath_bladefist.cpp b/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warchief_kargath_bladefist.cpp index 4f837870612..5965c352975 100644 --- a/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warchief_kargath_bladefist.cpp +++ b/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warchief_kargath_bladefist.cpp @@ -303,9 +303,7 @@ class boss_warchief_kargath_bladefist : public CreatureScript if (resetcheck_timer <= diff) { - uint32 tempx, tempy; - tempx = uint32(me->GetPositionX()); - tempy = uint32(me->GetPositionY()); + uint32 tempx = uint32(me->GetPositionX()); if (tempx > 255 || tempx < 205) { EnterEvadeMode(); diff --git a/src/server/scripts/Outland/nagrand.cpp b/src/server/scripts/Outland/nagrand.cpp index c556253ecf1..bae3aa65b98 100644 --- a/src/server/scripts/Outland/nagrand.cpp +++ b/src/server/scripts/Outland/nagrand.cpp @@ -573,7 +573,7 @@ public: { Talk(SAY_KUR_MORE); - if (Creature* temp = me->SummonCreature(NPC_KUR_MURK_PUTRIFIER, kurenaiAmbushB[0], kurenaiAmbushB[1], kurenaiAmbushB[2], 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000)) + if (me->SummonCreature(NPC_KUR_MURK_PUTRIFIER, kurenaiAmbushB[0], kurenaiAmbushB[1], kurenaiAmbushB[2], 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000)) Talk(SAY_KUR_MORE_TWO); me->SummonCreature(NPC_KUR_MURK_PUTRIFIER, kurenaiAmbushB[0]-2.5f, kurenaiAmbushB[1]-2.5f, kurenaiAmbushB[2], 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000); diff --git a/src/server/scripts/Spells/spell_generic.cpp b/src/server/scripts/Spells/spell_generic.cpp index 260b0c57563..af558d479a5 100644 --- a/src/server/scripts/Spells/spell_generic.cpp +++ b/src/server/scripts/Spells/spell_generic.cpp @@ -26,6 +26,8 @@ #include "SpellAuraEffects.h" #include "SkillDiscovery.h" #include "GridNotifiers.h" +#include "Group.h" +#include "LFGMgr.h" class spell_gen_absorb0_hitlimit1 : public SpellScriptLoader { @@ -1419,6 +1421,53 @@ public: } }; +class spell_gen_luck_of_the_draw : public SpellScriptLoader +{ + public: + spell_gen_luck_of_the_draw() : SpellScriptLoader("spell_gen_luck_of_the_draw") { } + + class spell_gen_luck_of_the_draw_AuraScript : public AuraScript + { + PrepareAuraScript(spell_gen_luck_of_the_draw_AuraScript); + + // cheap hax to make it have update calls + void CalcPeriodic(AuraEffect const* /*effect*/, bool& isPeriodic, int32& amplitude) + { + isPeriodic = true; + amplitude = 5 * IN_MILLISECONDS; + } + + void Update(AuraEffect* /*effect*/) + { + if (GetUnitOwner()->GetTypeId() != TYPEID_PLAYER) + return; + + LFGDungeonEntry const* randomDungeon = sLFGDungeonStore.LookupEntry(*(sLFGMgr->GetSelectedDungeons(GetUnitOwner()->GetGUID()).begin())); + Group* group = GetUnitOwner()->ToPlayer()->GetGroup(); + Map const* map = GetUnitOwner()->GetMap(); + if (group && group->isLFGGroup()) + if (uint32 dungeonId = sLFGMgr->GetDungeon(group->GetGUID(), true)) + if (LFGDungeonEntry const* dungeon = sLFGDungeonStore.LookupEntry(dungeonId)) + if (dungeon->map == map->GetId() && dungeon->difficulty == map->GetDifficulty()) + if (randomDungeon && randomDungeon->type == LFG_TYPE_RANDOM) + return; // in correct dungeon + + Remove(AURA_REMOVE_BY_DEFAULT); + } + + void Register() + { + DoEffectCalcPeriodic += AuraEffectCalcPeriodicFn(spell_gen_luck_of_the_draw_AuraScript::CalcPeriodic, EFFECT_0, SPELL_AURA_MOD_DAMAGE_PERCENT_DONE); + OnEffectUpdatePeriodic += AuraEffectUpdatePeriodicFn(spell_gen_luck_of_the_draw_AuraScript::Update, EFFECT_0, SPELL_AURA_MOD_DAMAGE_PERCENT_DONE); + } + }; + + AuraScript* GetAuraScript() const + { + return new spell_gen_luck_of_the_draw_AuraScript(); + } +}; + void AddSC_generic_spell_scripts() { new spell_gen_absorb0_hitlimit1(); @@ -1451,4 +1500,5 @@ void AddSC_generic_spell_scripts() new spell_gen_vehicle_scaling(); new spell_gen_oracle_wolvar_reputation(); new spell_gen_damage_reduction_aura(); + new spell_gen_luck_of_the_draw(); } diff --git a/src/server/scripts/World/go_scripts.cpp b/src/server/scripts/World/go_scripts.cpp index 3bb969977b6..44c3ab9bdc9 100644 --- a/src/server/scripts/World/go_scripts.cpp +++ b/src/server/scripts/World/go_scripts.cpp @@ -47,6 +47,7 @@ go_jotunheim_cage go_table_theka go_soulwell go_bashir_crystalforge +go_ethereal_teleport_pad EndContentData */ #include "ScriptPCH.h" @@ -922,6 +923,32 @@ public: }; /*###### +## go_ethereal_teleport_pad +######*/ + +enum eEtherealTeleportPad +{ + NPC_IMAGE_WIND_TRADER = 20518, + ITEM_TELEPORTER_POWER_PACK = 28969, +}; + +class go_ethereal_teleport_pad : public GameObjectScript +{ +public: + go_ethereal_teleport_pad() : GameObjectScript("go_ethereal_teleport_pad") { } + + bool OnGossipHello(Player* player, GameObject* pGO) + { + if (!player->HasItemCount(ITEM_TELEPORTER_POWER_PACK, 1)) + return false; + + pGO->SummonCreature(NPC_IMAGE_WIND_TRADER, pGO->GetPositionX(), pGO->GetPositionY(), pGO->GetPositionZ(), pGO->GetAngle(player), TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 60000); + + return true; + } +}; + +/*###### ## go_soulwell ######*/ @@ -1282,6 +1309,7 @@ void AddSC_go_scripts() new go_jotunheim_cage; new go_table_theka; new go_inconspicuous_landmark; + new go_ethereal_teleport_pad; new go_soulwell; new go_tadpole_cage; new go_dragonflayer_cage; diff --git a/src/server/scripts/World/npcs_special.cpp b/src/server/scripts/World/npcs_special.cpp index a5e5b467fc7..38a56f7b64a 100644 --- a/src/server/scripts/World/npcs_special.cpp +++ b/src/server/scripts/World/npcs_special.cpp @@ -1623,46 +1623,44 @@ public: ## npc_winter_reveler ####*/ +enum WinterReveler +{ + SPELL_MISTLETOE_DEBUFF = 26218, + SPELL_CREATE_MISTLETOE = 26206, + SPELL_CREATE_HOLLY = 26207, + SPELL_CREATE_SNOWFLAKES = 45036, +}; + class npc_winter_reveler : public CreatureScript { -public: - npc_winter_reveler() : CreatureScript("npc_winter_reveler") { } + public: + npc_winter_reveler() : CreatureScript("npc_winter_reveler") { } - struct npc_winter_revelerAI : public ScriptedAI - { - npc_winter_revelerAI(Creature* c) : ScriptedAI(c) {} - void ReceiveEmote(Player* player, uint32 emote) + struct npc_winter_revelerAI : public ScriptedAI { - if (!IsHolidayActive(HOLIDAY_FEAST_OF_WINTER_VEIL)) - return; - //TODO: check auralist. - if (player->HasAura(26218)) - return; + npc_winter_revelerAI(Creature* c) : ScriptedAI(c) {} - if (emote == TEXT_EMOTE_KISS) + void ReceiveEmote(Player* player, uint32 emote) { - me->CastSpell(me, 26218, false); - player->CastSpell(player, 26218, false); - switch (urand(0, 2)) + if (player->HasAura(SPELL_MISTLETOE_DEBUFF)) + return; + + if (!IsHolidayActive(HOLIDAY_FEAST_OF_WINTER_VEIL)) + return; + + if (emote == TEXT_EMOTE_KISS) { - case 0: - me->CastSpell(player, 26207, false); - break; - case 1: - me->CastSpell(player, 26206, false); - break; - case 2: - me->CastSpell(player, 45036, false); - break; + uint32 spellId = RAND<uint32>(SPELL_CREATE_MISTLETOE, SPELL_CREATE_HOLLY, SPELL_CREATE_SNOWFLAKES); + me->CastSpell(player, spellId, false); + me->CastSpell(player, SPELL_MISTLETOE_DEBUFF, false); } } - } - }; + }; - CreatureAI* GetAI(Creature* creature) const - { - return new npc_winter_revelerAI(creature); - } + CreatureAI* GetAI(Creature* creature) const + { + return new npc_winter_revelerAI(creature); + } }; /*#### @@ -1678,8 +1676,6 @@ public: #define C_VIPER 19921 -#define RAND 5 - class npc_snake_trap : public CreatureScript { public: @@ -1726,7 +1722,7 @@ public: float attackRadius = me->GetAttackDistance(who); if (me->IsWithinDistInMap(who, attackRadius) && me->IsWithinLOSInMap(who)) { - if (!(rand() % RAND)) + if (!(rand() % 5)) { me->setAttackTimer(BASE_ATTACK, (rand() % 10) * 100); SpellTimer = (rand() % 10) * 100; @@ -2164,6 +2160,121 @@ public: }; /*###### +# npc_fire_elemental +######*/ +#define SPELL_FIRENOVA 12470 +#define SPELL_FIRESHIELD 13376 +#define SPELL_FIREBLAST 57984 + +class npc_fire_elemental : public CreatureScript +{ +public: + npc_fire_elemental() : CreatureScript("npc_fire_elemental") { } + + struct npc_fire_elementalAI : public ScriptedAI + { + npc_fire_elementalAI(Creature* creature) : ScriptedAI(creature) {} + + uint32 FireNova_Timer; + uint32 FireShield_Timer; + uint32 FireBlast_Timer; + + void Reset() + { + FireNova_Timer = 5000 + rand() % 15000; // 5-20 sec cd + FireBlast_Timer = 5000 + rand() % 15000; // 5-20 sec cd + FireShield_Timer = 0; + me->ApplySpellImmune(0, IMMUNITY_SCHOOL, SPELL_SCHOOL_MASK_FIRE, true); + } + + void UpdateAI(const uint32 diff) + { + if (!UpdateVictim()) + return; + + if (me->HasUnitState(UNIT_STAT_CASTING)) + return; + + if (FireShield_Timer <= diff) + { + DoCast(me->getVictim(), SPELL_FIRESHIELD); + FireShield_Timer = 2 * IN_MILLISECONDS; + } + else + FireShield_Timer -= diff; + + if (FireBlast_Timer <= diff) + { + DoCast(me->getVictim(), SPELL_FIREBLAST); + FireBlast_Timer = 5000 + rand() % 15000; // 5-20 sec cd + } + else + FireBlast_Timer -= diff; + + if (FireNova_Timer <= diff) + { + DoCast(me->getVictim(), SPELL_FIRENOVA); + FireNova_Timer = 5000 + rand() % 15000; // 5-20 sec cd + } + else + FireNova_Timer -= diff; + + DoMeleeAttackIfReady(); + } + }; + + CreatureAI *GetAI(Creature* creature) const + { + return new npc_fire_elementalAI(creature); + } +}; + +/*###### +# npc_earth_elemental +######*/ +#define SPELL_ANGEREDEARTH 36213 + +class npc_earth_elemental : public CreatureScript +{ +public: + npc_earth_elemental() : CreatureScript("npc_earth_elemental") { } + + struct npc_earth_elementalAI : public ScriptedAI + { + npc_earth_elementalAI(Creature* creature) : ScriptedAI(creature) {} + + uint32 AngeredEarth_Timer; + + void Reset() + { + AngeredEarth_Timer = 0; + me->ApplySpellImmune(0, IMMUNITY_SCHOOL, SPELL_SCHOOL_MASK_NATURE, true); + } + + void UpdateAI(const uint32 diff) + { + if (!UpdateVictim()) + return; + + if (AngeredEarth_Timer <= diff) + { + DoCast(me->getVictim(), SPELL_ANGEREDEARTH); + AngeredEarth_Timer = 5000 + rand() % 15000; // 5-20 sec cd + } + else + AngeredEarth_Timer -= diff; + + DoMeleeAttackIfReady(); + } + }; + + CreatureAI *GetAI(Creature* creature) const + { + return new npc_earth_elementalAI(creature); + } +}; + +/*###### # npc_wormhole ######*/ @@ -2673,5 +2784,7 @@ void AddSC_npcs_special() new npc_locksmith; new npc_tabard_vendor; new npc_experience; + new npc_fire_elemental; + new npc_earth_elemental; } diff --git a/src/server/shared/Database/DatabaseWorkerPool.h b/src/server/shared/Database/DatabaseWorkerPool.h index adf5902a591..f1d01661210 100755 --- a/src/server/shared/Database/DatabaseWorkerPool.h +++ b/src/server/shared/Database/DatabaseWorkerPool.h @@ -158,6 +158,7 @@ class DatabaseWorkerPool } //! Enqueues a one-way SQL operation in prepared statement format that will be executed asynchronously. + //! Statement must be prepared with CONNECTION_ASYNC flag. void Execute(PreparedStatement* stmt) { PreparedStatementTask* task = new PreparedStatementTask(stmt); @@ -195,6 +196,7 @@ class DatabaseWorkerPool } //! Directly executes a one-way SQL operation in prepared statement format, that will block the calling thread until finished. + //! Statement must be prepared with the CONNECTION_SYNCH flag. void DirectExecute(PreparedStatement* stmt) { T* t = GetFreeConnection(); @@ -203,7 +205,7 @@ class DatabaseWorkerPool } /** - Syncrhonous query (with resultset) methods. + Synchronous query (with resultset) methods. */ //! Directly executes an SQL query in string format that will block the calling thread until finished. @@ -256,6 +258,7 @@ class DatabaseWorkerPool //! Directly executes an SQL query in prepared format that will block the calling thread until finished. //! Returns reference counted auto pointer, no need for manual memory management in upper level code. + //! Statement must be prepared with CONNECTION_SYNCH flag. PreparedQueryResult Query(PreparedStatement* stmt) { T* t = GetFreeConnection(); @@ -297,6 +300,7 @@ class DatabaseWorkerPool //! Enqueues a query in prepared format that will set the value of the PreparedQueryResultFuture return object as soon as the query is executed. //! The return value is then processed in ProcessQueryCallback methods. + //! Statement must be prepared with CONNECTION_ASYNC flag. PreparedQueryResultFuture AsyncQuery(PreparedStatement* stmt) { PreparedQueryResultFuture res; @@ -308,6 +312,7 @@ class DatabaseWorkerPool //! Enqueues a vector of SQL operations (can be both adhoc and prepared) that will set the value of the QueryResultHolderFuture //! return object as soon as the query is executed. //! The return value is then processed in ProcessQueryCallback methods. + //! Any prepared statements added to this holder need to be prepared with the CONNECTION_ASYNC flag. QueryResultHolderFuture DelayQueryHolder(SQLQueryHolder* holder) { QueryResultHolderFuture res; diff --git a/src/server/shared/Database/Implementation/CharacterDatabase.cpp b/src/server/shared/Database/Implementation/CharacterDatabase.cpp index f93c4a70d7c..248c39018b2 100755 --- a/src/server/shared/Database/Implementation/CharacterDatabase.cpp +++ b/src/server/shared/Database/Implementation/CharacterDatabase.cpp @@ -26,7 +26,7 @@ void CharacterDatabaseConnection::DoPrepareStatements() PREPARE_STATEMENT(CHAR_ADD_QUEST_POOL_SAVE, "INSERT INTO pool_quest_save (pool_id, quest_id) VALUES (?, ?)", CONNECTION_ASYNC) PREPARE_STATEMENT(CHAR_DEL_NONEXISTENT_GUILD_BANK_ITEM, "DELETE FROM guild_bank_item WHERE guildid = ? AND TabId = ? AND SlotId = ?", CONNECTION_ASYNC) PREPARE_STATEMENT(CHAR_DEL_EXPIRED_BANS, "UPDATE character_banned SET active = 0 WHERE unbandate <= UNIX_TIMESTAMP() AND unbandate <> bandate", CONNECTION_ASYNC) - PREPARE_STATEMENT(CHAR_GET_GUID_BY_NAME, "SELECT guid FROM characters WHERE name = ?", CONNECTION_SYNCH); + PREPARE_STATEMENT(CHAR_GET_GUID_BY_NAME, "SELECT guid FROM characters WHERE name = ?", CONNECTION_SYNCH | CONNECTION_ASYNC); PREPARE_STATEMENT(CHAR_GET_CHECK_NAME, "SELECT 1 FROM characters WHERE name = ?", CONNECTION_ASYNC); PREPARE_STATEMENT(CHAR_GET_SUM_CHARS, "SELECT COUNT(guid) FROM characters WHERE account = ?", CONNECTION_ASYNC); PREPARE_STATEMENT(CHAR_GET_CHAR_CREATE_INFO, "SELECT level, race, class FROM characters WHERE account = ? LIMIT 0, ?", CONNECTION_ASYNC); @@ -36,6 +36,10 @@ void CharacterDatabaseConnection::DoPrepareStatements() PREPARE_STATEMENT(CHAR_GET_GUID_BY_NAME_FILTER, "SELECT guid, name FROM characters WHERE name LIKE CONCAT('%', ?, '%')", CONNECTION_SYNCH) PREPARE_STATEMENT(CHAR_GET_BANINFO_LIST, "SELECT bandate, unbandate, bannedby, banreason FROM character_banned WHERE guid = ? ORDER BY unbandate", CONNECTION_SYNCH) PREPARE_STATEMENT(CHAR_GET_BANNED_NAME, "SELECT characters.name FROM characters, character_banned WHERE character_banned.guid = ? AND character_banned.guid = characters.guid", CONNECTION_SYNCH) + PREPARE_STATEMENT(CHAR_GET_ENUM, "SELECT c.guid, c.name, c.race, c.class, c.gender, c.playerBytes, c.playerBytes2, c.level, c.zone, c.map, c.position_x, c.position_y, c.position_z, gm.guildid, c.playerFlags, c.at_login, cp.entry, cp.modelid, cp.level, c.equipmentCache, cb.guid FROM characters AS c LEFT JOIN character_pet AS cp ON c.guid = cp.owner AND cp.slot = ? LEFT JOIN guild_member AS gm ON c.guid = gm.guid LEFT JOIN character_banned AS cb ON c.guid = cb.guid AND cb.active = 1 WHERE c.account = ? ORDER BY c.guid", CONNECTION_ASYNC); + PREPARE_STATEMENT(CHAR_GET_ENUM_DECLINED_NAME, "SELECT c.guid, c.name, c.race, c.class, c.gender, c.playerBytes, c.playerBytes2, c.level, c.zone, c.map, c.position_x, c.position_y, c.position_z, gm.guildid, c.playerFlags, c.at_login, cp.entry, cp.modelid, cp.level, c.equipmentCache, cb.guid, cd.genitive FROM characters AS c LEFT JOIN character_pet AS cp ON c.guid = cp.owner AND cp.slot = ? LEFT JOIN character_declinedname AS cd ON c.guid = cd.guid LEFT JOIN guild_member AS gm ON c.guid = gm.guid LEFT JOIN character_banned AS cb ON c.guid = cb.guid AND cb.active = 1 WHERE c.account = ? ORDER BY c.guid", CONNECTION_ASYNC); + PREPARE_STATEMENT(CHAR_GET_PET_SLOTS, "SELECT owner, slot FROM character_pet WHERE owner = ? AND slot >= ? AND slot <= ? ORDER BY slot", CONNECTION_ASYNC); + PREPARE_STATEMENT(CHAR_GET_FREE_NAME, "SELECT guid, name FROM characters WHERE guid = ? AND account = ? AND (at_login & ?) = ? AND NOT EXISTS (SELECT NULL FROM characters WHERE name = ?)", CONNECTION_ASYNC); // Start LoginQueryHolder content PREPARE_STATEMENT(CHAR_LOAD_PLAYER, "SELECT guid, account, name, race, class, gender, level, xp, money, playerBytes, playerBytes2, playerFlags, " @@ -111,6 +115,8 @@ void CharacterDatabaseConnection::DoPrepareStatements() PREPARE_STATEMENT(CHAR_LOAD_PLAYER_NAME_CLASS, "SELECT name, class FROM characters WHERE guid = ?", CONNECTION_SYNCH); PREPARE_STATEMENT(CHAR_LOAD_MATCH_MAKER_RATING, "SELECT matchMakerRating FROM character_arena_stats WHERE guid = ? AND slot = ?", CONNECTION_SYNCH); PREPARE_STATEMENT(CHAR_GET_CHARACTER_COUNT, "SELECT account, COUNT(guid) FROM characters WHERE account = ? GROUP BY account", CONNECTION_ASYNC); + PREPARE_STATEMENT(CHAR_UPDATE_NAME, "UPDATE characters set name = ?, at_login = at_login & ~ ? WHERE guid = ?", CONNECTION_ASYNC); + PREPARE_STATEMENT(CHAR_DEL_DECLINED_NAME, "DELETE FROM character_declinedname WHERE guid = ?", CONNECTION_ASYNC); // Guild handling // 0: uint32, 1: string, 2: uint32, 3: string, 4: string, 5: uint64, 6-10: uint32, 11: uint64 diff --git a/src/server/shared/Database/Implementation/CharacterDatabase.h b/src/server/shared/Database/Implementation/CharacterDatabase.h index f06a17aa924..adaa9d2709c 100755 --- a/src/server/shared/Database/Implementation/CharacterDatabase.h +++ b/src/server/shared/Database/Implementation/CharacterDatabase.h @@ -56,6 +56,10 @@ enum CharacterDatabaseStatements CHAR_GET_GUID_BY_NAME_FILTER, CHAR_GET_BANINFO_LIST, CHAR_GET_BANNED_NAME, + CHAR_GET_ENUM, + CHAR_GET_ENUM_DECLINED_NAME, + CHAR_GET_PET_SLOTS, + CHAR_GET_FREE_NAME, CHAR_LOAD_PLAYER, CHAR_LOAD_PLAYER_GROUP, CHAR_LOAD_PLAYER_BOUNDINSTANCES, @@ -120,6 +124,8 @@ enum CharacterDatabaseStatements CHAR_LOAD_PLAYER_NAME_CLASS, CHAR_LOAD_MATCH_MAKER_RATING, CHAR_GET_CHARACTER_COUNT, + CHAR_UPDATE_NAME, + CHAR_DEL_DECLINED_NAME, CHAR_ADD_GUILD, CHAR_DEL_GUILD, diff --git a/src/server/worldserver/CommandLine/CliRunnable.cpp b/src/server/worldserver/CommandLine/CliRunnable.cpp index 564f6028eca..61352521d9f 100755 --- a/src/server/worldserver/CommandLine/CliRunnable.cpp +++ b/src/server/worldserver/CommandLine/CliRunnable.cpp @@ -104,7 +104,7 @@ void utf8print(void* /*arg*/, const char* str) printf(temp_buf); #else { - printf(str); + printf("%s", str); fflush(stdout); } #endif diff --git a/src/server/worldserver/RemoteAccess/RASocket.cpp b/src/server/worldserver/RemoteAccess/RASocket.cpp index 71d4d1df035..82238ee54bc 100755 --- a/src/server/worldserver/RemoteAccess/RASocket.cpp +++ b/src/server/worldserver/RemoteAccess/RASocket.cpp @@ -286,7 +286,7 @@ int RASocket::subnegotiate() if (n >= 1024) { - sLog->outRemote("RASocket::subnegotiate: allocated buffer 1024 bytes was too small for negotiation packet, size: %u", n); + sLog->outRemote("RASocket::subnegotiate: allocated buffer 1024 bytes was too small for negotiation packet, size: %u", uint32(n)); return -1; } |