diff options
author | Vincent_Michael <Vincent_Michael@gmx.de> | 2013-12-20 17:26:27 +0100 |
---|---|---|
committer | Vincent_Michael <Vincent_Michael@gmx.de> | 2013-12-20 17:26:27 +0100 |
commit | 736093e91b2efee9cb7df37d32fd6705018a6eb5 (patch) | |
tree | d76ca2cf1b4f5a65bf460ddeadebc7634da264af | |
parent | 2ded11354de44d6dd7ce6bd222ac188f8fbc3c9c (diff) | |
parent | 06d42afba09c7048ed42f3e1d923a2a5b6dca93c (diff) |
Merge branch 'master' of github.com:TrinityCore/TrinityCore into 4.3.4
Conflicts:
src/server/game/DungeonFinding/LFGMgr.cpp
src/server/scripts/Kalimdor/zone_silithus.cpp
-rw-r--r-- | sql/updates/world/2013_12_18_02_world_misc.sql | 4 | ||||
-rw-r--r-- | sql/updates/world/2013_12_19_00_world_misc.sql | 71 | ||||
-rw-r--r-- | sql/updates/world/2013_12_19_01_world_sai.sql | 525 | ||||
-rw-r--r-- | sql/updates/world/2013_12_19_02_world_sai.sql | 49 | ||||
-rw-r--r-- | sql/updates/world/2013_12_19_03_world_misc.sql | 30 | ||||
-rw-r--r-- | sql/updates/world/2013_12_19_04_world_misc.sql | 28 | ||||
-rw-r--r-- | sql/updates/world/2013_12_20_00_world_misc.sql | 112 | ||||
-rw-r--r-- | src/server/game/AI/SmartScripts/SmartScript.cpp | 4 | ||||
-rw-r--r-- | src/server/game/DungeonFinding/LFGMgr.cpp | 149 | ||||
-rw-r--r-- | src/server/game/DungeonFinding/LFGQueue.cpp | 42 | ||||
-rw-r--r-- | src/server/scripts/Kalimdor/zone_silithus.cpp | 79 | ||||
-rw-r--r-- | src/server/scripts/Outland/zone_blades_edge_mountains.cpp | 32 | ||||
-rw-r--r-- | src/server/scripts/Outland/zone_shadowmoon_valley.cpp | 72 | ||||
-rw-r--r-- | src/server/shared/Logging/Log.cpp | 3 | ||||
-rw-r--r-- | src/server/shared/Logging/Log.h | 52 |
15 files changed, 954 insertions, 298 deletions
diff --git a/sql/updates/world/2013_12_18_02_world_misc.sql b/sql/updates/world/2013_12_18_02_world_misc.sql index a52a71948b2..ea7276481d7 100644 --- a/sql/updates/world/2013_12_18_02_world_misc.sql +++ b/sql/updates/world/2013_12_18_02_world_misc.sql @@ -61,9 +61,9 @@ INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z` UPDATE `creature` SET `spawndist`=5,`MovementType`=1 WHERE `guid`=74216; UPDATE `creature` SET `spawndist`=10,`MovementType`=1 WHERE `id`=21423; UPDATE `creature` SET `spawndist`=0,`MovementType`=0 WHERE `guid` IN (74147,74148,74149,74151,74152,74153,74154,74156); -UPDATE `Creature_template` SET InhabitType=4 WHERE `entry`=21757; +UPDATE `creature_template` SET InhabitType=4 WHERE `entry`=21757; UPDATE `creature_template` SET `InhabitType`=4, `flags_extra`=`flags_extra`|128 WHERE `entry` IN (21393,21413,21819); -UPDATE `Creature_template_addon` SET bytes2=258 WHERE `entry`=21115; +UPDATE `creature_template_addon` SET bytes2=258 WHERE `entry`=21115; DELETE FROM `creature_template_addon` WHERE `entry`=21441; INSERT INTO `creature_template_addon` (`entry`,`path_id`,`bytes2`,`emote`,`auras`) VALUES (21441,0,258,214, ''); diff --git a/sql/updates/world/2013_12_19_00_world_misc.sql b/sql/updates/world/2013_12_19_00_world_misc.sql new file mode 100644 index 00000000000..a3d83ad2a3a --- /dev/null +++ b/sql/updates/world/2013_12_19_00_world_misc.sql @@ -0,0 +1,71 @@ +-- Grovestalker Lynx SAI "Missing AI" +SET @ENTRY := 21022; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +UPDATE `creature` SET `curhealth`=1 WHERE `id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,4,0,100,0,0,0,0,0,11,36589,0,0,0,0,0,1,0,0,0,0,0,0,0,"Grovestalker Lynx - On Aggro - Cast Dash"); + +-- Fey Drake SAI "Missing AI" +SET @ENTRY := 20713; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +UPDATE `creature` SET `curhealth`=1, `curmana`=0 WHERE `id`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,0,0,100,0,12000,12000,12000,15000,11,11981,0,0,0,0,0,2,0,0,0,0,0,0,0,"Fey Drake - In Combat - Cast Mana Burn"), +(@ENTRY,0,1,0,0,0,100,0,5000,6000,5000,7000,11,36718,0,0,0,0,0,1,0,0,0,0,0,0,0,"Fey Drake - In Combat - Cast Blink"); + +-- Pathing for High Commander Halford Wyrmbane Entry: 27136 +SET @NPC := 131105; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=3767.499,`position_y`=-775.0477,`position_z`=196.087 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,3767.499,-775.0477,196.087,0,0,0,100,0), +(@PATH,2,3776.538,-783.3422,196.087,0,0,0,100,0); + +-- Pathing for Stronglimb Deeproot Entry: 21023 +SET @NPC := 73833; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=1562.740,`position_y`=6815.711,`position_z`=126.20748 WHERE `guid`=@NPC; +UPDATE `creature_template_addon` SET `path_id`=@PATH WHERE `entry`=21023; +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,1562.740,6815.711,126.20748,0,0,0,0,100,0), +(@PATH,2,1579.44,6823.31,128.221,0,0,0,0,100,0), +(@PATH,3,1596.410,6824.691,129.57422,0,0,0,0,100,0), +(@PATH,4,1613.536,6820.844,130.43893,0,0,0,0,100,0), +(@PATH,5,1626.575,6815.952,131.11913,0,0,0,0,100,0), +(@PATH,6,1647.335,6811.267,132.32887,0,0,0,0,100,0), +(@PATH,7,1666.315,6811.949,134.0304,0,0,0,0,100,0), +(@PATH,8,1682.469,6819.250,135.48557,0,0,0,0,100,0), +(@PATH,9,1704.364,6826.659,135.97731,0,0,0,0,100,0), +(@PATH,10,1723.946,6822.768,136.24043,0,0,0,0,100,0), +(@PATH,11,1744.097,6815.729,136.71513,0,0,0,0,100,0), +(@PATH,12,1767.085,6807.892,137.25296,0,0,0,0,100,0), +(@PATH,13,1794.797,6805.661,137.31673,0,0,0,0,100,0), +(@PATH,14,1824.876,6814.818,138.48926,0,0,0,0,100,0), +(@PATH,15,1851.305,6823.799,141.24908,0,0,0,0,100,0), +(@PATH,16,1877.366,6829.852,144.43327,0,0,0,0,100,0), +(@PATH,17,1897.890,6833.999,146.215,0,0,0,0,100,0), +(@PATH,18,1907.787,6835.113,147.04056,3.015979,30000,0,0,100,0), +(@PATH,19,1897.890,6833.999,146.215,0,0,0,0,100,0), +(@PATH,20,1877.366,6829.852,144.43327,0,0,0,0,100,0), +(@PATH,21,1851.305,6823.799,141.24908,0,0,0,0,100,0), +(@PATH,22,1824.876,6814.818,138.48926,0,0,0,0,100,0), +(@PATH,23,1794.797,6805.661,137.31673,0,0,0,0,100,0), +(@PATH,24,1767.085,6807.892,137.25296,0,0,0,0,100,0), +(@PATH,25,1744.097,6815.729,136.71513,0,0,0,0,100,0), +(@PATH,26,1723.946,6822.768,136.24043,0,0,0,0,100,0), +(@PATH,27,1704.364,6826.659,135.97731,0,0,0,0,100,0), +(@PATH,28,1682.469,6819.250,135.48557,0,0,0,0,100,0), +(@PATH,29,1666.315,6811.949,134.03040,0,0,0,0,100,0), +(@PATH,30,1647.335,6811.267,132.32887,0,0,0,0,100,0), +(@PATH,31,1626.575,6815.952,131.11913,0,0,0,0,100,0), +(@PATH,32,1613.536,6820.844,130.43893,0,0,0,0,100,0), +(@PATH,33,1596.410,6824.691,129.57422,0,0,0,0,100,0), +(@PATH,34,1579.440,6823.310,128.22100,0,0,0,0,100,0), +(@PATH,35,1562.740,6815.711,126.20748,0,0,0,0,100,0), +(@PATH,36,1548.781,6810.126,124.27861,2.58955,30000,0,0,100,0); diff --git a/sql/updates/world/2013_12_19_01_world_sai.sql b/sql/updates/world/2013_12_19_01_world_sai.sql new file mode 100644 index 00000000000..e282faa7a23 --- /dev/null +++ b/sql/updates/world/2013_12_19_01_world_sai.sql @@ -0,0 +1,525 @@ +-- Bloodmaul Skirmisher SAI +SET @ENTRY := 19948; +UPDATE `creature_template` SET `AIName`='SmartAI',`ScriptName`= '' WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,6,0,100,0,0,0,0,0,1,1,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bloodmaul Skirmisher - On Death - Say text 1 CONDITIONED"), +(@ENTRY,0,1,0,4,0,35,0,0,0,0,0,1,0,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bloodmaul Skirmisher - On Aggro - Say text 0"), +(@ENTRY,0,2,0,2,0,100,0,10000,12000,10000,12000,11,37786,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodmaul Skirmisher - In Combat - Cast Bloodmaul Rage"); +DELETE FROM `creature_text` WHERE `entry`=@ENTRY; +INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES +(@ENTRY,0,0, 'Stupid puny thing. Me smash!',12,0,100,0,0,0, 'Bloodmaul Skirmisher on Aggro Text'), +(@ENTRY,0,1, 'Me mad. You get smash in face!',12,0,100,0,0,0, 'Bloodmaul Skirmisher on Aggro Text'), +(@ENTRY,0,2, 'Me angered. Raaah!',12,0,100,0,0,0, 'Bloodmaul Skirmisher on Aggro Text'), +(@ENTRY,0,3, 'I''ll crush you!',12,0,100,0,0,0, 'Bloodmaul Skirmisher on Aggro Text'), +(@ENTRY,1,0, 'Puny $r... you were a... horrible king.',12,0,100,0,0,0, 'Bloodmaul Skirmisher on death Quest 11000 complete'), +(@ENTRY,1,1, 'Agh... me am...dead.',12,0,100,0,0,0, 'Bloodmaul Skirmisher on death Quest 11000 complete'), +(@ENTRY,1,2, 'Me go to Ogri''la.',12,0,100,0,0,0, 'Bloodmaul Skirmisher on death Quest 11000 complete'), +(@ENTRY,1,3, 'King think... there really is... an Ogri''la',12,0,100,0,0,0, 'Bloodmaul Skirmisher on death Quest 11000 complete'), +(@ENTRY,1,4, 'Me honored... king kill me.',12,0,100,0,0,0, 'Bloodmaul Skirmisher on death Quest 11000 complete'), +(@ENTRY,1,5, 'King $n, me die now.',12,0,100,0,0,0, 'Bloodmaul Skirmisher on death Quest 11000 complete'); +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=22 AND `SourceEntry`=@ENTRY; +INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES +(22,1,@ENTRY,0,0,8,0,11000,0,0,0,0,0, '', 'SAI - Bloodmaul Skirmisher says text on death if quest 11000 is rewarded'); + +-- Bloodmaul Mauler SAI +SET @ENTRY := 19993; +UPDATE `creature_template` SET `AIName`='SmartAI',`ScriptName`= '' WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,6,0,100,0,0,0,0,0,1,1,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bloodmaul Mauler - On Death - Say text 1 CONDITIONED"), +(@ENTRY,0,1,0,4,0,35,0,0,0,0,0,1,0,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bloodmaul Mauler - On Aggro - Say text 0"), +(@ENTRY,0,2,0,2,0,100,0,10000,12000,10000,12000,11,37786,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodmaul Mauler - In Combat - Cast Bloodmaul Rage"); +DELETE FROM `creature_text` WHERE `entry`=@ENTRY; +INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES +(@ENTRY,0,0, 'Stupid puny thing. Me smash!',12,0,100,0,0,0, 'Bloodmaul Mauler on Aggro Text'), +(@ENTRY,0,1, 'Me mad. You get smash in face!',12,0,100,0,0,0, 'Bloodmaul Mauler on Aggro Text'), +(@ENTRY,0,2, 'Me angered. Raaah!',12,0,100,0,0,0, 'Bloodmaul Mauler on Aggro Text'), +(@ENTRY,0,3, 'I''ll crush you!',12,0,100,0,0,0, 'Bloodmaul Mauler on Aggro Text'), +(@ENTRY,1,0, 'Puny $r... you were a... horrible king.',12,0,100,0,0,0, 'Bloodmaul Mauler on death Quest 11000 complete'), +(@ENTRY,1,1, 'Agh... me am...dead.',12,0,100,0,0,0, 'Bloodmaul Mauler on death Quest 11000 complete'), +(@ENTRY,1,2, 'Me go to Ogri''la.',12,0,100,0,0,0, 'Bloodmaul Mauler on death Quest 11000 complete'), +(@ENTRY,1,3, 'King think... there really is... an Ogri''la',12,0,100,0,0,0, 'Bloodmaul Mauler on death Quest 11000 complete'), +(@ENTRY,1,4, 'Me honored... king kill me.',12,0,100,0,0,0, 'Bloodmaul Mauler on death Quest 11000 complete'), +(@ENTRY,1,5, 'King $n, me die now.',12,0,100,0,0,0, 'Bloodmaul Mauler on death Quest 11000 complete'); +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=22 AND `SourceEntry`=@ENTRY; +INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES +(22,1,@ENTRY,0,0,8,0,11000,0,0,0,0,0, '', 'SAI - Bloodmaul Mauler says text on death if quest 11000 is rewarded'); + +-- Bloodmaul Warlock SAI +SET @ENTRY := 19994; +UPDATE `creature_template` SET `AIName`='SmartAI',`ScriptName`= '' WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,6,0,100,0,0,0,0,0,1,1,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bloodmaul Warlock - On Death - Say text 1 CONDITIONED"), +(@ENTRY,0,1,0,1,0,100,0,1000,1000,1800000,1800000,11,13787,1,1,0,0,0,1,0,0,0,0,0,0,0,"Bloodmaul Warlock - Out Of Combat - Cast Demon Armor"), +(@ENTRY,0,2,0,1,0,100,0,3000,3000,0,0,11,11939,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodmaul Warlock - Out Of Combat - Cast Summon Imp"), +(@ENTRY,0,3,0,4,0,35,0,0,0,0,0,1,0,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bloodmaul Warlock - On Aggro - Say text 0"), +(@ENTRY,0,4,0,0,0,100,0,0,0,2400,3800,11,20825,64,0,0,0,0,2,0,0,0,0,0,0,0,"Bloodmaul Warlock - In Combat - Cast Shadow Bolt"), +(@ENTRY,0,5,0,2,0,100,1,0,20,0,0,25,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodmaul Warlock - Between 0-20% Health - Flee for assist"); +DELETE FROM `creature_text` WHERE `entry`=@ENTRY; +INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES +(@ENTRY,0,0, 'Me smash! You die!',12,0,100,0,0,0, 'Bloodmaul Warlock on Aggro Text'), +(@ENTRY,0,1, 'Raaar!!! Me smash $r!',12,0,100,0,0,0, 'Bloodmaul Warlock on Aggro Text'), +(@ENTRY,0,2, 'I''ll crush you!',12,0,100,0,0,0, 'Bloodmaul Warlock on Aggro Text'), +(@ENTRY,1,0, 'Puny $r... you were a... horrible king.',12,0,100,0,0,0, 'Bloodmaul Warlock on death Quest 11000 complete'), +(@ENTRY,1,1, 'Agh... me am...dead.',12,0,100,0,0,0, 'Bloodmaul Warlock on death Quest 11000 complete'), +(@ENTRY,1,2, 'Me go to Ogri''la.',12,0,100,0,0,0, 'Bloodmaul Warlock on death Quest 11000 complete'), +(@ENTRY,1,3, 'King think... there really is... an Ogri''la',12,0,100,0,0,0, 'Bloodmaul Warlock on death Quest 11000 complete'), +(@ENTRY,1,4, 'Me honored... king kill me.',12,0,100,0,0,0, 'Bloodmaul Warlock on death Quest 11000 complete'), +(@ENTRY,1,5, 'King $n, me die now.',12,0,100,0,0,0, 'Bloodmaul Warlock on death Quest 11000 complete'); +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=22 AND `SourceEntry`=@ENTRY; +INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES +(22,1,@ENTRY,0,0,8,0,11000,0,0,0,0,0, '', 'SAI - Bloodmaul Warlock says text on death if quest 11000 is rewarded'); + +-- Bladespire Crusher SAI +SET @ENTRY := 20765; +UPDATE `creature_template` SET `AIName`='SmartAI',`ScriptName`= '' 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,6,0,100,0,0,0,0,0,1,1,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bladespire Crusher - On Death - Say text 1 CONDITIONED"), +(@ENTRY,0,1,0,4,0,35,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Bladespire Crusher - on Aggro - Say Text 0'), +(@ENTRY,0,2,0,0,0,100,0,3000,5000,10000,20000,11,15496,0,0,0,0,0,1,0,0,0,0,0,0,0,'Bladespire Crusher - In Combat - Cast Cleave'), +(@ENTRY,0,3,4,2,0,100,0,0,30,35000,45000,11,8599,0,0,0,0,0,1,0,0,0,0,0,0,0,'Bladespire Crusher - HP below 30% - Cast Enrage'), +(@ENTRY,0,4,0,61,0,100,0,0,0,0,0,1,2,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bladespire Crusher - HP below 30% - Say text 2"); +DELETE FROM `creature_text` WHERE `entry`=@ENTRY; +INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES +(@ENTRY,0,0, 'Stupid puny thing. Me smash!',12,0,100,0,0,0, 'Bladespire Crusher on Aggro Text'), +(@ENTRY,0,1, 'Me mad. You get smash in face!',12,0,100,0,0,0, 'Bladespire Crusher on Aggro Text'), +(@ENTRY,0,2, 'Raaar!!! Me smash $r!',12,0,100,0,0,0, 'Bladespire Crusher on Aggro Text'), +(@ENTRY,1,0, 'Puny $r... you were a... horrible king.',12,0,100,0,0,0, 'Bladespire Crusher on death Quest 11000 complete'), +(@ENTRY,1,1, 'Agh... me am...dead.',12,0,100,0,0,0, 'Bladespire Crusher on death Quest 11000 complete'), +(@ENTRY,1,2, 'Me go to Ogri''la.',12,0,100,0,0,0, 'Bladespire Crusher on death Quest 11000 complete'), +(@ENTRY,1,3, 'King think... there really is... an Ogri''la',12,0,100,0,0,0, 'Bladespire Crusher on death Quest 11000 complete'), +(@ENTRY,1,4, 'Me honored... king kill me.',12,0,100,0,0,0, 'Bladespire Crusher on death Quest 11000 complete'), +(@ENTRY,1,5, 'King $n, me die now.',12,0,100,0,0,0, 'Bladespire Crusher on death Quest 11000 complete'), +(@ENTRY,2,0, '%s becomes enraged!',16,0,100,0,0,0, 'Bladespire Crusher on enrage'); +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=22 AND `SourceEntry`=@ENTRY; +INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES +(22,1,@ENTRY,0,0,8,0,11000,0,0,0,0,0, '', 'SAI - Bladespire Crusher says text on death if quest 11000 is rewarded'); + +-- Bladespire Mystic SAI +SET @ENTRY := 20766; +UPDATE `creature_template` SET `AIName`='SmartAI',`ScriptName`= '' 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,6,0,100,0,0,0,0,0,1,1,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bladespire Mystic - On Death - Say text 1 CONDITIONED"), +(@ENTRY,0,1,0,4,0,35,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Bladespire Mystic - On Aggro - Say Text 0'), +(@ENTRY,0,2,0,1,0,100,0,500,1000,600000,600000,11,12550,0,0,0,0,0,1,0,0,0,0,0,0,0,'Bladespire Mystic - Out of Combat - Cast Lightning Shield'), +(@ENTRY,0,3,0,0,0,100,0,6000,9000,17000,17000,11,37599,0,0,0,0,0,1,0,0,0,0,0,0,0,'Bladespire Mystic - In Combat - Cast Bloodlust'), +(@ENTRY,0,4,0,14,0,100,0,3000,40,15000,18000,11,11986,0,0,0,0,0,7,0,0,0,0,0,0,0,'Bladespire Mystic - Friendly HP below 60% - Cast Healing Wave'); +DELETE FROM `creature_text` WHERE `entry`=@ENTRY; +INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES +(@ENTRY,0,0, 'Stupid puny thing. Me smash!',12,0,100,0,0,0, 'Bladespire Mystic on Aggro Text'), +(@ENTRY,0,1, 'Me mad. You get smash in face!',12,0,100,0,0,0, 'Bladespire Mystic on Aggro Text'), +(@ENTRY,0,2, 'Raaar!!! Me smash $r!',12,0,100,0,0,0, 'Bladespire Mystic on Aggro Text'), +(@ENTRY,1,0, 'Puny $r... you were a... horrible king.',12,0,100,0,0,0, 'Bladespire Mystic on death Quest 11000 complete'), +(@ENTRY,1,1, 'Agh... me am...dead.',12,0,100,0,0,0, 'Bladespire Mystic on death Quest 11000 complete'), +(@ENTRY,1,2, 'Me go to Ogri''la.',12,0,100,0,0,0, 'Bladespire Mystic on death Quest 11000 complete'), +(@ENTRY,1,3, 'King think... there really is... an Ogri''la',12,0,100,0,0,0, 'Bladespire Mystic on death Quest 11000 complete'), +(@ENTRY,1,4, 'Me honored... king kill me.',12,0,100,0,0,0, 'Bladespire Mystic on death Quest 11000 complete'), +(@ENTRY,1,5, 'King $n, me die now.',12,0,100,0,0,0, 'Bladespire Mystic on death Quest 11000 complete'); +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=22 AND `SourceEntry`=@ENTRY; +INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES +(22,1,@ENTRY,0,0,8,0,11000,0,0,0,0,0, '', 'SAI - Bladespire Mystic says text on death if quest 11000 is rewarded'); + +-- Gnosh Brognat SAI +SET @ENTRY := 20768; +UPDATE `creature_template` SET `AIName`='SmartAI',`ScriptName`= '' 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,6,0,100,0,0,0,0,0,1,1,0,0,0,0,0,2,0,0,0,0,0,0,0,"Gnosh Brognat - On Death - Say text 1 CONDITIONED"), +(@ENTRY,0,1,0,4,0,35,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Gnosh Brognat - On Aggro - Say Text 0'), +(@ENTRY,0,2,0,0,0,100,0,15000,20000,15000,20000,11,37597,0,0,0,0,0,2,0,0,0,0,0,0,0,'Gnosh Brognat - In Combat - Cast Meat Slap'), +(@ENTRY,0,3,0,0,0,100,0,15000,20000,15000,20000,11,37596,32,0,0,0,0,2,0,0,0,0,0,0,0,'Gnosh Brognat - In Combat - Cast Tenderize'); +DELETE FROM `creature_text` WHERE `entry`=@ENTRY; +INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES +(@ENTRY,0,0, 'Stupid puny thing. Me smash!',12,0,100,0,0,0, 'Gnosh Brognat on Aggro Text'), +(@ENTRY,0,1, 'Me mad. You get smash in face!',12,0,100,0,0,0, 'Gnosh Brognat on Aggro Text'), +(@ENTRY,0,2, 'Raaar!!! Me smash $r!',12,0,100,0,0,0, 'Gnosh Brognat on Aggro Text'), +(@ENTRY,1,0, 'Puny $r... you were a... horrible king.',12,0,100,0,0,0, 'Gnosh Brognat on death Quest 11000 complete'), +(@ENTRY,1,1, 'Agh... me am...dead.',12,0,100,0,0,0, 'Gnosh Brognat on death Quest 11000 complete'), +(@ENTRY,1,2, 'Me go to Ogri''la.',12,0,100,0,0,0, 'Gnosh Brognat on death Quest 11000 complete'), +(@ENTRY,1,3, 'King think... there really is... an Ogri''la',12,0,100,0,0,0, 'Gnosh Brognat on death Quest 11000 complete'), +(@ENTRY,1,4, 'Me honored... king kill me.',12,0,100,0,0,0, 'Gnosh Brognat on death Quest 11000 complete'), +(@ENTRY,1,5, 'King $n, me die now.',12,0,100,0,0,0, 'Gnosh Brognat on death Quest 11000 complete'); +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=22 AND `SourceEntry`=@ENTRY; +INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES +(22,1,@ENTRY,0,0,8,0,11000,0,0,0,0,0, '', 'SAI - Gnosh Brognat says text on death if quest 11000 is rewarded'); + +-- Bloodmaul Drudger SAI +SET @ENTRY := 21238; +UPDATE `creature_template` SET `AIName`='SmartAI',`ScriptName`= '' 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,6,0,100,0,0,0,0,0,1,1,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bloodmaul Drudger - On Death - Say text 1 CONDITIONED"), +(@ENTRY,0,1,0,4,0,35,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Bloodmaul Drudger - On Aggro - Say Text 0'), +(@ENTRY,0,2,0,0,0,100,0,9000,9000,30000,30000,11,35918,0,0,0,0,0,2,0,0,0,0,0,0,0,'Bloodmaul Drudger - In Combat - Cast Puncture Armor'), +(@ENTRY,0,3,4,2,0,100,0,0,30,35000,45000,11,8599,0,0,0,0,0,1,0,0,0,0,0,0,0,'Bloodmaul Drudger - HP below 30% - Cast Enrage'), +(@ENTRY,0,4,0,61,0,100,0,0,0,0,0,1,2,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bloodmaul Drudger - HP below 30% - Say text 2"); +DELETE FROM `creature_text` WHERE `entry`=@ENTRY; +INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES +(@ENTRY,0,0, 'Stupid puny thing. Me smash!',12,0,100,0,0,0, 'Bloodmaul Drudger on Aggro Text'), +(@ENTRY,0,1, 'Me mad. You get smash in face!',12,0,100,0,0,0, 'Bloodmaul Drudger on Aggro Text'), +(@ENTRY,0,2, 'Raaar!!! Me smash $r!',12,0,100,0,0,0, 'Bloodmaul Drudger on Aggro Text'), +(@ENTRY,1,0, 'Puny $r... you were a... horrible king.',12,0,100,0,0,0, 'Bloodmaul Drudger on death Quest 11000 complete'), +(@ENTRY,1,1, 'Agh... me am...dead.',12,0,100,0,0,0, 'Bloodmaul Drudger on death Quest 11000 complete'), +(@ENTRY,1,2, 'Me go to Ogri''la.',12,0,100,0,0,0, 'Bloodmaul Drudger on death Quest 11000 complete'), +(@ENTRY,1,3, 'King think... there really is... an Ogri''la',12,0,100,0,0,0, 'Bloodmaul Drudger on death Quest 11000 complete'), +(@ENTRY,1,4, 'Me honored... king kill me.',12,0,100,0,0,0, 'Bloodmaul Drudger on death Quest 11000 complete'), +(@ENTRY,1,5, 'King $n, me die now.',12,0,100,0,0,0, 'Bloodmaul Drudger on death Quest 11000 complete'), +(@ENTRY,2,0, '%s goes into a frenzy!',16,0,100,0,0,0, 'Bloodmaul Drudger on enrage'); +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=22 AND `SourceEntry`=@ENTRY; +INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES +(22,1,@ENTRY,0,0,8,0,11000,0,0,0,0,0, '', 'SAI - Bloodmaul Drudger says text on death if quest 11000 is rewarded'); + +-- Bloodmaul Brute SAI +SET @ENTRY := 19991; +UPDATE `creature_template` SET `AIName`='SmartAI',`ScriptName`= '' 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,6,0,100,0,0,0,0,0,1,1,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bloodmaul Brute - On Death - Say text 1 CONDITIONED"), +(@ENTRY,0,1,0,4,0,35,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Bloodmaul Brute - On Aggro - Say Text 0'), +(@ENTRY,0,2,0,0,0,100,0,9000,12000,9000,12000,11,15496,0,0,0,0,0,1,0,0,0,0,0,0,0,'Bloodmaul Brute - In Combat - Cast Cleave'), +(@ENTRY,0,3,0,0,0,100,0,15000,15000,18000,22000,11,37577,0,0,0,0,0,2,0,0,0,0,0,0,0,'Bloodmaul Brute - In Combat - Cast Debilitating Strike'), +(@ENTRY,0,4,5,2,0,100,0,0,30,35000,45000,11,8599,0,0,0,0,0,1,0,0,0,0,0,0,0,'Bloodmaul Brute - HP below 30% - Cast Enrage'), +(@ENTRY,0,5,0,61,0,100,0,0,0,0,0,1,2,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bloodmaul Brute - HP below 30% - Say text 2"); +DELETE FROM `creature_text` WHERE `entry`=@ENTRY; +INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES +(@ENTRY,0,0, 'Stupid puny thing. Me smash!',12,0,100,0,0,0, 'Bloodmaul Brute on Aggro Text'), +(@ENTRY,0,1, 'Me mad. You get smash in face!',12,0,100,0,0,0, 'Bloodmaul Brute on Aggro Text'), +(@ENTRY,0,2, 'Raaar!!! Me smash $r!',12,0,100,0,0,0, 'Bloodmaul Brute on Aggro Text'), +(@ENTRY,1,0, 'Puny $r... you were a... horrible king.',12,0,100,0,0,0, 'Bloodmaul Brute on death Quest 11000 complete'), +(@ENTRY,1,1, 'Agh... me am...dead.',12,0,100,0,0,0, 'Bloodmaul Brute on death Quest 11000 complete'), +(@ENTRY,1,2, 'Me go to Ogri''la.',12,0,100,0,0,0, 'Bloodmaul Brute on death Quest 11000 complete'), +(@ENTRY,1,3, 'King think... there really is... an Ogri''la',12,0,100,0,0,0, 'Bloodmaul Brute on death Quest 11000 complete'), +(@ENTRY,1,4, 'Me honored... king kill me.',12,0,100,0,0,0, 'Bloodmaul Brute on death Quest 11000 complete'), +(@ENTRY,1,5, 'King $n, me die now.',12,0,100,0,0,0, 'Bloodmaul Brute on death Quest 11000 complete'), +(@ENTRY,2,0, '%s goes into a frenzy!',16,0,100,0,0,0, 'Bloodmaul Brute on enrage'); +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=22 AND `SourceEntry`=@ENTRY; +INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES +(22,1,@ENTRY,0,0,8,0,11000,0,0,0,0,0, '', 'SAI - Bloodmaul Brute says text on death if quest 11000 is rewarded'); + +-- Bloodmaul Shaman SAI +SET @ENTRY := 19992; +UPDATE `creature_template` SET `AIName`='SmartAI',`ScriptName`= '' WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,6,0,100,0,0,0,0,0,1,1,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bloodmaul Shaman - On Death - Say text 1 CONDITIONED"), +(@ENTRY,0,1,0,1,0,100,0,0,0,60000,60000,11,12550,1,1,0,0,0,1,0,0,0,0,0,0,0,"Bloodmaul Shaman - Out Of Combat - Cast Lightning Shield"), +(@ENTRY,0,2,0,4,0,35,0,0,0,0,0,1,0,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bloodmaul Shaman - On Aggro - Say text 0"), +(@ENTRY,0,3,0,0,0,50,0,6000,6000,50000,50000,11,15038,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodmaul Shaman - In Combat - Cast Scorching Totem"), +(@ENTRY,0,4,0,0,0,100,0,12000,12000,45000,45000,11,15869,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodmaul Shaman - In Combat - Cast Superior Healing Ward"); +DELETE FROM `creature_text` WHERE `entry`=@ENTRY; +INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES +(@ENTRY,0,0, 'Me smash! You die!',12,0,100,0,0,0, 'Bloodmaul Shaman on Aggro Text'), +(@ENTRY,0,1, 'Raaar!!! Me smash $r!',12,0,100,0,0,0, 'Bloodmaul Shaman on Aggro Text'), +(@ENTRY,0,2, 'I''ll crush you!',12,0,100,0,0,0, 'Bloodmaul Shaman on Aggro Text'), +(@ENTRY,1,0, 'Puny $r... you were a... horrible king.',12,0,100,0,0,0, 'Bloodmaul Shaman on death Quest 11000 complete'), +(@ENTRY,1,1, 'Agh... me am...dead.',12,0,100,0,0,0, 'Bloodmaul Shaman on death Quest 11000 complete'), +(@ENTRY,1,2, 'Me go to Ogri''la.',12,0,100,0,0,0, 'Bloodmaul Shaman on death Quest 11000 complete'), +(@ENTRY,1,3, 'King think... there really is... an Ogri''la',12,0,100,0,0,0, 'Bloodmaul Shaman on death Quest 11000 complete'), +(@ENTRY,1,4, 'Me honored... king kill me.',12,0,100,0,0,0, 'Bloodmaul Shaman on death Quest 11000 complete'), +(@ENTRY,1,5, 'King $n, me die now.',12,0,100,0,0,0, 'Bloodmaul Shaman on death Quest 11000 complete'); +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=22 AND `SourceEntry`=@ENTRY; +INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES +(22,1,@ENTRY,0,0,8,0,11000,0,0,0,0,0, '', 'SAI - Bloodmaul Shaman says text on death if quest 11000 is rewarded'); + +-- Grimnok Battleborn SAI +SET @ENTRY := 20095; +UPDATE `creature_template` SET `AIName`='SmartAI',`ScriptName`= '' WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,6,0,100,0,0,0,0,0,1,1,0,0,0,0,0,2,0,0,0,0,0,0,0,"Grimnok Battleborn - On Death - Say text 1 CONDITIONED"), +(@ENTRY,0,1,0,0,0,100,0,6000,10000,6000,10000,11,15496,0,0,0,0,0,1,0,0,0,0,0,0,0,'Grimnok Battleborn - In Combat - Cast Cleave'), +(@ENTRY,0,2,3,0,0,100,0,10000,12000,10000,12000,11,37786,0,0,0,0,0,1,0,0,0,0,0,0,0,'Grimnok Battleborn - In Combat - Cast Bloodmaul Rage'), +(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,1,0,0,0,0,0,0,2,0,0,0,0,0,0,0,"Grimnok Battleborn - In Combat - Say text 0 when cast Cast Bloodmaul Rage"), +(@ENTRY,0,4,0,4,0,35,0,0,0,0,0,1,0,0,0,0,0,0,2,0,0,0,0,0,0,0,"Grimnok Battleborn - On Aggro - Say text 0"), +(@ENTRY,0,5,0,1,0,100,0,120000,120000,180000,180000,1,2,0,0,0,0,0,1,0,0,0,0,0,0,0,"Grimnok Battleborn - Out of Combat - Say text 2"); +DELETE FROM `creature_text` WHERE `entry`=@ENTRY; +INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES +(@ENTRY,0,0, 'Stupid puny thing. Me smash!',12,0,100,0,0,0, 'Grimnok Battleborn on Aggro Text'), +(@ENTRY,0,1, 'Me mad. You get smash in face!',12,0,100,0,0,0, 'Grimnok Battleborn on Aggro Text'), +(@ENTRY,0,2, 'Raaar!!! Me smash $r!',12,0,100,0,0,0, 'Grimnok Battleborn on Aggro Text'), +(@ENTRY,1,0, 'Puny $r... you were a... horrible king.',12,0,100,0,0,0, 'Grimnok Battleborn on death Quest 11000 complete'), +(@ENTRY,1,1, 'Agh... me am...dead.',12,0,100,0,0,0, 'Grimnok Battleborn on death Quest 11000 complete'), +(@ENTRY,1,2, 'Me go to Ogri''la.',12,0,100,0,0,0, 'Grimnok Battleborn on death Quest 11000 complete'), +(@ENTRY,1,3, 'King think... there really is... an Ogri''la',12,0,100,0,0,0, 'Grimnok Battleborn on death Quest 11000 complete'), +(@ENTRY,1,4, 'Me honored... king kill me.',12,0,100,0,0,0, 'Grimnok Battleborn on death Quest 11000 complete'), +(@ENTRY,1,5, 'King $n, me die now.',12,0,100,0,0,0, 'Grimnok Battleborn on death Quest 11000 complete'), +(@ENTRY,2,0, 'You! I see you! One of you, kill them!',14,0,100,0,0,0, 'Grimnok Battleborn OOC'), +(@ENTRY,2,1, 'Don''t let any escape, you dogs!',14,0,100,0,0,0, 'Grimnok Battleborn OOC'), +(@ENTRY,2,2, 'I want these Alliance and Horde pigs dead!',14,0,100,0,0,0, 'Grimnok Battleborn OOC'), +(@ENTRY,2,3, 'Get up there. March on Bladespire Hold. I want to adorn my tower with Gorr''Dim''s head!',14,0,100,0,0,0, 'Grimnok Battleborn OOC'); +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=22 AND `SourceEntry`=@ENTRY; +INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES +(22,1,@ENTRY,0,0,8,0,11000,0,0,0,0,0, '', 'SAI - Grimnok Battleborn says text on death if quest 11000 is rewarded'); + +-- Bloodmaul Brewmaster SAI +SET @ENTRY := 19957; +UPDATE `creature_template` SET `AIName`='SmartAI',`ScriptName`= '' WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,6,0,100,0,0,0,0,0,1,1,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bloodmaul Brewmaster - On Death - Say text 1 CONDITIONED"), +(@ENTRY,0,1,0,4,0,35,0,0,0,0,0,1,0,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bloodmaul Brewmaster - On Aggro - Say text 0"), +(@ENTRY,0,2,0,0,0,85,0,6000,6000,30000,35000,11,37591,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bloodmaul Brewmaster - In Combat - Cast Drunken Haze"); +DELETE FROM `creature_text` WHERE `entry`=@ENTRY; +INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES +(@ENTRY,0,0, 'Stupid puny thing. Me smash!',12,0,100,0,0,0, 'Bloodmaul Brewmaster on Aggro Text'), +(@ENTRY,0,1, 'Me mad. You get smash in face!',12,0,100,0,0,0, 'Bloodmaul Brewmaster on Aggro Text'), +(@ENTRY,0,2, 'Raaar!!! Me smash $r!',12,0,100,0,0,0, 'Bloodmaul Brewmaster on Aggro Text'), +(@ENTRY,1,0, 'Puny $r... you were a... horrible king.',12,0,100,0,0,0, 'Bloodmaul Brewmaster on death Quest 11000 complete'), +(@ENTRY,1,1, 'Agh... me am...dead.',12,0,100,0,0,0, 'Bloodmaul Brewmaster on death Quest 11000 complete'), +(@ENTRY,1,2, 'Me go to Ogri''la.',12,0,100,0,0,0, 'Bloodmaul Brewmaster on death Quest 11000 complete'), +(@ENTRY,1,3, 'King think... there really is... an Ogri''la',12,0,100,0,0,0, 'Bloodmaul Brewmaster on death Quest 11000 complete'), +(@ENTRY,1,4, 'Me honored... king kill me.',12,0,100,0,0,0, 'Bloodmaul Brewmaster on death Quest 11000 complete'), +(@ENTRY,1,5, 'King $n, me die now.',12,0,100,0,0,0, 'Bloodmaul Brewmaster on death Quest 11000 complete'); +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=22 AND `SourceEntry`=@ENTRY; +INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES +(22,1,@ENTRY,0,0,8,0,11000,0,0,0,0,0, '', 'SAI - Bloodmaul Brewmaster says text on death if quest 11000 is rewarded'); + +-- Bloodmaul Geomancer SAI +SET @ENTRY := 19952; +UPDATE `creature_template` SET `AIName`='SmartAI',`ScriptName`= '' WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,6,0,100,0,0,0,0,0,1,1,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bloodmaul Geomancer - On Death - Say text 1 CONDITIONED"), +(@ENTRY,0,1,0,4,0,35,0,0,0,0,0,1,0,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bloodmaul Geomancer - On Aggro - Say text 0"), +(@ENTRY,0,2,0,1,0,100,0,0,0,1800000,1800000,11,12544,33,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodmaul Geomancer - Out Of Combat - Cast Frost Armor"), +(@ENTRY,0,3,0,4,0,50,0,0,0,0,0,11,6136,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bloodmaul Geomancer - On Aggro - Cast Chilled"), +(@ENTRY,0,4,0,0,0,100,0,0,0,2400,3800,11,9053,64,0,0,0,0,2,0,0,0,0,0,0,0,"Bloodmaul Geomancer - In Combat CMC - Cast Fireball"); +DELETE FROM `creature_text` WHERE `entry`=@ENTRY; +INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES +(@ENTRY,0,0, 'Me smash! You die!',12,0,100,0,0,0, 'Bloodmaul Geomancer on Aggro Text'), +(@ENTRY,0,1, 'Raaar!!! Me smash $r!',12,0,100,0,0,0, 'Bloodmaul Geomancer on Aggro Text'), +(@ENTRY,0,2, 'I''ll crush you!',12,0,100,0,0,0, 'Bloodmaul Geomancer on Aggro Text'), +(@ENTRY,1,0, 'Puny $r... you were a... horrible king.',12,0,100,0,0,0, 'Bloodmaul Geomancer on death Quest 11000 complete'), +(@ENTRY,1,1, 'Agh... me am...dead.',12,0,100,0,0,0, 'Bloodmaul Geomancer on death Quest 11000 complete'), +(@ENTRY,1,2, 'Me go to Ogri''la.',12,0,100,0,0,0, 'Bloodmaul Geomancer on death Quest 11000 complete'), +(@ENTRY,1,3, 'King think... there really is... an Ogri''la',12,0,100,0,0,0, 'Bloodmaul Geomancer on death Quest 11000 complete'), +(@ENTRY,1,4, 'Me honored... king kill me.',12,0,100,0,0,0, 'Bloodmaul Geomancer on death Quest 11000 complete'), +(@ENTRY,1,5, 'King $n, me die now.',12,0,100,0,0,0, 'Bloodmaul Geomancer on death Quest 11000 complete'); +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=22 AND `SourceEntry`=@ENTRY; +INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES +(22,1,@ENTRY,0,0,8,0,11000,0,0,0,0,0, '', 'SAI - Bloodmaul Geomancer says text on death if quest 11000 is rewarded'); + +-- Bladespire Brute SAI +SET @ENTRY := 19995; +UPDATE `creature_template` SET `AIName`='SmartAI',`ScriptName`= '' WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,6,0,100,0,0,0,0,0,1,1,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bladespire Brute - On Death - Say text 1 CONDITIONED"), +(@ENTRY,0,1,0,4,0,35,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Bladespire Brute - On Aggro - Say Text 0'), +(@ENTRY,0,2,0,0,0,100,0,9000,12000,8000,18000,11,15496,0,0,0,0,0,1,0,0,0,0,0,0,0,'Bladespire Brute - In Combat - Cast Cleave'); +DELETE FROM `creature_text` WHERE `entry`=@ENTRY; +INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES +(@ENTRY,0,0, 'Stupid puny thing. Me smash!',12,0,100,0,0,0, 'Bladespire Brute on Aggro Text'), +(@ENTRY,0,1, 'Me mad. You get smash in face!',12,0,100,0,0,0, 'Bladespire Brute on Aggro Text'), +(@ENTRY,0,2, 'Raaar!!! Me smash $r!',12,0,100,0,0,0, 'Bladespire Brute on Aggro Text'), +(@ENTRY,1,0, 'Puny $r... you were a... horrible king.',12,0,100,0,0,0, 'Bladespire Brute on death Quest 11000 complete'), +(@ENTRY,1,1, 'Agh... me am...dead.',12,0,100,0,0,0, 'Bladespire Brute on death Quest 11000 complete'), +(@ENTRY,1,2, 'Me go to Ogri''la.',12,0,100,0,0,0, 'Bladespire Brute on death Quest 11000 complete'), +(@ENTRY,1,3, 'King think... there really is... an Ogri''la',12,0,100,0,0,0, 'Bladespire Brute on death Quest 11000 complete'), +(@ENTRY,1,4, 'Me honored... king kill me.',12,0,100,0,0,0, 'Bladespire Brute on death Quest 11000 complete'), +(@ENTRY,1,5, 'King $n, me die now.',12,0,100,0,0,0, 'Bladespire Brute on death Quest 11000 complete'); +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=22 AND `SourceEntry`=@ENTRY; +INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES +(22,1,@ENTRY,0,0,8,0,11000,0,0,0,0,0, '', 'SAI - Bladespire Brute says text on death if quest 11000 is rewarded'); + +-- Bladespire Shaman SAI +SET @ENTRY := 19998; +UPDATE `creature_template` SET `AIName`='SmartAI',`ScriptName`= '' WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,6,0,100,0,0,0,0,0,1,1,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bladespire Shaman - On Death - Say text 1 CONDITIONED"), +(@ENTRY,0,1,0,1,0,100,0,0,0,60000,60000,11,12550,1,1,0,0,0,1,0,0,0,0,0,0,0,"Bladespire Shaman - Out Of Combat - Cast Lightning Shield"), +(@ENTRY,0,2,0,4,0,35,0,0,0,0,0,1,0,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bladespire Shaman - On Aggro - Say text 0"), +(@ENTRY,0,3,0,0,0,100,0,2000,4000,8000,12000,11,26098,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bladespire Shaman - In Combat - Cast Lightning Bolt"); +DELETE FROM `creature_text` WHERE `entry`=@ENTRY; +INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES +(@ENTRY,0,0, 'Me smash! You die!',12,0,100,0,0,0, 'Bladespire Shaman on Aggro Text'), +(@ENTRY,0,1, 'Raaar!!! Me smash $r!',12,0,100,0,0,0, 'Bladespire Shaman on Aggro Text'), +(@ENTRY,0,2, 'I''ll crush you!',12,0,100,0,0,0, 'Bladespire Shaman on Aggro Text'), +(@ENTRY,1,0, 'Puny $r... you were a... horrible king.',12,0,100,0,0,0, 'Bladespire Shaman on death Quest 11000 complete'), +(@ENTRY,1,1, 'Agh... me am...dead.',12,0,100,0,0,0, 'Bladespire Shaman on death Quest 11000 complete'), +(@ENTRY,1,2, 'Me go to Ogri''la.',12,0,100,0,0,0, 'Bladespire Shaman on death Quest 11000 complete'), +(@ENTRY,1,3, 'King think... there really is... an Ogri''la',12,0,100,0,0,0, 'Bladespire Shaman on death Quest 11000 complete'), +(@ENTRY,1,4, 'Me honored... king kill me.',12,0,100,0,0,0, 'Bladespire Shaman on death Quest 11000 complete'), +(@ENTRY,1,5, 'King $n, me die now.',12,0,100,0,0,0, 'Bladespire Shaman on death Quest 11000 complete'); +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=22 AND `SourceEntry`=@ENTRY; +INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES +(22,1,@ENTRY,0,0,8,0,11000,0,0,0,0,0, '', 'SAI - Bladespire Shaman says text on death if quest 11000 is rewarded'); + +-- Bladespire Cook SAI +SET @ENTRY := 20334; +UPDATE `creature_template` SET `AIName`='SmartAI',`ScriptName`= '' 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,6,0,100,0,0,0,0,0,1,1,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bladespire Cook - On Death - Say text 1 CONDITIONED"), +(@ENTRY,0,1,0,4,0,35,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Bladespire Cook - On Aggro - Say Text 0'), +(@ENTRY,0,2,0,0,0,100,0,15000,20000,15000,20000,11,37597,0,0,0,0,0,2,0,0,0,0,0,0,0,'Bladespire Cook - In Combat - Cast Meat Slap'), +(@ENTRY,0,3,0,0,0,100,0,15000,20000,15000,20000,11,37596,32,0,0,0,0,2,0,0,0,0,0,0,0,'Bladespire Cook - In Combat - Cast Tenderize'); +DELETE FROM `creature_text` WHERE `entry`=@ENTRY; +INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES +(@ENTRY,0,0, 'Stupid puny thing. Me smash!',12,0,100,0,0,0, 'Bladespire Cook on Aggro Text'), +(@ENTRY,0,1, 'Me mad. You get smash in face!',12,0,100,0,0,0, 'Bladespire Cook on Aggro Text'), +(@ENTRY,0,2, 'Raaar!!! Me smash $r!',12,0,100,0,0,0, 'Bladespire Cook on Aggro Text'), +(@ENTRY,1,0, 'Puny $r... you were a... horrible king.',12,0,100,0,0,0, 'Bladespire Cook on death Quest 11000 complete'), +(@ENTRY,1,1, 'Agh... me am...dead.',12,0,100,0,0,0, 'Bladespire Cook on death Quest 11000 complete'), +(@ENTRY,1,2, 'Me go to Ogri''la.',12,0,100,0,0,0, 'Bladespire Cook on death Quest 11000 complete'), +(@ENTRY,1,3, 'King think... there really is... an Ogri''la',12,0,100,0,0,0, 'Bladespire Cook on death Quest 11000 complete'), +(@ENTRY,1,4, 'Me honored... king kill me.',12,0,100,0,0,0, 'Bladespire Cook on death Quest 11000 complete'), +(@ENTRY,1,5, 'King $n, me die now.',12,0,100,0,0,0, 'Bladespire Cook on death Quest 11000 complete'); +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=22 AND `SourceEntry`=@ENTRY; +INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES +(22,1,@ENTRY,0,0,8,0,11000,0,0,0,0,0, '', 'SAI - Bladespire Cook says text on death if quest 11000 is rewarded'); + +-- Bladespire Champion SAI +SET @ENTRY := 21296; +UPDATE `creature_template` SET `AIName`='SmartAI',`ScriptName`= '' WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,6,0,100,0,0,0,0,0,1,1,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bladespire Champion - On Death - Say text 1 CONDITIONED"), +(@ENTRY,0,1,0,4,0,35,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Bladespire Champion - On Aggro - Say Text 0'), +(@ENTRY,0,2,0,0,0,100,0,10000,14000,11000,22000,11,8078,0,0,0,0,0,1,0,0,0,0,0,0,0,'Bladespire Champion - In Combat - Cast Thunderclap'), +(@ENTRY,0,3,0,9,0,100,0,5,10,2000,2000,11,37777,0,0,0,0,0,2,0,0,0,0,0,0,0,'Bladespire Champion - Range 5 - 10 yards - Cast Mighty Charge'); +DELETE FROM `creature_text` WHERE `entry`=@ENTRY; +INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES +(@ENTRY,0,0, 'Stupid puny thing. Me smash!',12,0,100,0,0,0, 'Bladespire Champion on Aggro Text'), +(@ENTRY,0,1, 'Me mad. You get smash in face!',12,0,100,0,0,0, 'Bladespire Champion on Aggro Text'), +(@ENTRY,0,2, 'Raaar!!! Me smash $r!',12,0,100,0,0,0, 'Bladespire Champion on Aggro Text'), +(@ENTRY,1,0, 'Puny $r... you were a... horrible king.',12,0,100,0,0,0, 'Bladespire Champion on death Quest 11000 complete'), +(@ENTRY,1,1, 'Agh... me am...dead.',12,0,100,0,0,0, 'Bladespire Champion on death Quest 11000 complete'), +(@ENTRY,1,2, 'Me go to Ogri''la.',12,0,100,0,0,0, 'Bladespire Champion on death Quest 11000 complete'), +(@ENTRY,1,3, 'King think... there really is... an Ogri''la',12,0,100,0,0,0, 'Bladespire Champion on death Quest 11000 complete'), +(@ENTRY,1,4, 'Me honored... king kill me.',12,0,100,0,0,0, 'Bladespire Champion on death Quest 11000 complete'), +(@ENTRY,1,5, 'King $n, me die now.',12,0,100,0,0,0, 'Bladespire Champion on death Quest 11000 complete'); +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=22 AND `SourceEntry`=@ENTRY; +INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES +(22,1,@ENTRY,0,0,8,0,11000,0,0,0,0,0, '', 'SAI - Bladespire Champion says text on death if quest 11000 is rewarded'); + +-- Bloodmaul Taskmaster SAI +SET @ENTRY := 22160; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,6,0,100,0,0,0,0,0,1,1,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bloodmaul Taskmaster - On Death - Say text 1 CONDITIONED"), +(@ENTRY,0,1,0,4,0,35,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Bloodmaul Taskmaster - On Aggro - Say Text 0'), +(@ENTRY,0,2,3,0,0,100,0,10000,12000,10000,12000,11,37786,0,0,0,0,0,1,0,0,0,0,0,0,0,'Bloodmaul Taskmaster - In Combat - Cast Bloodmaul Rage'), +(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,1,0,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bloodmaul Taskmaster - In Combat - Say text 0 when cast Cast Bloodmaul Rage"); +DELETE FROM `creature_text` WHERE `entry`=@ENTRY; +INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES +(@ENTRY,0,0, 'Stupid puny thing. Me smash!',12,0,100,0,0,0, 'Bloodmaul Taskmaster on Aggro Text'), +(@ENTRY,0,1, 'Me mad. You get smash in face!',12,0,100,0,0,0, 'Bloodmaul Taskmaster on Aggro Text'), +(@ENTRY,0,2, 'Raaar!!! Me smash $r!',12,0,100,0,0,0, 'Bloodmaul Taskmaster on Aggro Text'), +(@ENTRY,1,0, 'Puny $r... you were a... horrible king.',12,0,100,0,0,0, 'Bloodmaul Taskmaster on death Quest 11000 complete'), +(@ENTRY,1,1, 'Agh... me am...dead.',12,0,100,0,0,0, 'Bloodmaul Taskmaster on death Quest 11000 complete'), +(@ENTRY,1,2, 'Me go to Ogri''la.',12,0,100,0,0,0, 'Bloodmaul Taskmaster on death Quest 11000 complete'), +(@ENTRY,1,3, 'King think... there really is... an Ogri''la',12,0,100,0,0,0, 'Bloodmaul Taskmaster on death Quest 11000 complete'), +(@ENTRY,1,4, 'Me honored... king kill me.',12,0,100,0,0,0, 'Bloodmaul Taskmaster on death Quest 11000 complete'), +(@ENTRY,1,5, 'King $n, me die now.',12,0,100,0,0,0, 'Bloodmaul Taskmaster on death Quest 11000 complete'), +(@ENTRY,2,0, '%s goes into a frenzy!',16,0,100,0,0,0, 'Bloodmaul Taskmaster on enrage'); +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=22 AND `SourceEntry`=@ENTRY; +INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES +(22,1,@ENTRY,0,0,8,0,11000,0,0,0,0,0, '', 'SAI - Bloodmaul Taskmaster says text on death if quest 11000 is rewarded'); + +-- Bloodmaul Soothsayer SAI +SET @ENTRY := 22384; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,6,0,100,0,0,0,0,0,1,1,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bloodmaul Soothsayer - On Death - Say text 1 CONDITIONED"), +(@ENTRY,0,1,0,1,0,100,0,1000,1000,1800000,1800000,11,13787,1,1,0,0,0,1,0,0,0,0,0,0,0,"Bloodmaul Soothsayer - Out Of Combat - Cast Demon Armor"), +(@ENTRY,0,2,0,1,0,100,0,3000,3000,0,0,11,11939,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodmaul Soothsayer - Out Of Combat - Cast Summon Imp"), +(@ENTRY,0,3,0,4,0,35,0,0,0,0,0,1,0,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bloodmaul Soothsayer - On Aggro - Say text 0"), +(@ENTRY,0,4,0,0,0,100,0,0,0,2400,3800,11,20825,64,0,0,0,0,2,0,0,0,0,0,0,0,"Bloodmaul Soothsayer - In Combat - Cast Shadow Bolt"), +(@ENTRY,0,5,0,2,0,100,1,0,20,0,0,25,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Bloodmaul Soothsayer - Between 0-20% Health - Flee for assist"); +DELETE FROM `creature_text` WHERE `entry`=@ENTRY; +INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES +(@ENTRY,0,0, 'Me smash! You die!',12,0,100,0,0,0, 'Bloodmaul Soothsayer on Aggro Text'), +(@ENTRY,0,1, 'Raaar!!! Me smash $r!',12,0,100,0,0,0, 'Bloodmaul Soothsayer on Aggro Text'), +(@ENTRY,0,2, 'I''ll crush you!',12,0,100,0,0,0, 'Bloodmaul Soothsayer on Aggro Text'), +(@ENTRY,1,0, 'Puny $r... you were a... horrible king.',12,0,100,0,0,0, 'Bloodmaul Soothsayer on death Quest 11000 complete'), +(@ENTRY,1,1, 'Agh... me am...dead.',12,0,100,0,0,0, 'Bloodmaul Soothsayer on death Quest 11000 complete'), +(@ENTRY,1,2, 'Me go to Ogri''la.',12,0,100,0,0,0, 'Bloodmaul Soothsayer on death Quest 11000 complete'), +(@ENTRY,1,3, 'King think... there really is... an Ogri''la',12,0,100,0,0,0, 'Bloodmaul Soothsayer on death Quest 11000 complete'), +(@ENTRY,1,4, 'Me honored... king kill me.',12,0,100,0,0,0, 'Bloodmaul Soothsayer on death Quest 11000 complete'), +(@ENTRY,1,5, 'King $n, me die now.',12,0,100,0,0,0, 'Bloodmaul Soothsayer on death Quest 11000 complete'); +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=22 AND `SourceEntry`=@ENTRY; +INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES +(22,1,@ENTRY,0,0,8,0,11000,0,0,0,0,0, '', 'SAI - Bloodmaul Soothsayer says text on death if quest 11000 is rewarded'); + +-- Bladespire Battlemage SAI +SET @ENTRY := 19996; +UPDATE `creature_template` SET `AIName`='SmartAI',`ScriptName`= '' WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,6,0,100,0,0,0,0,0,1,1,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bladespire Battlemage - On Death - Say text 1 CONDITIONED"), +(@ENTRY,0,1,0,1,0,100,0,0,0,60000,60000,11,12550,1,1,0,0,0,1,0,0,0,0,0,0,0,"Bladespire Battlemage - Out Of Combat - Cast Lightning Shield"), +(@ENTRY,0,2,0,4,0,35,0,0,0,0,0,1,0,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bladespire Battlemage - On Aggro - Say text 0"), +(@ENTRY,0,3,0,0,0,100,0,8000,16000,8000,16000,11,16102,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bladespire Battlemage - In Combat - Cast Flamestrike"), +(@ENTRY,0,4,0,0,0,100,0,6000,9000,17000,17000,11,37599,0,0,0,0,0,1,0,0,0,0,0,0,0,'Bladespire Battlemage - In Combat - Cast Bloodlust'); +DELETE FROM `creature_text` WHERE `entry`=@ENTRY; +INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES +(@ENTRY,0,0, 'Me smash! You die!',12,0,100,0,0,0, 'Bladespire Battlemage on Aggro Text'), +(@ENTRY,0,1, 'Raaar!!! Me smash $r!',12,0,100,0,0,0, 'Bladespire Battlemage on Aggro Text'), +(@ENTRY,0,2, 'I''ll crush you!',12,0,100,0,0,0, 'Bladespire Battlemage on Aggro Text'), +(@ENTRY,1,0, 'Puny $r... you were a... horrible king.',12,0,100,0,0,0, 'Bladespire Battlemage on death Quest 11000 complete'), +(@ENTRY,1,1, 'Agh... me am...dead.',12,0,100,0,0,0, 'Bladespire Battlemage on death Quest 11000 complete'), +(@ENTRY,1,2, 'Me go to Ogri''la.',12,0,100,0,0,0, 'Bladespire Battlemage on death Quest 11000 complete'), +(@ENTRY,1,3, 'King think... there really is... an Ogri''la',12,0,100,0,0,0, 'Bladespire Battlemage on death Quest 11000 complete'), +(@ENTRY,1,4, 'Me honored... king kill me.',12,0,100,0,0,0, 'Bladespire Battlemage on death Quest 11000 complete'), +(@ENTRY,1,5, 'King $n, me die now.',12,0,100,0,0,0, 'Bladespire Battlemage on death Quest 11000 complete'); +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=22 AND `SourceEntry`=@ENTRY; +INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES +(22,1,@ENTRY,0,0,8,0,11000,0,0,0,0,0, '', 'SAI - Bladespire Battlemage says text on death if quest 11000 is rewarded'); + +-- Bladespire Enforcer SAI +SET @ENTRY := 19997; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,6,0,100,0,0,0,0,0,1,1,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bladespire Enforcer - On Death - Say text 1 CONDITIONED"), +(@ENTRY,0,1,0,4,0,35,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Bladespire Enforcer - On Aggro - Say Text 0'), +(@ENTRY,0,2,0,0,0,100,0,10000,14000,11000,22000,11,8078,0,0,0,0,0,1,0,0,0,0,0,0,0,'Bladespire Enforcer - In Combat - Cast Thunderclap'), +(@ENTRY,0,3,4,2,0,100,0,0,30,35000,45000,11,8599,0,0,0,0,0,1,0,0,0,0,0,0,0,'Bladespire Enforcer - HP below 30% - Cast Enrage'), +(@ENTRY,0,4,0,61,0,100,0,0,0,0,0,1,2,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bladespire Enforcer - HP below 30% - Say text 2"); +DELETE FROM `creature_text` WHERE `entry`=@ENTRY; +INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES +(@ENTRY,0,0, 'Stupid puny thing. Me smash!',12,0,100,0,0,0, 'Bladespire Enforcer on Aggro Text'), +(@ENTRY,0,1, 'Me mad. You get smash in face!',12,0,100,0,0,0, 'Bladespire Enforcer on Aggro Text'), +(@ENTRY,0,2, 'Raaar!!! Me smash $r!',12,0,100,0,0,0, 'Bladespire Enforcer on Aggro Text'), +(@ENTRY,1,0, 'Puny $r... you were a... horrible king.',12,0,100,0,0,0, 'Bladespire Enforcer on death Quest 11000 complete'), +(@ENTRY,1,1, 'Agh... me am...dead.',12,0,100,0,0,0, 'Bladespire Enforcer on death Quest 11000 complete'), +(@ENTRY,1,2, 'Me go to Ogri''la.',12,0,100,0,0,0, 'Bladespire Enforcer on death Quest 11000 complete'), +(@ENTRY,1,3, 'King think... there really is... an Ogri''la',12,0,100,0,0,0, 'Bladespire Enforcer on death Quest 11000 complete'), +(@ENTRY,1,4, 'Me honored... king kill me.',12,0,100,0,0,0, 'Bladespire Enforcer on death Quest 11000 complete'), +(@ENTRY,1,5, 'King $n, me die now.',12,0,100,0,0,0, 'Bladespire Enforcer on death Quest 11000 complete'), +(@ENTRY,2,0, '%s goes into a frenzy!',16,0,100,0,0,0, 'Bladespire Enforcer on enrage'); +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=22 AND `SourceEntry`=@ENTRY; +INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES +(22,1,@ENTRY,0,0,8,0,11000,0,0,0,0,0, '', 'SAI - Bladespire Enforcer says text on death if quest 11000 is rewarded'); + +-- Bladespire Chef SAI +SET @ENTRY := 20756; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,6,0,100,0,0,0,0,0,1,1,0,0,0,0,0,2,0,0,0,0,0,0,0,"Bladespire Chef - On Death - Say text 1 CONDITIONED"), +(@ENTRY,0,1,0,4,0,35,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Bladespire Chef - On Aggro - Say Text 0'), +(@ENTRY,0,2,0,0,0,100,0,15000,20000,15000,20000,11,37597,0,0,0,0,0,2,0,0,0,0,0,0,0,'Bladespire Chef - In Combat - Cast Meat Slap'), +(@ENTRY,0,3,0,0,0,100,0,15000,20000,15000,20000,11,37596,32,0,0,0,0,2,0,0,0,0,0,0,0,'Bladespire Chef - In Combat - Cast Tenderize'); +DELETE FROM `creature_text` WHERE `entry`=@ENTRY; +INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES +(@ENTRY,0,0, 'Stupid puny thing. Me smash!',12,0,100,0,0,0, 'Bladespire Chef on Aggro Text'), +(@ENTRY,0,1, 'Me mad. You get smash in face!',12,0,100,0,0,0, 'Bladespire Chef on Aggro Text'), +(@ENTRY,0,2, 'Raaar!!! Me smash $r!',12,0,100,0,0,0, 'Bladespire Chef on Aggro Text'), +(@ENTRY,1,0, 'Puny $r... you were a... horrible king.',12,0,100,0,0,0, 'Bladespire Chef on death Quest 11000 complete'), +(@ENTRY,1,1, 'Agh... me am...dead.',12,0,100,0,0,0, 'Bladespire Chef on death Quest 11000 complete'), +(@ENTRY,1,2, 'Me go to Ogri''la.',12,0,100,0,0,0, 'Bladespire Chef on death Quest 11000 complete'), +(@ENTRY,1,3, 'King think... there really is... an Ogri''la',12,0,100,0,0,0, 'Bladespire Chef on death Quest 11000 complete'), +(@ENTRY,1,4, 'Me honored... king kill me.',12,0,100,0,0,0, 'Bladespire Chef on death Quest 11000 complete'), +(@ENTRY,1,5, 'King $n, me die now.',12,0,100,0,0,0, 'Bladespire Chef on death Quest 11000 complete'); +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=22 AND `SourceEntry`=@ENTRY; +INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES +(22,1,@ENTRY,0,0,8,0,11000,0,0,0,0,0, '', 'SAI - Bladespire Chef says text on death if quest 11000 is rewarded'); diff --git a/sql/updates/world/2013_12_19_02_world_sai.sql b/sql/updates/world/2013_12_19_02_world_sai.sql new file mode 100644 index 00000000000..49e676bca06 --- /dev/null +++ b/sql/updates/world/2013_12_19_02_world_sai.sql @@ -0,0 +1,49 @@ +-- Bloodscalp Shaman +SET @ENTRY := 697; +DELETE FROM `creature_addon` WHERE `guid` IN (SELECT `guid` FROM `creature` WHERE `id`=@ENTRY); +DELETE FROM `creature_template_addon` WHERE `entry`=@ENTRY; +INSERT INTO `creature_template_addon` (`entry`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES (@ENTRY,0,4097,0, ''); + +-- Defias Conjurer SAI +SET @ENTRY := 619; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +UPDATE `creature_template_addon` SET `auras`= '' WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,0,1000,1000,1800000,1800000,11,12544,1,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Conjurer - Out Of Combat - Cast Frost Armor"), +(@ENTRY,0,1,0,0,0,100,0,0,0,2400,3800,11,9053,64,0,0,0,0,2,0,0,0,0,0,0,0,"Defias Conjurer - In Combat - Cast Fireball"), +(@ENTRY,0,2,0,2,0,100,0,0,15,0,0,25,1,0,0,0,0,0,1,0,0,0,0,0,0,0,"Defias Conjurer - Between 0-15% Health - Flee For Assist"); + +-- Razormane Stalker SAI +SET @ENTRY := 3457; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +UPDATE `creature` SET `modelid`=0, `curhealth`=1 WHERE `id`=3457; +UPDATE `creature_template_addon` SET `auras`= '' WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,0,0,0,1000,1000,11,22766,32,0,0,0,0,1,0,0,0,0,0,0,0,"Razormane Stalker - In Combat - Cast Sneak"), +(@ENTRY,0,1,0,0,0,100,0,6000,6000,1000,1000,11,1758,0,0,0,0,0,2,0,0,0,0,0,0,0,"Razormane Stalker - In Combat - Cast Sinister Strike"); + +-- Dark Rune Elementalist SAI +SET @ENTRY := 27962; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `creature_addon` WHERE `guid` IN (126700,126702,126704); +DELETE FROM `creature_template_addon` WHERE `entry`=@ENTRY; +INSERT INTO `creature_template_addon` (`entry`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES (@ENTRY,0,4097,0, ''); +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,25,0,100,6,0,0,0,0,11,51475,0,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Rune Elementalist - Out Of Combat - Cast Summon Air Elemental (Dungeon Only)"), +(@ENTRY,0,1,0,1,0,100,2,1000,1000,600000,600000,11,51776,1,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Rune Elementalist - Out Of Combat - Cast Lightning Shield (Normal Dungeon)"), +(@ENTRY,0,2,0,0,0,100,2,0,0,4000,6000,11,53314,64,0,0,0,0,2,0,0,0,0,0,0,0,"Dark Rune Elementalist - In Combat - Cast Lightning Bolt (Normal Dungeon)"), +(@ENTRY,0,3,0,1,0,100,4,1000,1000,600000,600000,11,59025,1,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Rune Elementalist - Out Of Combat - Cast Lightning Shield (Heroic Dungeon)"), +(@ENTRY,0,4,0,0,0,100,4,0,0,4000,6000,11,59024,64,0,0,0,0,2,0,0,0,0,0,0,0,"Dark Rune Elementalist - In Combat - Cast Lightning Bolt (Heroic Dungeon)"), +(@ENTRY,0,5,0,2,0,100,7,0,30,0,0,11,32693,1,0,0,0,0,1,0,0,0,0,0,0,0,"Dark Rune Elementalist - Between 0-30% Health - Cast Arcane Haste (Dungeon Only)"); + +-- Felboar SAI +SET @ENTRY := 21878; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +UPDATE `creature_template_addon` SET `auras`= '' WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,25,0,100,0,0,0,0,0,11,33908,32,0,0,0,0,1,0,0,0,0,0,0,0,"Felboar - On Spawn - Cast Burning Spikes"), +(@ENTRY,0,1,0,0,0,100,0,100,100,30000,55000,11,35570,0,0,0,0,0,2,0,0,0,0,0,0,0,"Felboar - In Combat - Cast Charge"); diff --git a/sql/updates/world/2013_12_19_03_world_misc.sql b/sql/updates/world/2013_12_19_03_world_misc.sql new file mode 100644 index 00000000000..ae6b7bb07e2 --- /dev/null +++ b/sql/updates/world/2013_12_19_03_world_misc.sql @@ -0,0 +1,30 @@ +-- Highlord Demitrian SAI +SET @ENTRY := 14347; +UPDATE `creature_template` SET `gossip_menu_id`=5689, `AIName`='SmartAI',`ScriptName`= '' WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,62,0,100,0,5704,0,0,0,56,19016,1,0,0,0,0,7,0,0,0,0,0,0,0,"Highlord Demitrian - On Gossip Select - Add item Vessel of Rebirth to player"), +(@ENTRY,0,1,0,20,0,100,0,7786,0,0,0,12,14435,2,0,0,0,0,7,0,0,0,0,0,0,0,"Highlord Demitrian - On Quest Thunderaan the Windseeker rewarded - Summon creature"); +-- Add Gossip +DELETE FROM `gossip_menu` WHERE `entry` IN (5675,5687,5688,5689,5701,5702,5703,5704); +INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES +(5675,6812),(5687,6844),(5688,6843),(5689,6842),(5701,6868),(5702,6867),(5703,6870),(5704,6869); +-- Add Gossip Options +DELETE FROM `gossip_menu_option` WHERE `menu_id` IN (5675,5687,5688,5689,5701,5702,5704); +INSERT INTO `gossip_menu_option` (`menu_id`,`id`,`option_icon`,`option_text`,`option_id`,`npc_option_npcflag`,`action_menu_id`) VALUES +(5675,0,0, 'What do you know of it?',1,1,5689), +(5689,0,0, 'I am listening, Demitrian.',1,1,5688), +(5688,0,0, 'Continue, please.',1,1,5687), +(5687,0,0, 'A battle?',1,1,5702), +(5702,0,0, '<Nod>',1,1,5701), +(5701,0,0, 'Caught unaware? How?',1,1,5704), +(5704,0,0, 'So what did Ragnaros do next?',1,1,5703); +-- Add Conditions +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=15 AND `SourceGroup`=5675; +INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES +-- Both of these must be true +(15,5675,0,0,0,14,0,7785,0,0,0,0,0, '', 'Gossip Option - Show Option if Quest 7785 is not taken'), +(15,5675,0,1,0,2,0,19016,1,0,1,0,0, '', 'Gossip Option - Show Option if player does not have Vessel of Rebirth'), +-- One of these must be true +(15,5675,0,2,0,2,0,18563,0,0,1,0,0, '', 'Gossip Option - Show Option if player has Bindings of the Windseeker'), +(15,5675,0,2,0,2,0,18564,0,0,1,0,0, '', 'Gossip Option - Show Option if player has Bindings of the Windseeker'); diff --git a/sql/updates/world/2013_12_19_04_world_misc.sql b/sql/updates/world/2013_12_19_04_world_misc.sql new file mode 100644 index 00000000000..4c395accd53 --- /dev/null +++ b/sql/updates/world/2013_12_19_04_world_misc.sql @@ -0,0 +1,28 @@ +-- Caelyb <Pet Trainer> +UPDATE `creature_template` SET AIName='' WHERE `entry`=4320; +DELETE FROM `smart_scripts` WHERE `entryorguid`=4320 AND `source_type`=0; + +-- Milli Featherwhistle <Mechanostrider Merchant> +UPDATE `creature_template` SET ScriptName='' WHERE `entry`=7955; +-- Add Gossip Options +DELETE FROM `gossip_menu_option` WHERE `menu_id` IN (3186); +INSERT INTO `gossip_menu_option` (`menu_id`,`id`,`option_icon`,`option_text`,`option_id`,`npc_option_npcflag`,`action_menu_id`) VALUES +(3186,0,1, 'I would like to buy from you.',3,128,0); +-- Add Conditions +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=15 AND `SourceGroup`=3186; +INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES +-- Both of these must be true +(15,3186,0,0,0,16,0,8,0,0,0,0,0, '', 'Gossip Option - Show Option if Player is Gnome'), +(15,3186,0,0,0,5,0,54,128,0,1,0,0, '', 'Gossip Option - Show Option if player is Exalted with Gnomeregan'); + +-- Murkblood Overseer SAI +SET @ENTRY := 23309; +UPDATE `creature_template` SET `AIName`='SmartAI', `ScriptName`= '' WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,1,62,0,100,0,8697,0,0,0,11,41121,0,0,0,0,0,7,0,0,0,0,0,0,0,"Murkblood Overseer - On gossip Option select - cast spell"), +(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,15,11082,0,0,0,0,0,7,0,0,0,0,0,0,0,"Murkblood Overseer - On gossip Option select - Complete quest"); +-- Add Conditions +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=15 AND `SourceGroup`=8697; +INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES +(15,8697,0,0,0,9,0,11082,0,0,0,0,0, '', 'Gossip Option - Show Option if Quest 11082 taken'); diff --git a/sql/updates/world/2013_12_20_00_world_misc.sql b/sql/updates/world/2013_12_20_00_world_misc.sql new file mode 100644 index 00000000000..f75973db91a --- /dev/null +++ b/sql/updates/world/2013_12_20_00_world_misc.sql @@ -0,0 +1,112 @@ +-- Missing Wintergrasp Battle-Mage spawns +SET @GUID := 63451; +DELETE FROM `creature` WHERE `guid` BETWEEN @GUID AND @GUID+2; +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 +(@GUID,35597,530,1,1,0,1,-1977.80212,5267.618,-41.65557,4.3982296,300,0,0,1,1,0), +(@GUID+1,35611,0,1,1,0,1,1333.57642,320.9896,-63.6309357,2.8972466,300,0,0,1,1,0), +(@GUID+2,35612,530,1,1,0,1,9855.403,-7578.021,20.61899,1.78023577,300,0,0,1,1,0); + +-- Fix up Wintergrasp Battle-Mages +UPDATE `creature` SET `modelid`=0,`equipment_id`=1,`spawntimesecs`=300,`curhealth`=1,`curmana`=1 WHERE `id` IN (SELECT `entry` FROM `creature_template` WHERE `subname`='Wintergrasp Battle-Mage'); +UPDATE `creature_template` SET `gossip_menu_id`=10662 WHERE `entry` IN (35597,35602,35612); +UPDATE `creature_template` SET `gossip_menu_id`=10666 WHERE `entry` IN (35596,35598); +UPDATE `creature_template` SET `faction_A`=2123, `faction_H`=2123 WHERE `entry` IN (35603,35611,35612); +UPDATE `creature_template` SET `baseattacktime`=2000 WHERE `entry` IN (35600,35601,35602,35603,35611,35612); +UPDATE `creature_template` SET `npcflag`=1, `unit_flags`=8040, `flags_extra`=0 WHERE `subname`= 'Wintergrasp Battle-Mage'; +UPDATE `creature_template` SET `unit_flags`=8340 WHERE `entry` IN (35597,35596,32170,32169); +DELETE FROM `creature_equip_template` WHERE `entry`=35603 AND `id`=2; +DELETE FROM `creature_equip_template` WHERE `entry`=35601; +INSERT INTO `creature_equip_template` (`entry`,`id`,`itemEntry1`,`itemEntry2`,`itemEntry3`) VALUES (35601,1,30423,0,0); +-- Add Gossip +DELETE FROM `gossip_menu` WHERE `entry` IN (10662,10666); +INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES +(10662,14775),(10662,14777),(10662,14781),(10662,14782),(10662,14790),(10662,14791), +(10666,14775),(10666,14777),(10666,14781),(10666,14782),(10666,14790),(10666,14791); +-- Add Gossip Options +DELETE FROM `gossip_menu_option` WHERE `menu_id` IN (10662); +INSERT INTO `gossip_menu_option` (`menu_id`,`id`,`option_icon`,`option_text`,`option_id`,`npc_option_npcflag`,`action_menu_id`) VALUES +(10662,0,19, 'Queue for Wintergrasp.',12,1,1048576); + +-- Arcanist Braedin SAI +SET @ENTRY := 32169; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,0,0,0,1800000,1800000,11,12544,0,0,0,0,0,1,0,0,0,0,0,0,0,"Arcanist Braedin - Out of Combat - Cast Frost Armor"); + +-- Magister Surdiel SAI +SET @ENTRY := 32170; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,0,0,0,1800000,1800000,11,12544,0,0,0,0,0,1,0,0,0,0,0,0,0,"Magister Surdiel - Out of Combat - Cast Frost Armor"); + +-- Arcanist Iramhir SAI +SET @ENTRY := 35596; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,0,0,0,1800000,1800000,11,12544,0,0,0,0,0,1,0,0,0,0,0,0,0,"Arcanist Iramhir - Out of Combat - Cast Frost Armor"); + +-- Magistrix Aldessia SAI +SET @ENTRY := 35597; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,0,0,0,1800000,1800000,11,12544,0,0,0,0,0,1,0,0,0,0,0,0,0,"Magistrix Aldessia - Out of Combat - Cast Frost Armor"); + +-- Arcanist Paharin SAI +SET @ENTRY := 35598; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,0,0,0,1800000,1800000,11,12544,0,0,0,0,0,1,0,0,0,0,0,0,0,"Arcanist Paharin - Out of Combat - Cast Frost Armor"); + +-- Arcanist Dulial SAI +SET @ENTRY := 35599; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,0,0,0,1800000,1800000,11,12544,0,0,0,0,0,1,0,0,0,0,0,0,0,"Arcanist Dulial - Out of Combat - Cast Frost Armor"); + +-- Arcanist Laniria SAI +SET @ENTRY := 35600; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,0,0,0,1800000,1800000,11,12544,0,0,0,0,0,1,0,0,0,0,0,0,0,"Arcanist Laniria - Out of Combat - Cast Frost Armor"); + +-- Arcanist Nazalia SAI +SET @ENTRY := 35601; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,0,0,0,1800000,1800000,11,12544,0,0,0,0,0,1,0,0,0,0,0,0,0,"Arcanist Nazalia - Out of Combat - Cast Frost Armor"); + +-- Magister Savarin SAI +SET @ENTRY := 35602; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,0,0,0,1800000,1800000,11,12544,0,0,0,0,0,1,0,0,0,0,0,0,0,"Magister Savarin - Out of Combat - Cast Frost Armor"); + +-- Magister Dalhyr SAI +SET @ENTRY := 35603; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,0,0,0,1800000,1800000,11,12544,0,0,0,0,0,1,0,0,0,0,0,0,0,"Magister Dalhyr - Out of Combat - Cast Frost Armor"); + +-- Magistrix Erembria SAI +SET @ENTRY := 35611; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,0,0,0,1800000,1800000,11,12544,0,0,0,0,0,1,0,0,0,0,0,0,0,"Magistrix Erembria - Out of Combat - Cast Frost Armor"); + +-- Magistrix Caradess SAI +SET @ENTRY := 35612; +UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,0,0,0,1800000,1800000,11,12544,0,0,0,0,0,1,0,0,0,0,0,0,0,"Magistrix Caradess - Out of Combat - Cast Frost Armor"); diff --git a/src/server/game/AI/SmartScripts/SmartScript.cpp b/src/server/game/AI/SmartScripts/SmartScript.cpp index 6af09f3bb2b..0f11f407e0f 100644 --- a/src/server/game/AI/SmartScripts/SmartScript.cpp +++ b/src/server/game/AI/SmartScripts/SmartScript.cpp @@ -394,6 +394,7 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u (*itr)->ToCreature()->SetReactState(ReactStates(e.action.react.state)); } + delete targets; break; } case SMART_ACTION_RANDOM_EMOTE: @@ -1059,6 +1060,7 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u (*itr)->ToCreature()->DespawnOrUnsummon(e.action.forceDespawn.delay); } + delete targets; break; } case SMART_ACTION_SET_INGAME_PHASE_MASK: @@ -1076,6 +1078,7 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u (*itr)->ToGameObject()->SetPhaseMask(e.action.ingamePhaseMask.mask, true); } + delete targets; break; } case SMART_ACTION_MOUNT_TO_ENTRY_OR_MODEL: @@ -1120,6 +1123,7 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u ai->SetInvincibilityHpLevel(me->CountPctFromMaxHealth(e.action.invincHP.percent)); else ai->SetInvincibilityHpLevel(e.action.invincHP.minHP); + break; } case SMART_ACTION_SET_DATA: diff --git a/src/server/game/DungeonFinding/LFGMgr.cpp b/src/server/game/DungeonFinding/LFGMgr.cpp index 501501b0ffc..5f514bddb44 100644 --- a/src/server/game/DungeonFinding/LFGMgr.cpp +++ b/src/server/game/DungeonFinding/LFGMgr.cpp @@ -237,7 +237,7 @@ void LFGMgr::LoadLFGDungeons(bool reload /* = false */) AreaTriggerStruct const* at = sObjectMgr->GetMapEntranceTrigger(dungeon.map); if (!at) { - TC_LOG_ERROR("lfg", "LFGMgr::LoadLFGDungeons: Failed to load dungeon %s (Id: %u), cant find areatrigger for map %u", dungeon.name.c_str(), dungeon.id, dungeon.map); + TC_LOG_ERROR("sql.sql", "Failed to load dungeon %s (Id: %u), cant find areatrigger for map %u", dungeon.name.c_str(), dungeon.id, dungeon.map); continue; } @@ -324,7 +324,7 @@ void LFGMgr::Update(uint32 diff) // Check if a proposal can be formed with the new groups being added for (LfgQueueContainer::iterator it = QueuesStore.begin(); it != QueuesStore.end(); ++it) if (uint8 newProposals = it->second.FindGroups()) - TC_LOG_DEBUG("lfg", "LFGMgr::Update: Found %u new groups in queue %u", newProposals, it->first); + TC_LOG_DEBUG("lfg.update", "Found %u new groups in queue %u", newProposals, it->first); if (lastProposalId != m_lfgProposalId) { @@ -541,7 +541,6 @@ void LFGMgr::JoinLfg(Player* player, uint8 roles, LfgDungeonSet& dungeons, const isRaid = true; break; default: - TC_LOG_ERROR("lfg", "Wrong dungeon type %u for dungeon %u", type, *it); joinData.result = LFG_JOIN_DUNGEON_INVALID; break; } @@ -564,7 +563,9 @@ void LFGMgr::JoinLfg(Player* player, uint8 roles, LfgDungeonSet& dungeons, const // Can't join. Send result if (joinData.result != LFG_JOIN_OK) { - TC_LOG_DEBUG("lfg", "LFGMgr::Join: [" UI64FMTD "] joining with %u members. result: %u", guid, grp ? grp->GetMembersCount() : 1, joinData.result); + TC_LOG_DEBUG("lfg.join", "%u joining with %u members. Result: %u, Dungeons: %s", + GUID_LOPART(guid), grp ? grp->GetMembersCount() : 1, joinData.result, ConcatenateDungeons(dungeons).c_str()); + if (!dungeons.empty()) // Only should show lockmap when have no dungeons available joinData.lockmap.clear(); player->GetSession()->SendLfgJoinResult(joinData); @@ -575,7 +576,7 @@ void LFGMgr::JoinLfg(Player* player, uint8 roles, LfgDungeonSet& dungeons, const if (isRaid) { - TC_LOG_DEBUG("lfg", "LFGMgr::Join: [" UI64FMTD "] trying to join raid browser and it's disabled.", guid); + TC_LOG_DEBUG("lfg.join", "%u trying to join raid browser and it's disabled.", GUID_LOPART(guid)); return; } @@ -641,13 +642,8 @@ void LFGMgr::JoinLfg(Player* player, uint8 roles, LfgDungeonSet& dungeons, const debugNames.append(player->GetName()); } - if (sLog->ShouldLog("lfg", LOG_LEVEL_DEBUG)) - { - std::ostringstream o; - o << "LFGMgr::Join: [" << guid << "] joined (" << (grp ? "group" : "player") << ") Members: " << debugNames.c_str() - << ". Dungeons (" << uint32(dungeons.size()) << "): " << ConcatenateDungeons(dungeons); - TC_LOG_DEBUG("lfg", "%s", o.str().c_str()); - } + TC_LOG_DEBUG("lfg.join", "%u joined (%s), Members: %s. Dungeons (%u): %s", GUID_LOPART(guid), + grp ? "group" : "player", debugNames.c_str(), uint32(dungeons.size()), ConcatenateDungeons(dungeons).c_str()); } /** @@ -658,9 +654,10 @@ void LFGMgr::JoinLfg(Player* player, uint8 roles, LfgDungeonSet& dungeons, const */ void LFGMgr::LeaveLfg(uint64 guid) { - TC_LOG_DEBUG("lfg", "LFGMgr::LeaveLfg: [" UI64FMTD "]", guid); - uint64 gguid = IS_GROUP_GUID(guid) ? guid : GetGroup(guid); + + TC_LOG_DEBUG("lfg.leave", "%u left (%s)", GUID_LOPART(guid), guid == gguid ? "group" : "player"); + LfgState state = GetState(guid); switch (state) { @@ -1020,7 +1017,7 @@ void LFGMgr::UpdateProposal(uint32 proposalId, uint64 guid, bool accept) LfgProposalPlayer& player = itProposalPlayer->second; player.accept = LfgAnswer(accept); - TC_LOG_DEBUG("lfg", "LFGMgr::UpdateProposal: Player [" UI64FMTD "] of proposal %u selected: %u", guid, proposalId, accept); + TC_LOG_DEBUG("lfg.proposal.update", "Player %u, Proposal %u, Selection: %u", GUID_LOPART(guid), proposalId, accept); if (!accept) { RemoveProposal(itProposal, LFG_UPDATETYPE_PROPOSAL_DECLINED); @@ -1111,7 +1108,7 @@ void LFGMgr::RemoveProposal(LfgProposalContainer::iterator itProposal, LfgUpdate LfgProposal& proposal = itProposal->second; proposal.state = LFG_PROPOSAL_FAILED; - TC_LOG_DEBUG("lfg", "LFGMgr::RemoveProposal: Proposal %u, state FAILED, UpdateType %u", itProposal->first, type); + TC_LOG_DEBUG("lfg.proposal.remove", "Proposal %u, state FAILED, UpdateType %u", itProposal->first, type); // Mark all people that didn't answered as no accept if (type == LFG_UPDATETYPE_PROPOSAL_FAILED) for (LfgProposalPlayerContainer::iterator it = proposal.players.begin(); it != proposal.players.end(); ++it) @@ -1148,12 +1145,12 @@ void LFGMgr::RemoveProposal(LfgProposalContainer::iterator itProposal, LfgUpdate if (it->second.accept == LFG_ANSWER_DENY) { updateData.updateType = type; - TC_LOG_DEBUG("lfg", "LFGMgr::RemoveProposal: [" UI64FMTD "] didn't accept. Removing from queue and compatible cache", guid); + TC_LOG_DEBUG("lfg.proposal.remove", "%u didn't accept. Removing from queue and compatible cache", GUID_LOPART(guid)); } else { updateData.updateType = LFG_UPDATETYPE_REMOVED_FROM_QUEUE; - TC_LOG_DEBUG("lfg", "LFGMgr::RemoveProposal: [" UI64FMTD "] in same group that someone that didn't accept. Removing from queue and compatible cache", guid); + TC_LOG_DEBUG("lfg.proposal.remove", "%u in same group that someone that didn't accept. Removing from queue and compatible cache", GUID_LOPART(guid)); } RestoreState(guid, "Proposal Fail (didn't accepted or in group with someone that didn't accept"); @@ -1167,7 +1164,7 @@ void LFGMgr::RemoveProposal(LfgProposalContainer::iterator itProposal, LfgUpdate } else { - TC_LOG_DEBUG("lfg", "LFGMgr::RemoveProposal: Readding [" UI64FMTD "] to queue.", guid); + TC_LOG_DEBUG("lfg.proposal.remove", "Readding %u to queue.", GUID_LOPART(guid)); SetState(guid, LFG_STATE_QUEUED); if (gguid != guid) { @@ -1312,7 +1309,7 @@ void LFGMgr::TeleportPlayer(Player* player, bool out, bool fromOpcode /*= false* if (!dungeon) { - TC_LOG_DEBUG("lfg", "TeleportPlayer: Player %s not in group/lfggroup or dungeon not found!", + TC_LOG_DEBUG("lfg.teleport", "Player %s not in group/lfggroup or dungeon not found!", player->GetName().c_str()); player->GetSession()->SendLfgTeleportError(uint8(LFG_TELEPORTERROR_INVALID_LOCATION)); return; @@ -1320,7 +1317,7 @@ void LFGMgr::TeleportPlayer(Player* player, bool out, bool fromOpcode /*= false* if (out) { - TC_LOG_DEBUG("lfg", "TeleportPlayer: Player %s is being teleported out. Current Map %u - Expected Map %u", + TC_LOG_DEBUG("lfg.teleport", "Player %s is being teleported out. Current Map %u - Expected Map %u", player->GetName().c_str(), player->GetMapId(), uint32(dungeon->map)); if (player->GetMapId() == uint32(dungeon->map)) player->TeleportToBGEntryPoint(); @@ -1384,7 +1381,7 @@ void LFGMgr::TeleportPlayer(Player* player, bool out, bool fromOpcode /*= false* if (error != LFG_TELEPORTERROR_OK) player->GetSession()->SendLfgTeleportError(uint8(error)); - TC_LOG_DEBUG("lfg", "TeleportPlayer: Player %s is being teleported in to map %u " + TC_LOG_DEBUG("lfg.teleport", "Player %s is being teleported in to map %u " "(x: %f, y: %f, z: %f) Result: %u", player->GetName().c_str(), dungeon->map, dungeon->x, dungeon->y, dungeon->z, error); } @@ -1400,13 +1397,13 @@ void LFGMgr::FinishDungeon(uint64 gguid, const uint32 dungeonId) uint32 gDungeonId = GetDungeon(gguid); if (gDungeonId != dungeonId) { - TC_LOG_DEBUG("lfg", "LFGMgr::FinishDungeon: [" UI64FMTD "] Finished dungeon %u but group queued for %u. Ignoring", gguid, dungeonId, gDungeonId); + TC_LOG_DEBUG("lfg.dungeon.finish", "Group %u finished dungeon %u but queued for %u", GUID_LOPART(gguid), dungeonId, gDungeonId); return; } if (GetState(gguid) == LFG_STATE_FINISHED_DUNGEON) // Shouldn't happen. Do not reward multiple times { - TC_LOG_DEBUG("lfg", "LFGMgr::FinishDungeon: [" UI64FMTD "] Already rewarded group. Ignoring", gguid); + TC_LOG_DEBUG("lfg.dungeon.finish", "Group: %u already rewarded", GUID_LOPART(gguid)); return; } @@ -1418,7 +1415,7 @@ void LFGMgr::FinishDungeon(uint64 gguid, const uint32 dungeonId) uint64 guid = (*it); if (GetState(guid) == LFG_STATE_FINISHED_DUNGEON) { - TC_LOG_DEBUG("lfg", "LFGMgr::FinishDungeon: [" UI64FMTD "] Already rewarded player. Ignoring", guid); + TC_LOG_DEBUG("lfg.dungeon.finish", "Group: %u, Player: %u already rewarded", GUID_LOPART(gguid), GUID_LOPART(guid)); continue; } @@ -1434,14 +1431,14 @@ void LFGMgr::FinishDungeon(uint64 gguid, const uint32 dungeonId) if (!dungeon || (dungeon->type != LFG_TYPE_RANDOM && !dungeon->seasonal)) { - TC_LOG_DEBUG("lfg", "LFGMgr::FinishDungeon: [" UI64FMTD "] dungeon %u is not random or seasonal", guid, rDungeonId); + TC_LOG_DEBUG("lfg.dungeon.finish", "Group: %u, Player: %u dungeon %u is not random or seasonal", GUID_LOPART(gguid), GUID_LOPART(guid), rDungeonId); continue; } Player* player = ObjectAccessor::FindPlayer(guid); if (!player || !player->IsInWorld()) { - TC_LOG_DEBUG("lfg", "LFGMgr::FinishDungeon: [" UI64FMTD "] not found in world", guid); + TC_LOG_DEBUG("lfg.dungeon.finish", "Group: %u, Player: %u not found in world", GUID_LOPART(gguid), GUID_LOPART(guid)); continue; } @@ -1450,7 +1447,7 @@ void LFGMgr::FinishDungeon(uint64 gguid, const uint32 dungeonId) if (player->GetMapId() != mapId) { - TC_LOG_DEBUG("lfg", "LFGMgr::FinishDungeon: [" UI64FMTD "] is in map %u and should be in %u to get reward", guid, player->GetMapId(), mapId); + TC_LOG_DEBUG("lfg.dungeon.finish", "Group: %u, Player: %u is in map %u and should be in %u to get reward", GUID_LOPART(gguid), GUID_LOPART(guid), player->GetMapId(), mapId); continue; } @@ -1481,7 +1478,7 @@ void LFGMgr::FinishDungeon(uint64 gguid, const uint32 dungeonId) } // Give rewards - TC_LOG_DEBUG("lfg", "LFGMgr::FinishDungeon: [" UI64FMTD "] done dungeon %u, %s previously done.", player->GetGUID(), GetDungeon(gguid), done? " " : " not"); + TC_LOG_DEBUG("lfg.dungeon.finish", "Group: %u, Player: %u done dungeon %u, %s previously done.", GUID_LOPART(gguid), GUID_LOPART(guid), GetDungeon(gguid), done? " " : " not"); LfgPlayerRewardData data = LfgPlayerRewardData(dungeon->Entry(), GetDungeon(gguid, false), done, quest); player->GetSession()->SendLfgPlayerReward(data); } @@ -1545,11 +1542,16 @@ LfgState LFGMgr::GetState(uint64 guid) { LfgState state; if (IS_GROUP_GUID(guid)) + { state = GroupsStore[guid].GetState(); + TC_LOG_TRACE("lfg.data.group.state.get", "Group: %u, State: %u", GUID_LOPART(guid), state); + } else + { state = PlayersStore[guid].GetState(); + TC_LOG_TRACE("lfg.data.player.state.get", "Player: %u, State: %u", GUID_LOPART(guid), state); + } - TC_LOG_TRACE("lfg", "LFGMgr::GetState: [" UI64FMTD "] = %u", guid, state); return state; } @@ -1557,18 +1559,23 @@ LfgState LFGMgr::GetOldState(uint64 guid) { LfgState state; if (IS_GROUP_GUID(guid)) + { state = GroupsStore[guid].GetOldState(); + TC_LOG_TRACE("lfg.data.group.oldstate.get", "Group: %u, Old state: %u", GUID_LOPART(guid), state); + } else + { state = PlayersStore[guid].GetOldState(); + TC_LOG_TRACE("lfg.data.player.oldstate.get", "Player: %u, Old state: %u", GUID_LOPART(guid), state); + } - TC_LOG_TRACE("lfg", "LFGMgr::GetOldState: [" UI64FMTD "] = %u", guid, state); return state; } uint32 LFGMgr::GetDungeon(uint64 guid, bool asId /*= true */) { uint32 dungeon = GroupsStore[guid].GetDungeon(asId); - TC_LOG_TRACE("lfg", "LFGMgr::GetDungeon: [" UI64FMTD "] asId: %u = %u", guid, asId, dungeon); + TC_LOG_TRACE("lfg.data.group.dungeon.get", "Group: %u, asId: %u, Dungeon: %u", GUID_LOPART(guid), asId, dungeon); return dungeon; } @@ -1580,39 +1587,40 @@ uint32 LFGMgr::GetDungeonMapId(uint64 guid) if (LFGDungeonData const* dungeon = GetLFGDungeon(dungeonId)) mapId = dungeon->map; - TC_LOG_TRACE("lfg", "LFGMgr::GetDungeonMapId: [" UI64FMTD "] = %u (DungeonId = %u)", guid, mapId, dungeonId); + TC_LOG_TRACE("lfg.data.group.dungeon.map", "Group: %u, MapId: %u (DungeonId: %u)", GUID_LOPART(guid), mapId, dungeonId); + return mapId; } uint8 LFGMgr::GetRoles(uint64 guid) { uint8 roles = PlayersStore[guid].GetRoles(); - TC_LOG_TRACE("lfg", "LFGMgr::GetRoles: [" UI64FMTD "] = %u", guid, roles); + TC_LOG_TRACE("lfg.data.player.role.get", "Player: %u, Role: %u", GUID_LOPART(guid), roles); return roles; } const std::string& LFGMgr::GetComment(uint64 guid) { - TC_LOG_TRACE("lfg", "LFGMgr::GetComment: [" UI64FMTD "] = %s", guid, PlayersStore[guid].GetComment().c_str()); + TC_LOG_TRACE("lfg.data.player.comment.get", "Player: %u, Comment: %s", GUID_LOPART(guid), PlayersStore[guid].GetComment().c_str()); return PlayersStore[guid].GetComment(); } LfgDungeonSet const& LFGMgr::GetSelectedDungeons(uint64 guid) { - TC_LOG_TRACE("lfg", "LFGMgr::GetSelectedDungeons: [" UI64FMTD "]", guid); + TC_LOG_TRACE("lfg.data.player.dungeons.selected.get", "Player: %u, Selected Dungeons: %s", GUID_LOPART(guid), ConcatenateDungeons(PlayersStore[guid].GetSelectedDungeons()).c_str()); return PlayersStore[guid].GetSelectedDungeons(); } LfgLockMap const& LFGMgr::GetLockedDungeons(uint64 guid) { - TC_LOG_TRACE("lfg", "LFGMgr::GetLockedDungeons: [" UI64FMTD "]", guid); + TC_LOG_TRACE("lfg.data.player.dungeons.locked.get", "Player: %u, LockedDungeons.", GUID_LOPART(guid)); return PlayersStore[guid].GetLockedDungeons(); } uint8 LFGMgr::GetKicksLeft(uint64 guid) { uint8 kicks = GroupsStore[guid].GetKicksLeft(); - TC_LOG_TRACE("lfg", "LFGMgr::GetKicksLeft: [" UI64FMTD "] = %u", guid, kicks); + TC_LOG_TRACE("lfg.data.group.kickleft.get", "Group: %u, Kicks left: %u", GUID_LOPART(guid), kicks); return kicks; } @@ -1621,26 +1629,19 @@ void LFGMgr::RestoreState(uint64 guid, char const* debugMsg) if (IS_GROUP_GUID(guid)) { LfgGroupData& data = GroupsStore[guid]; - if (sLog->ShouldLog("lfg", LOG_LEVEL_DEBUG)) - { - std::string const& ps = GetStateString(data.GetState()); - std::string const& os = GetStateString(data.GetOldState()); - TC_LOG_TRACE("lfg", "LFGMgr::RestoreState: Group: [" UI64FMTD "] (%s) State: %s, oldState: %s", - guid, debugMsg, ps.c_str(), os.c_str()); - } + TC_LOG_TRACE("lfg.data.group.state.restore", "Group: %u (%s), State: %s, Old state: %s", + GUID_LOPART(guid), debugMsg, GetStateString(data.GetState()).c_str(), + GetStateString(data.GetOldState()).c_str()); data.RestoreState(); } else { LfgPlayerData& data = PlayersStore[guid]; - if (sLog->ShouldLog("lfg", LOG_LEVEL_DEBUG)) - { - std::string const& ps = GetStateString(data.GetState()); - std::string const& os = GetStateString(data.GetOldState()); - TC_LOG_TRACE("lfg", "LFGMgr::RestoreState: Player: [" UI64FMTD "] (%s) State: %s, oldState: %s", - guid, debugMsg, ps.c_str(), os.c_str()); - } + TC_LOG_TRACE("lfg.data.player.state.restore", "Player: %u (%s), State: %s, Old state: %s", + GUID_LOPART(guid), debugMsg, GetStateString(data.GetState()).c_str(), + GetStateString(data.GetOldState()).c_str()); + data.RestoreState(); } } @@ -1650,70 +1651,62 @@ void LFGMgr::SetState(uint64 guid, LfgState state) if (IS_GROUP_GUID(guid)) { LfgGroupData& data = GroupsStore[guid]; - if (sLog->ShouldLog("lfg", LOG_LEVEL_TRACE)) - { - std::string const& ns = GetStateString(state); - std::string const& ps = GetStateString(data.GetState()); - std::string const& os = GetStateString(data.GetOldState()); - TC_LOG_TRACE("lfg", "LFGMgr::SetState: Group: [" UI64FMTD "] newState: %s, previous: %s, oldState: %s", - guid, ns.c_str(), ps.c_str(), os.c_str()); - } + TC_LOG_TRACE("lfg.data.group.state.set", "Group: %u, New state: %s, Previous: %s, Old state: %s", + GUID_LOPART(guid), GetStateString(state).c_str(), GetStateString(data.GetState()).c_str(), + GetStateString(data.GetOldState()).c_str()); + data.SetState(state); } else { LfgPlayerData& data = PlayersStore[guid]; - if (sLog->ShouldLog("lfg", LOG_LEVEL_TRACE)) - { - std::string const& ns = GetStateString(state); - std::string const& ps = GetStateString(data.GetState()); - std::string const& os = GetStateString(data.GetOldState()); - TC_LOG_TRACE("lfg", "LFGMgr::SetState: Player: [" UI64FMTD "] newState: %s, previous: %s, oldState: %s", - guid, ns.c_str(), ps.c_str(), os.c_str()); - } + TC_LOG_TRACE("lfg.data.player.state.set", "Player: %u, New state: %s, Previous: %s, OldState: %s", + GUID_LOPART(guid), GetStateString(state).c_str(), GetStateString(data.GetState()).c_str(), + GetStateString(data.GetOldState()).c_str()); + data.SetState(state); } } void LFGMgr::SetDungeon(uint64 guid, uint32 dungeon) { - TC_LOG_TRACE("lfg", "LFGMgr::SetDungeon: [" UI64FMTD "] dungeon %u", guid, dungeon); + TC_LOG_TRACE("lfg.data.group.dungeon.set", "Group: %u, Dungeon: %u", GUID_LOPART(guid), dungeon); GroupsStore[guid].SetDungeon(dungeon); } void LFGMgr::SetRoles(uint64 guid, uint8 roles) { - TC_LOG_TRACE("lfg", "LFGMgr::SetRoles: [" UI64FMTD "] roles: %u", guid, roles); + TC_LOG_TRACE("lfg.data.player.role.set", "Player: %u, Roles: %u", GUID_LOPART(guid), roles); PlayersStore[guid].SetRoles(roles); } void LFGMgr::SetComment(uint64 guid, std::string const& comment) { - TC_LOG_TRACE("lfg", "LFGMgr::SetComment: [" UI64FMTD "] comment: %s", guid, comment.c_str()); + TC_LOG_TRACE("lfg.data.player.comment.set", "Player: %u, Comment: %s", GUID_LOPART(guid), comment.c_str()); PlayersStore[guid].SetComment(comment); } void LFGMgr::SetSelectedDungeons(uint64 guid, LfgDungeonSet const& dungeons) { - TC_LOG_TRACE("lfg", "LFGMgr::SetSelectedDungeons: [" UI64FMTD "] Dungeons: %s", guid, ConcatenateDungeons(dungeons).c_str()); + TC_LOG_TRACE("lfg.data.player.dungeon.selected.set", "Player: %u, Dungeons: %s", GUID_LOPART(guid), ConcatenateDungeons(dungeons).c_str()); PlayersStore[guid].SetSelectedDungeons(dungeons); } void LFGMgr::SetLockedDungeons(uint64 guid, LfgLockMap const& lock) { - TC_LOG_TRACE("lfg", "LFGMgr::SetLockedDungeons: [" UI64FMTD "]", guid); + TC_LOG_TRACE("lfg.data.player.dungeon.locked.set", "Player: %u, LockedDungeons", GUID_LOPART(guid)); PlayersStore[guid].SetLockedDungeons(lock); } void LFGMgr::DecreaseKicksLeft(uint64 guid) { - TC_LOG_TRACE("lfg", "LFGMgr::DecreaseKicksLeft: [" UI64FMTD "]", guid); GroupsStore[guid].DecreaseKicksLeft(); + TC_LOG_TRACE("lfg.data.group.kicksleft.decrease", "Group: %u, Kicks: %u", GUID_LOPART(guid), GroupsStore[guid].GetKicksLeft()); } void LFGMgr::RemovePlayerData(uint64 guid) { - TC_LOG_TRACE("lfg", "LFGMgr::RemovePlayerData: [" UI64FMTD "]", guid); + TC_LOG_TRACE("lfg.data.player.remove", "Player: %u", GUID_LOPART(guid)); LfgPlayerDataContainer::iterator it = PlayersStore.find(guid); if (it != PlayersStore.end()) PlayersStore.erase(it); @@ -1721,7 +1714,7 @@ void LFGMgr::RemovePlayerData(uint64 guid) void LFGMgr::RemoveGroupData(uint64 guid) { - TC_LOG_TRACE("lfg", "LFGMgr::RemoveGroupData: [" UI64FMTD "]", guid); + TC_LOG_TRACE("lfg.data.group.remove", "Group: %u", GUID_LOPART(guid)); LfgGroupDataContainer::iterator it = GroupsStore.find(guid); if (it == GroupsStore.end()) return; @@ -1744,7 +1737,9 @@ void LFGMgr::RemoveGroupData(uint64 guid) uint8 LFGMgr::GetTeam(uint64 guid) { - return PlayersStore[guid].GetTeam(); + uint8 team = PlayersStore[guid].GetTeam(); + TC_LOG_TRACE("lfg.data.player.team.get", "Player: %u, Team: %u", GUID_LOPART(guid), team); + return team; } uint8 LFGMgr::RemovePlayerFromGroup(uint64 gguid, uint64 guid) diff --git a/src/server/game/DungeonFinding/LFGQueue.cpp b/src/server/game/DungeonFinding/LFGQueue.cpp index a3ab4ceab03..06bd67cbd78 100644 --- a/src/server/game/DungeonFinding/LFGQueue.cpp +++ b/src/server/game/DungeonFinding/LFGQueue.cpp @@ -88,7 +88,7 @@ void LFGQueue::AddToQueue(uint64 guid) LfgQueueDataContainer::iterator itQueue = QueueDataStore.find(guid); if (itQueue == QueueDataStore.end()) { - TC_LOG_ERROR("lfg", "LFGQueue::AddToQueue: Queue data not found for [" UI64FMTD "]", guid); + TC_LOG_ERROR("lfg.queue.add", "Queue data not found for [" UI64FMTD "]", guid); return; } @@ -194,7 +194,7 @@ void LFGQueue::RemoveFromCompatibles(uint64 guid) out << guid; std::string strGuid = out.str(); - TC_LOG_DEBUG("lfg", "LFGQueue::RemoveFromCompatibles: Removing [" UI64FMTD "]", guid); + TC_LOG_DEBUG("lfg.queue.data.compatibles.remove", "Removing [" UI64FMTD "]", guid); for (LfgCompatibleContainer::iterator itNext = CompatibleMapStore.begin(); itNext != CompatibleMapStore.end();) { LfgCompatibleContainer::iterator it = itNext++; @@ -251,7 +251,7 @@ uint8 LFGQueue::FindGroups() while (!newToQueueStore.empty()) { uint64 frontguid = newToQueueStore.front(); - TC_LOG_DEBUG("lfg", "LFGQueue::FindGroups: checking [" UI64FMTD "] newToQueue(%u), currentQueue(%u)", frontguid, uint32(newToQueueStore.size()), uint32(currentQueueStore.size())); + TC_LOG_DEBUG("lfg.queue.match.check.new", "Checking [" UI64FMTD "] newToQueue(%u), currentQueue(%u)", frontguid, uint32(newToQueueStore.size()), uint32(currentQueueStore.size())); firstNew.clear(); firstNew.push_back(frontguid); RemoveFromNewQueue(frontguid); @@ -279,13 +279,13 @@ LfgCompatibility LFGQueue::FindNewGroups(LfgGuidList& check, LfgGuidList& all) std::string strGuids = ConcatenateGuids(check); LfgCompatibility compatibles = GetCompatibles(strGuids); - TC_LOG_DEBUG("lfg", "LFGQueue::FindNewGroup: (%s): %s - all(%s)", strGuids.c_str(), GetCompatibleString(compatibles), ConcatenateGuids(all).c_str()); + TC_LOG_DEBUG("lfg.queue.match.check", "Guids: (%s): %s - all(%s)", strGuids.c_str(), GetCompatibleString(compatibles), ConcatenateGuids(all).c_str()); if (compatibles == LFG_COMPATIBILITY_PENDING) // Not previously cached, calculate compatibles = CheckCompatibility(check); if (compatibles == LFG_COMPATIBLES_BAD_STATES && sLFGMgr->AllQueued(check)) { - TC_LOG_DEBUG("lfg", "LFGQueue::FindNewGroup: (%s) compatibles (cached) changed from bad states to match", strGuids.c_str()); + TC_LOG_DEBUG("lfg.queue.match.check", "Guids: (%s) compatibles (cached) changed from bad states to match", strGuids.c_str()); SetCompatibles(strGuids, LFG_COMPATIBLES_MATCH); return LFG_COMPATIBLES_MATCH; } @@ -323,7 +323,7 @@ LfgCompatibility LFGQueue::CheckCompatibility(LfgGuidList check) // Check for correct size if (check.size() > MAXGROUPSIZE || check.empty()) { - TC_LOG_DEBUG("lfg", "LFGQueue::CheckCompatibility: (%s): Size wrong - Not compatibles", strGuids.c_str()); + TC_LOG_DEBUG("lfg.queue.match.compatibility.check", "Guids: (%s): Size wrong - Not compatibles", strGuids.c_str()); return LFG_INCOMPATIBLES_WRONG_GROUP_SIZE; } @@ -337,7 +337,7 @@ LfgCompatibility LFGQueue::CheckCompatibility(LfgGuidList check) LfgCompatibility child_compatibles = CheckCompatibility(check); if (child_compatibles < LFG_COMPATIBLES_WITH_LESS_PLAYERS) // Group not compatible { - TC_LOG_DEBUG("lfg", "LFGQueue::CheckCompatibility: (%s) child %s not compatibles", strGuids.c_str(), ConcatenateGuids(check).c_str()); + TC_LOG_DEBUG("lfg.queue.match.compatibility.check", "Guids: (%s) child %s not compatibles", strGuids.c_str(), ConcatenateGuids(check).c_str()); SetCompatibles(strGuids, child_compatibles); return child_compatibles; } @@ -353,7 +353,7 @@ LfgCompatibility LFGQueue::CheckCompatibility(LfgGuidList check) LfgQueueDataContainer::iterator itQueue = QueueDataStore.find(guid); if (itQueue == QueueDataStore.end()) { - TC_LOG_ERROR("lfg", "LFGQueue::CheckCompatibility: [" UI64FMTD "] is not queued but listed as queued!", guid); + TC_LOG_ERROR("lfg.queue.match.compatibility.check", "Guid: [" UI64FMTD "] is not queued but listed as queued!", guid); RemoveFromQueue(guid); return LFG_COMPATIBILITY_PENDING; } @@ -375,7 +375,7 @@ LfgCompatibility LFGQueue::CheckCompatibility(LfgGuidList check) // Group with less that MAXGROUPSIZE members always compatible if (check.size() == 1 && numPlayers != MAXGROUPSIZE) { - TC_LOG_DEBUG("lfg", "LFGQueue::CheckCompatibility: (%s) sigle group. Compatibles", strGuids.c_str()); + TC_LOG_DEBUG("lfg.queue.match.compatibility.check", "Guids: (%s) sigle group. Compatibles", strGuids.c_str()); LfgQueueDataContainer::iterator itQueue = QueueDataStore.find(check.front()); LfgCompatibilityData data(LFG_COMPATIBLES_WITH_LESS_PLAYERS); @@ -389,14 +389,14 @@ LfgCompatibility LFGQueue::CheckCompatibility(LfgGuidList check) if (numLfgGroups > 1) { - TC_LOG_DEBUG("lfg", "LFGQueue::CheckCompatibility: (%s) More than one Lfggroup (%u)", strGuids.c_str(), numLfgGroups); + TC_LOG_DEBUG("lfg.queue.match.compatibility.check", "Guids: (%s) More than one Lfggroup (%u)", strGuids.c_str(), numLfgGroups); SetCompatibles(strGuids, LFG_INCOMPATIBLES_MULTIPLE_LFG_GROUPS); return LFG_INCOMPATIBLES_MULTIPLE_LFG_GROUPS; } if (numPlayers > MAXGROUPSIZE) { - TC_LOG_DEBUG("lfg", "LFGQueue::CheckCompatibility: (%s) Too much players (%u)", strGuids.c_str(), numPlayers); + TC_LOG_DEBUG("lfg.queue.match.compatibility.check", "Guids: (%s) Too much players (%u)", strGuids.c_str(), numPlayers); SetCompatibles(strGuids, LFG_INCOMPATIBLES_TOO_MUCH_PLAYERS); return LFG_INCOMPATIBLES_TOO_MUCH_PLAYERS; } @@ -413,7 +413,7 @@ LfgCompatibility LFGQueue::CheckCompatibility(LfgGuidList check) for (itPlayer = proposalRoles.begin(); itPlayer != proposalRoles.end(); ++itPlayer) { if (itRoles->first == itPlayer->first) - TC_LOG_ERROR("lfg", "LFGQueue::CheckCompatibility: ERROR! Player multiple times in queue! [" UI64FMTD "]", itRoles->first); + TC_LOG_ERROR("lfg.queue.match.compatibility.check", "Guids: ERROR! Player multiple times in queue! [" UI64FMTD "]", itRoles->first); else if (sLFGMgr->HasIgnore(itRoles->first, itPlayer->first)) break; } @@ -424,7 +424,7 @@ LfgCompatibility LFGQueue::CheckCompatibility(LfgGuidList check) if (uint8 playersize = numPlayers - proposalRoles.size()) { - TC_LOG_DEBUG("lfg", "LFGQueue::CheckCompatibility: (%s) not compatible, %u players are ignoring each other", strGuids.c_str(), playersize); + TC_LOG_DEBUG("lfg.queue.match.compatibility.check", "Guids: (%s) not compatible, %u players are ignoring each other", strGuids.c_str(), playersize); SetCompatibles(strGuids, LFG_INCOMPATIBLES_HAS_IGNORES); return LFG_INCOMPATIBLES_HAS_IGNORES; } @@ -436,7 +436,7 @@ LfgCompatibility LFGQueue::CheckCompatibility(LfgGuidList check) for (LfgRolesMap::const_iterator it = debugRoles.begin(); it != debugRoles.end(); ++it) o << ", " << it->first << ": " << GetRolesString(it->second); - TC_LOG_DEBUG("lfg", "LFGQueue::CheckCompatibility: (%s) Roles not compatible%s", strGuids.c_str(), o.str().c_str()); + TC_LOG_DEBUG("lfg.queue.match.compatibility.check", "Guids: (%s) Roles not compatible%s", strGuids.c_str(), o.str().c_str()); SetCompatibles(strGuids, LFG_INCOMPATIBLES_NO_ROLES); return LFG_INCOMPATIBLES_NO_ROLES; } @@ -456,7 +456,7 @@ LfgCompatibility LFGQueue::CheckCompatibility(LfgGuidList check) if (proposalDungeons.empty()) { - TC_LOG_DEBUG("lfg", "LFGQueue::CheckCompatibility: (%s) No compatible dungeons%s", strGuids.c_str(), o.str().c_str()); + TC_LOG_DEBUG("lfg.queue.match.compatibility.check", "Guids: (%s) No compatible dungeons%s", strGuids.c_str(), o.str().c_str()); SetCompatibles(strGuids, LFG_INCOMPATIBLES_NO_DUNGEONS); return LFG_INCOMPATIBLES_NO_DUNGEONS; } @@ -473,7 +473,7 @@ LfgCompatibility LFGQueue::CheckCompatibility(LfgGuidList check) // Enough players? if (numPlayers != MAXGROUPSIZE) { - TC_LOG_DEBUG("lfg", "LFGQueue::CheckCompatibility: (%s) Compatibles but not enough players(%u)", strGuids.c_str(), numPlayers); + TC_LOG_DEBUG("lfg.queue.match.compatibility.check", "Guids: (%s) Compatibles but not enough players(%u)", strGuids.c_str(), numPlayers); LfgCompatibilityData data(LFG_COMPATIBLES_WITH_LESS_PLAYERS); data.roles = proposalRoles; @@ -490,7 +490,7 @@ LfgCompatibility LFGQueue::CheckCompatibility(LfgGuidList check) if (!sLFGMgr->AllQueued(check)) { - TC_LOG_DEBUG("lfg", "LFGQueue::CheckCompatibility: (%s) Group MATCH but can't create proposal!", strGuids.c_str()); + TC_LOG_DEBUG("lfg.queue.match.compatibility.check", "Guids: (%s) Group MATCH but can't create proposal!", strGuids.c_str()); SetCompatibles(strGuids, LFG_COMPATIBLES_BAD_STATES); return LFG_COMPATIBLES_BAD_STATES; } @@ -532,14 +532,14 @@ LfgCompatibility LFGQueue::CheckCompatibility(LfgGuidList check) sLFGMgr->AddProposal(proposal); - TC_LOG_DEBUG("lfg", "LFGQueue::CheckCompatibility: (%s) MATCH! Group formed", strGuids.c_str()); + TC_LOG_DEBUG("lfg.queue.match.compatibility.check", "Guids: (%s) MATCH! Group formed", strGuids.c_str()); SetCompatibles(strGuids, LFG_COMPATIBLES_MATCH); return LFG_COMPATIBLES_MATCH; } void LFGQueue::UpdateQueueTimers(uint8 queueId, time_t currTime) { - TC_LOG_TRACE("lfg", "Updating queue timers..."); + TC_LOG_TRACE("lfg.queue.timers.update", "Updating queue timers..."); for (LfgQueueDataContainer::iterator itQueue = QueueDataStore.begin(); itQueue != QueueDataStore.end(); ++itQueue) { LfgQueueData& queueinfo = itQueue->second; @@ -635,7 +635,7 @@ std::string LFGQueue::DumpCompatibleInfo(bool full /* = false */) const void LFGQueue::FindBestCompatibleInQueue(LfgQueueDataContainer::iterator itrQueue) { - TC_LOG_DEBUG("lfg", "LFGQueue::FindBestCompatibleInQueue: " UI64FMTD, itrQueue->first); + TC_LOG_DEBUG("lfg.queue.compatibles.find", "Guid: " UI64FMTD, itrQueue->first); std::ostringstream o; o << itrQueue->first; std::string sguid = o.str(); @@ -660,7 +660,7 @@ void LFGQueue::UpdateBestCompatibleInQueue(LfgQueueDataContainer::iterator itrQu if (size <= storedSize) return; - TC_LOG_DEBUG("lfg", "LFGQueue::UpdateBestCompatibleInQueue: Changed (%s) to (%s) as best compatible group for " UI64FMTD, + TC_LOG_DEBUG("lfg.queue.compatibles.update", "Changed (%s) to (%s) as best compatible group for " UI64FMTD, queueData.bestCompatible.c_str(), key.c_str(), itrQueue->first); queueData.bestCompatible = key; diff --git a/src/server/scripts/Kalimdor/zone_silithus.cpp b/src/server/scripts/Kalimdor/zone_silithus.cpp index ff2eaaa9789..1fdeacb6183 100644 --- a/src/server/scripts/Kalimdor/zone_silithus.cpp +++ b/src/server/scripts/Kalimdor/zone_silithus.cpp @@ -24,7 +24,6 @@ SDCategory: Silithus EndScriptData */ /* ContentData -npc_highlord_demitrian npcs_rutgar_and_frankal go_wind_stone EndContentData */ @@ -36,79 +35,6 @@ EndContentData */ #include "Player.h" /*### -## npc_highlord_demitrian -###*/ - -#define GOSSIP_DEMITRIAN1 "What do you know of it?" -#define GOSSIP_DEMITRIAN2 "I am listening, Demitrian." -#define GOSSIP_DEMITRIAN3 "Continue, please." -#define GOSSIP_DEMITRIAN4 "A battle?" -#define GOSSIP_DEMITRIAN5 "<Nod>" -#define GOSSIP_DEMITRIAN6 "Caught unaware? How?" -#define GOSSIP_DEMITRIAN7 "So what did Ragnaros do next?" - -class npc_highlord_demitrian : public CreatureScript -{ -public: - npc_highlord_demitrian() : CreatureScript("npc_highlord_demitrian") { } - - bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE - { - player->PlayerTalkClass->ClearMenus(); - switch (action) - { - case GOSSIP_ACTION_INFO_DEF: - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_DEMITRIAN2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1); - player->SEND_GOSSIP_MENU(6842, creature->GetGUID()); - break; - case GOSSIP_ACTION_INFO_DEF+1: - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_DEMITRIAN3, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2); - player->SEND_GOSSIP_MENU(6843, creature->GetGUID()); - break; - case GOSSIP_ACTION_INFO_DEF+2: - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_DEMITRIAN4, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+3); - player->SEND_GOSSIP_MENU(6844, creature->GetGUID()); - break; - case GOSSIP_ACTION_INFO_DEF+3: - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_DEMITRIAN5, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+4); - player->SEND_GOSSIP_MENU(6867, creature->GetGUID()); - break; - case GOSSIP_ACTION_INFO_DEF+4: - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_DEMITRIAN6, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+5); - player->SEND_GOSSIP_MENU(6868, creature->GetGUID()); - break; - case GOSSIP_ACTION_INFO_DEF+5: - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_DEMITRIAN7, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+6); - player->SEND_GOSSIP_MENU(6869, creature->GetGUID()); - break; - case GOSSIP_ACTION_INFO_DEF+6: - player->SEND_GOSSIP_MENU(6870, creature->GetGUID()); - - ItemPosCountVec dest; - uint8 msg = player->CanStoreNewItem(NULL_BAG, NULL_SLOT, dest, 19016, 1); - if (msg == EQUIP_ERR_OK) - player->StoreNewItem(dest, 19016, true); - break; - } - return true; - } - - bool OnGossipHello(Player* player, Creature* creature) OVERRIDE - { - if (creature->IsQuestGiver()) - player->PrepareQuestMenu(creature->GetGUID()); - - if (player->GetQuestStatus(7785) == QUEST_STATUS_NONE && - (player->HasItemCount(18563, 1, false) || player->HasItemCount(18564, 1, false))) - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_DEMITRIAN1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF); - - player->SEND_GOSSIP_MENU(6812, creature->GetGUID()); - return true; - } - -}; - -/*### ## npcs_rutgar_and_frankal ###*/ @@ -1504,7 +1430,10 @@ class go_wind_stone : public GameObjectScript void AddSC_silithus() { - new npc_highlord_demitrian(); + new go_crystalline_tear(); + new npc_anachronos_quest_trigger(); + new npc_anachronos_the_ancient(); + new npc_qiraj_war_spawn(); new npcs_rutgar_and_frankal(); new go_wind_stone(); } diff --git a/src/server/scripts/Outland/zone_blades_edge_mountains.cpp b/src/server/scripts/Outland/zone_blades_edge_mountains.cpp index 167fd7f2074..acc3317d7bd 100644 --- a/src/server/scripts/Outland/zone_blades_edge_mountains.cpp +++ b/src/server/scripts/Outland/zone_blades_edge_mountains.cpp @@ -55,37 +55,6 @@ bool obelisk_one, obelisk_two, obelisk_three, obelisk_four, obelisk_five; #define LEGION_OBELISK_FIVE 185198 /*###### -## npc_bladespire_ogre -######*/ - -/// @todo add support for quest 10512 + Creature abilities -class npc_bladespire_ogre : public CreatureScript -{ -public: - npc_bladespire_ogre() : CreatureScript("npc_bladespire_ogre") { } - - CreatureAI* GetAI(Creature* creature) const OVERRIDE - { - return new npc_bladespire_ogreAI(creature); - } - - struct npc_bladespire_ogreAI : public ScriptedAI - { - npc_bladespire_ogreAI(Creature* creature) : ScriptedAI(creature) { } - - void Reset() OVERRIDE { } - - void UpdateAI(uint32 /*uiDiff*/) OVERRIDE - { - if (!UpdateVictim()) - return; - - DoMeleeAttackIfReady(); - } - }; -}; - -/*###### ## npc_nether_drake ######*/ @@ -1242,7 +1211,6 @@ class spell_oscillating_field : public SpellScriptLoader void AddSC_blades_edge_mountains() { - new npc_bladespire_ogre(); new npc_nether_drake(); new npc_daranelle(); new npc_overseer_nuaar(); diff --git a/src/server/scripts/Outland/zone_shadowmoon_valley.cpp b/src/server/scripts/Outland/zone_shadowmoon_valley.cpp index 41abc490d2b..c8a2dfe03cd 100644 --- a/src/server/scripts/Outland/zone_shadowmoon_valley.cpp +++ b/src/server/scripts/Outland/zone_shadowmoon_valley.cpp @@ -19,7 +19,7 @@ /* ScriptData SDName: Shadowmoon_Valley SD%Complete: 100 -SDComment: Quest support: 10519, 10583, 10601, 10804, 10854, 10458, 10481, 10480, 11082, 10781, 10451. Vendor Drake Dealer Hurlunk. +SDComment: Quest support: 10519, 10583, 10601, 10804, 10854, 10458, 10481, 10480, 10781, 10451. Vendor Drake Dealer Hurlunk. SDCategory: Shadowmoon Valley EndScriptData */ @@ -28,7 +28,6 @@ npc_mature_netherwing_drake npc_enslaved_netherwing_drake npc_drake_dealer_hurlunk npcs_flanis_swiftwing_and_kagrosh -npc_murkblood_overseer npc_karynaku npc_oronok_tornheart npc_overlord_morghor @@ -493,74 +492,6 @@ public: }; /*###### -## npc_murkblood_overseer -######*/ - -#define QUEST_11082 11082 - -#define GOSSIP_HMO "I am here for you, overseer." -#define GOSSIP_SMO1 "How dare you question an overseer of the Dragonmaw!" -#define GOSSIP_SMO2 "Who speaks of me? What are you talking about, broken?" -#define GOSSIP_SMO3 "Continue please." -#define GOSSIP_SMO4 "Who are these bidders?" -#define GOSSIP_SMO5 "Well... yes." - -class npc_murkblood_overseer : public CreatureScript -{ -public: - npc_murkblood_overseer() : CreatureScript("npc_murkblood_overseer") { } - - bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE - { - player->PlayerTalkClass->ClearMenus(); - switch (action) - { - case GOSSIP_ACTION_INFO_DEF+1: - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_SMO1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2); - //correct id not known - player->SEND_GOSSIP_MENU(10940, creature->GetGUID()); - break; - case GOSSIP_ACTION_INFO_DEF+2: - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_SMO2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+3); - //correct id not known - player->SEND_GOSSIP_MENU(10940, creature->GetGUID()); - break; - case GOSSIP_ACTION_INFO_DEF+3: - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_SMO3, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+4); - //correct id not known - player->SEND_GOSSIP_MENU(10940, creature->GetGUID()); - break; - case GOSSIP_ACTION_INFO_DEF+4: - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_SMO4, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+5); - //correct id not known - player->SEND_GOSSIP_MENU(10940, creature->GetGUID()); - break; - case GOSSIP_ACTION_INFO_DEF+5: - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_SMO5, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+6); - //correct id not known - player->SEND_GOSSIP_MENU(10940, creature->GetGUID()); - break; - case GOSSIP_ACTION_INFO_DEF+6: - //correct id not known - player->SEND_GOSSIP_MENU(10940, creature->GetGUID()); - creature->CastSpell(player, 41121, false); - player->AreaExploredOrEventHappens(QUEST_11082); - break; - } - return true; - } - - bool OnGossipHello(Player* player, Creature* creature) OVERRIDE - { - if (player->GetQuestStatus(QUEST_11082) == QUEST_STATUS_INCOMPLETE) - player->ADD_GOSSIP_ITEM(0, GOSSIP_HMO, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1); - - player->SEND_GOSSIP_MENU(10940, creature->GetGUID()); - return true; - } -}; - -/*###### ## npc_oronok ######*/ @@ -2011,7 +1942,6 @@ void AddSC_shadowmoon_valley() new npc_dragonmaw_peon(); new npc_drake_dealer_hurlunk(); new npcs_flanis_swiftwing_and_kagrosh(); - new npc_murkblood_overseer(); new npc_karynaku(); new npc_oronok_tornheart(); new npc_overlord_morghor(); diff --git a/src/server/shared/Logging/Log.cpp b/src/server/shared/Logging/Log.cpp index bca150b7059..08200af3c19 100644 --- a/src/server/shared/Logging/Log.cpp +++ b/src/server/shared/Logging/Log.cpp @@ -267,7 +267,7 @@ void Log::vlog(std::string const& filter, LogLevel level, char const* str, va_li write(new LogMessage(level, filter, text)); } -void Log::write(LogMessage* msg) const +void Log::write(LogMessage* msg) { Logger const* logger = GetLoggerByType(msg->type); msg->text.append("\n"); @@ -376,6 +376,7 @@ void Log::Close() delete worker; worker = NULL; loggers.clear(); + cachedLoggers.clear(); for (AppenderMap::iterator it = appenders.begin(); it != appenders.end(); ++it) { delete it->second; diff --git a/src/server/shared/Logging/Log.h b/src/server/shared/Logging/Log.h index af522a6745f..0eb54546aab 100644 --- a/src/server/shared/Logging/Log.h +++ b/src/server/shared/Logging/Log.h @@ -35,6 +35,7 @@ class Log friend class ACE_Singleton<Log, ACE_Thread_Mutex>; typedef UNORDERED_MAP<std::string, Logger> LoggerMap; + typedef UNORDERED_MAP<std::string, Logger const*> CachedLoggerContainer; private: Log(); @@ -43,7 +44,7 @@ class Log public: void LoadFromConfig(); void Close(); - bool ShouldLog(std::string const& type, LogLevel level) const; + bool ShouldLog(std::string const& type, LogLevel level); bool SetLogLevel(std::string const& name, char const* level, bool isLogger = true); void outMessage(std::string const& f, LogLevel level, char const* str, ...) ATTR_PRINTF(4, 5); @@ -56,9 +57,9 @@ class Log private: static std::string GetTimestampStr(); void vlog(std::string const& f, LogLevel level, char const* str, va_list argptr); - void write(LogMessage* msg) const; + void write(LogMessage* msg); - Logger const* GetLoggerByType(std::string const& type) const; + Logger const* GetLoggerByType(std::string const& type); Appender* GetAppenderByName(std::string const& name); uint8 NextAppenderId(); void CreateAppenderFromConfig(std::string const& name); @@ -68,6 +69,7 @@ class Log AppenderMap appenders; LoggerMap loggers; + CachedLoggerContainer cachedLoggers; uint8 AppenderId; std::string m_logsDir; @@ -76,24 +78,36 @@ class Log LogWorker* worker; }; -inline Logger const* Log::GetLoggerByType(std::string const& type) const +inline Logger const* Log::GetLoggerByType(std::string const& originalType) { - LoggerMap::const_iterator it = loggers.find(type); - if (it != loggers.end()) - return &(it->second); - - if (type == LOGGER_ROOT) - return NULL; - - std::string parentLogger = LOGGER_ROOT; - size_t found = type.find_last_of("."); - if (found != std::string::npos) - parentLogger = type.substr(0,found); - - return GetLoggerByType(parentLogger); + // Check if already cached + CachedLoggerContainer::const_iterator itCached = cachedLoggers.find(originalType); + if (itCached != cachedLoggers.end()) + return itCached->second; + + Logger const* logger = NULL; + std::string type(originalType); + + do + { + // Search for the logger "type.subtype" + LoggerMap::const_iterator it = loggers.find(type); + if (it == loggers.end()) + { + // Search for the logger "type", if our logger contains '.', otherwise search for LOGGER_ROOT + size_t found = type.find_last_of("."); + type = found != std::string::npos ? type.substr(0, found) : LOGGER_ROOT; + } + else + logger = &(it->second); + } + while (!logger); + + cachedLoggers[type] = logger; + return logger; } -inline bool Log::ShouldLog(std::string const& type, LogLevel level) const +inline bool Log::ShouldLog(std::string const& type, LogLevel level) { // TODO: Use cache to store "Type.sub1.sub2": "Type" equivalence, should // Speed up in cases where requesting "Type.sub1.sub2" but only configured @@ -119,7 +133,7 @@ inline void Log::outMessage(std::string const& filter, LogLevel level, const cha #define sLog ACE_Singleton<Log, ACE_Thread_Mutex>::instance() -#if COMPILER != COMPILER_MICROSOFT +#if PLATFORM != PLATFORM_WINDOWS #define TC_LOG_MESSAGE_BODY(filterType__, level__, ...) \ do { \ if (sLog->ShouldLog(filterType__, level__)) \ |