diff options
180 files changed, 8518 insertions, 3166 deletions
diff --git a/cmake/macros/FindMySQL.cmake b/cmake/macros/FindMySQL.cmake index 7650a83c571..2c393463c47 100644 --- a/cmake/macros/FindMySQL.cmake +++ b/cmake/macros/FindMySQL.cmake @@ -77,6 +77,11 @@ find_path(MYSQL_INCLUDE_DIR "C:/Program Files/MySQL/MySQL Server 5.1/include" "C:/Program Files/MySQL/MySQL Server 5.0/include" "C:/Program Files/MySQL/include" + "C:/Program Files (x86)/MySQL/MySQL Server 5.6/include" + "C:/Program Files (x86)/MySQL/MySQL Server 5.5/include" + "C:/Program Files (x86)/MySQL/MySQL Server 5.1/include" + "C:/Program Files (x86)/MySQL/MySQL Server 5.0/include" + "C:/Program Files (x86)/MySQL/include" "C:/MySQL/include" "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 5.6;Location]/include" "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 5.5;Location]/include" @@ -116,11 +121,24 @@ if( WIN32 ) libmysql PATHS ${MYSQL_ADD_LIBRARIES_PATH} + "C:/Program Files/MySQL/MySQL Server 5.6/lib" "C:/Program Files/MySQL/MySQL Server 5.6/lib/opt" + "C:/Program Files/MySQL/MySQL Server 5.5/lib" "C:/Program Files/MySQL/MySQL Server 5.5/lib/opt" + "C:/Program Files/MySQL/MySQL Server 5.1/lib" "C:/Program Files/MySQL/MySQL Server 5.1/lib/opt" + "C:/Program Files/MySQL/MySQL Server 5.0/lib" "C:/Program Files/MySQL/MySQL Server 5.0/lib/opt" "C:/Program Files/MySQL/lib" + "C:/Program Files (x86)/MySQL/MySQL Server 5.6/lib" + "C:/Program Files (x86)/MySQL/MySQL Server 5.6/lib/opt" + "C:/Program Files (x86)/MySQL/MySQL Server 5.5/lib" + "C:/Program Files (x86)/MySQL/MySQL Server 5.5/lib/opt" + "C:/Program Files (x86)/MySQL/MySQL Server 5.1/lib" + "C:/Program Files (x86)/MySQL/MySQL Server 5.1/lib/opt" + "C:/Program Files (x86)/MySQL/MySQL Server 5.0/lib" + "C:/Program Files (x86)/MySQL/MySQL Server 5.0/lib/opt" + "C:/Program Files (x86)/MySQL/lib" "C:/MySQL/lib/debug" "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 5.6;Location]/lib" "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 5.6;Location]/lib/opt" diff --git a/sql/updates/world/2014_08_29_00_world_creature_template.sql b/sql/updates/world/2014_08_29_00_world_creature_template.sql new file mode 100644 index 00000000000..da298a0f6c5 --- /dev/null +++ b/sql/updates/world/2014_08_29_00_world_creature_template.sql @@ -0,0 +1,4 @@ +-- +UPDATE `creature_template` SET `faction`=834 WHERE `entry` IN (40681,40682,40683,40684); +UPDATE `creature_template` SET `faction`=14 WHERE `entry` IN (38285,38788,38789,38790); +UPDATE `creature_template` SET `faction`=21 WHERE `entry` IN (38184,38185); diff --git a/sql/updates/world/2014_08_29_01_world_creature_template.sql b/sql/updates/world/2014_08_29_01_world_creature_template.sql new file mode 100644 index 00000000000..4c4101d0c83 --- /dev/null +++ b/sql/updates/world/2014_08_29_01_world_creature_template.sql @@ -0,0 +1,2 @@ +-- Adds trigger and civilian flags_extra to Halion's Soul Consumption triggers +UPDATE `creature_template` SET `flags_extra` = `flags_extra` |2|128 WHERE `entry` IN (40673, 40674, 40675); diff --git a/sql/updates/world/2014_08_29_02_world_creature_template.sql b/sql/updates/world/2014_08_29_02_world_creature_template.sql new file mode 100644 index 00000000000..2b151714e97 --- /dev/null +++ b/sql/updates/world/2014_08_29_02_world_creature_template.sql @@ -0,0 +1,3 @@ +-- +UPDATE `creature_template` SET `faction`=534 WHERE `entry` IN (37580,37614,37576,37615,37575,37617,37572,37616); +UPDATE `creature_template` SET `faction`=35 WHERE `entry` IN (37813,38402,38582,38583); diff --git a/sql/updates/world/2014_08_29_03_world_creature_template.sql b/sql/updates/world/2014_08_29_03_world_creature_template.sql new file mode 100644 index 00000000000..7c057c8dc85 --- /dev/null +++ b/sql/updates/world/2014_08_29_03_world_creature_template.sql @@ -0,0 +1,5 @@ +-- +UPDATE `creature_template` SET `faction`=1692 WHERE `entry` IN (33139,34111); +UPDATE `creature_template` SET `faction`=16 WHERE `entry` IN(32908,33151,32907,33150,32885,33153,32883,33152,32882,33154); +UPDATE `creature_template` SET `faction`=1814 WHERE `entry` IN (29098,31602,29096,31590,29062,31589); +UPDATE `creature_template` SET `faction`=14 WHERE `entry` IN (29153,31585); diff --git a/sql/updates/world/2014_08_29_04_world_creature_template.sql b/sql/updates/world/2014_08_29_04_world_creature_template.sql new file mode 100644 index 00000000000..d63bf2b77e2 --- /dev/null +++ b/sql/updates/world/2014_08_29_04_world_creature_template.sql @@ -0,0 +1 @@ +UPDATE `creature_template` SET `mechanic_immune_mask`=`mechanic_immune_mask`|0x10000000 WHERE `entry` IN (36619, 38711, 38712); diff --git a/sql/updates/world/2014_08_29_05_world_creature_template.sql b/sql/updates/world/2014_08_29_05_world_creature_template.sql new file mode 100644 index 00000000000..594e32adcbf --- /dev/null +++ b/sql/updates/world/2014_08_29_05_world_creature_template.sql @@ -0,0 +1,3249 @@ +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 29; -- was 35 +UPDATE `creature_template` SET `faction` = 22 WHERE `entry` = 120; -- was 35 +UPDATE `creature_template` SET `faction` = 2375 WHERE `entry` = 206; -- was 24 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 229; -- was 35 +UPDATE `creature_template` SET `faction` = 1732 WHERE `entry` = 262; -- was 35 +UPDATE `creature_template` SET `faction` = 18 WHERE `entry` = 286; -- was 35 +UPDATE `creature_template` SET `faction` = 12 WHERE `entry` = 290; -- was 35 +UPDATE `creature_template` SET `faction` = 91 WHERE `entry` = 329; -- was 7 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 334; -- was 40 +UPDATE `creature_template` SET `faction` = 93 WHERE `entry` = 412; -- was 29 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 416; -- was 14 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 417; -- was 35 +UPDATE `creature_template` SET `faction` = 2200 WHERE `entry` = 428; -- was 14 +UPDATE `creature_template` SET `faction` = 91 WHERE `entry` = 510; -- was 35 +UPDATE `creature_template` SET `faction` = 26 WHERE `entry` = 564; -- was 35 +UPDATE `creature_template` SET `faction` = 91 WHERE `entry` = 575; -- was 67 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 582; -- was 1892 +UPDATE `creature_template` SET `faction` = 40 WHERE `entry` = 584; -- was 32 +UPDATE `creature_template` SET `faction` = 17 WHERE `entry` = 601; -- was 35 +UPDATE `creature_template` SET `faction` = 39 WHERE `entry` = 603; -- was 14 +UPDATE `creature_template` SET `faction` = 17 WHERE `entry` = 638; -- was 35 +UPDATE `creature_template` SET `faction` = 12 WHERE `entry` = 648; -- was 11 +UPDATE `creature_template` SET `faction` = 12 WHERE `entry` = 649; -- was 11 +UPDATE `creature_template` SET `faction` = 12 WHERE `entry` = 650; -- was 11 +UPDATE `creature_template` SET `faction` = 12 WHERE `entry` = 651; -- was 11 +UPDATE `creature_template` SET `faction` = 12 WHERE `entry` = 652; -- was 11 +UPDATE `creature_template` SET `faction` = 12 WHERE `entry` = 653; -- was 11 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 659; -- was 128 +UPDATE `creature_template` SET `faction` = 28 WHERE `entry` = 700; -- was 35 +UPDATE `creature_template` SET `faction` = 190 WHERE `entry` = 706; -- was 7 +UPDATE `creature_template` SET `faction` = 45 WHERE `entry` = 723; -- was 32 +UPDATE `creature_template` SET `faction` = 18 WHERE `entry` = 749; -- was 35 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 775; -- was 39 +UPDATE `creature_template` SET `faction` = 2136 WHERE `entry` = 808; -- was 7 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 832; -- was 14 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 882; -- was 35 +UPDATE `creature_template` SET `faction` = 2375 WHERE `entry` = 920; -- was 24 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 922; -- was 7 +UPDATE `creature_template` SET `faction` = 190 WHERE `entry` = 946; -- was 7 +UPDATE `creature_template` SET `faction` = 39 WHERE `entry` = 947; -- was 32 +UPDATE `creature_template` SET `faction` = 2000 WHERE `entry` = 1000; -- was 56 +UPDATE `creature_template` SET `faction` = 2358 WHERE `entry` = 1016; -- was 48 +UPDATE `creature_template` SET `faction` = 2358 WHERE `entry` = 1019; -- was 48 +UPDATE `creature_template` SET `faction` = 2273 WHERE `entry` = 1034; -- was 62 +UPDATE `creature_template` SET `faction` = 2273 WHERE `entry` = 1035; -- was 62 +UPDATE `creature_template` SET `faction` = 2273 WHERE `entry` = 1036; -- was 62 +UPDATE `creature_template` SET `faction` = 2273 WHERE `entry` = 1038; -- was 62 +UPDATE `creature_template` SET `faction` = 50 WHERE `entry` = 1055; -- was 35 +UPDATE `creature_template` SET `faction` = 50 WHERE `entry` = 1056; -- was 35 +UPDATE `creature_template` SET `faction` = 2273 WHERE `entry` = 1057; -- was 62 +UPDATE `creature_template` SET `faction` = 50 WHERE `entry` = 1063; -- was 32 +UPDATE `creature_template` SET `faction` = 48 WHERE `entry` = 1066; -- was 35 +UPDATE `creature_template` SET `faction` = 20 WHERE `entry` = 1067; -- was 35 +UPDATE `creature_template` SET `faction` = 371 WHERE `entry` = 1156; -- was 84 +UPDATE `creature_template` SET `faction` = 54 WHERE `entry` = 1171; -- was 35 +UPDATE `creature_template` SET `faction` = 189 WHERE `entry` = 1192; -- was 1094 +UPDATE `creature_template` SET `faction` = 45 WHERE `entry` = 1210; -- was 14 +UPDATE `creature_template` SET `faction` = 80 WHERE `entry` = 1233; -- was 31 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 1262; -- was 32 +UPDATE `creature_template` SET `faction` = 54 WHERE `entry` = 1380; -- was 55 +UPDATE `creature_template` SET `faction` = 55 WHERE `entry` = 1476; -- was 57 +UPDATE `creature_template` SET `faction` = 778 WHERE `entry` = 1494; -- was 14 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 1506; -- was 67 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 1507; -- was 67 +UPDATE `creature_template` SET `faction` = 18 WHERE `entry` = 1541; -- was 35 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 1574; -- was 55 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 1575; -- was 55 +UPDATE `creature_template` SET `faction` = 875 WHERE `entry` = 1649; -- was 35 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 1667; -- was 67 +UPDATE `creature_template` SET `faction` = 17 WHERE `entry` = 1706; -- was 290 +UPDATE `creature_template` SET `faction` = 12 WHERE `entry` = 1723; -- was 73 +UPDATE `creature_template` SET `faction` = 12 WHERE `entry` = 1724; -- was 73 +UPDATE `creature_template` SET `faction` = 17 WHERE `entry` = 1730; -- was 35 +UPDATE `creature_template` SET `faction` = 68 WHERE `entry` = 1740; -- was 83 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 1798; -- was 35 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 1801; -- was 67 +UPDATE `creature_template` SET `faction` = 73 WHERE `entry` = 1810; -- was 35 +UPDATE `creature_template` SET `faction` = 73 WHERE `entry` = 1811; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 1819; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 1820; -- was 35 +UPDATE `creature_template` SET `faction` = 67 WHERE `entry` = 1835; -- was 89 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 1837; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 1838; -- was 32 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 1839; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 1841; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 1843; -- was 32 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 1844; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 1847; -- was 21 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 1848; -- was 21 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 1849; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 1850; -- was 14 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 1860; -- was 14 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 1861; -- was 35 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 1863; -- was 14 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 1871; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 1885; -- was 14 +UPDATE `creature_template` SET `faction` = 168 WHERE `entry` = 1921; -- was 1703 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 1964; -- was 4 +UPDATE `creature_template` SET `faction` = 22 WHERE `entry` = 1986; -- was 7 +UPDATE `creature_template` SET `faction` = 22 WHERE `entry` = 1994; -- was 7 +UPDATE `creature_template` SET `faction` = 78 WHERE `entry` = 2045; -- was 14 +UPDATE `creature_template` SET `faction` = 2153 WHERE `entry` = 2070; -- was 14 +UPDATE `creature_template` SET `faction` = 2153 WHERE `entry` = 2071; -- was 14 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 2084; -- was 80 +UPDATE `creature_template` SET `faction` = 2136 WHERE `entry` = 2098; -- was 190 +UPDATE `creature_template` SET `faction` = 59 WHERE `entry` = 2159; -- was 22 +UPDATE `creature_template` SET `faction` = 59 WHERE `entry` = 2160; -- was 22 +UPDATE `creature_template` SET `faction` = 2154 WHERE `entry` = 2165; -- was 44 +UPDATE `creature_template` SET `faction` = 15 WHERE `entry` = 2188; -- was 14 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 2213; -- was 35 +UPDATE `creature_template` SET `faction` = 2153 WHERE `entry` = 2237; -- was 14 +UPDATE `creature_template` SET `faction` = 12 WHERE `entry` = 2269; -- was 123 +UPDATE `creature_template` SET `faction` = 12 WHERE `entry` = 2270; -- was 123 +UPDATE `creature_template` SET `faction` = 123 WHERE `entry` = 2275; -- was 32 +UPDATE `creature_template` SET `faction` = 70 WHERE `entry` = 2288; -- was 35 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 2303; -- was 80 +UPDATE `creature_template` SET `faction` = 2213 WHERE `entry` = 2349; -- was 22 +UPDATE `creature_template` SET `faction` = 2030 WHERE `entry` = 2356; -- was 44 +UPDATE `creature_template` SET `faction` = 2030 WHERE `entry` = 2385; -- was 14 +UPDATE `creature_template` SET `faction` = 1216 WHERE `entry` = 2386; -- was 11 +UPDATE `creature_template` SET `faction` = 108 WHERE `entry` = 2434; -- was 97 +UPDATE `creature_template` SET `faction` = 45 WHERE `entry` = 2453; -- was 32 +UPDATE `creature_template` SET `faction` = 60 WHERE `entry` = 2472; -- was 35 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 2475; -- was 14 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 2479; -- was 14 +UPDATE `creature_template` SET `faction` = 390 WHERE `entry` = 2487; -- was 120 +UPDATE `creature_template` SET `faction` = 12 WHERE `entry` = 2503; -- was 123 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 2520; -- was 17 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 2523; -- was 35 +UPDATE `creature_template` SET `faction` = 39 WHERE `entry` = 2531; -- was 68 +UPDATE `creature_template` SET `faction` = 84 WHERE `entry` = 2540; -- was 76 +UPDATE `creature_template` SET `faction` = 38 WHERE `entry` = 2560; -- was 48 +UPDATE `creature_template` SET `faction` = 38 WHERE `entry` = 2561; -- was 48 +UPDATE `creature_template` SET `faction` = 45 WHERE `entry` = 2601; -- was 32 +UPDATE `creature_template` SET `faction` = 45 WHERE `entry` = 2604; -- was 32 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 2630; -- was 1770 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 2667; -- was 45 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 2671; -- was 4 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 2673; -- was 5 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 2674; -- was 3 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 2676; -- was 47 +UPDATE `creature_template` SET `faction` = 778 WHERE `entry` = 2689; -- was 35 +UPDATE `creature_template` SET `faction` = 778 WHERE `entry` = 2690; -- was 35 +UPDATE `creature_template` SET `faction` = 1732 WHERE `entry` = 2694; -- was 1576 +UPDATE `creature_template` SET `faction` = 312 WHERE `entry` = 2707; -- was 32 +UPDATE `creature_template` SET `faction` = 54 WHERE `entry` = 2741; -- was 35 +UPDATE `creature_template` SET `faction` = 54 WHERE `entry` = 2744; -- was 14 +UPDATE `creature_template` SET `faction` = 415 WHERE `entry` = 2746; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 2748; -- was 415 +UPDATE `creature_template` SET `faction` = 189 WHERE `entry` = 2749; -- was 91 +UPDATE `creature_template` SET `faction` = 54 WHERE `entry` = 2751; -- was 91 +UPDATE `creature_template` SET `faction` = 778 WHERE `entry` = 2763; -- was 14 +UPDATE `creature_template` SET `faction` = 120 WHERE `entry` = 2768; -- was 35 +UPDATE `creature_template` SET `faction` = 41 WHERE `entry` = 2776; -- was 91 +UPDATE `creature_template` SET `faction` = 12 WHERE `entry` = 2801; -- was 55 +UPDATE `creature_template` SET `faction` = 74 WHERE `entry` = 2807; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 2850; -- was 66 +UPDATE `creature_template` SET `faction` = 55 WHERE `entry` = 2870; -- was 84 +UPDATE `creature_template` SET `faction` = 122 WHERE `entry` = 2876; -- was 84 +UPDATE `creature_template` SET `faction` = 55 WHERE `entry` = 2880; -- was 84 +UPDATE `creature_template` SET `faction` = 59 WHERE `entry` = 2889; -- was 35 +UPDATE `creature_template` SET `faction` = 59 WHERE `entry` = 2890; -- was 35 +UPDATE `creature_template` SET `faction` = 59 WHERE `entry` = 2891; -- was 35 +UPDATE `creature_template` SET `faction` = 122 WHERE `entry` = 2915; -- was 35 +UPDATE `creature_template` SET `faction` = 41 WHERE `entry` = 2919; -- was 91 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 2931; -- was 14 +UPDATE `creature_template` SET `faction` = 12 WHERE `entry` = 2942; -- was 1080 +UPDATE `creature_template` SET `faction` = 189 WHERE `entry` = 2952; -- was 7 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 2954; -- was 111 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 2991; -- was 104 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 2992; -- was 152 +UPDATE `creature_template` SET `faction` = 2263 WHERE `entry` = 3000; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 3122; -- was 48 +UPDATE `creature_template` SET `faction` = 2663 WHERE `entry` = 3188; -- was 126 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 3203; -- was 554 +UPDATE `creature_template` SET `faction` = 1999 WHERE `entry` = 3245; -- was 14 +UPDATE `creature_template` SET `faction` = 310 WHERE `entry` = 3251; -- was 413 +UPDATE `creature_template` SET `faction` = 310 WHERE `entry` = 3252; -- was 413 +UPDATE `creature_template` SET `faction` = 111 WHERE `entry` = 3259; -- was 35 +UPDATE `creature_template` SET `faction` = 111 WHERE `entry` = 3262; -- was 35 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 3281; -- was 14 +UPDATE `creature_template` SET `faction` = 123 WHERE `entry` = 3301; -- was 72 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 3395; -- was 90 +UPDATE `creature_template` SET `faction` = 104 WHERE `entry` = 3427; -- was 35 +UPDATE `creature_template` SET `faction` = 2160 WHERE `entry` = 3442; -- was 69 +UPDATE `creature_template` SET `faction` = 189 WHERE `entry` = 3462; -- was 35 +UPDATE `creature_template` SET `faction` = 2028 WHERE `entry` = 3464; -- was 29 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 3475; -- was 66 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 3503; -- was 16 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 3527; -- was 35 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 3560; -- was 59 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 3569; -- was 91 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 3570; -- was 4 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 3573; -- was 35 +UPDATE `creature_template` SET `faction` = 29 WHERE `entry` = 3575; -- was 35 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 3579; -- was 35 +UPDATE `creature_template` SET `faction` = 17 WHERE `entry` = 3586; -- was 14 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 3617; -- was 32 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 3619; -- was 66 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 3640; -- was 450 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 3642; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 3652; -- was 32 +UPDATE `creature_template` SET `faction` = 80 WHERE `entry` = 3694; -- was 84 +UPDATE `creature_template` SET `faction` = 83 WHERE `entry` = 3733; -- was 118 +UPDATE `creature_template` SET `faction` = 83 WHERE `entry` = 3734; -- was 118 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 3779; -- was 80 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 3792; -- was 14 +UPDATE `creature_template` SET `faction` = 2136 WHERE `entry` = 3815; -- was 7 +UPDATE `creature_template` SET `faction` = 31 WHERE `entry` = 3816; -- was 189 +UPDATE `creature_template` SET `faction` = 80 WHERE `entry` = 3843; -- was 84 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 3844; -- was 109 +UPDATE `creature_template` SET `faction` = 1076 WHERE `entry` = 3845; -- was 80 +UPDATE `creature_template` SET `faction` = 1076 WHERE `entry` = 3846; -- was 80 +UPDATE `creature_template` SET `faction` = 1076 WHERE `entry` = 3847; -- was 80 +UPDATE `creature_template` SET `faction` = 24 WHERE `entry` = 3852; -- was 14 +UPDATE `creature_template` SET `faction` = 24 WHERE `entry` = 3860; -- was 35 +UPDATE `creature_template` SET `faction` = 15 WHERE `entry` = 3865; -- was 32 +UPDATE `creature_template` SET `faction` = 188 WHERE `entry` = 3868; -- was 24 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 3869; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 3870; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 3872; -- was 24 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 3873; -- was 24 +UPDATE `creature_template` SET `faction` = 24 WHERE `entry` = 3876; -- was 35 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 3878; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 3879; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 3887; -- was 24 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 3893; -- was 68 +UPDATE `creature_template` SET `faction` = 12 WHERE `entry` = 3896; -- was 57 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 3898; -- was 22 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 3899; -- was 22 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 3900; -- was 22 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 3902; -- was 35 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 3903; -- was 1629 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 3904; -- was 35 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 3906; -- was 35 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 3907; -- was 35 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 3908; -- was 35 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 3909; -- was 2 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 3911; -- was 35 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 3912; -- was 35 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 3913; -- was 35 +UPDATE `creature_template` SET `faction` = 124 WHERE `entry` = 3936; -- was 80 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 3940; -- was 15 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 3941; -- was 15 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 3942; -- was 15 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 3946; -- was 84 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 3950; -- was 91 +UPDATE `creature_template` SET `faction` = 47 WHERE `entry` = 3997; -- was 35 +UPDATE `creature_template` SET `faction` = 26 WHERE `entry` = 3998; -- was 22 +UPDATE `creature_template` SET `faction` = 26 WHERE `entry` = 4001; -- was 22 +UPDATE `creature_template` SET `faction` = 26 WHERE `entry` = 4002; -- was 22 +UPDATE `creature_template` SET `faction` = 124 WHERE `entry` = 4016; -- was 93 +UPDATE `creature_template` SET `faction` = 1999 WHERE `entry` = 4018; -- was 189 +UPDATE `creature_template` SET `faction` = 1999 WHERE `entry` = 4019; -- was 189 +UPDATE `creature_template` SET `faction` = 91 WHERE `entry` = 4033; -- was 92 +UPDATE `creature_template` SET `faction` = 124 WHERE `entry` = 4054; -- was 79 +UPDATE `creature_template` SET `faction` = 189 WHERE `entry` = 4066; -- was 79 +UPDATE `creature_template` SET `faction` = 1999 WHERE `entry` = 4067; -- was 16 +UPDATE `creature_template` SET `faction` = 47 WHERE `entry` = 4069; -- was 35 +UPDATE `creature_template` SET `faction` = 91 WHERE `entry` = 4121; -- was 35 +UPDATE `creature_template` SET `faction` = 1999 WHERE `entry` = 4263; -- was 22 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 4277; -- was 1 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 4278; -- was 24 +UPDATE `creature_template` SET `faction` = 103 WHERE `entry` = 4333; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 4425; -- was 411 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 4445; -- was 1080 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 4446; -- was 1080 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 4449; -- was 1080 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 4476; -- was 67 +UPDATE `creature_template` SET `faction` = 38 WHERE `entry` = 4482; -- was 35 +UPDATE `creature_template` SET `faction` = 514 WHERE `entry` = 4490; -- was 80 +UPDATE `creature_template` SET `faction` = 12 WHERE `entry` = 4497; -- was 47 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 4504; -- was 14 +UPDATE `creature_template` SET `faction` = 80 WHERE `entry` = 4509; -- was 84 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 4526; -- was 152 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 4528; -- was 152 +UPDATE `creature_template` SET `faction` = 38 WHERE `entry` = 4534; -- was 152 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 4535; -- was 152 +UPDATE `creature_template` SET `faction` = 2184 WHERE `entry` = 4638; -- was 133 +UPDATE `creature_template` SET `faction` = 2184 WHERE `entry` = 4639; -- was 133 +UPDATE `creature_template` SET `faction` = 2184 WHERE `entry` = 4640; -- was 133 +UPDATE `creature_template` SET `faction` = 2184 WHERE `entry` = 4641; -- was 133 +UPDATE `creature_template` SET `faction` = 2184 WHERE `entry` = 4642; -- was 133 +UPDATE `creature_template` SET `faction` = 2184 WHERE `entry` = 4643; -- was 133 +UPDATE `creature_template` SET `faction` = 2184 WHERE `entry` = 4644; -- was 133 +UPDATE `creature_template` SET `faction` = 2184 WHERE `entry` = 4645; -- was 133 +UPDATE `creature_template` SET `faction` = 2183 WHERE `entry` = 4646; -- was 132 +UPDATE `creature_template` SET `faction` = 2183 WHERE `entry` = 4647; -- was 132 +UPDATE `creature_template` SET `faction` = 2183 WHERE `entry` = 4648; -- was 132 +UPDATE `creature_template` SET `faction` = 2183 WHERE `entry` = 4649; -- was 132 +UPDATE `creature_template` SET `faction` = 2183 WHERE `entry` = 4651; -- was 132 +UPDATE `creature_template` SET `faction` = 2183 WHERE `entry` = 4652; -- was 132 +UPDATE `creature_template` SET `faction` = 2183 WHERE `entry` = 4653; -- was 132 +UPDATE `creature_template` SET `faction` = 2183 WHERE `entry` = 4661; -- was 132 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 4669; -- was 35 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 4683; -- was 35 +UPDATE `creature_template` SET `faction` = 38 WHERE `entry` = 4691; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 4703; -- was 35 +UPDATE `creature_template` SET `faction` = 134 WHERE `entry` = 4704; -- was 35 +UPDATE `creature_template` SET `faction` = 74 WHERE `entry` = 4717; -- was 35 +UPDATE `creature_template` SET `faction` = 189 WHERE `entry` = 4724; -- was 32 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 4725; -- was 35 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 4781; -- was 32 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 4785; -- was 32 +UPDATE `creature_template` SET `faction` = 80 WHERE `entry` = 4787; -- was 794 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 4795; -- was 84 +UPDATE `creature_template` SET `faction` = 129 WHERE `entry` = 4816; -- was 35 +UPDATE `creature_template` SET `faction` = 1077 WHERE `entry` = 4834; -- was 149 +UPDATE `creature_template` SET `faction` = 152 WHERE `entry` = 4842; -- was 32 +UPDATE `creature_template` SET `faction` = 411 WHERE `entry` = 4862; -- was 35 +UPDATE `creature_template` SET `faction` = 151 WHERE `entry` = 4923; -- was 1622 +UPDATE `creature_template` SET `faction` = 150 WHERE `entry` = 4947; -- was 11 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 4958; -- was 92 +UPDATE `creature_template` SET `faction` = 122 WHERE `entry` = 4961; -- was 84 +UPDATE `creature_template` SET `faction` = 17 WHERE `entry` = 4970; -- was 35 +UPDATE `creature_template` SET `faction` = 17 WHERE `entry` = 4971; -- was 34 +UPDATE `creature_template` SET `faction` = 83 WHERE `entry` = 4972; -- was 85 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 5027; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 5089; -- was 14 +UPDATE `creature_template` SET `faction` = 24 WHERE `entry` = 5097; -- was 14 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 5194; -- was 1074 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 5196; -- was 1074 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 5197; -- was 1074 +UPDATE `creature_template` SET `faction` = 45 WHERE `entry` = 5231; -- was 35 +UPDATE `creature_template` SET `faction` = 72 WHERE `entry` = 5264; -- was 35 +UPDATE `creature_template` SET `faction` = 84 WHERE `entry` = 5300; -- was 16 +UPDATE `creature_template` SET `faction` = 84 WHERE `entry` = 5304; -- was 16 +UPDATE `creature_template` SET `faction` = 50 WHERE `entry` = 5315; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 5326; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 5347; -- was 14 +UPDATE `creature_template` SET `faction` = 50 WHERE `entry` = 5348; -- was 35 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 5354; -- was 91 +UPDATE `creature_template` SET `faction` = 514 WHERE `entry` = 5367; -- was 35 +UPDATE `creature_template` SET `faction` = 37 WHERE `entry` = 5399; -- was 32 +UPDATE `creature_template` SET `faction` = 37 WHERE `entry` = 5400; -- was 32 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 5409; -- was 14 +UPDATE `creature_template` SET `faction` = 15 WHERE `entry` = 5431; -- was 14 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 5433; -- was 37 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 5444; -- was 42 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 5446; -- was 22 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 5448; -- was 14 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 5449; -- was 29 +UPDATE `creature_template` SET `faction` = 12 WHERE `entry` = 5522; -- was 35 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 5676; -- was 90 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 5677; -- was 14 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 5689; -- was 7 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 5691; -- was 72 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 5692; -- was 72 +UPDATE `creature_template` SET `faction` = 132 WHERE `entry` = 5723; -- was 914 +UPDATE `creature_template` SET `faction` = 68 WHERE `entry` = 5724; -- was 83 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 5764; -- was 44 +UPDATE `creature_template` SET `faction` = 123 WHERE `entry` = 5809; -- was 84 +UPDATE `creature_template` SET `faction` = 190 WHERE `entry` = 5843; -- was 674 +UPDATE `creature_template` SET `faction` = 2111 WHERE `entry` = 5856; -- was 575 +UPDATE `creature_template` SET `faction` = 111 WHERE `entry` = 5864; -- was 14 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 5873; -- was 35 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 5874; -- was 35 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 5879; -- was 35 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 5889; -- was 92 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 5893; -- was 91 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 5898; -- was 92 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 5902; -- was 91 +UPDATE `creature_template` SET `faction` = 270 WHERE `entry` = 5912; -- was 32 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 5913; -- was 1629 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 5915; -- was 124 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 5919; -- was 35 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 5920; -- was 35 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 5921; -- was 35 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 5922; -- was 35 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 5923; -- was 35 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 5924; -- was 1629 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 5925; -- was 1663 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 5926; -- was 35 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 5927; -- was 35 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 5929; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 5934; -- was 14 +UPDATE `creature_template` SET `faction` = 49 WHERE `entry` = 5935; -- was 14 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 5950; -- was 35 +UPDATE `creature_template` SET `faction` = 51 WHERE `entry` = 5980; -- was 35 +UPDATE `creature_template` SET `faction` = 38 WHERE `entry` = 5986; -- was 35 +UPDATE `creature_template` SET `faction` = 413 WHERE `entry` = 5987; -- was 35 +UPDATE `creature_template` SET `faction` = 413 WHERE `entry` = 5989; -- was 35 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 6012; -- was 35 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 6013; -- was 73 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 6016; -- was 74 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 6017; -- was 59 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 6021; -- was 92 +UPDATE `creature_template` SET `faction` = 91 WHERE `entry` = 6047; -- was 128 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 6066; -- was 16 +UPDATE `creature_template` SET `faction` = 133 WHERE `entry` = 6068; -- was 35 +UPDATE `creature_template` SET `faction` = 12 WHERE `entry` = 6090; -- was 84 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 6092; -- was 35 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 6106; -- was 35 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 6110; -- was 35 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 6111; -- was 35 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 6112; -- was 2 +UPDATE `creature_template` SET `faction` = 54 WHERE `entry` = 6123; -- was 14 +UPDATE `creature_template` SET `faction` = 122 WHERE `entry` = 6177; -- was 35 +UPDATE `creature_template` SET `faction` = 2205 WHERE `entry` = 6190; -- was 74 +UPDATE `creature_template` SET `faction` = 2205 WHERE `entry` = 6195; -- was 74 +UPDATE `creature_template` SET `faction` = 74 WHERE `entry` = 6197; -- was 35 +UPDATE `creature_template` SET `faction` = 59 WHERE `entry` = 6214; -- was 35 +UPDATE `creature_template` SET `faction` = 59 WHERE `entry` = 6215; -- was 14 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 6238; -- was 32 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 6240; -- was 14 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 6245; -- was 79 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 6246; -- was 79 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 6250; -- was 18 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 6268; -- was 90 +UPDATE `creature_template` SET `faction` = 40 WHERE `entry` = 6296; -- was 35 +UPDATE `creature_template` SET `faction` = 46 WHERE `entry` = 6366; -- was 30 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 6489; -- was 32 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 6490; -- was 32 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 6492; -- was 91 +UPDATE `creature_template` SET `faction` = 634 WHERE `entry` = 6501; -- was 14 +UPDATE `creature_template` SET `faction` = 634 WHERE `entry` = 6502; -- was 14 +UPDATE `creature_template` SET `faction` = 634 WHERE `entry` = 6503; -- was 14 +UPDATE `creature_template` SET `faction` = 634 WHERE `entry` = 6504; -- was 14 +UPDATE `creature_template` SET `faction` = 2358 WHERE `entry` = 6505; -- was 48 +UPDATE `creature_template` SET `faction` = 2358 WHERE `entry` = 6506; -- was 48 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 6549; -- was 90 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 6550; -- was 91 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 6561; -- was 35 +UPDATE `creature_template` SET `faction` = 634 WHERE `entry` = 6583; -- was 14 +UPDATE `creature_template` SET `faction` = 778 WHERE `entry` = 6646; -- was 14 +UPDATE `creature_template` SET `faction` = 74 WHERE `entry` = 6647; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 6648; -- was 32 +UPDATE `creature_template` SET `faction` = 74 WHERE `entry` = 6649; -- was 14 +UPDATE `creature_template` SET `faction` = 74 WHERE `entry` = 6650; -- was 14 +UPDATE `creature_template` SET `faction` = 82 WHERE `entry` = 6651; -- was 414 +UPDATE `creature_template` SET `faction` = 104 WHERE `entry` = 6747; -- was 29 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 6748; -- was 91 +UPDATE `creature_template` SET `faction` = 471 WHERE `entry` = 6773; -- was 35 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 6867; -- was 2 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 6932; -- was 92 +UPDATE `creature_template` SET `faction` = 2313 WHERE `entry` = 7013; -- was 35 +UPDATE `creature_template` SET `faction` = 40 WHERE `entry` = 7034; -- was 45 +UPDATE `creature_template` SET `faction` = 40 WHERE `entry` = 7035; -- was 45 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 7073; -- was 14 +UPDATE `creature_template` SET `faction` = 123 WHERE `entry` = 7074; -- was 68 +UPDATE `creature_template` SET `faction` = 2156 WHERE `entry` = 7093; -- was 14 +UPDATE `creature_template` SET `faction` = 954 WHERE `entry` = 7106; -- was 90 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 7107; -- was 1434 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 7144; -- was 35 +UPDATE `creature_template` SET `faction` = 124 WHERE `entry` = 7146; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 7168; -- was 32 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 7226; -- was 415 +UPDATE `creature_template` SET `faction` = 60 WHERE `entry` = 7227; -- was 35 +UPDATE `creature_template` SET `faction` = 416 WHERE `entry` = 7228; -- was 415 +UPDATE `creature_template` SET `faction` = 17 WHERE `entry` = 7266; -- was 11 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 7270; -- was 35 +UPDATE `creature_template` SET `faction` = 37 WHERE `entry` = 7271; -- was 35 +UPDATE `creature_template` SET `faction` = 312 WHERE `entry` = 7319; -- was 22 +UPDATE `creature_template` SET `faction` = 152 WHERE `entry` = 7354; -- was 14 +UPDATE `creature_template` SET `faction` = 152 WHERE `entry` = 7356; -- was 14 +UPDATE `creature_template` SET `faction` = 88 WHERE `entry` = 7360; -- was 55 +UPDATE `creature_template` SET `faction` = 59 WHERE `entry` = 7361; -- was 63 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 7364; -- was 91 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 7365; -- was 91 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 7366; -- was 1629 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 7367; -- was 35 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 7368; -- was 2 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 7377; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 7378; -- was 35 +UPDATE `creature_template` SET `faction` = 188 WHERE `entry` = 7380; -- was 1 +UPDATE `creature_template` SET `faction` = 188 WHERE `entry` = 7383; -- was 116 +UPDATE `creature_template` SET `faction` = 188 WHERE `entry` = 7384; -- was 1 +UPDATE `creature_template` SET `faction` = 188 WHERE `entry` = 7386; -- was 1 +UPDATE `creature_template` SET `faction` = 188 WHERE `entry` = 7387; -- was 115 +UPDATE `creature_template` SET `faction` = 188 WHERE `entry` = 7391; -- was 1 +UPDATE `creature_template` SET `faction` = 188 WHERE `entry` = 7392; -- was 4 +UPDATE `creature_template` SET `faction` = 188 WHERE `entry` = 7394; -- was 7 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 7398; -- was 35 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 7399; -- was 35 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 7400; -- was 35 +UPDATE `creature_template` SET `faction` = 120 WHERE `entry` = 7401; -- was 14 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 7402; -- was 2 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 7403; -- was 35 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 7407; -- was 475 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 7409; -- was 91 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 7412; -- was 35 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 7413; -- was 35 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 7414; -- was 1629 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 7415; -- was 35 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 7416; -- was 1629 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 7423; -- was 35 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 7424; -- was 35 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 7425; -- was 35 +UPDATE `creature_template` SET `faction` = 2358 WHERE `entry` = 7431; -- was 16 +UPDATE `creature_template` SET `faction` = 2358 WHERE `entry` = 7432; -- was 16 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 7464; -- was 35 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 7465; -- was 35 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 7466; -- was 1629 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 7467; -- was 35 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 7468; -- was 35 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 7469; -- was 35 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 7483; -- was 116 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 7484; -- was 16 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 7486; -- was 2 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 7487; -- was 6 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 7527; -- was 495 +UPDATE `creature_template` SET `faction` = 188 WHERE `entry` = 7543; -- was 1 +UPDATE `creature_template` SET `faction` = 188 WHERE `entry` = 7544; -- was 5 +UPDATE `creature_template` SET `faction` = 188 WHERE `entry` = 7545; -- was 1 +UPDATE `creature_template` SET `faction` = 188 WHERE `entry` = 7549; -- was 1 +UPDATE `creature_template` SET `faction` = 188 WHERE `entry` = 7550; -- was 4 +UPDATE `creature_template` SET `faction` = 188 WHERE `entry` = 7560; -- was 1 +UPDATE `creature_template` SET `faction` = 188 WHERE `entry` = 7566; -- was 67 +UPDATE `creature_template` SET `faction` = 188 WHERE `entry` = 7568; -- was 14 +UPDATE `creature_template` SET `faction` = 188 WHERE `entry` = 7569; -- was 14 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 7664; -- was 22 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 7704; -- was 42 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 7734; -- was 22 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 7735; -- was 14 +UPDATE `creature_template` SET `faction` = 63 WHERE `entry` = 7738; -- was 14 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 7750; -- was 1080 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 7767; -- was 654 +UPDATE `creature_template` SET `faction` = 12 WHERE `entry` = 7779; -- was 84 +UPDATE `creature_template` SET `faction` = 126 WHERE `entry` = 7780; -- was 33 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 7785; -- was 37 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 7786; -- was 37 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 7806; -- was 113 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 7844; -- was 35 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 7845; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 7855; -- was 230 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 7856; -- was 230 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 7863; -- was 14 +UPDATE `creature_template` SET `faction` = 152 WHERE `entry` = 7895; -- was 14 +UPDATE `creature_template` SET `faction` = 230 WHERE `entry` = 7896; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 7899; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 7901; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 7902; -- was 14 +UPDATE `creature_template` SET `faction` = 1951 WHERE `entry` = 7939; -- was 79 +UPDATE `creature_template` SET `faction` = 795 WHERE `entry` = 7995; -- was 37 +UPDATE `creature_template` SET `faction` = 534 WHERE `entry` = 8024; -- was 694 +UPDATE `creature_template` SET `faction` = 534 WHERE `entry` = 8025; -- was 694 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 8035; -- was 63 +UPDATE `creature_template` SET `faction` = 12 WHERE `entry` = 8118; -- was 1080 +UPDATE `creature_template` SET `faction` = 69 WHERE `entry` = 8121; -- was 32 +UPDATE `creature_template` SET `faction` = 29 WHERE `entry` = 8122; -- was 32 +UPDATE `creature_template` SET `faction` = 37 WHERE `entry` = 8127; -- was 107 +UPDATE `creature_template` SET `faction` = 37 WHERE `entry` = 8156; -- was 107 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 8179; -- was 45 +UPDATE `creature_template` SET `faction` = 1779 WHERE `entry` = 8197; -- was 1605 +UPDATE `creature_template` SET `faction` = 1779 WHERE `entry` = 8198; -- was 1605 +UPDATE `creature_template` SET `faction` = 45 WHERE `entry` = 8202; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 8203; -- was 14 +UPDATE `creature_template` SET `faction` = 91 WHERE `entry` = 8206; -- was 35 +UPDATE `creature_template` SET `faction` = 38 WHERE `entry` = 8208; -- was 14 +UPDATE `creature_template` SET `faction` = 189 WHERE `entry` = 8211; -- was 38 +UPDATE `creature_template` SET `faction` = 189 WHERE `entry` = 8213; -- was 32 +UPDATE `creature_template` SET `faction` = 778 WHERE `entry` = 8215; -- was 14 +UPDATE `creature_template` SET `faction` = 795 WHERE `entry` = 8217; -- was 14 +UPDATE `creature_template` SET `faction` = 795 WHERE `entry` = 8218; -- was 14 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 8280; -- was 90 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 8282; -- was 128 +UPDATE `creature_template` SET `faction` = 45 WHERE `entry` = 8297; -- was 14 +UPDATE `creature_template` SET `faction` = 38 WHERE `entry` = 8300; -- was 22 +UPDATE `creature_template` SET `faction` = 120 WHERE `entry` = 8320; -- was 21 +UPDATE `creature_template` SET `faction` = 188 WHERE `entry` = 8376; -- was 1 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 8387; -- was 32 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 8388; -- was 32 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 8389; -- was 32 +UPDATE `creature_template` SET `faction` = 120 WHERE `entry` = 8391; -- was 14 +UPDATE `creature_template` SET `faction` = 55 WHERE `entry` = 8392; -- was 35 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 8394; -- was 32 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 8407; -- was 35 +UPDATE `creature_template` SET `faction` = 120 WHERE `entry` = 8421; -- was 72 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 8436; -- was 534 +UPDATE `creature_template` SET `faction` = 152 WHERE `entry` = 8477; -- was 21 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 8478; -- was 32 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 8510; -- was 35 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 8554; -- was 14 +UPDATE `creature_template` SET `faction` = 1924 WHERE `entry` = 8563; -- was 1576 +UPDATE `creature_template` SET `faction` = 1924 WHERE `entry` = 8564; -- was 1576 +UPDATE `creature_template` SET `faction` = 1924 WHERE `entry` = 8565; -- was 1576 +UPDATE `creature_template` SET `faction` = 74 WHERE `entry` = 8578; -- was 14 +UPDATE `creature_template` SET `faction` = 1515 WHERE `entry` = 8582; -- was 125 +UPDATE `creature_template` SET `faction` = 38 WHERE `entry` = 8596; -- was 14 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 8599; -- was 35 +UPDATE `creature_template` SET `faction` = 2030 WHERE `entry` = 8600; -- was 14 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 8615; -- was 1 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 8656; -- was 37 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 8657; -- was 37 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 8658; -- was 37 +UPDATE `creature_template` SET `faction` = 152 WHERE `entry` = 8663; -- was 35 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 8668; -- was 90 +UPDATE `creature_template` SET `faction` = 17 WHERE `entry` = 8680; -- was 90 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 8765; -- was 35 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 8776; -- was 14 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 8836; -- was 4 +UPDATE `creature_template` SET `faction` = 37 WHERE `entry` = 8876; -- was 14 +UPDATE `creature_template` SET `faction` = 54 WHERE `entry` = 8923; -- was 14 +UPDATE `creature_template` SET `faction` = 54 WHERE `entry` = 8924; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 8925; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 8926; -- was 413 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 8927; -- was 411 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 8928; -- was 14 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 8929; -- was 54 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 8932; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 8933; -- was 22 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 8937; -- was 1629 +UPDATE `creature_template` SET `faction` = 45 WHERE `entry` = 8980; -- was 14 +UPDATE `creature_template` SET `faction` = 189 WHERE `entry` = 8981; -- was 91 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 8996; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 9029; -- was 32 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 9030; -- was 32 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 9031; -- was 32 +UPDATE `creature_template` SET `faction` = 54 WHERE `entry` = 9034; -- was 35 +UPDATE `creature_template` SET `faction` = 54 WHERE `entry` = 9035; -- was 35 +UPDATE `creature_template` SET `faction` = 54 WHERE `entry` = 9036; -- was 35 +UPDATE `creature_template` SET `faction` = 54 WHERE `entry` = 9037; -- was 35 +UPDATE `creature_template` SET `faction` = 54 WHERE `entry` = 9038; -- was 35 +UPDATE `creature_template` SET `faction` = 54 WHERE `entry` = 9039; -- was 35 +UPDATE `creature_template` SET `faction` = 54 WHERE `entry` = 9040; -- was 35 +UPDATE `creature_template` SET `faction` = 2263 WHERE `entry` = 9117; -- was 35 +UPDATE `creature_template` SET `faction` = 876 WHERE `entry` = 9136; -- was 85 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 9178; -- was 92 +UPDATE `creature_template` SET `faction` = 40 WHERE `entry` = 9218; -- was 14 +UPDATE `creature_template` SET `faction` = 40 WHERE `entry` = 9219; -- was 14 +UPDATE `creature_template` SET `faction` = 2263 WHERE `entry` = 9270; -- was 35 +UPDATE `creature_template` SET `faction` = 2263 WHERE `entry` = 9271; -- was 35 +UPDATE `creature_template` SET `faction` = 85 WHERE `entry` = 9297; -- was 29 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 9397; -- was 91 +UPDATE `creature_template` SET `faction` = 54 WHERE `entry` = 9398; -- was 14 +UPDATE `creature_template` SET `faction` = 54 WHERE `entry` = 9436; -- was 14 +UPDATE `creature_template` SET `faction` = 54 WHERE `entry` = 9437; -- was 32 +UPDATE `creature_template` SET `faction` = 54 WHERE `entry` = 9438; -- was 32 +UPDATE `creature_template` SET `faction` = 54 WHERE `entry` = 9439; -- was 32 +UPDATE `creature_template` SET `faction` = 54 WHERE `entry` = 9441; -- was 32 +UPDATE `creature_template` SET `faction` = 54 WHERE `entry` = 9442; -- was 32 +UPDATE `creature_template` SET `faction` = 54 WHERE `entry` = 9443; -- was 32 +UPDATE `creature_template` SET `faction` = 54 WHERE `entry` = 9445; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 9456; -- was 655 +UPDATE `creature_template` SET `faction` = 2240 WHERE `entry` = 9460; -- was 475 +UPDATE `creature_template` SET `faction` = 103 WHERE `entry` = 9461; -- was 14 +UPDATE `creature_template` SET `faction` = 54 WHERE `entry` = 9476; -- was 14 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 9502; -- was 122 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 9516; -- was 1434 +UPDATE `creature_template` SET `faction` = 71 WHERE `entry` = 9521; -- was 68 +UPDATE `creature_template` SET `faction` = 40 WHERE `entry` = 9522; -- was 34 +UPDATE `creature_template` SET `faction` = 130 WHERE `entry` = 9523; -- was 655 +UPDATE `creature_template` SET `faction` = 130 WHERE `entry` = 9524; -- was 655 +UPDATE `creature_template` SET `faction` = 11 WHERE `entry` = 9526; -- was 12 +UPDATE `creature_template` SET `faction` = 79 WHERE `entry` = 9527; -- was 14 +UPDATE `creature_template` SET `faction` = 29 WHERE `entry` = 9538; -- was 14 +UPDATE `creature_template` SET `faction` = 83 WHERE `entry` = 9539; -- was 14 +UPDATE `creature_template` SET `faction` = 29 WHERE `entry` = 9580; -- was 85 +UPDATE `creature_template` SET `faction` = 40 WHERE `entry` = 9596; -- was 14 +UPDATE `creature_template` SET `faction` = 124 WHERE `entry` = 9598; -- was 79 +UPDATE `creature_template` SET `faction` = 534 WHERE `entry` = 9601; -- was 92 +UPDATE `creature_template` SET `faction` = 45 WHERE `entry` = 9604; -- was 32 +UPDATE `creature_template` SET `faction` = 40 WHERE `entry` = 9605; -- was 34 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 9621; -- was 168 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 9623; -- was 113 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 9637; -- was 1693 +UPDATE `creature_template` SET `faction` = 188 WHERE `entry` = 9656; -- was 1629 +UPDATE `creature_template` SET `faction` = 188 WHERE `entry` = 9657; -- was 1 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 9659; -- was 35 +UPDATE `creature_template` SET `faction` = 188 WHERE `entry` = 9662; -- was 115 +UPDATE `creature_template` SET `faction` = 534 WHERE `entry` = 9682; -- was 32 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 9687; -- was 2 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 9688; -- was 35 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 9689; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 9707; -- was 40 +UPDATE `creature_template` SET `faction` = 40 WHERE `entry` = 9708; -- was 90 +UPDATE `creature_template` SET `faction` = 40 WHERE `entry` = 9718; -- was 32 +UPDATE `creature_template` SET `faction` = 1768 WHERE `entry` = 9776; -- was 90 +UPDATE `creature_template` SET `faction` = 1768 WHERE `entry` = 9778; -- was 90 +UPDATE `creature_template` SET `faction` = 1768 WHERE `entry` = 9779; -- was 90 +UPDATE `creature_template` SET `faction` = 188 WHERE `entry` = 9937; -- was 32 +UPDATE `creature_template` SET `faction` = 2263 WHERE `entry` = 9997; -- was 35 +UPDATE `creature_template` SET `faction` = 310 WHERE `entry` = 10040; -- was 168 +UPDATE `creature_template` SET `faction` = 310 WHERE `entry` = 10041; -- was 168 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 10042; -- was 32 +UPDATE `creature_template` SET `faction` = 674 WHERE `entry` = 10043; -- was 735 +UPDATE `creature_template` SET `faction` = 104 WHERE `entry` = 10050; -- was 29 +UPDATE `creature_template` SET `faction` = 54 WHERE `entry` = 10076; -- was 32 +UPDATE `creature_template` SET `faction` = 38 WHERE `entry` = 10077; -- was 32 +UPDATE `creature_template` SET `faction` = 37 WHERE `entry` = 10080; -- was 35 +UPDATE `creature_template` SET `faction` = 37 WHERE `entry` = 10081; -- was 35 +UPDATE `creature_template` SET `faction` = 40 WHERE `entry` = 10084; -- was 35 +UPDATE `creature_template` SET `faction` = 54 WHERE `entry` = 10096; -- was 32 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 10183; -- was 82 +UPDATE `creature_template` SET `faction` = 103 WHERE `entry` = 10196; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 10200; -- was 66 +UPDATE `creature_template` SET `faction` = 103 WHERE `entry` = 10202; -- was 14 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 10217; -- was 35 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 10218; -- was 37 +UPDATE `creature_template` SET `faction` = 188 WHERE `entry` = 10259; -- was 4 +UPDATE `creature_template` SET `faction` = 40 WHERE `entry` = 10261; -- was 90 +UPDATE `creature_template` SET `faction` = 40 WHERE `entry` = 10263; -- was 14 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 10290; -- was 168 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 10296; -- was 1080 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 10299; -- was 40 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 10300; -- was 80 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 10301; -- was 55 +UPDATE `creature_template` SET `faction` = 2263 WHERE `entry` = 10302; -- was 474 +UPDATE `creature_template` SET `faction` = 250 WHERE `entry` = 10340; -- was 32 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 10376; -- was 14 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 10393; -- was 14 +UPDATE `creature_template` SET `faction` = 67 WHERE `entry` = 10418; -- was 89 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 10467; -- was 1629 +UPDATE `creature_template` SET `faction` = 233 WHERE `entry` = 10473; -- was 14 +UPDATE `creature_template` SET `faction` = 233 WHERE `entry` = 10479; -- was 14 +UPDATE `creature_template` SET `faction` = 233 WHERE `entry` = 10483; -- was 35 +UPDATE `creature_template` SET `faction` = 233 WHERE `entry` = 10484; -- was 35 +UPDATE `creature_template` SET `faction` = 233 WHERE `entry` = 10492; -- was 35 +UPDATE `creature_template` SET `faction` = 233 WHERE `entry` = 10493; -- was 35 +UPDATE `creature_template` SET `faction` = 233 WHERE `entry` = 10497; -- was 14 +UPDATE `creature_template` SET `faction` = 233 WHERE `entry` = 10506; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 10510; -- was 7 +UPDATE `creature_template` SET `faction` = 250 WHERE `entry` = 10538; -- was 32 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 10557; -- was 1629 +UPDATE `creature_template` SET `faction` = 233 WHERE `entry` = 10579; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 10581; -- was 32 +UPDATE `creature_template` SET `faction` = 2263 WHERE `entry` = 10583; -- was 474 +UPDATE `creature_template` SET `faction` = 40 WHERE `entry` = 10584; -- was 14 +UPDATE `creature_template` SET `faction` = 188 WHERE `entry` = 10598; -- was 4 +UPDATE `creature_template` SET `faction` = 104 WHERE `entry` = 10599; -- was 1607 +UPDATE `creature_template` SET `faction` = 104 WHERE `entry` = 10600; -- was 1606 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 10601; -- was 14 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 10602; -- was 45 +UPDATE `creature_template` SET `faction` = 67 WHERE `entry` = 10605; -- was 89 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 10656; -- was 1 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 10657; -- was 85 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 10718; -- was 32 +UPDATE `creature_template` SET `faction` = 29 WHERE `entry` = 10719; -- was 85 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 10776; -- was 32 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 10800; -- was 14 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 10809; -- was 14 +UPDATE `creature_template` SET `faction` = 67 WHERE `entry` = 10813; -- was 90 +UPDATE `creature_template` SET `faction` = 189 WHERE `entry` = 10817; -- was 1055 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 10819; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 10821; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 10823; -- was 37 +UPDATE `creature_template` SET `faction` = 189 WHERE `entry` = 10824; -- was 1576 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 10825; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 10826; -- was 21 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 10836; -- was 14 +UPDATE `creature_template` SET `faction` = 2071 WHERE `entry` = 10839; -- was 814 +UPDATE `creature_template` SET `faction` = 2071 WHERE `entry` = 10840; -- was 814 +UPDATE `creature_template` SET `faction` = 2071 WHERE `entry` = 10857; -- was 814 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 10882; -- was 32 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 10928; -- was 39 +UPDATE `creature_template` SET `faction` = 250 WHERE `entry` = 10937; -- was 32 +UPDATE `creature_template` SET `faction` = 974 WHERE `entry` = 10938; -- was 32 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 10939; -- was 32 +UPDATE `creature_template` SET `faction` = 250 WHERE `entry` = 10944; -- was 32 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 10945; -- was 32 +UPDATE `creature_template` SET `faction` = 974 WHERE `entry` = 10946; -- was 14 +UPDATE `creature_template` SET `faction` = 974 WHERE `entry` = 10947; -- was 14 +UPDATE `creature_template` SET `faction` = 495 WHERE `entry` = 10948; -- was 1080 +UPDATE `creature_template` SET `faction` = 250 WHERE `entry` = 10949; -- was 1080 +UPDATE `creature_template` SET `faction` = 250 WHERE `entry` = 10950; -- was 1080 +UPDATE `creature_template` SET `faction` = 974 WHERE `entry` = 10951; -- was 14 +UPDATE `creature_template` SET `faction` = 974 WHERE `entry` = 10952; -- was 14 +UPDATE `creature_template` SET `faction` = 974 WHERE `entry` = 10953; -- was 14 +UPDATE `creature_template` SET `faction` = 974 WHERE `entry` = 10954; -- was 68 +UPDATE `creature_template` SET `faction` = 2263 WHERE `entry` = 10977; -- was 35 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 10980; -- was 7 +UPDATE `creature_template` SET `faction` = 37 WHERE `entry` = 10983; -- was 14 +UPDATE `creature_template` SET `faction` = 37 WHERE `entry` = 10984; -- was 14 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 10985; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 10989; -- was 35 +UPDATE `creature_template` SET `faction` = 39 WHERE `entry` = 10991; -- was 14 +UPDATE `creature_template` SET `faction` = 250 WHERE `entry` = 11018; -- was 1080 +UPDATE `creature_template` SET `faction` = 24 WHERE `entry` = 11027; -- was 21 +UPDATE `creature_template` SET `faction` = 2070 WHERE `entry` = 11034; -- was 794 +UPDATE `creature_template` SET `faction` = 2070 WHERE `entry` = 11036; -- was 794 +UPDATE `creature_template` SET `faction` = 2070 WHERE `entry` = 11039; -- was 794 +UPDATE `creature_template` SET `faction` = 67 WHERE `entry` = 11054; -- was 14 +UPDATE `creature_template` SET `faction` = 2070 WHERE `entry` = 11063; -- was 794 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 11079; -- was 80 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 11100; -- was 6 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 11101; -- was 116 +UPDATE `creature_template` SET `faction` = 2072 WHERE `entry` = 11102; -- was 1625 +UPDATE `creature_template` SET `faction` = 67 WHERE `entry` = 11120; -- was 32 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 11121; -- was 14 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 11141; -- was 92 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 11143; -- was 14 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 11153; -- was 1154 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 11154; -- was 1154 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 11155; -- was 1154 +UPDATE `creature_template` SET `faction` = 2363 WHERE `entry` = 11194; -- was 814 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 11195; -- was 14 +UPDATE `creature_template` SET `faction` = 1638 WHERE `entry` = 11198; -- was 15 +UPDATE `creature_template` SET `faction` = 230 WHERE `entry` = 11199; -- was 5 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 11200; -- was 14 +UPDATE `creature_template` SET `faction` = 188 WHERE `entry` = 11236; -- was 7 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 11256; -- was 91 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 11258; -- was 233 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 11277; -- was 574 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 11278; -- was 1080 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 11279; -- was 574 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 11280; -- was 574 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 11281; -- was 574 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 11284; -- was 14 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 11287; -- was 68 +UPDATE `creature_template` SET `faction` = 37 WHERE `entry` = 11292; -- was 35 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 11296; -- was 31 +UPDATE `creature_template` SET `faction` = 188 WHERE `entry` = 11325; -- was 1 +UPDATE `creature_template` SET `faction` = 188 WHERE `entry` = 11326; -- was 3 +UPDATE `creature_template` SET `faction` = 188 WHERE `entry` = 11327; -- was 4 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 11437; -- was 35 +UPDATE `creature_template` SET `faction` = 45 WHERE `entry` = 11441; -- was 14 +UPDATE `creature_template` SET `faction` = 45 WHERE `entry` = 11444; -- was 14 +UPDATE `creature_template` SET `faction` = 45 WHERE `entry` = 11445; -- was 14 +UPDATE `creature_template` SET `faction` = 45 WHERE `entry` = 11446; -- was 92 +UPDATE `creature_template` SET `faction` = 45 WHERE `entry` = 11448; -- was 14 +UPDATE `creature_template` SET `faction` = 45 WHERE `entry` = 11450; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 11458; -- was 91 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 11459; -- was 91 +UPDATE `creature_template` SET `faction` = 2468 WHERE `entry` = 11466; -- was 32 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 11467; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 11469; -- was 79 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 11470; -- was 79 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 11471; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 11472; -- was 92 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 11473; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 11474; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 11475; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 11476; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 11477; -- was 14 +UPDATE `creature_template` SET `faction` = 834 WHERE `entry` = 11480; -- was 91 +UPDATE `creature_template` SET `faction` = 834 WHERE `entry` = 11483; -- was 91 +UPDATE `creature_template` SET `faction` = 834 WHERE `entry` = 11484; -- was 91 +UPDATE `creature_template` SET `faction` = 2468 WHERE `entry` = 11486; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 11487; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 11488; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 11489; -- was 91 +UPDATE `creature_template` SET `faction` = 754 WHERE `entry` = 11496; -- was 90 +UPDATE `creature_template` SET `faction` = 45 WHERE `entry` = 11498; -- was 14 +UPDATE `creature_template` SET `faction` = 45 WHERE `entry` = 11501; -- was 1374 +UPDATE `creature_template` SET `faction` = 1081 WHERE `entry` = 11502; -- was 91 +UPDATE `creature_template` SET `faction` = 2071 WHERE `entry` = 11536; -- was 814 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 11560; -- was 16 +UPDATE `creature_template` SET `faction` = 67 WHERE `entry` = 11581; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 11583; -- was 103 +UPDATE `creature_template` SET `faction` = 26 WHERE `entry` = 11606; -- was 35 +UPDATE `creature_template` SET `faction` = 2070 WHERE `entry` = 11616; -- was 123 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 11627; -- was 35 +UPDATE `creature_template` SET `faction` = 210 WHERE `entry` = 11636; -- was 4 +UPDATE `creature_template` SET `faction` = 106 WHERE `entry` = 11637; -- was 5 +UPDATE `creature_template` SET `faction` = 54 WHERE `entry` = 11663; -- was 14 +UPDATE `creature_template` SET `faction` = 54 WHERE `entry` = 11664; -- was 14 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 11676; -- was 35 +UPDATE `creature_template` SET `faction` = 26 WHERE `entry` = 11677; -- was 14 +UPDATE `creature_template` SET `faction` = 37 WHERE `entry` = 11679; -- was 14 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 11742; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 11743; -- was 35 +UPDATE `creature_template` SET `faction` = 834 WHERE `entry` = 11779; -- was 35 +UPDATE `creature_template` SET `faction` = 834 WHERE `entry` = 11780; -- was 35 +UPDATE `creature_template` SET `faction` = 1076 WHERE `entry` = 11806; -- was 231 +UPDATE `creature_template` SET `faction` = 635 WHERE `entry` = 11832; -- was 1254 +UPDATE `creature_template` SET `faction` = 68 WHERE `entry` = 11835; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 11836; -- was 35 +UPDATE `creature_template` SET `faction` = 2266 WHERE `entry` = 11858; -- was 16 +UPDATE `creature_template` SET `faction` = 1638 WHERE `entry` = 11874; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 11875; -- was 55 +UPDATE `creature_template` SET `faction` = 954 WHERE `entry` = 11876; -- was 92 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 11886; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 11887; -- was 14 +UPDATE `creature_template` SET `faction` = 2266 WHERE `entry` = 11910; -- was 16 +UPDATE `creature_template` SET `faction` = 2266 WHERE `entry` = 11911; -- was 16 +UPDATE `creature_template` SET `faction` = 2266 WHERE `entry` = 11912; -- was 16 +UPDATE `creature_template` SET `faction` = 2266 WHERE `entry` = 11913; -- was 16 +UPDATE `creature_template` SET `faction` = 26 WHERE `entry` = 11920; -- was 22 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 11980; -- was 14 +UPDATE `creature_template` SET `faction` = 62 WHERE `entry` = 11981; -- was 103 +UPDATE `creature_template` SET `faction` = 62 WHERE `entry` = 11983; -- was 103 +UPDATE `creature_template` SET `faction` = 1335 WHERE `entry` = 11998; -- was 1214 +UPDATE `creature_template` SET `faction` = 1216 WHERE `entry` = 12048; -- was 84 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 12120; -- was 7 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 12125; -- was 14 +UPDATE `creature_template` SET `faction` = 290 WHERE `entry` = 12126; -- was 32 +UPDATE `creature_template` SET `faction` = 67 WHERE `entry` = 12128; -- was 32 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 12141; -- was 6 +UPDATE `creature_template` SET `faction` = 54 WHERE `entry` = 12142; -- was 35 +UPDATE `creature_template` SET `faction` = 54 WHERE `entry` = 12143; -- was 91 +UPDATE `creature_template` SET `faction` = 37 WHERE `entry` = 12156; -- was 14 +UPDATE `creature_template` SET `faction` = 37 WHERE `entry` = 12157; -- was 14 +UPDATE `creature_template` SET `faction` = 37 WHERE `entry` = 12158; -- was 14 +UPDATE `creature_template` SET `faction` = 37 WHERE `entry` = 12159; -- was 14 +UPDATE `creature_template` SET `faction` = 91 WHERE `entry` = 12180; -- was 32 +UPDATE `creature_template` SET `faction` = 60 WHERE `entry` = 12200; -- was 35 +UPDATE `creature_template` SET `faction` = 85 WHERE `entry` = 12208; -- was 14 +UPDATE `creature_template` SET `faction` = 834 WHERE `entry` = 12237; -- was 91 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 12257; -- was 1 +UPDATE `creature_template` SET `faction` = 54 WHERE `entry` = 12265; -- was 91 +UPDATE `creature_template` SET `faction` = 413 WHERE `entry` = 12276; -- was 14 +UPDATE `creature_template` SET `faction` = 188 WHERE `entry` = 12297; -- was 7 +UPDATE `creature_template` SET `faction` = 188 WHERE `entry` = 12299; -- was 7 +UPDATE `creature_template` SET `faction` = 74 WHERE `entry` = 12321; -- was 22 +UPDATE `creature_template` SET `faction` = 89 WHERE `entry` = 12339; -- was 14 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 12345; -- was 42 +UPDATE `creature_template` SET `faction` = 89 WHERE `entry` = 12352; -- was 67 +UPDATE `creature_template` SET `faction` = 74 WHERE `entry` = 12369; -- was 14 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 12385; -- was 55 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 12397; -- was 14 +UPDATE `creature_template` SET `faction` = 188 WHERE `entry` = 12419; -- was 115 +UPDATE `creature_template` SET `faction` = 12 WHERE `entry` = 12423; -- was 11 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 12426; -- was 914 +UPDATE `creature_template` SET `faction` = 68 WHERE `entry` = 12428; -- was 71 +UPDATE `creature_template` SET `faction` = 29 WHERE `entry` = 12430; -- was 85 +UPDATE `creature_template` SET `faction` = 1114 WHERE `entry` = 12435; -- was 103 +UPDATE `creature_template` SET `faction` = 103 WHERE `entry` = 12461; -- was 14 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 12473; -- was 1 +UPDATE `creature_template` SET `faction` = 534 WHERE `entry` = 12580; -- was 12 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 12581; -- was 72 +UPDATE `creature_template` SET `faction` = 2070 WHERE `entry` = 12617; -- was 55 +UPDATE `creature_template` SET `faction` = 2070 WHERE `entry` = 12636; -- was 68 +UPDATE `creature_template` SET `faction` = 40 WHERE `entry` = 12739; -- was 14 +UPDATE `creature_template` SET `faction` = 12 WHERE `entry` = 12756; -- was 32 +UPDATE `creature_template` SET `faction` = 1078 WHERE `entry` = 12777; -- was 35 +UPDATE `creature_template` SET `faction` = 1078 WHERE `entry` = 12782; -- was 35 +UPDATE `creature_template` SET `faction` = 125 WHERE `entry` = 12788; -- was 29 +UPDATE `creature_template` SET `faction` = 876 WHERE `entry` = 12789; -- was 126 +UPDATE `creature_template` SET `faction` = 1074 WHERE `entry` = 12792; -- was 85 +UPDATE `creature_template` SET `faction` = 125 WHERE `entry` = 12793; -- was 1074 +UPDATE `creature_template` SET `faction` = 125 WHERE `entry` = 12794; -- was 29 +UPDATE `creature_template` SET `faction` = 125 WHERE `entry` = 12795; -- was 126 +UPDATE `creature_template` SET `faction` = 54 WHERE `entry` = 12806; -- was 91 +UPDATE `creature_template` SET `faction` = 1514 WHERE `entry` = 12856; -- was 124 +UPDATE `creature_template` SET `faction` = 124 WHERE `entry` = 12860; -- was 84 +UPDATE `creature_template` SET `faction` = 50 WHERE `entry` = 12898; -- was 35 +UPDATE `creature_template` SET `faction` = 82 WHERE `entry` = 12918; -- was 14 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 12922; -- was 59 +UPDATE `creature_template` SET `faction` = 83 WHERE `entry` = 12923; -- was 85 +UPDATE `creature_template` SET `faction` = 83 WHERE `entry` = 12924; -- was 85 +UPDATE `creature_template` SET `faction` = 83 WHERE `entry` = 12925; -- was 85 +UPDATE `creature_template` SET `faction` = 74 WHERE `entry` = 12940; -- was 14 +UPDATE `creature_template` SET `faction` = 2263 WHERE `entry` = 12959; -- was 35 +UPDATE `creature_template` SET `faction` = 130 WHERE `entry` = 12976; -- was 655 +UPDATE `creature_template` SET `faction` = 130 WHERE `entry` = 12977; -- was 655 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 13017; -- was 7 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 13020; -- was 32 +UPDATE `creature_template` SET `faction` = 45 WHERE `entry` = 13036; -- was 1374 +UPDATE `creature_template` SET `faction` = 1214 WHERE `entry` = 13081; -- was 59 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 13082; -- was 32 +UPDATE `creature_template` SET `faction` = 1214 WHERE `entry` = 13099; -- was 59 +UPDATE `creature_template` SET `faction` = 310 WHERE `entry` = 13136; -- was 14 +UPDATE `creature_template` SET `faction` = 1216 WHERE `entry` = 13139; -- was 32 +UPDATE `creature_template` SET `faction` = 1194 WHERE `entry` = 13149; -- was 70 +UPDATE `creature_template` SET `faction` = 1194 WHERE `entry` = 13150; -- was 70 +UPDATE `creature_template` SET `faction` = 1194 WHERE `entry` = 13151; -- was 70 +UPDATE `creature_template` SET `faction` = 1214 WHERE `entry` = 13155; -- was 85 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 13156; -- was 14 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 13158; -- was 67 +UPDATE `creature_template` SET `faction` = 1216 WHERE `entry` = 13161; -- was 58 +UPDATE `creature_template` SET `faction` = 1214 WHERE `entry` = 13178; -- was 85 +UPDATE `creature_template` SET `faction` = 1194 WHERE `entry` = 13221; -- was 32 +UPDATE `creature_template` SET `faction` = 1214 WHERE `entry` = 13256; -- was 85 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 13279; -- was 91 +UPDATE `creature_template` SET `faction` = 1215 WHERE `entry` = 13281; -- was 35 +UPDATE `creature_template` SET `faction` = 1216 WHERE `entry` = 13297; -- was 32 +UPDATE `creature_template` SET `faction` = 1216 WHERE `entry` = 13300; -- was 32 +UPDATE `creature_template` SET `faction` = 310 WHERE `entry` = 13301; -- was 14 +UPDATE `creature_template` SET `faction` = 1216 WHERE `entry` = 13324; -- was 32 +UPDATE `creature_template` SET `faction` = 1216 WHERE `entry` = 13325; -- was 55 +UPDATE `creature_template` SET `faction` = 1216 WHERE `entry` = 13326; -- was 514 +UPDATE `creature_template` SET `faction` = 1216 WHERE `entry` = 13327; -- was 11 +UPDATE `creature_template` SET `faction` = 1214 WHERE `entry` = 13329; -- was 14 +UPDATE `creature_template` SET `faction` = 1214 WHERE `entry` = 13330; -- was 85 +UPDATE `creature_template` SET `faction` = 1216 WHERE `entry` = 13333; -- was 32 +UPDATE `creature_template` SET `faction` = 1214 WHERE `entry` = 13334; -- was 85 +UPDATE `creature_template` SET `faction` = 1216 WHERE `entry` = 13335; -- was 32 +UPDATE `creature_template` SET `faction` = 1216 WHERE `entry` = 13336; -- was 32 +UPDATE `creature_template` SET `faction` = 1214 WHERE `entry` = 13337; -- was 85 +UPDATE `creature_template` SET `faction` = 1081 WHERE `entry` = 13338; -- was 7 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 13339; -- was 35 +UPDATE `creature_template` SET `faction` = 1194 WHERE `entry` = 13377; -- was 29 +UPDATE `creature_template` SET `faction` = 1594 WHERE `entry` = 13419; -- was 32 +UPDATE `creature_template` SET `faction` = 1216 WHERE `entry` = 13424; -- was 1217 +UPDATE `creature_template` SET `faction` = 1214 WHERE `entry` = 13425; -- was 29 +UPDATE `creature_template` SET `faction` = 1216 WHERE `entry` = 13426; -- was 32 +UPDATE `creature_template` SET `faction` = 1216 WHERE `entry` = 13427; -- was 32 +UPDATE `creature_template` SET `faction` = 1214 WHERE `entry` = 13428; -- was 29 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 13431; -- was 85 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 13432; -- was 1080 +UPDATE `creature_template` SET `faction` = 55 WHERE `entry` = 13444; -- was 35 +UPDATE `creature_template` SET `faction` = 1216 WHERE `entry` = 13446; -- was 14 +UPDATE `creature_template` SET `faction` = 1554 WHERE `entry` = 13449; -- was 85 +UPDATE `creature_template` SET `faction` = 994 WHERE `entry` = 13476; -- was 29 +UPDATE `creature_template` SET `faction` = 1216 WHERE `entry` = 13496; -- was 35 +UPDATE `creature_template` SET `faction` = 1214 WHERE `entry` = 13516; -- was 35 +UPDATE `creature_template` SET `faction` = 1214 WHERE `entry` = 13517; -- was 35 +UPDATE `creature_template` SET `faction` = 1214 WHERE `entry` = 13518; -- was 35 +UPDATE `creature_template` SET `faction` = 1214 WHERE `entry` = 13519; -- was 35 +UPDATE `creature_template` SET `faction` = 1216 WHERE `entry` = 13520; -- was 35 +UPDATE `creature_template` SET `faction` = 1216 WHERE `entry` = 13521; -- was 35 +UPDATE `creature_template` SET `faction` = 1216 WHERE `entry` = 13522; -- was 35 +UPDATE `creature_template` SET `faction` = 1216 WHERE `entry` = 13523; -- was 35 +UPDATE `creature_template` SET `faction` = 1216 WHERE `entry` = 13525; -- was 32 +UPDATE `creature_template` SET `faction` = 1216 WHERE `entry` = 13526; -- was 32 +UPDATE `creature_template` SET `faction` = 1216 WHERE `entry` = 13527; -- was 32 +UPDATE `creature_template` SET `faction` = 1214 WHERE `entry` = 13529; -- was 32 +UPDATE `creature_template` SET `faction` = 1214 WHERE `entry` = 13530; -- was 32 +UPDATE `creature_template` SET `faction` = 1214 WHERE `entry` = 13531; -- was 85 +UPDATE `creature_template` SET `faction` = 1214 WHERE `entry` = 13534; -- was 85 +UPDATE `creature_template` SET `faction` = 1214 WHERE `entry` = 13535; -- was 85 +UPDATE `creature_template` SET `faction` = 1214 WHERE `entry` = 13536; -- was 29 +UPDATE `creature_template` SET `faction` = 1214 WHERE `entry` = 13537; -- was 85 +UPDATE `creature_template` SET `faction` = 1214 WHERE `entry` = 13538; -- was 85 +UPDATE `creature_template` SET `faction` = 1214 WHERE `entry` = 13539; -- was 29 +UPDATE `creature_template` SET `faction` = 1214 WHERE `entry` = 13540; -- was 14 +UPDATE `creature_template` SET `faction` = 1214 WHERE `entry` = 13541; -- was 32 +UPDATE `creature_template` SET `faction` = 1214 WHERE `entry` = 13542; -- was 85 +UPDATE `creature_template` SET `faction` = 1214 WHERE `entry` = 13543; -- was 32 +UPDATE `creature_template` SET `faction` = 1214 WHERE `entry` = 13544; -- was 32 +UPDATE `creature_template` SET `faction` = 1214 WHERE `entry` = 13545; -- was 29 +UPDATE `creature_template` SET `faction` = 1216 WHERE `entry` = 13547; -- was 32 +UPDATE `creature_template` SET `faction` = 1216 WHERE `entry` = 13548; -- was 32 +UPDATE `creature_template` SET `faction` = 1216 WHERE `entry` = 13549; -- was 32 +UPDATE `creature_template` SET `faction` = 1216 WHERE `entry` = 13550; -- was 32 +UPDATE `creature_template` SET `faction` = 1216 WHERE `entry` = 13551; -- was 32 +UPDATE `creature_template` SET `faction` = 1216 WHERE `entry` = 13552; -- was 32 +UPDATE `creature_template` SET `faction` = 1216 WHERE `entry` = 13553; -- was 32 +UPDATE `creature_template` SET `faction` = 1216 WHERE `entry` = 13554; -- was 32 +UPDATE `creature_template` SET `faction` = 1216 WHERE `entry` = 13555; -- was 32 +UPDATE `creature_template` SET `faction` = 1216 WHERE `entry` = 13556; -- was 32 +UPDATE `creature_template` SET `faction` = 1216 WHERE `entry` = 13557; -- was 32 +UPDATE `creature_template` SET `faction` = 52 WHERE `entry` = 13619; -- was 35 +UPDATE `creature_template` SET `faction` = 86 WHERE `entry` = 13620; -- was 35 +UPDATE `creature_template` SET `faction` = 1217 WHERE `entry` = 13676; -- was 32 +UPDATE `creature_template` SET `faction` = 37 WHERE `entry` = 13956; -- was 14 +UPDATE `creature_template` SET `faction` = 37 WHERE `entry` = 13957; -- was 14 +UPDATE `creature_template` SET `faction` = 37 WHERE `entry` = 13958; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 13959; -- was 14 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 13976; -- was 32 +UPDATE `creature_template` SET `faction` = 37 WHERE `entry` = 13977; -- was 35 +UPDATE `creature_template` SET `faction` = 37 WHERE `entry` = 14016; -- was 35 +UPDATE `creature_template` SET `faction` = 37 WHERE `entry` = 14017; -- was 35 +UPDATE `creature_template` SET `faction` = 37 WHERE `entry` = 14018; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 14019; -- was 35 +UPDATE `creature_template` SET `faction` = 62 WHERE `entry` = 14020; -- was 103 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 14021; -- was 14 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 14081; -- was 103 +UPDATE `creature_template` SET `faction` = 40 WHERE `entry` = 14101; -- was 35 +UPDATE `creature_template` SET `faction` = 1216 WHERE `entry` = 14141; -- was 35 +UPDATE `creature_template` SET `faction` = 1214 WHERE `entry` = 14142; -- was 35 +UPDATE `creature_template` SET `faction` = 87 WHERE `entry` = 14221; -- was 32 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 14223; -- was 32 +UPDATE `creature_template` SET `faction` = 189 WHERE `entry` = 14224; -- was 32 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 14225; -- was 14 +UPDATE `creature_template` SET `faction` = 38 WHERE `entry` = 14228; -- was 32 +UPDATE `creature_template` SET `faction` = 74 WHERE `entry` = 14229; -- was 14 +UPDATE `creature_template` SET `faction` = 129 WHERE `entry` = 14236; -- was 32 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 14237; -- was 32 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 14241; -- was 91 +UPDATE `creature_template` SET `faction` = 29 WHERE `entry` = 14242; -- was 85 +UPDATE `creature_template` SET `faction` = 103 WHERE `entry` = 14261; -- was 35 +UPDATE `creature_template` SET `faction` = 103 WHERE `entry` = 14265; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 14268; -- was 73 +UPDATE `creature_template` SET `faction` = 189 WHERE `entry` = 14273; -- was 14 +UPDATE `creature_template` SET `faction` = 37 WHERE `entry` = 14274; -- was 35 +UPDATE `creature_template` SET `faction` = 88 WHERE `entry` = 14275; -- was 1216 +UPDATE `creature_template` SET `faction` = 87 WHERE `entry` = 14281; -- was 14 +UPDATE `creature_template` SET `faction` = 103 WHERE `entry` = 14302; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 14303; -- was 91 +UPDATE `creature_template` SET `faction` = 12 WHERE `entry` = 14305; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 14308; -- was 14 +UPDATE `creature_template` SET `faction` = 45 WHERE `entry` = 14321; -- was 1374 +UPDATE `creature_template` SET `faction` = 45 WHERE `entry` = 14322; -- was 1374 +UPDATE `creature_template` SET `faction` = 45 WHERE `entry` = 14323; -- was 1374 +UPDATE `creature_template` SET `faction` = 45 WHERE `entry` = 14324; -- was 1374 +UPDATE `creature_template` SET `faction` = 45 WHERE `entry` = 14326; -- was 1374 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 14338; -- was 1080 +UPDATE `creature_template` SET `faction` = 82 WHERE `entry` = 14342; -- was 14 +UPDATE `creature_template` SET `faction` = 189 WHERE `entry` = 14343; -- was 635 +UPDATE `creature_template` SET `faction` = 45 WHERE `entry` = 14351; -- was 14 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 14353; -- was 32 +UPDATE `creature_template` SET `faction` = 2468 WHERE `entry` = 14355; -- was 1354 +UPDATE `creature_template` SET `faction` = 2468 WHERE `entry` = 14358; -- was 32 +UPDATE `creature_template` SET `faction` = 2468 WHERE `entry` = 14361; -- was 7 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 14362; -- was 4 +UPDATE `creature_template` SET `faction` = 2468 WHERE `entry` = 14364; -- was 71 +UPDATE `creature_template` SET `faction` = 2468 WHERE `entry` = 14368; -- was 32 +UPDATE `creature_template` SET `faction` = 2468 WHERE `entry` = 14369; -- was 32 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 14370; -- was 14 +UPDATE `creature_template` SET `faction` = 2468 WHERE `entry` = 14371; -- was 32 +UPDATE `creature_template` SET `faction` = 2468 WHERE `entry` = 14381; -- was 32 +UPDATE `creature_template` SET `faction` = 2468 WHERE `entry` = 14382; -- was 32 +UPDATE `creature_template` SET `faction` = 2468 WHERE `entry` = 14383; -- was 32 +UPDATE `creature_template` SET `faction` = 954 WHERE `entry` = 14385; -- was 90 +UPDATE `creature_template` SET `faction` = 45 WHERE `entry` = 14386; -- was 90 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 14389; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 14396; -- was 14 +UPDATE `creature_template` SET `faction` = 834 WHERE `entry` = 14397; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 14398; -- was 14 +UPDATE `creature_template` SET `faction` = 834 WHERE `entry` = 14399; -- was 91 +UPDATE `creature_template` SET `faction` = 834 WHERE `entry` = 14400; -- was 91 +UPDATE `creature_template` SET `faction` = 15 WHERE `entry` = 14406; -- was 35 +UPDATE `creature_template` SET `faction` = 31 WHERE `entry` = 14421; -- was 7 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 14435; -- was 91 +UPDATE `creature_template` SET `faction` = 29 WHERE `entry` = 14444; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 14448; -- was 91 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 14449; -- was 32 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 14452; -- was 14 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 14453; -- was 32 +UPDATE `creature_template` SET `faction` = 91 WHERE `entry` = 14457; -- was 14 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 14459; -- was 1080 +UPDATE `creature_template` SET `faction` = 91 WHERE `entry` = 14462; -- was 14 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 14465; -- was 4 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 14466; -- was 2 +UPDATE `creature_template` SET `faction` = 91 WHERE `entry` = 14471; -- was 14 +UPDATE `creature_template` SET `faction` = 310 WHERE `entry` = 14474; -- was 14 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 14482; -- was 14 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 14483; -- was 14 +UPDATE `creature_template` SET `faction` = 290 WHERE `entry` = 14484; -- was 32 +UPDATE `creature_template` SET `faction` = 290 WHERE `entry` = 14485; -- was 32 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 14486; -- was 21 +UPDATE `creature_template` SET `faction` = 45 WHERE `entry` = 14488; -- was 32 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 14489; -- was 21 +UPDATE `creature_template` SET `faction` = 72 WHERE `entry` = 14491; -- was 14 +UPDATE `creature_template` SET `faction` = 189 WHERE `entry` = 14492; -- was 32 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 14494; -- was 32 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 14500; -- was 41 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 14503; -- was 90 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 14511; -- was 14 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 14512; -- was 14 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 14513; -- was 14 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 14514; -- was 14 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 14516; -- was 14 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 14518; -- was 14 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 14519; -- was 14 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 14520; -- was 14 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 14521; -- was 14 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 14524; -- was 32 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 14525; -- was 32 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 14526; -- was 32 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 14564; -- was 92 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 14566; -- was 1080 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 14568; -- was 1080 +UPDATE `creature_template` SET `faction` = 1074 WHERE `entry` = 14581; -- was 85 +UPDATE `creature_template` SET `faction` = 62 WHERE `entry` = 14601; -- was 103 +UPDATE `creature_template` SET `faction` = 778 WHERE `entry` = 14604; -- was 14 +UPDATE `creature_template` SET `faction` = 103 WHERE `entry` = 14605; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 14621; -- was 754 +UPDATE `creature_template` SET `faction` = 2364 WHERE `entry` = 14622; -- was 1475 +UPDATE `creature_template` SET `faction` = 54 WHERE `entry` = 14635; -- was 35 +UPDATE `creature_template` SET `faction` = 778 WHERE `entry` = 14639; -- was 14 +UPDATE `creature_template` SET `faction` = 1334 WHERE `entry` = 14643; -- was 35 +UPDATE `creature_template` SET `faction` = 1335 WHERE `entry` = 14644; -- was 35 +UPDATE `creature_template` SET `faction` = 103 WHERE `entry` = 14662; -- was 14 +UPDATE `creature_template` SET `faction` = 103 WHERE `entry` = 14663; -- was 14 +UPDATE `creature_template` SET `faction` = 103 WHERE `entry` = 14664; -- was 14 +UPDATE `creature_template` SET `faction` = 103 WHERE `entry` = 14666; -- was 14 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 14667; -- was 14 +UPDATE `creature_template` SET `faction` = 954 WHERE `entry` = 14668; -- was 103 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 14682; -- was 35 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 14683; -- was 35 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 14684; -- was 35 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 14686; -- was 14 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 14690; -- was 35 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 14691; -- was 35 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 14692; -- was 35 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 14693; -- was 35 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 14694; -- was 35 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 14695; -- was 35 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 14698; -- was 35 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 14700; -- was 35 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 14701; -- was 35 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 14702; -- was 35 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 14703; -- was 35 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 14705; -- was 35 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 14707; -- was 35 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 14712; -- was 35 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 14713; -- was 35 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 14714; -- was 35 +UPDATE `creature_template` SET `faction` = 84 WHERE `entry` = 14719; -- was 35 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 14744; -- was 1214 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 14745; -- was 1216 +UPDATE `creature_template` SET `faction` = 1214 WHERE `entry` = 14746; -- was 35 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 14751; -- was 1335 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 14752; -- was 4 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 14761; -- was 35 +UPDATE `creature_template` SET `faction` = 1534 WHERE `entry` = 14767; -- was 32 +UPDATE `creature_template` SET `faction` = 1534 WHERE `entry` = 14768; -- was 1216 +UPDATE `creature_template` SET `faction` = 190 WHERE `entry` = 14824; -- was 35 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 14830; -- was 35 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 14831; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 14862; -- was 14 +UPDATE `creature_template` SET `faction` = 1555 WHERE `entry` = 14878; -- was 6 +UPDATE `creature_template` SET `faction` = 50 WHERE `entry` = 14890; -- was 14 +UPDATE `creature_template` SET `faction` = 28 WHERE `entry` = 14941; -- was 35 +UPDATE `creature_template` SET `faction` = 1214 WHERE `entry` = 14943; -- was 32 +UPDATE `creature_template` SET `faction` = 1214 WHERE `entry` = 14944; -- was 32 +UPDATE `creature_template` SET `faction` = 1214 WHERE `entry` = 14945; -- was 32 +UPDATE `creature_template` SET `faction` = 1216 WHERE `entry` = 14946; -- was 32 +UPDATE `creature_template` SET `faction` = 1216 WHERE `entry` = 14947; -- was 32 +UPDATE `creature_template` SET `faction` = 1216 WHERE `entry` = 14948; -- was 32 +UPDATE `creature_template` SET `faction` = 28 WHERE `entry` = 14966; -- was 35 +UPDATE `creature_template` SET `faction` = 28 WHERE `entry` = 14967; -- was 35 +UPDATE `creature_template` SET `faction` = 28 WHERE `entry` = 14968; -- was 35 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 14987; -- was 28 +UPDATE `creature_template` SET `faction` = 190 WHERE `entry` = 15010; -- was 188 +UPDATE `creature_template` SET `faction` = 28 WHERE `entry` = 15047; -- was 93 +UPDATE `creature_template` SET `faction` = 474 WHERE `entry` = 15061; -- was 92 +UPDATE `creature_template` SET `faction` = 28 WHERE `entry` = 15068; -- was 93 +UPDATE `creature_template` SET `faction` = 37 WHERE `entry` = 15082; -- was 14 +UPDATE `creature_template` SET `faction` = 37 WHERE `entry` = 15083; -- was 14 +UPDATE `creature_template` SET `faction` = 37 WHERE `entry` = 15084; -- was 93 +UPDATE `creature_template` SET `faction` = 37 WHERE `entry` = 15085; -- was 14 +UPDATE `creature_template` SET `faction` = 190 WHERE `entry` = 15107; -- was 1577 +UPDATE `creature_template` SET `faction` = 190 WHERE `entry` = 15108; -- was 412 +UPDATE `creature_template` SET `faction` = 37 WHERE `entry` = 15110; -- was 35 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 15112; -- was 2 +UPDATE `creature_template` SET `faction` = 107 WHERE `entry` = 15114; -- was 93 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 15121; -- was 35 +UPDATE `creature_template` SET `faction` = 85 WHERE `entry` = 15136; -- was 83 +UPDATE `creature_template` SET `faction` = 71 WHERE `entry` = 15138; -- was 68 +UPDATE `creature_template` SET `faction` = 1334 WHERE `entry` = 15139; -- was 35 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 15142; -- was 35 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 15143; -- was 35 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 15144; -- was 35 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 15145; -- was 35 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 15151; -- was 35 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 15152; -- was 35 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 15153; -- was 35 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 15154; -- was 35 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 15155; -- was 35 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 15156; -- was 35 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 15157; -- was 35 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 15158; -- was 35 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 15159; -- was 35 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 15160; -- was 35 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 15161; -- was 35 +UPDATE `creature_template` SET `faction` = 37 WHERE `entry` = 15163; -- was 14 +UPDATE `creature_template` SET `faction` = 2252 WHERE `entry` = 15187; -- was 994 +UPDATE `creature_template` SET `faction` = 2252 WHERE `entry` = 15188; -- was 994 +UPDATE `creature_template` SET `faction` = 1779 WHERE `entry` = 15192; -- was 776 +UPDATE `creature_template` SET `faction` = 68 WHERE `entry` = 15193; -- was 118 +UPDATE `creature_template` SET `faction` = 71 WHERE `entry` = 15195; -- was 118 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 15198; -- was 994 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 15224; -- was 50 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 15260; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 15261; -- was 14 +UPDATE `creature_template` SET `faction` = 50 WHERE `entry` = 15302; -- was 14 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 15304; -- was 35 +UPDATE `creature_template` SET `faction` = 310 WHERE `entry` = 15311; -- was 14 +UPDATE `creature_template` SET `faction` = 310 WHERE `entry` = 15312; -- was 14 +UPDATE `creature_template` SET `faction` = 310 WHERE `entry` = 15318; -- was 14 +UPDATE `creature_template` SET `faction` = 310 WHERE `entry` = 15319; -- was 14 +UPDATE `creature_template` SET `faction` = 310 WHERE `entry` = 15320; -- was 14 +UPDATE `creature_template` SET `faction` = 310 WHERE `entry` = 15323; -- was 14 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 15333; -- was 14 +UPDATE `creature_template` SET `faction` = 370 WHERE `entry` = 15334; -- was 91 +UPDATE `creature_template` SET `faction` = 148 WHERE `entry` = 15335; -- was 14 +UPDATE `creature_template` SET `faction` = 310 WHERE `entry` = 15336; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 15339; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 15340; -- was 14 +UPDATE `creature_template` SET `faction` = 310 WHERE `entry` = 15341; -- was 14 +UPDATE `creature_template` SET `faction` = 310 WHERE `entry` = 15344; -- was 14 +UPDATE `creature_template` SET `faction` = 310 WHERE `entry` = 15348; -- was 73 +UPDATE `creature_template` SET `faction` = 1074 WHERE `entry` = 15350; -- was 714 +UPDATE `creature_template` SET `faction` = 55 WHERE `entry` = 15351; -- was 534 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 15352; -- was 1629 +UPDATE `creature_template` SET `faction` = 188 WHERE `entry` = 15358; -- was 1610 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 15363; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 15369; -- was 14 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 15381; -- was 1601 +UPDATE `creature_template` SET `faction` = 310 WHERE `entry` = 15385; -- was 14 +UPDATE `creature_template` SET `faction` = 310 WHERE `entry` = 15386; -- was 14 +UPDATE `creature_template` SET `faction` = 310 WHERE `entry` = 15387; -- was 14 +UPDATE `creature_template` SET `faction` = 310 WHERE `entry` = 15388; -- was 14 +UPDATE `creature_template` SET `faction` = 310 WHERE `entry` = 15389; -- was 14 +UPDATE `creature_template` SET `faction` = 310 WHERE `entry` = 15390; -- was 14 +UPDATE `creature_template` SET `faction` = 310 WHERE `entry` = 15391; -- was 14 +UPDATE `creature_template` SET `faction` = 310 WHERE `entry` = 15392; -- was 14 +UPDATE `creature_template` SET `faction` = 495 WHERE `entry` = 15411; -- was 35 +UPDATE `creature_template` SET `faction` = 495 WHERE `entry` = 15412; -- was 35 +UPDATE `creature_template` SET `faction` = 495 WHERE `entry` = 15413; -- was 35 +UPDATE `creature_template` SET `faction` = 310 WHERE `entry` = 15414; -- was 35 +UPDATE `creature_template` SET `faction` = 310 WHERE `entry` = 15421; -- was 35 +UPDATE `creature_template` SET `faction` = 310 WHERE `entry` = 15422; -- was 35 +UPDATE `creature_template` SET `faction` = 250 WHERE `entry` = 15423; -- was 35 +UPDATE `creature_template` SET `faction` = 310 WHERE `entry` = 15424; -- was 35 +UPDATE `creature_template` SET `faction` = 114 WHERE `entry` = 15428; -- was 14 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 15430; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 15438; -- was 1629 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 15439; -- was 35 +UPDATE `creature_template` SET `faction` = 1611 WHERE `entry` = 15440; -- was 55 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 15447; -- was 1629 +UPDATE `creature_template` SET `faction` = 1395 WHERE `entry` = 15449; -- was 35 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 15458; -- was 1606 +UPDATE `creature_template` SET `faction` = 68 WHERE `entry` = 15459; -- was 1154 +UPDATE `creature_template` SET `faction` = 29 WHERE `entry` = 15460; -- was 1619 +UPDATE `creature_template` SET `faction` = 310 WHERE `entry` = 15461; -- was 14 +UPDATE `creature_template` SET `faction` = 310 WHERE `entry` = 15462; -- was 14 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 15463; -- was 2 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 15464; -- was 1629 +UPDATE `creature_template` SET `faction` = 126 WHERE `entry` = 15469; -- was 35 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 15470; -- was 1629 +UPDATE `creature_template` SET `faction` = 1608 WHERE `entry` = 15471; -- was 994 +UPDATE `creature_template` SET `faction` = 1608 WHERE `entry` = 15473; -- was 994 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 15474; -- was 35 +UPDATE `creature_template` SET `faction` = 104 WHERE `entry` = 15477; -- was 29 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 15478; -- was 2 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 15479; -- was 2 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 15480; -- was 35 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 15482; -- was 35 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 15483; -- was 1662 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 15484; -- was 35 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 15485; -- was 35 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 15486; -- was 35 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 15487; -- was 35 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 15488; -- was 35 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 15489; -- was 2 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 15490; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 15491; -- was 35 +UPDATE `creature_template` SET `faction` = 495 WHERE `entry` = 15495; -- was 35 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 15496; -- was 2 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 15497; -- was 1629 +UPDATE `creature_template` SET `faction` = 1878 WHERE `entry` = 15505; -- was 14 +UPDATE `creature_template` SET `faction` = 126 WHERE `entry` = 15508; -- was 29 +UPDATE `creature_template` SET `faction` = 126 WHERE `entry` = 15515; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 15517; -- was 14 +UPDATE `creature_template` SET `faction` = 55 WHERE `entry` = 15518; -- was 35 +UPDATE `creature_template` SET `faction` = 12 WHERE `entry` = 15519; -- was 35 +UPDATE `creature_template` SET `faction` = 310 WHERE `entry` = 15521; -- was 14 +UPDATE `creature_template` SET `faction` = 834 WHERE `entry` = 15527; -- was 14 +UPDATE `creature_template` SET `faction` = 104 WHERE `entry` = 15528; -- was 1604 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 15530; -- was 35 +UPDATE `creature_template` SET `faction` = 29 WHERE `entry` = 15533; -- was 1619 +UPDATE `creature_template` SET `faction` = 126 WHERE `entry` = 15534; -- was 35 +UPDATE `creature_template` SET `faction` = 104 WHERE `entry` = 15535; -- was 995 +UPDATE `creature_template` SET `faction` = 310 WHERE `entry` = 15546; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 15550; -- was 14 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 15552; -- was 16 +UPDATE `creature_template` SET `faction` = 310 WHERE `entry` = 15555; -- was 14 +UPDATE `creature_template` SET `faction` = 1395 WHERE `entry` = 15620; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 15629; -- was 14 +UPDATE `creature_template` SET `faction` = 310 WHERE `entry` = 15630; -- was 14 +UPDATE `creature_template` SET `faction` = 113 WHERE `entry` = 15633; -- was 1254 +UPDATE `creature_template` SET `faction` = 113 WHERE `entry` = 15634; -- was 35 +UPDATE `creature_template` SET `faction` = 91 WHERE `entry` = 15639; -- was 35 +UPDATE `creature_template` SET `faction` = 1701 WHERE `entry` = 15640; -- was 35 +UPDATE `creature_template` SET `faction` = 38 WHERE `entry` = 15653; -- was 35 +UPDATE `creature_template` SET `faction` = 29 WHERE `entry` = 15696; -- was 35 +UPDATE `creature_template` SET `faction` = 29 WHERE `entry` = 15700; -- was 1604 +UPDATE `creature_template` SET `faction` = 68 WHERE `entry` = 15703; -- was 1154 +UPDATE `creature_template` SET `faction` = 126 WHERE `entry` = 15704; -- was 1604 +UPDATE `creature_template` SET `faction` = 188 WHERE `entry` = 15706; -- was 4 +UPDATE `creature_template` SET `faction` = 875 WHERE `entry` = 15707; -- was 1604 +UPDATE `creature_template` SET `faction` = 12 WHERE `entry` = 15708; -- was 1575 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 15718; -- was 14 +UPDATE `creature_template` SET `faction` = 636 WHERE `entry` = 15720; -- was 4 +UPDATE `creature_template` SET `faction` = 120 WHERE `entry` = 15724; -- was 390 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 15725; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 15726; -- was 91 +UPDATE `creature_template` SET `faction` = 370 WHERE `entry` = 15728; -- was 14 +UPDATE `creature_template` SET `faction` = 29 WHERE `entry` = 15736; -- was 1619 +UPDATE `creature_template` SET `faction` = 126 WHERE `entry` = 15737; -- was 877 +UPDATE `creature_template` SET `faction` = 68 WHERE `entry` = 15738; -- was 35 +UPDATE `creature_template` SET `faction` = 104 WHERE `entry` = 15739; -- was 35 +UPDATE `creature_template` SET `faction` = 370 WHERE `entry` = 15740; -- was 14 +UPDATE `creature_template` SET `faction` = 370 WHERE `entry` = 15741; -- was 14 +UPDATE `creature_template` SET `faction` = 370 WHERE `entry` = 15742; -- was 14 +UPDATE `creature_template` SET `faction` = 370 WHERE `entry` = 15743; -- was 14 +UPDATE `creature_template` SET `faction` = 370 WHERE `entry` = 15744; -- was 14 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 15745; -- was 55 +UPDATE `creature_template` SET `faction` = 370 WHERE `entry` = 15747; -- was 35 +UPDATE `creature_template` SET `faction` = 370 WHERE `entry` = 15748; -- was 35 +UPDATE `creature_template` SET `faction` = 370 WHERE `entry` = 15749; -- was 35 +UPDATE `creature_template` SET `faction` = 370 WHERE `entry` = 15750; -- was 35 +UPDATE `creature_template` SET `faction` = 370 WHERE `entry` = 15751; -- was 35 +UPDATE `creature_template` SET `faction` = 370 WHERE `entry` = 15752; -- was 35 +UPDATE `creature_template` SET `faction` = 370 WHERE `entry` = 15753; -- was 35 +UPDATE `creature_template` SET `faction` = 370 WHERE `entry` = 15754; -- was 35 +UPDATE `creature_template` SET `faction` = 370 WHERE `entry` = 15756; -- was 35 +UPDATE `creature_template` SET `faction` = 370 WHERE `entry` = 15757; -- was 35 +UPDATE `creature_template` SET `faction` = 370 WHERE `entry` = 15758; -- was 35 +UPDATE `creature_template` SET `faction` = 370 WHERE `entry` = 15759; -- was 35 +UPDATE `creature_template` SET `faction` = 370 WHERE `entry` = 15769; -- was 35 +UPDATE `creature_template` SET `faction` = 370 WHERE `entry` = 15770; -- was 35 +UPDATE `creature_template` SET `faction` = 370 WHERE `entry` = 15771; -- was 35 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 15772; -- was 35 +UPDATE `creature_template` SET `faction` = 67 WHERE `entry` = 15773; -- was 35 +UPDATE `creature_template` SET `faction` = 2468 WHERE `entry` = 15774; -- was 35 +UPDATE `creature_template` SET `faction` = 54 WHERE `entry` = 15775; -- was 35 +UPDATE `creature_template` SET `faction` = 40 WHERE `entry` = 15776; -- was 14 +UPDATE `creature_template` SET `faction` = 1613 WHERE `entry` = 15797; -- was 35 +UPDATE `creature_template` SET `faction` = 1613 WHERE `entry` = 15798; -- was 35 +UPDATE `creature_template` SET `faction` = 1613 WHERE `entry` = 15799; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 15802; -- was 14 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 15803; -- was 35 +UPDATE `creature_template` SET `faction` = 370 WHERE `entry` = 15806; -- was 35 +UPDATE `creature_template` SET `faction` = 370 WHERE `entry` = 15807; -- was 35 +UPDATE `creature_template` SET `faction` = 370 WHERE `entry` = 15808; -- was 35 +UPDATE `creature_template` SET `faction` = 370 WHERE `entry` = 15810; -- was 35 +UPDATE `creature_template` SET `faction` = 370 WHERE `entry` = 15811; -- was 35 +UPDATE `creature_template` SET `faction` = 370 WHERE `entry` = 15812; -- was 35 +UPDATE `creature_template` SET `faction` = 370 WHERE `entry` = 15813; -- was 35 +UPDATE `creature_template` SET `faction` = 370 WHERE `entry` = 15814; -- was 35 +UPDATE `creature_template` SET `faction` = 370 WHERE `entry` = 15815; -- was 35 +UPDATE `creature_template` SET `faction` = 370 WHERE `entry` = 15816; -- was 35 +UPDATE `creature_template` SET `faction` = 370 WHERE `entry` = 15817; -- was 35 +UPDATE `creature_template` SET `faction` = 370 WHERE `entry` = 15818; -- was 14 +UPDATE `creature_template` SET `faction` = 777 WHERE `entry` = 15847; -- was 35 +UPDATE `creature_template` SET `faction` = 777 WHERE `entry` = 15852; -- was 1080 +UPDATE `creature_template` SET `faction` = 777 WHERE `entry` = 15853; -- was 1080 +UPDATE `creature_template` SET `faction` = 777 WHERE `entry` = 15854; -- was 1080 +UPDATE `creature_template` SET `faction` = 777 WHERE `entry` = 15855; -- was 35 +UPDATE `creature_template` SET `faction` = 777 WHERE `entry` = 15856; -- was 35 +UPDATE `creature_template` SET `faction` = 777 WHERE `entry` = 15857; -- was 1080 +UPDATE `creature_template` SET `faction` = 777 WHERE `entry` = 15858; -- was 1080 +UPDATE `creature_template` SET `faction` = 777 WHERE `entry` = 15859; -- was 1080 +UPDATE `creature_template` SET `faction` = 777 WHERE `entry` = 15860; -- was 35 +UPDATE `creature_template` SET `faction` = 777 WHERE `entry` = 15861; -- was 35 +UPDATE `creature_template` SET `faction` = 777 WHERE `entry` = 15862; -- was 1080 +UPDATE `creature_template` SET `faction` = 777 WHERE `entry` = 15863; -- was 35 +UPDATE `creature_template` SET `faction` = 777 WHERE `entry` = 15866; -- was 1080 +UPDATE `creature_template` SET `faction` = 777 WHERE `entry` = 15868; -- was 1080 +UPDATE `creature_template` SET `faction` = 777 WHERE `entry` = 15869; -- was 1080 +UPDATE `creature_template` SET `faction` = 777 WHERE `entry` = 15870; -- was 1080 +UPDATE `creature_template` SET `faction` = 114 WHERE `entry` = 15882; -- was 35 +UPDATE `creature_template` SET `faction` = 114 WHERE `entry` = 15883; -- was 35 +UPDATE `creature_template` SET `faction` = 114 WHERE `entry` = 15884; -- was 35 +UPDATE `creature_template` SET `faction` = 114 WHERE `entry` = 15885; -- was 35 +UPDATE `creature_template` SET `faction` = 114 WHERE `entry` = 15886; -- was 35 +UPDATE `creature_template` SET `faction` = 114 WHERE `entry` = 15887; -- was 35 +UPDATE `creature_template` SET `faction` = 114 WHERE `entry` = 15888; -- was 35 +UPDATE `creature_template` SET `faction` = 114 WHERE `entry` = 15889; -- was 35 +UPDATE `creature_template` SET `faction` = 114 WHERE `entry` = 15890; -- was 35 +UPDATE `creature_template` SET `faction` = 114 WHERE `entry` = 15918; -- was 35 +UPDATE `creature_template` SET `faction` = 310 WHERE `entry` = 15934; -- was 14 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 15958; -- was 14 +UPDATE `creature_template` SET `faction` = 114 WHERE `entry` = 15964; -- was 14 +UPDATE `creature_template` SET `faction` = 80 WHERE `entry` = 16001; -- was 1600 +UPDATE `creature_template` SET `faction` = 12 WHERE `entry` = 16002; -- was 35 +UPDATE `creature_template` SET `faction` = 68 WHERE `entry` = 16003; -- was 35 +UPDATE `creature_template` SET `faction` = 68 WHERE `entry` = 16004; -- was 1154 +UPDATE `creature_template` SET `faction` = 12 WHERE `entry` = 16005; -- was 35 +UPDATE `creature_template` SET `faction` = 29 WHERE `entry` = 16007; -- was 35 +UPDATE `creature_template` SET `faction` = 104 WHERE `entry` = 16008; -- was 995 +UPDATE `creature_template` SET `faction` = 55 WHERE `entry` = 16009; -- was 35 +UPDATE `creature_template` SET `faction` = 2468 WHERE `entry` = 16032; -- was 1354 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 16035; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 16038; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 16041; -- was 35 +UPDATE `creature_template` SET `faction` = 40 WHERE `entry` = 16042; -- was 16 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 16049; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 16050; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 16051; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 16052; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 16053; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 16054; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 16055; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 16058; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 16059; -- was 54 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 16066; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 16080; -- was 11 +UPDATE `creature_template` SET `faction` = 188 WHERE `entry` = 16085; -- was 4 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 16089; -- was 35 +UPDATE `creature_template` SET `faction` = 45 WHERE `entry` = 16095; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 16097; -- was 11 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 16098; -- was 35 +UPDATE `creature_template` SET `faction` = 250 WHERE `entry` = 16103; -- was 35 +UPDATE `creature_template` SET `faction` = 250 WHERE `entry` = 16104; -- was 35 +UPDATE `creature_template` SET `faction` = 12 WHERE `entry` = 16105; -- was 35 +UPDATE `creature_template` SET `faction` = 12 WHERE `entry` = 16106; -- was 1575 +UPDATE `creature_template` SET `faction` = 68 WHERE `entry` = 16108; -- was 1154 +UPDATE `creature_template` SET `faction` = 68 WHERE `entry` = 16109; -- was 1154 +UPDATE `creature_template` SET `faction` = 2167 WHERE `entry` = 16134; -- was 1194 +UPDATE `creature_template` SET `faction` = 1254 WHERE `entry` = 16139; -- was 35 +UPDATE `creature_template` SET `faction` = 1630 WHERE `entry` = 16141; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 16142; -- was 21 +UPDATE `creature_template` SET `faction` = 2145 WHERE `entry` = 16143; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 16152; -- was 35 +UPDATE `creature_template` SET `faction` = 1630 WHERE `entry` = 16172; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 16179; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 16180; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 16181; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 16184; -- was 21 +UPDATE `creature_template` SET `faction` = 1604 WHERE `entry` = 16208; -- was 1602 +UPDATE `creature_template` SET `faction` = 190 WHERE `entry` = 16230; -- was 35 +UPDATE `creature_template` SET `faction` = 290 WHERE `entry` = 16232; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 16234; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 16235; -- was 35 +UPDATE `creature_template` SET `faction` = 80 WHERE `entry` = 16238; -- was 35 +UPDATE `creature_template` SET `faction` = 1604 WHERE `entry` = 16239; -- was 1602 +UPDATE `creature_template` SET `faction` = 1604 WHERE `entry` = 16240; -- was 1602 +UPDATE `creature_template` SET `faction` = 794 WHERE `entry` = 16254; -- was 35 +UPDATE `creature_template` SET `faction` = 814 WHERE `entry` = 16255; -- was 35 +UPDATE `creature_template` SET `faction` = 814 WHERE `entry` = 16281; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 16286; -- was 21 +UPDATE `creature_template` SET `faction` = 1630 WHERE `entry` = 16298; -- was 35 +UPDATE `creature_template` SET `faction` = 1630 WHERE `entry` = 16299; -- was 35 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 16312; -- was 35 +UPDATE `creature_template` SET `faction` = 411 WHERE `entry` = 16354; -- was 32 +UPDATE `creature_template` SET `faction` = 814 WHERE `entry` = 16359; -- was 35 +UPDATE `creature_template` SET `faction` = 814 WHERE `entry` = 16361; -- was 794 +UPDATE `creature_template` SET `faction` = 233 WHERE `entry` = 16368; -- was 14 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 16371; -- was 7 +UPDATE `creature_template` SET `faction` = 31 WHERE `entry` = 16372; -- was 7 +UPDATE `creature_template` SET `faction` = 188 WHERE `entry` = 16377; -- was 7 +UPDATE `creature_template` SET `faction` = 2363 WHERE `entry` = 16378; -- was 1625 +UPDATE `creature_template` SET `faction` = 1630 WHERE `entry` = 16379; -- was 35 +UPDATE `creature_template` SET `faction` = 1630 WHERE `entry` = 16380; -- was 35 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 16381; -- was 1080 +UPDATE `creature_template` SET `faction` = 1634 WHERE `entry` = 16383; -- was 35 +UPDATE `creature_template` SET `faction` = 954 WHERE `entry` = 16387; -- was 14 +UPDATE `creature_template` SET `faction` = 1634 WHERE `entry` = 16394; -- was 35 +UPDATE `creature_template` SET `faction` = 11 WHERE `entry` = 16396; -- was 35 +UPDATE `creature_template` SET `faction` = 1630 WHERE `entry` = 16422; -- was 35 +UPDATE `creature_template` SET `faction` = 1630 WHERE `entry` = 16423; -- was 35 +UPDATE `creature_template` SET `faction` = 71 WHERE `entry` = 16432; -- was 35 +UPDATE `creature_template` SET `faction` = 814 WHERE `entry` = 16435; -- was 35 +UPDATE `creature_template` SET `faction` = 814 WHERE `entry` = 16436; -- was 35 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 16440; -- was 35 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 16441; -- was 14 +UPDATE `creature_template` SET `faction` = 233 WHERE `entry` = 16446; -- was 21 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 16448; -- was 21 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 16451; -- was 14 +UPDATE `creature_template` SET `faction` = 312 WHERE `entry` = 16453; -- was 21 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 16474; -- was 35 +UPDATE `creature_template` SET `faction` = 31 WHERE `entry` = 16479; -- was 7 +UPDATE `creature_template` SET `faction` = 1604 WHERE `entry` = 16480; -- was 1602 +UPDATE `creature_template` SET `faction` = 1638 WHERE `entry` = 16483; -- was 1647 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 16534; -- was 7 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 16537; -- was 14 +UPDATE `creature_template` SET `faction` = 188 WHERE `entry` = 16547; -- was 1629 +UPDATE `creature_template` SET `faction` = 188 WHERE `entry` = 16548; -- was 1 +UPDATE `creature_template` SET `faction` = 188 WHERE `entry` = 16549; -- was 115 +UPDATE `creature_template` SET `faction` = 1638 WHERE `entry` = 16550; -- was 35 +UPDATE `creature_template` SET `faction` = 1604 WHERE `entry` = 16694; -- was 412 +UPDATE `creature_template` SET `faction` = 1604 WHERE `entry` = 16695; -- was 1214 +UPDATE `creature_template` SET `faction` = 1604 WHERE `entry` = 16696; -- was 1641 +UPDATE `creature_template` SET `faction` = 370 WHERE `entry` = 16697; -- was 16 +UPDATE `creature_template` SET `faction` = 188 WHERE `entry` = 16701; -- was 4 +UPDATE `creature_template` SET `faction` = 1638 WHERE `entry` = 16711; -- was 35 +UPDATE `creature_template` SET `faction` = 1638 WHERE `entry` = 16744; -- was 35 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 16775; -- was 35 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 16776; -- was 35 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 16777; -- was 35 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 16778; -- was 35 +UPDATE `creature_template` SET `faction` = 190 WHERE `entry` = 16779; -- was 7 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 16781; -- was 1733 +UPDATE `creature_template` SET `faction` = 814 WHERE `entry` = 16787; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 16809; -- was 14 +UPDATE `creature_template` SET `faction` = 190 WHERE `entry` = 16859; -- was 35 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 16861; -- was 35 +UPDATE `creature_template` SET `faction` = 1662 WHERE `entry` = 16874; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 16900; -- was 35 +UPDATE `creature_template` SET `faction` = 1651 WHERE `entry` = 16910; -- was 35 +UPDATE `creature_template` SET `faction` = 1873 WHERE `entry` = 16927; -- was 31 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 16931; -- was 35 +UPDATE `creature_template` SET `faction` = 51 WHERE `entry` = 16936; -- was 35 +UPDATE `creature_template` SET `faction` = 954 WHERE `entry` = 16939; -- was 14 +UPDATE `creature_template` SET `faction` = 1678 WHERE `entry` = 16940; -- was 35 +UPDATE `creature_template` SET `faction` = 954 WHERE `entry` = 16941; -- was 35 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 16963; -- was 35 +UPDATE `creature_template` SET `faction` = 1663 WHERE `entry` = 16969; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 16970; -- was 35 +UPDATE `creature_template` SET `faction` = 233 WHERE `entry` = 16982; -- was 35 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 16992; -- was 954 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 17010; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 17024; -- was 35 +UPDATE `creature_template` SET `faction` = 775 WHERE `entry` = 17041; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 17067; -- was 14 +UPDATE `creature_template` SET `faction` = 310 WHERE `entry` = 17075; -- was 35 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 17086; -- was 14 +UPDATE `creature_template` SET `faction` = 1694 WHERE `entry` = 17106; -- was 1638 +UPDATE `creature_template` SET `faction` = 51 WHERE `entry` = 17140; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 17167; -- was 35 +UPDATE `creature_template` SET `faction` = 91 WHERE `entry` = 17207; -- was 168 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 17209; -- was 774 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 17248; -- was 16 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 17252; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 17261; -- was 103 +UPDATE `creature_template` SET `faction` = 114 WHERE `entry` = 17274; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 17283; -- was 14 +UPDATE `creature_template` SET `faction` = 1076 WHERE `entry` = 17287; -- was 1642 +UPDATE `creature_template` SET `faction` = 1667 WHERE `entry` = 17288; -- was 1737 +UPDATE `creature_template` SET `faction` = 1667 WHERE `entry` = 17289; -- was 1737 +UPDATE `creature_template` SET `faction` = 1667 WHERE `entry` = 17290; -- was 1666 +UPDATE `creature_template` SET `faction` = 1667 WHERE `entry` = 17292; -- was 1737 +UPDATE `creature_template` SET `faction` = 1669 WHERE `entry` = 17294; -- was 1729 +UPDATE `creature_template` SET `faction` = 1669 WHERE `entry` = 17295; -- was 1729 +UPDATE `creature_template` SET `faction` = 1669 WHERE `entry` = 17296; -- was 1668 +UPDATE `creature_template` SET `faction` = 1669 WHERE `entry` = 17297; -- was 1729 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 17301; -- was 14 +UPDATE `creature_template` SET `faction` = 83 WHERE `entry` = 17304; -- was 125 +UPDATE `creature_template` SET `faction` = 1076 WHERE `entry` = 17310; -- was 124 +UPDATE `creature_template` SET `faction` = 47 WHERE `entry` = 17318; -- was 35 +UPDATE `creature_template` SET `faction` = 82 WHERE `entry` = 17319; -- was 35 +UPDATE `creature_template` SET `faction` = 74 WHERE `entry` = 17332; -- was 35 +UPDATE `creature_template` SET `faction` = 74 WHERE `entry` = 17335; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 17351; -- was 35 +UPDATE `creature_template` SET `faction` = 1657 WHERE `entry` = 17359; -- was 37 +UPDATE `creature_template` SET `faction` = 774 WHERE `entry` = 17375; -- was 1685 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 17379; -- was 1638 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 17385; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 17387; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 17389; -- was 35 +UPDATE `creature_template` SET `faction` = 1668 WHERE `entry` = 17390; -- was 1729 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 17392; -- was 1638 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 17396; -- was 35 +UPDATE `creature_template` SET `faction` = 190 WHERE `entry` = 17408; -- was 35 +UPDATE `creature_template` SET `faction` = 1638 WHERE `entry` = 17426; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 17427; -- was 14 +UPDATE `creature_template` SET `faction` = 370 WHERE `entry` = 17451; -- was 35 +UPDATE `creature_template` SET `faction` = 1683 WHERE `entry` = 17452; -- was 35 +UPDATE `creature_template` SET `faction` = 1684 WHERE `entry` = 17453; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 17461; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 17464; -- was 14 +UPDATE `creature_template` SET `faction` = 2120 WHERE `entry` = 17465; -- was 14 +UPDATE `creature_template` SET `faction` = 290 WHERE `entry` = 17466; -- was 35 +UPDATE `creature_template` SET `faction` = 1375 WHERE `entry` = 17473; -- was 35 +UPDATE `creature_template` SET `faction` = 1686 WHERE `entry` = 17495; -- was 1638 +UPDATE `creature_template` SET `faction` = 1683 WHERE `entry` = 17499; -- was 35 +UPDATE `creature_template` SET `faction` = 1683 WHERE `entry` = 17500; -- was 35 +UPDATE `creature_template` SET `faction` = 1638 WHERE `entry` = 17506; -- was 35 +UPDATE `creature_template` SET `faction` = 1638 WHERE `entry` = 17507; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 17521; -- was 38 +UPDATE `creature_template` SET `faction` = 22 WHERE `entry` = 17522; -- was 312 +UPDATE `creature_template` SET `faction` = 22 WHERE `entry` = 17523; -- was 312 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 17526; -- was 35 +UPDATE `creature_template` SET `faction` = 1638 WHERE `entry` = 17532; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 17533; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 17534; -- was 35 +UPDATE `creature_template` SET `faction` = 40 WHERE `entry` = 17536; -- was 14 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 17539; -- was 35 +UPDATE `creature_template` SET `faction` = 1694 WHERE `entry` = 17551; -- was 1647 +UPDATE `creature_template` SET `faction` = 1638 WHERE `entry` = 17587; -- was 1639 +UPDATE `creature_template` SET `faction` = 1701 WHERE `entry` = 17591; -- was 14 +UPDATE `creature_template` SET `faction` = 1697 WHERE `entry` = 17593; -- was 35 +UPDATE `creature_template` SET `faction` = 1697 WHERE `entry` = 17595; -- was 35 +UPDATE `creature_template` SET `faction` = 1662 WHERE `entry` = 17596; -- was 35 +UPDATE `creature_template` SET `faction` = 91 WHERE `entry` = 17612; -- was 14 +UPDATE `creature_template` SET `faction` = 1620 WHERE `entry` = 17620; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 17621; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 17622; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 17623; -- was 14 +UPDATE `creature_template` SET `faction` = 1697 WHERE `entry` = 17625; -- was 35 +UPDATE `creature_template` SET `faction` = 18 WHERE `entry` = 17638; -- was 35 +UPDATE `creature_template` SET `faction` = 82 WHERE `entry` = 17640; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 17641; -- was 35 +UPDATE `creature_template` SET `faction` = 954 WHERE `entry` = 17646; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 17650; -- was 35 +UPDATE `creature_template` SET `faction` = 1683 WHERE `entry` = 17651; -- was 189 +UPDATE `creature_template` SET `faction` = 1683 WHERE `entry` = 17652; -- was 35 +UPDATE `creature_template` SET `faction` = 634 WHERE `entry` = 17654; -- was 18 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 17669; -- was 24 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 17671; -- was 14 +UPDATE `creature_template` SET `faction` = 188 WHERE `entry` = 17672; -- was 35 +UPDATE `creature_template` SET `faction` = 1701 WHERE `entry` = 17679; -- was 35 +UPDATE `creature_template` SET `faction` = 1638 WHERE `entry` = 17681; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 17695; -- was 14 +UPDATE `creature_template` SET `faction` = 1701 WHERE `entry` = 17705; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 17706; -- was 35 +UPDATE `creature_template` SET `faction` = 1555 WHERE `entry` = 17707; -- was 7 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 17708; -- was 5 +UPDATE `creature_template` SET `faction` = 1555 WHERE `entry` = 17710; -- was 66 +UPDATE `creature_template` SET `faction` = 74 WHERE `entry` = 17715; -- was 14 +UPDATE `creature_template` SET `faction` = 1713 WHERE `entry` = 17736; -- was 35 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 17737; -- was 35 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 17738; -- was 35 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 17739; -- was 35 +UPDATE `creature_template` SET `faction` = 1604 WHERE `entry` = 17809; -- was 7 +UPDATE `creature_template` SET `faction` = 1604 WHERE `entry` = 17810; -- was 7 +UPDATE `creature_template` SET `faction` = 1604 WHERE `entry` = 17811; -- was 7 +UPDATE `creature_template` SET `faction` = 1604 WHERE `entry` = 17812; -- was 7 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 17823; -- was 35 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 17829; -- was 35 +UPDATE `creature_template` SET `faction` = 954 WHERE `entry` = 17830; -- was 14 +UPDATE `creature_template` SET `faction` = 1604 WHERE `entry` = 17832; -- was 1602 +UPDATE `creature_template` SET `faction` = 41 WHERE `entry` = 17836; -- was 35 +UPDATE `creature_template` SET `faction` = 99 WHERE `entry` = 17837; -- was 35 +UPDATE `creature_template` SET `faction` = 1720 WHERE `entry` = 17839; -- was 168 +UPDATE `creature_template` SET `faction` = 1604 WHERE `entry` = 17849; -- was 1602 +UPDATE `creature_template` SET `faction` = 1700 WHERE `entry` = 17853; -- was 35 +UPDATE `creature_template` SET `faction` = 51 WHERE `entry` = 17872; -- was 35 +UPDATE `creature_template` SET `faction` = 51 WHERE `entry` = 17873; -- was 35 +UPDATE `creature_template` SET `faction` = 1700 WHERE `entry` = 17875; -- was 35 +UPDATE `creature_template` SET `faction` = 1720 WHERE `entry` = 17879; -- was 168 +UPDATE `creature_template` SET `faction` = 1720 WHERE `entry` = 17880; -- was 168 +UPDATE `creature_template` SET `faction` = 1720 WHERE `entry` = 17881; -- was 168 +UPDATE `creature_template` SET `faction` = 994 WHERE `entry` = 17894; -- was 1659 +UPDATE `creature_template` SET `faction` = 1720 WHERE `entry` = 17902; -- was 35 +UPDATE `creature_template` SET `faction` = 1720 WHERE `entry` = 17903; -- was 35 +UPDATE `creature_template` SET `faction` = 123 WHERE `entry` = 17910; -- was 14 +UPDATE `creature_template` SET `faction` = 123 WHERE `entry` = 17911; -- was 14 +UPDATE `creature_template` SET `faction` = 123 WHERE `entry` = 17912; -- was 14 +UPDATE `creature_template` SET `faction` = 123 WHERE `entry` = 17913; -- was 14 +UPDATE `creature_template` SET `faction` = 123 WHERE `entry` = 17914; -- was 14 +UPDATE `creature_template` SET `faction` = 1718 WHERE `entry` = 17918; -- was 35 +UPDATE `creature_template` SET `faction` = 118 WHERE `entry` = 17995; -- was 83 +UPDATE `creature_template` SET `faction` = 118 WHERE `entry` = 17996; -- was 83 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 18036; -- was 1718 +UPDATE `creature_template` SET `faction` = 1720 WHERE `entry` = 18040; -- was 35 +UPDATE `creature_template` SET `faction` = 1720 WHERE `entry` = 18041; -- was 35 +UPDATE `creature_template` SET `faction` = 1684 WHERE `entry` = 18075; -- was 35 +UPDATE `creature_template` SET `faction` = 1683 WHERE `entry` = 18076; -- was 35 +UPDATE `creature_template` SET `faction` = 1693 WHERE `entry` = 18107; -- was 35 +UPDATE `creature_template` SET `faction` = 1728 WHERE `entry` = 18126; -- was 7 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 18149; -- was 35 +UPDATE `creature_template` SET `faction` = 74 WHERE `entry` = 18154; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 18176; -- was 74 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 18177; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 18178; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 18179; -- was 74 +UPDATE `creature_template` SET `faction` = 91 WHERE `entry` = 18182; -- was 14 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 18225; -- was 1630 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 18235; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 18236; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 18254; -- was 35 +UPDATE `creature_template` SET `faction` = 114 WHERE `entry` = 18263; -- was 35 +UPDATE `creature_template` SET `faction` = 114 WHERE `entry` = 18264; -- was 35 +UPDATE `creature_template` SET `faction` = 1731 WHERE `entry` = 18271; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 18284; -- was 35 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 18294; -- was 250 +UPDATE `creature_template` SET `faction` = 1678 WHERE `entry` = 18298; -- was 14 +UPDATE `creature_template` SET `faction` = 1604 WHERE `entry` = 18337; -- was 1602 +UPDATE `creature_template` SET `faction` = 1769 WHERE `entry` = 18338; -- was 58 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 18374; -- was 35 +UPDATE `creature_template` SET `faction` = 188 WHERE `entry` = 18381; -- was 6 +UPDATE `creature_template` SET `faction` = 495 WHERE `entry` = 18396; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 18397; -- was 35 +UPDATE `creature_template` SET `faction` = 1679 WHERE `entry` = 18399; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 18400; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 18402; -- was 14 +UPDATE `creature_template` SET `faction` = 1712 WHERE `entry` = 18403; -- was 35 +UPDATE `creature_template` SET `faction` = 45 WHERE `entry` = 18423; -- was 168 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 18441; -- was 35 +UPDATE `creature_template` SET `faction` = 534 WHERE `entry` = 18442; -- was 35 +UPDATE `creature_template` SET `faction` = 714 WHERE `entry` = 18443; -- was 35 +UPDATE `creature_template` SET `faction` = 1738 WHERE `entry` = 18462; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 18478; -- was 14 +UPDATE `creature_template` SET `faction` = 534 WHERE `entry` = 18494; -- was 35 +UPDATE `creature_template` SET `faction` = 714 WHERE `entry` = 18496; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 18498; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 18499; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 18500; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 18501; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 18503; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 18506; -- was 35 +UPDATE `creature_template` SET `faction` = 1738 WHERE `entry` = 18533; -- was 14 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 18585; -- was 14 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 18623; -- was 35 +UPDATE `creature_template` SET `faction` = 1604 WHERE `entry` = 18628; -- was 1602 +UPDATE `creature_template` SET `faction` = 49 WHERE `entry` = 18648; -- was 14 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 18659; -- was 91 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 18663; -- was 35 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 18679; -- was 14 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 18683; -- was 168 +UPDATE `creature_template` SET `faction` = 1738 WHERE `entry` = 18685; -- was 14 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 18686; -- was 168 +UPDATE `creature_template` SET `faction` = 1652 WHERE `entry` = 18687; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 18689; -- was 1620 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 18692; -- was 16 +UPDATE `creature_template` SET `faction` = 1813 WHERE `entry` = 18695; -- was 1620 +UPDATE `creature_template` SET `faction` = 91 WHERE `entry` = 18701; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 18703; -- was 35 +UPDATE `creature_template` SET `faction` = 1663 WHERE `entry` = 18706; -- was 1662 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 18728; -- was 14 +UPDATE `creature_template` SET `faction` = 15 WHERE `entry` = 18734; -- was 35 +UPDATE `creature_template` SET `faction` = 15 WHERE `entry` = 18735; -- was 35 +UPDATE `creature_template` SET `faction` = 15 WHERE `entry` = 18736; -- was 35 +UPDATE `creature_template` SET `faction` = 15 WHERE `entry` = 18737; -- was 35 +UPDATE `creature_template` SET `faction` = 15 WHERE `entry` = 18738; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 18766; -- was 35 +UPDATE `creature_template` SET `faction` = 1747 WHERE `entry` = 18769; -- was 35 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 18770; -- was 35 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 18795; -- was 82 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 18806; -- was 1620 +UPDATE `creature_template` SET `faction` = 1604 WHERE `entry` = 18816; -- was 1602 +UPDATE `creature_template` SET `faction` = 1604 WHERE `entry` = 18821; -- was 1602 +UPDATE `creature_template` SET `faction` = 45 WHERE `entry` = 18831; -- was 14 +UPDATE `creature_template` SET `faction` = 45 WHERE `entry` = 18832; -- was 14 +UPDATE `creature_template` SET `faction` = 45 WHERE `entry` = 18834; -- was 14 +UPDATE `creature_template` SET `faction` = 45 WHERE `entry` = 18835; -- was 14 +UPDATE `creature_template` SET `faction` = 45 WHERE `entry` = 18836; -- was 14 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 18838; -- was 35 +UPDATE `creature_template` SET `faction` = 45 WHERE `entry` = 18847; -- was 14 +UPDATE `creature_template` SET `faction` = 1701 WHERE `entry` = 18851; -- was 35 +UPDATE `creature_template` SET `faction` = 1701 WHERE `entry` = 18854; -- was 35 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 18861; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 18863; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 18868; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 18871; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 18874; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 18876; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 18878; -- was 35 +UPDATE `creature_template` SET `faction` = 1194 WHERE `entry` = 18904; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 18925; -- was 1620 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 18932; -- was 35 +UPDATE `creature_template` SET `faction` = 80 WHERE `entry` = 18937; -- was 1638 +UPDATE `creature_template` SET `faction` = 1752 WHERE `entry` = 18944; -- was 1754 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 18979; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 18980; -- was 35 +UPDATE `creature_template` SET `faction` = 85 WHERE `entry` = 18989; -- was 35 +UPDATE `creature_template` SET `faction` = 1720 WHERE `entry` = 18994; -- was 14 +UPDATE `creature_template` SET `faction` = 1720 WHERE `entry` = 18995; -- was 14 +UPDATE `creature_template` SET `faction` = 1752 WHERE `entry` = 19005; -- was 1754 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 19044; -- was 14 +UPDATE `creature_template` SET `faction` = 778 WHERE `entry` = 19066; -- was 35 +UPDATE `creature_template` SET `faction` = 1873 WHERE `entry` = 19134; -- was 35 +UPDATE `creature_template` SET `faction` = 1873 WHERE `entry` = 19135; -- was 35 +UPDATE `creature_template` SET `faction` = 29 WHERE `entry` = 19175; -- was 714 +UPDATE `creature_template` SET `faction` = 126 WHERE `entry` = 19177; -- was 714 +UPDATE `creature_template` SET `faction` = 68 WHERE `entry` = 19178; -- was 714 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 19200; -- was 35 +UPDATE `creature_template` SET `faction` = 91 WHERE `entry` = 19203; -- was 14 +UPDATE `creature_template` SET `faction` = 91 WHERE `entry` = 19204; -- was 14 +UPDATE `creature_template` SET `faction` = 91 WHERE `entry` = 19205; -- was 14 +UPDATE `creature_template` SET `faction` = 91 WHERE `entry` = 19206; -- was 14 +UPDATE `creature_template` SET `faction` = 1768 WHERE `entry` = 19207; -- was 14 +UPDATE `creature_template` SET `faction` = 1769 WHERE `entry` = 19214; -- was 35 +UPDATE `creature_template` SET `faction` = 1720 WHERE `entry` = 19215; -- was 1718 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 19222; -- was 1759 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 19225; -- was 1759 +UPDATE `creature_template` SET `faction` = 954 WHERE `entry` = 19233; -- was 35 +UPDATE `creature_template` SET `faction` = 1671 WHERE `entry` = 19241; -- was 1666 +UPDATE `creature_template` SET `faction` = 1662 WHERE `entry` = 19267; -- was 35 +UPDATE `creature_template` SET `faction` = 1662 WHERE `entry` = 19268; -- was 35 +UPDATE `creature_template` SET `faction` = 1729 WHERE `entry` = 19274; -- was 1668 +UPDATE `creature_template` SET `faction` = 1754 WHERE `entry` = 19284; -- was 14 +UPDATE `creature_template` SET `faction` = 1754 WHERE `entry` = 19285; -- was 35 +UPDATE `creature_template` SET `faction` = 1754 WHERE `entry` = 19286; -- was 35 +UPDATE `creature_template` SET `faction` = 1754 WHERE `entry` = 19287; -- was 35 +UPDATE `creature_template` SET `faction` = 1754 WHERE `entry` = 19288; -- was 35 +UPDATE `creature_template` SET `faction` = 1754 WHERE `entry` = 19290; -- was 35 +UPDATE `creature_template` SET `faction` = 1754 WHERE `entry` = 19311; -- was 35 +UPDATE `creature_template` SET `faction` = 1767 WHERE `entry` = 19322; -- was 1755 +UPDATE `creature_template` SET `faction` = 84 WHERE `entry` = 19353; -- was 1819 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 19356; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 19357; -- was 35 +UPDATE `creature_template` SET `faction` = 1766 WHERE `entry` = 19365; -- was 1767 +UPDATE `creature_template` SET `faction` = 1766 WHERE `entry` = 19366; -- was 1767 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 19381; -- was 90 +UPDATE `creature_template` SET `faction` = 1767 WHERE `entry` = 19385; -- was 35 +UPDATE `creature_template` SET `faction` = 1767 WHERE `entry` = 19386; -- was 35 +UPDATE `creature_template` SET `faction` = 45 WHERE `entry` = 19389; -- was 14 +UPDATE `creature_template` SET `faction` = 1754 WHERE `entry` = 19391; -- was 35 +UPDATE `creature_template` SET `faction` = 1741 WHERE `entry` = 19412; -- was 35 +UPDATE `creature_template` SET `faction` = 778 WHERE `entry` = 19418; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 19456; -- was 91 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 19461; -- was 1651 +UPDATE `creature_template` SET `faction` = 634 WHERE `entry` = 19464; -- was 14 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 19480; -- was 91 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 19493; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 19507; -- was 190 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 19523; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 19524; -- was 35 +UPDATE `creature_template` SET `faction` = 1701 WHERE `entry` = 19553; -- was 35 +UPDATE `creature_template` SET `faction` = 1735 WHERE `entry` = 19556; -- was 35 +UPDATE `creature_template` SET `faction` = 12 WHERE `entry` = 19567; -- was 1767 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 19577; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 19580; -- was 35 +UPDATE `creature_template` SET `faction` = 1735 WHERE `entry` = 19591; -- was 35 +UPDATE `creature_template` SET `faction` = 1735 WHERE `entry` = 19592; -- was 35 +UPDATE `creature_template` SET `faction` = 1735 WHERE `entry` = 19594; -- was 35 +UPDATE `creature_template` SET `faction` = 1735 WHERE `entry` = 19597; -- was 35 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 19599; -- was 14 +UPDATE `creature_template` SET `faction` = 1735 WHERE `entry` = 19604; -- was 35 +UPDATE `creature_template` SET `faction` = 1735 WHERE `entry` = 19605; -- was 35 +UPDATE `creature_template` SET `faction` = 1735 WHERE `entry` = 19613; -- was 35 +UPDATE `creature_template` SET `faction` = 1735 WHERE `entry` = 19616; -- was 35 +UPDATE `creature_template` SET `faction` = 1735 WHERE `entry` = 19647; -- was 35 +UPDATE `creature_template` SET `faction` = 1678 WHERE `entry` = 19666; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 19668; -- was 1 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 19685; -- was 1 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 19741; -- was 35 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 19742; -- was 35 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 19743; -- was 35 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 19748; -- was 35 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 19749; -- was 35 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 19752; -- was 35 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 19753; -- was 35 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 19758; -- was 35 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 19761; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 19770; -- was 35 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 19771; -- was 35 +UPDATE `creature_template` SET `faction` = 1604 WHERE `entry` = 19774; -- was 35 +UPDATE `creature_template` SET `faction` = 1638 WHERE `entry` = 19777; -- was 16 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 19785; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 19787; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 19790; -- was 35 +UPDATE `creature_template` SET `faction` = 1701 WHERE `entry` = 19793; -- was 35 +UPDATE `creature_template` SET `faction` = 1701 WHERE `entry` = 19794; -- was 35 +UPDATE `creature_template` SET `faction` = 1813 WHERE `entry` = 19803; -- was 35 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 19804; -- was 35 +UPDATE `creature_template` SET `faction` = 1701 WHERE `entry` = 19805; -- was 35 +UPDATE `creature_template` SET `faction` = 1701 WHERE `entry` = 19807; -- was 35 +UPDATE `creature_template` SET `faction` = 1701 WHERE `entry` = 19808; -- was 35 +UPDATE `creature_template` SET `faction` = 1701 WHERE `entry` = 19809; -- was 35 +UPDATE `creature_template` SET `faction` = 1701 WHERE `entry` = 19810; -- was 35 +UPDATE `creature_template` SET `faction` = 1701 WHERE `entry` = 19811; -- was 35 +UPDATE `creature_template` SET `faction` = 1813 WHERE `entry` = 19812; -- was 35 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 19813; -- was 35 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 19814; -- was 35 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 19815; -- was 35 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 19816; -- was 35 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 19817; -- was 35 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 19818; -- was 35 +UPDATE `creature_template` SET `faction` = 1813 WHERE `entry` = 19819; -- was 35 +UPDATE `creature_template` SET `faction` = 1813 WHERE `entry` = 19820; -- was 35 +UPDATE `creature_template` SET `faction` = 1813 WHERE `entry` = 19821; -- was 35 +UPDATE `creature_template` SET `faction` = 1813 WHERE `entry` = 19822; -- was 35 +UPDATE `creature_template` SET `faction` = 190 WHERE `entry` = 19833; -- was 116 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 19856; -- was 474 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 19857; -- was 474 +UPDATE `creature_template` SET `faction` = 1770 WHERE `entry` = 19863; -- was 35 +UPDATE `creature_template` SET `faction` = 1665 WHERE `entry` = 19864; -- was 1935 +UPDATE `creature_template` SET `faction` = 29 WHERE `entry` = 19912; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 19919; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 19920; -- was 35 +UPDATE `creature_template` SET `faction` = 190 WHERE `entry` = 19921; -- was 14 +UPDATE `creature_template` SET `faction` = 114 WHERE `entry` = 19922; -- was 35 +UPDATE `creature_template` SET `faction` = 794 WHERE `entry` = 19942; -- was 1767 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 19949; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 19953; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 19954; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 19958; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 19962; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 19964; -- was 14 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 19965; -- was 35 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 19966; -- was 35 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 19967; -- was 35 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 19968; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 19969; -- was 14 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 19971; -- was 35 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 19972; -- was 35 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 19974; -- was 35 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 19976; -- was 35 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 19981; -- was 35 +UPDATE `creature_template` SET `faction` = 1780 WHERE `entry` = 19995; -- was 1782 +UPDATE `creature_template` SET `faction` = 1780 WHERE `entry` = 19996; -- was 1782 +UPDATE `creature_template` SET `faction` = 1780 WHERE `entry` = 19997; -- was 1782 +UPDATE `creature_template` SET `faction` = 1780 WHERE `entry` = 19998; -- was 1782 +UPDATE `creature_template` SET `faction` = 1678 WHERE `entry` = 19999; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 20000; -- was 35 +UPDATE `creature_template` SET `faction` = 1678 WHERE `entry` = 20019; -- was 35 +UPDATE `creature_template` SET `faction` = 1678 WHERE `entry` = 20020; -- was 1515 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 20021; -- was 168 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 20045; -- was 1620 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 20047; -- was 1620 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 20048; -- was 1620 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 20049; -- was 1620 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 20050; -- was 1620 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 20061; -- was 974 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 20075; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 20078; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 20083; -- was 35 +UPDATE `creature_template` SET `faction` = 74 WHERE `entry` = 20091; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 20101; -- was 35 +UPDATE `creature_template` SET `faction` = 1638 WHERE `entry` = 20119; -- was 1216 +UPDATE `creature_template` SET `faction` = 1638 WHERE `entry` = 20120; -- was 1577 +UPDATE `creature_template` SET `faction` = 1665 WHERE `entry` = 20137; -- was 1935 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 20148; -- was 14 +UPDATE `creature_template` SET `faction` = 954 WHERE `entry` = 20160; -- was 90 +UPDATE `creature_template` SET `faction` = 1789 WHERE `entry` = 20163; -- was 35 +UPDATE `creature_template` SET `faction` = 1789 WHERE `entry` = 20199; -- was 35 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 20208; -- was 14 +UPDATE `creature_template` SET `faction` = 188 WHERE `entry` = 20246; -- was 1604 +UPDATE `creature_template` SET `faction` = 188 WHERE `entry` = 20247; -- was 1604 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 20277; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 20287; -- was 35 +UPDATE `creature_template` SET `faction` = 1780 WHERE `entry` = 20334; -- was 1782 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 20343; -- was 35 +UPDATE `creature_template` SET `faction` = 84 WHERE `entry` = 20382; -- was 1638 +UPDATE `creature_template` SET `faction` = 83 WHERE `entry` = 20390; -- was 1194 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 20399; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 20402; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 20403; -- was 35 +UPDATE `creature_template` SET `faction` = 188 WHERE `entry` = 20408; -- was 1 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 20427; -- was 35 +UPDATE `creature_template` SET `faction` = 1701 WHERE `entry` = 20435; -- was 1793 +UPDATE `creature_template` SET `faction` = 1795 WHERE `entry` = 20446; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 20455; -- was 51 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 20465; -- was 1878 +UPDATE `creature_template` SET `faction` = 188 WHERE `entry` = 20472; -- was 1 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 20479; -- was 35 +UPDATE `creature_template` SET `faction` = 1735 WHERE `entry` = 20494; -- was 1314 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 20496; -- was 35 +UPDATE `creature_template` SET `faction` = 1735 WHERE `entry` = 20500; -- was 1314 +UPDATE `creature_template` SET `faction` = 1701 WHERE `entry` = 20517; -- was 35 +UPDATE `creature_template` SET `faction` = 1731 WHERE `entry` = 20518; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 20519; -- was 35 +UPDATE `creature_template` SET `faction` = 1797 WHERE `entry` = 20552; -- was 35 +UPDATE `creature_template` SET `faction` = 1715 WHERE `entry` = 20554; -- was 14 +UPDATE `creature_template` SET `faction` = 45 WHERE `entry` = 20555; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 20558; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 20602; -- was 1620 +UPDATE `creature_template` SET `faction` = 1873 WHERE `entry` = 20606; -- was 14 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 20618; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 20634; -- was 48 +UPDATE `creature_template` SET `faction` = 1878 WHERE `entry` = 20667; -- was 35 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 20668; -- was 14 +UPDATE `creature_template` SET `faction` = 45 WHERE `entry` = 20669; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 20681; -- was 35 +UPDATE `creature_template` SET `faction` = 1780 WHERE `entry` = 20728; -- was 1782 +UPDATE `creature_template` SET `faction` = 1780 WHERE `entry` = 20729; -- was 1782 +UPDATE `creature_template` SET `faction` = 48 WHERE `entry` = 20734; -- was 35 +UPDATE `creature_template` SET `faction` = 48 WHERE `entry` = 20754; -- was 35 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 20755; -- was 14 +UPDATE `creature_template` SET `faction` = 1780 WHERE `entry` = 20756; -- was 1782 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 20764; -- was 14 +UPDATE `creature_template` SET `faction` = 1780 WHERE `entry` = 20766; -- was 1782 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 20782; -- was 14 +UPDATE `creature_template` SET `faction` = 1797 WHERE `entry` = 20783; -- was 1800 +UPDATE `creature_template` SET `faction` = 1797 WHERE `entry` = 20784; -- was 1800 +UPDATE `creature_template` SET `faction` = 1797 WHERE `entry` = 20785; -- was 1800 +UPDATE `creature_template` SET `faction` = 1797 WHERE `entry` = 20786; -- was 1800 +UPDATE `creature_template` SET `faction` = 1797 WHERE `entry` = 20787; -- was 35 +UPDATE `creature_template` SET `faction` = 1797 WHERE `entry` = 20788; -- was 1800 +UPDATE `creature_template` SET `faction` = 1797 WHERE `entry` = 20789; -- was 1800 +UPDATE `creature_template` SET `faction` = 1797 WHERE `entry` = 20790; -- was 1800 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 20794; -- was 1620 +UPDATE `creature_template` SET `faction` = 1826 WHERE `entry` = 20795; -- was 35 +UPDATE `creature_template` SET `faction` = 1873 WHERE `entry` = 20841; -- was 35 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 20858; -- was 14 +UPDATE `creature_template` SET `faction` = 1799 WHERE `entry` = 20860; -- was 35 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 20884; -- was 35 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 20888; -- was 35 +UPDATE `creature_template` SET `faction` = 1797 WHERE `entry` = 20889; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 20909; -- was 14 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 20918; -- was 35 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 20919; -- was 35 +UPDATE `creature_template` SET `faction` = 1743 WHERE `entry` = 20922; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 20923; -- was 168 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 20927; -- was 35 +UPDATE `creature_template` SET `faction` = 1701 WHERE `entry` = 20994; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 20999; -- was 35 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 21001; -- was 1620 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 21029; -- was 35 +UPDATE `creature_template` SET `faction` = 1715 WHERE `entry` = 21035; -- was 35 +UPDATE `creature_template` SET `faction` = 1813 WHERE `entry` = 21044; -- was 14 +UPDATE `creature_template` SET `faction` = 188 WHERE `entry` = 21056; -- was 1 +UPDATE `creature_template` SET `faction` = 1678 WHERE `entry` = 21057; -- was 14 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 21071; -- was 5 +UPDATE `creature_template` SET `faction` = 778 WHERE `entry` = 21078; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 21079; -- was 35 +UPDATE `creature_template` SET `faction` = 370 WHERE `entry` = 21101; -- was 35 +UPDATE `creature_template` SET `faction` = 1720 WHERE `entry` = 21104; -- was 168 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 21109; -- was 35 +UPDATE `creature_template` SET `faction` = 1720 WHERE `entry` = 21138; -- was 35 +UPDATE `creature_template` SET `faction` = 1720 WHERE `entry` = 21139; -- was 35 +UPDATE `creature_template` SET `faction` = 1604 WHERE `entry` = 21155; -- was 1602 +UPDATE `creature_template` SET `faction` = 1697 WHERE `entry` = 21161; -- was 35 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 21162; -- was 35 +UPDATE `creature_template` SET `faction` = 994 WHERE `entry` = 21165; -- was 35 +UPDATE `creature_template` SET `faction` = 954 WHERE `entry` = 21169; -- was 35 +UPDATE `creature_template` SET `faction` = 1813 WHERE `entry` = 21179; -- was 1848 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 21181; -- was 35 +UPDATE `creature_template` SET `faction` = 1665 WHERE `entry` = 21183; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 21185; -- was 35 +UPDATE `creature_template` SET `faction` = 1815 WHERE `entry` = 21196; -- was 38 +UPDATE `creature_template` SET `faction` = 1711 WHERE `entry` = 21205; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 21212; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 21213; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 21214; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 21215; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 21216; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 21218; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 21220; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 21221; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 21222; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 21224; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 21225; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 21226; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 21227; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 21228; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 21229; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 21230; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 21231; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 21232; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 21246; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 21251; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 21253; -- was 14 +UPDATE `creature_template` SET `faction` = 1665 WHERE `entry` = 21255; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 21260; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 21263; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 21264; -- was 103 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 21268; -- was 1620 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 21269; -- was 1620 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 21270; -- was 1620 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 21271; -- was 1620 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 21272; -- was 1620 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 21273; -- was 1620 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 21274; -- was 1620 +UPDATE `creature_template` SET `faction` = 1743 WHERE `entry` = 21275; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 21276; -- was 35 +UPDATE `creature_template` SET `faction` = 1777 WHERE `entry` = 21288; -- was 35 +UPDATE `creature_template` SET `faction` = 1692 WHERE `entry` = 21290; -- was 35 +UPDATE `creature_template` SET `faction` = 1780 WHERE `entry` = 21296; -- was 1782 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 21298; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 21299; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 21301; -- was 14 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 21306; -- was 14 +UPDATE `creature_template` SET `faction` = 1776 WHERE `entry` = 21312; -- was 35 +UPDATE `creature_template` SET `faction` = 1781 WHERE `entry` = 21319; -- was 35 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 21331; -- was 35 +UPDATE `creature_template` SET `faction` = 495 WHERE `entry` = 21332; -- was 1 +UPDATE `creature_template` SET `faction` = 1734 WHERE `entry` = 21336; -- was 1314 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 21339; -- was 14 +UPDATE `creature_template` SET `faction` = 1734 WHERE `entry` = 21340; -- was 1314 +UPDATE `creature_template` SET `faction` = 45 WHERE `entry` = 21350; -- was 14 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 21362; -- was 16 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 21364; -- was 1620 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 21369; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 21373; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 21375; -- was 35 +UPDATE `creature_template` SET `faction` = 1824 WHERE `entry` = 21406; -- was 35 +UPDATE `creature_template` SET `faction` = 1824 WHERE `entry` = 21407; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 21425; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 21430; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 21435; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 21446; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 21449; -- was 168 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 21452; -- was 14 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 21457; -- was 35 +UPDATE `creature_template` SET `faction` = 80 WHERE `entry` = 21458; -- was 35 +UPDATE `creature_template` SET `faction` = 1738 WHERE `entry` = 21470; -- was 35 +UPDATE `creature_template` SET `faction` = 1735 WHERE `entry` = 21474; -- was 35 +UPDATE `creature_template` SET `faction` = 1735 WHERE `entry` = 21483; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 21514; -- was 16 +UPDATE `creature_template` SET `faction` = 68 WHERE `entry` = 21628; -- was 35 +UPDATE `creature_template` SET `faction` = 954 WHERE `entry` = 21633; -- was 7 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 21638; -- was 35 +UPDATE `creature_template` SET `faction` = 1720 WHERE `entry` = 21697; -- was 35 +UPDATE `creature_template` SET `faction` = 1720 WHERE `entry` = 21698; -- was 35 +UPDATE `creature_template` SET `faction` = 1813 WHERE `entry` = 21703; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 21706; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 21708; -- was 1813 +UPDATE `creature_template` SET `faction` = 1813 WHERE `entry` = 21710; -- was 16 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 21723; -- was 66 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 21724; -- was 66 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 21731; -- was 35 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 21735; -- was 35 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 21753; -- was 35 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 21754; -- was 35 +UPDATE `creature_template` SET `faction` = 1813 WHERE `entry` = 21762; -- was 35 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 21767; -- was 14 +UPDATE `creature_template` SET `faction` = 1843 WHERE `entry` = 21768; -- was 14 +UPDATE `creature_template` SET `faction` = 1813 WHERE `entry` = 21776; -- was 14 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 21778; -- was 168 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 21779; -- was 168 +UPDATE `creature_template` SET `faction` = 1822 WHERE `entry` = 21784; -- was 14 +UPDATE `creature_template` SET `faction` = 1735 WHERE `entry` = 21789; -- was 35 +UPDATE `creature_template` SET `faction` = 1732 WHERE `entry` = 21790; -- was 35 +UPDATE `creature_template` SET `faction` = 1822 WHERE `entry` = 21801; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 21806; -- was 14 +UPDATE `creature_template` SET `faction` = 1824 WHERE `entry` = 21817; -- was 14 +UPDATE `creature_template` SET `faction` = 1824 WHERE `entry` = 21820; -- was 16 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 21821; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 21823; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 21845; -- was 14 +UPDATE `creature_template` SET `faction` = 834 WHERE `entry` = 21853; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 21857; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 21863; -- was 14 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 21866; -- was 35 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 21867; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 21873; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 21874; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 21875; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 21889; -- was 35 +UPDATE `creature_template` SET `faction` = 1862 WHERE `entry` = 21912; -- was 90 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 21913; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 21920; -- was 14 +UPDATE `creature_template` SET `faction` = 188 WHERE `entry` = 21922; -- was 35 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 21925; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 21932; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 21949; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 21958; -- was 14 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 21959; -- was 35 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 21960; -- was 35 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 21961; -- was 35 +UPDATE `creature_template` SET `faction` = 190 WHERE `entry` = 21963; -- was 1768 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 21964; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 21965; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 21966; -- was 14 +UPDATE `creature_template` SET `faction` = 1604 WHERE `entry` = 21968; -- was 35 +UPDATE `creature_template` SET `faction` = 1638 WHERE `entry` = 21969; -- was 35 +UPDATE `creature_template` SET `faction` = 1780 WHERE `entry` = 21975; -- was 1782 +UPDATE `creature_template` SET `faction` = 1857 WHERE `entry` = 21976; -- was 35 +UPDATE `creature_template` SET `faction` = 475 WHERE `entry` = 21977; -- was 35 +UPDATE `creature_template` SET `faction` = 1827 WHERE `entry` = 21982; -- was 35 +UPDATE `creature_template` SET `faction` = 1860 WHERE `entry` = 21985; -- was 90 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 21992; -- was 35 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 21995; -- was 35 +UPDATE `creature_template` SET `faction` = 232 WHERE `entry` = 21998; -- was 35 +UPDATE `creature_template` SET `faction` = 62 WHERE `entry` = 22000; -- was 14 +UPDATE `creature_template` SET `faction` = 83 WHERE `entry` = 22005; -- was 1604 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 22009; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 22022; -- was 1701 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 22027; -- was 2 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 22035; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 22036; -- was 14 +UPDATE `creature_template` SET `faction` = 188 WHERE `entry` = 22047; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 22051; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 22055; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 22056; -- was 14 +UPDATE `creature_template` SET `faction` = 1836 WHERE `entry` = 22064; -- was 35 +UPDATE `creature_template` SET `faction` = 1838 WHERE `entry` = 22067; -- was 1845 +UPDATE `creature_template` SET `faction` = 1701 WHERE `entry` = 22076; -- was 14 +UPDATE `creature_template` SET `faction` = 1776 WHERE `entry` = 22077; -- was 1875 +UPDATE `creature_template` SET `faction` = 1837 WHERE `entry` = 22085; -- was 35 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 22091; -- was 14 +UPDATE `creature_template` SET `faction` = 1813 WHERE `entry` = 22102; -- was 14 +UPDATE `creature_template` SET `faction` = 775 WHERE `entry` = 22114; -- was 1606 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 22119; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 22120; -- was 14 +UPDATE `creature_template` SET `faction` = 1748 WHERE `entry` = 22128; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 22140; -- was 14 +UPDATE `creature_template` SET `faction` = 2 WHERE `entry` = 22189; -- was 1606 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 22191; -- was 35 +UPDATE `creature_template` SET `faction` = 413 WHERE `entry` = 22193; -- was 35 +UPDATE `creature_template` SET `faction` = 62 WHERE `entry` = 22197; -- was 35 +UPDATE `creature_template` SET `faction` = 114 WHERE `entry` = 22207; -- was 14 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 22209; -- was 35 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 22220; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 22226; -- was 168 +UPDATE `creature_template` SET `faction` = 1738 WHERE `entry` = 22232; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 22235; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 22236; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 22238; -- was 14 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 22250; -- was 35 +UPDATE `creature_template` SET `faction` = 62 WHERE `entry` = 22251; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 22256; -- was 35 +UPDATE `creature_template` SET `faction` = 113 WHERE `entry` = 22258; -- was 35 +UPDATE `creature_template` SET `faction` = 1780 WHERE `entry` = 22261; -- was 1782 +UPDATE `creature_template` SET `faction` = 1780 WHERE `entry` = 22262; -- was 1782 +UPDATE `creature_template` SET `faction` = 1780 WHERE `entry` = 22263; -- was 35 +UPDATE `creature_template` SET `faction` = 190 WHERE `entry` = 22285; -- was 35 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 22304; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 22315; -- was 90 +UPDATE `creature_template` SET `faction` = 62 WHERE `entry` = 22316; -- was 35 +UPDATE `creature_template` SET `faction` = 62 WHERE `entry` = 22330; -- was 14 +UPDATE `creature_template` SET `faction` = 250 WHERE `entry` = 22332; -- was 35 +UPDATE `creature_template` SET `faction` = 1738 WHERE `entry` = 22337; -- was 14 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 22338; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 22347; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 22352; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 22357; -- was 14 +UPDATE `creature_template` SET `faction` = 1827 WHERE `entry` = 22359; -- was 35 +UPDATE `creature_template` SET `faction` = 1827 WHERE `entry` = 22361; -- was 35 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 22381; -- was 14 +UPDATE `creature_template` SET `faction` = 778 WHERE `entry` = 22390; -- was 14 +UPDATE `creature_template` SET `faction` = 778 WHERE `entry` = 22391; -- was 35 +UPDATE `creature_template` SET `faction` = 634 WHERE `entry` = 22408; -- was 834 +UPDATE `creature_template` SET `faction` = 1194 WHERE `entry` = 22421; -- was 7 +UPDATE `creature_template` SET `faction` = 188 WHERE `entry` = 22445; -- was 1 +UPDATE `creature_template` SET `faction` = 106 WHERE `entry` = 22448; -- was 35 +UPDATE `creature_template` SET `faction` = 210 WHERE `entry` = 22473; -- was 35 +UPDATE `creature_template` SET `faction` = 495 WHERE `entry` = 22478; -- was 35 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 22484; -- was 2 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 22486; -- was 35 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 22487; -- was 35 +UPDATE `creature_template` SET `faction` = 106 WHERE `entry` = 22490; -- was 35 +UPDATE `creature_template` SET `faction` = 210 WHERE `entry` = 22492; -- was 1606 +UPDATE `creature_template` SET `faction` = 210 WHERE `entry` = 22496; -- was 35 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 22499; -- was 1620 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 22503; -- was 114 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 22504; -- was 114 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 22522; -- was 35 +UPDATE `creature_template` SET `faction` = 774 WHERE `entry` = 22802; -- was 35 +UPDATE `creature_template` SET `faction` = 775 WHERE `entry` = 22804; -- was 35 +UPDATE `creature_template` SET `faction` = 1660 WHERE `entry` = 22810; -- was 1728 +UPDATE `creature_template` SET `faction` = 1818 WHERE `entry` = 22811; -- was 35 +UPDATE `creature_template` SET `faction` = 1741 WHERE `entry` = 22812; -- was 35 +UPDATE `creature_template` SET `faction` = 1731 WHERE `entry` = 22813; -- was 35 +UPDATE `creature_template` SET `faction` = 1707 WHERE `entry` = 22814; -- was 35 +UPDATE `creature_template` SET `faction` = 1779 WHERE `entry` = 22815; -- was 35 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 22825; -- was 35 +UPDATE `creature_template` SET `faction` = 45 WHERE `entry` = 22826; -- was 35 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 22827; -- was 35 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 22828; -- was 35 +UPDATE `creature_template` SET `faction` = 1820 WHERE `entry` = 22840; -- was 35 +UPDATE `creature_template` SET `faction` = 1813 WHERE `entry` = 22848; -- was 1820 +UPDATE `creature_template` SET `faction` = 1843 WHERE `entry` = 22858; -- was 35 +UPDATE `creature_template` SET `faction` = 1843 WHERE `entry` = 22860; -- was 35 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 22894; -- was 35 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 22896; -- was 35 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 22897; -- was 1770 +UPDATE `creature_template` SET `faction` = 1795 WHERE `entry` = 22900; -- was 1807 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 22910; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 22912; -- was 35 +UPDATE `creature_template` SET `faction` = 1797 WHERE `entry` = 22919; -- was 35 +UPDATE `creature_template` SET `faction` = 1797 WHERE `entry` = 22927; -- was 35 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 22929; -- was 1813 +UPDATE `creature_template` SET `faction` = 190 WHERE `entry` = 22932; -- was 7 +UPDATE `creature_template` SET `faction` = 190 WHERE `entry` = 22933; -- was 35 +UPDATE `creature_template` SET `faction` = 1732 WHERE `entry` = 22937; -- was 35 +UPDATE `creature_template` SET `faction` = 1855 WHERE `entry` = 22967; -- was 35 +UPDATE `creature_template` SET `faction` = 1854 WHERE `entry` = 22968; -- was 35 +UPDATE `creature_template` SET `faction` = 1855 WHERE `entry` = 22969; -- was 35 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 22972; -- was 35 +UPDATE `creature_template` SET `faction` = 1660 WHERE `entry` = 22981; -- was 1659 +UPDATE `creature_template` SET `faction` = 1843 WHERE `entry` = 22988; -- was 1701 +UPDATE `creature_template` SET `faction` = 1859 WHERE `entry` = 22989; -- was 35 +UPDATE `creature_template` SET `faction` = 1858 WHERE `entry` = 22990; -- was 1820 +UPDATE `creature_template` SET `faction` = 1738 WHERE `entry` = 22992; -- was 14 +UPDATE `creature_template` SET `faction` = 1738 WHERE `entry` = 22993; -- was 14 +UPDATE `creature_template` SET `faction` = 1738 WHERE `entry` = 22994; -- was 14 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 23013; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 23014; -- was 35 +UPDATE `creature_template` SET `faction` = 1855 WHERE `entry` = 23015; -- was 35 +UPDATE `creature_template` SET `faction` = 290 WHERE `entry` = 23019; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 23020; -- was 1826 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 23026; -- was 31 +UPDATE `creature_template` SET `faction` = 62 WHERE `entry` = 23031; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 23035; -- was 168 +UPDATE `creature_template` SET `faction` = 954 WHERE `entry` = 23044; -- was 35 +UPDATE `creature_template` SET `faction` = 1781 WHERE `entry` = 23052; -- was 35 +UPDATE `creature_template` SET `faction` = 1780 WHERE `entry` = 23053; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 23054; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 23055; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 23061; -- was 103 +UPDATE `creature_template` SET `faction` = 1829 WHERE `entry` = 23078; -- was 35 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 23085; -- was 14 +UPDATE `creature_template` SET `faction` = 85 WHERE `entry` = 23090; -- was 1612 +UPDATE `creature_template` SET `faction` = 91 WHERE `entry` = 23096; -- was 35 +UPDATE `creature_template` SET `faction` = 91 WHERE `entry` = 23097; -- was 35 +UPDATE `creature_template` SET `faction` = 91 WHERE `entry` = 23098; -- was 35 +UPDATE `creature_template` SET `faction` = 91 WHERE `entry` = 23099; -- was 35 +UPDATE `creature_template` SET `faction` = 91 WHERE `entry` = 23100; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 23109; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 23111; -- was 14 +UPDATE `creature_template` SET `faction` = 1829 WHERE `entry` = 23113; -- was 35 +UPDATE `creature_template` SET `faction` = 1874 WHERE `entry` = 23115; -- was 1872 +UPDATE `creature_template` SET `faction` = 190 WHERE `entry` = 23121; -- was 35 +UPDATE `creature_template` SET `faction` = 1604 WHERE `entry` = 23131; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 23132; -- was 168 +UPDATE `creature_template` SET `faction` = 1863 WHERE `entry` = 23143; -- was 35 +UPDATE `creature_template` SET `faction` = 1865 WHERE `entry` = 23144; -- was 35 +UPDATE `creature_template` SET `faction` = 1865 WHERE `entry` = 23148; -- was 35 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 23151; -- was 14 +UPDATE `creature_template` SET `faction` = 1843 WHERE `entry` = 23152; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 23153; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 23154; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 23161; -- was 1860 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 23167; -- was 14 +UPDATE `creature_template` SET `faction` = 1864 WHERE `entry` = 23168; -- was 14 +UPDATE `creature_template` SET `faction` = 1829 WHERE `entry` = 23173; -- was 35 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 23174; -- was 35 +UPDATE `creature_template` SET `faction` = 1824 WHERE `entry` = 23187; -- was 35 +UPDATE `creature_template` SET `faction` = 190 WHERE `entry` = 23189; -- was 35 +UPDATE `creature_template` SET `faction` = 190 WHERE `entry` = 23190; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 23192; -- was 7 +UPDATE `creature_template` SET `faction` = 1829 WHERE `entry` = 23199; -- was 35 +UPDATE `creature_template` SET `faction` = 1818 WHERE `entry` = 23202; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 23205; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 23206; -- was 35 +UPDATE `creature_template` SET `faction` = 2161 WHERE `entry` = 23211; -- was 35 +UPDATE `creature_template` SET `faction` = 1829 WHERE `entry` = 23212; -- was 35 +UPDATE `creature_template` SET `faction` = 1829 WHERE `entry` = 23220; -- was 35 +UPDATE `creature_template` SET `faction` = 1829 WHERE `entry` = 23228; -- was 35 +UPDATE `creature_template` SET `faction` = 1829 WHERE `entry` = 23230; -- was 35 +UPDATE `creature_template` SET `faction` = 290 WHERE `entry` = 23241; -- was 35 +UPDATE `creature_template` SET `faction` = 250 WHERE `entry` = 23242; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 23246; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 23247; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 23249; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 23250; -- was 35 +UPDATE `creature_template` SET `faction` = 190 WHERE `entry` = 23252; -- was 35 +UPDATE `creature_template` SET `faction` = 188 WHERE `entry` = 23258; -- was 1 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 23261; -- was 103 +UPDATE `creature_template` SET `faction` = 1829 WHERE `entry` = 23275; -- was 35 +UPDATE `creature_template` SET `faction` = 1829 WHERE `entry` = 23278; -- was 35 +UPDATE `creature_template` SET `faction` = 1735 WHERE `entry` = 23280; -- was 1734 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 23281; -- was 103 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 23282; -- was 103 +UPDATE `creature_template` SET `faction` = 1865 WHERE `entry` = 23284; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 23290; -- was 35 +UPDATE `creature_template` SET `faction` = 1865 WHERE `entry` = 23291; -- was 62 +UPDATE `creature_template` SET `faction` = 1813 WHERE `entry` = 23319; -- was 1820 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 23320; -- was 32 +UPDATE `creature_template` SET `faction` = 1829 WHERE `entry` = 23323; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 23332; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 23333; -- was 35 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 23338; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 23350; -- was 35 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 23353; -- was 35 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 23354; -- was 35 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 23355; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 23368; -- was 35 +UPDATE `creature_template` SET `faction` = 1813 WHERE `entry` = 23374; -- was 1820 +UPDATE `creature_template` SET `faction` = 1870 WHERE `entry` = 23377; -- was 35 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 23386; -- was 14 +UPDATE `creature_template` SET `faction` = 1813 WHERE `entry` = 23389; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 23390; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 23391; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 23393; -- was 35 +UPDATE `creature_template` SET `faction` = 1813 WHERE `entry` = 23404; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 23414; -- was 35 +UPDATE `creature_template` SET `faction` = 250 WHERE `entry` = 23430; -- was 35 +UPDATE `creature_template` SET `faction` = 1813 WHERE `entry` = 23436; -- was 35 +UPDATE `creature_template` SET `faction` = 1604 WHERE `entry` = 23447; -- was 1602 +UPDATE `creature_template` SET `faction` = 45 WHERE `entry` = 23450; -- was 35 +UPDATE `creature_template` SET `faction` = 1875 WHERE `entry` = 23453; -- was 35 +UPDATE `creature_template` SET `faction` = 1862 WHERE `entry` = 23471; -- was 35 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 23473; -- was 1856 +UPDATE `creature_template` SET `faction` = 1829 WHERE `entry` = 23474; -- was 35 +UPDATE `creature_template` SET `faction` = 1829 WHERE `entry` = 23475; -- was 35 +UPDATE `creature_template` SET `faction` = 1829 WHERE `entry` = 23476; -- was 35 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 23529; -- was 32 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 23530; -- was 32 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 23531; -- was 32 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 23545; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 23561; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 23562; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 23563; -- was 35 +UPDATE `creature_template` SET `faction` = 12 WHERE `entry` = 23568; -- was 1078 +UPDATE `creature_template` SET `faction` = 1885 WHERE `entry` = 23671; -- was 35 +UPDATE `creature_template` SET `faction` = 1896 WHERE `entry` = 23721; -- was 35 +UPDATE `creature_template` SET `faction` = 778 WHERE `entry` = 23726; -- was 35 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 23750; -- was 1771 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 23757; -- was 1890 +UPDATE `creature_template` SET `faction` = 1890 WHERE `entry` = 23759; -- was 35 +UPDATE `creature_template` SET `faction` = 1929 WHERE `entry` = 23782; -- was 35 +UPDATE `creature_template` SET `faction` = 1933 WHERE `entry` = 23784; -- was 1314 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 23795; -- was 736 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 23812; -- was 35 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 23822; -- was 1890 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 23872; -- was 736 +UPDATE `creature_template` SET `faction` = 1665 WHERE `entry` = 23877; -- was 35 +UPDATE `creature_template` SET `faction` = 1665 WHERE `entry` = 23878; -- was 35 +UPDATE `creature_template` SET `faction` = 1665 WHERE `entry` = 23879; -- was 35 +UPDATE `creature_template` SET `faction` = 1665 WHERE `entry` = 23880; -- was 35 +UPDATE `creature_template` SET `faction` = 188 WHERE `entry` = 23909; -- was 1 +UPDATE `creature_template` SET `faction` = 1890 WHERE `entry` = 23912; -- was 35 +UPDATE `creature_template` SET `faction` = 1890 WHERE `entry` = 23913; -- was 35 +UPDATE `creature_template` SET `faction` = 1890 WHERE `entry` = 23914; -- was 35 +UPDATE `creature_template` SET `faction` = 1890 WHERE `entry` = 23944; -- was 35 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 23968; -- was 2036 +UPDATE `creature_template` SET `faction` = 114 WHERE `entry` = 23996; -- was 35 +UPDATE `creature_template` SET `faction` = 1899 WHERE `entry` = 24009; -- was 35 +UPDATE `creature_template` SET `faction` = 1900 WHERE `entry` = 24010; -- was 35 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 24023; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 24039; -- was 35 +UPDATE `creature_template` SET `faction` = 974 WHERE `entry` = 24041; -- was 35 +UPDATE `creature_template` SET `faction` = 1885 WHERE `entry` = 24044; -- was 35 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 24045; -- was 1892 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 24046; -- was 1892 +UPDATE `creature_template` SET `faction` = 1885 WHERE `entry` = 24105; -- was 35 +UPDATE `creature_template` SET `faction` = 1885 WHERE `entry` = 24107; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 24136; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 24138; -- was 1890 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 24143; -- was 1890 +UPDATE `creature_template` SET `faction` = 1901 WHERE `entry` = 24156; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 24187; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 24207; -- was 1629 +UPDATE `creature_template` SET `faction` = 1922 WHERE `entry` = 24211; -- was 35 +UPDATE `creature_template` SET `faction` = 22 WHERE `entry` = 24219; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 24224; -- was 1890 +UPDATE `creature_template` SET `faction` = 1890 WHERE `entry` = 24240; -- was 14 +UPDATE `creature_template` SET `faction` = 1890 WHERE `entry` = 24241; -- was 14 +UPDATE `creature_template` SET `faction` = 1890 WHERE `entry` = 24242; -- was 14 +UPDATE `creature_template` SET `faction` = 1890 WHERE `entry` = 24243; -- was 14 +UPDATE `creature_template` SET `faction` = 1890 WHERE `entry` = 24244; -- was 14 +UPDATE `creature_template` SET `faction` = 1890 WHERE `entry` = 24245; -- was 14 +UPDATE `creature_template` SET `faction` = 1890 WHERE `entry` = 24246; -- was 14 +UPDATE `creature_template` SET `faction` = 1890 WHERE `entry` = 24247; -- was 14 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 24263; -- was 32 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 24264; -- was 32 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 24265; -- was 32 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 24279; -- was 35 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 24320; -- was 1890 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 24338; -- was 35 +UPDATE `creature_template` SET `faction` = 1662 WHERE `entry` = 24344; -- was 35 +UPDATE `creature_template` SET `faction` = 634 WHERE `entry` = 24346; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 24413; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 24426; -- was 35 +UPDATE `creature_template` SET `faction` = 1720 WHERE `entry` = 24429; -- was 35 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 24446; -- was 35 +UPDATE `creature_template` SET `faction` = 18 WHERE `entry` = 24461; -- was 21 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 24471; -- was 35 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 24476; -- was 87 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 24484; -- was 774 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 24505; -- was 35 +UPDATE `creature_template` SET `faction` = 1604 WHERE `entry` = 24520; -- was 1602 +UPDATE `creature_template` SET `faction` = 1684 WHERE `entry` = 24529; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 24552; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 24555; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 24558; -- was 14 +UPDATE `creature_template` SET `faction` = 74 WHERE `entry` = 24576; -- was 1692 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 24656; -- was 14 +UPDATE `creature_template` SET `faction` = 1812 WHERE `entry` = 24700; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 24708; -- was 16 +UPDATE `creature_template` SET `faction` = 1734 WHERE `entry` = 24711; -- was 775 +UPDATE `creature_template` SET `faction` = 1888 WHERE `entry` = 24713; -- was 14 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 24715; -- was 16 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 24765; -- was 35 +UPDATE `creature_template` SET `faction` = 190 WHERE `entry` = 24780; -- was 35 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 24792; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 24796; -- was 35 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 24814; -- was 14 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 24815; -- was 16 +UPDATE `creature_template` SET `faction` = 1890 WHERE `entry` = 24858; -- was 14 +UPDATE `creature_template` SET `faction` = 17 WHERE `entry` = 24860; -- was 35 +UPDATE `creature_template` SET `faction` = 1770 WHERE `entry` = 24891; -- was 35 +UPDATE `creature_template` SET `faction` = 1959 WHERE `entry` = 24892; -- was 14 +UPDATE `creature_template` SET `faction` = 1770 WHERE `entry` = 24895; -- was 35 +UPDATE `creature_template` SET `faction` = 1888 WHERE `entry` = 24900; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 24917; -- was 35 +UPDATE `creature_template` SET `faction` = 1956 WHERE `entry` = 24923; -- was 35 +UPDATE `creature_template` SET `faction` = 1956 WHERE `entry` = 24937; -- was 1960 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 24955; -- was 14 +UPDATE `creature_template` SET `faction` = 1960 WHERE `entry` = 24975; -- was 1956 +UPDATE `creature_template` SET `faction` = 1957 WHERE `entry` = 24981; -- was 35 +UPDATE `creature_template` SET `faction` = 1960 WHERE `entry` = 25039; -- was 1967 +UPDATE `creature_template` SET `faction` = 1534 WHERE `entry` = 25040; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 25041; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 25087; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 25165; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 25166; -- was 14 +UPDATE `creature_template` SET `faction` = 1604 WHERE `entry` = 25223; -- was 35 +UPDATE `creature_template` SET `faction` = 1602 WHERE `entry` = 25246; -- was 35 +UPDATE `creature_template` SET `faction` = 1973 WHERE `entry` = 25253; -- was 1976 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 25268; -- was 14 +UPDATE `creature_template` SET `faction` = 1981 WHERE `entry` = 25270; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 25315; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 25354; -- was 35 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 25359; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 25373; -- was 14 +UPDATE `creature_template` SET `faction` = 1950 WHERE `entry` = 25399; -- was 35 +UPDATE `creature_template` SET `faction` = 1982 WHERE `entry` = 25453; -- was 35 +UPDATE `creature_template` SET `faction` = 1981 WHERE `entry` = 25461; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 25483; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 25484; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 25486; -- was 14 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 25497; -- was 35 +UPDATE `creature_template` SET `faction` = 190 WHERE `entry` = 25499; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 25502; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 25506; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 25588; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 25598; -- was 14 +UPDATE `creature_template` SET `faction` = 1981 WHERE `entry` = 25607; -- was 35 +UPDATE `creature_template` SET `faction` = 1950 WHERE `entry` = 25636; -- was 2047 +UPDATE `creature_template` SET `faction` = 1982 WHERE `entry` = 25655; -- was 35 +UPDATE `creature_template` SET `faction` = 1973 WHERE `entry` = 25705; -- was 1891 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 25708; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 25730; -- was 1982 +UPDATE `creature_template` SET `faction` = 1998 WHERE `entry` = 25740; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 25741; -- was 14 +UPDATE `creature_template` SET `faction` = 1979 WHERE `entry` = 25749; -- was 35 +UPDATE `creature_template` SET `faction` = 1979 WHERE `entry` = 25751; -- was 1980 +UPDATE `creature_template` SET `faction` = 1998 WHERE `entry` = 25755; -- was 35 +UPDATE `creature_template` SET `faction` = 1998 WHERE `entry` = 25756; -- was 35 +UPDATE `creature_template` SET `faction` = 1998 WHERE `entry` = 25757; -- was 35 +UPDATE `creature_template` SET `faction` = 534 WHERE `entry` = 25759; -- was 35 +UPDATE `creature_template` SET `faction` = 974 WHERE `entry` = 25768; -- was 35 +UPDATE `creature_template` SET `faction` = 2006 WHERE `entry` = 25784; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 25798; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 25799; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 25837; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 25840; -- was 14 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 25855; -- was 35 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 25860; -- was 14 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 25864; -- was 14 +UPDATE `creature_template` SET `faction` = 1998 WHERE `entry` = 25865; -- was 35 +UPDATE `creature_template` SET `faction` = 84 WHERE `entry` = 25888; -- was 35 +UPDATE `creature_template` SET `faction` = 84 WHERE `entry` = 25889; -- was 35 +UPDATE `creature_template` SET `faction` = 84 WHERE `entry` = 25891; -- was 35 +UPDATE `creature_template` SET `faction` = 84 WHERE `entry` = 25892; -- was 35 +UPDATE `creature_template` SET `faction` = 84 WHERE `entry` = 25903; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 25948; -- was 14 +UPDATE `creature_template` SET `faction` = 1960 WHERE `entry` = 25950; -- was 1956 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 25988; -- was 35 +UPDATE `creature_template` SET `faction` = 188 WHERE `entry` = 25989; -- was 35 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 25990; -- was 35 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 26016; -- was 35 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 26017; -- was 35 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 26019; -- was 35 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 26020; -- was 35 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 26021; -- was 35 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 26024; -- was 35 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 26027; -- was 35 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 26028; -- was 35 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 26029; -- was 35 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 26032; -- was 35 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 26033; -- was 35 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 26037; -- was 35 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 26038; -- was 35 +UPDATE `creature_template` SET `faction` = 120 WHERE `entry` = 26081; -- was 35 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 26099; -- was 1892 +UPDATE `creature_template` SET `faction` = 188 WHERE `entry` = 26119; -- was 1610 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 26125; -- was 1610 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 26165; -- was 35 +UPDATE `creature_template` SET `faction` = 1974 WHERE `entry` = 26170; -- was 1892 +UPDATE `creature_template` SET `faction` = 1801 WHERE `entry` = 26183; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 26203; -- was 35 +UPDATE `creature_template` SET `faction` = 1727 WHERE `entry` = 26221; -- was 70 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 26232; -- was 35 +UPDATE `creature_template` SET `faction` = 1816 WHERE `entry` = 26237; -- was 35 +UPDATE `creature_template` SET `faction` = 1975 WHERE `entry` = 26250; -- was 35 +UPDATE `creature_template` SET `faction` = 1074 WHERE `entry` = 26396; -- was 29 +UPDATE `creature_template` SET `faction` = 1074 WHERE `entry` = 26397; -- was 29 +UPDATE `creature_template` SET `faction` = 1604 WHERE `entry` = 26398; -- was 1602 +UPDATE `creature_template` SET `faction` = 1891 WHERE `entry` = 26448; -- was 2004 +UPDATE `creature_template` SET `faction` = 1950 WHERE `entry` = 26450; -- was 35 +UPDATE `creature_template` SET `faction` = 1885 WHERE `entry` = 26451; -- was 14 +UPDATE `creature_template` SET `faction` = 190 WHERE `entry` = 26500; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 26510; -- was 7 +UPDATE `creature_template` SET `faction` = 190 WHERE `entry` = 26522; -- was 14 +UPDATE `creature_template` SET `faction` = 190 WHERE `entry` = 26543; -- was 35 +UPDATE `creature_template` SET `faction` = 1953 WHERE `entry` = 26586; -- was 35 +UPDATE `creature_template` SET `faction` = 1953 WHERE `entry` = 26590; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 26620; -- was 1965 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 26623; -- was 1814 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 26635; -- was 1814 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 26636; -- was 1814 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 26639; -- was 1965 +UPDATE `creature_template` SET `faction` = 1748 WHERE `entry` = 26650; -- was 35 +UPDATE `creature_template` SET `faction` = 1771 WHERE `entry` = 26676; -- was 2018 +UPDATE `creature_template` SET `faction` = 1935 WHERE `entry` = 26678; -- was 35 +UPDATE `creature_template` SET `faction` = 190 WHERE `entry` = 26701; -- was 35 +UPDATE `creature_template` SET `faction` = 190 WHERE `entry` = 26787; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 26800; -- was 1802 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 26802; -- was 1802 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 26805; -- was 1802 +UPDATE `creature_template` SET `faction` = 1981 WHERE `entry` = 26813; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 26890; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 26892; -- was 35 +UPDATE `creature_template` SET `faction` = 190 WHERE `entry` = 26924; -- was 35 +UPDATE `creature_template` SET `faction` = 1965 WHERE `entry` = 26943; -- was 14 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 26966; -- was 14 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 26967; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 27123; -- was 35 +UPDATE `creature_template` SET `faction` = 2009 WHERE `entry` = 27170; -- was 35 +UPDATE `creature_template` SET `faction` = 2009 WHERE `entry` = 27175; -- was 35 +UPDATE `creature_template` SET `faction` = 775 WHERE `entry` = 27216; -- was 35 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 27228; -- was 35 +UPDATE `creature_template` SET `faction` = 67 WHERE `entry` = 27238; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 27304; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 27310; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 27311; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 27312; -- was 35 +UPDATE `creature_template` SET `faction` = 1912 WHERE `entry` = 27335; -- was 1975 +UPDATE `creature_template` SET `faction` = 114 WHERE `entry` = 27339; -- was 35 +UPDATE `creature_template` SET `faction` = 67 WHERE `entry` = 27374; -- was 35 +UPDATE `creature_template` SET `faction` = 974 WHERE `entry` = 27386; -- was 35 +UPDATE `creature_template` SET `faction` = 2033 WHERE `entry` = 27405; -- was 35 +UPDATE `creature_template` SET `faction` = 67 WHERE `entry` = 27406; -- was 35 +UPDATE `creature_template` SET `faction` = 2039 WHERE `entry` = 27417; -- was 16 +UPDATE `creature_template` SET `faction` = 2036 WHERE `entry` = 27430; -- was 35 +UPDATE `creature_template` SET `faction` = 2004 WHERE `entry` = 27467; -- was 35 +UPDATE `creature_template` SET `faction` = 1314 WHERE `entry` = 27470; -- was 1801 +UPDATE `creature_template` SET `faction` = 1953 WHERE `entry` = 27523; -- was 35 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 27590; -- was 35 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 27591; -- was 35 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 27592; -- was 35 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 27595; -- was 35 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 27596; -- was 35 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 27599; -- was 35 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 27601; -- was 35 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 27609; -- was 35 +UPDATE `creature_template` SET `faction` = 974 WHERE `entry` = 27616; -- was 16 +UPDATE `creature_template` SET `faction` = 974 WHERE `entry` = 27618; -- was 16 +UPDATE `creature_template` SET `faction` = 974 WHERE `entry` = 27619; -- was 16 +UPDATE `creature_template` SET `faction` = 974 WHERE `entry` = 27624; -- was 16 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 27634; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 27655; -- was 16 +UPDATE `creature_template` SET `faction` = 2010 WHERE `entry` = 27683; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 27696; -- was 35 +UPDATE `creature_template` SET `faction` = 1979 WHERE `entry` = 27727; -- was 35 +UPDATE `creature_template` SET `faction` = 774 WHERE `entry` = 27811; -- was 35 +UPDATE `creature_template` SET `faction` = 774 WHERE `entry` = 27815; -- was 775 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 27829; -- was 1629 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 27893; -- was 6 +UPDATE `creature_template` SET `faction` = 614 WHERE `entry` = 27894; -- was 35 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 27928; -- was 2050 +UPDATE `creature_template` SET `faction` = 1603 WHERE `entry` = 27946; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 27949; -- was 1802 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 27974; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 27979; -- was 35 +UPDATE `creature_template` SET `faction` = 2041 WHERE `entry` = 27996; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 28017; -- was 3 +UPDATE `creature_template` SET `faction` = 2138 WHERE `entry` = 28029; -- was 2070 +UPDATE `creature_template` SET `faction` = 2004 WHERE `entry` = 28061; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 28066; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 28104; -- was 35 +UPDATE `creature_template` SET `faction` = 2061 WHERE `entry` = 28105; -- was 35 +UPDATE `creature_template` SET `faction` = 2064 WHERE `entry` = 28115; -- was 35 +UPDATE `creature_template` SET `faction` = 2061 WHERE `entry` = 28116; -- was 35 +UPDATE `creature_template` SET `faction` = 2063 WHERE `entry` = 28120; -- was 35 +UPDATE `creature_template` SET `faction` = 2063 WHERE `entry` = 28121; -- was 35 +UPDATE `creature_template` SET `faction` = 2063 WHERE `entry` = 28122; -- was 35 +UPDATE `creature_template` SET `faction` = 190 WHERE `entry` = 28163; -- was 1736 +UPDATE `creature_template` SET `faction` = 190 WHERE `entry` = 28169; -- was 2078 +UPDATE `creature_template` SET `faction` = 2073 WHERE `entry` = 28179; -- was 2070 +UPDATE `creature_template` SET `faction` = 67 WHERE `entry` = 28187; -- was 35 +UPDATE `creature_template` SET `faction` = 974 WHERE `entry` = 28189; -- was 35 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 28194; -- was 35 +UPDATE `creature_template` SET `faction` = 190 WHERE `entry` = 28203; -- was 35 +UPDATE `creature_template` SET `faction` = 2060 WHERE `entry` = 28214; -- was 35 +UPDATE `creature_template` SET `faction` = 2060 WHERE `entry` = 28215; -- was 35 +UPDATE `creature_template` SET `faction` = 2060 WHERE `entry` = 28216; -- was 35 +UPDATE `creature_template` SET `faction` = 114 WHERE `entry` = 28237; -- was 35 +UPDATE `creature_template` SET `faction` = 2363 WHERE `entry` = 28247; -- was 2073 +UPDATE `creature_template` SET `faction` = 114 WHERE `entry` = 28265; -- was 35 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 28267; -- was 7 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 28310; -- was 35 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 28311; -- was 35 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 28312; -- was 1732 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 28319; -- was 1732 +UPDATE `creature_template` SET `faction` = 775 WHERE `entry` = 28329; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 28384; -- was 35 +UPDATE `creature_template` SET `faction` = 2061 WHERE `entry` = 28399; -- was 35 +UPDATE `creature_template` SET `faction` = 2070 WHERE `entry` = 28415; -- was 35 +UPDATE `creature_template` SET `faction` = 113 WHERE `entry` = 28451; -- was 35 +UPDATE `creature_template` SET `faction` = 190 WHERE `entry` = 28468; -- was 35 +UPDATE `creature_template` SET `faction` = 188 WHERE `entry` = 28470; -- was 14 +UPDATE `creature_template` SET `faction` = 2082 WHERE `entry` = 28471; -- was 2104 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 28486; -- was 2050 +UPDATE `creature_template` SET `faction` = 2082 WHERE `entry` = 28488; -- was 2050 +UPDATE `creature_template` SET `faction` = 2082 WHERE `entry` = 28500; -- was 2050 +UPDATE `creature_template` SET `faction` = 2082 WHERE `entry` = 28511; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 28524; -- was 35 +UPDATE `creature_template` SET `faction` = 2096 WHERE `entry` = 28605; -- was 2082 +UPDATE `creature_template` SET `faction` = 85 WHERE `entry` = 28613; -- was 35 +UPDATE `creature_template` SET `faction` = 2070 WHERE `entry` = 28621; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 28630; -- was 16 +UPDATE `creature_template` SET `faction` = 714 WHERE `entry` = 28651; -- was 35 +UPDATE `creature_template` SET `faction` = 2082 WHERE `entry` = 28670; -- was 35 +UPDATE `creature_template` SET `faction` = 714 WHERE `entry` = 28743; -- was 35 +UPDATE `creature_template` SET `faction` = 168 WHERE `entry` = 28781; -- was 35 +UPDATE `creature_template` SET `faction` = 2084 WHERE `entry` = 28788; -- was 35 +UPDATE `creature_template` SET `faction` = 2068 WHERE `entry` = 28805; -- was 35 +UPDATE `creature_template` SET `faction` = 534 WHERE `entry` = 28808; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 28854; -- was 35 +UPDATE `creature_template` SET `faction` = 2075 WHERE `entry` = 28878; -- was 1885 +UPDATE `creature_template` SET `faction` = 1814 WHERE `entry` = 28925; -- was 14 +UPDATE `creature_template` SET `faction` = 290 WHERE `entry` = 28927; -- was 35 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 28938; -- was 1954 +UPDATE `creature_template` SET `faction` = 974 WHERE `entry` = 28948; -- was 35 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 28953; -- was 35 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 28954; -- was 35 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 28955; -- was 35 +UPDATE `creature_template` SET `faction` = 2089 WHERE `entry` = 28964; -- was 35 +UPDATE `creature_template` SET `faction` = 56 WHERE `entry` = 28987; -- was 35 +UPDATE `creature_template` SET `faction` = 974 WHERE `entry` = 28998; -- was 2082 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 29021; -- was 1610 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 29022; -- was 1610 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 29023; -- was 1610 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 29024; -- was 1610 +UPDATE `creature_template` SET `faction` = 1814 WHERE `entry` = 29051; -- was 16 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 29082; -- was 35 +UPDATE `creature_template` SET `faction` = 534 WHERE `entry` = 29087; -- was 35 +UPDATE `creature_template` SET `faction` = 68 WHERE `entry` = 29095; -- was 35 +UPDATE `creature_template` SET `faction` = 1734 WHERE `entry` = 29139; -- was 35 +UPDATE `creature_template` SET `faction` = 2082 WHERE `entry` = 29194; -- was 2050 +UPDATE `creature_template` SET `faction` = 2082 WHERE `entry` = 29195; -- was 2050 +UPDATE `creature_template` SET `faction` = 2082 WHERE `entry` = 29196; -- was 2050 +UPDATE `creature_template` SET `faction` = 2083 WHERE `entry` = 29203; -- was 2050 +UPDATE `creature_template` SET `faction` = 2083 WHERE `entry` = 29205; -- was 2050 +UPDATE `creature_template` SET `faction` = 2083 WHERE `entry` = 29207; -- was 2050 +UPDATE `creature_template` SET `faction` = 2083 WHERE `entry` = 29208; -- was 2050 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 29209; -- was 14 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 29225; -- was 2100 +UPDATE `creature_template` SET `faction` = 2051 WHERE `entry` = 29246; -- was 2050 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 29264; -- was 1629 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 29271; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 29393; -- was 35 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 29394; -- was 35 +UPDATE `creature_template` SET `faction` = 2084 WHERE `entry` = 29400; -- was 35 +UPDATE `creature_template` SET `faction` = 2068 WHERE `entry` = 29457; -- was 14 +UPDATE `creature_template` SET `faction` = 2100 WHERE `entry` = 29501; -- was 35 +UPDATE `creature_template` SET `faction` = 190 WHERE `entry` = 29561; -- was 35 +UPDATE `creature_template` SET `faction` = 2113 WHERE `entry` = 29585; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 29594; -- was 189 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 29602; -- was 116 +UPDATE `creature_template` SET `faction` = 67 WHERE `entry` = 29620; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 29626; -- was 14 +UPDATE `creature_template` SET `faction` = 113 WHERE `entry` = 29677; -- was 35 +UPDATE `creature_template` SET `faction` = 1954 WHERE `entry` = 29696; -- was 35 +UPDATE `creature_template` SET `faction` = 2113 WHERE `entry` = 29709; -- was 116 +UPDATE `creature_template` SET `faction` = 188 WHERE `entry` = 29726; -- was 5 +UPDATE `creature_template` SET `faction` = 1732 WHERE `entry` = 29736; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 29742; -- was 35 +UPDATE `creature_template` SET `faction` = 1926 WHERE `entry` = 29749; -- was 35 +UPDATE `creature_template` SET `faction` = 1620 WHERE `entry` = 29791; -- was 16 +UPDATE `creature_template` SET `faction` = 2050 WHERE `entry` = 29804; -- was 35 +UPDATE `creature_template` SET `faction` = 2050 WHERE `entry` = 29858; -- was 35 +UPDATE `creature_template` SET `faction` = 2050 WHERE `entry` = 29859; -- was 35 +UPDATE `creature_template` SET `faction` = 2050 WHERE `entry` = 29860; -- was 35 +UPDATE `creature_template` SET `faction` = 1806 WHERE `entry` = 29910; -- was 1812 +UPDATE `creature_template` SET `faction` = 2043 WHERE `entry` = 29983; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 30053; -- was 35 +UPDATE `creature_template` SET `faction` = 1771 WHERE `entry` = 30060; -- was 35 +UPDATE `creature_template` SET `faction` = 1771 WHERE `entry` = 30063; -- was 35 +UPDATE `creature_template` SET `faction` = 1771 WHERE `entry` = 30064; -- was 35 +UPDATE `creature_template` SET `faction` = 1770 WHERE `entry` = 30065; -- was 35 +UPDATE `creature_template` SET `faction` = 634 WHERE `entry` = 30093; -- was 35 +UPDATE `creature_template` SET `faction` = 210 WHERE `entry` = 30108; -- was 35 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 30110; -- was 35 +UPDATE `creature_template` SET `faction` = 2107 WHERE `entry` = 30124; -- was 35 +UPDATE `creature_template` SET `faction` = 290 WHERE `entry` = 30134; -- was 35 +UPDATE `creature_template` SET `faction` = 2102 WHERE `entry` = 30136; -- was 35 +UPDATE `creature_template` SET `faction` = 2109 WHERE `entry` = 30154; -- was 14 +UPDATE `creature_template` SET `faction` = 1928 WHERE `entry` = 30157; -- was 1929 +UPDATE `creature_template` SET `faction` = 1928 WHERE `entry` = 30158; -- was 1929 +UPDATE `creature_template` SET `faction` = 1732 WHERE `entry` = 30165; -- was 35 +UPDATE `creature_template` SET `faction` = 1770 WHERE `entry` = 30182; -- was 35 +UPDATE `creature_template` SET `faction` = 2070 WHERE `entry` = 30187; -- was 35 +UPDATE `creature_template` SET `faction` = 2131 WHERE `entry` = 30188; -- was 35 +UPDATE `creature_template` SET `faction` = 2070 WHERE `entry` = 30225; -- was 2071 +UPDATE `creature_template` SET `faction` = 2070 WHERE `entry` = 30226; -- was 2071 +UPDATE `creature_template` SET `faction` = 2070 WHERE `entry` = 30228; -- was 35 +UPDATE `creature_template` SET `faction` = 2070 WHERE `entry` = 30235; -- was 35 +UPDATE `creature_template` SET `faction` = 2068 WHERE `entry` = 30268; -- was 14 +UPDATE `creature_template` SET `faction` = 1770 WHERE `entry` = 30270; -- was 35 +UPDATE `creature_template` SET `faction` = 2070 WHERE `entry` = 30274; -- was 35 +UPDATE `creature_template` SET `faction` = 2130 WHERE `entry` = 30280; -- was 35 +UPDATE `creature_template` SET `faction` = 2107 WHERE `entry` = 30331; -- was 35 +UPDATE `creature_template` SET `faction` = 1891 WHERE `entry` = 30352; -- was 35 +UPDATE `creature_template` SET `faction` = 2051 WHERE `entry` = 30377; -- was 2050 +UPDATE `creature_template` SET `faction` = 2050 WHERE `entry` = 30378; -- was 35 +UPDATE `creature_template` SET `faction` = 188 WHERE `entry` = 30379; -- was 4 +UPDATE `creature_template` SET `faction` = 775 WHERE `entry` = 30388; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 30393; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 30396; -- was 35 +UPDATE `creature_template` SET `faction` = 55 WHERE `entry` = 30411; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 30420; -- was 35 +UPDATE `creature_template` SET `faction` = 2102 WHERE `entry` = 30429; -- was 35 +UPDATE `creature_template` SET `faction` = 634 WHERE `entry` = 30458; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 30486; -- was 35 +UPDATE `creature_template` SET `faction` = 190 WHERE `entry` = 30501; -- was 35 +UPDATE `creature_template` SET `faction` = 1771 WHERE `entry` = 30502; -- was 35 +UPDATE `creature_template` SET `faction` = 1771 WHERE `entry` = 30504; -- was 35 +UPDATE `creature_template` SET `faction` = 2116 WHERE `entry` = 30523; -- was 1885 +UPDATE `creature_template` SET `faction` = 190 WHERE `entry` = 30564; -- was 35 +UPDATE `creature_template` SET `faction` = 714 WHERE `entry` = 30586; -- was 83 +UPDATE `creature_template` SET `faction` = 534 WHERE `entry` = 30587; -- was 84 +UPDATE `creature_template` SET `faction` = 1771 WHERE `entry` = 30591; -- was 35 +UPDATE `creature_template` SET `faction` = 2073 WHERE `entry` = 30595; -- was 35 +UPDATE `creature_template` SET `faction` = 2051 WHERE `entry` = 30596; -- was 2050 +UPDATE `creature_template` SET `faction` = 85 WHERE `entry` = 30611; -- was 29 +UPDATE `creature_template` SET `faction` = 1732 WHERE `entry` = 30626; -- was 35 +UPDATE `creature_template` SET `faction` = 190 WHERE `entry` = 30645; -- was 116 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 30647; -- was 35 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 30652; -- was 35 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 30653; -- was 35 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 30654; -- was 35 +UPDATE `creature_template` SET `faction` = 1720 WHERE `entry` = 30662; -- was 16 +UPDATE `creature_template` SET `faction` = 1720 WHERE `entry` = 30666; -- was 16 +UPDATE `creature_template` SET `faction` = 1720 WHERE `entry` = 30667; -- was 16 +UPDATE `creature_template` SET `faction` = 1720 WHERE `entry` = 30668; -- was 16 +UPDATE `creature_template` SET `faction` = 2131 WHERE `entry` = 30672; -- was 35 +UPDATE `creature_template` SET `faction` = 2073 WHERE `entry` = 30677; -- was 2070 +UPDATE `creature_template` SET `faction` = 1741 WHERE `entry` = 30691; -- was 35 +UPDATE `creature_template` SET `faction` = 1741 WHERE `entry` = 30692; -- was 35 +UPDATE `creature_template` SET `faction` = 1741 WHERE `entry` = 30693; -- was 35 +UPDATE `creature_template` SET `faction` = 1770 WHERE `entry` = 30703; -- was 35 +UPDATE `creature_template` SET `faction` = 1770 WHERE `entry` = 30704; -- was 35 +UPDATE `creature_template` SET `faction` = 1604 WHERE `entry` = 30710; -- was 35 +UPDATE `creature_template` SET `faction` = 68 WHERE `entry` = 30711; -- was 35 +UPDATE `creature_template` SET `faction` = 2070 WHERE `entry` = 30719; -- was 35 +UPDATE `creature_template` SET `faction` = 1604 WHERE `entry` = 30727; -- was 35 +UPDATE `creature_template` SET `faction` = 68 WHERE `entry` = 30729; -- was 35 +UPDATE `creature_template` SET `faction` = 1729 WHERE `entry` = 30735; -- was 35 +UPDATE `creature_template` SET `faction` = 2132 WHERE `entry` = 30755; -- was 35 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 30835; -- was 1610 +UPDATE `creature_template` SET `faction` = 2116 WHERE `entry` = 30836; -- was 1610 +UPDATE `creature_template` SET `faction` = 2051 WHERE `entry` = 30838; -- was 290 +UPDATE `creature_template` SET `faction` = 2051 WHERE `entry` = 30839; -- was 290 +UPDATE `creature_template` SET `faction` = 2051 WHERE `entry` = 30840; -- was 290 +UPDATE `creature_template` SET `faction` = 2068 WHERE `entry` = 30851; -- was 290 +UPDATE `creature_template` SET `faction` = 84 WHERE `entry` = 30853; -- was 35 +UPDATE `creature_template` SET `faction` = 2107 WHERE `entry` = 30881; -- was 35 +UPDATE `creature_template` SET `faction` = 2116 WHERE `entry` = 30884; -- was 1885 +UPDATE `creature_template` SET `faction` = 190 WHERE `entry` = 30886; -- was 35 +UPDATE `creature_template` SET `faction` = 2050 WHERE `entry` = 30955; -- was 35 +UPDATE `creature_template` SET `faction` = 974 WHERE `entry` = 30992; -- was 35 +UPDATE `creature_template` SET `faction` = 2068 WHERE `entry` = 31014; -- was 35 +UPDATE `creature_template` SET `faction` = 2102 WHERE `entry` = 31015; -- was 35 +UPDATE `creature_template` SET `faction` = 1885 WHERE `entry` = 31016; -- was 35 +UPDATE `creature_template` SET `faction` = 2050 WHERE `entry` = 31029; -- was 35 +UPDATE `creature_template` SET `faction` = 1885 WHERE `entry` = 31030; -- was 35 +UPDATE `creature_template` SET `faction` = 2068 WHERE `entry` = 31038; -- was 35 +UPDATE `creature_template` SET `faction` = 1885 WHERE `entry` = 31050; -- was 35 +UPDATE `creature_template` SET `faction` = 2050 WHERE `entry` = 31087; -- was 35 +UPDATE `creature_template` SET `faction` = 2051 WHERE `entry` = 31094; -- was 2050 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 31110; -- was 35 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 31120; -- was 35 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 31121; -- was 35 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 31122; -- was 35 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 31129; -- was 1629 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 31132; -- was 35 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 31133; -- was 1629 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 31158; -- was 35 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 31162; -- was 35 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 31164; -- was 35 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 31165; -- was 35 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 31166; -- was 35 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 31167; -- was 2 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 31169; -- was 35 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 31170; -- was 35 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 31171; -- was 35 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 31172; -- was 35 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 31173; -- was 35 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 31174; -- was 35 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 31175; -- was 35 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 31176; -- was 1629 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 31181; -- was 35 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 31182; -- was 35 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 31185; -- was 2 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 31186; -- was 35 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 31189; -- was 35 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 31190; -- was 1629 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 31191; -- was 16 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 31192; -- was 16 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 31193; -- was 16 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 31194; -- was 16 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 31195; -- was 16 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 31196; -- was 16 +UPDATE `creature_template` SET `faction` = 103 WHERE `entry` = 31219; -- was 35 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 31222; -- was 16 +UPDATE `creature_template` SET `faction` = 2070 WHERE `entry` = 31235; -- was 35 +UPDATE `creature_template` SET `faction` = 2007 WHERE `entry` = 31238; -- was 35 +UPDATE `creature_template` SET `faction` = 2137 WHERE `entry` = 31276; -- was 35 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 31283; -- was 35 +UPDATE `creature_template` SET `faction` = 1770 WHERE `entry` = 31314; -- was 35 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 31326; -- was 1848 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 31327; -- was 1848 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 31413; -- was 2043 +UPDATE `creature_template` SET `faction` = 29 WHERE `entry` = 31426; -- was 35 +UPDATE `creature_template` SET `faction` = 2070 WHERE `entry` = 31428; -- was 35 +UPDATE `creature_template` SET `faction` = 29 WHERE `entry` = 31430; -- was 35 +UPDATE `creature_template` SET `faction` = 974 WHERE `entry` = 31432; -- was 35 +UPDATE `creature_template` SET `faction` = 1978 WHERE `entry` = 31440; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 31482; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 31516; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 31524; -- was 35 +UPDATE `creature_template` SET `faction` = 2102 WHERE `entry` = 31526; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 31529; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 31531; -- was 35 +UPDATE `creature_template` SET `faction` = 1802 WHERE `entry` = 31638; -- was 35 +UPDATE `creature_template` SET `faction` = 2054 WHERE `entry` = 31688; -- was 35 +UPDATE `creature_template` SET `faction` = 1892 WHERE `entry` = 31784; -- was 35 +UPDATE `creature_template` SET `faction` = 1981 WHERE `entry` = 31785; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 31831; -- was 35 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 31897; -- was 3 +UPDATE `creature_template` SET `faction` = 974 WHERE `entry` = 32162; -- was 16 +UPDATE `creature_template` SET `faction` = 974 WHERE `entry` = 32163; -- was 16 +UPDATE `creature_template` SET `faction` = 1720 WHERE `entry` = 32191; -- was 16 +UPDATE `creature_template` SET `faction` = 2070 WHERE `entry` = 32239; -- was 35 +UPDATE `creature_template` SET `faction` = 2070 WHERE `entry` = 32241; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 32270; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 32271; -- was 35 +UPDATE `creature_template` SET `faction` = 233 WHERE `entry` = 32272; -- was 35 +UPDATE `creature_template` SET `faction` = 2081 WHERE `entry` = 32288; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 32292; -- was 35 +UPDATE `creature_template` SET `faction` = 2144 WHERE `entry` = 32309; -- was 35 +UPDATE `creature_template` SET `faction` = 2140 WHERE `entry` = 32311; -- was 35 +UPDATE `creature_template` SET `faction` = 2048 WHERE `entry` = 32316; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 32358; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 32377; -- was 14 +UPDATE `creature_template` SET `faction` = 123 WHERE `entry` = 32380; -- was 1638 +UPDATE `creature_template` SET `faction` = 1074 WHERE `entry` = 32382; -- was 85 +UPDATE `creature_template` SET `faction` = 1074 WHERE `entry` = 32383; -- was 35 +UPDATE `creature_template` SET `faction` = 1604 WHERE `entry` = 32384; -- was 35 +UPDATE `creature_template` SET `faction` = 1604 WHERE `entry` = 32385; -- was 35 +UPDATE `creature_template` SET `faction` = 1885 WHERE `entry` = 32386; -- was 14 +UPDATE `creature_template` SET `faction` = 190 WHERE `entry` = 32400; -- was 7 +UPDATE `creature_template` SET `faction` = 2142 WHERE `entry` = 32402; -- was 534 +UPDATE `creature_template` SET `faction` = 67 WHERE `entry` = 32417; -- was 14 +UPDATE `creature_template` SET `faction` = 714 WHERE `entry` = 32430; -- was 35 +UPDATE `creature_template` SET `faction` = 1885 WHERE `entry` = 32438; -- was 14 +UPDATE `creature_template` SET `faction` = 2043 WHERE `entry` = 32443; -- was 35 +UPDATE `creature_template` SET `faction` = 2068 WHERE `entry` = 32446; -- was 35 +UPDATE `creature_template` SET `faction` = 1975 WHERE `entry` = 32471; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 32475; -- was 14 +UPDATE `creature_template` SET `faction` = 1885 WHERE `entry` = 32495; -- was 14 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 32501; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 32503; -- was 35 +UPDATE `creature_template` SET `faction` = 190 WHERE `entry` = 32517; -- was 7 +UPDATE `creature_template` SET `faction` = 1735 WHERE `entry` = 32529; -- was 35 +UPDATE `creature_template` SET `faction` = 1891 WHERE `entry` = 32573; -- was 7 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 32576; -- was 1885 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 32577; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 32578; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 32579; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 32580; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 32582; -- was 35 +UPDATE `creature_template` SET `faction` = 1735 WHERE `entry` = 32615; -- was 35 +UPDATE `creature_template` SET `faction` = 55 WHERE `entry` = 32626; -- was 35 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 32627; -- was 1735 +UPDATE `creature_template` SET `faction` = 2007 WHERE `entry` = 32712; -- was 1732 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 32775; -- was 35 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 32776; -- was 35 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 32794; -- was 35 +UPDATE `creature_template` SET `faction` = 1735 WHERE `entry` = 32798; -- was 35 +UPDATE `creature_template` SET `faction` = 1732 WHERE `entry` = 32799; -- was 35 +UPDATE `creature_template` SET `faction` = 113 WHERE `entry` = 32800; -- was 35 +UPDATE `creature_template` SET `faction` = 188 WHERE `entry` = 32820; -- was 31 +UPDATE `creature_template` SET `faction` = 1074 WHERE `entry` = 32832; -- was 35 +UPDATE `creature_template` SET `faction` = 123 WHERE `entry` = 32834; -- was 1078 +UPDATE `creature_template` SET `faction` = 1732 WHERE `entry` = 32836; -- was 35 +UPDATE `creature_template` SET `faction` = 1735 WHERE `entry` = 32837; -- was 35 +UPDATE `creature_template` SET `faction` = 188 WHERE `entry` = 32841; -- was 1 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 32866; -- was 35 +UPDATE `creature_template` SET `faction` = 2201 WHERE `entry` = 32870; -- was 35 +UPDATE `creature_template` SET `faction` = 1953 WHERE `entry` = 32887; -- was 35 +UPDATE `creature_template` SET `faction` = 188 WHERE `entry` = 32956; -- was 31 +UPDATE `creature_template` SET `faction` = 190 WHERE `entry` = 33007; -- was 1990 +UPDATE `creature_template` SET `faction` = 190 WHERE `entry` = 33008; -- was 1990 +UPDATE `creature_template` SET `faction` = 190 WHERE `entry` = 33010; -- was 35 +UPDATE `creature_template` SET `faction` = 190 WHERE `entry` = 33011; -- was 35 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 33167; -- was 2105 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 33168; -- was 35 +UPDATE `creature_template` SET `faction` = 2105 WHERE `entry` = 33184; -- was 35 +UPDATE `creature_template` SET `faction` = 2059 WHERE `entry` = 33185; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 33233; -- was 35 +UPDATE `creature_template` SET `faction` = 188 WHERE `entry` = 33239; -- was 2 +UPDATE `creature_template` SET `faction` = 1815 WHERE `entry` = 33286; -- was 35 +UPDATE `creature_template` SET `faction` = 1665 WHERE `entry` = 33411; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 33441; -- was 35 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 33448; -- was 14 +UPDATE `creature_template` SET `faction` = 190 WHERE `entry` = 33488; -- was 16 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 33502; -- was 35 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 33504; -- was 35 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 33505; -- was 35 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 33506; -- was 35 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 33508; -- was 35 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 33510; -- was 35 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 33511; -- was 35 +UPDATE `creature_template` SET `faction` = 80 WHERE `entry` = 33563; -- was 35 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 33570; -- was 35 +UPDATE `creature_template` SET `faction` = 188 WHERE `entry` = 33578; -- was 35 +UPDATE `creature_template` SET `faction` = 1744 WHERE `entry` = 33630; -- was 35 +UPDATE `creature_template` SET `faction` = 1744 WHERE `entry` = 33639; -- was 35 +UPDATE `creature_template` SET `faction` = 1744 WHERE `entry` = 33642; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 33660; -- was 35 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 33663; -- was 35 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 33667; -- was 35 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 33710; -- was 35 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 33711; -- was 35 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 33712; -- was 35 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 33713; -- was 35 +UPDATE `creature_template` SET `faction` = 190 WHERE `entry` = 33776; -- was 16 +UPDATE `creature_template` SET `faction` = 2105 WHERE `entry` = 33805; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 33836; -- was 16 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 33947; -- was 35 +UPDATE `creature_template` SET `faction` = 370 WHERE `entry` = 34000; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 34002; -- was 35 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 34018; -- was 35 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 34019; -- was 35 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 34021; -- was 35 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 34022; -- was 35 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 34024; -- was 35 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 34025; -- was 35 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 34026; -- was 35 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 34027; -- was 35 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 34028; -- was 35 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 34029; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 34031; -- was 35 +UPDATE `creature_template` SET `faction` = 125 WHERE `entry` = 34036; -- was 1074 +UPDATE `creature_template` SET `faction` = 125 WHERE `entry` = 34037; -- was 1074 +UPDATE `creature_template` SET `faction` = 125 WHERE `entry` = 34038; -- was 35 +UPDATE `creature_template` SET `faction` = 125 WHERE `entry` = 34039; -- was 1074 +UPDATE `creature_template` SET `faction` = 125 WHERE `entry` = 34040; -- was 1074 +UPDATE `creature_template` SET `faction` = 1602 WHERE `entry` = 34058; -- was 1604 +UPDATE `creature_template` SET `faction` = 125 WHERE `entry` = 34059; -- was 1074 +UPDATE `creature_template` SET `faction` = 125 WHERE `entry` = 34060; -- was 35 +UPDATE `creature_template` SET `faction` = 125 WHERE `entry` = 34061; -- was 1074 +UPDATE `creature_template` SET `faction` = 125 WHERE `entry` = 34062; -- was 1074 +UPDATE `creature_template` SET `faction` = 125 WHERE `entry` = 34063; -- was 35 +UPDATE `creature_template` SET `faction` = 123 WHERE `entry` = 34076; -- was 1638 +UPDATE `creature_template` SET `faction` = 123 WHERE `entry` = 34077; -- was 1078 +UPDATE `creature_template` SET `faction` = 123 WHERE `entry` = 34082; -- was 1078 +UPDATE `creature_template` SET `faction` = 123 WHERE `entry` = 34083; -- was 1078 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 34104; -- was 35 +UPDATE `creature_template` SET `faction` = 1878 WHERE `entry` = 34116; -- was 16 +UPDATE `creature_template` SET `faction` = 974 WHERE `entry` = 34128; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 34181; -- was 1692 +UPDATE `creature_template` SET `faction` = 190 WHERE `entry` = 34202; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 34213; -- was 35 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 34246; -- was 190 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 34264; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 34265; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 34266; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 34307; -- was 35 +UPDATE `creature_template` SET `faction` = 1816 WHERE `entry` = 34310; -- was 35 +UPDATE `creature_template` SET `faction` = 55 WHERE `entry` = 34478; -- was 35 +UPDATE `creature_template` SET `faction` = 80 WHERE `entry` = 34479; -- was 35 +UPDATE `creature_template` SET `faction` = 875 WHERE `entry` = 34481; -- was 35 +UPDATE `creature_template` SET `faction` = 104 WHERE `entry` = 34528; -- was 35 +UPDATE `creature_template` SET `faction` = 2189 WHERE `entry` = 34628; -- was 14 +UPDATE `creature_template` SET `faction` = 2189 WHERE `entry` = 34630; -- was 14 +UPDATE `creature_template` SET `faction` = 534 WHERE `entry` = 34653; -- was 35 +UPDATE `creature_template` SET `faction` = 80 WHERE `entry` = 34657; -- was 1076 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 34660; -- was 16 +UPDATE `creature_template` SET `faction` = 714 WHERE `entry` = 34679; -- was 35 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 34686; -- was 35 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 34687; -- was 35 +UPDATE `creature_template` SET `faction` = 1638 WHERE `entry` = 34701; -- was 1694 +UPDATE `creature_template` SET `faction` = 12 WHERE `entry` = 34705; -- was 1078 +UPDATE `creature_template` SET `faction` = 714 WHERE `entry` = 34714; -- was 35 +UPDATE `creature_template` SET `faction` = 29 WHERE `entry` = 34765; -- was 35 +UPDATE `creature_template` SET `faction` = 714 WHERE `entry` = 34768; -- was 35 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 34777; -- was 1732 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 34778; -- was 1732 +UPDATE `creature_template` SET `faction` = 534 WHERE `entry` = 34785; -- was 35 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 34802; -- was 1732 +UPDATE `creature_template` SET `faction` = 1732 WHERE `entry` = 34944; -- was 35 +UPDATE `creature_template` SET `faction` = 84 WHERE `entry` = 34960; -- was 35 +UPDATE `creature_template` SET `faction` = 83 WHERE `entry` = 34971; -- was 35 +UPDATE `creature_template` SET `faction` = 83 WHERE `entry` = 34972; -- was 35 +UPDATE `creature_template` SET `faction` = 83 WHERE `entry` = 34973; -- was 35 +UPDATE `creature_template` SET `faction` = 83 WHERE `entry` = 34976; -- was 35 +UPDATE `creature_template` SET `faction` = 83 WHERE `entry` = 34978; -- was 35 +UPDATE `creature_template` SET `faction` = 83 WHERE `entry` = 34983; -- was 35 +UPDATE `creature_template` SET `faction` = 114 WHERE `entry` = 34984; -- was 35 +UPDATE `creature_template` SET `faction` = 83 WHERE `entry` = 34985; -- was 35 +UPDATE `creature_template` SET `faction` = 84 WHERE `entry` = 34987; -- was 35 +UPDATE `creature_template` SET `faction` = 84 WHERE `entry` = 34993; -- was 35 +UPDATE `creature_template` SET `faction` = 1735 WHERE `entry` = 35003; -- was 35 +UPDATE `creature_template` SET `faction` = 1638 WHERE `entry` = 35073; -- was 35 +UPDATE `creature_template` SET `faction` = 2159 WHERE `entry` = 35085; -- was 35 +UPDATE `creature_template` SET `faction` = 2159 WHERE `entry` = 35086; -- was 35 +UPDATE `creature_template` SET `faction` = 2159 WHERE `entry` = 35088; -- was 35 +UPDATE `creature_template` SET `faction` = 2159 WHERE `entry` = 35091; -- was 35 +UPDATE `creature_template` SET `faction` = 190 WHERE `entry` = 35116; -- was 35 +UPDATE `creature_template` SET `faction` = 190 WHERE `entry` = 35127; -- was 35 +UPDATE `creature_template` SET `faction` = 1981 WHERE `entry` = 35135; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 35255; -- was 35 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 35273; -- was 1735 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 35311; -- was 16 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 35314; -- was 35 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 35323; -- was 35 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 35325; -- was 35 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 35326; -- was 35 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 35327; -- was 35 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 35328; -- was 35 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 35329; -- was 35 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 35330; -- was 35 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 35331; -- was 35 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 35332; -- was 35 +UPDATE `creature_template` SET `faction` = 114 WHERE `entry` = 35339; -- was 35 +UPDATE `creature_template` SET `faction` = 1732 WHERE `entry` = 35345; -- was 35 +UPDATE `creature_template` SET `faction` = 1735 WHERE `entry` = 35346; -- was 35 +UPDATE `creature_template` SET `faction` = 188 WHERE `entry` = 35387; -- was 1629 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 35458; -- was 1770 +UPDATE `creature_template` SET `faction` = 90 WHERE `entry` = 35465; -- was 16 +UPDATE `creature_template` SET `faction` = 2068 WHERE `entry` = 35474; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 35545; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 35547; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 35557; -- was 35 +UPDATE `creature_template` SET `faction` = 2027 WHERE `entry` = 35573; -- was 2130 +UPDATE `creature_template` SET `faction` = 2027 WHERE `entry` = 35575; -- was 2130 +UPDATE `creature_template` SET `faction` = 2027 WHERE `entry` = 35577; -- was 2130 +UPDATE `creature_template` SET `faction` = 2027 WHERE `entry` = 35579; -- was 2130 +UPDATE `creature_template` SET `faction` = 190 WHERE `entry` = 35642; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 35644; -- was 35 +UPDATE `creature_template` SET `faction` = 190 WHERE `entry` = 35646; -- was 35 +UPDATE `creature_template` SET `faction` = 2068 WHERE `entry` = 36065; -- was 35 +UPDATE `creature_template` SET `faction` = 2068 WHERE `entry` = 36066; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 36070; -- was 16 +UPDATE `creature_template` SET `faction` = 2070 WHERE `entry` = 36101; -- was 35 +UPDATE `creature_template` SET `faction` = 2070 WHERE `entry` = 36102; -- was 35 +UPDATE `creature_template` SET `faction` = 1973 WHERE `entry` = 36151; -- was 35 +UPDATE `creature_template` SET `faction` = 1973 WHERE `entry` = 36152; -- was 35 +UPDATE `creature_template` SET `faction` = 1978 WHERE `entry` = 36162; -- was 35 +UPDATE `creature_template` SET `faction` = 2132 WHERE `entry` = 36164; -- was 35 +UPDATE `creature_template` SET `faction` = 1973 WHERE `entry` = 36165; -- was 35 +UPDATE `creature_template` SET `faction` = 1891 WHERE `entry` = 36166; -- was 35 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 36272; -- was 16 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 36296; -- was 16 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 36355; -- was 1735 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 36356; -- was 1735 +UPDATE `creature_template` SET `faction` = 80 WHERE `entry` = 36479; -- was 35 +UPDATE `creature_template` SET `faction` = 80 WHERE `entry` = 36481; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 36559; -- was 35 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 36565; -- was 16 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 36568; -- was 16 +UPDATE `creature_template` SET `faction` = 188 WHERE `entry` = 36607; -- was 1629 +UPDATE `creature_template` SET `faction` = 104 WHERE `entry` = 36648; -- was 35 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 36672; -- was 21 +UPDATE `creature_template` SET `faction` = 188 WHERE `entry` = 36871; -- was 2 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 36897; -- was 2068 +UPDATE `creature_template` SET `faction` = 188 WHERE `entry` = 36911; -- was 1 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 36916; -- was 14 +UPDATE `creature_template` SET `faction` = 1770 WHERE `entry` = 36955; -- was 84 +UPDATE `creature_template` SET `faction` = 974 WHERE `entry` = 36983; -- was 16 +UPDATE `creature_template` SET `faction` = 1770 WHERE `entry` = 36993; -- was 35 +UPDATE `creature_template` SET `faction` = 1733 WHERE `entry` = 37041; -- was 35 +UPDATE `creature_template` SET `faction` = 1734 WHERE `entry` = 37044; -- was 35 +UPDATE `creature_template` SET `faction` = 2028 WHERE `entry` = 37068; -- was 16 +UPDATE `creature_template` SET `faction` = 2028 WHERE `entry` = 37107; -- was 35 +UPDATE `creature_template` SET `faction` = 1735 WHERE `entry` = 37172; -- was 35 +UPDATE `creature_template` SET `faction` = 1735 WHERE `entry` = 37189; -- was 2073 +UPDATE `creature_template` SET `faction` = 79 WHERE `entry` = 37790; -- was 35 +UPDATE `creature_template` SET `faction` = 58 WHERE `entry` = 37810; -- was 35 +UPDATE `creature_template` SET `faction` = 85 WHERE `entry` = 37825; -- was 35 +UPDATE `creature_template` SET `faction` = 1770 WHERE `entry` = 37828; -- was 35 +UPDATE `creature_template` SET `faction` = 974 WHERE `entry` = 37846; -- was 16 +UPDATE `creature_template` SET `faction` = 105 WHERE `entry` = 37860; -- was 35 +UPDATE `creature_template` SET `faction` = 188 WHERE `entry` = 37865; -- was 2 +UPDATE `creature_template` SET `faction` = 85 WHERE `entry` = 37869; -- was 35 +UPDATE `creature_template` SET `faction` = 1733 WHERE `entry` = 37879; -- was 35 +UPDATE `creature_template` SET `faction` = 1732 WHERE `entry` = 37902; -- was 35 +UPDATE `creature_template` SET `faction` = 1732 WHERE `entry` = 37903; -- was 35 +UPDATE `creature_template` SET `faction` = 1732 WHERE `entry` = 37904; -- was 35 +UPDATE `creature_template` SET `faction` = 1735 WHERE `entry` = 37930; -- was 35 +UPDATE `creature_template` SET `faction` = 1735 WHERE `entry` = 37935; -- was 35 +UPDATE `creature_template` SET `faction` = 1735 WHERE `entry` = 37936; -- was 35 +UPDATE `creature_template` SET `faction` = 11 WHERE `entry` = 37944; -- was 35 +UPDATE `creature_template` SET `faction` = 1735 WHERE `entry` = 37991; -- was 2070 +UPDATE `creature_template` SET `faction` = 1735 WHERE `entry` = 37992; -- was 2070 +UPDATE `creature_template` SET `faction` = 1735 WHERE `entry` = 37993; -- was 2070 +UPDATE `creature_template` SET `faction` = 91 WHERE `entry` = 37994; -- was 1 +UPDATE `creature_template` SET `faction` = 1732 WHERE `entry` = 37997; -- was 35 +UPDATE `creature_template` SET `faction` = 1732 WHERE `entry` = 37998; -- was 35 +UPDATE `creature_template` SET `faction` = 1732 WHERE `entry` = 37999; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 38006; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 38016; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 38023; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 38030; -- was 14 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 38032; -- was 14 +UPDATE `creature_template` SET `faction` = 15 WHERE `entry` = 38154; -- was 2209 +UPDATE `creature_template` SET `faction` = 1735 WHERE `entry` = 38181; -- was 2070 +UPDATE `creature_template` SET `faction` = 1732 WHERE `entry` = 38182; -- was 35 +UPDATE `creature_template` SET `faction` = 1770 WHERE `entry` = 38188; -- was 35 +UPDATE `creature_template` SET `faction` = 2027 WHERE `entry` = 38200; -- was 35 +UPDATE `creature_template` SET `faction` = 2123 WHERE `entry` = 38201; -- was 35 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 38248; -- was 2209 +UPDATE `creature_template` SET `faction` = 1732 WHERE `entry` = 38283; -- was 35 +UPDATE `creature_template` SET `faction` = 1732 WHERE `entry` = 38293; -- was 35 +UPDATE `creature_template` SET `faction` = 1735 WHERE `entry` = 38295; -- was 35 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 38374; -- was 1629 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 38386; -- was 35 +UPDATE `creature_template` SET `faction` = 2082 WHERE `entry` = 38391; -- was 35 +UPDATE `creature_template` SET `faction` = 2082 WHERE `entry` = 38392; -- was 35 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 38485; -- was 14 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 38487; -- was 1771 +UPDATE `creature_template` SET `faction` = 21 WHERE `entry` = 38763; -- was 35 +UPDATE `creature_template` SET `faction` = 105 WHERE `entry` = 38831; -- was 35 +UPDATE `creature_template` SET `faction` = 1732 WHERE `entry` = 38840; -- was 35 +UPDATE `creature_template` SET `faction` = 1735 WHERE `entry` = 38841; -- was 2070 +UPDATE `creature_template` SET `faction` = 17 WHERE `entry` = 38867; -- was 35 +UPDATE `creature_template` SET `faction` = 1812 WHERE `entry` = 39275; -- was 64 +UPDATE `creature_template` SET `faction` = 29 WHERE `entry` = 39448; -- was 35 +UPDATE `creature_template` SET `faction` = 875 WHERE `entry` = 39466; -- was 1 +UPDATE `creature_template` SET `faction` = 875 WHERE `entry` = 39624; -- was 1 +UPDATE `creature_template` SET `faction` = 875 WHERE `entry` = 39682; -- was 1629 +UPDATE `creature_template` SET `faction` = 875 WHERE `entry` = 39713; -- was 1629 +UPDATE `creature_template` SET `faction` = 875 WHERE `entry` = 39714; -- was 1629 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 39715; -- was 875 +UPDATE `creature_template` SET `faction` = 1771 WHERE `entry` = 39759; -- was 35 +UPDATE `creature_template` SET `faction` = 85 WHERE `entry` = 39934; -- was 35 +UPDATE `creature_template` SET `faction` = 11 WHERE `entry` = 40138; -- was 35 +UPDATE `creature_template` SET `faction` = 103 WHERE `entry` = 40142; -- was 14 +UPDATE `creature_template` SET `faction` = 1770 WHERE `entry` = 40305; -- was 35 +UPDATE `creature_template` SET `faction` = 83 WHERE `entry` = 40413; -- was 35 +UPDATE `creature_template` SET `faction` = 1734 WHERE `entry` = 40437; -- was 35 diff --git a/sql/updates/world/2014_08_29_06_world_creature_template.sql b/sql/updates/world/2014_08_29_06_world_creature_template.sql new file mode 100644 index 00000000000..cec02630f22 --- /dev/null +++ b/sql/updates/world/2014_08_29_06_world_creature_template.sql @@ -0,0 +1,497 @@ +UPDATE `creature_template` SET `faction`=103 WHERE `entry`=31543; +UPDATE `creature_template` SET `faction`=103 WHERE `entry`=40143; +UPDATE `creature_template` SET `faction`=103 WHERE `entry`=40144; +UPDATE `creature_template` SET `faction`=103 WHERE `entry`=40145; +UPDATE `creature_template` SET `faction`=114 WHERE `entry`=30808; +UPDATE `creature_template` SET `faction`=114 WHERE `entry`=31875; +UPDATE `creature_template` SET `faction`=114 WHERE `entry`=31878; +UPDATE `creature_template` SET `faction`=1194 WHERE `entry`=22565; +UPDATE `creature_template` SET `faction`=1194 WHERE `entry`=22578; +UPDATE `creature_template` SET `faction`=1194 WHERE `entry`=22686; +UPDATE `creature_template` SET `faction`=1194 WHERE `entry`=22768; +UPDATE `creature_template` SET `faction`=1194 WHERE `entry`=22769; +UPDATE `creature_template` SET `faction`=1194 WHERE `entry`=32044; +UPDATE `creature_template` SET `faction`=1194 WHERE `entry`=32056; +UPDATE `creature_template` SET `faction`=1194 WHERE `entry`=32107; +UPDATE `creature_template` SET `faction`=1194 WHERE `entry`=32108; +UPDATE `creature_template` SET `faction`=1194 WHERE `entry`=32109; +UPDATE `creature_template` SET `faction`=1194 WHERE `entry`=37365; +UPDATE `creature_template` SET `faction`=1194 WHERE `entry`=37377; +UPDATE `creature_template` SET `faction`=1194 WHERE `entry`=37428; +UPDATE `creature_template` SET `faction`=1194 WHERE `entry`=37429; +UPDATE `creature_template` SET `faction`=1194 WHERE `entry`=37430; +UPDATE `creature_template` SET `faction`=12 WHERE `entry`=36088; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=22530; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=22532; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=22534; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=22536; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=22538; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=22539; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=22556; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=22564; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=22566; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=22590; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=22592; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=22594; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=22603; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=22610; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=22612; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=22629; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=22664; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=22669; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=22673; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=22675; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=22677; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=22688; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=22716; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=22718; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=22720; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=22741; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=22746; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=22752; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=22754; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=22755; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=22757; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=22771; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=22773; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=22774; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=22776; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=31822; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=31904; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=31906; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=31928; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=31930; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=31935; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=31937; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=31939; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=31941; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=31943; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=31945; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=31962; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=31985; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=31988; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=32002; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=32012; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=32017; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=32023; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=32058; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=32060; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=32065; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=32067; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=32069; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=32071; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=32073; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=32075; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=32122; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=32124; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=32128; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=32130; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=32132; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=32135; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=32138; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=37246; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=37248; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=37253; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=37255; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=37257; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=37259; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=37261; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=37263; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=37280; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=37304; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=37307; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=37321; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=37331; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=37336; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=37343; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=37363; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=37379; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=37381; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=37386; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=37388; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=37390; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=37392; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=37394; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=37396; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=37446; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=37448; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=37453; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=37455; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=37457; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=37459; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=37461; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=37463; +UPDATE `creature_template` SET `faction`=1214 WHERE `entry`=37466; +UPDATE `creature_template` SET `faction`=1215 WHERE `entry`=22553; +UPDATE `creature_template` SET `faction`=1215 WHERE `entry`=31995; +UPDATE `creature_template` SET `faction`=1215 WHERE `entry`=37314; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=22525; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=22529; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=22531; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=22533; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=22535; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=22537; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=22563; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=22570; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=22587; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=22591; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=22593; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=22607; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=22611; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=22620; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=22621; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=22632; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=22645; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=22662; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=22663; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=22667; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=22668; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=22671; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=22672; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=22687; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=22692; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=22693; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=22705; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=22709; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=22713; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=22714; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=22717; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=22719; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=22753; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=22756; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=22758; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=22770; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=22772; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=22775; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=22777; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=31905; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=31907; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=31917; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=31919; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=31927; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=31929; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=31931; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=31934; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=31936; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=31938; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=31940; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=31942; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=31944; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=31959; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=31973; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=32010; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=32036; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=32040; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=32055; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=32059; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=32061; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=32062; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=32064; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=32066; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=32068; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=32070; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=32072; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=32074; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=32102; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=32103; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=32121; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=32123; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=32127; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=32129; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=32131; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=32133; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=32134; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=32136; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=37233; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=37235; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=37245; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=37247; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=37249; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=37252; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=37254; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=37256; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=37258; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=37260; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=37262; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=37277; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=37292; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=37329; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=37356; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=37360; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=37376; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=37380; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=37382; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=37383; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=37385; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=37387; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=37389; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=37391; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=37393; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=37395; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=37423; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=37424; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=37445; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=37447; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=37449; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=37452; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=37454; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=37456; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=37458; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=37460; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=37462; +UPDATE `creature_template` SET `faction`=1216 WHERE `entry`=37464; +UPDATE `creature_template` SET `faction`=1217 WHERE `entry`=22764; +UPDATE `creature_template` SET `faction`=1334 WHERE `entry`=22554; +UPDATE `creature_template` SET `faction`=1334 WHERE `entry`=22600; +UPDATE `creature_template` SET `faction`=1334 WHERE `entry`=31997; +UPDATE `creature_template` SET `faction`=1334 WHERE `entry`=37316; +UPDATE `creature_template` SET `faction`=1335 WHERE `entry`=22549; +UPDATE `creature_template` SET `faction`=1335 WHERE `entry`=22602; +UPDATE `creature_template` SET `faction`=1335 WHERE `entry`=31982; +UPDATE `creature_template` SET `faction`=1335 WHERE `entry`=37301; +UPDATE `creature_template` SET `faction`=1375 WHERE `entry`=18616; +UPDATE `creature_template` SET `faction`=14 WHERE `entry`=19897; +UPDATE `creature_template` SET `faction`=14 WHERE `entry`=20308; +UPDATE `creature_template` SET `faction`=14 WHERE `entry`=20572; +UPDATE `creature_template` SET `faction`=14 WHERE `entry`=20573; +UPDATE `creature_template` SET `faction`=14 WHERE `entry`=22626; +UPDATE `creature_template` SET `faction`=14 WHERE `entry`=22642; +UPDATE `creature_template` SET `faction`=14 WHERE `entry`=25543; +UPDATE `creature_template` SET `faction`=14 WHERE `entry`=29357; +UPDATE `creature_template` SET `faction`=14 WHERE `entry`=30000; +UPDATE `creature_template` SET `faction`=14 WHERE `entry`=30016; +UPDATE `creature_template` SET `faction`=14 WHERE `entry`=30047; +UPDATE `creature_template` SET `faction`=14 WHERE `entry`=30049; +UPDATE `creature_template` SET `faction`=14 WHERE `entry`=30068; +UPDATE `creature_template` SET `faction`=14 WHERE `entry`=30781; +UPDATE `creature_template` SET `faction`=14 WHERE `entry`=30783; +UPDATE `creature_template` SET `faction`=14 WHERE `entry`=30785; +UPDATE `creature_template` SET `faction`=14 WHERE `entry`=30787; +UPDATE `creature_template` SET `faction`=14 WHERE `entry`=31560; +UPDATE `creature_template` SET `faction`=14 WHERE `entry`=31670; +UPDATE `creature_template` SET `faction`=14 WHERE `entry`=31974; +UPDATE `creature_template` SET `faction`=14 WHERE `entry`=32005; +UPDATE `creature_template` SET `faction`=14 WHERE `entry`=32218; +UPDATE `creature_template` SET `faction`=14 WHERE `entry`=33397; +UPDATE `creature_template` SET `faction`=14 WHERE `entry`=34218; +UPDATE `creature_template` SET `faction`=14 WHERE `entry`=34228; +UPDATE `creature_template` SET `faction`=14 WHERE `entry`=35546; +UPDATE `creature_template` SET `faction`=14 WHERE `entry`=35559; +UPDATE `creature_template` SET `faction`=14 WHERE `entry`=35560; +UPDATE `creature_template` SET `faction`=14 WHERE `entry`=36473; +UPDATE `creature_template` SET `faction`=14 WHERE `entry`=36474; +UPDATE `creature_template` SET `faction`=14 WHERE `entry`=36475; +UPDATE `creature_template` SET `faction`=14 WHERE `entry`=37293; +UPDATE `creature_template` SET `faction`=14 WHERE `entry`=37324; +UPDATE `creature_template` SET `faction`=14 WHERE `entry`=38138; +UPDATE `creature_template` SET `faction`=1534 WHERE `entry`=22547; +UPDATE `creature_template` SET `faction`=1534 WHERE `entry`=22579; +UPDATE `creature_template` SET `faction`=1534 WHERE `entry`=31908; +UPDATE `creature_template` SET `faction`=1534 WHERE `entry`=31971; +UPDATE `creature_template` SET `faction`=1534 WHERE `entry`=37290; +UPDATE `creature_template` SET `faction`=1534 WHERE `entry`=37434; +UPDATE `creature_template` SET `faction`=1554 WHERE `entry`=22639; +UPDATE `creature_template` SET `faction`=1594 WHERE `entry`=22627; +UPDATE `creature_template` SET `faction`=1594 WHERE `entry`=31821; +UPDATE `creature_template` SET `faction`=1594 WHERE `entry`=37341; +UPDATE `creature_template` SET `faction`=16 WHERE `entry`=19898; +UPDATE `creature_template` SET `faction`=16 WHERE `entry`=19899; +UPDATE `creature_template` SET `faction`=16 WHERE `entry`=19900; +UPDATE `creature_template` SET `faction`=16 WHERE `entry`=20303; +UPDATE `creature_template` SET `faction`=16 WHERE `entry`=20305; +UPDATE `creature_template` SET `faction`=16 WHERE `entry`=20309; +UPDATE `creature_template` SET `faction`=16 WHERE `entry`=20314; +UPDATE `creature_template` SET `faction`=16 WHERE `entry`=20316; +UPDATE `creature_template` SET `faction`=16 WHERE `entry`=20320; +UPDATE `creature_template` SET `faction`=16 WHERE `entry`=20321; +UPDATE `creature_template` SET `faction`=16 WHERE `entry`=20322; +UPDATE `creature_template` SET `faction`=16 WHERE `entry`=20323; +UPDATE `creature_template` SET `faction`=16 WHERE `entry`=20569; +UPDATE `creature_template` SET `faction`=16 WHERE `entry`=20574; +UPDATE `creature_template` SET `faction`=16 WHERE `entry`=20575; +UPDATE `creature_template` SET `faction`=16 WHERE `entry`=20578; +UPDATE `creature_template` SET `faction`=16 WHERE `entry`=20579; +UPDATE `creature_template` SET `faction`=16 WHERE `entry`=20580; +UPDATE `creature_template` SET `faction`=16 WHERE `entry`=20581; +UPDATE `creature_template` SET `faction`=16 WHERE `entry`=20584; +UPDATE `creature_template` SET `faction`=16 WHERE `entry`=20585; +UPDATE `creature_template` SET `faction`=16 WHERE `entry`=20586; +UPDATE `creature_template` SET `faction`=16 WHERE `entry`=20596; +UPDATE `creature_template` SET `faction`=16 WHERE `entry`=20655; +UPDATE `creature_template` SET `faction`=16 WHERE `entry`=20658; +UPDATE `creature_template` SET `faction`=16 WHERE `entry`=20700; +UPDATE `creature_template` SET `faction`=16 WHERE `entry`=20993; +UPDATE `creature_template` SET `faction`=16 WHERE `entry`=21550; +UPDATE `creature_template` SET `faction`=16 WHERE `entry`=21553; +UPDATE `creature_template` SET `faction`=16 WHERE `entry`=21556; +UPDATE `creature_template` SET `faction`=16 WHERE `entry`=21557; +UPDATE `creature_template` SET `faction`=16 WHERE `entry`=21566; +UPDATE `creature_template` SET `faction`=16 WHERE `entry`=21567; +UPDATE `creature_template` SET `faction`=16 WHERE `entry`=21568; +UPDATE `creature_template` SET `faction`=16 WHERE `entry`=21569; +UPDATE `creature_template` SET `faction`=16 WHERE `entry`=21573; +UPDATE `creature_template` SET `faction`=16 WHERE `entry`=21579; +UPDATE `creature_template` SET `faction`=16 WHERE `entry`=21580; +UPDATE `creature_template` SET `faction`=16 WHERE `entry`=21583; +UPDATE `creature_template` SET `faction`=16 WHERE `entry`=21616; +UPDATE `creature_template` SET `faction`=16 WHERE `entry`=21647; +UPDATE `creature_template` SET `faction`=16 WHERE `entry`=21918; +UPDATE `creature_template` SET `faction`=16 WHERE `entry`=21943; +UPDATE `creature_template` SET `faction`=16 WHERE `entry`=21991; +UPDATE `creature_template` SET `faction`=16 WHERE `entry`=22604; +UPDATE `creature_template` SET `faction`=16 WHERE `entry`=22636; +UPDATE `creature_template` SET `faction`=16 WHERE `entry`=22728; +UPDATE `creature_template` SET `faction`=16 WHERE `entry`=25549; +UPDATE `creature_template` SET `faction`=16 WHERE `entry`=25553; +UPDATE `creature_template` SET `faction`=16 WHERE `entry`=25555; +UPDATE `creature_template` SET `faction`=16 WHERE `entry`=25564; +UPDATE `creature_template` SET `faction`=16 WHERE `entry`=30496; +UPDATE `creature_template` SET `faction`=16 WHERE `entry`=30498; +UPDATE `creature_template` SET `faction`=16 WHERE `entry`=30509; +UPDATE `creature_template` SET `faction`=16 WHERE `entry`=31339; +UPDATE `creature_template` SET `faction`=16 WHERE `entry`=31345; +UPDATE `creature_template` SET `faction`=16 WHERE `entry`=31354; +UPDATE `creature_template` SET `faction`=16 WHERE `entry`=31355; +UPDATE `creature_template` SET `faction`=16 WHERE `entry`=31357; +UPDATE `creature_template` SET `faction`=16 WHERE `entry`=31379; +UPDATE `creature_template` SET `faction`=16 WHERE `entry`=31382; +UPDATE `creature_template` SET `faction`=16 WHERE `entry`=31390; +UPDATE `creature_template` SET `faction`=16 WHERE `entry`=31514; +UPDATE `creature_template` SET `faction`=16 WHERE `entry`=31922; +UPDATE `creature_template` SET `faction`=16 WHERE `entry`=31925; +UPDATE `creature_template` SET `faction`=16 WHERE `entry`=32111; +UPDATE `creature_template` SET `faction`=16 WHERE `entry`=32583; +UPDATE `creature_template` SET `faction`=16 WHERE `entry`=33690; +UPDATE `creature_template` SET `faction`=16 WHERE `entry`=37238; +UPDATE `creature_template` SET `faction`=16 WHERE `entry`=37241; +UPDATE `creature_template` SET `faction`=16 WHERE `entry`=37432; +UPDATE `creature_template` SET `faction`=1638 WHERE `entry`=36083; +UPDATE `creature_template` SET `faction`=168 WHERE `entry`=32796; +UPDATE `creature_template` SET `faction`=1692 WHERE `entry`=21584; +UPDATE `creature_template` SET `faction`=1693 WHERE `entry`=20182; +UPDATE `creature_template` SET `faction`=1713 WHERE `entry`=20186; +UPDATE `creature_template` SET `faction`=1718 WHERE `entry`=20746; +UPDATE `creature_template` SET `faction`=1720 WHERE `entry`=20737; +UPDATE `creature_template` SET `faction`=1720 WHERE `entry`=20738; +UPDATE `creature_template` SET `faction`=1720 WHERE `entry`=20745; +UPDATE `creature_template` SET `faction`=1720 WHERE `entry`=21712; +UPDATE `creature_template` SET `faction`=1720 WHERE `entry`=22166; +UPDATE `creature_template` SET `faction`=1720 WHERE `entry`=22167; +UPDATE `creature_template` SET `faction`=1720 WHERE `entry`=22168; +UPDATE `creature_template` SET `faction`=1720 WHERE `entry`=22171; +UPDATE `creature_template` SET `faction`=1720 WHERE `entry`=22172; +UPDATE `creature_template` SET `faction`=1720 WHERE `entry`=31486; +UPDATE `creature_template` SET `faction`=1720 WHERE `entry`=31490; +UPDATE `creature_template` SET `faction`=1720 WHERE `entry`=31493; +UPDATE `creature_template` SET `faction`=1720 WHERE `entry`=31494; +UPDATE `creature_template` SET `faction`=1720 WHERE `entry`=32192; +UPDATE `creature_template` SET `faction`=1732 WHERE `entry`=35429; +UPDATE `creature_template` SET `faction`=1735 WHERE `entry`=35425; +UPDATE `creature_template` SET `faction`=1747 WHERE `entry`=20550; +UPDATE `creature_template` SET `faction`=1748 WHERE `entry`=22129; +UPDATE `creature_template` SET `faction`=1748 WHERE `entry`=26651; +UPDATE `creature_template` SET `faction`=1780 WHERE `entry`=30759; +UPDATE `creature_template` SET `faction`=1780 WHERE `entry`=30760; +UPDATE `creature_template` SET `faction`=1780 WHERE `entry`=30761; +UPDATE `creature_template` SET `faction`=1814 WHERE `entry`=31593; +UPDATE `creature_template` SET `faction`=1814 WHERE `entry`=31600; +UPDATE `creature_template` SET `faction`=1874 WHERE `entry`=30798; +UPDATE `creature_template` SET `faction`=1885 WHERE `entry`=31664; +UPDATE `creature_template` SET `faction`=1885 WHERE `entry`=31677; +UPDATE `creature_template` SET `faction`=1892 WHERE `entry`=26099; +UPDATE `creature_template` SET `faction`=190 WHERE `entry`=28168; +UPDATE `creature_template` SET `faction`=190 WHERE `entry`=30758; +UPDATE `creature_template` SET `faction`=190 WHERE `entry`=30768; +UPDATE `creature_template` SET `faction`=190 WHERE `entry`=30769; +UPDATE `creature_template` SET `faction`=190 WHERE `entry`=30776; +UPDATE `creature_template` SET `faction`=190 WHERE `entry`=33789; +UPDATE `creature_template` SET `faction`=1998 WHERE `entry`=26338; +UPDATE `creature_template` SET `faction`=1998 WHERE `entry`=26339; +UPDATE `creature_template` SET `faction`=1998 WHERE `entry`=26340; +UPDATE `creature_template` SET `faction`=1998 WHERE `entry`=26341; +UPDATE `creature_template` SET `faction`=1998 WHERE `entry`=26342; +UPDATE `creature_template` SET `faction`=2075 WHERE `entry`=31183; +UPDATE `creature_template` SET `faction`=21 WHERE `entry`=30057; +UPDATE `creature_template` SET `faction`=21 WHERE `entry`=30779; +UPDATE `creature_template` SET `faction`=21 WHERE `entry`=30815; +UPDATE `creature_template` SET `faction`=21 WHERE `entry`=31647; +UPDATE `creature_template` SET `faction`=21 WHERE `entry`=33664; +UPDATE `creature_template` SET `faction`=21 WHERE `entry`=33668; +UPDATE `creature_template` SET `faction`=21 WHERE `entry`=38388; +UPDATE `creature_template` SET `faction`=2120 WHERE `entry`=20583; +UPDATE `creature_template` SET `faction`=2189 WHERE `entry`=35353; +UPDATE `creature_template` SET `faction`=2189 WHERE `entry`=35354; +UPDATE `creature_template` SET `faction`=2189 WHERE `entry`=35355; +UPDATE `creature_template` SET `faction`=2189 WHERE `entry`=35356; +UPDATE `creature_template` SET `faction`=2189 WHERE `entry`=35357; +UPDATE `creature_template` SET `faction`=2189 WHERE `entry`=35358; +UPDATE `creature_template` SET `faction`=233 WHERE `entry`=29635; +UPDATE `creature_template` SET `faction`=26 WHERE `entry`=22694; +UPDATE `creature_template` SET `faction`=26 WHERE `entry`=22781; +UPDATE `creature_template` SET `faction`=26 WHERE `entry`=32110; +UPDATE `creature_template` SET `faction`=26 WHERE `entry`=32142; +UPDATE `creature_template` SET `faction`=26 WHERE `entry`=37431; +UPDATE `creature_template` SET `faction`=26 WHERE `entry`=37472; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=22599; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=35417; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=35419; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=35421; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=35436; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=36357; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=36358; +UPDATE `creature_template` SET `faction`=37 WHERE `entry`=22625; +UPDATE `creature_template` SET `faction`=37 WHERE `entry`=22631; +UPDATE `creature_template` SET `faction`=37 WHERE `entry`=22637; +UPDATE `creature_template` SET `faction`=37 WHERE `entry`=22643; +UPDATE `creature_template` SET `faction`=37 WHERE `entry`=22725; +UPDATE `creature_template` SET `faction`=37 WHERE `entry`=22788; +UPDATE `creature_template` SET `faction`=37 WHERE `entry`=22789; +UPDATE `creature_template` SET `faction`=37 WHERE `entry`=22790; +UPDATE `creature_template` SET `faction`=37 WHERE `entry`=22791; +UPDATE `creature_template` SET `faction`=37 WHERE `entry`=22792; +UPDATE `creature_template` SET `faction`=37 WHERE `entry`=22793; +UPDATE `creature_template` SET `faction`=37 WHERE `entry`=22794; +UPDATE `creature_template` SET `faction`=37 WHERE `entry`=22795; +UPDATE `creature_template` SET `faction`=37 WHERE `entry`=22796; +UPDATE `creature_template` SET `faction`=37 WHERE `entry`=22797; +UPDATE `creature_template` SET `faction`=37 WHERE `entry`=31998; +UPDATE `creature_template` SET `faction`=37 WHERE `entry`=32027; +UPDATE `creature_template` SET `faction`=37 WHERE `entry`=32054; +UPDATE `creature_template` SET `faction`=37 WHERE `entry`=32120; +UPDATE `creature_template` SET `faction`=37 WHERE `entry`=37317; +UPDATE `creature_template` SET `faction`=37 WHERE `entry`=37347; +UPDATE `creature_template` SET `faction`=37 WHERE `entry`=37375; +UPDATE `creature_template` SET `faction`=37 WHERE `entry`=37443; +UPDATE `creature_template` SET `faction`=370 WHERE `entry`=20571; +UPDATE `creature_template` SET `faction`=370 WHERE `entry`=21620; +UPDATE `creature_template` SET `faction`=39 WHERE `entry`=22555; +UPDATE `creature_template` SET `faction`=39 WHERE `entry`=22785; +UPDATE `creature_template` SET `faction`=39 WHERE `entry`=32000; +UPDATE `creature_template` SET `faction`=39 WHERE `entry`=32146; +UPDATE `creature_template` SET `faction`=39 WHERE `entry`=37319; +UPDATE `creature_template` SET `faction`=39 WHERE `entry`=37476; +UPDATE `creature_template` SET `faction`=40 WHERE `entry`=18432; +UPDATE `creature_template` SET `faction`=41 WHERE `entry`=20540; +UPDATE `creature_template` SET `faction`=51 WHERE `entry`=20176; +UPDATE `creature_template` SET `faction`=51 WHERE `entry`=20178; +UPDATE `creature_template` SET `faction`=58 WHERE `entry`=20687; +UPDATE `creature_template` SET `faction`=58 WHERE `entry`=22322; +UPDATE `creature_template` SET `faction`=614 WHERE `entry`=32795; +UPDATE `creature_template` SET `faction`=7 WHERE `entry`=20171; +UPDATE `creature_template` SET `faction`=778 WHERE `entry`=30814; +UPDATE `creature_template` SET `faction`=80 WHERE `entry`=36086; +UPDATE `creature_template` SET `faction`=84 WHERE `entry`=22601; +UPDATE `creature_template` SET `faction`=90 WHERE `entry`=25566; +UPDATE `creature_template` SET `faction`=90 WHERE `entry`=30763; +UPDATE `creature_template` SET `faction`=90 WHERE `entry`=30773; +UPDATE `creature_template` SET `faction`=90 WHERE `entry`=30793; +UPDATE `creature_template` SET `faction`=90 WHERE `entry`=36301; +UPDATE `creature_template` SET `faction`=90 WHERE `entry`=36302; +UPDATE `creature_template` SET `faction`=90 WHERE `entry`=36303; +UPDATE `creature_template` SET `faction`=91 WHERE `entry`=20689; +UPDATE `creature_template` SET `faction`=91 WHERE `entry`=20702; +UPDATE `creature_template` SET `faction`=91 WHERE `entry`=20703; +UPDATE `creature_template` SET `faction`=91 WHERE `entry`=20704; +UPDATE `creature_template` SET `faction`=91 WHERE `entry`=20705; +UPDATE `creature_template` SET `faction`=974 WHERE `entry`=30756; +UPDATE `creature_template` SET `faction`=99 WHERE `entry`=20549; diff --git a/sql/updates/world/2014_08_29_07_world_creature_template_335.sql b/sql/updates/world/2014_08_29_07_world_creature_template_335.sql new file mode 100644 index 00000000000..04e4e339d87 --- /dev/null +++ b/sql/updates/world/2014_08_29_07_world_creature_template_335.sql @@ -0,0 +1,82 @@ +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 2070; -- should have been 2153 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 2071; -- should have been 2153 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 2237; -- should have been 2153 +UPDATE `creature_template` SET `faction` = 44 WHERE `entry` = 2165; -- should have been 2154 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 35085; -- should have been 2159 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 35086; -- should have been 2159 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 35088; -- should have been 2159 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 35091; -- should have been 2159 +UPDATE `creature_template` SET `faction` = 69 WHERE `entry` = 3442; -- should have been 2160 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 23211; -- should have been 2161 +UPDATE `creature_template` SET `faction` = 1194 WHERE `entry` = 16134; -- should have been 2167 +UPDATE `creature_template` SET `faction` = 132 WHERE `entry` = 4646; -- should have been 2183 +UPDATE `creature_template` SET `faction` = 132 WHERE `entry` = 4647; -- should have been 2183 +UPDATE `creature_template` SET `faction` = 132 WHERE `entry` = 4648; -- should have been 2183 +UPDATE `creature_template` SET `faction` = 132 WHERE `entry` = 4649; -- should have been 2183 +UPDATE `creature_template` SET `faction` = 132 WHERE `entry` = 4651; -- should have been 2183 +UPDATE `creature_template` SET `faction` = 132 WHERE `entry` = 4652; -- should have been 2183 +UPDATE `creature_template` SET `faction` = 132 WHERE `entry` = 4653; -- should have been 2183 +UPDATE `creature_template` SET `faction` = 132 WHERE `entry` = 4661; -- should have been 2183 +UPDATE `creature_template` SET `faction` = 133 WHERE `entry` = 4638; -- should have been 2184 +UPDATE `creature_template` SET `faction` = 133 WHERE `entry` = 4639; -- should have been 2184 +UPDATE `creature_template` SET `faction` = 133 WHERE `entry` = 4640; -- should have been 2184 +UPDATE `creature_template` SET `faction` = 133 WHERE `entry` = 4641; -- should have been 2184 +UPDATE `creature_template` SET `faction` = 133 WHERE `entry` = 4642; -- should have been 2184 +UPDATE `creature_template` SET `faction` = 133 WHERE `entry` = 4643; -- should have been 2184 +UPDATE `creature_template` SET `faction` = 133 WHERE `entry` = 4644; -- should have been 2184 +UPDATE `creature_template` SET `faction` = 133 WHERE `entry` = 4645; -- should have been 2184 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 428; -- should have been 2200 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 32870; -- should have been 2201 +UPDATE `creature_template` SET `faction` = 74 WHERE `entry` = 6190; -- should have been 2205 +UPDATE `creature_template` SET `faction` = 74 WHERE `entry` = 6195; -- should have been 2205 +UPDATE `creature_template` SET `faction` = 22 WHERE `entry` = 2349; -- should have been 2213 +UPDATE `creature_template` SET `faction` = 475 WHERE `entry` = 9460; -- should have been 2240 +UPDATE `creature_template` SET `faction` = 994 WHERE `entry` = 15187; -- should have been 2252 +UPDATE `creature_template` SET `faction` = 994 WHERE `entry` = 15188; -- should have been 2252 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 3000; -- should have been 2263 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 9117; -- should have been 2263 +UPDATE `creature_template` SET `faction` = 474 WHERE `entry` = 10302; -- should have been 2263 +UPDATE `creature_template` SET `faction` = 474 WHERE `entry` = 10583; -- should have been 2263 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 10977; -- should have been 2263 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 12959; -- should have been 2263 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 9270; -- should have been 2263 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 9271; -- should have been 2263 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 9997; -- should have been 2263 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 11858; -- should have been 2266 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 11910; -- should have been 2266 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 11911; -- should have been 2266 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 11912; -- should have been 2266 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 11913; -- should have been 2266 +UPDATE `creature_template` SET `faction` = 62 WHERE `entry` = 1034; -- should have been 2273 +UPDATE `creature_template` SET `faction` = 62 WHERE `entry` = 1035; -- should have been 2273 +UPDATE `creature_template` SET `faction` = 62 WHERE `entry` = 1036; -- should have been 2273 +UPDATE `creature_template` SET `faction` = 62 WHERE `entry` = 1038; -- should have been 2273 +UPDATE `creature_template` SET `faction` = 62 WHERE `entry` = 1057; -- should have been 2273 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 7013; -- should have been 2313 +UPDATE `creature_template` SET `faction` = 48 WHERE `entry` = 1016; -- should have been 2358 +UPDATE `creature_template` SET `faction` = 48 WHERE `entry` = 1019; -- should have been 2358 +UPDATE `creature_template` SET `faction` = 48 WHERE `entry` = 6505; -- should have been 2358 +UPDATE `creature_template` SET `faction` = 48 WHERE `entry` = 6506; -- should have been 2358 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 7431; -- should have been 2358 +UPDATE `creature_template` SET `faction` = 16 WHERE `entry` = 7432; -- should have been 2358 +UPDATE `creature_template` SET `faction` = 814 WHERE `entry` = 11194; -- should have been 2363 +UPDATE `creature_template` SET `faction` = 1625 WHERE `entry` = 16378; -- should have been 2363 +UPDATE `creature_template` SET `faction` = 2073 WHERE `entry` = 28247; -- should have been 2363 +UPDATE `creature_template` SET `faction` = 1475 WHERE `entry` = 14622; -- should have been 2364 +UPDATE `creature_template` SET `faction` = 24 WHERE `entry` = 206; -- should have been 2375 +UPDATE `creature_template` SET `faction` = 24 WHERE `entry` = 920; -- should have been 2375 +UPDATE `creature_template` SET `faction` = 32 WHERE `entry` = 11466; -- should have been 2468 +UPDATE `creature_template` SET `faction` = 14 WHERE `entry` = 11486; -- should have been 2468 +UPDATE `creature_template` SET `faction` = 1354 WHERE `entry` = 14355; -- should have been 2468 +UPDATE `creature_template` SET `faction` = 32 WHERE `entry` = 14358; -- should have been 2468 +UPDATE `creature_template` SET `faction` = 7 WHERE `entry` = 14361; -- should have been 2468 +UPDATE `creature_template` SET `faction` = 71 WHERE `entry` = 14364; -- should have been 2468 +UPDATE `creature_template` SET `faction` = 32 WHERE `entry` = 14368; -- should have been 2468 +UPDATE `creature_template` SET `faction` = 32 WHERE `entry` = 14369; -- should have been 2468 +UPDATE `creature_template` SET `faction` = 32 WHERE `entry` = 14371; -- should have been 2468 +UPDATE `creature_template` SET `faction` = 32 WHERE `entry` = 14381; -- should have been 2468 +UPDATE `creature_template` SET `faction` = 32 WHERE `entry` = 14382; -- should have been 2468 +UPDATE `creature_template` SET `faction` = 32 WHERE `entry` = 14383; -- should have been 2468 +UPDATE `creature_template` SET `faction` = 35 WHERE `entry` = 15774; -- should have been 2468 +UPDATE `creature_template` SET `faction` = 1354 WHERE `entry` = 16032; -- should have been 2468 +UPDATE `creature_template` SET `faction` = 126 WHERE `entry` = 3188; -- should have been 2663 diff --git a/sql/updates/world/2014_08_30_00_world_creature_text.sql b/sql/updates/world/2014_08_30_00_world_creature_text.sql new file mode 100644 index 00000000000..a2926ce2689 --- /dev/null +++ b/sql/updates/world/2014_08_30_00_world_creature_text.sql @@ -0,0 +1,92 @@ +DELETE FROM `trinity_string` WHERE (`entry` BETWEEN 1302 AND 1325) OR (`entry` IN (1331,1332)); + +DELETE FROM `creature_text` WHERE `entry`=14848; +DELETE FROM `creature_text` WHERE `entry`=11946 AND `groupid`=3 AND `id`=5; +INSERT INTO `creature_text` (`entry`, `groupid`, `id`, `text`, `type`, `language`, `probability`, `emote`, `duration`, `sound`, `BroadcastTextID`, `comment`) VALUES +(14848, 1, 0, 'The Stormpike Graveyard was taken by the Alliance!', 14, 0, 100, 0, 0, 8173, 9057, 'Herald'), +(14848, 2, 0, 'The Stormpike Graveyard is under attack! If left unchecked, the Alliance will capture it!', 14, 0, 100, 0, 0, 8212, 9058, 'Herald'), +(14848, 3, 0, 'The Stormpike Graveyard was taken by the Horde!', 14, 0, 100, 0, 0, 8213, 9059, 'Herald'), +(14848, 4, 0, 'The Stormpike Graveyard is under attack! If left unchecked, the Horde will capture it!', 14, 0, 100, 0, 0, 8174, 9060, 'Herald'), + +(14848, 5, 0, 'The Snowfall Graveyard was taken by the Alliance!', 14, 0, 100, 0, 0, 8173, 9061, 'Herald'), +(14848, 6, 0, 'The Snowfall Graveyard is under attack! If left unchecked, the Alliance will capture it!', 14, 0, 100, 0, 0, 8212, 9062, 'Herald'), +(14848, 7, 0, 'The Snowfall Graveyard was taken by the Horde!', 14, 0, 100, 0, 0, 8213, 9063, 'Herald'), +(14848, 8, 0, 'The Snowfall Graveyard is under attack! If left unchecked, the Horde will capture it!', 14, 0, 100, 0, 0,8174, 9064, 'Herald'), + +(14848, 9, 0, 'The Frostwolf Graveyard was taken by the Alliance!', 14, 0, 100, 0, 0, 8173, 9065, 'Herald'), +(14848,10, 0, 'The Frostwolf Graveyard is under attack! If left unchecked, the Alliance will capture it!', 14, 0, 100, 0, 0, 8212, 9066, 'Herald'), +(14848,11, 0, 'The Frostwolf Graveyard was taken by the Horde!', 14, 0, 100, 0, 0, 8213, 9067, 'Herald'), +(14848,12, 0, 'The Frostwolf Graveyard is under attack! If left unchecked, the Horde will capture it!', 14, 0, 100, 0, 0, 8174, 9068, 'Herald'), + +(14848,13, 0, 'The Dun Baldar South Bunker is under attack! If left unchecked, the Horde will destroy it!', 14, 0, 100, 0, 0, 8174, 9174, 'Herald'), +(14848,14, 0, 'The Dun Baldar South Bunker was destroyed by the Horde!', 14, 0, 100, 0, 0, 8213, 9175, 'Herald'), +(14848,15, 0, 'The Dun Baldar South Bunker is under attack! If left unchecked, the Alliance will destroy it!', 14, 0, 100, 0, 0, 8212, 9176, 'Herald'), +(14848,16, 0, 'The Dun Baldar South Bunker was taken by the Alliance!', 14, 0, 100, 0, 0, 8192, 9177, 'Herald'), + +(14848,17, 0, 'The Dun Baldar North Bunker is under attack! If left unchecked, the Horde will destroy it!', 14, 0, 100, 0, 0, 8174, 9178, 'Herald'), +(14848,18, 0, 'The Dun Baldar North Bunker was destroyed by the Horde!', 14, 0, 100, 0, 0, 8213, 9179, 'Herald'), +(14848,19, 0, 'The Dun Baldar North Bunker is under attack! If left unchecked, the Alliance will destroy it!', 14, 0, 100, 0, 0, 8212, 9180, 'Herald'), +(14848,20, 0, 'The Dun Baldar North Bunker was taken by the Alliance!', 14, 0, 100, 0, 0, 8192, 9181, 'Herald'), + +(14848,21, 0, 'The Icewing Bunker is under attack! If left unchecked, the Horde will destroy it!', 14, 0, 100, 0, 0, 8174, 9182, 'Herald'), +(14848,22, 0, 'The Icewing Bunker was destroyed by the Horde!', 14, 0, 100, 0, 0, 8213, 9183, 'Herald'), +(14848,23, 0, 'The Icewing Bunker is under attack! If left unchecked, the Alliance will destroy it!', 14, 0, 100, 0, 0, 8212, 9184, 'Herald'), +(14848,24, 0, 'The Icewing Bunker was taken by the Alliance!', 14, 0, 100, 0, 0, 8192, 9185, 'Herald'), + +(14848,25, 0, 'The Stonehearth Bunker is under attack! If left unchecked, the Horde will destroy it!', 14, 0, 100, 0, 0, 8174, 9186, 'Herald'), +(14848,26, 0, 'The Stonehearth Bunker was destroyed by the Horde!', 14, 0, 100, 0, 0, 8213, 9187, 'Herald'), +(14848,27, 0, 'The Stonehearth Bunker is under attack! If left unchecked, the Alliance will destroy it!', 14, 0, 100, 0, 0, 8212, 9188, 'Herald'), +(14848,28, 0, 'The Stonehearth Bunker was taken by the Alliance!', 14, 0, 100, 0, 0, 8192, 9189, 'Herald'), + +(14848,29, 0, 'The West Frostwolf Tower is under attack! If left unchecked, the Horde will destroy it!', 14, 0, 100, 0, 0, 8174, 9190, 'Herald'), +(14848,30, 0, 'The West Frostwolf Tower was taken by the Horde!', 14, 0, 100, 0, 0, 8192, 9191, 'Herald'), +(14848,31, 0, 'The West Frostwolf Tower is under attack! If left unchecked, the Alliance will destroy it!', 14, 0, 100, 0, 0, 8212, 9192, 'Herald'), +(14848,32, 0, 'The West Frostwolf Tower was destroyed by the Alliance!', 14, 0, 100, 0, 0, 8173, 9193, 'Herald'), + +(14848,33, 0, 'The East Frostwolf Tower is under attack! If left unchecked, the Horde will destroy it!', 14, 0, 100, 0, 0, 8174, 9194, 'Herald'), +(14848,34, 0, 'The East Frostwolf Tower was taken by the Horde!', 14, 0, 100, 0, 0, 8192, 9195, 'Herald'), +(14848,35, 0, 'The East Frostwolf Tower is under attack! If left unchecked, the Alliance will destroy it!', 14, 0, 100, 0, 0, 8212, 9196, 'Herald'), +(14848,36, 0, 'The East Frostwolf Tower was destroyed by the Alliance!', 14, 0, 100, 0, 0, 8173, 9197, 'Herald'), + +(14848,37, 0, 'Tower Point is under attack! If left unchecked, the Horde will destroy it!', 14, 0, 100, 0, 0, 8174, 9198, 'Herald'), +(14848,38, 0, 'Tower Point was taken by the Horde!', 14, 0, 100, 0, 0, 8192, 9199, 'Herald'), +(14848,39, 0, 'Tower Point is under attack! If left unchecked, the Alliance will destroy it!', 14, 0, 100, 0, 0, 8212, 9200, 'Herald'), +(14848,40, 0, 'Tower Point was destroyed by the Alliance!', 14, 0, 100, 0, 0, 8173, 9201, 'Herald'), + +(14848,41, 0, 'Iceblood Bunker is under attack! If left unchecked, the Horde will destroy it!', 14, 0, 100, 0, 0, 8174, 9202, 'Herald'), +(14848,42, 0, 'Iceblood Tower was taken by the Horde!', 14, 0, 100, 0, 0, 8192, 9203, 'Herald'), +(14848,43, 0, 'Iceblood Tower is under attack! If left unchecked, the Alliance will destroy it!', 14, 0, 100, 0, 0, 8212, 9204, 'Herald'), +(14848,44, 0, 'Iceblood Tower was destroyed by the Alliance!', 14, 0, 100, 0, 0, 8173, 9205, 'Herald'), + +(14848,45, 0, 'The Stormpike Aid Station was taken by the Horde!', 14, 0, 100, 0, 0, 8213, 9211, 'Herald'), +(14848,46, 0, 'The Stormpike Aid Station is under attack! If left unchecked, the Horde will capture it!', 14, 0, 100, 0, 0, 8174, 9212, 'Herald'), +(14848,47, 0, 'The Stormpike Aid Station was taken by the Alliance!', 14, 0, 100, 0, 0, 8173, 9213, 'Herald'), +(14848,48, 0, 'The Stormpike Aid Station is under attack! If left unchecked, the Alliance will capture it!', 14, 0, 100, 0, 0, 8212, 9214, 'Herald'), + +(14848,49, 0, 'The Frostwolf Relief Hut was taken by the Horde!', 14, 0, 100, 0, 0, 8213, 9215, 'Herald'), +(14848,50, 0, 'The Frostwolf Relief Hut is under attack! If left unchecked, the Horde will capture it!', 14, 0, 100, 0, 0, 8174, 9216, 'Herald'), +(14848,51, 0, 'The Frostwolf Relief Hut was taken by the Alliance!', 14, 0, 100, 0, 0, 8173, 9217, 'Herald'), +(14848,52, 0, 'The Frostwolf Relief Hut is under attack! If left unchecked, the Alliance will capture it!', 14, 0, 100, 0, 0, 8212, 9218, 'Herald'), + +(14848,53, 0, 'The Stonehearth Graveyard was taken by the Horde!', 14, 0, 100, 0, 0, 8213, 9221, 'Herald'), +(14848,54, 0, 'The Stonehearth Graveyard is under attack! If left unchecked, the Horde will capture it!', 14, 0, 100, 0, 0, 8174, 9222, 'Herald'), +(14848,55, 0, 'The Stonehearth Graveyard was taken by the Alliance!', 14, 0, 100, 0, 0, 8173, 9223, 'Herald'), +(14848,56, 0, 'The Stonehearth Graveyard is under attack! If left unchecked, the Alliance will capture it!', 14, 0, 100, 0, 0, 8212, 9224, 'Herald'), + +(14848,57, 0, 'The Iceblood Graveyard was taken by the Horde!', 14, 0, 100, 0, 0, 8213, 9225, 'Herald'), +(14848,58, 0, 'The Iceblood Graveyard is under attack! If left unchecked, the Horde will capture it!', 14, 0, 100, 0, 0, 8174, 9226, 'Herald'), +(14848,59, 0, 'The Iceblood Graveyard was taken by the Alliance!', 14, 0, 100, 0, 0, 8173, 9227, 'Herald'), +(14848,60, 0, 'The Iceblood Graveyard is under attack! If left unchecked, the Alliance will capture it!', 14, 0, 100, 0, 0, 8212, 9228, 'Herald'), + +(14848,61, 0, 'The Alliance has taken Coldtooth Mine! Its supplies will now be used for reinforcements!', 14, 0, 100, 0, 0, 8173, 8594, 'Herald'), +(14848,62, 0, 'The Alliance has taken the Irondeep Mine! Its supplies will now be used for reinforcements!', 14, 0, 100, 0, 0, 8173, 8595, 'Herald'), +(14848,63, 0, 'The Horde has taken the Coldtooth Mine! Its supplies will now be used for reinforcements!', 14, 0, 100, 0, 0, 8213, 8596, 'Herald'), +(14848,64, 0, 'The Horde has taken the Irondeep Mine! Its supplies will now be used for reinforcements!', 14, 0, 100, 0, 0, 8213, 8597, 'Herald'), + +(14848,65, 0, 'The Frostwolf General is dead!', 14, 0, 100, 0, 0, 0, 7296, 'Herald'), +(14848,66, 0, 'The Stormpike General is dead!', 14, 0, 100, 0, 0, 0, 7297, 'Herald'), + +(14848,67, 0, 'The Alliance wins!', 14, 0, 100, 0, 0, 0, 7335, 'Herald'), +(14848,68, 0, 'The Horde wins!', 14, 0, 100, 0, 0, 0, 7336, 'Herald'), + +(11946, 3, 5, 'Leave no survivors!', 14, 0, 100, 0, 0, 0, 12352, 'Drek''Thar'); diff --git a/sql/updates/world/2014_08_30_01_world_creature_addon.sql b/sql/updates/world/2014_08_30_01_world_creature_addon.sql new file mode 100644 index 00000000000..40ce35ae05e --- /dev/null +++ b/sql/updates/world/2014_08_30_01_world_creature_addon.sql @@ -0,0 +1,2 @@ +-- +DELETE FROM `creature_addon` WHERE `guid`=137619; diff --git a/sql/updates/world/2014_08_30_02_world_command.sql b/sql/updates/world/2014_08_30_02_world_command.sql new file mode 100644 index 00000000000..f7972c39303 --- /dev/null +++ b/sql/updates/world/2014_08_30_02_world_command.sql @@ -0,0 +1,19 @@ +UPDATE `command` SET + `help` = 'Syntax: .server idlerestart #delay [#exit_code] [reason]\n\nRestart the server after #delay seconds if no active connections are present (no players). Use #exit_code or 2 as program exit code.' +WHERE + `name` = 'server idlerestart'; + +UPDATE `command` SET + `help` = 'Syntax: .server idleshutdown #delay [#exit_code] [reason]\n\nShut the server down after #delay seconds if no active connections are present (no players). Use #exit_code or 0 as program exist code.' +WHERE + `name` = 'server idleshutdown'; + +UPDATE `command` SET + `help` = 'Syntax: .server restart #delay [#exit_code] [reason]\n\nRestart the server after #delay seconds. Use #exit_code or 2 as program exist code.' +WHERE + `name` = 'server restart'; + +UPDATE `command` SET + `help` = 'Syntax: .server shutdown #delay [#exit_code] [reason]\n\nShut the server down after #delay seconds. Use #exit_code or 0 as program exit code.' +WHERE + `name` = 'server shutdown'; diff --git a/sql/updates/world/2014_08_30_03_world_sai.sql b/sql/updates/world/2014_08_30_03_world_sai.sql new file mode 100644 index 00000000000..4b7b39ecb65 --- /dev/null +++ b/sql/updates/world/2014_08_30_03_world_sai.sql @@ -0,0 +1,313 @@ +DELETE FROM `creature_text` WHERE `entry` IN(35361,35372,35368,35321,35320,33853,35501,33417); +INSERT INTO `creature_text` (`entry`, `groupid`, `id`, `text`, `type`, `language`, `probability`, `emote`, `duration`, `sound`, `comment`, `BroadcastTextID`) VALUES +-- Horde +(35361, 0, 0, 'Welcome, Warchief Thrall. Overlord Hellscream.', 12, 0, 100, 2, 0, 16056, 'Highlord Tirion Fordring',35785), +(35361, 1, 0, 'I hope you''ll see the merit of these events in time, Garrosh. We cannot win against the Scourge if we continue to war against one another.', 12, 0, 100, 0, 0, 16057, 'Highlord Tirion Fordring',35786), +(35361, 2, 0, 'Under my roof, gentlemen, I trust you will behave.', 12, 0, 100, 0, 0, 16058, 'Highlord Tirion Fordring',35787), +(35361, 3, 0, 'If you will follow me, then.', 12, 0, 100, 1, 0, 16059, 'Highlord Tirion Fordring',35788), +(35372, 0, 0, 'Pah! That was a show of strength, worthy of a leader. I only regret I did not kill that human before the mage interfered.', 12, 0, 100, 5, 0, 16027, 'Garrosh Hellscream',35553), +(35372, 1, 0, 'What honor is there in thrashing about with blunted sticks? This is a waste of time.', 12, 0, 100, 1, 0, 16028, 'Garrosh Hellscream',35554), +(35372, 2, 0, 'Speak for yourself, Thrall.', 12, 0, 100, 1, 0, 16029, 'Garrosh Hellscream',35555), +(35372, 3, 0, 'Words of a fool, you mean. The Horde will destroy the undead without your aid, human, or that of the pompous king.', 12, 0, 100, 274, 0, 16030, 'Garrosh Hellscream',35556), +(35372, 4, 0, 'Bah.', 12, 0, 100, 1, 0, 16031, 'Garrosh Hellscream',35557), +(35368, 0, 0, 'Garrosh, I expect you to control yourself here. I do not want a repeat of the Violet Citadel.', 12, 0, 100, 1, 0, 16181, 'Thrall',35552), +(35368, 1, 0, 'We are guests here, Garrosh, and you will conduct yourself honorably.', 12, 0, 100, 0, 0, 16182, 'Thrall',35558), +(35368, 2, 0, 'Thank you for the invitation, Lord Fordring. We look forward to observing these games.', 12, 0, 100, 66, 0, 16183, 'Thrall',35559), +(35368, 3, 0, 'Wise words.', 12, 0, 100, 1, 0, 16184, 'Thrall',35560), +(35368, 4, 0, 'Garrosh, enough!', 12, 0, 100, 5, 0, 16185, 'Thrall',35561), +(35368, 5, 0, 'Of course, Tirion. I apologize for his outburst. It will not be repeated.', 12, 0, 100, 0, 0, 16186, 'Thrall',35562), +-- Alliance +(35361, 4, 0, 'King Varian, Lady Jaina. Welcome to the tournament. Your place in the coliseum is waiting.', 12, 0, 100, 1, 0, 16054, 'Highlord Tirion Fordring',35522), +(35361, 5, 0, 'My people are here to ensure they honor the rules of engagement. It will do your subjects well to see you in the stands.', 12, 0, 100, 1, 0, 16055, 'Highlord Tirion Fordring',35525), +(35361, 6, 0, '%s nods and gestures for his guests to follow.', 16, 0, 100, 273, 0, 0, 'Highlord Tirion Fordring',35526), +(35321, 0, 0, 'Tirion.', 12, 0, 100, 1, 0, 16070, 'King Varian Wrynn',35521), +(35321, 1, 0, 'You ask much of me, Tirion, to sit and watch, trusting the savages to keep themselves in check.', 12, 0, 100, 1, 0, 16071, 'King Varian Wrynn',35524), +(35321, 2, 0, 'Perhaps. I doubt the effectiveness of this gambit. We would be better served preparing our armies for the final assault.', 12, 0, 100, 1, 0, 16072, 'King Varian Wrynn',35527), +(35321, 3, 0, 'But if my presence is required in these games to gain your support in the battle, then I will remain. For now.', 12, 0, 100, 1, 0, 0, 'King Varian Wrynn',35528), +(35320, 0, 0, 'Thank you. It''s the least I can do to support this; we need to stand together.', 12, 0, 100, 2, 0, 16120, 'Lady Jaina Proudmoore',0), -- Broadcast text 35523 but text fails with broadcast text id even though text is female text? +(35320, 1, 0, 'I''m sure Thrall will have his people under control...', 12, 0, 100, 274, 0, 16121, 'Lady Jaina Proudmoore',0), -- Broadcast text 35529 but text fails with broadcast text id even though text is female text? +-- Speech +(35361, 7, 0, 'Combatants of the Alliance and Horde! You are welcome under the banner of the Argent Crusade.', 12, 0, 100, 5, 0, 0, 'Highlord Tirion Fordring',35799), +(35361, 8, 0, 'To the south lies our goal. We will march to the Citadel and cut out the heart of the Scourge where it dwells.', 12, 0, 100, 25, 0, 0, 'Highlord Tirion Fordring',35800), +(35361, 9, 0, 'But this is no task to be taken lightly.', 12, 0, 100, 0, 0, 0, 'Highlord Tirion Fordring',35801), +(35361, 10, 0, 'A massive attack with every able-bodied man would end in needless slaughter. Every soldier lost would rise as the enemy. Azeroth would be left defenseless against the undead threat.', 12, 0, 100, 0, 0, 0, 'Highlord Tirion Fordring',35802), +(35361, 11, 0, 'Instead, we require a small, concentrated strike force for the attack to succeed. For that reason, we have created the Argent Tournament.', 12, 0, 100, 0, 0, 0, 'Highlord Tirion Fordring',35803), +(35361, 12, 0, 'Within these walls, you will be tested. Your skill in combat will be matched against the fiercest dangers Northrend has to offer under the watchful eyes of your leaders.', 12, 0, 100, 0, 0, 0, 'Highlord Tirion Fordring',35805), +(35361, 13, 0, 'Your prowess, your might, and your cunning will be under close watch. These games will determine the best Azeroth has to offer.', 12, 0, 100, 0, 0, 0, 'Highlord Tirion Fordring',35806), +(35361, 14, 0, 'The victors will take their rightful place in the assault upon the Citadel. We will stand together in the face of evil, and Arthas WILL fall!', 12, 0, 100, 0, 0, 0, 'Highlord Tirion Fordring',35807), +-- Other texts +(33853, 0, 0, 'This tournament is the biggest event in ages! Buy something to bring home to your family and show your kids.', 12, 0, 100, 1, 0, 0, 'Broxel Goldgrasp',33837), +(33853, 0, 1, 'Hey! Check out these doublets! Now you can sport your city''s colors without having a tabard flapping around and getting in the way!', 12, 0, 100, 1, 0, 0, 'Broxel Goldgrasp',33836), +(33853, 0, 2, 'Want to show your pride without flailing around on one of those beasts? Whichever city you''re rooting for, I got what you need!', 12, 0, 100, 1, 0, 0, 'Broxel Goldgrasp',33835), +(35501, 0, 0, 'The Warchief of the Horde, Thrall, and Overlord Garrosh Hellscream have arrived upon the tournament grounds! Clear the way to the entrance!', 14, 0, 100, 22, 0, 0, 'Herald Beluus',35811), +(35501, 1, 0, 'Highlord Tirion Fordring approaches the stage to address those gathered upon the tournament grounds! Make way to the stage area to attend him!', 14, 0, 100, 22, 0, 0, 'Herald Beluus',35812), +(35501, 2, 0, 'His Majesty, King Varian Wrynn, and Lady Jaina Proudmoore have touched down upon the tournament grounds! Make way!', 14, 0, 100, 22, 0, 0, 'Herald Beluus',35810), +(33417, 0, 0, 'Now, I will imbue this crystal with the Light''s power to cut through lies and deceit.', 12, 0, 100, 1, 0, 0, 'Crusader Rhydalla',33540), +(33417, 1, 0, 'Grant us the ability to know the truth. If a murderer walks in our midst, guide us in our search for justice.', 12, 0, 100, 1, 0, 0, 'Crusader Rhydalla',33541); + +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry` IN (35361,35372,35368,35321,35320,33853,35501,35460,35322,33417); +DELETE FROM `smart_scripts` WHERE `entryorguid` IN (35361,35372,35368,35321,35320,33853,35501,35460,35322,33417) AND `source_type`=0; +DELETE FROM `smart_scripts` WHERE `entryorguid` IN (3536100,3536800,3536801,3532100,3550100,3550101,3550102) AND `source_type`=9; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(33417,0,0,0,20,0,100,0,13641,0,0,0,1,0,8000,0,0,0,0,1,0,0,0,0,0,0,0,'Crusader Rhydalla - On Quest Complete (The Seers Crystal) - Say line 0'), +(33417,0,1,0,52,0,100,0,0,33417,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,'Crusader Rhydalla - On Text Over Line 0 - Say line 1'), +(33853,0,0,0,1,0,100,0,30000,90000,120000,180000,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Broxel Goldgrasp - OOC - Say'), +(35460,0,0,0,38,0,100,0,2,2,0,0,41,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Kor Kron Elite - on Data Set 2 2 - Despawn'), +(35322,0,0,0,38,0,100,0,2,2,0,0,41,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Stormwind Royal Guard - on Data Set 2 2 - Despawn'), +(35460,0,1,0,38,0,100,0,1,1,0,0,29,0,0,0,0,0,0,19,35368,0,0,0,0,0,0,'Kor Kron Elite - on Data Set 1 1 - Follow Thrall'), +(35322,0,1,0,38,0,100,0,1,1,0,0,29,0,0,0,0,0,0,19,35321,0,0,0,0,0,0,'Stormwind Royal Guard - on Data Set 1 1 - Follow King Varian Wrynn'), +(35501,0,0,4,38,0,100,0,1,1,900000,900000,107,1,0,0,0,0,0,1,0,0,0,0,0,0,0,'Herald Beluus - On Data Set 1 1 - Spawn Summon Group 1'), +(35501,0,1,5,38,0,100,0,2,2,900000,900000,107,2,0,0,0,0,0,1,0,0,0,0,0,0,0,'Herald Beluus - On Data Set 2 2 - Spawn Summon Group 2'), +(35501,0,2,6,38,0,100,0,3,3,900000,900000,107,3,0,0,0,0,0,1,0,0,0,0,0,0,0,'Herald Beluus - On Data Set 3 3 - Spawn Summon Group 3'), +(35501,0,4,0,61,0,100,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Herald Beluus - On Data Set 1 1 - Say Line 0'), +(35501,0,5,0,61,0,100,0,0,0,0,0,1,2,0,0,0,0,0,1,0,0,0,0,0,0,0,'Herald Beluus - On Data Set 2 2 - Say Line 2'), +(35501,0,6,7,61,0,100,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,'Herald Beluus - On Data Set 3 3 - Say Line 1'), +(35501,0,7,0,61,0,100,0,0,0,0,0,45,3,3,0,0,0,0,19,35361,0,0,0,0,0,0,'Herald Beluus - On Data Set 3 3 - Set Data 3 3 on Tirion Fordring'), +(35501,0,8,0,68,0,100,0,67,0,0,0,80,3550100,2,0,0,0,0,1,0,0,0,0,0,0,0,'Herald Beluus - On Event Start 67 - Run Script'), +(35501,0,9,0,68,0,100,0,68,0,0,0,80,3550101,2,0,0,0,0,1,0,0,0,0,0,0,0,'Herald Beluus - On Event Start 68 - Run Script 2'), +(35501,0,10,0,68,0,100,0,69,0,0,0,80,3550102,2,0,0,0,0,1,0,0,0,0,0,0,0,'Herald Beluus - On Event Start 69 - Run Script 3'), +(35361,0,0,0,38,0,100,0,1,1,0,0,53,0,3536101,0,0,0,0,1,0,0,0,0,0,0,0,'Highlord Tirion Fordring - On Data Set 1 1 - Start WP (Path 1)'), +(35361,0,1,0,38,0,100,0,2,2,0,0,53,0,3536102,0,0,0,0,1,0,0,0,0,0,0,0,'Highlord Tirion Fordring - On Data Set 2 2 - Start WP (Path 2)'), +(35361,0,2,0,38,0,100,0,3,3,0,0,53,0,3536103,0,0,0,0,1,0,0,0,0,0,0,0,'Highlord Tirion Fordring - On Data Set 3 3 - Start WP (Path 3)'), +(35361,0,3,0,40,0,100,0,5,3536101,0,0,41,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Highlord Tirion Fordring - On Reached WP 5 (Path 1) - Despawn'), +(35361,0,4,0,40,0,100,0,7,3536102,0,0,41,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Highlord Tirion Fordring - On Reached WP 7 (Path 2) - Despawn'), +(35361,0,5,0,40,0,100,0,53,3536103,0,0,41,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Highlord Tirion Fordring - On Reached WP 53 (Path 3) - Despawn'), +(35361,0,6,7,40,0,100,0,26,3536103,0,0,54,76000,0,0,0,0,0,1,0,0,0,0,0,0,0,'Highlord Tirion Fordring - On Reached WP 26 (Path 3) - Pause WP'), +(35361,0,7,0,61,0,100,0,0,0,0,0,80,3536100,2,0,0,0,0,1,0,0,0,0,0,0,0,'Highlord Tirion Fordring - On Reached WP 26 (Path 3) - Run Script'), +(35368,0,0,1,54,0,100,0,0,0,0,0,45,1,1,0,0,0,0,9,35460,0,200,0,0,0,0,'Thrall - On Just Summoned - Set Data 1 1 on Kor Kron Elite'), +(35368,0,1,0,61,0,100,0,0,0,0,0,53,0,35368,0,0,0,0,1,0,0,0,0,0,0,0,'Thrall - On Just Summoned - Start WP'), +(35368,0,2,3,40,0,100,0,7,35368,0,0,54,39000,0,0,0,0,0,1,0,0,0,0,0,0,0,'Thrall - On Reached WP7 - Pause WP'), +(35368,0,3,0,61,0,100,0,0,0,0,0,80,3536800,2,0,0,0,0,1,0,0,0,0,0,0,0,'Thrall - On Reached WP7 - Run Script 1'), +(35368,0,4,5,40,0,100,0,12,35368,0,0,54,85000,0,0,0,0,0,1,0,0,0,0,0,0,0,'Thrall - On Reached WP12 - Pause WP'), +(35368,0,5,0,61,0,100,0,0,0,0,0,80,3536801,2,0,0,0,0,1,0,0,0,0,0,0,0,'Thrall - On Reached WP15 - Run Script 2'), +(35368,0,6,7,40,0,100,0,19,35368,0,0,45,2,2,0,0,0,0,9,35460,0,200,0,0,0,0,'Thrall - On Reached WP19 - Set Data 2 2 on Kor Kron Elite'), +(35368,0,7,0,61,0,100,0,0,0,0,0,41,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Thrall - On Reached WP19 - Despawn'), +(35372,0,0,0,54,0,100,0,0,0,0,0,53,0,35372,0,0,0,0,1,0,0,0,0,0,0,0,'Garrosh Hellscream - On Just Summoned - Start WP'), +(35372,0,1,0,40,0,100,0,7,35372,0,0,54,39000,0,0,0,0,0,1,0,0,0,0,0,0,0,'Garrosh Hellscream - On Reached WP10 - Pause WP'), +(35372,0,3,0,40,0,100,0,12,35372,0,0,54,85000,0,0,0,0,0,1,0,0,0,0,0,0,0,'Garrosh Hellscream - On Reached WP15 - Pause WP'), +(35372,0,4,0,40,0,100,0,19,35372,0,0,41,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Garrosh Hellscream - On Reached WP22 - Despawn'), +(35372,0,5,0,38,0,100,0,1,1,0,0,66,0,0,0,0,0,0,19,35368,0,0,0,0,0,0,'Garrosh Hellscream - On Data Set 1 1 - Face Thrall'), +(35372,0,6,0,38,0,100,0,2,2,0,0,66,0,0,0,0,0,0,19,35361,0,0,0,0,0,0,'Garrosh Hellscream - On Data Set 2 2 - Face Tirion'), +(35321,0,0,1,54,0,100,0,0,0,0,0,45,1,1,0,0,0,0,9,35322,0,200,0,0,0,0,'King Varian Wrynn - On Just Summoned - Set Data 1 1 on Stormwind Royal Guard'), +(35321,0,1,0,61,0,100,0,0,0,0,0,53,0,35321,0,0,0,0,1,0,0,0,0,0,0,0,'King Varian Wrynn - On Just Summoned - Start WP'), +(35321,0,2,3,40,0,100,0,11,35321,0,0,54,70000,0,0,0,0,0,1,0,0,0,0,0,0,0,'King Varian Wrynn - On Reached WP11 - Pause WP'), +(35321,0,3,0,61,0,100,0,0,0,0,0,80,3532100,2,0,0,0,0,1,0,0,0,0,0,0,0,'King Varian Wrynn - On Reached WP11 - Run Script 1'), +(35321,0,4,5,40,0,100,0,19,35321,0,0,45,2,2,0,0,0,0,9,35322,0,200,0,0,0,0,'King Varian Wrynn - On Reached WP19 - Set Data 2 2 on Stormwind Royal Guard'), +(35321,0,5,0,61,0,100,0,0,0,0,0,41,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'King Varian Wrynn - On Reached WP19 - Despawn'), +(35320,0,0,0,54,0,100,0,0,0,0,0,53,0,35320,0,0,0,0,1,0,0,0,0,0,0,0,'Lady Jaina Proudmoore - On Just Summoned - Start WP'), +(35320,0,1,0,40,0,100,0,11,35320,0,0,54,70000,0,0,0,0,0,1,0,0,0,0,0,0,0,'Lady Jaina Proudmoore - On Reached WP13 - Pause WP'), +(35320,0,2,0,40,0,100,0,16,35320,0,0,41,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Lady Jaina Proudmoore - On Reached WP18 - Despawn'), +(35320,0,3,0,38,0,100,0,1,1,0,0,66,0,0,0,0,0,0,19,35361,0,0,0,0,0,0,'Lady Jaina Proudmoore - On Data Set 1 1 - Face Tirion'), +(3550100,9,0,0,0,0,100,0,1000,1000,0,0,45,3,3,0,0,0,0,1,0,0,0,0,0,0,0,'Herald Beluus - Script - Set Data 3 3'), +(3550101,9,0,0,0,0,100,0,1000,1000,0,0,45,1,1,0,0,0,0,1,0,0,0,0,0,0,0,'Herald Beluus - Script 2 - Set Data 1 1'), +(3550102,9,0,0,0,0,100,0,1000,1000,0,0,45,2,2,0,0,0,0,1,0,0,0,0,0,0,0,'Herald Beluus - Script 3 - Set Data 2 2'), +(3536800,9,0,0,0,0,100,0,2000,2000,0,0,66,0,0,0,0,0,0,19,35372,0,0,0,0,0,0,'Thrall - Script 1 - Set Orientation'), +(3536800,9,1,0,0,0,100,0,1000,1000,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Thrall - Script 1 - Say Line 0'), +(3536800,9,2,0,0,0,100,0,2000,2000,0,0,45,1,1,0,0,0,0,19,35732,0,0,0,0,0,0,'Thrall - Script 1 - Set Data 1 1 on Garrosh Hellscream'), +(3536800,9,3,0,0,0,100,0,2000,2000,0,0,66,0,0,0,0,0,0,19,35372,0,0,0,0,0,0,'Thrall - Script 1 - Set Orientation'), +(3536800,9,4,0,0,0,100,0,5000,5000,0,0,1,0,0,0,0,0,0,19,35372,0,0,0,0,0,0,'Thrall - Script 1 - Say Line 0 on Garrosh Hellscream'), +(3536800,9,5,0,0,0,100,0,10000,10000,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,'Thrall - Script 1 - Say Line 1'), +(3536800,9,6,0,0,0,100,0,9000,9000,0,0,1,1,0,0,0,0,0,19,35372,0,0,0,0,0,0,'Thrall - Script 1 - Say Line 1 on Garrosh Hellscream'), +(3536801,9,0,0,0,0,100,0,2000,2000,0,0,66,0,0,0,0,0,0,19,35361,0,0,0,0,0,0,'Thrall - Script 2 - Set Orientation'), +(3536801,9,1,0,0,0,100,0,1000,1000,0,0,1,0,0,0,0,0,0,19,35361,0,0,0,0,0,0,'Thrall - Script 2 - Say Line 0 on Tirion Fordring'), +(3536801,9,2,0,0,0,100,0,2000,2000,0,0,45,2,2,0,0,0,0,19,35732,0,0,0,0,0,0,'Thrall - Script 2 - Set Data 2 2 on Garrosh Hellscream'), +(3536801,9,3,0,0,0,100,0,6000,6000,0,0,1,2,0,0,0,0,0,1,0,0,0,0,0,0,0,'Thrall - Script 2 - Say Line 2'), +(3536801,9,6,0,0,0,100,0,9000,9000,0,0,1,2,0,0,0,0,0,19,35372,0,0,0,0,0,0,'Thrall - Script 1 - Say Line 1 on Garrosh Hellscream'), +(3536801,9,7,0,0,0,100,0,9000,9000,0,0,1,1,0,0,0,0,0,19,35361,0,0,0,0,0,0,'Thrall - Script 2 - Say Line 1 on Tirion Fordring'), +(3536801,9,8,0,0,0,100,0,9000,9000,0,0,1,3,0,0,0,0,0,1,0,0,0,0,0,0,0,'Thrall - Script 2 - Say Line 3'), +(3536801,9,9,0,0,0,100,0,5000,5000,0,0,1,3,0,0,0,0,0,19,35372,0,0,0,0,0,0,'Thrall - Script 2 - Say Line 3 on Garrosh Hellscream'), +(3536801,9,10,0,0,0,100,0,9000,9000,0,0,1,4,0,0,0,0,0,1,0,0,0,0,0,0,0,'Thrall - Script 2 - Say Line 4'), +(3536801,9,11,0,0,0,100,0,9000,9000,0,0,1,2,0,0,0,0,0,19,35361,0,0,0,0,0,0,'Thrall - Script 2 - Say Line 2 on Tirion Fordring'), +(3536801,9,12,0,0,0,100,0,9000,9000,0,0,1,5,0,0,0,0,0,1,0,0,0,0,0,0,0,'Thrall - Script 2 - Say Line 5'), +(3536801,9,13,0,0,0,100,0,7000,7000,0,0,1,4,0,0,0,0,0,19,35372,0,0,0,0,0,0,'Thrall - Script 2 - Say Line 4 on Garrosh Hellscream'), +(3536801,9,14,0,0,0,100,0,9000,9000,0,0,1,3,0,0,0,0,0,19,35361,0,0,0,0,0,0,'Thrall - Script 2 - Say Line 3 on Tirion Fordring'), +(3536801,9,15,0,0,0,100,0,2000,2000,0,0,45,2,2,0,0,0,0,19,35361,0,0,0,0,0,0,'Thrall - Script 2 - Set Data 2 2 On Tirion Fordring'), +(3532100,9,0,0,0,0,100,0,2000,2000,0,0,66,0,0,0,0,0,0,19,35361,0,0,0,0,0,0,'King Varian Wrynn - Script - Set Orientation'), +(3532100,9,1,0,0,0,100,0,1000,1000,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'King Varian Wrynn - Script - Say Line 0'), +(3532100,9,2,0,0,0,100,0,3000,3000,0,0,45,1,1,0,0,0,0,19,35320,0,0,0,0,0,0,'King Varian Wrynn - Script - Set Data 1 1 on Lady Jaina Proudmoore'), +(3532100,9,3,0,0,0,100,0,3000,3000,0,0,1,4,0,0,0,0,0,19,35361,0,0,0,0,0,0,'King Varian Wrynn - Script - Say Line 4 on Tirion Fordring'), +(3532100,9,4,0,0,0,100,0,9000,9000,0,0,1,0,0,0,0,0,0,19,35320,0,0,0,0,0,0,'King Varian Wrynn - Script - Say Line 0 on Lady Jaina Proudmoore'), +(3532100,9,5,0,0,0,100,0,9000,9000,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,'King Varian Wrynn - Script - Say Line 1'), +(3532100,9,6,0,0,0,100,0,9000,9000,0,0,1,5,0,0,0,0,0,19,35361,0,0,0,0,0,0,'King Varian Wrynn - Script - Say Line 5 on Tirion Fordring'), +(3532100,9,7,0,0,0,100,0,9000,9000,0,0,1,1,0,0,0,0,0,19,35320,0,0,0,0,0,0,'King Varian Wrynn - Script - Say Line 1 on Lady Jaina Proudmoore'), +(3532100,9,8,0,0,0,100,0,9000,9000,0,0,1,2,0,0,0,0,0,1,0,0,0,0,0,0,0,'King Varian Wrynn - Script - Say Line 2'), +(3532100,9,9,0,0,0,100,0,9000,9000,0,0,1,3,0,0,0,0,0,1,0,0,0,0,0,0,0,'King Varian Wrynn - Script - Say Line 3'), +(3532100,9,10,0,0,0,100,0,5000,5000,0,0,1,6,0,0,0,0,0,19,35361,0,0,0,0,0,0,'King Varian Wrynn - Script - Say Line 6 on Tirion Fordring'), +(3532100,9,11,0,0,0,100,0,1000,1000,0,0,45,2,2,0,0,0,0,19,35361,0,0,0,0,0,0,'King Varian Wrynn - Script - Set Data 2 2 on Tirion Fordring'), +(3536100,9,0,0,0,0,100,0,2000,2000,0,0,1,7,0,0,0,0,0,1,0,0,0,0,0,0,0,'Tirion Fordring - Script - Say Line 7'), +(3536100,9,1,0,0,0,100,0,9000,9000,0,0,1,8,0,0,0,0,0,1,0,0,0,0,0,0,0,'Tirion Fordring - Script - Say Line 8'), +(3536100,9,2,0,0,0,100,0,9000,9000,0,0,1,9,0,0,0,0,0,1,0,0,0,0,0,0,0,'Tirion Fordring - Script - Say Line 9'), +(3536100,9,3,0,0,0,100,0,9000,9000,0,0,1,10,0,0,0,0,0,1,0,0,0,0,0,0,0,'Tirion Fordring - Script - Say Line 10'), +(3536100,9,4,0,0,0,100,0,9000,9000,0,0,1,11,0,0,0,0,0,1,0,0,0,0,0,0,0,'Tirion Fordring - Script - Say Line 11'), +(3536100,9,5,0,0,0,100,0,9000,9000,0,0,1,12,0,0,0,0,0,1,0,0,0,0,0,0,0,'Tirion Fordring - Script - Say Line 12'), +(3536100,9,6,0,0,0,100,0,9000,9000,0,0,1,13,0,0,0,0,0,1,0,0,0,0,0,0,0,'Tirion Fordring - Script - Say Line 13'), +(3536100,9,7,0,0,0,100,0,9000,9000,0,0,1,14,0,0,0,0,0,1,0,0,0,0,0,0,0,'Tirion Fordring - Script - Say Line 14'); + +DELETE FROM `creature_summon_groups` WHERE `summonerId`=35501; +INSERT INTO `creature_summon_groups` (`summonerId`, `summonerType`, `groupId`, `entry`, `position_x`, `position_y`, `position_z`, `orientation`, `summonType`, `summonTime`) VALUES +(35501, 0, 1, 35372, 8378.492, 857.5355, 548.197, 6.158272, 1, 300000), -- Garrosh Hellscream <Overlord of the Warsong Offensive> +(35501, 0, 1, 35368, 8378.619, 857.5087, 548.1897, 0.1038857, 1, 300000), -- Thrall <Warchief> +(35501, 0, 1, 35460, 8431.85, 783.5225, 547.1886, 4.800064, 1, 300000), -- Kor'kron Elite +(35501, 0, 1, 35460, 8431.819, 786.1658, 547.0226, 4.752929, 1, 300000), -- Kor'kron Elite +(35501, 0, 1, 35460, 8432.082, 788.9749, 547.0226, 4.72544, 1, 300000), -- Kor'kron Elite +(35501, 0, 1, 35460, 8431.932, 792.5201, 547.0226, 4.731718, 1, 300000), -- Kor'kron Elite +(35501, 0, 1, 35361, 8514.482, 1002.043, 547.5427, 1.54998, 1, 300000), -- Tirion Fordring +(35501, 0, 2, 35321, 8627.393, 825.6207, 547.844, 6.001378, 1, 300000), -- King Varian Wrynn <King of Stormwind> +(35501, 0, 2, 35320, 8627.415, 825.7189, 547.8445, 6.09736, 1, 300000), -- Lady Jaina Proudmoore +(35501, 0, 2, 35322, 8598.433, 782.7703, 547.2332, 4.035077, 1, 300000), -- Stormwind Royal Guard +(35501, 0, 2, 35322, 8599.854, 786.8993, 547.106, 0, 1, 300000), -- Stormwind Royal Guard +(35501, 0, 2, 35322, 8599.948, 789.8871, 547.1022, 0, 1, 300000), -- Stormwind Royal Guard +(35501, 0, 2, 35322, 8600.094, 792.9618, 547.0916, 0, 1, 300000), -- Stormwind Royal Guard +(35501, 0, 2, 35361, 8514.867, 999.8611, 547.5361, 1.564039, 1, 300000), -- Tirion Fordring +(35501, 0, 3, 35361, 8516.173, 857.1208, 558.224, 1.620469, 1, 300000); -- Tirion Fordring + +DELETE FROM `waypoints` WHERE `entry` IN(35372,35368,35321,35320,3536101,3536102,3536103); +INSERT INTO `waypoints` (`entry`, `pointid`, `position_x`, `position_y`, `position_z`, `point_comment`) VALUES +(35372, 1,8378.492, 853.5355, 548.197, 'Garrosh Hellscream'), +(35372, 2,8383.742, 860.5355, 548.947, 'Garrosh Hellscream'), +(35372, 3,8387.742, 863.0355, 548.197, 'Garrosh Hellscream'), +(35372, 4,8395.488, 867.5789, 547.4661, 'Garrosh Hellscream'), +(35372, 5,8429.673, 868.0316, 547.5607, 'Garrosh Hellscream'), +(35372, 6,8456.814, 868.2816, 547.5472, 'Garrosh Hellscream'), +(35372, 7,8471.326, 874.7925, 547.3564, 'Garrosh Hellscream'), -- event 1 +(35372, 8,8474.354, 965.6163, 547.5648, 'Garrosh Hellscream'), +(35372, 9,8474.914, 994.8466, 547.569, 'Garrosh Hellscream'), +(35372, 10,8475.963, 1015.37, 547.4027, 'Garrosh Hellscream'), +(35372, 11,8491.083, 1023.574, 547.6857, 'Garrosh Hellscream'), +(35372, 12,8505.541, 1017.326, 547.4875, 'Garrosh Hellscream'), -- Event 2 +(35372, 13,8514.845, 967.8865, 547.6021, 'Garrosh Hellscream'), +(35372, 14,8513.313, 908.7572, 547.0596, 'Garrosh Hellscream'), +(35372, 15,8515.025, 903.334, 549.4037, 'Garrosh Hellscream'), +(35372, 16,8515.025, 883.334, 558.4037, 'Garrosh Hellscream'), +(35372, 17,8515.248, 883.068, 558.2806, 'Garrosh Hellscream'), +(35372, 18,8515.248, 881.818, 558.2806, 'Garrosh Hellscream'), +(35372, 19,8515.248, 869.818, 558.2806, 'Garrosh Hellscream'), -- Despawn +(35368, 1,8378.619, 857.5087, 548.1897, 'Thrall'), +(35368, 2,8383.619, 860.5087, 548.9397, 'Thrall'), +(35368, 3,8387.619, 863.0087, 548.1897, 'Thrall'), +(35368, 4,8395.587, 867.5353, 547.5248, 'Thrall'), +(35368, 5,8429.74, 868.0476, 547.556, 'Thrall'), +(35368, 6,8456.637, 868.2863, 547.5472, 'Thrall'), +(35368, 7,8471.311, 879.7035, 547.3566, 'Thrall'), -- Event 1 +(35368, 8,8474.318, 965.5286, 547.5663, 'Thrall'), +(35368, 9,8474.676, 995.0491, 547.5669, 'Thrall'), +(35368, 10,8476.174, 1015.247, 547.4014, 'Thrall'), +(35368, 11,8491.046, 1023.52, 547.6807, 'Thrall'), +(35368, 12,8505.436, 1023.33, 547.49, 'Thrall'), -- Event 2 +(35368, 13,8514.709, 967.9902, 547.6022, 'Thrall'), +(35368, 14,8513.313, 908.8455, 547.0592, 'Thrall'), +(35368, 15,8515.005, 903.3881, 549.3793, 'Thrall'), +(35368, 16,8515.005, 883.3881, 558.3793, 'Thrall'), +(35368, 17,8515.248, 883.1051, 558.2639, 'Thrall'), +(35368, 18,8515.248, 881.8551, 558.2639, 'Thrall'), +(35368, 19,8515.248, 869.8551, 558.2639, 'Thrall'), -- Despawn +(35321, 1,8627.393, 825.6207, 547.844, 'King Varian Wrynn '), +(35321, 2,8613.393, 837.8707, 548.344, 'King Varian Wrynn '), +(35321, 3,8608.143, 842.6207, 547.844, 'King Varian Wrynn '), +(35321, 4,8601.045, 848.5384, 547.8608, 'King Varian Wrynn '), +(35321, 5,8568.619, 877.0317, 547.8453, 'King Varian Wrynn '), +(35321, 6,8568.803, 905.2659, 547.8437, 'King Varian Wrynn '), +(35321, 7,8575.408, 931.527, 547.8807, 'King Varian Wrynn '), +(35321, 8,8574.291, 978.2374, 547.7904, 'King Varian Wrynn '), +(35321, 9,8573.76, 996.1445, 547.6873, 'King Varian Wrynn '), +(35321, 10,8547.205, 1025.768, 547.6677, 'King Varian Wrynn '), +(35321, 11,8522.588, 1025.523, 547.4802, 'King Varian Wrynn '), -- event +(35321, 12,8515.861, 966.6905, 547.7981, 'King Varian Wrynn '), +(35321, 13,8515.839, 933.1519, 547.6201, 'King Varian Wrynn '), +(35321, 14,8515.781, 909.5035, 547.7239, 'King Varian Wrynn '), +(35321, 15,8515.281, 908.2535, 547.7239, 'King Varian Wrynn '), +(35321, 16,8515.281, 907.7535, 547.4739, 'King Varian Wrynn '), +(35321, 17,8515.781, 883.2535, 558.2239, 'King Varian Wrynn '), +(35321, 18,8515.781, 882.5035, 558.2239, 'King Varian Wrynn '), +(35321, 19,8515.863, 874.8201, 558.4, 'King Varian Wrynn '), -- Despawn +(35320, 1,8627.415, 821.7189, 547.8445, 'Lady Jaina Proudmoore'), +(35320, 2,8613.415, 837.9689, 548.3445, 'Lady Jaina Proudmoore'), +(35320, 3,8608.165, 842.4689, 547.8445, 'Lady Jaina Proudmoore'), +(35320, 4,8601.23, 848.7488, 547.8608, 'Lady Jaina Proudmoore'), +(35320, 5,8568.586, 876.9446, 547.8464, 'Lady Jaina Proudmoore'), +(35320, 6,8568.813, 905.3264, 547.8437, 'Lady Jaina Proudmoore'), +(35320, 7,8575.418, 931.5242, 547.8807, 'Lady Jaina Proudmoore'), +(35320, 8,8574.326, 978.1571, 547.7883, 'Lady Jaina Proudmoore'), +(35320, 9,8573.799, 996.0771, 547.7056, 'Lady Jaina Proudmoore'), +(35320, 10,8547.209, 1025.604, 547.6677, 'Lady Jaina Proudmoore'), +(35320, 11,8522.485, 1022.519, 547.4802, 'Lady Jaina Proudmoore'), -- event +(35320, 12,8510.441, 962.6707, 547.7096, 'Lady Jaina Proudmoore'), +(35320, 13,8512.931, 908.6326, 547.1065, 'Lady Jaina Proudmoore'), +(35320, 14,8509.26, 890.199, 555.392, 'Lady Jaina Proudmoore'), +(35320, 15,8509.51, 882.949, 558.392, 'Lady Jaina Proudmoore'), +(35320, 16,8509.76, 866.949, 558.392, 'Lady Jaina Proudmoore'), -- Despawn +(3536101, 1,8515.837, 966.2322, 547.8004, 'Tirion Fordring Path 1 (A)'), +(3536101, 2,8515.438, 933.1854, 547.6211, 'Tirion Fordring Path 1 (A)'), +(3536101, 3,8515.114, 907.5914, 547.7163, 'Tirion Fordring Path 1 (A)'), +(3536101, 4,8515.231, 883.113, 558.3371, 'Tirion Fordring Path 1 (A)'), +(3536101, 5,8515.231, 876.113, 558.3371, 'Tirion Fordring Path 1 (A)'), -- Despawn +(3536102, 1,8514.69, 967.8665, 547.6022, 'Tirion Fordring Path 2 (H)'), +(3536102, 2,8513.313, 908.7299, 547.0597, 'Tirion Fordring Path 2 (H)'), +(3536102, 3,8515.041, 903.2933, 549.4221, 'Tirion Fordring Path 2 (H)'), +(3536102, 4,8515.041, 883.2933, 558.4221, 'Tirion Fordring Path 2 (H)'), +(3536102, 5,8515.248, 883.0287, 558.2983, 'Tirion Fordring Path 2 (H)'), +(3536102, 6,8515.248, 881.7787, 558.2983, 'Tirion Fordring Path 2 (H)'), +(3536102, 7,8515.248, 870.0287, 558.2983, 'Tirion Fordring Path 2 (H)'), -- Despawn +(3536103, 1,8515.115, 882.241, 558.4219, 'Tirion Fordring Path 3'), +(3536103, 2,8515.115, 883.241, 558.4219, 'Tirion Fordring Path 3'), +(3536103, 3,8515.398, 907.9827, 547.7035, 'Tirion Fordring Path 3'), +(3536103, 4,8515.627, 933.3921, 547.7746, 'Tirion Fordring Path 3'), +(3536103, 5,8515.333, 964.9823, 547.7904, 'Tirion Fordring Path 3'), +(3536103, 6,8515.431, 997.7224, 547.7899, 'Tirion Fordring Path 3'), +(3536103, 7,8515.498, 1012.836, 547.7288, 'Tirion Fordring Path 3'), +(3536103, 8,8504.991, 1024.238, 547.6447, 'Tirion Fordring Path 3'), +(3536103, 9,8488.602, 1022.55, 547.5944, 'Tirion Fordring Path 3'), +(3536103, 10,8477.459, 1011.274, 547.5656, 'Tirion Fordring Path 3'), +(3536103, 11,8477.004, 979.2046, 547.566, 'Tirion Fordring Path 3'), +(3536103, 12,8477.207, 957.4761, 547.6188, 'Tirion Fordring Path 3'), +(3536103, 13,8476.936, 932.0121, 547.5994, 'Tirion Fordring Path 3'), +(3536103, 14,8472.096, 895.4807, 547.5532, 'Tirion Fordring Path 3'), +(3536103, 15,8469.525, 875.2735, 547.5472, 'Tirion Fordring Path 3'), +(3536103, 16,8458.682, 869.0731, 547.5482, 'Tirion Fordring Path 3'), +(3536103, 17,8447.49, 869.5849, 547.3584, 'Tirion Fordring Path 3'), +(3536103, 18,8439.665, 864.4185, 547.6384, 'Tirion Fordring Path 3'), +(3536103, 19,8435.665, 840.2815, 547.6621, 'Tirion Fordring Path 3'), +(3536103, 20,8428.504, 828.4578, 548.1788, 'Tirion Fordring Path 3'), +(3536103, 21,8422.17, 820.4958, 548.2007, 'Tirion Fordring Path 3'), +(3536103, 22,8418.17, 819.9958, 547.7007, 'Tirion Fordring Path 3'), +(3536103, 23,8411.133, 821.0222, 547.7149, 'Tirion Fordring Path 3'), +(3536103, 24,8411.133, 822.7722, 548.7149, 'Tirion Fordring Path 3'), +(3536103, 25,8410.857, 822.8849, 548.9045, 'Tirion Fordring Path 3'), +(3536103, 26,8410.857, 823.6349, 549.1545, 'Tirion Fordring Path 3'), -- Speech +(3536103, 27,8413.572, 823.3403, 549.1307, 'Tirion Fordring Path 3'), +(3536103, 28,8414.322, 822.5903, 547.8807, 'Tirion Fordring Path 3'), +(3536103, 29,8416.822, 822.0903, 547.8807, 'Tirion Fordring Path 3'), +(3536103, 30,8424.572, 823.8403, 548.1307, 'Tirion Fordring Path 3'), +(3536103, 31,8431.322, 825.3403, 547.8807, 'Tirion Fordring Path 3'), +(3536103, 32,8431.529, 825.5197, 547.485, 'Tirion Fordring Path 3'), +(3536103, 33,8434.029, 826.0197, 547.485, 'Tirion Fordring Path 3'), +(3536103, 34,8441.018, 861.8821, 547.6302, 'Tirion Fordring Path 3'), +(3536103, 35,8464.893, 873.6819, 547.5815, 'Tirion Fordring Path 3'), +(3536103, 36,8466.393, 882.6819, 548.0815, 'Tirion Fordring Path 3'), +(3536103, 37,8467.893, 889.1819, 547.5815, 'Tirion Fordring Path 3'), +(3536103, 38,8470.238, 900.28, 547.3839, 'Tirion Fordring Path 3'), +(3536103, 39,8476.566, 926.4999, 547.6122, 'Tirion Fordring Path 3'), +(3536103, 40,8476.942, 953.2826, 547.5696, 'Tirion Fordring Path 3'), +(3536103, 41,8477.261, 987.5072, 547.3844, 'Tirion Fordring Path 3'), +(3536103, 42,8478.745, 1009.749, 547.8503, 'Tirion Fordring Path 3'), +(3536103, 43,8480.495, 1010.499, 548.3503, 'Tirion Fordring Path 3'), +(3536103, 44,8488.745, 1013.249, 548.8503, 'Tirion Fordring Path 3'), +(3536103, 45,8497.431, 1016.098, 548.8865, 'Tirion Fordring Path 3'), +(3536103, 46,8507.181, 1016.098, 548.1365, 'Tirion Fordring Path 3'), +(3536103, 47,8515.092, 1016.158, 547.686, 'Tirion Fordring Path 3'), +(3536103, 48,8514.816, 985.2982, 547.7898, 'Tirion Fordring Path 3'), +(3536103, 49,8514.082, 960.7643, 547.6128, 'Tirion Fordring Path 3'), +(3536103, 50,8513.166, 908.7978, 546.937, 'Tirion Fordring Path 3'), +(3536103, 51,8515.26, 891.7044, 554.6902, 'Tirion Fordring Path 3'), +(3536103, 52,8515.26, 882.9544, 558.4402, 'Tirion Fordring Path 3'), +(3536103, 53,8515.26, 854.9544, 558.1902, 'Tirion Fordring Path 3'); -- Despawn + +DELETE FROM `creature_template_addon` WHERE `entry`=35361; +INSERT INTO `creature_template_addon` (`entry`, `mount`, `bytes1`, `bytes2`, `auras`) VALUES +(35361, 0, 0x0, 0x0, '57545'); -- 35361 - 57545, 57550 + +DELETE FROM `game_event` WHERE `eventEntry` BETWEEN 67 AND 69; +INSERT INTO `game_event` (`eventEntry`, `start_time`, `end_time`, `occurence`, `length`, `holiday`, `description`, `world_event`, `announce`) VALUES +(67, '2010-01-02 00:40:00', '2020-12-31 06:00:00', 60, 5, 0, 'AT Event Trigger (Tirion Speech)', 0, 2), +(68, '2010-01-02 00:55:00', '2020-12-31 06:00:00', 60, 5, 0, 'AT Event Trigger (Horde Event)', 0, 2), +(69, '2010-01-02 00:10:00', '2020-12-31 06:00:00', 60, 5, 0, 'AT Event Trigger (Alliance Event)', 0, 2); diff --git a/sql/updates/world/2014_08_31_00_world_game_tele.sql b/sql/updates/world/2014_08_31_00_world_game_tele.sql new file mode 100644 index 00000000000..dd6d790fb2f --- /dev/null +++ b/sql/updates/world/2014_08_31_00_world_game_tele.sql @@ -0,0 +1,4 @@ +-- +DELETE FROM `game_tele` WHERE `id`=1424; +INSERT INTO `game_tele` (`id`, `position_x`, `position_y`, `position_z`, `orientation`, `map`, `name`) VALUES +(1424, 16218.7, 16403.6, -64.3789, 3.12191, 1, 'Jail'); diff --git a/sql/updates/world/2014_08_31_01_world_misc.sql b/sql/updates/world/2014_08_31_01_world_misc.sql new file mode 100644 index 00000000000..cf2645d772b --- /dev/null +++ b/sql/updates/world/2014_08_31_01_world_misc.sql @@ -0,0 +1,14 @@ +UPDATE `smart_scripts` SET `id`=15 WHERE `entryorguid`=20417 AND `source_type`=0 AND `id`=13 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=9, `event_param2`=9 WHERE `entryorguid`=20417 AND `source_type`=0 AND `id`=4 AND `link`=5; +UPDATE `smart_scripts` SET `action_param1`=9, `action_param2`=9 WHERE `entryorguid`=18395600 AND `source_type`=9 AND `id`=10 AND `link`=0; +UPDATE `creature_summon_groups` SET `summonTime`=900000 WHERE `summonerId`=35501; + +UPDATE `creature_template` SET `AIName`= 'SmartAI' WHERE `entry` IN(30209,30211,30212); +DELETE FROM `smart_scripts` WHERE `entryorguid` IN(30209,30211,30212) 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 +(30209, 0, 0, 0, 8, 0, 100, 0, 56275, 0, 0, 0, 33, 30209, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'North Lightning Forge - On Spellhit "Bouldercrags Bomb" - Give Kill Credit'), +(30211, 0, 0, 0, 8, 0, 100, 0, 56275, 0, 0, 0, 33, 30211, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Central Lightning Forge - On Spellhit "Bouldercrags Bomb" - Give Kill Credit'), +(30212, 0, 0, 0, 8, 0, 100, 0, 56275, 0, 0, 0, 33, 30212, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'South Lightning Forge - On Spellhit "Bouldercrags Bomb" - Give Kill Credit'); + +UPDATE `creature` SET `spawndist`=0, `MovementType`=0 WHERE `guid` IN(95645,96491,96864); diff --git a/sql/updates/world/2014_08_31_02_world_spell_script_names.sql b/sql/updates/world/2014_08_31_02_world_spell_script_names.sql new file mode 100644 index 00000000000..128364bf4e7 --- /dev/null +++ b/sql/updates/world/2014_08_31_02_world_spell_script_names.sql @@ -0,0 +1,3 @@ +DELETE FROM `spell_script_names` WHERE `spell_id` = 38194;
+INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
+(38194, 'spell_talon_king_ikiss_blink');
diff --git a/sql/updates/world/2014_09_01_00_world_misc.sql b/sql/updates/world/2014_09_01_00_world_misc.sql new file mode 100644 index 00000000000..7a415588f0f --- /dev/null +++ b/sql/updates/world/2014_09_01_00_world_misc.sql @@ -0,0 +1,56 @@ +DELETE FROM `gossip_menu` WHERE `entry` IN(7768,7767,7766,7765,7764,7763,7762,7974,7979,7978,7977,7976); +INSERT INTO `gossip_menu` (`entry`, `text_id`) VALUES +(7768, 9507), -- 18141 +(7767, 9508), -- 18141 +(7766, 9509), -- 18141 +(7765, 9510), -- 18141 +(7764, 9511), -- 18141 +(7763, 9512), -- 18141 +(7762, 9513), -- 18141 +(7768, 9819), -- 18141 +(7974, 9821), -- 18141 +(7979, 9822), -- 18141 +(7978, 9823), -- 18141 +(7977, 9824), -- 18141 +(7976, 9825); -- 18141 + +DELETE FROM `gossip_menu_option` WHERE `menu_id` IN(7768,7767,7766,7765,7764,7763,7762,7974,7979,7978,7977,7976); +INSERT INTO `gossip_menu_option` (`menu_id`, `id`, `option_icon`, `option_text`, `OptionBroadcastTextID`, `option_id`, `npc_option_npcflag`, `action_menu_id`, `action_poi_id`, `box_coded`, `box_money`, `box_text`, `BoxBroadcastTextID`) VALUES +-- A Visit with the Greatmother +(7768, 0, 0, 'Hello, Greatmother. Garrosh told me that you wanted to speak with me.', 15770, 1, 1, 7767, 0, 0, 0, '', 0), +(7767, 0, 0, 'You raised all of the orcs here, Greatmother?', 15772, 1, 1, 7766, 0, 0, 0, '', 0), +(7766, 0, 0, 'Do you believe that?', 15774, 1, 1, 7765, 0, 0, 0, '', 0), +(7765, 0, 0, 'What can be done? I have tried many different things. I have done my best to help the people of Nagrand. Each time I have approached Garrosh, he has dismissed me.', 15776, 1, 1, 7764, 0, 0, 0, '', 0), +(7764, 0, 0, 'Left? How can you choose to leave?', 15778, 1, 1, 7763, 0, 0, 0, '', 0), +(7763, 0, 0, 'What is this duty?', 15780, 1, 1, 7762, 0, 0, 0, '', 0), +(7762, 0, 0, 'Is there anything I can do for you, Greatmother?', 15782, 1, 1, 0, 0, 0, 0, '', 0), +-- There is no hope +(7768, 1, 0, 'Garrosh is beyond redemption, Greatmother. I fear that in helping the Mag\'har, I have convinced Garrosh that he is unfit to lead.', 16845, 1, 1, 7974, 0, 0, 0, '', 0), +(7974, 0, 0, 'I have done all that I could, Greatmother. I thank you for your kind words.', 16849, 1, 1, 7979, 0, 0, 0, '', 0), +(7979, 0, 0, 'Greatmother, you are the mother of Durotan?', 16851, 1, 1, 7978, 0, 0, 0, '', 0), +(7978, 0, 0, 'Greatmother, I never had the honor. Durotan died long before my time, but his heroics are known to all on my world. The orcs of Azeroth reside in a place known as Durotar, named after your son. And... <You take a moment to breathe and think through what you are about to tell the Greatmother.>', 16853, 1, 1, 7977, 0, 0, 0, '', 0), +(7977, 0, 0, 'It is my warchief, Greatmother. The leader of my people. From my world. He... He is the son of Durotan. He is your grandchild.', 16855, 1, 1, 7976, 0, 0, 0, '', 0), +(7976, 0, 0, 'I will return to Azeroth at once, Greatmother.', 16857, 1, 1, 0, 0, 0, 0, '', 0); + +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` IN(14,15) AND `SourceGroup`=7768; +INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES +(15, 7768, 0, 0, 0, 9, 0, 10044, 0, 0, 0, 0, 0, '', 'Greatmother Geyah - Show gossip option only if player has A Visit With the Greatmother taken'), +(15, 7768, 1, 0, 0, 9, 0, 10172, 0, 0, 0, 0, 0, '', 'Greatmother Geyah - Show gossip option only if player has There is no hope taken'), +(14, 7768, 9819, 0, 0, 9, 0, 10172, 0, 0, 0, 0, 0, '', 'Greatmother Geyah - Show npc text only if player has There is no hope taken'), +(14, 7768, 9507, 0, 0, 9, 0, 10172, 0, 0, 1, 0, 0, '', 'Greatmother Geyah - Show npc text only if player does not have There is no hope taken'); + +DELETE FROM `npc_text` WHERE `ID` IN(9819,9821,9822,9823,9824,9825); +INSERT INTO `npc_text` (`ID`, `text0_0`, `text0_1`, `BroadcastTextID0`, `lang0`, `prob0`, `em0_0`, `em0_1`, `em0_2`, `em0_3`, `em0_4`, `em0_5`, `text1_0`, `text1_1`, `BroadcastTextID1`, `lang1`, `prob1`, `em1_0`, `em1_1`, `em1_2`, `em1_3`, `em1_4`, `em1_5`, `text2_0`, `text2_1`, `BroadcastTextID2`, `lang2`, `prob2`, `em2_0`, `em2_1`, `em2_2`, `em2_3`, `em2_4`, `em2_5`, `text3_0`, `text3_1`, `BroadcastTextID3`, `lang3`, `prob3`, `em3_0`, `em3_1`, `em3_2`, `em3_3`, `em3_4`, `em3_5`, `text4_0`, `text4_1`, `BroadcastTextID4`, `lang4`, `prob4`, `em4_0`, `em4_1`, `em4_2`, `em4_3`, `em4_4`, `em4_5`, `text5_0`, `text5_1`, `BroadcastTextID5`, `lang5`, `prob5`, `em5_0`, `em5_1`, `em5_2`, `em5_3`, `em5_4`, `em5_5`, `text6_0`, `text6_1`, `BroadcastTextID6`, `lang6`, `prob6`, `em6_0`, `em6_1`, `em6_2`, `em6_3`, `em6_4`, `em6_5`, `text7_0`, `text7_1`, `BroadcastTextID7`, `lang7`, `prob7`, `em7_0`, `em7_1`, `em7_2`, `em7_3`, `em7_4`, `em7_5`, `VerifiedBuild`) VALUES +(9819, '', "What did Garrosh tell you, $n?", 16844, 0, 1, 1, 1, 1, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), +(9821, '', "<Greatmother Geyah nods, accepting your answer.>$B$BI can no longer fight the spirits, $n. My time has long since passed. Once again, I must thank you for all that you have done. While Garrosh may be unmovable, many of my people have been lifted by your accomplishments. They are now willing to fight for our rights as a united clan.", 16848, 0, 1, 1, 1, 1, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), +(9822, '', "<Greatmother Geyah smiles at you.>$B$BYou remind me of my son, $n.$B$BHe was an immovable mountain: A pillar of strength and honor.$B$B<Geyah's eyes well up with tears.>$B$BHe sacrificed himself so that we could survive. So that generations of orcs after him could be born into a world without the blood curse... Without Gul'dan and his dark Horde...$B$B<Geyah stares into the distance, lost in thought.>$B$BOh Durotan, how I wish you could be here. Your people so desperately need you...", 16850, 0, 1, 1, 1, 1, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), +(9823, '', "<Greatmother Geyah nods.>$B$BDid you know my son?", 16852, 0, 1, 1, 1, 1, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), +(9824, '', "<Greatmother Geyah's violet eyes lock onto yours.>$B$BYes...", 16854, 0, 1, 1, 1, 1, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), +(9825, '', "<Tears stream down Greatmother Geyah's face.>$B$BI... I... Durotan survived to have a child? The child Draka told me of before they left... It was their greatest fear... To raise a child in this world. On the other side of that gate was their only hope. I dared not tell Durotan, but secretly, I begged the spirits to watch over them - to protect their child and to give them strength.$B$BI... I must see my grandchild. I must see him. Please, I am too weak. You must tell him. Before I leave this world...", 16856, 0, 1, 1, 1, 1, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); + +UPDATE `creature_template` SET `AIName`= 'SmartAI',`ScriptName`= '' WHERE `entry` =18141; +DELETE FROM `smart_scripts` WHERE `entryorguid` =18141; +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 +(18141, 0, 0, 2, 62, 0, 100, 0, 7762, 0, 0, 0, 15, 10044, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Greatmother Geyah - On Gossip Option Select - Complete Quest (A Visit With the Greatmother)'), +(18141, 0, 1, 2, 62, 0, 100, 0, 7976, 0, 0, 0, 15, 10172, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Greatmother Geyah - On Gossip Option Select - Complete Quest (There is no hope)'), +(18141, 0, 2, 0, 61, 0, 100, 0, 0, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Greatmother Geyah - On Gossip Option Select - Close Gossip'); diff --git a/sql/updates/world/2014_09_02_00_world_misc_335.sql b/sql/updates/world/2014_09_02_00_world_misc_335.sql new file mode 100644 index 00000000000..0ead7e514e6 --- /dev/null +++ b/sql/updates/world/2014_09_02_00_world_misc_335.sql @@ -0,0 +1,2 @@ +-- +UPDATE `creature_template` SET `faction` = 554 WHERE `entry` = 3203; diff --git a/sql/updates/world/2014_09_03_00_world_creature_summon_groups.sql b/sql/updates/world/2014_09_03_00_world_creature_summon_groups.sql new file mode 100644 index 00000000000..aba5b88b1d4 --- /dev/null +++ b/sql/updates/world/2014_09_03_00_world_creature_summon_groups.sql @@ -0,0 +1,18 @@ +-- SWP: Move Muru summons to database
+SET @MURU := 25741;
+DELETE FROM `creature_summon_groups` WHERE `summonerId` = @MURU AND `entry` IN (25798, 25799, 25744);
+INSERT INTO `creature_summon_groups` (`summonerId`, `summonerType`, `groupId`, `entry`, `position_x`, `position_y`, `position_z`, `orientation`, `summonType`, `summonTime`) VALUES
+(@MURU, 0, 0, 25799, 1780.16, 666.83, 71.19, 5.21, 5, 0), -- Shadowsword Fury Mage
+(@MURU, 0, 0, 25799, 1847.93, 600.30, 71.30, 2.57, 5, 0),
+(@MURU, 0, 0, 25798, 1779.97, 660.64, 71.19, 5.28, 5, 0), -- Shadowsword Berserker
+(@MURU, 0, 0, 25798, 1786.20, 661.01, 71.19, 4.51, 5, 0),
+(@MURU, 0, 0, 25798, 1845.17, 602.63, 71.28, 2.43, 5, 0),
+(@MURU, 0, 0, 25798, 1842.91, 599.93, 71.23, 2.44, 5, 0),
+(@MURU, 0, 1, 25744, 1819.90, 609.80, 69.74, 1.94, 5, 0), -- Darkfiend
+(@MURU, 0, 1, 25744, 1829.39, 617.89, 69.73, 2.61, 5, 0),
+(@MURU, 0, 1, 25744, 1801.98, 633.62, 69.74, 5.71, 5, 0),
+(@MURU, 0, 1, 25744, 1830.88, 629.99, 69.73, 3.52, 5, 0),
+(@MURU, 0, 1, 25744, 1800.38, 621.41, 69.74, 0.22, 5, 0),
+(@MURU, 0, 1, 25744, 1808.30, 612.45, 69.73, 1.02, 5, 0),
+(@MURU, 0, 1, 25744, 1823.90, 639.69, 69.74, 4.12, 5, 0),
+(@MURU, 0, 1, 25744, 1811.85, 640.46, 69.73, 4.97, 5, 0);
diff --git a/sql/updates/world/2014_09_03_01_world_loot.sql b/sql/updates/world/2014_09_03_01_world_loot.sql new file mode 100644 index 00000000000..b56eba26355 --- /dev/null +++ b/sql/updates/world/2014_09_03_01_world_loot.sql @@ -0,0 +1 @@ +UPDATE `creature_loot_template` SET `ChanceOrQuestChance`=6 WHERE `entry` IN (34566, 35216, 35268, 35269, 35347, 35348, 35349, 35350, 35351, 35352, 35447, 35448, 35449, 35615, 35616) AND `item`=3;
diff --git a/sql/updates/world/2014_09_04_00_world_creature_template.sql b/sql/updates/world/2014_09_04_00_world_creature_template.sql new file mode 100644 index 00000000000..1484f317983 --- /dev/null +++ b/sql/updates/world/2014_09_04_00_world_creature_template.sql @@ -0,0 +1,2 @@ +-- Remove no longer used script
+UPDATE `creature_template` SET `ScriptName` = '' WHERE `entry` = 17662; -- Broggok Poison Cloud
diff --git a/sql/updates/world/2014_09_04_01_creature_text.sql b/sql/updates/world/2014_09_04_01_creature_text.sql new file mode 100644 index 00000000000..c2f2f6c7242 --- /dev/null +++ b/sql/updates/world/2014_09_04_01_creature_text.sql @@ -0,0 +1,4 @@ +DELETE FROM `creature_text` WHERE `entry`=30215; +INSERT INTO `creature_text` (`entry`, `groupid`, `id`, `text`, `type`, `language`, `probability`, `emote`, `duration`, `sound`, `BroadcastTextID`, `comment`) VALUES +(30215, 1, 0, 'Sons of Hodir! I humbly present to you....', 42, 0, 100, 0, 0, 0, 30906, 'Player - Read Pronouncement'), +(30215, 2, 0, 'The Helm of Hodir!', 42, 0, 100, 0, 0, 0, 30907, 'Player - Read Pronouncement'); diff --git a/sql/updates/world/2014_09_04_02_world_misc.sql b/sql/updates/world/2014_09_04_02_world_misc.sql new file mode 100644 index 00000000000..5939c74e566 --- /dev/null +++ b/sql/updates/world/2014_09_04_02_world_misc.sql @@ -0,0 +1,202 @@ +SET @CGUID := 74506; + +UPDATE `creature_template` SET `faction`=1813, `unit_flags`=32768,`flags_extra`=2 WHERE `entry` IN(21416,21709,21710,21711); +UPDATE `creature_template` SET `gossip_menu_id`=8350, `npcflag`=0, `speed_walk`=1, `speed_run`=1.142857, `BaseAttackTime`=2000, `RangeAttackTime`=2000, `unit_flags`=33280, `unit_flags2`=0, `AIName`='SmartAI' WHERE `entry`=21685; +UPDATE `creature_template` SET `InhabitType`=4 WHERE `entry`=21052; + +UPDATE `creature_template` SET `ainame`='SmartAI', `scriptname`='' WHERE `entry` IN(21703,21704,21705,21420); +DELETE FROM `smart_scripts` WHERE `entryorguid` IN(21703,21704,21705,21420) AND `source_type`=0; +DELETE FROM `smart_scripts` WHERE `entryorguid` IN(-75734,-75735,-75736,-75737,-75738,-75739,-75104,-75105,-75106,-@CGUID, -@CGUID-1,-@CGUID-2) AND `source_type`=0; + +DELETE FROM `smart_scripts` WHERE `entryorguid` =2847900 AND `source_type`=9; +INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(-75104, 0, 0, 0, 1, 0, 100, 0, 0, 0, 15000, 15000, 11, 36817, 0, 0, 0, 0, 0, 1, 21416, 0, 0, 0, 0, 0, 0, 'Corrupt Water Totem - OOC - Cast Channel Water shield'), +(-75104, 0, 1, 0, 6, 0, 100, 0, 0, 0, 0, 0, 11, 36826, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Corrupt Water Totem - On Agro - Cast Summon Corrupt Water Elemental'), +(-75105, 0, 0, 0, 1, 0, 100, 0, 0, 0, 15000, 15000, 11, 38105, 0, 0, 0, 0, 0, 1, 21416, 0, 0, 0, 0, 0, 0, 'Corrupt Water Totem - OOC - Cast Channel Water shield'), +(-75105, 0, 1, 0, 6, 0, 100, 0, 0, 0, 0, 0, 11, 36826, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Corrupt Water Totem - On Agro - Cast Summon Corrupt Water Elemental'), +(-75106, 0, 0, 0, 1, 0, 100, 0, 0, 0, 15000, 15000, 11, 38106, 0, 0, 0, 0, 0, 1, 21416, 0, 0, 0, 0, 0, 0, 'Corrupt Water Totem - OOC - Cast Channel Water shield'), +(-75106, 0, 1, 0, 6, 0, 100, 0, 0, 0, 0, 0, 11, 36826, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Corrupt Water Totem - On Agro - Cast Summon Corrupt Water Elemental'), +(-75734, 0, 0, 0, 1, 0, 100, 0, 0, 0, 15000, 15000, 11, 37204, 0, 0, 0, 0, 0, 1, 21709, 0, 0, 0, 0, 0, 0, 'Corrupt Earth Totem - OOC - Cast Channel Earth shield'), +(-75734, 0, 1, 0, 6, 0, 100, 0, 0, 0, 0, 0, 11, 37203, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Corrupt Earth Totem - On Agro - Cast Summon Corrupt Earth Elemental'), +(-75735, 0, 0, 0, 1, 0, 100, 0, 0, 0, 15000, 15000, 11, 38101, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Corrupt Earth Totem - OOC - Cast Channel Earth shield'), +(-75735, 0, 1, 0, 6, 0, 100, 0, 0, 0, 0, 0, 11, 37203, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Corrupt Earth Totem - On Agro - Cast Summon Corrupt Earth Elemental'), +(-75736, 0, 0, 0, 1, 0, 100, 0, 0, 0, 15000, 15000, 11, 38102, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Corrupt Earth Totem - OOC - Cast Channel Earth shield'), +(-75736, 0, 1, 0, 6, 0, 100, 0, 0, 0, 0, 0, 11, 37203, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Corrupt Earth Totem - On Agro - Cast Summon Corrupt Earth Elemental'), +(-75737, 0, 0, 0, 1, 0, 100, 0, 0, 0, 15000, 15000, 11, 37205, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Corrupt Air Totem - OOC - Cast Channel Air shield'), +(-75737, 0, 1, 0, 6, 0, 100, 0, 0, 0, 0, 0, 11, 37202, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Corrupt Air Totem - On Agro - Cast Summon Corrupt Air Elemental'), +(-75738, 0, 0, 0, 1, 0, 100, 0, 0, 0, 15000, 15000, 11, 38099, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Corrupt Air Totem - OOC - Cast Channel Air shield'), +(-75738, 0, 1, 0, 6, 0, 100, 0, 0, 0, 0, 0, 11, 37202, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Corrupt Air Totem - On Agro - Cast Summon Corrupt Air Elemental'), +(-75739, 0, 0, 0, 1, 0, 100, 0, 0, 0, 15000, 15000, 11, 38100, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Corrupt Air Totem - OOC - Cast Channel Air shield'), +(-75739, 0, 1, 0, 6, 0, 100, 0, 0, 0, 0, 0, 11, 37202, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Corrupt Air Totem - On Agro - Cast Summon Corrupt Air Elemental'), +(-@CGUID, 0, 0, 0, 1, 0, 100, 0, 0, 0, 15000, 15000, 11, 37206, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Corrupt Fire Totem - OOC - Cast Channel Fire shield'), +(-@CGUID, 0, 1, 0, 6, 0, 100, 0, 0, 0, 0, 0, 11, 37201, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Corrupt Fire Totem - On Agro - Cast Summon Corrupt Fire Elemental'), +(-@CGUID-1, 0, 0, 0, 1, 0, 100, 0, 0, 0, 15000, 15000, 11, 38103, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Corrupt Fire Totem - OOC - Cast Channel Fire shield'), +(-@CGUID-1, 0, 1, 0, 6, 0, 100, 0, 0, 0, 0, 0, 11, 37201, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Corrupt Fire Totem - On Agro - Cast Summon Corrupt Fire Elemental'), +(-@CGUID-2, 0, 0, 0, 1, 0, 100, 0, 0, 0, 15000, 15000, 11, 38104, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Corrupt Fire Totem - OOC - Cast Channel Fire shield'), +(-@CGUID-2, 0, 1, 0, 6, 0, 100, 0, 0, 0, 0, 0, 11, 37201, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Corrupt Fire Totem - On Agro - Cast Summon Corrupt Fire Elemental'); + +UPDATE `creature` SET `position_x`=-3396.211, `position_y`=1568.679, `position_z`=47.82401, `orientation`=6.110603 WHERE `guid`=86485; + +DELETE FROM `creature` WHERE `id`IN(21703,21706,21707,21708,21428); +INSERT INTO `creature` (`guid`, `id`, `map`, `spawnMask`, `phaseMask`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `spawndist`, `MovementType`) VALUES +(@CGUID+0, 21703, 530, 1, 1, -3392.402, 1566.671, 47.97179, 0.2094395, 120, 0, 0), -- 21703 (Area: 3520) +(@CGUID+1, 21703, 530, 1, 1, -3404.077, 1566.567, 47.88474, 4.782202, 120, 0, 0), -- 21703 (Area: 3520) +(@CGUID+2, 21703, 530, 1, 1, -3397.854, 1576.284, 47.14587, 5.532694, 120, 0, 0); -- 21703 (Area: 3520) + +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=13 AND `ConditionTypeOrReference`=31 AND `ConditionValue1`=3 AND `ConditionValue2` IN(21416,21709,21710,21711); +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=13 AND `SourceEntry`=38722; + +INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES +(13, 5, 36817, 0, 0, 31, 0, 3, 21416, 0, 0, 0, 0, '', ''), +(13, 5, 38105, 0, 0, 31, 0, 3, 21416, 0, 0, 0, 0, '', ''), +(13, 5, 38106, 0, 0, 31, 0, 3, 21416, 0, 0, 0, 0, '', ''), +(13, 5, 37204, 0, 0, 31, 0, 3, 21709, 0, 0, 0, 0, '', ''), +(13, 5, 38101, 0, 0, 31, 0, 3, 21709, 0, 0, 0, 0, '', ''), +(13, 5, 38102, 0, 0, 31, 0, 3, 21709, 0, 0, 0, 0, '', ''), +(13, 5, 37205, 0, 0, 31, 0, 3, 21711, 0, 0, 0, 0, '', ''), +(13, 5, 38099, 0, 0, 31, 0, 3, 21711, 0, 0, 0, 0, '', ''), +(13, 5, 38100, 0, 0, 31, 0, 3, 21711, 0, 0, 0, 0, '', ''), +(13, 5, 37206, 0, 0, 31, 0, 3, 21710, 0, 0, 0, 0, '', ''), +(13, 5, 38103, 0, 0, 31, 0, 3, 21710, 0, 0, 0, 0, '', ''), +(13, 5, 38104, 0, 0, 31, 0, 3, 21710, 0, 0, 0, 0, '', ''), +(13, 1, 38722, 0, 0, 31, 0, 3, 21506, 0, 0, 0, 0, '', ''); + +DELETE FROM `creature_template_addon` WHERE `entry`=21506; +INSERT INTO `creature_template_addon` (`entry`, `mount`, `bytes1`, `bytes2`, `auras`) VALUES +(21506, 0, 0x0, 0x1, '37833'); -- 21506 - 37833 + +UPDATE `creature_template` SET `faction`=954, `unit_flags`=2147779136 WHERE `entry`=21506; + +DELETE FROM `smart_scripts` WHERE `entryorguid`=21506 AND `source_type`=0; +DELETE FROM `smart_scripts` WHERE `entryorguid`=21503 AND `source_type`=0 and `id`=6; + +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 +(21506, 0, 0, 1, 8, 0, 100, 0, 37834, 0, 0, 0, 33, 21892, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Azaloth - On Spellhit \'Unbanish Azaloth\' - Quest Credit \'A Necessary Distraction\''), +(21506, 0, 1, 0, 61, 0, 100, 0, 0, 0, 0, 0, 28, 37833, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Azaloth - On Spellhit \'Unbanish Azaloth\' - Remove Banish'), +(21503, 0, 6, 0, 1, 0, 100, 0, 0, 0, 15000, 15000, 11, 38722, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Sunfury Warlock - OOC - Cast Spellbind Azaloth'); + +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=22 AND `SourceEntry`=21503; +INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES +(22, 7, 21503, 0, 0, 29, 1, 21506, 20, 0, 0, 0, 0, '', 'Only run SAI if Azaloth within 20 yards'); + +UPDATE `creature_template` SET `ainame`='SmartAI', `scriptname`='' WHERE `entry` IN(21024,21129,21130,21131,21132); +DELETE FROM `smart_scripts` WHERE `entryorguid` IN(21024,21129,21130,21131,21132) AND `source_type`=0; + +DELETE FROM `smart_scripts` WHERE `entryorguid` IN(2120400) AND `source_type`=9; +INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(21024, 0, 0, 0, 11, 0, 100, 0, 0, 0, 0, 0, 22, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Earthmender Torlok <The Earthen Ring> - On Spawn - Set Phase 1'), +(21024, 0, 1, 0, 20, 1, 100, 0, 10481, 0, 0, 0, 80, 2120400, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Earthmender Torlok <The Earthen Ring> - On Quest Reward - Enraged Spirits of Air - Run Script 1'), +(21129, 0, 0, 0, 54, 0, 100, 0, 0, 0, 0, 0, 11, 36206, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Scorned Spirit of Earth - On Just Summoned - Cast Call to the Spirits'), +(21130, 0, 0, 0, 54, 0, 100, 0, 0, 0, 0, 0, 11, 36206, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Scorned Spirit of Fire - On Just Summoned - Cast Call to the Spirits'), +(21131, 0, 0, 0, 54, 0, 100, 0, 0, 0, 0, 0, 11, 36206, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Scorned Spirit of Water - On Just Summoned - Cast Call to the Spirits'), +(21132, 0, 0, 0, 54, 0, 100, 0, 0, 0, 0, 0, 11, 36206, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Scorned Spirit of Air - On Quest Reward - On Just Summoned - Cast Call to the Spirits'), + +(2120400, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 22, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Earthmender Torlok <The Earthen Ring> - Script - Set Phase 2'), +(2120400, 9, 1, 0, 0, 0, 100, 0, 1000, 1000, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Earthmender Torlok <The Earthen Ring> - Script - Say Line 1'), +(2120400, 9, 2, 0, 0, 0, 100, 0, 3000, 3000, 0, 0, 107, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Earthmender Torlok <The Earthen Ring> - Script - Summon Group'), +(2120400, 9, 3, 0, 0, 0, 100, 0, 1000, 1000, 0, 0, 66, 0, 0, 0, 0, 0, 0, 19, 21071, 0, 0, 0, 0, 0, 0, 'Earthmender Torlok <The Earthen Ring> - Script - Set Orientation'), +(2120400, 9, 4, 0, 0, 0, 100, 0, 0, 0, 0, 0, 1, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Earthmender Torlok <The Earthen Ring> - Script - Say Line 1'), +(2120400, 9, 5, 0, 0, 0, 100, 0, 2000, 2000, 0, 0, 1, 0, 0, 0, 0, 0, 0, 19, 21129, 0, 0, 0, 0, 0, 0, 'Earthmender Torlok <The Earthen Ring> - Script - Say'), +(2120400, 9, 6, 0, 0, 0, 100, 0, 5000, 5000, 0, 0, 1, 0, 0, 0, 0, 0, 0, 19, 21130, 0, 0, 0, 0, 0, 0, 'Earthmender Torlok <The Earthen Ring> - Script - Say'), +(2120400, 9, 7, 0, 0, 0, 100, 0, 7000, 7000, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Earthmender Torlok <The Earthen Ring> - Script - Say Line 1'), +(2120400, 9, 8, 0, 0, 0, 100, 0, 5000, 5000, 0, 0, 1, 0, 0, 0, 0, 0, 0, 19, 21131, 0, 0, 0, 0, 0, 0, 'Earthmender Torlok <The Earthen Ring> - Script - Say'), +(2120400, 9, 9, 0, 0, 0, 100, 0, 5000, 5000, 0, 0, 1, 0, 0, 0, 0, 0, 0, 19, 21132, 0, 0, 0, 0, 0, 0, 'Earthmender Torlok <The Earthen Ring> - Script - Say'), +(2120400, 9, 10, 0, 0, 0, 100, 0, 7000, 7000, 0, 0, 1, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Earthmender Torlok <The Earthen Ring> - Script - Say Line 1'), +(2120400, 9, 11, 0, 0, 0, 100, 0, 7000, 7000, 0, 0, 1, 3, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Earthmender Torlok <The Earthen Ring> - Script - Say Line 1'), +(2120400, 9, 12, 0, 0, 0, 100, 0, 5000, 5000, 0, 0, 1, 1, 0, 0, 0, 0, 0, 19, 21129, 0, 0, 0, 0, 0, 0, 'Earthmender Torlok <The Earthen Ring> - Script - Say'), +(2120400, 9, 13, 0, 0, 0, 100, 0, 7000, 7000, 0, 0, 1, 4, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Earthmender Torlok <The Earthen Ring> - Script - Say Line 1'), +(2120400, 9, 14, 0, 0, 0, 100, 0, 5000, 5000, 0, 0, 1, 1, 0, 0, 0, 0, 0, 19, 21130, 0, 0, 0, 0, 0, 0, 'Earthmender Torlok <The Earthen Ring> - Script - Say'), +(2120400, 9, 15, 0, 0, 0, 100, 0, 7000, 7000, 0, 0, 1, 5, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Earthmender Torlok <The Earthen Ring> - Script - Say Line 1'), +(2120400, 9, 16, 0, 0, 0, 100, 0, 5000, 5000, 0, 0, 1, 1, 0, 0, 0, 0, 0, 19, 21131, 0, 0, 0, 0, 0, 0, 'Earthmender Torlok <The Earthen Ring> - Script - Say'), +(2120400, 9, 17, 0, 0, 0, 100, 0, 7000, 7000, 0, 0, 1, 6, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Earthmender Torlok <The Earthen Ring> - Script - Say Line 1'), +(2120400, 9, 18, 0, 0, 0, 100, 0, 5000, 5000, 0, 0, 1, 1, 0, 0, 0, 0, 0, 19, 21132, 0, 0, 0, 0, 0, 0, 'Earthmender Torlok <The Earthen Ring> - Script - Say'), +(2120400, 9, 19, 0, 0, 0, 100, 0, 5000, 5000, 0, 0, 1, 2, 0, 0, 0, 0, 0, 19, 21129, 0, 0, 0, 0, 0, 0, 'Earthmender Torlok <The Earthen Ring> - Script - Say'), +(2120400, 9, 20, 0, 0, 0, 100, 0, 5000, 5000, 0, 0, 1, 2, 0, 0, 0, 0, 0, 19, 21130, 0, 0, 0, 0, 0, 0, 'Earthmender Torlok <The Earthen Ring> - Script - Say'), +(2120400, 9, 21, 0, 0, 0, 100, 0, 7000, 7000, 0, 0, 1, 7, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Earthmender Torlok <The Earthen Ring> - Script - Say Line 1'), +(2120400, 9, 22, 0, 0, 0, 100, 0, 5000, 5000, 0, 0, 1, 3, 0, 0, 0, 0, 0, 19, 21129, 0, 0, 0, 0, 0, 0, 'Earthmender Torlok <The Earthen Ring> - Script - Say'), +(2120400, 9, 23, 0, 0, 0, 100, 0, 5000, 5000, 0, 0, 1, 8, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Earthmender Torlok <The Earthen Ring> - Script - Say Line 1'), +(2120400, 9, 24, 0, 0, 0, 100, 0, 7000, 7000, 0, 0, 1, 9, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Earthmender Torlok <The Earthen Ring> - Script - Say Line 1'), +(2120400, 9, 25, 0, 0, 0, 100, 0, 7000, 7000, 0, 0, 66, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 4.93928, 'Earthmender Torlok <The Earthen Ring> - Script - Say Line 1'), +(2120400, 9, 26, 0, 0, 0, 100, 0, 0, 0, 0, 0, 22, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Earthmender Torlok <The Earthen Ring> - Script - Set Phase 1'); + +DELETE FROM `creature_text` WHERE `entry` IN(21024,21129,21130,21131,21132); +INSERT INTO `creature_text` (`entry`, `groupid`, `id`, `text`, `type`, `language`, `probability`, `emote`, `duration`, `sound`, `comment`, `BroadcastTextID`) VALUES +(21024, 0, 0, 'Stand back, $n. The spirits may lash out.', 12, 0, 100, 1, 0, 0, 'Earthmender Torlok',18749), +(21129, 0, 0, 'Why have you captured us?', 12, 0, 100, 0, 0, 0, 'Scorned Spirit of Earth',18750), +(21130, 0, 0, 'What is it that you hope to gain from this?', 12, 0, 100, 0, 0, 0, 'Scorned Spirit of Fire',18751), +(21024, 1, 0, 'We wish to help you, spirit. We seek your wisdom.', 12, 0, 100, 1, 0, 0, 'Earthmender Torlok',18753), +(21131, 0, 0, 'Wisdom? It was your people that caused the insufferable wrath of Cyrukh.', 12, 0, 100, 0, 0, 0, 'Scorned Spirit of Water',18754), +(21132, 0, 0, 'Why should we help you? The world is ruined. Destroyed.', 12, 0, 100, 0, 0, 0, 'Scorned Spirit of Air',18755), +(21024, 2, 0, 'You are right, spirit. It was my people that did this to you. Allow us to make it right.', 12, 0, 100, 1, 0, 0, 'Earthmender Torlok',18757), +(21024, 3, 0, 'Please tell us this: Who or what is Cyrukh?', 12, 0, 100, 1, 0, 0, 'Earthmender Torlok',18758), +(21129, 1, 0, 'Fool! Cyrukh the fire lord! When the tie was severed, Cyrukh awoke. It is the tears of Cyrukh that fill this land with molten rock.', 12, 0, 100, 0, 0, 0, 'Scorned Spirit of Earth',18759), +(21024, 4, 0, 'The... The fire lord? An elemental lord was unearthed? Of course... Gul''dan you were a damned fool!', 12, 0, 100, 6, 0, 0, 'Earthmender Torlok',18760), +(21130, 1, 0, 'He is insane now. Driven mad during the shattering. There is no rest for the elements.', 12, 0, 100, 0, 0, 0, 'Scorned Spirit of Fire',18761), +(21024, 5, 0, 'There must be a way.', 12, 0, 100, 0, 0, 0, 'Earthmender Torlok',18762), +(21131, 1, 0, 'Yes, a way. Destroy Cyrukh. Destroy an elemental lord.', 12, 0, 100, 0, 0, 0, 'Scorned Spirit of Water',18763), +(21024, 6, 0, 'Do not doubt my comrades and I, spirit. Tell us how to conjure the fire lord. My allies will destroy him.', 12, 0, 100, 1, 0, 0, 'Earthmender Torlok',18764), +(21132, 1, 0, 'You must utter the words...', 12, 0, 100, 0, 0, 0, 'Scorned Spirit of Air',18765), +(21129, 2, 0, 'Yes... Yes... the words. The words of damnation. The words spoken by the dark one. Your master.', 12, 0, 100, 0, 0, 0, 'Scorned Spirit of Earth',18766), +(21130, 2, 0, 'Yes... Gul''dan...', 12, 0, 100, 0, 0, 0, 'Scorned Spirit of Fire',18767), +(21024, 7, 0, 'We will find these words. We will summon your master and we will destroy him.', 12, 0, 100, 1, 0, 0, 'Earthmender Torlok',18768), +(21129, 3, 0, 'Talk. More talk... Now release us, mortal.', 12, 0, 100, 0, 0, 0, 'Scorned Spirit of Earth',18769), +(21024, 8, 0, '%s nods.', 16, 0, 100, 273, 0, 0, 'Earthmender Torlok',18756), +(21024, 9, 0, 'Now to recover the lost words!', 12, 0, 100, 5, 0, 0, 'Earthmender Torlok',18778), +(21024, 10, 0, '%s bows.', 16, 0, 100, 2, 0, 0, 'Earthmender Torlok',18752); + +DELETE FROM `creature_summon_groups` WHERE `summonerId`IN(21024); +INSERT INTO `creature_summon_groups` (`summonerId`, `summonerType`, `groupId`, `entry`, `position_x`, `position_y`, `position_z`, `orientation`, `summonType`, `summonTime`) VALUES +(21024, 0, 0, 21129, -3604.787, 1913.459, 47.80234, 4.956735, 1, 110000), +(21024, 0, 0, 21130, -3596.973, 1913.545, 47.78812, 4.572762, 1, 110000), +(21024, 0, 0, 21131, -3612.323, 1910.802, 47.62409, 5.550147, 1, 110000), +(21024, 0, 0, 21132, -3590.55, 1911.157, 47.38158, 4.049164, 1, 110000), +(21024, 0, 0, 21071, -3590.55, 1911.157, 47.38158, 4.049164, 1, 110000); + +DELETE FROM `creature_template_addon` WHERE `entry` BETWEEN 21129 AND 21132; +INSERT INTO `creature_template_addon` (`entry`, `mount`, `bytes1`, `bytes2`, `auras`) VALUES +(21129, 0, 0x0, 0x1, '36113'), -- 21129 - 36113 +(21130, 0, 0x0, 0x1, '36114'), -- 21130 - 36114 +(21131, 0, 0x0, 0x1, '35923'), -- 21131 - 35923 +(21132, 0, 0x0, 0x1, '36178'); -- 21132 - 36178 + +DELETE FROM `creature_template_addon` WHERE `entry`=21181; +INSERT INTO `creature_template_addon` (`entry`, `mount`, `bytes1`, `bytes2`, `auras`) VALUES +(21181, 0, 0x0, 0x1, '36329'); -- 21181 - 36329 + +UPDATE `creature_template` SET `gossip_menu_id`=8259, `AIName`= 'SmartAI',`ScriptName`= '' WHERE `entry`=21183; + +DELETE FROM `gossip_menu_option` WHERE `menu_id` IN(8259,8281,8280,8279,8278,8277,8276,8350); +INSERT INTO `gossip_menu_option` (`menu_id`, `id`, `option_icon`, `option_text`, `OptionBroadcastTextID`, `option_id`, `npc_option_npcflag`, `action_menu_id`, `action_poi_id`, `box_coded`, `box_money`, `box_text`, `BoxBroadcastTextID`) VALUES +(8259, 0, 1, 'What do you have for sale, Oronok?', 18834, 3, 128, 0, 0, 0, 0, '', 0), +(8259, 1, 0, 'I am ready to hear your story, Oronok.', 18935, 1, 1, 8281, 0, 0, 0, '', 0), +(8281, 0, 0, 'How do I find the cipher?', 18937, 1, 1, 8280, 0, 0, 0, '', 0), +(8280, 0, 0, 'How do you know all of this?', 18939, 1, 1, 8279, 0, 0, 0, '', 0), +(8279, 0, 0, 'Yet what? What is it, Oronok?', 18941, 1, 1, 8278, 0, 0, 0, '', 0), +(8278, 0, 0, 'Continue, please.', 18943, 1, 1, 8277, 0, 0, 0, '', 0), +(8277, 0, 0, 'So what of the cipher now? And your boys?', 18945, 1, 1, 8276, 0, 0, 0, '', 0), +(8276, 0, 0, 'I will find your boys and the cipher, Oronok.', 18947, 1, 1, 0, 0, 0, 0, '', 0), +(8350, 0, 0, 'I am ready, Oronok. Let us destroy Cyrukh and free the elements!', 19307, 1, 1, 0, 0, 0, 0, '', 0); + +DELETE FROM `gossip_menu` WHERE `entry` IN(8259,8281,8280,8279,8278,8277,8276,8350); +INSERT INTO `gossip_menu` (`entry`, `text_id`) VALUES +(8259, 10280), -- 21183 +(8259, 10312), -- 21183 +(8281, 10313), -- 21183 +(8280, 10314), -- 21183 +(8279, 10315), -- 21183 +(8278, 10316), -- 21183 +(8277, 10317), -- 21183 +(8276, 10318), -- 21183 +(8350, 10421); -- 21685 + +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` IN(14,15) AND `SourceGroup`IN(8259,8350); +INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES +(15, 8259, 1, 0, 0, 9, 0, 10519, 0, 0, 0, 0, 0, '', 'Oronok Torn-heart <Hermit & Trader> - Show gossip option only if player has The Cipher of Damnation - Truth and History taken'), +(14, 8259, 10312, 0, 0, 9, 0, 10519, 0, 0, 0, 0, 0, '', 'Oronok Torn-heart <Hermit & Trader> - Show npc text only if player has The Cipher of Damnation - Truth and History taken'), +(14, 8259, 10280, 0, 0, 9, 0, 10519, 0, 0, 1, 0, 0, '', 'Oronok Torn-heart <Hermit & Trader> - Show npc text only if player does not have The Cipher of Damnation - Truth and History taken'), +(15, 8350, 0, 0, 0, 9, 0, 10588, 0, 0, 0, 0, 0, '', 'Oronok Torn-heart - Show gossip option only if player has The Cipher of Damnation Taken'); + +DELETE FROM `smart_scripts` WHERE `entryorguid` =21183; +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 +(21183, 0, 0, 1, 62, 0, 100, 0, 8276, 0, 0, 0, 15, 10519, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Oronok Torn-heart <Hermit & Trader> - On Gossip Option Select - Complete Quest (The Cipher of Damnation - Truth and History)'), +(21183, 0, 1, 0, 61, 0, 100, 0, 0, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Oronok Torn-heart <Hermit & Trader> - On Gossip Option Select - Close Gossip'); diff --git a/sql/updates/world/2014_09_05_00_world_creature.sql b/sql/updates/world/2014_09_05_00_world_creature.sql new file mode 100644 index 00000000000..ce1969a66ad --- /dev/null +++ b/sql/updates/world/2014_09_05_00_world_creature.sql @@ -0,0 +1 @@ +DELETE FROM `creature` WHERE `id`=22275; diff --git a/sql/updates/world/2014_09_05_01_world_misc.sql b/sql/updates/world/2014_09_05_01_world_misc.sql new file mode 100644 index 00000000000..e03ca9e8c40 --- /dev/null +++ b/sql/updates/world/2014_09_05_01_world_misc.sql @@ -0,0 +1,6 @@ +-- Corrects unit_flags and sets AI for Illusion of Jandice Barov (11439)
+SET @ENTRY := 11439;
+UPDATE `creature_template` SET `ScriptName` = '', `AIName` = 'SmartAI', `unit_flags` = `unit_flags` &~4194304 WHERE `entry` = @ENTRY;
+DELETE FROM `smart_scripts` WHERE `entryorguid` = @ENTRY AND `source_type` = 0;
+INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
+(@ENTRY, 0, 0, 0, 0, 0, 100, 2, 2000, 8000, 5000, 8000, 11, 15284, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, "Illusion of Jandice Barov - In Combat - Cast 'Cleave' (Normal Dungeon)");
diff --git a/sql/updates/world/2014_09_05_02_world_sai.sql b/sql/updates/world/2014_09_05_02_world_sai.sql new file mode 100644 index 00000000000..1c6b1f02213 --- /dev/null +++ b/sql/updates/world/2014_09_05_02_world_sai.sql @@ -0,0 +1,50 @@ +UPDATE `creature_template` SET `InhabitType`=4 WHERE `entry`=23282; + + +DELETE FROM `smart_scripts` WHERE `entryorguid`=185932 AND `source_type`=1; + +INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(185932, 1, 0, 1, 62, 0, 100, 0, 8685, 0, 0, 0, 85, 41035, 2, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Obsidia\'s Egg - On Gossip Option 0 Selected - Invoker Cast 41035 Four Dragons: Force Cast - Obsidia'), +(185932, 1, 1, 0, 61, 0, 100, 0, 0, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Obsidia\'s Egg - On Gossip Option 0 Selected - Close Gossip'); + +DELETE FROM `event_scripts` WHERE `id`=15005; +INSERT INTO `event_scripts` (`id`, `delay`, `command`, `datalong`, `datalong2`, `dataint`, `x`, `y`, `z`, `o`) VALUES +(15005, 1, 10, 23364, 100000, 0, 2426.954, 7001.479, 367.3824, 0), +(15005, 0, 10, 23282, 300000, 0, 2424.975, 6933.425, 409.5501, 1.43117); + + +UPDATE `creature_template` SET `ainame`='SmartAI', `scriptname`='' WHERE `entry` =23364; +DELETE FROM `smart_scripts` WHERE `entryorguid` =23364 AND `source_type`=0; +DELETE FROM `smart_scripts` WHERE `entryorguid` =23282 AND `source_type`=0 AND `id`>4; + +INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(23364, 0, 0, 1, 11, 0, 100, 0, 0, 0, 0, 0, 11, 15750, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Black Dragon Whelpling - On Spawn - Cast Rookery Whelp Spawn-in Spell'), +(23364, 0, 1, 2, 61, 0, 100, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Black Dragon Whelpling - On Spawn - Say'), +(23364, 0, 2, 3, 61, 0, 100, 0, 0, 0, 0, 0, 18, 33536, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Black Dragon Whelpling - On Spawn - Set Unit Flags'), +(23364, 0, 3, 4, 61, 0, 100, 0, 0, 0, 0, 0, 70, 300, 0, 0, 0, 0, 0, 14, 27915, 185932, 0, 0, 0, 0, 0, 'Black Dragon Whelpling - On Spawn - Despawn Obsidia\'s Egg'), +(23364, 0, 4, 0, 61, 0, 100, 0, 0, 0, 0, 0, 53, 0, 23364, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Black Dragon Whelpling - On Spawn - Start WP'), +(23364, 0, 5, 6, 40, 0, 100, 0, 2, 23364, 0, 0, 45, 1, 1, 0, 0, 0, 0, 19, 23282, 0, 0, 0, 0, 0, 0, 'Black Dragon Whelpling - On Reached WP2 - Set Data on Obsidia'), +(23364, 0, 6, 0, 61, 0, 100, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Black Dragon Whelpling - Reached WP2 - Despawn'), +(23282, 0, 5, 0, 11, 0, 100, 0, 0, 0, 0, 0, 18, 768, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Obsidia - On Spawn - Set Unit Flags'), +(23282, 0, 6, 7, 38, 0, 100, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Obsidia - On Data Set - Say'), +(23282, 0, 7, 0, 61, 0, 100, 0, 0, 0, 0, 0, 53, 1, 23282, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Obsidia - On Data Set - Start WP'), +(23282, 0, 8, 9, 40, 0, 100, 0, 1, 23282, 0, 0, 94, 280, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Obsidia - On Reached WP1 - Set Dynamic Flags'), +(23282, 0, 9, 10, 61, 0, 100, 0, 0, 0, 0, 0, 19, 768, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Obsidia - On Reached WP1 - Set Unit Flags'), +(23282, 0, 10, 11, 61, 0, 100, 0, 0, 0, 0, 0, 101, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Obsidia - On Reached WP1 - Set Home Position'), +(23282, 0, 11, 0, 61, 0, 100, 0, 0, 0, 0, 0, 8, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Obsidia - On Reached WP1 - Set Aggresive'); + +DELETE FROM `creature_text` WHERE `entry` IN(23364,23282); +INSERT INTO `creature_text` (`entry`, `groupid`, `id`, `text`, `type`, `language`, `probability`, `emote`, `duration`, `sound`, `comment`, `BroadcastTextID`) VALUES +(23364, 0, 0, 'The %s screams out for its mother.', 16, 0, 100, 0, 0, 431, 'Black Dragon Whelpling',21420), +(23282, 0, 0, 'I believe that I shall feast upon both $r and ogre flesh tonight.', 14, 0, 100, 0, 0, 7274, 'Obsidia',21718); + + +DELETE FROM `waypoints` WHERE `entry` IN(23364,23282); + +INSERT INTO `waypoints` (`entry`, `pointid`, `position_x`, `position_y`, `position_z`, `point_comment`) VALUES +(23364, 1,2425.253, 6994.862, 368.0848, 'Black Dragon Whelpling'), +(23364, 2,2424.881, 6998.754, 367.8495, 'Black Dragon Whelpling'), +(23282, 1,2428.085, 6980.77, 369.7684, 'Obsidia'); + + + diff --git a/sql/updates/world/2014_09_05_03_world_sai.sql b/sql/updates/world/2014_09_05_03_world_sai.sql new file mode 100644 index 00000000000..37deab39085 --- /dev/null +++ b/sql/updates/world/2014_09_05_03_world_sai.sql @@ -0,0 +1,17 @@ +DELETE FROM `smart_scripts` WHERE `source_type`=1 AND `entryorguid` IN (185937,185938,185936); +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 +(185937, 1, 0, 1, 62, 0, 100, 0, 8690, 0, 0, 0, 85, 41050, 2, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Furywing\'s Egg - On Gossip Option 0 Selected - Invoker cast Four Dragons: Force Cast - Furywing'), +(185938, 1, 0, 1, 62, 0, 100, 0, 8691, 0, 0, 0, 85, 41052, 2, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Insidion\'s Egg - On Gossip Option 0 Selected - Invoker cast Four Dragons: Force Cast - Insidion'), +(185936, 1, 0, 1, 62, 0, 100, 0, 8689, 0, 0, 0, 85, 41044, 2, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Rivendark\'s Egg - On Gossip Option 0 Selected - Invoker cast Four Dragons: Force Cast - Rivendark'), +(185937, 1, 1, 2, 61, 0, 100, 0, 0, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Furywing\'s Egg - On Gossip Option 0 Selected - Close Gossip'), +(185938, 1, 1, 2, 61, 0, 100, 0, 0, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Insidion\'s Egg - On Gossip Option 0 Selected - Close Gossip'), +(185936, 1, 1, 2, 61, 0, 100, 0, 0, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Rivendark\'s Egg - On Gossip Option 0 Selected - Close Gossip'), +(185937, 1, 2, 0, 61, 0, 100, 0, 0, 0, 0, 0, 70, 300, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Furywing\'s Egg - On Gossip Option 0 Selected - Despawn GO'), +(185938, 1, 2, 0, 61, 0, 100, 0, 0, 0, 0, 0, 70, 300, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Insidion\'s Egg - On Gossip Option 0 Selected - Despawn GO'), +(185936, 1, 2, 0, 61, 0, 100, 0, 0, 0, 0, 0, 70, 300, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Rivendark\'s Egg - On Gossip Option 0 Selected - Despawn GO'); + +DELETE FROM `event_scripts` WHERE `id` IN(15004,15002); +INSERT INTO `event_scripts` (`id`, `delay`, `command`, `datalong`, `datalong2`, `dataint`, `x`, `y`, `z`, `o`) VALUES +(15004, 0, 10, 23061, 300000, 0, 2060.6, 7418.53, 391.098, 0), +(15002, 0, 10, 23281, 300000, 0, 4176.5, 5452.21, 291.923, 0), +(15003, 0, 10, 23261, 300000, 0, 3845.31, 5220.04, 295.412, 0); diff --git a/src/server/game/AI/SmartScripts/SmartScript.cpp b/src/server/game/AI/SmartScripts/SmartScript.cpp index 722f86a2392..93fe943b26b 100644 --- a/src/server/game/AI/SmartScripts/SmartScript.cpp +++ b/src/server/game/AI/SmartScripts/SmartScript.cpp @@ -2217,6 +2217,64 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u sGameEventMgr->StartEvent(eventId, true); break; } + case SMART_ACTION_START_CLOSEST_WAYPOINT: + { + uint32 waypoints[SMART_ACTION_PARAM_COUNT]; + waypoints[0] = e.action.closestWaypointFromList.wp1; + waypoints[1] = e.action.closestWaypointFromList.wp2; + waypoints[2] = e.action.closestWaypointFromList.wp3; + waypoints[3] = e.action.closestWaypointFromList.wp4; + waypoints[4] = e.action.closestWaypointFromList.wp5; + waypoints[5] = e.action.closestWaypointFromList.wp6; + float distanceToClosest = std::numeric_limits<float>::max(); + WayPoint* closestWp = NULL; + + ObjectList* targets = GetTargets(e, unit); + if (targets) + { + for (ObjectList::iterator itr = targets->begin(); itr != targets->end(); ++itr) + { + if (Creature* target = (*itr)->ToCreature()) + { + if (IsSmart(target)) + { + for (uint8 i = 0; i < SMART_ACTION_PARAM_COUNT; i++) + { + if (!waypoints[i]) + continue; + + WPPath* path = sSmartWaypointMgr->GetPath(waypoints[i]); + + if (!path || path->empty()) + continue; + + WPPath::const_iterator itrWp = path->find(0); + + if (itrWp != path->end()) + { + if (WayPoint* wp = itrWp->second) + { + float distToThisPath = target->GetDistance(wp->x, wp->y, wp->z); + + if (distToThisPath < distanceToClosest) + { + distanceToClosest = distToThisPath; + closestWp = wp; + } + } + } + } + + if (closestWp) + CAST_AI(SmartAI, target->AI())->StartPath(false, closestWp->id, true); + } + } + } + + delete targets; + } + break; + } default: TC_LOG_ERROR("sql.sql", "SmartScript::ProcessAction: Entry %d SourceType %u, Event %u, Unhandled Action type %u", e.entryOrGuid, e.GetScriptType(), e.event_id, e.GetActionType()); break; diff --git a/src/server/game/AI/SmartScripts/SmartScriptMgr.cpp b/src/server/game/AI/SmartScripts/SmartScriptMgr.cpp index 2e8453904a1..7b7e4fce7ea 100644 --- a/src/server/game/AI/SmartScripts/SmartScriptMgr.cpp +++ b/src/server/game/AI/SmartScripts/SmartScriptMgr.cpp @@ -1008,6 +1008,7 @@ bool SmartAIMgr::IsEventValid(SmartScriptHolder& e) } break; } + case SMART_ACTION_START_CLOSEST_WAYPOINT: case SMART_ACTION_FOLLOW: case SMART_ACTION_SET_ORIENTATION: case SMART_ACTION_STORE_TARGET_LIST: diff --git a/src/server/game/AI/SmartScripts/SmartScriptMgr.h b/src/server/game/AI/SmartScripts/SmartScriptMgr.h index c79deb5d960..296c3161845 100644 --- a/src/server/game/AI/SmartScripts/SmartScriptMgr.h +++ b/src/server/game/AI/SmartScripts/SmartScriptMgr.h @@ -529,8 +529,9 @@ enum SMART_ACTION SMART_ACTION_REMOVE_POWER = 110, // PowerType, newPower SMART_ACTION_GAME_EVENT_STOP = 111, // GameEventId SMART_ACTION_GAME_EVENT_START = 112, // GameEventId + SMART_ACTION_START_CLOSEST_WAYPOINT = 113, // wp1, wp2, wp3, wp4, wp5, wp6, wp7 - SMART_ACTION_END = 113 + SMART_ACTION_END = 114 }; struct SmartAction @@ -987,6 +988,16 @@ struct SmartAction uint32 id; } gameEventStart; + struct + { + uint32 wp1; + uint32 wp2; + uint32 wp3; + uint32 wp4; + uint32 wp5; + uint32 wp6; + } closestWaypointFromList; + //! Note for any new future actions //! All parameters must have type uint32 diff --git a/src/server/game/AuctionHouseBot/AuctionHouseBotBuyer.cpp b/src/server/game/AuctionHouseBot/AuctionHouseBotBuyer.cpp index 0043482c77f..6e7425a75a3 100644 --- a/src/server/game/AuctionHouseBot/AuctionHouseBotBuyer.cpp +++ b/src/server/game/AuctionHouseBot/AuctionHouseBotBuyer.cpp @@ -170,7 +170,7 @@ void AuctionBotBuyer::PrepareListOfEntry(BuyerConfiguration& config) TC_LOG_DEBUG("ahbot", "AHBot: CheckedEntry size = %u", (uint32)config.CheckedEntry.size()); } -bool AuctionBotBuyer::IsBuyableEntry(uint32 buyoutPrice, double inGameBuyPrice, double maxBuyablePrice, uint32 minBuyPrice, uint32 maxChance, uint32 chanceRatio) +bool AuctionBotBuyer::IsBuyableEntry(uint32 buyoutPrice, double inGameBuyPrice, uint32 maxBuyablePrice, uint32 minBuyPrice, uint32 maxChance, uint32 chanceRatio) { double ratio = 0; uint32 chance = 0; @@ -184,7 +184,7 @@ bool AuctionBotBuyer::IsBuyableEntry(uint32 buyoutPrice, double inGameBuyPrice, if (buyoutPrice > 0 && maxBuyablePrice > 0) { - ratio = buyoutPrice / maxBuyablePrice; + ratio = double(buyoutPrice) / double(maxBuyablePrice); if (ratio < 10) chance = maxChance - (ratio * maxChance / 10); else @@ -201,7 +201,7 @@ bool AuctionBotBuyer::IsBuyableEntry(uint32 buyoutPrice, double inGameBuyPrice, if (buyoutPrice > 0 && maxBuyablePrice > 0) { - ratio = buyoutPrice / maxBuyablePrice; + ratio = double(buyoutPrice) / double(maxBuyablePrice); if (ratio < 10) chance = (maxChance / 5) - (ratio * maxChance / 50); else @@ -215,7 +215,7 @@ bool AuctionBotBuyer::IsBuyableEntry(uint32 buyoutPrice, double inGameBuyPrice, { if (buyoutPrice > 0 && maxBuyablePrice > 0) { - ratio = buyoutPrice / maxBuyablePrice; + ratio = double(buyoutPrice) / double(maxBuyablePrice); if (ratio < 10) chance = (maxChance / 5) - (ratio* maxChance / 50); else @@ -348,12 +348,14 @@ void AuctionBotBuyer::AddNewAuctionBuyerBotBid(BuyerConfiguration& config) uint32 basePrice = sAuctionBotConfig->GetConfig(CONFIG_AHBOT_BUYPRICE_BUYER) ? prototype->BuyPrice : prototype->SellPrice; basePrice *= item->GetCount(); - double maxBuyablePrice = (basePrice * config.BuyerPriceRatio) / 100; + uint32 maxBuyablePrice = (basePrice * config.BuyerPriceRatio) / 100; BuyerItemInfoMap::iterator sameItemItr = config.SameItemInfo.find(item->GetEntry()); uint32 buyoutPrice = auction->buyout / item->GetCount(); uint32 bidPrice; uint32 bidPriceByItem; + uint32 minBidPrice; + uint32 minBuyPrice; if (auction->bid >= auction->startbid) { bidPrice = auction->GetAuctionOutBid(); @@ -371,6 +373,8 @@ void AuctionBotBuyer::AddNewAuctionBuyerBotBid(BuyerConfiguration& config) { inGameBuyPrice = 0; inGameBidPrice = 0; + minBidPrice = 0; + minBuyPrice = 0; } else { @@ -378,24 +382,26 @@ void AuctionBotBuyer::AddNewAuctionBuyerBotBid(BuyerConfiguration& config) maxBuyablePrice = maxBuyablePrice * 5; // if only one item exist can be bought if the price is high too. inGameBuyPrice = sameItemItr->second.BuyPrice / sameItemItr->second.ItemCount; inGameBidPrice = sameItemItr->second.BidPrice / sameItemItr->second.ItemCount; + minBidPrice = sameItemItr->second.MinBidPrice; + minBuyPrice = sameItemItr->second.MinBuyPrice; } - double maxBidablePrice = maxBuyablePrice - (maxBuyablePrice / 30); // Max Bidable price defined to 70% of max buyable price + uint32 maxBidablePrice = maxBuyablePrice - (maxBuyablePrice / 30); // Max Bidable price defined to 70% of max buyable price TC_LOG_DEBUG("ahbot", "AHBot: Auction added with data:"); - TC_LOG_DEBUG("ahbot", "AHBot: MaxPrice of Entry %u is %.1fg.", itr->second.AuctionId, maxBuyablePrice / 10000); + TC_LOG_DEBUG("ahbot", "AHBot: MaxPrice of Entry %u is %.1fg.", itr->second.AuctionId, double(maxBuyablePrice) / 10000.0); TC_LOG_DEBUG("ahbot", "AHBot: GamePrice buy=%.1fg, bid=%.1fg.", inGameBuyPrice / 10000, inGameBidPrice / 10000); TC_LOG_DEBUG("ahbot", "AHBot: Minimal price see in AH Buy=%ug, Bid=%ug.", - sameItemItr->second.MinBuyPrice / 10000, sameItemItr->second.MinBidPrice / 10000); + minBuyPrice / 10000, minBidPrice / 10000); TC_LOG_DEBUG("ahbot", "AHBot: Actual Entry price, Buy=%ug, Bid=%ug.", buyoutPrice / 10000, bidPrice / 10000); if (!auction->owner) // Original auction owner maxChance = maxChance / 5; // if Owner is AHBot this mean player placed bid on this auction. We divide by 5 chance for AhBuyer to place bid on it. (This make more challenge than ignore entry) if (auction->buyout != 0) // Is the item directly buyable? { - if (IsBuyableEntry(buyoutPrice, inGameBuyPrice, maxBuyablePrice, sameItemItr->second.MinBuyPrice, maxChance, config.FactionChance)) + if (IsBuyableEntry(buyoutPrice, inGameBuyPrice, maxBuyablePrice, minBuyPrice, maxChance, config.FactionChance)) { - if (IsBidableEntry(bidPriceByItem, inGameBuyPrice, maxBidablePrice, sameItemItr->second.MinBidPrice, maxChance / 2, config.FactionChance)) + if (IsBidableEntry(bidPriceByItem, inGameBuyPrice, maxBidablePrice, minBidPrice, maxChance / 2, config.FactionChance)) { if (urand(0, 5) == 0) PlaceBidToEntry(auction, bidPrice); @@ -405,10 +411,10 @@ void AuctionBotBuyer::AddNewAuctionBuyerBotBid(BuyerConfiguration& config) else BuyEntry(auction); } - else if (IsBidableEntry(bidPriceByItem, inGameBuyPrice, maxBidablePrice, sameItemItr->second.MinBidPrice, maxChance / 2, config.FactionChance)) + else if (IsBidableEntry(bidPriceByItem, inGameBuyPrice, maxBidablePrice, minBidPrice, maxChance / 2, config.FactionChance)) PlaceBidToEntry(auction, bidPrice); } - else if (IsBidableEntry(bidPriceByItem, inGameBuyPrice, maxBidablePrice, sameItemItr->second.MinBidPrice, maxChance, config.FactionChance)) + else if (IsBidableEntry(bidPriceByItem, inGameBuyPrice, maxBidablePrice, minBidPrice, maxChance, config.FactionChance)) PlaceBidToEntry(auction, bidPrice); itr->second.LastChecked = now; diff --git a/src/server/game/AuctionHouseBot/AuctionHouseBotBuyer.h b/src/server/game/AuctionHouseBot/AuctionHouseBotBuyer.h index 1148435f1c1..9c9a39cf567 100644 --- a/src/server/game/AuctionHouseBot/AuctionHouseBotBuyer.h +++ b/src/server/game/AuctionHouseBot/AuctionHouseBotBuyer.h @@ -85,7 +85,7 @@ private: BuyerConfiguration _houseConfig[MAX_AUCTION_HOUSE_TYPE]; void LoadBuyerValues(BuyerConfiguration& config); - bool IsBuyableEntry(uint32 buyoutPrice, double inGameBuyPrice, double maxBuyablePrice, uint32 minBuyPrice, uint32 maxChance, uint32 chanceRatio); + bool IsBuyableEntry(uint32 buyoutPrice, double inGameBuyPrice, uint32 maxBuyablePrice, uint32 minBuyPrice, uint32 maxChance, uint32 chanceRatio); bool IsBidableEntry(uint32 bidPrice, double inGameBuyPrice, double maxBidablePrice, uint32 minBidPrice, uint32 maxChance, uint32 chanceRatio); void PlaceBidToEntry(AuctionEntry* auction, uint32 bidPrice); void BuyEntry(AuctionEntry* auction); diff --git a/src/server/game/Battlegrounds/Battleground.cpp b/src/server/game/Battlegrounds/Battleground.cpp index c11ee7a39b7..6f6d1b66308 100644 --- a/src/server/game/Battlegrounds/Battleground.cpp +++ b/src/server/game/Battlegrounds/Battleground.cpp @@ -655,17 +655,6 @@ void Battleground::RemoveAuraOnTeam(uint32 SpellID, uint32 TeamID) player->RemoveAura(SpellID); } -void Battleground::YellToAll(Creature* creature, char const* text, uint32 language) -{ - for (BattlegroundPlayerMap::const_iterator itr = m_Players.begin(); itr != m_Players.end(); ++itr) - if (Player* player = _GetPlayer(itr, "YellToAll")) - { - WorldPacket data; - ChatHandler::BuildChatPacket(data, CHAT_MSG_MONSTER_YELL, Language(language), creature, player, text); - player->SendDirectMessage(&data); - } -} - void Battleground::RewardHonorToTeam(uint32 Honor, uint32 TeamID) { for (BattlegroundPlayerMap::const_iterator itr = m_Players.begin(); itr != m_Players.end(); ++itr) @@ -712,24 +701,6 @@ void Battleground::EndBattleground(uint32 winner) int32 winmsg_id = 0; - PreparedStatement* stmt; - PreparedQueryResult result; - uint64 battleground_id = 1; - - if (isBattleground() && sWorld->getBoolConfig(CONFIG_BATTLEGROUND_STORE_STATISTICS_ENABLE)) - { - stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_PVPSTATS_MAXID); - result = CharacterDatabase.Query(stmt); - - if (result) - { - Field* fields = result->Fetch(); - battleground_id = fields[0].GetInt64() + 1; - } - - stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_PVPSTATS_BATTLEGROUND); - } - if (winner == ALLIANCE) { winmsg_id = isBattleground() ? LANG_BG_A_WINS : LANG_ARENA_GOLD_WINS; @@ -737,9 +708,6 @@ void Battleground::EndBattleground(uint32 winner) PlaySoundToAll(SOUND_ALLIANCE_WINS); // alliance wins sound SetWinner(BG_TEAM_ALLIANCE); - - if (isBattleground() && sWorld->getBoolConfig(CONFIG_BATTLEGROUND_STORE_STATISTICS_ENABLE)) - stmt->setUInt8(1, BG_TEAM_ALLIANCE); } else if (winner == HORDE) { @@ -748,23 +716,30 @@ void Battleground::EndBattleground(uint32 winner) PlaySoundToAll(SOUND_HORDE_WINS); // horde wins sound SetWinner(BG_TEAM_HORDE); - - if (isBattleground() && sWorld->getBoolConfig(CONFIG_BATTLEGROUND_STORE_STATISTICS_ENABLE)) - stmt->setUInt8(1, BG_TEAM_HORDE); } else { SetWinner(BG_TEAM_NEUTRAL); - - if (isBattleground() && sWorld->getBoolConfig(CONFIG_BATTLEGROUND_STORE_STATISTICS_ENABLE)) - stmt->setUInt8(1, BG_TEAM_NEUTRAL); } + PreparedStatement* stmt = nullptr; + uint64 battlegroundId = 1; if (isBattleground() && sWorld->getBoolConfig(CONFIG_BATTLEGROUND_STORE_STATISTICS_ENABLE)) { - stmt->setUInt64(0, battleground_id); + stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_PVPSTATS_MAXID); + PreparedQueryResult result = CharacterDatabase.Query(stmt); + + if (result) + { + Field* fields = result->Fetch(); + battlegroundId = fields[0].GetUInt64() + 1; + } + + stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_PVPSTATS_BATTLEGROUND); + stmt->setUInt64(0, battlegroundId); + stmt->setUInt8(1, GetWinner()); stmt->setUInt8(2, m_BracketId + 1); - stmt->setUInt8(3, GetTypeID()); + stmt->setUInt8(3, GetTypeID(true)); CharacterDatabase.Execute(stmt); } @@ -810,9 +785,7 @@ void Battleground::EndBattleground(uint32 winner) stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_PVPSTATS_PLAYER); BattlegroundScoreMap::const_iterator score = PlayerScores.find(player->GetGUIDLow()); - // battleground_id, character_guid, score_killing_blows, score_deaths, score_honorable_kills, score_bonus_honor, score_damage_done, score_healing_done - - stmt->setUInt32(0, battleground_id); + stmt->setUInt32(0, battlegroundId); stmt->setUInt32(1, player->GetGUIDLow()); stmt->setUInt32(2, score->second->GetKillingBlows()); stmt->setUInt32(3, score->second->GetDeaths()); diff --git a/src/server/game/Battlegrounds/Battleground.h b/src/server/game/Battlegrounds/Battleground.h index c2e5b03e3ae..b0270192fd1 100644 --- a/src/server/game/Battlegrounds/Battleground.h +++ b/src/server/game/Battlegrounds/Battleground.h @@ -343,7 +343,6 @@ class Battleground virtual void FillInitialWorldStates(WorldPacket& /*data*/) { } void SendPacketToTeam(uint32 TeamID, WorldPacket* packet, Player* sender = NULL, bool self = true); void SendPacketToAll(WorldPacket* packet); - void YellToAll(Creature* creature, const char* text, uint32 language); void SendChatMessage(Creature* source, uint8 textId, WorldObject* target = NULL); diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundAV.cpp b/src/server/game/Battlegrounds/Zones/BattlegroundAV.cpp index eafb02f031d..fde358b4d61 100644 --- a/src/server/game/Battlegrounds/Zones/BattlegroundAV.cpp +++ b/src/server/game/Battlegrounds/Zones/BattlegroundAV.cpp @@ -25,6 +25,7 @@ #include "GameObject.h" #include "Language.h" #include "Player.h" +#include "ScriptedCreature.h" #include "SpellAuras.h" #include "WorldSession.h" @@ -85,7 +86,7 @@ void BattlegroundAV::HandleKillUnit(Creature* unit, Player* killer) else if (creature->GetEntry() == BG_AV_CreatureInfo[AV_NPC_H_BOSS][0]) triggerSpawnID = AV_CPLACE_TRIGGER19; */ - if (entry == BG_AV_CreatureInfo[AV_NPC_A_BOSS][0]) + if (entry == BG_AV_CreatureInfo[AV_NPC_A_BOSS]) { CastSpellOnTeam(23658, HORDE); //this is a spell which finishes a quest where a player has to kill the boss RewardReputationToTeam(729, BG_AV_REP_BOSS, HORDE); @@ -93,7 +94,7 @@ void BattlegroundAV::HandleKillUnit(Creature* unit, Player* killer) EndBattleground(HORDE); DelCreature(AV_CPLACE_TRIGGER17); } - else if (entry == BG_AV_CreatureInfo[AV_NPC_H_BOSS][0]) + else if (entry == BG_AV_CreatureInfo[AV_NPC_H_BOSS]) { CastSpellOnTeam(23658, ALLIANCE); //this is a spell which finishes a quest where a player has to kill the boss RewardReputationToTeam(730, BG_AV_REP_BOSS, ALLIANCE); @@ -101,7 +102,7 @@ void BattlegroundAV::HandleKillUnit(Creature* unit, Player* killer) EndBattleground(ALLIANCE); DelCreature(AV_CPLACE_TRIGGER19); } - else if (entry == BG_AV_CreatureInfo[AV_NPC_A_CAPTAIN][0]) + else if (entry == BG_AV_CreatureInfo[AV_NPC_A_CAPTAIN]) { if (!m_CaptainAlive[0]) { @@ -115,12 +116,12 @@ void BattlegroundAV::HandleKillUnit(Creature* unit, Player* killer) //spawn destroyed aura for (uint8 i=0; i <= 9; i++) SpawnBGObject(BG_AV_OBJECT_BURN_BUILDING_ALLIANCE+i, RESPAWN_IMMEDIATELY); - Creature* creature = GetBGCreature(AV_CPLACE_HERALD); - if (creature) - YellToAll(creature, GetTrinityString(LANG_BG_AV_A_CAPTAIN_DEAD), LANG_UNIVERSAL); DelCreature(AV_CPLACE_TRIGGER16); + + if (Creature* herold = GetBGCreature(AV_CPLACE_HERALD)) + herold->AI()->TalkToMap(TEXT_STORMPIKE_GENERAL_DEAD); } - else if (entry == BG_AV_CreatureInfo[AV_NPC_H_CAPTAIN][0]) + else if (entry == BG_AV_CreatureInfo[AV_NPC_H_CAPTAIN]) { if (!m_CaptainAlive[1]) { @@ -134,14 +135,14 @@ void BattlegroundAV::HandleKillUnit(Creature* unit, Player* killer) //spawn destroyed aura for (uint8 i=0; i <= 9; i++) SpawnBGObject(BG_AV_OBJECT_BURN_BUILDING_HORDE+i, RESPAWN_IMMEDIATELY); - Creature* creature = GetBGCreature(AV_CPLACE_HERALD); - if (creature) - YellToAll(creature, GetTrinityString(LANG_BG_AV_H_CAPTAIN_DEAD), LANG_UNIVERSAL); DelCreature(AV_CPLACE_TRIGGER18); + + if (Creature* herold = GetBGCreature(AV_CPLACE_HERALD)) + herold->AI()->TalkToMap(TEXT_FROSTWOLF_GENERAL_DEAD); } - else if (entry == BG_AV_CreatureInfo[AV_NPC_N_MINE_N_4][0] || entry == BG_AV_CreatureInfo[AV_NPC_N_MINE_A_4][0] || entry == BG_AV_CreatureInfo[AV_NPC_N_MINE_H_4][0]) + else if (entry == BG_AV_CreatureInfo[AV_NPC_N_MINE_N_4] || entry == BG_AV_CreatureInfo[AV_NPC_N_MINE_A_4] || entry == BG_AV_CreatureInfo[AV_NPC_N_MINE_H_4]) ChangeMineOwner(AV_NORTH_MINE, killer->GetTeam()); - else if (entry == BG_AV_CreatureInfo[AV_NPC_S_MINE_N_4][0] || entry == BG_AV_CreatureInfo[AV_NPC_S_MINE_A_4][0] || entry == BG_AV_CreatureInfo[AV_NPC_S_MINE_H_4][0]) + else if (entry == BG_AV_CreatureInfo[AV_NPC_S_MINE_N_4] || entry == BG_AV_CreatureInfo[AV_NPC_S_MINE_A_4] || entry == BG_AV_CreatureInfo[AV_NPC_S_MINE_H_4]) ChangeMineOwner(AV_SOUTH_MINE, killer->GetTeam()); } @@ -150,7 +151,7 @@ void BattlegroundAV::HandleQuestComplete(uint32 questid, Player* player) if (GetStatus() != STATUS_IN_PROGRESS) return;//maybe we should log this, cause this must be a cheater or a big bug uint8 team = GetTeamIndexByTeamId(player->GetTeam()); - /// @todo add reputation, events (including quest not available anymore, next quest availabe, go/npc de/spawning)and maybe honor + /// @todo add reputation, events (including quest not available anymore, next quest available, go/npc de/spawning)and maybe honor TC_LOG_DEBUG("bg.battleground", "BG_AV Quest %i completed", questid); switch (questid) { @@ -290,11 +291,11 @@ Creature* BattlegroundAV::AddAVCreature(uint16 cinfoid, uint16 type) } else { - creature = AddCreature(BG_AV_CreatureInfo[cinfoid][0], type, BG_AV_CreaturePos[type]); + creature = AddCreature(BG_AV_CreatureInfo[cinfoid], type, BG_AV_CreaturePos[type]); } if (!creature) return NULL; - if (creature->GetEntry() == BG_AV_CreatureInfo[AV_NPC_A_CAPTAIN][0] || creature->GetEntry() == BG_AV_CreatureInfo[AV_NPC_H_CAPTAIN][0]) + if (creature->GetEntry() == BG_AV_CreatureInfo[AV_NPC_A_CAPTAIN] || creature->GetEntry() == BG_AV_CreatureInfo[AV_NPC_H_CAPTAIN]) creature->SetRespawnDelay(RESPAWN_ONE_DAY); /// @todo look if this can be done by database + also add this for the wingcommanders if ((isStatic && cinfoid >= 10 && cinfoid <= 14) || (!isStatic && ((cinfoid >= AV_NPC_A_GRAVEDEFENSE0 && cinfoid <= AV_NPC_A_GRAVEDEFENSE3) || @@ -317,22 +318,22 @@ Creature* BattlegroundAV::AddAVCreature(uint16 cinfoid, uint16 type) uint32 triggerSpawnID = 0; uint32 newFaction = 0; - if (creature->GetEntry() == BG_AV_CreatureInfo[AV_NPC_A_CAPTAIN][0]) + if (creature->GetEntry() == BG_AV_CreatureInfo[AV_NPC_A_CAPTAIN]) { triggerSpawnID = AV_CPLACE_TRIGGER16; newFaction = 84; } - else if (creature->GetEntry() == BG_AV_CreatureInfo[AV_NPC_A_BOSS][0]) + else if (creature->GetEntry() == BG_AV_CreatureInfo[AV_NPC_A_BOSS]) { triggerSpawnID = AV_CPLACE_TRIGGER17; newFaction = 84; } - else if (creature->GetEntry() == BG_AV_CreatureInfo[AV_NPC_H_CAPTAIN][0]) + else if (creature->GetEntry() == BG_AV_CreatureInfo[AV_NPC_H_CAPTAIN]) { triggerSpawnID = AV_CPLACE_TRIGGER18; newFaction = 83; } - else if (creature->GetEntry() == BG_AV_CreatureInfo[AV_NPC_H_BOSS][0]) + else if (creature->GetEntry() == BG_AV_CreatureInfo[AV_NPC_H_BOSS]) { triggerSpawnID = AV_CPLACE_TRIGGER19; newFaction = 83; @@ -364,16 +365,14 @@ void BattlegroundAV::PostUpdateImpl(uint32 diff) if (i == 0) { CastSpellOnTeam(AV_BUFF_A_CAPTAIN, ALLIANCE); - Creature* creature = GetBGCreature(AV_CPLACE_MAX + 61); - if (creature) - YellToAll(creature, LANG_BG_AV_A_CAPTAIN_BUFF, LANG_COMMON); + if (Creature* creature = GetBGCreature(AV_CPLACE_MAX + 61)) + creature->AI()->DoAction(ACTION_BUFF_YELL); } else { CastSpellOnTeam(AV_BUFF_H_CAPTAIN, HORDE); - Creature* creature = GetBGCreature(AV_CPLACE_MAX + 59); /// @todo make the captains a dynamic creature - if (creature) - YellToAll(creature, LANG_BG_AV_H_CAPTAIN_BUFF, LANG_ORCISH); + if (Creature* creature = GetBGCreature(AV_CPLACE_MAX + 59)) + creature->AI()->DoAction(ACTION_BUFF_YELL); } m_CaptainBuffTimer[i] = 120000 + urand(0, 4)* 60000; //as far as i could see, the buff is randomly so i make 2minutes (thats the duration of the buff itself) + 0-4minutes @todo get the right times } @@ -601,16 +600,10 @@ void BattlegroundAV::EventPlayerDestroyedPoint(BG_AV_Nodes node) } } } - //send a nice message to all :) - char buf[256]; - if (IsTower(node)) - sprintf(buf, GetTrinityString(LANG_BG_AV_TOWER_TAKEN), GetNodeName(node), (owner == ALLIANCE) ? GetTrinityString(LANG_BG_AV_ALLY) : GetTrinityString(LANG_BG_AV_HORDE)); - else - sprintf(buf, GetTrinityString(LANG_BG_AV_GRAVE_TAKEN), GetNodeName(node), (owner == ALLIANCE) ? GetTrinityString(LANG_BG_AV_ALLY) :GetTrinityString(LANG_BG_AV_HORDE)); - Creature* creature = GetBGCreature(AV_CPLACE_HERALD); - if (creature) - YellToAll(creature, buf, LANG_UNIVERSAL); + if (StaticNodeInfo const* nodeInfo = GetStaticNodeInfo(node)) + if (Creature* herold = GetBGCreature(AV_CPLACE_HERALD)) + herold->AI()->TalkToMap(owner == ALLIANCE ? nodeInfo->TextIds.AllianceCapture : nodeInfo->TextIds.HordeCapture); } void BattlegroundAV::ChangeMineOwner(uint8 mine, uint32 team, bool initial) @@ -621,8 +614,6 @@ void BattlegroundAV::ChangeMineOwner(uint8 mine, uint32 team, bool initial) ASSERT(mine == AV_NORTH_MINE || mine == AV_SOUTH_MINE); if (team != ALLIANCE && team != HORDE) team = AV_NEUTRAL_TEAM; - else - PlaySoundToAll((team == ALLIANCE)?AV_SOUND_ALLIANCE_GOOD:AV_SOUND_HORDE_GOOD); if (m_Mine_Owner[mine] == team && !initial) return; @@ -684,19 +675,21 @@ void BattlegroundAV::ChangeMineOwner(uint8 mine, uint32 team, bool initial) if (team == ALLIANCE || team == HORDE) { m_Mine_Reclaim_Timer[mine]=AV_MINE_RECLAIM_TIMER; - char buf[256]; - sprintf(buf, GetTrinityString(LANG_BG_AV_MINE_TAKEN), GetTrinityString((mine == AV_NORTH_MINE) ? LANG_BG_AV_MINE_NORTH : LANG_BG_AV_MINE_SOUTH), - (team == ALLIANCE) ? GetTrinityString(LANG_BG_AV_ALLY) : GetTrinityString(LANG_BG_AV_HORDE)); - Creature* creature = GetBGCreature(AV_CPLACE_HERALD); - if (creature) - YellToAll(creature, buf, LANG_UNIVERSAL); + + if (Creature* herold = GetBGCreature(AV_CPLACE_HERALD)) + { + if (mine == AV_NORTH_MINE) + herold->AI()->TalkToMap(team == ALLIANCE ? TEXT_IRONDEEP_MINE_ALLIANCE_TAKEN : TEXT_IRONDEEP_MINE_HORDE_TAKEN); + else if (mine == AV_SOUTH_MINE) + herold->AI()->TalkToMap(team == ALLIANCE ? TEXT_COLDTOOTH_MINE_ALLIANCE_TAKEN : TEXT_COLDTOOTH_MINE_HORDE_TAKEN); + } } else { if (mine == AV_SOUTH_MINE) //i think this gets called all the time { if (Creature* creature = GetBGCreature(AV_CPLACE_MINE_S_3)) - YellToAll(creature, LANG_BG_AV_S_MINE_BOSS_CLAIMS, LANG_UNIVERSAL); + creature->AI()->Talk(TEXT_SNIVVLE_RANDOM); } } return; @@ -927,19 +920,13 @@ void BattlegroundAV::EventPlayerDefendsPoint(Player* player, uint32 object) SpawnBGObject(((team == ALLIANCE)?BG_AV_OBJECT_SNOW_EYECANDY_A : BG_AV_OBJECT_SNOW_EYECANDY_H)+i, RESPAWN_IMMEDIATELY); } } - //send a nice message to all :) - char buf[256]; - sprintf(buf, GetTrinityString((IsTower(node)) ? LANG_BG_AV_TOWER_DEFENDED : LANG_BG_AV_GRAVE_DEFENDED), GetNodeName(node), - (team == ALLIANCE) ? GetTrinityString(LANG_BG_AV_ALLY) : GetTrinityString(LANG_BG_AV_HORDE)); - Creature* creature = GetBGCreature(AV_CPLACE_HERALD); - if (creature) - YellToAll(creature, buf, LANG_UNIVERSAL); - //update the statistic for the defending player - UpdatePlayerScore(player, (IsTower(node)) ? SCORE_TOWERS_DEFENDED : SCORE_GRAVEYARDS_DEFENDED, 1); - if (IsTower(node)) - PlaySoundToAll(AV_SOUND_BOTH_TOWER_DEFEND); - else - PlaySoundToAll((team == ALLIANCE)?AV_SOUND_ALLIANCE_GOOD:AV_SOUND_HORDE_GOOD); + + if (StaticNodeInfo const* nodeInfo = GetStaticNodeInfo(node)) + if (Creature* herold = GetBGCreature(AV_CPLACE_HERALD)) + herold->AI()->TalkToMap(team == ALLIANCE ? nodeInfo->TextIds.AllianceCapture : nodeInfo->TextIds.HordeCapture); + + // update the statistic for the defending player + UpdatePlayerScore(player, IsTower(node) ? SCORE_TOWERS_DEFENDED : SCORE_GRAVEYARDS_DEFENDED, 1); } void BattlegroundAV::EventPlayerAssaultsPoint(Player* player, uint32 object) @@ -1025,42 +1012,29 @@ void BattlegroundAV::EventPlayerAssaultsPoint(Player* player, uint32 object) AssaultNode(node, team); UpdateNodeWorldState(node); - //send a nice message to all :) - char buf[256]; - sprintf(buf, (IsTower(node)) ? GetTrinityString(LANG_BG_AV_TOWER_ASSAULTED) : GetTrinityString(LANG_BG_AV_GRAVE_ASSAULTED), GetNodeName(node), - (team == ALLIANCE) ? GetTrinityString(LANG_BG_AV_ALLY) : GetTrinityString(LANG_BG_AV_HORDE)); - Creature* creature = GetBGCreature(AV_CPLACE_HERALD); - if (creature) - YellToAll(creature, buf, LANG_UNIVERSAL); - //update the statistic for the assaulting player + if (StaticNodeInfo const* nodeInfo = GetStaticNodeInfo(node)) + if (Creature* herold = GetBGCreature(AV_CPLACE_HERALD)) + herold->AI()->TalkToMap(team == ALLIANCE ? nodeInfo->TextIds.AllianceAttack : nodeInfo->TextIds.HordeAttack); + + // update the statistic for the assaulting player UpdatePlayerScore(player, (IsTower(node)) ? SCORE_TOWERS_ASSAULTED : SCORE_GRAVEYARDS_ASSAULTED, 1); - PlaySoundToAll((team == ALLIANCE)?AV_SOUND_ALLIANCE_ASSAULTS:AV_SOUND_HORDE_ASSAULTS); } void BattlegroundAV::FillInitialWorldStates(WorldPacket& data) { - bool stateok; - //graveyards - for (uint8 i = BG_AV_NODES_FIRSTAID_STATION; i <= BG_AV_NODES_FROSTWOLF_HUT; i++) + for (uint8 i = BG_AV_NODES_FIRSTAID_STATION; i < BG_AV_NODES_MAX; ++i) { - for (uint8 j =1; j <= 3; j+=2) - {//j=1=assaulted j=3=controled - stateok = (m_Nodes[i].State == j); - data << uint32(BG_AV_NodeWorldStates[i][GetWorldStateType(j, ALLIANCE)]) << uint32((m_Nodes[i].Owner == ALLIANCE && stateok)?1:0); - data << uint32(BG_AV_NodeWorldStates[i][GetWorldStateType(j, HORDE)]) << uint32((m_Nodes[i].Owner == HORDE && stateok)?1:0); - } + uint16 owner = m_Nodes[i].Owner; + BG_AV_States state = m_Nodes[i].State; + + data << uint32(BGAVNodeInfo[i].WorldStateIds.AllianceAssault) << uint32(owner == ALLIANCE && state == POINT_ASSAULTED); + data << uint32(BGAVNodeInfo[i].WorldStateIds.AllianceControl) << uint32(owner == ALLIANCE && state >= POINT_DESTROYED); + data << uint32(BGAVNodeInfo[i].WorldStateIds.HordeAssault) << uint32(owner == HORDE && state == POINT_ASSAULTED); + data << uint32(BGAVNodeInfo[i].WorldStateIds.HordeControl) << uint32(owner == HORDE && state >= POINT_DESTROYED); } - //towers - for (uint8 i = BG_AV_NODES_DUNBALDAR_SOUTH; i < BG_AV_NODES_MAX; ++i) - for (uint8 j =1; j <= 3; j+=2) - {//j=1=assaulted j=3=controled //i dont have j=2=destroyed cause destroyed is the same like enemy-team controll - stateok = (m_Nodes[i].State == j || (m_Nodes[i].State == POINT_DESTROYED && j == 3)); - data << uint32(BG_AV_NodeWorldStates[i][GetWorldStateType(j, ALLIANCE)]) << uint32((m_Nodes[i].Owner == ALLIANCE && stateok)?1:0); - data << uint32(BG_AV_NodeWorldStates[i][GetWorldStateType(j, HORDE)]) << uint32((m_Nodes[i].Owner == HORDE && stateok)?1:0); - } - if (m_Nodes[BG_AV_NODES_SNOWFALL_GRAVE].Owner == AV_NEUTRAL_TEAM) //cause neutral teams aren't handled generic - data << uint32(AV_SNOWFALL_N) << uint32(1); + data << uint32(AV_SNOWFALL_N) << uint32(m_Nodes[BG_AV_NODES_SNOWFALL_GRAVE].Owner == AV_NEUTRAL_TEAM); + data << uint32(AV_Alliance_Score) << uint32(m_Team_Scores[0]); data << uint32(AV_Horde_Score) << uint32(m_Team_Scores[1]); if (GetStatus() == STATUS_IN_PROGRESS){ //only if game started the teamscores are displayed @@ -1076,36 +1050,21 @@ void BattlegroundAV::FillInitialWorldStates(WorldPacket& data) SendMineWorldStates(AV_SOUTH_MINE); } -uint8 BattlegroundAV::GetWorldStateType(uint8 state, uint16 team) //this is used for node worldstates and returns values which fit good into the worldstatesarray +void BattlegroundAV::UpdateNodeWorldState(BG_AV_Nodes node) { - //neutral stuff cant get handled (currently its only snowfall) - ASSERT(team != AV_NEUTRAL_TEAM); - //a_c a_a h_c h_a the positions in worldstate-array - if (team == ALLIANCE) - { - if (state == POINT_CONTROLED || state == POINT_DESTROYED) - return 0; - if (state == POINT_ASSAULTED) - return 1; - } - if (team == HORDE) + if (StaticNodeInfo const* nodeInfo = GetStaticNodeInfo(node)) { - if (state == POINT_DESTROYED || state == POINT_CONTROLED) - return 2; - if (state == POINT_ASSAULTED) - return 3; + uint16 owner = m_Nodes[node].Owner; + BG_AV_States state = m_Nodes[node].State; + + UpdateWorldState(nodeInfo->WorldStateIds.AllianceAssault, owner == ALLIANCE && state == POINT_ASSAULTED); + UpdateWorldState(nodeInfo->WorldStateIds.AllianceControl, owner == ALLIANCE && state >= POINT_DESTROYED); + UpdateWorldState(nodeInfo->WorldStateIds.HordeAssault, owner == HORDE && state == POINT_ASSAULTED); + UpdateWorldState(nodeInfo->WorldStateIds.HordeControl, owner == HORDE && state >= POINT_DESTROYED); } - TC_LOG_ERROR("bg.battleground", "BG_AV: should update a strange worldstate state:%i team:%i", state, team); - return 5; //this will crash the game, but i want to know if something is wrong here -} -void BattlegroundAV::UpdateNodeWorldState(BG_AV_Nodes node) -{ - UpdateWorldState(BG_AV_NodeWorldStates[node][GetWorldStateType(m_Nodes[node].State, m_Nodes[node].Owner)], 1); - if (m_Nodes[node].PrevOwner == AV_NEUTRAL_TEAM) //currently only snowfall is supported as neutral node (i don't want to make an extra row (neutral states) in worldstatesarray just for one node - UpdateWorldState(AV_SNOWFALL_N, 0); - else - UpdateWorldState(BG_AV_NodeWorldStates[node][GetWorldStateType(m_Nodes[node].PrevState, m_Nodes[node].PrevOwner)], 0); + if (node == BG_AV_NODES_SNOWFALL_GRAVE) + UpdateWorldState(AV_SNOWFALL_N, m_Nodes[node].Owner == AV_NEUTRAL_TEAM); } void BattlegroundAV::SendMineWorldStates(uint32 mine) @@ -1440,33 +1399,6 @@ bool BattlegroundAV::SetupBattleground() return true; } -char const* BattlegroundAV::GetNodeName(BG_AV_Nodes node) -{ - switch (node) - { - case BG_AV_NODES_FIRSTAID_STATION: return GetTrinityString(LANG_BG_AV_NODE_GRAVE_STORM_AID); - case BG_AV_NODES_DUNBALDAR_SOUTH: return GetTrinityString(LANG_BG_AV_NODE_TOWER_DUN_S); - case BG_AV_NODES_DUNBALDAR_NORTH: return GetTrinityString(LANG_BG_AV_NODE_TOWER_DUN_N); - case BG_AV_NODES_STORMPIKE_GRAVE: return GetTrinityString(LANG_BG_AV_NODE_GRAVE_STORMPIKE); - case BG_AV_NODES_ICEWING_BUNKER: return GetTrinityString(LANG_BG_AV_NODE_TOWER_ICEWING); - case BG_AV_NODES_STONEHEART_GRAVE: return GetTrinityString(LANG_BG_AV_NODE_GRAVE_STONE); - case BG_AV_NODES_STONEHEART_BUNKER: return GetTrinityString(LANG_BG_AV_NODE_TOWER_STONE); - case BG_AV_NODES_SNOWFALL_GRAVE: return GetTrinityString(LANG_BG_AV_NODE_GRAVE_SNOW); - case BG_AV_NODES_ICEBLOOD_TOWER: return GetTrinityString(LANG_BG_AV_NODE_TOWER_ICE); - case BG_AV_NODES_ICEBLOOD_GRAVE: return GetTrinityString(LANG_BG_AV_NODE_GRAVE_ICE); - case BG_AV_NODES_TOWER_POINT: return GetTrinityString(LANG_BG_AV_NODE_TOWER_POINT); - case BG_AV_NODES_FROSTWOLF_GRAVE: return GetTrinityString(LANG_BG_AV_NODE_GRAVE_FROST); - case BG_AV_NODES_FROSTWOLF_ETOWER: return GetTrinityString(LANG_BG_AV_NODE_TOWER_FROST_E); - case BG_AV_NODES_FROSTWOLF_WTOWER: return GetTrinityString(LANG_BG_AV_NODE_TOWER_FROST_W); - case BG_AV_NODES_FROSTWOLF_HUT: return GetTrinityString(LANG_BG_AV_NODE_GRAVE_FROST_HUT); - default: - TC_LOG_ERROR("bg.battleground", "tried to get name for node %u", node); - break; - } - - return "Unknown"; -} - void BattlegroundAV::AssaultNode(BG_AV_Nodes node, uint16 team) { if (m_Nodes[node].TotalOwner == team) diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundAV.h b/src/server/game/Battlegrounds/Zones/BattlegroundAV.h index b56ec2ca489..22534d2015b 100644 --- a/src/server/game/Battlegrounds/Zones/BattlegroundAV.h +++ b/src/server/game/Battlegrounds/Zones/BattlegroundAV.h @@ -23,10 +23,6 @@ #include "BattlegroundScore.h" #include "Object.h" -#define LANG_BG_AV_A_CAPTAIN_BUFF "Begone. Uncouth scum! The Alliance shall prevail in Alterac Valley!" -#define LANG_BG_AV_H_CAPTAIN_BUFF "Now is the time to attack! For the Horde!" -#define LANG_BG_AV_S_MINE_BOSS_CLAIMS "Snivvle is here! Snivvle claims the Coldtooth Mine!" - #define BG_AV_CAPTIME 240000 //4:00 #define BG_AV_SNOWFALL_FIRSTCAP 300000 //5:00 but i also have seen 4:05 @@ -54,6 +50,11 @@ #define BG_AV_EVENT_START_BATTLE 9166 // Achievement: The Alterac Blitz +enum SharedActions +{ + ACTION_BUFF_YELL = -30001 +}; + enum BG_AV_Sounds { /// @todo: get out if there comes a sound when neutral team captures mine @@ -1041,63 +1042,63 @@ enum BG_AV_CreatureIds //entry, team, minlevel, maxlevel /// @todo: this array should be removed, the only needed things are the entrys (for spawning(?) and handlekillunit) -const uint32 BG_AV_CreatureInfo[AV_NPC_INFO_MAX][4] = +const uint32 BG_AV_CreatureInfo[AV_NPC_INFO_MAX] = { - { 12050, 1216, 58, 58 }, //Stormpike Defender - { 13326, 1216, 59, 59 }, //Seasoned Defender - { 13331, 1216, 60, 60 }, //Veteran Defender - { 13422, 1216, 61, 61 }, //Champion Defender - { 13358, 1216, 59, 60 }, //Stormpike Bowman /// @todo: Confirm if this is correct. Author assumpted 60, 61 & 69, 70, but wouldn't work here - { 11949, 469, 0, 0}, //not spawned with this data, but used for handlekillunit - { 11948, 469, 0, 0}, //not spawned with this data, but used for handlekillunit - { 12053, 1214, 58, 58 }, //Frostwolf Guardian - { 13328, 1214, 59, 59 }, //Seasoned Guardian - { 13332, 1214, 60, 60 }, //Veteran Guardian - { 13421, 1214, 61, 61 }, //Champion Guardian - { 13359, 1214, 59, 60 }, //Frostwolf Bowman - { 11947, 67, 0, 0}, //not spawned with this data, but used for handlekillunit - { 11946, 67, 0, 0}, //not spawned with this data, but used for handlekillunit - { 14763, 1534, 60, 60 }, //Dun Baldar South Marshal - { 14762, 1534, 60, 60 }, //Dun Baldar North Marshal - { 14764, 1534, 60, 60 }, //Icewing Marshal - { 14765, 1534, 60, 60 }, //Stonehearth Marshal - - { 14773, 1214, 60, 60 }, //Iceblood Warmaster - { 14776, 1214, 60, 60 }, //Tower Point Warmaster - { 14772, 1214, 60, 60 }, //East Frostwolf Warmaster - { 14777, 1214, 60, 60 }, //West Frostwolf Warmaster - - { 10987, 59, 52, 53 }, //Irondeep Trogg - { 11600, 59, 53, 54 }, //Irondeep Shaman - { 11602, 59, 54, 55 }, //Irondeep Skullthumper - { 11657, 59, 58, 58 }, //Morloch - - {13396, 469, 52, 53}, // irondeep alliance /// @todo: Correct and give correct ids - {13080, 469, 53, 54}, - {13098, 469, 54, 55}, - {13078, 469, 58, 58}, - - {13397, 67, 52, 53}, //irondeep horde - {13099, 67, 53, 54}, - {13081, 67, 54, 55}, - {13079, 67, 58, 58}, - - { 11603, 59, 52, 53 }, //south mine neutral - { 11604, 59, 53, 54 }, - { 11605, 59, 54, 55 }, - { 11677, 59, 58, 58 }, - { 10982, 59, 52, 53 }, //vermin - - {13317, 469, 52, 53}, //alliance - {13096, 469, 54, 55}, //explorer - {13087, 469, 54, 55}, //invader - {13086, 469, 58, 58}, - - {13316, 67, 52, 53}, //horde - {13097, 67, 54, 55}, //surveypr - {13089, 67, 54, 55}, //guard - {13088, 67, 58, 58}, - {14848, 67, 58, 58} //Herald + 12050, // Stormpike Defender + 13326, // Seasoned Defender + 13331, // Veteran Defender + 13422, // Champion Defender + 13358, // Stormpike Bowman /// @todo: Confirm if this is correct. Author assumpted 60, 61 & 69, 70, but wouldn't work here + 11949, // not spawned with this data, but used for handlekillunit + 11948, // not spawned with this data, but used for handlekillunit + 12053, // Frostwolf Guardian + 13328, // Seasoned Guardian + 13332, // Veteran Guardian + 13421, // Champion Guardian + 13359, // Frostwolf Bowman + 11947, // not spawned with this data, but used for handlekillunit + 11946, // not spawned with this data, but used for handlekillunit + 14763, // Dun Baldar South Marshal + 14762, // Dun Baldar North Marshal + 14764, // Icewing Marshal + 14765, // Stonehearth Marshal + + 14773, // Iceblood Warmaster + 14776, // Tower Point Warmaster + 14772, // East Frostwolf Warmaster + 14777, // West Frostwolf Warmaster + + 10987, // Irondeep Trogg + 11600, // Irondeep Shaman + 11602, // Irondeep Skullthumper + 11657, // Morloch + + 13396, // irondeep alliance /// @todo: Correct and give correct ids + 13080, + 13098, + 13078, + + 13397, // irondeep horde + 13099, + 13081, + 13079, + + 11603, // south mine neutral + 11604, + 11605, + 11677, + 10982, // vermin + + 13317, // alliance + 13096, // explorer + 13087, // invader + 13086, + + 13316, // horde + 13097, // surveypr + 13089, // guard + 13088, + 14848 // Herald }; //x, y, z, o, static_creature_info-id @@ -1444,41 +1445,6 @@ const uint32 BG_AV_MineWorldStates[2][3] = {1355, 1357, 1356} }; -//alliance_control alliance_assault h_control h_assault -const uint32 BG_AV_NodeWorldStates[16][4] = -{ - //Stormpike first aid station - {1325, 1326, 1327, 1328}, - //Stormpike Graveyard - {1333, 1335, 1334, 1336}, - //Stoneheart Grave - {1302, 1304, 1301, 1303}, - //Snowfall Grave - {1341, 1343, 1342, 1344}, - //Iceblood grave - {1346, 1348, 1347, 1349}, - //Frostwolf Grave - {1337, 1339, 1338, 1340}, - //Frostwolf Hut - {1329, 1331, 1330, 1332}, - //Dunbaldar South Bunker - {1361, 1375, 1370, 1378}, - //Dunbaldar North Bunker - {1362, 1374, 1371, 1379}, - //Icewing Bunker - {1363, 1376, 1372, 1380}, - //Stoneheart Bunker - {1364, 1377, 1373, 1381}, - //Iceblood Tower - {1368, 1390, 1385, 1395}, - //Tower Point - {1367, 1389, 1384, 1394}, - //Frostwolf East - {1366, 1388, 1383, 1393}, - //Frostwolf West - {1365, 1387, 1382, 1392}, -}; - enum BG_AV_QuestIds { AV_QUEST_A_SCRAPS1 = 7223, @@ -1513,6 +1479,63 @@ enum BG_AV_Objectives AV_OBJECTIVE_DEFEND_GRAVEYARD = 65 }; +struct StaticNodeInfo +{ + BG_AV_Nodes NodeId; + + struct + { + uint8 AllianceCapture; + uint8 AllianceAttack; + uint8 HordeCapture; + uint8 HordeAttack; + } TextIds; + + struct + { + uint32 AllianceControl; + uint32 AllianceAssault; + uint32 HordeControl; + uint32 HordeAssault; + } WorldStateIds; +}; + +static StaticNodeInfo const BGAVNodeInfo[] = +{ + { BG_AV_NODES_FIRSTAID_STATION, { 47, 48, 45, 46 }, { 1325, 1326, 1327, 1328 } }, // Stormpike First Aid Station + { BG_AV_NODES_STORMPIKE_GRAVE, { 1, 2, 3, 4 }, { 1333, 1335, 1334, 1336 } }, // Stormpike Graveyard + { BG_AV_NODES_STONEHEART_GRAVE, { 55, 56, 53, 54 }, { 1302, 1304, 1301, 1303 } }, // Stoneheart Graveyard + { BG_AV_NODES_SNOWFALL_GRAVE, { 5, 6, 7, 8 }, { 1341, 1343, 1342, 1344 } }, // Snowfall Graveyard + { BG_AV_NODES_ICEBLOOD_GRAVE, { 59, 60, 57, 58 }, { 1346, 1348, 1347, 1349 } }, // Iceblood Graveyard + { BG_AV_NODES_FROSTWOLF_GRAVE, { 9, 10, 11, 12 }, { 1337, 1339, 1338, 1340 } }, // Frostwolf Graveyard + { BG_AV_NODES_FROSTWOLF_HUT, { 51, 52, 49, 50 }, { 1329, 1331, 1330, 1332 } }, // Frostwolf Hut + { BG_AV_NODES_DUNBALDAR_SOUTH, { 16, 15, 14, 13 }, { 1361, 1375, 1370, 1378 } }, // Dunbaldar South Bunker + { BG_AV_NODES_DUNBALDAR_NORTH, { 20, 19, 18, 17 }, { 1362, 1374, 1371, 1379 } }, // Dunbaldar North Bunker + { BG_AV_NODES_ICEWING_BUNKER, { 24, 23, 22, 21 }, { 1363, 1376, 1372, 1380 } }, // Icewing Bunker + { BG_AV_NODES_STONEHEART_BUNKER, { 28, 27, 26, 25 }, { 1364, 1377, 1373, 1381 } }, // Stoneheart Bunker + { BG_AV_NODES_ICEBLOOD_TOWER, { 44, 43, 42, 41 }, { 1368, 1390, 1385, 1395 } }, // Iceblood Tower + { BG_AV_NODES_TOWER_POINT, { 40, 39, 38, 37 }, { 1367, 1389, 1384, 1394 } }, // Tower Point + { BG_AV_NODES_FROSTWOLF_ETOWER, { 36, 35, 34, 33 }, { 1366, 1388, 1383, 1393 } }, // Frostwolf East Tower + { BG_AV_NODES_FROSTWOLF_WTOWER, { 32, 31, 30, 29 }, { 1365, 1387, 1382, 1392 } }, // Frostwolf West Tower +}; + +enum Texts +{ + // Herold + // Towers/Graveyards = 1 - 60 + TEXT_COLDTOOTH_MINE_ALLIANCE_TAKEN = 61, + TEXT_IRONDEEP_MINE_ALLIANCE_TAKEN = 62, + TEXT_COLDTOOTH_MINE_HORDE_TAKEN = 63, + TEXT_IRONDEEP_MINE_HORDE_TAKEN = 64, + TEXT_FROSTWOLF_GENERAL_DEAD = 65, /// @todo: sound is missing + TEXT_STORMPIKE_GENERAL_DEAD = 66, /// @todo: sound is missing + TEXT_ALLIANCE_WINS = 67, // NYI /// @todo: sound is missing + TEXT_HORDE_WINS = 68, // NYI /// @todo: sound is missing + + // Taskmaster Snivvle + TEXT_SNIVVLE_RANDOM = 0 +}; + struct BG_AV_NodeInfo { BG_AV_States State; @@ -1524,7 +1547,7 @@ struct BG_AV_NodeInfo bool Tower; }; -inline BG_AV_Nodes &operator++(BG_AV_Nodes &i){ return i = BG_AV_Nodes(i + 1); } +inline BG_AV_Nodes &operator++(BG_AV_Nodes& i) { return i = BG_AV_Nodes(i + 1); } struct BattlegroundAVScore final : public BattlegroundScore { @@ -1633,9 +1656,16 @@ class BattlegroundAV : public Battleground void PopulateNode(BG_AV_Nodes node); void DePopulateNode(BG_AV_Nodes node); + StaticNodeInfo const* GetStaticNodeInfo(BG_AV_Nodes node) const + { + for (uint8 i = 0; i < BG_AV_NODES_MAX; ++i) + if (BGAVNodeInfo[i].NodeId == node) + return &BGAVNodeInfo[i]; + return nullptr; + } + BG_AV_Nodes GetNodeThroughObject(uint32 object); uint32 GetObjectThroughNode(BG_AV_Nodes node); - char const* GetNodeName(BG_AV_Nodes node); bool IsTower(BG_AV_Nodes node) { return m_Nodes[node].Tower; } /*mine*/ @@ -1643,7 +1673,6 @@ class BattlegroundAV : public Battleground /*worldstates*/ void FillInitialWorldStates(WorldPacket& data) override; - uint8 GetWorldStateType(uint8 state, uint16 team); void SendMineWorldStates(uint32 mine); void UpdateNodeWorldState(BG_AV_Nodes node); diff --git a/src/server/game/Entities/Object/Object.cpp b/src/server/game/Entities/Object/Object.cpp index 77f318066a2..45450a0c129 100644 --- a/src/server/game/Entities/Object/Object.cpp +++ b/src/server/game/Entities/Object/Object.cpp @@ -74,6 +74,7 @@ Object::Object() : m_PackGUID(sizeof(uint64)+1) { m_objectTypeId = TYPEID_OBJECT; m_objectType = TYPEMASK_OBJECT; + m_updateFlag = UPDATEFLAG_NONE; m_uint32Values = NULL; m_valuesCount = 0; diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index d1495f02614..158ff17ea11 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -15297,18 +15297,7 @@ void Player::RewardQuest(Quest const* quest, uint32 reward, Object* questGiver, SendNewItem(item, quest->RewardItemIdCount[i], true, false); } else if (quest->IsDFQuest()) - { - MailSender sender(MAIL_CREATURE, 34337 /* The Postmaster */ ); - MailDraft draft("Recovered Item", "We recovered a lost item in the twisting nether and noted that it was yours.$B$BPlease find said object enclosed."); // This is the text used in Cataclysm, it probably wasn't changed. - SQLTransaction trans = CharacterDatabase.BeginTransaction(); - if (Item* item = Item::CreateItem(quest->RewardItemId[i], quest->RewardItemIdCount[i], 0)) - { - item->SaveToDB(trans); - draft.AddItem(item); - } - draft.SendMailTo(trans, MailReceiver(this, this->GetGUIDLow()), sender); - CharacterDatabase.CommitTransaction(trans); - } + SendItemRetrievalMail(quest->RewardItemId[i], quest->RewardItemIdCount[i]); } } } @@ -15322,7 +15311,7 @@ void Player::RewardQuest(Quest const* quest, uint32 reward, Object* questGiver, bool rewarded = (m_RewardedQuests.find(quest_id) != m_RewardedQuests.end()); // Not give XP in case already completed once repeatable quest - uint32 XP = rewarded ? 0 : uint32(quest->XPValue(this)*sWorld->getRate(RATE_XP_QUEST)); + uint32 XP = rewarded && !quest->IsDFQuest() ? 0 : uint32(quest->XPValue(this)*sWorld->getRate(RATE_XP_QUEST)); // handle SPELL_AURA_MOD_XP_QUEST_PCT auras Unit::AuraEffectList const& ModXPPctAuras = GetAuraEffectsByType(SPELL_AURA_MOD_XP_QUEST_PCT); @@ -15448,6 +15437,10 @@ void Player::RewardQuest(Quest const* quest, uint32 reward, Object* questGiver, void Player::FailQuest(uint32 questId) { + // Already complete quests shouldn't turn failed. + if (GetQuestStatus(questId) == QUEST_STATUS_COMPLETE) + return; + if (Quest const* quest = sObjectMgr->GetQuestTemplate(questId)) { SetQuestStatus(questId, QUEST_STATUS_FAILED); @@ -26497,6 +26490,22 @@ void Player::RefundItem(Item* item) CharacterDatabase.CommitTransaction(trans); } +void Player::SendItemRetrievalMail(uint32 itemEntry, uint32 count) +{ + MailSender sender(MAIL_CREATURE, 34337 /* The Postmaster */); + MailDraft draft("Recovered Item", "We recovered a lost item in the twisting nether and noted that it was yours.$B$BPlease find said object enclosed."); // This is the text used in Cataclysm, it probably wasn't changed. + SQLTransaction trans = CharacterDatabase.BeginTransaction(); + + if (Item* item = Item::CreateItem(itemEntry, count, 0)) + { + item->SaveToDB(trans); + draft.AddItem(item); + } + + draft.SendMailTo(trans, MailReceiver(this, GetGUIDLow()), sender); + CharacterDatabase.CommitTransaction(trans); +} + void Player::SetRandomWinner(bool isWinner) { m_IsBGRandomWinner = isWinner; diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h index b1fd9d5a97f..27ea8355345 100644 --- a/src/server/game/Entities/Player/Player.h +++ b/src/server/game/Entities/Player/Player.h @@ -1571,6 +1571,8 @@ class Player : public Unit, public GridObject<Player> PlayerMails::iterator GetMailBegin() { return m_mail.begin();} PlayerMails::iterator GetMailEnd() { return m_mail.end();} + void SendItemRetrievalMail(uint32 itemEntry, uint32 count); // Item retrieval mails sent by The Postmaster (34337), used in multiple places. + /*********************************************************/ /*** MAILED ITEMS SYSTEM ***/ /*********************************************************/ diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp index 944ad4d4a19..7ab843943f8 100644 --- a/src/server/game/Globals/ObjectMgr.cpp +++ b/src/server/game/Globals/ObjectMgr.cpp @@ -7261,13 +7261,13 @@ void ObjectMgr::LoadNPCSpellClickSpells() SpellInfo const* spellinfo = sSpellMgr->GetSpellInfo(spellid); if (!spellinfo) { - TC_LOG_ERROR("sql.sql", "Table npc_spellclick_spells references unknown spellid %u. Skipping entry.", spellid); + TC_LOG_ERROR("sql.sql", "Table npc_spellclick_spells creature: %u references unknown spellid %u. Skipping entry.", npc_entry, spellid); continue; } uint8 userType = fields[3].GetUInt16(); if (userType >= SPELL_CLICK_USER_MAX) - TC_LOG_ERROR("sql.sql", "Table npc_spellclick_spells references unknown user type %u. Skipping entry.", uint32(userType)); + TC_LOG_ERROR("sql.sql", "Table npc_spellclick_spells creature: %u references unknown user type %u. Skipping entry.", npc_entry, uint32(userType)); uint8 castFlags = fields[2].GetUInt8(); SpellClickInfo info; @@ -7329,7 +7329,7 @@ void ObjectMgr::DeleteCorpseCellData(uint32 mapid, uint32 cellid, uint32 player_ cell_guids.corpses.erase(player_guid); } -void ObjectMgr::LoadQuestRelationsHelper(QuestRelations& map, std::string const& table, bool starter, bool go) +void ObjectMgr::LoadQuestRelationsHelper(QuestRelations& map, QuestRelationsReverse* reverseMap, std::string const& table, bool starter, bool go) { uint32 oldMSTime = getMSTime(); @@ -7362,7 +7362,11 @@ void ObjectMgr::LoadQuestRelationsHelper(QuestRelations& map, std::string const& } if (!poolId || !starter) + { map.insert(QuestRelations::value_type(id, quest)); + if (reverseMap) + reverseMap->insert(QuestRelationsReverse::value_type(quest, id)); + } else if (starter) poolRelationMap->insert(PooledQuestRelation::value_type(quest, id)); @@ -7374,7 +7378,7 @@ void ObjectMgr::LoadQuestRelationsHelper(QuestRelations& map, std::string const& void ObjectMgr::LoadGameobjectQuestStarters() { - LoadQuestRelationsHelper(_goQuestRelations, "gameobject_queststarter", true, true); + LoadQuestRelationsHelper(_goQuestRelations, nullptr, "gameobject_queststarter", true, true); for (QuestRelations::iterator itr = _goQuestRelations.begin(); itr != _goQuestRelations.end(); ++itr) { @@ -7388,7 +7392,7 @@ void ObjectMgr::LoadGameobjectQuestStarters() void ObjectMgr::LoadGameobjectQuestEnders() { - LoadQuestRelationsHelper(_goQuestInvolvedRelations, "gameobject_questender", false, true); + LoadQuestRelationsHelper(_goQuestInvolvedRelations, &_goQuestInvolvedRelationsReverse, "gameobject_questender", false, true); for (QuestRelations::iterator itr = _goQuestInvolvedRelations.begin(); itr != _goQuestInvolvedRelations.end(); ++itr) { @@ -7402,7 +7406,7 @@ void ObjectMgr::LoadGameobjectQuestEnders() void ObjectMgr::LoadCreatureQuestStarters() { - LoadQuestRelationsHelper(_creatureQuestRelations, "creature_queststarter", true, false); + LoadQuestRelationsHelper(_creatureQuestRelations, nullptr, "creature_queststarter", true, false); for (QuestRelations::iterator itr = _creatureQuestRelations.begin(); itr != _creatureQuestRelations.end(); ++itr) { @@ -7416,7 +7420,7 @@ void ObjectMgr::LoadCreatureQuestStarters() void ObjectMgr::LoadCreatureQuestEnders() { - LoadQuestRelationsHelper(_creatureQuestInvolvedRelations, "creature_questender", false, false); + LoadQuestRelationsHelper(_creatureQuestInvolvedRelations, &_creatureQuestInvolvedRelationsReverse, "creature_questender", false, false); for (QuestRelations::iterator itr = _creatureQuestInvolvedRelations.begin(); itr != _creatureQuestInvolvedRelations.end(); ++itr) { diff --git a/src/server/game/Globals/ObjectMgr.h b/src/server/game/Globals/ObjectMgr.h index 56ae4a4c6d1..dc9196dd0df 100644 --- a/src/server/game/Globals/ObjectMgr.h +++ b/src/server/game/Globals/ObjectMgr.h @@ -492,8 +492,10 @@ typedef std::unordered_map<int32, TrinityStringLocale> TrinityStringLocaleContai typedef std::unordered_map<uint32, GossipMenuItemsLocale> GossipMenuItemsLocaleContainer; typedef std::unordered_map<uint32, PointOfInterestLocale> PointOfInterestLocaleContainer; -typedef std::multimap<uint32, uint32> QuestRelations; +typedef std::multimap<uint32, uint32> QuestRelations; // unit/go -> quest +typedef std::multimap<uint32, uint32> QuestRelationsReverse; // quest -> unit/go typedef std::pair<QuestRelations::const_iterator, QuestRelations::const_iterator> QuestRelationBounds; +typedef std::pair<QuestRelationsReverse::const_iterator, QuestRelationsReverse::const_iterator> QuestRelationReverseBounds; struct PetLevelInfo { @@ -930,6 +932,11 @@ class ObjectMgr return _goQuestInvolvedRelations.equal_range(go_entry); } + QuestRelationReverseBounds GetGOQuestInvolvedRelationReverseBounds(uint32 questId) + { + return _goQuestInvolvedRelationsReverse.equal_range(questId); + } + QuestRelations* GetCreatureQuestRelationMap() { return &_creatureQuestRelations; @@ -945,6 +952,11 @@ class ObjectMgr return _creatureQuestInvolvedRelations.equal_range(creature_entry); } + QuestRelationReverseBounds GetCreatureQuestInvolvedRelationReverseBounds(uint32 questId) + { + return _creatureQuestInvolvedRelationsReverse.equal_range(questId); + } + void LoadEventScripts(); void LoadSpellScripts(); void LoadWaypointScripts(); @@ -1347,8 +1359,10 @@ class ObjectMgr QuestRelations _goQuestRelations; QuestRelations _goQuestInvolvedRelations; + QuestRelationsReverse _goQuestInvolvedRelationsReverse; QuestRelations _creatureQuestRelations; QuestRelations _creatureQuestInvolvedRelations; + QuestRelationsReverse _creatureQuestInvolvedRelationsReverse; //character reserved names typedef std::set<std::wstring> ReservedNamesContainer; @@ -1373,7 +1387,7 @@ class ObjectMgr private: void LoadScripts(ScriptsType type); void CheckScripts(ScriptsType type, std::set<int32>& ids); - void LoadQuestRelationsHelper(QuestRelations& map, std::string const& table, bool starter, bool go); + void LoadQuestRelationsHelper(QuestRelations& map, QuestRelationsReverse* reverseMap, std::string const& table, bool starter, bool go); void PlayerCreateInfoAddItemHelper(uint32 race_, uint32 class_, uint32 itemId, int32 count); MailLevelRewardContainer _mailLevelRewardStore; diff --git a/src/server/game/Groups/Group.cpp b/src/server/game/Groups/Group.cpp index 8068e82f676..88a83ab6fde 100644 --- a/src/server/game/Groups/Group.cpp +++ b/src/server/game/Groups/Group.cpp @@ -1420,8 +1420,25 @@ void Group::CountTheRoll(Rolls::iterator rollI) roll->getLoot()->NotifyItemRemoved(roll->itemSlot); roll->getLoot()->unlootedCount--; ItemTemplate const* pProto = sObjectMgr->GetItemTemplate(roll->itemid); - player->AutoStoreLoot(pProto->DisenchantID, LootTemplates_Disenchant, true); player->UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_CAST_SPELL, 13262); // Disenchant + + ItemPosCountVec dest; + InventoryResult msg = player->CanStoreNewItem(NULL_BAG, NULL_SLOT, dest, roll->itemid, item->count); + if (msg == EQUIP_ERR_OK) + player->AutoStoreLoot(pProto->DisenchantID, LootTemplates_Disenchant, true); + else // If the player's inventory is full, send the disenchant result in a mail. + { + Loot loot; + loot.FillLoot(pProto->DisenchantID, LootTemplates_Disenchant, player, true); + + uint32 max_slot = loot.GetMaxSlotInLootFor(player); + for (uint32 i = 0; i < max_slot; ++i) + { + LootItem* lootItem = loot.LootItemInSlot(i, player); + player->SendEquipError(msg, NULL, NULL, lootItem->itemid); + player->SendItemRetrievalMail(lootItem->itemid, lootItem->count); + } + } } } } diff --git a/src/server/game/Miscellaneous/Language.h b/src/server/game/Miscellaneous/Language.h index cb868097ac6..66cae69cb33 100644 --- a/src/server/game/Miscellaneous/Language.h +++ b/src/server/game/Miscellaneous/Language.h @@ -999,48 +999,18 @@ enum TrinityStrings LANG_BG_IC_REFINERY = 1222, LANG_BG_IC_QUARRY = 1223, LANG_BG_IC_HANGAR = 1224, + // 1225-1299 LANG_BG_IC_ALLIANCE = 1300, LANG_BG_IC_HORDE = 1301, - // FREE IDS 1228-9999 - + // 1302-1325 // AV - LANG_BG_AV_ALLY = 1300, - LANG_BG_AV_HORDE = 1301, - LANG_BG_AV_TOWER_TAKEN = 1302, - LANG_BG_AV_TOWER_ASSAULTED = 1303, - LANG_BG_AV_TOWER_DEFENDED = 1304, - LANG_BG_AV_GRAVE_TAKEN = 1305, - LANG_BG_AV_GRAVE_DEFENDED = 1306, - LANG_BG_AV_GRAVE_ASSAULTED = 1307, - - LANG_BG_AV_MINE_TAKEN = 1308, - LANG_BG_AV_MINE_NORTH = 1309, - LANG_BG_AV_MINE_SOUTH = 1310, - - LANG_BG_AV_NODE_GRAVE_STORM_AID = 1311, - LANG_BG_AV_NODE_TOWER_DUN_S = 1312, - LANG_BG_AV_NODE_TOWER_DUN_N = 1313, - LANG_BG_AV_NODE_GRAVE_STORMPIKE = 1314, - LANG_BG_AV_NODE_TOWER_ICEWING = 1315, - LANG_BG_AV_NODE_GRAVE_STONE = 1316, - LANG_BG_AV_NODE_TOWER_STONE = 1317, - LANG_BG_AV_NODE_GRAVE_SNOW = 1318, - LANG_BG_AV_NODE_TOWER_ICE = 1319, - LANG_BG_AV_NODE_GRAVE_ICE = 1320, - LANG_BG_AV_NODE_TOWER_POINT = 1321, - LANG_BG_AV_NODE_GRAVE_FROST = 1322, - LANG_BG_AV_NODE_TOWER_FROST_E = 1323, - LANG_BG_AV_NODE_TOWER_FROST_W = 1324, - LANG_BG_AV_NODE_GRAVE_FROST_HUT = 1325, - LANG_BG_AV_START_ONE_MINUTE = 1326, LANG_BG_AV_START_HALF_MINUTE = 1327, LANG_BG_AV_HAS_BEGUN = 1328, LANG_BG_AV_A_NEAR_LOSE = 1329, LANG_BG_AV_H_NEAR_LOSE = 1330, - LANG_BG_AV_H_CAPTAIN_DEAD = 1331, - LANG_BG_AV_A_CAPTAIN_DEAD = 1332, + // 1331-1332 LANG_BG_AV_START_TWO_MINUTES = 1333, // FREE IDS 1334-1999 diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp index 0f79c4d0780..de6effb8b14 100644 --- a/src/server/game/Spells/Spell.cpp +++ b/src/server/game/Spells/Spell.cpp @@ -6446,7 +6446,12 @@ bool Spell::CheckEffectTarget(Unit const* target, uint32 eff, Position const* lo break; } - if (IsTriggered() || m_spellInfo->AttributesEx2 & SPELL_ATTR2_CAN_TARGET_NOT_IN_LOS || DisableMgr::IsDisabledFor(DISABLE_TYPE_SPELL, m_spellInfo->Id, NULL, SPELL_DISABLE_LOS)) + // check for ignore LOS on the effect itself + if (m_spellInfo->AttributesEx2 & SPELL_ATTR2_CAN_TARGET_NOT_IN_LOS || DisableMgr::IsDisabledFor(DISABLE_TYPE_SPELL, m_spellInfo->Id, NULL, SPELL_DISABLE_LOS)) + return true; + + // if spell is triggered, need to check for LOS disable on the aura triggering it and inherit that behaviour + if (IsTriggered() && m_triggeredByAuraSpell && (m_triggeredByAuraSpell->AttributesEx2 & SPELL_ATTR2_CAN_TARGET_NOT_IN_LOS || DisableMgr::IsDisabledFor(DISABLE_TYPE_SPELL, m_triggeredByAuraSpell->Id, NULL, SPELL_DISABLE_LOS))) return true; /// @todo shit below shouldn't be here, but it's temporary diff --git a/src/server/game/Spells/SpellInfo.cpp b/src/server/game/Spells/SpellInfo.cpp index 99c3d234ef8..5ef6acbcce1 100644 --- a/src/server/game/Spells/SpellInfo.cpp +++ b/src/server/game/Spells/SpellInfo.cpp @@ -853,6 +853,7 @@ SpellInfo::SpellInfo(SpellEntry const* spellEntry) Effects[i] = SpellEffectInfo(spellEntry, this, i); ChainEntry = NULL; + ExplicitTargetMask = 0; } SpellInfo::~SpellInfo() diff --git a/src/server/game/Spells/SpellMgr.cpp b/src/server/game/Spells/SpellMgr.cpp index 8e0c8c8bd01..461e56b8f78 100644 --- a/src/server/game/Spells/SpellMgr.cpp +++ b/src/server/game/Spells/SpellMgr.cpp @@ -85,6 +85,9 @@ DiminishingGroup GetDiminishingReturnsGroupForSpell(SpellInfo const* spellproto, // Black Plague else if (spellproto->Id == 64155) return DIMINISHING_NONE; + // Screams of the Dead (King Ymiron) + else if (spellproto->Id == 51750) + return DIMINISHING_NONE; break; } // Event spells diff --git a/src/server/game/World/World.cpp b/src/server/game/World/World.cpp index 750ed5a380e..5c65055f3c0 100644 --- a/src/server/game/World/World.cpp +++ b/src/server/game/World/World.cpp @@ -2553,7 +2553,7 @@ void World::_UpdateGameTime() } /// Shutdown the server -void World::ShutdownServ(uint32 time, uint32 options, uint8 exitcode) +void World::ShutdownServ(uint32 time, uint32 options, uint8 exitcode, const std::string& reason) { // ignore if server shutdown at next tick if (IsStopped()) @@ -2574,14 +2574,14 @@ void World::ShutdownServ(uint32 time, uint32 options, uint8 exitcode) else { m_ShutdownTimer = time; - ShutdownMsg(true); + ShutdownMsg(true, nullptr, reason); } sScriptMgr->OnShutdownInitiate(ShutdownExitCode(exitcode), ShutdownMask(options)); } /// Display a shutdown message to the user(s) -void World::ShutdownMsg(bool show, Player* player) +void World::ShutdownMsg(bool show, Player* player, const std::string& reason) { // not show messages for idle shutdown mode if (m_ShutdownMask & SHUTDOWN_MASK_IDLE) @@ -2596,6 +2596,8 @@ void World::ShutdownMsg(bool show, Player* player) (m_ShutdownTimer > 12 * HOUR && (m_ShutdownTimer % (12 * HOUR)) == 0)) // > 12 h ; every 12 h { std::string str = secsToTimeString(m_ShutdownTimer); + if (!reason.empty()) + str += " - " + reason; ServerMessageType msgid = (m_ShutdownMask & SHUTDOWN_MASK_RESTART) ? SERVER_MSG_RESTART_TIME : SERVER_MSG_SHUTDOWN_TIME; diff --git a/src/server/game/World/World.h b/src/server/game/World/World.h index d169fa587fe..05bfcc21462 100644 --- a/src/server/game/World/World.h +++ b/src/server/game/World/World.h @@ -638,9 +638,9 @@ class World /// Are we in the middle of a shutdown? bool IsShuttingDown() const { return m_ShutdownTimer > 0; } uint32 GetShutDownTimeLeft() const { return m_ShutdownTimer; } - void ShutdownServ(uint32 time, uint32 options, uint8 exitcode); + void ShutdownServ(uint32 time, uint32 options, uint8 exitcode, const std::string& reason = std::string()); void ShutdownCancel(); - void ShutdownMsg(bool show = false, Player* player = NULL); + void ShutdownMsg(bool show = false, Player* player = NULL, const std::string& reason = std::string()); static uint8 GetExitCode() { return m_ExitCode; } static void StopNow(uint8 exitcode) { m_stopEvent = true; m_ExitCode = exitcode; } static bool IsStopped() { return m_stopEvent; } diff --git a/src/server/scripts/Commands/cs_group.cpp b/src/server/scripts/Commands/cs_group.cpp index 477eb3649b7..470eb27bad2 100644 --- a/src/server/scripts/Commands/cs_group.cpp +++ b/src/server/scripts/Commands/cs_group.cpp @@ -245,7 +245,7 @@ public: return false; } - if (!groupSource->IsFull()) + if (groupSource->IsFull()) { handler->PSendSysMessage(LANG_GROUP_FULL); handler->SetSentErrorMessage(true); diff --git a/src/server/scripts/Commands/cs_guild.cpp b/src/server/scripts/Commands/cs_guild.cpp index 0359cbbe379..7b074087c0f 100644 --- a/src/server/scripts/Commands/cs_guild.cpp +++ b/src/server/scripts/Commands/cs_guild.cpp @@ -247,45 +247,31 @@ public: static bool HandleGuildInfoCommand(ChatHandler* handler, char const* args) { - Player* target; - uint32 guildId; - std::string guildName; - std::string guildMasterName; - Guild* guild; + Guild* guild = nullptr; - if (!*args) + if (args && strlen(args) > 0) { - // Look for the guild of the selected player or ourselves - if (target = handler->getSelectedPlayerOrSelf()) - guild = target->GetGuild(); + if (isNumeric(args)) + { + uint32 guildId = uint32(atoi(args)); + guild = sGuildMgr->GetGuildById(guildId); + } else - // getSelectedPlayerOrSelf will return null if there is no session - // so target becomes nullptr if the command is ran through console - // without specifying args. - return false; - } - else if (guildId = atoi(args)) // Try searching by Id - guild = sGuildMgr->GetGuildById(guildId); - else - { - // Try to extract a guild name - char* tailStr = *args != '"' ? strtok(NULL, "") : (char*)args; - if (!tailStr) - return false; - - char* guildStr = handler->extractQuotedArg((char*)args); - if (!guildStr) - return false; - - guildName = guildStr; - guild = sGuildMgr->GetGuildByName(guildName); + { + std::string guildName = args; + guild = sGuildMgr->GetGuildByName(guildName); + } } + else if (Player* target = handler->getSelectedPlayerOrSelf()) + guild = target->GetGuild(); if (!guild) return false; // Display Guild Information handler->PSendSysMessage(LANG_GUILD_INFO_NAME, guild->GetName().c_str(), guild->GetId()); // Guild Id + Name + + std::string guildMasterName; if (sObjectMgr->GetPlayerNameByGUID(guild->GetLeaderGUID(), guildMasterName)) handler->PSendSysMessage(LANG_GUILD_INFO_GUILD_MASTER, guildMasterName.c_str(), guild->GetLeaderGUID()); // Guild Master diff --git a/src/server/scripts/Commands/cs_server.cpp b/src/server/scripts/Commands/cs_server.cpp index 04cc9ae4ad5..14a68d1fdae 100644 --- a/src/server/scripts/Commands/cs_server.cpp +++ b/src/server/scripts/Commands/cs_server.cpp @@ -201,145 +201,22 @@ public: static bool HandleServerShutDownCommand(ChatHandler* /*handler*/, char const* args) { - if (!*args) - return false; - - char* timeStr = strtok((char*) args, " "); - char* exitCodeStr = strtok(NULL, ""); - - int32 time = atoi(timeStr); - - // Prevent interpret wrong arg value as 0 secs shutdown time - if ((time == 0 && (timeStr[0] != '0' || timeStr[1] != '\0')) || time < 0) - return false; - - if (exitCodeStr) - { - int32 exitCode = atoi(exitCodeStr); - - // Handle atoi() errors - if (exitCode == 0 && (exitCodeStr[0] != '0' || exitCodeStr[1] != '\0')) - return false; - - // Exit code should be in range of 0-125, 126-255 is used - // in many shells for their own return codes and code > 255 - // is not supported in many others - if (exitCode < 0 || exitCode > 125) - return false; - - sWorld->ShutdownServ(time, 0, exitCode); - } - else - sWorld->ShutdownServ(time, 0, SHUTDOWN_EXIT_CODE); - - return true; + return ShutdownServer(args, 0, SHUTDOWN_EXIT_CODE); } static bool HandleServerRestartCommand(ChatHandler* /*handler*/, char const* args) { - if (!*args) - return false; - - char* timeStr = strtok((char*) args, " "); - char* exitCodeStr = strtok(NULL, ""); - - int32 time = atoi(timeStr); - - // Prevent interpret wrong arg value as 0 secs shutdown time - if ((time == 0 && (timeStr[0] != '0' || timeStr[1] != '\0')) || time < 0) - return false; - - if (exitCodeStr) - { - int32 exitCode = atoi(exitCodeStr); - - // Handle atoi() errors - if (exitCode == 0 && (exitCodeStr[0] != '0' || exitCodeStr[1] != '\0')) - return false; - - // Exit code should be in range of 0-125, 126-255 is used - // in many shells for their own return codes and code > 255 - // is not supported in many others - if (exitCode < 0 || exitCode > 125) - return false; - - sWorld->ShutdownServ(time, SHUTDOWN_MASK_RESTART, exitCode); - } - else - sWorld->ShutdownServ(time, SHUTDOWN_MASK_RESTART, RESTART_EXIT_CODE); - - return true; + return ShutdownServer(args, SHUTDOWN_MASK_RESTART, RESTART_EXIT_CODE); } static bool HandleServerIdleRestartCommand(ChatHandler* /*handler*/, char const* args) { - if (!*args) - return false; - - char* timeStr = strtok((char*) args, " "); - char* exitCodeStr = strtok(NULL, ""); - - int32 time = atoi(timeStr); - - // Prevent interpret wrong arg value as 0 secs shutdown time - if ((time == 0 && (timeStr[0] != '0' || timeStr[1] != '\0')) || time < 0) - return false; - - if (exitCodeStr) - { - int32 exitCode = atoi(exitCodeStr); - - // Handle atoi() errors - if (exitCode == 0 && (exitCodeStr[0] != '0' || exitCodeStr[1] != '\0')) - return false; - - // Exit code should be in range of 0-125, 126-255 is used - // in many shells for their own return codes and code > 255 - // is not supported in many others - if (exitCode < 0 || exitCode > 125) - return false; - - sWorld->ShutdownServ(time, SHUTDOWN_MASK_RESTART | SHUTDOWN_MASK_IDLE, exitCode); - } - else - sWorld->ShutdownServ(time, SHUTDOWN_MASK_RESTART | SHUTDOWN_MASK_IDLE, RESTART_EXIT_CODE); - return true; + return ShutdownServer(args, SHUTDOWN_MASK_RESTART | SHUTDOWN_MASK_IDLE, RESTART_EXIT_CODE); } static bool HandleServerIdleShutDownCommand(ChatHandler* /*handler*/, char const* args) { - if (!*args) - return false; - - char* timeStr = strtok((char*) args, " "); - char* exitCodeStr = strtok(NULL, ""); - - int32 time = atoi(timeStr); - - // Prevent interpret wrong arg value as 0 secs shutdown time - if ((time == 0 && (timeStr[0] != '0' || timeStr[1] != '\0')) || time < 0) - return false; - - if (exitCodeStr) - { - int32 exitCode = atoi(exitCodeStr); - - // Handle atoi() errors - if (exitCode == 0 && (exitCodeStr[0] != '0' || exitCodeStr[1] != '\0')) - return false; - - // Exit code should be in range of 0-125, 126-255 is used - // in many shells for their own return codes and code > 255 - // is not supported in many others - if (exitCode < 0 || exitCode > 125) - return false; - - sWorld->ShutdownServ(time, SHUTDOWN_MASK_IDLE, exitCode); - } - else - sWorld->ShutdownServ(time, SHUTDOWN_MASK_IDLE, SHUTDOWN_EXIT_CODE); - - return true; + return ShutdownServer(args, SHUTDOWN_MASK_IDLE, SHUTDOWN_EXIT_CODE); } // Exit the realm @@ -415,6 +292,70 @@ public: return true; } + +private: + static bool ParseExitCode(char const* exitCodeStr, int32& exitCode) + { + exitCode = atoi(exitCodeStr); + + // Handle atoi() errors + if (exitCode == 0 && (exitCodeStr[0] != '0' || exitCodeStr[1] != '\0')) + return false; + + // Exit code should be in range of 0-125, 126-255 is used + // in many shells for their own return codes and code > 255 + // is not supported in many others + if (exitCode < 0 || exitCode > 125) + return false; + + return true; + } + + static bool ShutdownServer(char const* args, uint32 shutdownMask, int32 defaultExitCode) + { + if (!*args) + return false; + + // #delay [#exit_code] [reason] + char* delayStr = strtok((char*)args, " "); + if (!delayStr || !isNumeric(delayStr)) + return false; + + char* exitCodeStr = nullptr; + + if (strlen(args) > 255) + return false; + + char reason[255] = { 0 }; + + while (char* nextToken = strtok(nullptr, " ")) + { + if (isNumeric(nextToken)) + exitCodeStr = nextToken; + else + { + strcat(reason, nextToken); + strcat(reason, " "); + strcat(reason, strtok(nullptr, "\0")); + break; + } + } + + int32 delay = atoi(delayStr); + + // Prevent interpret wrong arg value as 0 secs shutdown time + if ((delay == 0 && (delayStr[0] != '0' || delayStr[1] != '\0')) || delay < 0) + return false; + + int32 exitCode = defaultExitCode; + if (exitCodeStr) + if (!ParseExitCode(exitCodeStr, exitCode)) + return false; + + sWorld->ShutdownServ(delay, shutdownMask, static_cast<uint8>(exitCode), std::string(reason)); + + return true; + } }; void AddSC_server_commandscript() diff --git a/src/server/scripts/EasternKingdoms/AlteracValley/alterac_valley.cpp b/src/server/scripts/EasternKingdoms/AlteracValley/alterac_valley.cpp index 6f8b93bbdba..a9fc95fdb14 100644 --- a/src/server/scripts/EasternKingdoms/AlteracValley/alterac_valley.cpp +++ b/src/server/scripts/EasternKingdoms/AlteracValley/alterac_valley.cpp @@ -84,10 +84,20 @@ class npc_av_marshal_or_warmaster : public CreatureScript struct npc_av_marshal_or_warmasterAI : public ScriptedAI { - npc_av_marshal_or_warmasterAI(Creature* creature) : ScriptedAI(creature) { } + npc_av_marshal_or_warmasterAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } + + void Initialize() + { + _hasAura = false; + } void Reset() override { + Initialize(); + events.Reset(); events.ScheduleEvent(EVENT_CHARGE_TARGET, urand(2 * IN_MILLISECONDS, 12 * IN_MILLISECONDS)); events.ScheduleEvent(EVENT_CLEAVE, urand(1 * IN_MILLISECONDS, 11 * IN_MILLISECONDS)); @@ -95,8 +105,6 @@ class npc_av_marshal_or_warmaster : public CreatureScript events.ScheduleEvent(EVENT_WHIRLWIND, urand(5 * IN_MILLISECONDS, 20 * IN_MILLISECONDS)); events.ScheduleEvent(EVENT_ENRAGE, urand(5 * IN_MILLISECONDS, 20 * IN_MILLISECONDS)); events.ScheduleEvent(EVENT_CHECK_RESET, 5000); - - _hasAura = false; } void JustRespawned() override diff --git a/src/server/scripts/EasternKingdoms/AlteracValley/boss_balinda.cpp b/src/server/scripts/EasternKingdoms/AlteracValley/boss_balinda.cpp index 60a8e943bc7..8bc969e9020 100644 --- a/src/server/scripts/EasternKingdoms/AlteracValley/boss_balinda.cpp +++ b/src/server/scripts/EasternKingdoms/AlteracValley/boss_balinda.cpp @@ -20,27 +20,32 @@ enum Spells { - SPELL_ARCANE_EXPLOSION = 46608, - SPELL_CONE_OF_COLD = 38384, - SPELL_FIREBALL = 46988, - SPELL_FROSTBOLT = 46987 + SPELL_ARCANE_EXPLOSION = 46608, + SPELL_CONE_OF_COLD = 38384, + SPELL_FIREBALL = 46988, + SPELL_FROSTBOLT = 46987 }; enum Yells { - YELL_AGGRO = 0, - YELL_EVADE = 1, - YELL_SALVATION = 2, + YELL_AGGRO = 0, + YELL_EVADE = 1, + YELL_SALVATION = 2, }; enum Creatures { - NPC_WATER_ELEMENTAL = 25040 + NPC_WATER_ELEMENTAL = 25040 +}; + +enum Action +{ + ACTION_BUFF_YELL = -30001 // shared from Battleground }; enum WaterElementalSpells { - SPELL_WATERBOLT = 46983 + SPELL_WATERBOLT = 46983 }; class npc_water_elemental : public CreatureScript @@ -105,7 +110,20 @@ public: struct boss_balindaAI : public ScriptedAI { - boss_balindaAI(Creature* creature) : ScriptedAI(creature), summons(me) { } + boss_balindaAI(Creature* creature) : ScriptedAI(creature), summons(me) + { + Initialize(); + } + + void Initialize() + { + arcaneExplosionTimer = urand(5 * IN_MILLISECONDS, 15 * IN_MILLISECONDS); + coneOfColdTimer = 8 * IN_MILLISECONDS; + fireBoltTimer = 1 * IN_MILLISECONDS; + frostboltTimer = 4 * IN_MILLISECONDS; + resetTimer = 5 * IN_MILLISECONDS; + waterElementalTimer = 0; + } uint32 arcaneExplosionTimer; uint32 coneOfColdTimer; @@ -118,12 +136,7 @@ public: void Reset() override { - arcaneExplosionTimer = urand(5 * IN_MILLISECONDS, 15 * IN_MILLISECONDS); - coneOfColdTimer = 8 * IN_MILLISECONDS; - fireBoltTimer = 1 * IN_MILLISECONDS; - frostboltTimer = 4 * IN_MILLISECONDS; - resetTimer = 5 * IN_MILLISECONDS; - waterElementalTimer = 0; + Initialize(); summons.DespawnAll(); } @@ -151,6 +164,12 @@ public: summons.DespawnAll(); } + void DoAction(int32 actionId) override + { + if (actionId == ACTION_BUFF_YELL) + Talk(YELL_AGGRO); + } + void UpdateAI(uint32 diff) override { if (!UpdateVictim()) diff --git a/src/server/scripts/EasternKingdoms/AlteracValley/boss_drekthar.cpp b/src/server/scripts/EasternKingdoms/AlteracValley/boss_drekthar.cpp index 4ecb57177a6..49c5a61b7d0 100644 --- a/src/server/scripts/EasternKingdoms/AlteracValley/boss_drekthar.cpp +++ b/src/server/scripts/EasternKingdoms/AlteracValley/boss_drekthar.cpp @@ -45,7 +45,20 @@ public: struct boss_drektharAI : public ScriptedAI { - boss_drektharAI(Creature* creature) : ScriptedAI(creature) { } + boss_drektharAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } + + void Initialize() + { + WhirlwindTimer = urand(1 * IN_MILLISECONDS, 20 * IN_MILLISECONDS); + Whirlwind2Timer = urand(1 * IN_MILLISECONDS, 20 * IN_MILLISECONDS); + KnockdownTimer = 12 * IN_MILLISECONDS; + FrenzyTimer = 6 * IN_MILLISECONDS; + ResetTimer = 5 * IN_MILLISECONDS; + YellTimer = urand(20 * IN_MILLISECONDS, 30 * IN_MILLISECONDS); //20 to 30 seconds + } uint32 WhirlwindTimer; uint32 Whirlwind2Timer; @@ -56,12 +69,7 @@ public: void Reset() override { - WhirlwindTimer = urand(1 * IN_MILLISECONDS, 20 * IN_MILLISECONDS); - Whirlwind2Timer = urand(1 * IN_MILLISECONDS, 20 * IN_MILLISECONDS); - KnockdownTimer = 12 * IN_MILLISECONDS; - FrenzyTimer = 6 * IN_MILLISECONDS; - ResetTimer = 5 * IN_MILLISECONDS; - YellTimer = urand(20 * IN_MILLISECONDS, 30 * IN_MILLISECONDS); //20 to 30 seconds + Initialize(); } void EnterCombat(Unit* /*who*/) override diff --git a/src/server/scripts/EasternKingdoms/AlteracValley/boss_galvangar.cpp b/src/server/scripts/EasternKingdoms/AlteracValley/boss_galvangar.cpp index c00b7db2ce7..e422975bd1a 100644 --- a/src/server/scripts/EasternKingdoms/AlteracValley/boss_galvangar.cpp +++ b/src/server/scripts/EasternKingdoms/AlteracValley/boss_galvangar.cpp @@ -30,7 +30,13 @@ enum Spells enum Yells { YELL_AGGRO = 0, - YELL_EVADE = 1 + YELL_EVADE = 1, + YELL_BUFF = 2 +}; + +enum Action +{ + ACTION_BUFF_YELL = -30001 // shared from Battleground }; class boss_galvangar : public CreatureScript @@ -40,7 +46,20 @@ public: struct boss_galvangarAI : public ScriptedAI { - boss_galvangarAI(Creature* creature) : ScriptedAI(creature) { } + boss_galvangarAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } + + void Initialize() + { + CleaveTimer = urand(1 * IN_MILLISECONDS, 9 * IN_MILLISECONDS); + FrighteningShoutTimer = urand(2 * IN_MILLISECONDS, 19 * IN_MILLISECONDS); + Whirlwind1Timer = urand(1 * IN_MILLISECONDS, 13 * IN_MILLISECONDS); + Whirlwind2Timer = urand(5 * IN_MILLISECONDS, 20 * IN_MILLISECONDS); + MortalStrikeTimer = urand(5 * IN_MILLISECONDS, 20 * IN_MILLISECONDS); + ResetTimer = 5 * IN_MILLISECONDS; + } uint32 CleaveTimer; uint32 FrighteningShoutTimer; @@ -51,12 +70,7 @@ public: void Reset() override { - CleaveTimer = urand(1 * IN_MILLISECONDS, 9 * IN_MILLISECONDS); - FrighteningShoutTimer = urand(2 * IN_MILLISECONDS, 19 * IN_MILLISECONDS); - Whirlwind1Timer = urand(1 * IN_MILLISECONDS, 13 * IN_MILLISECONDS); - Whirlwind2Timer = urand(5 * IN_MILLISECONDS, 20 * IN_MILLISECONDS); - MortalStrikeTimer = urand(5 * IN_MILLISECONDS, 20 * IN_MILLISECONDS); - ResetTimer = 5 * IN_MILLISECONDS; + Initialize(); } void EnterCombat(Unit* /*who*/) override @@ -69,6 +83,12 @@ public: Reset(); } + void DoAction(int32 actionId) override + { + if (actionId == ACTION_BUFF_YELL) + Talk(YELL_BUFF); + } + void UpdateAI(uint32 diff) override { if (!UpdateVictim()) diff --git a/src/server/scripts/EasternKingdoms/AlteracValley/boss_vanndar.cpp b/src/server/scripts/EasternKingdoms/AlteracValley/boss_vanndar.cpp index 076607a5672..1eabfb67f57 100644 --- a/src/server/scripts/EasternKingdoms/AlteracValley/boss_vanndar.cpp +++ b/src/server/scripts/EasternKingdoms/AlteracValley/boss_vanndar.cpp @@ -42,7 +42,19 @@ public: struct boss_vanndarAI : public ScriptedAI { - boss_vanndarAI(Creature* creature) : ScriptedAI(creature) { } + boss_vanndarAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } + + void Initialize() + { + AvatarTimer = 3 * IN_MILLISECONDS; + ThunderclapTimer = 4 * IN_MILLISECONDS; + StormboltTimer = 6 * IN_MILLISECONDS; + ResetTimer = 5 * IN_MILLISECONDS; + YellTimer = urand(20 * IN_MILLISECONDS, 30 * IN_MILLISECONDS); + } uint32 AvatarTimer; uint32 ThunderclapTimer; @@ -52,11 +64,7 @@ public: void Reset() override { - AvatarTimer = 3 * IN_MILLISECONDS; - ThunderclapTimer = 4 * IN_MILLISECONDS; - StormboltTimer = 6 * IN_MILLISECONDS; - ResetTimer = 5 * IN_MILLISECONDS; - YellTimer = urand(20 * IN_MILLISECONDS, 30 * IN_MILLISECONDS); + Initialize(); } void EnterCombat(Unit* /*who*/) override diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/blackrock_depths.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/blackrock_depths.cpp index 907aaed3a0d..51ca327738b 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/blackrock_depths.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/blackrock_depths.cpp @@ -124,10 +124,27 @@ public: { npc_grimstoneAI(Creature* creature) : npc_escortAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); MobSpawnId = rand32() % 6; } + void Initialize() + { + EventPhase = 0; + Event_Timer = 1000; + + MobCount = 0; + MobDeath_Timer = 0; + + for (uint8 i = 0; i < MAX_NPC_AMOUNT; ++i) + RingMobGUID[i] = 0; + + RingBossGUID = 0; + + CanWalk = false; + } + InstanceScript* instance; uint8 EventPhase; @@ -144,20 +161,9 @@ public: void Reset() override { - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); - - EventPhase = 0; - Event_Timer = 1000; - - MobCount = 0; - MobDeath_Timer = 0; + Initialize(); - for (uint8 i = 0; i < MAX_NPC_AMOUNT; ++i) - RingMobGUID[i] = 0; - - RingBossGUID = 0; - - CanWalk = false; + me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); } /// @todo move them to center @@ -353,7 +359,17 @@ public: struct npc_phalanxAI : public ScriptedAI { - npc_phalanxAI(Creature* creature) : ScriptedAI(creature) { } + npc_phalanxAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } + + void Initialize() + { + ThunderClap_Timer = 12000; + FireballVolley_Timer = 0; + MightyBlow_Timer = 15000; + } uint32 ThunderClap_Timer; uint32 FireballVolley_Timer; @@ -361,9 +377,7 @@ public: void Reset() override { - ThunderClap_Timer = 12000; - FireballVolley_Timer = 0; - MightyBlow_Timer = 15000; + Initialize(); } void UpdateAI(uint32 diff) override @@ -1238,9 +1252,16 @@ public: { npc_rocknotAI(Creature* creature) : npc_escortAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); } + void Initialize() + { + BreakKeg_Timer = 0; + BreakDoor_Timer = 0; + } + InstanceScript* instance; uint32 BreakKeg_Timer; @@ -1251,8 +1272,7 @@ public: if (HasEscortState(STATE_ESCORT_ESCORTING)) return; - BreakKeg_Timer = 0; - BreakDoor_Timer = 0; + Initialize(); } void DoGo(uint32 id, uint32 state) diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_tomb_of_seven.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_tomb_of_seven.cpp index 83464c12230..77a8c68d28e 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_tomb_of_seven.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_tomb_of_seven.cpp @@ -157,12 +157,18 @@ class boss_doomrel : public CreatureScript { boss_doomrelAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); _instance = creature->GetInstanceScript(); } - void Reset() override + void Initialize() { _voidwalkers = false; + } + + void Reset() override + { + Initialize(); me->setFaction(FACTION_FRIEND); diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_gyth.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_gyth.cpp index ed62e26075c..ea92aa91b69 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_gyth.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_gyth.cpp @@ -53,13 +53,21 @@ public: struct boss_gythAI : public BossAI { - boss_gythAI(Creature* creature) : BossAI(creature, DATA_GYTH) { } + boss_gythAI(Creature* creature) : BossAI(creature, DATA_GYTH) + { + Initialize(); + } + + void Initialize() + { + SummonedRend = false; + } bool SummonedRend; void Reset() override { - SummonedRend = false; + Initialize(); if (instance->GetBossState(DATA_GYTH) == IN_PROGRESS) { instance->SetBossState(DATA_GYTH, DONE); diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_halycon.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_halycon.cpp index d5f7a4ce34b..b85cf4611ac 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_halycon.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_halycon.cpp @@ -45,12 +45,20 @@ public: struct boss_halyconAI : public BossAI { - boss_halyconAI(Creature* creature) : BossAI(creature, DATA_HALYCON) { } + boss_halyconAI(Creature* creature) : BossAI(creature, DATA_HALYCON) + { + Initialize(); + } + + void Initialize() + { + Summoned = false; + } void Reset() override { _Reset(); - Summoned = false; + Initialize(); } void EnterCombat(Unit* /*who*/) override diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_lord_valthalak.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_lord_valthalak.cpp index 23593442e86..bc1bdca1f61 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_lord_valthalak.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_lord_valthalak.cpp @@ -46,15 +46,23 @@ public: struct boss_lord_valthalakAI : public BossAI { - boss_lord_valthalakAI(Creature* creature) : BossAI(creature, DATA_LORD_VALTHALAK) { } + boss_lord_valthalakAI(Creature* creature) : BossAI(creature, DATA_LORD_VALTHALAK) + { + Initialize(); + } - void Reset() override + void Initialize() { - _Reset(); frenzy40 = false; frenzy15 = false; } + void Reset() override + { + _Reset(); + Initialize(); + } + void EnterCombat(Unit* /*who*/) override { _EnterCombat(); diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_overlord_wyrmthalak.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_overlord_wyrmthalak.cpp index cc6911b5da7..4b4633d54ca 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_overlord_wyrmthalak.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_overlord_wyrmthalak.cpp @@ -57,14 +57,22 @@ public: struct boss_overlordwyrmthalakAI : public BossAI { - boss_overlordwyrmthalakAI(Creature* creature) : BossAI(creature, DATA_OVERLORD_WYRMTHALAK) { } + boss_overlordwyrmthalakAI(Creature* creature) : BossAI(creature, DATA_OVERLORD_WYRMTHALAK) + { + Initialize(); + } + + void Initialize() + { + Summoned = false; + } bool Summoned; void Reset() override { _Reset(); - Summoned = false; + Initialize(); } void EnterCombat(Unit* /*who*/) override diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_chromaggus.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_chromaggus.cpp index efe0a0e2a78..1a97f668558 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_chromaggus.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_chromaggus.cpp @@ -73,6 +73,8 @@ public: { boss_chromaggusAI(Creature* creature) : BossAI(creature, BOSS_CHROMAGGUS) { + Initialize(); + // Select the 2 breaths that we are going to use until despawned // 5 possiblities for the first breath, 4 for the second, 20 total possiblites // This way we don't end up casting 2 of the same breath @@ -173,12 +175,17 @@ public: EnterEvadeMode(); } + void Initialize() + { + CurrentVurln_Spell = 0; // We use this to store our last vulnerabilty spell so we can remove it later + Enraged = false; + } + void Reset() override { _Reset(); - CurrentVurln_Spell = 0; // We use this to store our last vulnerabilty spell so we can remove it later - Enraged = false; + Initialize(); } void EnterCombat(Unit* /*who*/) override diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_nefarian.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_nefarian.cpp index 262befdd3ec..d5a08d157d0 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_nefarian.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_nefarian.cpp @@ -166,11 +166,19 @@ public: struct boss_victor_nefariusAI : public BossAI { - boss_victor_nefariusAI(Creature* creature) : BossAI(creature, BOSS_NEFARIAN) { } + boss_victor_nefariusAI(Creature* creature) : BossAI(creature, BOSS_NEFARIAN) + { + Initialize(); + } - void Reset() override + void Initialize() { SpawnedAdds = 0; + } + + void Reset() override + { + Initialize(); if (me->GetMapId() == 469) { @@ -386,15 +394,23 @@ public: struct boss_nefarianAI : public BossAI { - boss_nefarianAI(Creature* creature) : BossAI(creature, BOSS_NEFARIAN) { } + boss_nefarianAI(Creature* creature) : BossAI(creature, BOSS_NEFARIAN) + { + Initialize(); + } - void Reset() override + void Initialize() { Phase3 = false; canDespawn = false; DespawnTimer = 30000; } + void Reset() override + { + Initialize(); + } + void JustReachedHome() override { canDespawn = true; diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_razorgore.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_razorgore.cpp index 8d4a84197b1..b83cc4694ab 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_razorgore.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_razorgore.cpp @@ -68,13 +68,21 @@ public: struct boss_razorgoreAI : public BossAI { - boss_razorgoreAI(Creature* creature) : BossAI(creature, BOSS_RAZORGORE) { } + boss_razorgoreAI(Creature* creature) : BossAI(creature, BOSS_RAZORGORE) + { + Initialize(); + } + + void Initialize() + { + secondPhase = false; + } void Reset() override { _Reset(); - secondPhase = false; + Initialize(); instance->SetData(DATA_EGG_EVENT, NOT_STARTED); } diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_vaelastrasz.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_vaelastrasz.cpp index e3085854f4a..1282cdcd313 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_vaelastrasz.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_vaelastrasz.cpp @@ -70,19 +70,24 @@ public: { boss_vaelAI(Creature* creature) : BossAI(creature, BOSS_VAELASTRAZ) { + Initialize(); creature->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); creature->setFaction(35); creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); } + void Initialize() + { + PlayerGUID = 0; + HasYelled = false; + } + void Reset() override { _Reset(); me->SetStandState(UNIT_STAND_STATE_DEAD); - PlayerGUID = 0; - - HasYelled = false; + Initialize(); } void EnterCombat(Unit* /*who*/) override diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_garr.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_garr.cpp index 2a1309dc097..a268890c25d 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_garr.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_garr.cpp @@ -108,13 +108,21 @@ class npc_firesworn : public CreatureScript struct npc_fireswornAI : public ScriptedAI { - npc_fireswornAI(Creature* creature) : ScriptedAI(creature) { } + npc_fireswornAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } + + void Initialize() + { + immolateTimer = 4000; //These times are probably wrong + } uint32 immolateTimer; void Reset() override { - immolateTimer = 4000; //These times are probably wrong + Initialize(); } void DamageTaken(Unit* /*attacker*/, uint32& damage) override diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_golemagg.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_golemagg.cpp index f9757997731..c8b33e48852 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_golemagg.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_golemagg.cpp @@ -131,12 +131,18 @@ class npc_core_rager : public CreatureScript { npc_core_ragerAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); } + void Initialize() + { + mangleTimer = 7 * IN_MILLISECONDS; // These times are probably wrong + } + void Reset() override { - mangleTimer = 7*IN_MILLISECONDS; // These times are probably wrong + Initialize(); } void DamageTaken(Unit* /*attacker*/, uint32& /*damage*/) override diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_ragnaros.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_ragnaros.cpp index 6eafb41a8fa..4a0e22b1ba8 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_ragnaros.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_ragnaros.cpp @@ -82,18 +82,24 @@ class boss_ragnaros : public CreatureScript { boss_ragnarosAI(Creature* creature) : BossAI(creature, BOSS_RAGNAROS) { + Initialize(); _introState = 0; me->SetReactState(REACT_PASSIVE); me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); } - void Reset() override + void Initialize() { - BossAI::Reset(); _emergeTimer = 90000; _hasYelledMagmaBurst = false; _hasSubmergedOnce = false; _isBanished = false; + } + + void Reset() override + { + BossAI::Reset(); + Initialize(); me->SetUInt32Value(UNIT_NPC_EMOTESTATE, 0); } diff --git a/src/server/scripts/EasternKingdoms/Deadmines/boss_mr_smite.cpp b/src/server/scripts/EasternKingdoms/Deadmines/boss_mr_smite.cpp index ffb3c02d101..b0222413513 100644 --- a/src/server/scripts/EasternKingdoms/Deadmines/boss_mr_smite.cpp +++ b/src/server/scripts/EasternKingdoms/Deadmines/boss_mr_smite.cpp @@ -52,9 +52,22 @@ public: { boss_mr_smiteAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); } + void Initialize() + { + uiTrashTimer = urand(5000, 9000); + uiSlamTimer = 9000; + uiNimbleReflexesTimer = urand(15500, 31600); + + uiHealth = 0; + + uiPhase = 0; + uiTimer = 0; + } + InstanceScript* instance; uint32 uiTrashTimer; @@ -68,14 +81,7 @@ public: void Reset() override { - uiTrashTimer = urand(5000, 9000); - uiSlamTimer = 9000; - uiNimbleReflexesTimer = urand(15500, 31600); - - uiHealth = 0; - - uiPhase = 0; - uiTimer = 0; + Initialize(); SetEquipmentSlots(false, EQUIP_SWORD, EQUIP_UNEQUIP, EQUIP_NO_CHANGE); } diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_curator.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_curator.cpp index 9fe21313f71..f469bf6deb1 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/boss_curator.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_curator.cpp @@ -60,7 +60,19 @@ public: struct boss_curatorAI : public ScriptedAI { - boss_curatorAI(Creature* creature) : ScriptedAI(creature) { } + boss_curatorAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } + + void Initialize() + { + AddTimer = 10000; + HatefulBoltTimer = 15000; //This time may be wrong + BerserkTimer = 720000; //12 minutes + Enraged = false; + Evocating = false; + } uint32 AddTimer; uint32 HatefulBoltTimer; @@ -71,11 +83,7 @@ public: void Reset() override { - AddTimer = 10000; - HatefulBoltTimer = 15000; //This time may be wrong - BerserkTimer = 720000; //12 minutes - Enraged = false; - Evocating = false; + Initialize(); me->ApplySpellImmune(0, IMMUNITY_DAMAGE, SPELL_SCHOOL_MASK_ARCANE, true); } diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_midnight.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_midnight.cpp index 5d1e5451ab1..bbddf0aa5f5 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/boss_midnight.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_midnight.cpp @@ -62,13 +62,20 @@ public: { boss_attumenAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); + Phase = 1; CleaveTimer = urand(10000, 15000); CurseTimer = 30000; RandomYellTimer = urand(30000, 60000); //Occasionally yell ChargeTimer = 20000; + } + + void Initialize() + { ResetTimer = 0; + Midnight = 0; } uint64 Midnight; @@ -81,8 +88,7 @@ public: void Reset() override { - ResetTimer = 0; - Midnight = 0; + Initialize(); } void EnterEvadeMode() override @@ -127,7 +133,17 @@ public: struct boss_midnightAI : public ScriptedAI { - boss_midnightAI(Creature* creature) : ScriptedAI(creature) { } + boss_midnightAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } + + void Initialize() + { + Phase = 1; + Attumen = 0; + Mount_Timer = 0; + } uint64 Attumen; uint8 Phase; @@ -135,9 +151,7 @@ public: void Reset() override { - Phase = 1; - Attumen = 0; - Mount_Timer = 0; + Initialize(); me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); me->SetVisible(true); diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_moroes.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_moroes.cpp index 6ff1faf35b6..5b4f25aea44 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/boss_moroes.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_moroes.cpp @@ -105,12 +105,25 @@ public: { boss_moroesAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); memset(AddId, 0, sizeof(AddId)); memset(AddGUID, 0, sizeof(AddGUID)); instance = creature->GetInstanceScript(); } + void Initialize() + { + Vanish_Timer = 30000; + Blind_Timer = 35000; + Gouge_Timer = 23000; + Wait_Timer = 0; + CheckAdds_Timer = 5000; + + Enrage = false; + InVanish = false; + } + InstanceScript* instance; uint64 AddGUID[4]; @@ -127,14 +140,7 @@ public: void Reset() override { - Vanish_Timer = 30000; - Blind_Timer = 35000; - Gouge_Timer = 23000; - Wait_Timer = 0; - CheckAdds_Timer = 5000; - - Enrage = false; - InVanish = false; + Initialize(); if (me->IsAlive()) SpawnAdds(); @@ -391,7 +397,17 @@ public: struct boss_baroness_dorothea_millstipeAI : public boss_moroes_guestAI { //Shadow Priest - boss_baroness_dorothea_millstipeAI(Creature* creature) : boss_moroes_guestAI(creature) { } + boss_baroness_dorothea_millstipeAI(Creature* creature) : boss_moroes_guestAI(creature) + { + Initialize(); + } + + void Initialize() + { + ManaBurn_Timer = 7000; + MindFlay_Timer = 1000; + ShadowWordPain_Timer = 6000; + } uint32 ManaBurn_Timer; uint32 MindFlay_Timer; @@ -399,9 +415,7 @@ public: void Reset() override { - ManaBurn_Timer = 7000; - MindFlay_Timer = 1000; - ShadowWordPain_Timer = 6000; + Initialize(); DoCast(me, SPELL_SHADOWFORM, true); @@ -454,7 +468,17 @@ public: struct boss_baron_rafe_dreugerAI : public boss_moroes_guestAI { //Retr Pally - boss_baron_rafe_dreugerAI(Creature* creature) : boss_moroes_guestAI(creature){ } + boss_baron_rafe_dreugerAI(Creature* creature) : boss_moroes_guestAI(creature) + { + Initialize(); + } + + void Initialize() + { + HammerOfJustice_Timer = 1000; + SealOfCommand_Timer = 7000; + JudgementOfCommand_Timer = SealOfCommand_Timer + 29000; + } uint32 HammerOfJustice_Timer; uint32 SealOfCommand_Timer; @@ -462,9 +486,7 @@ public: void Reset() override { - HammerOfJustice_Timer = 1000; - SealOfCommand_Timer = 7000; - JudgementOfCommand_Timer = SealOfCommand_Timer + 29000; + Initialize(); boss_moroes_guestAI::Reset(); } @@ -511,7 +533,18 @@ public: struct boss_lady_catriona_von_indiAI : public boss_moroes_guestAI { //Holy Priest - boss_lady_catriona_von_indiAI(Creature* creature) : boss_moroes_guestAI(creature) { } + boss_lady_catriona_von_indiAI(Creature* creature) : boss_moroes_guestAI(creature) + { + Initialize(); + } + + void Initialize() + { + DispelMagic_Timer = 11000; + GreaterHeal_Timer = 1500; + HolyFire_Timer = 5000; + PowerWordShield_Timer = 1000; + } uint32 DispelMagic_Timer; uint32 GreaterHeal_Timer; @@ -520,10 +553,7 @@ public: void Reset() override { - DispelMagic_Timer = 11000; - GreaterHeal_Timer = 1500; - HolyFire_Timer = 5000; - PowerWordShield_Timer = 1000; + Initialize(); AcquireGUID(); @@ -581,7 +611,18 @@ public: struct boss_lady_keira_berrybuckAI : public boss_moroes_guestAI { //Holy Pally - boss_lady_keira_berrybuckAI(Creature* creature) : boss_moroes_guestAI(creature) { } + boss_lady_keira_berrybuckAI(Creature* creature) : boss_moroes_guestAI(creature) + { + Initialize(); + } + + void Initialize() + { + Cleanse_Timer = 13000; + GreaterBless_Timer = 1000; + HolyLight_Timer = 7000; + DivineShield_Timer = 31000; + } uint32 Cleanse_Timer; uint32 GreaterBless_Timer; @@ -590,10 +631,7 @@ public: void Reset() override { - Cleanse_Timer = 13000; - GreaterBless_Timer = 1000; - HolyLight_Timer = 7000; - DivineShield_Timer = 31000; + Initialize(); AcquireGUID(); @@ -655,7 +693,17 @@ public: struct boss_lord_robin_darisAI : public boss_moroes_guestAI { //Arms Warr - boss_lord_robin_darisAI(Creature* creature) : boss_moroes_guestAI(creature) { } + boss_lord_robin_darisAI(Creature* creature) : boss_moroes_guestAI(creature) + { + Initialize(); + } + + void Initialize() + { + Hamstring_Timer = 7000; + MortalStrike_Timer = 10000; + WhirlWind_Timer = 21000; + } uint32 Hamstring_Timer; uint32 MortalStrike_Timer; @@ -663,9 +711,7 @@ public: void Reset() override { - Hamstring_Timer = 7000; - MortalStrike_Timer = 10000; - WhirlWind_Timer = 21000; + Initialize(); boss_moroes_guestAI::Reset(); } @@ -711,7 +757,18 @@ public: struct boss_lord_crispin_ferenceAI : public boss_moroes_guestAI { //Arms Warr - boss_lord_crispin_ferenceAI(Creature* creature) : boss_moroes_guestAI(creature) { } + boss_lord_crispin_ferenceAI(Creature* creature) : boss_moroes_guestAI(creature) + { + Initialize(); + } + + void Initialize() + { + Disarm_Timer = 6000; + HeroicStrike_Timer = 10000; + ShieldBash_Timer = 8000; + ShieldWall_Timer = 4000; + } uint32 Disarm_Timer; uint32 HeroicStrike_Timer; @@ -720,10 +777,7 @@ public: void Reset() override { - Disarm_Timer = 6000; - HeroicStrike_Timer = 10000; - ShieldBash_Timer = 8000; - ShieldWall_Timer = 4000; + Initialize(); boss_moroes_guestAI::Reset(); } diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_netherspite.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_netherspite.cpp index ac24f868670..a928413fea0 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/boss_netherspite.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_netherspite.cpp @@ -78,6 +78,7 @@ public: { boss_netherspiteAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); for (int i=0; i<3; ++i) @@ -86,6 +87,19 @@ public: BeamTarget[i] = 0; BeamerGUID[i] = 0; } + + PortalPhase = false; + PhaseTimer = 0; + EmpowermentTimer = 0; + PortalTimer = 0; + } + + void Initialize() + { + Berserk = false; + NetherInfusionTimer = 540000; + VoidZoneTimer = 15000; + NetherbreathTimer = 3000; } InstanceScript* instance; @@ -129,10 +143,7 @@ public: void Reset() override { - Berserk = false; - NetherInfusionTimer = 540000; - VoidZoneTimer = 15000; - NetherbreathTimer = 3000; + Initialize(); HandleDoors(true); DestroyPortals(); diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_nightbane.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_nightbane.cpp index af9f8b72abf..9084a6b0371 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/boss_nightbane.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_nightbane.cpp @@ -78,10 +78,32 @@ public: { boss_nightbaneAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); Intro = true; } + void Initialize() + { + BellowingRoarTimer = 30000; + CharredEarthTimer = 15000; + DistractingAshTimer = 20000; + SmolderingBreathTimer = 10000; + TailSweepTimer = 12000; + RainofBonesTimer = 10000; + SmokingBlastTimer = 20000; + FireballBarrageTimer = 13000; + SearingCindersTimer = 14000; + WaitTimer = 1000; + + Phase = 1; + FlyCount = 0; + MovePhase = 0; + + Flying = false; + Movement = false; + } + InstanceScript* instance; uint32 Phase; @@ -111,20 +133,7 @@ public: void Reset() override { - BellowingRoarTimer = 30000; - CharredEarthTimer = 15000; - DistractingAshTimer = 20000; - SmolderingBreathTimer = 10000; - TailSweepTimer = 12000; - RainofBonesTimer = 10000; - SmokingBlastTimer = 20000; - FireballBarrageTimer = 13000; - SearingCindersTimer = 14000; - WaitTimer = 1000; - - Phase =1; - FlyCount = 0; - MovePhase = 0; + Initialize(); me->SetSpeed(MOVE_RUN, 2.0f); me->SetDisableGravity(true); @@ -138,9 +147,6 @@ public: HandleTerraceDoors(true); - Flying = false; - Movement = false; - if (!Intro) { me->SetHomePosition(IntroWay[7][0], IntroWay[7][1], IntroWay[7][2], 0); diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_prince_malchezaar.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_prince_malchezaar.cpp index 518c4eacbd9..c09b349f143 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/boss_prince_malchezaar.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_prince_malchezaar.cpp @@ -186,10 +186,33 @@ public: { boss_malchezaarAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); + instance = creature->GetInstanceScript(); memset(axes, 0, sizeof(axes)); } + void Initialize() + { + EnfeebleTimer = 30000; + EnfeebleResetTimer = 38000; + ShadowNovaTimer = 35500; + SWPainTimer = 20000; + AmplifyDamageTimer = 5000; + Cleave_Timer = 8000; + InfernalTimer = 40000; + InfernalCleanupTimer = 47000; + AxesTargetSwitchTimer = urand(7500, 20000); + SunderArmorTimer = urand(5000, 10000); + phase = 1; + + for (uint8 i = 0; i < 5; ++i) + { + enfeeble_targets[i] = 0; + enfeeble_health[i] = 0; + } + } + InstanceScript* instance; uint32 EnfeebleTimer; uint32 EnfeebleResetTimer; @@ -218,27 +241,11 @@ public: InfernalCleanup(); positions.clear(); - for (uint8 i = 0; i < 5; ++i) - { - enfeeble_targets[i] = 0; - enfeeble_health[i] = 0; - } + Initialize(); for (uint8 i = 0; i < TOTAL_INFERNAL_POINTS; ++i) positions.push_back(&InfernalPoints[i]); - EnfeebleTimer = 30000; - EnfeebleResetTimer = 38000; - ShadowNovaTimer = 35500; - SWPainTimer = 20000; - AmplifyDamageTimer = 5000; - Cleave_Timer = 8000; - InfernalTimer = 40000; - InfernalCleanupTimer = 47000; - AxesTargetSwitchTimer = urand(7500, 20000); - SunderArmorTimer = urand(5000, 10000); - phase = 1; - instance->HandleGameObject(instance->GetData64(DATA_GO_NETHER_DOOR), true); } diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_shade_of_aran.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_shade_of_aran.cpp index 6a89adca967..c66f2b335c4 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/boss_shade_of_aran.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_shade_of_aran.cpp @@ -93,9 +93,35 @@ public: { boss_aranAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); } + void Initialize() + { + SecondarySpellTimer = 5000; + NormalCastTimer = 0; + SuperCastTimer = 35000; + BerserkTimer = 720000; + CloseDoorTimer = 15000; + + LastSuperSpell = rand32() % 3; + + FlameWreathTimer = 0; + FlameWreathCheckTime = 0; + + CurrentNormalSpell = 0; + ArcaneCooldown = 0; + FireCooldown = 0; + FrostCooldown = 0; + + DrinkInterruptTimer = 10000; + + ElementalsSpawned = false; + Drinking = false; + DrinkInturrupted = false; + } + InstanceScript* instance; uint32 SecondarySpellTimer; @@ -125,27 +151,7 @@ public: void Reset() override { - SecondarySpellTimer = 5000; - NormalCastTimer = 0; - SuperCastTimer = 35000; - BerserkTimer = 720000; - CloseDoorTimer = 15000; - - LastSuperSpell = rand32() % 3; - - FlameWreathTimer = 0; - FlameWreathCheckTime = 0; - - CurrentNormalSpell = 0; - ArcaneCooldown = 0; - FireCooldown = 0; - FrostCooldown = 0; - - DrinkInterruptTimer = 10000; - - ElementalsSpawned = false; - Drinking = false; - DrinkInturrupted = false; + Initialize(); // Not in progress instance->SetData(TYPE_ARAN, NOT_STARTED); @@ -362,6 +368,10 @@ public: Available[0] = SUPER_FLAME; Available[1] = SUPER_AE; break; + default: + Available[0] = 0; + Available[1] = 0; + break; } LastSuperSpell = Available[urand(0, 1)]; @@ -508,13 +518,21 @@ public: struct water_elementalAI : public ScriptedAI { - water_elementalAI(Creature* creature) : ScriptedAI(creature) { } + water_elementalAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } + + void Initialize() + { + CastTimer = 2000 + (rand32() % 3000); + } uint32 CastTimer; void Reset() override { - CastTimer = 2000 + (rand32() % 3000); + Initialize(); } void EnterCombat(Unit* /*who*/) override { } diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_terestian_illhoof.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_terestian_illhoof.cpp index 9b66beb5986..ed40c18f70e 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/boss_terestian_illhoof.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_terestian_illhoof.cpp @@ -79,16 +79,22 @@ public: { npc_kilrekAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); } + void Initialize() + { + AmplifyTimer = 2000; + } + InstanceScript* instance; uint32 AmplifyTimer; void Reset() override { - AmplifyTimer = 2000; + Initialize(); } void EnterCombat(Unit* /*who*/) override { } @@ -131,13 +137,21 @@ public: struct npc_demon_chainAI : public ScriptedAI { - npc_demon_chainAI(Creature* creature) : ScriptedAI(creature) { } + npc_demon_chainAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } + + void Initialize() + { + SacrificeGUID = 0; + } uint64 SacrificeGUID; void Reset() override { - SacrificeGUID = 0; + Initialize(); } void EnterCombat(Unit* /*who*/) override { } @@ -203,13 +217,21 @@ public: struct npc_fiendish_impAI : public ScriptedAI { - npc_fiendish_impAI(Creature* creature) : ScriptedAI(creature) { } + npc_fiendish_impAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } + + void Initialize() + { + FireboltTimer = 2000; + } uint32 FireboltTimer; void Reset() override { - FireboltTimer = 2000; + Initialize(); me->ApplySpellImmune(0, IMMUNITY_SCHOOL, SPELL_SCHOOL_MASK_FIRE, true); } @@ -247,11 +269,24 @@ public: { boss_terestianAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); for (uint8 i = 0; i < 2; ++i) PortalGUID[i] = 0; instance = creature->GetInstanceScript(); } + void Initialize() + { + PortalsCount = 0; + SacrificeTimer = 30000; + ShadowboltTimer = 5000; + SummonTimer = 10000; + BerserkTimer = 600000; + + SummonedPortals = false; + Berserk = false; + } + InstanceScript* instance; uint64 PortalGUID[2]; @@ -281,14 +316,7 @@ public: } } - PortalsCount = 0; - SacrificeTimer = 30000; - ShadowboltTimer = 5000; - SummonTimer = 10000; - BerserkTimer = 600000; - - SummonedPortals = false; - Berserk = false; + Initialize(); instance->SetData(TYPE_TERESTIAN, NOT_STARTED); diff --git a/src/server/scripts/EasternKingdoms/Karazhan/bosses_opera.cpp b/src/server/scripts/EasternKingdoms/Karazhan/bosses_opera.cpp index 19ec8da7fc9..ce8223c90cf 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/bosses_opera.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/bosses_opera.cpp @@ -125,9 +125,22 @@ public: { boss_dorotheeAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); } + void Initialize() + { + AggroTimer = 500; + + WaterBoltTimer = 5000; + FearTimer = 15000; + SummonTitoTimer = 47500; + + SummonedTito = false; + TitoDied = false; + } + InstanceScript* instance; uint32 AggroTimer; @@ -141,14 +154,7 @@ public: void Reset() override { - AggroTimer = 500; - - WaterBoltTimer = 5000; - FearTimer = 15000; - SummonTitoTimer = 47500; - - SummonedTito = false; - TitoDied = false; + Initialize(); } void EnterCombat(Unit* /*who*/) override @@ -237,15 +243,23 @@ public: struct npc_titoAI : public ScriptedAI { - npc_titoAI(Creature* creature) : ScriptedAI(creature) { } + npc_titoAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } + + void Initialize() + { + DorotheeGUID = 0; + YipTimer = 10000; + } uint64 DorotheeGUID; uint32 YipTimer; void Reset() override { - DorotheeGUID = 0; - YipTimer = 10000; + Initialize(); } void EnterCombat(Unit* /*who*/) override { } @@ -305,9 +319,17 @@ public: { boss_strawmanAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); } + void Initialize() + { + AggroTimer = 13000; + BrainBashTimer = 5000; + BrainWipeTimer = 7000; + } + InstanceScript* instance; uint32 AggroTimer; @@ -316,9 +338,7 @@ public: void Reset() override { - AggroTimer = 13000; - BrainBashTimer = 5000; - BrainWipeTimer = 7000; + Initialize(); } void AttackStart(Unit* who) override @@ -419,9 +439,19 @@ public: { boss_tinheadAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); } + void Initialize() + { + AggroTimer = 15000; + CleaveTimer = 5000; + RustTimer = 30000; + + RustCount = 0; + } + InstanceScript* instance; uint32 AggroTimer; @@ -432,11 +462,7 @@ public: void Reset() override { - AggroTimer = 15000; - CleaveTimer = 5000; - RustTimer = 30000; - - RustCount = 0; + Initialize(); } void EnterCombat(Unit* /*who*/) override @@ -528,9 +554,18 @@ public: { boss_roarAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); } + void Initialize() + { + AggroTimer = 20000; + MangleTimer = 5000; + ShredTimer = 10000; + ScreamTimer = 15000; + } + InstanceScript* instance; uint32 AggroTimer; @@ -540,10 +575,7 @@ public: void Reset() override { - AggroTimer = 20000; - MangleTimer = 5000; - ShredTimer = 10000; - ScreamTimer = 15000; + Initialize(); } void MoveInLineOfSight(Unit* who) override @@ -636,9 +668,16 @@ public: { boss_croneAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); } + void Initialize() + { + CycloneTimer = 30000; + ChainLightningTimer = 10000; + } + InstanceScript* instance; uint32 CycloneTimer; @@ -646,8 +685,7 @@ public: void Reset() override { - CycloneTimer = 30000; - ChainLightningTimer = 10000; + Initialize(); } void JustReachedHome() override @@ -717,13 +755,21 @@ public: struct npc_cycloneAI : public ScriptedAI { - npc_cycloneAI(Creature* creature) : ScriptedAI(creature) { } + npc_cycloneAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } + + void Initialize() + { + MoveTimer = 1000; + } uint32 MoveTimer; void Reset() override { - MoveTimer = 1000; + Initialize(); } void EnterCombat(Unit* /*who*/) override { } @@ -812,9 +858,22 @@ public: { boss_bigbadwolfAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); } + void Initialize() + { + ChaseTimer = 30000; + FearTimer = urand(25000, 35000); + SwipeTimer = 5000; + + HoodGUID = 0; + TempThreat = 0; + + IsChasing = false; + } + InstanceScript* instance; uint32 ChaseTimer; @@ -828,14 +887,7 @@ public: void Reset() override { - ChaseTimer = 30000; - FearTimer = urand(25000, 35000); - SwipeTimer = 5000; - - HoodGUID = 0; - TempThreat = 0; - - IsChasing = false; + Initialize(); } void EnterCombat(Unit* /*who*/) override @@ -1011,12 +1063,30 @@ public: { boss_julianneAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); EntryYellTimer = 1000; AggroYellTimer = 10000; IsFakingDeath = false; } + void Initialize() + { + RomuloGUID = 0; + Phase = PHASE_JULIANNE; + + BlindingPassionTimer = 30000; + DevotionTimer = 15000; + EternalAffectionTimer = 25000; + PowerfulAttractionTimer = 5000; + SummonRomuloTimer = 10000; + DrinkPoisonTimer = 0; + ResurrectSelfTimer = 0; + + SummonedRomulo = false; + RomuloDead = false; + } + InstanceScript* instance; uint32 EntryYellTimer; @@ -1041,25 +1111,12 @@ public: void Reset() override { - RomuloGUID = 0; - Phase = PHASE_JULIANNE; - - BlindingPassionTimer = 30000; - DevotionTimer = 15000; - EternalAffectionTimer = 25000; - PowerfulAttractionTimer = 5000; - SummonRomuloTimer = 10000; - DrinkPoisonTimer = 0; - ResurrectSelfTimer = 0; - + Initialize(); if (IsFakingDeath) { Resurrect(me); IsFakingDeath = false; } - - SummonedRomulo = false; - RomuloDead = false; } void EnterCombat(Unit* /*who*/) override { } @@ -1131,11 +1188,27 @@ public: { boss_romuloAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); EntryYellTimer = 8000; AggroYellTimer = 15000; } + void Initialize() + { + JulianneGUID = 0; + Phase = PHASE_ROMULO; + + BackwardLungeTimer = 15000; + DaringTimer = 20000; + DeadlySwatheTimer = 25000; + PoisonThrustTimer = 10000; + ResurrectTimer = 10000; + + IsFakingDeath = false; + JulianneDead = false; + } + InstanceScript* instance; uint64 JulianneGUID; @@ -1154,17 +1227,7 @@ public: void Reset() override { - JulianneGUID = 0; - Phase = PHASE_ROMULO; - - BackwardLungeTimer = 15000; - DaringTimer = 20000; - DeadlySwatheTimer = 25000; - PoisonThrustTimer = 10000; - ResurrectTimer = 10000; - - IsFakingDeath = false; - JulianneDead = false; + Initialize(); } void JustReachedHome() override diff --git a/src/server/scripts/EasternKingdoms/Karazhan/karazhan.cpp b/src/server/scripts/EasternKingdoms/Karazhan/karazhan.cpp index c89950b7de3..c37829e26d5 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/karazhan.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/karazhan.cpp @@ -131,11 +131,23 @@ public: { npc_barnesAI(Creature* creature) : npc_escortAI(creature) { + Initialize(); RaidWiped = false; m_uiEventId = 0; instance = creature->GetInstanceScript(); } + void Initialize() + { + m_uiSpotlightGUID = 0; + + TalkCount = 0; + TalkTimer = 2000; + WipeTimer = 5000; + + PerformanceReady = false; + } + InstanceScript* instance; uint64 m_uiSpotlightGUID; @@ -150,13 +162,7 @@ public: void Reset() override { - m_uiSpotlightGUID = 0; - - TalkCount = 0; - TalkTimer = 2000; - WipeTimer = 5000; - - PerformanceReady = false; + Initialize(); m_uiEventId = instance->GetData(DATA_OPERA_PERFORMANCE); } @@ -476,9 +482,20 @@ public: { npc_image_of_medivhAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); + Step = 0; + FireArcanagosTimer = 0; + FireMedivhTimer = 0; instance = creature->GetInstanceScript(); } + void Initialize() + { + ArcanagosGUID = 0; + EventStarted = false; + YellTimer = 0; + } + InstanceScript* instance; uint64 ArcanagosGUID; @@ -492,9 +509,7 @@ public: void Reset() override { - ArcanagosGUID = 0; - EventStarted = false; - YellTimer = 0; + Initialize(); if (instance->GetData64(DATA_IMAGE_OF_MEDIVH) == 0) { diff --git a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_felblood_kaelthas.cpp b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_felblood_kaelthas.cpp index 7944011c7a0..1aafb32cef9 100644 --- a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_felblood_kaelthas.cpp +++ b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_felblood_kaelthas.cpp @@ -103,9 +103,29 @@ public: { boss_felblood_kaelthasAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); } + void Initialize() + { + /// @todo Timers + FireballTimer = 0; + PhoenixTimer = 10000; + FlameStrikeTimer = 25000; + CombatPulseTimer = 0; + + PyroblastTimer = 60000; + + GravityLapseTimer = 0; + GravityLapsePhase = 0; + + FirstGravityLapse = true; + HasTaunted = false; + + Phase = 0; + } + InstanceScript* instance; uint32 FireballTimer; @@ -134,21 +154,7 @@ public: void Reset() override { - /// @todo Timers - FireballTimer = 0; - PhoenixTimer = 10000; - FlameStrikeTimer = 25000; - CombatPulseTimer = 0; - - PyroblastTimer = 60000; - - GravityLapseTimer = 0; - GravityLapsePhase = 0; - - FirstGravityLapse = true; - HasTaunted = false; - - Phase = 0; + Initialize(); instance->SetBossState(DATA_KAELTHAS, NOT_STARTED); } @@ -439,13 +445,19 @@ public: { npc_felkael_flamestrikeAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); + } + + void Initialize() + { + FlameStrikeTimer = 5000; } uint32 FlameStrikeTimer; void Reset() override { - FlameStrikeTimer = 5000; + Initialize(); me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); me->setFaction(14); @@ -481,9 +493,18 @@ public: { npc_felkael_phoenixAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); } + void Initialize() + { + BurnTimer = 2000; + Death_Timer = 3000; + Rebirth = false; + FakeDeath = false; + } + InstanceScript* instance; uint32 BurnTimer; uint32 Death_Timer; @@ -495,10 +516,7 @@ public: me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE + UNIT_FLAG_NON_ATTACKABLE); me->SetDisableGravity(true); DoCast(me, SPELL_PHOENIX_BURN, true); - BurnTimer = 2000; - Death_Timer = 3000; - Rebirth = false; - FakeDeath = false; + Initialize(); } void EnterCombat(Unit* /*who*/) override { } @@ -592,13 +610,21 @@ public: struct npc_felkael_phoenix_eggAI : public ScriptedAI { - npc_felkael_phoenix_eggAI(Creature* creature) : ScriptedAI(creature) { } + npc_felkael_phoenix_eggAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } + + void Initialize() + { + HatchTimer = 10000; + } uint32 HatchTimer; void Reset() override { - HatchTimer = 10000; + Initialize(); } void EnterCombat(Unit* /*who*/) override { } diff --git a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_priestess_delrissa.cpp b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_priestess_delrissa.cpp index 40dedcf6d93..cc2af3dcea5 100644 --- a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_priestess_delrissa.cpp +++ b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_priestess_delrissa.cpp @@ -117,11 +117,24 @@ public: { boss_priestess_delrissaAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); memset(&m_auiLackeyGUID, 0, sizeof(m_auiLackeyGUID)); LackeyEntryList.clear(); } + void Initialize() + { + PlayersKilled = 0; + + HealTimer = 15000; + RenewTimer = 10000; + ShieldTimer = 2000; + SWPainTimer = 5000; + DispelTimer = 7500; + ResetTimer = 5000; + } + InstanceScript* instance; std::vector<uint32> LackeyEntryList; @@ -138,14 +151,7 @@ public: void Reset() override { - PlayersKilled = 0; - - HealTimer = 15000; - RenewTimer = 10000; - ShieldTimer = 2000; - SWPainTimer = 5000; - DispelTimer = 7500; - ResetTimer = 5000; + Initialize(); InitializeLackeys(); } @@ -353,11 +359,23 @@ struct boss_priestess_lackey_commonAI : public ScriptedAI { boss_priestess_lackey_commonAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); memset(&m_auiLackeyGUIDs, 0, sizeof(m_auiLackeyGUIDs)); AcquireGUIDs(); } + void Initialize() + { + UsedPotion = false; + + // These guys does not follow normal threat system rules + // For later development, some alternative threat system should be made + // We do not know what this system is based upon, but one theory is class (healers=high threat, dps=medium, etc) + // We reset their threat frequently as an alternative until such a system exist + ResetThreatTimer = urand(5000, 20000); + } + InstanceScript* instance; uint64 m_auiLackeyGUIDs[MAX_ACTIVE_LACKEY]; @@ -367,13 +385,7 @@ struct boss_priestess_lackey_commonAI : public ScriptedAI void Reset() override { - UsedPotion = false; - - // These guys does not follow normal threat system rules - // For later development, some alternative threat system should be made - // We do not know what this system is based upon, but one theory is class (healers=high threat, dps=medium, etc) - // We reset their threat frequently as an alternative until such a system exist - ResetThreatTimer = urand(5000, 20000); + Initialize(); // in case she is not alive and Reset was for some reason called, respawn her (most likely party wipe after killing her) if (Creature* pDelrissa = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_DELRISSA))) @@ -493,7 +505,20 @@ public: struct boss_kagani_nightstrikeAI : public boss_priestess_lackey_commonAI { //Rogue - boss_kagani_nightstrikeAI(Creature* creature) : boss_priestess_lackey_commonAI(creature) { } + boss_kagani_nightstrikeAI(Creature* creature) : boss_priestess_lackey_commonAI(creature) + { + Initialize(); + } + + void Initialize() + { + Gouge_Timer = 5500; + Kick_Timer = 7000; + Vanish_Timer = 2000; + Eviscerate_Timer = 6000; + Wait_Timer = 5000; + InVanish = false; + } uint32 Gouge_Timer; uint32 Kick_Timer; @@ -504,12 +529,7 @@ public: void Reset() override { - Gouge_Timer = 5500; - Kick_Timer = 7000; - Vanish_Timer = 2000; - Eviscerate_Timer = 6000; - Wait_Timer = 5000; - InVanish = false; + Initialize(); me->SetVisible(true); boss_priestess_lackey_commonAI::Reset(); @@ -597,7 +617,19 @@ public: struct boss_ellris_duskhallowAI : public boss_priestess_lackey_commonAI { //Warlock - boss_ellris_duskhallowAI(Creature* creature) : boss_priestess_lackey_commonAI(creature) { } + boss_ellris_duskhallowAI(Creature* creature) : boss_priestess_lackey_commonAI(creature) + { + Initialize(); + } + + void Initialize() + { + Immolate_Timer = 6000; + Shadow_Bolt_Timer = 3000; + Seed_of_Corruption_Timer = 2000; + Curse_of_Agony_Timer = 1000; + Fear_Timer = 10000; + } uint32 Immolate_Timer; uint32 Shadow_Bolt_Timer; @@ -607,11 +639,7 @@ public: void Reset() override { - Immolate_Timer = 6000; - Shadow_Bolt_Timer = 3000; - Seed_of_Corruption_Timer = 2000; - Curse_of_Agony_Timer = 1000; - Fear_Timer = 10000; + Initialize(); boss_priestess_lackey_commonAI::Reset(); } @@ -688,15 +716,23 @@ public: struct boss_eramas_brightblazeAI : public boss_priestess_lackey_commonAI { //Monk - boss_eramas_brightblazeAI(Creature* creature) : boss_priestess_lackey_commonAI(creature) { } + boss_eramas_brightblazeAI(Creature* creature) : boss_priestess_lackey_commonAI(creature) + { + Initialize(); + } + + void Initialize() + { + Knockdown_Timer = 6000; + Snap_Kick_Timer = 4500; + } uint32 Knockdown_Timer; uint32 Snap_Kick_Timer; void Reset() override { - Knockdown_Timer = 6000; - Snap_Kick_Timer = 4500; + Initialize(); boss_priestess_lackey_commonAI::Reset(); } @@ -749,7 +785,24 @@ public: struct boss_yazzaiAI : public boss_priestess_lackey_commonAI { //Mage - boss_yazzaiAI(Creature* creature) : boss_priestess_lackey_commonAI(creature) { } + boss_yazzaiAI(Creature* creature) : boss_priestess_lackey_commonAI(creature) + { + Initialize(); + } + + void Initialize() + { + HasIceBlocked = false; + + Polymorph_Timer = 1000; + Ice_Block_Timer = 20000; + Wait_Timer = 10000; + Blizzard_Timer = 8000; + Ice_Lance_Timer = 12000; + Cone_of_Cold_Timer = 10000; + Frostbolt_Timer = 3000; + Blink_Timer = 8000; + } bool HasIceBlocked; @@ -764,16 +817,7 @@ public: void Reset() override { - HasIceBlocked = false; - - Polymorph_Timer = 1000; - Ice_Block_Timer = 20000; - Wait_Timer = 10000; - Blizzard_Timer = 8000; - Ice_Lance_Timer = 12000; - Cone_of_Cold_Timer = 10000; - Frostbolt_Timer = 3000; - Blink_Timer = 8000; + Initialize(); boss_priestess_lackey_commonAI::Reset(); } @@ -879,7 +923,20 @@ public: struct boss_warlord_salarisAI : public boss_priestess_lackey_commonAI { //Warrior - boss_warlord_salarisAI(Creature* creature) : boss_priestess_lackey_commonAI(creature) { } + boss_warlord_salarisAI(Creature* creature) : boss_priestess_lackey_commonAI(creature) + { + Initialize(); + } + + void Initialize() + { + Intercept_Stun_Timer = 500; + Disarm_Timer = 6000; + Piercing_Howl_Timer = 10000; + Frightening_Shout_Timer = 18000; + Hamstring_Timer = 4500; + Mortal_Strike_Timer = 8000; + } uint32 Intercept_Stun_Timer; uint32 Disarm_Timer; @@ -890,12 +947,7 @@ public: void Reset() override { - Intercept_Stun_Timer = 500; - Disarm_Timer = 6000; - Piercing_Howl_Timer = 10000; - Frightening_Shout_Timer = 18000; - Hamstring_Timer = 4500; - Mortal_Strike_Timer = 8000; + Initialize(); boss_priestess_lackey_commonAI::Reset(); } @@ -1001,9 +1053,20 @@ public: //Hunter boss_garaxxasAI(Creature* creature) : boss_priestess_lackey_commonAI(creature) { + Initialize(); m_uiPetGUID = 0; } + void Initialize() + { + Aimed_Shot_Timer = 6000; + Shoot_Timer = 2500; + Concussive_Shot_Timer = 8000; + Multi_Shot_Timer = 10000; + Wing_Clip_Timer = 4000; + Freezing_Trap_Timer = 15000; + } + uint64 m_uiPetGUID; uint32 Aimed_Shot_Timer; @@ -1015,12 +1078,7 @@ public: void Reset() override { - Aimed_Shot_Timer = 6000; - Shoot_Timer = 2500; - Concussive_Shot_Timer = 8000; - Multi_Shot_Timer = 10000; - Wing_Clip_Timer = 4000; - Freezing_Trap_Timer = 15000; + Initialize(); Unit* pPet = ObjectAccessor::GetUnit(*me, m_uiPetGUID); if (!pPet) @@ -1110,7 +1168,20 @@ public: struct boss_apokoAI : public boss_priestess_lackey_commonAI { //Shaman - boss_apokoAI(Creature* creature) : boss_priestess_lackey_commonAI(creature) { } + boss_apokoAI(Creature* creature) : boss_priestess_lackey_commonAI(creature) + { + Initialize(); + } + + void Initialize() + { + Totem_Timer = 2000; + Totem_Amount = 1; + War_Stomp_Timer = 10000; + Purge_Timer = 8000; + Healing_Wave_Timer = 5000; + Frost_Shock_Timer = 7000; + } uint32 Totem_Timer; uint8 Totem_Amount; @@ -1121,12 +1192,7 @@ public: void Reset() override { - Totem_Timer = 2000; - Totem_Amount = 1; - War_Stomp_Timer = 10000; - Purge_Timer = 8000; - Healing_Wave_Timer = 5000; - Frost_Shock_Timer = 7000; + Initialize(); boss_priestess_lackey_commonAI::Reset(); } @@ -1199,7 +1265,19 @@ public: struct boss_zelfanAI : public boss_priestess_lackey_commonAI { //Engineer - boss_zelfanAI(Creature* creature) : boss_priestess_lackey_commonAI(creature) { } + boss_zelfanAI(Creature* creature) : boss_priestess_lackey_commonAI(creature) + { + Initialize(); + } + + void Initialize() + { + Goblin_Dragon_Gun_Timer = 20000; + Rocket_Launch_Timer = 7000; + Recombobulate_Timer = 4000; + High_Explosive_Sheep_Timer = 10000; + Fel_Iron_Bomb_Timer = 15000; + } uint32 Goblin_Dragon_Gun_Timer; uint32 Rocket_Launch_Timer; @@ -1209,11 +1287,7 @@ public: void Reset() override { - Goblin_Dragon_Gun_Timer = 20000; - Rocket_Launch_Timer = 7000; - Recombobulate_Timer = 4000; - High_Explosive_Sheep_Timer = 10000; - Fel_Iron_Bomb_Timer = 15000; + Initialize(); boss_priestess_lackey_commonAI::Reset(); } diff --git a/src/server/scripts/EasternKingdoms/MagistersTerrace/magisters_terrace.cpp b/src/server/scripts/EasternKingdoms/MagistersTerrace/magisters_terrace.cpp index 28f4800b6cf..a20f595183f 100644 --- a/src/server/scripts/EasternKingdoms/MagistersTerrace/magisters_terrace.cpp +++ b/src/server/scripts/EasternKingdoms/MagistersTerrace/magisters_terrace.cpp @@ -115,13 +115,21 @@ public: struct npc_kalecgosAI : public ScriptedAI { - npc_kalecgosAI(Creature* creature) : ScriptedAI(creature) { } + npc_kalecgosAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } + + void Initialize() + { + m_uiTransformTimer = 0; + } uint32 m_uiTransformTimer; void Reset() override { - m_uiTransformTimer = 0; + Initialize(); // we must assume he appear as dragon somewhere outside the platform of orb, and then move directly to here if (me->GetEntry() != NPC_KAEL) diff --git a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp index 95990f18829..7355674963a 100644 --- a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp +++ b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp @@ -102,9 +102,21 @@ public: { npc_unworthy_initiateAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); me->SetReactState(REACT_PASSIVE); if (!me->GetCurrentEquipmentId()) me->SetCurrentEquipmentId(me->GetOriginalEquipmentId()); + + playerGUID = 0; + wait_timer = 0; + anchorX = 0.f; + anchorY = 0.f; + } + + void Initialize() + { + anchorGUID = 0; + phase = PHASE_CHAINED; } uint64 playerGUID; @@ -117,8 +129,7 @@ public: void Reset() override { - anchorGUID = 0; - phase = PHASE_CHAINED; + Initialize(); events.Reset(); me->setFaction(7); me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC); @@ -516,7 +527,15 @@ public: { npc_death_knight_initiateAI(Creature* creature) : CombatAI(creature) { + Initialize(); + } + + void Initialize() + { + m_uiDuelerGUID = 0; + m_uiDuelTimer = 5000; m_bIsDuelInProgress = false; + lose = false; } bool lose; @@ -526,15 +545,11 @@ public: void Reset() override { - lose = false; + Initialize(); + me->RestoreFaction(); CombatAI::Reset(); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNK_15); - - m_uiDuelerGUID = 0; - m_uiDuelTimer = 5000; - m_bIsDuelInProgress = false; } void SpellHit(Unit* pCaster, const SpellInfo* pSpell) override @@ -630,9 +645,12 @@ class npc_dark_rider_of_acherus : public CreatureScript struct npc_dark_rider_of_acherusAI : public ScriptedAI { - npc_dark_rider_of_acherusAI(Creature* creature) : ScriptedAI(creature) { } + npc_dark_rider_of_acherusAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } - void Reset() override + void Initialize() { PhaseTimer = 4000; Phase = 0; @@ -640,6 +658,11 @@ class npc_dark_rider_of_acherus : public CreatureScript TargetGUID = 0; } + void Reset() override + { + Initialize(); + } + void UpdateAI(uint32 diff) override { if (!Intro || !TargetGUID) @@ -1067,18 +1090,24 @@ class npc_scarlet_miner : public CreatureScript { npc_scarlet_minerAI(Creature* creature) : npc_escortAI(creature) { + Initialize(); me->SetReactState(REACT_PASSIVE); } + void Initialize() + { + carGUID = 0; + IntroTimer = 0; + IntroPhase = 0; + } + uint32 IntroTimer; uint32 IntroPhase; uint64 carGUID; void Reset() override { - carGUID = 0; - IntroTimer = 0; - IntroPhase = 0; + Initialize(); } void IsSummonedBy(Unit* summoner) override diff --git a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter2.cpp b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter2.cpp index 8e3743ad5e2..ee624c4f6a5 100644 --- a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter2.cpp +++ b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter2.cpp @@ -51,7 +51,17 @@ public: struct npc_crusade_persuadedAI : public ScriptedAI { - npc_crusade_persuadedAI(Creature* creature) : ScriptedAI(creature) { } + npc_crusade_persuadedAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } + + void Initialize() + { + speechTimer = 0; + speechCounter = 0; + playerGUID = 0; + } uint32 speechTimer; uint32 speechCounter; @@ -59,9 +69,7 @@ public: void Reset() override { - speechTimer = 0; - speechCounter = 0; - playerGUID = 0; + Initialize(); me->SetReactState(REACT_AGGRESSIVE); me->RestoreFaction(); } @@ -207,16 +215,22 @@ public: { npc_koltira_deathweaverAI(Creature* creature) : npc_escortAI(creature) { + Initialize(); me->SetReactState(REACT_DEFENSIVE); } + void Initialize() + { + wave = 0; + waveTimer = 3000; + valrothGUID = 0; + } + void Reset() override { if (!HasEscortState(STATE_ESCORT_ESCORTING)) { - wave = 0; - waveTimer = 3000; - valrothGUID = 0; + Initialize(); me->LoadEquipment(0, true); me->RemoveAurasDueToSpell(SPELL_ANTI_MAGIC_ZONE); me->RemoveAurasDueToSpell(SPELL_KOLTIRA_TRANSFORM); @@ -375,7 +389,16 @@ public: struct npc_scarlet_courierAI : public ScriptedAI { - npc_scarlet_courierAI(Creature* creature) : ScriptedAI(creature) { } + npc_scarlet_courierAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } + + void Initialize() + { + uiStage = 1; + uiStage_timer = 3000; + } uint32 uiStage; uint32 uiStage_timer; @@ -383,8 +406,7 @@ public: void Reset() override { me->Mount(14338); // not sure about this id - uiStage = 1; - uiStage_timer = 3000; + Initialize(); } void EnterCombat(Unit* /*who*/) override @@ -467,7 +489,17 @@ public: struct npc_high_inquisitor_valrothAI : public ScriptedAI { - npc_high_inquisitor_valrothAI(Creature* creature) : ScriptedAI(creature) { } + npc_high_inquisitor_valrothAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } + + void Initialize() + { + uiRenew_timer = 1000; + uiInquisitor_Penance_timer = 2000; + uiValroth_Smite_timer = 1000; + } uint32 uiRenew_timer; uint32 uiInquisitor_Penance_timer; @@ -475,9 +507,7 @@ public: void Reset() override { - uiRenew_timer = 1000; - uiInquisitor_Penance_timer = 2000; - uiValroth_Smite_timer = 1000; + Initialize(); } void EnterCombat(Unit* who) override @@ -603,7 +633,17 @@ public: struct npc_a_special_surpriseAI : public ScriptedAI { - npc_a_special_surpriseAI(Creature* creature) : ScriptedAI(creature) { } + npc_a_special_surpriseAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } + + void Initialize() + { + ExecuteSpeech_Timer = 0; + ExecuteSpeech_Counter = 0; + PlayerGUID = 0; + } uint32 ExecuteSpeech_Timer; uint32 ExecuteSpeech_Counter; @@ -611,9 +651,7 @@ public: void Reset() override { - ExecuteSpeech_Timer = 0; - ExecuteSpeech_Counter = 0; - PlayerGUID = 0; + Initialize(); me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC); } diff --git a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter5.cpp b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter5.cpp index e202e55e675..f6757afd5bc 100644 --- a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter5.cpp +++ b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter5.cpp @@ -312,6 +312,8 @@ public: npc_highlord_darion_mograineAI(Creature* creature) : npc_escortAI(creature) { uiTirionGUID = 0; + uiAlexandrosGUID = 0; + uiDarionGUID = 0; uiKorfaxGUID = 0; uiMaxwellGUID = 0; uiEligorGUID = 0; diff --git a/src/server/scripts/EasternKingdoms/ScarletEnclave/zone_the_scarlet_enclave.cpp b/src/server/scripts/EasternKingdoms/ScarletEnclave/zone_the_scarlet_enclave.cpp index 43dee1338ef..8f61aadb99b 100644 --- a/src/server/scripts/EasternKingdoms/ScarletEnclave/zone_the_scarlet_enclave.cpp +++ b/src/server/scripts/EasternKingdoms/ScarletEnclave/zone_the_scarlet_enclave.cpp @@ -46,7 +46,19 @@ public: struct npc_valkyr_battle_maidenAI : public PassiveAI { - npc_valkyr_battle_maidenAI(Creature* creature) : PassiveAI(creature) { } + npc_valkyr_battle_maidenAI(Creature* creature) : PassiveAI(creature) + { + Initialize(); + } + + void Initialize() + { + FlyBackTimer = 500; + phase = 0; + x = 0.f; + y = 0.f; + z = 0.f; + } uint32 FlyBackTimer; float x, y, z; @@ -58,8 +70,6 @@ public: me->SetVisible(false); me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); me->SetCanFly(true); - FlyBackTimer = 500; - phase = 0; me->GetPosition(x, y, z); z += 4.0f; diff --git a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_arcanist_doan.cpp b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_arcanist_doan.cpp index 26937a83e63..cdfcede1c93 100644 --- a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_arcanist_doan.cpp +++ b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_arcanist_doan.cpp @@ -124,7 +124,7 @@ class boss_arcanist_doan : public CreatureScript CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<boss_arcanist_doanAI>(creature); + return GetScarletMonasteryAI<boss_arcanist_doanAI>(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_azshir_the_sleepless.cpp b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_azshir_the_sleepless.cpp index 71a5343d160..c3c74e4c83d 100644 --- a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_azshir_the_sleepless.cpp +++ b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_azshir_the_sleepless.cpp @@ -15,13 +15,6 @@ * with this program. If not, see <http://www.gnu.org/licenses/>. */ -/* ScriptData -SDName: Boss_Azshir_the_Sleepless -SD%Complete: 80 -SDComment: -SDCategory: Scarlet Monastery -EndScriptData */ - #include "ScriptMgr.h" #include "ScriptedCreature.h" #include "scarlet_monastery.h" @@ -70,9 +63,9 @@ class boss_azshir_the_sleepless : public CreatureScript _JustDied(); } - void DamageTaken(Unit* /*done_by*/, uint32& /*damage*/) override + void DamageTaken(Unit* /*attacker*/, uint32& damage) override { - if (HealthBelowPct(50) && !_siphon) + if (!_siphon && me->HealthBelowPctDamaged(50, damage)) { DoCastVictim(SPELL_SOUL_SIPHON); events.ScheduleEvent(EVENT_SOUL_SIPHON, 20000); @@ -120,7 +113,7 @@ class boss_azshir_the_sleepless : public CreatureScript CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<boss_azshir_the_sleeplessAI>(creature); + return GetScarletMonasteryAI<boss_azshir_the_sleeplessAI>(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_bloodmage_thalnos.cpp b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_bloodmage_thalnos.cpp index 18369c7adfc..14698faaa97 100644 --- a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_bloodmage_thalnos.cpp +++ b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_bloodmage_thalnos.cpp @@ -80,9 +80,9 @@ class boss_bloodmage_thalnos : public CreatureScript Talk(SAY_KILL); } - void DamageTaken(Unit* /*done_by*/, uint32& /*damage*/) override + void DamageTaken(Unit* /*attacker*/, uint32& damage) override { - if (HealthBelowPct(35) && !_hpYell) + if (!_hpYell && me->HealthBelowPctDamaged(35, damage)) { Talk(SAY_HEALTH); _hpYell = true; @@ -114,18 +114,13 @@ class boss_bloodmage_thalnos : public CreatureScript } } - void UpdateAI(uint32 diff) override - { - BossAI::UpdateAI(diff); - } - private: bool _hpYell; }; CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<boss_bloodmage_thalnosAI>(creature); + return GetScarletMonasteryAI<boss_bloodmage_thalnosAI>(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp index cad46b84748..307bcd5add6 100644 --- a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp +++ b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp @@ -232,7 +232,20 @@ public: struct npc_headAI : public ScriptedAI { - npc_headAI(Creature* creature) : ScriptedAI(creature) { } + npc_headAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } + + void Initialize() + { + Phase = 0; + bodyGUID = 0; + die = false; + withbody = true; + wait = 1000; + laugh = urand(15000, 30000); + } uint64 bodyGUID; @@ -245,12 +258,7 @@ public: void Reset() override { - Phase = 0; - bodyGUID = 0; - die = false; - withbody = true; - wait = 1000; - laugh = urand(15000, 30000); + Initialize(); } void EnterCombat(Unit* /*who*/) override { } @@ -380,10 +388,29 @@ public: { boss_headless_horsemanAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); headGUID = 0; } + void Initialize() + { + Phase = 1; + conflagrate = 15000; + summonadds = 15000; + laugh = urand(16000, 20000); + cleave = 2000; + regen = 1000; + burn = 6000; + count = 0; + say_timer = 3000; + + withhead = true; + returned = true; + burned = false; + IsFlying = false; + } + InstanceScript* instance; uint64 headGUID; @@ -410,20 +437,7 @@ public: void Reset() override { - Phase = 1; - conflagrate = 15000; - summonadds = 15000; - laugh = urand(16000, 20000); - cleave = 2000; - regen = 1000; - burn = 6000; - count = 0; - say_timer = 3000; - - withhead = true; - returned = true; - burned = false; - IsFlying = false; + Initialize(); DoCast(me, SPELL_HEAD); if (headGUID) { diff --git a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_herod.cpp b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_herod.cpp index d1d25dd2ba6..d77334785ef 100644 --- a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_herod.cpp +++ b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_herod.cpp @@ -100,9 +100,9 @@ class boss_herod : public CreatureScript me->SummonCreature(NPC_SCARLET_TRAINEE, ScarletTraineePos, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 600000); } - void DamageTaken(Unit* /*done_by*/, uint32& /*damage*/) override + void DamageTaken(Unit* /*attacker*/, uint32& damage) override { - if (HealthBelowPct(30) && !_enrage) + if (!_enrage && me->HealthBelowPctDamaged(30, damage)) { Talk(EMOTE_ENRAGE); Talk(SAY_ENRAGE); @@ -129,18 +129,13 @@ class boss_herod : public CreatureScript } } - void UpdateAI(uint32 diff) override - { - BossAI::UpdateAI(diff); - } - private: bool _enrage; }; CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<boss_herodAI>(creature); + return GetScarletMonasteryAI<boss_herodAI>(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_high_inquisitor_fairbanks.cpp b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_high_inquisitor_fairbanks.cpp index a4a3660b360..78a317b216e 100644 --- a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_high_inquisitor_fairbanks.cpp +++ b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_high_inquisitor_fairbanks.cpp @@ -51,9 +51,21 @@ public: { boss_high_inquisitor_fairbanksAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); } + void Initialize() + { + CurseOfBlood_Timer = 10000; + DispelMagic_Timer = 30000; + Fear_Timer = 40000; + Heal_Timer = 30000; + Sleep_Timer = 30000; + Dispel_Timer = 20000; + PowerWordShield = false; + } + uint32 CurseOfBlood_Timer; uint32 DispelMagic_Timer; uint32 Fear_Timer; @@ -65,13 +77,7 @@ public: void Reset() override { - CurseOfBlood_Timer = 10000; - DispelMagic_Timer = 30000; - Fear_Timer = 40000; - Heal_Timer = 30000; - Sleep_Timer = 30000; - Dispel_Timer = 20000; - PowerWordShield = false; + Initialize(); me->SetStandState(UNIT_STAND_STATE_DEAD); me->SetUInt32Value(UNIT_FIELD_BYTES_1, 7); instance->SetBossState(DATA_HIGH_INQUISITOR_FAIRBANKS, NOT_STARTED); diff --git a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_houndmaster_loksey.cpp b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_houndmaster_loksey.cpp index 40c7667843b..0e1b51f9a83 100644 --- a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_houndmaster_loksey.cpp +++ b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_houndmaster_loksey.cpp @@ -73,16 +73,11 @@ class boss_houndmaster_loksey : public CreatureScript break; } } - - void UpdateAI(uint32 diff) override - { - BossAI::UpdateAI(diff); - } }; CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<boss_houndmaster_lokseyAI>(creature); + return GetScarletMonasteryAI<boss_houndmaster_lokseyAI>(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_interrogator_vishas.cpp b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_interrogator_vishas.cpp index a73cf946a7c..c05de1bb800 100644 --- a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_interrogator_vishas.cpp +++ b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_interrogator_vishas.cpp @@ -55,9 +55,17 @@ public: { boss_interrogator_vishasAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = me->GetInstanceScript(); } + void Initialize() + { + ShadowWordPain_Timer = 5000; + Yell60 = false; + Yell30 = false; + } + InstanceScript* instance; bool Yell30; @@ -66,9 +74,7 @@ public: void Reset() override { - ShadowWordPain_Timer = 5000; - Yell60 = false; - Yell30 = false; + Initialize(); instance->SetBossState(DATA_INTERROGATOR_VISHAS, NOT_STARTED); } diff --git a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_mograine_and_whitemane.cpp b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_mograine_and_whitemane.cpp index a9988584edd..02f7c815414 100644 --- a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_mograine_and_whitemane.cpp +++ b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_mograine_and_whitemane.cpp @@ -72,9 +72,19 @@ public: { boss_scarlet_commander_mograineAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); } + void Initialize() + { + CrusaderStrike_Timer = 10000; + HammerOfJustice_Timer = 10000; + _bHasDied = false; + _bHeal = false; + _bFakeDeath = false; + } + InstanceScript* instance; uint32 CrusaderStrike_Timer; @@ -86,8 +96,7 @@ public: void Reset() override { - CrusaderStrike_Timer = 10000; - HammerOfJustice_Timer = 10000; + Initialize(); //Incase wipe during phase that mograine fake death me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); @@ -96,10 +105,6 @@ public: if (me->IsAlive()) instance->SetBossState(DATA_MOGRAINE_AND_WHITE_EVENT, NOT_STARTED); - - _bHasDied = false; - _bHeal = false; - _bFakeDeath = false; } void JustReachedHome() override @@ -230,9 +235,21 @@ public: { boss_high_inquisitor_whitemaneAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); } + void Initialize() + { + Wait_Timer = 7000; + Heal_Timer = 10000; + PowerWordShield_Timer = 15000; + HolySmite_Timer = 6000; + + _bCanResurrectCheck = false; + _bCanResurrect = false; + } + InstanceScript* instance; uint32 Heal_Timer; @@ -245,13 +262,7 @@ public: void Reset() override { - Wait_Timer = 7000; - Heal_Timer = 10000; - PowerWordShield_Timer = 15000; - HolySmite_Timer = 6000; - - _bCanResurrectCheck = false; - _bCanResurrect = false; + Initialize(); if (me->IsAlive()) instance->SetBossState(DATA_MOGRAINE_AND_WHITE_EVENT, NOT_STARTED); diff --git a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_scorn.cpp b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_scorn.cpp index 24efd7017ec..d64e556c011 100644 --- a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_scorn.cpp +++ b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_scorn.cpp @@ -1,6 +1,5 @@ /* * Copyright (C) 2008-2014 TrinityCore <http://www.trinitycore.org/> - * Copyright (C) 2006-2009 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/> * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the @@ -16,13 +15,6 @@ * with this program. If not, see <http://www.gnu.org/licenses/>. */ -/* ScriptData -SDName: Boss_Scorn -SD%Complete: 100 -SDComment: -SDCategory: Scarlet Monastery -EndScriptData */ - #include "ScriptMgr.h" #include "ScriptedCreature.h" #include "scarlet_monastery.h" @@ -95,16 +87,11 @@ class boss_scorn : public CreatureScript break; } } - - void UpdateAI(uint32 diff) override - { - BossAI::UpdateAI(diff); - } }; CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<boss_scornAI>(creature); + return GetScarletMonasteryAI<boss_scornAI>(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/ScarletMonastery/instance_scarlet_monastery.cpp b/src/server/scripts/EasternKingdoms/ScarletMonastery/instance_scarlet_monastery.cpp index 78837912688..dc65bd42bf4 100644 --- a/src/server/scripts/EasternKingdoms/ScarletMonastery/instance_scarlet_monastery.cpp +++ b/src/server/scripts/EasternKingdoms/ScarletMonastery/instance_scarlet_monastery.cpp @@ -28,7 +28,7 @@ DoorData const doorData[] = class instance_scarlet_monastery : public InstanceMapScript { public: - instance_scarlet_monastery() : InstanceMapScript("instance_scarlet_monastery", 189) { } + instance_scarlet_monastery() : InstanceMapScript(SMScriptName, 189) { } struct instance_scarlet_monastery_InstanceMapScript : public InstanceScript { diff --git a/src/server/scripts/EasternKingdoms/ScarletMonastery/scarlet_monastery.h b/src/server/scripts/EasternKingdoms/ScarletMonastery/scarlet_monastery.h index d4ce3f1614f..a74efba751f 100644 --- a/src/server/scripts/EasternKingdoms/ScarletMonastery/scarlet_monastery.h +++ b/src/server/scripts/EasternKingdoms/ScarletMonastery/scarlet_monastery.h @@ -18,6 +18,7 @@ #ifndef SCARLET_M_ #define SCARLET_M_ +#define SMScriptName "instance_scarlet_monastery" uint32 const EncounterCount = 10; enum DataTypes @@ -57,4 +58,10 @@ enum GameObjectIds GO_PUMPKIN_SHRINE = 186267 }; +template<class AI> +inline AI* GetScarletMonasteryAI(Creature* creature) +{ + return GetInstanceAI<AI>(creature, SMScriptName); +} + #endif // SCARLET_M_ diff --git a/src/server/scripts/EasternKingdoms/Scholomance/boss_instructor_malicia.cpp b/src/server/scripts/EasternKingdoms/Scholomance/boss_instructor_malicia.cpp index 84ada04a989..4a9703b509b 100644 --- a/src/server/scripts/EasternKingdoms/Scholomance/boss_instructor_malicia.cpp +++ b/src/server/scripts/EasternKingdoms/Scholomance/boss_instructor_malicia.cpp @@ -50,7 +50,16 @@ class boss_instructor_malicia : public CreatureScript struct boss_instructormaliciaAI : public BossAI { - boss_instructormaliciaAI(Creature* creature) : BossAI(creature, DATA_INSTRUCTORMALICIA) { } + boss_instructormaliciaAI(Creature* creature) : BossAI(creature, DATA_INSTRUCTORMALICIA) + { + Initialize(); + } + + void Initialize() + { + FlashCounter = 0; + TouchCounter = 0; + } uint32 FlashCounter; uint32 TouchCounter; @@ -58,8 +67,7 @@ class boss_instructor_malicia : public CreatureScript void Reset() override { _Reset(); - FlashCounter = 0; - TouchCounter = 0; + Initialize(); } void EnterCombat(Unit* /*who*/) override diff --git a/src/server/scripts/EasternKingdoms/Scholomance/boss_jandice_barov.cpp b/src/server/scripts/EasternKingdoms/Scholomance/boss_jandice_barov.cpp index 57331d84b82..44885a01270 100644 --- a/src/server/scripts/EasternKingdoms/Scholomance/boss_jandice_barov.cpp +++ b/src/server/scripts/EasternKingdoms/Scholomance/boss_jandice_barov.cpp @@ -1,6 +1,5 @@ /* * Copyright (C) 2008-2014 TrinityCore <http://www.trinitycore.org/> - * Copyright (C) 2006-2009 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/> * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the @@ -16,23 +15,21 @@ * with this program. If not, see <http://www.gnu.org/licenses/>. */ -/* ScriptData -SDName: Boss_jandicebarov -SD%Complete: 100 -SDComment: -SDCategory: Scholomance -EndScriptData */ - #include "ScriptMgr.h" #include "ScriptedCreature.h" enum Spells { - SPELL_CURSEOFBLOOD = 24673, - //SPELL_ILLUSION = 17773, + SPELL_CURSE_OF_BLOOD = 24673, + SPELL_ILLUSION = 17773, +}; - // Spells of Illusion of Jandice Barov - SPELL_CLEAVE = 15284 +enum Events +{ + EVENT_CURSE_OF_BLOOD = 1, + EVENT_ILLUSION, + EVENT_CLEAVE, + EVENT_SET_VISIBILITY }; class boss_jandice_barov : public CreatureScript @@ -40,173 +37,87 @@ class boss_jandice_barov : public CreatureScript public: boss_jandice_barov() : CreatureScript("boss_jandice_barov") { } - CreatureAI* GetAI(Creature* creature) const override - { - return new boss_jandicebarovAI(creature); - } - struct boss_jandicebarovAI : public ScriptedAI { - boss_jandicebarovAI(Creature* creature) : ScriptedAI(creature) { } - - uint32 CurseOfBlood_Timer; - uint32 Illusion_Timer; - //uint32 Illusioncounter; - uint32 Invisible_Timer; - bool Invisible; + boss_jandicebarovAI(Creature* creature) : ScriptedAI(creature), Summons(me) { } void Reset() override { - CurseOfBlood_Timer = 15000; - Illusion_Timer = 30000; - Invisible_Timer = 3000; //Too much too low? - Invisible = false; + events.Reset(); + Summons.DespawnAll(); + } + + void JustSummoned(Creature* summoned) override + { + // Illusions should attack a random target. + if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0)) + summoned->AI()->AttackStart(target); + + summoned->ApplySpellImmune(0, IMMUNITY_DAMAGE, SPELL_SCHOOL_MASK_MAGIC, true); // Not sure if this is correct. + Summons.Summon(summoned); } void EnterCombat(Unit* /*who*/) override { + events.ScheduleEvent(EVENT_CURSE_OF_BLOOD, 15000); + events.ScheduleEvent(EVENT_ILLUSION, 30000); } - void SummonIllusions(Unit* victim) + void JustDied(Unit* /*killer*/) override { - if (Creature* Illusion = DoSpawnCreature(11439, float(irand(-9, 9)), float(irand(-9, 9)), 0, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 60000)) - Illusion->AI()->AttackStart(victim); + Summons.DespawnAll(); } void UpdateAI(uint32 diff) override { - if (Invisible && Invisible_Timer <= diff) - { - //Become visible again - me->setFaction(14); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); - me->SetDisplayId(11073); //Jandice Model - Invisible = false; - } else if (Invisible) - { - Invisible_Timer -= diff; - //Do nothing while invisible - return; - } - - //Return since we have no target if (!UpdateVictim()) return; - //CurseOfBlood_Timer - if (CurseOfBlood_Timer <= diff) - { - //Cast - DoCastVictim(SPELL_CURSEOFBLOOD); + events.Update(diff); - //45 seconds - CurseOfBlood_Timer = 30000; - } else CurseOfBlood_Timer -= diff; + if (me->HasUnitState(UNIT_STATE_CASTING)) + return; - //Illusion_Timer - if (!Invisible && Illusion_Timer <= diff) + while (uint32 eventId = events.ExecuteEvent()) { - - //Interrupt any spell casting - me->InterruptNonMeleeSpells(false); - me->setFaction(35); - me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); - me->SetDisplayId(11686); // Invisible Model - DoModifyThreatPercent(me->GetVictim(), -99); - - //Summon 10 Illusions attacking random gamers - Unit* target = NULL; - for (uint8 i = 0; i < 10; ++i) + switch (eventId) { - target = SelectTarget(SELECT_TARGET_RANDOM, 0); - if (target) - SummonIllusions(target); + case EVENT_CURSE_OF_BLOOD: + DoCastVictim(SPELL_CURSE_OF_BLOOD); + events.ScheduleEvent(EVENT_CURSE_OF_BLOOD, 30000); + break; + case EVENT_ILLUSION: + DoCast(SPELL_ILLUSION); + me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); + me->SetDisplayId(11686); // Invisible Model + DoModifyThreatPercent(me->GetVictim(), -99); + events.ScheduleEvent(EVENT_SET_VISIBILITY, 3000); + events.ScheduleEvent(EVENT_ILLUSION, 25000); + break; + case EVENT_SET_VISIBILITY: + me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); + me->SetDisplayId(11073); //Jandice Model + break; + default: + break; } - Invisible = true; - Invisible_Timer = 3000; - - //25 seconds until we should cast this agian - Illusion_Timer = 25000; - } else Illusion_Timer -= diff; - - // //Illusion_Timer - // if (Illusion_Timer <= diff) - // { - // //Cast - // DoCastVictim(SPELL_ILLUSION); - // - // //3 Illusion will be summoned - // if (Illusioncounter < 3) - // { - // Illusion_Timer = 500; - // ++Illusioncounter; - // } - // else { - // //15 seconds until we should cast this again - // Illusion_Timer = 15000; - // Illusioncounter = 0; - // } - // - // } else Illusion_Timer -= diff; + } DoMeleeAttackIfReady(); } + + private: + EventMap events; + SummonList Summons; }; -}; - -// Illusion of Jandice Barov Script - -class npc_illusionofjandicebarov : public CreatureScript -{ -public: - npc_illusionofjandicebarov() : CreatureScript("npc_illusionofjandicebarov") { } - CreatureAI* GetAI(Creature* creature) const override { - return new npc_illusionofjandicebarovAI(creature); + return new boss_jandicebarovAI(creature); } - - struct npc_illusionofjandicebarovAI : public ScriptedAI - { - npc_illusionofjandicebarovAI(Creature* creature) : ScriptedAI(creature) { } - - uint32 Cleave_Timer; - - void Reset() override - { - Cleave_Timer = urand(2000, 8000); - me->ApplySpellImmune(0, IMMUNITY_DAMAGE, SPELL_SCHOOL_MASK_MAGIC, true); - } - - void EnterCombat(Unit* /*who*/) override - { - } - - void UpdateAI(uint32 diff) override - { - //Return since we have no target - if (!UpdateVictim()) - return; - - //Cleave_Timer - if (Cleave_Timer <= diff) - { - //Cast - DoCastVictim(SPELL_CLEAVE); - - //5-8 seconds - Cleave_Timer = urand(5000, 8000); - } else Cleave_Timer -= diff; - - DoMeleeAttackIfReady(); - } - }; - }; void AddSC_boss_jandicebarov() { new boss_jandice_barov(); - new npc_illusionofjandicebarov(); } diff --git a/src/server/scripts/EasternKingdoms/Scholomance/boss_kormok.cpp b/src/server/scripts/EasternKingdoms/Scholomance/boss_kormok.cpp index b88954bd1b7..3864c598459 100644 --- a/src/server/scripts/EasternKingdoms/Scholomance/boss_kormok.cpp +++ b/src/server/scripts/EasternKingdoms/Scholomance/boss_kormok.cpp @@ -44,7 +44,19 @@ public: struct boss_kormokAI : public ScriptedAI { - boss_kormokAI(Creature* creature) : ScriptedAI(creature) { } + boss_kormokAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } + + void Initialize() + { + ShadowVolley_Timer = 10000; + BoneShield_Timer = 2000; + Minion_Timer = 15000; + Mage_Timer = 0; + Mages = false; + } uint32 ShadowVolley_Timer; uint32 BoneShield_Timer; @@ -54,11 +66,7 @@ public: void Reset() override { - ShadowVolley_Timer = 10000; - BoneShield_Timer = 2000; - Minion_Timer = 15000; - Mage_Timer = 0; - Mages = false; + Initialize(); } void EnterCombat(Unit* /*who*/) override diff --git a/src/server/scripts/EasternKingdoms/Scholomance/boss_ras_frostwhisper.cpp b/src/server/scripts/EasternKingdoms/Scholomance/boss_ras_frostwhisper.cpp index 2aecc8bd491..9351224863c 100644 --- a/src/server/scripts/EasternKingdoms/Scholomance/boss_ras_frostwhisper.cpp +++ b/src/server/scripts/EasternKingdoms/Scholomance/boss_ras_frostwhisper.cpp @@ -48,7 +48,20 @@ public: struct boss_rasfrostAI : public ScriptedAI { - boss_rasfrostAI(Creature* creature) : ScriptedAI(creature) { } + boss_rasfrostAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } + + void Initialize() + { + IceArmor_Timer = 2000; + Frostbolt_Timer = 8000; + ChillNova_Timer = 12000; + Freeze_Timer = 18000; + FrostVolley_Timer = 24000; + Fear_Timer = 45000; + } uint32 IceArmor_Timer; uint32 Frostbolt_Timer; @@ -59,12 +72,7 @@ public: void Reset() override { - IceArmor_Timer = 2000; - Frostbolt_Timer = 8000; - ChillNova_Timer = 12000; - Freeze_Timer = 18000; - FrostVolley_Timer = 24000; - Fear_Timer = 45000; + Initialize(); DoCast(me, SPELL_ICEARMOR, true); } diff --git a/src/server/scripts/EasternKingdoms/Scholomance/boss_vectus.cpp b/src/server/scripts/EasternKingdoms/Scholomance/boss_vectus.cpp index c111eb103b4..fba5f3faa14 100644 --- a/src/server/scripts/EasternKingdoms/Scholomance/boss_vectus.cpp +++ b/src/server/scripts/EasternKingdoms/Scholomance/boss_vectus.cpp @@ -51,7 +51,17 @@ public: struct boss_vectusAI : public ScriptedAI { - boss_vectusAI(Creature* creature) : ScriptedAI(creature) { } + boss_vectusAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } + + void Initialize() + { + m_uiFireShield_Timer = 2000; + m_uiBlastWave_Timer = 14000; + m_uiFrenzy_Timer = 0; + } uint32 m_uiFireShield_Timer; uint32 m_uiBlastWave_Timer; @@ -59,9 +69,7 @@ public: void Reset() override { - m_uiFireShield_Timer = 2000; - m_uiBlastWave_Timer = 14000; - m_uiFrenzy_Timer = 0; + Initialize(); } void UpdateAI(uint32 uiDiff) override diff --git a/src/server/scripts/EasternKingdoms/ShadowfangKeep/shadowfang_keep.cpp b/src/server/scripts/EasternKingdoms/ShadowfangKeep/shadowfang_keep.cpp index fb839650b86..a6e77a234c6 100644 --- a/src/server/scripts/EasternKingdoms/ShadowfangKeep/shadowfang_keep.cpp +++ b/src/server/scripts/EasternKingdoms/ShadowfangKeep/shadowfang_keep.cpp @@ -164,16 +164,22 @@ public: { npc_arugal_voidwalkerAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); } + void Initialize() + { + uiDarkOffering = urand(200, 1000); + } + InstanceScript* instance; uint32 uiDarkOffering; void Reset() override { - uiDarkOffering = urand(200, 1000); + Initialize(); } void UpdateAI(uint32 uiDiff) override diff --git a/src/server/scripts/EasternKingdoms/Stratholme/boss_baron_rivendare.cpp b/src/server/scripts/EasternKingdoms/Stratholme/boss_baron_rivendare.cpp index de54e87fc97..85f5b51b52e 100644 --- a/src/server/scripts/EasternKingdoms/Stratholme/boss_baron_rivendare.cpp +++ b/src/server/scripts/EasternKingdoms/Stratholme/boss_baron_rivendare.cpp @@ -75,9 +75,19 @@ public: { boss_baron_rivendareAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = me->GetInstanceScript(); } + void Initialize() + { + ShadowBolt_Timer = 5000; + Cleave_Timer = 8000; + MortalStrike_Timer = 12000; + // RaiseDead_Timer = 30000; + SummonSkeletons_Timer = 34000; + } + InstanceScript* instance; uint32 ShadowBolt_Timer; @@ -88,11 +98,7 @@ public: void Reset() override { - ShadowBolt_Timer = 5000; - Cleave_Timer = 8000; - MortalStrike_Timer = 12000; - // RaiseDead_Timer = 30000; - SummonSkeletons_Timer = 34000; + Initialize(); if (instance->GetData(TYPE_RAMSTEIN) == DONE) instance->SetData(TYPE_BARON, NOT_STARTED); } diff --git a/src/server/scripts/EasternKingdoms/Stratholme/boss_baroness_anastari.cpp b/src/server/scripts/EasternKingdoms/Stratholme/boss_baroness_anastari.cpp index a3eb66ac23c..fa8f0f39563 100644 --- a/src/server/scripts/EasternKingdoms/Stratholme/boss_baroness_anastari.cpp +++ b/src/server/scripts/EasternKingdoms/Stratholme/boss_baroness_anastari.cpp @@ -49,9 +49,18 @@ public: { boss_baroness_anastariAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = me->GetInstanceScript(); } + void Initialize() + { + BansheeWail_Timer = 1000; + BansheeCurse_Timer = 11000; + Silence_Timer = 13000; + //Possess_Timer = 35000; + } + InstanceScript* instance; uint32 BansheeWail_Timer; @@ -61,10 +70,7 @@ public: void Reset() override { - BansheeWail_Timer = 1000; - BansheeCurse_Timer = 11000; - Silence_Timer = 13000; - //Possess_Timer = 35000; + Initialize(); } void EnterCombat(Unit* /*who*/) override diff --git a/src/server/scripts/EasternKingdoms/Stratholme/boss_cannon_master_willey.cpp b/src/server/scripts/EasternKingdoms/Stratholme/boss_cannon_master_willey.cpp index 14d2a9a9f26..063081021fd 100644 --- a/src/server/scripts/EasternKingdoms/Stratholme/boss_cannon_master_willey.cpp +++ b/src/server/scripts/EasternKingdoms/Stratholme/boss_cannon_master_willey.cpp @@ -92,7 +92,18 @@ public: struct boss_cannon_master_willeyAI : public ScriptedAI { - boss_cannon_master_willeyAI(Creature* creature) : ScriptedAI(creature) { } + boss_cannon_master_willeyAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } + + void Initialize() + { + Shoot_Timer = 1000; + Pummel_Timer = 7000; + KnockAway_Timer = 11000; + SummonRifleman_Timer = 15000; + } uint32 KnockAway_Timer; uint32 Pummel_Timer; @@ -101,10 +112,7 @@ public: void Reset() override { - Shoot_Timer = 1000; - Pummel_Timer = 7000; - KnockAway_Timer = 11000; - SummonRifleman_Timer = 15000; + Initialize(); } void JustDied(Unit* /*killer*/) override diff --git a/src/server/scripts/EasternKingdoms/Stratholme/boss_dathrohan_balnazzar.cpp b/src/server/scripts/EasternKingdoms/Stratholme/boss_dathrohan_balnazzar.cpp index f0a8c5c418f..1c7af67190f 100644 --- a/src/server/scripts/EasternKingdoms/Stratholme/boss_dathrohan_balnazzar.cpp +++ b/src/server/scripts/EasternKingdoms/Stratholme/boss_dathrohan_balnazzar.cpp @@ -81,7 +81,23 @@ public: struct boss_dathrohan_balnazzarAI : public ScriptedAI { - boss_dathrohan_balnazzarAI(Creature* creature) : ScriptedAI(creature) { } + boss_dathrohan_balnazzarAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } + + void Initialize() + { + m_uiCrusadersHammer_Timer = 8000; + m_uiCrusaderStrike_Timer = 12000; + m_uiMindBlast_Timer = 6000; + m_uiHolyStrike_Timer = 18000; + m_uiShadowShock_Timer = 4000; + m_uiPsychicScream_Timer = 16000; + m_uiDeepSleep_Timer = 20000; + m_uiMindControl_Timer = 10000; + m_bTransformed = false; + } uint32 m_uiCrusadersHammer_Timer; uint32 m_uiCrusaderStrike_Timer; @@ -95,15 +111,7 @@ public: void Reset() override { - m_uiCrusadersHammer_Timer = 8000; - m_uiCrusaderStrike_Timer = 12000; - m_uiMindBlast_Timer = 6000; - m_uiHolyStrike_Timer = 18000; - m_uiShadowShock_Timer = 4000; - m_uiPsychicScream_Timer = 16000; - m_uiDeepSleep_Timer = 20000; - m_uiMindControl_Timer = 10000; - m_bTransformed = false; + Initialize(); if (me->GetEntry() == NPC_BALNAZZAR) me->UpdateEntry(NPC_DATHROHAN); diff --git a/src/server/scripts/EasternKingdoms/Stratholme/boss_magistrate_barthilas.cpp b/src/server/scripts/EasternKingdoms/Stratholme/boss_magistrate_barthilas.cpp index 8b6f2da87e4..ddd51320b1c 100644 --- a/src/server/scripts/EasternKingdoms/Stratholme/boss_magistrate_barthilas.cpp +++ b/src/server/scripts/EasternKingdoms/Stratholme/boss_magistrate_barthilas.cpp @@ -53,7 +53,19 @@ public: struct boss_magistrate_barthilasAI : public ScriptedAI { - boss_magistrate_barthilasAI(Creature* creature) : ScriptedAI(creature) { } + boss_magistrate_barthilasAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } + + void Initialize() + { + DrainingBlow_Timer = 20000; + CrowdPummel_Timer = 15000; + MightyBlow_Timer = 10000; + FuriousAnger_Timer = 5000; + AngerCount = 0; + } uint32 DrainingBlow_Timer; uint32 CrowdPummel_Timer; @@ -63,11 +75,7 @@ public: void Reset() override { - DrainingBlow_Timer = 20000; - CrowdPummel_Timer = 15000; - MightyBlow_Timer = 10000; - FuriousAnger_Timer = 5000; - AngerCount = 0; + Initialize(); if (me->IsAlive()) me->SetDisplayId(MODEL_NORMAL); diff --git a/src/server/scripts/EasternKingdoms/Stratholme/boss_maleki_the_pallid.cpp b/src/server/scripts/EasternKingdoms/Stratholme/boss_maleki_the_pallid.cpp index b3fae9821aa..68193ffd0c2 100644 --- a/src/server/scripts/EasternKingdoms/Stratholme/boss_maleki_the_pallid.cpp +++ b/src/server/scripts/EasternKingdoms/Stratholme/boss_maleki_the_pallid.cpp @@ -50,9 +50,17 @@ public: { boss_maleki_the_pallidAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = me->GetInstanceScript(); } + void Initialize() + { + Frostbolt_Timer = 1000; + IceTomb_Timer = 16000; + DrainLife_Timer = 31000; + } + InstanceScript* instance; uint32 Frostbolt_Timer; @@ -61,9 +69,7 @@ public: void Reset() override { - Frostbolt_Timer = 1000; - IceTomb_Timer = 16000; - DrainLife_Timer = 31000; + Initialize(); } void EnterCombat(Unit* /*who*/) override diff --git a/src/server/scripts/EasternKingdoms/Stratholme/boss_nerubenkan.cpp b/src/server/scripts/EasternKingdoms/Stratholme/boss_nerubenkan.cpp index 1b5127a5e1c..1d3e28946be 100644 --- a/src/server/scripts/EasternKingdoms/Stratholme/boss_nerubenkan.cpp +++ b/src/server/scripts/EasternKingdoms/Stratholme/boss_nerubenkan.cpp @@ -49,9 +49,18 @@ public: { boss_nerubenkanAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = me->GetInstanceScript(); } + void Initialize() + { + CryptScarabs_Timer = 3000; + EncasingWebs_Timer = 7000; + PierceArmor_Timer = 19000; + RaiseUndeadScarab_Timer = 3000; + } + InstanceScript* instance; uint32 EncasingWebs_Timer; @@ -61,10 +70,7 @@ public: void Reset() override { - CryptScarabs_Timer = 3000; - EncasingWebs_Timer = 7000; - PierceArmor_Timer = 19000; - RaiseUndeadScarab_Timer = 3000; + Initialize(); } void EnterCombat(Unit* /*who*/) override diff --git a/src/server/scripts/EasternKingdoms/Stratholme/boss_order_of_silver_hand.cpp b/src/server/scripts/EasternKingdoms/Stratholme/boss_order_of_silver_hand.cpp index dfc3e570e1b..0a09bc85ea3 100644 --- a/src/server/scripts/EasternKingdoms/Stratholme/boss_order_of_silver_hand.cpp +++ b/src/server/scripts/EasternKingdoms/Stratholme/boss_order_of_silver_hand.cpp @@ -65,9 +65,16 @@ public: { boss_silver_hand_bossesAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); } + void Initialize() + { + HolyLight_Timer = 20000; + DivineShield_Timer = 20000; + } + InstanceScript* instance; uint32 HolyLight_Timer; @@ -75,8 +82,7 @@ public: void Reset() override { - HolyLight_Timer = 20000; - DivineShield_Timer = 20000; + Initialize(); switch (me->GetEntry()) { diff --git a/src/server/scripts/EasternKingdoms/Stratholme/boss_ramstein_the_gorger.cpp b/src/server/scripts/EasternKingdoms/Stratholme/boss_ramstein_the_gorger.cpp index df9b6a04af4..531a4f3887a 100644 --- a/src/server/scripts/EasternKingdoms/Stratholme/boss_ramstein_the_gorger.cpp +++ b/src/server/scripts/EasternKingdoms/Stratholme/boss_ramstein_the_gorger.cpp @@ -52,9 +52,16 @@ public: { boss_ramstein_the_gorgerAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = me->GetInstanceScript(); } + void Initialize() + { + Trample_Timer = 3000; + Knockout_Timer = 12000; + } + InstanceScript* instance; uint32 Trample_Timer; @@ -62,8 +69,7 @@ public: void Reset() override { - Trample_Timer = 3000; - Knockout_Timer = 12000; + Initialize(); } void EnterCombat(Unit* /*who*/) override diff --git a/src/server/scripts/EasternKingdoms/Stratholme/boss_timmy_the_cruel.cpp b/src/server/scripts/EasternKingdoms/Stratholme/boss_timmy_the_cruel.cpp index a45b3594da0..f721fca8aab 100644 --- a/src/server/scripts/EasternKingdoms/Stratholme/boss_timmy_the_cruel.cpp +++ b/src/server/scripts/EasternKingdoms/Stratholme/boss_timmy_the_cruel.cpp @@ -48,15 +48,23 @@ public: struct boss_timmy_the_cruelAI : public ScriptedAI { - boss_timmy_the_cruelAI(Creature* creature) : ScriptedAI(creature) { } + boss_timmy_the_cruelAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } + + void Initialize() + { + RavenousClaw_Timer = 10000; + HasYelled = false; + } uint32 RavenousClaw_Timer; bool HasYelled; void Reset() override { - RavenousClaw_Timer = 10000; - HasYelled = false; + Initialize(); } void EnterCombat(Unit* /*who*/) override diff --git a/src/server/scripts/EasternKingdoms/Stratholme/stratholme.cpp b/src/server/scripts/EasternKingdoms/Stratholme/stratholme.cpp index 4109328afda..01ee7139ae5 100644 --- a/src/server/scripts/EasternKingdoms/Stratholme/stratholme.cpp +++ b/src/server/scripts/EasternKingdoms/Stratholme/stratholme.cpp @@ -142,7 +142,17 @@ public: struct npc_restless_soulAI : public ScriptedAI { - npc_restless_soulAI(Creature* creature) : ScriptedAI(creature) { } + npc_restless_soulAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } + + void Initialize() + { + Tagger = 0; + Die_Timer = 5000; + Tagged = false; + } uint64 Tagger; uint32 Die_Timer; @@ -150,9 +160,7 @@ public: void Reset() override { - Tagger = 0; - Die_Timer = 5000; - Tagged = false; + Initialize(); } void EnterCombat(Unit* /*who*/) override { } @@ -224,15 +232,23 @@ public: struct npc_spectral_ghostly_citizenAI : public ScriptedAI { - npc_spectral_ghostly_citizenAI(Creature* creature) : ScriptedAI(creature) { } + npc_spectral_ghostly_citizenAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } + + void Initialize() + { + Die_Timer = 5000; + Tagged = false; + } uint32 Die_Timer; bool Tagged; void Reset() override { - Die_Timer = 5000; - Tagged = false; + Initialize(); } void EnterCombat(Unit* /*who*/) override { } diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_brutallus.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_brutallus.cpp index eb9b6c2a1df..4e401be7df3 100644 --- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_brutallus.cpp +++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_brutallus.cpp @@ -70,10 +70,26 @@ public: { boss_brutallusAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); Intro = true; } + void Initialize() + { + SlashTimer = 11000; + StompTimer = 30000; + BurnTimer = 60000; + BerserkTimer = 360000; + + IntroPhase = 0; + IntroPhaseTimer = 0; + IntroFrostBoltTimer = 0; + + IsIntro = false; + Enraged = false; + } + InstanceScript* instance; uint32 SlashTimer; @@ -91,17 +107,7 @@ public: void Reset() override { - SlashTimer = 11000; - StompTimer = 30000; - BurnTimer = 60000; - BerserkTimer = 360000; - - IntroPhase = 0; - IntroPhaseTimer = 0; - IntroFrostBoltTimer = 0; - - IsIntro = false; - Enraged = false; + Initialize(); DoCast(me, SPELL_DUAL_WIELD, true); diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp index 3701d37ed7f..d2382cda37d 100644 --- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp +++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp @@ -82,9 +82,22 @@ public: { boss_sacrolashAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); } + void Initialize() + { + ShadowbladesTimer = 10000; + ShadownovaTimer = 30000; + ConfoundingblowTimer = 25000; + ShadowimageTimer = 20000; + ConflagrationTimer = 30000; + EnrageTimer = 360000; + SisterDeath = false; + Enraged = false; + } + InstanceScript* instance; bool SisterDeath; @@ -111,13 +124,7 @@ public: if (!me->IsInCombat()) { - ShadowbladesTimer = 10000; - ShadownovaTimer = 30000; - ConfoundingblowTimer = 25000; - ShadowimageTimer = 20000; - ConflagrationTimer = 30000; - EnrageTimer = 360000; - SisterDeath = false; + Initialize(); } instance->SetBossState(DATA_EREDAR_TWINS, NOT_STARTED); @@ -319,12 +326,27 @@ public: { boss_alythessAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); SetCombatMovement(false); instance = creature->GetInstanceScript(); IntroStepCounter = 10; } + void Initialize() + { + ConflagrationTimer = 45000; + BlazeTimer = 100; + PyrogenicsTimer = 15000; + ShadownovaTimer = 40000; + EnrageTimer = 360000; + FlamesearTimer = 15000; + IntroYellTimer = 10000; + + SisterDeath = false; + Enraged = false; + } + InstanceScript* instance; bool SisterDeath; @@ -354,15 +376,7 @@ public: if (!me->IsInCombat()) { - ConflagrationTimer = 45000; - BlazeTimer = 100; - PyrogenicsTimer = 15000; - ShadownovaTimer = 40000; - EnrageTimer = 360000; - FlamesearTimer = 15000; - IntroYellTimer = 10000; - - SisterDeath = false; + Initialize(); } instance->SetBossState(DATA_EREDAR_TWINS, NOT_STARTED); @@ -635,7 +649,17 @@ public: struct npc_shadow_imageAI : public ScriptedAI { - npc_shadow_imageAI(Creature* creature) : ScriptedAI(creature) { } + npc_shadow_imageAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } + + void Initialize() + { + ShadowfuryTimer = 5000 + (rand32() % 15000); + DarkstrikeTimer = 3000; + KillTimer = 15000; + } uint32 ShadowfuryTimer; uint32 KillTimer; @@ -644,9 +668,7 @@ public: void Reset() override { me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); - ShadowfuryTimer = 5000 + (rand32() % 15000); - DarkstrikeTimer = 3000; - KillTimer = 15000; + Initialize(); } void EnterCombat(Unit* /*who*/) override { } diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_felmyst.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_felmyst.cpp index 120d3a0b231..4b17f698553 100644 --- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_felmyst.cpp +++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_felmyst.cpp @@ -116,7 +116,17 @@ public: { boss_felmystAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); + uiBreathCount = 0; + breathX = 0.f; + breathY = 0.f; + } + + void Initialize() + { + phase = PHASE_NONE; + uiFlightCount = 0; } InstanceScript* instance; @@ -130,12 +140,10 @@ public: void Reset() override { - phase = PHASE_NONE; + Initialize(); events.Reset(); - uiFlightCount = 0; - me->SetDisableGravity(true); me->SetFloatValue(UNIT_FIELD_BOUNDINGRADIUS, 10); me->SetFloatValue(UNIT_FIELD_COMBATREACH, 10); diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kalecgos.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kalecgos.cpp index b7e03fe0459..3284febb9f3 100644 --- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kalecgos.cpp +++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kalecgos.cpp @@ -107,13 +107,30 @@ public: { boss_kalecgosAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); - SathGUID = 0; - DoorGUID = 0; bJustReset = false; me->setActive(true); } + void Initialize() + { + SathGUID = 0; + ArcaneBuffetTimer = 8000; + FrostBreathTimer = 15000; + WildMagicTimer = 10000; + TailLashTimer = 25000; + SpectralBlastTimer = urand(20000, 25000); + CheckTimer = 1000; + ResetTimer = 30000; + + TalkTimer = 0; + TalkSequence = 0; + isFriendly = false; + isEnraged = false; + isBanished = false; + } + InstanceScript* instance; uint32 ArcaneBuffetTimer; @@ -132,7 +149,6 @@ public: bool bJustReset; uint64 SathGUID; - uint64 DoorGUID; void Reset() override { @@ -151,19 +167,6 @@ public: me->SetStandState(UNIT_STAND_STATE_SLEEP); } me->SetFullHealth(); //dunno why it does not resets health at evade.. - ArcaneBuffetTimer = 8000; - FrostBreathTimer = 15000; - WildMagicTimer = 10000; - TailLashTimer = 25000; - SpectralBlastTimer = urand(20000, 25000); - CheckTimer = 1000; - ResetTimer = 30000; - - TalkTimer = 0; - TalkSequence = 0; - isFriendly = false; - isEnraged = false; - isBanished = false; } void EnterEvadeMode() override @@ -459,13 +462,13 @@ public: boss_kalecAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); + SathGUID = 0; } - void Reset() override + void Initialize() { - SathGUID = instance->GetData64(DATA_SATHROVARR); - RevitalizeTimer = 5000; HeroicStrikeTimer = 3000; YellTimer = 5000; @@ -474,6 +477,13 @@ public: isEnraged = false; } + void Reset() override + { + SathGUID = instance->GetData64(DATA_SATHROVARR); + + Initialize(); + } + void DamageTaken(Unit* done_by, uint32 &damage) override { if (done_by->GetGUID() != SathGUID) @@ -581,11 +591,23 @@ public: { boss_sathrovarrAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); KalecGUID = 0; KalecgosGUID = 0; } + void Initialize() + { + ShadowBoltTimer = urand(7, 10) * 1000; + AgonyCurseTimer = 20000; + CorruptionStrikeTimer = 13000; + CheckTimer = 1000; + ResetThreat = 1000; + isEnraged = false; + isBanished = false; + } + InstanceScript* instance; uint32 CorruptionStrikeTimer; @@ -613,13 +635,7 @@ public: KalecGUID = 0; } - ShadowBoltTimer = urand(7, 10) * 1000; - AgonyCurseTimer = 20000; - CorruptionStrikeTimer = 13000; - CheckTimer = 1000; - ResetThreat = 1000; - isEnraged = false; - isBanished = false; + Initialize(); me->CastSpell(me, AURA_DEMONIC_VISUAL, true); TeleportAllPlayersBack(); diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp index 1f66f834b28..5df2d683e21 100644 --- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp +++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp @@ -243,17 +243,23 @@ public: { boss_kalecgos_kjAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); } + void Initialize() + { + OrbsEmpowered = 0; + EmpowerCount = 0; + } + InstanceScript* instance; uint8 OrbsEmpowered; uint8 EmpowerCount; void Reset() override { - OrbsEmpowered = 0; - EmpowerCount = 0; + Initialize(); me->SetDisableGravity(true); me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); me->setActive(true); @@ -393,11 +399,21 @@ public: { npc_kiljaeden_controllerAI(Creature* creature) : ScriptedAI(creature), summons(me) { + Initialize(); instance = creature->GetInstanceScript(); SetCombatMovement(false); } + void Initialize() + { + phase = PHASE_DECEIVERS; + deceiverDeathCount = 0; + bSummonedDeceivers = false; + bKiljaedenDeath = false; + uiRandomSayTimer = 30000; + } + InstanceScript* instance; SummonList summons; @@ -419,14 +435,10 @@ public: void Reset() override { - phase = PHASE_DECEIVERS; + Initialize(); if (Creature* pKalecKJ = ObjectAccessor::GetCreature((*me), instance->GetData64(DATA_KALECGOS_KJ))) ENSURE_AI(boss_kalecgos_kj::boss_kalecgos_kjAI, pKalecKJ->AI())->ResetOrbs(); - deceiverDeathCount = 0; - bSummonedDeceivers = false; - bKiljaedenDeath = false; - uiRandomSayTimer = 30000; summons.DespawnAll(); } @@ -489,11 +501,47 @@ public: { boss_kiljaedenAI(Creature* creature) : ScriptedAI(creature), summons(me) { + Initialize(); instance = creature->GetInstanceScript(); SetCombatMovement(false); } + void Initialize() + { + TimerIsDeactivated[TIMER_SPEECH] = false; + Timer[TIMER_SPEECH] = 0; + + //Phase 2 Timer + Timer[TIMER_SOUL_FLAY] = 11000; + Timer[TIMER_LEGION_LIGHTNING] = 30000; + Timer[TIMER_FIRE_BLOOM] = 20000; + Timer[TIMER_SUMMON_SHILEDORB] = 35000; + + //Phase 3 Timer + Timer[TIMER_SHADOW_SPIKE] = 4000; + Timer[TIMER_FLAME_DART] = 3000; + Timer[TIMER_DARKNESS] = 45000; + Timer[TIMER_ORBS_EMPOWER] = 35000; + + //Phase 4 Timer + Timer[TIMER_ARMAGEDDON] = 2000; + + ActiveTimers = 5; + WaitTimer = 0; + speechCount = 0; + SpeechTimer = 0; + + Phase = PHASE_NORMAL; + + IsInDarkness = false; + IsWaiting = false; + OrbActivated = false; + SpeechBegins = true; + + ChangeTimers(false, 0); + } + InstanceScript* instance; SummonList summons; @@ -520,41 +568,12 @@ public: void Reset() override { - TimerIsDeactivated[TIMER_SPEECH] = false; - Timer[TIMER_SPEECH] = 0; - - //Phase 2 Timer - Timer[TIMER_SOUL_FLAY] = 11000; - Timer[TIMER_LEGION_LIGHTNING] = 30000; - Timer[TIMER_FIRE_BLOOM] = 20000; - Timer[TIMER_SUMMON_SHILEDORB] = 35000; - - //Phase 3 Timer - Timer[TIMER_SHADOW_SPIKE] = 4000; - Timer[TIMER_FLAME_DART] = 3000; - Timer[TIMER_DARKNESS] = 45000; - Timer[TIMER_ORBS_EMPOWER] = 35000; - - //Phase 4 Timer - Timer[TIMER_ARMAGEDDON] = 2000; - - ActiveTimers = 5; - WaitTimer = 0; - speechCount = 0; - SpeechTimer = 0; - - Phase = PHASE_NORMAL; - - IsInDarkness = false; - IsWaiting = false; - OrbActivated = false; - SpeechBegins = true; + Initialize(); if (Creature* pKalec = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_KALECGOS_KJ))) pKalec->RemoveDynObject(SPELL_RING_OF_BLUE_FLAMES); me->SetFloatValue(UNIT_FIELD_COMBATREACH, 12); - ChangeTimers(false, 0); summons.DespawnAll(); } @@ -890,9 +909,17 @@ public: { npc_hand_of_the_deceiverAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); } + void Initialize() + { + /// @todo Timers! + ShadowBoltVolleyTimer = urand(8000, 14000); // So they don't all cast it in the same moment. + FelfirePortalTimer = 20000; + } + InstanceScript* instance; uint32 ShadowBoltVolleyTimer; @@ -900,9 +927,7 @@ public: void Reset() override { - /// @todo Timers! - ShadowBoltVolleyTimer = urand(8000, 14000); // So they don't all cast it in the same moment. - FelfirePortalTimer = 20000; + Initialize(); instance->SetBossState(DATA_KILJAEDEN, NOT_STARTED); } @@ -989,14 +1014,20 @@ public: { npc_felfire_portalAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); SetCombatMovement(false); } + void Initialize() + { + uiSpawnFiendTimer = 5000; + } + uint32 uiSpawnFiendTimer; void Reset() override { - uiSpawnFiendTimer = 5000; + Initialize(); me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE|UNIT_FLAG_NON_ATTACKABLE); } @@ -1034,7 +1065,16 @@ public: struct npc_volatile_felfire_fiendAI : public ScriptedAI { - npc_volatile_felfire_fiendAI(Creature* creature) : ScriptedAI(creature) { } + npc_volatile_felfire_fiendAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } + + void Initialize() + { + uiExplodeTimer = 2000; + bLockedTarget = false; + } uint32 uiExplodeTimer; @@ -1042,8 +1082,7 @@ public: void Reset() override { - uiExplodeTimer = 2000; - bLockedTarget = false; + Initialize(); } void DamageTaken(Unit* /*done_by*/, uint32 &damage) override @@ -1093,16 +1132,22 @@ public: { npc_armageddonAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); SetCombatMovement(false); } + void Initialize() + { + spell = 0; + uiTimer = 0; + } + uint8 spell; uint32 uiTimer; void Reset() override { - spell = 0; - uiTimer = 0; + Initialize(); } void UpdateAI(uint32 diff) override @@ -1150,7 +1195,22 @@ public: { npc_shield_orbAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); + x = 0.f; + y = 0.f; + } + + void Initialize() + { + bPointReached = true; + uiTimer = urand(500, 1000); + uiCheckTimer = 1000; + r = 17; + c = 0; + mx = ShieldOrbLocations[0][0]; + my = ShieldOrbLocations[0][1]; + bClockwise = roll_chance_i(50); } InstanceScript* instance; @@ -1164,14 +1224,7 @@ public: void Reset() override { me->SetDisableGravity(true); - bPointReached = true; - uiTimer = urand(500, 1000); - uiCheckTimer = 1000; - r = 17; - c = 0; - mx = ShieldOrbLocations[0][0]; - my = ShieldOrbLocations[0][1]; - bClockwise = roll_chance_i(50); + Initialize(); } void UpdateAI(uint32 diff) override @@ -1235,12 +1288,12 @@ public: struct npc_sinster_reflectionAI : public ScriptedAI { - npc_sinster_reflectionAI(Creature* creature) : ScriptedAI(creature) { } - - uint8 victimClass; - uint32 uiTimer[3]; + npc_sinster_reflectionAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } - void Reset() override + void Initialize() { uiTimer[0] = 0; uiTimer[1] = 0; @@ -1248,6 +1301,14 @@ public: victimClass = 0; } + uint8 victimClass; + uint32 uiTimer[3]; + + void Reset() override + { + Initialize(); + } + void UpdateAI(uint32 diff) override { if (!UpdateVictim()) diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp index 6ccce62cb6f..ec0bae0f27f 100644 --- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp +++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp @@ -74,71 +74,51 @@ enum Spells SPELL_BLACKHOLE_GROW = 46228 }; -enum BossTimers +enum Events { - TIMER_DARKNESS = 0, - TIMER_HUMANOIDES = 1, - TIMER_PHASE = 2, - TIMER_SENTINEL = 3 + // M'uru + EVENT_DARKNESS = 1, + EVENT_SUMMON_HUMANOIDS, + EVENT_SUMMON_SENTINEL, + EVENT_PHASE_TRANSITION, // Delayed phase transition. + EVENT_ENRAGE, + + // Entropius + EVENT_SUMMON_BLACK_HOLE }; -float DarkFiends[8][4] = +enum Phases { - {1819.9f, 609.80f, 69.74f, 1.94f}, - {1829.39f, 617.89f, 69.73f, 2.61f}, - {1801.98f, 633.62f, 69.74f, 5.71f}, - {1830.88f, 629.99f, 69.73f, 3.52f}, - {1800.38f, 621.41f, 69.74f, 0.22f}, - {1808.3f, 612.45f, 69.73f, 1.02f}, - {1823.9f, 639.69f, 69.74f, 4.12f}, - {1811.85f, 640.46f, 69.73f, 4.97f} + PHASE_ONE = 1, + PHASE_TWO, }; -float Humanoides[6][5] = +enum CreatureGroups { - {NPC_FURY_MAGE, 1780.16f, 666.83f, 71.19f, 5.21f}, - {NPC_FURY_MAGE, 1847.93f, 600.30f, 71.30f, 2.57f}, - {NPC_BERSERKER, 1779.97f, 660.64f, 71.19f, 5.28f}, - {NPC_BERSERKER, 1786.2f, 661.01f, 71.19f, 4.51f}, - {NPC_BERSERKER, 1845.17f, 602.63f, 71.28f, 2.43f}, - {NPC_BERSERKER, 1842.91f, 599.93f, 71.23f, 2.44f} + CREATURE_GROUP_HUMANOIDS, + CREATURE_GROUP_DARKFIENDS }; -uint32 EnrageTimer = 600000; - class boss_entropius : public CreatureScript { public: boss_entropius() : CreatureScript("boss_entropius") { } - struct boss_entropiusAI : public ScriptedAI + struct boss_entropiusAI : public BossAI { - boss_entropiusAI(Creature* creature) : ScriptedAI(creature), Summons(me) - { - instance = creature->GetInstanceScript(); - } - - InstanceScript* instance; - SummonList Summons; - - uint32 BlackHoleSummonTimer; + boss_entropiusAI(Creature* creature) : BossAI(creature, DATA_MURU) { } void Reset() override { - BlackHoleSummonTimer = 15000; - DoCastAOE(SPELL_NEGATIVE_ENERGY_E, false); - - Summons.DespawnAll(); - - instance->SetBossState(DATA_MURU, NOT_STARTED); + DoCastAOE(SPELL_NEGATIVE_ENERGY_E); } void EnterCombat(Unit* /*who*/) override { + _EnterCombat(); DoCastAOE(SPELL_NEGATIVE_ENERGY_E, true); - DoCast(me, SPELL_ENTROPIUS_SPAWN, false); - - instance->SetBossState(DATA_MURU, IN_PROGRESS); + DoCast(me, SPELL_ENTROPIUS_SPAWN); + events.ScheduleEvent(EVENT_SUMMON_BLACK_HOLE, 15000); } void JustSummoned(Creature* summoned) override @@ -146,7 +126,7 @@ public: switch (summoned->GetEntry()) { case NPC_DARK_FIENDS: - summoned->CastSpell(summoned, SPELL_DARKFIEND_VISUAL, false); + summoned->CastSpell(summoned, SPELL_DARKFIEND_VISUAL); break; case NPC_DARKNESS: summoned->AddUnitState(UNIT_STATE_STUNNED); @@ -156,42 +136,27 @@ public: break; } summoned->AI()->AttackStart(SelectTarget(SELECT_TARGET_RANDOM, 0, 50, true)); - Summons.Summon(summoned); + summons.Summon(summoned); } - void JustDied(Unit* /*killer*/) override + void ExecuteEvent(uint32 eventId) override { - Summons.DespawnAll(); - instance->SetBossState(DATA_MURU, DONE); + if (eventId == EVENT_SUMMON_BLACK_HOLE) + { + if (Unit* random = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true)) + DoCast(random, SPELL_DARKNESS_E); + if (Unit* random = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true)) + random->CastSpell(random, SPELL_BLACKHOLE); + events.ScheduleEvent(EVENT_SUMMON_BLACK_HOLE, 15000); + } } - void UpdateAI(uint32 diff) override + void EnterEvadeMode() override { - if (!UpdateVictim()) - return; - - if (EnrageTimer < diff && !me->HasAura(SPELL_ENRAGE, 0)) - { - DoCast(me, SPELL_ENRAGE, false); - } else EnrageTimer -= diff; - - if (BlackHoleSummonTimer <= diff) - { - Unit* random = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true); - if (!random) - return; - - DoCast(random, SPELL_DARKNESS_E, false); - - random = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true); - if (!random) - return; - - random->CastSpell(random, SPELL_BLACKHOLE, false); - BlackHoleSummonTimer = 15000; - } else BlackHoleSummonTimer -= diff; - - DoMeleeAttackIfReady(); + if (Creature* muru = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_MURU))) + muru->AI()->Reset(); // Reset encounter. + me->DisappearAndDie(); + summons.DespawnAll(); } }; @@ -206,58 +171,51 @@ class boss_muru : public CreatureScript public: boss_muru() : CreatureScript("boss_muru") { } - struct boss_muruAI : public ScriptedAI + struct boss_muruAI : public BossAI { - boss_muruAI(Creature* creature) : ScriptedAI(creature), Summons(creature) + boss_muruAI(Creature* creature) : BossAI(creature, DATA_MURU) { + Initialize(); SetCombatMovement(false); - instance = creature->GetInstanceScript(); } - InstanceScript* instance; - SummonList Summons; - - uint8 Phase; - uint32 Timer[4]; - - bool DarkFiend; - - void Reset() override + void Initialize() { DarkFiend = false; - Phase = 1; - - EnrageTimer = 600000; - Timer[TIMER_DARKNESS] = 45000; - Timer[TIMER_HUMANOIDES] = 10000; - Timer[TIMER_PHASE] = 2000; - Timer[TIMER_SENTINEL] = 31500; + HasEnraged = false; + EntropiusGUID = 0; + } + void Reset() override + { + Initialize(); + _Reset(); me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); me->SetVisible(true); - - Summons.DespawnAll(); - instance->SetBossState(DATA_MURU, NOT_STARTED); } void EnterCombat(Unit* /*who*/) override { - DoCastAOE(SPELL_NEGATIVE_ENERGY, false); - instance->SetBossState(DATA_MURU, IN_PROGRESS); + _EnterCombat(); + events.SetPhase(PHASE_ONE); + events.ScheduleEvent(EVENT_ENRAGE, 600000); + events.ScheduleEvent(EVENT_DARKNESS, 45000, 0, PHASE_ONE); + events.ScheduleEvent(EVENT_SUMMON_HUMANOIDS, 10000, 0, PHASE_ONE); + events.ScheduleEvent(EVENT_SUMMON_SENTINEL, 31500, 0, PHASE_ONE); + DoCastAOE(SPELL_NEGATIVE_ENERGY); } void DamageTaken(Unit* /*done_by*/, uint32 &damage) override { - if (damage > me->GetHealth() && Phase == 1) + if (damage > me->GetHealth() && events.IsInPhase(PHASE_ONE)) { damage = 0; - Phase = 2; me->RemoveAllAuras(); - DoCast(me, SPELL_OPEN_ALL_PORTALS, false); + DoCast(me, SPELL_OPEN_ALL_PORTALS); me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); + events.SetPhase(PHASE_TWO); + events.ScheduleEvent(EVENT_PHASE_TRANSITION, 2000); } - if (Phase > 1 && Phase < 4) - damage = 0; } void JustSummoned(Creature* summoned) override @@ -266,96 +224,61 @@ public: { case NPC_ENTROPIUS: me->SetVisible(false); + EntropiusGUID = summoned->GetGUID(); + if (HasEnraged) // If we hit phase transition while enraged, enrage Entropius as well. + summoned->CastSpell(summoned, SPELL_ENRAGE); break; case NPC_DARK_FIENDS: - summoned->CastSpell(summoned, SPELL_DARKFIEND_VISUAL, false); + summoned->CastSpell(summoned, SPELL_DARKFIEND_VISUAL); break; } summoned->AI()->AttackStart(SelectTarget(SELECT_TARGET_RANDOM, 0, 50, true)); - Summons.Summon(summoned); + summons.Summon(summoned); } - void UpdateAI(uint32 diff) override + void ExecuteEvent(uint32 eventId) override { - if (!UpdateVictim()) - return; - - if (Phase == 3) + switch (eventId) { - if (Timer[TIMER_PHASE] <= diff) - { - switch (instance->GetBossState(DATA_MURU)) + case EVENT_DARKNESS: + if (!DarkFiend) { - case NOT_STARTED: - Reset(); - break; - case DONE: - Phase = 4; - me->DisappearAndDie(); - break; - default: - break; + DarkFiend = true; + DoCastAOE(SPELL_DARKNESS); } - Timer[TIMER_PHASE] = 3000; - } else Timer[TIMER_PHASE] -= diff; - return; - } - - if (EnrageTimer < diff && !me->HasAura(SPELL_ENRAGE, 0)) - { - DoCast(me, SPELL_ENRAGE, false); - } else EnrageTimer -= diff; - - for (uint8 i = 0; i < 4; ++i) - { - if (Timer[i] <= diff) - { - switch (i) + else { - case TIMER_DARKNESS: - if (!DarkFiend) - { - DoCastAOE(SPELL_DARKNESS, false); - Timer[TIMER_DARKNESS] = 3000; - DarkFiend = true; - } - else - { - DarkFiend = false; - for (uint8 j = 0; j < 8; ++j) - me->SummonCreature(NPC_DARK_FIENDS, DarkFiends[j][0], DarkFiends[j][1], DarkFiends[j][2], DarkFiends[j][3], TEMPSUMMON_CORPSE_DESPAWN, 0); - Timer[TIMER_DARKNESS] = 42000; - } - break; - case TIMER_HUMANOIDES: - for (uint8 j = 0; j < 6; ++j) - me->SummonCreature(uint32(Humanoides[j][0]), Humanoides[j][1], Humanoides[j][2], Humanoides[j][3], Humanoides[j][4], TEMPSUMMON_CORPSE_DESPAWN, 0); - Timer[TIMER_HUMANOIDES] = 60000; - break; - case TIMER_PHASE: - me->RemoveAllAuras(); - DoCast(me, SPELL_SUMMON_ENTROPIUS, false); - Timer[TIMER_PHASE] = 3000; - Phase = 3; - return; - case TIMER_SENTINEL: - DoCastAOE(SPELL_OPEN_PORTAL_2, false); - Timer[TIMER_SENTINEL] = 30000; - break; + DarkFiend = false; + me->SummonCreatureGroup(CREATURE_GROUP_DARKFIENDS); } + events.ScheduleEvent(EVENT_DARKNESS, DarkFiend ? 3000 : 42000, 0, PHASE_ONE); + break; + case EVENT_SUMMON_HUMANOIDS: + me->SummonCreatureGroup(CREATURE_GROUP_DARKFIENDS); + events.ScheduleEvent(EVENT_SUMMON_HUMANOIDS, 60000, 0, PHASE_ONE); + break; + case EVENT_SUMMON_SENTINEL: + DoCastAOE(SPELL_OPEN_PORTAL_2); + events.ScheduleEvent(EVENT_SUMMON_SENTINEL, 30000, 0, PHASE_ONE); + break; + case EVENT_PHASE_TRANSITION: + DoCast(me, SPELL_SUMMON_ENTROPIUS); + break; + case EVENT_ENRAGE: + if (Creature* entropius = ObjectAccessor::GetCreature(*me, EntropiusGUID)) + entropius->CastSpell(entropius, SPELL_ENRAGE); + DoCast(me, SPELL_ENRAGE); + HasEnraged = true; + break; + default: break; - } - } - - // Timer - for (uint8 i = 0; i < 4; ++i) - { - if (i != TIMER_PHASE) - Timer[i] -= diff; - else if (Phase == 2) - Timer[i] -= diff; } } + + private: + bool DarkFiend; + bool HasEnraged; + uint64 EntropiusGUID; }; CreatureAI* GetAI(Creature* creature) const override @@ -405,8 +328,8 @@ public: void JustSummoned(Creature* summoned) override { - if (Player* Target = ObjectAccessor::GetPlayer(*me, instance->GetData64(DATA_PLAYER_GUID))) - summoned->AI()->AttackStart(Target); + if (Player* target = ObjectAccessor::GetPlayer(*me, instance->GetData64(DATA_PLAYER_GUID))) + summoned->AI()->AttackStart(target); Summons.Summon(summoned); } @@ -415,15 +338,15 @@ public: { float x, y, z, o; me->GetHomePosition(x, y, z, o); - DoTeleportTo(x, y, z); + me->NearTeleportTo(x, y, z, o); InAction = true; switch (Spell->Id) { case SPELL_OPEN_ALL_PORTALS: - DoCastAOE(SPELL_OPEN_PORTAL, false); + DoCastAOE(SPELL_OPEN_PORTAL); break; case SPELL_OPEN_PORTAL_2: - DoCastAOE(SPELL_OPEN_PORTAL, false); + DoCastAOE(SPELL_OPEN_PORTAL); SummonSentinel = true; break; } @@ -533,13 +456,14 @@ public: float x, y, z, o; me->GetHomePosition(x, y, z, o); - DoTeleportTo(x, y, 71); + me->NearTeleportTo(x, y, 71, o); } - void JustDied(Unit* /*killer*/) override + void JustDied(Unit* killer) override { for (uint8 i = 0; i < 8; ++i) - me->SummonCreature(NPC_VOID_SPAWN, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), float(rand32() % 6), TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 180000); + if (Creature* temp = me->SummonCreature(NPC_VOID_SPAWN, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), float(rand32() % 6), TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 180000)) + temp->AI()->AttackStart(killer); } void UpdateAI(uint32 diff) override diff --git a/src/server/scripts/EasternKingdoms/Uldaman/boss_archaedas.cpp b/src/server/scripts/EasternKingdoms/Uldaman/boss_archaedas.cpp index f06dc247883..f82d71901ac 100644 --- a/src/server/scripts/EasternKingdoms/Uldaman/boss_archaedas.cpp +++ b/src/server/scripts/EasternKingdoms/Uldaman/boss_archaedas.cpp @@ -64,9 +64,21 @@ class boss_archaedas : public CreatureScript { boss_archaedasAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = me->GetInstanceScript(); } + void Initialize() + { + uiTremorTimer = 60000; + iAwakenTimer = 0; + uiWallMinionTimer = 10000; + + bWakingUp = false; + bGuardiansAwake = false; + bVaultWalkersAwake = false; + } + uint32 uiTremorTimer; int32 iAwakenTimer; uint32 uiWallMinionTimer; @@ -78,13 +90,7 @@ class boss_archaedas : public CreatureScript void Reset() override { - uiTremorTimer = 60000; - iAwakenTimer = 0; - uiWallMinionTimer = 10000; - - bWakingUp = false; - bGuardiansAwake = false; - bVaultWalkersAwake = false; + Initialize(); instance->SetData(0, 5); // respawn any dead minions me->setFaction(35); @@ -224,9 +230,19 @@ class npc_archaedas_minions : public CreatureScript { npc_archaedas_minionsAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = me->GetInstanceScript(); } + void Initialize() + { + uiArcing_Timer = 3000; + iAwakenTimer = 0; + + bWakingUp = false; + bAmIAwake = false; + } + uint32 uiArcing_Timer; int32 iAwakenTimer; bool bWakingUp; @@ -236,11 +252,7 @@ class npc_archaedas_minions : public CreatureScript void Reset() override { - uiArcing_Timer = 3000; - iAwakenTimer = 0; - - bWakingUp = false; - bAmIAwake = false; + Initialize(); me->setFaction(35); me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); diff --git a/src/server/scripts/EasternKingdoms/Uldaman/boss_ironaya.cpp b/src/server/scripts/EasternKingdoms/Uldaman/boss_ironaya.cpp index 13a475604a7..6062f01691c 100644 --- a/src/server/scripts/EasternKingdoms/Uldaman/boss_ironaya.cpp +++ b/src/server/scripts/EasternKingdoms/Uldaman/boss_ironaya.cpp @@ -45,7 +45,17 @@ class boss_ironaya : public CreatureScript struct boss_ironayaAI : public ScriptedAI { - boss_ironayaAI(Creature* creature) : ScriptedAI(creature) { } + boss_ironayaAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } + + void Initialize() + { + uiArcingTimer = 3000; + bHasCastKnockaway = false; + bHasCastWstomp = false; + } uint32 uiArcingTimer; bool bHasCastWstomp; @@ -53,9 +63,7 @@ class boss_ironaya : public CreatureScript void Reset() override { - uiArcingTimer = 3000; - bHasCastKnockaway = false; - bHasCastWstomp = false; + Initialize(); } void EnterCombat(Unit* /*who*/) override diff --git a/src/server/scripts/EasternKingdoms/Uldaman/uldaman.cpp b/src/server/scripts/EasternKingdoms/Uldaman/uldaman.cpp index fdb71cbbf83..236cc55eee8 100644 --- a/src/server/scripts/EasternKingdoms/Uldaman/uldaman.cpp +++ b/src/server/scripts/EasternKingdoms/Uldaman/uldaman.cpp @@ -54,13 +54,21 @@ class npc_jadespine_basilisk : public CreatureScript struct npc_jadespine_basiliskAI : public ScriptedAI { - npc_jadespine_basiliskAI(Creature* creature) : ScriptedAI(creature) { } + npc_jadespine_basiliskAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } + + void Initialize() + { + uiCslumberTimer = 2000; + } uint32 uiCslumberTimer; void Reset() override { - uiCslumberTimer = 2000; + Initialize(); } void EnterCombat(Unit* /*who*/) override diff --git a/src/server/scripts/EasternKingdoms/ZulAman/boss_akilzon.cpp b/src/server/scripts/EasternKingdoms/ZulAman/boss_akilzon.cpp index b55a9cc74d6..b15fdd85a00 100644 --- a/src/server/scripts/EasternKingdoms/ZulAman/boss_akilzon.cpp +++ b/src/server/scripts/EasternKingdoms/ZulAman/boss_akilzon.cpp @@ -88,19 +88,24 @@ class boss_akilzon : public CreatureScript { boss_akilzonAI(Creature* creature) : BossAI(creature, DATA_AKILZONEVENT) { - memset(BirdGUIDs, 0, sizeof(BirdGUIDs)); + Initialize(); } - void Reset() override + void Initialize() { - _Reset(); - TargetGUID = 0; CloudGUID = 0; CycloneGUID = 0; memset(BirdGUIDs, 0, sizeof(BirdGUIDs)); StormCount = 0; isRaining = false; + } + + void Reset() override + { + _Reset(); + + Initialize(); SetWeather(WEATHER_STATE_FINE, 0.0f); } @@ -380,7 +385,17 @@ class npc_akilzon_eagle : public CreatureScript struct npc_akilzon_eagleAI : public ScriptedAI { - npc_akilzon_eagleAI(Creature* creature) : ScriptedAI(creature) { } + npc_akilzon_eagleAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } + + void Initialize() + { + EagleSwoop_Timer = urand(5000, 10000); + arrived = true; + TargetGUID = 0; + } uint32 EagleSwoop_Timer; bool arrived; @@ -388,9 +403,7 @@ class npc_akilzon_eagle : public CreatureScript void Reset() override { - EagleSwoop_Timer = urand(5000, 10000); - arrived = true; - TargetGUID = 0; + Initialize(); me->SetDisableGravity(true); } diff --git a/src/server/scripts/EasternKingdoms/ZulAman/boss_halazzi.cpp b/src/server/scripts/EasternKingdoms/ZulAman/boss_halazzi.cpp index 74ce267441f..0cf1f932f10 100644 --- a/src/server/scripts/EasternKingdoms/ZulAman/boss_halazzi.cpp +++ b/src/server/scripts/EasternKingdoms/ZulAman/boss_halazzi.cpp @@ -74,7 +74,21 @@ class boss_halazzi : public CreatureScript { boss_halazziAI(Creature* creature) : ScriptedAI(creature), summons(me) { + Initialize(); instance = creature->GetInstanceScript(); + Phase = PHASE_NONE; + FrenzyTimer = 0; + SaberlashTimer = 0; + ShockTimer = 0; + TotemTimer = 0; + } + + void Initialize() + { + LynxGUID = 0; + TransformCount = 0; + BerserkTimer = 600000; + CheckTimer = 1000; } InstanceScript* instance; @@ -96,10 +110,7 @@ class boss_halazzi : public CreatureScript instance->SetData(DATA_HALAZZIEVENT, NOT_STARTED); summons.DespawnAll(); - LynxGUID = 0; - TransformCount = 0; - BerserkTimer = 600000; - CheckTimer = 1000; + Initialize(); DoCast(me, SPELL_DUAL_WIELD, true); @@ -321,15 +332,23 @@ class npc_halazzi_lynx : public CreatureScript struct npc_halazzi_lynxAI : public ScriptedAI { - npc_halazzi_lynxAI(Creature* creature) : ScriptedAI(creature) { } + npc_halazzi_lynxAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } + + void Initialize() + { + FrenzyTimer = urand(30000, 50000); //frenzy every 30-50 seconds + shredder_timer = 4000; + } uint32 FrenzyTimer; uint32 shredder_timer; void Reset() override { - FrenzyTimer = urand(30000, 50000); //frenzy every 30-50 seconds - shredder_timer = 4000; + Initialize(); } void DamageTaken(Unit* /*done_by*/, uint32 &damage) override diff --git a/src/server/scripts/EasternKingdoms/ZulAman/boss_hexlord.cpp b/src/server/scripts/EasternKingdoms/ZulAman/boss_hexlord.cpp index 0fee04f0d20..3c9d4397d24 100644 --- a/src/server/scripts/EasternKingdoms/ZulAman/boss_hexlord.cpp +++ b/src/server/scripts/EasternKingdoms/ZulAman/boss_hexlord.cpp @@ -254,10 +254,23 @@ class boss_hexlord_malacrass : public CreatureScript { boss_hex_lord_malacrassAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); SelectAddEntry(); for (uint8 i = 0; i < 4; ++i) AddGUID[i] = 0; + PlayerGUID = 0; + PlayerClass = CLASS_NONE; + } + + void Initialize() + { + SpiritBolts_Timer = 20000; + DrainPower_Timer = 60000; + SiphonSoul_Timer = 100000; + PlayerAbility_Timer = 99999; + CheckAddState_Timer = 5000; + ResetTimer = 5000; } InstanceScript* instance; @@ -280,12 +293,7 @@ class boss_hexlord_malacrass : public CreatureScript { instance->SetData(DATA_HEXLORDEVENT, NOT_STARTED); - SpiritBolts_Timer = 20000; - DrainPower_Timer = 60000; - SiphonSoul_Timer = 100000; - PlayerAbility_Timer = 99999; - CheckAddState_Timer = 5000; - ResetTimer = 5000; + Initialize(); SpawnAdds(); @@ -523,15 +531,23 @@ class boss_thurg : public CreatureScript struct boss_thurgAI : public boss_hexlord_addAI { - boss_thurgAI(Creature* creature) : boss_hexlord_addAI(creature) { } + boss_thurgAI(Creature* creature) : boss_hexlord_addAI(creature) + { + Initialize(); + } + + void Initialize() + { + bloodlust_timer = 15000; + cleave_timer = 10000; + } uint32 bloodlust_timer; uint32 cleave_timer; void Reset() override { - bloodlust_timer = 15000; - cleave_timer = 10000; + Initialize(); boss_hexlord_addAI::Reset(); } @@ -580,15 +596,23 @@ class boss_alyson_antille : public CreatureScript struct boss_alyson_antilleAI : public boss_hexlord_addAI { //Holy Priest - boss_alyson_antilleAI(Creature* creature) : boss_hexlord_addAI(creature) { } + boss_alyson_antilleAI(Creature* creature) : boss_hexlord_addAI(creature) + { + Initialize(); + } + + void Initialize() + { + flashheal_timer = 2500; + dispelmagic_timer = 10000; + } uint32 flashheal_timer; uint32 dispelmagic_timer; void Reset() override { - flashheal_timer = 2500; - dispelmagic_timer = 10000; + Initialize(); //AcquireGUID(); @@ -667,13 +691,21 @@ class boss_alyson_antille : public CreatureScript struct boss_gazakrothAI : public boss_hexlord_addAI { - boss_gazakrothAI(Creature* creature) : boss_hexlord_addAI(creature) { } + boss_gazakrothAI(Creature* creature) : boss_hexlord_addAI(creature) + { + Initialize(); + } + + void Initialize() + { + firebolt_timer = 2000; + } uint32 firebolt_timer; void Reset() override { - firebolt_timer = 2000; + Initialize(); boss_hexlord_addAI::Reset(); } @@ -718,15 +750,23 @@ class boss_lord_raadan : public CreatureScript struct boss_lord_raadanAI : public boss_hexlord_addAI { - boss_lord_raadanAI(Creature* creature) : boss_hexlord_addAI(creature) { } + boss_lord_raadanAI(Creature* creature) : boss_hexlord_addAI(creature) + { + Initialize(); + } + + void Initialize() + { + flamebreath_timer = 8000; + thunderclap_timer = 13000; + } uint32 flamebreath_timer; uint32 thunderclap_timer; void Reset() override { - flamebreath_timer = 8000; - thunderclap_timer = 13000; + Initialize(); boss_hexlord_addAI::Reset(); @@ -769,13 +809,21 @@ class boss_darkheart : public CreatureScript struct boss_darkheartAI : public boss_hexlord_addAI { - boss_darkheartAI(Creature* creature) : boss_hexlord_addAI(creature) { } + boss_darkheartAI(Creature* creature) : boss_hexlord_addAI(creature) + { + Initialize(); + } + + void Initialize() + { + psychicwail_timer = 8000; + } uint32 psychicwail_timer; void Reset() override { - psychicwail_timer = 8000; + Initialize(); boss_hexlord_addAI::Reset(); } void UpdateAI(uint32 diff) override @@ -811,13 +859,21 @@ class boss_slither : public CreatureScript struct boss_slitherAI : public boss_hexlord_addAI { - boss_slitherAI(Creature* creature) : boss_hexlord_addAI(creature) { } + boss_slitherAI(Creature* creature) : boss_hexlord_addAI(creature) + { + Initialize(); + } + + void Initialize() + { + venomspit_timer = 5000; + } uint32 venomspit_timer; void Reset() override { - venomspit_timer = 5000; + Initialize(); boss_hexlord_addAI::Reset(); } @@ -869,13 +925,21 @@ class boss_fenstalker : public CreatureScript struct boss_fenstalkerAI : public boss_hexlord_addAI { - boss_fenstalkerAI(Creature* creature) : boss_hexlord_addAI(creature) { } + boss_fenstalkerAI(Creature* creature) : boss_hexlord_addAI(creature) + { + Initialize(); + } + + void Initialize() + { + volatileinf_timer = 15000; + } uint32 volatileinf_timer; void Reset() override { - volatileinf_timer = 15000; + Initialize(); boss_hexlord_addAI::Reset(); } @@ -913,15 +977,23 @@ class boss_koragg : public CreatureScript struct boss_koraggAI : public boss_hexlord_addAI { - boss_koraggAI(Creature* creature) : boss_hexlord_addAI(creature) { } + boss_koraggAI(Creature* creature) : boss_hexlord_addAI(creature) + { + Initialize(); + } + + void Initialize() + { + coldstare_timer = 15000; + mightyblow_timer = 10000; + } uint32 coldstare_timer; uint32 mightyblow_timer; void Reset() override { - coldstare_timer = 15000; - mightyblow_timer = 10000; + Initialize(); boss_hexlord_addAI::Reset(); } diff --git a/src/server/scripts/EasternKingdoms/ZulAman/boss_janalai.cpp b/src/server/scripts/EasternKingdoms/ZulAman/boss_janalai.cpp index d5260c18add..2e434ed6ab5 100644 --- a/src/server/scripts/EasternKingdoms/ZulAman/boss_janalai.cpp +++ b/src/server/scripts/EasternKingdoms/ZulAman/boss_janalai.cpp @@ -121,9 +121,29 @@ class boss_janalai : public CreatureScript { boss_janalaiAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); } + void Initialize() + { + FireBreathTimer = 8000; + BombTimer = 30000; + BombSequenceTimer = 1000; + BombCount = 0; + HatcherTimer = 10000; + EnrageTimer = MINUTE * 5 * IN_MILLISECONDS; + + noeggs = false; + isBombing = false; + enraged = false; + + isFlameBreathing = false; + + for (uint8 i = 0; i < 40; ++i) + FireBombGUIDs[i] = 0; + } + InstanceScript* instance; uint32 FireBreathTimer; @@ -145,21 +165,7 @@ class boss_janalai : public CreatureScript { instance->SetData(DATA_JANALAIEVENT, NOT_STARTED); - FireBreathTimer = 8000; - BombTimer = 30000; - BombSequenceTimer = 1000; - BombCount = 0; - HatcherTimer = 10000; - EnrageTimer = MINUTE*5*IN_MILLISECONDS; - - noeggs = false; - isBombing =false; - enraged = false; - - isFlameBreathing = false; - - for (uint8 i = 0; i < 40; ++i) - FireBombGUIDs[i] = 0; + Initialize(); HatchAllEggs(1); } @@ -493,9 +499,20 @@ class npc_janalai_hatcher : public CreatureScript { npc_janalai_hatcherAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); } + void Initialize() + { + waypoint = 0; + isHatching = false; + hasChangedSide = false; + WaitTimer = 1; + HatchNum = 0; + side = false; + } + InstanceScript* instance; uint32 waypoint; @@ -509,12 +526,8 @@ class npc_janalai_hatcher : public CreatureScript void Reset() override { me->SetWalk(true); + Initialize(); side =(me->GetPositionY() < 1150); - waypoint = 0; - isHatching = false; - hasChangedSide = false; - WaitTimer = 1; - HatchNum = 0; } bool HatchEggs(uint32 num) @@ -626,15 +639,21 @@ class npc_janalai_hatchling : public CreatureScript { npc_janalai_hatchlingAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); } + void Initialize() + { + BuffetTimer = 7000; + } + InstanceScript* instance; uint32 BuffetTimer; void Reset() override { - BuffetTimer = 7000; + Initialize(); if (me->GetPositionY() > 1150) me->GetMotionMaster()->MovePoint(0, hatcherway[0][3][0] + rand32() % 4 - 2, 1150.0f + rand32() % 4 - 2, hatcherway[0][3][2]); else diff --git a/src/server/scripts/EasternKingdoms/ZulAman/boss_nalorakk.cpp b/src/server/scripts/EasternKingdoms/ZulAman/boss_nalorakk.cpp index 4909074b059..c9c028021f1 100644 --- a/src/server/scripts/EasternKingdoms/ZulAman/boss_nalorakk.cpp +++ b/src/server/scripts/EasternKingdoms/ZulAman/boss_nalorakk.cpp @@ -109,11 +109,28 @@ class boss_nalorakk : public CreatureScript { boss_nalorakkAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); + inMove = false; MoveEvent = true; MovePhase = 0; + waitTimer = 0; + LaceratingSlash_Timer = 0; + RendFlesh_Timer = 0; + DeafeningRoar_Timer = 0; instance = creature->GetInstanceScript(); } + void Initialize() + { + Surge_Timer = urand(15000, 20000); + BrutalSwipe_Timer = urand(7000, 12000); + Mangle_Timer = urand(10000, 15000); + ShapeShift_Timer = urand(45000, 50000); + Berserk_Timer = 600000; + + inBearForm = false; + } + InstanceScript* instance; uint32 BrutalSwipe_Timer; @@ -150,13 +167,7 @@ class boss_nalorakk : public CreatureScript instance->SetData(DATA_NALORAKKEVENT, NOT_STARTED); - Surge_Timer = urand(15000, 20000); - BrutalSwipe_Timer = urand(7000, 12000); - Mangle_Timer = urand(10000, 15000); - ShapeShift_Timer = urand(45000, 50000); - Berserk_Timer = 600000; - - inBearForm = false; + Initialize(); // me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 1, 5122); /// @todo find the correct equipment id } diff --git a/src/server/scripts/EasternKingdoms/ZulAman/boss_zuljin.cpp b/src/server/scripts/EasternKingdoms/ZulAman/boss_zuljin.cpp index 6b0fc05ba3d..5b9957cb94d 100644 --- a/src/server/scripts/EasternKingdoms/ZulAman/boss_zuljin.cpp +++ b/src/server/scripts/EasternKingdoms/ZulAman/boss_zuljin.cpp @@ -136,8 +136,38 @@ class boss_zuljin : public CreatureScript { boss_zuljinAI(Creature* creature) : ScriptedAI(creature), Summons(me) { + Initialize(); instance = creature->GetInstanceScript(); + memset(SpiritGUID, 0, sizeof(SpiritGUID)); + health_20 = 0; } + + void Initialize() + { + Phase = 0; + + Intro_Timer = 37000; + Berserk_Timer = 600000; + + Whirlwind_Timer = 7000; + Grievous_Throw_Timer = 8000; + + Creeping_Paralysis_Timer = 7000; + Overpower_Timer = 0; + + Claw_Rage_Timer = 5000; + Lynx_Rush_Timer = 14000; + Claw_Loop_Timer = 0; + Claw_Counter = 0; + + Flame_Whirl_Timer = 5000; + Flame_Breath_Timer = 6000; + Pillar_Of_Fire_Timer = 7000; + + ClawTargetGUID = 0; + TankGUID = 0; + } + InstanceScript* instance; uint64 SpiritGUID[4]; @@ -171,30 +201,9 @@ class boss_zuljin : public CreatureScript { instance->SetData(DATA_ZULJINEVENT, NOT_STARTED); - Phase = 0; - health_20 = me->CountPctFromMaxHealth(20); - Intro_Timer = 37000; - Berserk_Timer = 600000; - - Whirlwind_Timer = 7000; - Grievous_Throw_Timer = 8000; - - Creeping_Paralysis_Timer = 7000; - Overpower_Timer = 0; - - Claw_Rage_Timer = 5000; - Lynx_Rush_Timer = 14000; - Claw_Loop_Timer = 0; - Claw_Counter = 0; - - Flame_Whirl_Timer = 5000; - Flame_Breath_Timer = 6000; - Pillar_Of_Fire_Timer = 7000; - - ClawTargetGUID = 0; - TankGUID = 0; + Initialize(); Summons.DespawnAll(); diff --git a/src/server/scripts/EasternKingdoms/ZulAman/zulaman.cpp b/src/server/scripts/EasternKingdoms/ZulAman/zulaman.cpp index 5561ed3c2dd..6784ff086c7 100644 --- a/src/server/scripts/EasternKingdoms/ZulAman/zulaman.cpp +++ b/src/server/scripts/EasternKingdoms/ZulAman/zulaman.cpp @@ -131,38 +131,6 @@ class npc_zulaman_hostage : public CreatureScript public: npc_zulaman_hostage() : CreatureScript("npc_zulaman_hostage") { } - struct npc_zulaman_hostageAI : public ScriptedAI - { - npc_zulaman_hostageAI(Creature* creature) : ScriptedAI(creature) - { - IsLoot = false; - } - - bool IsLoot; - uint64 PlayerGUID; - - void Reset() override { } - - void EnterCombat(Unit* /*who*/) override { } - - void JustDied(Unit* /*killer*/) override - { - if (Player* player = ObjectAccessor::GetPlayer(*me, PlayerGUID)) - player->SendLoot(me->GetGUID(), LOOT_CORPSE); - } - - void UpdateAI(uint32 /*diff*/) override - { - if (IsLoot) - DoCast(me, 7, false); - } - }; - - CreatureAI* GetAI(Creature* creature) const override - { - return new npc_zulaman_hostageAI(creature); - } - bool OnGossipHello(Player* player, Creature* creature) override { player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_HOSTAGE1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1); @@ -276,9 +244,17 @@ class npc_harrison_jones : public CreatureScript { npc_harrison_jonesAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); } + void Initialize() + { + _gongEvent = 0; + _gongTimer = 0; + uiTargetGUID = 0; + } + InstanceScript* instance; uint8 _gongEvent; @@ -287,9 +263,7 @@ class npc_harrison_jones : public CreatureScript void Reset() override { - _gongEvent = 0; - _gongTimer = 0; - uiTargetGUID = 0; + Initialize(); } void EnterCombat(Unit* /*who*/) override { } diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_arlokk.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_arlokk.cpp index 4ac34615498..0d780da6560 100644 --- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_arlokk.cpp +++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_arlokk.cpp @@ -92,15 +92,25 @@ class boss_arlokk : public CreatureScript struct boss_arlokkAI : public BossAI { - boss_arlokkAI(Creature* creature) : BossAI(creature, DATA_ARLOKK) { } + boss_arlokkAI(Creature* creature) : BossAI(creature, DATA_ARLOKK) + { + Initialize(); + memset(_triggersSideAGUID, 0, sizeof(_triggersSideAGUID)); + memset(_triggersSideBGUID, 0, sizeof(_triggersSideBGUID)); + } + + void Initialize() + { + _summonCountA = 0; + _summonCountB = 0; + } void Reset() override { if (events.IsInPhase(PHASE_TWO)) me->HandleStatModifier(UNIT_MOD_DAMAGE_MAINHAND, TOTAL_PCT, 35.0f, false); // hack _Reset(); - _summonCountA = 0; - _summonCountB = 0; + Initialize(); me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 0, uint32(WEAPON_DAGGER)); me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 1, uint32(WEAPON_DAGGER)); me->SetWalk(false); @@ -332,7 +342,10 @@ class npc_zulian_prowler : public CreatureScript struct npc_zulian_prowlerAI : public ScriptedAI { - npc_zulian_prowlerAI(Creature* creature) : ScriptedAI(creature), _instance(creature->GetInstanceScript()) { } + npc_zulian_prowlerAI(Creature* creature) : ScriptedAI(creature), _instance(creature->GetInstanceScript()) + { + _sideData = 0; + } void Reset() override { diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_jeklik.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_jeklik.cpp index 7a16f670afe..f31477e8e35 100644 --- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_jeklik.cpp +++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_jeklik.cpp @@ -212,13 +212,21 @@ class npc_batrider : public CreatureScript struct npc_batriderAI : public ScriptedAI { - npc_batriderAI(Creature* creature) : ScriptedAI(creature) { } + npc_batriderAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } + + void Initialize() + { + Bomb_Timer = 2000; + } uint32 Bomb_Timer; void Reset() override { - Bomb_Timer = 2000; + Initialize(); me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); } diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_jindo.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_jindo.cpp index f766a795658..d1c9579c027 100644 --- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_jindo.cpp +++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_jindo.cpp @@ -175,15 +175,21 @@ class npc_healing_ward : public CreatureScript { npc_healing_wardAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); } + void Initialize() + { + Heal_Timer = 2000; + } + uint32 Heal_Timer; InstanceScript* instance; void Reset() override { - Heal_Timer = 2000; + Initialize(); } void EnterCombat(Unit* /*who*/) override { } @@ -216,13 +222,21 @@ class npc_shade_of_jindo : public CreatureScript struct npc_shade_of_jindoAI : public ScriptedAI { - npc_shade_of_jindoAI(Creature* creature) : ScriptedAI(creature) { } + npc_shade_of_jindoAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } + + void Initialize() + { + ShadowShock_Timer = 1000; + } uint32 ShadowShock_Timer; void Reset() override { - ShadowShock_Timer = 1000; + Initialize(); DoCast(me, SPELL_INVISIBLE, true); } diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_mandokir.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_mandokir.cpp index 72ba9db3637..6244d2b72b1 100644 --- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_mandokir.cpp +++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_mandokir.cpp @@ -112,14 +112,23 @@ class boss_mandokir : public CreatureScript struct boss_mandokirAI : public BossAI { - boss_mandokirAI(Creature* creature) : BossAI(creature, DATA_MANDOKIR) { } + boss_mandokirAI(Creature* creature) : BossAI(creature, DATA_MANDOKIR) + { + Initialize(); + memset(chainedSpirtGUIDs, 0, sizeof(chainedSpirtGUIDs)); + } + + void Initialize() + { + killCount = 0; + } void Reset() override { if (me->GetPositionZ() > 140.0f) { _Reset(); - killCount = 0; + Initialize(); me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC); events.ScheduleEvent(EVENT_CHECK_START, 1000); if (Creature* speaker = ObjectAccessor::GetCreature(*me, instance->GetData64(NPC_VILEBRANCH_SPEAKER))) @@ -300,13 +309,21 @@ class npc_ohgan : public CreatureScript struct npc_ohganAI : public ScriptedAI { - npc_ohganAI(Creature* creature) : ScriptedAI(creature), instance(creature->GetInstanceScript()) { } + npc_ohganAI(Creature* creature) : ScriptedAI(creature), instance(creature->GetInstanceScript()) + { + Initialize(); + } - void Reset() override + void Initialize() { SunderArmor_Timer = 5000; } + void Reset() override + { + Initialize(); + } + void EnterCombat(Unit* /*who*/) override { } void JustDied(Unit* /*killer*/) override @@ -353,14 +370,22 @@ class npc_vilebranch_speaker : public CreatureScript struct npc_vilebranch_speakerAI : public ScriptedAI { - npc_vilebranch_speakerAI(Creature* creature) : ScriptedAI(creature), instance(creature->GetInstanceScript()) { } + npc_vilebranch_speakerAI(Creature* creature) : ScriptedAI(creature), instance(creature->GetInstanceScript()) + { + Initialize(); + } - void Reset() override + void Initialize() { demoralizing_Shout_Timer = urand(2000, 4000); cleave_Timer = urand(5000, 8000); } + void Reset() override + { + Initialize(); + } + void EnterCombat(Unit* /*who*/) override { } void JustDied(Unit* /*killer*/) override diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_marli.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_marli.cpp index bbc1fb6c90e..8020bced16b 100644 --- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_marli.cpp +++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_marli.cpp @@ -217,13 +217,21 @@ class npc_spawn_of_marli : public CreatureScript struct npc_spawn_of_marliAI : public ScriptedAI { - npc_spawn_of_marliAI(Creature* creature) : ScriptedAI(creature) { } + npc_spawn_of_marliAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } + + void Initialize() + { + LevelUp_Timer = 3000; + } uint32 LevelUp_Timer; void Reset() override { - LevelUp_Timer = 3000; + Initialize(); } void EnterCombat(Unit* /*who*/) override { } diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_renataki.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_renataki.cpp index 015a2840a9c..4f907098ff4 100644 --- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_renataki.cpp +++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_renataki.cpp @@ -45,7 +45,22 @@ class boss_renataki : public CreatureScript struct boss_renatakiAI : public BossAI { - boss_renatakiAI(Creature* creature) : BossAI(creature, DATA_EDGE_OF_MADNESS) { } + boss_renatakiAI(Creature* creature) : BossAI(creature, DATA_EDGE_OF_MADNESS) + { + Initialize(); + } + + void Initialize() + { + Invisible_Timer = urand(8000, 18000); + Ambush_Timer = 3000; + Visible_Timer = 4000; + Aggro_Timer = urand(15000, 25000); + ThousandBlades_Timer = urand(4000, 8000); + + Invisible = false; + Ambushed = false; + } uint32 Invisible_Timer; uint32 Ambush_Timer; @@ -59,14 +74,7 @@ class boss_renataki : public CreatureScript void Reset() override { _Reset(); - Invisible_Timer = urand(8000, 18000); - Ambush_Timer = 3000; - Visible_Timer = 4000; - Aggro_Timer = urand(15000, 25000); - ThousandBlades_Timer = urand(4000, 8000); - - Invisible = false; - Ambushed = false; + Initialize(); } void JustDied(Unit* /*killer*/) override diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_thekal.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_thekal.cpp index 997818aced2..57a286c1e58 100644 --- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_thekal.cpp +++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_thekal.cpp @@ -83,7 +83,16 @@ class boss_thekal : public CreatureScript struct boss_thekalAI : public BossAI { - boss_thekalAI(Creature* creature) : BossAI(creature, DATA_THEKAL) { } + boss_thekalAI(Creature* creature) : BossAI(creature, DATA_THEKAL) + { + Initialize(); + } + + void Initialize() + { + Enraged = false; + WasDead = false; + } bool Enraged; bool WasDead; @@ -93,8 +102,7 @@ class boss_thekal : public CreatureScript if (events.IsInPhase(PHASE_TWO)) me->HandleStatModifier(UNIT_MOD_DAMAGE_MAINHAND, TOTAL_PCT, 35.0f, false); // hack _Reset(); - Enraged = false; - WasDead = false; + Initialize(); } void JustDied(Unit* /*killer*/) override @@ -264,9 +272,21 @@ class npc_zealot_lorkhan : public CreatureScript { npc_zealot_lorkhanAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); } + void Initialize() + { + Shield_Timer = 1000; + BloodLust_Timer = 16000; + GreaterHeal_Timer = 32000; + Disarm_Timer = 6000; + Check_Timer = 10000; + + FakeDeath = false; + } + uint32 Shield_Timer; uint32 BloodLust_Timer; uint32 GreaterHeal_Timer; @@ -279,13 +299,7 @@ class npc_zealot_lorkhan : public CreatureScript void Reset() override { - Shield_Timer = 1000; - BloodLust_Timer = 16000; - GreaterHeal_Timer = 32000; - Disarm_Timer = 6000; - Check_Timer = 10000; - - FakeDeath = false; + Initialize(); instance->SetBossState(DATA_LORKHAN, NOT_STARTED); @@ -412,9 +426,22 @@ class npc_zealot_zath : public CreatureScript { npc_zealot_zathAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); } + void Initialize() + { + SweepingStrikes_Timer = 13000; + SinisterStrike_Timer = 8000; + Gouge_Timer = 25000; + Kick_Timer = 18000; + Blind_Timer = 5000; + Check_Timer = 10000; + + FakeDeath = false; + } + uint32 SweepingStrikes_Timer; uint32 SinisterStrike_Timer; uint32 Gouge_Timer; @@ -428,14 +455,7 @@ class npc_zealot_zath : public CreatureScript void Reset() override { - SweepingStrikes_Timer = 13000; - SinisterStrike_Timer = 8000; - Gouge_Timer = 25000; - Kick_Timer = 18000; - Blind_Timer = 5000; - Check_Timer = 10000; - - FakeDeath = false; + Initialize(); instance->SetBossState(DATA_ZATH, NOT_STARTED); diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_venoxis.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_venoxis.cpp index 7047d22c970..c7b8a16fae1 100644 --- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_venoxis.cpp +++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_venoxis.cpp @@ -90,7 +90,17 @@ class boss_venoxis : public CreatureScript struct boss_venoxisAI : public BossAI { - boss_venoxisAI(Creature* creature) : BossAI(creature, DATA_VENOXIS) { } + boss_venoxisAI(Creature* creature) : BossAI(creature, DATA_VENOXIS) + { + Initialize(); + } + + void Initialize() + { + _inMeleeRange = 0; + _transformed = false; + _frenzied = false; + } void Reset() override { @@ -99,9 +109,7 @@ class boss_venoxis : public CreatureScript me->RemoveAllAuras(); me->SetReactState(REACT_PASSIVE); // set some internally used variables to their defaults - _inMeleeRange = 0; - _transformed = false; - _frenzied = false; + Initialize(); events.SetPhase(PHASE_ONE); } diff --git a/src/server/scripts/EasternKingdoms/zone_duskwood.cpp b/src/server/scripts/EasternKingdoms/zone_duskwood.cpp index 4eaf98d0a0e..b42f09b009e 100644 --- a/src/server/scripts/EasternKingdoms/zone_duskwood.cpp +++ b/src/server/scripts/EasternKingdoms/zone_duskwood.cpp @@ -55,12 +55,20 @@ public: struct boss_twilight_corrupterAI : public ScriptedAI { - boss_twilight_corrupterAI(Creature* creature) : ScriptedAI(creature) { } + boss_twilight_corrupterAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } + + void Initialize() + { + KillCount = 0; + } void Reset() override { _events.Reset(); - KillCount = 0; + Initialize(); } void EnterCombat(Unit* /*who*/) override diff --git a/src/server/scripts/EasternKingdoms/zone_hinterlands.cpp b/src/server/scripts/EasternKingdoms/zone_hinterlands.cpp index 86ddf33f2fd..268a78bb491 100644 --- a/src/server/scripts/EasternKingdoms/zone_hinterlands.cpp +++ b/src/server/scripts/EasternKingdoms/zone_hinterlands.cpp @@ -178,16 +178,22 @@ public: { npc_rinjiAI(Creature* creature) : npc_escortAI(creature) { + Initialize(); _IsByOutrunner = false; spawnId = 0; } - void Reset() override + void Initialize() { postEventCount = 0; postEventTimer = 3000; } + void Reset() override + { + Initialize(); + } + void JustRespawned() override { _IsByOutrunner = false; diff --git a/src/server/scripts/EasternKingdoms/zone_isle_of_queldanas.cpp b/src/server/scripts/EasternKingdoms/zone_isle_of_queldanas.cpp index fc8fdf41f51..4ce30bd5834 100644 --- a/src/server/scripts/EasternKingdoms/zone_isle_of_queldanas.cpp +++ b/src/server/scripts/EasternKingdoms/zone_isle_of_queldanas.cpp @@ -57,15 +57,23 @@ public: struct npc_converted_sentryAI : public ScriptedAI { - npc_converted_sentryAI(Creature* creature) : ScriptedAI(creature) { } + npc_converted_sentryAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } + + void Initialize() + { + Credit = false; + Timer = 2500; + } bool Credit; uint32 Timer; void Reset() override { - Credit = false; - Timer = 2500; + Initialize(); } void MoveInLineOfSight(Unit* /*who*/) override { } diff --git a/src/server/scripts/EasternKingdoms/zone_redridge_mountains.cpp b/src/server/scripts/EasternKingdoms/zone_redridge_mountains.cpp index 342bba3b729..5907b0b155f 100644 --- a/src/server/scripts/EasternKingdoms/zone_redridge_mountains.cpp +++ b/src/server/scripts/EasternKingdoms/zone_redridge_mountains.cpp @@ -45,14 +45,22 @@ public: struct npc_corporal_keeshanAI : public npc_escortAI { - npc_corporal_keeshanAI(Creature* creature) : npc_escortAI(creature) { } + npc_corporal_keeshanAI(Creature* creature) : npc_escortAI(creature) + { + Initialize(); + } - void Reset() override + void Initialize() { timer = 0; phase = 0; mockingBlowTimer = 5000; - shieldBashTimer = 8000; + shieldBashTimer = 8000; + } + + void Reset() override + { + Initialize(); } void sQuestAccept(Player* player, Quest const* quest) diff --git a/src/server/scripts/EasternKingdoms/zone_silverpine_forest.cpp b/src/server/scripts/EasternKingdoms/zone_silverpine_forest.cpp index 6bdf43c3305..84f650ec9f4 100644 --- a/src/server/scripts/EasternKingdoms/zone_silverpine_forest.cpp +++ b/src/server/scripts/EasternKingdoms/zone_silverpine_forest.cpp @@ -188,7 +188,16 @@ public: { pyrewood_ambushAI(Creature* creature) : ScriptedAI(creature), Summons(me) { - QuestInProgress = false; + Initialize(); + WaitTimer = WAIT_SECS; + QuestInProgress = false; + } + + void Initialize() + { + Phase = 0; + KillCount = 0; + PlayerGUID = 0; } uint32 Phase; @@ -205,9 +214,7 @@ public: if (!QuestInProgress) //fix reset values (see UpdateVictim) { - Phase = 0; - KillCount = 0; - PlayerGUID = 0; + Initialize(); Summons.DespawnAll(); } } diff --git a/src/server/scripts/EasternKingdoms/zone_stormwind_city.cpp b/src/server/scripts/EasternKingdoms/zone_stormwind_city.cpp index 16c66c5e4e3..ee29c0a7b6e 100644 --- a/src/server/scripts/EasternKingdoms/zone_stormwind_city.cpp +++ b/src/server/scripts/EasternKingdoms/zone_stormwind_city.cpp @@ -233,7 +233,18 @@ public: struct npc_lord_gregor_lescovarAI : public npc_escortAI { - npc_lord_gregor_lescovarAI(Creature* creature) : npc_escortAI(creature) { } + npc_lord_gregor_lescovarAI(Creature* creature) : npc_escortAI(creature) + { + Initialize(); + } + + void Initialize() + { + uiTimer = 0; + uiPhase = 0; + + MarzonGUID = 0; + } uint32 uiTimer; uint32 uiPhase; @@ -242,10 +253,7 @@ public: void Reset() override { - uiTimer = 0; - uiPhase = 0; - - MarzonGUID = 0; + Initialize(); } void EnterEvadeMode() override @@ -486,15 +494,23 @@ public: struct npc_tyrion_spybotAI : public npc_escortAI { - npc_tyrion_spybotAI(Creature* creature) : npc_escortAI(creature) { } + npc_tyrion_spybotAI(Creature* creature) : npc_escortAI(creature) + { + Initialize(); + } + + void Initialize() + { + uiTimer = 0; + uiPhase = 0; + } uint32 uiTimer; uint32 uiPhase; void Reset() override { - uiTimer = 0; - uiPhase = 0; + Initialize(); } void WaypointReached(uint32 waypointId) override diff --git a/src/server/scripts/EasternKingdoms/zone_stranglethorn_vale.cpp b/src/server/scripts/EasternKingdoms/zone_stranglethorn_vale.cpp index b52cb9fa1bf..d1bb7ae3c6a 100644 --- a/src/server/scripts/EasternKingdoms/zone_stranglethorn_vale.cpp +++ b/src/server/scripts/EasternKingdoms/zone_stranglethorn_vale.cpp @@ -50,15 +50,21 @@ public: { npc_yennikuAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); bReset = false; } + void Initialize() + { + Reset_Timer = 0; + } + uint32 Reset_Timer; bool bReset; void Reset() override { - Reset_Timer = 0; + Initialize(); me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_NONE); } diff --git a/src/server/scripts/EasternKingdoms/zone_tirisfal_glades.cpp b/src/server/scripts/EasternKingdoms/zone_tirisfal_glades.cpp index 4d19256e5a1..f953742b864 100644 --- a/src/server/scripts/EasternKingdoms/zone_tirisfal_glades.cpp +++ b/src/server/scripts/EasternKingdoms/zone_tirisfal_glades.cpp @@ -68,7 +68,17 @@ public: struct npc_calvin_montagueAI : public ScriptedAI { - npc_calvin_montagueAI(Creature* creature) : ScriptedAI(creature) { } + npc_calvin_montagueAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } + + void Initialize() + { + m_uiPhase = 0; + m_uiPhaseTimer = 5000; + m_uiPlayerGUID = 0; + } uint32 m_uiPhase; uint32 m_uiPhaseTimer; @@ -76,9 +86,7 @@ public: void Reset() override { - m_uiPhase = 0; - m_uiPhaseTimer = 5000; - m_uiPlayerGUID = 0; + Initialize(); me->RestoreFaction(); diff --git a/src/server/scripts/EasternKingdoms/zone_undercity.cpp b/src/server/scripts/EasternKingdoms/zone_undercity.cpp index 41e6bafd4a7..ea997c5563f 100644 --- a/src/server/scripts/EasternKingdoms/zone_undercity.cpp +++ b/src/server/scripts/EasternKingdoms/zone_undercity.cpp @@ -99,7 +99,23 @@ public: struct npc_lady_sylvanas_windrunnerAI : public ScriptedAI { - npc_lady_sylvanas_windrunnerAI(Creature* creature) : ScriptedAI(creature) { } + npc_lady_sylvanas_windrunnerAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } + + void Initialize() + { + LamentEventTimer = 5000; + LamentEvent = false; + targetGUID = 0; + + FadeTimer = 30000; + SummonSkeletonTimer = 20000; + BlackArrowTimer = 15000; + ShotTimer = 8000; + MultiShotTimer = 10000; + } uint32 LamentEventTimer; bool LamentEvent; @@ -113,15 +129,7 @@ public: void Reset() override { - LamentEventTimer = 5000; - LamentEvent = false; - targetGUID = 0; - - FadeTimer = 30000; - SummonSkeletonTimer = 20000; - BlackArrowTimer = 15000; - ShotTimer = 8000; - MultiShotTimer = 10000; + Initialize(); } void EnterCombat(Unit* /*who*/) override { } @@ -231,7 +239,18 @@ public: struct npc_highborne_lamenterAI : public ScriptedAI { - npc_highborne_lamenterAI(Creature* creature) : ScriptedAI(creature) { } + npc_highborne_lamenterAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } + + void Initialize() + { + EventMoveTimer = 10000; + EventCastTimer = 17500; + EventMove = true; + EventCast = true; + } uint32 EventMoveTimer; uint32 EventCastTimer; @@ -240,10 +259,7 @@ public: void Reset() override { - EventMoveTimer = 10000; - EventCastTimer = 17500; - EventMove = true; - EventCast = true; + Initialize(); } void EnterCombat(Unit* /*who*/) override { } diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_lord_marrowgar.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_lord_marrowgar.cpp index 1ff7e1b1352..9d24ad062df 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_lord_marrowgar.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_lord_marrowgar.cpp @@ -643,7 +643,7 @@ class spell_marrowgar_bone_spike_graveyard : public SpellScriptLoader for (std::list<Unit*>::const_iterator itr = targets.begin(); itr != targets.end(); ++itr, ++i) { Unit* target = *itr; - target->CastCustomSpell(BoneSpikeSummonId[i], SPELLVALUE_BASE_POINT0, 0, target, true); + target->CastSpell(target, BoneSpikeSummonId[i], true); } marrowgarAI->Talk(SAY_BONESPIKE); diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp index f60a7ba278b..11f20129b3e 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp @@ -1269,7 +1269,13 @@ class spell_putricide_mutated_plague : public SpellScriptLoader void OnRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) { uint32 healSpell = uint32(GetSpellInfo()->Effects[EFFECT_0].CalcValue()); - GetTarget()->CastSpell(GetTarget(), healSpell, true, NULL, NULL, GetCasterGUID()); + SpellInfo const* healSpellInfo = sSpellMgr->GetSpellInfo(healSpell); + + if (!healSpellInfo) + return; + + int32 heal = healSpellInfo->Effects[0].CalcValue() * GetStackAmount(); + GetTarget()->CastCustomSpell(healSpell, SPELLVALUE_BASE_POINT0, heal, GetTarget(), true, NULL, NULL, GetCasterGUID()); } void Register() override diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_mimiron.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_mimiron.cpp index f1d44e72684..3a137a8658e 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_mimiron.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_mimiron.cpp @@ -172,7 +172,7 @@ enum Spells SPELL_MAGNETIC_CORE = 64436, SPELL_MAGNETIC_CORE_VISUAL = 64438, SPELL_HALF_HEAL = 64188, - SPELL_CLEAR_ALL_DEBUFFS = 34098, // TODO: make use of this spell... + SPELL_CLEAR_ALL_DEBUFFS = 34098, /// @todo: make use of this spell... SPELL_FREEZE_ANIM_STUN = 63354, // used to prevent mkii from doing stuff?.. SPELL_FREEZE_ANIM = 16245 // Idle aura. Freezes animation. }; @@ -303,17 +303,10 @@ enum Actions enum Phases { - // Leviathan MK II - PHASE_LEVIATHAN_SOLO = 1, - PHASE_LEVIATHAN_ASSEMBLED, - - // VX-001 - PHASE_VX001_SOLO, - PHASE_VX001_ASSEMBLED, - - // Aerial Command Unit - PHASE_AERIAL_SOLO, - PHASE_AERIAL_ASSEMBLED + PHASE_LEVIATHAN_MK_II = 1, + PHASE_VX_001, + PHASE_AERIAL_COMMAND_UNIT, + PHASE_VOL7RON }; enum Waypoints @@ -434,7 +427,7 @@ class boss_mimiron : public CreatureScript events.ScheduleEvent(EVENT_SUMMON_FLAMES, 3000); events.ScheduleEvent(EVENT_INTRO_1, 1500); } - + void JustDied(Unit* /*who*/) override { instance->SetBossState(BOSS_MIMIRON, DONE); @@ -456,7 +449,9 @@ class boss_mimiron : public CreatureScript _Reset(); me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); - instance->SetData(DATA_MIMIRON_ELEVATOR, GO_STATE_ACTIVE); + + if (GameObject* elevator = ObjectAccessor::GetGameObject(*me, instance->GetData64(DATA_MIMIRON_ELEVATOR))) + elevator->SetGoState(GO_STATE_ACTIVE); if (_fireFighter) if (Creature* computer = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_COMPUTER))) @@ -526,15 +521,17 @@ class boss_mimiron : public CreatureScript events.ScheduleEvent(EVENT_VX001_ACTIVATION_4, 5000); break; case EVENT_VX001_ACTIVATION_4: - instance->SetData(DATA_MIMIRON_ELEVATOR, GO_STATE_READY); + if (GameObject* elevator = ObjectAccessor::GetGameObject(*me, instance->GetData64(DATA_MIMIRON_ELEVATOR))) + elevator->SetGoState(GO_STATE_READY); if (Unit* worldtrigger = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_MIMIRON_WORLD_TRIGGER))) worldtrigger->CastSpell(worldtrigger, SPELL_ELEVATOR_KNOCKBACK); events.ScheduleEvent(EVENT_VX001_ACTIVATION_5, 6000); break; case EVENT_VX001_ACTIVATION_5: + if (GameObject* elevator = ObjectAccessor::GetGameObject(*me, instance->GetData64(DATA_MIMIRON_ELEVATOR))) + elevator->SetGoState(GO_STATE_ACTIVE_ALTERNATIVE); if (Creature* vx001 = me->SummonCreature(NPC_VX_001, VX001SummonPos, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 120000)) vx001->CastSpell(vx001, SPELL_FREEZE_ANIM); - instance->SetData(DATA_MIMIRON_ELEVATOR, GO_STATE_ACTIVE_ALTERNATIVE); events.ScheduleEvent(EVENT_VX001_ACTIVATION_6, 19000); break; case EVENT_VX001_ACTIVATION_6: @@ -579,7 +576,7 @@ class boss_mimiron : public CreatureScript break; case EVENT_AERIAL_ACTIVATION_6: if (Creature* acu = me->GetVehicleCreatureBase()) - acu->GetAI()->DoAction(_fireFighter? DO_HARDMODE_AERIAL : DO_START_AERIAL); + acu->AI()->DoAction(_fireFighter? DO_HARDMODE_AERIAL : DO_START_AERIAL); break; case EVENT_VOL7RON_ACTIVATION_1: if (Creature* mkii = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_LEVIATHAN_MK_II))) @@ -694,7 +691,7 @@ class boss_leviathan_mk_ii : public CreatureScript me->SetReactState(REACT_PASSIVE); me->RemoveAllAurasExceptType(SPELL_AURA_CONTROL_VEHICLE, SPELL_AURA_MOD_INCREASE_HEALTH_PERCENT); - if (events.IsInPhase(PHASE_LEVIATHAN_SOLO)) + if (events.IsInPhase(PHASE_LEVIATHAN_MK_II)) { me->CastStop(); if (Unit* turret = me->GetVehicleKit()->GetPassenger(3)) @@ -703,7 +700,7 @@ class boss_leviathan_mk_ii : public CreatureScript me->SetSpeed(MOVE_RUN, 1.5f, true); me->GetMotionMaster()->MovePoint(WP_MKII_P1_IDLE, VehicleRelocation[WP_MKII_P1_IDLE]); } - else if (events.IsInPhase(PHASE_LEVIATHAN_ASSEMBLED)) + else if (events.IsInPhase(PHASE_VOL7RON)) { me->SetStandState(UNIT_STAND_STATE_DEAD); @@ -725,14 +722,14 @@ class boss_leviathan_mk_ii : public CreatureScript _fireFighter = true; DoCast(me, SPELL_EMERGENCY_MODE); DoCastAOE(SPELL_EMERGENCY_MODE_TURRET); - events.ScheduleEvent(EVENT_FLAME_SUPPRESSANT_MK, 60000, 0, PHASE_LEVIATHAN_SOLO); + events.ScheduleEvent(EVENT_FLAME_SUPPRESSANT_MK, 60000, 0, PHASE_LEVIATHAN_MK_II); // Missing break intended. case DO_START_MKII: me->SetReactState(REACT_AGGRESSIVE); - events.SetPhase(PHASE_LEVIATHAN_SOLO); + events.SetPhase(PHASE_LEVIATHAN_MK_II); - events.ScheduleEvent(EVENT_NAPALM_SHELL, 3000, 0, PHASE_LEVIATHAN_SOLO); - events.ScheduleEvent(EVENT_PLASMA_BLAST, 15000, 0, PHASE_LEVIATHAN_SOLO); + events.ScheduleEvent(EVENT_NAPALM_SHELL, 3000, 0, PHASE_LEVIATHAN_MK_II); + events.ScheduleEvent(EVENT_PLASMA_BLAST, 15000, 0, PHASE_LEVIATHAN_MK_II); events.ScheduleEvent(EVENT_PROXIMITY_MINE, 5000); events.ScheduleEvent(EVENT_SHOCK_BLAST, 18000); break; @@ -741,7 +738,7 @@ class boss_leviathan_mk_ii : public CreatureScript me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE); me->SetReactState(REACT_AGGRESSIVE); - events.SetPhase(PHASE_LEVIATHAN_ASSEMBLED); + events.SetPhase(PHASE_VOL7RON); events.ScheduleEvent(EVENT_PROXIMITY_MINE, 15000); events.ScheduleEvent(EVENT_SHOCK_BLAST, 45000); break; @@ -776,14 +773,14 @@ class boss_leviathan_mk_ii : public CreatureScript { if (victim->GetTypeId() == TYPEID_PLAYER) if (Creature* mimiron = ObjectAccessor::GetCreature(*me, instance->GetData64(BOSS_MIMIRON))) - mimiron->AI()->Talk(events.IsInPhase(PHASE_LEVIATHAN_SOLO) ? SAY_MKII_SLAY : SAY_V07TRON_SLAY); + mimiron->AI()->Talk(events.IsInPhase(PHASE_LEVIATHAN_MK_II) ? SAY_MKII_SLAY : SAY_V07TRON_SLAY); } void MovementInform(uint32 type, uint32 point) override { if (type != POINT_MOTION_TYPE) return; - + switch (point) { case WP_MKII_P1_IDLE: @@ -845,7 +842,7 @@ class boss_leviathan_mk_ii : public CreatureScript { if (!UpdateVictim() || !CheckInRoom()) return; - + events.Update(diff); if (me->HasUnitState(UNIT_STATE_CASTING)) @@ -861,10 +858,10 @@ class boss_leviathan_mk_ii : public CreatureScript break; case EVENT_PLASMA_BLAST: DoCastVictim(SPELL_SCRIPT_EFFECT_PLASMA_BLAST); - events.RescheduleEvent(EVENT_PLASMA_BLAST, urand(30000, 45000), 0, PHASE_LEVIATHAN_SOLO); + events.RescheduleEvent(EVENT_PLASMA_BLAST, urand(30000, 45000), 0, PHASE_LEVIATHAN_MK_II); if (events.GetTimeUntilEvent(EVENT_NAPALM_SHELL) < 9000) - events.RescheduleEvent(EVENT_NAPALM_SHELL, 9000, 0, PHASE_LEVIATHAN_SOLO); // The actual spell is cast by the turret, we should not let it interrupt itself. + events.RescheduleEvent(EVENT_NAPALM_SHELL, 9000, 0, PHASE_LEVIATHAN_MK_II); // The actual spell is cast by the turret, we should not let it interrupt itself. break; case EVENT_SHOCK_BLAST: DoCastAOE(SPELL_SHOCK_BLAST); @@ -872,14 +869,14 @@ class boss_leviathan_mk_ii : public CreatureScript break; case EVENT_FLAME_SUPPRESSANT_MK: DoCastAOE(SPELL_FLAME_SUPPRESSANT_MK); - events.RescheduleEvent(EVENT_FLAME_SUPPRESSANT_MK, 60000, 0, PHASE_LEVIATHAN_SOLO); + events.RescheduleEvent(EVENT_FLAME_SUPPRESSANT_MK, 60000, 0, PHASE_LEVIATHAN_MK_II); break; case EVENT_NAPALM_SHELL: DoCastAOE(SPELL_FORCE_CAST_NAPALM_SHELL); - events.RescheduleEvent(EVENT_NAPALM_SHELL, urand(6000, 15000), 0, PHASE_LEVIATHAN_SOLO); + events.RescheduleEvent(EVENT_NAPALM_SHELL, urand(6000, 15000), 0, PHASE_LEVIATHAN_MK_II); if (events.GetTimeUntilEvent(EVENT_PLASMA_BLAST) < 2000) - events.RescheduleEvent(EVENT_PLASMA_BLAST, 2000, 0, PHASE_LEVIATHAN_SOLO); // The actual spell is cast by the turret, we should not let it interrupt itself. + events.RescheduleEvent(EVENT_PLASMA_BLAST, 2000, 0, PHASE_LEVIATHAN_MK_II); // The actual spell is cast by the turret, we should not let it interrupt itself. break; case EVENT_MOVE_POINT_2: me->GetMotionMaster()->MovePoint(WP_MKII_P4_POS_2, VehicleRelocation[WP_MKII_P4_POS_2]); @@ -893,7 +890,7 @@ class boss_leviathan_mk_ii : public CreatureScript default: break; } - } + } DoMeleeAttackIfReady(); } @@ -934,7 +931,7 @@ class boss_vx_001 : public CreatureScript DoCast(me, SPELL_VEHICLE_DAMAGED, true); me->RemoveAllAurasExceptType(SPELL_AURA_CONTROL_VEHICLE, SPELL_AURA_MOD_INCREASE_HEALTH_PERCENT); - if (events.IsInPhase(PHASE_VX001_SOLO)) + if (events.IsInPhase(PHASE_VX_001)) { me->CastStop(); me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); // | UNIT_FLAG_NOT_SELECTABLE); @@ -942,9 +939,9 @@ class boss_vx_001 : public CreatureScript DoCast(me, SPELL_TORSO_DISABLED); if (Creature* mimiron = ObjectAccessor::GetCreature(*me, instance->GetData64(BOSS_MIMIRON))) mimiron->AI()->DoAction(DO_ACTIVATE_AERIAL); - } - else if (events.IsInPhase(PHASE_VX001_ASSEMBLED)) - { + } + else if (events.IsInPhase(PHASE_VOL7RON)) + { me->SetStandState(UNIT_STAND_STATE_DEAD); me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); @@ -975,19 +972,19 @@ class boss_vx_001 : public CreatureScript //me->SetUInt32Value(UNIT_FIELD_BYTES_1, 33554432); Blizzard handles hover animation like this it seems. DoCast(me, SPELL_HEAT_WAVE_AURA); - events.SetPhase(PHASE_VX001_SOLO); + events.SetPhase(PHASE_VX_001); events.ScheduleEvent(EVENT_ROCKET_STRIKE, 20000); events.ScheduleEvent(EVENT_SPINNING_UP, urand(30000, 35000)); - events.ScheduleEvent(EVENT_RAPID_BURST, 500, 0, PHASE_VX001_SOLO); + events.ScheduleEvent(EVENT_RAPID_BURST, 500, 0, PHASE_VX_001); break; case DO_ASSEMBLED_COMBAT: me->SetStandState(UNIT_STAND_STATE_STAND); me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE); - events.SetPhase(PHASE_VX001_ASSEMBLED); + events.SetPhase(PHASE_VOL7RON); events.ScheduleEvent(EVENT_ROCKET_STRIKE, 20000); events.ScheduleEvent(EVENT_SPINNING_UP, urand(30000, 35000)); - events.ScheduleEvent(EVENT_HAND_PULSE, 500, 0, PHASE_VX001_ASSEMBLED); + events.ScheduleEvent(EVENT_HAND_PULSE, 500, 0, PHASE_VOL7RON); if (_fireFighter) events.ScheduleEvent(EVENT_FROST_BOMB, 1000); break; @@ -1012,9 +1009,9 @@ class boss_vx_001 : public CreatureScript { if (victim->GetTypeId() == TYPEID_PLAYER) if (Creature* mimiron = ObjectAccessor::GetCreature(*me, instance->GetData64(BOSS_MIMIRON))) - mimiron->AI()->Talk(events.IsInPhase(PHASE_VX001_SOLO) ? SAY_VX001_SLAY : SAY_V07TRON_SLAY); + mimiron->AI()->Talk(events.IsInPhase(PHASE_VX_001) ? SAY_VX001_SLAY : SAY_V07TRON_SLAY); } - + void SpellHit(Unit* caster, SpellInfo const* /*spellProto*/) override { if (caster->GetEntry() == NPC_BURST_TARGET && !me->HasUnitState(UNIT_STATE_CASTING)) @@ -1043,10 +1040,10 @@ class boss_vx_001 : public CreatureScript case EVENT_RAPID_BURST: if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 120, true)) DoCast(target, SPELL_SUMMON_BURST_TARGET); - events.RescheduleEvent(EVENT_RAPID_BURST, 3000, 0, PHASE_VX001_SOLO); + events.RescheduleEvent(EVENT_RAPID_BURST, 3000, 0, PHASE_VX_001); break; case EVENT_ROCKET_STRIKE: - DoCastAOE(events.IsInPhase(PHASE_VX001_SOLO) ? SPELL_ROCKET_STRIKE_LEFT : SPELL_ROCKET_STRIKE_BOTH); + DoCastAOE(events.IsInPhase(PHASE_VX_001) ? SPELL_ROCKET_STRIKE_LEFT : SPELL_ROCKET_STRIKE_BOTH); events.ScheduleEvent(EVENT_RELOAD, 10000); events.RescheduleEvent(EVENT_ROCKET_STRIKE, urand(20000, 25000)); break; @@ -1058,7 +1055,7 @@ class boss_vx_001 : public CreatureScript case EVENT_HAND_PULSE: if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 120, true)) DoCast(target, urand(0, 1) == 0 ? SPELL_HAND_PULSE_LEFT : SPELL_HAND_PULSE_RIGHT); - events.RescheduleEvent(EVENT_HAND_PULSE, urand(1500, 3000), 0, PHASE_VX001_ASSEMBLED); + events.RescheduleEvent(EVENT_HAND_PULSE, urand(1500, 3000), 0, PHASE_VOL7RON); break; case EVENT_FROST_BOMB: DoCastAOE(SPELL_SCRIPT_EFFECT_FROST_BOMB); @@ -1071,7 +1068,7 @@ class boss_vx_001 : public CreatureScript break; case EVENT_FLAME_SUPPRESSANT_VX: DoCastAOE(SPELL_FLAME_SUPPRESSANT_VX); - events.RescheduleEvent(EVENT_FLAME_SUPPRESSANT_VX, urand(10000, 12000), 0, PHASE_VX001_SOLO); + events.RescheduleEvent(EVENT_FLAME_SUPPRESSANT_VX, urand(10000, 12000), 0, PHASE_VX_001); break; default: break; @@ -1113,12 +1110,12 @@ class boss_aerial_command_unit : public CreatureScript DoCast(me, SPELL_VEHICLE_DAMAGED, true); me->RemoveAllAurasExceptType(SPELL_AURA_CONTROL_VEHICLE, SPELL_AURA_MOD_INCREASE_HEALTH_PERCENT); - if (events.IsInPhase(PHASE_AERIAL_SOLO)) + if (events.IsInPhase(PHASE_AERIAL_COMMAND_UNIT)) { me->GetMotionMaster()->Clear(true); me->GetMotionMaster()->MovePoint(WP_AERIAL_P4_POS, VehicleRelocation[WP_AERIAL_P4_POS]); } - else if (events.IsInPhase(PHASE_AERIAL_ASSEMBLED)) + else if (events.IsInPhase(PHASE_VOL7RON)) { me->SetStandState(UNIT_STAND_STATE_DEAD); @@ -1139,16 +1136,16 @@ class boss_aerial_command_unit : public CreatureScript case DO_HARDMODE_AERIAL: fireFigther = true; DoCast(me, SPELL_EMERGENCY_MODE); - events.ScheduleEvent(EVENT_SUMMON_FIRE_BOTS, 1000, 0, PHASE_AERIAL_SOLO); + events.ScheduleEvent(EVENT_SUMMON_FIRE_BOTS, 1000, 0, PHASE_AERIAL_COMMAND_UNIT); // Missing break intended. case DO_START_AERIAL: me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE); me->SetReactState(REACT_AGGRESSIVE); - events.SetPhase(PHASE_AERIAL_SOLO); - events.ScheduleEvent(EVENT_SUMMON_JUNK_BOT, 5000, 0, PHASE_AERIAL_SOLO); - events.ScheduleEvent(EVENT_SUMMON_ASSAULT_BOT, 9000, 0, PHASE_AERIAL_SOLO); - events.ScheduleEvent(EVENT_SUMMON_BOMB_BOT, 9000, 0, PHASE_AERIAL_SOLO); + events.SetPhase(PHASE_AERIAL_COMMAND_UNIT); + events.ScheduleEvent(EVENT_SUMMON_JUNK_BOT, 5000, 0, PHASE_AERIAL_COMMAND_UNIT); + events.ScheduleEvent(EVENT_SUMMON_ASSAULT_BOT, 9000, 0, PHASE_AERIAL_COMMAND_UNIT); + events.ScheduleEvent(EVENT_SUMMON_BOMB_BOT, 9000, 0, PHASE_AERIAL_COMMAND_UNIT); break; case DO_DISABLE_AERIAL: me->CastStop(); @@ -1164,7 +1161,7 @@ class boss_aerial_command_unit : public CreatureScript me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE); me->SetReactState(REACT_AGGRESSIVE); me->SetStandState(UNIT_STAND_STATE_STAND); - events.SetPhase(PHASE_AERIAL_ASSEMBLED); + events.SetPhase(PHASE_VOL7RON); break; default: break; @@ -1187,7 +1184,7 @@ class boss_aerial_command_unit : public CreatureScript { if (victim->GetTypeId() == TYPEID_PLAYER) if (Creature* mimiron = ObjectAccessor::GetCreature(*me, instance->GetData64(BOSS_MIMIRON))) - mimiron->AI()->Talk(events.IsInPhase(PHASE_AERIAL_SOLO) ? SAY_AERIAL_SLAY : SAY_V07TRON_SLAY); + mimiron->AI()->Talk(events.IsInPhase(PHASE_AERIAL_COMMAND_UNIT) ? SAY_AERIAL_SLAY : SAY_V07TRON_SLAY); } void MovementInform(uint32 type, uint32 point) override @@ -1195,47 +1192,47 @@ class boss_aerial_command_unit : public CreatureScript if (type == POINT_MOTION_TYPE && point == WP_AERIAL_P4_POS) { me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); - + if (Creature* mimiron = ObjectAccessor::GetCreature(*me, instance->GetData64(BOSS_MIMIRON))) mimiron->AI()->DoAction(DO_ACTIVATE_V0L7R0N_1); } } - + void UpdateAI(uint32 diff) override { if (!UpdateVictim()) return; - + events.Update(diff); - + if (me->HasUnitState(UNIT_STATE_CASTING)) return; - + while (uint32 eventId = events.ExecuteEvent()) { switch (eventId) { case EVENT_SUMMON_FIRE_BOTS: me->CastCustomSpell(SPELL_SUMMON_FIRE_BOT_TRIGGER, SPELLVALUE_MAX_TARGETS, 3, NULL, true); - events.RescheduleEvent(EVENT_SUMMON_FIRE_BOTS, 45000, 0, PHASE_AERIAL_SOLO); + events.RescheduleEvent(EVENT_SUMMON_FIRE_BOTS, 45000, 0, PHASE_AERIAL_COMMAND_UNIT); break; case EVENT_SUMMON_JUNK_BOT: me->CastCustomSpell(SPELL_SUMMON_JUNK_BOT_TRIGGER, SPELLVALUE_MAX_TARGETS, 1, NULL, true); - events.RescheduleEvent(EVENT_SUMMON_JUNK_BOT, urand(11000, 12000), 0, PHASE_AERIAL_SOLO); + events.RescheduleEvent(EVENT_SUMMON_JUNK_BOT, urand(11000, 12000), 0, PHASE_AERIAL_COMMAND_UNIT); break; case EVENT_SUMMON_ASSAULT_BOT: me->CastCustomSpell(SPELL_SUMMON_ASSAULT_BOT_TRIGGER, SPELLVALUE_MAX_TARGETS, 1, NULL, true); - events.RescheduleEvent(EVENT_SUMMON_ASSAULT_BOT, 30000, 0, PHASE_AERIAL_SOLO); + events.RescheduleEvent(EVENT_SUMMON_ASSAULT_BOT, 30000, 0, PHASE_AERIAL_COMMAND_UNIT); break; case EVENT_SUMMON_BOMB_BOT: DoCast(me, SPELL_SUMMON_BOMB_BOT); - events.RescheduleEvent(EVENT_SUMMON_BOMB_BOT, urand(15000, 20000), 0, PHASE_AERIAL_SOLO); + events.RescheduleEvent(EVENT_SUMMON_BOMB_BOT, urand(15000, 20000), 0, PHASE_AERIAL_COMMAND_UNIT); break; default: break; } } - DoSpellAttackIfReady(events.IsInPhase(PHASE_AERIAL_SOLO) ? SPELL_PLASMA_BALL_P1 : SPELL_PLASMA_BALL_P2); + DoSpellAttackIfReady(events.IsInPhase(PHASE_AERIAL_COMMAND_UNIT) ? SPELL_PLASMA_BALL_P1 : SPELL_PLASMA_BALL_P2); } private: @@ -1344,7 +1341,7 @@ class npc_mimiron_emergency_fire_bot : public CreatureScript isWaterSprayReady = true; moveNew = true; } - + void UpdateAI(uint32 diff) override { if (!isWaterSprayReady) @@ -1497,7 +1494,7 @@ class npc_mimiron_flames : public CreatureScript { events.ScheduleEvent(EVENT_SPREAD_FLAMES, 4000); } - + void UpdateAI(uint32 diff) override { if (instance->GetBossState(BOSS_MIMIRON) != IN_PROGRESS) @@ -1544,7 +1541,7 @@ class npc_mimiron_frost_bomb : public CreatureScript { events.ScheduleEvent(EVENT_FROST_BOMB_EXPLOSION, 10000); } - + void UpdateAI(uint32 diff) override { events.Update(diff); @@ -1592,7 +1589,7 @@ class npc_mimiron_proximity_mine : public CreatureScript { events.ScheduleEvent(EVENT_PROXIMITY_MINE_ARM, 1500); } - + void UpdateAI(uint32 diff) override { events.Update(diff); @@ -1630,14 +1627,13 @@ class go_mimiron_hardmode_button : public GameObjectScript { public: go_mimiron_hardmode_button() : GameObjectScript("go_mimiron_hardmode_button") { } - + bool OnGossipHello(Player* /*player*/, GameObject* go) { InstanceScript* instance = go->GetInstanceScript(); - if (!instance) return false; - + if (Creature* computer = ObjectAccessor::GetCreature(*go, instance->GetData64(DATA_COMPUTER))) computer->AI()->DoAction(DO_ACTIVATE_COMPUTER); go->SetGoState(GO_STATE_ACTIVE); @@ -1646,7 +1642,7 @@ class go_mimiron_hardmode_button : public GameObjectScript } }; -// 63801 Bomb Bot +// 63801 - Bomb Bot class spell_mimiron_bomb_bot : public SpellScriptLoader { public: @@ -1860,7 +1856,7 @@ class spell_mimiron_magnetic_core : public SpellScriptLoader { if (Creature* target = GetTarget()->ToCreature()) { - target->GetAI()->DoAction(DO_DISABLE_AERIAL); + target->AI()->DoAction(DO_DISABLE_AERIAL); target->CastSpell(target, SPELL_MAGNETIC_CORE_VISUAL, true); } } @@ -1869,7 +1865,7 @@ class spell_mimiron_magnetic_core : public SpellScriptLoader { if (Creature* target = GetTarget()->ToCreature()) { - target->GetAI()->DoAction(DO_ENABLE_AERIAL); + target->AI()->DoAction(DO_ENABLE_AERIAL); target->RemoveAurasDueToSpell(SPELL_MAGNETIC_CORE_VISUAL); } } diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp index 1f9bfe4c3f3..a074ce28181 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp @@ -15,12 +15,13 @@ * with this program. If not, see <http://www.gnu.org/licenses/>. */ -#include "ulduar.h" +#include "InstanceScript.h" #include "Player.h" #include "ScriptedCreature.h" #include "ScriptMgr.h" #include "SpellScript.h" #include "WorldPacket.h" +#include "ulduar.h" static DoorData const doorData[] = { @@ -821,10 +822,6 @@ class instance_ulduar : public InstanceMapScript case DATA_UNBROKEN: Unbroken = data != 0; break; - case DATA_MIMIRON_ELEVATOR: - if (GameObject* gameObject = instance->GetGameObject(MimironElevatorGUID)) - gameObject->SetGoState((GOState)data); - break; case DATA_ILLUSION: illusion = data; break; @@ -924,6 +921,8 @@ class instance_ulduar : public InstanceMapScript return MimironComputerGUID; case DATA_MIMIRON_WORLD_TRIGGER: return MimironWorldTriggerGUID; + case DATA_MIMIRON_ELEVATOR: + return MimironElevatorGUID; case DATA_MIMIRON_BUTTON: return MimironButtonGUID; diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/ulduar.h b/src/server/scripts/Northrend/Ulduar/Ulduar/ulduar.h index 81cb469318f..5dfc2b54f6e 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/ulduar.h +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/ulduar.h @@ -18,8 +18,6 @@ #ifndef DEF_ULDUAR_H #define DEF_ULDUAR_H -#include "InstanceScript.h" -#include "ObjectMgr.h" #define UlduarScriptName "instance_ulduar" extern Position const ObservationRingKeepersPos[4]; diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_skarvald_dalronn.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_skarvald_dalronn.cpp index 8e619864201..c6a91e3ff33 100644 --- a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_skarvald_dalronn.cpp +++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_skarvald_dalronn.cpp @@ -18,7 +18,7 @@ /* ScriptData SDName: Boss_Skarvald_Dalronn SD%Complete: 95 -SDComment: Needs adjustments to blizzlike timers, Yell Text + Sound to DB +SDComment: Needs adjustments to blizzlike timers SDCategory: Utgarde Keep EndScriptData */ @@ -26,21 +26,15 @@ EndScriptData */ #include "ScriptedCreature.h" #include "utgarde_keep.h" -enum Yells +enum Texts { - // signed for 24200, but used by 24200, 27390 - YELL_SKARVALD_AGGRO = 0, - YELL_SKARVALD_DAL_DIED = 1, - YELL_SKARVALD_SKA_DIEDFIRST = 2, - YELL_SKARVALD_KILL = 3, - YELL_SKARVALD_DAL_DIEDFIRST = 4, - - // signed for 24201, but used by 24201, 27389 - YELL_DALRONN_AGGRO = 0, - YELL_DALRONN_SKA_DIED = 1, - YELL_DALRONN_DAL_DIEDFIRST = 2, - YELL_DALRONN_KILL = 3, - YELL_DALRONN_SKA_DIEDFIRST = 4 + // Texts are common for both bosses and their ghosts. + SAY_AGGRO = 0, + SAY_DEATH = 1, // Said once both bosses are dead. + SAY_DIED_FIRST = 2, // Said by the first boss that dies. + SAY_KILL = 3, + SAY_DEATH_RESPONSE = 4 // Said by the boss alive after the first one dies. + }; enum Spells @@ -48,175 +42,189 @@ enum Spells // Spells of Skarvald and his Ghost SPELL_CHARGE = 43651, SPELL_STONE_STRIKE = 48583, - SPELL_SUMMON_SKARVALD_GHOST = 48613, SPELL_ENRAGE = 48193, + SPELL_SUMMON_SKARVALD_GHOST = 48613, + // Spells of Dalronn and his Ghost SPELL_SHADOW_BOLT = 43649, - H_SPELL_SHADOW_BOLT = 59575, - H_SPELL_SUMMON_SKELETONS = 52611, + SPELL_SUMMON_SKELETONS = 52611, SPELL_DEBILITATE = 43650, SPELL_SUMMON_DALRONN_GHOST = 48612, }; -class SkarvaldChargePredicate +enum Events { - public: - SkarvaldChargePredicate(Unit* unit) : me(unit) { } - - bool operator() (WorldObject* object) const - { - return object->GetDistance2d(me) >= 5.0f && object->GetDistance2d(me) <= 30.0f; - } + // Skarvald the Constructor + EVENT_SKARVALD_CHARGE = 1, + EVENT_STONE_STRIKE, + + // Dalronn the Controller + EVENT_SHADOW_BOLT, + EVENT_DEBILITATE, + EVENT_SUMMON_SKELETONS, + EVENT_DELAYED_AGGRO_SAY, // Dalronn's SAY_AGGRO is delayed so it doesn't overlap Skarvald's one. + + // Common event to both bosses. + // Delays SAY_DEATH_RESPONSE so it doesn't overlap with the SAY_DIED_FIRST from the boss that has just died. + EVENT_DEATH_RESPONSE +}; - private: - Unit* me; +enum Actions +{ + ACTION_OTHER_JUST_DIED = 1, + ACTION_DESPAWN_SUMMONS = 2 // Only needed to clear off the ghosts when the second boss dies. }; -class boss_skarvald_the_constructor : public CreatureScript +class SkarvaldChargePredicate { public: - boss_skarvald_the_constructor() : CreatureScript("boss_skarvald_the_constructor") { } + SkarvaldChargePredicate(Unit* unit) : _me(unit) { } - struct boss_skarvald_the_constructorAI : public BossAI + bool operator() (WorldObject* target) const { - boss_skarvald_the_constructorAI(Creature* creature) : BossAI(creature, DATA_SKARVALD_DALRONN) { } + return target->GetDistance2d(_me) >= 5.0f && target->GetDistance2d(_me) <= 30.0f; + } - bool ghost; - uint32 Charge_Timer; - uint32 StoneStrike_Timer; - uint32 Response_Timer; - uint32 Check_Timer; - bool Dalronn_isDead; - bool Enraged; + private: + Unit* _me; +}; - void Reset() override - { - Charge_Timer = 5000; - StoneStrike_Timer = 10000; - Dalronn_isDead = false; - Response_Timer = 0; - Check_Timer = 5000; - Enraged = false; +struct generic_boss_controllerAI : public BossAI +{ + generic_boss_controllerAI(Creature* creature) : BossAI(creature, DATA_SKARVALD_DALRONN) + { + OtherBossData = 0; + IsInGhostForm = me->GetEntry() == NPC_SKARVALD_GHOST || me->GetEntry() == NPC_DALRONN_GHOST; + } - ghost = me->GetEntry() == NPC_SKARVALD_GHOST; - if (!ghost) - _Reset(); - } + void Reset() override + { + if (IsInGhostForm) + { + // Call this here since ghosts aren't set in combat as they spawn. + DoZoneInCombat(me, 50.0f); + } + else + _Reset(); + } - void EnterCombat(Unit* /*who*/) override + void EnterCombat(Unit* /*who*/) override + { + if (!IsInGhostForm) + _EnterCombat(); + } + + void JustDied(Unit* /*killer*/) override + { + if (Creature* otherBoss = ObjectAccessor::GetCreature(*me, instance->GetData64(OtherBossData))) + { + if (otherBoss->IsAlive()) { - if (!ghost) - { - _EnterCombat(); - Talk(YELL_SKARVALD_AGGRO); - } + Talk(SAY_DIED_FIRST); + me->RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE); + otherBoss->AI()->DoAction(ACTION_OTHER_JUST_DIED); + DoCast(me, OtherBossData == DATA_DALRONN ? SPELL_SUMMON_SKARVALD_GHOST : SPELL_SUMMON_DALRONN_GHOST, true); } - - void DamageTaken(Unit* /*attacker*/, uint32& damage) override + else { - if (!Enraged && !ghost && me->HealthBelowPctDamaged(15, damage)) - { - Enraged = true; - DoCast(me, SPELL_ENRAGE); - } + Talk(SAY_DEATH); + otherBoss->AI()->DoAction(ACTION_DESPAWN_SUMMONS); + _JustDied(); } + } + } - void DoAction(int32 /*actionId*/) - { + void DoAction(int32 actionId) override + { + switch (actionId) + { + case ACTION_OTHER_JUST_DIED: + events.ScheduleEvent(EVENT_DEATH_RESPONSE, 2000); + break; + case ACTION_DESPAWN_SUMMONS: summons.DespawnAll(); - } + break; + default: + break; + } + } + + void ExecuteEvent(uint32 eventId) override + { + if (eventId == EVENT_DEATH_RESPONSE) + Talk(SAY_DEATH_RESPONSE); + } + + void KilledUnit(Unit* who) override + { + if (!IsInGhostForm && who->GetTypeId() == TYPEID_PLAYER) + Talk(SAY_KILL); + } - void JustDied(Unit* killer) override + protected: + uint32 OtherBossData; + bool IsInGhostForm; +}; + +class boss_skarvald_the_constructor : public CreatureScript +{ + public: + boss_skarvald_the_constructor() : CreatureScript("boss_skarvald_the_constructor") { } + + struct boss_skarvald_the_constructorAI : public generic_boss_controllerAI + { + boss_skarvald_the_constructorAI(Creature* creature) : generic_boss_controllerAI(creature) { - if (!ghost) - { - if (Creature* dalronn = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_DALRONN))) - { - if (dalronn->IsAlive()) - { - Talk(YELL_SKARVALD_SKA_DIEDFIRST); - - me->RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE); - - //DoCast(me, SPELL_SUMMON_SKARVALD_GHOST, true); - if (Creature* temp = me->SummonCreature(NPC_SKARVALD_GHOST, *me, TEMPSUMMON_CORPSE_DESPAWN, 5000)) - { - temp->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); - temp->AI()->AttackStart(killer); - } - } - else - { - dalronn->AI()->DoAction(0); - _JustDied(); - Talk(YELL_SKARVALD_DAL_DIED); - } - } - } + OtherBossData = DATA_DALRONN; + Enraged = false; } - void KilledUnit(Unit* who) override + void Reset() override { - if (!ghost && who->GetTypeId() == TYPEID_PLAYER) - Talk(YELL_SKARVALD_KILL); + Enraged = false; + generic_boss_controllerAI::Reset(); } - void UpdateAI(uint32 diff) override + void EnterCombat(Unit* who) override { - if (!UpdateVictim()) - return; + generic_boss_controllerAI::EnterCombat(who); - if (!ghost) - { - if (Check_Timer) - { - if (Check_Timer <= diff) - { - Check_Timer = 5000; - Creature* dalronn = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_DALRONN)); - if (dalronn && dalronn->isDead()) - { - Dalronn_isDead = true; - Response_Timer = 2000; - Check_Timer = 0; - } - } - else - Check_Timer -= diff; - } - if (Response_Timer && Dalronn_isDead) - { - if (Response_Timer <= diff) - { - Talk(YELL_SKARVALD_DAL_DIEDFIRST); - - Response_Timer = 0; - } - else - Response_Timer -= diff; - } - } + if (!IsInGhostForm) + Talk(SAY_AGGRO); + + events.ScheduleEvent(EVENT_SKARVALD_CHARGE, 5000); + events.ScheduleEvent(EVENT_STONE_STRIKE, 10000); + } - if (Charge_Timer <= diff) + void ExecuteEvent(uint32 eventId) override + { + switch (eventId) { - if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, SkarvaldChargePredicate(me))) - DoCast(target, SPELL_CHARGE); - Charge_Timer = 5000 + rand32() % 5000; + case EVENT_SKARVALD_CHARGE: + if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, SkarvaldChargePredicate(me))) + DoCast(target, SPELL_CHARGE); + events.ScheduleEvent(EVENT_CHARGE, urand(5000, 10000)); + break; + case EVENT_STONE_STRIKE: + DoCastVictim(SPELL_STONE_STRIKE); + events.ScheduleEvent(EVENT_STONE_STRIKE, urand(5000, 10000)); + break; + default: + generic_boss_controllerAI::ExecuteEvent(eventId); + break; } - else - Charge_Timer -= diff; + } - if (StoneStrike_Timer <= diff) + void DamageTaken(Unit* /*attacker*/, uint32& damage) override + { + if (!Enraged && !IsInGhostForm && me->HealthBelowPctDamaged(15, damage)) { - DoCastVictim(SPELL_STONE_STRIKE); - StoneStrike_Timer = 5000 + rand32() % 5000; + Enraged = true; + DoCast(me, SPELL_ENRAGE); } - else - StoneStrike_Timer -= diff; - - if (!me->HasUnitState(UNIT_STATE_CASTING)) - DoMeleeAttackIfReady(); } + private: + bool Enraged; }; CreatureAI* GetAI(Creature* creature) const override @@ -230,171 +238,52 @@ class boss_dalronn_the_controller : public CreatureScript public: boss_dalronn_the_controller() : CreatureScript("boss_dalronn_the_controller") { } - struct boss_dalronn_the_controllerAI : public BossAI + struct boss_dalronn_the_controllerAI : public generic_boss_controllerAI { - boss_dalronn_the_controllerAI(Creature* creature) : BossAI(creature, DATA_SKARVALD_DALRONN) { } - - bool ghost; - uint32 ShadowBolt_Timer; - uint32 Debilitate_Timer; - uint32 Summon_Timer; - - uint32 Response_Timer; - uint32 Check_Timer; - uint32 AggroYell_Timer; - bool Skarvald_isDead; - - void Reset() override + boss_dalronn_the_controllerAI(Creature* creature) : generic_boss_controllerAI(creature) { - ShadowBolt_Timer = 1000; - Debilitate_Timer = 5000; - Summon_Timer = 10000; - Check_Timer = 5000; - Skarvald_isDead = false; - Response_Timer = 0; - AggroYell_Timer = 0; - - ghost = me->GetEntry() == NPC_DALRONN_GHOST; - if (!ghost) - _Reset(); + OtherBossData = DATA_SKARVALD; } - void EnterCombat(Unit* /*who*/) override + void EnterCombat(Unit* who) override { - if (!ghost) - { - _EnterCombat(); - AggroYell_Timer = 5000; - } - } + generic_boss_controllerAI::EnterCombat(who); - void DoAction(int32 /*actionId*/) - { - summons.DespawnAll(); - } + events.ScheduleEvent(EVENT_SHADOW_BOLT, 1000); + events.ScheduleEvent(EVENT_DEBILITATE, 5000); - void JustDied(Unit* killer) override - { - if (!ghost) - { - if (Creature* skarvald = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_SKARVALD))) - { - if (skarvald->IsAlive()) - { - Talk(YELL_DALRONN_DAL_DIEDFIRST); - - me->RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE); - - //DoCast(me, SPELL_SUMMON_DALRONN_GHOST, true); - if (Creature* temp = me->SummonCreature(NPC_DALRONN_GHOST, *me, TEMPSUMMON_CORPSE_DESPAWN, 5000)) - { - temp->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); - temp->AI()->AttackStart(killer); - } - } - else - { - skarvald->AI()->DoAction(0); - _JustDied(); - Talk(YELL_DALRONN_SKA_DIED); - } - } - } - } + if (!IsInGhostForm) + events.ScheduleEvent(EVENT_DELAYED_AGGRO_SAY, 5000); - void KilledUnit(Unit* who) override - { - if (!ghost && who->GetTypeId() == TYPEID_PLAYER) - Talk(YELL_DALRONN_KILL); + if (IsHeroic()) + events.ScheduleEvent(EVENT_SUMMON_SKELETONS, 10000); } - void UpdateAI(uint32 diff) override + void ExecuteEvent(uint32 eventId) override { - if (!UpdateVictim()) - return; - - if (AggroYell_Timer) + switch (eventId) { - if (AggroYell_Timer <= diff) - { - Talk(YELL_DALRONN_AGGRO); - - AggroYell_Timer = 0; - } - else - AggroYell_Timer -= diff; - } - - if (!ghost) - { - if (Check_Timer) - { - if (Check_Timer <= diff) - { - Check_Timer = 5000; - Creature* skarvald = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_SKARVALD)); - if (skarvald && skarvald->isDead()) - { - Skarvald_isDead = true; - Response_Timer = 2000; - Check_Timer = 0; - } - } - else - Check_Timer -= diff; - } - - if (Response_Timer && Skarvald_isDead) - { - if (Response_Timer <= diff) - { - Talk(YELL_DALRONN_SKA_DIEDFIRST); - Response_Timer = 0; - } - else - Response_Timer -= diff; - } - } - - if (ShadowBolt_Timer <= diff) - { - if (!me->IsNonMeleeSpellCast(false)) - { - if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 0.0f, true)) + case EVENT_SHADOW_BOLT: + if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 45.0f, true)) DoCast(target, SPELL_SHADOW_BOLT); - ShadowBolt_Timer = 2100;//give a 100ms pause to try cast other spells - } - } - else - ShadowBolt_Timer -= diff; - - if (Debilitate_Timer <= diff) - { - if (!me->IsNonMeleeSpellCast(false)) - { - if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 0.0f, true)) + events.ScheduleEvent(EVENT_SHADOW_BOLT, 2100); //give a 100ms pause to try cast other spells + break; + case EVENT_DEBILITATE: + if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 50.0f, true)) DoCast(target, SPELL_DEBILITATE); - Debilitate_Timer = 5000 + rand32() % 5000; - } - } - else - Debilitate_Timer -= diff; - - if (IsHeroic()) - { - if (Summon_Timer <= diff) - { - if (!me->IsNonMeleeSpellCast(false)) - { - DoCast(me, H_SPELL_SUMMON_SKELETONS); - Summon_Timer = (rand32() % 10000) + 20000; - } - } - else - Summon_Timer -= diff; + events.ScheduleEvent(EVENT_DEBILITATE, urand(5000, 10000)); + break; + case EVENT_SUMMON_SKELETONS: + DoCast(me, SPELL_SUMMON_SKELETONS); + events.ScheduleEvent(EVENT_SUMMON_SKELETONS, urand(10000, 30000)); + break; + case EVENT_DELAYED_AGGRO_SAY: + Talk(SAY_AGGRO); + break; + default: + generic_boss_controllerAI::ExecuteEvent(eventId); + break; } - - DoMeleeAttackIfReady(); } }; diff --git a/src/server/scripts/Outland/Auchindoun/ManaTombs/boss_pandemonius.cpp b/src/server/scripts/Outland/Auchindoun/ManaTombs/boss_pandemonius.cpp index b74c800c01b..1b903fad188 100644 --- a/src/server/scripts/Outland/Auchindoun/ManaTombs/boss_pandemonius.cpp +++ b/src/server/scripts/Outland/Auchindoun/ManaTombs/boss_pandemonius.cpp @@ -25,18 +25,26 @@ EndScriptData */ #include "ScriptMgr.h" #include "ScriptedCreature.h" +#include "mana_tombs.h" -enum Pandemonius +enum Texts { SAY_AGGRO = 0, SAY_KILL = 1, SAY_DEATH = 2, - EMOTE_DARK_SHELL = 3, + EMOTE_DARK_SHELL = 3 +}; - SPELL_VOID_BLAST = 32325, - H_SPELL_VOID_BLAST = 38760, - SPELL_DARK_SHELL = 32358, - H_SPELL_DARK_SHELL = 38759 +enum Spells +{ + SPELL_VOID_BLAST = 32325, + SPELL_DARK_SHELL = 32358 +}; + +enum Events +{ + EVENT_VOID_BLAST = 1, + EVENT_DARK_SHELL }; @@ -45,26 +53,17 @@ class boss_pandemonius : public CreatureScript public: boss_pandemonius() : CreatureScript("boss_pandemonius") { } - CreatureAI* GetAI(Creature* creature) const override + struct boss_pandemoniusAI : public BossAI { - return new boss_pandemoniusAI(creature); - } - - struct boss_pandemoniusAI : public ScriptedAI - { - boss_pandemoniusAI(Creature* creature) : ScriptedAI(creature) + boss_pandemoniusAI(Creature* creature) : BossAI(creature, DATA_PANDEMONIUS) { + VoidBlastCounter = 0; } - uint32 VoidBlast_Timer; - uint32 DarkShell_Timer; - uint32 VoidBlast_Counter; - void Reset() override { - VoidBlast_Timer = 8000 + rand32() % 15000; - DarkShell_Timer = 20000; - VoidBlast_Counter = 0; + _Reset(); + VoidBlastCounter = 0; } void JustDied(Unit* /*killer*/) override @@ -79,48 +78,54 @@ public: void EnterCombat(Unit* /*who*/) override { + _EnterCombat(); Talk(SAY_AGGRO); + events.ScheduleEvent(EVENT_DARK_SHELL, 20000); + events.ScheduleEvent(EVENT_VOID_BLAST, urand(8000, 23000)); } - void UpdateAI(uint32 diff) override + void ExecuteEvent(uint32 eventId) override { - if (!UpdateVictim()) - return; - - if (VoidBlast_Timer <= diff) - { - if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0)) - { - DoCast(target, SPELL_VOID_BLAST); - VoidBlast_Timer = 500; - ++VoidBlast_Counter; - } - - if (VoidBlast_Counter == 5) - { - VoidBlast_Timer = 15000 + rand32() % 10000; - VoidBlast_Counter = 0; - } - } else VoidBlast_Timer -= diff; - - if (!VoidBlast_Counter) + switch (eventId) { - if (DarkShell_Timer <= diff) - { + case EVENT_VOID_BLAST: + if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0)) + { + DoCast(target, SPELL_VOID_BLAST); + ++VoidBlastCounter; + } + + if (VoidBlastCounter == 5) + { + VoidBlastCounter = 0; + events.ScheduleEvent(EVENT_VOID_BLAST, urand(15000, 25000)); + } + else + { + events.ScheduleEvent(EVENT_VOID_BLAST, 500); + events.DelayEvents(EVENT_DARK_SHELL, 500); + } + break; + case EVENT_DARK_SHELL: if (me->IsNonMeleeSpellCast(false)) me->InterruptNonMeleeSpells(true); - Talk(EMOTE_DARK_SHELL); - DoCast(me, SPELL_DARK_SHELL); - DarkShell_Timer = 20000; - } else DarkShell_Timer -= diff; + events.ScheduleEvent(EVENT_DARK_SHELL, 20000); + break; + default: + break; } - - DoMeleeAttackIfReady(); } + + private: + uint32 VoidBlastCounter; }; + CreatureAI* GetAI(Creature* creature) const override + { + return GetManaTombsAI<boss_pandemoniusAI>(creature); + } }; void AddSC_boss_pandemonius() diff --git a/src/server/scripts/Outland/Auchindoun/SethekkHalls/boss_tailonking_ikiss.cpp b/src/server/scripts/Outland/Auchindoun/SethekkHalls/boss_tailonking_ikiss.cpp deleted file mode 100644 index 9cb7505c015..00000000000 --- a/src/server/scripts/Outland/Auchindoun/SethekkHalls/boss_tailonking_ikiss.cpp +++ /dev/null @@ -1,212 +0,0 @@ -/* - * Copyright (C) 2008-2014 TrinityCore <http://www.trinitycore.org/> - * Copyright (C) 2006-2009 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/> - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the - * Free Software Foundation; either version 2 of the License, or (at your - * option) any later version. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see <http://www.gnu.org/licenses/>. - */ - -/* ScriptData -SDName: Boss_Talon_King_Ikiss -SD%Complete: 80 -SDComment: Heroic supported. Some details missing, but most are spell related. -SDCategory: Auchindoun, Sethekk Halls -EndScriptData */ - -#include "ScriptMgr.h" -#include "ScriptedCreature.h" -#include "sethekk_halls.h" - -enum Says -{ - SAY_INTRO = 0, - SAY_AGGRO = 1, - SAY_SLAY = 2, - SAY_DEATH = 3, - EMOTE_ARCANE_EXP = 4 -}; - -enum Spells -{ - SPELL_BLINK = 38194, - SPELL_BLINK_TELEPORT = 38203, - SPELL_MANA_SHIELD = 38151, - SPELL_ARCANE_BUBBLE = 9438, - H_SPELL_SLOW = 35032, - SPELL_POLYMORPH = 38245, - H_SPELL_POLYMORPH = 43309, - SPELL_ARCANE_VOLLEY = 35059, - H_SPELL_ARCANE_VOLLEY = 40424, - SPELL_ARCANE_EXPLOSION = 38197, - H_SPELL_ARCANE_EXPLOSION = 40425 -}; - -class boss_talon_king_ikiss : public CreatureScript -{ -public: - boss_talon_king_ikiss() : CreatureScript("boss_talon_king_ikiss") { } - - struct boss_talon_king_ikissAI : public BossAI - { - boss_talon_king_ikissAI(Creature* creature) : BossAI(creature, DATA_TALON_KING_IKISS) { } - - void Reset() override - { - _Reset(); - ArcaneVolley_Timer = 5000; - Sheep_Timer = 8000; - Blink_Timer = 35000; - Slow_Timer = 15000 + rand32() % 15000; - Blink = false; - Intro = false; - ManaShield = false; - } - - void MoveInLineOfSight(Unit* who) override - { - if (!me->GetVictim() && me->CanCreatureAttack(who)) - { - if (!Intro && me->IsWithinDistInMap(who, 100)) - { - Intro = true; - Talk(SAY_INTRO); - } - - if (!me->CanFly() && me->GetDistanceZ(who) > CREATURE_Z_ATTACK_RANGE) - return; - - float attackRadius = me->GetAttackDistance(who); - if (me->IsWithinDistInMap(who, attackRadius) && me->IsWithinLOSInMap(who)) - { - //who->RemoveSpellsCausingAura(SPELL_AURA_MOD_STEALTH); - AttackStart(who); - } - } - } - - void EnterCombat(Unit* /*who*/) override - { - _EnterCombat(); - Talk(SAY_AGGRO); - } - - void JustDied(Unit* /*killer*/) override - { - _JustDied(); - Talk(SAY_DEATH); - } - - void KilledUnit(Unit* who) override - { - if (who->GetTypeId() == TYPEID_PLAYER) - Talk(SAY_SLAY); - } - - void UpdateAI(uint32 diff) override - { - if (!UpdateVictim()) - return; - - if (Blink) - { - DoCast(me, SPELL_ARCANE_EXPLOSION); - DoCast(me, SPELL_ARCANE_BUBBLE, true); - Blink = false; - } - - if (ArcaneVolley_Timer <= diff) - { - DoCast(me, SPELL_ARCANE_VOLLEY); - ArcaneVolley_Timer = 7000 + rand32() % 5000; - } else ArcaneVolley_Timer -= diff; - - if (Sheep_Timer <= diff) - { - Unit* target; - - //second top aggro target in normal, random target in heroic correct? - if (IsHeroic()) - target = SelectTarget(SELECT_TARGET_RANDOM, 0); - else - target = SelectTarget(SELECT_TARGET_TOPAGGRO, 1); - - if (target) - DoCast(target, SPELL_POLYMORPH); - Sheep_Timer = 15000 + rand32() % 2500; - } else Sheep_Timer -= diff; - - //may not be correct time to cast - if (!ManaShield && HealthBelowPct(20)) - { - DoCast(me, SPELL_MANA_SHIELD); - ManaShield = true; - } - - if (IsHeroic()) - { - if (Slow_Timer <= diff) - { - DoCast(me, H_SPELL_SLOW); - Slow_Timer = 15000 + rand32() % 25000; - } else Slow_Timer -= diff; - } - - if (Blink_Timer <= diff) - { - Talk(EMOTE_ARCANE_EXP); - - if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0)) - { - if (me->IsNonMeleeSpellCast(false)) - me->InterruptNonMeleeSpells(false); - - //Spell doesn't work, but we use for visual effect at least - DoCast(target, SPELL_BLINK); - - float X = target->GetPositionX(); - float Y = target->GetPositionY(); - float Z = target->GetPositionZ(); - - DoTeleportTo(X, Y, Z); - - DoCast(target, SPELL_BLINK_TELEPORT); - Blink = true; - } - Blink_Timer = 35000 + rand32() % 5000; - } else Blink_Timer -= diff; - - if (!Blink) - DoMeleeAttackIfReady(); - } - - private: - uint32 ArcaneVolley_Timer; - uint32 Sheep_Timer; - uint32 Blink_Timer; - uint32 Slow_Timer; - - bool ManaShield; - bool Blink; - bool Intro; - }; - - CreatureAI* GetAI(Creature* creature) const override - { - return GetSethekkHallsAI<boss_talon_king_ikissAI>(creature); - } -}; - -void AddSC_boss_talon_king_ikiss() -{ - new boss_talon_king_ikiss(); -} diff --git a/src/server/scripts/Outland/Auchindoun/SethekkHalls/boss_talon_king_ikiss.cpp b/src/server/scripts/Outland/Auchindoun/SethekkHalls/boss_talon_king_ikiss.cpp new file mode 100644 index 00000000000..22914ca9094 --- /dev/null +++ b/src/server/scripts/Outland/Auchindoun/SethekkHalls/boss_talon_king_ikiss.cpp @@ -0,0 +1,211 @@ +/* + * Copyright (C) 2008-2014 TrinityCore <http://www.trinitycore.org/> + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2 of the License, or (at your + * option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along + * with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#include "ScriptMgr.h" +#include "ScriptedCreature.h" +#include "SpellScript.h" +#include "sethekk_halls.h" + +enum Says +{ + SAY_INTRO = 0, + SAY_AGGRO = 1, + SAY_SLAY = 2, + SAY_DEATH = 3, + EMOTE_ARCANE_EXPLOSION = 4 +}; + +enum Spells +{ + SPELL_BLINK = 38194, + SPELL_BLINK_TELEPORT = 38203, + SPELL_MANA_SHIELD = 38151, + SPELL_ARCANE_BUBBLE = 9438, + SPELL_SLOW = 35032, + SPELL_POLYMORPH = 38245, + SPELL_ARCANE_VOLLEY = 35059, + SPELL_ARCANE_EXPLOSION = 38197, +}; + +enum Events +{ + EVENT_POLYMORPH = 1, + EVENT_BLINK, + EVENT_SLOW, + EVENT_ARCANE_VOLLEY, + EVENT_ARCANE_EXPLOSION +}; + +class boss_talon_king_ikiss : public CreatureScript +{ +public: + boss_talon_king_ikiss() : CreatureScript("boss_talon_king_ikiss") { } + + struct boss_talon_king_ikissAI : public BossAI + { + boss_talon_king_ikissAI(Creature* creature) : BossAI(creature, DATA_TALON_KING_IKISS) + { + Intro = false; + ManaShield = false; + } + + void Reset() override + { + _Reset(); + Intro = false; + ManaShield = false; + } + + void MoveInLineOfSight(Unit* who) override + { + if (!Intro && who->GetTypeId() == TYPEID_PLAYER && me->IsWithinDistInMap(who, 100.0f)) + { + Intro = true; + Talk(SAY_INTRO); + } + + BossAI::MoveInLineOfSight(who); + } + + void EnterCombat(Unit* /*who*/) override + { + _EnterCombat(); + Talk(SAY_AGGRO); + events.ScheduleEvent(EVENT_ARCANE_VOLLEY, 5000); + events.ScheduleEvent(EVENT_POLYMORPH, 8000); + events.ScheduleEvent(EVENT_BLINK, 35000); + if (IsHeroic()) + events.ScheduleEvent(EVENT_SLOW, urand(15000, 30000)); + } + + void ExecuteEvent(uint32 eventId) override + { + switch (eventId) + { + case EVENT_POLYMORPH: + // Second top aggro in normal, random target in heroic. + if (IsHeroic()) + DoCast(SelectTarget(SELECT_TARGET_RANDOM, 0), SPELL_POLYMORPH); + else + DoCast(SelectTarget(SELECT_TARGET_TOPAGGRO, 1), SPELL_POLYMORPH); + events.ScheduleEvent(EVENT_POLYMORPH, urand(15000, 17500)); + break; + case EVENT_ARCANE_VOLLEY: + DoCast(me, SPELL_ARCANE_VOLLEY); + events.ScheduleEvent(EVENT_ARCANE_VOLLEY, urand(7000, 12000)); + break; + case EVENT_SLOW: + DoCast(me, SPELL_SLOW); + events.ScheduleEvent(EVENT_SLOW, urand(15000, 40000)); + break; + case EVENT_BLINK: + if (me->IsNonMeleeSpellCast(false)) + me->InterruptNonMeleeSpells(false); + Talk(EMOTE_ARCANE_EXPLOSION); + DoCastAOE(SPELL_BLINK); + events.ScheduleEvent(EVENT_BLINK, urand(35000, 40000)); + events.ScheduleEvent(EVENT_ARCANE_EXPLOSION, 1000); + break; + case EVENT_ARCANE_EXPLOSION: + DoCast(me, SPELL_ARCANE_EXPLOSION); + DoCast(me, SPELL_ARCANE_BUBBLE, true); + break; + default: + break; + } + } + + void DamageTaken(Unit* /*who*/, uint32& damage) override + { + if (!ManaShield && me->HealthBelowPctDamaged(20, damage)) + { + DoCast(me, SPELL_MANA_SHIELD); + ManaShield = true; + } + } + + void JustDied(Unit* /*killer*/) override + { + _JustDied(); + Talk(SAY_DEATH); + } + + void KilledUnit(Unit* who) override + { + if (who->GetTypeId() == TYPEID_PLAYER) + Talk(SAY_SLAY); + } + + private: + bool ManaShield; + bool Intro; + }; + + CreatureAI* GetAI(Creature* creature) const override + { + return GetSethekkHallsAI<boss_talon_king_ikissAI>(creature); + } +}; + +// 38194 - Blink +class spell_talon_king_ikiss_blink : public SpellScriptLoader +{ + public: + spell_talon_king_ikiss_blink() : SpellScriptLoader("spell_talon_king_ikiss_blink") { } + + class spell_talon_king_ikiss_blink_SpellScript : public SpellScript + { + PrepareSpellScript(spell_talon_king_ikiss_blink_SpellScript); + + bool Validate(SpellInfo const* /*spellInfo*/) override + { + if (!sSpellMgr->GetSpellInfo(SPELL_BLINK_TELEPORT)) + return false; + return true; + } + + void FilterTargets(std::list<WorldObject*>& targets) + { + WorldObject* target = Trinity::Containers::SelectRandomContainerElement(targets); + targets.clear(); + targets.push_back(target); + } + + void HandleDummyHitTarget(SpellEffIndex effIndex) + { + PreventHitDefaultEffect(effIndex); + GetHitUnit()->CastSpell(GetCaster(), SPELL_BLINK_TELEPORT, true); + } + + void Register() override + { + OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_talon_king_ikiss_blink_SpellScript::FilterTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ENEMY); + OnEffectHitTarget += SpellEffectFn(spell_talon_king_ikiss_blink_SpellScript::HandleDummyHitTarget, EFFECT_0, SPELL_EFFECT_DUMMY); + } + }; + + SpellScript* GetSpellScript() const override + { + return new spell_talon_king_ikiss_blink_SpellScript(); + } +}; + +void AddSC_boss_talon_king_ikiss() +{ + new boss_talon_king_ikiss(); + new spell_talon_king_ikiss_blink(); +} diff --git a/src/server/scripts/Outland/BlackTemple/black_temple.h b/src/server/scripts/Outland/BlackTemple/black_temple.h index 4af561480be..c03c8b97d20 100644 --- a/src/server/scripts/Outland/BlackTemple/black_temple.h +++ b/src/server/scripts/Outland/BlackTemple/black_temple.h @@ -65,12 +65,15 @@ enum CreatureIds NPC_ILLIDARI_COUNCIL = 23426, NPC_BLOOD_ELF_COUNCIL_VOICE = 23499, - NPC_ILLIDAN_STORMRAGE = 22917 + NPC_ILLIDAN_STORMRAGE = 22917, + + NPC_SUPREMUS_VOLCANO = 23085 }; enum GameObjectIds { GO_NAJENTUS_GATE = 185483, + GO_NAJENTUS_SPINE = 185584, GO_SUPREMUS_GATE = 185882, GO_SHADE_OF_AKAMA_DOOR = 185478, GO_TERON_DOOR_1 = 185480, diff --git a/src/server/scripts/Outland/BlackTemple/boss_mother_shahraz.cpp b/src/server/scripts/Outland/BlackTemple/boss_mother_shahraz.cpp index 3415451fef5..6c3e820e10f 100644 --- a/src/server/scripts/Outland/BlackTemple/boss_mother_shahraz.cpp +++ b/src/server/scripts/Outland/BlackTemple/boss_mother_shahraz.cpp @@ -1,6 +1,5 @@ /* * Copyright (C) 2008-2014 TrinityCore <http://www.trinitycore.org/> - * Copyright (C) 2006-2009 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/> * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the @@ -19,7 +18,7 @@ /* ScriptData SDName: Boss_Mother_Shahraz SD%Complete: 80 -SDComment: Saber Lash missing, Fatal Attraction slightly incorrect; need to damage only if affected players are within range of each other +SDComment: Fatal Attraction slightly incorrect; need to damage only if affected players are within range of each other SDCategory: Black Temple EndScriptData */ @@ -27,17 +26,19 @@ EndScriptData */ #include "ScriptedCreature.h" #include "black_temple.h" -enum MotherShahraz +enum Texts { //Speech'n'Sounds - SAY_TAUNT = 0, - SAY_AGGRO = 1, - SAY_SPELL = 2, - SAY_SLAY = 3, - SAY_ENRAGE = 4, - SAY_DEATH = 5, + SAY_TAUNT = 0, + SAY_AGGRO = 1, + SAY_SPELL = 2, + SAY_SLAY = 3, + SAY_ENRAGE = 4, + SAY_DEATH = 5 +}; - //Spells +enum Spells +{ SPELL_BEAM_SINISTER = 40859, SPELL_BEAM_VILE = 40860, SPELL_BEAM_WICKED = 40861, @@ -51,6 +52,26 @@ enum MotherShahraz SPELL_BERSERK = 45078 }; +enum Events +{ + EVENT_RANDOM_BEAM = 1, + EVENT_PRISMATIC_SHIELD, + EVENT_FATAL_ATTRACTION, + EVENT_FATAL_ATTRACTION_EXPLOSION, + EVENT_SABER_SLASH, + EVENT_SILENCING_SHRIEK, + EVENT_RANDOM_TAUNT, + EVENT_BERSERK +}; + +enum Beams +{ + SINISTER_BEAM, + VILE_BEAM, + WICKED_BEAM, + SINFUL_BEAM +}; + uint32 PrismaticAuras[]= { 40880, // Shadow @@ -82,62 +103,41 @@ class boss_mother_shahraz : public CreatureScript public: boss_mother_shahraz() : CreatureScript("boss_mother_shahraz") { } - CreatureAI* GetAI(Creature* creature) const override + struct boss_shahrazAI : public BossAI { - return GetInstanceAI<boss_shahrazAI>(creature); - } - - struct boss_shahrazAI : public ScriptedAI - { - boss_shahrazAI(Creature* creature) : ScriptedAI(creature) + boss_shahrazAI(Creature* creature) : BossAI(creature, DATA_MOTHER_SHAHRAZ) { - instance = creature->GetInstanceScript(); + Initialize(); } - InstanceScript* instance; - - uint64 TargetGUID[3]; - uint32 BeamTimer; - uint32 BeamCount; - uint32 CurrentBeam; - uint32 PrismaticShieldTimer; - uint32 FatalAttractionTimer; - uint32 FatalAttractionExplodeTimer; - uint32 ShriekTimer; - uint32 SaberTimer; - uint32 RandomYellTimer; - uint32 EnrageTimer; - uint32 ExplosionCount; - - bool Enraged; - - void Reset() override + void Initialize() { - instance->SetBossState(DATA_MOTHER_SHAHRAZ, NOT_STARTED); - for (uint8 i = 0; i<3; ++i) TargetGUID[i] = 0; - BeamTimer = 20000; // Timers may be incorrect BeamCount = 0; - CurrentBeam = 0; // 0 - Sinister, 1 - Vile, 2 - Wicked, 3 - Sinful - PrismaticShieldTimer = 0; - FatalAttractionTimer = 60000; - FatalAttractionExplodeTimer = 70000; - ShriekTimer = 30000; - SaberTimer = 35000; - RandomYellTimer = urand(70, 111) * 1000; - EnrageTimer = 600000; + CurrentBeam = SINISTER_BEAM; // 0 - Sinister, 1 - Vile, 2 - Wicked, 3 - Sinful ExplosionCount = 0; - Enraged = false; } - void EnterCombat(Unit* /*who*/) override + void Reset() override { - instance->SetBossState(DATA_MOTHER_SHAHRAZ, IN_PROGRESS); + Initialize(); + _Reset(); + } - DoZoneInCombat(); + void EnterCombat(Unit* /*who*/) override + { + _EnterCombat(); + events.ScheduleEvent(EVENT_RANDOM_BEAM, 20000); // Timers may be incorrect + events.ScheduleEvent(EVENT_FATAL_ATTRACTION, 60000); + events.ScheduleEvent(EVENT_FATAL_ATTRACTION_EXPLOSION, 70000); + events.ScheduleEvent(EVENT_SILENCING_SHRIEK, 30000); + events.ScheduleEvent(EVENT_SABER_SLASH, 35000); + events.ScheduleEvent(EVENT_RANDOM_TAUNT, urand(70000, 111000)); + events.ScheduleEvent(EVENT_PRISMATIC_SHIELD, 1000); + events.ScheduleEvent(EVENT_BERSERK, 600000); Talk(SAY_AGGRO); } @@ -148,152 +148,136 @@ public: void JustDied(Unit* /*killer*/) override { - instance->SetBossState(DATA_MOTHER_SHAHRAZ, DONE); - + _JustDied(); Talk(SAY_DEATH); } void TeleportPlayers() { - uint32 random = rand32() % 7; + uint32 random = urand(0, 7); float X = TeleportPoint[random].x; float Y = TeleportPoint[random].y; float Z = TeleportPoint[random].z; for (uint8 i = 0; i < 3; ++i) { - Unit* unit = SelectTarget(SELECT_TARGET_RANDOM, 1); - if (unit && unit->IsAlive() && (unit->GetTypeId() == TYPEID_PLAYER)) - { - TargetGUID[i] = unit->GetGUID(); - unit->CastSpell(unit, SPELL_TELEPORT_VISUAL, true); - DoTeleportPlayer(unit, X, Y, Z, unit->GetOrientation()); - } + if (Unit* unit = SelectTarget(SELECT_TARGET_RANDOM, 1)) + if (unit->IsAlive() && unit->GetTypeId() == TYPEID_PLAYER) + { + TargetGUID[i] = unit->GetGUID(); + unit->CastSpell(unit, SPELL_TELEPORT_VISUAL, true); + DoTeleportPlayer(unit, X, Y, Z, unit->GetOrientation()); + } } } - void UpdateAI(uint32 diff) override + void DamageTaken(Unit* /*attacker*/, uint32 &damage) override { - if (!UpdateVictim()) - return; - - if (HealthBelowPct(10) && !Enraged) + if (!Enraged && me->HealthBelowPctDamaged(10, damage)) { Enraged = true; DoCast(me, SPELL_ENRAGE, true); Talk(SAY_ENRAGE); } + } - //Randomly cast one beam. - if (BeamTimer <= diff) - { - Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0); - if (!target || !target->IsAlive()) - return; - - BeamTimer = 9000; - - switch (CurrentBeam) - { - case 0: - DoCast(target, SPELL_BEAM_SINISTER); - break; - case 1: - DoCast(target, SPELL_BEAM_VILE); - break; - case 2: - DoCast(target, SPELL_BEAM_WICKED); - break; - case 3: - DoCast(target, SPELL_BEAM_SINFUL); - break; - } - ++BeamCount; - uint32 Beam = CurrentBeam; - if (BeamCount > 3) - while (CurrentBeam == Beam) - CurrentBeam = rand32() % 3; - - } else BeamTimer -= diff; - - // Random Prismatic Shield every 15 seconds. - if (PrismaticShieldTimer <= diff) - { - uint32 random = rand32() % 6; - if (PrismaticAuras[random]) - DoCast(me, PrismaticAuras[random]); - PrismaticShieldTimer = 15000; - } else PrismaticShieldTimer -= diff; - - // Select 3 random targets (can select same target more than once), teleport to a random location then make them cast explosions until they get away from each other. - if (FatalAttractionTimer <= diff) - { - ExplosionCount = 0; - - TeleportPlayers(); - - Talk(SAY_SPELL); - FatalAttractionExplodeTimer = 2000; - FatalAttractionTimer = urand(40, 71) * 1000; - } else FatalAttractionTimer -= diff; - - if (FatalAttractionExplodeTimer <= diff) + void ExecuteEvent(uint32 eventId) override + { + switch (eventId) { - // Just make them explode three times... they're supposed to keep exploding while they are in range, but it'll take too much code. I'll try to think of an efficient way for it later. - if (ExplosionCount < 3) - { - for (uint8 i = 0; i < 3; ++i) + case EVENT_RANDOM_BEAM: + if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0)) { - if (TargetGUID[i]) + switch (CurrentBeam) { - if (Unit* unit = ObjectAccessor::GetUnit(*me, TargetGUID[i])) - unit->CastSpell(unit, SPELL_ATTRACTION, true); - TargetGUID[i] = 0; + case SINISTER_BEAM: + DoCast(target, SPELL_BEAM_SINISTER); + break; + case VILE_BEAM: + DoCast(target, SPELL_BEAM_VILE); + break; + case WICKED_BEAM: + DoCast(target, SPELL_BEAM_WICKED); + break; + case SINFUL_BEAM: + DoCast(target, SPELL_BEAM_SINFUL); + break; + default: + break; } + + ++BeamCount; + uint32 Beam = CurrentBeam; + if (BeamCount > 3) + while (CurrentBeam == Beam) + CurrentBeam = urand(0, 3); } - - ++ExplosionCount; - FatalAttractionExplodeTimer = 1000; - } - else - { - FatalAttractionExplodeTimer = FatalAttractionTimer + 2000; + events.ScheduleEvent(EVENT_RANDOM_BEAM, 9000); + break; + case EVENT_PRISMATIC_SHIELD: + // Random Prismatic Shield every 15 seconds. + DoCast(me, PrismaticAuras[urand(0, 6)]); + events.ScheduleEvent(EVENT_PRISMATIC_SHIELD, 15000); + break; + case EVENT_FATAL_ATTRACTION: + // Select 3 random targets (can select same target more than once), teleport to a random location then make them cast explosions until they get away from each other. ExplosionCount = 0; - } - } else FatalAttractionExplodeTimer -= diff; - - if (ShriekTimer <= diff) - { - DoCastVictim(SPELL_SILENCING_SHRIEK); - ShriekTimer = 25000 + rand32() % 10 * 1000; - } else ShriekTimer -= diff; - - if (SaberTimer <= diff) - { - DoCastVictim(SPELL_SABER_LASH); - SaberTimer = 25000 + rand32() % 10 * 1000; - } else SaberTimer -= diff; - - //Enrage - if (!me->HasAura(SPELL_BERSERK)) - { - if (EnrageTimer <= diff) - { + TeleportPlayers(); + Talk(SAY_SPELL); + events.ScheduleEvent(EVENT_FATAL_ATTRACTION_EXPLOSION, 2000); + events.ScheduleEvent(EVENT_FATAL_ATTRACTION, 40000, 71000); + break; + case EVENT_FATAL_ATTRACTION_EXPLOSION: + // Just make them explode three times... they're supposed to keep exploding while they are in range, but it'll take too much code. I'll try to think of an efficient way for it later. + if (ExplosionCount < 3) + { + for (uint8 i = 0; i < 3; ++i) + { + if (TargetGUID[i]) + { + if (Unit* unit = ObjectAccessor::GetUnit(*me, TargetGUID[i])) + unit->CastSpell(unit, SPELL_ATTRACTION, true); + TargetGUID[i] = 0; + } + } + ++ExplosionCount; + } + else + ExplosionCount = 0; + events.ScheduleEvent(EVENT_FATAL_ATTRACTION_EXPLOSION, ExplosionCount < 3 ? 1000 : events.GetTimeUntilEvent(EVENT_FATAL_ATTRACTION) + 2000); + break; + case EVENT_SILENCING_SHRIEK: + DoCastVictim(SPELL_SILENCING_SHRIEK); + events.ScheduleEvent(EVENT_SILENCING_SHRIEK, urand(25000, 35000)); + break; + case EVENT_SABER_SLASH: + DoCastVictim(SPELL_SABER_LASH); + events.ScheduleEvent(EVENT_SABER_SLASH, urand(25000, 35000)); + break; + case EVENT_RANDOM_TAUNT: + Talk(SAY_TAUNT); + events.ScheduleEvent(EVENT_RANDOM_TAUNT, urand(60000, 151000)); + break; + case EVENT_BERSERK: DoCast(me, SPELL_BERSERK); Talk(SAY_ENRAGE); - } else EnrageTimer -= diff; + break; + default: + break; } - - //Random taunts - if (RandomYellTimer <= diff) - { - Talk(SAY_TAUNT); - RandomYellTimer = urand(60, 151) * 1000; - } else RandomYellTimer -= diff; - - DoMeleeAttackIfReady(); } + + private: + uint64 TargetGUID[3]; + uint32 BeamCount; + uint32 CurrentBeam; + uint32 ExplosionCount; + bool Enraged; }; + CreatureAI* GetAI(Creature* creature) const override + { + return GetBlackTempleAI<boss_shahrazAI>(creature); + } }; void AddSC_boss_mother_shahraz() diff --git a/src/server/scripts/Outland/BlackTemple/boss_supremus.cpp b/src/server/scripts/Outland/BlackTemple/boss_supremus.cpp index a705659337f..b9b654f8b95 100644 --- a/src/server/scripts/Outland/BlackTemple/boss_supremus.cpp +++ b/src/server/scripts/Outland/BlackTemple/boss_supremus.cpp @@ -1,6 +1,5 @@ /* * Copyright (C) 2008-2014 TrinityCore <http://www.trinitycore.org/> - * Copyright (C) 2006-2009 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/> * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the @@ -16,46 +15,47 @@ * with this program. If not, see <http://www.gnu.org/licenses/>. */ -/* ScriptData -SDName: Boss_Supremus -SD%Complete: 95 -SDComment: Need to implement molten punch -SDCategory: Black Temple -EndScriptData */ - #include "ScriptMgr.h" #include "ScriptedCreature.h" #include "PassiveAI.h" #include "black_temple.h" -enum Supremus +enum Texts { - EMOTE_NEW_TARGET = 0, - EMOTE_PUNCH_GROUND = 1, - EMOTE_GROUND_CRACK = 2, - - //Spells - SPELL_MOLTEN_PUNCH = 40126, - SPELL_HATEFUL_STRIKE = 41926, - SPELL_MOLTEN_FLAME = 40980, - SPELL_VOLCANIC_ERUPTION = 40117, - SPELL_VOLCANIC_SUMMON = 40276, - SPELL_BERSERK = 45078, + EMOTE_NEW_TARGET = 0, + EMOTE_PUNCH_GROUND = 1, + EMOTE_GROUND_CRACK = 2 +}; - CREATURE_VOLCANO = 23085, - CREATURE_STALKER = 23095, +enum Spells +{ + SPELL_MOLTEN_PUNCH = 40126, + SPELL_HATEFUL_STRIKE = 41926, + SPELL_MOLTEN_FLAME = 40980, + SPELL_VOLCANIC_ERUPTION = 40117, + SPELL_VOLCANIC_SUMMON = 40276, + SPELL_BERSERK = 45078 +}; - PHASE_STRIKE = 1, - PHASE_CHASE = 2, +enum Events +{ + EVENT_BERSERK = 1, + EVENT_SWITCH_PHASE, + EVENT_FLAME, + EVENT_VOLCANO, + EVENT_SWITCH_TARGET, + EVENT_HATEFUL_STRIKE +}; - EVENT_BERSERK = 1, - EVENT_SWITCH_PHASE = 2, - EVENT_FLAME = 3, - EVENT_VOLCANO = 4, - EVENT_SWITCH_TARGET = 5, - EVENT_HATEFUL_STRIKE = 6, +enum Phases +{ + PHASE_STRIKE = 1, + PHASE_CHASE = 2 +}; - GCD_CAST = 1 +enum EventGroups +{ + GCD_CAST = 1 }; class molten_flame : public CreatureScript @@ -88,38 +88,22 @@ class boss_supremus : public CreatureScript public: boss_supremus() : CreatureScript("boss_supremus") { } - CreatureAI* GetAI(Creature* creature) const override + struct boss_supremusAI : public BossAI { - return GetInstanceAI<boss_supremusAI>(creature); - } - - struct boss_supremusAI : public ScriptedAI - { - boss_supremusAI(Creature* creature) : ScriptedAI(creature), summons(me) + boss_supremusAI(Creature* creature) : BossAI(creature, DATA_SUPREMUS) { - instance = creature->GetInstanceScript(); + phase = 0; } - InstanceScript* instance; - EventMap events; - SummonList summons; - uint32 phase; - void Reset() override { - if (me->IsAlive()) - instance->SetBossState(DATA_SUPREMUS, NOT_STARTED); - + _Reset(); phase = 0; - - events.Reset(); - summons.DespawnAll(); } void EnterCombat(Unit* /*who*/) override { - instance->SetBossState(DATA_SUPREMUS, IN_PROGRESS); - + _EnterCombat(); ChangePhase(); events.ScheduleEvent(EVENT_BERSERK, 900000, GCD_CAST); events.ScheduleEvent(EVENT_FLAME, 20000, GCD_CAST); @@ -152,23 +136,6 @@ public: events.ScheduleEvent(EVENT_SWITCH_PHASE, 60000, GCD_CAST); } - void JustDied(Unit* /*killer*/) override - { - instance->SetBossState(DATA_SUPREMUS, DONE); - - summons.DespawnAll(); - } - - void JustSummoned(Creature* summon) override - { - summons.Summon(summon); - } - - void SummonedCreatureDespawn(Creature* summon) override - { - summons.Despawn(summon); - } - Unit* CalculateHatefulStrikeTarget() { uint32 health = 0; @@ -192,63 +159,59 @@ public: return target; } - void UpdateAI(uint32 diff) override + void ExecuteEvent(uint32 eventId) override { - if (!UpdateVictim()) - return; - - events.Update(diff); - - while (uint32 eventId = events.ExecuteEvent()) + switch (eventId) { - switch (eventId) - { - case EVENT_BERSERK: - DoCast(me, SPELL_BERSERK, true); - break; - case EVENT_FLAME: - DoCast(me, SPELL_MOLTEN_PUNCH); - events.DelayEvents(1500, GCD_CAST); - events.ScheduleEvent(EVENT_FLAME, 20000, GCD_CAST); - break; - case EVENT_HATEFUL_STRIKE: - if (Unit* target = CalculateHatefulStrikeTarget()) - DoCast(target, SPELL_HATEFUL_STRIKE); - events.DelayEvents(1000, GCD_CAST); - events.ScheduleEvent(EVENT_HATEFUL_STRIKE, 5000, GCD_CAST, PHASE_STRIKE); - break; - case EVENT_SWITCH_TARGET: - if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1, 100, true)) - { - DoResetThreat(); - me->AddThreat(target, 5000000.0f); - Talk(EMOTE_NEW_TARGET); - } - events.ScheduleEvent(EVENT_SWITCH_TARGET, 10000, 0, PHASE_CHASE); - break; - case EVENT_VOLCANO: + case EVENT_BERSERK: + DoCast(me, SPELL_BERSERK, true); + break; + case EVENT_FLAME: + DoCast(me, SPELL_MOLTEN_PUNCH); + events.DelayEvents(1500, GCD_CAST); + events.ScheduleEvent(EVENT_FLAME, 20000, GCD_CAST); + break; + case EVENT_HATEFUL_STRIKE: + if (Unit* target = CalculateHatefulStrikeTarget()) + DoCast(target, SPELL_HATEFUL_STRIKE); + events.DelayEvents(1000, GCD_CAST); + events.ScheduleEvent(EVENT_HATEFUL_STRIKE, 5000, GCD_CAST, PHASE_STRIKE); + break; + case EVENT_SWITCH_TARGET: + if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1, 100, true)) { - Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 999, true); - if (!target) target = me->GetVictim(); - if (target) - { - //DoCast(target, SPELL_VOLCANIC_SUMMON);//movement bugged - me->SummonCreature(CREATURE_VOLCANO, target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN, 30000); - Talk(EMOTE_GROUND_CRACK); - events.DelayEvents(1500, GCD_CAST); - } - events.ScheduleEvent(EVENT_VOLCANO, 10000, GCD_CAST, PHASE_CHASE); - return; + DoResetThreat(); + me->AddThreat(target, 5000000.0f); + Talk(EMOTE_NEW_TARGET); } - case EVENT_SWITCH_PHASE: - ChangePhase(); - break; - } + events.ScheduleEvent(EVENT_SWITCH_TARGET, 10000, 0, PHASE_CHASE); + break; + case EVENT_VOLCANO: + if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 999, true)) + { + //DoCast(target, SPELL_VOLCANIC_SUMMON);//movement bugged + me->SummonCreature(NPC_SUPREMUS_VOLCANO, target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN, 30000); + Talk(EMOTE_GROUND_CRACK); + events.DelayEvents(1500, GCD_CAST); + } + events.ScheduleEvent(EVENT_VOLCANO, 10000, GCD_CAST, PHASE_CHASE); + return; + case EVENT_SWITCH_PHASE: + ChangePhase(); + break; + default: + break; } - - DoMeleeAttackIfReady(); } + + private: + uint32 phase; }; + + CreatureAI* GetAI(Creature* creature) const override + { + return GetBlackTempleAI<boss_supremusAI>(creature); + } }; class npc_volcano : public CreatureScript @@ -256,11 +219,6 @@ class npc_volcano : public CreatureScript public: npc_volcano() : CreatureScript("npc_volcano") { } - CreatureAI* GetAI(Creature* creature) const override - { - return new npc_volcanoAI(creature); - } - struct npc_volcanoAI : public ScriptedAI { npc_volcanoAI(Creature* creature) : ScriptedAI(creature) @@ -282,7 +240,6 @@ public: void MoveInLineOfSight(Unit* /*who*/) override { } - void DoAction(int32 /*info*/) override { me->RemoveAura(SPELL_VOLCANIC_ERUPTION); @@ -298,6 +255,11 @@ public: else wait -= diff; } }; + + CreatureAI* GetAI(Creature* creature) const override + { + return new npc_volcanoAI(creature); + } }; void AddSC_boss_supremus() diff --git a/src/server/scripts/Outland/BlackTemple/boss_warlord_najentus.cpp b/src/server/scripts/Outland/BlackTemple/boss_warlord_najentus.cpp index 64a6add9801..6425675219f 100644 --- a/src/server/scripts/Outland/BlackTemple/boss_warlord_najentus.cpp +++ b/src/server/scripts/Outland/BlackTemple/boss_warlord_najentus.cpp @@ -29,7 +29,7 @@ EndScriptData */ #include "Player.h" #include "SpellInfo.h" -enum Yells +enum Texts { SAY_AGGRO = 0, SAY_NEEDLE = 1, @@ -51,11 +51,6 @@ enum Spells }; -enum GameObjects -{ - GOBJECT_SPINE = 185584 -}; - enum Events { EVENT_BERSERK = 1, @@ -65,7 +60,7 @@ enum Events EVENT_SHIELD = 5 }; -enum Misc +enum EventGroups { GCD_CAST = 1, GCD_YELL = 2 @@ -76,30 +71,17 @@ class boss_najentus : public CreatureScript public: boss_najentus() : CreatureScript("boss_najentus") { } - CreatureAI* GetAI(Creature* creature) const override - { - return GetInstanceAI<boss_najentusAI>(creature); - } - - struct boss_najentusAI : public ScriptedAI + struct boss_najentusAI : public BossAI { - boss_najentusAI(Creature* creature) : ScriptedAI(creature) + boss_najentusAI(Creature* creature) : BossAI(creature, DATA_HIGH_WARLORD_NAJENTUS) { - instance = creature->GetInstanceScript(); + SpineTargetGUID = 0; } - InstanceScript* instance; - EventMap events; - - uint64 SpineTargetGUID; - void Reset() override { - events.Reset(); - + _Reset(); SpineTargetGUID = 0; - - instance->SetBossState(DATA_HIGH_WARLORD_NAJENTUS, NOT_STARTED); } void KilledUnit(Unit* /*victim*/) override @@ -110,8 +92,7 @@ public: void JustDied(Unit* /*killer*/) override { - instance->SetBossState(DATA_HIGH_WARLORD_NAJENTUS, DONE); - + _JustDied(); Talk(SAY_DEATH); } @@ -127,10 +108,8 @@ public: void EnterCombat(Unit* /*who*/) override { - instance->SetBossState(DATA_HIGH_WARLORD_NAJENTUS, IN_PROGRESS); - + _EnterCombat(); Talk(SAY_AGGRO); - DoZoneInCombat(); events.ScheduleEvent(EVENT_BERSERK, 480000, GCD_CAST); events.ScheduleEvent(EVENT_YELL, 45000 + (rand32() % 76) * 1000, GCD_YELL); ResetTimer(); @@ -155,44 +134,40 @@ public: events.RescheduleEvent(EVENT_SHIELD, 60000 + inc); } - void UpdateAI(uint32 diff) override + void ExecuteEvent(uint32 eventId) override { - if (!UpdateVictim()) - return; - - events.Update(diff); - - while (uint32 eventId = events.ExecuteEvent()) + switch (eventId) { - switch (eventId) - { - case EVENT_SHIELD: - DoCast(me, SPELL_TIDAL_SHIELD, true); - ResetTimer(45000); - break; - case EVENT_BERSERK: - Talk(SAY_ENRAGE); - DoCast(me, SPELL_BERSERK, true); - events.DelayEvents(15000, GCD_YELL); - break; - case EVENT_SPINE: - { - Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1); - if (!target) target = me->GetVictim(); - if (target) - { - DoCast(target, SPELL_IMPALING_SPINE, true); - SpineTargetGUID = target->GetGUID(); - //must let target summon, otherwise you cannot click the spine - target->SummonGameObject(GOBJECT_SPINE, target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(), me->GetOrientation(), 0, 0, 0, 0, 30); - Talk(SAY_NEEDLE); - events.DelayEvents(1500, GCD_CAST); - events.DelayEvents(15000, GCD_YELL); - } - events.ScheduleEvent(EVENT_SPINE, 21000, GCD_CAST); - return; - } - case EVENT_NEEDLE: + case EVENT_SHIELD: + DoCast(me, SPELL_TIDAL_SHIELD, true); + ResetTimer(45000); + break; + case EVENT_BERSERK: + Talk(SAY_ENRAGE); + DoCast(me, SPELL_BERSERK, true); + events.DelayEvents(15000, GCD_YELL); + break; + case EVENT_SPINE: + {
+ Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1);
+
+ if (!target)
+ target = me->GetVictim();
+
+ if (target)
+ {
+ DoCast(target, SPELL_IMPALING_SPINE, true);
+ SpineTargetGUID = target->GetGUID();
+ //must let target summon, otherwise you cannot click the spine
+ target->SummonGameObject(GO_NAJENTUS_SPINE, target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(), me->GetOrientation(), 0, 0, 0, 0, 30);
+ Talk(SAY_NEEDLE);
+ events.DelayEvents(1500, GCD_CAST);
+ events.DelayEvents(15000, GCD_YELL);
+ }
+ events.ScheduleEvent(EVENT_SPINE, 21000, GCD_CAST);
+ return;
+ } + case EVENT_NEEDLE: { //DoCast(me, SPELL_NEEDLE_SPINE, true); std::list<Unit*> targets; @@ -203,18 +178,24 @@ public: events.DelayEvents(1500, GCD_CAST); return; } - case EVENT_YELL: - Talk(SAY_SPECIAL); - events.ScheduleEvent(EVENT_YELL, urand(25000, 100000), GCD_YELL); - events.DelayEvents(15000, GCD_YELL); - break; - } + case EVENT_YELL: + Talk(SAY_SPECIAL); + events.ScheduleEvent(EVENT_YELL, urand(25000, 100000), GCD_YELL); + events.DelayEvents(15000, GCD_YELL); + break; + default: + break; } - - DoMeleeAttackIfReady(); } + + private: + uint64 SpineTargetGUID; }; + CreatureAI* GetAI(Creature* creature) const override + { + return GetBlackTempleAI<boss_najentusAI>(creature); + } }; class go_najentus_spine : public GameObjectScript diff --git a/src/server/scripts/Outland/CMakeLists.txt b/src/server/scripts/Outland/CMakeLists.txt index 0c69a236ef8..ffc9b514abf 100644 --- a/src/server/scripts/Outland/CMakeLists.txt +++ b/src/server/scripts/Outland/CMakeLists.txt @@ -88,7 +88,7 @@ set(scripts_STAT_SRCS Outland/Auchindoun/ManaTombs/instance_mana_tombs.cpp Outland/Auchindoun/ManaTombs/mana_tombs.h Outland/Auchindoun/SethekkHalls/boss_darkweaver_syth.cpp - Outland/Auchindoun/SethekkHalls/boss_tailonking_ikiss.cpp + Outland/Auchindoun/SethekkHalls/boss_talon_king_ikiss.cpp Outland/Auchindoun/SethekkHalls/boss_anzu.cpp Outland/Auchindoun/SethekkHalls/instance_sethekk_halls.cpp Outland/Auchindoun/SethekkHalls/sethekk_halls.h diff --git a/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_hydromancer_thespia.cpp b/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_hydromancer_thespia.cpp index d4fdb262c8e..dfbc49e1e34 100644 --- a/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_hydromancer_thespia.cpp +++ b/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_hydromancer_thespia.cpp @@ -110,11 +110,6 @@ class boss_hydromancer_thespia : public CreatureScript break; } } - - void UpdateAI(uint32 diff) override - { - BossAI::UpdateAI(diff); - } }; CreatureAI* GetAI(Creature* creature) const override diff --git a/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/blood_furnace.h b/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/blood_furnace.h index b2097c34b33..51c5a5221ea 100644 --- a/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/blood_furnace.h +++ b/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/blood_furnace.h @@ -46,7 +46,8 @@ enum CreatureIds NPC_THE_MAKER = 17381, NPC_BROGGOK = 17380, NPC_KELIDAN_THE_BREAKER = 17377, - NPC_PRISONER = 17398 + NPC_PRISONER = 17398, + NPC_BROGGOK_POISON_CLOUD = 17662 }; enum GameObjectIds diff --git a/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_broggok.cpp b/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_broggok.cpp index 55e9801320f..880efd0cfaf 100644 --- a/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_broggok.cpp +++ b/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_broggok.cpp @@ -43,6 +43,13 @@ enum Spells SPELL_POISON_CLOUD_PASSIVE = 30914 }; +enum Events +{ + EVENT_SLIME_SPRAY = 1, + EVENT_POISON_BOLT, + EVENT_POISON_CLOUD, +}; + class boss_broggok : public CreatureScript { public: @@ -52,17 +59,9 @@ class boss_broggok : public CreatureScript { boss_broggokAI(Creature* creature) : BossAI(creature, DATA_BROGGOK) { } - uint32 AcidSpray_Timer; - uint32 PoisonSpawn_Timer; - uint32 PoisonBolt_Timer; - bool canAttack; - void Reset() override { _Reset(); - AcidSpray_Timer = 10000; - PoisonSpawn_Timer = 5000; - PoisonBolt_Timer = 7000; DoAction(ACTION_RESET_BROGGOK); } @@ -72,44 +71,35 @@ class boss_broggok : public CreatureScript Talk(SAY_AGGRO); } - void UpdateAI(uint32 diff) override + void JustSummoned(Creature* summoned) override { - if (!UpdateVictim()) - return; - - if (!canAttack) - return; - - if (AcidSpray_Timer <= diff) - { - DoCastVictim(SPELL_SLIME_SPRAY); - AcidSpray_Timer = 4000 + rand32() % 8000; - } - else - AcidSpray_Timer -=diff; - - if (PoisonBolt_Timer <= diff) + if (summoned->GetEntry() == NPC_BROGGOK_POISON_CLOUD) { - DoCastVictim(SPELL_POISON_BOLT); - PoisonBolt_Timer = 4000 + rand32() % 8000; + summoned->SetReactState(REACT_PASSIVE); + summoned->CastSpell(summoned, SPELL_POISON_CLOUD_PASSIVE, true); + summons.Summon(summoned); } - else - PoisonBolt_Timer -=diff; - - if (PoisonSpawn_Timer <= diff) - { - DoCast(me, SPELL_POISON_CLOUD); - PoisonSpawn_Timer = 20000; - } - else - PoisonSpawn_Timer -=diff; - - DoMeleeAttackIfReady(); } - void JustDied(Unit* /*killer*/) override + void ExecuteEvent(uint32 eventId) override { - _JustDied(); + switch (eventId) + { + case EVENT_SLIME_SPRAY: + DoCastVictim(SPELL_SLIME_SPRAY); + events.ScheduleEvent(EVENT_SLIME_SPRAY, urand(4000, 12000)); + break; + case EVENT_POISON_BOLT: + DoCastVictim(SPELL_POISON_BOLT); + events.ScheduleEvent(EVENT_POISON_BOLT, urand(4000, 12000)); + break; + case EVENT_POISON_CLOUD: + DoCast(me, SPELL_POISON_CLOUD); + events.ScheduleEvent(EVENT_POISON_CLOUD, 20000); + break; + default: + break; + } } void DoAction(int32 action) override @@ -122,12 +112,13 @@ class boss_broggok : public CreatureScript case ACTION_ACTIVATE_BROGGOK: me->SetReactState(REACT_AGGRESSIVE); me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC | UNIT_FLAG_NON_ATTACKABLE); - canAttack = true; + events.ScheduleEvent(EVENT_SLIME_SPRAY, 10000); + events.ScheduleEvent(EVENT_POISON_BOLT, 7000); + events.ScheduleEvent(EVENT_POISON_CLOUD, 5000); break; case ACTION_RESET_BROGGOK: me->SetReactState(REACT_PASSIVE); me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC | UNIT_FLAG_NON_ATTACKABLE); - canAttack = false; break; } } @@ -140,33 +131,6 @@ class boss_broggok : public CreatureScript } }; -class npc_broggok_poison_cloud : public CreatureScript -{ - public: - npc_broggok_poison_cloud() : CreatureScript("npc_broggok_poison_cloud") { } - - struct npc_broggok_poison_cloudAI : public ScriptedAI - { - npc_broggok_poison_cloudAI(Creature* creature) : ScriptedAI(creature) - { - SetCombatMovement(false); - creature->SetReactState(REACT_PASSIVE); - } - - void IsSummonedBy(Unit* /*summoner*/) override - { - DoCast(me, SPELL_POISON_CLOUD_PASSIVE, true); - } - - void UpdateAI(uint32 /*diff*/) override { } - }; - - CreatureAI* GetAI(Creature* creature) const override - { - return new npc_broggok_poison_cloudAI(creature); - } -}; - class go_broggok_lever : public GameObjectScript { public: @@ -228,7 +192,6 @@ class spell_broggok_poison_cloud : public SpellScriptLoader void AddSC_boss_broggok() { new boss_broggok(); - new npc_broggok_poison_cloud(); new go_broggok_lever(); new spell_broggok_poison_cloud(); } diff --git a/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_the_maker.cpp b/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_the_maker.cpp index 53680739e55..67e09ba4ac9 100644 --- a/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_the_maker.cpp +++ b/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_the_maker.cpp @@ -1,6 +1,5 @@ /* * Copyright (C) 2008-2014 TrinityCore <http://www.trinitycore.org/> - * Copyright (C) 2006-2009 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/> * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the @@ -16,13 +15,6 @@ * with this program. If not, see <http://www.gnu.org/licenses/>. */ -/* ScriptData -SDName: Boss_The_Maker -SD%Complete: 80 -SDComment: Mind control no support -SDCategory: Hellfire Citadel, Blood Furnace -EndScriptData */ - #include "ScriptMgr.h" #include "ScriptedCreature.h" #include "blood_furnace.h" @@ -42,6 +34,14 @@ enum Spells SPELL_DOMINATION = 25772 }; +enum Events +{ + EVENT_ACID_SPRAY = 1, + EVENT_EXPLODING_BREAKER, + EVENT_DOMINATION, + EVENT_KNOCKDOWN +}; + class boss_the_maker : public CreatureScript { public: @@ -51,24 +51,15 @@ class boss_the_maker : public CreatureScript { boss_the_makerAI(Creature* creature) : BossAI(creature, DATA_THE_MAKER) { } - uint32 AcidSpray_Timer; - uint32 ExplodingBreaker_Timer; - uint32 Domination_Timer; - uint32 Knockdown_Timer; - - void Reset() override - { - _Reset(); - AcidSpray_Timer = 15000; - ExplodingBreaker_Timer = 6000; - Domination_Timer = 120000; - Knockdown_Timer = 10000; - } - void EnterCombat(Unit* /*who*/) override { _EnterCombat(); Talk(SAY_AGGRO); + + events.ScheduleEvent(EVENT_ACID_SPRAY, 15000); + events.ScheduleEvent(EVENT_EXPLODING_BREAKER, 6000); + events.ScheduleEvent(EVENT_DOMINATION, 120000); + events.ScheduleEvent(EVENT_KNOCKDOWN, 10000); } void KilledUnit(Unit* who) override @@ -83,49 +74,31 @@ class boss_the_maker : public CreatureScript Talk(SAY_DIE); } - void UpdateAI(uint32 diff) override + void ExecuteEvent(uint32 eventId) override { - if (!UpdateVictim()) - return; - - if (AcidSpray_Timer <= diff) - { - DoCastVictim(SPELL_ACID_SPRAY); - AcidSpray_Timer = 15000 + rand32() % 8000; - } - else - AcidSpray_Timer -=diff; - - if (ExplodingBreaker_Timer <= diff) + switch (eventId) { - if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0)) - DoCast(target, SPELL_EXPLODING_BREAKER); - ExplodingBreaker_Timer = 4000 + rand32() % 8000; + case EVENT_ACID_SPRAY: + DoCastVictim(SPELL_ACID_SPRAY); + events.ScheduleEvent(EVENT_ACID_SPRAY, urand(15000, 23000)); + break; + case EVENT_EXPLODING_BREAKER: + if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 30.0f, true)) + DoCast(target, SPELL_EXPLODING_BREAKER); + events.ScheduleEvent(EVENT_EXPLODING_BREAKER, urand(4000, 12000)); + break; + case EVENT_DOMINATION: + if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 0.0f, true)) + DoCast(target, SPELL_DOMINATION); + events.ScheduleEvent(EVENT_DOMINATION, 120000); + break; + case EVENT_KNOCKDOWN: + DoCastVictim(SPELL_KNOCKDOWN); + events.ScheduleEvent(EVENT_KNOCKDOWN, urand(4000, 12000)); + break; + default: + break; } - else - ExplodingBreaker_Timer -=diff; - - /* // Disabled until Core Support for mind control - if (domination_timer_timer <= diff) - { - Unit* target; - target = SelectUnit(SELECT_TARGET_RANDOM, 0); - - DoCast(target, SPELL_DOMINATION); - - domination_timer = 120000; - } else domination_timer -=diff; - */ - - if (Knockdown_Timer <= diff) - { - DoCastVictim(SPELL_KNOCKDOWN); - Knockdown_Timer = 4000 + rand32() % 8000; - } - else - Knockdown_Timer -=diff; - - DoMeleeAttackIfReady(); } }; @@ -139,4 +112,3 @@ void AddSC_boss_the_maker() { new boss_the_maker(); } - diff --git a/src/server/scripts/Outland/zone_nagrand.cpp b/src/server/scripts/Outland/zone_nagrand.cpp index f32d2516ee0..a8a99d757e7 100644 --- a/src/server/scripts/Outland/zone_nagrand.cpp +++ b/src/server/scripts/Outland/zone_nagrand.cpp @@ -19,12 +19,11 @@ /* ScriptData SDName: Nagrand SD%Complete: 90 -SDComment: Quest support: 9868, 9874, 10044, 10172, 10085. TextId's unknown for altruis_the_sufferer and greatmother_geyah (npc_text) +SDComment: Quest support: 9868, 9874, 10085. TextId's unknown for altruis_the_sufferer and greatmother_geyah (npc_text) SDCategory: Nagrand EndScriptData */ /* ContentData -npc_greatmother_geyah npc_maghar_captive npc_creditmarker_visit_with_ancestors EndContentData */ @@ -36,114 +35,6 @@ EndContentData */ #include "SpellInfo.h" /*###### -## npc_greatmother_geyah -######*/ - -#define GOSSIP_HGG1 "Hello, Greatmother. Garrosh told me that you wanted to speak with me." -#define GOSSIP_HGG2 "Garrosh is beyond redemption, Greatmother. I fear that in helping the Mag'har, I have convinced Garrosh that he is unfit to lead." - -#define GOSSIP_SGG1 "You raised all of the orcs here, Greatmother?" -#define GOSSIP_SGG2 "Do you believe that?" -#define GOSSIP_SGG3 "What can be done? I have tried many different things. I have done my best to help the people of Nagrand. Each time I have approached Garrosh, he has dismissed me." -#define GOSSIP_SGG4 "Left? How can you choose to leave?" -#define GOSSIP_SGG5 "What is this duty?" -#define GOSSIP_SGG6 "Is there anything I can do for you, Greatmother?" -#define GOSSIP_SGG7 "I have done all that I could, Greatmother. I thank you for your kind words." -#define GOSSIP_SGG8 "Greatmother, you are the mother of Durotan?" -#define GOSSIP_SGG9 "Greatmother, I never had the honor. Durotan died long before my time, but his heroics are known to all on my world. The orcs of Azeroth reside in a place known as Durotar, named after your son. And ... (You take a moment to breathe and think through what you are about to tell the Greatmother.)" -#define GOSSIP_SGG10 "It is my Warchief, Greatmother. The leader of my people. From my world. He ... He is the son of Durotan. He is your grandchild." -#define GOSSIP_SGG11 "I will return to Azeroth at once, Greatmother." - -//all the textId's for the below is unknown, but i do believe the gossip item texts are proper. -class npc_greatmother_geyah : public CreatureScript -{ -public: - npc_greatmother_geyah() : CreatureScript("npc_greatmother_geyah") { } - - 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_SGG1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2); - player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID()); - break; - case GOSSIP_ACTION_INFO_DEF + 2: - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_SGG2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3); - player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID()); - break; - case GOSSIP_ACTION_INFO_DEF + 3: - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_SGG3, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 4); - player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID()); - break; - case GOSSIP_ACTION_INFO_DEF + 4: - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_SGG4, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 5); - player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID()); - break; - case GOSSIP_ACTION_INFO_DEF + 5: - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_SGG5, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 6); - player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID()); - break; - case GOSSIP_ACTION_INFO_DEF + 6: - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_SGG6, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 7); - player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID()); - break; - case GOSSIP_ACTION_INFO_DEF + 7: - player->AreaExploredOrEventHappens(10044); - player->CLOSE_GOSSIP_MENU(); - break; - case GOSSIP_ACTION_INFO_DEF + 10: - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_SGG7, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 11); - player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID()); - break; - case GOSSIP_ACTION_INFO_DEF + 11: - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_SGG8, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 12); - player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID()); - break; - case GOSSIP_ACTION_INFO_DEF + 12: - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_SGG9, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 13); - player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID()); - break; - case GOSSIP_ACTION_INFO_DEF + 13: - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_SGG10, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 14); - player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID()); - break; - case GOSSIP_ACTION_INFO_DEF + 14: - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_SGG11, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 15); - player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID()); - break; - case GOSSIP_ACTION_INFO_DEF + 15: - player->AreaExploredOrEventHappens(10172); - player->CLOSE_GOSSIP_MENU(); - break; - } - return true; - } - - bool OnGossipHello(Player* player, Creature* creature) override - { - if (creature->IsQuestGiver()) - player->PrepareQuestMenu(creature->GetGUID()); - - if (player->GetQuestStatus(10044) == QUEST_STATUS_INCOMPLETE) - { - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_HGG1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1); - player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID()); - } - else if (player->GetQuestStatus(10172) == QUEST_STATUS_INCOMPLETE) - { - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_HGG2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 10); - player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID()); - } - else - player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID()); - - return true; - } -}; - -/*##### ## npc_maghar_captive #####*/ @@ -714,7 +605,6 @@ class go_warmaul_prison : public GameObjectScript void AddSC_nagrand() { - new npc_greatmother_geyah(); new npc_maghar_captive(); new npc_creditmarker_visit_with_ancestors(); new npc_corki(); diff --git a/src/server/scripts/Outland/zone_shadowmoon_valley.cpp b/src/server/scripts/Outland/zone_shadowmoon_valley.cpp index b9b87fd5d6a..db34665e641 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, 10781, 10451. Vendor Drake Dealer Hurlunk. +SDComment: Quest support: 10583, 10601, 10804, 10854, 10458, 10481, 10480, 10781, 10451. Vendor Drake Dealer Hurlunk. SDCategory: Shadowmoon Valley EndScriptData */ @@ -29,7 +29,6 @@ npc_enslaved_netherwing_drake npc_drake_dealer_hurlunk npcs_flanis_swiftwing_and_kagrosh npc_karynaku -npc_oronok_tornheart npc_overlord_morghor npc_earthmender_wilda npc_torloth_the_magnificent @@ -492,81 +491,6 @@ public: }; /*###### -## npc_oronok -######*/ - -#define GOSSIP_ORONOK1 "I am ready to hear your story, Oronok." -#define GOSSIP_ORONOK2 "How do I find the cipher?" -#define GOSSIP_ORONOK3 "How do you know all of this?" -#define GOSSIP_ORONOK4 "Yet what? What is it, Oronok?" -#define GOSSIP_ORONOK5 "Continue, please." -#define GOSSIP_ORONOK6 "So what of the cipher now? And your boys?" -#define GOSSIP_ORONOK7 "I will find your boys and the cipher, Oronok." - -class npc_oronok_tornheart : public CreatureScript -{ -public: - npc_oronok_tornheart() : CreatureScript("npc_oronok_tornheart") { } - - bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override - { - player->PlayerTalkClass->ClearMenus(); - switch (action) - { - case GOSSIP_ACTION_TRADE: - player->GetSession()->SendListInventory(creature->GetGUID()); - break; - case GOSSIP_ACTION_INFO_DEF: - player->ADD_GOSSIP_ITEM(0, GOSSIP_ORONOK2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1); - player->SEND_GOSSIP_MENU(10313, creature->GetGUID()); - break; - case GOSSIP_ACTION_INFO_DEF+1: - player->ADD_GOSSIP_ITEM(0, GOSSIP_ORONOK3, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2); - player->SEND_GOSSIP_MENU(10314, creature->GetGUID()); - break; - case GOSSIP_ACTION_INFO_DEF+2: - player->ADD_GOSSIP_ITEM(0, GOSSIP_ORONOK4, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+3); - player->SEND_GOSSIP_MENU(10315, creature->GetGUID()); - break; - case GOSSIP_ACTION_INFO_DEF+3: - player->ADD_GOSSIP_ITEM(0, GOSSIP_ORONOK5, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+4); - player->SEND_GOSSIP_MENU(10316, creature->GetGUID()); - break; - case GOSSIP_ACTION_INFO_DEF+4: - player->ADD_GOSSIP_ITEM(0, GOSSIP_ORONOK6, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+5); - player->SEND_GOSSIP_MENU(10317, creature->GetGUID()); - break; - case GOSSIP_ACTION_INFO_DEF+5: - player->ADD_GOSSIP_ITEM(0, GOSSIP_ORONOK7, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+6); - player->SEND_GOSSIP_MENU(10318, creature->GetGUID()); - break; - case GOSSIP_ACTION_INFO_DEF+6: - player->CLOSE_GOSSIP_MENU(); - player->AreaExploredOrEventHappens(10519); - break; - } - return true; - } - - bool OnGossipHello(Player* player, Creature* creature) override - { - if (creature->IsQuestGiver()) - player->PrepareQuestMenu(creature->GetGUID()); - if (creature->IsVendor()) - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, GOSSIP_TEXT_BROWSE_GOODS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRADE); - - if (player->GetQuestStatus(10519) == QUEST_STATUS_INCOMPLETE) - { - player->ADD_GOSSIP_ITEM(0, GOSSIP_ORONOK1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF); - player->SEND_GOSSIP_MENU(10312, creature->GetGUID()); - }else - player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID()); - - return true; - } -}; - -/*#### # npc_karynaku ####*/ @@ -1909,7 +1833,6 @@ void AddSC_shadowmoon_valley() new npc_drake_dealer_hurlunk(); new npcs_flanis_swiftwing_and_kagrosh(); new npc_karynaku(); - new npc_oronok_tornheart(); new npc_overlord_morghor(); new npc_earthmender_wilda(); new npc_lord_illidan_stormrage(); diff --git a/src/server/scripts/Outland/zone_zangarmarsh.cpp b/src/server/scripts/Outland/zone_zangarmarsh.cpp index b9736c523c3..c7627d1aa04 100644 --- a/src/server/scripts/Outland/zone_zangarmarsh.cpp +++ b/src/server/scripts/Outland/zone_zangarmarsh.cpp @@ -178,6 +178,12 @@ public: npc_cooshcooshAI(Creature* creature) : ScriptedAI(creature) { m_uiNormFaction = creature->getFaction(); + Initialize(); + } + + void Initialize() + { + LightningBolt_Timer = 2000; } uint32 m_uiNormFaction; @@ -185,7 +191,7 @@ public: void Reset() override { - LightningBolt_Timer = 2000; + Initialize(); if (me->getFaction() != m_uiNormFaction) me->setFaction(m_uiNormFaction); } diff --git a/src/server/scripts/Pet/pet_dk.cpp b/src/server/scripts/Pet/pet_dk.cpp index 34da2a242f4..b24336cb33c 100644 --- a/src/server/scripts/Pet/pet_dk.cpp +++ b/src/server/scripts/Pet/pet_dk.cpp @@ -43,12 +43,20 @@ class npc_pet_dk_ebon_gargoyle : public CreatureScript struct npc_pet_dk_ebon_gargoyleAI : CasterAI { - npc_pet_dk_ebon_gargoyleAI(Creature* creature) : CasterAI(creature) { } + npc_pet_dk_ebon_gargoyleAI(Creature* creature) : CasterAI(creature) + { + Initialize(); + } - void InitializeAI() override + void Initialize() { // Not needed to be despawned now _despawnTimer = 0; + } + + void InitializeAI() override + { + Initialize(); CasterAI::InitializeAI(); uint64 ownerGuid = me->GetOwnerGUID(); diff --git a/src/server/scripts/Pet/pet_generic.cpp b/src/server/scripts/Pet/pet_generic.cpp index cfb4820c040..d0e950dec32 100644 --- a/src/server/scripts/Pet/pet_generic.cpp +++ b/src/server/scripts/Pet/pet_generic.cpp @@ -39,11 +39,19 @@ class npc_pet_gen_mojo : public CreatureScript struct npc_pet_gen_mojoAI : public ScriptedAI { - npc_pet_gen_mojoAI(Creature* creature) : ScriptedAI(creature) { } + npc_pet_gen_mojoAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } - void Reset() override + void Initialize() { _victimGUID = 0; + } + + void Reset() override + { + Initialize(); if (Unit* owner = me->GetOwner()) me->GetMotionMaster()->MoveFollow(owner, 0.0f, 0.0f); diff --git a/src/server/scripts/Pet/pet_hunter.cpp b/src/server/scripts/Pet/pet_hunter.cpp index 8fd6cb54b0e..20412415fbe 100644 --- a/src/server/scripts/Pet/pet_hunter.cpp +++ b/src/server/scripts/Pet/pet_hunter.cpp @@ -42,13 +42,22 @@ class npc_pet_hunter_snake_trap : public CreatureScript struct npc_pet_hunter_snake_trapAI : public ScriptedAI { - npc_pet_hunter_snake_trapAI(Creature* creature) : ScriptedAI(creature) { } + npc_pet_hunter_snake_trapAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } + + void Initialize() + { + _spellTimer = 0; + _isViper = false; + } void EnterCombat(Unit* /*who*/) override { } void Reset() override { - _spellTimer = 0; + Initialize(); CreatureTemplate const* Info = me->GetCreatureTemplate(); diff --git a/src/server/scripts/Spells/spell_generic.cpp b/src/server/scripts/Spells/spell_generic.cpp index 86ef8bdc8cc..7ba663beb72 100644 --- a/src/server/scripts/Spells/spell_generic.cpp +++ b/src/server/scripts/Spells/spell_generic.cpp @@ -2573,16 +2573,15 @@ class spell_gen_oracle_wolvar_reputation : public SpellScriptLoader { Player* player = GetCaster()->ToPlayer(); uint32 factionId = GetSpellInfo()->Effects[effIndex].CalcValue(); - int32 repChange = GetSpellInfo()->Effects[EFFECT_1].CalcValue(); + int32 repChange = GetSpellInfo()->Effects[EFFECT_1].CalcValue(); FactionEntry const* factionEntry = sFactionStore.LookupEntry(factionId); - if (!factionEntry) return; // Set rep to baserep + basepoints (expecting spillover for oposite faction -> become hated) // Not when player already has equal or higher rep with this faction - if (player->GetReputationMgr().GetBaseReputation(factionEntry) < repChange) + if (player->GetReputationMgr().GetReputation(factionEntry) <= repChange) player->GetReputationMgr().SetReputation(factionEntry, repChange); // EFFECT_INDEX_2 most likely update at war state, we already handle this in SetReputation diff --git a/src/server/scripts/Spells/spell_quest.cpp b/src/server/scripts/Spells/spell_quest.cpp index f17aac51519..e135bb08e73 100644 --- a/src/server/scripts/Spells/spell_quest.cpp +++ b/src/server/scripts/Spells/spell_quest.cpp @@ -21,15 +21,16 @@ * Scriptnames of files in this file should be prefixed with "spell_q#questID_". */ +#include "CellImpl.h" +#include "CreatureTextMgr.h" +#include "GridNotifiers.h" +#include "GridNotifiersImpl.h" #include "Player.h" #include "ScriptMgr.h" #include "ScriptedCreature.h" #include "SpellScript.h" #include "SpellAuraEffects.h" #include "Vehicle.h" -#include "GridNotifiers.h" -#include "GridNotifiersImpl.h" -#include "CellImpl.h" class spell_generic_quest_update_entry_SpellScript : public SpellScript { @@ -1115,12 +1116,12 @@ class spell_q9452_cast_net: public SpellScriptLoader } }; -#define SAY_1 "Sons of Hodir! I humbly present to you..." -#define SAY_2 "The Helm of Hodir!" - enum HodirsHelm { - NPC_KILLCREDIT = 30210 // Hodir's Helm KC Bunny + SAY_1 = 1, + SAY_2 = 2, + NPC_KILLCREDIT = 30210, // Hodir's Helm KC Bunny + NPC_ICE_SPIKE_BUNNY = 30215 }; class spell_q12987_read_pronouncement : public SpellScriptLoader @@ -1137,9 +1138,12 @@ public: // player must cast kill credit and do emote text, according to sniff if (Player* target = GetTarget()->ToPlayer()) { - target->MonsterWhisper(SAY_1, target, true); - target->KilledMonsterCredit(NPC_KILLCREDIT, 0); - target->MonsterWhisper(SAY_2, target, true); + if (Creature* trigger = target->FindNearestCreature(NPC_ICE_SPIKE_BUNNY, 25.0f)) + { + sCreatureTextMgr->SendChat(trigger, SAY_1, target, CHAT_MSG_ADDON, LANG_ADDON, TEXT_RANGE_NORMAL, 0, TEAM_OTHER, false, target); + target->KilledMonsterCredit(NPC_KILLCREDIT); + sCreatureTextMgr->SendChat(trigger, SAY_2, target, CHAT_MSG_ADDON, LANG_ADDON, TEXT_RANGE_NORMAL, 0, TEAM_OTHER, false, target); + } } } @@ -2096,7 +2100,7 @@ class spell_q12641_death_comes_from_on_high : public SpellScriptLoader } }; -// 52694 - Recall Eye of Acherus +// 52694 - Recall Eye of Acherus class spell_q12641_recall_eye_of_acherus : public SpellScriptLoader { public: diff --git a/src/server/scripts/World/boss_emerald_dragons.cpp b/src/server/scripts/World/boss_emerald_dragons.cpp index 950b4cd10e9..23e373312cb 100644 --- a/src/server/scripts/World/boss_emerald_dragons.cpp +++ b/src/server/scripts/World/boss_emerald_dragons.cpp @@ -170,13 +170,19 @@ class npc_dream_fog : public CreatureScript { npc_dream_fogAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); } - void Reset() override + void Initialize() { _roamTimer = 0; } + void Reset() override + { + Initialize(); + } + void UpdateAI(uint32 diff) override { if (!UpdateVictim()) @@ -247,11 +253,17 @@ class boss_ysondre : public CreatureScript { boss_ysondreAI(Creature* creature) : emerald_dragonAI(creature) { + Initialize(); } - void Reset() override + void Initialize() { _stage = 1; + } + + void Reset() override + { + Initialize(); emerald_dragonAI::Reset(); events.ScheduleEvent(EVENT_LIGHTNING_WAVE, 12000); } @@ -335,11 +347,17 @@ class boss_lethon : public CreatureScript { boss_lethonAI(Creature* creature) : emerald_dragonAI(creature) { + Initialize(); } - void Reset() override + void Initialize() { _stage = 1; + } + + void Reset() override + { + Initialize(); emerald_dragonAI::Reset(); events.ScheduleEvent(EVENT_SHADOW_BOLT_WHIRL, 10000); } @@ -457,11 +475,17 @@ class boss_emeriss : public CreatureScript { boss_emerissAI(Creature* creature) : emerald_dragonAI(creature) { + Initialize(); } - void Reset() override + void Initialize() { _stage = 1; + } + + void Reset() override + { + Initialize(); emerald_dragonAI::Reset(); events.ScheduleEvent(EVENT_VOLATILE_INFECTION, 12000); } @@ -549,16 +573,22 @@ class boss_taerar : public CreatureScript { boss_taerarAI(Creature* creature) : emerald_dragonAI(creature) { + Initialize(); } - void Reset() override + void Initialize() { - me->RemoveAurasDueToSpell(SPELL_SHADE); _stage = 1; - _shades = 0; _banished = false; _banishedTimer = 0; + } + + void Reset() override + { + me->RemoveAurasDueToSpell(SPELL_SHADE); + + Initialize(); emerald_dragonAI::Reset(); events.ScheduleEvent(EVENT_ARCANE_BLAST, 12000); diff --git a/src/server/scripts/World/guards.cpp b/src/server/scripts/World/guards.cpp index a156a41fcef..bd953a285ab 100644 --- a/src/server/scripts/World/guards.cpp +++ b/src/server/scripts/World/guards.cpp @@ -54,14 +54,22 @@ public: struct guard_genericAI : public GuardAI { - guard_genericAI(Creature* creature) : GuardAI(creature) { } + guard_genericAI(Creature* creature) : GuardAI(creature) + { + Initialize(); + } - void Reset() override + void Initialize() { globalCooldown = 0; buffTimer = 0; } + void Reset() override + { + Initialize(); + } + void EnterCombat(Unit* who) override { if (me->GetEntry() == NPC_CENARION_HOLD_INFANTRY) @@ -263,9 +271,12 @@ public: struct guard_shattrath_scryerAI : public GuardAI { - guard_shattrath_scryerAI(Creature* creature) : GuardAI(creature) { } + guard_shattrath_scryerAI(Creature* creature) : GuardAI(creature) + { + Initialize(); + } - void Reset() override + void Initialize() { banishTimer = 5000; exileTimer = 8500; @@ -273,6 +284,11 @@ public: canTeleport = false; } + void Reset() override + { + Initialize(); + } + void UpdateAI(uint32 diff) override { if (!UpdateVictim()) @@ -328,9 +344,12 @@ public: struct guard_shattrath_aldorAI : public GuardAI { - guard_shattrath_aldorAI(Creature* creature) : GuardAI(creature) { } + guard_shattrath_aldorAI(Creature* creature) : GuardAI(creature) + { + Initialize(); + } - void Reset() override + void Initialize() { banishTimer = 5000; exileTimer = 8500; @@ -338,6 +357,11 @@ public: canTeleport = false; } + void Reset() override + { + Initialize(); + } + void UpdateAI(uint32 diff) override { if (!UpdateVictim()) diff --git a/src/server/scripts/World/mob_generic_creature.cpp b/src/server/scripts/World/mob_generic_creature.cpp index a27a78a5338..eb6fbea170e 100644 --- a/src/server/scripts/World/mob_generic_creature.cpp +++ b/src/server/scripts/World/mob_generic_creature.cpp @@ -36,7 +36,17 @@ public: struct generic_creatureAI : public ScriptedAI { - generic_creatureAI(Creature* creature) : ScriptedAI(creature) { } + generic_creatureAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } + + void Initialize() + { + GlobalCooldown = 0; + BuffTimer = 0; //Rebuff as soon as we can + IsSelfRooted = false; + } uint32 GlobalCooldown; //This variable acts like the global cooldown that players have (1.5 seconds) uint32 BuffTimer; //This variable keeps track of buffs @@ -44,9 +54,7 @@ public: void Reset() override { - GlobalCooldown = 0; - BuffTimer = 0; //Rebuff as soon as we can - IsSelfRooted = false; + Initialize(); } void EnterCombat(Unit* who) override diff --git a/src/server/scripts/World/npcs_special.cpp b/src/server/scripts/World/npcs_special.cpp index e8a4a78e1bb..944ebe27b7b 100644 --- a/src/server/scripts/World/npcs_special.cpp +++ b/src/server/scripts/World/npcs_special.cpp @@ -329,13 +329,21 @@ public: struct npc_chicken_cluckAI : public ScriptedAI { - npc_chicken_cluckAI(Creature* creature) : ScriptedAI(creature) { } + npc_chicken_cluckAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } + + void Initialize() + { + ResetFlagTimer = 120000; + } uint32 ResetFlagTimer; void Reset() override { - ResetFlagTimer = 120000; + Initialize(); me->setFaction(FACTION_CHICKEN); me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER); } @@ -424,15 +432,23 @@ public: struct npc_dancing_flamesAI : public ScriptedAI { - npc_dancing_flamesAI(Creature* creature) : ScriptedAI(creature) { } + npc_dancing_flamesAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } + + void Initialize() + { + Active = true; + CanIteract = 3500; + } bool Active; uint32 CanIteract; void Reset() override { - Active = true; - CanIteract = 3500; + Initialize(); DoCast(me, SPELL_BRAZIER, true); DoCast(me, SPELL_FIERY_AURA, false); float x, y, z; @@ -575,7 +591,25 @@ public: struct npc_doctorAI : public ScriptedAI { - npc_doctorAI(Creature* creature) : ScriptedAI(creature) { } + npc_doctorAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } + + void Initialize() + { + PlayerGUID = 0; + + SummonPatientTimer = 10000; + SummonPatientCount = 0; + PatientDiedCount = 0; + PatientSavedCount = 0; + + Patients.clear(); + Coordinates.clear(); + + Event = false; + } uint64 PlayerGUID; @@ -591,18 +625,7 @@ public: void Reset() override { - PlayerGUID = 0; - - SummonPatientTimer = 10000; - SummonPatientCount = 0; - PatientDiedCount = 0; - PatientSavedCount = 0; - - Patients.clear(); - Coordinates.clear(); - - Event = false; - + Initialize(); me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); } @@ -720,15 +743,23 @@ public: struct npc_injured_patientAI : public ScriptedAI { - npc_injured_patientAI(Creature* creature) : ScriptedAI(creature) { } + npc_injured_patientAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } + + void Initialize() + { + DoctorGUID = 0; + Coord = NULL; + } uint64 DoctorGUID; Location* Coord; void Reset() override { - DoctorGUID = 0; - Coord = NULL; + Initialize(); //no select me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); @@ -1449,14 +1480,20 @@ public: { npc_tonk_mineAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); me->SetReactState(REACT_PASSIVE); } + void Initialize() + { + ExplosionTimer = 3000; + } + uint32 ExplosionTimer; void Reset() override { - ExplosionTimer = 3000; + Initialize(); } void EnterCombat(Unit* /*who*/) override { } @@ -1651,13 +1688,21 @@ class npc_wormhole : public CreatureScript struct npc_wormholeAI : public PassiveAI { - npc_wormholeAI(Creature* creature) : PassiveAI(creature) { } + npc_wormholeAI(Creature* creature) : PassiveAI(creature) + { + Initialize(); + } - void InitializeAI() override + void Initialize() { _showUnderground = urand(0, 100) == 0; // Guessed value, it is really rare though } + void InitializeAI() override + { + Initialize(); + } + uint32 GetData(uint32 type) const override { return (type == DATA_SHOW_UNDERGROUND && _showUnderground) ? 1 : 0; @@ -2305,7 +2350,19 @@ public: struct npc_spring_rabbitAI : public ScriptedAI { - npc_spring_rabbitAI(Creature* creature) : ScriptedAI(creature) { } + npc_spring_rabbitAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } + + void Initialize() + { + inLove = false; + rabbitGUID = 0; + jumpTimer = urand(5000, 10000); + bunnyTimer = urand(10000, 20000); + searchTimer = urand(5000, 10000); + } bool inLove; uint32 jumpTimer; @@ -2315,11 +2372,7 @@ public: void Reset() override { - inLove = false; - rabbitGUID = 0; - jumpTimer = urand(5000, 10000); - bunnyTimer = urand(10000, 20000); - searchTimer = urand(5000, 10000); + Initialize(); if (Unit* owner = me->GetOwner()) me->GetMotionMaster()->MoveFollow(owner, PET_FOLLOW_DIST, PET_FOLLOW_ANGLE); } diff --git a/src/tools/vmap4_extractor/model.cpp b/src/tools/vmap4_extractor/model.cpp index c527ec32ddb..519f59cb086 100644 --- a/src/tools/vmap4_extractor/model.cpp +++ b/src/tools/vmap4_extractor/model.cpp @@ -143,6 +143,7 @@ Vec3D fixCoordSystem2(Vec3D v) } ModelInstance::ModelInstance(MPQFile& f, char const* ModelInstName, uint32 mapID, uint32 tileX, uint32 tileY, FILE *pDirfile) + : scale(0), flags(0) { float ff[3]; f.read(&id, 4); |