diff options
400 files changed, 13020 insertions, 4874 deletions
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 00000000000..99fb588c1cf --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,50 @@ +# Contributing + +Want to contribute? Great! + +1. Fork it. +2. Create a branch (`git checkout -b fixes`) +3. Commit your changes (`git commit -am "Added Snarkdown"`) +4. Push to the branch (`git push origin fixes`) +5. Open a [Pull Request][1] + + +When creating patches read: +- [TrinityCore Development Standards](http://www.trinitycore.org/f/topic/6-trinitycore-developing-standards/) +- [WDB Fields](http://www.trinitycore.org/f/topic/58-wdb-fields/) +- [Git Squash](https://ariejan.net/2011/07/05/git-squash-your-latests-commits-into-one/) + +We suggest you to create one branch for each `C++` based fix: on that way you can continue creating more fixes without having to wait to get one pull request merged. +For the `SQL` files of `C++` based fixes the naming schema is: `YYYY_MM_DD_i_database_description.sql`, where `YYYY_MM_DD` is the date of the fix, `i_database` is the *ith* sql created that day for `database`. +When doing changes to `auth` or `characters` database remember to update the base files (`/sql/base/*`). +For SQL only fixes [create a ticket](https://github.com/TrinityCore/TrinityCore/issues/new). + +Wiki +==== + +The wiki is located at [http://trinitycore.info](http://trinitycore.info). + +You are welcome to create an account and help us improve and extend the wiki. + + +Issues +====== + +Read [this](http://www.trinitycore.org/f/topic/37-the-trinitycore-issuetracker-and-you/) before creating a ticket. +If you have problems with TrinityCore instalation, read http://www.trinitycore.org/f/topic/1518-trouble-with-your-trinity-install-readme-1st-faqs/ + + +Requirements +============ + +Platform: Linux, Windows or Mac +Processor with SSE2 support +Boost ≥ 1.4.9 +MySQL ≥ 5.1.0 +CMake ≥ 2.8.11.2 / 2.8.9 (Windows / Linux) +OpenSSL ≥ 1.0.0 +GCC ≥ 4.7.2 (Linux only) +MS Visual Studio ≥ 12 (2013) (Windows only) + +In case you choose Linux, we recommend to use Debian 7, it's the Linux we use to test compilations. +Remember 4.3.4 branch is alpha, only intended for development, we don't recomend this branch to run a server. diff --git a/README.md b/README.md index fdb05c81eb4..33fea30e36e 100644 --- a/README.md +++ b/README.md @@ -27,7 +27,7 @@ website at [TrinityCore.org](http://www.trinitycore.org). + Platform: Linux, Windows or Mac + Processor with SSE2 support + Boost ≥ 1.49 -+ MySQL ≥ 5.1.0 (included for Windows) ++ MySQL ≥ 5.1.0 + CMake ≥ 2.8.11.2 / 2.8.9 (Windows / Linux) + OpenSSL ≥ 1.0.0 + GCC ≥ 4.7.2 (Linux only) 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_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_world_creature_text.sql b/sql/updates/world/2014_09_04_01_world_creature_text.sql new file mode 100644 index 00000000000..c2f2f6c7242 --- /dev/null +++ b/sql/updates/world/2014_09_04_01_world_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/sql/updates/world/2014_09_05_04_world_trinity_string.sql b/sql/updates/world/2014_09_05_04_world_trinity_string.sql new file mode 100644 index 00000000000..f7a7c3d9684 --- /dev/null +++ b/sql/updates/world/2014_09_05_04_world_trinity_string.sql @@ -0,0 +1,5 @@ +-- Implements in-game gm message when tickets are completed +SET @LANG_COMMAND_TICKETCOMPLETED := 2030; +DELETE FROM `trinity_string` WHERE `entry` = @LANG_COMMAND_TICKETCOMPLETED; +INSERT INTO `trinity_string` (`entry`, `content_default`) VALUES (@LANG_COMMAND_TICKETCOMPLETED, '|cff00ff00Completed by|r:|cff00ccff %s|r'); + diff --git a/sql/updates/world/2014_09_05_05_world_trinity_string.sql b/sql/updates/world/2014_09_05_05_world_trinity_string.sql new file mode 100644 index 00000000000..616a77f36f1 --- /dev/null +++ b/sql/updates/world/2014_09_05_05_world_trinity_string.sql @@ -0,0 +1,11 @@ +-- Move cs_misc command output hardcoded strings to DB so they can be localized too +DELETE FROM `trinity_string` WHERE `entry` IN (5030,5035,5039,5040,5041,5042,5043,5044); +INSERT INTO `trinity_string` (`entry`, `content_default`) VALUES +(5030, '<unauthorized>'), +(5035, 'No reason'), +(5039, 'Console'), +(5040, 'Character'), +(5041, 'Permanently'), +(5042, 'You are outdoors'), +(5043, 'You are indoors'), +(5044, 'no VMAP available for area info'); diff --git a/sql/updates/world/2014_09_05_06_world_onyxia.sql b/sql/updates/world/2014_09_05_06_world_onyxia.sql new file mode 100644 index 00000000000..99824d2d47a --- /dev/null +++ b/sql/updates/world/2014_09_05_06_world_onyxia.sql @@ -0,0 +1,2 @@ +UPDATE creature_template SET InhabitType = 5 WHERE entry = 10184; +UPDATE creature_template SET InhabitType = 5 WHERE entry = 36538; diff --git a/sql/updates/world/2014_09_05_07_world_sai.sql b/sql/updates/world/2014_09_05_07_world_sai.sql new file mode 100644 index 00000000000..de4921fd9d4 --- /dev/null +++ b/sql/updates/world/2014_09_05_07_world_sai.sql @@ -0,0 +1,129 @@ +SET @OGUID := 21036; + +-- respawn Fel Crystal Prism (Currently only 1 is spawned) + +DELETE FROM `gameobject` WHERE `id`=185927; +INSERT INTO `gameobject` (`guid`, `id`, `map`, `spawnMask`, `phaseMask`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecs`, `animprogress`, `state`) VALUES +(@OGUID+0, 185927, 530, 1, 1, 2909.894, 6797.157, 365.7202, 2.391098, 0, 0, 0, 1, 120, 255, 1), +(@OGUID+1, 185927, 530, 1, 1, 2988.61, 7129.965, 368.9746, 1.029743, 0, 0, 0, 1, 120, 255, 1), +(@OGUID+2, 185927, 530, 1, 1, 3080.931, 6914.941, 369.3258, 4.32842, 0, 0, 0, 1, 120, 255, 1), +(@OGUID+3, 185927, 530, 1, 1, 2810.343, 7006.054, 376.0882, 1.151916, 0, 0, 0, 1, 120, 255, 1), +(@OGUID+4, 185927, 530, 1, 1, 1385.925, 7392.285, 371.1215, 0.5585039, 0, 0, 0, 1, 120, 255, 1), +(@OGUID+5, 185927, 530, 1, 1, 1280.611, 7164.499, 377.1786, 5.585054, 0, 0, 0, 1, 120, 255, 1), +(@OGUID+6, 185927, 530, 1, 1, 1616.641, 7207.047, 375.4805, 5.131269, 0, 0, 0, 1, 120, 255, 1), +(@OGUID+9, 185927, 530, 1, 1, 1673.486, 7377.358, 375.558, 1.308995, 0, 0, 0, 1, 120, 255, 1); + +-- SAI for Fel Crystal Prism +UPDATE `gameobject_template` SET `AIName`='SmartGameObjectAI' WHERE `entry`=185927; +DELETE FROM `smart_scripts` WHERE `entryorguid`=185927 AND `source_type`=1; +DELETE FROM `smart_scripts` WHERE `entryorguid` BETWEEN 18592700 AND 18592703 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 +(185927, 1, 0, 1, 62, 0, 100, 0, 8671, 0, 0, 0, 64, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Fel Crystal Prism - On Gossip Option 0 Selected - Store Targetlist'), +(185927, 1, 1, 2, 61, 0, 100, 0, 0, 0, 0, 0, 85, 40958, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Fel Crystal Prism - On Gossip Option 0 Selected - Invoker Cast Blades Edge Terrace Demon Boss Summon Trigger'), +(185927, 1, 2, 3, 61, 0, 100, 0, 0, 0, 0, 0, 85, 40962, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Fel Crystal Prism - On Gossip Option 0 Selected - Invoker Cast Blades Edge Terrace Demon Boss Summon Branch'), +(185927, 1, 3, 0, 61, 0, 100, 0, 0, 0, 0, 0, 87, 18592700, 18592701, 18592702, 18592703, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Fel Crystal Prism - On Gossip Option 0 Selected - Run Random Timed Action list'), +(18592700, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 85, 40957, 0, 0, 0, 0, 0, 12, 1, 0, 0, 0, 0, 0, 0, 'Fel Crystal Prism - Script 1 - Invoker Cast Blades Edge Terrace Demon Boss Summon 1'), +(18592700, 9, 1, 0, 0, 0, 100, 0, 0, 0, 0, 0, 70, 300, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Fel Crystal Prism - Script 1 - Despawn GO'), +(18592700, 9, 2, 0, 0, 0, 100, 0, 0, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 12, 1, 0, 0, 0, 0, 0, 0, 'Fel Crystal Prism - Script 1 - Close Gossip'), +(18592701, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 85, 40959, 0, 0, 0, 0, 0, 12, 1, 0, 0, 0, 0, 0, 0, 'Fel Crystal Prism - Script 2 - Invoker Cast Blades Edge Terrace Demon Boss Summon 2'), +(18592701, 9, 1, 0, 0, 0, 100, 0, 0, 0, 0, 0, 70, 300, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Fel Crystal Prism - Script 2 - Despawn GO'), +(18592701, 9, 2, 0, 0, 0, 100, 0, 0, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 12, 1, 0, 0, 0, 0, 0, 0, 'Fel Crystal Prism - Script 2 - Close Gossip'), +(18592702, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 85, 40960, 0, 0, 0, 0, 0, 12, 1, 0, 0, 0, 0, 0, 0, 'Fel Crystal Prism - Script 3 - Invoker Cast Blades Edge Terrace Demon Boss Summon 3'), +(18592702, 9, 1, 0, 0, 0, 100, 0, 0, 0, 0, 0, 70, 300, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Fel Crystal Prism - Script 3 - Despawn GO'), +(18592702, 9, 2, 0, 0, 0, 100, 0, 0, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 12, 1, 0, 0, 0, 0, 0, 0, 'Fel Crystal Prism - Script 3 - Close Gossip'), +(18592703, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 85, 40961, 0, 0, 0, 0, 0, 12, 1, 0, 0, 0, 0, 0, 0, 'Fel Crystal Prism - Script 4 - Invoker Cast Blades Edge Terrace Demon Boss Summon 4'), +(18592703, 9, 1, 0, 0, 0, 100, 0, 0, 0, 0, 0, 70, 300, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Fel Crystal Prism - Script 4 - Despawn GO'), +(18592703, 9, 2, 0, 0, 0, 100, 0, 0, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 12, 1, 0, 0, 0, 0, 0, 0, 'Fel Crystal Prism - Script 4 - Close Gossip'); + +-- SAI for Demons +DELETE FROM `smart_scripts` WHERE `entryorguid` IN(22281,23353,23354,23355) AND `source_type`=0; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry` IN(22281,23353,23354,23355); +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 +(22281,0,0,0,11,0,100,0,0,0,0,0,2,14,0,0,0,0,0,1,0,0,0,0,0,0,0,'Galvanoth - On Spawn - Set Faction'), +(22281,0,1,0,9,0,100,0,0,30,8000,11000,11,39139,0,0,0,0,0,7,0,0,0,0,0,0,0,'Galvanoth - On Range - Cast Fel Flamestike'), +(22281,0,2,0,9,0,100,0,0,10,13000,23000,11,38750,0,0,0,0,0,1,0,0,0,0,0,0,0,'Galvanoth - On Range - Cast War Stomp'), +(22281,0,3,0,9,0,100,0,0,5,11000,18000,11,15708,0,0,0,0,0,7,0,0,0,0,0,0,0,'Galvanoth - On Range - Cast Mortal Strike'), +(23353,0,0,0,11,0,100,0,0,0,0,0,2,14,0,0,0,0,0,1,0,0,0,0,0,0,0,'Braxxus - On Spawn - Set Faction'), +(23353,0,1,0,9,0,100,0,0,5,4000,8000,11,41437,0,0,0,0,0,7,0,0,0,0,0,0,0,'Braxxus - On Range - Cast Double Breath'), +(23353,0,2,0,9,0,100,0,0,10,15000,25000,11,41439,2,0,0,0,0,7,0,0,0,0,0,0,0,'Braxxus - On Range - Cast Mangle'), +(23353,0,3,0,0,0,100,0,5000,8000,7000,11000,11,41436,0,0,0,0,0,1,0,0,0,0,0,0,0,'Braxxus - IC - Cast Panic'), +(23354,0,0,0,11,0,100,0,0,0,0,0,2,14,0,0,0,0,0,1,0,0,0,0,0,0,0,'Mo arg Incinerator - On Spawn - Set Faction'), +(23354,0,1,0,9,0,100,0,0,40,5000,8000,11,44431,0,0,0,0,0,7,0,0,0,0,0,0,0,'Mo arg Incinerator - On Range - Cast Acid Geyser'), +(23354,0,2,0,9,0,100,0,10,60,10000,15000,11,36606,0,0,0,0,0,7,0,0,0,0,0,0,0,'Mo arg Incinerator - On Range - Cast Mighty Charge'), +(23354,0,3,0,9,0,100,0,0,5,15000,25000,11,25174,2,0,0,0,0,7,0,0,0,0,0,0,0,'Mo arg Incinerator - On Range - Cast Sundering Cleave'), +(23355,0,0,0,11,0,100,0,0,0,0,0,2,14,0,0,0,0,0,1,0,0,0,0,0,0,0,'Zarcsin - On Spawn - Set Faction'), +(23355,0,1,0,9,0,100,0,0,5,5000,8000,11,41444,0,0,0,0,0,7,0,0,0,0,0,0,0,'Zarcsin - On Range - Cast Fel Flames'), +(23355,0,2,0,2,0,100,1,0,50,5000,8000,11,41447,0,0,0,0,0,1,0,0,0,0,0,0,0,'Zarcsin - 50% HP - Cast Enrage'); + +-- ALL 4 of these should have 100% chance to drop an apexis crystal, this is rolled if in party +UPDATE `creature_loot_template` SET `ChanceOrQuestChance`=100 WHERE `entry`IN(22281,23353,23354,23355) AND `item`=32572; +-- Fel Whip to complete quest is meant to have 100% chance to drop if on quest as all comments state you only have to kill 1 demon to complete the quest +UPDATE `creature_loot_template` SET `ChanceOrQuestChance`=-100 WHERE `entry`IN(22281,23353,23354,23355) AND `item`=32733; + +DELETE FROM `smart_scripts` WHERE `source_type`=1 AND `entryorguid` IN (185937,185938,185936,185932); +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, 0, 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, 0, 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, 0, 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, 85, 41049, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Furywing\'s Egg - On Gossip Option 0 Selected - Invoker Cast Four Dragons: Reagents - Furywing'), +(185938, 1, 1, 2, 61, 0, 100, 0, 0, 0, 0, 0, 85, 41051, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Insidion\'s Egg - On Gossip Option 0 Selected - Invoker Cast Four Dragons: Reagents - Insidion'), +(185936, 1, 1, 2, 61, 0, 100, 0, 0, 0, 0, 0, 85, 41045, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Rivendark\'s Egg - On Gossip Option 0 Selected - Invoker Cast Four Dragons: Reagents - Rivendark'), +(185937, 1, 2, 3, 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, 2, 3, 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, 2, 3, 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, 3, 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, 3, 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, 3, 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'), +(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, 2, 61, 0, 100, 0, 0, 0, 0, 0, 85, 41036, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Obsidia\'s Egg - On Gossip Option 0 Selected - Invoker Cast Four Dragons: Reagents - Obsidia'), +(185932, 1, 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, 'Obsidia\'s Egg - On Gossip Option 0 Selected - Close Gossip'); + +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); + +UPDATE `creature_template` SET `InhabitType`=4 WHERE `entry`=23282; + +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'); + +DELETE FROM `event_scripts` WHERE `id` IN(15004,15002,15003,15005); +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), +(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); diff --git a/sql/updates/world/2014_09_06_00_world_creature_template.sql b/sql/updates/world/2014_09_06_00_world_creature_template.sql new file mode 100644 index 00000000000..36bed391dd4 --- /dev/null +++ b/sql/updates/world/2014_09_06_00_world_creature_template.sql @@ -0,0 +1,4 @@ +UPDATE `creature_template` SET `dynamicflags`=`dynamicflags` &~ 1; -- lootable +UPDATE `creature_template` SET `dynamicflags`=`dynamicflags` &~ 4; -- tapped +UPDATE `creature_template` SET `dynamicflags`=`dynamicflags` &~ 8; -- tapped by player +UPDATE `creature_template` SET `dynamicflags`=`dynamicflags` &~ 128; -- tapped by threat list diff --git a/sql/updates/world/2014_09_06_01_world_creature_template.sql b/sql/updates/world/2014_09_06_01_world_creature_template.sql new file mode 100644 index 00000000000..a78145a174f --- /dev/null +++ b/sql/updates/world/2014_09_06_01_world_creature_template.sql @@ -0,0 +1 @@ +UPDATE `creature_template` SET `HoverHeight`=1 WHERE `entry`=33273; -- Maiden of Drak'Mar diff --git a/sql/updates/world/2014_09_06_02_world_trinity_string.sql b/sql/updates/world/2014_09_06_02_world_trinity_string.sql new file mode 100644 index 00000000000..b4eb67231e9 --- /dev/null +++ b/sql/updates/world/2014_09_06_02_world_trinity_string.sql @@ -0,0 +1,14 @@ +DELETE FROM `trinity_string` WHERE `entry` IN (5045, 5046, 5047, 5048, 5049, 5050, 5051, 5052, 5053, 5054, 5055, 5056); +INSERT INTO `trinity_string` (`entry`, `content_default`) VALUES +(5045, 'Map: %d inst: %d perm: %s diff: %d canReset: %s TTR: %s'), +(5046, 'Player binds: %d'), +(5047, 'Group binds: %d'), +(5048, 'Unbinding map: %d inst: %d perm: %s diff: %d canReset: %s TTR: %s'), +(5049, 'Instances unbound: %d'), +(5050, 'Instances loaded: %d'), +(5051, 'Players in instances: %d'), +(5052, 'Instance saves: %d'), +(5053, 'Players bound: %d'), +(5054, 'Groups bound: %d'), +(5055, 'Map is not a dungeon.'), +(5056, 'Map has no instance data.'); diff --git a/sql/updates/world/2014_09_06_03_world_gameobject_template.sql b/sql/updates/world/2014_09_06_03_world_gameobject_template.sql new file mode 100644 index 00000000000..0958562c243 --- /dev/null +++ b/sql/updates/world/2014_09_06_03_world_gameobject_template.sql @@ -0,0 +1,1642 @@ +UPDATE `gameobject_template` SET `faction`=0 WHERE `entry`=152583; -- AuctionNode +UPDATE `gameobject_template` SET `faction`=0 WHERE `entry`=164639; -- Frost Trap +UPDATE `gameobject_template` SET `faction`=0 WHERE `entry`=164877; -- Freezing Trap III +UPDATE `gameobject_template` SET `faction`=0 WHERE `entry`=179944; -- Meeting Stone Summoning Portal +UPDATE `gameobject_template` SET `faction`=0 WHERE `entry`=181030; -- Immolation Trap VI +UPDATE `gameobject_template` SET `faction`=0 WHERE `entry`=181031; -- Explosive Trap IV +UPDATE `gameobject_template` SET `faction`=0 WHERE `entry`=183384; -- Portal to Shattrath +UPDATE `gameobject_template` SET `faction`=0 WHERE `entry`=18343; -- Cooking Fire +UPDATE `gameobject_template` SET `faction`=0 WHERE `entry`=183957; -- Snake Trap +UPDATE `gameobject_template` SET `faction`=0 WHERE `entry`=185879; -- Invisible Target +UPDATE `gameobject_template` SET `faction`=0 WHERE `entry`=186811; -- Refreshment Portal +UPDATE `gameobject_template` SET `faction`=0 WHERE `entry`=188215; -- Collision PC Size +UPDATE `gameobject_template` SET `faction`=0 WHERE `entry`=190942; -- Death Gate +UPDATE `gameobject_template` SET `faction`=0 WHERE `entry`=191083; -- Demonic Circle: Summon +UPDATE `gameobject_template` SET `faction`=0 WHERE `entry`=191164; -- Portal to Dalaran +UPDATE `gameobject_template` SET `faction`=0 WHERE `entry`=193168; -- Soul Portal +UPDATE `gameobject_template` SET `faction`=0 WHERE `entry`=193771; -- Freezing Arrow I +UPDATE `gameobject_template` SET `faction`=0 WHERE `entry`=194108; -- Summoning Portal +UPDATE `gameobject_template` SET `faction`=0 WHERE `entry`=194278; -- Orgrimmar Banner +UPDATE `gameobject_template` SET `faction`=0 WHERE `entry`=194283; -- Thunder Bluff Banner +UPDATE `gameobject_template` SET `faction`=0 WHERE `entry`=194910; -- Doodad_UL_SigilDoor_03 +UPDATE `gameobject_template` SET `faction`=0 WHERE `entry`=202564; -- Gnome Table +UPDATE `gameobject_template` SET `faction`=0 WHERE `entry`=202713; -- Hazard Light Red 02 +UPDATE `gameobject_template` SET `faction`=0 WHERE `entry`=21680; -- Duel Flag +UPDATE `gameobject_template` SET `faction`=0 WHERE `entry`=2561; -- Freezing Trap +UPDATE `gameobject_template` SET `faction`=0 WHERE `entry`=29784; -- Basic Campfire +UPDATE `gameobject_template` SET `faction`=0, `flags`=0 WHERE `entry`=164839; -- Explosive Trap +UPDATE `gameobject_template` SET `faction`=0, `flags`=0 WHERE `entry`=164872; -- Immolation Trap II +UPDATE `gameobject_template` SET `faction`=0, `flags`=0 WHERE `entry`=164873; -- Immolation Trap III +UPDATE `gameobject_template` SET `faction`=0, `flags`=0 WHERE `entry`=164874; -- Immolation Trap IV +UPDATE `gameobject_template` SET `faction`=0, `flags`=0 WHERE `entry`=164876; -- Freezing Trap II +UPDATE `gameobject_template` SET `faction`=0, `flags`=0 WHERE `entry`=164879; -- Explosive Trap II +UPDATE `gameobject_template` SET `faction`=0, `flags`=0 WHERE `entry`=164880; -- Explosive Trap III +UPDATE `gameobject_template` SET `faction`=0, `flags`=0 WHERE `entry`=193125; -- Anvil +UPDATE `gameobject_template` SET `faction`=0, `flags`=0 WHERE `entry`=193126; -- Forge +UPDATE `gameobject_template` SET `faction`=0, `flags`=32 WHERE `entry`=194498; -- Gnomeregan Banner +UPDATE `gameobject_template` SET `faction`=101 WHERE `entry`=2844; -- Tattered Chest +UPDATE `gameobject_template` SET `faction`=101, `flags`=4 WHERE `entry`=181643; -- Featherbeard's Remains +UPDATE `gameobject_template` SET `faction`=101, `flags`=4 WHERE `entry`=181649; -- Featherbeard's Journal +UPDATE `gameobject_template` SET `faction`=102 WHERE `entry`=105569; -- Silver Vein +UPDATE `gameobject_template` SET `faction`=1081 WHERE `entry`=178088; -- Ragnaros +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=144065; -- Explosive Charge +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=177257; -- Doodad_DireMaulCrystalGenerator02 +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=177258; -- Doodad_DireMaulCrystalGenerator03 +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=177259; -- Doodad_DireMaulCrystalGenerator01 +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=178187; -- Molten Core Circle SULFURON +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=178189; -- Molten Core Circle SHAZZRAH +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=178190; -- Molten Core Circle GOLEMAGG +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=179881; -- The Severed Head of Nefarian +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=180144; -- Food Buff +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=180146; -- Speed Buff +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=180148; -- Berserk Buff +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=180362; -- Food Buff +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=180376; -- Berserk Buff +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=180378; -- Berserk Buff +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=180379; -- Speed Buff +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=180381; -- Speed Buff +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=180382; -- Berserk Buff +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=180383; -- Food Buff +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=180384; -- Speed Buff +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=180434; -- Bonfire +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=180759; -- Orc Hero Portrait +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=180762; -- Troll Hero Portrait +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=181022; -- Standing, Giant - Val +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=181025; -- Hanging, Tall/Thin, Large - Val +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=181027; -- Floating, Medium - Val +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=182211; -- Fire (Small) +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=184663; -- Shadow Sight +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=184664; -- Shadow Sight +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=184964; -- Speed Buff +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=184965; -- Restoration Buff +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=184966; -- Berserk Buff +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=184970; -- Speed Buff +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=184971; -- Restoration Buff +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=184972; -- Berserk Buff +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=184973; -- Speed Buff +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=184974; -- Restoration Buff +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=184975; -- Berserk Buff +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=184976; -- Speed Buff +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=184977; -- Restoration Buff +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=184978; -- Berserk Buff +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=185600; -- Netherwing Egg Trap (Gas) +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=186745; -- Bonfire +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=187575; -- Hanging, Square, Small - Val +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=187668; -- Hanging, Tall/Thin, Small - Val +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=188073; -- Ahune Bonfire +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=188077; -- Ice Spear +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=192252; -- Alliance Banner +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=192253; -- Alliance Banner +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=192267; -- Horde Banner +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=192268; -- Horde Banner +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=192270; -- Alliance Banner +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=192271; -- Horde Banner +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=192276; -- Horde Banner +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=192279; -- Horde Banner +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=192281; -- Alliance Banner +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=192282; -- Alliance Banner +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=192288; -- Alliance Banner +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=192291; -- Alliance Banner +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=192400; -- Alliance Banner +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=192401; -- Alliance Banner +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=192415; -- Alliance Banner +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=192423; -- Alliance Banner +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=192424; -- Horde Banner +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=192425; -- Alliance Banner +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=192426; -- Alliance Banner +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=192427; -- Alliance Banner +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=192428; -- Alliance Banner +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=192430; -- Alliance Banner +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=192431; -- Alliance Banner +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=192440; -- Horde Banner +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=192442; -- Horde Banner +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=192443; -- Horde Banner +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=192444; -- Horde Banner +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=192449; -- Horde Banner +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=192450; -- Horde Banner +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=192452; -- Horde Banner +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=192538; -- Small Proto-Drake Egg +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=193466; -- 193466 +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=193467; -- 193467 +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=193472; -- 193472 +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=193473; -- 193473 +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=193474; -- 193474 +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=193475; -- 193475 +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=193477; -- 193477 +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=193478; -- 193478 +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=193479; -- 193479 +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=193498; -- 193498 +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=193499; -- 193499 +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=193500; -- 193500 +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=193501; -- 193501 +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=193502; -- 193502 +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=193503; -- 193503 +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=193504; -- 193504 +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=193505; -- 193505 +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=193506; -- 193506 +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=193507; -- 193507 +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=193508; -- 193508 +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=193509; -- 193509 +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=193510; -- 193510 +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=193511; -- 193511 +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=193512; -- 193512 +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=193513; -- 193513 +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=193514; -- 193514 +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=193515; -- 193515 +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=193521; -- 193521 +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=193522; -- 193522 +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=193523; -- 193523 +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=193524; -- 193524 +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=193525; -- 193525 +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=193526; -- 193526 +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=193527; -- 193527 +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=193528; -- 193528 +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=193529; -- 193529 +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=193797; -- 193797 +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=193798; -- 193798 +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=193799; -- 193799 +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=193800; -- 193800 +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=193801; -- 193801 +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=193802; -- 193802 +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=193803; -- 193803 +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=193804; -- 193804 +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=193805; -- 193805 +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=193806; -- 193806 +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=193807; -- 193807 +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=193808; -- 193808 +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=193809; -- 193809 +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=193810; -- 193810 +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=193811; -- 193811 +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=193812; -- 193812 +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=193813; -- 193813 +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=193814; -- 193814 +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=193815; -- 193815 +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=193816; -- 193816 +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=193817; -- 193817 +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=193818; -- 193818 +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=193819; -- 193819 +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=193820; -- 193820 +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=193821; -- 193821 +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=193822; -- 193822 +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=193823; -- 193823 +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=193824; -- 193824 +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=193825; -- 193825 +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=193826; -- 193826 +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=193827; -- 193827 +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=193828; -- 193828 +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=193829; -- 193829 +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=193830; -- 193830 +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=193831; -- 193831 +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=193832; -- 193832 +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=193833; -- 193833 +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=193834; -- 193834 +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=193835; -- 193835 +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=193836; -- 193836 +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=193837; -- 193837 +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=193838; -- 193838 +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=193839; -- 193839 +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=193840; -- 193840 +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=193841; -- 193841 +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=193842; -- 193842 +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=193843; -- 193843 +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=193844; -- 193844 +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=193845; -- 193845 +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=194120; -- Bear Cage +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=194121; -- Leopard Cage +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=194576; -- Thunder Gear +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=194577; -- Axe Gear +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=195254; -- Hanging, Square, Large - Brewfest +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=195255; -- Hanging, Tall/Thin, Large - Brewfest +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=195257; -- Hanging, Tall/Thin, Small - Brewfest +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=195259; -- Hanging, Square, Small - Brewfest +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=195260; -- Standing, Interior, Small - Brewfest +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=195265; -- Standing, Large - Brewfest +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=195266; -- Hanging, Streamer - Brewfest +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=195273; -- Hanging, Tall/Thin, Medium - Brewfest +UPDATE `gameobject_template` SET `faction`=114 WHERE `entry`=202218; -- Drugan's Keg +UPDATE `gameobject_template` SET `faction`=114, `flags`=1 WHERE `entry`=188508; -- Dark Iron Mole Machine (Minion Summoner) +UPDATE `gameobject_template` SET `faction`=114, `flags`=32 WHERE `entry`=178107; -- Lava Steam +UPDATE `gameobject_template` SET `faction`=114, `flags`=32 WHERE `entry`=178108; -- Lava Splash +UPDATE `gameobject_template` SET `faction`=114, `flags`=32 WHERE `entry`=180421; -- Alliance Banner Aura, Large +UPDATE `gameobject_template` SET `faction`=114, `flags`=32 WHERE `entry`=180422; -- Horde Banner Aura, Large +UPDATE `gameobject_template` SET `faction`=114, `flags`=32 WHERE `entry`=180423; -- Neutral Banner Aura, Large +UPDATE `gameobject_template` SET `faction`=114, `flags`=32 WHERE `entry`=188067; -- Ice Block +UPDATE `gameobject_template` SET `faction`=114, `flags`=32 WHERE `entry`=188142; -- Ice Block, Big +UPDATE `gameobject_template` SET `faction`=114, `flags`=32 WHERE `entry`=191877; -- Doodad_DalaranSewer01 +UPDATE `gameobject_template` SET `faction`=114, `flags`=32 WHERE `entry`=192704; -- Doodad_OrgrimmarArena_FireFX01 +UPDATE `gameobject_template` SET `faction`=114, `flags`=32 WHERE `entry`=192705; -- Doodad_OrgrimmarArena_FireFX02 +UPDATE `gameobject_template` SET `faction`=114, `flags`=32 WHERE `entry`=192937; -- 192937 +UPDATE `gameobject_template` SET `faction`=114, `flags`=32 WHERE `entry`=193795; -- 193795 +UPDATE `gameobject_template` SET `faction`=114, `flags`=32 WHERE `entry`=193796; -- 193796 +UPDATE `gameobject_template` SET `faction`=114, `flags`=32 WHERE `entry`=194395; -- Doodad_DalaranSewer_ArenaWaterFall_Collision01 +UPDATE `gameobject_template` SET `faction`=114, `flags`=32 WHERE `entry`=195000; -- [DND] Ice Block, X-TRA Big +UPDATE `gameobject_template` SET `faction`=114, `flags`=32 WHERE `entry`=196485; -- Saronite Rock +UPDATE `gameobject_template` SET `faction`=114, `flags`=32 WHERE `entry`=201563; -- Oratory of the Damned Entrance +UPDATE `gameobject_template` SET `faction`=114, `flags`=32 WHERE `entry`=201612; -- Scientist Airlock Door Collision +UPDATE `gameobject_template` SET `faction`=114, `flags`=32 WHERE `entry`=201613; -- Scientist Airlock Door Orange +UPDATE `gameobject_template` SET `faction`=114, `flags`=32 WHERE `entry`=201614; -- Scientist Airlock Door Green +UPDATE `gameobject_template` SET `faction`=114, `flags`=32 WHERE `entry`=201857; -- Lord Marrowgar's Entrance +UPDATE `gameobject_template` SET `faction`=114, `flags`=32 WHERE `entry`=201858; -- Alliance Teleporter +UPDATE `gameobject_template` SET `faction`=114, `flags`=32 WHERE `entry`=201868; -- Alliance Tent +UPDATE `gameobject_template` SET `faction`=114, `flags`=32 WHERE `entry`=201869; -- Alliance Banner +UPDATE `gameobject_template` SET `faction`=114, `flags`=32 WHERE `entry`=201880; -- Horde Teleporter +UPDATE `gameobject_template` SET `faction`=114, `flags`=32 WHERE `entry`=201885; -- Ice Wall +UPDATE `gameobject_template` SET `faction`=114, `flags`=32 WHERE `entry`=201886; -- Horde Tent +UPDATE `gameobject_template` SET `faction`=114, `flags`=32 WHERE `entry`=201887; -- Horde Tent +UPDATE `gameobject_template` SET `faction`=114, `flags`=32 WHERE `entry`=201910; -- Doodad_IceCrown_Icewall02 +UPDATE `gameobject_template` SET `faction`=114, `flags`=32 WHERE `entry`=201911; -- Icewall +UPDATE `gameobject_template` SET `faction`=1375 WHERE `entry`=180854; -- Firework Rocket, Type 1 Blue +UPDATE `gameobject_template` SET `faction`=1375 WHERE `entry`=181886; -- Firework Rocket, Promotion +UPDATE `gameobject_template` SET `faction`=1375 WHERE `entry`=184081; -- Fel Reaver Cap Pt +UPDATE `gameobject_template` SET `faction`=1375 WHERE `entry`=201846; -- Doodad_IceCrown_Valve03 +UPDATE `gameobject_template` SET `faction`=1375 WHERE `entry`=201847; -- Doodad_IceCrown_Valve04 +UPDATE `gameobject_template` SET `faction`=1375, `flags`=32 WHERE `entry`=183970; -- Doodad_PVP_Ogre_Door_Front01 +UPDATE `gameobject_template` SET `faction`=1375, `flags`=32 WHERE `entry`=183971; -- Doodad_PVP_Ogre_Door_Front02 +UPDATE `gameobject_template` SET `faction`=1375, `flags`=32 WHERE `entry`=183972; -- Doodad_PVP_Ogre_Door_Front03 +UPDATE `gameobject_template` SET `faction`=1375, `flags`=32 WHERE `entry`=183973; -- Doodad_PVP_Ogre_Door_Front04 +UPDATE `gameobject_template` SET `faction`=1375, `flags`=32 WHERE `entry`=183977; -- Doodad_PVP_Orc_Door_Front01 +UPDATE `gameobject_template` SET `faction`=1375, `flags`=32 WHERE `entry`=183978; -- Doodad_PVP_Orc_Door_Interior01 +UPDATE `gameobject_template` SET `faction`=1375, `flags`=32 WHERE `entry`=183979; -- Doodad_PVP_Orc_Door_Front01 +UPDATE `gameobject_template` SET `faction`=1375, `flags`=32 WHERE `entry`=183980; -- Doodad_PVP_Orc_Door_Interior01 +UPDATE `gameobject_template` SET `faction`=1375, `flags`=32 WHERE `entry`=185917; -- Doodad_PVP_Lordaeron_Door02 +UPDATE `gameobject_template` SET `faction`=1375, `flags`=32 WHERE `entry`=185918; -- Doodad_PVP_Lordaeron_Door01 +UPDATE `gameobject_template` SET `faction`=1375, `flags`=32 WHERE `entry`=192685; -- Yellow Moon Sigil +UPDATE `gameobject_template` SET `faction`=1375, `flags`=32 WHERE `entry`=192687; -- Green Moon Sigil +UPDATE `gameobject_template` SET `faction`=1375, `flags`=32 WHERE `entry`=192689; -- Blue Moon Sigil +UPDATE `gameobject_template` SET `faction`=1375, `flags`=32 WHERE `entry`=192690; -- Red Moon Sigil +UPDATE `gameobject_template` SET `faction`=1375, `flags`=32 WHERE `entry`=192691; -- Purple Moon Sigil +UPDATE `gameobject_template` SET `faction`=1375, `flags`=32 WHERE `entry`=193070; -- Nexus Raid Platform +UPDATE `gameobject_template` SET `faction`=1375, `flags`=32 WHERE `entry`=195223; -- Horde Keep Portcullis +UPDATE `gameobject_template` SET `faction`=1375, `flags`=32 WHERE `entry`=195436; -- Doodad_HU_Portcullis01 +UPDATE `gameobject_template` SET `faction`=1375, `flags`=32 WHERE `entry`=195437; -- Doodad_VR_Portcullis01 +UPDATE `gameobject_template` SET `faction`=1375, `flags`=32 WHERE `entry`=195451; -- Doodad_PortcullisActive01 +UPDATE `gameobject_template` SET `faction`=1375, `flags`=32 WHERE `entry`=195452; -- Doodad_PortcullisActive02 +UPDATE `gameobject_template` SET `faction`=1375, `flags`=32 WHERE `entry`=195491; -- Doodad_ND_WinterOrc_Wall_GateFX_Door01 +UPDATE `gameobject_template` SET `faction`=1375, `flags`=32 WHERE `entry`=195701; -- Teleporter Effects (Alliance) +UPDATE `gameobject_template` SET `faction`=1375, `flags`=32 WHERE `entry`=195702; -- Teleporter Effects (Horde) +UPDATE `gameobject_template` SET `faction`=1375, `flags`=32 WHERE `entry`=195703; -- Doodad_ND_Human_Gate_ClosedFX_Door01 +UPDATE `gameobject_template` SET `faction`=1375, `flags`=32 WHERE `entry`=201617; -- Doodad_IceCrown_OrangeTubes02 +UPDATE `gameobject_template` SET `faction`=1375, `flags`=32 WHERE `entry`=201618; -- Doodad_IceCrown_GreenTubes02 +UPDATE `gameobject_template` SET `faction`=1375, `flags`=33 WHERE `entry`=195705; -- Alliance Gunship Portal Effects +UPDATE `gameobject_template` SET `faction`=1375, `flags`=33 WHERE `entry`=195706; -- Horde Gunship Portal Effects +UPDATE `gameobject_template` SET `faction`=14 WHERE `entry`=187453; -- Bubbly Fissure +UPDATE `gameobject_template` SET `faction`=14 WHERE `entry`=187455; -- Bubbly Fissure +UPDATE `gameobject_template` SET `faction`=14, `flags`=2 WHERE `entry`=187378; -- Harkor's Cage +UPDATE `gameobject_template` SET `faction`=14, `flags`=2 WHERE `entry`=187380; -- Ashli's Cage +UPDATE `gameobject_template` SET `faction`=14, `flags`=32 WHERE `entry`=148883; -- Atal'ai Light SMALL (DND) +UPDATE `gameobject_template` SET `faction`=14, `flags`=32 WHERE `entry`=187704; -- Kvaldir Inferno +UPDATE `gameobject_template` SET `faction`=16 WHERE `entry`=191457; -- Lava Bomb +UPDATE `gameobject_template` SET `faction`=1627 WHERE `entry`=181153; -- Wanted Poster: Kel'gash the Wicked +UPDATE `gameobject_template` SET `faction`=168 WHERE `entry`=175534; -- Supply Crate +UPDATE `gameobject_template` SET `faction`=1732 WHERE `entry`=190219; -- Wintergrasp Fortress Wall +UPDATE `gameobject_template` SET `faction`=1732 WHERE `entry`=190369; -- Wintergrasp Fortress Wall +UPDATE `gameobject_template` SET `faction`=1732 WHERE `entry`=190370; -- Wintergrasp Fortress Wall +UPDATE `gameobject_template` SET `faction`=1732 WHERE `entry`=190371; -- Wintergrasp Fortress Wall +UPDATE `gameobject_template` SET `faction`=1732 WHERE `entry`=190372; -- Wintergrasp Fortress Wall +UPDATE `gameobject_template` SET `faction`=1732 WHERE `entry`=190373; -- Wintergrasp Fortress Tower +UPDATE `gameobject_template` SET `faction`=1732 WHERE `entry`=190374; -- Wintergrasp Fortress Wall +UPDATE `gameobject_template` SET `faction`=1732 WHERE `entry`=190375; -- Wintergrasp Fortress Gate +UPDATE `gameobject_template` SET `faction`=1732 WHERE `entry`=190376; -- Wintergrasp Fortress Wall +UPDATE `gameobject_template` SET `faction`=1732 WHERE `entry`=190377; -- Wintergrasp Fortress Tower +UPDATE `gameobject_template` SET `faction`=1732 WHERE `entry`=190378; -- Wintergrasp Fortress Tower +UPDATE `gameobject_template` SET `faction`=1732 WHERE `entry`=191795; -- Wintergrasp Fortress Wall +UPDATE `gameobject_template` SET `faction`=1732 WHERE `entry`=191796; -- Wintergrasp Fortress Wall +UPDATE `gameobject_template` SET `faction`=1732 WHERE `entry`=191797; -- Wintergrasp Wall +UPDATE `gameobject_template` SET `faction`=1732 WHERE `entry`=191798; -- Wintergrasp Wall +UPDATE `gameobject_template` SET `faction`=1732 WHERE `entry`=191799; -- Wintergrasp Fortress Wall +UPDATE `gameobject_template` SET `faction`=1732 WHERE `entry`=191800; -- Wintergrasp Fortress Wall +UPDATE `gameobject_template` SET `faction`=1732 WHERE `entry`=191801; -- Wintergrasp Fortress Wall +UPDATE `gameobject_template` SET `faction`=1732 WHERE `entry`=191802; -- Wintergrasp Fortress Wall +UPDATE `gameobject_template` SET `faction`=1732 WHERE `entry`=191803; -- Wintergrasp Fortress Wall +UPDATE `gameobject_template` SET `faction`=1732 WHERE `entry`=191804; -- Wintergrasp Fortress Wall +UPDATE `gameobject_template` SET `faction`=1732 WHERE `entry`=191805; -- Wintergrasp Wall +UPDATE `gameobject_template` SET `faction`=1732 WHERE `entry`=191806; -- Wintergrasp Fortress Wall +UPDATE `gameobject_template` SET `faction`=1732 WHERE `entry`=191807; -- Wintergrasp Fortress Wall +UPDATE `gameobject_template` SET `faction`=1732 WHERE `entry`=191808; -- Wintergrasp Fortress Wall +UPDATE `gameobject_template` SET `faction`=1732 WHERE `entry`=191809; -- Wintergrasp Fortress Wall +UPDATE `gameobject_template` SET `faction`=1732 WHERE `entry`=191810; -- Wintergrasp Fortress Door +UPDATE `gameobject_template` SET `faction`=1732 WHERE `entry`=194908; -- Lance Rack +UPDATE `gameobject_template` SET `faction`=1732 WHERE `entry`=195467; -- Mailbox +UPDATE `gameobject_template` SET `faction`=1732 WHERE `entry`=195468; -- Mailbox +UPDATE `gameobject_template` SET `faction`=1732, `flags`=288 WHERE `entry`=190220; -- Wintergrasp Fortress Wall +UPDATE `gameobject_template` SET `faction`=1732, `flags`=288 WHERE `entry`=190221; -- Wintergrasp Fortress Tower +UPDATE `gameobject_template` SET `faction`=1732, `flags`=288 WHERE `entry`=190369; -- Wintergrasp Fortress Wall +UPDATE `gameobject_template` SET `faction`=1732, `flags`=288 WHERE `entry`=190370; -- Wintergrasp Fortress Wall +UPDATE `gameobject_template` SET `faction`=1732, `flags`=288 WHERE `entry`=190373; -- Wintergrasp Fortress Tower +UPDATE `gameobject_template` SET `faction`=1732, `flags`=288 WHERE `entry`=190375; -- Wintergrasp Fortress Gate +UPDATE `gameobject_template` SET `faction`=1732, `flags`=288 WHERE `entry`=190376; -- Wintergrasp Fortress Wall +UPDATE `gameobject_template` SET `faction`=1732, `flags`=288 WHERE `entry`=191804; -- Wintergrasp Fortress Wall +UPDATE `gameobject_template` SET `faction`=1732, `flags`=288 WHERE `entry`=191809; -- Wintergrasp Fortress Wall +UPDATE `gameobject_template` SET `faction`=1732, `flags`=32 WHERE `entry`=190753; -- Seaforium Bomb +UPDATE `gameobject_template` SET `faction`=1732, `flags`=32 WHERE `entry`=195320; -- Alliance Gunship Portal +UPDATE `gameobject_template` SET `faction`=1732, `flags`=48 WHERE `entry`=192834; -- Titan Relic +UPDATE `gameobject_template` SET `faction`=1732, `flags`=48 WHERE `entry`=194083; -- Titan Relic +UPDATE `gameobject_template` SET `faction`=1735 WHERE `entry`=187390; -- Guild Vault +UPDATE `gameobject_template` SET `faction`=1735 WHERE `entry`=187674; -- Ith'rix's Hardened Carapace +UPDATE `gameobject_template` SET `faction`=1735 WHERE `entry`=188215; -- Collision PC Size +UPDATE `gameobject_template` SET `faction`=1735 WHERE `entry`=190356; -- Shadowsight Tower +UPDATE `gameobject_template` SET `faction`=1735 WHERE `entry`=190357; -- Winter's Edge Tower +UPDATE `gameobject_template` SET `faction`=1735 WHERE `entry`=190704; -- Barbershop Chair +UPDATE `gameobject_template` SET `faction`=1735 WHERE `entry`=194909; -- Lance Rack +UPDATE `gameobject_template` SET `faction`=1735, `flags`=32 WHERE `entry`=194086; -- Seaforium Bomb +UPDATE `gameobject_template` SET `faction`=1735, `flags`=32 WHERE `entry`=195326; -- Horde Gunship Portal +UPDATE `gameobject_template` SET `faction`=1735, `flags`=48 WHERE `entry`=192829; -- Titan Relic +UPDATE `gameobject_template` SET `faction`=1735, `flags`=48 WHERE `entry`=194082; -- Titan Relic +UPDATE `gameobject_template` SET `faction`=1735, `flags`=48 WHERE `entry`=194086; -- Seaforium Bomb +UPDATE `gameobject_template` SET `faction`=1865 WHERE `entry`=185915; -- Netherwing Egg +UPDATE `gameobject_template` SET `faction`=1877 WHERE `entry`=185877; -- Nethercite Deposit +UPDATE `gameobject_template` SET `faction`=1922 WHERE `entry`=187376; -- NPC Fishing Bobber +UPDATE `gameobject_template` SET `faction`=1989 WHERE `entry`=194006; -- Bear Trap +UPDATE `gameobject_template` SET `faction`=2051 WHERE `entry`=192907; -- Return to the Valley of Echoes +UPDATE `gameobject_template` SET `faction`=2059 WHERE `entry`=184142; -- Netherstorm Flag +UPDATE `gameobject_template` SET `faction`=2209 WHERE `entry`=202106; -- Frost Trap +UPDATE `gameobject_template` SET `faction`=2235, `flags`=32 WHERE `entry`=195237; -- Seaforium Bombs +UPDATE `gameobject_template` SET `faction`=2236, `flags`=32 WHERE `entry`=195232; -- Seaforium Bombs +UPDATE `gameobject_template` SET `faction`=35 WHERE `entry`=180452; -- Blastenheimer 5000 Ultra Cannon +UPDATE `gameobject_template` SET `faction`=35 WHERE `entry`=180619; -- Ossirian Crystal +UPDATE `gameobject_template` SET `faction`=35 WHERE `entry`=186739; -- Amani Charm Box +UPDATE `gameobject_template` SET `faction`=35 WHERE `entry`=186740; -- Amani Charm Box +UPDATE `gameobject_template` SET `faction`=35 WHERE `entry`=186741; -- Amani Charm Box +UPDATE `gameobject_template` SET `faction`=35 WHERE `entry`=193988; -- Twilight Portal +UPDATE `gameobject_template` SET `faction`=35 WHERE `entry`=193989; -- Normal Portal +UPDATE `gameobject_template` SET `faction`=35 WHERE `entry`=202080; -- Dart's Nest +UPDATE `gameobject_template` SET `faction`=35 WHERE `entry`=202278; -- Orb of Naxxramas +UPDATE `gameobject_template` SET `faction`=35, `flags`=32 WHERE `entry`=180089; -- Farm Banner +UPDATE `gameobject_template` SET `faction`=35, `flags`=32 WHERE `entry`=180090; -- Lumber Mill Banner +UPDATE `gameobject_template` SET `faction`=35, `flags`=32 WHERE `entry`=186685; -- Dark Iron Mole Machine +UPDATE `gameobject_template` SET `faction`=35, `flags`=32 WHERE `entry`=195133; -- Workshop Banner +UPDATE `gameobject_template` SET `faction`=35, `flags`=32 WHERE `entry`=195157; -- Docks Banner +UPDATE `gameobject_template` SET `faction`=35, `flags`=32 WHERE `entry`=195158; -- Hangar Banner +UPDATE `gameobject_template` SET `faction`=35, `flags`=32 WHERE `entry`=195338; -- Quarry Banner +UPDATE `gameobject_template` SET `faction`=35, `flags`=32 WHERE `entry`=195343; -- Refinery Banner +UPDATE `gameobject_template` SET `faction`=35, `flags`=32 WHERE `entry`=195371; -- Gunship Portal +UPDATE `gameobject_template` SET `faction`=35, `flags`=32 WHERE `entry`=196413; -- Gunship Portal +UPDATE `gameobject_template` SET `faction`=35, `flags`=4 WHERE `entry`=148838; -- Idol of Hakkar +UPDATE `gameobject_template` SET `faction`=534 WHERE `entry`=195607; -- Mailbox +UPDATE `gameobject_template` SET `faction`=534 WHERE `entry`=195613; -- Mailbox +UPDATE `gameobject_template` SET `faction`=54 WHERE `entry`=177764; -- Inferno +UPDATE `gameobject_template` SET `faction`=54 WHERE `entry`=178194; -- Lava Crack +UPDATE `gameobject_template` SET `faction`=714 WHERE `entry`=195554; -- Mailbox +UPDATE `gameobject_template` SET `faction`=714 WHERE `entry`=195556; -- Mailbox +UPDATE `gameobject_template` SET `faction`=714 WHERE `entry`=195557; -- Mailbox +UPDATE `gameobject_template` SET `faction`=714 WHERE `entry`=195558; -- Mailbox +UPDATE `gameobject_template` SET `faction`=714 WHERE `entry`=195559; -- Mailbox +UPDATE `gameobject_template` SET `faction`=714 WHERE `entry`=195560; -- Mailbox +UPDATE `gameobject_template` SET `faction`=714 WHERE `entry`=195561; -- Mailbox +UPDATE `gameobject_template` SET `faction`=714 WHERE `entry`=195562; -- Mailbox +UPDATE `gameobject_template` SET `faction`=714 WHERE `entry`=195624; -- Mailbox +UPDATE `gameobject_template` SET `faction`=714 WHERE `entry`=195625; -- Mailbox +UPDATE `gameobject_template` SET `faction`=714 WHERE `entry`=195626; -- Mailbox +UPDATE `gameobject_template` SET `faction`=714 WHERE `entry`=195627; -- Mailbox +UPDATE `gameobject_template` SET `faction`=714 WHERE `entry`=195628; -- Mailbox +UPDATE `gameobject_template` SET `faction`=714 WHERE `entry`=195629; -- Mailbox +UPDATE `gameobject_template` SET `faction`=83 WHERE `entry`=178394; -- Alliance Banner +UPDATE `gameobject_template` SET `faction`=83 WHERE `entry`=178936; -- Alliance Banner +UPDATE `gameobject_template` SET `faction`=83 WHERE `entry`=179284; -- Alliance Banner +UPDATE `gameobject_template` SET `faction`=83 WHERE `entry`=179308; -- Contested Banner +UPDATE `gameobject_template` SET `faction`=83 WHERE `entry`=179482; -- Contested Banner +UPDATE `gameobject_template` SET `faction`=83, `flags`=32 WHERE `entry`=180072; -- Alliance Banner +UPDATE `gameobject_template` SET `faction`=83, `flags`=32 WHERE `entry`=180073; -- Contested Banner +UPDATE `gameobject_template` SET `faction`=83, `flags`=32 WHERE `entry`=180092; -- Contested Banner +UPDATE `gameobject_template` SET `faction`=83, `flags`=32 WHERE `entry`=180094; -- Contested Banner +UPDATE `gameobject_template` SET `faction`=83, `flags`=32 WHERE `entry`=180096; -- Contested Banner +UPDATE `gameobject_template` SET `faction`=83, `flags`=32 WHERE `entry`=191306; -- Alliance Banner +UPDATE `gameobject_template` SET `faction`=83, `flags`=32 WHERE `entry`=191308; -- Alliance Banner +UPDATE `gameobject_template` SET `faction`=83, `flags`=32 WHERE `entry`=191310; -- Alliance Banner +UPDATE `gameobject_template` SET `faction`=83, `flags`=32 WHERE `entry`=195132; -- Alliance Banner +UPDATE `gameobject_template` SET `faction`=83, `flags`=32 WHERE `entry`=195144; -- Alliance Banner +UPDATE `gameobject_template` SET `faction`=83, `flags`=32 WHERE `entry`=195149; -- Alliance Banner +UPDATE `gameobject_template` SET `faction`=83, `flags`=32 WHERE `entry`=195150; -- Alliance Banner +UPDATE `gameobject_template` SET `faction`=83, `flags`=32 WHERE `entry`=195153; -- Alliance Banner +UPDATE `gameobject_template` SET `faction`=83, `flags`=32 WHERE `entry`=195154; -- Alliance Banner +UPDATE `gameobject_template` SET `faction`=83, `flags`=32 WHERE `entry`=195334; -- Alliance Banner +UPDATE `gameobject_template` SET `faction`=83, `flags`=32 WHERE `entry`=195335; -- Alliance Banner +UPDATE `gameobject_template` SET `faction`=83, `flags`=32 WHERE `entry`=195339; -- Alliance Banner +UPDATE `gameobject_template` SET `faction`=83, `flags`=32 WHERE `entry`=195340; -- Alliance Banner +UPDATE `gameobject_template` SET `faction`=83, `flags`=32 WHERE `entry`=195391; -- Alliance Banner +UPDATE `gameobject_template` SET `faction`=83, `flags`=32 WHERE `entry`=195392; -- Alliance Banner +UPDATE `gameobject_template` SET `faction`=83, `flags`=32 WHERE `entry`=195397; -- Alliance Banner +UPDATE `gameobject_template` SET `faction`=83, `flags`=4 WHERE `entry`=142702; -- Venom Bottle +UPDATE `gameobject_template` SET `faction`=83, `flags`=48 WHERE `entry`=191308; -- Alliance Banner +UPDATE `gameobject_template` SET `faction`=83, `flags`=48 WHERE `entry`=191310; -- Alliance Banner +UPDATE `gameobject_template` SET `faction`=83, `flags`=48 WHERE `entry`=195396; -- Alliance Banner +UPDATE `gameobject_template` SET `faction`=84 WHERE `entry`=178393; -- Horde Banner +UPDATE `gameobject_template` SET `faction`=84 WHERE `entry`=179285; -- Horde Banner +UPDATE `gameobject_template` SET `faction`=84 WHERE `entry`=179443; -- Contested Banner +UPDATE `gameobject_template` SET `faction`=84 WHERE `entry`=179483; -- Horde Banner +UPDATE `gameobject_template` SET `faction`=84 WHERE `entry`=182167; -- Fire Bomb +UPDATE `gameobject_template` SET `faction`=84 WHERE `entry`=83763; -- Stolen Books +UPDATE `gameobject_template` SET `faction`=84, `flags`=32 WHERE `entry`=180086; -- Contested Banner +UPDATE `gameobject_template` SET `faction`=84, `flags`=32 WHERE `entry`=180093; -- Contested Banner +UPDATE `gameobject_template` SET `faction`=84, `flags`=32 WHERE `entry`=195130; -- Horde Banner +UPDATE `gameobject_template` SET `faction`=84, `flags`=32 WHERE `entry`=195145; -- Horde Banner +UPDATE `gameobject_template` SET `faction`=84, `flags`=32 WHERE `entry`=195151; -- Horde Banner +UPDATE `gameobject_template` SET `faction`=84, `flags`=32 WHERE `entry`=195152; -- Horde Banner +UPDATE `gameobject_template` SET `faction`=84, `flags`=32 WHERE `entry`=195155; -- Horde Banner +UPDATE `gameobject_template` SET `faction`=84, `flags`=32 WHERE `entry`=195156; -- Horde Banner +UPDATE `gameobject_template` SET `faction`=84, `flags`=32 WHERE `entry`=195336; -- Horde Banner +UPDATE `gameobject_template` SET `faction`=84, `flags`=32 WHERE `entry`=195337; -- Horde Banner +UPDATE `gameobject_template` SET `faction`=84, `flags`=32 WHERE `entry`=195341; -- Horde Banner +UPDATE `gameobject_template` SET `faction`=84, `flags`=32 WHERE `entry`=195342; -- Horde Banner +UPDATE `gameobject_template` SET `faction`=84, `flags`=32 WHERE `entry`=195398; -- Horde Banner +UPDATE `gameobject_template` SET `faction`=84, `flags`=32 WHERE `entry`=195399; -- Horde Banner +UPDATE `gameobject_template` SET `faction`=84, `flags`=48 WHERE `entry`=191305; -- Horde Banner +UPDATE `gameobject_template` SET `faction`=84, `flags`=48 WHERE `entry`=191307; -- Horde Banner +UPDATE `gameobject_template` SET `faction`=84, `flags`=48 WHERE `entry`=191309; -- Horde Banner +UPDATE `gameobject_template` SET `faction`=84, `flags`=48 WHERE `entry`=195393; -- Horde Banner +UPDATE `gameobject_template` SET `faction`=94 WHERE `entry`=169243; -- Chest of The Seven +UPDATE `gameobject_template` SET `faction`=94 WHERE `entry`=181248; -- Copper Vein +UPDATE `gameobject_template` SET `faction`=94 WHERE `entry`=181249; -- Tin Vein +UPDATE `gameobject_template` SET `faction`=94 WHERE `entry`=195682; -- Portal to Dalaran +UPDATE `gameobject_template` SET `faction`=94 WHERE `entry`=202079; -- Portal to Dalaran +UPDATE `gameobject_template` SET `faction`=94, `flags`=16 WHERE `entry`=186672; -- Ashli's Bag +UPDATE `gameobject_template` SET `faction`=94, `flags`=16 WHERE `entry`=187021; -- Harkor's Satchel +UPDATE `gameobject_template` SET `faction`=94, `flags`=16 WHERE `entry`=202239; -- Deathbringer's Cache +UPDATE `gameobject_template` SET `faction`=94, `flags`=16 WHERE `entry`=202240; -- Deathbringer's Cache +UPDATE `gameobject_template` SET `faction`=94, `flags`=2 WHERE `entry`=180691; -- Scarab Coffer +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=148956; -- Anvil +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=148957; -- Anvil +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=148958; -- Anvil +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=148959; -- Anvil +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=148960; -- Forge +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=149048; -- Wooden Bench +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=153556; -- Thaurissan Relic +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=162024; -- Samophlange +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=164875; -- Immolation Trap V +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=169216; -- Preserved Threshadon Carcass +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=175965; -- Frostwhisper's Embalming Fluid +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=175966; -- Enchanted Scarlet Thread +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=176089; -- Unfired Plate Gauntlets +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=176112; -- Malor's Strongbox +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=176224; -- Supply Crate +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=176311; -- Pew +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=176312; -- Pew +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=176313; -- Pew +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=176314; -- Pew +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=176315; -- Pew +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=176316; -- Pew +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=176498; -- Portal to Darnassus +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=177704; -- Lava Bomb +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=178388; -- Horde Banner +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=178929; -- Alliance Banner +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=179264; -- Giant Clam +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=179439; -- Contested Banner +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=179465; -- Alliance Banner +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=179468; -- Contested Banner +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=180763; -- Firecrackers +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=181271; -- Dreaming Glory +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=181272; -- Dreaming Glory +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=181278; -- Ancient Lichen +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=181281; -- Mana Thistle +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=181284; -- Mana Thistle +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=181556; -- Adamantite Deposit +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=181569; -- Rich Adamantite Deposit +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=181802; -- Adamantite Bound Chest +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=184189; -- Instance_Portal_Difficulty_1 +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=184190; -- Instance_Portal_Difficulty_0 +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=185878; -- Nethercite Smoke Effect +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=185881; -- Netherdust Bush +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=186609; -- Glowing Anvil +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=186610; -- Glowing Anvil +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=186611; -- Glowing Anvil +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=186688; -- Doodad_VR_Bellows_First +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=186689; -- Doodad_VR_Bellows_Second +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=186690; -- Doodad_VR_Bellows_Third +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=186695; -- Chair +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=186696; -- Chair +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=186697; -- Chair +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=186698; -- Chair +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=186699; -- Chair +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=186700; -- Chair +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=186701; -- Chair +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=186702; -- Chair +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=186703; -- Chair +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=186704; -- Chair +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=186705; -- Chair +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=186706; -- Chair +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=186707; -- Chair +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=187184; -- Bonfire +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=187242; -- Campfire +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=187243; -- Campfire +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=188376; -- Borean Tundra +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=188377; -- Agmar's Hammer +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=188378; -- Wyrmrest Temple +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=188398; -- Wintergarde Keep +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=188399; -- Wyrmrest Temple +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=188413; -- Grizzly Hills +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=188593; -- Stasis Generator +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=188715; -- Orb of the Nexus +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=189292; -- Scrying Orb +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=189294; -- Campfire +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=189985; -- Nexus Portal +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=190557; -- Runeforge +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=190629; -- Drakuru's Brazier +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=190858; -- Volkhan Temper Visual +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=190914; -- Mailbox +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=191070; -- Campfire +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=191071; -- Smoldering Leaves +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=191072; -- Campfire +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=191073; -- Smoldering Leaves +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=191074; -- Smoldering Leaves +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=191075; -- Campfire +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=191076; -- Smoldering Leaves +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=191077; -- Smoldering Leaves +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=191126; -- Duel Flag +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=191237; -- Forge +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=191238; -- Anvil +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=191239; -- Campfire +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=191240; -- Campfire +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=191347; -- Drakuru's Pedestal +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=191349; -- Cache of Eregos +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=191440; -- Lamp Post +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=191444; -- Lamp Post +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=191445; -- Lamp Post +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=191555; -- Scourge Gryphon Roost Glow +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=191577; -- Acherus Soul Prison +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=191580; -- Acherus Soul Prison +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=191581; -- Acherus Soul Prison +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=191582; -- Acherus Soul Prison +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=191583; -- Acherus Soul Prison +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=191584; -- Acherus Soul Prison +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=191585; -- Acherus Soul Prison +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=191586; -- Acherus Soul Prison +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=191587; -- Acherus Soul Prison +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=191588; -- Acherus Soul Prison +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=191589; -- Acherus Soul Prison +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=191590; -- Acherus Soul Prison +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=191616; -- Touch of the Banshee +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=191617; -- Compendium of Fallen Heroes +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=191618; -- Report from the Frontlines: Western Northrend +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=191631; -- Report from the Frontlines: Eastern Kingdoms +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=191632; -- Report from the Frontlines: Dragonblight +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=191633; -- Report from the Frontlines: Undercity +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=191634; -- The Death Knights of Acherus +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=191646; -- Corpulous' Mess Hall Rules +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=191648; -- Account of the Raising of a Frost Wyrm +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=191649; -- The Memoirs of Lord Thorval +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=191650; -- Guide to the Side Effects of Reanimation +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=191652; -- Grooming for Ghouls +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=191653; -- Unknown Crusader's Diary +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=191654; -- ATTENTION: Geists +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=191655; -- One Truth in Undeath +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=191656; -- On Scholomance +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=191657; -- On Stratholme +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=191658; -- On Naxxramas +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=191659; -- On Undeath +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=191662; -- A Zombie's Guide to Proper Nutrition +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=191663; -- This is my Runeblade... +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=191664; -- The Decree of the Scourge +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=191846; -- Doodad_InstanceNewPortal_Purple01 +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=191847; -- Doodad_InstanceNewPortal_Purple_Skull01 +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=191848; -- Doodad_InstanceNewPortal_Purple02 +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=191849; -- Doodad_InstanceNewPortal_Purple_Skull02 +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=191855; -- Lava +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=191856; -- Lava +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=191857; -- Lava +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=191860; -- Lava +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=191862; -- Fire +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=191866; -- Fire +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=191867; -- Fire +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=191869; -- Fire +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=191870; -- Fire +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=191871; -- Fire +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=191872; -- Lava +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=191873; -- Fire +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=191874; -- Fire +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=191875; -- Fire +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=191876; -- Fire +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=192067; -- Lamp Post +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=192068; -- Lamp Post +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=192083; -- Lamp Post +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=192084; -- Lamp Post +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=192085; -- Lamp Post +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=192086; -- Lamp Post +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=192087; -- Lamp Post +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=192088; -- Lamp Post +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=192089; -- Lamp Post +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=192163; -- Left Pipe +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=192164; -- Right Pipe +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=192235; -- 192235 +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=192254; -- Horde Banner +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=192255; -- Horde Banner +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=192273; -- Alliance Banner +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=192274; -- Alliance Banner +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=192277; -- Alliance Banner +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=192278; -- Alliance Banner +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=192284; -- Horde Banner +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=192285; -- Horde Banner +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=192290; -- Horde Banner +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=192336; -- Horde Banner +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=192338; -- Horde Banner +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=192339; -- Horde Banner +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=192349; -- Horde Banner +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=192350; -- Horde Banner +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=192351; -- Horde Banner +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=192352; -- Horde Banner +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=192353; -- Horde Banner +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=192354; -- Horde Banner +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=192355; -- Horde Banner +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=192356; -- Horde Banner +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=192357; -- Horde Banner +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=192358; -- Horde Banner +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=192359; -- Horde Banner +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=192360; -- Horde Banner +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=192361; -- Horde Banner +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=192362; -- Horde Banner +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=192363; -- Horde Banner +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=192364; -- Horde Banner +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=192366; -- Horde Banner +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=192367; -- Horde Banner +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=192368; -- Horde Banner +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=192369; -- Horde Banner +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=192370; -- Horde Banner +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=192371; -- Horde Banner +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=192372; -- Horde Banner +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=192373; -- Horde Banner +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=192374; -- Horde Banner +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=192375; -- Horde Banner +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=192378; -- Horde Banner +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=192379; -- Horde Banner +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=192406; -- Alliance Banner +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=192407; -- Alliance Banner +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=192414; -- Alliance Banner +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=192417; -- Alliance Banner +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=192418; -- Alliance Banner +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=192429; -- Alliance Banner +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=192460; -- Horde Banner +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=192461; -- Horde Banner +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=192465; -- Doodad_InstanceNewPortal_Purple01 +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=192466; -- Doodad_InstanceNewPortal_Purple_Skull01 +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=192467; -- Doodad_InstanceNewPortal_Purple01 +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=192468; -- Doodad_InstanceNewPortal_Purple_Skull01 +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=192488; -- Wintergrasp Horde Banner +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=192489; -- Doodad_InstanceNewPortal_Purple01 +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=192490; -- Doodad_InstanceNewPortal_Purple_Skull01 +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=192501; -- Wintergrasp Alliance Banner +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=192503; -- Doodad_InstanceNewPortal_Purple_Skull01 +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=192504; -- Doodad_InstanceNewPortal_Purple01 +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=192513; -- Doodad_InstanceNewPortal_Purple02 +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=192514; -- Doodad_InstanceNewPortal_Purple_Skull02 +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=192528; -- Doodad_InstanceNewPortal_Purple01 +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=192529; -- Doodad_InstanceNewPortal_Purple_Skull01 +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=192622; -- Meeting Stone +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=192677; -- Doodad_InstanceNewPortal_Purple_Skull01 +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=192678; -- Doodad_InstanceNewPortal_Purple01 +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=192679; -- Doodad_InstanceNewPortal_Purple02 +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=192680; -- Doodad_InstanceNewPortal_Purple_Skull02 +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=192681; -- Doodad_InstanceNewPortal_Purple01 +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=192682; -- Doodad_InstanceNewPortal_Purple_Skull01 +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=192850; -- Lamp Post +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=192853; -- Lamp Post +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=192863; -- Doodad_InstanceNewPortal_Green01 +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=192864; -- Doodad_InstanceNewPortal_Green_Skull01 +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=192903; -- Doodad_InstanceNewPortal_Green01 +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=192904; -- Doodad_InstanceNewPortal_Green_Skull01 +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=192951; -- Vehicle Teleporter +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=193039; -- Doodad_InstanceNewPortal_Green_Skull01 +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=193040; -- Doodad_InstanceNewPortal_Green01 +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=193110; -- 193110 +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=193111; -- 193111 +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=193112; -- 193112 +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=193113; -- 193113 +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=193114; -- 193114 +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=193115; -- 193115 +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=193116; -- 193116 +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=193117; -- 193117 +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=193118; -- 193118 +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=193119; -- 193119 +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=193120; -- 193120 +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=193121; -- 193121 +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=193122; -- 193122 +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=193123; -- 193123 +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=193127; -- 193127 +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=193139; -- 193139 +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=193140; -- 193140 +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=193141; -- 193141 +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=193142; -- 193142 +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=193143; -- 193143 +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=193144; -- 193144 +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=193145; -- 193145 +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=193146; -- 193146 +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=193147; -- 193147 +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=193148; -- 193148 +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=193149; -- 193149 +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=193150; -- 193150 +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=193151; -- 193151 +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=193152; -- 193152 +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=193153; -- 193153 +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=193154; -- 193154 +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=193155; -- 193155 +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=193156; -- 193156 +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=193157; -- 193157 +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=193158; -- 193158 +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=193159; -- 193159 +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=193160; -- 193160 +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=193161; -- 193161 +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=193212; -- Doodad_InstanceNewPortal_Purple_Skull04 +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=193213; -- Doodad_InstanceNewPortal_Purple04 +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=193587; -- Doodad_InstanceNewPortal_Green_Skull01 +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=193588; -- Doodad_InstanceNewPortal_Green01 +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=193907; -- Tribunal Control Console +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=202212; -- The Captain's Chest +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=202794; -- Twilight Portal +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=22831; -- Cozy Fire +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=22832; -- Cozy Fire +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=22833; -- Cozy Fire +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=22834; -- Cozy Fire +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=22835; -- Cozy Fire +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=22836; -- Cozy Fire +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=22854; -- Wooden Chair +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=22855; -- Wooden Chair +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=22856; -- Wooden Chair +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=22858; -- Wooden Chair +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=22860; -- High Back Chair +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=22864; -- Wooden Chair +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=22865; -- Wooden Chair +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=22879; -- High Back Chair +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=22880; -- High Back Chair +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=3801; -- Cozy Fire +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=3802; -- Cozy Fire +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=386; -- Metal Mace +UPDATE `gameobject_template` SET `flags`=1 WHERE `entry`=183518; -- Lever +UPDATE `gameobject_template` SET `flags`=1 WHERE `entry`=186482; -- Zul'Aman Dummy Cage - Open +UPDATE `gameobject_template` SET `flags`=1 WHERE `entry`=187560; -- Valiance Keep Cannon +UPDATE `gameobject_template` SET `flags`=1 WHERE `entry`=191463; -- Lamp +UPDATE `gameobject_template` SET `flags`=1 WHERE `entry`=191466; -- Lamp +UPDATE `gameobject_template` SET `flags`=1 WHERE `entry`=191470; -- Lamp +UPDATE `gameobject_template` SET `flags`=1 WHERE `entry`=192918; -- Brigg's Chest +UPDATE `gameobject_template` SET `flags`=16 WHERE `entry`=148418; -- Eternal Flame +UPDATE `gameobject_template` SET `flags`=16 WHERE `entry`=148419; -- Eternal Flame +UPDATE `gameobject_template` SET `flags`=16 WHERE `entry`=148420; -- Eternal Flame +UPDATE `gameobject_template` SET `flags`=16 WHERE `entry`=148421; -- Eternal Flame +UPDATE `gameobject_template` SET `flags`=16 WHERE `entry`=164822; -- Dark Keeper Nameplate +UPDATE `gameobject_template` SET `flags`=16 WHERE `entry`=164823; -- Dark Keeper Nameplate +UPDATE `gameobject_template` SET `flags`=16 WHERE `entry`=174610; -- Cleansed Songflower +UPDATE `gameobject_template` SET `flags`=16 WHERE `entry`=176944; -- Old Treasure Chest +UPDATE `gameobject_template` SET `flags`=16 WHERE `entry`=176951; -- Rune of Koro +UPDATE `gameobject_template` SET `flags`=16 WHERE `entry`=176952; -- Rune of Zeth +UPDATE `gameobject_template` SET `flags`=16 WHERE `entry`=176953; -- Rune of Mazj +UPDATE `gameobject_template` SET `flags`=16 WHERE `entry`=176954; -- Rune of Theri +UPDATE `gameobject_template` SET `flags`=16 WHERE `entry`=185168; -- Reinforced Fel Iron Chest +UPDATE `gameobject_template` SET `flags`=16 WHERE `entry`=186910; -- Gjalerbron Cage +UPDATE `gameobject_template` SET `flags`=16 WHERE `entry`=187892; -- Ice Chest +UPDATE `gameobject_template` SET `flags`=16 WHERE `entry`=190586; -- Tribunal Chest +UPDATE `gameobject_template` SET `flags`=16 WHERE `entry`=190663; -- Dark Runed Chest +UPDATE `gameobject_template` SET `flags`=16 WHERE `entry`=192518; -- Altar of Slad'ran +UPDATE `gameobject_template` SET `flags`=16 WHERE `entry`=192519; -- Altar of Moorabi +UPDATE `gameobject_template` SET `flags`=16 WHERE `entry`=192520; -- Altar of the Drakkari Colossus +UPDATE `gameobject_template` SET `flags`=16 WHERE `entry`=193597; -- Dark Runed Chest +UPDATE `gameobject_template` SET `flags`=16 WHERE `entry`=193996; -- Tribunal Chest +UPDATE `gameobject_template` SET `flags`=16 WHERE `entry`=201615; -- Ooze Release Valve +UPDATE `gameobject_template` SET `flags`=16 WHERE `entry`=201616; -- Gas Release Valve +UPDATE `gameobject_template` SET `flags`=16 WHERE `entry`=201959; -- Cache of the Dreamwalker +UPDATE `gameobject_template` SET `flags`=2 WHERE `entry`=182094; -- Cage +UPDATE `gameobject_template` SET `flags`=2 WHERE `entry`=184716; -- Coilskar Chest +UPDATE `gameobject_template` SET `flags`=2 WHERE `entry`=187369; -- Cage +UPDATE `gameobject_template` SET `flags`=2 WHERE `entry`=187377; -- Tanzar's Cage +UPDATE `gameobject_template` SET `flags`=2 WHERE `entry`=187379; -- Kraz's Cage +UPDATE `gameobject_template` SET `flags`=2 WHERE `entry`=187561; -- Arcane Prison +UPDATE `gameobject_template` SET `flags`=2 WHERE `entry`=188259; -- Grizzly Hills Bounty Hunter Cage +UPDATE `gameobject_template` SET `flags`=2 WHERE `entry`=190567; -- Cage +UPDATE `gameobject_template` SET `flags`=2 WHERE `entry`=191543; -- Scarlet Onslaught Trunk +UPDATE `gameobject_template` SET `flags`=2 WHERE `entry`=75296; -- Large Iron Bound Chest +UPDATE `gameobject_template` SET `flags`=2 WHERE `entry`=75297; -- Large Iron Bound Chest +UPDATE `gameobject_template` SET `flags`=20 WHERE `entry`=141858; -- Stone of Binding +UPDATE `gameobject_template` SET `flags`=20 WHERE `entry`=179545; -- The Prince's Chest +UPDATE `gameobject_template` SET `flags`=20 WHERE `entry`=187372; -- The Talon King's Coffer +UPDATE `gameobject_template` SET `flags`=20 WHERE `entry`=201937; -- Light's Vengeance +UPDATE `gameobject_template` SET `flags`=288 WHERE `entry`=190358; -- Flamewatch Tower +UPDATE `gameobject_template` SET `flags`=288 WHERE `entry`=190376; -- Wintergrasp Fortress Wall +UPDATE `gameobject_template` SET `flags`=288 WHERE `entry`=191805; -- Wintergrasp Wall +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=104591; -- Chapel Door +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=104600; -- High Inquisitor's Door +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=141869; -- Temple Door +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=148937; -- Atal'ai Light BIG (DND) +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=175379; -- Doodad_ZigguratDoor02 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=175381; -- Doodad_ZigguratDoor03 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=175968; -- Hoard Door +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=175969; -- Doodad_DwarvenTunnelPortcullis04 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=176194; -- Hall of the High Command +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=176907; -- Conservatory Door +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=177211; -- Door +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=177212; -- Door +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=177213; -- Door +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=177215; -- Door +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=177220; -- Crumble Wall +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=178932; -- [PH] Alliance A2 Tower Banner BIG +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=178947; -- [PH] Alliance A3 Tower Banner BIG +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=178948; -- [PH] Alliance A4 Tower Banner BIG +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=179424; -- [PH] Alliance Graveyard Mid Pre-Banner BIG +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=179425; -- [PH] Horde Graveyard Mid Pre-Banner BIG +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=179436; -- [PH] Horde A1 Tower Pre-Banner BIG +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=179440; -- [PH] Horde A2 Tower Pre-Banner BIG +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=179444; -- [PH] Horde A4 Tower Pre-Banner BIG +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=179446; -- [PH] Alliance H1 Tower Pre-Banner BIG +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=179450; -- [PH] Alliance H2 Tower Pre-Banner BIG +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=179454; -- [PH] Alliance H3 Tower Pre-Banner BIG +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=179458; -- [PH] Alliance H4 Tower Pre-Banner BIG +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=179503; -- Doodad_DireMaulBossForceField01 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=179506; -- Doodad_DiremaulMagicVortex01 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=179964; -- DARKMOON FAIRE - Coming Soon! +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=180005; -- Darkmoon Faire Wagon Loaded +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=180026; -- Darkmoon Faire Signpost +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=180064; -- Alliance Banner +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=180065; -- Contested Banner +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=180066; -- Horde Banner +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=180067; -- Contested Banner +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=180068; -- Alliance Banner +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=180069; -- Contested Banner +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=180071; -- Contested Banner +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=180074; -- Horde Banner +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=180075; -- Contested Banner +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=180077; -- Contested Banner +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=180078; -- Horde Banner +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=180079; -- Contested Banner +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=180085; -- Contested Banner +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=180087; -- Stable Banner +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=180088; -- Blacksmith Banner +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=180091; -- Mine Banner +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=180095; -- Contested Banner +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=180097; -- Contested Banner +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=180100; -- Alliance Banner Aura +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=180101; -- Horde Banner Aura +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=180102; -- Neutral Banner Aura +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=180218; -- Arathi Basin Pumpkin +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=180219; -- Arathi Basin Pumpkin Patch +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=180220; -- Arathi Basin Bone01 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=180222; -- Arathi Basin Bone02 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=180223; -- Arathi Basin BlastedLandsSkull01 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=180224; -- Arathi Basin BlastedLandsBonePile02 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=180225; -- Arathi Basin BlastedLandsBonePile03 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=180226; -- Arathi Basin Doomweed01 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=180227; -- Arathi Basin Gloomweed01 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=180419; -- Contested Banner +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=180420; -- Contested Banner +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=180424; -- Alterac Valley Gate +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=181071; -- Ysida's Cage +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=181766; -- Doodad_Hellfire_DW_PrisonEntry01 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=181811; -- Doodad_Hellfire_DW_PrisonEntry02 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=181812; -- Doodad_Hellfire_DW_PrisonEntry03 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=181813; -- Prison Cell Door +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=181814; -- Prison Cell Door +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=181815; -- Prison Cell Door +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=181816; -- Prison Cell Door +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=181817; -- Prison Cell Door +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=181818; -- Prison Cell Door +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=181819; -- Doodad_Hellfire_DW_PrisonEntry04 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=181820; -- Prison Cell Door +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=181821; -- Prison Cell Door +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=181822; -- Doodad_Hellfire_DW_PrisonEntry05 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=181823; -- Doodad_Hellfire_DW_SummonDoor01 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=181925; -- Doodad_Hellfire_DW_SmallFloor_Crack04onoff +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=182090; -- Vector Coil Fire (L) +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=182222; -- Bomb Wagon +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=182266; -- Destroyed Wyvern Roost +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=182267; -- Wyvern Roost +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=182272; -- Bomb Wagon +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=182273; -- Bomb Wagon +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=182274; -- Bomb Wagon +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=182275; -- Destroyed Wyvern Roost +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=182276; -- Destroyed Wyvern Roost +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=182277; -- Destroyed Wyvern Roost +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=182280; -- Wyvern Roost +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=182281; -- Wyvern Roost +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=182282; -- Wyvern Roost +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=183051; -- Sethekk Cage +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=183398; -- Doodad_Auchindoun_Door_Swinging01 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=183401; -- Portcullis +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=183402; -- Portcullis +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=183411; -- Terokkar Banner +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=183412; -- Terokkar Banner +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=183414; -- Terokkar Banner +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=184212; -- Coilfang Resevoir Waterfall +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=184246; -- Heavy Iron Portcullis +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=185123; -- Lever +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=186217; -- BREWFEST - Coming Soon! +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=186566; -- Dragonflayer Cage +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=186567; -- Dragonflayer Cage +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=186608; -- Giant Portcullis +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=186612; -- Giant Portcullis +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=186691; -- Doodad_VR_ForgeFire_Third +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=186692; -- Doodad_VR_ForgeFire_First +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=186693; -- Doodad_VR_ForgeFire_Second +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=186694; -- Giant Portcullis +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=186737; -- Brewfest Wagon Loaded +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=186756; -- Giant Portcullis +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=186805; -- Hippogryph Nest +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=186807; -- Broken Cart +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=187703; -- Kvaldir Inferno +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=187707; -- Mist of the Ancient Mariner +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=187884; -- Evanor's Prison +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=188072; -- Ice Stone Mount +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=188081; -- Sanctum Planetarium +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=188458; -- Seer of Zeb'Halak +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=188554; -- Dun Argol Cage +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=188596; -- Loken's Pedestal +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=188706; -- Wooden Cage +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=189299; -- Ritual Crystal +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=189300; -- Ritual Crystal +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=189301; -- Ritual Crystal +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=189302; -- Ritual Crystal +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=189310; -- Venture Bay Lighthouse +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=189975; -- Doodad_DT_bigDoor01 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=189977; -- Brittle Cage +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=189986; -- Dragon Cage +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=190192; -- Gate +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=190402; -- Blaze +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=190475; -- Wintergrasp NE Factory Banner +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=190487; -- Wintergrasp NW Factory Banner +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=190538; -- Argent Crusade Banner +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=190568; -- Light's Point Tower +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=190569; -- Acherus Lightning +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=190570; -- Burning Blaze +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=190574; -- Zul'Drak Stoneface 01 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=190594; -- Zul'Drak Skull Pile 02 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=190647; -- Corpses +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=190687; -- Wood Pile +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=190722; -- Gate of the Green Emerald +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=190723; -- Gate of the Purple Amethyst +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=190724; -- Gate of the Blue Sapphire +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=190726; -- Gate of the Red Sun +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=190727; -- Gate of the Yellow Moon +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=190752; -- Massive Seaforium Charge +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=190763; -- Defender's Portal +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=190784; -- Zol'Maz Gate +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=190789; -- 190789 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=190799; -- 190799 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=190800; -- 190800 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=190859; -- 190859 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=190860; -- 190860 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=190861; -- 190861 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=190862; -- 190862 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=190863; -- 190863 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=190864; -- 190864 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=190865; -- 190865 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=190866; -- 190866 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=190867; -- 190867 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=190868; -- 190868 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=190869; -- 190869 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=190870; -- 190870 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=190871; -- 190871 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=190872; -- 190872 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=190873; -- 190873 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=190874; -- 190874 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=190875; -- 190875 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=190876; -- 190876 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=190877; -- 190877 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=190878; -- 190878 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=190879; -- 190879 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=190880; -- 190880 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=190881; -- 190881 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=190882; -- 190882 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=190883; -- 190883 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=190884; -- 190884 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=190885; -- 190885 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=190886; -- 190886 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=190887; -- 190887 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=190888; -- 190888 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=190889; -- 190889 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=190890; -- 190890 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=190891; -- 190891 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=190892; -- 190892 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=190893; -- 190893 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=190898; -- 190898 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=190899; -- 190899 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=190900; -- 190900 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=190901; -- 190901 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=190902; -- 190902 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=190903; -- 190903 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=190904; -- 190904 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=190905; -- 190905 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=190906; -- 190906 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=190907; -- 190907 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=190908; -- 190908 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=190909; -- 190909 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=190910; -- 190910 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=190911; -- 190911 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=190930; -- 190930 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=190931; -- 190931 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=190932; -- 190932 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=190933; -- 190933 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=190934; -- 190934 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=191018; -- Akali Chain Anchor +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=191148; -- 191148 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=191166; -- 191166 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=191167; -- 191167 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=191169; -- 191169 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=191171; -- 191171 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=191172; -- 191172 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=191173; -- 191173 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=191178; -- 191178 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=191191; -- 191191 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=191292; -- Doodad_UL_Ulduar_doors06 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=191293; -- Doodad_UL_Ulduar_doors04 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=191294; -- Doodad_UL_Ulduar_doors05 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=191295; -- Doodad_UL_Ulduar_doors03 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=191296; -- Doodad_UL_Ulduar_doors02 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=191311; -- Flagpole +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=191324; -- Doodad_UL_Ulduar_doors02 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=191325; -- Doodad_UL_Ulduar_doors07 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=191326; -- Doodad_UL_Ulduar_doors05 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=191327; -- Doodad_UL_Ulduar_doors06 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=191328; -- Doodad_UL_Ulduar_doors04 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=191351; -- Spotlight +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=191364; -- Doodad_Nox_portal_orange_bossroom01 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=191369; -- Cosmetic Object - Fire Large +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=191415; -- Doodad_UL_Ulduar_doors09 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=191416; -- Doodad_UL_Ulduar_doors10 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=191459; -- Doodad_UL_Ulduar_doors07 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=191463; -- Lamp +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=191503; -- Anvil +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=191504; -- Anvil +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=191505; -- Forge +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=191506; -- Anvil +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=191507; -- Anvil +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=191508; -- Forge +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=191527; -- Doodad_UL_SkyRoom_Floor01 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=191538; -- Doodad_Nox_portal_purple_bossroom01 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=191539; -- Doodad_Nox_portal_purple_bossroom17 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=191540; -- Alchemy Lab +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=191541; -- Alchemy Lab +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=191549; -- Nidavelir Mole Machine +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=191552; -- Large Nidavelir Mole Machine +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=191554; -- Skeletal Gryphon Roost +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=191556; -- Cell +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=191557; -- Cell +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=191558; -- Cell +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=191559; -- Cell +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=191560; -- Cell +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=191562; -- Cell +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=191563; -- Cell +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=191564; -- Cell +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=191565; -- Cell +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=191566; -- Cell +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=191575; -- Defender's Portal +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=191606; -- Cell +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=191612; -- Eye of Acherus (Flavor) +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=191613; -- Eye of Acherus (Flavor Trap) +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=191614; -- Argent Stand Banner +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=191669; -- Tribunal Head - Center +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=191670; -- Tribunal Head - Right +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=191671; -- Tribunal Head - Left +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=191722; -- Cell +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=191723; -- Prison Seal +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=191745; -- Doodad_Utgarde_Mirror_FX01 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=191746; -- Runeforge +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=191747; -- Runeforge +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=191748; -- Runeforge +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192070; -- Lamp Post +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192092; -- Lamp +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192094; -- Lamp +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192134; -- Norgannon's Binding +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192166; -- 192166 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192173; -- Doodad_VR_Portcullis01 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192174; -- Doodad_VR_Portculliswithchain01 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192175; -- Harpoon Launcher +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192176; -- Harpoon Launcher +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192177; -- Harpoon Launcher +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192236; -- Taldaram Door +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192244; -- Argent Vanguard Support +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192245; -- Argent Vanguard Support +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192246; -- Argent Vanguard Tower +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192247; -- Argent Vanguard Tower +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192248; -- Argent Vanguard Tower +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192249; -- Argent Vanguard Tower +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192250; -- Argent Vanguard Support +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192251; -- Argent Vanguard Support +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192387; -- Doodad_org_arena_firedoor02 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192388; -- Doodad_org_arena_firedoor01 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192391; -- Doodad_org_arena_yellow_fence01 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192392; -- Doodad_org_arena_red_fence01 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192395; -- Doodad_Azjol_Door_Small_04 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192396; -- Doodad_Azjol_Door_Boss_01 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192397; -- Doodad_Azjol_Door_Boss_02 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192398; -- Doodad_Azjol_Door_Boss_03 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192549; -- Chamber of Ancient Relics +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192564; -- Doodad_GunDrak_Key_Snake05 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192565; -- Doodad_GunDrak_Key_Mammoth01 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192566; -- Doodad_GunDrak_Key_Rhino01 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192567; -- Doodad_GunDrak_Key_Troll01 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192568; -- Gal'darah Door +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192569; -- Eck Underwater Grate +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192579; -- 192579 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192626; -- Wintergrasp NE Factory Banner +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192627; -- Wintergrasp NW Factory Banner +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192632; -- Eck Door +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192633; -- Doodad_GunDrak_Collision_01 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192654; -- Doodad_UL_Throne_02 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192734; -- Doodad_ZulDrak_Alter02 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192735; -- Alter +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192736; -- Alter +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192741; -- Fence +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192806; -- 192806 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192807; -- 192807 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192808; -- 192808 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192809; -- 192809 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192810; -- 192810 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192811; -- 192811 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192812; -- 192812 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192813; -- 192813 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192814; -- 192814 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192815; -- 192815 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192816; -- 192816 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192817; -- 192817 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192819; -- Defender's Portal +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192934; -- 192934 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192935; -- 192935 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192936; -- 192936 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192938; -- 192938 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192953; -- 192953 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192954; -- 192954 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192955; -- 192955 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192956; -- 192956 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192957; -- 192957 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192958; -- 192958 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192959; -- 192959 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192960; -- 192960 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192961; -- 192961 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192962; -- 192962 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192963; -- 192963 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192964; -- 192964 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192965; -- 192965 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192966; -- 192966 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192967; -- 192967 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192968; -- 192968 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192969; -- 192969 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192970; -- 192970 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192971; -- 192971 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192972; -- 192972 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192973; -- 192973 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192974; -- 192974 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192975; -- 192975 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192976; -- 192976 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192977; -- 192977 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192978; -- 192978 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192979; -- 192979 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192980; -- 192980 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192981; -- 192981 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192982; -- 192982 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192983; -- 192983 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192985; -- 192985 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192986; -- 192986 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192987; -- 192987 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192988; -- 192988 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192989; -- 192989 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192990; -- 192990 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192991; -- 192991 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192992; -- 192992 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192993; -- 192993 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192994; -- 192994 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192995; -- 192995 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192996; -- 192996 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192997; -- 192997 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=192999; -- 192999 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=193000; -- 193000 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=193001; -- 193001 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=193002; -- 193002 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=193027; -- War Horn Base +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=193057; -- Ahn'kahet Brazier +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=193208; -- Doodad_DT_bigDoor01 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=193209; -- Doodad_DT_bigDoor02 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=193471; -- 193471 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=193562; -- Icecrown - Nexus - Dragon Egg - Blue Dragon Egg 01 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=193563; -- Icecrown - Nexus - Dragon Egg - Blue Dragon Egg 02 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=193564; -- Doodad_Azjol_Platform_FX_01 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=193565; -- Ymirheim Peak Skulls +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=193566; -- VR_StandingLight_Snow_Blue +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=193622; -- Grimkor's Orb +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=193906; -- Sjonnir Console +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=193995; -- Dragon Cage Door +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=194005; -- Shadow Council Torch +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=194237; -- Drak'Mar Brazier +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=194239; -- Drak'Mar Lily Pad +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=194501; -- Sen'jin Banner +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=194578; -- Doodad_org_arena_ivory_pillar_collision03 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=194579; -- Doodad_org_arena_pillar_collision03 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=194580; -- Doodad_org_arena_axe_pillar_collision03 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=194581; -- Doodad_org_arena_lightning_pillar_collision03 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=194589; -- Exodar Banner +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=194590; -- Undercity Banner +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=194591; -- Silvermoon City Banner +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=194592; -- Gnomeregan Banner +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=194593; -- Ironforge Banner +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=194594; -- Stormwind Banner +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=194595; -- Darnassus Banner +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=194596; -- Sen'jin Banner +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=194597; -- Orgrimmar Banner +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=194598; -- Thunder Bluff Banner +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=194599; -- Stormwind Banner +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=194600; -- Ironforge Banner +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=194601; -- Exodar Banner +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=194602; -- Darnassus Banner +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=194603; -- Gnomeregan Banner +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=194604; -- Thunder Bluff Banner +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=194605; -- Silvermoon City Banner +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=194606; -- Sen'jin Banner +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=194607; -- Orgrimmar Banner +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=194608; -- Undercity Banner +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=194827; -- Bonfire +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=194839; -- 194839 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=194840; -- 194840 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=194841; -- 194841 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=194842; -- 194842 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=194843; -- 194843 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=194849; -- 194849 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=194850; -- 194850 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=194851; -- 194851 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=194852; -- 194852 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=194853; -- 194853 +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=194959; -- Wintergrasp SE Factory Banner +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=194960; -- Wintergrasp SE Factory Banner +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=194962; -- Wintergrasp SW Factory Banner +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=194963; -- Wintergrasp SW Factory Banner +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=195131; -- Flagpole +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=195235; -- Seaforium Bomb +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=195305; -- Stormforged Mole Machine +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=195310; -- Black Cage +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=195313; -- Teleporter +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=195314; -- Teleporter +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=195331; -- Huge Seaforium Bomb +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=195332; -- Huge Seaforium Bombs +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=195333; -- Huge Seaforium Bombs +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=195439; -- Flagpole +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=195485; -- Web Door +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=195494; -- Horde Gate +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=195495; -- Horde Gate +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=195496; -- Horde Gate +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=195589; -- West Portcullis +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=195590; -- South Portcullis +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=195591; -- North Portcullis +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=195597; -- Main Door +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=195647; -- Main Gate +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=195648; -- East Portcullis +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=195649; -- South Portcullis +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=195650; -- North Portcullis +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=195698; -- Alliance Gate +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=195699; -- Alliance Gate +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=195700; -- Alliance Gate +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=201370; -- Green Plague Monster Entrance +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=201371; -- Orange Plague Monster Entrance +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=201372; -- Scientist Entrance +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=201584; -- Drink Me! +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=201825; -- Saurfang's Door +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=202391; -- Forge +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=202392; -- Forge +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=202393; -- Forge +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=202394; -- Forge +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=202924; -- Celebration Torch +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=202925; -- Celebration Lights +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=202926; -- Celebration Bonfire +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=202931; -- -Unknown- +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=202932; -- Totem Offering +UPDATE `gameobject_template` SET `flags`=33 WHERE `entry`=177192; -- Door +UPDATE `gameobject_template` SET `flags`=33 WHERE `entry`=180075; -- Contested Banner +UPDATE `gameobject_template` SET `flags`=33 WHERE `entry`=181921; -- Doodad_Hellfire_DW_LargeFloor_Crack02onoff +UPDATE `gameobject_template` SET `flags`=33 WHERE `entry`=181922; -- Doodad_Hellfire_DW_LargeFloor_Crack03 +UPDATE `gameobject_template` SET `flags`=33 WHERE `entry`=181923; -- Doodad_Hellfire_DW_LargeFloor_Crack04onoff +UPDATE `gameobject_template` SET `flags`=33 WHERE `entry`=181924; -- Doodad_Hellfire_DW_SmallFloor_Crack03onoff +UPDATE `gameobject_template` SET `flags`=33 WHERE `entry`=181926; -- Doodad_Hellfire_DW_SmallFloor_Crack05onoff +UPDATE `gameobject_template` SET `flags`=33 WHERE `entry`=181927; -- Doodad_Hellfire_DW_SmallFloor_Crack06onoff +UPDATE `gameobject_template` SET `flags`=33 WHERE `entry`=190784; -- Zol'Maz Gate +UPDATE `gameobject_template` SET `flags`=33 WHERE `entry`=192068; -- Lamp Post +UPDATE `gameobject_template` SET `flags`=33 WHERE `entry`=201385; -- Ice Wall +UPDATE `gameobject_template` SET `flags`=34 WHERE `entry`=124367; -- Temple Door +UPDATE `gameobject_template` SET `flags`=34 WHERE `entry`=13965; -- Factory Door +UPDATE `gameobject_template` SET `flags`=34 WHERE `entry`=16399; -- Foundry Door +UPDATE `gameobject_template` SET `flags`=34 WHERE `entry`=16400; -- Mast Room Door +UPDATE `gameobject_template` SET `flags`=34 WHERE `entry`=170558; -- The Lyceum +UPDATE `gameobject_template` SET `flags`=34 WHERE `entry`=175353; -- King's Square Gate +UPDATE `gameobject_template` SET `flags`=34 WHERE `entry`=175356; -- Gauntlet Gate +UPDATE `gameobject_template` SET `flags`=34 WHERE `entry`=175357; -- Gauntlet Gate +UPDATE `gameobject_template` SET `flags`=34 WHERE `entry`=177217; -- Gordok Inner Door +UPDATE `gameobject_template` SET `flags`=34 WHERE `entry`=177219; -- Gordok Courtyard Door +UPDATE `gameobject_template` SET `flags`=34 WHERE `entry`=177221; -- Door +UPDATE `gameobject_template` SET `flags`=34 WHERE `entry`=179549; -- Door +UPDATE `gameobject_template` SET `flags`=34 WHERE `entry`=179550; -- Door +UPDATE `gameobject_template` SET `flags`=34 WHERE `entry`=181119; -- Deathknight Door +UPDATE `gameobject_template` SET `flags`=34 WHERE `entry`=183049; -- Main Chambers Door +UPDATE `gameobject_template` SET `flags`=34 WHERE `entry`=183294; -- The Shadow Labyrinth +UPDATE `gameobject_template` SET `flags`=34 WHERE `entry`=187764; -- Rohendor, The Second Gate +UPDATE `gameobject_template` SET `flags`=34 WHERE `entry`=187765; -- Archonisus, The Third Gate +UPDATE `gameobject_template` SET `flags`=34 WHERE `entry`=187766; -- Agamath, The First Gate +UPDATE `gameobject_template` SET `flags`=34 WHERE `entry`=201848; -- Halls of Reflection Portcullis +UPDATE `gameobject_template` SET `flags`=36 WHERE `entry`=184415; -- Portal Kaalez +UPDATE `gameobject_template` SET `flags`=36 WHERE `entry`=186419; -- Wrecked Row Boat +UPDATE `gameobject_template` SET `flags`=36 WHERE `entry`=187565; -- Elder Atkanok +UPDATE `gameobject_template` SET `flags`=36 WHERE `entry`=188261; -- Battered Journal +UPDATE `gameobject_template` SET `flags`=36 WHERE `entry`=188419; -- Elder Mana'loa +UPDATE `gameobject_template` SET `flags`=36 WHERE `entry`=188653; -- Bor's Hammer +UPDATE `gameobject_template` SET `flags`=36 WHERE `entry`=188655; -- The Kur Drakkar +UPDATE `gameobject_template` SET `flags`=36 WHERE `entry`=188656; -- The Serpent's Maw +UPDATE `gameobject_template` SET `flags`=36 WHERE `entry`=188657; -- Bor's Anvil +UPDATE `gameobject_template` SET `flags`=36 WHERE `entry`=190522; -- Drakkari Pedestal +UPDATE `gameobject_template` SET `flags`=36 WHERE `entry`=190535; -- Zim'Abwa +UPDATE `gameobject_template` SET `flags`=36 WHERE `entry`=190555; -- Nerubian Crater +UPDATE `gameobject_template` SET `flags`=36 WHERE `entry`=190602; -- Zim'Torga +UPDATE `gameobject_template` SET `flags`=36 WHERE `entry`=190618; -- Blue Cauldron +UPDATE `gameobject_template` SET `flags`=36 WHERE `entry`=190619; -- Purple Cauldron +UPDATE `gameobject_template` SET `flags`=36 WHERE `entry`=190620; -- Red Cauldron +UPDATE `gameobject_template` SET `flags`=36 WHERE `entry`=190630; -- Green Cauldron +UPDATE `gameobject_template` SET `flags`=36 WHERE `entry`=190657; -- Zim'Rhuk +UPDATE `gameobject_template` SET `flags`=36 WHERE `entry`=190917; -- Abandoned Mail +UPDATE `gameobject_template` SET `flags`=36 WHERE `entry`=191609; -- Eye of Acherus Control Mechanism +UPDATE `gameobject_template` SET `flags`=36 WHERE `entry`=191697; -- Warsong Granary +UPDATE `gameobject_template` SET `flags`=36 WHERE `entry`=191698; -- Torp's Farm +UPDATE `gameobject_template` SET `flags`=36 WHERE `entry`=191699; -- Warsong Slaughterhouse +UPDATE `gameobject_template` SET `flags`=36 WHERE `entry`=191728; -- Wanted! +UPDATE `gameobject_template` SET `flags`=36 WHERE `entry`=191766; -- Orders From Drakuru +UPDATE `gameobject_template` SET `flags`=36 WHERE `entry`=191778; -- General's Weapon Rack +UPDATE `gameobject_template` SET `flags`=36 WHERE `entry`=191779; -- General's Weapon Rack +UPDATE `gameobject_template` SET `flags`=36 WHERE `entry`=192079; -- Hodir's Spear +UPDATE `gameobject_template` SET `flags`=36 WHERE `entry`=192080; -- Hodir's Helm +UPDATE `gameobject_template` SET `flags`=36 WHERE `entry`=192524; -- Arngrim the Insatiable +UPDATE `gameobject_template` SET `flags`=36 WHERE `entry`=193003; -- Pile of Crusader Skulls +UPDATE `gameobject_template` SET `flags`=36 WHERE `entry`=193028; -- War Horn of Jotunheim +UPDATE `gameobject_template` SET `flags`=36 WHERE `entry`=193768; -- Chulo the Mad's Totem +UPDATE `gameobject_template` SET `flags`=36 WHERE `entry`=193769; -- Gawanil's Totem +UPDATE `gameobject_template` SET `flags`=36 WHERE `entry`=193770; -- Kutube'sa's Totem +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=131474; -- The Discs of Norgannon +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=138492; -- Shards of Myzrael +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=141812; -- Stone of Binding +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=142071; -- Egg-O-Matic +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=142122; -- Wanted Poster +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=142194; -- Pirate's Treasure! +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=142343; -- Uldum Pedestal +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=142487; -- The Sparklematic 5200 +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=142703; -- Venom Bottle +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=142704; -- Venom Bottle +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=142705; -- Venom Bottle +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=142706; -- Venom Bottle +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=142707; -- Venom Bottle +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=142712; -- Venom Bottle +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=142713; -- Venom Bottle +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=142714; -- Venom Bottle +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=142958; -- Feralas: A History +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=148504; -- A Conspicuous Gravestone +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=148512; -- Essence Font +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=149047; -- Torch of Retribution +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=149502; -- Hoard of the Black Dragonflight +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=150075; -- Wanted Poster +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=152097; -- Belnistrasz's Brazier +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=1561; -- Sealed Crate +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=156561; -- Wanted Poster +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=1585; -- Explosive Charge +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=1586; -- Crate of Candles +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=161504; -- A Small Pack +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=161505; -- A Wrecked Raft +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=164689; -- Monument of Franclorn Forgewright +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=164867; -- WANTED +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=164868; -- KILL ON SIGHT +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=169217; -- Un'Goro Flat Rock +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=17182; -- Buzzbox 827 +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=17184; -- Buzzbox 323 +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=1722; -- Locked ball and chain +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=1728; -- Dusty Rug +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=173284; -- Corrupted Whipper Root +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=174594; -- Corrupted Songflower +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=174595; -- Corrupted Songflower +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=174597; -- Corrupted Songflower +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=174601; -- Corrupted Windblossom +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=174603; -- Corrupted Windblossom +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=174607; -- Corrupted Whipper Root +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=174682; -- Beware of Pterrordax +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=174713; -- Corrupted Songflower +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=175084; -- The Sparklematic 5200 +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=175085; -- The Sparklematic 5200 +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=175226; -- Beached Sea Creature +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=175227; -- Beached Sea Creature +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=175230; -- Beached Sea Creature +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=175320; -- WANTED: Murkdeep! +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=175586; -- Jaron's Wagon +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=175607; -- Dark Iron Dwarf Corpse +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=175608; -- Dark Iron Dwarf Corpse +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=175609; -- Dark Iron Dwarf Corpse +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=175704; -- Singed Letter +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=176090; -- Human Remains +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=176091; -- Deadwood Cauldron +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=176115; -- Wanted Poster - Arnak Grimtotem +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=176190; -- Beached Sea Turtle +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=176191; -- Beached Sea Turtle +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=176196; -- Beached Sea Turtle +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=176197; -- Beached Sea Turtle +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=176198; -- Beached Sea Turtle +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=1761; -- Hillsbrad Proclamation +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=176248; -- Premium Siabi Tobacco +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=176317; -- The Argent Hold +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=176392; -- Scourge Cauldron +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=1763; -- WANTED +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=176631; -- Menethil's Gift +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=1767; -- Helcular's Grave +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=177544; -- Joseph's Chest +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=177667; -- Torn Scroll +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=177675; -- Mound of Dirt +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=178090; -- Marla's Grave +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=178125; -- Lotharian Lotus +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=179004; -- Drek'Thar's Scrolls +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=179005; -- Drek'Thar's Scrolls +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=179437; -- Wanted: ORCS! +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=179438; -- Wanted: DWARVES! +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=179517; -- Treasure of the Shen'dralar +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=179827; -- Wanted/Missing/Lost & Found +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=179880; -- Drakkisath's Brand +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=180025; -- Mysterious Eastvale Haystack +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=180448; -- Wanted Poster: Deathclasp +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=180570; -- Keg +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=180916; -- Duskwither Spire Power Source +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=180918; -- Wanted: Thaelis the Hungerer +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=180919; -- Duskwither Spire Power Source +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=180920; -- Duskwither Spire Power Source +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=181011; -- Magister Duskwither's Journal +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=181250; -- Raw Meat Rack +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=181251; -- Smoked Meat Rack +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=181698; -- Voidstone +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=182062; -- Insect Species of Outland +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=182065; -- A Field Guide to Seeds +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=182796; -- Bleeding Hollow Attack Plans +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=182934; -- Glyph Inscribed Obelisk +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=183340; -- Imarion's Shield +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=183341; -- Makha's Shield +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=183435; -- Marksman Regiment's Cooking Pot +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=183940; -- Moh's Cage +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=183941; -- Jakk's Cage +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=184115; -- Arelion's Knapsack +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=184466; -- Metal Coffer +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=184477; -- Abandoned Wagon +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=184796; -- Rotten Arakkoa Egg +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=186264; -- Missing: Kyle +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=186420; -- Syndicate Documents +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=186565; -- Ceremonial Dragonflayer Harpoon +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=186616; -- Sprung Trap +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=186656; -- Cauldron of Vrykul Blood +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=186657; -- Harris's Plague Samples +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=186659; -- Water Plant +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=186660; -- Water Plant +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=186661; -- Water Plant +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=186770; -- Sunken Boat +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=186935; -- Doodad_VR_WallMap_01 +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=186944; -- Dirt Mound +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=186949; -- School of Tasty Reef Fish +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=187273; -- Suspicious Hoofprint +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=187655; -- Nerub'ar Egg Sac +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=187851; -- Cultist Shrine +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=187875; -- Salrand's Lockbox +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=187981; -- Wolf Droppings +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=187984; -- West Point Station Valve +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=187996; -- Caribou Trap +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=187998; -- Caribou Trap +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=187999; -- Caribou Trap +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=188003; -- Caribou Trap +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=188004; -- Caribou Trap +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=188007; -- Caribou Trap +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=188008; -- Caribou Trap +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=188085; -- Plagued Grain +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=188101; -- Coldarra Geological Monitor +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=188102; -- Coldarra Geological Monitor +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=188103; -- Coldarra Geological Monitor +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=188106; -- West Point Station Valve +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=188163; -- Bell Rope +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=188365; -- Heart of the Ancients +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=188423; -- Burning Brazier +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=188463; -- Anub'ar Mechanism +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=188667; -- Amberseed +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=188699; -- Strange Ore +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=188711; -- Wintergarde Mine Entrance +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=188713; -- Abbey Bell Rope +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=189290; -- School of Northern Salmon +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=189304; -- Forgotten Ruins +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=189311; -- Flesh-bound Tome +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=189312; -- Scourge Communicator +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=189313; -- Wolfsbane Root +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=189972; -- Ruuna's Crystal Ball +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=190191; -- Frostmourne Altar +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=190507; -- Offering Bowl +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=190510; -- Captured Jormungar Spawn +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=190512; -- Vrykul Harpoon Gun +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=190550; -- Ancient Dirt Mound +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=190584; -- Battle-worn Sword +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=190635; -- Pressure Valve +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=190691; -- Saronite Arrow +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=190695; -- Heb'Jin's Drum +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=190768; -- Timeworn Coffer +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=191090; -- Elder Takret +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=191760; -- Inventor's Library Console +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=191761; -- Prototype Console +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=191814; -- Granite Boulder +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=191815; -- Granite Boulder +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=191842; -- Frostgut's Altar +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=191844; -- Enchanted Earth +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=191845; -- Enchanted Earth +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=192060; -- Fjorn's Anvil +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=192072; -- Harpoon Crate +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=192181; -- The Heart of the Storm +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=192495; -- Third History Scroll +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=192542; -- Taunka Artifact +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=192543; -- Taunka Artifact +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=192544; -- Taunka Artifact +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=192545; -- Taunka Artifact +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=192826; -- Drakkari History Tablet +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=192833; -- Bridenbrad's Possessions +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=192914; -- Abomination Lab Orb Stand +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=192915; -- Flesh Giant Lab Orb Stand +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=192916; -- Cauldron Area Orb Stand +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=192932; -- Embalming Fluid +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=192933; -- Blood Orb +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=192941; -- Untarnished Silver Bar +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=192942; -- Shiny Bauble +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=192943; -- Shiny Bauble +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=192944; -- Golden Goblet +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=192945; -- Jade Statue +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=193051; -- Nerubian Scourge Egg +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=193059; -- Vrykul Weapons +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=193060; -- Grasping Arm +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=193195; -- Pulsing Crystal +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=193400; -- Saronite Bomb Stack +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=194537; -- Sir Wendell's Grave +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=194538; -- Connall's Grave +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=194539; -- Lorien's Grave +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=195186; -- Black Knight's Grave +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=195308; -- Mysterious Snow Mound +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=195309; -- Mysterious Snow Mound +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=195352; -- Bucket of Fresh Chum +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=195353; -- Bucket of Fresh Chum +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=2008; -- Dangerous! +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=201299; -- Unmentionables +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=201300; -- Shirts +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=201301; -- Pants +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=201742; -- Runeforge +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=201855; -- Water Bucket +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=201934; -- Pants +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=201935; -- Shirts +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=201936; -- Unmentionables +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=20359; -- Egg of Onyxia +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=2076; -- Bubbling Cauldron +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=2083; -- Bloodsail Correspondence +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=20985; -- Loose Dirt +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=20992; -- Black Shield +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=21042; -- Theramore Guard Badge +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=2289; -- Ruined Lifeboat +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=24776; -- Yuriv's Tombstone +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=2556; -- Cortello's Treasure +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=256; -- WANTED +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=261; -- Damaged Crate +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=2652; -- Ebenezer Rustlocke's Corpse +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=2657; -- Legends of the Earth +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=2688; -- Keystone +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=2702; -- Stone of Inner Binding +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=2703; -- Trollbane's Tomb +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=270; -- Unguarded Thunder Ale Barrel +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=2713; -- Wanted Board +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=2734; -- Waterlogged Chest +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=287; -- Bookie Herod's Records +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=288; -- Bookie Herod's Strongbox +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=31; -- Old Lion Statue +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=34; -- Old Jug +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=35; -- Captain's Footlocker +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=3643; -- Old Footlocker +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=36; -- Broken Barrel +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=3972; -- WANTED +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=4072; -- Main Control Valve +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=4141; -- Control Console +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=47; -- Wanted: Lieutenant Fangore +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=51708; -- Eliza's Grave Dirt +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=55; -- A half-eaten body +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=5619; -- Flawed Power Stone +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=5620; -- Flawed Power Stones +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=5621; -- Flawed Power Stones +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=56; -- Rolf's corpse +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=59; -- Mound of loose dirt +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=60; -- Wanted: Gath'Ilzogg +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=61935; -- Regulator Valve +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=61936; -- Fuel Control Valve +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=61; -- A Weathered Grave +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=68; -- Wanted Poster +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=711; -- Wanted! +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=76; -- An Empty Jar +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=89931; -- Bath'rah's Cauldron +UPDATE `gameobject_template` SET `flags`=48 WHERE `entry`=175611; -- Iron Gate +UPDATE `gameobject_template` SET `flags`=48 WHERE `entry`=175612; -- Iron Gate +UPDATE `gameobject_template` SET `flags`=48 WHERE `entry`=175613; -- Iron Gate +UPDATE `gameobject_template` SET `flags`=48 WHERE `entry`=175614; -- Iron Gate +UPDATE `gameobject_template` SET `flags`=48 WHERE `entry`=180100; -- Alliance Banner Aura +UPDATE `gameobject_template` SET `flags`=48 WHERE `entry`=183104; -- Terokkar Banner +UPDATE `gameobject_template` SET `flags`=48 WHERE `entry`=184125; -- Main Chambers Access Panel +UPDATE `gameobject_template` SET `flags`=48 WHERE `entry`=184126; -- Main Chambers Access Panel +UPDATE `gameobject_template` SET `flags`=48 WHERE `entry`=189299; -- Ritual Crystal +UPDATE `gameobject_template` SET `flags`=48 WHERE `entry`=189300; -- Ritual Crystal +UPDATE `gameobject_template` SET `flags`=48 WHERE `entry`=189302; -- Ritual Crystal +UPDATE `gameobject_template` SET `flags`=48 WHERE `entry`=193615; -- Intro Activation Crystal +UPDATE `gameobject_template` SET `flags`=48 WHERE `entry`=194557; -- Runed Stone Door +UPDATE `gameobject_template` SET `flags`=48 WHERE `entry`=194558; -- Runed Stone Door +UPDATE `gameobject_template` SET `flags`=48 WHERE `entry`=194569; -- Ulduar Teleporter +UPDATE `gameobject_template` SET `flags`=48 WHERE `entry`=195315; -- Teleporter +UPDATE `gameobject_template` SET `flags`=48 WHERE `entry`=195316; -- Teleporter +UPDATE `gameobject_template` SET `flags`=48 WHERE `entry`=202235; -- Scourge Transporter +UPDATE `gameobject_template` SET `flags`=48 WHERE `entry`=202242; -- Scourge Transporter +UPDATE `gameobject_template` SET `flags`=48 WHERE `entry`=202243; -- Scourge Transporter +UPDATE `gameobject_template` SET `flags`=48 WHERE `entry`=202244; -- Scourge Transporter +UPDATE `gameobject_template` SET `flags`=48 WHERE `entry`=202245; -- Scourge Transporter +UPDATE `gameobject_template` SET `flags`=49 WHERE `entry`=201759; -- The Forge of Souls Portcullis +UPDATE `gameobject_template` SET `size`=1 WHERE `entry`=190169; -- Tiger Lily +UPDATE `gameobject_template` SET `size`=1 WHERE `entry`=190173; -- Frozen Herb +UPDATE `gameobject_template` SET `size`=1 WHERE `entry`=190174; -- Frozen Herb +UPDATE `gameobject_template` SET `size`=1 WHERE `entry`=190175; -- Frozen Herb diff --git a/sql/updates/world/2014_09_06_04_world_creature_model_info.sql b/sql/updates/world/2014_09_06_04_world_creature_model_info.sql new file mode 100644 index 00000000000..7774c93560d --- /dev/null +++ b/sql/updates/world/2014_09_06_04_world_creature_model_info.sql @@ -0,0 +1,1725 @@ +DELETE FROM `creature_model_info` WHERE `modelid`=29414; +INSERT INTO `creature_model_info` (`modelid`, `bounding_radius`, `combat_reach`, `gender`) VALUES +(29414, 0.35, 1, 0); -- 29414 + +UPDATE `creature_model_info` SET `bounding_radius`=0.06, `combat_reach`=0.3 WHERE `modelid`=20026; -- 20026 +UPDATE `creature_model_info` SET `bounding_radius`=0.06, `combat_reach`=0.3 WHERE `modelid`=20037; -- 20037 +UPDATE `creature_model_info` SET `bounding_radius`=0.0775, `combat_reach`=1.5 WHERE `modelid`=27194; -- 27194 +UPDATE `creature_model_info` SET `bounding_radius`=0.0875, `combat_reach`=0.25 WHERE `modelid`=9556; -- 9556 +UPDATE `creature_model_info` SET `bounding_radius`=0.1, `combat_reach`=0.125 WHERE `modelid`=5560; -- 5560 +UPDATE `creature_model_info` SET `bounding_radius`=0.1085, `combat_reach`=3.5 WHERE `modelid`=30808; -- 30808 +UPDATE `creature_model_info` SET `bounding_radius`=0.118, `combat_reach`=0.5 WHERE `modelid`=7554; -- 7554 +UPDATE `creature_model_info` SET `bounding_radius`=0.12, `combat_reach`=0.4 WHERE `modelid`=22423; -- 22423 +UPDATE `creature_model_info` SET `bounding_radius`=0.124, `combat_reach`=2.4 WHERE `modelid`=30807; -- 30807 +UPDATE `creature_model_info` SET `bounding_radius`=0.15, `combat_reach`=0.25 WHERE `modelid`=30995; -- 30995 +UPDATE `creature_model_info` SET `bounding_radius`=0.15, `combat_reach`=1.5 WHERE `modelid`=24684; -- 24684 +UPDATE `creature_model_info` SET `bounding_radius`=0.153, `combat_reach`=1 WHERE `modelid`=15181; -- 15181 +UPDATE `creature_model_info` SET `bounding_radius`=0.155, `combat_reach`=0.5 WHERE `modelid`=25390; -- 25390 +UPDATE `creature_model_info` SET `bounding_radius`=0.155, `combat_reach`=0.5 WHERE `modelid`=25391; -- 25391 +UPDATE `creature_model_info` SET `bounding_radius`=0.155, `combat_reach`=0.5 WHERE `modelid`=27754; -- 27754 +UPDATE `creature_model_info` SET `bounding_radius`=0.155, `combat_reach`=1.5 WHERE `modelid`=27193; -- 27193 +UPDATE `creature_model_info` SET `bounding_radius`=0.155, `combat_reach`=3.85 WHERE `modelid`=30805; -- 30805 +UPDATE `creature_model_info` SET `bounding_radius`=0.1735, `combat_reach`=0.75 WHERE `modelid`=850; -- 850 +UPDATE `creature_model_info` SET `bounding_radius`=0.173611, `combat_reach`=0.75 WHERE `modelid`=27579; -- 27579 +UPDATE `creature_model_info` SET `bounding_radius`=0.18, `combat_reach`=1.8 WHERE `modelid`=30804; -- 30804 +UPDATE `creature_model_info` SET `bounding_radius`=0.187, `combat_reach`=0.15 WHERE `modelid`=30996; -- 30996 +UPDATE `creature_model_info` SET `bounding_radius`=0.1932712, `combat_reach`=0.4417627 WHERE `modelid`=6368; -- 6368 +UPDATE `creature_model_info` SET `bounding_radius`=0.1945763, `combat_reach`=0.4447458 WHERE `modelid`=6368; -- 6368 +UPDATE `creature_model_info` SET `bounding_radius`=0.195, `combat_reach`=0.65 WHERE `modelid`=22425; -- 22425 +UPDATE `creature_model_info` SET `bounding_radius`=0.204, `combat_reach`=0.9 WHERE `modelid`=24757; -- 24757 +UPDATE `creature_model_info` SET `bounding_radius`=0.208, `combat_reach`=1.5 WHERE `modelid`=10480; -- 10480 +UPDATE `creature_model_info` SET `bounding_radius`=0.208, `combat_reach`=1.5 WHERE `modelid`=10486; -- 10486 +UPDATE `creature_model_info` SET `bounding_radius`=0.208, `combat_reach`=1.5 WHERE `modelid`=10490; -- 10490 +UPDATE `creature_model_info` SET `bounding_radius`=0.208, `combat_reach`=1.5 WHERE `modelid`=10491; -- 10491 +UPDATE `creature_model_info` SET `bounding_radius`=0.208, `combat_reach`=1.5 WHERE `modelid`=10499; -- 10499 +UPDATE `creature_model_info` SET `bounding_radius`=0.208, `combat_reach`=1.5 WHERE `modelid`=10503; -- 10503 +UPDATE `creature_model_info` SET `bounding_radius`=0.208, `combat_reach`=1.5 WHERE `modelid`=10506; -- 10506 +UPDATE `creature_model_info` SET `bounding_radius`=0.208, `combat_reach`=1.5 WHERE `modelid`=10507; -- 10507 +UPDATE `creature_model_info` SET `bounding_radius`=0.208, `combat_reach`=1.5 WHERE `modelid`=10510; -- 10510 +UPDATE `creature_model_info` SET `bounding_radius`=0.208, `combat_reach`=1.5 WHERE `modelid`=10511; -- 10511 +UPDATE `creature_model_info` SET `bounding_radius`=0.208, `combat_reach`=1.5 WHERE `modelid`=10514; -- 10514 +UPDATE `creature_model_info` SET `bounding_radius`=0.208, `combat_reach`=1.5 WHERE `modelid`=10515; -- 10515 +UPDATE `creature_model_info` SET `bounding_radius`=0.208, `combat_reach`=1.5 WHERE `modelid`=10534; -- 10534 +UPDATE `creature_model_info` SET `bounding_radius`=0.208, `combat_reach`=1.5 WHERE `modelid`=15173; -- 15173 +UPDATE `creature_model_info` SET `bounding_radius`=0.208, `combat_reach`=1.5 WHERE `modelid`=15175; -- 15175 +UPDATE `creature_model_info` SET `bounding_radius`=0.208, `combat_reach`=1.5 WHERE `modelid`=15193; -- 15193 +UPDATE `creature_model_info` SET `bounding_radius`=0.208, `combat_reach`=1.5 WHERE `modelid`=15967; -- 15967 +UPDATE `creature_model_info` SET `bounding_radius`=0.208, `combat_reach`=1.5 WHERE `modelid`=21818; -- 21818 +UPDATE `creature_model_info` SET `bounding_radius`=0.208, `combat_reach`=1.5 WHERE `modelid`=25048; -- 25048 +UPDATE `creature_model_info` SET `bounding_radius`=0.208, `combat_reach`=1.5 WHERE `modelid`=26168; -- 26168 +UPDATE `creature_model_info` SET `bounding_radius`=0.208, `combat_reach`=1.5 WHERE `modelid`=26180; -- 26180 +UPDATE `creature_model_info` SET `bounding_radius`=0.208, `combat_reach`=1.5 WHERE `modelid`=26191; -- 26191 +UPDATE `creature_model_info` SET `bounding_radius`=0.208, `combat_reach`=1.5 WHERE `modelid`=27889; -- 27889 +UPDATE `creature_model_info` SET `bounding_radius`=0.208, `combat_reach`=1.5 WHERE `modelid`=29572; -- 29572 +UPDATE `creature_model_info` SET `bounding_radius`=0.208, `combat_reach`=1.5 WHERE `modelid`=29638; -- 29638 +UPDATE `creature_model_info` SET `bounding_radius`=0.208, `combat_reach`=1.5 WHERE `modelid`=29760; -- 29760 +UPDATE `creature_model_info` SET `bounding_radius`=0.208, `combat_reach`=1.5 WHERE `modelid`=29897; -- 29897 +UPDATE `creature_model_info` SET `bounding_radius`=0.208, `combat_reach`=1.5 WHERE `modelid`=30049; -- 30049 +UPDATE `creature_model_info` SET `bounding_radius`=0.208, `combat_reach`=1.5 WHERE `modelid`=30050; -- 30050 +UPDATE `creature_model_info` SET `bounding_radius`=0.208, `combat_reach`=1.5 WHERE `modelid`=30370; -- 30370 +UPDATE `creature_model_info` SET `bounding_radius`=0.208, `combat_reach`=1.5 WHERE `modelid`=30379; -- 30379 +UPDATE `creature_model_info` SET `bounding_radius`=0.208, `combat_reach`=1.5 WHERE `modelid`=30632; -- 30632 +UPDATE `creature_model_info` SET `bounding_radius`=0.208, `combat_reach`=1.5 WHERE `modelid`=30666; -- 30666 +UPDATE `creature_model_info` SET `bounding_radius`=0.208, `combat_reach`=1.5 WHERE `modelid`=30669; -- 30669 +UPDATE `creature_model_info` SET `bounding_radius`=0.208, `combat_reach`=1.5 WHERE `modelid`=30774; -- 30774 +UPDATE `creature_model_info` SET `bounding_radius`=0.208, `combat_reach`=1.5 WHERE `modelid`=4023; -- 4023 +UPDATE `creature_model_info` SET `bounding_radius`=0.208, `combat_reach`=1.5 WHERE `modelid`=50; -- 50 +UPDATE `creature_model_info` SET `bounding_radius`=0.21, `combat_reach`=0.48 WHERE `modelid`=28819; -- 28819 +UPDATE `creature_model_info` SET `bounding_radius`=0.213678, `combat_reach`=0.9157627 WHERE `modelid`=7894; -- 7894 +UPDATE `creature_model_info` SET `bounding_radius`=0.2138885, `combat_reach`=0.7 WHERE `modelid`=22597; -- 22597 +UPDATE `creature_model_info` SET `bounding_radius`=0.2184, `combat_reach`=1.575 WHERE `modelid`=26173; -- 26173 +UPDATE `creature_model_info` SET `bounding_radius`=0.2205, `combat_reach`=0.945 WHERE `modelid`=1955; -- 1955 +UPDATE `creature_model_info` SET `bounding_radius`=0.2288, `combat_reach`=1.65 WHERE `modelid`=26169; -- 26169 +UPDATE `creature_model_info` SET `bounding_radius`=0.2288, `combat_reach`=1.65 WHERE `modelid`=26181; -- 26181 +UPDATE `creature_model_info` SET `bounding_radius`=0.2288, `combat_reach`=1.65 WHERE `modelid`=26192; -- 26192 +UPDATE `creature_model_info` SET `bounding_radius`=0.2288, `combat_reach`=1.65 WHERE `modelid`=29533; -- 29533 +UPDATE `creature_model_info` SET `bounding_radius`=0.2288, `combat_reach`=1.65 WHERE `modelid`=29534; -- 29534 +UPDATE `creature_model_info` SET `bounding_radius`=0.2325, `combat_reach`=5.625 WHERE `modelid`=27067; -- 27067 +UPDATE `creature_model_info` SET `bounding_radius`=0.2337288, `combat_reach`=0.5342373 WHERE `modelid`=6368; -- 6368 +UPDATE `creature_model_info` SET `bounding_radius`=0.236, `combat_reach`=1 WHERE `modelid`=911; -- 911 +UPDATE `creature_model_info` SET `bounding_radius`=0.236, `combat_reach`=1.5 WHERE `modelid`=12972; -- 12972 +UPDATE `creature_model_info` SET `bounding_radius`=0.236, `combat_reach`=1.5 WHERE `modelid`=13323; -- 13323 +UPDATE `creature_model_info` SET `bounding_radius`=0.236, `combat_reach`=1.5 WHERE `modelid`=13331; -- 13331 +UPDATE `creature_model_info` SET `bounding_radius`=0.236, `combat_reach`=1.5 WHERE `modelid`=13431; -- 13431 +UPDATE `creature_model_info` SET `bounding_radius`=0.236, `combat_reach`=1.5 WHERE `modelid`=13435; -- 13435 +UPDATE `creature_model_info` SET `bounding_radius`=0.236, `combat_reach`=1.5 WHERE `modelid`=13437; -- 13437 +UPDATE `creature_model_info` SET `bounding_radius`=0.236, `combat_reach`=1.5 WHERE `modelid`=19181; -- 19181 +UPDATE `creature_model_info` SET `bounding_radius`=0.236, `combat_reach`=1.5 WHERE `modelid`=21868; -- 21868 +UPDATE `creature_model_info` SET `bounding_radius`=0.236, `combat_reach`=1.5 WHERE `modelid`=23196; -- 23196 +UPDATE `creature_model_info` SET `bounding_radius`=0.236, `combat_reach`=1.5 WHERE `modelid`=24308; -- 24308 +UPDATE `creature_model_info` SET `bounding_radius`=0.236, `combat_reach`=1.5 WHERE `modelid`=25922; -- 25922 +UPDATE `creature_model_info` SET `bounding_radius`=0.236, `combat_reach`=1.5 WHERE `modelid`=29658; -- 29658 +UPDATE `creature_model_info` SET `bounding_radius`=0.236, `combat_reach`=1.5 WHERE `modelid`=29902; -- 29902 +UPDATE `creature_model_info` SET `bounding_radius`=0.236, `combat_reach`=1.5 WHERE `modelid`=30382; -- 30382 +UPDATE `creature_model_info` SET `bounding_radius`=0.236, `combat_reach`=1.5 WHERE `modelid`=30383; -- 30383 +UPDATE `creature_model_info` SET `bounding_radius`=0.236, `combat_reach`=1.5 WHERE `modelid`=30675; -- 30675 +UPDATE `creature_model_info` SET `bounding_radius`=0.236, `combat_reach`=1.5 WHERE `modelid`=31850; -- 31850 +UPDATE `creature_model_info` SET `bounding_radius`=0.2392, `combat_reach`=1.725 WHERE `modelid`=26172; -- 26172 +UPDATE `creature_model_info` SET `bounding_radius`=0.24, `combat_reach`=0.9 WHERE `modelid`=12241; -- 12241 +UPDATE `creature_model_info` SET `bounding_radius`=0.245, `combat_reach`=0.56 WHERE `modelid`=28820; -- 28820 +UPDATE `creature_model_info` SET `bounding_radius`=0.252, `combat_reach`=0.576 WHERE `modelid`=14661; -- 14661 +UPDATE `creature_model_info` SET `bounding_radius`=0.2596, `combat_reach`=1.65 WHERE `modelid`=29527; -- 29527 +UPDATE `creature_model_info` SET `bounding_radius`=0.2596, `combat_reach`=1.65 WHERE `modelid`=29528; -- 29528 +UPDATE `creature_model_info` SET `bounding_radius`=0.2596, `combat_reach`=1.65 WHERE `modelid`=30064; -- 30064 +UPDATE `creature_model_info` SET `bounding_radius`=0.2635, `combat_reach`=1.5 WHERE `modelid`=15506; -- 15506 +UPDATE `creature_model_info` SET `bounding_radius`=0.2681, `combat_reach`=1.05 WHERE `modelid`=30793; -- 30793 +UPDATE `creature_model_info` SET `bounding_radius`=0.2754, `combat_reach`=1.35 WHERE `modelid`=586; -- 586 +UPDATE `creature_model_info` SET `bounding_radius`=0.28, `combat_reach`=1.2 WHERE `modelid`=4566; -- 4566 +UPDATE `creature_model_info` SET `bounding_radius`=0.2832, `combat_reach`=1.8 WHERE `modelid`=9868; -- 9868 +UPDATE `creature_model_info` SET `bounding_radius`=0.2832, `combat_reach`=1.8 WHERE `modelid`=9882; -- 9882 +UPDATE `creature_model_info` SET `bounding_radius`=0.2951387, `combat_reach`=1.275 WHERE `modelid`=27651; -- 27651 +UPDATE `creature_model_info` SET `bounding_radius`=0.3, `combat_reach`=0.6, `gender`=0 WHERE `modelid`=13069; -- 13069 +UPDATE `creature_model_info` SET `bounding_radius`=0.3, `combat_reach`=1 WHERE `modelid`=22452; -- 22452 +UPDATE `creature_model_info` SET `bounding_radius`=0.3, `combat_reach`=1 WHERE `modelid`=25144; -- 25144 +UPDATE `creature_model_info` SET `bounding_radius`=0.3, `combat_reach`=1.5 WHERE `modelid`=29363; -- 29363 +UPDATE `creature_model_info` SET `bounding_radius`=0.305, `combat_reach`=1 WHERE `modelid`=22412; -- 22412 +UPDATE `creature_model_info` SET `bounding_radius`=0.305555, `combat_reach`=1 WHERE `modelid`=16885; -- 16885 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=10458; -- 10458 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=10484; -- 10484 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=10488; -- 10488 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=10489; -- 10489 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=10496; -- 10496 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=10500; -- 10500 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=10501; -- 10501 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=10504; -- 10504 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=10505; -- 10505 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=10509; -- 10509 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=10512; -- 10512 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=10513; -- 10513 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=10516; -- 10516 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=10529; -- 10529 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=10530; -- 10530 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=10544; -- 10544 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=10545; -- 10545 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=10546; -- 10546 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=10547; -- 10547 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=10668; -- 10668 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=10674; -- 10674 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=14421; -- 14421 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=14530; -- 14530 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=1478; -- 1478 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=15172; -- 15172 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=15174; -- 15174 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=15194; -- 15194 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=15229; -- 15229 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=15688; -- 15688 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=15701; -- 15701 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=15702; -- 15702 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=15894; -- 15894 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=18867; -- 18867 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=18874; -- 18874 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=19185; -- 19185 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=19186; -- 19186 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=19340; -- 19340 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=19343; -- 19343 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=1976; -- 1976 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=21702; -- 21702 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=21706; -- 21706 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=21767; -- 21767 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=21862; -- 21862 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=21874; -- 21874 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=21875; -- 21875 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=21876; -- 21876 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=21877; -- 21877 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=21893; -- 21893 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=22340; -- 22340 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=22507; -- 22507 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=22531; -- 22531 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=22723; -- 22723 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=22830; -- 22830 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=23424; -- 23424 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=24420; -- 24420 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=24716; -- 24716 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=24981; -- 24981 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=24983; -- 24983 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=24987; -- 24987 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=24988; -- 24988 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=25037; -- 25037 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=25063; -- 25063 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=25117; -- 25117 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=25142; -- 25142 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=25433; -- 25433 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=26105; -- 26105 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=26178; -- 26178 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=26189; -- 26189 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=26247; -- 26247 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=26653; -- 26653 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=26744; -- 26744 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=27166; -- 27166 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=28538; -- 28538 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=29243; -- 29243 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=29491; -- 29491 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=29570; -- 29570 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=29571; -- 29571 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=29603; -- 29603 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=29636; -- 29636 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=29637; -- 29637 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=29644; -- 29644 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=29648; -- 29648 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=29649; -- 29649 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=29650; -- 29650 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=29758; -- 29758 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=29759; -- 29759 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=29762; -- 29762 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=29896; -- 29896 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=29904; -- 29904 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=30041; -- 30041 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=30048; -- 30048 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=3015; -- 3015 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=30376; -- 30376 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=30387; -- 30387 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=30636; -- 30636 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=30667; -- 30667 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=30670; -- 30670 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=30716; -- 30716 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=30773; -- 30773 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=30884; -- 30884 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=30908; -- 30908 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=30987; -- 30987 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=31012; -- 31012 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=31039; -- 31039 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=31082; -- 31082 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=31117; -- 31117 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=31195; -- 31195 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=31737; -- 31737 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=31751; -- 31751 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=31752; -- 31752 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=31753; -- 31753 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=31754; -- 31754 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=31821; -- 31821 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=31822; -- 31822 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=31823; -- 31823 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=31824; -- 31824 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=31839; -- 31839 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=31840; -- 31840 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=31842; -- 31842 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=31848; -- 31848 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=31892; -- 31892 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=4370; -- 4370 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=4540; -- 4540 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=4771; -- 4771 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=4772; -- 4772 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=4773; -- 4773 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=4774; -- 4774 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=6670; -- 6670 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=6671; -- 6671 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=6676; -- 6676 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=6677; -- 6677 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=6698; -- 6698 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=6699; -- 6699 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=6700; -- 6700 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=6701; -- 6701 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=6702; -- 6702 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=6707; -- 6707 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=6708; -- 6708 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=6709; -- 6709 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=9023; -- 9023 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=9293; -- 9293 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=9711; -- 9711 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=9727; -- 9727 +UPDATE `creature_model_info` SET `bounding_radius`=0.306, `combat_reach`=1.5 WHERE `modelid`=9767; -- 9767 +UPDATE `creature_model_info` SET `bounding_radius`=0.31 WHERE `modelid`=18167; -- 18167 +UPDATE `creature_model_info` SET `bounding_radius`=0.31 WHERE `modelid`=9588; -- 9588 +UPDATE `creature_model_info` SET `bounding_radius`=0.31, `combat_reach`=1 WHERE `modelid`=17700; -- 17700 +UPDATE `creature_model_info` SET `bounding_radius`=0.31, `combat_reach`=1 WHERE `modelid`=17701; -- 17701 +UPDATE `creature_model_info` SET `bounding_radius`=0.31, `combat_reach`=1 WHERE `modelid`=24698; -- 24698 +UPDATE `creature_model_info` SET `bounding_radius`=0.31, `combat_reach`=1 WHERE `modelid`=24978; -- 24978 +UPDATE `creature_model_info` SET `bounding_radius`=0.31, `combat_reach`=1 WHERE `modelid`=25755; -- 25755 +UPDATE `creature_model_info` SET `bounding_radius`=0.31, `combat_reach`=1 WHERE `modelid`=25815; -- 25815 +UPDATE `creature_model_info` SET `bounding_radius`=0.31, `combat_reach`=1 WHERE `modelid`=25816; -- 25816 +UPDATE `creature_model_info` SET `bounding_radius`=0.31, `combat_reach`=1 WHERE `modelid`=25829; -- 25829 +UPDATE `creature_model_info` SET `bounding_radius`=0.31, `combat_reach`=1 WHERE `modelid`=25830; -- 25830 +UPDATE `creature_model_info` SET `bounding_radius`=0.31, `combat_reach`=1 WHERE `modelid`=28072; -- 28072 +UPDATE `creature_model_info` SET `bounding_radius`=0.31, `combat_reach`=2 WHERE `modelid`=26648; -- 26648 +UPDATE `creature_model_info` SET `bounding_radius`=0.31, `combat_reach`=3 WHERE `modelid`=26096; -- 26096 +UPDATE `creature_model_info` SET `bounding_radius`=0.31, `combat_reach`=3 WHERE `modelid`=27403; -- 27403 +UPDATE `creature_model_info` SET `bounding_radius`=0.312, `combat_reach`=2.25 WHERE `modelid`=30242; -- 30242 +UPDATE `creature_model_info` SET `bounding_radius`=0.3213, `combat_reach`=1.575 WHERE `modelid`=26171; -- 26171 +UPDATE `creature_model_info` SET `bounding_radius`=0.3298609, `combat_reach`=1.425 WHERE `modelid`=26732; -- 26732 +UPDATE `creature_model_info` SET `bounding_radius`=0.3298609, `combat_reach`=1.425 WHERE `modelid`=27353; -- 27353 +UPDATE `creature_model_info` SET `bounding_radius`=0.3366, `combat_reach`=1.65 WHERE `modelid`=22948; -- 22948 +UPDATE `creature_model_info` SET `bounding_radius`=0.3366, `combat_reach`=1.65 WHERE `modelid`=23691; -- 23691 +UPDATE `creature_model_info` SET `bounding_radius`=0.3366, `combat_reach`=1.65 WHERE `modelid`=23692; -- 23692 +UPDATE `creature_model_info` SET `bounding_radius`=0.3366, `combat_reach`=1.65 WHERE `modelid`=26190; -- 26190 +UPDATE `creature_model_info` SET `bounding_radius`=0.3366, `combat_reach`=1.65 WHERE `modelid`=29521; -- 29521 +UPDATE `creature_model_info` SET `bounding_radius`=0.3366, `combat_reach`=1.65 WHERE `modelid`=29532; -- 29532 +UPDATE `creature_model_info` SET `bounding_radius`=0.3366, `combat_reach`=1.65 WHERE `modelid`=30509; -- 30509 +UPDATE `creature_model_info` SET `bounding_radius`=0.341, `combat_reach`=1.5 WHERE `modelid`=15593; -- 15593 +UPDATE `creature_model_info` SET `bounding_radius`=0.347, `combat_reach`=1.5 WHERE `modelid`=13311; -- 13311 +UPDATE `creature_model_info` SET `bounding_radius`=0.347, `combat_reach`=1.5 WHERE `modelid`=21827; -- 21827 +UPDATE `creature_model_info` SET `bounding_radius`=0.347, `combat_reach`=1.5 WHERE `modelid`=21828; -- 21828 +UPDATE `creature_model_info` SET `bounding_radius`=0.347, `combat_reach`=1.5 WHERE `modelid`=21829; -- 21829 +UPDATE `creature_model_info` SET `bounding_radius`=0.347, `combat_reach`=1.5 WHERE `modelid`=22345; -- 22345 +UPDATE `creature_model_info` SET `bounding_radius`=0.347, `combat_reach`=1.5 WHERE `modelid`=25064; -- 25064 +UPDATE `creature_model_info` SET `bounding_radius`=0.347, `combat_reach`=1.5 WHERE `modelid`=26407; -- 26407 +UPDATE `creature_model_info` SET `bounding_radius`=0.347, `combat_reach`=1.5 WHERE `modelid`=26455; -- 26455 +UPDATE `creature_model_info` SET `bounding_radius`=0.347, `combat_reach`=1.5 WHERE `modelid`=26460; -- 26460 +UPDATE `creature_model_info` SET `bounding_radius`=0.347, `combat_reach`=1.5 WHERE `modelid`=26814; -- 26814 +UPDATE `creature_model_info` SET `bounding_radius`=0.347, `combat_reach`=1.5 WHERE `modelid`=26815; -- 26815 +UPDATE `creature_model_info` SET `bounding_radius`=0.347, `combat_reach`=1.5 WHERE `modelid`=29574; -- 29574 +UPDATE `creature_model_info` SET `bounding_radius`=0.347, `combat_reach`=1.5 WHERE `modelid`=29575; -- 29575 +UPDATE `creature_model_info` SET `bounding_radius`=0.347, `combat_reach`=1.5 WHERE `modelid`=29609; -- 29609 +UPDATE `creature_model_info` SET `bounding_radius`=0.347, `combat_reach`=1.5 WHERE `modelid`=29610; -- 29610 +UPDATE `creature_model_info` SET `bounding_radius`=0.347, `combat_reach`=1.5 WHERE `modelid`=29634; -- 29634 +UPDATE `creature_model_info` SET `bounding_radius`=0.347, `combat_reach`=1.5 WHERE `modelid`=29635; -- 29635 +UPDATE `creature_model_info` SET `bounding_radius`=0.347, `combat_reach`=1.5 WHERE `modelid`=29895; -- 29895 +UPDATE `creature_model_info` SET `bounding_radius`=0.347, `combat_reach`=1.5 WHERE `modelid`=30369; -- 30369 +UPDATE `creature_model_info` SET `bounding_radius`=0.347, `combat_reach`=1.5 WHERE `modelid`=30371; -- 30371 +UPDATE `creature_model_info` SET `bounding_radius`=0.347, `combat_reach`=1.5 WHERE `modelid`=30668; -- 30668 +UPDATE `creature_model_info` SET `bounding_radius`=0.347, `combat_reach`=1.5 WHERE `modelid`=30909; -- 30909 +UPDATE `creature_model_info` SET `bounding_radius`=0.347, `combat_reach`=1.5 WHERE `modelid`=31847; -- 31847 +UPDATE `creature_model_info` SET `bounding_radius`=0.347, `combat_reach`=1.5 WHERE `modelid`=31849; -- 31849 +UPDATE `creature_model_info` SET `bounding_radius`=0.347, `combat_reach`=1.5 WHERE `modelid`=4119; -- 4119 +UPDATE `creature_model_info` SET `bounding_radius`=0.347, `combat_reach`=1.5 WHERE `modelid`=53; -- 53 +UPDATE `creature_model_info` SET `bounding_radius`=0.347, `combat_reach`=1.5 WHERE `modelid`=6669; -- 6669 +UPDATE `creature_model_info` SET `bounding_radius`=0.347, `combat_reach`=1.5 WHERE `modelid`=7765; -- 7765 +UPDATE `creature_model_info` SET `bounding_radius`=0.347, `combat_reach`=1.5 WHERE `modelid`=8663; -- 8663 +UPDATE `creature_model_info` SET `bounding_radius`=0.347222 WHERE `modelid`=10434; -- 10434 +UPDATE `creature_model_info` SET `bounding_radius`=0.347222 WHERE `modelid`=10438; -- 10438 +UPDATE `creature_model_info` SET `bounding_radius`=0.347222 WHERE `modelid`=10441; -- 10441 +UPDATE `creature_model_info` SET `bounding_radius`=0.347222 WHERE `modelid`=10444; -- 10444 +UPDATE `creature_model_info` SET `bounding_radius`=0.347222, `combat_reach`=1.5 WHERE `modelid`=22251; -- 22251 +UPDATE `creature_model_info` SET `bounding_radius`=0.347222, `combat_reach`=1.5 WHERE `modelid`=22322; -- 22322 +UPDATE `creature_model_info` SET `bounding_radius`=0.347222, `combat_reach`=1.5 WHERE `modelid`=22323; -- 22323 +UPDATE `creature_model_info` SET `bounding_radius`=0.347222, `combat_reach`=1.5 WHERE `modelid`=22324; -- 22324 +UPDATE `creature_model_info` SET `bounding_radius`=0.347222, `combat_reach`=1.5 WHERE `modelid`=22325; -- 22325 +UPDATE `creature_model_info` SET `bounding_radius`=0.347222, `combat_reach`=1.5 WHERE `modelid`=26729; -- 26729 +UPDATE `creature_model_info` SET `bounding_radius`=0.347222, `combat_reach`=1.5 WHERE `modelid`=26737; -- 26737 +UPDATE `creature_model_info` SET `bounding_radius`=0.347222, `combat_reach`=1.5 WHERE `modelid`=27330; -- 27330 +UPDATE `creature_model_info` SET `bounding_radius`=0.347222, `combat_reach`=1.5 WHERE `modelid`=27409; -- 27409 +UPDATE `creature_model_info` SET `bounding_radius`=0.347222, `combat_reach`=1.5 WHERE `modelid`=27423; -- 27423 +UPDATE `creature_model_info` SET `bounding_radius`=0.347222, `combat_reach`=1.5 WHERE `modelid`=28258; -- 28258 +UPDATE `creature_model_info` SET `bounding_radius`=0.347222, `combat_reach`=1.5 WHERE `modelid`=28268; -- 28268 +UPDATE `creature_model_info` SET `bounding_radius`=0.347222, `combat_reach`=1.5 WHERE `modelid`=28272; -- 28272 +UPDATE `creature_model_info` SET `bounding_radius`=0.347222, `combat_reach`=1.5 WHERE `modelid`=28273; -- 28273 +UPDATE `creature_model_info` SET `bounding_radius`=0.347222, `combat_reach`=1.5 WHERE `modelid`=28439; -- 28439 +UPDATE `creature_model_info` SET `bounding_radius`=0.347222, `combat_reach`=1.5 WHERE `modelid`=30617; -- 30617 +UPDATE `creature_model_info` SET `bounding_radius`=0.35 WHERE `modelid`=6468; -- 6468 +UPDATE `creature_model_info` SET `bounding_radius`=0.3519, `combat_reach`=1.725 WHERE `modelid`=11206; -- 11206 +UPDATE `creature_model_info` SET `bounding_radius`=0.3519, `combat_reach`=1.725 WHERE `modelid`=11212; -- 11212 +UPDATE `creature_model_info` SET `bounding_radius`=0.3519, `combat_reach`=1.725 WHERE `modelid`=11214; -- 11214 +UPDATE `creature_model_info` SET `bounding_radius`=0.3519, `combat_reach`=1.725 WHERE `modelid`=11216; -- 11216 +UPDATE `creature_model_info` SET `bounding_radius`=0.3519, `combat_reach`=1.725 WHERE `modelid`=14393; -- 14393 +UPDATE `creature_model_info` SET `bounding_radius`=0.3519, `combat_reach`=1.725 WHERE `modelid`=14410; -- 14410 +UPDATE `creature_model_info` SET `bounding_radius`=0.3519, `combat_reach`=1.725 WHERE `modelid`=14411; -- 14411 +UPDATE `creature_model_info` SET `bounding_radius`=0.3519, `combat_reach`=1.725 WHERE `modelid`=14529; -- 14529 +UPDATE `creature_model_info` SET `bounding_radius`=0.3519, `combat_reach`=1.725 WHERE `modelid`=18104; -- 18104 +UPDATE `creature_model_info` SET `bounding_radius`=0.3519, `combat_reach`=1.725 WHERE `modelid`=21853; -- 21853 +UPDATE `creature_model_info` SET `bounding_radius`=0.3519, `combat_reach`=1.725 WHERE `modelid`=21972; -- 21972 +UPDATE `creature_model_info` SET `bounding_radius`=0.3519, `combat_reach`=1.725 WHERE `modelid`=22404; -- 22404 +UPDATE `creature_model_info` SET `bounding_radius`=0.3519, `combat_reach`=1.725 WHERE `modelid`=24053; -- 24053 +UPDATE `creature_model_info` SET `bounding_radius`=0.3519, `combat_reach`=1.725 WHERE `modelid`=24419; -- 24419 +UPDATE `creature_model_info` SET `bounding_radius`=0.3519, `combat_reach`=1.725 WHERE `modelid`=25271; -- 25271 +UPDATE `creature_model_info` SET `bounding_radius`=0.3519, `combat_reach`=1.725 WHERE `modelid`=26170; -- 26170 +UPDATE `creature_model_info` SET `bounding_radius`=0.3519, `combat_reach`=1.725 WHERE `modelid`=26825; -- 26825 +UPDATE `creature_model_info` SET `bounding_radius`=0.3519, `combat_reach`=1.725 WHERE `modelid`=27189; -- 27189 +UPDATE `creature_model_info` SET `bounding_radius`=0.3519, `combat_reach`=1.725 WHERE `modelid`=27262; -- 27262 +UPDATE `creature_model_info` SET `bounding_radius`=0.3519, `combat_reach`=1.725 WHERE `modelid`=29643; -- 29643 +UPDATE `creature_model_info` SET `bounding_radius`=0.3519, `combat_reach`=1.725 WHERE `modelid`=29903; -- 29903 +UPDATE `creature_model_info` SET `bounding_radius`=0.3519, `combat_reach`=1.725 WHERE `modelid`=30377; -- 30377 +UPDATE `creature_model_info` SET `bounding_radius`=0.3519, `combat_reach`=1.725 WHERE `modelid`=30378; -- 30378 +UPDATE `creature_model_info` SET `bounding_radius`=0.3519, `combat_reach`=1.725 WHERE `modelid`=3052; -- 3052 +UPDATE `creature_model_info` SET `bounding_radius`=0.3519, `combat_reach`=1.725 WHERE `modelid`=30633; -- 30633 +UPDATE `creature_model_info` SET `bounding_radius`=0.3519, `combat_reach`=1.725 WHERE `modelid`=30664; -- 30664 +UPDATE `creature_model_info` SET `bounding_radius`=0.3519, `combat_reach`=1.725 WHERE `modelid`=30665; -- 30665 +UPDATE `creature_model_info` SET `bounding_radius`=0.3519, `combat_reach`=1.725 WHERE `modelid`=30775; -- 30775 +UPDATE `creature_model_info` SET `bounding_radius`=0.3519, `combat_reach`=1.725 WHERE `modelid`=30882; -- 30882 +UPDATE `creature_model_info` SET `bounding_radius`=0.3519, `combat_reach`=1.725 WHERE `modelid`=31663; -- 31663 +UPDATE `creature_model_info` SET `bounding_radius`=0.3519, `combat_reach`=1.725 WHERE `modelid`=31676; -- 31676 +UPDATE `creature_model_info` SET `bounding_radius`=0.3519, `combat_reach`=1.725 WHERE `modelid`=31677; -- 31677 +UPDATE `creature_model_info` SET `bounding_radius`=0.3519, `combat_reach`=1.725 WHERE `modelid`=31678; -- 31678 +UPDATE `creature_model_info` SET `bounding_radius`=0.3519, `combat_reach`=1.725 WHERE `modelid`=31679; -- 31679 +UPDATE `creature_model_info` SET `bounding_radius`=0.3519, `combat_reach`=1.725 WHERE `modelid`=31680; -- 31680 +UPDATE `creature_model_info` SET `bounding_radius`=0.3519, `combat_reach`=1.725 WHERE `modelid`=31681; -- 31681 +UPDATE `creature_model_info` SET `bounding_radius`=0.3519, `combat_reach`=1.725 WHERE `modelid`=31735; -- 31735 +UPDATE `creature_model_info` SET `bounding_radius`=0.3519, `combat_reach`=1.725 WHERE `modelid`=7807; -- 7807 +UPDATE `creature_model_info` SET `bounding_radius`=0.354, `combat_reach`=2.25 WHERE `modelid`=30479; -- 30479 +UPDATE `creature_model_info` SET `bounding_radius`=0.3565, `combat_reach`=1.5 WHERE `modelid`=16245; -- 16245 +UPDATE `creature_model_info` SET `bounding_radius`=0.364, `combat_reach`=2.625 WHERE `modelid`=29490; -- 29490 +UPDATE `creature_model_info` SET `bounding_radius`=0.3645831, `combat_reach`=1.575 WHERE `modelid`=27839; -- 27839 +UPDATE `creature_model_info` SET `bounding_radius`=0.3645831, `combat_reach`=1.575 WHERE `modelid`=28248; -- 28248 +UPDATE `creature_model_info` SET `bounding_radius`=0.3672, `combat_reach`=1.8 WHERE `modelid`=11270; -- 11270 +UPDATE `creature_model_info` SET `bounding_radius`=0.3672, `combat_reach`=1.8 WHERE `modelid`=15602; -- 15602 +UPDATE `creature_model_info` SET `bounding_radius`=0.3672, `combat_reach`=1.8 WHERE `modelid`=15623; -- 15623 +UPDATE `creature_model_info` SET `bounding_radius`=0.3672, `combat_reach`=1.8 WHERE `modelid`=15629; -- 15629 +UPDATE `creature_model_info` SET `bounding_radius`=0.3672, `combat_reach`=1.8 WHERE `modelid`=15640; -- 15640 +UPDATE `creature_model_info` SET `bounding_radius`=0.3672, `combat_reach`=1.8 WHERE `modelid`=23459; -- 23459 +UPDATE `creature_model_info` SET `bounding_radius`=0.3672, `combat_reach`=1.8 WHERE `modelid`=26367; -- 26367 +UPDATE `creature_model_info` SET `bounding_radius`=0.3672, `combat_reach`=1.8 WHERE `modelid`=26830; -- 26830 +UPDATE `creature_model_info` SET `bounding_radius`=0.3672, `combat_reach`=1.8 WHERE `modelid`=30672; -- 30672 +UPDATE `creature_model_info` SET `bounding_radius`=0.3672, `combat_reach`=1.8 WHERE `modelid`=30696; -- 30696 +UPDATE `creature_model_info` SET `bounding_radius`=0.3672, `combat_reach`=1.8 WHERE `modelid`=31778; -- 31778 +UPDATE `creature_model_info` SET `bounding_radius`=0.3672, `combat_reach`=1.8 WHERE `modelid`=6439; -- 6439 +UPDATE `creature_model_info` SET `bounding_radius`=0.3672, `combat_reach`=1.8 WHERE `modelid`=6687; -- 6687 +UPDATE `creature_model_info` SET `bounding_radius`=0.372, `combat_reach`=1.5 WHERE `modelid`=11278; -- 11278 +UPDATE `creature_model_info` SET `bounding_radius`=0.372, `combat_reach`=1.5 WHERE `modelid`=13322; -- 13322 +UPDATE `creature_model_info` SET `bounding_radius`=0.372, `combat_reach`=1.5 WHERE `modelid`=13330; -- 13330 +UPDATE `creature_model_info` SET `bounding_radius`=0.372, `combat_reach`=1.5 WHERE `modelid`=13335; -- 13335 +UPDATE `creature_model_info` SET `bounding_radius`=0.372, `combat_reach`=1.5 WHERE `modelid`=13430; -- 13430 +UPDATE `creature_model_info` SET `bounding_radius`=0.372, `combat_reach`=1.5 WHERE `modelid`=13434; -- 13434 +UPDATE `creature_model_info` SET `bounding_radius`=0.372, `combat_reach`=1.5 WHERE `modelid`=13436; -- 13436 +UPDATE `creature_model_info` SET `bounding_radius`=0.372, `combat_reach`=1.5 WHERE `modelid`=15139; -- 15139 +UPDATE `creature_model_info` SET `bounding_radius`=0.372, `combat_reach`=1.5 WHERE `modelid`=15228; -- 15228 +UPDATE `creature_model_info` SET `bounding_radius`=0.372, `combat_reach`=1.5 WHERE `modelid`=19182; -- 19182 +UPDATE `creature_model_info` SET `bounding_radius`=0.372, `combat_reach`=1.5 WHERE `modelid`=21869; -- 21869 +UPDATE `creature_model_info` SET `bounding_radius`=0.372, `combat_reach`=1.5 WHERE `modelid`=23275; -- 23275 +UPDATE `creature_model_info` SET `bounding_radius`=0.372, `combat_reach`=1.5 WHERE `modelid`=23283; -- 23283 +UPDATE `creature_model_info` SET `bounding_radius`=0.372, `combat_reach`=1.5 WHERE `modelid`=23284; -- 23284 +UPDATE `creature_model_info` SET `bounding_radius`=0.372, `combat_reach`=1.5 WHERE `modelid`=23933; -- 23933 +UPDATE `creature_model_info` SET `bounding_radius`=0.372, `combat_reach`=1.5 WHERE `modelid`=25275; -- 25275 +UPDATE `creature_model_info` SET `bounding_radius`=0.372, `combat_reach`=1.5 WHERE `modelid`=26410; -- 26410 +UPDATE `creature_model_info` SET `bounding_radius`=0.372, `combat_reach`=1.5 WHERE `modelid`=26508; -- 26508 +UPDATE `creature_model_info` SET `bounding_radius`=0.372, `combat_reach`=1.5 WHERE `modelid`=26652; -- 26652 +UPDATE `creature_model_info` SET `bounding_radius`=0.372, `combat_reach`=1.5 WHERE `modelid`=26745; -- 26745 +UPDATE `creature_model_info` SET `bounding_radius`=0.372, `combat_reach`=1.5 WHERE `modelid`=27044; -- 27044 +UPDATE `creature_model_info` SET `bounding_radius`=0.372, `combat_reach`=1.5 WHERE `modelid`=29493; -- 29493 +UPDATE `creature_model_info` SET `bounding_radius`=0.372, `combat_reach`=1.5 WHERE `modelid`=29578; -- 29578 +UPDATE `creature_model_info` SET `bounding_radius`=0.372, `combat_reach`=1.5 WHERE `modelid`=29579; -- 29579 +UPDATE `creature_model_info` SET `bounding_radius`=0.372, `combat_reach`=1.5 WHERE `modelid`=29659; -- 29659 +UPDATE `creature_model_info` SET `bounding_radius`=0.372, `combat_reach`=1.5 WHERE `modelid`=29660; -- 29660 +UPDATE `creature_model_info` SET `bounding_radius`=0.372, `combat_reach`=1.5 WHERE `modelid`=29900; -- 29900 +UPDATE `creature_model_info` SET `bounding_radius`=0.372, `combat_reach`=1.5 WHERE `modelid`=29901; -- 29901 +UPDATE `creature_model_info` SET `bounding_radius`=0.372, `combat_reach`=1.5 WHERE `modelid`=30380; -- 30380 +UPDATE `creature_model_info` SET `bounding_radius`=0.372, `combat_reach`=1.5 WHERE `modelid`=30673; -- 30673 +UPDATE `creature_model_info` SET `bounding_radius`=0.372, `combat_reach`=1.5 WHERE `modelid`=30674; -- 30674 +UPDATE `creature_model_info` SET `bounding_radius`=0.372, `combat_reach`=1.5 WHERE `modelid`=30693; -- 30693 +UPDATE `creature_model_info` SET `bounding_radius`=0.372, `combat_reach`=1.5 WHERE `modelid`=30865; -- 30865 +UPDATE `creature_model_info` SET `bounding_radius`=0.38, `combat_reach`=1 WHERE `modelid`=27399; -- 27399 +UPDATE `creature_model_info` SET `bounding_radius`=0.3817, `combat_reach`=1.65 WHERE `modelid`=27007; -- 27007 +UPDATE `creature_model_info` SET `bounding_radius`=0.3817, `combat_reach`=1.65 WHERE `modelid`=28130; -- 28130 +UPDATE `creature_model_info` SET `bounding_radius`=0.3817, `combat_reach`=1.65 WHERE `modelid`=28131; -- 28131 +UPDATE `creature_model_info` SET `bounding_radius`=0.3819442, `combat_reach`=1.65 WHERE `modelid`=26731; -- 26731 +UPDATE `creature_model_info` SET `bounding_radius`=0.3825, `combat_reach`=1.875 WHERE `modelid`=22983; -- 22983 +UPDATE `creature_model_info` SET `bounding_radius`=0.3825, `combat_reach`=1.875 WHERE `modelid`=23218; -- 23218 +UPDATE `creature_model_info` SET `bounding_radius`=0.3825, `combat_reach`=1.875 WHERE `modelid`=29888; -- 29888 +UPDATE `creature_model_info` SET `bounding_radius`=0.3825, `combat_reach`=1.875 WHERE `modelid`=29898; -- 29898 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=10475; -- 10475 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=13432; -- 13432 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=13433; -- 13433 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=15176; -- 15176 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=15177; -- 15177 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=15179; -- 15179 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=15189; -- 15189 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=15197; -- 15197 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=15199; -- 15199 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=15206; -- 15206 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=15207; -- 15207 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=15208; -- 15208 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=15209; -- 15209 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=15232; -- 15232 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=18145; -- 18145 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=18233; -- 18233 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=18243; -- 18243 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=18253; -- 18253 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=18258; -- 18258 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=18259; -- 18259 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=18260; -- 18260 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=18840; -- 18840 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=19169; -- 19169 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=19170; -- 19170 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=20305; -- 20305 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=20310; -- 20310 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=20311; -- 20311 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=21839; -- 21839 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=21840; -- 21840 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=22401; -- 22401 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=22402; -- 22402 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=22540; -- 22540 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=22781; -- 22781 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=22834; -- 22834 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=22836; -- 22836 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=22839; -- 22839 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=22904; -- 22904 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=22923; -- 22923 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=22973; -- 22973 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=22994; -- 22994 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=23423; -- 23423 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=23559; -- 23559 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=23714; -- 23714 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=23939; -- 23939 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=25065; -- 25065 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=25295; -- 25295 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=26654; -- 26654 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=26743; -- 26743 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=27228; -- 27228 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=27259; -- 27259 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=27293; -- 27293 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=28770; -- 28770 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=28789; -- 28789 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=28790; -- 28790 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=28791; -- 28791 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=28793; -- 28793 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=28794; -- 28794 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=28795; -- 28795 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=28796; -- 28796 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=28797; -- 28797 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=28798; -- 28798 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=29580; -- 29580 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=29581; -- 29581 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=29611; -- 29611 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=29651; -- 29651 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=29652; -- 29652 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=29653; -- 29653 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=29654; -- 29654 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=29655; -- 29655 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=29679; -- 29679 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=29682; -- 29682 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=29687; -- 29687 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=29688; -- 29688 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=29689; -- 29689 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=29690; -- 29690 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=29692; -- 29692 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=29693; -- 29693 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=29795; -- 29795 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=29812; -- 29812 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=30163; -- 30163 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=30388; -- 30388 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=30389; -- 30389 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=30391; -- 30391 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=30677; -- 30677 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=30678; -- 30678 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=30679; -- 30679 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=30680; -- 30680 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=30691; -- 30691 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=30692; -- 30692 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=30766; -- 30766 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=30767; -- 30767 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=30769; -- 30769 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=30838; -- 30838 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=30840; -- 30840 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=30848; -- 30848 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=30878; -- 30878 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=30880; -- 30880 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=30907; -- 30907 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=30910; -- 30910 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=31013; -- 31013 +UPDATE `creature_model_info` SET `bounding_radius`=0.383, `combat_reach`=1.5 WHERE `modelid`=57; -- 57 +UPDATE `creature_model_info` SET `bounding_radius`=0.38709, `combat_reach`=1.8975 WHERE `modelid`=27150; -- 27150 +UPDATE `creature_model_info` SET `bounding_radius`=0.38709, `combat_reach`=1.8975 WHERE `modelid`=27704; -- 27704 +UPDATE `creature_model_info` SET `bounding_radius`=0.38709, `combat_reach`=1.8975 WHERE `modelid`=30983; -- 30983 +UPDATE `creature_model_info` SET `bounding_radius`=0.38709, `combat_reach`=1.8975 WHERE `modelid`=31682; -- 31682 +UPDATE `creature_model_info` SET `bounding_radius`=0.38709, `combat_reach`=1.8975 WHERE `modelid`=31683; -- 31683 +UPDATE `creature_model_info` SET `bounding_radius`=0.3875 WHERE `modelid`=12163; -- 12163 +UPDATE `creature_model_info` SET `bounding_radius`=0.3875, `combat_reach`=1.25 WHERE `modelid`=26950; -- 26950 +UPDATE `creature_model_info` SET `bounding_radius`=0.3875, `combat_reach`=1.25 WHERE `modelid`=26951; -- 26951 +UPDATE `creature_model_info` SET `bounding_radius`=0.3875, `combat_reach`=1.25 WHERE `modelid`=26952; -- 26952 +UPDATE `creature_model_info` SET `bounding_radius`=0.3875, `combat_reach`=1.25 WHERE `modelid`=26953; -- 26953 +UPDATE `creature_model_info` SET `bounding_radius`=0.3875, `combat_reach`=1.25 WHERE `modelid`=26954; -- 26954 +UPDATE `creature_model_info` SET `bounding_radius`=0.3875, `combat_reach`=1.25 WHERE `modelid`=26955; -- 26955 +UPDATE `creature_model_info` SET `bounding_radius`=0.3875, `combat_reach`=1.25 WHERE `modelid`=26966; -- 26966 +UPDATE `creature_model_info` SET `bounding_radius`=0.3875, `combat_reach`=1.25 WHERE `modelid`=27003; -- 27003 +UPDATE `creature_model_info` SET `bounding_radius`=0.3875, `combat_reach`=1.25 WHERE `modelid`=27094; -- 27094 +UPDATE `creature_model_info` SET `bounding_radius`=0.3875, `combat_reach`=1.25 WHERE `modelid`=27095; -- 27095 +UPDATE `creature_model_info` SET `bounding_radius`=0.3875, `combat_reach`=1.25 WHERE `modelid`=27970; -- 27970 +UPDATE `creature_model_info` SET `bounding_radius`=0.3875, `combat_reach`=1.25 WHERE `modelid`=30695; -- 30695 +UPDATE `creature_model_info` SET `bounding_radius`=0.389, `combat_reach`=1.5 WHERE `modelid`=11205; -- 11205 +UPDATE `creature_model_info` SET `bounding_radius`=0.389, `combat_reach`=1.5 WHERE `modelid`=11211; -- 11211 +UPDATE `creature_model_info` SET `bounding_radius`=0.389, `combat_reach`=1.5 WHERE `modelid`=11256; -- 11256 +UPDATE `creature_model_info` SET `bounding_radius`=0.389, `combat_reach`=1.5 WHERE `modelid`=14422; -- 14422 +UPDATE `creature_model_info` SET `bounding_radius`=0.389, `combat_reach`=1.5 WHERE `modelid`=15689; -- 15689 +UPDATE `creature_model_info` SET `bounding_radius`=0.389, `combat_reach`=1.5 WHERE `modelid`=15691; -- 15691 +UPDATE `creature_model_info` SET `bounding_radius`=0.389, `combat_reach`=1.5 WHERE `modelid`=18868; -- 18868 +UPDATE `creature_model_info` SET `bounding_radius`=0.389, `combat_reach`=1.5 WHERE `modelid`=21863; -- 21863 +UPDATE `creature_model_info` SET `bounding_radius`=0.389, `combat_reach`=1.5 WHERE `modelid`=22824; -- 22824 +UPDATE `creature_model_info` SET `bounding_radius`=0.389, `combat_reach`=1.5 WHERE `modelid`=30374; -- 30374 +UPDATE `creature_model_info` SET `bounding_radius`=0.389, `combat_reach`=1.5 WHERE `modelid`=30637; -- 30637 +UPDATE `creature_model_info` SET `bounding_radius`=0.389, `combat_reach`=1.5 WHERE `modelid`=30671; -- 30671 +UPDATE `creature_model_info` SET `bounding_radius`=0.389, `combat_reach`=1.5 WHERE `modelid`=30883; -- 30883 +UPDATE `creature_model_info` SET `bounding_radius`=0.38988, `combat_reach`=1.62 WHERE `modelid`=23187; -- 23187 +UPDATE `creature_model_info` SET `bounding_radius`=0.38988, `combat_reach`=1.62 WHERE `modelid`=23215; -- 23215 +UPDATE `creature_model_info` SET `bounding_radius`=0.39905, `combat_reach`=1.725 WHERE `modelid`=30582; -- 30582 +UPDATE `creature_model_info` SET `bounding_radius`=0.4, `combat_reach`=0.5 WHERE `modelid`=15204; -- 15204 +UPDATE `creature_model_info` SET `bounding_radius`=0.403, `combat_reach`=1.5 WHERE `modelid`=15592; -- 15592 +UPDATE `creature_model_info` SET `bounding_radius`=0.4092, `combat_reach`=1.65 WHERE `modelid`=13300; -- 13300 +UPDATE `creature_model_info` SET `bounding_radius`=0.4092, `combat_reach`=1.65 WHERE `modelid`=22946; -- 22946 +UPDATE `creature_model_info` SET `bounding_radius`=0.4092, `combat_reach`=1.65 WHERE `modelid`=25746; -- 25746 +UPDATE `creature_model_info` SET `bounding_radius`=0.4092, `combat_reach`=1.65 WHERE `modelid`=29496; -- 29496 +UPDATE `creature_model_info` SET `bounding_radius`=0.4092, `combat_reach`=1.65 WHERE `modelid`=29526; -- 29526 +UPDATE `creature_model_info` SET `bounding_radius`=0.4092, `combat_reach`=1.65 WHERE `modelid`=29529; -- 29529 +UPDATE `creature_model_info` SET `bounding_radius`=0.4092, `combat_reach`=1.65 WHERE `modelid`=29530; -- 29530 +UPDATE `creature_model_info` SET `bounding_radius`=0.4092, `combat_reach`=1.65 WHERE `modelid`=30065; -- 30065 +UPDATE `creature_model_info` SET `bounding_radius`=0.4092, `combat_reach`=1.65 WHERE `modelid`=30066; -- 30066 +UPDATE `creature_model_info` SET `bounding_radius`=0.4092, `combat_reach`=1.65 WHERE `modelid`=30511; -- 30511 +UPDATE `creature_model_info` SET `bounding_radius`=0.4092, `combat_reach`=1.65 WHERE `modelid`=30911; -- 30911 +UPDATE `creature_model_info` SET `bounding_radius`=0.4092, `combat_reach`=1.65 WHERE `modelid`=30982; -- 30982 +UPDATE `creature_model_info` SET `bounding_radius`=0.4131, `combat_reach`=2.025 WHERE `modelid`=23287; -- 23287 +UPDATE `creature_model_info` SET `bounding_radius`=0.4131, `combat_reach`=2.025 WHERE `modelid`=29860; -- 29860 +UPDATE `creature_model_info` SET `bounding_radius`=0.416, `combat_reach`=3 WHERE `modelid`=30323; -- 30323 +UPDATE `creature_model_info` SET `bounding_radius`=0.4164, `combat_reach`=1.8 WHERE `modelid`=15612; -- 15612 +UPDATE `creature_model_info` SET `bounding_radius`=0.4164, `combat_reach`=1.8 WHERE `modelid`=15622; -- 15622 +UPDATE `creature_model_info` SET `bounding_radius`=0.4164, `combat_reach`=1.8 WHERE `modelid`=15626; -- 15626 +UPDATE `creature_model_info` SET `bounding_radius`=0.4164, `combat_reach`=1.8 WHERE `modelid`=22394; -- 22394 +UPDATE `creature_model_info` SET `bounding_radius`=0.4164, `combat_reach`=1.8 WHERE `modelid`=22450; -- 22450 +UPDATE `creature_model_info` SET `bounding_radius`=0.4164, `combat_reach`=1.8 WHERE `modelid`=24043; -- 24043 +UPDATE `creature_model_info` SET `bounding_radius`=0.4164, `combat_reach`=1.8 WHERE `modelid`=26497; -- 26497 +UPDATE `creature_model_info` SET `bounding_radius`=0.4166664, `combat_reach`=1.8 WHERE `modelid`=26956; -- 26956 +UPDATE `creature_model_info` SET `bounding_radius`=0.4166664, `combat_reach`=1.8 WHERE `modelid`=26957; -- 26957 +UPDATE `creature_model_info` SET `bounding_radius`=0.4166664, `combat_reach`=1.8 WHERE `modelid`=26958; -- 26958 +UPDATE `creature_model_info` SET `bounding_radius`=0.4166664, `combat_reach`=1.8 WHERE `modelid`=26959; -- 26959 +UPDATE `creature_model_info` SET `bounding_radius`=0.4166664, `combat_reach`=1.8 WHERE `modelid`=26960; -- 26960 +UPDATE `creature_model_info` SET `bounding_radius`=0.4166664, `combat_reach`=1.8 WHERE `modelid`=26961; -- 26961 +UPDATE `creature_model_info` SET `bounding_radius`=0.4166664, `combat_reach`=1.8 WHERE `modelid`=26962; -- 26962 +UPDATE `creature_model_info` SET `bounding_radius`=0.4166664, `combat_reach`=1.8 WHERE `modelid`=26963; -- 26963 +UPDATE `creature_model_info` SET `bounding_radius`=0.4166664, `combat_reach`=1.8 WHERE `modelid`=26964; -- 26964 +UPDATE `creature_model_info` SET `bounding_radius`=0.4166664, `combat_reach`=1.8 WHERE `modelid`=27098; -- 27098 +UPDATE `creature_model_info` SET `bounding_radius`=0.4166664, `combat_reach`=1.8 WHERE `modelid`=27506; -- 27506 +UPDATE `creature_model_info` SET `bounding_radius`=0.4166664, `combat_reach`=1.8 WHERE `modelid`=28281; -- 28281 +UPDATE `creature_model_info` SET `bounding_radius`=0.4166664, `combat_reach`=1.8 WHERE `modelid`=29683; -- 29683 +UPDATE `creature_model_info` SET `bounding_radius`=0.4166664, `combat_reach`=1.8 WHERE `modelid`=29685; -- 29685 +UPDATE `creature_model_info` SET `bounding_radius`=0.4166664, `combat_reach`=1.8 WHERE `modelid`=29686; -- 29686 +UPDATE `creature_model_info` SET `bounding_radius`=0.4213, `combat_reach`=1.65 WHERE `modelid`=19572; -- 19572 +UPDATE `creature_model_info` SET `bounding_radius`=0.4213, `combat_reach`=1.65 WHERE `modelid`=28128; -- 28128 +UPDATE `creature_model_info` SET `bounding_radius`=0.4213, `combat_reach`=1.65 WHERE `modelid`=28129; -- 28129 +UPDATE `creature_model_info` SET `bounding_radius`=0.4213, `combat_reach`=1.65 WHERE `modelid`=29500; -- 29500 +UPDATE `creature_model_info` SET `bounding_radius`=0.4213, `combat_reach`=1.65 WHERE `modelid`=29501; -- 29501 +UPDATE `creature_model_info` SET `bounding_radius`=0.4213, `combat_reach`=1.65 WHERE `modelid`=29506; -- 29506 +UPDATE `creature_model_info` SET `bounding_radius`=0.4213, `combat_reach`=1.65 WHERE `modelid`=29507; -- 29507 +UPDATE `creature_model_info` SET `bounding_radius`=0.4213, `combat_reach`=1.65 WHERE `modelid`=29870; -- 29870 +UPDATE `creature_model_info` SET `bounding_radius`=0.4213, `combat_reach`=1.65 WHERE `modelid`=29871; -- 29871 +UPDATE `creature_model_info` SET `bounding_radius`=0.4213, `combat_reach`=1.65 WHERE `modelid`=29872; -- 29872 +UPDATE `creature_model_info` SET `bounding_radius`=0.4213, `combat_reach`=1.65 WHERE `modelid`=29873; -- 29873 +UPDATE `creature_model_info` SET `bounding_radius`=0.4213, `combat_reach`=1.65 WHERE `modelid`=31833; -- 31833 +UPDATE `creature_model_info` SET `bounding_radius`=0.4213, `combat_reach`=1.65 WHERE `modelid`=31834; -- 31834 +UPDATE `creature_model_info` SET `bounding_radius`=0.42228, `combat_reach`=2.07 WHERE `modelid`=31658; -- 31658 +UPDATE `creature_model_info` SET `bounding_radius`=0.425, `combat_reach`=1.275 WHERE `modelid`=2709; -- 2709 +UPDATE `creature_model_info` SET `bounding_radius`=0.4278, `combat_reach`=1.725 WHERE `modelid`=30069; -- 30069 +UPDATE `creature_model_info` SET `bounding_radius`=0.4284, `combat_reach`=2.1 WHERE `modelid`=27410; -- 27410 +UPDATE `creature_model_info` SET `bounding_radius`=0.4284, `combat_reach`=2.1 WHERE `modelid`=31749; -- 31749 +UPDATE `creature_model_info` SET `bounding_radius`=0.434, `combat_reach`=1.4 WHERE `modelid`=27790; -- 27790 +UPDATE `creature_model_info` SET `bounding_radius`=0.4340275, `combat_reach`=1.875 WHERE `modelid`=22161; -- 22161 +UPDATE `creature_model_info` SET `bounding_radius`=0.4340275, `combat_reach`=1.875 WHERE `modelid`=22261; -- 22261 +UPDATE `creature_model_info` SET `bounding_radius`=0.4340275, `combat_reach`=1.875 WHERE `modelid`=22262; -- 22262 +UPDATE `creature_model_info` SET `bounding_radius`=0.4340275, `combat_reach`=1.875 WHERE `modelid`=22275; -- 22275 +UPDATE `creature_model_info` SET `bounding_radius`=0.4340275, `combat_reach`=1.875 WHERE `modelid`=22276; -- 22276 +UPDATE `creature_model_info` SET `bounding_radius`=0.4340275, `combat_reach`=1.875 WHERE `modelid`=22301; -- 22301 +UPDATE `creature_model_info` SET `bounding_radius`=0.4340275, `combat_reach`=1.875 WHERE `modelid`=22302; -- 22302 +UPDATE `creature_model_info` SET `bounding_radius`=0.4340275, `combat_reach`=1.875 WHERE `modelid`=22303; -- 22303 +UPDATE `creature_model_info` SET `bounding_radius`=0.4340275, `combat_reach`=1.875 WHERE `modelid`=22304; -- 22304 +UPDATE `creature_model_info` SET `bounding_radius`=0.4340275, `combat_reach`=1.875 WHERE `modelid`=22307; -- 22307 +UPDATE `creature_model_info` SET `bounding_radius`=0.4340275, `combat_reach`=1.875 WHERE `modelid`=22308; -- 22308 +UPDATE `creature_model_info` SET `bounding_radius`=0.4340275, `combat_reach`=1.875 WHERE `modelid`=27444; -- 27444 +UPDATE `creature_model_info` SET `bounding_radius`=0.4340275, `combat_reach`=1.875 WHERE `modelid`=27445; -- 27445 +UPDATE `creature_model_info` SET `bounding_radius`=0.4340275, `combat_reach`=1.875 WHERE `modelid`=27446; -- 27446 +UPDATE `creature_model_info` SET `bounding_radius`=0.4340275, `combat_reach`=1.875 WHERE `modelid`=27447; -- 27447 +UPDATE `creature_model_info` SET `bounding_radius`=0.439875, `combat_reach`=2.15625 WHERE `modelid`=29984; -- 29984 +UPDATE `creature_model_info` SET `bounding_radius`=0.44045, `combat_reach`=1.725 WHERE `modelid`=30071; -- 30071 +UPDATE `creature_model_info` SET `bounding_radius`=0.44045, `combat_reach`=1.725 WHERE `modelid`=30072; -- 30072 +UPDATE `creature_model_info` SET `bounding_radius`=0.44045, `combat_reach`=1.725 WHERE `modelid`=30073; -- 30073 +UPDATE `creature_model_info` SET `bounding_radius`=0.4464, `combat_reach`=1.8 WHERE `modelid`=30850; -- 30850 +UPDATE `creature_model_info` SET `bounding_radius`=0.4464, `combat_reach`=1.8 WHERE `modelid`=9603; -- 9603 +UPDATE `creature_model_info` SET `bounding_radius`=0.4464, `combat_reach`=1.8 WHERE `modelid`=9665; -- 9665 +UPDATE `creature_model_info` SET `bounding_radius`=0.44735, `combat_reach`=1.725 WHERE `modelid`=11213; -- 11213 +UPDATE `creature_model_info` SET `bounding_radius`=0.44735, `combat_reach`=1.725 WHERE `modelid`=11215; -- 11215 +UPDATE `creature_model_info` SET `bounding_radius`=0.44735, `combat_reach`=1.725 WHERE `modelid`=14407; -- 14407 +UPDATE `creature_model_info` SET `bounding_radius`=0.44735, `combat_reach`=1.725 WHERE `modelid`=14409; -- 14409 +UPDATE `creature_model_info` SET `bounding_radius`=0.44735, `combat_reach`=1.725 WHERE `modelid`=14412; -- 14412 +UPDATE `creature_model_info` SET `bounding_radius`=0.44735, `combat_reach`=1.725 WHERE `modelid`=14420; -- 14420 +UPDATE `creature_model_info` SET `bounding_radius`=0.44735, `combat_reach`=1.725 WHERE `modelid`=15996; -- 15996 +UPDATE `creature_model_info` SET `bounding_radius`=0.44735, `combat_reach`=1.725 WHERE `modelid`=25270; -- 25270 +UPDATE `creature_model_info` SET `bounding_radius`=0.44925, `combat_reach`=0.9375 WHERE `modelid`=1749; -- 1749 +UPDATE `creature_model_info` SET `bounding_radius`=0.4511, `combat_reach`=1.95 WHERE `modelid`=21824; -- 21824 +UPDATE `creature_model_info` SET `bounding_radius`=0.4513886, `combat_reach`=1.95 WHERE `modelid`=21997; -- 21997 +UPDATE `creature_model_info` SET `bounding_radius`=0.4513886, `combat_reach`=1.95 WHERE `modelid`=22263; -- 22263 +UPDATE `creature_model_info` SET `bounding_radius`=0.4513886, `combat_reach`=1.95 WHERE `modelid`=22264; -- 22264 +UPDATE `creature_model_info` SET `bounding_radius`=0.4513886, `combat_reach`=1.95 WHERE `modelid`=22271; -- 22271 +UPDATE `creature_model_info` SET `bounding_radius`=0.4513886, `combat_reach`=1.95 WHERE `modelid`=22272; -- 22272 +UPDATE `creature_model_info` SET `bounding_radius`=0.4513886, `combat_reach`=1.95 WHERE `modelid`=22273; -- 22273 +UPDATE `creature_model_info` SET `bounding_radius`=0.4513886, `combat_reach`=1.95 WHERE `modelid`=22274; -- 22274 +UPDATE `creature_model_info` SET `bounding_radius`=0.4513886, `combat_reach`=1.95 WHERE `modelid`=22277; -- 22277 +UPDATE `creature_model_info` SET `bounding_radius`=0.4513886, `combat_reach`=1.95 WHERE `modelid`=22278; -- 22278 +UPDATE `creature_model_info` SET `bounding_radius`=0.4513886, `combat_reach`=1.95 WHERE `modelid`=22309; -- 22309 +UPDATE `creature_model_info` SET `bounding_radius`=0.4513886, `combat_reach`=1.95 WHERE `modelid`=22310; -- 22310 +UPDATE `creature_model_info` SET `bounding_radius`=0.4513886, `combat_reach`=1.95 WHERE `modelid`=22313; -- 22313 +UPDATE `creature_model_info` SET `bounding_radius`=0.4513886, `combat_reach`=1.95 WHERE `modelid`=22314; -- 22314 +UPDATE `creature_model_info` SET `bounding_radius`=0.4524, `combat_reach`=1.625 WHERE `modelid`=14257; -- 14257 +UPDATE `creature_model_info` SET `bounding_radius`=0.455, `combat_reach`=1.95 WHERE `modelid`=25005; -- 25005 +UPDATE `creature_model_info` SET `bounding_radius`=0.459, `combat_reach`=2.25 WHERE `modelid`=26222; -- 26222 +UPDATE `creature_model_info` SET `bounding_radius`=0.459, `combat_reach`=2.25 WHERE `modelid`=29765; -- 29765 +UPDATE `creature_model_info` SET `bounding_radius`=0.459, `combat_reach`=2.25 WHERE `modelid`=29770; -- 29770 +UPDATE `creature_model_info` SET `bounding_radius`=0.459, `combat_reach`=2.25 WHERE `modelid`=30457; -- 30457 +UPDATE `creature_model_info` SET `bounding_radius`=0.459, `combat_reach`=2.25 WHERE `modelid`=30471; -- 30471 +UPDATE `creature_model_info` SET `bounding_radius`=0.459, `combat_reach`=2.25 WHERE `modelid`=30488; -- 30488 +UPDATE `creature_model_info` SET `bounding_radius`=0.459, `combat_reach`=2.25 WHERE `modelid`=31730; -- 31730 +UPDATE `creature_model_info` SET `bounding_radius`=0.4596, `combat_reach`=1.8 WHERE `modelid`=21012; -- 21012 +UPDATE `creature_model_info` SET `bounding_radius`=0.4596, `combat_reach`=1.8 WHERE `modelid`=25307; -- 25307 +UPDATE `creature_model_info` SET `bounding_radius`=0.4596, `combat_reach`=1.8 WHERE `modelid`=27851; -- 27851 +UPDATE `creature_model_info` SET `bounding_radius`=0.4596, `combat_reach`=1.8 WHERE `modelid`=29893; -- 29893 +UPDATE `creature_model_info` SET `bounding_radius`=0.4596, `combat_reach`=1.8 WHERE `modelid`=29894; -- 29894 +UPDATE `creature_model_info` SET `bounding_radius`=0.465 WHERE `modelid`=12164; -- 12164 +UPDATE `creature_model_info` SET `bounding_radius`=0.465, `combat_reach`=1.875 WHERE `modelid`=30075; -- 30075 +UPDATE `creature_model_info` SET `bounding_radius`=0.465, `combat_reach`=7.5 WHERE `modelid`=28344; -- 28344 +UPDATE `creature_model_info` SET `bounding_radius`=0.4668, `combat_reach`=1.8 WHERE `modelid`=14384; -- 14384 +UPDATE `creature_model_info` SET `bounding_radius`=0.4668, `combat_reach`=1.8 WHERE `modelid`=15601; -- 15601 +UPDATE `creature_model_info` SET `bounding_radius`=0.4668, `combat_reach`=1.8 WHERE `modelid`=15610; -- 15610 +UPDATE `creature_model_info` SET `bounding_radius`=0.46845, `combat_reach`=2.025 WHERE `modelid`=24058; -- 24058 +UPDATE `creature_model_info` SET `bounding_radius`=0.472, `combat_reach`=3 WHERE `modelid`=30327; -- 30327 +UPDATE `creature_model_info` SET `bounding_radius`=0.48, `combat_reach`=0.7 WHERE `modelid`=3005; -- 3005 +UPDATE `creature_model_info` SET `bounding_radius`=0.48, `combat_reach`=1.6 WHERE `modelid`=19259; -- 19259 +UPDATE `creature_model_info` SET `bounding_radius`=0.4836, `combat_reach`=1.95 WHERE `modelid`=23118; -- 23118 +UPDATE `creature_model_info` SET `bounding_radius`=0.49266, `combat_reach`=2.415 WHERE `modelid`=31020; -- 31020 +UPDATE `creature_model_info` SET `bounding_radius`=0.49266, `combat_reach`=2.415 WHERE `modelid`=31022; -- 31022 +UPDATE `creature_model_info` SET `bounding_radius`=0.5, `combat_reach`=0.5 WHERE `modelid`=25540; -- 25540 +UPDATE `creature_model_info` SET `bounding_radius`=0.5, `combat_reach`=0.625 WHERE `modelid`=6842; -- 6842 +UPDATE `creature_model_info` SET `bounding_radius`=0.5, `combat_reach`=1 WHERE `modelid`=26981; -- 26981 +UPDATE `creature_model_info` SET `bounding_radius`=0.5, `combat_reach`=1 WHERE `modelid`=30877; -- 30877 +UPDATE `creature_model_info` SET `bounding_radius`=0.5, `combat_reach`=1.5 WHERE `modelid`=15464; -- 15464 +UPDATE `creature_model_info` SET `bounding_radius`=0.5, `combat_reach`=4 WHERE `modelid`=27103; -- 27103 +UPDATE `creature_model_info` SET `bounding_radius`=0.5022, `combat_reach`=2.025 WHERE `modelid`=23288; -- 23288 +UPDATE `creature_model_info` SET `bounding_radius`=0.5022, `combat_reach`=2.025 WHERE `modelid`=29858; -- 29858 +UPDATE `creature_model_info` SET `bounding_radius`=0.5022, `combat_reach`=2.025 WHERE `modelid`=29859; -- 29859 +UPDATE `creature_model_info` SET `bounding_radius`=0.5022, `combat_reach`=2.025 WHERE `modelid`=29899; -- 29899 +UPDATE `creature_model_info` SET `bounding_radius`=0.5100001, `combat_reach`=1.275 WHERE `modelid`=12194; -- 12194 +UPDATE `creature_model_info` SET `bounding_radius`=0.5205, `combat_reach`=2.25 WHERE `modelid`=14663; -- 14663 +UPDATE `creature_model_info` SET `bounding_radius`=0.5205, `combat_reach`=2.25 WHERE `modelid`=30178; -- 30178 +UPDATE `creature_model_info` SET `bounding_radius`=0.5205, `combat_reach`=2.25 WHERE `modelid`=30465; -- 30465 +UPDATE `creature_model_info` SET `bounding_radius`=0.5205, `combat_reach`=2.25 WHERE `modelid`=30528; -- 30528 +UPDATE `creature_model_info` SET `bounding_radius`=0.5205, `combat_reach`=2.25 WHERE `modelid`=31127; -- 31127 +UPDATE `creature_model_info` SET `bounding_radius`=0.5208, `combat_reach`=2.1 WHERE `modelid`=11996; -- 11996 +UPDATE `creature_model_info` SET `bounding_radius`=0.520833, `combat_reach`=2.25 WHERE `modelid`=23840; -- 23840 +UPDATE `creature_model_info` SET `bounding_radius`=0.520833, `combat_reach`=2.25 WHERE `modelid`=26638; -- 26638 +UPDATE `creature_model_info` SET `bounding_radius`=0.520833, `combat_reach`=2.25 WHERE `modelid`=27136; -- 27136 +UPDATE `creature_model_info` SET `bounding_radius`=0.520833, `combat_reach`=2.25 WHERE `modelid`=27397; -- 27397 +UPDATE `creature_model_info` SET `bounding_radius`=0.520833, `combat_reach`=2.25 WHERE `modelid`=30364; -- 30364 +UPDATE `creature_model_info` SET `bounding_radius`=0.525, `combat_reach`=2.25 WHERE `modelid`=30045; -- 30045 +UPDATE `creature_model_info` SET `bounding_radius`=0.525, `combat_reach`=2.25 WHERE `modelid`=30046; -- 30046 +UPDATE `creature_model_info` SET `bounding_radius`=0.525, `combat_reach`=2.25 WHERE `modelid`=30047; -- 30047 +UPDATE `creature_model_info` SET `bounding_radius`=0.52785, `combat_reach`=2.5875 WHERE `modelid`=30535; -- 30535 +UPDATE `creature_model_info` SET `bounding_radius`=0.533, `combat_reach`=1.5 WHERE `modelid`=31812; -- 31812 +UPDATE `creature_model_info` SET `bounding_radius`=0.5355, `combat_reach`=2.625 WHERE `modelid`=29616; -- 29616 +UPDATE `creature_model_info` SET `bounding_radius`=0.5362, `combat_reach`=2.1 WHERE `modelid`=27411; -- 27411 +UPDATE `creature_model_info` SET `bounding_radius`=0.5362, `combat_reach`=2.1 WHERE `modelid`=27508; -- 27508 +UPDATE `creature_model_info` SET `bounding_radius`=0.5425 WHERE `modelid`=12239; -- 12239 +UPDATE `creature_model_info` SET `bounding_radius`=0.5425, `combat_reach`=1.75 WHERE `modelid`=27301; -- 27301 +UPDATE `creature_model_info` SET `bounding_radius`=0.5555552, `combat_reach`=2.4 WHERE `modelid`=29426; -- 29426 +UPDATE `creature_model_info` SET `bounding_radius`=0.558, `combat_reach`=1.8 WHERE `modelid`=31050; -- 31050 +UPDATE `creature_model_info` SET `bounding_radius`=0.558, `combat_reach`=2.25 WHERE `modelid`=30530; -- 30530 +UPDATE `creature_model_info` SET `bounding_radius`=0.5745, `combat_reach`=2.25 WHERE `modelid`=27402; -- 27402 +UPDATE `creature_model_info` SET `bounding_radius`=0.5745, `combat_reach`=2.25 WHERE `modelid`=30268; -- 30268 +UPDATE `creature_model_info` SET `bounding_radius`=0.5745, `combat_reach`=2.25 WHERE `modelid`=30484; -- 30484 +UPDATE `creature_model_info` SET `bounding_radius`=0.5745, `combat_reach`=2.25 WHERE `modelid`=30490; -- 30490 +UPDATE `creature_model_info` SET `bounding_radius`=0.5745, `combat_reach`=2.25 WHERE `modelid`=30532; -- 30532 +UPDATE `creature_model_info` SET `bounding_radius`=0.5745, `combat_reach`=2.25 WHERE `modelid`=31125; -- 31125 +UPDATE `creature_model_info` SET `bounding_radius`=0.5835, `combat_reach`=2.25 WHERE `modelid`=30455; -- 30455 +UPDATE `creature_model_info` SET `bounding_radius`=0.5902774, `combat_reach`=2.55 WHERE `modelid`=22538; -- 22538 +UPDATE `creature_model_info` SET `bounding_radius`=0.599, `combat_reach`=1.25 WHERE `modelid`=470; -- 470 +UPDATE `creature_model_info` SET `bounding_radius`=0.6 WHERE `modelid`=23723; -- 23723 +UPDATE `creature_model_info` SET `bounding_radius`=0.6, `combat_reach`=0.875 WHERE `modelid`=8184; -- 8184 +UPDATE `creature_model_info` SET `bounding_radius`=0.6, `combat_reach`=0.875 WHERE `modelid`=9033; -- 9033 +UPDATE `creature_model_info` SET `bounding_radius`=0.6, `combat_reach`=1.2 WHERE `modelid`=2489; -- 2489 +UPDATE `creature_model_info` SET `bounding_radius`=0.6, `combat_reach`=2 WHERE `modelid`=25501; -- 25501 +UPDATE `creature_model_info` SET `bounding_radius`=0.6, `combat_reach`=2.25 WHERE `modelid`=15437; -- 15437 +UPDATE `creature_model_info` SET `bounding_radius`=0.611112, `combat_reach`=2 WHERE `modelid`=30809; -- 30809 +UPDATE `creature_model_info` SET `bounding_radius`=0.612, `combat_reach`=3 WHERE `modelid`=30801; -- 30801 +UPDATE `creature_model_info` SET `bounding_radius`=0.612, `combat_reach`=3 WHERE `modelid`=30802; -- 30802 +UPDATE `creature_model_info` SET `bounding_radius`=0.612, `combat_reach`=3 WHERE `modelid`=31011; -- 31011 +UPDATE `creature_model_info` SET `bounding_radius`=0.6128, `combat_reach`=2.4 WHERE `modelid`=22230; -- 22230 +UPDATE `creature_model_info` SET `bounding_radius`=0.6128, `combat_reach`=2.4 WHERE `modelid`=30713; -- 30713 +UPDATE `creature_model_info` SET `bounding_radius`=0.6128, `combat_reach`=2.4 WHERE `modelid`=31023; -- 31023 +UPDATE `creature_model_info` SET `bounding_radius`=0.6128, `combat_reach`=2.4 WHERE `modelid`=31024; -- 31024 +UPDATE `creature_model_info` SET `bounding_radius`=0.6128, `combat_reach`=2.4 WHERE `modelid`=31025; -- 31025 +UPDATE `creature_model_info` SET `bounding_radius`=0.6128, `combat_reach`=2.4 WHERE `modelid`=31026; -- 31026 +UPDATE `creature_model_info` SET `bounding_radius`=0.62 WHERE `modelid`=20039; -- 20039 +UPDATE `creature_model_info` SET `bounding_radius`=0.62, `combat_reach`=1.5 WHERE `modelid`=19705; -- 19705 +UPDATE `creature_model_info` SET `bounding_radius`=0.62, `combat_reach`=1.5 WHERE `modelid`=28324; -- 28324 +UPDATE `creature_model_info` SET `bounding_radius`=0.62, `combat_reach`=2 WHERE `modelid`=26694; -- 26694 +UPDATE `creature_model_info` SET `bounding_radius`=0.62, `combat_reach`=2 WHERE `modelid`=27337; -- 27337 +UPDATE `creature_model_info` SET `bounding_radius`=0.62, `combat_reach`=2 WHERE `modelid`=27427; -- 27427 +UPDATE `creature_model_info` SET `bounding_radius`=0.62, `combat_reach`=2 WHERE `modelid`=27431; -- 27431 +UPDATE `creature_model_info` SET `bounding_radius`=0.62, `combat_reach`=2 WHERE `modelid`=27705; -- 27705 +UPDATE `creature_model_info` SET `bounding_radius`=0.62, `combat_reach`=2 WHERE `modelid`=27706; -- 27706 +UPDATE `creature_model_info` SET `bounding_radius`=0.62, `combat_reach`=2 WHERE `modelid`=27707; -- 27707 +UPDATE `creature_model_info` SET `bounding_radius`=0.62, `combat_reach`=2 WHERE `modelid`=28381; -- 28381 +UPDATE `creature_model_info` SET `bounding_radius`=0.62, `combat_reach`=3 WHERE `modelid`=30885; -- 30885 +UPDATE `creature_model_info` SET `bounding_radius`=0.62, `combat_reach`=4 WHERE `modelid`=26692; -- 26692 +UPDATE `creature_model_info` SET `bounding_radius`=0.62, `combat_reach`=4 WHERE `modelid`=26782; -- 26782 +UPDATE `creature_model_info` SET `bounding_radius`=0.63195, `combat_reach`=2.475 WHERE `modelid`=31028; -- 31028 +UPDATE `creature_model_info` SET `bounding_radius`=0.63195, `combat_reach`=2.475 WHERE `modelid`=31029; -- 31029 +UPDATE `creature_model_info` SET `bounding_radius`=0.63195, `combat_reach`=2.475 WHERE `modelid`=31030; -- 31030 +UPDATE `creature_model_info` SET `bounding_radius`=0.63195, `combat_reach`=2.475 WHERE `modelid`=31031; -- 31031 +UPDATE `creature_model_info` SET `bounding_radius`=0.63195, `combat_reach`=2.475 WHERE `modelid`=31033; -- 31033 +UPDATE `creature_model_info` SET `bounding_radius`=0.63195, `combat_reach`=2.475 WHERE `modelid`=31034; -- 31034 +UPDATE `creature_model_info` SET `bounding_radius`=0.63195, `combat_reach`=2.475 WHERE `modelid`=31035; -- 31035 +UPDATE `creature_model_info` SET `bounding_radius`=0.63195, `combat_reach`=2.475 WHERE `modelid`=31036; -- 31036 +UPDATE `creature_model_info` SET `bounding_radius`=0.63195, `combat_reach`=2.475 WHERE `modelid`=31037; -- 31037 +UPDATE `creature_model_info` SET `bounding_radius`=0.63195, `combat_reach`=2.475 WHERE `modelid`=31038; -- 31038 +UPDATE `creature_model_info` SET `bounding_radius`=0.65, `combat_reach`=1.3 WHERE `modelid`=10988; -- 10988 +UPDATE `creature_model_info` SET `bounding_radius`=0.65, `combat_reach`=1.625 WHERE `modelid`=8782; -- 8782 +UPDATE `creature_model_info` SET `bounding_radius`=0.65, `combat_reach`=7.15 WHERE `modelid`=23707; -- 23707 +UPDATE `creature_model_info` SET `bounding_radius`=0.675, `combat_reach`=1.875 WHERE `modelid`=10032; -- 10032 +UPDATE `creature_model_info` SET `bounding_radius`=0.67575, `combat_reach`=1.275 WHERE `modelid`=598; -- 598 +UPDATE `creature_model_info` SET `bounding_radius`=0.69, `combat_reach`=1.725 WHERE `modelid`=12192; -- 12192 +UPDATE `creature_model_info` SET `bounding_radius`=0.694, `combat_reach`=4 WHERE `modelid`=5848; -- 5848 +UPDATE `creature_model_info` SET `bounding_radius`=0.694444, `combat_reach`=3 WHERE `modelid`=20990; -- 20990 +UPDATE `creature_model_info` SET `bounding_radius`=0.694444, `combat_reach`=3 WHERE `modelid`=25442; -- 25442 +UPDATE `creature_model_info` SET `bounding_radius`=0.694444, `combat_reach`=3 WHERE `modelid`=25484; -- 25484 +UPDATE `creature_model_info` SET `bounding_radius`=0.694444, `combat_reach`=3 WHERE `modelid`=25588; -- 25588 +UPDATE `creature_model_info` SET `bounding_radius`=0.696, `combat_reach`=2.5 WHERE `modelid`=22989; -- 22989 +UPDATE `creature_model_info` SET `bounding_radius`=0.696, `combat_reach`=3 WHERE `modelid`=11382; -- 11382 +UPDATE `creature_model_info` SET `bounding_radius`=0.7, `combat_reach`=1.4 WHERE `modelid`=7347; -- 7347 +UPDATE `creature_model_info` SET `bounding_radius`=0.7, `combat_reach`=4 WHERE `modelid`=5107; -- 5107 +UPDATE `creature_model_info` SET `bounding_radius`=0.7, `combat_reach`=5 WHERE `modelid`=14383; -- 14383 +UPDATE `creature_model_info` SET `bounding_radius`=0.7135729, `combat_reach`=0.6067797 WHERE `modelid`=8869; -- 8869 +UPDATE `creature_model_info` SET `bounding_radius`=0.7474576, `combat_reach`=0.934322 WHERE `modelid`=1307; -- 1307 +UPDATE `creature_model_info` SET `bounding_radius`=0.75, `combat_reach`=1.125 WHERE `modelid`=12962; -- 12962 +UPDATE `creature_model_info` SET `bounding_radius`=0.75, `combat_reach`=1.125 WHERE `modelid`=12963; -- 12963 +UPDATE `creature_model_info` SET `bounding_radius`=0.75, `combat_reach`=1.5 WHERE `modelid`=20577; -- 20577 +UPDATE `creature_model_info` SET `bounding_radius`=0.75, `combat_reach`=1.5 WHERE `modelid`=23257; -- 23257 +UPDATE `creature_model_info` SET `bounding_radius`=0.75, `combat_reach`=1.875 WHERE `modelid`=10698; -- 10698 +UPDATE `creature_model_info` SET `bounding_radius`=0.75, `combat_reach`=15 WHERE `modelid`=29268; -- 29268 +UPDATE `creature_model_info` SET `bounding_radius`=0.75, `combat_reach`=7.5 WHERE `modelid`=20811; -- 20811 +UPDATE `creature_model_info` SET `bounding_radius`=0.76395, `combat_reach`=1.1 WHERE `modelid`=4906; -- 4906 +UPDATE `creature_model_info` SET `bounding_radius`=0.775, `combat_reach`=2.5 WHERE `modelid`=27804; -- 27804 +UPDATE `creature_model_info` SET `bounding_radius`=0.78075, `combat_reach`=4.5 WHERE `modelid`=13173; -- 13173 +UPDATE `creature_model_info` SET `bounding_radius`=0.7875, `combat_reach`=2.1875 WHERE `modelid`=11340; -- 11340 +UPDATE `creature_model_info` SET `bounding_radius`=0.7995, `combat_reach`=2.25 WHERE `modelid`=14708; -- 14708 +UPDATE `creature_model_info` SET `bounding_radius`=0.8, `combat_reach`=3 WHERE `modelid`=15738; -- 15738 +UPDATE `creature_model_info` SET `bounding_radius`=0.8, `combat_reach`=3.6 WHERE `modelid`=30810; -- 30810 +UPDATE `creature_model_info` SET `bounding_radius`=0.8, `combat_reach`=8 WHERE `modelid`=7806; -- 7806 +UPDATE `creature_model_info` SET `bounding_radius`=0.818, `combat_reach`=2 WHERE `modelid`=29258; -- 29258 +UPDATE `creature_model_info` SET `bounding_radius`=0.84029, `combat_reach`=2.75 WHERE `modelid`=14514; -- 14514 +UPDATE `creature_model_info` SET `bounding_radius`=0.8525, `combat_reach`=2.75 WHERE `modelid`=27426; -- 27426 +UPDATE `creature_model_info` SET `bounding_radius`=0.8675, `combat_reach`=5 WHERE `modelid`=6350; -- 6350 +UPDATE `creature_model_info` SET `bounding_radius`=0.8725, `combat_reach`=3.75 WHERE `modelid`=23130; -- 23130 +UPDATE `creature_model_info` SET `bounding_radius`=0.8725, `combat_reach`=3.75 WHERE `modelid`=29608; -- 29608 +UPDATE `creature_model_info` SET `bounding_radius`=0.8725, `combat_reach`=3.75 WHERE `modelid`=29647; -- 29647 +UPDATE `creature_model_info` SET `bounding_radius`=0.8725, `combat_reach`=3.75 WHERE `modelid`=30385; -- 30385 +UPDATE `creature_model_info` SET `bounding_radius`=0.8725, `combat_reach`=3.75 WHERE `modelid`=30689; -- 30689 +UPDATE `creature_model_info` SET `bounding_radius`=0.8745, `combat_reach`=1.65 WHERE `modelid`=22517; -- 22517 +UPDATE `creature_model_info` SET `bounding_radius`=0.875, `combat_reach`=2.1875 WHERE `modelid`=22337; -- 22337 +UPDATE `creature_model_info` SET `bounding_radius`=0.875, `combat_reach`=2.5 WHERE `modelid`=19962; -- 19962 +UPDATE `creature_model_info` SET `bounding_radius`=0.875, `combat_reach`=2.5 WHERE `modelid`=29169; -- 29169 +UPDATE `creature_model_info` SET `bounding_radius`=0.875, `combat_reach`=2.5 WHERE `modelid`=29170; -- 29170 +UPDATE `creature_model_info` SET `bounding_radius`=0.875, `combat_reach`=2.5 WHERE `modelid`=29171; -- 29171 +UPDATE `creature_model_info` SET `bounding_radius`=0.875, `combat_reach`=2.625 WHERE `modelid`=15483; -- 15483 +UPDATE `creature_model_info` SET `bounding_radius`=0.875, `combat_reach`=3.75 WHERE `modelid`=31092; -- 31092 +UPDATE `creature_model_info` SET `bounding_radius`=0.9, `combat_reach`=0.9 WHERE `modelid`=27462; -- 27462 +UPDATE `creature_model_info` SET `bounding_radius`=0.9, `combat_reach`=1.8 WHERE `modelid`=24860; -- 24860 +UPDATE `creature_model_info` SET `bounding_radius`=0.9, `combat_reach`=3 WHERE `modelid`=21630; -- 21630 +UPDATE `creature_model_info` SET `bounding_radius`=0.9, `combat_reach`=3 WHERE `modelid`=21631; -- 21631 +UPDATE `creature_model_info` SET `bounding_radius`=0.9, `combat_reach`=3 WHERE `modelid`=21632; -- 21632 +UPDATE `creature_model_info` SET `bounding_radius`=0.9, `combat_reach`=3 WHERE `modelid`=21633; -- 21633 +UPDATE `creature_model_info` SET `bounding_radius`=0.918, `combat_reach`=4.5 WHERE `modelid`=26591; -- 26591 +UPDATE `creature_model_info` SET `bounding_radius`=0.918, `combat_reach`=4.5 WHERE `modelid`=29588; -- 29588 +UPDATE `creature_model_info` SET `bounding_radius`=0.93 WHERE `modelid`=12110; -- 12110 +UPDATE `creature_model_info` SET `bounding_radius`=0.93 WHERE `modelid`=16840; -- 16840 +UPDATE `creature_model_info` SET `bounding_radius`=0.93, `combat_reach`=1.5 WHERE `modelid`=30866; -- 30866 +UPDATE `creature_model_info` SET `bounding_radius`=0.93, `combat_reach`=3 WHERE `modelid`=27339; -- 27339 +UPDATE `creature_model_info` SET `bounding_radius`=0.93, `combat_reach`=3 WHERE `modelid`=29589; -- 29589 +UPDATE `creature_model_info` SET `bounding_radius`=0.95975, `combat_reach`=4.125 WHERE `modelid`=29503; -- 29503 +UPDATE `creature_model_info` SET `bounding_radius`=0.9722216, `combat_reach`=4.2 WHERE `modelid`=22332; -- 22332 +UPDATE `creature_model_info` SET `bounding_radius`=0.9747, `combat_reach`=4.05 WHERE `modelid`=15230; -- 15230 +UPDATE `creature_model_info` SET `bounding_radius`=0.9747, `combat_reach`=4.05 WHERE `modelid`=23238; -- 23238 +UPDATE `creature_model_info` SET `bounding_radius`=0.9747, `combat_reach`=4.05 WHERE `modelid`=23286; -- 23286 +UPDATE `creature_model_info` SET `bounding_radius`=0.9747, `combat_reach`=4.05 WHERE `modelid`=24649; -- 24649 +UPDATE `creature_model_info` SET `bounding_radius`=0.9747, `combat_reach`=4.05 WHERE `modelid`=25308; -- 25308 +UPDATE `creature_model_info` SET `bounding_radius`=0.9747, `combat_reach`=4.05 WHERE `modelid`=26646; -- 26646 +UPDATE `creature_model_info` SET `bounding_radius`=0.9747, `combat_reach`=4.05 WHERE `modelid`=29250; -- 29250 +UPDATE `creature_model_info` SET `bounding_radius`=0.9747, `combat_reach`=4.05 WHERE `modelid`=29569; -- 29569 +UPDATE `creature_model_info` SET `bounding_radius`=0.9747, `combat_reach`=4.05 WHERE `modelid`=29582; -- 29582 +UPDATE `creature_model_info` SET `bounding_radius`=0.9747, `combat_reach`=4.05 WHERE `modelid`=29583; -- 29583 +UPDATE `creature_model_info` SET `bounding_radius`=0.9747, `combat_reach`=4.05 WHERE `modelid`=29645; -- 29645 +UPDATE `creature_model_info` SET `bounding_radius`=0.9747, `combat_reach`=4.05 WHERE `modelid`=29646; -- 29646 +UPDATE `creature_model_info` SET `bounding_radius`=0.9747, `combat_reach`=4.05 WHERE `modelid`=30384; -- 30384 +UPDATE `creature_model_info` SET `bounding_radius`=0.9747, `combat_reach`=4.05 WHERE `modelid`=30681; -- 30681 +UPDATE `creature_model_info` SET `bounding_radius`=0.9747, `combat_reach`=4.05 WHERE `modelid`=30879; -- 30879 +UPDATE `creature_model_info` SET `bounding_radius`=0.9747, `combat_reach`=4.05 WHERE `modelid`=31112; -- 31112 +UPDATE `creature_model_info` SET `bounding_radius`=0.9747, `combat_reach`=4.05 WHERE `modelid`=9234; -- 9234 +UPDATE `creature_model_info` SET `bounding_radius`=1 WHERE `modelid`=18684; -- 18684 +UPDATE `creature_model_info` SET `bounding_radius`=1 WHERE `modelid`=2176; -- 2176 +UPDATE `creature_model_info` SET `bounding_radius`=1 WHERE `modelid`=251; -- 251 +UPDATE `creature_model_info` SET `bounding_radius`=1 WHERE `modelid`=27243; -- 27243 +UPDATE `creature_model_info` SET `bounding_radius`=1 WHERE `modelid`=29255; -- 29255 +UPDATE `creature_model_info` SET `bounding_radius`=1 WHERE `modelid`=31725; -- 31725 +UPDATE `creature_model_info` SET `bounding_radius`=1 WHERE `modelid`=80; -- 80 +UPDATE `creature_model_info` SET `bounding_radius`=1, `combat_reach`=1 WHERE `modelid`=1336; -- 1336 +UPDATE `creature_model_info` SET `bounding_radius`=1, `combat_reach`=1 WHERE `modelid`=22726; -- 22726 +UPDATE `creature_model_info` SET `bounding_radius`=1, `combat_reach`=1 WHERE `modelid`=23310; -- 23310 +UPDATE `creature_model_info` SET `bounding_radius`=1, `combat_reach`=1 WHERE `modelid`=27879; -- 27879 +UPDATE `creature_model_info` SET `bounding_radius`=1, `combat_reach`=1.25 WHERE `modelid`=1939; -- 1939 +UPDATE `creature_model_info` SET `bounding_radius`=1, `combat_reach`=1.25 WHERE `modelid`=720; -- 720 +UPDATE `creature_model_info` SET `bounding_radius`=1, `combat_reach`=1.5 WHERE `modelid`=16126; -- 16126 +UPDATE `creature_model_info` SET `bounding_radius`=1, `combat_reach`=1.5 WHERE `modelid`=18836; -- 18836 +UPDATE `creature_model_info` SET `bounding_radius`=1, `combat_reach`=1.5 WHERE `modelid`=18882; -- 18882 +UPDATE `creature_model_info` SET `bounding_radius`=1, `combat_reach`=1.5 WHERE `modelid`=18883; -- 18883 +UPDATE `creature_model_info` SET `bounding_radius`=1, `combat_reach`=1.5 WHERE `modelid`=18884; -- 18884 +UPDATE `creature_model_info` SET `bounding_radius`=1, `combat_reach`=1.5 WHERE `modelid`=19145; -- 19145 +UPDATE `creature_model_info` SET `bounding_radius`=1, `combat_reach`=1.5 WHERE `modelid`=19236; -- 19236 +UPDATE `creature_model_info` SET `bounding_radius`=1, `combat_reach`=1.5 WHERE `modelid`=21270; -- 21270 +UPDATE `creature_model_info` SET `bounding_radius`=1, `combat_reach`=1.5 WHERE `modelid`=22541; -- 22541 +UPDATE `creature_model_info` SET `bounding_radius`=1, `combat_reach`=1.5 WHERE `modelid`=22835; -- 22835 +UPDATE `creature_model_info` SET `bounding_radius`=1, `combat_reach`=1.5 WHERE `modelid`=22837; -- 22837 +UPDATE `creature_model_info` SET `bounding_radius`=1, `combat_reach`=1.5 WHERE `modelid`=22852; -- 22852 +UPDATE `creature_model_info` SET `bounding_radius`=1, `combat_reach`=1.5 WHERE `modelid`=22971; -- 22971 +UPDATE `creature_model_info` SET `bounding_radius`=1, `combat_reach`=1.5 WHERE `modelid`=23132; -- 23132 +UPDATE `creature_model_info` SET `bounding_radius`=1, `combat_reach`=1.5 WHERE `modelid`=23425; -- 23425 +UPDATE `creature_model_info` SET `bounding_radius`=1, `combat_reach`=1.5 WHERE `modelid`=23470; -- 23470 +UPDATE `creature_model_info` SET `bounding_radius`=1, `combat_reach`=1.5 WHERE `modelid`=25920; -- 25920 +UPDATE `creature_model_info` SET `bounding_radius`=1, `combat_reach`=1.5 WHERE `modelid`=26484; -- 26484 +UPDATE `creature_model_info` SET `bounding_radius`=1, `combat_reach`=1.5 WHERE `modelid`=26495; -- 26495 +UPDATE `creature_model_info` SET `bounding_radius`=1, `combat_reach`=1.5 WHERE `modelid`=26496; -- 26496 +UPDATE `creature_model_info` SET `bounding_radius`=1, `combat_reach`=1.5 WHERE `modelid`=26499; -- 26499 +UPDATE `creature_model_info` SET `bounding_radius`=1, `combat_reach`=1.5 WHERE `modelid`=26501; -- 26501 +UPDATE `creature_model_info` SET `bounding_radius`=1, `combat_reach`=1.5 WHERE `modelid`=26502; -- 26502 +UPDATE `creature_model_info` SET `bounding_radius`=1, `combat_reach`=1.5 WHERE `modelid`=26504; -- 26504 +UPDATE `creature_model_info` SET `bounding_radius`=1, `combat_reach`=1.5 WHERE `modelid`=27249; -- 27249 +UPDATE `creature_model_info` SET `bounding_radius`=1, `combat_reach`=1.5 WHERE `modelid`=28799; -- 28799 +UPDATE `creature_model_info` SET `bounding_radius`=1, `combat_reach`=1.5 WHERE `modelid`=28800; -- 28800 +UPDATE `creature_model_info` SET `bounding_radius`=1, `combat_reach`=1.5 WHERE `modelid`=28801; -- 28801 +UPDATE `creature_model_info` SET `bounding_radius`=1, `combat_reach`=1.5 WHERE `modelid`=28802; -- 28802 +UPDATE `creature_model_info` SET `bounding_radius`=1, `combat_reach`=1.5 WHERE `modelid`=28803; -- 28803 +UPDATE `creature_model_info` SET `bounding_radius`=1, `combat_reach`=1.5 WHERE `modelid`=28804; -- 28804 +UPDATE `creature_model_info` SET `bounding_radius`=1, `combat_reach`=1.5 WHERE `modelid`=28805; -- 28805 +UPDATE `creature_model_info` SET `bounding_radius`=1, `combat_reach`=1.5 WHERE `modelid`=28806; -- 28806 +UPDATE `creature_model_info` SET `bounding_radius`=1, `combat_reach`=1.5 WHERE `modelid`=28807; -- 28807 +UPDATE `creature_model_info` SET `bounding_radius`=1, `combat_reach`=1.5 WHERE `modelid`=28808; -- 28808 +UPDATE `creature_model_info` SET `bounding_radius`=1, `combat_reach`=1.5 WHERE `modelid`=28809; -- 28809 +UPDATE `creature_model_info` SET `bounding_radius`=1, `combat_reach`=1.5 WHERE `modelid`=28918; -- 28918 +UPDATE `creature_model_info` SET `bounding_radius`=1, `combat_reach`=1.5 WHERE `modelid`=29576; -- 29576 +UPDATE `creature_model_info` SET `bounding_radius`=1, `combat_reach`=1.5 WHERE `modelid`=29577; -- 29577 +UPDATE `creature_model_info` SET `bounding_radius`=1, `combat_reach`=1.5 WHERE `modelid`=29639; -- 29639 +UPDATE `creature_model_info` SET `bounding_radius`=1, `combat_reach`=1.5 WHERE `modelid`=29640; -- 29640 +UPDATE `creature_model_info` SET `bounding_radius`=1, `combat_reach`=1.5 WHERE `modelid`=29641; -- 29641 +UPDATE `creature_model_info` SET `bounding_radius`=1, `combat_reach`=1.5 WHERE `modelid`=29743; -- 29743 +UPDATE `creature_model_info` SET `bounding_radius`=1, `combat_reach`=1.5 WHERE `modelid`=29744; -- 29744 +UPDATE `creature_model_info` SET `bounding_radius`=1, `combat_reach`=1.5 WHERE `modelid`=30373; -- 30373 +UPDATE `creature_model_info` SET `bounding_radius`=1, `combat_reach`=1.5 WHERE `modelid`=30634; -- 30634 +UPDATE `creature_model_info` SET `bounding_radius`=1, `combat_reach`=1.5 WHERE `modelid`=30635; -- 30635 +UPDATE `creature_model_info` SET `bounding_radius`=1, `combat_reach`=1.5 WHERE `modelid`=30662; -- 30662 +UPDATE `creature_model_info` SET `bounding_radius`=1, `combat_reach`=1.5 WHERE `modelid`=30663; -- 30663 +UPDATE `creature_model_info` SET `bounding_radius`=1, `combat_reach`=1.5 WHERE `modelid`=30771; -- 30771 +UPDATE `creature_model_info` SET `bounding_radius`=1, `combat_reach`=1.5 WHERE `modelid`=30772; -- 30772 +UPDATE `creature_model_info` SET `bounding_radius`=1, `combat_reach`=1.5 WHERE `modelid`=31126; -- 31126 +UPDATE `creature_model_info` SET `bounding_radius`=1, `combat_reach`=1.5 WHERE `modelid`=31194; -- 31194 +UPDATE `creature_model_info` SET `bounding_radius`=1, `combat_reach`=11 WHERE `modelid`=23344; -- 23344 +UPDATE `creature_model_info` SET `bounding_radius`=1, `combat_reach`=2 WHERE `modelid`=19618; -- 19618 +UPDATE `creature_model_info` SET `bounding_radius`=1, `combat_reach`=2 WHERE `modelid`=28419; -- 28419 +UPDATE `creature_model_info` SET `bounding_radius`=1, `combat_reach`=20 WHERE `modelid`=11121; -- 11121 +UPDATE `creature_model_info` SET `bounding_radius`=1, `combat_reach`=20 WHERE `modelid`=27338; -- 27338 +UPDATE `creature_model_info` SET `bounding_radius`=1, `combat_reach`=3 WHERE `modelid`=15431; -- 15431 +UPDATE `creature_model_info` SET `bounding_radius`=1, `combat_reach`=3 WHERE `modelid`=20769; -- 20769 +UPDATE `creature_model_info` SET `bounding_radius`=1, `combat_reach`=6 WHERE `modelid`=23487; -- 23487 +UPDATE `creature_model_info` SET `bounding_radius`=1, `combat_reach`=7 WHERE `modelid`=29270; -- 29270 +UPDATE `creature_model_info` SET `bounding_radius`=1, `combat_reach`=7 WHERE `modelid`=29286; -- 29286 +UPDATE `creature_model_info` SET `bounding_radius`=1.0285, `combat_reach`=0.825 WHERE `modelid`=368; -- 368 +UPDATE `creature_model_info` SET `bounding_radius`=1.0285, `combat_reach`=0.825 WHERE `modelid`=711; -- 711 +UPDATE `creature_model_info` SET `bounding_radius`=1.0465 WHERE `modelid`=721; -- 721 +UPDATE `creature_model_info` SET `bounding_radius`=1.047, `combat_reach`=4.5 WHERE `modelid`=15628; -- 15628 +UPDATE `creature_model_info` SET `bounding_radius`=1.047, `combat_reach`=4.5 WHERE `modelid`=15645; -- 15645 +UPDATE `creature_model_info` SET `bounding_radius`=1.047, `combat_reach`=4.5 WHERE `modelid`=23841; -- 23841 +UPDATE `creature_model_info` SET `bounding_radius`=1.05, `combat_reach`=0.875 WHERE `modelid`=1100; -- 1100 +UPDATE `creature_model_info` SET `bounding_radius`=1.05, `combat_reach`=0.875 WHERE `modelid`=855; -- 855 +UPDATE `creature_model_info` SET `bounding_radius`=1.05, `combat_reach`=7.5 WHERE `modelid`=13170; -- 13170 +UPDATE `creature_model_info` SET `bounding_radius`=1.07217, `combat_reach`=4.455 WHERE `modelid`=29502; -- 29502 +UPDATE `creature_model_info` SET `bounding_radius`=1.080508, `combat_reach`=0.9004238 WHERE `modelid`=1100; -- 1100 +UPDATE `creature_model_info` SET `bounding_radius`=1.090625, `combat_reach`=4.6875 WHERE `modelid`=23976; -- 23976 +UPDATE `creature_model_info` SET `bounding_radius`=1.095763, `combat_reach`=0.9131355 WHERE `modelid`=604; -- 604 +UPDATE `creature_model_info` SET `bounding_radius`=1.1, `combat_reach`=1.65 WHERE `modelid`=15375; -- 15375 +UPDATE `creature_model_info` SET `bounding_radius`=1.1, `combat_reach`=1.65 WHERE `modelid`=16593; -- 16593 +UPDATE `creature_model_info` SET `bounding_radius`=1.1, `combat_reach`=1.65 WHERE `modelid`=19555; -- 19555 +UPDATE `creature_model_info` SET `bounding_radius`=1.1, `combat_reach`=1.65 WHERE `modelid`=22972; -- 22972 +UPDATE `creature_model_info` SET `bounding_radius`=1.1, `combat_reach`=1.65 WHERE `modelid`=29535; -- 29535 +UPDATE `creature_model_info` SET `bounding_radius`=1.116, `combat_reach`=4.5 WHERE `modelid`=29591; -- 29591 +UPDATE `creature_model_info` SET `bounding_radius`=1.116, `combat_reach`=4.5 WHERE `modelid`=29592; -- 29592 +UPDATE `creature_model_info` SET `bounding_radius`=1.125, `combat_reach`=2.25 WHERE `modelid`=31004; -- 31004 +UPDATE `creature_model_info` SET `bounding_radius`=1.125, `combat_reach`=3.125 WHERE `modelid`=14416; -- 14416 +UPDATE `creature_model_info` SET `bounding_radius`=1.15, `combat_reach`=2.3 WHERE `modelid`=14255; -- 14255 +UPDATE `creature_model_info` SET `bounding_radius`=1.16964, `combat_reach`=4.860001 WHERE `modelid`=15609; -- 15609 +UPDATE `creature_model_info` SET `bounding_radius`=1.16964, `combat_reach`=4.860001 WHERE `modelid`=15613; -- 15613 +UPDATE `creature_model_info` SET `bounding_radius`=1.16964, `combat_reach`=4.860001 WHERE `modelid`=15635; -- 15635 +UPDATE `creature_model_info` SET `bounding_radius`=1.16964, `combat_reach`=4.860001 WHERE `modelid`=15644; -- 15644 +UPDATE `creature_model_info` SET `bounding_radius`=1.16964, `combat_reach`=4.860001 WHERE `modelid`=26258; -- 26258 +UPDATE `creature_model_info` SET `bounding_radius`=1.2, `combat_reach`=1.8 WHERE `modelid`=14585; -- 14585 +UPDATE `creature_model_info` SET `bounding_radius`=1.2, `combat_reach`=1.8 WHERE `modelid`=26217; -- 26217 +UPDATE `creature_model_info` SET `bounding_radius`=1.2, `combat_reach`=3 WHERE `modelid`=29756; -- 29756 +UPDATE `creature_model_info` SET `bounding_radius`=1.2075, `combat_reach`=2.25 WHERE `modelid`=6533; -- 6533 +UPDATE `creature_model_info` SET `bounding_radius`=1.222, `combat_reach`=3 WHERE `modelid`=31094; -- 31094 +UPDATE `creature_model_info` SET `bounding_radius`=1.224, `combat_reach`=6 WHERE `modelid`=27898; -- 27898 +UPDATE `creature_model_info` SET `bounding_radius`=1.24, `combat_reach`=4 WHERE `modelid`=21394; -- 21394 +UPDATE `creature_model_info` SET `bounding_radius`=1.24, `combat_reach`=4 WHERE `modelid`=31093; -- 31093 +UPDATE `creature_model_info` SET `bounding_radius`=1.25 WHERE `modelid`=16634; -- 16634 +UPDATE `creature_model_info` SET `bounding_radius`=1.25 WHERE `modelid`=19249; -- 19249 +UPDATE `creature_model_info` SET `bounding_radius`=1.25, `combat_reach`=12.5 WHERE `modelid`=15432; -- 15432 +UPDATE `creature_model_info` SET `bounding_radius`=1.25, `combat_reach`=3.75 WHERE `modelid`=23890; -- 23890 +UPDATE `creature_model_info` SET `bounding_radius`=1.25, `combat_reach`=5 WHERE `modelid`=15343; -- 15343 +UPDATE `creature_model_info` SET `bounding_radius`=1.2501, `combat_reach`=2.25 WHERE `modelid`=834; -- 834 +UPDATE `creature_model_info` SET `bounding_radius`=1.3, `combat_reach`=1.5 WHERE `modelid`=20280; -- 20280 +UPDATE `creature_model_info` SET `bounding_radius`=1.3, `combat_reach`=1.625 WHERE `modelid`=6211; -- 6211 +UPDATE `creature_model_info` SET `bounding_radius`=1.3, `combat_reach`=1.95 WHERE `modelid`=14380; -- 14380 +UPDATE `creature_model_info` SET `bounding_radius`=1.3, `combat_reach`=1.95 WHERE `modelid`=17920; -- 17920 +UPDATE `creature_model_info` SET `bounding_radius`=1.3, `combat_reach`=1.95 WHERE `modelid`=1952; -- 1952 +UPDATE `creature_model_info` SET `bounding_radius`=1.365 WHERE `modelid`=3188; -- 3188 +UPDATE `creature_model_info` SET `bounding_radius`=1.3764, `combat_reach`=3.6 WHERE `modelid`=6089; -- 6089 +UPDATE `creature_model_info` SET `bounding_radius`=1.4, `combat_reach`=1.75 WHERE `modelid`=6830; -- 6830 +UPDATE `creature_model_info` SET `bounding_radius`=1.4, `combat_reach`=1.75 WHERE `modelid`=999; -- 999 +UPDATE `creature_model_info` SET `bounding_radius`=1.4, `combat_reach`=2 WHERE `modelid`=21193; -- 21193 +UPDATE `creature_model_info` SET `bounding_radius`=1.408475, `combat_reach`=1.408475 WHERE `modelid`=7671; -- 7671 +UPDATE `creature_model_info` SET `bounding_radius`=1.41225, `combat_reach`=2.625 WHERE `modelid`=523; -- 523 +UPDATE `creature_model_info` SET `bounding_radius`=1.423729, `combat_reach`=1.423729 WHERE `modelid`=9030; -- 9030 +UPDATE `creature_model_info` SET `bounding_radius`=1.5, `combat_reach`=1.5 WHERE `modelid`=12336; -- 12336 +UPDATE `creature_model_info` SET `bounding_radius`=1.5, `combat_reach`=1.5 WHERE `modelid`=17760; -- 17760 +UPDATE `creature_model_info` SET `bounding_radius`=1.5, `combat_reach`=1.5 WHERE `modelid`=21155; -- 21155 +UPDATE `creature_model_info` SET `bounding_radius`=1.5, `combat_reach`=1.5 WHERE `modelid`=21158; -- 21158 +UPDATE `creature_model_info` SET `bounding_radius`=1.5, `combat_reach`=1.5 WHERE `modelid`=22467; -- 22467 +UPDATE `creature_model_info` SET `bounding_radius`=1.5, `combat_reach`=1.5 WHERE `modelid`=28570; -- 28570 +UPDATE `creature_model_info` SET `bounding_radius`=1.5, `combat_reach`=1.5 WHERE `modelid`=4065; -- 4065 +UPDATE `creature_model_info` SET `bounding_radius`=1.5, `combat_reach`=1.5 WHERE `modelid`=7549; -- 7549 +UPDATE `creature_model_info` SET `bounding_radius`=1.5, `combat_reach`=1.5 WHERE `modelid`=7709; -- 7709 +UPDATE `creature_model_info` SET `bounding_radius`=1.5, `combat_reach`=1.5 WHERE `modelid`=9031; -- 9031 +UPDATE `creature_model_info` SET `bounding_radius`=1.5, `combat_reach`=15 WHERE `modelid`=28110; -- 28110 +UPDATE `creature_model_info` SET `bounding_radius`=1.5, `combat_reach`=2.25 WHERE `modelid`=29764; -- 29764 +UPDATE `creature_model_info` SET `bounding_radius`=1.5, `combat_reach`=2.25 WHERE `modelid`=29769; -- 29769 +UPDATE `creature_model_info` SET `bounding_radius`=1.5, `combat_reach`=2.25 WHERE `modelid`=30169; -- 30169 +UPDATE `creature_model_info` SET `bounding_radius`=1.5, `combat_reach`=2.25 WHERE `modelid`=30450; -- 30450 +UPDATE `creature_model_info` SET `bounding_radius`=1.5, `combat_reach`=2.25 WHERE `modelid`=30529; -- 30529 +UPDATE `creature_model_info` SET `bounding_radius`=1.5, `combat_reach`=22.5 WHERE `modelid`=26534; -- 26534 +UPDATE `creature_model_info` SET `bounding_radius`=1.5, `combat_reach`=3 WHERE `modelid`=12208; -- 12208 +UPDATE `creature_model_info` SET `bounding_radius`=1.5, `combat_reach`=3 WHERE `modelid`=12210; -- 12210 +UPDATE `creature_model_info` SET `bounding_radius`=1.5, `combat_reach`=3 WHERE `modelid`=15336; -- 15336 +UPDATE `creature_model_info` SET `bounding_radius`=1.5, `combat_reach`=3 WHERE `modelid`=26216; -- 26216 +UPDATE `creature_model_info` SET `bounding_radius`=1.5, `combat_reach`=5 WHERE `modelid`=15512; -- 15512 +UPDATE `creature_model_info` SET `bounding_radius`=1.5, `combat_reach`=6 WHERE `modelid`=15742; -- 15742 +UPDATE `creature_model_info` SET `bounding_radius`=1.55, `combat_reach`=5 WHERE `modelid`=26968; -- 26968 +UPDATE `creature_model_info` SET `bounding_radius`=1.55, `combat_reach`=5 WHERE `modelid`=29815; -- 29815 +UPDATE `creature_model_info` SET `bounding_radius`=1.56, `combat_reach`=2.275 WHERE `modelid`=6085; -- 6085 +UPDATE `creature_model_info` SET `bounding_radius`=1.6, `combat_reach`=6 WHERE `modelid`=15376; -- 15376 +UPDATE `creature_model_info` SET `bounding_radius`=1.668, `combat_reach`=6 WHERE `modelid`=4088; -- 4088 +UPDATE `creature_model_info` SET `bounding_radius`=1.725, `combat_reach`=3.45 WHERE `modelid`=6375; -- 6375 +UPDATE `creature_model_info` SET `bounding_radius`=1.75, `combat_reach`=2.625 WHERE `modelid`=20397; -- 20397 +UPDATE `creature_model_info` SET `bounding_radius`=1.75, `combat_reach`=5.25 WHERE `modelid`=27027; -- 27027 +UPDATE `creature_model_info` SET `bounding_radius`=1.75, `combat_reach`=5.25 WHERE `modelid`=28133; -- 28133 +UPDATE `creature_model_info` SET `bounding_radius`=1.78925, `combat_reach`=1.7 WHERE `modelid`=26706; -- 26706 +UPDATE `creature_model_info` SET `bounding_radius`=1.8 WHERE `modelid`=18287; -- 18287 +UPDATE `creature_model_info` SET `bounding_radius`=1.8, `combat_reach`=1.8 WHERE `modelid`=7672; -- 7672 +UPDATE `creature_model_info` SET `bounding_radius`=1.95, `combat_reach`=3.9 WHERE `modelid`=9584; -- 9584 +UPDATE `creature_model_info` SET `bounding_radius`=1.967, `combat_reach`=1.5 WHERE `modelid`=181; -- 181 +UPDATE `creature_model_info` SET `bounding_radius`=10, `combat_reach`=10 WHERE `modelid`=26100; -- 26100 +UPDATE `creature_model_info` SET `bounding_radius`=10, `combat_reach`=4 WHERE `modelid`=27653; -- 27653 +UPDATE `creature_model_info` SET `bounding_radius`=2 WHERE `modelid`=26759; -- 26759 +UPDATE `creature_model_info` SET `bounding_radius`=2, `combat_reach`=1.5 WHERE `modelid`=22501; -- 22501 +UPDATE `creature_model_info` SET `bounding_radius`=2, `combat_reach`=2 WHERE `modelid`=22981; -- 22981 +UPDATE `creature_model_info` SET `bounding_radius`=2, `combat_reach`=2 WHERE `modelid`=23352; -- 23352 +UPDATE `creature_model_info` SET `bounding_radius`=2, `combat_reach`=2 WHERE `modelid`=26707; -- 26707 +UPDATE `creature_model_info` SET `bounding_radius`=2, `combat_reach`=2 WHERE `modelid`=30792; -- 30792 +UPDATE `creature_model_info` SET `bounding_radius`=2, `combat_reach`=2.5 WHERE `modelid`=24555; -- 24555 +UPDATE `creature_model_info` SET `bounding_radius`=2, `combat_reach`=22 WHERE `modelid`=23447; -- 23447 +UPDATE `creature_model_info` SET `bounding_radius`=2, `combat_reach`=3 WHERE `modelid`=30326; -- 30326 +UPDATE `creature_model_info` SET `bounding_radius`=2, `combat_reach`=4 WHERE `modelid`=31664; -- 31664 +UPDATE `creature_model_info` SET `bounding_radius`=2.015, `combat_reach`=6.5 WHERE `modelid`=26533; -- 26533 +UPDATE `creature_model_info` SET `bounding_radius`=2.25, `combat_reach`=1.875 WHERE `modelid`=15878; -- 15878 +UPDATE `creature_model_info` SET `bounding_radius`=2.3, `combat_reach`=2.3 WHERE `modelid`=29890; -- 29890 +UPDATE `creature_model_info` SET `bounding_radius`=2.4, `combat_reach`=1.5 WHERE `modelid`=21392; -- 21392 +UPDATE `creature_model_info` SET `bounding_radius`=2.5, `combat_reach`=3.125 WHERE `modelid`=7845; -- 7845 +UPDATE `creature_model_info` SET `bounding_radius`=2.625, `combat_reach`=5.25 WHERE `modelid`=6378; -- 6378 +UPDATE `creature_model_info` SET `bounding_radius`=2.6825, `combat_reach`=3.75 WHERE `modelid`=11318; -- 11318 +UPDATE `creature_model_info` SET `bounding_radius`=2.69, `combat_reach`=3 WHERE `modelid`=22336; -- 22336 +UPDATE `creature_model_info` SET `bounding_radius`=2.7, `combat_reach`=2.7 WHERE `modelid`=8270; -- 8270 +UPDATE `creature_model_info` SET `bounding_radius`=2.75, `combat_reach`=2.75 WHERE `modelid`=25337; -- 25337 +UPDATE `creature_model_info` SET `bounding_radius`=2.75, `combat_reach`=2.75 WHERE `modelid`=27481; -- 27481 +UPDATE `creature_model_info` SET `bounding_radius`=2.8675, `combat_reach`=7.5 WHERE `modelid`=28651; -- 28651 +UPDATE `creature_model_info` SET `bounding_radius`=2.9505, `combat_reach`=2.25 WHERE `modelid`=8311; -- 8311 +UPDATE `creature_model_info` SET `bounding_radius`=3 WHERE `modelid`=25249; -- 25249 +UPDATE `creature_model_info` SET `bounding_radius`=3 WHERE `modelid`=26352; -- 26352 +UPDATE `creature_model_info` SET `bounding_radius`=3, `combat_reach`=15 WHERE `modelid`=7271; -- 7271 +UPDATE `creature_model_info` SET `bounding_radius`=3, `combat_reach`=3 WHERE `modelid`=22353; -- 22353 +UPDATE `creature_model_info` SET `bounding_radius`=3, `combat_reach`=3 WHERE `modelid`=26644; -- 26644 +UPDATE `creature_model_info` SET `bounding_radius`=3, `combat_reach`=4.5 WHERE `modelid`=12002; -- 12002 +UPDATE `creature_model_info` SET `bounding_radius`=3, `combat_reach`=5.67 WHERE `modelid`=15654; -- 15654 +UPDATE `creature_model_info` SET `bounding_radius`=3.1, `combat_reach`=10 WHERE `modelid`=28008; -- 28008 +UPDATE `creature_model_info` SET `bounding_radius`=3.26, `combat_reach`=3 WHERE `modelid`=15439; -- 15439 +UPDATE `creature_model_info` SET `bounding_radius`=3.75, `combat_reach`=3.75 WHERE `modelid`=27072; -- 27072 +UPDATE `creature_model_info` SET `bounding_radius`=3.801, `combat_reach`=3.75 WHERE `modelid`=13489; -- 13489 +UPDATE `creature_model_info` SET `bounding_radius`=3.934, `combat_reach`=3 WHERE `modelid`=22327; -- 22327 +UPDATE `creature_model_info` SET `bounding_radius`=4 WHERE `modelid`=27972; -- 27972 +UPDATE `creature_model_info` SET `bounding_radius`=4, `combat_reach`=4 WHERE `modelid`=25325; -- 25325 +UPDATE `creature_model_info` SET `bounding_radius`=4.5, `combat_reach`=6 WHERE `modelid`=23413; -- 23413 +UPDATE `creature_model_info` SET `bounding_radius`=4.5624, `combat_reach`=7.2 WHERE `modelid`=27008; -- 27008 +UPDATE `creature_model_info` SET `bounding_radius`=5, `combat_reach`=12.5 WHERE `modelid`=17445; -- 17445 +UPDATE `creature_model_info` SET `bounding_radius`=6.5, `combat_reach`=19.5 WHERE `modelid`=30652; -- 30652 +UPDATE `creature_model_info` SET `bounding_radius`=7, `combat_reach`=14 WHERE `modelid`=25194; -- 25194 +UPDATE `creature_model_info` SET `combat_reach`=0.1 WHERE `modelid`=26557; -- 26557 +UPDATE `creature_model_info` SET `combat_reach`=0.15 WHERE `modelid`=1160; -- 1160 +UPDATE `creature_model_info` SET `combat_reach`=0.15 WHERE `modelid`=24719; -- 24719 +UPDATE `creature_model_info` SET `combat_reach`=0.15 WHERE `modelid`=2536; -- 2536 +UPDATE `creature_model_info` SET `combat_reach`=0.15 WHERE `modelid`=26530; -- 26530 +UPDATE `creature_model_info` SET `combat_reach`=0.15 WHERE `modelid`=26531; -- 26531 +UPDATE `creature_model_info` SET `combat_reach`=0.15 WHERE `modelid`=26547; -- 26547 +UPDATE `creature_model_info` SET `combat_reach`=0.15 WHERE `modelid`=27861; -- 27861 +UPDATE `creature_model_info` SET `combat_reach`=0.2 WHERE `modelid`=26517; -- 26517 +UPDATE `creature_model_info` SET `combat_reach`=0.2 WHERE `modelid`=26518; -- 26518 +UPDATE `creature_model_info` SET `combat_reach`=0.2 WHERE `modelid`=26519; -- 26519 +UPDATE `creature_model_info` SET `combat_reach`=0.2 WHERE `modelid`=26521; -- 26521 +UPDATE `creature_model_info` SET `combat_reach`=0.2 WHERE `modelid`=27881; -- 27881 +UPDATE `creature_model_info` SET `combat_reach`=0.25 WHERE `modelid`=16259; -- 16259 +UPDATE `creature_model_info` SET `combat_reach`=0.25 WHERE `modelid`=17200; -- 17200 +UPDATE `creature_model_info` SET `combat_reach`=0.3 WHERE `modelid`=25656; -- 25656 +UPDATE `creature_model_info` SET `combat_reach`=0.3 WHERE `modelid`=27718; -- 27718 +UPDATE `creature_model_info` SET `combat_reach`=0.3125 WHERE `modelid`=26524; -- 26524 +UPDATE `creature_model_info` SET `combat_reach`=0.3125 WHERE `modelid`=5966; -- 5966 +UPDATE `creature_model_info` SET `combat_reach`=0.35 WHERE `modelid`=22769; -- 22769 +UPDATE `creature_model_info` SET `combat_reach`=0.35 WHERE `modelid`=23501; -- 23501 +UPDATE `creature_model_info` SET `combat_reach`=0.375 WHERE `modelid`=27719; -- 27719 +UPDATE `creature_model_info` SET `combat_reach`=0.375 WHERE `modelid`=27720; -- 27720 +UPDATE `creature_model_info` SET `combat_reach`=0.4 WHERE `modelid`=26526; -- 26526 +UPDATE `creature_model_info` SET `combat_reach`=0.5 WHERE `modelid`=1206; -- 1206 +UPDATE `creature_model_info` SET `combat_reach`=0.5 WHERE `modelid`=26193; -- 26193 +UPDATE `creature_model_info` SET `combat_reach`=0.5 WHERE `modelid`=28078; -- 28078 +UPDATE `creature_model_info` SET `combat_reach`=0.5 WHERE `modelid`=2954; -- 2954 +UPDATE `creature_model_info` SET `combat_reach`=0.5 WHERE `modelid`=2955; -- 2955 +UPDATE `creature_model_info` SET `combat_reach`=0.5 WHERE `modelid`=2957; -- 2957 +UPDATE `creature_model_info` SET `combat_reach`=0.5 WHERE `modelid`=5448; -- 5448 +UPDATE `creature_model_info` SET `combat_reach`=0.5 WHERE `modelid`=5554; -- 5554 +UPDATE `creature_model_info` SET `combat_reach`=0.5 WHERE `modelid`=5555; -- 5555 +UPDATE `creature_model_info` SET `combat_reach`=0.5 WHERE `modelid`=5556; -- 5556 +UPDATE `creature_model_info` SET `combat_reach`=0.5 WHERE `modelid`=5585; -- 5585 +UPDATE `creature_model_info` SET `combat_reach`=0.5 WHERE `modelid`=5586; -- 5586 +UPDATE `creature_model_info` SET `combat_reach`=0.5 WHERE `modelid`=9563; -- 9563 +UPDATE `creature_model_info` SET `combat_reach`=0.6 WHERE `modelid`=26056; -- 26056 +UPDATE `creature_model_info` SET `combat_reach`=0.6 WHERE `modelid`=27681; -- 27681 +UPDATE `creature_model_info` SET `combat_reach`=0.6 WHERE `modelid`=27682; -- 27682 +UPDATE `creature_model_info` SET `combat_reach`=0.64 WHERE `modelid`=27690; -- 27690 +UPDATE `creature_model_info` SET `combat_reach`=0.6584746 WHERE `modelid`=9750; -- 9750 +UPDATE `creature_model_info` SET `combat_reach`=0.675 WHERE `modelid`=3956; -- 3956 +UPDATE `creature_model_info` SET `combat_reach`=0.75 WHERE `modelid`=26442; -- 26442 +UPDATE `creature_model_info` SET `combat_reach`=0.75 WHERE `modelid`=4449; -- 4449 +UPDATE `creature_model_info` SET `combat_reach`=0.8 WHERE `modelid`=27700; -- 27700 +UPDATE `creature_model_info` SET `combat_reach`=0.8, `gender`=2 WHERE `modelid`=19595; -- 19595 +UPDATE `creature_model_info` SET `combat_reach`=0.825 WHERE `modelid`=28318; -- 28318 +UPDATE `creature_model_info` SET `combat_reach`=0.85 WHERE `modelid`=525; -- 525 +UPDATE `creature_model_info` SET `combat_reach`=0.9 WHERE `modelid`=20833; -- 20833 +UPDATE `creature_model_info` SET `combat_reach`=0.9 WHERE `modelid`=23519; -- 23519 +UPDATE `creature_model_info` SET `combat_reach`=0.9 WHERE `modelid`=2540; -- 2540 +UPDATE `creature_model_info` SET `combat_reach`=1 WHERE `modelid`=1418; -- 1418 +UPDATE `creature_model_info` SET `combat_reach`=1 WHERE `modelid`=23567; -- 23567 +UPDATE `creature_model_info` SET `combat_reach`=1 WHERE `modelid`=25768; -- 25768 +UPDATE `creature_model_info` SET `combat_reach`=1.05 WHERE `modelid`=10957; -- 10957 +UPDATE `creature_model_info` SET `combat_reach`=1.05 WHERE `modelid`=23513; -- 23513 +UPDATE `creature_model_info` SET `combat_reach`=1.084746 WHERE `modelid`=1250; -- 1250 +UPDATE `creature_model_info` SET `combat_reach`=1.125 WHERE `modelid`=20263; -- 20263 +UPDATE `creature_model_info` SET `combat_reach`=1.125 WHERE `modelid`=23514; -- 23514 +UPDATE `creature_model_info` SET `combat_reach`=1.153846 WHERE `modelid`=25754; -- 25754 +UPDATE `creature_model_info` SET `combat_reach`=1.2 WHERE `modelid`=1041; -- 1041 +UPDATE `creature_model_info` SET `combat_reach`=1.25 WHERE `modelid`=27726; -- 27726 +UPDATE `creature_model_info` SET `combat_reach`=1.25 WHERE `modelid`=28618; -- 28618 +UPDATE `creature_model_info` SET `combat_reach`=1.25 WHERE `modelid`=31727; -- 31727 +UPDATE `creature_model_info` SET `combat_reach`=1.35 WHERE `modelid`=27820; -- 27820 +UPDATE `creature_model_info` SET `combat_reach`=1.35 WHERE `modelid`=4636; -- 4636 +UPDATE `creature_model_info` SET `combat_reach`=1.355085 WHERE `modelid`=2437; -- 2437 +UPDATE `creature_model_info` SET `combat_reach`=1.355085 WHERE `modelid`=598; -- 598 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=11804; -- 11804 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=12200; -- 12200 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=1427; -- 1427 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=1429; -- 1429 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=1431; -- 1431 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=1433; -- 1433 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=1434; -- 1434 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=1436; -- 1436 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=1437; -- 1437 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=1438; -- 1438 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=1439; -- 1439 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=1440; -- 1440 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=1443; -- 1443 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=1444; -- 1444 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=1445; -- 1445 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=1446; -- 1446 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=1448; -- 1448 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=1450; -- 1450 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=15242; -- 15242 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=15253; -- 15253 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=1525; -- 1525 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=1541; -- 1541 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=15594; -- 15594 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=17560; -- 17560 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=17585; -- 17585 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=17588; -- 17588 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=17598; -- 17598 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=17599; -- 17599 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=17600; -- 17600 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=17602; -- 17602 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=17603; -- 17603 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=17604; -- 17604 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=17606; -- 17606 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=17609; -- 17609 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=17612; -- 17612 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=17616; -- 17616 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=17619; -- 17619 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=17648; -- 17648 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=17680; -- 17680 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=17691; -- 17691 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=17705; -- 17705 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=17728; -- 17728 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=17755; -- 17755 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=17756; -- 17756 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=17757; -- 17757 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=17763; -- 17763 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=17766; -- 17766 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=17767; -- 17767 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=17818; -- 17818 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=17823; -- 17823 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=17824; -- 17824 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=17833; -- 17833 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=17837; -- 17837 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=17838; -- 17838 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=17955; -- 17955 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=17956; -- 17956 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=17973; -- 17973 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=17974; -- 17974 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=18027; -- 18027 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=18214; -- 18214 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=18221; -- 18221 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=18222; -- 18222 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=18281; -- 18281 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=18282; -- 18282 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=18284; -- 18284 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=18285; -- 18285 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=18300; -- 18300 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=18301; -- 18301 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=18302; -- 18302 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=18307; -- 18307 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=18324; -- 18324 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=18418; -- 18418 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=18460; -- 18460 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=18462; -- 18462 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=18464; -- 18464 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=18512; -- 18512 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=18513; -- 18513 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=18514; -- 18514 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=18528; -- 18528 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=18529; -- 18529 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=18530; -- 18530 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=18538; -- 18538 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=18549; -- 18549 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=18570; -- 18570 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=18626; -- 18626 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=18642; -- 18642 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=18656; -- 18656 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=19108; -- 19108 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=19213; -- 19213 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=19284; -- 19284 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=19297; -- 19297 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=19720; -- 19720 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=19721; -- 19721 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=20279; -- 20279 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=20312; -- 20312 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=20333; -- 20333 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=20334; -- 20334 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=20388; -- 20388 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=20398; -- 20398 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=20478; -- 20478 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=20610; -- 20610 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=20660; -- 20660 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=20661; -- 20661 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=20668; -- 20668 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=20694; -- 20694 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=20962; -- 20962 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=21039; -- 21039 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=21156; -- 21156 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=21273; -- 21273 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=21422; -- 21422 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=21440; -- 21440 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=21793; -- 21793 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=22003; -- 22003 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=22042; -- 22042 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=22044; -- 22044 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=22088; -- 22088 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=22089; -- 22089 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=22120; -- 22120 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=22124; -- 22124 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=22125; -- 22125 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=22127; -- 22127 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=22181; -- 22181 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=22199; -- 22199 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=22243; -- 22243 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=22474; -- 22474 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=22475; -- 22475 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=22485; -- 22485 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=22611; -- 22611 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=22719; -- 22719 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=22750; -- 22750 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=22873; -- 22873 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=23131; -- 23131 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=23136; -- 23136 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=23137; -- 23137 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=23138; -- 23138 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=23337; -- 23337 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=23398; -- 23398 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=23434; -- 23434 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=23464; -- 23464 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=23483; -- 23483 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=23681; -- 23681 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=23772; -- 23772 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=23774; -- 23774 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=23783; -- 23783 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=23793; -- 23793 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=23826; -- 23826 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=23962; -- 23962 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=23999; -- 23999 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=24009; -- 24009 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=24071; -- 24071 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=24072; -- 24072 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=24235; -- 24235 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=24256; -- 24256 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=24354; -- 24354 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=24357; -- 24357 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=24607; -- 24607 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=24826; -- 24826 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=25071; -- 25071 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=25166; -- 25166 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=25209; -- 25209 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=25318; -- 25318 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=25594; -- 25594 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=25603; -- 25603 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=25604; -- 25604 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=25605; -- 25605 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=25607; -- 25607 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=25608; -- 25608 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=25609; -- 25609 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=25610; -- 25610 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=25611; -- 25611 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=25613; -- 25613 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=25614; -- 25614 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=25615; -- 25615 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=25620; -- 25620 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=25621; -- 25621 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=25622; -- 25622 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=25623; -- 25623 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=25626; -- 25626 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=25635; -- 25635 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=25636; -- 25636 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=25637; -- 25637 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=25644; -- 25644 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=25645; -- 25645 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=25646; -- 25646 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=25647; -- 25647 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=25648; -- 25648 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=25649; -- 25649 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=25650; -- 25650 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=25651; -- 25651 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=25655; -- 25655 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=25673; -- 25673 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=25674; -- 25674 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=25692; -- 25692 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=25748; -- 25748 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=25754; -- 25754 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=25756; -- 25756 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=25757; -- 25757 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=25758; -- 25758 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=25759; -- 25759 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=25793; -- 25793 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=25794; -- 25794 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=25795; -- 25795 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=25797; -- 25797 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=25799; -- 25799 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=25800; -- 25800 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=25801; -- 25801 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=25806; -- 25806 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=25807; -- 25807 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=25874; -- 25874 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=25875; -- 25875 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=25876; -- 25876 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=25877; -- 25877 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=25878; -- 25878 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=25879; -- 25879 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=25880; -- 25880 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=25881; -- 25881 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=25882; -- 25882 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=25889; -- 25889 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=25901; -- 25901 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=25952; -- 25952 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=25953; -- 25953 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=25954; -- 25954 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=25955; -- 25955 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=25983; -- 25983 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=25987; -- 25987 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=25988; -- 25988 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=25989; -- 25989 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=25990; -- 25990 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=25992; -- 25992 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=25993; -- 25993 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=25994; -- 25994 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=25995; -- 25995 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=26065; -- 26065 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=26067; -- 26067 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=26068; -- 26068 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=26069; -- 26069 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=26070; -- 26070 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=26072; -- 26072 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=26073; -- 26073 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=26074; -- 26074 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=26075; -- 26075 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=26138; -- 26138 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=26212; -- 26212 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=26213; -- 26213 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=26218; -- 26218 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=26220; -- 26220 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=26239; -- 26239 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=26299; -- 26299 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=26303; -- 26303 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=26307; -- 26307 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=26309; -- 26309 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=26310; -- 26310 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=26311; -- 26311 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=26312; -- 26312 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=26313; -- 26313 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=26321; -- 26321 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=26330; -- 26330 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=26331; -- 26331 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=26335; -- 26335 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=26338; -- 26338 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=26339; -- 26339 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=26347; -- 26347 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=26362; -- 26362 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=26363; -- 26363 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=26372; -- 26372 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=26373; -- 26373 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=26375; -- 26375 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=26376; -- 26376 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=26377; -- 26377 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=26386; -- 26386 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=26390; -- 26390 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=26391; -- 26391 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=26395; -- 26395 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=26396; -- 26396 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=26397; -- 26397 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=26398; -- 26398 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=26414; -- 26414 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=26417; -- 26417 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=26438; -- 26438 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=26440; -- 26440 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=26441; -- 26441 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=26443; -- 26443 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=26444; -- 26444 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=26445; -- 26445 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=26463; -- 26463 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=26464; -- 26464 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=26465; -- 26465 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=26494; -- 26494 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=26503; -- 26503 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=26505; -- 26505 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=26570; -- 26570 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=26764; -- 26764 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=26766; -- 26766 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=26779; -- 26779 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=26832; -- 26832 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=26937; -- 26937 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=26997; -- 26997 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=26998; -- 26998 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=27019; -- 27019 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=27042; -- 27042 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=27068; -- 27068 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=27114; -- 27114 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=27115; -- 27115 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=27157; -- 27157 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=27158; -- 27158 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=27160; -- 27160 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=27170; -- 27170 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=27172; -- 27172 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=27173; -- 27173 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=27174; -- 27174 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=27175; -- 27175 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=27177; -- 27177 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=27181; -- 27181 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=27183; -- 27183 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=27185; -- 27185 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=27187; -- 27187 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=27191; -- 27191 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=27192; -- 27192 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=27195; -- 27195 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=27287; -- 27287 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=27323; -- 27323 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=27328; -- 27328 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=27332; -- 27332 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=27333; -- 27333 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=27334; -- 27334 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=27393; -- 27393 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=27398; -- 27398 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=27449; -- 27449 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=27509; -- 27509 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=27549; -- 27549 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=27556; -- 27556 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=27559; -- 27559 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=27743; -- 27743 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=27756; -- 27756 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=27766; -- 27766 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=27782; -- 27782 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=27786; -- 27786 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=27787; -- 27787 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=27799; -- 27799 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=27800; -- 27800 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=27801; -- 27801 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=27822; -- 27822 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=27908; -- 27908 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=27909; -- 27909 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=27910; -- 27910 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=27911; -- 27911 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=27912; -- 27912 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=27915; -- 27915 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=27944; -- 27944 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=27949; -- 27949 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=27952; -- 27952 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=27954; -- 27954 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=27956; -- 27956 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=27958; -- 27958 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=27962; -- 27962 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=27963; -- 27963 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=27965; -- 27965 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=27998; -- 27998 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=27999; -- 27999 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=28000; -- 28000 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=28006; -- 28006 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=28019; -- 28019 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=28066; -- 28066 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=28119; -- 28119 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=28120; -- 28120 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=28123; -- 28123 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=28124; -- 28124 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=28125; -- 28125 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=28145; -- 28145 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=28147; -- 28147 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=28148; -- 28148 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=28149; -- 28149 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=28150; -- 28150 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=28151; -- 28151 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=28152; -- 28152 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=28153; -- 28153 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=28154; -- 28154 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=28155; -- 28155 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=28156; -- 28156 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=28159; -- 28159 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=28161; -- 28161 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=28163; -- 28163 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=28164; -- 28164 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=28166; -- 28166 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=28168; -- 28168 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=28169; -- 28169 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=28170; -- 28170 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=28172; -- 28172 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=28173; -- 28173 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=28174; -- 28174 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=28176; -- 28176 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=28185; -- 28185 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=28194; -- 28194 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=28198; -- 28198 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=28202; -- 28202 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=28203; -- 28203 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=28204; -- 28204 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=28208; -- 28208 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=28291; -- 28291 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=28317; -- 28317 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=28433; -- 28433 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=28738; -- 28738 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=28755; -- 28755 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=28758; -- 28758 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=28976; -- 28976 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=28987; -- 28987 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=29075; -- 29075 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=29145; -- 29145 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=29146; -- 29146 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=29147; -- 29147 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=29148; -- 29148 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=29489; -- 29489 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=29573; -- 29573 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=2974; -- 2974 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=29828; -- 29828 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=29830; -- 29830 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=29832; -- 29832 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=29833; -- 29833 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=29834; -- 29834 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=29835; -- 29835 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=29836; -- 29836 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=29921; -- 29921 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=30042; -- 30042 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=30156; -- 30156 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=30311; -- 30311 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=30439; -- 30439 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=30685; -- 30685 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=30764; -- 30764 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=30842; -- 30842 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=30863; -- 30863 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=30867; -- 30867 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=3133; -- 3133 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=31548; -- 31548 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=3167; -- 3167 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=31719; -- 31719 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=31720; -- 31720 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=31726; -- 31726 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=31738; -- 31738 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=31762; -- 31762 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=31841; -- 31841 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=3233; -- 3233 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=3246; -- 3246 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=4888; -- 4888 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=5074; -- 5074 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=5082; -- 5082 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=5444; -- 5444 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=5446; -- 5446 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=5545; -- 5545 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=5546; -- 5546 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=5547; -- 5547 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=5551; -- 5551 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=5567; -- 5567 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=7991; -- 7991 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=7992; -- 7992 +UPDATE `creature_model_info` SET `combat_reach`=1.5 WHERE `modelid`=9768; -- 9768 +UPDATE `creature_model_info` SET `combat_reach`=1.5, `gender`=2 WHERE `modelid`=29833; -- 29833 +UPDATE `creature_model_info` SET `combat_reach`=1.5, `gender`=2 WHERE `modelid`=29836; -- 29836 +UPDATE `creature_model_info` SET `combat_reach`=1.575 WHERE `modelid`=24792; -- 24792 +UPDATE `creature_model_info` SET `combat_reach`=1.599153 WHERE `modelid`=9958; -- 9958 +UPDATE `creature_model_info` SET `combat_reach`=1.65 WHERE `modelid`=19744; -- 19744 +UPDATE `creature_model_info` SET `combat_reach`=1.65 WHERE `modelid`=24313; -- 24313 +UPDATE `creature_model_info` SET `combat_reach`=1.65 WHERE `modelid`=24916; -- 24916 +UPDATE `creature_model_info` SET `combat_reach`=1.65 WHERE `modelid`=25947; -- 25947 +UPDATE `creature_model_info` SET `combat_reach`=1.65 WHERE `modelid`=26532; -- 26532 +UPDATE `creature_model_info` SET `combat_reach`=1.65 WHERE `modelid`=27154; -- 27154 +UPDATE `creature_model_info` SET `combat_reach`=1.65 WHERE `modelid`=27215; -- 27215 +UPDATE `creature_model_info` SET `combat_reach`=1.65 WHERE `modelid`=27216; -- 27216 +UPDATE `creature_model_info` SET `combat_reach`=1.65 WHERE `modelid`=27217; -- 27217 +UPDATE `creature_model_info` SET `combat_reach`=1.65 WHERE `modelid`=29076; -- 29076 +UPDATE `creature_model_info` SET `combat_reach`=1.725 WHERE `modelid`=25602; -- 25602 +UPDATE `creature_model_info` SET `combat_reach`=1.725 WHERE `modelid`=25618; -- 25618 +UPDATE `creature_model_info` SET `combat_reach`=1.725 WHERE `modelid`=25619; -- 25619 +UPDATE `creature_model_info` SET `combat_reach`=1.725 WHERE `modelid`=25791; -- 25791 +UPDATE `creature_model_info` SET `combat_reach`=1.725 WHERE `modelid`=26300; -- 26300 +UPDATE `creature_model_info` SET `combat_reach`=1.725 WHERE `modelid`=26374; -- 26374 +UPDATE `creature_model_info` SET `combat_reach`=1.725 WHERE `modelid`=26378; -- 26378 +UPDATE `creature_model_info` SET `combat_reach`=1.725 WHERE `modelid`=26437; -- 26437 +UPDATE `creature_model_info` SET `combat_reach`=1.725 WHERE `modelid`=27465; -- 27465 +UPDATE `creature_model_info` SET `combat_reach`=1.725 WHERE `modelid`=27657; -- 27657 +UPDATE `creature_model_info` SET `combat_reach`=1.725 WHERE `modelid`=28143; -- 28143 +UPDATE `creature_model_info` SET `combat_reach`=1.725 WHERE `modelid`=28144; -- 28144 +UPDATE `creature_model_info` SET `combat_reach`=1.725 WHERE `modelid`=28146; -- 28146 +UPDATE `creature_model_info` SET `combat_reach`=1.725 WHERE `modelid`=28160; -- 28160 +UPDATE `creature_model_info` SET `combat_reach`=1.725 WHERE `modelid`=28162; -- 28162 +UPDATE `creature_model_info` SET `combat_reach`=1.725 WHERE `modelid`=28165; -- 28165 +UPDATE `creature_model_info` SET `combat_reach`=1.725 WHERE `modelid`=28167; -- 28167 +UPDATE `creature_model_info` SET `combat_reach`=1.725 WHERE `modelid`=28171; -- 28171 +UPDATE `creature_model_info` SET `combat_reach`=1.725 WHERE `modelid`=28179; -- 28179 +UPDATE `creature_model_info` SET `combat_reach`=1.725 WHERE `modelid`=28199; -- 28199 +UPDATE `creature_model_info` SET `combat_reach`=1.725 WHERE `modelid`=28432; -- 28432 +UPDATE `creature_model_info` SET `combat_reach`=1.725 WHERE `modelid`=30358; -- 30358 +UPDATE `creature_model_info` SET `combat_reach`=1.725 WHERE `modelid`=30686; -- 30686 +UPDATE `creature_model_info` SET `combat_reach`=1.8 WHERE `modelid`=24358; -- 24358 +UPDATE `creature_model_info` SET `combat_reach`=1.8 WHERE `modelid`=27587; -- 27587 +UPDATE `creature_model_info` SET `combat_reach`=1.8 WHERE `modelid`=27592; -- 27592 +UPDATE `creature_model_info` SET `combat_reach`=1.8 WHERE `modelid`=27886; -- 27886 +UPDATE `creature_model_info` SET `combat_reach`=1.8 WHERE `modelid`=28118; -- 28118 +UPDATE `creature_model_info` SET `combat_reach`=1.8 WHERE `modelid`=30799; -- 30799 +UPDATE `creature_model_info` SET `combat_reach`=1.8 WHERE `modelid`=31736; -- 31736 +UPDATE `creature_model_info` SET `combat_reach`=1.875 WHERE `modelid`=24352; -- 24352 +UPDATE `creature_model_info` SET `combat_reach`=1.875 WHERE `modelid`=26770; -- 26770 +UPDATE `creature_model_info` SET `combat_reach`=1.875 WHERE `modelid`=26771; -- 26771 +UPDATE `creature_model_info` SET `combat_reach`=1.875 WHERE `modelid`=28222; -- 28222 +UPDATE `creature_model_info` SET `combat_reach`=1.95 WHERE `modelid`=26847; -- 26847 +UPDATE `creature_model_info` SET `combat_reach`=1.95 WHERE `modelid`=27616; -- 27616 +UPDATE `creature_model_info` SET `combat_reach`=10 WHERE `modelid`=2718; -- 2718 +UPDATE `creature_model_info` SET `combat_reach`=10 WHERE `modelid`=27225; -- 27225 +UPDATE `creature_model_info` SET `combat_reach`=10 WHERE `modelid`=27813; -- 27813 +UPDATE `creature_model_info` SET `combat_reach`=18 WHERE `modelid`=27035; -- 27035 +UPDATE `creature_model_info` SET `combat_reach`=18 WHERE `modelid`=27979; -- 27979 +UPDATE `creature_model_info` SET `combat_reach`=2.025 WHERE `modelid`=16024; -- 16024 +UPDATE `creature_model_info` SET `combat_reach`=2.025 WHERE `modelid`=24066; -- 24066 +UPDATE `creature_model_info` SET `combat_reach`=2.07 WHERE `modelid`=31713; -- 31713 +UPDATE `creature_model_info` SET `combat_reach`=2.1 WHERE `modelid`=30977; -- 30977 +UPDATE `creature_model_info` SET `combat_reach`=2.1 WHERE `modelid`=30978; -- 30978 +UPDATE `creature_model_info` SET `combat_reach`=2.1 WHERE `modelid`=30979; -- 30979 +UPDATE `creature_model_info` SET `combat_reach`=2.1 WHERE `modelid`=30980; -- 30980 +UPDATE `creature_model_info` SET `combat_reach`=2.1 WHERE `modelid`=30981; -- 30981 +UPDATE `creature_model_info` SET `combat_reach`=2.125 WHERE `modelid`=833; -- 833 +UPDATE `creature_model_info` SET `combat_reach`=2.5 WHERE `modelid`=22256; -- 22256 +UPDATE `creature_model_info` SET `combat_reach`=2.55 WHERE `modelid`=27919; -- 27919 +UPDATE `creature_model_info` SET `combat_reach`=2.55 WHERE `modelid`=27930; -- 27930 +UPDATE `creature_model_info` SET `combat_reach`=2.55 WHERE `modelid`=27931; -- 27931 +UPDATE `creature_model_info` SET `combat_reach`=2.625 WHERE `modelid`=30821; -- 30821 +UPDATE `creature_model_info` SET `combat_reach`=2.625 WHERE `modelid`=31819; -- 31819 +UPDATE `creature_model_info` SET `combat_reach`=2.9325 WHERE `modelid`=27917; -- 27917 +UPDATE `creature_model_info` SET `combat_reach`=3 WHERE `modelid`=13109; -- 13109 +UPDATE `creature_model_info` SET `combat_reach`=3 WHERE `modelid`=13110; -- 13110 +UPDATE `creature_model_info` SET `combat_reach`=3 WHERE `modelid`=13172; -- 13172 +UPDATE `creature_model_info` SET `combat_reach`=3 WHERE `modelid`=17679; -- 17679 +UPDATE `creature_model_info` SET `combat_reach`=3 WHERE `modelid`=23823; -- 23823 +UPDATE `creature_model_info` SET `combat_reach`=3 WHERE `modelid`=26101; -- 26101 +UPDATE `creature_model_info` SET `combat_reach`=3.3 WHERE `modelid`=27064; -- 27064 +UPDATE `creature_model_info` SET `combat_reach`=3.45 WHERE `modelid`=20750; -- 20750 +UPDATE `creature_model_info` SET `combat_reach`=3.5 WHERE `modelid`=1988; -- 1988 +UPDATE `creature_model_info` SET `combat_reach`=3.75 WHERE `modelid`=28183; -- 28183 +UPDATE `creature_model_info` SET `combat_reach`=3.75 WHERE `modelid`=30972; -- 30972 +UPDATE `creature_model_info` SET `combat_reach`=3.75 WHERE `modelid`=30973; -- 30973 +UPDATE `creature_model_info` SET `combat_reach`=35 WHERE `modelid`=24934; -- 24934 +UPDATE `creature_model_info` SET `combat_reach`=4 WHERE `modelid`=26922; -- 26922 +UPDATE `creature_model_info` SET `combat_reach`=4 WHERE `modelid`=28134; -- 28134 +UPDATE `creature_model_info` SET `combat_reach`=4.05 WHERE `modelid`=28207; -- 28207 +UPDATE `creature_model_info` SET `combat_reach`=4.05 WHERE `modelid`=29820; -- 29820 +UPDATE `creature_model_info` SET `combat_reach`=4.375 WHERE `modelid`=27226; -- 27226 +UPDATE `creature_model_info` SET `combat_reach`=4.5 WHERE `modelid`=24484; -- 24484 +UPDATE `creature_model_info` SET `combat_reach`=5 WHERE `modelid`=24497; -- 24497 +UPDATE `creature_model_info` SET `combat_reach`=5 WHERE `modelid`=28132; -- 28132 +UPDATE `creature_model_info` SET `combat_reach`=5.25 WHERE `modelid`=24307; -- 24307 +UPDATE `creature_model_info` SET `combat_reach`=5.85 WHERE `modelid`=25218; -- 25218 +UPDATE `creature_model_info` SET `combat_reach`=6 WHERE `modelid`=12029; -- 12029 +UPDATE `creature_model_info` SET `combat_reach`=6 WHERE `modelid`=27074; -- 27074 +UPDATE `creature_model_info` SET `combat_reach`=6.75 WHERE `modelid`=25012; -- 25012 +UPDATE `creature_model_info` SET `combat_reach`=7.5 WHERE `modelid`=27071; -- 27071 +UPDATE `creature_model_info` SET `combat_reach`=8 WHERE `modelid`=27408; -- 27408 +UPDATE `creature_model_info` SET `combat_reach`=9 WHERE `modelid`=27982; -- 27982 +UPDATE `creature_model_info` SET `gender`=0 WHERE `modelid`=1236; -- 1236 +UPDATE `creature_model_info` SET `gender`=0 WHERE `modelid`=13069; -- 13069 +UPDATE `creature_model_info` SET `gender`=0 WHERE `modelid`=16436; -- 16436 +UPDATE `creature_model_info` SET `gender`=0 WHERE `modelid`=17265; -- 17265 +UPDATE `creature_model_info` SET `gender`=0 WHERE `modelid`=17266; -- 17266 +UPDATE `creature_model_info` SET `gender`=0 WHERE `modelid`=17905; -- 17905 +UPDATE `creature_model_info` SET `gender`=0 WHERE `modelid`=20115; -- 20115 +UPDATE `creature_model_info` SET `gender`=0 WHERE `modelid`=20116; -- 20116 +UPDATE `creature_model_info` SET `gender`=0 WHERE `modelid`=20118; -- 20118 +UPDATE `creature_model_info` SET `gender`=0 WHERE `modelid`=2289; -- 2289 +UPDATE `creature_model_info` SET `gender`=0 WHERE `modelid`=22910; -- 22910 +UPDATE `creature_model_info` SET `gender`=0 WHERE `modelid`=27377; -- 27377 +UPDATE `creature_model_info` SET `gender`=0 WHERE `modelid`=28749; -- 28749 +UPDATE `creature_model_info` SET `gender`=0 WHERE `modelid`=28750; -- 28750 +UPDATE `creature_model_info` SET `gender`=0 WHERE `modelid`=28930; -- 28930 +UPDATE `creature_model_info` SET `gender`=0 WHERE `modelid`=4859; -- 4859 +UPDATE `creature_model_info` SET `gender`=0 WHERE `modelid`=892; -- 892 +UPDATE `creature_model_info` SET `gender`=0 WHERE `modelid`=918; -- 918 +UPDATE `creature_model_info` SET `gender`=1 WHERE `modelid`=2281; -- 2281 +UPDATE `creature_model_info` SET `gender`=1 WHERE `modelid`=9786; -- 9786 +UPDATE `creature_model_info` SET `gender`=2 WHERE `modelid`=18722; -- 18722 +UPDATE `creature_model_info` SET `gender`=2 WHERE `modelid`=24808; -- 24808 +UPDATE `creature_model_info` SET `gender`=2 WHERE `modelid`=29103; -- 29103 diff --git a/sql/updates/world/2014_09_06_05_world_creature_template.sql b/sql/updates/world/2014_09_06_05_world_creature_template.sql new file mode 100644 index 00000000000..6578b2c7a91 --- /dev/null +++ b/sql/updates/world/2014_09_06_05_world_creature_template.sql @@ -0,0 +1,2 @@ +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `BaseAttackTime` = 0; +UPDATE `creature_template` SET `RangeAttackTime`=2000 WHERE `RangeAttackTime` = 0; diff --git a/sql/updates/world/2014_09_06_06_world_locales_gameobject.sql b/sql/updates/world/2014_09_06_06_world_locales_gameobject.sql new file mode 100644 index 00000000000..b749c999434 --- /dev/null +++ b/sql/updates/world/2014_09_06_06_world_locales_gameobject.sql @@ -0,0 +1,51 @@ +SET NAMES 'UTF8'; + +UPDATE `locales_gameobject` SET `name_loc2` = "Disparu : caporal Keeshan", `name_loc3` = "Vermisst: Korporal Keeshan ", `name_loc6` = "Desaparecido: Cabo Keeshan ", `name_loc8` = "Пропавший без вести: капрал Кеешан" WHERE `entry` = 1726; -- old - fr: Disparu !; de: Vermisst:; es: ¡Desaparecido!; ru: Пропали без вести! +UPDATE `locales_gameobject` SET `name_loc2` = "Botte de plantes ", `name_loc3` = "Pflanzenbündel ", `name_loc6` = "Paquete de plantas ", `name_loc8` = "Пучок трав" WHERE `entry` = 17282; -- old - fr: Cheveux de Bathran ; de: Bathranshaar ; es: Cabello de Bathran; ru: Батранов волос +UPDATE `locales_gameobject` SET `name_loc2` = "Hivernale", `name_loc3` = "Winterbiss ", `name_loc6` = "Invernalia ", `name_loc8` = "Морозник" WHERE `entry` = 2044; -- old - fr: Dents de dragon; de: Drachenzahn; es: Dientes de dragón ; ru: Драконьи зубы +UPDATE `locales_gameobject` SET `name_loc2` = "Avis de recherche : Lieutenant Tripecroc ", `name_loc3` = "GESUCHT: Leutnant Fangor ", `name_loc6` = "Se busca: Teniente Fangore ", `name_loc8` = "Разыскивается: лейтенант Фангор " WHERE `entry` = 47; -- old - fr: Avis de recherche !; de: GESUCHT: ; es: ¡Se busca!; ru: Розыск! +UPDATE `locales_gameobject` SET `name_loc2` = "Cartographie ", `name_loc3` = "Kartografie", `name_loc6` = "Cartografía", `name_loc8` = "Картография " WHERE `entry` = 58626; -- old - fr: Archéologie; de: Archäologie; es: Arqueología ; ru: Археология +UPDATE `locales_gameobject` SET `name_loc2` = "Tastebière-cadeau de la fête des Brasseurs ", `name_loc3` = "Freibierkrug des Braufests ", `name_loc6` = "Jarra de degustación de la Fiesta de la cerveza de obsequio", `name_loc8` = "Бесплатное пиво Хмельного фестиваля " WHERE `entry` = 186189; -- old - fr: Tastebière sans alcool de la fête des Brasseurs; de: Krug alkoholfreies Braufestbier; es: Jarra de degustación de la Fiesta de la Cerveza sin alcohol ; ru: Безалкогольный пробный напиток Хмельного фестиваля +UPDATE `locales_gameobject` SET `name_loc2` = "Cage de Kraz ", `name_loc3` = "Kraz' Käfig", `name_loc6` = "Jaula de Kraz", `name_loc8` = "Клетка Краза" WHERE `entry` = 187379; -- old - fr: Cage de Norkani; de: Norkanis Käfig ; es: Jaula de Norkani; ru: Клетка Норкани +UPDATE `locales_gameobject` SET `name_loc2` = "Cage de Harkor ", `name_loc3` = "Harkors Käfig", `name_loc6` = "Jaula de Harkor", `name_loc8` = "Клетка Харкора" WHERE `entry` = 187378; -- old - fr: Cage de Bakkalzu ; de: Bakkalzus Käfig; es: Jaula de Bakkalzu ; ru: Клетка Баккальзу +UPDATE `locales_gameobject` SET `name_loc2` = "Paquet de Kraz ", `name_loc3` = "Krazs Päckchen ", `name_loc6` = "Paquete de Kraz", `name_loc8` = "Тюк Краза " WHERE `entry` = 186667; -- old - fr: Paquet de Norkani; de: Norkanis Päckchen; es: Paquete de Norkani; ru: Тюк Норкани +UPDATE `locales_gameobject` SET `name_loc2` = "Coffre de Kraz ", `name_loc3` = "Krazs Truhe", `name_loc6` = "Cofre de Kraz", `name_loc8` = "Сундук Краза" WHERE `entry` = 186658; -- old - fr: Coffre de Norkani; de: Norkanis Truhe ; es: Cofre de Norkani; ru: Сундук Норкани +UPDATE `locales_gameobject` SET `name_loc2` = "Guilde des mineurs de la montagne profonde ", `name_loc3` = "Tiefenbergbaugilde ", `name_loc6` = "Gremio de minería de Montañahonda", `name_loc8` = "Гильдия горняков Тайной Горы" WHERE `entry` = 143344; -- old - fr: Minage & joaillerie de la Montagne profonde; de: Tiefenberg Bergbau & Juwelierskunst; es: Minería y joyería de Montehondo ; ru: Гильдия рудокопов и ювелиров Темной Горы +UPDATE `locales_gameobject` SET `name_loc2` = "Vase d'Ashli ", `name_loc3` = "Ashlis Vase", `name_loc6` = "Jarrón de Ashli", `name_loc8` = "Ваза Эшли " WHERE `entry` = 186671; -- old - fr: Vase de Kasha; de: Kashas Vase; es: Jarrón de Kasha ; ru: Ваза Кайши +UPDATE `locales_gameobject` SET `name_loc2` = "Cage d'Ashli ", `name_loc3` = "Ashlis Käfig ", `name_loc6` = "Jaula de Ashli ", `name_loc8` = "Клетка Эшли " WHERE `entry` = 187380; -- old - fr: Cage de Kasha; de: Kashas Käfig ; es: Jaula de Kasha; ru: Клетка Кайши +UPDATE `locales_gameobject` SET `name_loc2` = "Sac d'Ashli", `name_loc3` = "Ashlis Tasche", `name_loc6` = "Bolsa de Ashli ", `name_loc8` = "Сумка Эшли" WHERE `entry` = 186672; -- old - fr: Sac de Kasha ; de: Kashas Tasche; es: Bolsa de Kasha; ru: Сумка Кайши +UPDATE `locales_gameobject` SET `name_loc2` = "Sacoche de Harkor", `name_loc3` = "Harkors Ranzen ", `name_loc6` = "Cartera de Harkor", `name_loc8` = "Сумка Харкора " WHERE `entry` = 187021; -- old - fr: Sacoche de Bakkalzu; de: Bakkalzus Ranzen ; es: Cartera de Bakkalzu ; ru: Сумка Баккальзу +UPDATE `locales_gameobject` SET `name_loc2` = "Malle de Tanzar", `name_loc3` = "Tanzars Koffer ", `name_loc6` = "Baúl de Tanzar ", `name_loc8` = "Сундучок Танзара" WHERE `entry` = 186648; -- old - fr: Malle d'Hazlek ; de: Hazleks Koffer ; es: Baúl de Hazlek; ru: Сундучок Хазлека +UPDATE `locales_gameobject` SET `name_loc2` = "Cage de Tanzar ", `name_loc3` = "Tanzars Käfig", `name_loc6` = "Jaula de Tanzar", `name_loc8` = "Клетка Танзара" WHERE `entry` = 187377; -- old - fr: Cage d'Hazlek; de: Hazleks Käfig; es: Jaula de Hazlek ; ru: Клетка Хазлека +UPDATE `locales_gameobject` SET `name_loc2` = "Forgeron de Baie-du-Butin", `name_loc3` = "Schmiede von Beutebucht", `name_loc6` = "Herrero de Bahía del Botín ", `name_loc8` = "Кузнец Пиратской Бухты" WHERE `entry` = 169967; -- old - fr: Forge; de: Schmied; es: Herrería; ru: Кузница +UPDATE `locales_gameobject` SET `name_loc2` = "Tonneau de bière de Harkor ", `name_loc3` = "Harkors Braufässchen ", `name_loc6` = "Barril de cerveza de Harkor", `name_loc8` = "Бочонок пива Харкора" WHERE `entry` = 186748; -- old - fr: Tonneau de bière de Bakkalzu ; de: Bakkalzus Braufässchen ; es: Barril de cerveza de Bakkalzu ; ru: Бочонок пива Баккальзу +UPDATE `locales_gameobject` SET `name_loc2` = "Caisses de ravitaillement de la Croisée", `name_loc3` = "Vorratskisten des Wegekreuzes", `name_loc6` = "Cajones de suministros de El Cruce ", `name_loc8` = "Ящики с припасами для Перекрестка " WHERE `entry` = 175708; -- old - fr: Caisse de ravitaillement de la Croisée ; de: Vorratskiste des Wegekreuzes ; es: Cajón de suministros de El Cruce; ru: Ящик с припасами Перекрестка +UPDATE `locales_gameobject` SET `name_loc2` = "Bannière de Karang ", `name_loc3` = "Karangs Banner ", `name_loc6` = "Estandarte de Karang ", `name_loc8` = "Знамя Каранга " WHERE `entry` = 178205; -- old - fr: Bannière de Senani ; de: Senanis Banner ; es: Estandarte de Senani; ru: Знамя Сенани +UPDATE `locales_gameobject` SET `name_loc2` = "Fusée de feu d'artifice, Promotion ", `name_loc3` = "Feuerwerksrakete, Aktion ", `name_loc6` = "Cohete de fuegos artificiales, promoción ", `name_loc8` = "Ракета фейерверка, продвижение" WHERE `entry` = 181886; -- old - fr: Fusée de feu d'artifice violet ; de: Lila Feuerwerksrakete; es: Cohete de fuegos artificiales morado; ru: Лиловая ракета фейерверка +UPDATE `locales_gameobject` SET `name_loc2` = "Bois contaminé ", `name_loc3` = "Besudeltes Holz", `name_loc6` = "Madera mácula", `name_loc8` = "Гнилое дерево " WHERE `entry` = 181916; -- old - fr: Bois gangrené de Satyrnaar ; de: Verdorbenes Satyrnaarholz; es: Madera vil de Satyrnaar ; ru: Связка оскверненной древесины Сатирнаара +UPDATE `locales_gameobject` SET `name_loc2` = "Bateau vers Auberdine", `name_loc3` = "Schiff nach Auberdine", `name_loc6` = "Barco a Auberdine", `name_loc8` = "Корабль в Аубердин" WHERE `entry` = 181985; -- old - fr: Bateau vers Rut'Theran ; de: Schiff nach Rut'Theran ; es: Barco a la Aldea Rut'theran ; ru: Корабль в деревню Рут'Теран +UPDATE `locales_gameobject` SET `name_loc2` = "Enchantement ", `name_loc3` = "Verzauberkunst ", `name_loc6` = "Encantamiento", `name_loc8` = "Наложение чар " WHERE `entry` = 183875; -- old - fr: Enchantement & Calligraphie; de: Verzauberkunst & Inschriftenkunde; es: Encantamiento e inscripción ; ru: Наложение чар и начертание +UPDATE `locales_gameobject` SET `name_loc2` = "Flèche givrante I", `name_loc3` = "Eiskältepfeil I", `name_loc6` = "Flecha helada I", `name_loc8` = "Замораживающая стрела I " WHERE `entry` = 193771; -- old - fr: Piège givrant; de: Eiskältefalle; es: Trampa congelante ; ru: Замораживающая ловушка +UPDATE `locales_gameobject` SET `name_loc2` = "Canon de l'Alliance", `name_loc3` = "Allianz Kannone", `name_loc6` = "Cañón de la alianza", `name_loc8` = "Пушка Альянса " WHERE `entry` = 185122; -- old - fr: Ogres de la Masse-sanglante en grande conversation ; de: Sich unterhaltende Oger der Blutschläger ; es: Ogros de Machacasangre hablando ; ru: Беседующие огры из клана Кровавого Молота +UPDATE `locales_gameobject` SET `name_loc2` = "Tram ", `name_loc3` = "U-Bahn ", `name_loc6` = "Tranvía Subterráneo", `name_loc8` = "Подземка" WHERE `entry` = 176086; -- old - fr: Cuirasse couverte de runes inachevée ; de: Ungeschmiedete runenbedeckte Brustplatte ; es: Coraza cubierta de runas sin forjar ; ru: Заготовка рунической кирасы +UPDATE `locales_gameobject` SET `name_loc2` = "Fleur de peste ", `name_loc3` = "Pestblüte", `name_loc6` = "Flor de peste", `name_loc8` = "Чумоцвет" WHERE `entry` = 176641; -- old - fr: Chagrinelle; de: Trauermoos ; es: Musgopena ; ru: Печаль-трава + +UPDATE `locales_gameobject` SET `name_loc2` = "La Lune la Vallée", `name_loc3` = "Mond über dem Tal", `name_loc8` = "Луна над долиной" WHERE `entry` = 57; -- old - fr: Tablette de savoir scalp-rouge ; de: Schrifttafel der Blutskalpe; ru: Легенды и предания племени Кровавого Скальпа +UPDATE `locales_gameobject` SET `name_loc2` = "Fleur de peste", `name_loc3` = "Pestblüte", `name_loc8` = "Чумоцвет" WHERE `entry` = 176587; -- old - fr: Chagrinelle; de: Trauermoos ; ru: Печаль-трава +UPDATE `locales_gameobject` SET `name_loc2` = "Bannière elfe de sang", `name_loc6` = "Estandarte de los elfos de sangre", `name_loc8` = "Знамя эльфов крови" WHERE `entry` = 185106; -- old - fr: PVP HOLIDAY (H) EotS ; es: PVP HOLIDAY (H) EotS; ru: PVP HOLIDAY (H) EotS +UPDATE `locales_gameobject` SET `name_loc2` = "Boulet et chaîne de Knot", `name_loc6` = "Bola y cadena de Knot", `name_loc8` = "Шар и цепь Уззла" WHERE `entry` = 179511; -- old - fr: Boulet et chaîne de Noué ; es: Knot's Ball and Chain ; ru: Ядро на цепи Уззла +UPDATE `locales_gameobject` SET `name_loc2` = "Drapeau chanteguerre", `name_loc6` = "Bandera Grito de Guerra", `name_loc8` = "Флаг Песни Войны" WHERE `entry` = 179786; -- old - fr: Drapeau de la Horde; es: Bandera de la Horda ; ru: Флаг Орды +UPDATE `locales_gameobject` SET `name_loc2` = "Drapeau d'Aile-argent", `name_loc6` = "Bandera Ala de Plata", `name_loc8` = "Флаг Серебряных Крыльев" WHERE `entry` = 179785; -- old - fr: Drapeau de l'Alliance; es: Bandera de la Alianza ; ru: Флаг Альянса +UPDATE `locales_gameobject` SET `name_loc2` = "Drapeau d'Aile-argent", `name_loc6` = "Bandera Ala de Plata", `name_loc8` = "Флаг Серебряных Крыльев" WHERE `entry` = 179830; -- old - fr: Drapeau de l’Alliance; es: Bandera de la Alianza ; ru: Флаг Альянса +UPDATE `locales_gameobject` SET `name_loc2` = "Drapeau chanteguerre", `name_loc6` = "Bandera Grito de Guerra", `name_loc8` = "Флаг Песни Войны" WHERE `entry` = 179831; -- old - fr: Drapeau de la Horde; es: Bandera de la Horda ; ru: Флаг Орды +UPDATE `locales_gameobject` SET `name_loc2` = "Brasero antique", `name_loc6` = "Blandón antiguo", `name_loc8` = "Древняя жаровня" WHERE `entry` = 20807; -- old - fr: [PÉRIMÉ]Brasero antique; es: [Deprecated for 4.x]Blandón antiguo ; ru: [Deprecated for 4.x]Ancient Brazier +UPDATE `locales_gameobject` SET `name_loc2` = "Décombres de chariot explosif", `name_loc6` = "Restos del coche cohete", `name_loc8` = "Обломки болида" WHERE `entry` = 19868; -- old - fr: [INUTILISÉ pour 4.x] Décombres de chariot explosif ; es: [Deprecated for 4.x]Restos del coche cohete ; ru: [Deprecated for 4.x]Rocket Car Rubble +UPDATE `locales_gameobject` SET `name_loc2` = "Décombres de chariot explosif", `name_loc6` = "Restos del coche cohete", `name_loc8` = "Обломки болида" WHERE `entry` = 19869; -- old - fr: [INUTILISÉ pour 4.x] Décombres de chariot explosif ; es: [Deprecated for 4.x]Restos del coche cohete ; ru: [Deprecated for 4.x]Rocket Car Rubble +UPDATE `locales_gameobject` SET `name_loc2` = "Décombres de chariot explosif", `name_loc6` = "Restos del coche cohete", `name_loc8` = "Обломки болида" WHERE `entry` = 19870; -- old - fr: [INUTILISÉ pour 4.x] Décombres de chariot explosif ; es: [Deprecated for 4.x]Restos del coche cohete ; ru: [Deprecated for 4.x]Rocket Car Rubble +UPDATE `locales_gameobject` SET `name_loc2` = "Décombres de chariot explosif", `name_loc6` = "Restos del coche cohete", `name_loc8` = "Обломки болида" WHERE `entry` = 19871; -- old - fr: [INUTILISÉ pour 4.x] Décombres de chariot explosif ; es: [Deprecated for 4.x]Restos del coche cohete ; ru: [Deprecated for 4.x]Rocket Car Rubble +UPDATE `locales_gameobject` SET `name_loc2` = "Décombres de chariot explosif", `name_loc6` = "Restos del coche cohete", `name_loc8` = "Обломки болида" WHERE `entry` = 19872; -- old - fr: [INUTILISÉ pour 4.x] Décombres de chariot explosif ; es: [Deprecated for 4.x]Restos del coche cohete ; ru: [Deprecated for 4.x]Rocket Car Rubble +UPDATE `locales_gameobject` SET `name_loc2` = "Décombres de chariot explosif", `name_loc6` = "Restos del coche cohete", `name_loc8` = "Обломки болида" WHERE `entry` = 19873; -- old - fr: [INUTILISÉ pour 4.x] Décombres de chariot explosif ; es: [Deprecated for 4.x]Restos del coche cohete ; ru: [Deprecated for 4.x]Rocket Car Rubble +UPDATE `locales_gameobject` SET `name_loc3` = "Bergbau", `name_loc6` = "Minería", `name_loc8` = "Горное дело" WHERE `entry` = 58620; -- old - de: Bergbau & Juwelierskunst ; es: Minería y joyería ; ru: Горное и ювелирное дело +UPDATE `locales_gameobject` SET `name_loc3` = "Auberdine Mondbrunnen", `name_loc6` = "Poza de la Luna de Auberdine", `name_loc8` = "Аубердин Лунный колодец" WHERE `entry` = 174795; -- old - de: Wachposten der Mondfederfeste; es: Puesto de vigilancia de Plumaluna ; ru: Застава Оперенной Луны +UPDATE `locales_gameobject` SET `name_loc3` = "Axtrad", `name_loc6` = "Engranajes ligeros", `name_loc8` = "Инструмент топора" WHERE `entry` = 194577; -- old - de: Tür 02 ; es: Door 02 ; ru: Дверь 2 +UPDATE `locales_gameobject` SET `name_loc2` = "Bibliothèque étrange", `name_loc3` = "Seltsamer Bücherschrank", `name_loc6` = "Estantería extraña" WHERE `entry` = 184453; -- old - fr: Bibliothèque énigmatiquede: Verblüffendes Bücherregal; es: Estantería desconcertante diff --git a/sql/updates/world/2014_09_06_07_world_creature_equip_template.sql b/sql/updates/world/2014_09_06_07_world_creature_equip_template.sql new file mode 100644 index 00000000000..d52e8b4c080 --- /dev/null +++ b/sql/updates/world/2014_09_06_07_world_creature_equip_template.sql @@ -0,0 +1,158 @@ +UPDATE `creature` SET `equipment_id`=-1 WHERE `id` IN (26437,27185,27290,29016,32702,32706); +UPDATE `creature` SET `equipment_id`=1 WHERE `id` IN (1035,11941,14277,1477,1478,15045,15046,15062,15063,15064,15074,15075,15086,15089,16802, +16825,16831,16864,17056,17191,18278,18408,18488,18547,19071,19159,19164,19169,19170,19171,19355,19425,19444,19661,20102,202,20876,21448,22016, +23698,23748,23766,23863,24006,24322,24436,24938,25094,25115,25234,25235,25238,25240,25248,25258,25259,25261,25271,25317,25342,25343,25496,25967, +25975,25994,26112,26113,26179,26184,26477,26604,26795,27044,27062,27207,27271,27293,27298,27301,27316, +27359,27432,27557,27566,27665,2784,28260,28490,28852,29152,29195,29325,29427,29497,29505,29506,29731,300,30571,30627, +32704,32710,32711,3309,3318,3319,3320,334,34838,36154,37696,37846,38316,3875,40492,4507,464,486,54,5697,5734,5841,7207,7804,7999, +8216,823,8402); + +DELETE FROM `creature_equip_template` WHERE `entry` IN (1035,11941,14277,1477,1478,15045,15046,15062,15063,15064,15074,15075,15086,15089, +16802,16825,16831,16864,17056,17191,18278,18408,18488,18547,19071,19159,19164,19169,19170,19171,19355,19425,19444,19661,20102,202,20876, +21448,22016,23698,23748,23766,23863,24006,24322,24436,24938,25094,25115,25234,25235,25238,25240,25248,25258,25259,25261,25271,25317,25342, +25343,25496,25967,25975,25994,26112,26113,26179,26184,26437,26477,26604,26795,27044,27062,27185,27207,27271,27290, +27293,27298,27301,27316,27359,27432,27557,27566,27665,2784,28260,28490,28852,29016,29152,29195,29325,29427,29497,29505,29506,29731,300, +30571,30627,32702,32704,32706,32710,32711,3309,3318,3319,3320,334,34838,36154,37696,37846,38316,3875,40492,4507,464,486,54,5697, +5734,5841,7207,7804,7999,8216,823,8402); +INSERT INTO `creature_equip_template` (`entry`, `id`, `itemEntry1`, `itemEntry2`, `itemEntry3`) VALUES +(1035 , 1, 1896 , 2051 , 0), -- Dragonmaw Swamprunner +(11941, 1, 13861, 0, 0), -- Yori Crackhelm +(14277, 1, 0, 0, 13147), -- Lady Zephris +(1477 , 1, 2705 , 0, 0), -- Christoph Faral +(1478 , 1, 2705 , 0, 0), -- Aedis Brom +(15045, 1, 3367 , 0, 0), -- Arathi Farmer +(15046, 1, 3367 , 0, 0), -- Forsaken Farmer +(15062, 1, 19015, 0, 0), -- Arathi Lumberjack +(15063, 1, 1903 , 0, 0), -- Arathi Blacksmith +(15064, 1, 1903 , 0, 0), -- Forsaken Blacksmith +(15074, 1, 1910 , 0, 0), -- Arathi Miner +(15075, 1, 1910 , 0, 0), -- Forsaken Miner +(15086, 1, 3367 , 0, 0), -- Arathi Stablehand +(15089, 1, 19015, 0, 0), -- Forsaken Lumberjack +(16802, 1, 14882, 24038, 0), -- Lor'themar Theron +(16825, 1, 2703 , 0, 0), -- Father Malgor Devidicus +(16831, 1, 2704 , 13407, 0), -- Nethergarde Infantry +(16864, 1, 2717 , 3757 , 0), -- Stormwind Infantry +(17056, 1, 13612, 0, 0), -- Eversong Partygoer +(17191, 1, 6228 , 0, 0), -- Siltfin Oracle +(18278, 1, 1903 , 0, 0), -- Pilot Marsha +(18408, 1, 1903 , 0, 0), -- Warden Moi'bff Jill +(18488, 1, 27849, 27849, 0), -- Telaari Watcher +(18547, 1, 12751, 0, 0), -- Scryer Arcanist +(19071, 1, 27852, 0, 0), -- Telaari Elekk Rider +(19159, 1, 1903 , 0, 0), -- Allerian Peasant Cosmetic +(19164, 1, 2707 , 0, 0), -- Refugee Child +(19169, 1, 2705 , 0, 0), -- Blood Elf Commoner +(19170, 1, 2827 , 0, 0), -- Peasant Refugee +(19171, 1, 33963, 0, 0), -- Draenei Commoner +(19355, 1, 1903 , 0, 0), -- Shadowmoon Peon +(19425, 1, 1903 , 0, 0), -- Orgrimmar Peon +(19444, 1, 1903 , 0, 0), -- Peasant Worker +(19661, 1, 1911 , 0, 0), -- Viggz Shinesparked +(20102, 1, 2703 , 0, 0), -- Goblin Commoner +(202 , 1, 1896 , 0, 0), -- Skeletal Horror +(20876, 1, 1903 , 0, 0), -- Human Refugee +(21448, 1, 5291 , 0, 2552) , -- Gadgetzan Sniper +(22016, 1, 31205, 31205, 0), -- Eclipsion Soldier +(23698, 1, 13861, 0, 0), -- Drunken Brewfest Reveler +(23748, 1, 12744, 12745, 0), -- Kurzel +(23766, 1, 2717 , 0, 0), -- Morgom +(23863, 1, 33975, 0, 0), -- Zul'jin +(24006, 1, 3362 , 0, 0), -- Foreman Tionn +(24322, 1, 34816, 0, 0), -- Ancient Citizen of Nifflevar +(24436, 1, 2029 , 0, 0), -- Gargoth +(24938, 1, 34301, 0, 34277), -- Shattered Sun Marksman +(25094, 1, 2704 , 0, 0), -- Navigator Tah're +(25115, 1, 31743, 34588, 0), -- Shattered Sun Warrior +(25234, 1, 2028 , 0, 0), -- Stormfleet Deckhand +(25235, 1, 2028 , 0, 0), -- Hilda Stoneforge +(25238, 1, 2028 , 0, 0), -- Gamlen +(25240, 1, 2028 , 0, 0), -- Bromm +(25248, 1, 853 , 0, 0), -- "Salty" John Thorpe +(25258, 1, 2703 , 0, 0), -- Footman Rob +(25259, 1, 2703 , 0, 0), -- Footman George +(25261, 1, 2703 , 0, 0), -- Footman Chuck +(25271, 1, 2028 , 0, 0), -- Valiance Keep Worker +(25317, 1, 2178 , 0, 0), -- Civilian Recruit +(25342, 1, 10612, 12456, 0), -- Dead Caravan Guard +(25343, 1, 10616, 0, 0), -- Dead Caravan Worker +(25496, 1, 34816, 34819, 0), -- Kvaldir Mist Lord +(25967, 1, 13861, 0, 0), -- Zephyr +(25975, 1, 1906 , 2081 , 0), -- Master Fire Eater +(25994, 1, 1906 , 2081 , 0), -- Flame Eater +(26112, 1, 1902 , 0, 0), -- Bor'gorok Peon +(26113, 1, 1906 , 2081 , 0), -- Master Flame Eater +(26179, 1, 1117 , 0, 0), -- Taunka'le Refugee +(26184, 1, 1117 , 0, 0), -- Taunka'le Refugee +(26437, 1, 34639, 0, 0), -- Taunka Soldier +(26437, 2, 34640, 21549, 0), -- Taunka Soldier +(26477, 1, 32610, 0, 0), -- Dead Mage Hunter +(26604, 1, 2717 , 0, 0), -- Mack Fearsen +(26795, 1, 19970, 0, 0), -- Drakkari Oracle +(27044, 1, 2827 , 0, 0), -- Ordal McLumpkins +(27062, 1, 0, 13611, 0), -- Brom Armstrong +(27185, 1, 0, 13611, 0), -- Kuk'uq +(27185, 2, 14535, 0, 0), -- Kuk'uq +(27207, 1, 768 , 0, 0), -- Onslaught Workman +(27271, 1, 0, 13341, 0), -- Initiate Knapp +(27290, 1, 25587, 13604, 0), -- Hungering Dead +(27290, 2, 3346 , 0, 0), -- Hungering Dead +(27290, 3, 3367 , 0, 0), -- Hungering Dead +(27293, 1, 5278 , 0, 0), -- Amberpine Woodsman +(27298, 1, 0, 12859, 0), -- Apprentice Ranch +(27301, 1, 3699 , 0, 0), -- Apprentice Trotter +(27316, 1, 28648, 0, 0), -- Inquisitor Hallard +(27359, 1, 3346 , 0, 0), -- Trapped Wintergarde Villager +(27432, 1, 3350 , 0, 0), -- Warsong Hold Peon +(27557, 1, 34682, 0, 0), -- Warsong Elite +(27566, 1, 34784, 0, 0), -- Unu'pe Villager +(27665, 1, 34682, 0, 0), -- Kor'kron Pillager +(2784 , 1, 12883, 12883, 0), -- King Magni Bronzebeard +(28260, 1, 33521, 0, 0), -- Defeated Argent Footman +(28490, 1, 13505, 0, 0), -- Disciple of Frost +(28852, 1, 12322, 0, 0), -- Dead Mam'toth Disciple +(29016, 1, 1911 , 0, 0), -- Steam Tank Engineer +(29016, 2, 31824, 0, 0), -- Steam Tank Engineer +(29152, 1, 1911 , 0, 0), -- Stormwind Dock Worker +(29195, 1, 13505, 0, 0), -- Lady Alistra +(29325, 1, 6256 , 0, 0), -- Torgo the Younger +(29427, 1, 2901 , 0, 0), -- Captive Vrykul +(29497, 1, 28442, 0, 0), -- Walther Whiteford +(29505, 1, 5956 , 13611, 0), -- Imindril Spearsong +(29506, 1, 5956 , 0, 0), -- Orland Schaeffer +(29731, 1, 33318, 0, 0), -- Frostborn Iceshaper +(300 , 1, 2023 , 0, 0), -- Zzarc' Vul +(30571, 1, 2196 , 0, 0), -- Michael Belfast +(30627, 1, 49919, 50798, 0), -- Nightmare Figment +(32702, 1, 44638, 0, 0), -- Drog Skullbreaker +(32702, 2, 44654, 0, 0), -- Drog Skullbreaker +(32704, 1, 44638, 0, 0), -- Danric the Bold +(32706, 1, 44638, 0, 0), -- Saedelin Whitedawn +(32706, 2, 44654, 0, 0), -- Saedelin Whitedawn +(32710, 1, 0, 0, 44635), -- Garl Grimgrizzle +(32711, 1, 0, 0, 44643), -- Warp-Huntress Kula +(3309 , 1, 12852, 12855, 0), -- Karus +(3318 , 1, 12856, 12859, 0), -- Koma +(3319 , 1, 0, 1985 , 0), -- Sana +(3320 , 1, 12850, 12745, 0), -- Soran +(334 , 1, 2178 , 2052 , 0), -- Gath'Ilzogg +(34838, 1, 34817, 0, 0), -- Kvaldir Reaver +(36154, 1, 2703 , 0, 0), -- [DND] Valgarde Peon +(37696, 1, 14533, 0, 0), -- Crusader Halford +(37846, 1, 49767, 0, 0), -- Blood-Queen Lana'thel +(38316, 1, 2028 , 0, 0), -- Ormus the Penitent +(3875 , 1, 2827 , 0, 0), -- Haunted Servitor +(40492, 1, 33979, 0, 0), -- Zild'jian +(4507 , 1, 1906 , 0, 0), -- Daisy +(464 , 1, 1899 , 143 , 0), -- Guard Parker +(486 , 1, 1983 , 0, 0), -- Tharil'zun +(54 , 1, 1903 , 0, 0), -- Corina Steele +(5697 , 1, 2717 , 0, 0), -- Theresa +(5734 , 1, 2199 , 0, 0), -- Apothecary Keever +(5841 , 1, 3432 , 0, 0), -- Rocklance +(7207 , 1, 6651 , 0, 0), -- Doc Mixilpixil +(7804 , 1, 2182 , 0, 0), -- Trenton Lighthammer +(7999 , 1, 5598 , 0, 14105), -- Tyrande Whisperwind +(8216 , 1, 11762, 11762, 0), -- Retherokk the Berserker +(823 , 1, 1896 , 0, 0), -- Deputy Willem +(8402 , 1, 2901 , 0, 0); -- Enslaved Archaeologist diff --git a/sql/updates/world/2014_09_06_08_world_creature_equip_template.sql b/sql/updates/world/2014_09_06_08_world_creature_equip_template.sql new file mode 100644 index 00000000000..ff85ab42964 --- /dev/null +++ b/sql/updates/world/2014_09_06_08_world_creature_equip_template.sql @@ -0,0 +1,2 @@ +UPDATE `creature` SET `equipment_id`=0 WHERE `id` = 2057; +DELETE FROM `creature_equip_template` WHERE `entry` = 2057; diff --git a/sql/updates/world/2014_09_06_09_world_sai.sql b/sql/updates/world/2014_09_06_09_world_sai.sql new file mode 100644 index 00000000000..ceec5e3e502 --- /dev/null +++ b/sql/updates/world/2014_09_06_09_world_sai.sql @@ -0,0 +1,85 @@ +SET @OGUID := 59568; +SET @CGUID := 74509; + +UPDATE `creature_template` SET `InhabitType`=4 WHERE `entry`=21210; +UPDATE `creature_template_addon` SET `auras`='' WHERE `entry`=21210; + + +UPDATE `creature_template` SET `ainame`='SmartAI', `scriptname`='' WHERE `entry` IN(21210,21207,21735); +DELETE FROM `smart_scripts` WHERE `entryorguid` IN(21210,-84857,-84854,-84855,-84856,-84858,21207,21735) 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 +(-84857, 0, 0, 0, 1, 0, 100, 0, 0, 0, 5000, 5000, 11, 36393, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Invis Deathforge Caster (Guid 84857) - On Spawn - Cast Deathforge Summon Visual'), +(-84857, 0, 1, 0, 38, 0, 100, 0, 1, 1, 0, 0, 41, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Invis Deathforge Caster - On Data Set 1 1 - Despawn'), +(-84854, 0, 0, 0, 1, 0, 100, 0, 0, 0, 5000, 5000, 11, 36384, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Invis Deathforge Caster (Guid 84854) - On Spawn - Cast Skartax Purple Beam'), +(-84854, 0, 1, 0, 38, 0, 100, 0, 1, 1, 0, 0, 41, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Invis Deathforge Caster - On Data Set 1 1 - Despawn'), +(-84855, 0, 0, 0, 1, 0, 100, 0, 0, 0, 5000, 5000, 11, 36384, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Invis Deathforge Caster (Guid 84854) - On Spawn - Cast Skartax Purple Beam'), +(-84855, 0, 1, 0, 38, 0, 100, 0, 1, 1, 0, 0, 41, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Invis Deathforge Caster - On Data Set 1 1 - Despawn'), +(-84856, 0, 0, 0, 1, 0, 100, 0, 0, 0, 5000, 5000, 11, 36384, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Invis Deathforge Caster (Guid 84854) - On Spawn - Cast Skartax Purple Beam'), +(-84856, 0, 1, 0, 38, 0, 100, 0, 1, 1, 0, 0, 41, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Invis Deathforge Caster - On Data Set 1 1 - Despawn'), +(-84858, 0, 0, 0, 1, 0, 100, 0, 0, 0, 5000, 5000, 11, 36384, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Invis Deathforge Caster (Guid 84854) - On Spawn - Cast Skartax Purple Beam'), +(-84858, 0, 1, 0, 38, 0, 100, 0, 1, 1, 0, 0, 41, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Invis Deathforge Caster - On Data Set 1 1 - Despawn'), +(21207, 0, 0, 1, 1, 0, 100, 0, 0, 0, 5000, 5000, 11, 36382, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Summoner Skartax - On Spawn - Cast Skartax Self Aura I'), +(21207, 0, 1, 0, 61, 0, 100, 0, 0, 0, 0, 0, 11, 36431, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Summoner Skartax - On Spawn - Cast Test Channel'), +(21207, 0, 2, 0, 0, 0, 100, 0, 0, 0, 3000, 5000, 11, 12471, 64, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 'Summoner Skartax - IC - Cast Shadowbolt'), +(21207, 0, 3, 0, 0, 0, 100, 0, 0, 0, 2500, 4500, 11, 38401, 64, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 'Summoner Skartax - IC - Cast Incinerate'), +(21735, 0, 0, 1, 11, 0, 100, 0, 0, 0, 0, 0, 11, 37281, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Infernal Oversoul - On Spawn - Cast Infernal Oversouls Wrath'), +(21735, 0, 1, 2, 61, 0, 100, 0, 0, 0, 0, 0, 45, 1, 1, 0, 0, 0, 0, 9, 21210, 0, 200, 0, 0, 0, 0, 'Infernal Oversoul - On Spawn - Set Data on Invis Deathforge Caster'), +(21735, 0, 2, 0, 61, 0, 100, 0, 0, 0, 0, 0, 49, 0, 0, 0, 0, 0, 0, 21, 100, 0, 0, 0, 0, 0, 0, 'Infernal Oversoul - On Spawn - Start Attack'); + + +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=13 AND `SourceEntry`IN(36384,36431,37281); + +INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES +(13, 1, 36384, 0, 0, 31, 0, 3, 21210, 0, 0, 0, 0, '', 'Skartax Purple Beam targets Invis Deathforge Caster'), +(13, 1, 36384, 0, 0, 1, 0, 36393, 0, 0, 1, 0, 0, '', 'Skartax Purple Beam targets Invis Deathforge Caster only if does not have aura Deathforge Summon Visual'), +(13, 1, 36384, 0, 1, 31, 0, 3, 21211, 0, 0, 0, 0, '', 'Skartax Purple Beam targets Invis Deathforge Target'), +(13, 1, 36431, 0, 0, 31, 0, 3, 21210, 0, 0, 0, 0, '', 'Test Channel targets Invis Deathforge Caster'), +(13, 1, 36431, 0, 0, 1, 0, 36393, 0, 0, 0, 0, 0, '', 'Test Channel targets Invis Deathforge Caster only if has aura Deathforge Summon Visual'), +(13, 1, 37281, 0, 0, 31, 0, 3, 21207, 0, 0, 0, 0, '', 'Infernal Oversouls Wrath targets Summoner Skartax'), +(13, 1, 37281, 0, 1, 31, 0, 3, 20872, 0, 0, 0, 0, '', 'Infernal Oversouls Wrath targets Deathforge Summoner'); + +DELETE FROM `creature` WHERE `guid` BETWEEN @CGUID AND @CGUID+2 AND `id`=20872; +INSERT INTO `creature` (`guid`, `id`, `map`, `spawnMask`, `phaseMask`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `spawndist`, `MovementType`) VALUES +(@CGUID+0, 20872, 530, 1, 1, -3335.892, 2133.704, -2.183001, 2.513274, 120, 0, 0), -- 20872 (Area: 3520) +(@CGUID+1, 20872, 530, 1, 1, -3335.601, 2151.807, -1.211325, 3.001966, 120, 0, 0), -- 20872 (Area: 3520) +(@CGUID+2, 20872, 530, 1, 1, -3341.744, 2168.385, 2.227986, 3.996804, 120, 0, 0); -- 20872 (Area: 3520) + +DELETE FROM `gameobject` WHERE `id`=184820; +INSERT INTO `gameobject` (`guid`, `id`, `map`, `spawnMask`, `phaseMask`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecs`, `animprogress`, `state`) VALUES +(@OGUID+0, 184820, 530, 1, 1, 1506.37, 6367.81, 0.62336, 4.5204, 0, 0, 0, 1, 120, 255, 1), +(@OGUID+1, 184820, 530, 1, 1, 1544.21, 6321.05, 2.36069, 0.593412, 0, 0, 0, 1, 120, 255, 1), +(@OGUID+2, 184820, 530, 1, 1, 1589.61, 6294.26, 2.97764, 1.27409, 0, 0, 0, 1, 120, 255, 1), +(@OGUID+3, 184820, 530, 1, 1, 1718.04, 6303.09, -0.245553, 4.24115, 0, 0, 0, 1, 120, 255, 1), +(@OGUID+4, 184820, 530, 1, 1, 2165.13, 6485.68, 6.32237, 1.39626, 0, 0, 0, 1, 120, 255, 1), +(@OGUID+5, 184820, 530, 1, 1, 2318.35, 6650.72, 16.8051, 5.74213, 0, 0, 0, 1, 120, 255, 1), +(@OGUID+6, 184820, 530, 1, 1, 2330.77, 6719.11, 16.5635, 5.63741, 0, 0, 0, 1, 120, 255, 1), +(@OGUID+7, 184820, 530, 1, 1, 2381.57, 6742.27, 16.7087, 4.90438, 0, 0, 0, 1, 120, 255, 1), +(@OGUID+8, 184820, 530, 1, 1, 2494.49, 6713.98, 4.47157, 4.29351, 0, 0, 0, 1, 120, 255, 1), +(@OGUID+9, 184820, 530, 1, 1, 2700.36, 6601.66, 22.8472, 3.40339, 0, 0, 0, 1, 120, 255, 1), +(@OGUID+10, 184820, 530, 1, 1, 2706.19, 6673.73, 21.6303, 2.47837, 0, 0, 0, 1, 120, 255, 1), +(@OGUID+11, 184820, 530, 1, 1, 2700.19, 6514.47, 2.13838, 2.11185, 0, 0, 0, 1, 120, 255, 1), +(@OGUID+12, 184820, 530, 1, 1, 2597.69, 6505.88, 1.66538, 1.09956, 0, 0, 0, 1, 120, 255, 1), +(@OGUID+13, 184820, 530, 1, 1, 2635.83, 6463.89, 1.86259, 1.85005, 0, 0, 0, 1, 120, 255, 1), +(@OGUID+14, 184820, 530, 1, 1, 2462.47, 6544.21, 1.93072, 0.541052, 0, 0, 0, 1, 120, 255, 1), +(@OGUID+15, 184820, 530, 1, 1, 2382.94, 6498.44, 3.00535, 1.98968, 0, 0, 0, 1, 120, 255, 1), +(@OGUID+16, 184820, 530, 1, 1, 2332.92, 6567.22, 3.77855, 0.453786, 0, 0, 0, 1, 120, 255, 1); + +UPDATE `creature_template` SET `ainame`='SmartAI', `scriptname`='' WHERE `entry` IN(21352,21498,21456,21351); +DELETE FROM `smart_scripts` WHERE `entryorguid` IN(21352,21498,21456,21351) 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 +(21352, 0, 0, 1,38, 0, 100, 0, 1, 1, 180000, 180000, 12, 21456, 2, 300000, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Ogre Building Bunny Summoner - On Data Set 1 1 - Summon Ogre Building Bunny Small'), +(21352, 0, 1, 2,61, 0, 100, 0, 0, 0, 0, 0, 11, 32582, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Summon Ogre Building Bunny Small - On Just Summoned - Cast Ogre Building Bunny Curse Visual'), +(21352, 0, 2, 0,61, 0, 100, 0, 0, 0, 0, 0, 12, 21498, 2, 300000, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Ogre Building Cursed Spirit Bunny - On Just Summoned - Summon Bladespire Evil Spirit'), +(21498, 0, 0, 0,54, 0, 100, 0, 0, 0, 0, 0, 12, 21446, 2, 300000, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Ogre Building Cursed Spirit Bunny - On Just Summoned - Summon Bladespire Evil Spirit'), +(21498, 0, 1, 0,54, 0, 100, 0, 0, 0, 0, 0, 12, 21452, 2, 300000, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Ogre Building Cursed Spirit Bunny - On Just Summoned - Summon Bloodmaul Evil Spirit'), +(21351, 0, 0, 0,54, 0, 100, 0, 0, 0, 0, 0, 45, 1, 1, 0, 0, 0, 0, 19, 21352, 0, 0, 0, 0, 0, 0, 'Ogre Building Bunny Large - On Just Summoned - Set Data 1 1 Ogre Building Bunny Summoner'); + +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=22 AND `SourceEntry`=21498; +INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES +(22, 1, 21498, 0, 0, 23, 1, 3773, 0, 0, 0, 0, 0, '', 'Only Run AI in Bladespire Hold'), +(22, 2, 21498, 0, 0, 23, 1, 3776, 0, 0, 0, 0, 0, '', 'Only Run AI in Bloodmaul Outpost'); + +DELETE FROM `spell_scripts` WHERE `id`=32580; +INSERT INTO `spell_scripts` (`id`, `effIndex`, `delay`, `command`, `datalong`, `datalong2`, `dataint`, `x`, `y`, `z`, `o`) VALUES +(32580, 0, 0, 10, 21351, 30000, 0, 0, 0, 0, 0); diff --git a/sql/updates/world/2014_09_06_10_world_spell_script_names.sql b/sql/updates/world/2014_09_06_10_world_spell_script_names.sql new file mode 100644 index 00000000000..c63a3372068 --- /dev/null +++ b/sql/updates/world/2014_09_06_10_world_spell_script_names.sql @@ -0,0 +1,4 @@ +DELETE FROM `spell_script_names` WHERE `spell_id` IN (27695, 27687);
+INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
+(27695, 'spell_kormok_summon_bone_mages'),
+(27687, 'spell_kormok_summon_bone_minions');
diff --git a/sql/updates/world/2014_09_07_00_world_sai.sql b/sql/updates/world/2014_09_07_00_world_sai.sql new file mode 100644 index 00000000000..394e7980958 --- /dev/null +++ b/sql/updates/world/2014_09_07_00_world_sai.sql @@ -0,0 +1,40 @@ +UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=184383; +DELETE FROM `creature` WHERE `guid`=72505; + +DELETE FROM `gossip_menu` WHERE `entry`=8062; +INSERT INTO `gossip_menu` (`entry`, `text_id`) VALUES +(8062, 9958); -- 184073 + +DELETE FROM `gossip_menu_option` WHERE `menu_id`=8062; +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 +(8062, 0, 0, 'Attempt to contact Wind Trader Marid.', 17638, 1, 1, 0, 0, 0, 0, '', 0); -- 184073 + +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=15 AND `SourceGroup`=8062; +INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES +(15, 8062, 0, 0, 0,28, 0, 10270, 0, 0, 0, 0, 0, '', 'Ethereal Teleport Pad - Show Gossip option only if player has A Not-So-Modest Proposal complete in quest log'), +(15, 8062, 0, 0, 0,9, 0, 10271, 0, 0, 1, 0, 0, '', 'Ethereal Teleport Pad - Show Gossip option only if player does not have Getting Down to Business taken'), +(15, 8062, 0, 0, 0,8, 0, 10271, 0, 0, 1, 0, 0, '', 'Ethereal Teleport Pad - Show Gossip option only if player does not have Getting Down to Business rewarded'), +(15, 8062, 0, 0, 0,28, 0, 10271, 0, 0, 1, 0, 0, '', 'Ethereal Teleport Pad - Show Gossip option only if player does not have Getting Down to Business complete'), +(15, 8062, 0, 0, 0,29, 1, 20518, 200, 0, 1, 0, 0, '', 'Ethereal Teleport Pad - Show Gossip option only if Image of Wind Trader Marid is not already spawned'); + +UPDATE `gameobject_template` SET `AIName`='SmartGameObjectAI',`ScriptName`='' WHERE `entry`IN(184073,184383); +DELETE FROM `smart_scripts` WHERE `entryorguid`IN(184073,184383) 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 +(184073, 1, 0, 1, 62, 0, 100, 0, 8062, 0, 0, 0, 12, 20518, 1, 60000, 0, 0, 0, 8, 0, 0, 0, 4006.99, 1516.938, -114.63, 2.303835, 'Ethereal Teleport Pad - On Gossip Option 0 Selected - Summon Image of Wind Trader Marid'), +(184073, 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, 'Ethereal Teleport Pad - On Gossip Option 0 Selected - Close Gossip'), +(184383, 1, 0, 0, 70, 0, 100, 0, 2, 0, 0, 0, 12, 20482, 1, 180000, 0, 0, 0, 8, 0, 0, 0, 4017.968, 2315.796, 114.9459, 0.4363323, 'Ethereum Transponder Zeta - On State Changed - Summon Image of Commander Ameer <The Protectorate>'); + +UPDATE `creature_template` SET `ainame`='SmartAI', `scriptname`='' WHERE `entry` IN(20518,20482); +DELETE FROM `smart_scripts` WHERE `entryorguid` IN(20518,20482) 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 +(20518, 0, 0, 0, 1, 0, 100, 1, 50, 50, 0, 0, 11, 12980, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Image of Wind Trader Marid - On Just Summoned - Cast Simple Teleport'), +(20482, 0, 0, 1, 4, 0, 100, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Image of Commander Ameer - On Agro - Say Line'), +(20482, 0, 1, 2,61, 0, 100, 1, 0, 0, 0, 0, 45, 1, 1, 0, 0, 0, 0, 14, 25179, 184383, 0, 0, 0, 0, 0, 'Image of Commander Ameer - On Agro - Set Data 1 1 to Ethereum Transponder Zeta'), +(20482, 0, 2, 0,61, 0, 100, 1, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Image of Commander Ameer - On Agro - Despawn'), +(20482, 0, 3, 4,11, 0, 100, 1, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Image of Commander Ameer - On Spawn - Disable Auto Attack'), +(20482, 0, 4, 0,61, 0, 100, 1, 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Image of Commander Ameer - On Spawn - Disable combat movement'); + +DELETE FROM `creature_text` WHERE `entry`=20482; +INSERT INTO `creature_text` (`entry`, `groupid`, `id`, `text`, `type`, `language`, `probability`, `emote`, `duration`, `sound`, `comment`,`BroadcastTextID`) VALUES +(20482, 0, 0, 'Hostiles detected. Ending transmission.', 12, 0, 100, 15, 0, 0, 'Image of Commander Ameer',18190); diff --git a/sql/updates/world/2014_09_07_01_world_sai.sql b/sql/updates/world/2014_09_07_01_world_sai.sql new file mode 100644 index 00000000000..b264087cda6 --- /dev/null +++ b/sql/updates/world/2014_09_07_01_world_sai.sql @@ -0,0 +1,5 @@ +SET @ENTRY := 11136; -- Freed Soul
+UPDATE `creature_template` SET `AIName` = 'SmartAI', `ScriptName` = '' WHERE `entry` = @ENTRY;
+DELETE FROM `smart_scripts` WHERE `entryorguid` = @ENTRY AND `source_type` = 0;
+INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
+(@ENTRY, 0, 0, 0, 11, 0, 100, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Freed Soul - On Respawn - Say Line 0');
diff --git a/sql/updates/world/2014_09_07_02_world_npc_factions_335.sql b/sql/updates/world/2014_09_07_02_world_npc_factions_335.sql new file mode 100644 index 00000000000..1451f39785b --- /dev/null +++ b/sql/updates/world/2014_09_07_02_world_npc_factions_335.sql @@ -0,0 +1,249 @@ +UPDATE `creature_template` SET `faction`=107 WHERE `entry`=8127; -- Antu'sul <Overseer of Sul> +UPDATE `creature_template` SET `faction`=1078 WHERE `entry`=23568; -- Captain Darill +UPDATE `creature_template` SET `faction`=11 WHERE `entry`=2386; -- Southshore Guard +UPDATE `creature_template` SET `faction`=1194 WHERE `entry`=19666; -- Shadow Lord Xiraxis +UPDATE `creature_template` SET `faction`=12 WHERE `entry`=8856; -- Tyrion's Spybot +UPDATE `creature_template` SET `faction`=120 WHERE `entry`=2487; -- Fleet Master Seahorn <Blackwater Raiders> +UPDATE `creature_template` SET `faction`=123 WHERE `entry`=11616; -- Nathaniel Dumah +UPDATE `creature_template` SET `faction`=123 WHERE `entry`=1892; -- Moonrage Watcher +UPDATE `creature_template` SET `faction`=123 WHERE `entry`=1893; -- Moonrage Sentry +UPDATE `creature_template` SET `faction`=123 WHERE `entry`=1896; -- Moonrage Elder +UPDATE `creature_template` SET `faction`=123 WHERE `entry`=2269; -- Hillsbrad Miner +UPDATE `creature_template` SET `faction`=123 WHERE `entry`=2270; -- Hillsbrad Sentry +UPDATE `creature_template` SET `faction`=123 WHERE `entry`=2503; -- Hillsbrad Foreman +UPDATE `creature_template` SET `faction`=123 WHERE `entry`=3529; -- Moonrage Armorer +UPDATE `creature_template` SET `faction`=123 WHERE `entry`=3531; -- Moonrage Tailor +UPDATE `creature_template` SET `faction`=125 WHERE `entry`=8582; -- Kadrak +UPDATE `creature_template` SET `faction`=128 WHERE `entry`=8282; -- Highlord Mastrogonde +UPDATE `creature_template` SET `faction`=1354 WHERE `entry`=11486; -- Prince Tortheldrin +UPDATE `creature_template` SET `faction`=1354 WHERE `entry`=14358; -- Shen'dralar Ancient +UPDATE `creature_template` SET `faction`=1354 WHERE `entry`=14361; -- Shen'dralar Wisp +UPDATE `creature_template` SET `faction`=1355 WHERE `entry`=14368; -- Lorekeeper Lydros +UPDATE `creature_template` SET `faction`=1355 WHERE `entry`=14369; -- Shen'dralar Zealot +UPDATE `creature_template` SET `faction`=1355 WHERE `entry`=14371; -- Shen'dralar Provisioner +UPDATE `creature_template` SET `faction`=1355 WHERE `entry`=14381; -- Lorekeeper Javon +UPDATE `creature_template` SET `faction`=1355 WHERE `entry`=14382; -- Lorekeeper Mykos +UPDATE `creature_template` SET `faction`=1355 WHERE `entry`=14383; -- Lorekeeper Kildrath +UPDATE `creature_template` SET `faction`=14 WHERE `entry`=17429; -- Fel Orc Neophyte +UPDATE `creature_template` SET `faction`=14 WHERE `entry`=2385; -- Feral Mountain Lion +UPDATE `creature_template` SET `faction`=14 WHERE `entry`=24410; -- Vazruden the Herald Image +UPDATE `creature_template` SET `faction`=14 WHERE `entry`=26943; -- Battered Drakkari Berserker +UPDATE `creature_template` SET `faction`=14 WHERE `entry`=30012; -- Victorious Challenger +UPDATE `creature_template` SET `faction`=14 WHERE `entry`=3245; -- Ornery Plainstrider +UPDATE `creature_template` SET `faction`=14 WHERE `entry`=33564; -- Ironforge Valiant +UPDATE `creature_template` SET `faction`=14 WHERE `entry`=33739; -- Exodar Champion +UPDATE `creature_template` SET `faction`=14 WHERE `entry`=33749; -- Undercity Champion +UPDATE `creature_template` SET `faction`=14 WHERE `entry`=40142; -- Halion <The Twilight Destroyer> +UPDATE `creature_template` SET `faction`=14 WHERE `entry`=5089; -- Balos Jacken +UPDATE `creature_template` SET `faction`=14 WHERE `entry`=5431; -- Surf Glider +UPDATE `creature_template` SET `faction`=14 WHERE `entry`=5676; -- Summoned Voidwalker +UPDATE `creature_template` SET `faction`=14 WHERE `entry`=5677; -- Summoned Succubus +UPDATE `creature_template` SET `faction`=14 WHERE `entry`=7093; -- Vile Ooze +UPDATE `creature_template` SET `faction`=14 WHERE `entry`=832; -- Dust Devil +UPDATE `creature_template` SET `faction`=14 WHERE `entry`=8596; -- Plaguehound Runt +UPDATE `creature_template` SET `faction`=14 WHERE `entry`=8600; -- Plaguebat +UPDATE `creature_template` SET `faction`=149 WHERE `entry`=4834; -- Theramore Infiltrator +UPDATE `creature_template` SET `faction`=1576 WHERE `entry`=8563; -- Woodsman +UPDATE `creature_template` SET `faction`=1576 WHERE `entry`=8565; -- Pathstrider +UPDATE `creature_template` SET `faction`=1577 WHERE `entry`=15107; -- Arathi Horse +UPDATE `creature_template` SET `faction`=16 WHERE `entry`=15552; -- Doctor Weavil +UPDATE `creature_template` SET `faction`=16 WHERE `entry`=24410; -- Vazruden the Herald Image +UPDATE `creature_template` SET `faction`=16 WHERE `entry`=27655; -- Mage-Lord Urom +UPDATE `creature_template` SET `faction`=16 WHERE `entry`=37068; -- Spiritual Reflection +UPDATE `creature_template` SET `faction`=16 WHERE `entry`=37107; -- Spiritual Reflection +UPDATE `creature_template` SET `faction`=16 WHERE `entry`=37230; -- Spire Frostwyrm +UPDATE `creature_template` SET `faction`=16 WHERE `entry`=4067; -- Twilight Runner +UPDATE `creature_template` SET `faction`=16 WHERE `entry`=5300; -- Frayfeather Hippogryph +UPDATE `creature_template` SET `faction`=16 WHERE `entry`=5304; -- Frayfeather Stagwing +UPDATE `creature_template` SET `faction`=1605 WHERE `entry`=8197; -- Chronalis +UPDATE `creature_template` SET `faction`=1605 WHERE `entry`=8198; -- Tick +UPDATE `creature_template` SET `faction`=1606 WHERE `entry`=10600; -- Thontek Rumblehoof +UPDATE `creature_template` SET `faction`=1622 WHERE `entry`=4923; -- Guard Jarad +UPDATE `creature_template` SET `faction`=1625 WHERE `entry`=11102; -- Argent Rider <The Argent Dawn> +UPDATE `creature_template` SET `faction`=1630 WHERE `entry`=16300; -- Risen Creeper +UPDATE `creature_template` SET `faction`=1630 WHERE `entry`=16301; -- Risen Hungerer +UPDATE `creature_template` SET `faction`=1630 WHERE `entry`=16309; -- Gangled Cannibal +UPDATE `creature_template` SET `faction`=1630 WHERE `entry`=16322; -- Gangled Flesheater +UPDATE `creature_template` SET `faction`=1638 WHERE `entry`=17106; -- Vindicator Palanaar +UPDATE `creature_template` SET `faction`=1639 WHERE `entry`=17587; -- Draenei Youngling +UPDATE `creature_template` SET `faction`=1692 WHERE `entry`=24576; -- Riplash Myrmidon +UPDATE `creature_template` SET `faction`=1692 WHERE `entry`=24901; -- Maddened Frosthorn +UPDATE `creature_template` SET `faction`=1692 WHERE `entry`=29829; -- Drakkari Earthshaker +UPDATE `creature_template` SET `faction`=1718 WHERE `entry`=19215; -- Infernal Relay (Hellfire) +UPDATE `creature_template` SET `faction`=1732 WHERE `entry`=32712; -- The Amazing Zanzo +UPDATE `creature_template` SET `faction`=1732 WHERE `entry`=40502; -- Zalazane +UPDATE `creature_template` SET `faction`=1733 WHERE `entry`=16781; -- Midsummer Celebrant +UPDATE `creature_template` SET `faction`=1735 WHERE `entry`=26221; -- Earthen Ring Elder <The Earthen Ring> +UPDATE `creature_template` SET `faction`=1754 WHERE `entry`=18944; -- Fel Soldier +UPDATE `creature_template` SET `faction`=1754 WHERE `entry`=19005; -- Wrath Master +UPDATE `creature_template` SET `faction`=1756 WHERE `entry`=16831; -- Nethergarde Infantry +UPDATE `creature_template` SET `faction`=1756 WHERE `entry`=16842; -- Honor Hold Defender +UPDATE `creature_template` SET `faction`=1770 WHERE `entry`=29801; -- Bouldercrag the Rockshaper +UPDATE `creature_template` SET `faction`=1770 WHERE `entry`=30152; -- Bruor Ironbane +UPDATE `creature_template` SET `faction`=1770 WHERE `entry`=37577; -- Freed Horde Slave +UPDATE `creature_template` SET `faction`=1770 WHERE `entry`=37579; -- Freed Horde Slave +UPDATE `creature_template` SET `faction`=1770 WHERE `entry`=37580; -- Martin Victus +UPDATE `creature_template` SET `faction`=1770 WHERE `entry`=37581; -- Gorkun Ironskull +UPDATE `creature_template` SET `faction`=1771 WHERE `entry`=23750; -- Proto-Whelp Hatchling +UPDATE `creature_template` SET `faction`=1771 WHERE `entry`=38487; -- Fallen Warrior +UPDATE `creature_template` SET `faction`=1812 WHERE `entry`=29910; -- K3 Bruiser +UPDATE `creature_template` SET `faction`=1814 WHERE `entry`=26623; -- Scourge Brute +UPDATE `creature_template` SET `faction`=1814 WHERE `entry`=26635; -- Risen Drakkari Warrior +UPDATE `creature_template` SET `faction`=1847 WHERE `entry`=31326; -- Death Knight Initiate <Host of Suffering> +UPDATE `creature_template` SET `faction`=1847 WHERE `entry`=31327; -- Death Knight Initiate <Host of Suffering> +UPDATE `creature_template` SET `faction`=1878 WHERE `entry`=20465; -- Underbog Frenzy +UPDATE `creature_template` SET `faction`=189 WHERE `entry`=3816; -- Wild Buck +UPDATE `creature_template` SET `faction`=1892 WHERE `entry`=26170; -- Thassarian +UPDATE `creature_template` SET `faction`=1892 WHERE `entry`=582; -- Old Blanchy +UPDATE `creature_template` SET `faction`=190 WHERE `entry`=2098; -- Ram +UPDATE `creature_template` SET `faction`=190 WHERE `entry`=8883; -- Riding Horse +UPDATE `creature_template` SET `faction`=1953 WHERE `entry`=24954; -- Aged Magnataur +UPDATE `creature_template` SET `faction`=1965 WHERE `entry`=26639; -- Drakkari Shaman +UPDATE `creature_template` SET `faction`=1965 WHERE `entry`=30922; -- Umbral Brute +UPDATE `creature_template` SET `faction`=1965 WHERE `entry`=33139; -- Flame Leviathan Turret +UPDATE `creature_template` SET `faction`=1981 WHERE `entry`=26488; -- Taunka Pack Kodo +UPDATE `creature_template` SET `faction`=1991 WHERE `entry`=26126; -- Bone Warrior +UPDATE `creature_template` SET `faction`=2004 WHERE `entry`=26448; -- Stars' Rest Sentinel +UPDATE `creature_template` SET `faction`=2047 WHERE `entry`=25636; -- Captured Tuskarr Prisoner +UPDATE `creature_template` SET `faction`=2050 WHERE `entry`=29194; -- Amal'thazad +UPDATE `creature_template` SET `faction`=2050 WHERE `entry`=29195; -- Lady Alistra +UPDATE `creature_template` SET `faction`=2050 WHERE `entry`=29246; -- Highlord Darion Mograine +UPDATE `creature_template` SET `faction`=2070 WHERE `entry`=28028; -- Argent Shieldman +UPDATE `creature_template` SET `faction`=2070 WHERE `entry`=28029; -- Argent Crusader +UPDATE `creature_template` SET `faction`=2075 WHERE `entry`=28167; -- Stratholme Citizen +UPDATE `creature_template` SET `faction`=2075 WHERE `entry`=28169; -- Stratholme Resident +UPDATE `creature_template` SET `faction`=21 WHERE `entry`=1848; -- Lord Maldazzar +UPDATE `creature_template` SET `faction`=2104 WHERE `entry`=28471; -- Lady Alistra +UPDATE `creature_template` SET `faction`=2104 WHERE `entry`=28490; -- Disciple of Frost +UPDATE `creature_template` SET `faction`=2131 WHERE `entry`=38493; -- Argent Crusader +UPDATE `creature_template` SET `faction`=2209 WHERE `entry`=37011; -- The Damned +UPDATE `creature_template` SET `faction`=230 WHERE `entry`=7855; -- Southsea Pirate +UPDATE `creature_template` SET `faction`=230 WHERE `entry`=7856; -- Southsea Freebooter +UPDATE `creature_template` SET `faction`=231 WHERE `entry`=11806; -- Sentinel Onaeya +UPDATE `creature_template` SET `faction`=231 WHERE `entry`=17312; -- Magwin +UPDATE `creature_template` SET `faction`=24 WHERE `entry`=3868; -- Blood Seeker +UPDATE `creature_template` SET `faction`=24 WHERE `entry`=3873; -- Tormented Officer +UPDATE `creature_template` SET `faction`=24 WHERE `entry`=3887; -- Baron Silverlaine +UPDATE `creature_template` SET `faction`=24 WHERE `entry`=4278; -- Commander Springvale +UPDATE `creature_template` SET `faction`=29 WHERE `entry`=10050; -- Seikwa <Stable Master> +UPDATE `creature_template` SET `faction`=29 WHERE `entry`=13476; -- Balai Lok'Wein <Potions, Scrolls & Reagents> +UPDATE `creature_template` SET `faction`=29 WHERE `entry`=30611; -- Greela "The Grunt" Crankchain <Arena Organizer> +UPDATE `creature_template` SET `faction`=29 WHERE `entry`=3464; -- Gazrog +UPDATE `creature_template` SET `faction`=29 WHERE `entry`=6747; -- Innkeeper Kauth <Innkeeper> +UPDATE `creature_template` SET `faction`=290 WHERE `entry`=1706; -- Defias Prisoner +UPDATE `creature_template` SET `faction`=31 WHERE `entry`=16927; -- Stonescythe Whelp +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=15694; -- Stormwind Reveler +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=15719; -- Thunder Bluff Reveler +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=15905; -- Darnassus Reveler +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=15906; -- Ironforge Reveler +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=15907; -- Undercity Reveler +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=15908; -- Orgrimmar Reveler +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=19912; -- Zeggon Botsnap <Arena Battlemaster> +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=23131; -- Blood Knight Honor Guard +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=26816; -- Focus Wizard +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=2768; -- Professor Phizzlethorpe <Blackwater Raiders> +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=29501; -- Scourge Gryphon +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=29; -- Kanrethad <Master of Death> +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=30352; -- Skybreaker Marine +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=30755; -- Kor'kron Reaver +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=31238; -- Hira Snowdawn <Cold Weather Flying Trainer> +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=34984; -- World Trigger (Not Floating) +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=35496; -- Rueben Lauren <Cloth Armor Merchant> +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=35498; -- Horace Hunderland <Plate Armor Merchant> +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=40199; -- Tiki Warrior +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=40274; -- Restless Zombie +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=7271; -- Witch Doctor Zum'rah +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=9034; -- Hate'rel +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=9035; -- Anger'rel +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=9036; -- Vile'rel +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=9037; -- Gloom'rel +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=9038; -- Seeth'rel +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=9039; -- Doom'rel +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=9040; -- Dope'rel +UPDATE `creature_template` SET `faction`=38 WHERE `entry`=8211; -- Old Cliff Jumper +UPDATE `creature_template` SET `faction`=40 WHERE `entry`=10299; -- Scarshield Infiltrator <Scarshield Legion> +UPDATE `creature_template` SET `faction`=40 WHERE `entry`=334; -- Gath'Ilzogg <Warlord of the Blackrock Clan> +UPDATE `creature_template` SET `faction`=412 WHERE `entry`=15108; -- Forsaken Horse +UPDATE `creature_template` SET `faction`=413 WHERE `entry`=3251; -- Silithid Grub +UPDATE `creature_template` SET `faction`=413 WHERE `entry`=3252; -- Silithid Swarmer +UPDATE `creature_template` SET `faction`=416 WHERE `entry`=4857; -- Stone Keeper +UPDATE `creature_template` SET `faction`=44 WHERE `entry`=2356; -- Elder Gray Bear +UPDATE `creature_template` SET `faction`=45 WHERE `entry`=7034; -- Firegut Ogre Mage +UPDATE `creature_template` SET `faction`=45 WHERE `entry`=7035; -- Firegut Brute +UPDATE `creature_template` SET `faction`=475 WHERE `entry`=7407; -- Chief Engineer Bilgewhizzle <Gadgetzan Water Co.> +UPDATE `creature_template` SET `faction`=48 WHERE `entry`=2560; -- Highland Thrasher +UPDATE `creature_template` SET `faction`=48 WHERE `entry`=2561; -- Highland Fleshstalker +UPDATE `creature_template` SET `faction`=534 WHERE `entry`=15351; -- Alliance Brigadier General +UPDATE `creature_template` SET `faction`=534 WHERE `entry`=8436; -- Zamael Lunthistle +UPDATE `creature_template` SET `faction`=54 WHERE `entry`=8929; -- Princess Moira Bronzebeard <Princess of Ironforge> +UPDATE `creature_template` SET `faction`=55 WHERE `entry`=10301; -- Jaron Stoneshaper <Explorers' League> +UPDATE `creature_template` SET `faction`=55 WHERE `entry`=12617; -- Khaelyn Steelwing <Gryphon Master> +UPDATE `creature_template` SET `faction`=57 WHERE `entry`=1476; -- Hargin Mundar +UPDATE `creature_template` SET `faction`=575 WHERE `entry`=5856; -- Glassweb Spider +UPDATE `creature_template` SET `faction`=64 WHERE `entry`=39275; -- Gnomeregan Medic +UPDATE `creature_template` SET `faction`=655 WHERE `entry`=9524; -- Kolkar Invader +UPDATE `creature_template` SET `faction`=674 WHERE `entry`=5843; -- Slave Worker +UPDATE `creature_template` SET `faction`=68 WHERE `entry`=12636; -- Georgia <Bat Handler> +UPDATE `creature_template` SET `faction`=7 WHERE `entry`=32573; -- Valgarde Captive +UPDATE `creature_template` SET `faction`=7 WHERE `entry`=946; -- Frostmane Novice +UPDATE `creature_template` SET `faction`=714 WHERE `entry`=16580; -- Thrallmar Grunt +UPDATE `creature_template` SET `faction`=714 WHERE `entry`=16582; -- Thrallmar Marksman +UPDATE `creature_template` SET `faction`=735 WHERE `entry`=10043; -- Ribbly's Crony +UPDATE `creature_template` SET `faction`=754 WHERE `entry`=14621; -- Overseer Maltorius +UPDATE `creature_template` SET `faction`=775 WHERE `entry`=24484; -- Brewfest Reveler +UPDATE `creature_template` SET `faction`=775 WHERE `entry`=27811; -- Brew Vendor <Brew of the Month Club> +UPDATE `creature_template` SET `faction`=775 WHERE `entry`=27813; -- Brew Vendor <Brew of the Month Club> +UPDATE `creature_template` SET `faction`=775 WHERE `entry`=27817; -- Brew Vendor <Brew of the Month Club> +UPDATE `creature_template` SET `faction`=776 WHERE `entry`=15192; -- Anachronos +UPDATE `creature_template` SET `faction`=79 WHERE `entry`=4054; -- Laughing Sister +UPDATE `creature_template` SET `faction`=79 WHERE `entry`=7939; -- Feathermoon Sentinel +UPDATE `creature_template` SET `faction`=794 WHERE `entry`=11034; -- Lord Maxwell Tyrosus <The Argent Dawn> +UPDATE `creature_template` SET `faction`=794 WHERE `entry`=11036; -- Leonid Barthalomew the Revered <The Argent Dawn> +UPDATE `creature_template` SET `faction`=794 WHERE `entry`=11039; -- Duke Nicholas Zverenhoff <The Argent Dawn> +UPDATE `creature_template` SET `faction`=794 WHERE `entry`=11063; -- Carlin Redpath <The Argent Dawn> +UPDATE `creature_template` SET `faction`=80 WHERE `entry`=10300; -- Ranshalla +UPDATE `creature_template` SET `faction`=80 WHERE `entry`=11079; -- Wynd Nightchaser +UPDATE `creature_template` SET `faction`=80 WHERE `entry`=2084; -- Natheril Raincaller <General Goods> +UPDATE `creature_template` SET `faction`=80 WHERE `entry`=2303; -- Lyranne Feathersong <Food & Drink> +UPDATE `creature_template` SET `faction`=80 WHERE `entry`=3779; -- Syurana <Trade Supplies> +UPDATE `creature_template` SET `faction`=80 WHERE `entry`=3845; -- Shindrell Swiftfire +UPDATE `creature_template` SET `faction`=80 WHERE `entry`=3847; -- Orendil Broadleaf +UPDATE `creature_template` SET `faction`=814 WHERE `entry`=10839; -- Argent Officer Garush <The Argent Dawn> +UPDATE `creature_template` SET `faction`=814 WHERE `entry`=10840; -- Argent Officer Pureheart <The Argent Dawn> +UPDATE `creature_template` SET `faction`=814 WHERE `entry`=10857; -- Argent Quartermaster Lightspark <The Argent Dawn> +UPDATE `creature_template` SET `faction`=814 WHERE `entry`=11536; -- Quartermaster Miranda Breechlock <The Argent Dawn> +UPDATE `creature_template` SET `faction`=83 WHERE `entry`=1740; -- Deathguard Saltain +UPDATE `creature_template` SET `faction`=83 WHERE `entry`=3084; -- Bluffwatcher +UPDATE `creature_template` SET `faction`=83 WHERE `entry`=5724; -- Ageron Kargal +UPDATE `creature_template` SET `faction`=84 WHERE `entry`=4961; -- Dashel Stonefist +UPDATE `creature_template` SET `faction`=84 WHERE `entry`=6090; -- Bartleby <Drunk> +UPDATE `creature_template` SET `faction`=875 WHERE `entry`=39715; -- Ejector Mechano-Tank +UPDATE `creature_template` SET `faction`=89 WHERE `entry`=10418; -- Crimson Guardsman +UPDATE `creature_template` SET `faction`=89 WHERE `entry`=10605; -- Scarlet Medic +UPDATE `creature_template` SET `faction`=89 WHERE `entry`=1831; -- Scarlet Hunter +UPDATE `creature_template` SET `faction`=89 WHERE `entry`=1835; -- Scarlet Invoker +UPDATE `creature_template` SET `faction`=90 WHERE `entry`=9776; -- Flamekin Spitter +UPDATE `creature_template` SET `faction`=90 WHERE `entry`=9778; -- Flamekin Torcher +UPDATE `creature_template` SET `faction`=90 WHERE `entry`=9779; -- Flamekin Rager +UPDATE `creature_template` SET `faction`=93 WHERE `entry`=4016; -- Fey Dragon +UPDATE `creature_template` SET `faction`=974 WHERE `entry`=36830; -- Wrathbone Laborer + +-- diff entries update +UPDATE `creature_template` SET `faction`=14 WHERE `entry`=18603; +UPDATE `creature_template` SET `faction`=14 WHERE `entry`=40143; +UPDATE `creature_template` SET `faction`=14 WHERE `entry`=40144; +UPDATE `creature_template` SET `faction`=14 WHERE `entry`=40145; +UPDATE `creature_template` SET `faction`=16 WHERE `entry`=31560; +UPDATE `creature_template` SET `faction`=16 WHERE `entry`=38444; +UPDATE `creature_template` SET `faction`=1692 WHERE `entry`=30926; +UPDATE `creature_template` SET `faction`=1770 WHERE `entry`=37614; +UPDATE `creature_template` SET `faction`=1770 WHERE `entry`=37618; +UPDATE `creature_template` SET `faction`=1770 WHERE `entry`=37619; +UPDATE `creature_template` SET `faction`=1770 WHERE `entry`=37620; +UPDATE `creature_template` SET `faction`=1814 WHERE `entry`=31355; +UPDATE `creature_template` SET `faction`=1814 WHERE `entry`=31357; +UPDATE `creature_template` SET `faction`=1878 WHERE `entry`=21943; +UPDATE `creature_template` SET `faction`=1965 WHERE `entry`=31345; +UPDATE `creature_template` SET `faction`=1965 WHERE `entry`=34111; +UPDATE `creature_template` SET `faction`=2209 WHERE `entry`=38061; +UPDATE `creature_template` SET `faction`=974 WHERE `entry`=37638; diff --git a/sql/updates/world/2014_09_07_03_world_npc_misc.sql b/sql/updates/world/2014_09_07_03_world_npc_misc.sql new file mode 100644 index 00000000000..2fec86147c8 --- /dev/null +++ b/sql/updates/world/2014_09_07_03_world_npc_misc.sql @@ -0,0 +1,3193 @@ +-- unit_class +UPDATE `creature_template` SET `unit_class`=1 WHERE `entry`=25705; -- Bixie Wrenchshanker +UPDATE `creature_template` SET `unit_class`=1 WHERE `entry`=25806; -- Loot Crazed Poacher +UPDATE `creature_template` SET `unit_class`=1 WHERE `entry`=2588; -- Syndicate Prowler +UPDATE `creature_template` SET `unit_class`=1 WHERE `entry`=28341; -- Stratholme Resident +UPDATE `creature_template` SET `unit_class`=1 WHERE `entry`=37666; -- Darkfallen Tactician <The San'layn> +UPDATE `creature_template` SET `unit_class`=1 WHERE `entry`=38001; -- Light's Vengeance Bunny 2 +UPDATE `creature_template` SET `unit_class`=1 WHERE `entry`=4834; -- Theramore Infiltrator +UPDATE `creature_template` SET `unit_class`=1 WHERE `entry`=5491; -- Arthur the Faithful <Paladin Trainer> +UPDATE `creature_template` SET `unit_class`=1 WHERE `entry`=5492; -- Katherine the Pure <Paladin Trainer> +UPDATE `creature_template` SET `unit_class`=1 WHERE `entry`=5615; -- Wastewander Rogue +UPDATE `creature_template` SET `unit_class`=1 WHERE `entry`=5616; -- Wastewander Thief +UPDATE `creature_template` SET `unit_class`=1 WHERE `entry`=5623; -- Wastewander Assassin +UPDATE `creature_template` SET `unit_class`=1 WHERE `entry`=5645; -- Sandfury Hideskinner +UPDATE `creature_template` SET `unit_class`=1 WHERE `entry`=5646; -- Sandfury Axe Thrower +UPDATE `creature_template` SET `unit_class`=1 WHERE `entry`=8480; -- Kalaran the Deceiver +UPDATE `creature_template` SET `unit_class`=1 WHERE `entry`=928; -- Lord Grayson Shadowbreaker <Paladin Trainer> +UPDATE `creature_template` SET `unit_class`=2 WHERE `entry`=1179; -- Mo'grosh Enforcer +UPDATE `creature_template` SET `unit_class`=2 WHERE `entry`=12791; -- Chieftain Earthbind +UPDATE `creature_template` SET `unit_class`=2 WHERE `entry`=14026; -- Trigger Guse +UPDATE `creature_template` SET `unit_class`=2 WHERE `entry`=14027; -- Trigger Mulverick +UPDATE `creature_template` SET `unit_class`=2 WHERE `entry`=14028; -- Trigger Jeztor +UPDATE `creature_template` SET `unit_class`=2 WHERE `entry`=14029; -- Trigger Ichman +UPDATE `creature_template` SET `unit_class`=2 WHERE `entry`=14030; -- Trigger Slidore +UPDATE `creature_template` SET `unit_class`=2 WHERE `entry`=14031; -- Trigger Vipore +UPDATE `creature_template` SET `unit_class`=2 WHERE `entry`=23583; -- Evidence Marker +UPDATE `creature_template` SET `unit_class`=2 WHERE `entry`=23705; -- Catlord Corpse +UPDATE `creature_template` SET `unit_class`=2 WHERE `entry`=23716; -- Hexxer Corpse +UPDATE `creature_template` SET `unit_class`=2 WHERE `entry`=24410; -- Vazruden the Herald Image +UPDATE `creature_template` SET `unit_class`=2 WHERE `entry`=24411; -- Shattered Hand Centurion Image +UPDATE `creature_template` SET `unit_class`=2 WHERE `entry`=25424; -- Vision of Farseer Grimwalker +UPDATE `creature_template` SET `unit_class`=2 WHERE `entry`=25456; -- Vision of Kaganishu +UPDATE `creature_template` SET `unit_class`=2 WHERE `entry`=25457; -- Vision of Magmoth Shaman +UPDATE `creature_template` SET `unit_class`=2 WHERE `entry`=25458; -- Vision of Farseer Grimwalker's Spirit +UPDATE `creature_template` SET `unit_class`=2 WHERE `entry`=25754; -- Earthen Ring Flamecaller <The Earthen Ring> +UPDATE `creature_template` SET `unit_class`=2 WHERE `entry`=25955; -- Hand of the Deceiver Sunwell +UPDATE `creature_template` SET `unit_class`=2 WHERE `entry`=26579; -- Anveena Replica +UPDATE `creature_template` SET `unit_class`=2 WHERE `entry`=30677; -- Highlord Tirion Fordring +UPDATE `creature_template` SET `unit_class`=2 WHERE `entry`=34281; -- [DND]Azeroth Children's Week Trigger +UPDATE `creature_template` SET `unit_class`=2 WHERE `entry`=34461; -- Tyrius Duskblade <Death Knight> +UPDATE `creature_template` SET `unit_class`=2 WHERE `entry`=34735; -- Black Knight's Grave +UPDATE `creature_template` SET `unit_class`=2 WHERE `entry`=34810; -- CoD Eye Proxy +UPDATE `creature_template` SET `unit_class`=2 WHERE `entry`=35079; -- Firehawk Mariner Female (Dead) +UPDATE `creature_template` SET `unit_class`=2 WHERE `entry`=35083; -- Firehawk Mariner Male (Dead) +UPDATE `creature_template` SET `unit_class`=2 WHERE `entry`=35089; -- Black Knight Spell Proxy +UPDATE `creature_template` SET `unit_class`=2 WHERE `entry`=35104; -- Wavecrest Mariner Female (Dead) +UPDATE `creature_template` SET `unit_class`=2 WHERE `entry`=35105; -- Wavecrest Mariner Male (Dead) +UPDATE `creature_template` SET `unit_class`=2 WHERE `entry`=35106; -- Black Knight Caster +UPDATE `creature_template` SET `unit_class`=2 WHERE `entry`=36551; -- Spiteful Apparition +UPDATE `creature_template` SET `unit_class`=2 WHERE `entry`=36817; -- [DND] Love Boat Summoner +UPDATE `creature_template` SET `unit_class`=2 WHERE `entry`=37181; -- The Lich King +UPDATE `creature_template` SET `unit_class`=2 WHERE `entry`=37183; -- Highlord Bolvar Fordragon +UPDATE `creature_template` SET `unit_class`=2 WHERE `entry`=37498; -- Coliseum Champion +UPDATE `creature_template` SET `unit_class`=2 WHERE `entry`=37852; -- Quel'Delar Skull Target +UPDATE `creature_template` SET `unit_class`=2 WHERE `entry`=38340; -- [DND] Holiday - Love - Bank Bunny +UPDATE `creature_template` SET `unit_class`=2 WHERE `entry`=38341; -- [DND] Holiday - Love - AH Bunny +UPDATE `creature_template` SET `unit_class`=2 WHERE `entry`=38342; -- [DND] Holiday - Love - Barber Bunny +UPDATE `creature_template` SET `unit_class`=2 WHERE `entry`=38751; -- Black Knight Shield Proxy +UPDATE `creature_template` SET `unit_class`=2 WHERE `entry`=39647; -- Zalazane +UPDATE `creature_template` SET `unit_class`=2 WHERE `entry`=39654; -- Vol'jin +UPDATE `creature_template` SET `unit_class`=2 WHERE `entry`=40182; -- Bwonsamdi +UPDATE `creature_template` SET `unit_class`=2 WHERE `entry`=40192; -- Vanira +UPDATE `creature_template` SET `unit_class`=2 WHERE `entry`=40196; -- Zen'tabra +UPDATE `creature_template` SET `unit_class`=2 WHERE `entry`=40231; -- Hexed Troll +UPDATE `creature_template` SET `unit_class`=2 WHERE `entry`=40405; -- Kieupid <Pet Trainer> +UPDATE `creature_template` SET `unit_class`=2 WHERE `entry`=40413; -- Alenjon Sunblade <Battlemaster> +UPDATE `creature_template` SET `unit_class`=2 WHERE `entry`=40425; -- Voodoo Troll +UPDATE `creature_template` SET `unit_class`=2 WHERE `entry`=40481; -- Troll Celebrant +UPDATE `creature_template` SET `unit_class`=2 WHERE `entry`=40502; -- Zalazane +UPDATE `creature_template` SET `unit_class`=2 WHERE `entry`=6221; -- Addled Leper +UPDATE `creature_template` SET `unit_class`=2 WHERE `entry`=8856; -- Tyrion's Spybot +UPDATE `creature_template` SET `unit_class`=4 WHERE `entry`=29840; -- The Leaper +UPDATE `creature_template` SET `unit_class`=4 WHERE `entry`=29859; -- The Leaper +UPDATE `creature_template` SET `unit_class`=4 WHERE `entry`=30714; -- Crusade Engineer Spitzpatrick +UPDATE `creature_template` SET `unit_class`=4 WHERE `entry`=34983; -- Deathstalker Fane <Battlemaster> +UPDATE `creature_template` SET `unit_class`=4 WHERE `entry`=35579; -- Aspirant Forudir <Triumphant Armor Vendor> +UPDATE `creature_template` SET `unit_class`=4 WHERE `entry`=35580; -- Aspirant Naradiel <Triumphant Armor Vendor> +UPDATE `creature_template` SET `unit_class`=4 WHERE `entry`=36121; -- Maz'dinah +UPDATE `creature_template` SET `unit_class`=4 WHERE `entry`=36517; -- Aleric Hawkins <The Deathstalkers> +UPDATE `creature_template` SET `unit_class`=4 WHERE `entry`=37017; -- Skybreaker Assassin +UPDATE `creature_template` SET `unit_class`=4 WHERE `entry`=38200; -- Silver Covenant Agent +UPDATE `creature_template` SET `unit_class`=4 WHERE `entry`=38471; -- Infiltrator Minchar +UPDATE `creature_template` SET `unit_class`=4 WHERE `entry`=39263; -- Disassembled Mechano-Tank +UPDATE `creature_template` SET `unit_class`=4 WHERE `entry`=39715; -- Ejector Mechano-Tank +UPDATE `creature_template` SET `unit_class`=4 WHERE `entry`=39716; -- Scuttling Mechano-Tank +UPDATE `creature_template` SET `unit_class`=4 WHERE `entry`=39717; -- Shooting Mechano-Tank +UPDATE `creature_template` SET `unit_class`=8 WHERE `entry`=12790; -- Advisor Willington +UPDATE `creature_template` SET `unit_class`=8 WHERE `entry`=15607; -- Elder Farwhisper +UPDATE `creature_template` SET `unit_class`=8 WHERE `entry`=19850; -- Councilor Arial D'Anastasis +UPDATE `creature_template` SET `unit_class`=8 WHERE `entry`=32654; -- SOTA Alliance Gun 1 +UPDATE `creature_template` SET `unit_class`=8 WHERE `entry`=32655; -- SOTA Horde Gun 2 +UPDATE `creature_template` SET `unit_class`=8 WHERE `entry`=32656; -- SOTA Horde Gun 1 +UPDATE `creature_template` SET `unit_class`=8 WHERE `entry`=32661; -- SOTA Alliance Gun 2 +UPDATE `creature_template` SET `unit_class`=8 WHERE `entry`=32753; -- Lok <Death Knight Glyphs> +UPDATE `creature_template` SET `unit_class`=8 WHERE `entry`=32754; -- Austeen <Druid Glyphs> +UPDATE `creature_template` SET `unit_class`=8 WHERE `entry`=32755; -- Holloway Fjordhammer <Hunter Glyphs> +UPDATE `creature_template` SET `unit_class`=8 WHERE `entry`=32756; -- Linus Galespin <Mage Glyphs> +UPDATE `creature_template` SET `unit_class`=8 WHERE `entry`=32757; -- Harold Dawson <Paladin Glyphs> +UPDATE `creature_template` SET `unit_class`=8 WHERE `entry`=32758; -- Charlotte Mader <Priest Glyphs> +UPDATE `creature_template` SET `unit_class`=8 WHERE `entry`=32759; -- Libby Waterwheel <Rogue Glyphs> +UPDATE `creature_template` SET `unit_class`=8 WHERE `entry`=32760; -- Juliet Stonehelm <Shaman Glyphs> +UPDATE `creature_template` SET `unit_class`=8 WHERE `entry`=32761; -- Claire Littlesun <Warlock Glyphs> +UPDATE `creature_template` SET `unit_class`=8 WHERE `entry`=32762; -- David Hume <Warrior Glyphs> +UPDATE `creature_template` SET `unit_class`=8 WHERE `entry`=34043; -- Lady Palanseer <Jewelcrafting Quartermaster> +UPDATE `creature_template` SET `unit_class`=8 WHERE `entry`=34060; -- Doris Volanthius <Veteran Armor Quartermaster> +UPDATE `creature_template` SET `unit_class`=8 WHERE `entry`=37497; -- Coliseum Champion + +-- diff entry updates +UPDATE `creature_template` SET `unit_class`=1 WHERE `entry`=38479; +UPDATE `creature_template` SET `unit_class`=2 WHERE `entry`=22581; +UPDATE `creature_template` SET `unit_class`=2 WHERE `entry`=22582; +UPDATE `creature_template` SET `unit_class`=2 WHERE `entry`=22583; +UPDATE `creature_template` SET `unit_class`=2 WHERE `entry`=22584; +UPDATE `creature_template` SET `unit_class`=2 WHERE `entry`=22585; +UPDATE `creature_template` SET `unit_class`=2 WHERE `entry`=22586; +UPDATE `creature_template` SET `unit_class`=2 WHERE `entry`=35743; +UPDATE `creature_template` SET `unit_class`=2 WHERE `entry`=37564; +UPDATE `creature_template` SET `unit_class`=2 WHERE `entry`=37605; +UPDATE `creature_template` SET `unit_class`=4 WHERE `entry`=38078; +UPDATE `creature_template` SET `unit_class`=4 WHERE `entry`=38486; +UPDATE `creature_template` SET `unit_class`=8 WHERE `entry`=37603; + +-- speeds +UPDATE `creature_template` SET `speed_run`=0.1142857 WHERE `entry`=19871; -- World Trigger (Not Immune NPC) +UPDATE `creature_template` SET `speed_run`=0.1428571 WHERE `entry`=37826; -- Light's Vengeance +UPDATE `creature_template` SET `speed_run`=0.2857143 WHERE `entry`=12222; -- Creeping Sludge +UPDATE `creature_template` SET `speed_run`=0.2857143 WHERE `entry`=16243; -- Plague Slime +UPDATE `creature_template` SET `speed_run`=0.4285714 WHERE `entry`=10481; -- Reanimated Corpse +UPDATE `creature_template` SET `speed_run`=0.4285714 WHERE `entry`=40502; -- Zalazane +UPDATE `creature_template` SET `speed_run`=0.4571428 WHERE `entry`=32325; -- Gold Priest +UPDATE `creature_template` SET `speed_run`=0.4571428 WHERE `entry`=32343; -- Green Priest +UPDATE `creature_template` SET `speed_run`=0.4714286 WHERE `entry`=9083; -- Razal'blade <Kargath Expeditionary Force> +UPDATE `creature_template` SET `speed_run`=0.4714286 WHERE `entry`=9084; -- Thunderheart <Kargath Expeditionary Force> +UPDATE `creature_template` SET `speed_run`=0.4714286 WHERE `entry`=9085; -- Initiate Amakkar <Kargath Expeditionary Force> +UPDATE `creature_template` SET `speed_run`=0.4714286 WHERE `entry`=9086; -- Grunt Gargal <Kargath Expeditionary Force> +UPDATE `creature_template` SET `speed_run`=0.5714286 WHERE `entry`=10480; -- Unstable Corpse +UPDATE `creature_template` SET `speed_run`=0.5714286 WHERE `entry`=12121; -- Drakan +UPDATE `creature_template` SET `speed_run`=0.5714286 WHERE `entry`=24082; -- Proto-Drake Handler +UPDATE `creature_template` SET `speed_run`=0.5714286 WHERE `entry`=27737; -- Risen Zombie +UPDATE `creature_template` SET `speed_run`=0.5714286 WHERE `entry`=28167; -- Stratholme Citizen +UPDATE `creature_template` SET `speed_run`=0.5714286 WHERE `entry`=28169; -- Stratholme Resident +UPDATE `creature_template` SET `speed_run`=0.5714286 WHERE `entry`=37543; -- [DND] Shaker +UPDATE `creature_template` SET `speed_run`=0.5714286 WHERE `entry`=37544; -- Spire Gargoyle +UPDATE `creature_template` SET `speed_run`=0.5714286 WHERE `entry`=37574; -- [DND] Shaker - Small +UPDATE `creature_template` SET `speed_run`=0.5952386 WHERE `entry`=30026; -- Az'Barin, Prince of the Gust +UPDATE `creature_template` SET `speed_run`=0.5952386 WHERE `entry`=30045; -- Fiend of Air +UPDATE `creature_template` SET `speed_run`=0.5952386 WHERE `entry`=30184; -- Scion of Storm +UPDATE `creature_template` SET `speed_run`=0.5952386 WHERE `entry`=30550; -- Image of the North Wind +UPDATE `creature_template` SET `speed_run`=0.6857142 WHERE `entry`=37148; -- Skybreaker Summoner +UPDATE `creature_template` SET `speed_run`=0.6928571 WHERE `entry`=33564; -- Ironforge Valiant +UPDATE `creature_template` SET `speed_run`=0.6928571 WHERE `entry`=33739; -- Exodar Champion +UPDATE `creature_template` SET `speed_run`=0.7142857 WHERE `entry`=13338; -- Core Rat +UPDATE `creature_template` SET `speed_run`=0.7142857 WHERE `entry`=16927; -- Stonescythe Whelp +UPDATE `creature_template` SET `speed_run`=0.7142857 WHERE `entry`=22134; -- Shadowmoon Eye of Kilrogg +UPDATE `creature_template` SET `speed_run`=0.7142857 WHERE `entry`=25377; -- Brittle Skeleton +UPDATE `creature_template` SET `speed_run`=0.7142857 WHERE `entry`=25832; -- Max Blasto +UPDATE `creature_template` SET `speed_run`=0.7142857 WHERE `entry`=30142; -- The Iron Watcher +UPDATE `creature_template` SET `speed_run`=0.7142857 WHERE `entry`=37782; -- Flesh-eating Insect +UPDATE `creature_template` SET `speed_run`=0.7142857 WHERE `entry`=38228; -- Plagued Insect +UPDATE `creature_template` SET `speed_run`=0.7142857 WHERE `entry`=7784; -- Homing Robot OOX-17/TN +UPDATE `creature_template` SET `speed_run`=0.7142857 WHERE `entry`=7789; -- Sandfury Cretin +UPDATE `creature_template` SET `speed_run`=0.7142857 WHERE `entry`=7849; -- Mobile Alert System +UPDATE `creature_template` SET `speed_run`=0.7857143 WHERE `entry`=28167; -- Stratholme Citizen +UPDATE `creature_template` SET `speed_run`=0.7857143 WHERE `entry`=28169; -- Stratholme Resident +UPDATE `creature_template` SET `speed_run`=0.8 WHERE `entry`=636; -- Defias Blackguard +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=11473; -- Eldreth Spectre +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=11625; -- Cork Gizelton +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=11626; -- Rigger Gizelton +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=14431; -- Fury Shelda +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=14894; -- Swarm of bees +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=1520; -- Rattlecage Soldier +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=1522; -- Darkeye Bonecaster +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=1523; -- Cracked Skull Soldier +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=1527; -- Hungering Dead +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=1528; -- Shambling Horror +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=1531; -- Lost Soul +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=1534; -- Wailing Ancestor +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=1535; -- Scarlet Warrior +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=15407; -- Chieftain Zul'Marosh +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=1544; -- Vile Fin Minor Oracle +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=1545; -- Vile Fin Muckdweller +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=15635; -- Eversong Tender +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=15636; -- Eversong Green Keeper +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=15637; -- Withered Green Keeper +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=15641; -- Amani Axe Thrower +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=15642; -- Amani Shadowpriest +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=15643; -- Amani Berserker +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=15645; -- Wretched Thug +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=15647; -- Mana Stalker +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=15648; -- Manawraith +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=15650; -- Crazed Dragonhawk +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=15654; -- Plaguebone Pillager +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=15655; -- Rotlimb Cannibal +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=15656; -- Angershade +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=15657; -- Darkwraith +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=15658; -- Rotlimb Marauder +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=15668; -- Grimscale Murloc +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=15669; -- Grimscale Oracle +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=15670; -- Grimscale Forager +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=15950; -- Grimscale Seer +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=15965; -- Duskwither Apprentice +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=16162; -- Wretched Hooligan +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=16519; -- Shadowy Executioner +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=1655; -- Nissa Agamand +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=1657; -- Devlin Agamand +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=1674; -- Rot Hide Gnoll +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=1675; -- Rot Hide Mongrel +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=16855; -- Tregla +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=16998; -- Mr. Bigglesworth +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=17186; -- Deranged Owlbeast +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=17187; -- Aberrant Owlbeast +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=17189; -- Crazed Wildkin +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=171; -- Murloc Warrior +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=18718; -- Shadowy Hunter +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=18720; -- Shadowmaster Grieve +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=1910; -- Muad +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=1934; -- Tirisfal Farmer +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=1935; -- Tirisfal Farmhand +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=1936; -- Farmer Solliden +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=2000; -- Webwood Silkspinner +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=2006; -- Gnarlpine Ursa +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=2007; -- Gnarlpine Gardener +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=2009; -- Gnarlpine Shaman +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=2010; -- Gnarlpine Defender +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=2011; -- Gnarlpine Augur +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=2012; -- Gnarlpine Pathfinder +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=2015; -- Bloodfeather Harpy +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=2017; -- Bloodfeather Rogue +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=2018; -- Bloodfeather Sorceress +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=2022; -- Timberling +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=2025; -- Timberling Bark Ripper +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=2027; -- Timberling Trampler +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=2029; -- Timberling Mire Beast +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=27523; -- Grizzlesnout +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=2961; -- Mountain Cougar +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=2968; -- Galak Outrunner +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=2969; -- Wiry Swoop +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=3103; -- Makrura Clacker +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=3104; -- Makrura Shellhide +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=3106; -- Pygmy Surf Crawler +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=3107; -- Surf Crawler +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=3113; -- Razormane Dustrunner +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=3114; -- Razormane Battleguard +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=3206; -- Voodoo Troll +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=3207; -- Hexed Troll +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=32258; -- Gold Beetle +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=327; -- Goldtooth +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=330; -- Princess +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=38232; -- Blood Spider +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=390; -- Porcine Entourage +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=39647; -- Zalazane +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=4075; -- Rat +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=4364; -- Strashaz Warrior +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=4366; -- Strashaz Serpent Guard +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=4368; -- Strashaz Myrmidon +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=4370; -- Strashaz Sorceress +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=4371; -- Strashaz Siren +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=4374; -- Strashaz Hydra +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=471; -- Mother Fang +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=473; -- Morgan the Collector +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=476; -- Kobold Geomancer +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=60; -- Ruklar the Trapper +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=6575; -- Scarlet Trainee +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=7883; -- Andre Firebeard +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=79; -- Narg the Taskmaster +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=880; -- Erlan Drudgemoor +UPDATE `creature_template` SET `speed_run`=0.8571429 WHERE `entry`=881; -- Surena Caledon +UPDATE `creature_template` SET `speed_run`=0.8857142 WHERE `entry`=12246; -- Super-Seller 680 +UPDATE `creature_template` SET `speed_run`=0.9126986 WHERE `entry`=25033; -- Eredar Sorcerer +UPDATE `creature_template` SET `speed_run`=0.9523814 WHERE `entry`=24954; -- Aged Magnataur +UPDATE `creature_template` SET `speed_run`=0.9523814 WHERE `entry`=25615; -- Plagued Magnataur +UPDATE `creature_template` SET `speed_run`=0.9523814 WHERE `entry`=25789; -- Gammothra the Tormentor +UPDATE `creature_template` SET `speed_run`=0.9523814 WHERE `entry`=26607; -- Anub'ar Blightbeast +UPDATE `creature_template` SET `speed_run`=0.9523814 WHERE `entry`=28380; -- Shattertusk Bull +UPDATE `creature_template` SET `speed_run`=0.9523814 WHERE `entry`=29445; -- Thorim +UPDATE `creature_template` SET `speed_run`=0.9523814 WHERE `entry`=30295; -- Thorim +UPDATE `creature_template` SET `speed_run`=0.9523814 WHERE `entry`=30390; -- Thorim +UPDATE `creature_template` SET `speed_run`=0.9523814 WHERE `entry`=37864; -- Lord Marrowgar Image +UPDATE `creature_template` SET `speed_run`=0.9920629 WHERE `entry`=10916; -- Winterfall Runner +UPDATE `creature_template` SET `speed_run`=0.9920629 WHERE `entry`=11516; -- Timbermaw Warder +UPDATE `creature_template` SET `speed_run`=0.9920629 WHERE `entry`=11552; -- Timbermaw Mystic +UPDATE `creature_template` SET `speed_run`=0.9920629 WHERE `entry`=11553; -- Timbermaw Woodbender +UPDATE `creature_template` SET `speed_run`=0.9920629 WHERE `entry`=11555; -- Gorn One Eye +UPDATE `creature_template` SET `speed_run`=0.9920629 WHERE `entry`=11556; -- Salfa +UPDATE `creature_template` SET `speed_run`=0.9920629 WHERE `entry`=11557; -- Meilosh +UPDATE `creature_template` SET `speed_run`=0.9920629 WHERE `entry`=11558; -- Kernda +UPDATE `creature_template` SET `speed_run`=0.9920629 WHERE `entry`=17556; -- Death Ravager +UPDATE `creature_template` SET `speed_run`=0.9920629 WHERE `entry`=17816; -- Bogstrok +UPDATE `creature_template` SET `speed_run`=0.9920629 WHERE `entry`=17817; -- Greater Bogstrok +UPDATE `creature_template` SET `speed_run`=0.9920629 WHERE `entry`=17827; -- Claw <Swamplord Musel'ek's Pet> +UPDATE `creature_template` SET `speed_run`=0.9920629 WHERE `entry`=18586; -- Coosh'coosh +UPDATE `creature_template` SET `speed_run`=0.9920629 WHERE `entry`=21478; -- Rocknail Ripper +UPDATE `creature_template` SET `speed_run`=0.9920629 WHERE `entry`=23326; -- Nethermine Ravager +UPDATE `creature_template` SET `speed_run`=0.9920629 WHERE `entry`=25031; -- Pit Overlord +UPDATE `creature_template` SET `speed_run`=0.9920629 WHERE `entry`=25601; -- Prince Valanar <The San'layn> +UPDATE `creature_template` SET `speed_run`=0.9920629 WHERE `entry`=25833; -- The Grinder +UPDATE `creature_template` SET `speed_run`=0.9920629 WHERE `entry`=26203; -- Image of the Lich King +UPDATE `creature_template` SET `speed_run`=0.9920629 WHERE `entry`=26406; -- The Anvil <Furyhammer's Guardian> +UPDATE `creature_template` SET `speed_run`=0.9920629 WHERE `entry`=26409; -- Rune-Smith Durar +UPDATE `creature_template` SET `speed_run`=0.9920629 WHERE `entry`=26410; -- Rune-Smith Kathorn +UPDATE `creature_template` SET `speed_run`=0.9920629 WHERE `entry`=26533; -- Mal'Ganis +UPDATE `creature_template` SET `speed_run`=0.9920629 WHERE `entry`=26570; -- Famished Scourge Troll +UPDATE `creature_template` SET `speed_run`=0.9920629 WHERE `entry`=27960; -- Dark Rune Warrior +UPDATE `creature_template` SET `speed_run`=0.9920629 WHERE `entry`=27961; -- Dark Rune Worker +UPDATE `creature_template` SET `speed_run`=0.9920629 WHERE `entry`=27962; -- Dark Rune Elementalist +UPDATE `creature_template` SET `speed_run`=0.9920629 WHERE `entry`=27963; -- Dark Rune Theurgist +UPDATE `creature_template` SET `speed_run`=0.9920629 WHERE `entry`=27964; -- Dark Rune Scholar +UPDATE `creature_template` SET `speed_run`=0.9920629 WHERE `entry`=27965; -- Dark Rune Shaper +UPDATE `creature_template` SET `speed_run`=0.9920629 WHERE `entry`=27966; -- Dark Rune Controller +UPDATE `creature_template` SET `speed_run`=0.9920629 WHERE `entry`=27973; -- Crystalline Shardling +UPDATE `creature_template` SET `speed_run`=0.9920629 WHERE `entry`=28103; -- Urgreth of the Thousand Tombs +UPDATE `creature_template` SET `speed_run`=0.9920629 WHERE `entry`=28149; -- Earthen Protector +UPDATE `creature_template` SET `speed_run`=0.9920629 WHERE `entry`=28409; -- Time Rift (CoT Stratholme) +UPDATE `creature_template` SET `speed_run`=0.9920629 WHERE `entry`=28439; -- Time Rift (CoT Stratholme, Large) +UPDATE `creature_template` SET `speed_run`=0.9920629 WHERE `entry`=28581; -- Stormforged Tactician +UPDATE `creature_template` SET `speed_run`=0.9920629 WHERE `entry`=28582; -- Stormforged Mender +UPDATE `creature_template` SET `speed_run`=0.9920629 WHERE `entry`=28836; -- Stormforged Runeshaper +UPDATE `creature_template` SET `speed_run`=0.9920629 WHERE `entry`=28837; -- Stormforged Sentinel +UPDATE `creature_template` SET `speed_run`=0.9920629 WHERE `entry`=29240; -- Stormforged Lieutenant +UPDATE `creature_template` SET `speed_run`=0.9920629 WHERE `entry`=29368; -- Valduran the Stormborn +UPDATE `creature_template` SET `speed_run`=0.9920629 WHERE `entry`=29370; -- Stormforged Champion +UPDATE `creature_template` SET `speed_run`=0.9920629 WHERE `entry`=29374; -- Stormforged Magus +UPDATE `creature_template` SET `speed_run`=0.9920629 WHERE `entry`=29556; -- Goblin Sapper Backpack +UPDATE `creature_template` SET `speed_run`=0.9920629 WHERE `entry`=29722; -- Rabid Cannibal +UPDATE `creature_template` SET `speed_run`=0.9920629 WHERE `entry`=29806; -- SCRAP-E +UPDATE `creature_template` SET `speed_run`=0.9920629 WHERE `entry`=29832; -- Drakkari Golem +UPDATE `creature_template` SET `speed_run`=0.9920629 WHERE `entry`=29840; -- The Leaper +UPDATE `creature_template` SET `speed_run`=0.9920629 WHERE `entry`=30340; -- Jormuttar +UPDATE `creature_template` SET `speed_run`=0.9920629 WHERE `entry`=30348; -- Elder Sardis +UPDATE `creature_template` SET `speed_run`=0.9920629 WHERE `entry`=30357; -- Elder Beldak +UPDATE `creature_template` SET `speed_run`=0.9920629 WHERE `entry`=30358; -- Elder Morthie +UPDATE `creature_template` SET `speed_run`=0.9920629 WHERE `entry`=30359; -- Elder Fargal +UPDATE `creature_template` SET `speed_run`=0.9920629 WHERE `entry`=30360; -- Elder Northal +UPDATE `creature_template` SET `speed_run`=0.9920629 WHERE `entry`=30362; -- Elder Sandrene +UPDATE `creature_template` SET `speed_run`=0.9920629 WHERE `entry`=30363; -- Elder Thoim +UPDATE `creature_template` SET `speed_run`=0.9920629 WHERE `entry`=30364; -- Elder Arp +UPDATE `creature_template` SET `speed_run`=0.9920629 WHERE `entry`=30375; -- Elder Stonebeard +UPDATE `creature_template` SET `speed_run`=0.9920629 WHERE `entry`=30447; -- Romping Rhino +UPDATE `creature_template` SET `speed_run`=0.9920629 WHERE `entry`=30533; -- Elder Nurgen +UPDATE `creature_template` SET `speed_run`=0.9920629 WHERE `entry`=30697; -- Putrid Colossus +UPDATE `creature_template` SET `speed_run`=0.9920629 WHERE `entry`=30899; -- Abedneum +UPDATE `creature_template` SET `speed_run`=0.9920629 WHERE `entry`=30945; -- Vardmadra +UPDATE `creature_template` SET `speed_run`=0.9920629 WHERE `entry`=31029; -- Possessed Vardmadra +UPDATE `creature_template` SET `speed_run`=0.9920629 WHERE `entry`=31104; -- Ahn'kahar Watcher +UPDATE `creature_template` SET `speed_run`=0.9920629 WHERE `entry`=32174; -- Teleportation Portal (Elite) +UPDATE `creature_template` SET `speed_run`=0.9920629 WHERE `entry`=34460; -- Kavina Grovesong <Druid> +UPDATE `creature_template` SET `speed_run`=0.9920629 WHERE `entry`=34568; -- Light Essence +UPDATE `creature_template` SET `speed_run`=0.9920629 WHERE `entry`=35339; -- Boat Fire +UPDATE `creature_template` SET `speed_run`=0.9920629 WHERE `entry`=35377; -- Door Fire +UPDATE `creature_template` SET `speed_run`=0.9920629 WHERE `entry`=35379; -- Honorable Defender Trigger (Alliance) +UPDATE `creature_template` SET `speed_run`=0.9920629 WHERE `entry`=35380; -- Honorable Defender Trigger (Horde) +UPDATE `creature_template` SET `speed_run`=0.9920629 WHERE `entry`=36349; -- Honorable Defender Trigger, 25 yd (Alliance) +UPDATE `creature_template` SET `speed_run`=0.9920629 WHERE `entry`=36350; -- Honorable Defender Trigger, 25 yd (Horde) +UPDATE `creature_template` SET `speed_run`=0.9920629 WHERE `entry`=36724; -- Servant of the Throne +UPDATE `creature_template` SET `speed_run`=0.9920629 WHERE `entry`=36725; -- Nerub'ar Broodkeeper +UPDATE `creature_template` SET `speed_run`=0.9920629 WHERE `entry`=36817; -- [DND] Love Boat Summoner +UPDATE `creature_template` SET `speed_run`=0.9920629 WHERE `entry`=36880; -- Decaying Colossus +UPDATE `creature_template` SET `speed_run`=0.9920629 WHERE `entry`=37519; -- Safe Area (IGB) +UPDATE `creature_template` SET `speed_run`=0.9920629 WHERE `entry`=37596; -- Lady Sylvanas Windrunner <Banshee Queen> +UPDATE `creature_template` SET `speed_run`=0.9920629 WHERE `entry`=37846; -- Blood-Queen Lana'thel <The San'layn> +UPDATE `creature_template` SET `speed_run`=0.9920629 WHERE `entry`=37857; -- The Lich King +UPDATE `creature_template` SET `speed_run`=0.9920629 WHERE `entry`=37948; -- Deathwhisper Controller +UPDATE `creature_template` SET `speed_run`=0.9920629 WHERE `entry`=4050; -- Cenarion Caretaker +UPDATE `creature_template` SET `speed_run`=0.9920629 WHERE `entry`=7438; -- Winterfall Ursa +UPDATE `creature_template` SET `speed_run`=0.9920629 WHERE `entry`=7439; -- Winterfall Shaman +UPDATE `creature_template` SET `speed_run`=0.9920629 WHERE `entry`=7440; -- Winterfall Den Watcher +UPDATE `creature_template` SET `speed_run`=0.9920629 WHERE `entry`=7441; -- Winterfall Totemic +UPDATE `creature_template` SET `speed_run`=0.9920629 WHERE `entry`=7442; -- Winterfall Pathfinder +UPDATE `creature_template` SET `speed_run`=0.9920629 WHERE `entry`=7726; -- Grimtotem Naturalist +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=10415; -- Ash'ari Crystal +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=14860; -- Flik +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=14872; -- Trok +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=14874; -- Karu +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=15652; -- Elder Springpaw +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=17361; -- Totem of Coo +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=17362; -- Totem of Tikti +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=17363; -- Totem of Yor +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=17364; -- Totem of Vark +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=17722; -- Coilfang Sorceress +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=17799; -- Dreghood Slave +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=17801; -- Coilfang Siren +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=17803; -- Coilfang Oracle +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=17826; -- Swamplord Musel'ek +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=17941; -- Mennu the Betrayer +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=17954; -- Naga Distiller +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=17960; -- Coilfang Soothsayer +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=17961; -- Coilfang Enchantress +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=17962; -- Coilfang Collaborator +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=17963; -- Wastewalker Slave +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=17964; -- Wastewalker Worker +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=18206; -- Wastewalker Captive +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=18678; -- Fulgorge +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=18681; -- Coilfang Emissary +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=19164; -- Refugee Child +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=19767; -- Coilskar Sorceress +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=19768; -- Coilskar Siren +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=20076; -- Naga Distiller (Coilskar Point) +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=20684; -- Lady Shav'rar +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=20812; -- Corki +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=21126; -- Coilfang Scale-Healer +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=21416; -- Lakaan <Corruptor of Water> +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=21420; -- Corrupt Water Totem +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=21453; -- Ashtongue Shaman <Servant of Illidan> +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=21454; -- Ashtongue Warrior <Servant of Illidan> +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=21455; -- Ashtongue Worker <Servant of Illidan> +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=21663; -- Oronu the Elder +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=21803; -- Ashtongue Handler <Servant of Illidan> +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=21902; -- Cabal Spell-weaver +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=22314; -- Captive Child +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=23287; -- Murkblood Miner +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=23309; -- Murkblood Overseer +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=25073; -- Darkspine Siren +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=25391; -- En'kilah Focus Crystal +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=25422; -- Mystical Webbing +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=25534; -- En'kilah Blood Globe +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=25754; -- Earthen Ring Flamecaller <The Earthen Ring> +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=25880; -- Minion of Kaw +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=25961; -- Earthen Ring Totem +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=26048; -- Storm Totem +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=26497; -- Lady Jaina Proudmoore +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=28083; -- Serfex the Reaver +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=28253; -- Mistwhisper Lightning Cloud +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=28476; -- Runebladed Sword +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=28656; -- Hourglass (CoT Stratholme) +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=28687; -- Amisi Azuregaze <Innkeeper> +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=28704; -- Dorothy Egan <Grand Master Herbalism Trainer> +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=28706; -- Olisarra the Kind <Grand Master First Aid Trainer> +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=28708; -- Kizi Copperclip <Barber> +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=28714; -- Ildine Sorrowspear <Enchanting Supplies> +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=28716; -- Palja Amboss <Blacksmithing Supplies> +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=28990; -- Anthony Durain <Shield Merchant> +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=28995; -- Paldesse <Cloth Armor Merchant> +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=28997; -- Griselda Hunderland <Plate Armor Merchant> +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=29218; -- Portal to the Shadow Realm +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=29255; -- Sunreaver Guardian Mage +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=29478; -- Jepetto Joybuzz <Toymaker> +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=29505; -- Imindril Spearsong <Weaponsmithing Trainer> +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=29509; -- Namha Moonwater <Tribal Leatherworking Trainer> +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=29511; -- Lalla Brightweave <Spellfire Tailoring Specialist> +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=29513; -- Didi the Wrench <Goblin Engineering Trainer> +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=29628; -- Angelique Butler <First Aid Supplies> +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=29641; -- Theresa Wolf <Loremaster> +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=29703; -- Sheddle Glossgleam <Cobbler> +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=30095; -- Dalaran Sewer Turtle +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=30167; -- Gimorak +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=30831; -- High Priest Yath'amon +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=30891; -- Blessed Banner of the Crusade +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=31769; -- Stabled Hunter Pet +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=32172; -- Harold Winston <Jewelry Vendor> +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=32329; -- Kanika Goldwell <Arena Organizer> +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=32333; -- "Dapper" Danik Blackshaft <Arena Battlemaster> +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=32515; -- Braeg Stoutbeard <Fur & Leather Trader> +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=32602; -- Dalaran Visitor +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=32651; -- Wounded Dalaran Shield Guard +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=32653; -- Wounded Dalaran Serpent +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=32654; -- SOTA Alliance Gun 1 +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=32661; -- SOTA Alliance Gun 2 +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=32676; -- Grindle Firespark +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=32678; -- Emeline Fizzlefry +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=32680; -- Fabioso the Fabulous +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=32684; -- Mona Everspring +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=32689; -- Adorean Lew +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=32731; -- Metopious Loreseeker +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=32744; -- Bakor the Gangly <Arena Enthusiast> +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=33224; -- Lake Frog +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=34567; -- Dark Essence +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=35320; -- Lady Jaina Proudmoore +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=35496; -- Rueben Lauren <Cloth Armor Merchant> +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=35498; -- Horace Hunderland <Plate Armor Merchant> +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=36955; -- Lady Jaina Proudmoore +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=36993; -- Lady Jaina Proudmoore +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=37107; -- Spiritual Reflection +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=37132; -- Ymirjar Battle-Maiden +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=37188; -- Lady Jaina Proudmoore +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=37880; -- Stormwind Portal +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=37887; -- Kwee Q. Peddlefeet <Crown Chemical Co.> +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=38188; -- Lady Jaina Proudmoore +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=40187; -- Vanira's Sentry Totem +UPDATE `creature_template` SET `speed_run`=1 WHERE `entry`=7269; -- Scarab +UPDATE `creature_template` SET `speed_run`=1.071429 WHERE `entry`=28242; -- Risen Reaver +UPDATE `creature_template` SET `speed_run`=1.071429 WHERE `entry`=28443; -- Thalgran Blightbringer +UPDATE `creature_template` SET `speed_run`=1.071429 WHERE `entry`=30471; -- Vargul Assailant +UPDATE `creature_template` SET `speed_run`=1.071429 WHERE `entry`=30501; -- Val'kyr Arbiter +UPDATE `creature_template` SET `speed_run`=1.071429 WHERE `entry`=30829; -- Salranax the Flesh Render +UPDATE `creature_template` SET `speed_run`=1.071429 WHERE `entry`=32576; -- Orabus the Helmsman +UPDATE `creature_template` SET `speed_run`=1.071429 WHERE `entry`=32577; -- Kvaldir Crewman +UPDATE `creature_template` SET `speed_run`=1.071429 WHERE `entry`=32578; -- Kvaldir Crewman +UPDATE `creature_template` SET `speed_run`=1.071429 WHERE `entry`=32579; -- Kvaldir Crewman +UPDATE `creature_template` SET `speed_run`=1.071429 WHERE `entry`=32580; -- Kvaldir Crewman +UPDATE `creature_template` SET `speed_run`=1.142857 WHERE `entry`=11832; -- Keeper Remulos +UPDATE `creature_template` SET `speed_run`=1.142857 WHERE `entry`=16226; -- Guard Didier <Brotherhood of the Light> +UPDATE `creature_template` SET `speed_run`=1.142857 WHERE `entry`=16864; -- Stormwind Infantry +UPDATE `creature_template` SET `speed_run`=1.142857 WHERE `entry`=16912; -- Mag'har Hunter +UPDATE `creature_template` SET `speed_run`=1.142857 WHERE `entry`=20159; -- Magister Aledis +UPDATE `creature_template` SET `speed_run`=1.142857 WHERE `entry`=23308; -- Dragonmaw Peon Work Node +UPDATE `creature_template` SET `speed_run`=1.142857 WHERE `entry`=24410; -- Vazruden the Herald Image +UPDATE `creature_template` SET `speed_run`=1.142857 WHERE `entry`=25063; -- Dawnblade Hawkrider +UPDATE `creature_template` SET `speed_run`=1.142857 WHERE `entry`=25392; -- High Priest Andorath +UPDATE `creature_template` SET `speed_run`=1.142857 WHERE `entry`=26073; -- High Priest Talet-Kha +UPDATE `creature_template` SET `speed_run`=1.142857 WHERE `entry`=26448; -- Stars' Rest Sentinel +UPDATE `creature_template` SET `speed_run`=1.142857 WHERE `entry`=27272; -- Risen Villager +UPDATE `creature_template` SET `speed_run`=1.142857 WHERE `entry`=27499; -- Caged Prisoner +UPDATE `creature_template` SET `speed_run`=1.142857 WHERE `entry`=27768; -- Image of Razuvious +UPDATE `creature_template` SET `speed_run`=1.142857 WHERE `entry`=28636; -- Heb'Jin +UPDATE `creature_template` SET `speed_run`=1.142857 WHERE `entry`=29477; -- Earthen Defender +UPDATE `creature_template` SET `speed_run`=1.142857 WHERE `entry`=29546; -- K3 Snow Runner +UPDATE `creature_template` SET `speed_run`=1.142857 WHERE `entry`=30387; -- Seething Revenant +UPDATE `creature_template` SET `speed_run`=1.142857 WHERE `entry`=30696; -- Corpulent Horror +UPDATE `creature_template` SET `speed_run`=1.142857 WHERE `entry`=30864; -- Shandaral Hunter Spirit +UPDATE `creature_template` SET `speed_run`=1.142857 WHERE `entry`=31755; -- Stabled Hunter Pet +UPDATE `creature_template` SET `speed_run`=1.142857 WHERE `entry`=31773; -- Plague Cauldron Target +UPDATE `creature_template` SET `speed_run`=1.142857 WHERE `entry`=31900; -- Scourge Banner-Bearer +UPDATE `creature_template` SET `speed_run`=1.142857 WHERE `entry`=32181; -- Living Plague +UPDATE `creature_template` SET `speed_run`=1.142857 WHERE `entry`=32429; -- Seething Hate +UPDATE `creature_template` SET `speed_run`=1.142857 WHERE `entry`=32442; -- Plague Cauldron Target 02 +UPDATE `creature_template` SET `speed_run`=1.142857 WHERE `entry`=32572; -- Dragonblight Mage Hunter +UPDATE `creature_template` SET `speed_run`=1.142857 WHERE `entry`=32598; -- Dalaran Visitor +UPDATE `creature_template` SET `speed_run`=1.142857 WHERE `entry`=3284; -- Venture Co. Drudger +UPDATE `creature_template` SET `speed_run`=1.142857 WHERE `entry`=33698; -- Argent Peacekeeper +UPDATE `creature_template` SET `speed_run`=1.142857 WHERE `entry`=36642; -- Myralion Sunblaze <Sunreavers> +UPDATE `creature_template` SET `speed_run`=1.142857 WHERE `entry`=9543; -- Ribbly Screwspigot +UPDATE `creature_template` SET `speed_run`=1.14286 WHERE `entry`=31045; -- Mirador +UPDATE `creature_template` SET `speed_run`=1.190476 WHERE `entry`=1013; -- Mosshide Mystic +UPDATE `creature_template` SET `speed_run`=1.190476 WHERE `entry`=10488; -- Risen Construct +UPDATE `creature_template` SET `speed_run`=1.190476 WHERE `entry`=11622; -- Rattlegore +UPDATE `creature_template` SET `speed_run`=1.190476 WHERE `entry`=125; -- Riverpaw Overseer +UPDATE `creature_template` SET `speed_run`=1.190476 WHERE `entry`=16334; -- Blackpaw Gnoll +UPDATE `creature_template` SET `speed_run`=1.190476 WHERE `entry`=1753; -- Maggot Eye +UPDATE `creature_template` SET `speed_run`=1.190476 WHERE `entry`=1772; -- Rot Hide Gladerunner +UPDATE `creature_template` SET `speed_run`=1.190476 WHERE `entry`=2372; -- Mudsnout Gnoll +UPDATE `creature_template` SET `speed_run`=1.190476 WHERE `entry`=25456; -- Vision of Kaganishu +UPDATE `creature_template` SET `speed_run`=1.190476 WHERE `entry`=25457; -- Vision of Magmoth Shaman +UPDATE `creature_template` SET `speed_run`=1.190476 WHERE `entry`=28109; -- Mistwhisper Warrior +UPDATE `creature_template` SET `speed_run`=1.190476 WHERE `entry`=28110; -- Mistwhisper Oracle +UPDATE `creature_template` SET `speed_run`=1.190476 WHERE `entry`=29554; -- Snowblind Devotee +UPDATE `creature_template` SET `speed_run`=1.190476 WHERE `entry`=29920; -- Ruins Dweller +UPDATE `creature_template` SET `speed_run`=1.190476 WHERE `entry`=32163; -- Grimkor's Hound +UPDATE `creature_template` SET `speed_run`=1.190476 WHERE `entry`=37011; -- The Damned +UPDATE `creature_template` SET `speed_run`=1.190476 WHERE `entry`=506; -- Sergeant Brashclaw +UPDATE `creature_template` SET `speed_run`=1.190476 WHERE `entry`=5843; -- Slave Worker +UPDATE `creature_template` SET `speed_run`=1.2 WHERE `entry`=29802; -- Cosmetic Toy Plane +UPDATE `creature_template` SET `speed_run`=1.214286 WHERE `entry`=9684; -- Lar'korwi +UPDATE `creature_template` SET `speed_run`=1.285714 WHERE `entry`=14276; -- Scargil +UPDATE `creature_template` SET `speed_run`=1.285714 WHERE `entry`=16168; -- Stoneskin Gargoyle +UPDATE `creature_template` SET `speed_run`=1.285714 WHERE `entry`=2375; -- Torn Fin Coastrunner +UPDATE `creature_template` SET `speed_run`=1.285714 WHERE `entry`=25387; -- En'kilah Gargoyle +UPDATE `creature_template` SET `speed_run`=1.285714 WHERE `entry`=25964; -- Shaman Beam Bunny 000 +UPDATE `creature_template` SET `speed_run`=1.285714 WHERE `entry`=25971; -- Shaman Bonfire Bunny 000 +UPDATE `creature_template` SET `speed_run`=1.285714 WHERE `entry`=25972; -- Shaman Bonfire Bunny 001 +UPDATE `creature_template` SET `speed_run`=1.285714 WHERE `entry`=25973; -- Shaman Bonfire Bunny 002 +UPDATE `creature_template` SET `speed_run`=1.285714 WHERE `entry`=27911; -- Nell +UPDATE `creature_template` SET `speed_run`=1.285714 WHERE `entry`=27912; -- Pepper +UPDATE `creature_template` SET `speed_run`=1.285714 WHERE `entry`=28221; -- Trapdoor Crawler +UPDATE `creature_template` SET `speed_run`=1.285714 WHERE `entry`=28578; -- Hardened Steel Reaver +UPDATE `creature_template` SET `speed_run`=1.285714 WHERE `entry`=28579; -- Hardened Steel Berserker +UPDATE `creature_template` SET `speed_run`=1.285714 WHERE `entry`=28580; -- Hardened Steel Skycaller +UPDATE `creature_template` SET `speed_run`=1.285714 WHERE `entry`=28599; -- Plagueroach +UPDATE `creature_template` SET `speed_run`=1.285714 WHERE `entry`=28838; -- Titanium Vanguard +UPDATE `creature_template` SET `speed_run`=1.285714 WHERE `entry`=29481; -- Lok'lira the Crone +UPDATE `creature_template` SET `speed_run`=1.285714 WHERE `entry`=29639; -- Brunnhildar Prisoner +UPDATE `creature_template` SET `speed_run`=1.285714 WHERE `entry`=30187; -- Mirador +UPDATE `creature_template` SET `speed_run`=1.285714 WHERE `entry`=30573; -- Duke +UPDATE `creature_template` SET `speed_run`=1.285714 WHERE `entry`=30574; -- Arion +UPDATE `creature_template` SET `speed_run`=1.285714 WHERE `entry`=30595; -- Highlord Tirion Fordring +UPDATE `creature_template` SET `speed_run`=1.285714 WHERE `entry`=30677; -- Highlord Tirion Fordring +UPDATE `creature_template` SET `speed_run`=1.285714 WHERE `entry`=3864; -- Fel Steed +UPDATE `creature_template` SET `speed_run`=1.285714 WHERE `entry`=3865; -- Shadow Charger +UPDATE `creature_template` SET `speed_run`=1.285714 WHERE `entry`=5914; -- Deviate Nightmare +UPDATE `creature_template` SET `speed_run`=1.289683 WHERE `entry`=10404; -- Pustulating Horror +UPDATE `creature_template` SET `speed_run`=1.289683 WHERE `entry`=13280; -- Hydrospawn +UPDATE `creature_template` SET `speed_run`=1.289683 WHERE `entry`=13282; -- Noxxion +UPDATE `creature_template` SET `speed_run`=1.289683 WHERE `entry`=15553; -- Doctor Weavil's Flying Machine +UPDATE `creature_template` SET `speed_run`=1.289683 WHERE `entry`=16232; -- Caravan Mule +UPDATE `creature_template` SET `speed_run`=1.289683 WHERE `entry`=17076; -- Lady Liadrin <Blood Knight Matriarch> +UPDATE `creature_template` SET `speed_run`=1.289683 WHERE `entry`=17181; -- Spirit of Water +UPDATE `creature_template` SET `speed_run`=1.289683 WHERE `entry`=21059; -- Enraged Water Spirit +UPDATE `creature_template` SET `speed_run`=1.289683 WHERE `entry`=25476; -- Waltor of Pal'ea +UPDATE `creature_template` SET `speed_run`=1.289683 WHERE `entry`=26103; -- Darkfallen Deathblade <The San'layn> +UPDATE `creature_template` SET `speed_run`=1.289683 WHERE `entry`=28612; -- Knight of the Silver Hand +UPDATE `creature_template` SET `speed_run`=1.289683 WHERE `entry`=29830; -- Living Mojo +UPDATE `creature_template` SET `speed_run`=1.289683 WHERE `entry`=30987; -- Hideous Plaguebringer +UPDATE `creature_template` SET `speed_run`=1.289683 WHERE `entry`=33643; -- Silver Covenant Guardian +UPDATE `creature_template` SET `speed_run`=1.289683 WHERE `entry`=6220; -- Irradiated Horror +UPDATE `creature_template` SET `speed_run`=1.289683 WHERE `entry`=6233; -- Mechanized Sentry +UPDATE `creature_template` SET `speed_run`=1.289683 WHERE `entry`=6234; -- Mechanized Guardian +UPDATE `creature_template` SET `speed_run`=1.289683 WHERE `entry`=7079; -- Viscous Fallout +UPDATE `creature_template` SET `speed_run`=1.385714 WHERE `entry`=11701; -- Mor'vek <Ravasaur Trainers> +UPDATE `creature_template` SET `speed_run`=1.385714 WHERE `entry`=12150; -- Riding Kodo (Purple) +UPDATE `creature_template` SET `speed_run`=1.385714 WHERE `entry`=12337; -- Crimson Courier +UPDATE `creature_template` SET `speed_run`=1.385714 WHERE `entry`=14566; -- Ancient Equine Spirit +UPDATE `creature_template` SET `speed_run`=1.385714 WHERE `entry`=15541; -- Twilight Marauder Morna <Twilight's Hammer> +UPDATE `creature_template` SET `speed_run`=1.385714 WHERE `entry`=18146; -- Champion Vranesh +UPDATE `creature_template` SET `speed_run`=1.385714 WHERE `entry`=19280; -- Red Hawkstrider +UPDATE `creature_template` SET `speed_run`=1.385714 WHERE `entry`=19281; -- Swift Pink Hawkstrider +UPDATE `creature_template` SET `speed_run`=1.385714 WHERE `entry`=19795; -- Eclipsion Blood Knight +UPDATE `creature_template` SET `speed_run`=1.385714 WHERE `entry`=19910; -- Gargok <Warsong Gulch Battlemaster> +UPDATE `creature_template` SET `speed_run`=1.385714 WHERE `entry`=20217; -- Purple Hawkstrider +UPDATE `creature_template` SET `speed_run`=1.385714 WHERE `entry`=20220; -- Blue Hawkstrider +UPDATE `creature_template` SET `speed_run`=1.385714 WHERE `entry`=20222; -- Black Hawkstrider +UPDATE `creature_template` SET `speed_run`=1.385714 WHERE `entry`=20223; -- Swift Purple Hawkstrider +UPDATE `creature_template` SET `speed_run`=1.385714 WHERE `entry`=20224; -- Swift Green Hawkstrider +UPDATE `creature_template` SET `speed_run`=1.385714 WHERE `entry`=21719; -- Dragonmaw Drake-Rider +UPDATE `creature_template` SET `speed_run`=1.385714 WHERE `entry`=21979; -- Val'zareq the Conqueror <The Crimson Sigil> +UPDATE `creature_template` SET `speed_run`=1.385714 WHERE `entry`=22274; -- Dragonmaw Skybreaker +UPDATE `creature_template` SET `speed_run`=1.385714 WHERE `entry`=23188; -- Dragonmaw Transporter +UPDATE `creature_template` SET `speed_run`=1.385714 WHERE `entry`=25440; -- Scout Tungok +UPDATE `creature_template` SET `speed_run`=1.385714 WHERE `entry`=27365; -- Stabled Horse +UPDATE `creature_template` SET `speed_run`=1.385714 WHERE `entry`=27553; -- Kor'kron Vanguard +UPDATE `creature_template` SET `speed_run`=1.385714 WHERE `entry`=28611; -- Scarlet Captain +UPDATE `creature_template` SET `speed_run`=1.385714 WHERE `entry`=28824; -- Brann Flying Machine +UPDATE `creature_template` SET `speed_run`=1.385714 WHERE `entry`=29958; -- Tundra Ram +UPDATE `creature_template` SET `speed_run`=1.385714 WHERE `entry`=30224; -- Crusader Lord Dalfors +UPDATE `creature_template` SET `speed_run`=1.385714 WHERE `entry`=31003; -- Crusader Lord Dalfors +UPDATE `creature_template` SET `speed_run`=1.385714 WHERE `entry`=31033; -- Crusader of Virtue +UPDATE `creature_template` SET `speed_run`=1.385714 WHERE `entry`=32597; -- Dalaran Visitor +UPDATE `creature_template` SET `speed_run`=1.385714 WHERE `entry`=32601; -- Dalaran Visitor +UPDATE `creature_template` SET `speed_run`=1.385714 WHERE `entry`=35314; -- Orgrimmar Champion +UPDATE `creature_template` SET `speed_run`=1.385714 WHERE `entry`=35323; -- Sen'jin Champion +UPDATE `creature_template` SET `speed_run`=1.385714 WHERE `entry`=35325; -- Thunder Bluff Champion +UPDATE `creature_template` SET `speed_run`=1.385714 WHERE `entry`=35326; -- Silvermoon Champion +UPDATE `creature_template` SET `speed_run`=1.385714 WHERE `entry`=35327; -- Undercity Champion +UPDATE `creature_template` SET `speed_run`=1.385714 WHERE `entry`=35328; -- Stormwind Champion +UPDATE `creature_template` SET `speed_run`=1.385714 WHERE `entry`=35329; -- Ironforge Champion +UPDATE `creature_template` SET `speed_run`=1.385714 WHERE `entry`=35332; -- Darnassus Champion +UPDATE `creature_template` SET `speed_run`=1.385714 WHERE `entry`=36167; -- [DND] Bor'gorok Wolf +UPDATE `creature_template` SET `speed_run`=1.385714 WHERE `entry`=37586; -- Fury +UPDATE `creature_template` SET `speed_run`=1.385714 WHERE `entry`=39654; -- Vol'jin +UPDATE `creature_template` SET `speed_run`=1.385714 WHERE `entry`=40192; -- Vanira +UPDATE `creature_template` SET `speed_run`=1.385714 WHERE `entry`=40217; -- Echo Isle Animal +UPDATE `creature_template` SET `speed_run`=1.385714 WHERE `entry`=40391; -- Vol'jin +UPDATE `creature_template` SET `speed_run`=1.385714 WHERE `entry`=4779; -- Brown Ram +UPDATE `creature_template` SET `speed_run`=1.385714 WHERE `entry`=5198; -- Arctic Riding Wolf +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=10038; -- Night Watch Guard <The Night Watch> +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=1010; -- Mosshide Fenrunner +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=1025; -- Bluegill Puddlejumper +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=10408; -- Rockwing Gargoyle +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=11190; -- Everlook Bruiser +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=11261; -- Doctor Theolen Krastinov <The Butcher> +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=11492; -- Alzzin the Wildshaper +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=15974; -- Dread Creeper +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=15975; -- Carrion Spinner +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=15976; -- Venom Stalker +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=15977; -- Poisonous Skitterer +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=16017; -- Patchwork Golem +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=16018; -- Bile Retcher +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=16034; -- Plague Beast +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=16145; -- Death Knight Captain +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=16146; -- Death Knight +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=16156; -- Dark Touched Warrior +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=16164; -- Shade of Naxxramas +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=16165; -- Necro Knight +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=16167; -- Bony Construct +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=16193; -- Skeletal Smith +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=16244; -- Infectious Ghoul +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=16348; -- Ghostclaw Lynx +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=16349; -- Ghostclaw Ravager +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=17798; -- Warlord Kalithresh +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=17917; -- Coilfang Water Elemental +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=19412; -- D'ore +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=1997; -- Strigid Hunter +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=21695; -- Tidal Surger +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=21696; -- Steam Surger +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=21901; -- Netherskate +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=22331; -- Dragonmaw Elite +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=23264; -- Overmine Flayer +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=23501; -- Netherwing Ray +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=23542; -- Amani'shi Axe Thrower +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=23580; -- Amani'shi Warbringer +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=23581; -- Amani'shi Medicine Man +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=23582; -- Amani'shi Tribesman +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=23636; -- Mudsprocket Bruiser +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=23878; -- Amani Bear Spirit +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=23880; -- Amani Eagle Spirit +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=23889; -- Amani'shi Savage +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=24001; -- Ashli +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=24240; -- Alyson Antille +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=24241; -- Thurg +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=24242; -- Slither +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=24243; -- Lord Raadan +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=24244; -- Gazakroth +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=24245; -- Fenstalker +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=24247; -- Koragg +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=24374; -- Amani'shi Berserker +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=24549; -- Amani'shi Tempest +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=24858; -- Soaring Eagle +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=25145; -- Budd's Bodyguard +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=25396; -- Naxxanar Skeletal Mage +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=25451; -- Nerub'ar Sky Darkener +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=26532; -- Chrono-Lord Epoch +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=26796; -- Commander Stoutbeard +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=27175; -- Transitus Shield Warmage +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=2734; -- Ridge Stalker Patriarch +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=27949; -- Alliance Commander +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=28546; -- Ionar +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=28547; -- Storming Vortex +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=28586; -- General Bjarngrim +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=28826; -- Stormfury Revenant +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=28961; -- Titanium Siegebreaker +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=28965; -- Titanium Thunderer +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=29305; -- Moorabi <High Prophet of Mam'toth> +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=29307; -- Drakkari Colossus +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=29553; -- Garm Watcher +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=29859; -- The Leaper +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=29928; -- Gymer Lock Dummy +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=29932; -- Eck the Ferocious +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=30258; -- Amanitar +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=31016; -- Overthane Balargarde <Master of Jotunheim> +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=32176; -- Plague Drenched Ghoul +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=32178; -- Rampaging Ghoul +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=32273; -- Infinite Corruptor +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=33543; -- Sunreaver Guardian +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=34928; -- Argent Confessor Paletress +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=36166; -- 7th Legion Marine +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=37023; -- Plague Scientist +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=37038; -- Vengeful Fleshreaper +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=37127; -- Ymirjar Frostbinder +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=37190; -- Alliance Commander +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=37575; -- Freed Alliance Slave +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=37879; -- King Varian Wrynn <King of Stormwind> +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=37902; -- Alliance Mason +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=37920; -- Kor'kron Reaver +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=37935; -- Apothecary Candith Tomas <General Goods> +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=37936; -- Morgan Dayblaze <Blacksmith> +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=38125; -- Ymirjar Deathbringer +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=3862; -- Slavering Worg +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=39371; -- King Varian Wrynn <King of Stormwind> +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=3975; -- Herod <The Scarlet Champion> +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=4107; -- Highperch Wyvern +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=4109; -- Highperch Consort +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=4362; -- Mirefin Coastrunner +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=5056; -- Deviate Dreadfang +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=521; -- Lupos +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=5466; -- Coast Strider +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=68; -- Stormwind City Guard +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=7273; -- Gahz'rilla +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=7430; -- Frostsaber Cub +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=7431; -- Frostsaber +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=7432; -- Frostsaber Stalker +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=7433; -- Frostsaber Huntress +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=7447; -- Fledgling Chillwind +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=7448; -- Chillwind Chimaera +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=8155; -- Kargath Grunt +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=976; -- Kurzen War Tiger +UPDATE `creature_template` SET `speed_run`=1.428571 WHERE `entry`=977; -- Kurzen War Panther +UPDATE `creature_template` SET `speed_run`=1.571429 WHERE `entry`=28208; -- Hailscorn +UPDATE `creature_template` SET `speed_run`=1.5873 WHERE `entry`=27969; -- Dark Rune Giant +UPDATE `creature_template` SET `speed_run`=1.5873 WHERE `entry`=28920; -- Stormforged Giant +UPDATE `creature_template` SET `speed_run`=1.5873 WHERE `entry`=29375; -- Stormforged Iron Giant +UPDATE `creature_template` SET `speed_run`=1.5873 WHERE `entry`=29503; -- Fjorn +UPDATE `creature_template` SET `speed_run`=1.5873 WHERE `entry`=29914; -- Dead Iron Giant +UPDATE `creature_template` SET `speed_run`=1.5873 WHERE `entry`=29974; -- Niffelem Forefather +UPDATE `creature_template` SET `speed_run`=1.5873 WHERE `entry`=30500; -- Argent Skytalon +UPDATE `creature_template` SET `speed_run`=1.5873 WHERE `entry`=37230; -- Spire Frostwyrm +UPDATE `creature_template` SET `speed_run`=1.6 WHERE `entry`=26725; -- Wind Tamer Oril +UPDATE `creature_template` SET `speed_run`=1.714286 WHERE `entry`=10478; -- Splintered Skeleton +UPDATE `creature_template` SET `speed_run`=1.714286 WHERE `entry`=10485; -- Risen Aberration +UPDATE `creature_template` SET `speed_run`=1.714286 WHERE `entry`=11658; -- Molten Giant +UPDATE `creature_template` SET `speed_run`=1.714286 WHERE `entry`=11659; -- Molten Destroyer +UPDATE `creature_template` SET `speed_run`=1.714286 WHERE `entry`=11661; -- Flamewaker +UPDATE `creature_template` SET `speed_run`=1.714286 WHERE `entry`=11662; -- Flamewaker Priest +UPDATE `creature_template` SET `speed_run`=1.714286 WHERE `entry`=11663; -- Flamewaker Healer +UPDATE `creature_template` SET `speed_run`=1.714286 WHERE `entry`=11664; -- Flamewaker Elite +UPDATE `creature_template` SET `speed_run`=1.714286 WHERE `entry`=11666; -- Firewalker +UPDATE `creature_template` SET `speed_run`=1.714286 WHERE `entry`=11667; -- Flameguard +UPDATE `creature_template` SET `speed_run`=1.714286 WHERE `entry`=11668; -- Firelord +UPDATE `creature_template` SET `speed_run`=1.714286 WHERE `entry`=11669; -- Flame Imp +UPDATE `creature_template` SET `speed_run`=1.714286 WHERE `entry`=11671; -- Core Hound +UPDATE `creature_template` SET `speed_run`=1.714286 WHERE `entry`=11673; -- Ancient Core Hound +UPDATE `creature_template` SET `speed_run`=1.714286 WHERE `entry`=12018; -- Majordomo Executus +UPDATE `creature_template` SET `speed_run`=1.714286 WHERE `entry`=12057; -- Garr +UPDATE `creature_template` SET `speed_run`=1.714286 WHERE `entry`=12076; -- Lava Elemental +UPDATE `creature_template` SET `speed_run`=1.714286 WHERE `entry`=12098; -- Sulfuron Harbinger +UPDATE `creature_template` SET `speed_run`=1.714286 WHERE `entry`=12099; -- Firesworn +UPDATE `creature_template` SET `speed_run`=1.714286 WHERE `entry`=12100; -- Lava Reaver +UPDATE `creature_template` SET `speed_run`=1.714286 WHERE `entry`=12118; -- Lucifron +UPDATE `creature_template` SET `speed_run`=1.714286 WHERE `entry`=12119; -- Flamewaker Protector +UPDATE `creature_template` SET `speed_run`=1.714286 WHERE `entry`=12259; -- Gehennas +UPDATE `creature_template` SET `speed_run`=1.714286 WHERE `entry`=12264; -- Shazzrah +UPDATE `creature_template` SET `speed_run`=1.714286 WHERE `entry`=15461; -- Shrieker Scarab +UPDATE `creature_template` SET `speed_run`=1.714286 WHERE `entry`=15961; -- Lunar Festival Sentinel +UPDATE `creature_template` SET `speed_run`=1.714286 WHERE `entry`=16163; -- Death Knight Cavalier +UPDATE `creature_template` SET `speed_run`=1.714286 WHERE `entry`=21315; -- Ruul the Darkener +UPDATE `creature_template` SET `speed_run`=1.714286 WHERE `entry`=23559; -- Budd Nedreck +UPDATE `creature_template` SET `speed_run`=1.714286 WHERE `entry`=25965; -- Shaman Beam Bunny 001 +UPDATE `creature_template` SET `speed_run`=1.714286 WHERE `entry`=26232; -- Saragosa +UPDATE `creature_template` SET `speed_run`=1.714286 WHERE `entry`=26299; -- Corpse of Saragosa +UPDATE `creature_template` SET `speed_run`=1.714286 WHERE `entry`=26363; -- Tallhorn Stag +UPDATE `creature_template` SET `speed_run`=1.714286 WHERE `entry`=27975; -- Maiden of Grief +UPDATE `creature_template` SET `speed_run`=1.714286 WHERE `entry`=30017; -- Stinkbeard +UPDATE `creature_template` SET `speed_run`=1.714286 WHERE `entry`=30023; -- Korrak the Bloodrager <Champion of the Winterax> +UPDATE `creature_template` SET `speed_run`=1.714286 WHERE `entry`=30099; -- Njormeld +UPDATE `creature_template` SET `speed_run`=1.714286 WHERE `entry`=30121; -- Frost Giant Stormherald +UPDATE `creature_template` SET `speed_run`=1.714286 WHERE `entry`=30123; -- Snorri +UPDATE `creature_template` SET `speed_run`=1.714286 WHERE `entry`=30432; -- Grimmr Hound +UPDATE `creature_template` SET `speed_run`=1.714286 WHERE `entry`=30593; -- Forgotten Depths Slayer +UPDATE `creature_template` SET `speed_run`=1.714286 WHERE `entry`=33785; -- The Black Knight +UPDATE `creature_template` SET `speed_run`=1.714286 WHERE `entry`=34014; -- Sanctum Sentry +UPDATE `creature_template` SET `speed_run`=1.714286 WHERE `entry`=35877; -- The Lich King +UPDATE `creature_template` SET `speed_run`=1.714286 WHERE `entry`=37184; -- Zafod Boombox +UPDATE `creature_template` SET `speed_run`=1.714286 WHERE `entry`=38248; -- Impaling Spear +UPDATE `creature_template` SET `speed_run`=1.714286 WHERE `entry`=7897; -- Alarm-a-bomb 2600 +UPDATE `creature_template` SET `speed_run`=1.828571 WHERE `entry`=6225; -- Mechano-Tank +UPDATE `creature_template` SET `speed_run`=1.828571 WHERE `entry`=6226; -- Mechano-Flamewalker +UPDATE `creature_template` SET `speed_run`=1.828571 WHERE `entry`=6227; -- Mechano-Frostwalker +UPDATE `creature_template` SET `speed_run`=1.857143 WHERE `entry`=28923; -- Loken +UPDATE `creature_template` SET `speed_run`=1.857143 WHERE `entry`=30396; -- Loken +UPDATE `creature_template` SET `speed_run`=2 WHERE `entry`=24059; -- Amani'shi Beast Tamer +UPDATE `creature_template` SET `speed_run`=2 WHERE `entry`=24138; -- Tamed Amani Crocolisk +UPDATE `creature_template` SET `speed_run`=2 WHERE `entry`=24530; -- Amani Elder Lynx +UPDATE `creature_template` SET `speed_run`=2 WHERE `entry`=25390; -- En'kilah Hatchling +UPDATE `creature_template` SET `speed_run`=2 WHERE `entry`=26838; -- Dreadtalon +UPDATE `creature_template` SET `speed_run`=2 WHERE `entry`=28587; -- Volkhan +UPDATE `creature_template` SET `speed_run`=2 WHERE `entry`=29664; -- Ragemane +UPDATE `creature_template` SET `speed_run`=2 WHERE `entry`=29804; -- Baron Sliver +UPDATE `creature_template` SET `speed_run`=2 WHERE `entry`=30022; -- Vladof the Butcher +UPDATE `creature_template` SET `speed_run`=2 WHERE `entry`=30989; -- Halof the Deathbringer +UPDATE `creature_template` SET `speed_run`=2 WHERE `entry`=34127; -- Boneguard Commander +UPDATE `creature_template` SET `speed_run`=2.142857 WHERE `entry`=11460; -- Alzzin's Minion +UPDATE `creature_template` SET `speed_run`=2.142857 WHERE `entry`=23576; -- Nalorakk <Bear Avatar> +UPDATE `creature_template` SET `speed_run`=2.142857 WHERE `entry`=23577; -- Halazzi <Lynx Avatar> +UPDATE `creature_template` SET `speed_run`=2.142857 WHERE `entry`=25966; -- Shaman Beam Bunny 002 +UPDATE `creature_template` SET `speed_run`=2.142857 WHERE `entry`=27123; -- Icefist Forager +UPDATE `creature_template` SET `speed_run`=2.142857 WHERE `entry`=27766; -- Image of Kel'Thuzad +UPDATE `creature_template` SET `speed_run`=2.142857 WHERE `entry`=30443; -- The Lich King +UPDATE `creature_template` SET `speed_run`=2.142857 WHERE `entry`=30575; -- Frostbrood Destroyer +UPDATE `creature_template` SET `speed_run`=2.142857 WHERE `entry`=31083; -- The Lich King +UPDATE `creature_template` SET `speed_run`=2.142857 WHERE `entry`=5831; -- Swiftmane +UPDATE `creature_template` SET `speed_run`=2.142857 WHERE `entry`=6907; -- Eric "The Swift" +UPDATE `creature_template` SET `speed_run`=2.285714 WHERE `entry`=11665; -- Lava Annihilator +UPDATE `creature_template` SET `speed_run`=2.285714 WHERE `entry`=11672; -- Core Rager +UPDATE `creature_template` SET `speed_run`=2.285714 WHERE `entry`=11982; -- Magmadar +UPDATE `creature_template` SET `speed_run`=2.285714 WHERE `entry`=11988; -- Golemagg the Incinerator +UPDATE `creature_template` SET `speed_run`=2.285714 WHERE `entry`=12056; -- Baron Geddon +UPDATE `creature_template` SET `speed_run`=2.285714 WHERE `entry`=12101; -- Lava Surger +UPDATE `creature_template` SET `speed_run`=2.285714 WHERE `entry`=22332; -- Brood of Neltharaku +UPDATE `creature_template` SET `speed_run`=2.285714 WHERE `entry`=23267; -- Arvoar the Rapacious +UPDATE `creature_template` SET `speed_run`=2.428571 WHERE `entry`=24765; -- Spirit of Issliruk +UPDATE `creature_template` SET `speed_run`=2.571429 WHERE `entry`=14354; -- Pusillin +UPDATE `creature_template` SET `speed_run`=2.571429 WHERE `entry`=14864; -- Khaz Modan Ram +UPDATE `creature_template` SET `speed_run`=2.571429 WHERE `entry`=23340; -- Murg "Oldie" Muckjaw +UPDATE `creature_template` SET `speed_run`=2.571429 WHERE `entry`=27656; -- Ley-Guardian Eregos +UPDATE `creature_template` SET `speed_run`=2.857143 WHERE `entry`=13876; -- Mekgineer Trigger +UPDATE `creature_template` SET `speed_run`=2.857143 WHERE `entry`=22112; -- Karynaku <Mate of Neltharaku> +UPDATE `creature_template` SET `speed_run`=2.857143 WHERE `entry`=23342; -- Trope the Filth-Belcher +UPDATE `creature_template` SET `speed_run`=2.857143 WHERE `entry`=26231; -- Saragosa <Consort of Malygos> +UPDATE `creature_template` SET `speed_run`=2.857143 WHERE `entry`=26237; -- Keristrasza +UPDATE `creature_template` SET `speed_run`=3.142857 WHERE `entry`=23344; -- Corlok the Vet +UPDATE `creature_template` SET `speed_run`=3.142857 WHERE `entry`=30399; -- Thorim +UPDATE `creature_template` SET `speed_run`=3.142857 WHERE `entry`=30462; -- Thorim +UPDATE `creature_template` SET `speed_run`=3.428571 WHERE `entry`=23345; -- Wing Commander Ichman +UPDATE `creature_template` SET `speed_run`=3.714286 WHERE `entry`=23346; -- Wing Commander Mulverick +UPDATE `creature_template` SET `speed_run`=4.285714 WHERE `entry`=22317; -- Netherwing Drake Escape Dummy +UPDATE `creature_template` SET `speed_run`=4.285714 WHERE `entry`=23348; -- Captain Skyshatter +UPDATE `creature_template` SET `speed_run`=4.285714 WHERE `entry`=32608; -- Hodir's Spear Event Bunny +UPDATE `creature_template` SET `speed_run`=4.285714 WHERE `entry`=37755; -- Sindragosa <Queen of the Frostbrood> +UPDATE `creature_template` SET `speed_run`=4.285714 WHERE `entry`=4945; -- Goblin Drag Car +UPDATE `creature_template` SET `speed_run`=4.285714 WHERE `entry`=4946; -- Gnome Drag Car +UPDATE `creature_template` SET `speed_run`=4.714286 WHERE `entry`=26310; -- Malygos +UPDATE `creature_template` SET `speed_run`=5.714286 WHERE `entry`=25849; -- Fezzix Geartwist +UPDATE `creature_template` SET `speed_walk`=0.09999999 WHERE `entry`=19871; -- World Trigger (Not Immune NPC) +UPDATE `creature_template` SET `speed_walk`=0.4 WHERE `entry`=16217; -- Lieutenant Tomathren <Farstriders> +UPDATE `creature_template` SET `speed_walk`=0.4 WHERE `entry`=32325; -- Gold Priest +UPDATE `creature_template` SET `speed_walk`=0.4 WHERE `entry`=32343; -- Green Priest +UPDATE `creature_template` SET `speed_walk`=0.4 WHERE `entry`=37782; -- Flesh-eating Insect +UPDATE `creature_template` SET `speed_walk`=0.4 WHERE `entry`=37826; -- Light's Vengeance +UPDATE `creature_template` SET `speed_walk`=0.4 WHERE `entry`=38228; -- Plagued Insect +UPDATE `creature_template` SET `speed_walk`=0.5 WHERE `entry`=12121; -- Drakan +UPDATE `creature_template` SET `speed_walk`=0.5 WHERE `entry`=24082; -- Proto-Drake Handler +UPDATE `creature_template` SET `speed_walk`=0.5 WHERE `entry`=37544; -- Spire Gargoyle +UPDATE `creature_template` SET `speed_walk`=0.5 WHERE `entry`=40502; -- Zalazane +UPDATE `creature_template` SET `speed_walk`=0.6 WHERE `entry`=16197; -- Arcanist Vandril +UPDATE `creature_template` SET `speed_walk`=0.6 WHERE `entry`=33564; -- Ironforge Valiant +UPDATE `creature_template` SET `speed_walk`=0.6 WHERE `entry`=33739; -- Exodar Champion +UPDATE `creature_template` SET `speed_walk`=0.6 WHERE `entry`=37148; -- Skybreaker Summoner +UPDATE `creature_template` SET `speed_walk`=0.64 WHERE `entry`=28167; -- Stratholme Citizen +UPDATE `creature_template` SET `speed_walk`=0.64 WHERE `entry`=28169; -- Stratholme Resident +UPDATE `creature_template` SET `speed_walk`=0.666668 WHERE `entry`=10916; -- Winterfall Runner +UPDATE `creature_template` SET `speed_walk`=0.666668 WHERE `entry`=11328; -- Eastvale Peasant +UPDATE `creature_template` SET `speed_walk`=0.666668 WHERE `entry`=11516; -- Timbermaw Warder +UPDATE `creature_template` SET `speed_walk`=0.666668 WHERE `entry`=11552; -- Timbermaw Mystic +UPDATE `creature_template` SET `speed_walk`=0.666668 WHERE `entry`=11553; -- Timbermaw Woodbender +UPDATE `creature_template` SET `speed_walk`=0.666668 WHERE `entry`=11555; -- Gorn One Eye +UPDATE `creature_template` SET `speed_walk`=0.666668 WHERE `entry`=11556; -- Salfa +UPDATE `creature_template` SET `speed_walk`=0.666668 WHERE `entry`=11557; -- Meilosh +UPDATE `creature_template` SET `speed_walk`=0.666668 WHERE `entry`=11558; -- Kernda +UPDATE `creature_template` SET `speed_walk`=0.666668 WHERE `entry`=12223; -- Cavern Lurker +UPDATE `creature_template` SET `speed_walk`=0.666668 WHERE `entry`=12224; -- Cavern Shambler +UPDATE `creature_template` SET `speed_walk`=0.666668 WHERE `entry`=12242; -- Spirit of Maraudos <The Fourth Kahn> +UPDATE `creature_template` SET `speed_walk`=0.666668 WHERE `entry`=12243; -- Spirit of Veng <The Fifth Kahn> +UPDATE `creature_template` SET `speed_walk`=0.666668 WHERE `entry`=13396; -- Irondeep Miner +UPDATE `creature_template` SET `speed_walk`=0.666668 WHERE `entry`=15407; -- Chieftain Zul'Marosh +UPDATE `creature_template` SET `speed_walk`=0.666668 WHERE `entry`=1812; -- Rotting Behemoth +UPDATE `creature_template` SET `speed_walk`=0.666668 WHERE `entry`=18282; -- Lord Klaq +UPDATE `creature_template` SET `speed_walk`=0.666668 WHERE `entry`=2006; -- Gnarlpine Ursa +UPDATE `creature_template` SET `speed_walk`=0.666668 WHERE `entry`=2007; -- Gnarlpine Gardener +UPDATE `creature_template` SET `speed_walk`=0.666668 WHERE `entry`=2009; -- Gnarlpine Shaman +UPDATE `creature_template` SET `speed_walk`=0.666668 WHERE `entry`=2010; -- Gnarlpine Defender +UPDATE `creature_template` SET `speed_walk`=0.666668 WHERE `entry`=2011; -- Gnarlpine Augur +UPDATE `creature_template` SET `speed_walk`=0.666668 WHERE `entry`=2012; -- Gnarlpine Pathfinder +UPDATE `creature_template` SET `speed_walk`=0.666668 WHERE `entry`=2025; -- Timberling Bark Ripper +UPDATE `creature_template` SET `speed_walk`=0.666668 WHERE `entry`=2027; -- Timberling Trampler +UPDATE `creature_template` SET `speed_walk`=0.666668 WHERE `entry`=2029; -- Timberling Mire Beast +UPDATE `creature_template` SET `speed_walk`=0.666668 WHERE `entry`=21722; -- Enslaved Netherwing Drake +UPDATE `creature_template` SET `speed_walk`=0.666668 WHERE `entry`=22332; -- Brood of Neltharaku +UPDATE `creature_template` SET `speed_walk`=0.666668 WHERE `entry`=23550; -- Valgarde Yeoman +UPDATE `creature_template` SET `speed_walk`=0.666668 WHERE `entry`=24245; -- Fenstalker +UPDATE `creature_template` SET `speed_walk`=0.666668 WHERE `entry`=24374; -- Amani'shi Berserker +UPDATE `creature_template` SET `speed_walk`=0.666668 WHERE `entry`=26458; -- Drakkari Plaguebringer +UPDATE `creature_template` SET `speed_walk`=0.666668 WHERE `entry`=29019; -- Dockhand +UPDATE `creature_template` SET `speed_walk`=0.666668 WHERE `entry`=2968; -- Galak Outrunner +UPDATE `creature_template` SET `speed_walk`=0.666668 WHERE `entry`=29829; -- Drakkari Earthshaker +UPDATE `creature_template` SET `speed_walk`=0.666668 WHERE `entry`=30023; -- Korrak the Bloodrager <Champion of the Winterax> +UPDATE `creature_template` SET `speed_walk`=0.666668 WHERE `entry`=30685; -- Argent Mason +UPDATE `creature_template` SET `speed_walk`=0.666668 WHERE `entry`=30900; -- Argent Mason +UPDATE `creature_template` SET `speed_walk`=0.666668 WHERE `entry`=31755; -- Stabled Hunter Pet +UPDATE `creature_template` SET `speed_walk`=0.666668 WHERE `entry`=32163; -- Grimkor's Hound +UPDATE `creature_template` SET `speed_walk`=0.666668 WHERE `entry`=37902; -- Alliance Mason +UPDATE `creature_template` SET `speed_walk`=0.666668 WHERE `entry`=5397; -- Uthek the Wise +UPDATE `creature_template` SET `speed_walk`=0.666668 WHERE `entry`=5481; -- Thistleshrub Dew Collector +UPDATE `creature_template` SET `speed_walk`=0.666668 WHERE `entry`=5485; -- Thistleshrub Rootshaper +UPDATE `creature_template` SET `speed_walk`=0.666668 WHERE `entry`=5490; -- Gnarled Thistleshrub +UPDATE `creature_template` SET `speed_walk`=0.666668 WHERE `entry`=5761; -- Deviate Shambler +UPDATE `creature_template` SET `speed_walk`=0.666668 WHERE `entry`=5775; -- Verdan the Everliving +UPDATE `creature_template` SET `speed_walk`=0.666668 WHERE `entry`=7404; -- Galak Flame Guard +UPDATE `creature_template` SET `speed_walk`=0.666668 WHERE `entry`=7438; -- Winterfall Ursa +UPDATE `creature_template` SET `speed_walk`=0.666668 WHERE `entry`=7439; -- Winterfall Shaman +UPDATE `creature_template` SET `speed_walk`=0.666668 WHERE `entry`=7440; -- Winterfall Den Watcher +UPDATE `creature_template` SET `speed_walk`=0.666668 WHERE `entry`=7441; -- Winterfall Totemic +UPDATE `creature_template` SET `speed_walk`=0.666668 WHERE `entry`=7442; -- Winterfall Pathfinder +UPDATE `creature_template` SET `speed_walk`=0.666668 WHERE `entry`=8580; -- Atal'alarion <Guardian of the Idol> +UPDATE `creature_template` SET `speed_walk`=0.666668 WHERE `entry`=9028; -- Grizzle +UPDATE `creature_template` SET `speed_walk`=0.666668 WHERE `entry`=9524; -- Kolkar Invader +UPDATE `creature_template` SET `speed_walk`=0.7 WHERE `entry`=636; -- Defias Blackguard +UPDATE `creature_template` SET `speed_walk`=0.777776 WHERE `entry`=10405; -- Plague Ghoul +UPDATE `creature_template` SET `speed_walk`=0.777776 WHERE `entry`=10406; -- Ghoul Ravener +UPDATE `creature_template` SET `speed_walk`=0.777776 WHERE `entry`=10407; -- Fleshflayer Ghoul +UPDATE `creature_template` SET `speed_walk`=0.777776 WHERE `entry`=10495; -- Diseased Ghoul +UPDATE `creature_template` SET `speed_walk`=0.777776 WHERE `entry`=10808; -- Timmy the Cruel +UPDATE `creature_template` SET `speed_walk`=0.777776 WHERE `entry`=11030; -- Mindless Undead +UPDATE `creature_template` SET `speed_walk`=0.777776 WHERE `entry`=11658; -- Molten Giant +UPDATE `creature_template` SET `speed_walk`=0.777776 WHERE `entry`=11659; -- Molten Destroyer +UPDATE `creature_template` SET `speed_walk`=0.777776 WHERE `entry`=11988; -- Golemagg the Incinerator +UPDATE `creature_template` SET `speed_walk`=0.777776 WHERE `entry`=12203; -- Landslide +UPDATE `creature_template` SET `speed_walk`=0.777776 WHERE `entry`=12206; -- Primordial Behemoth +UPDATE `creature_template` SET `speed_walk`=0.777776 WHERE `entry`=15655; -- Rotlimb Cannibal +UPDATE `creature_template` SET `speed_walk`=0.777776 WHERE `entry`=15658; -- Rotlimb Marauder +UPDATE `creature_template` SET `speed_walk`=0.777776 WHERE `entry`=16309; -- Gangled Cannibal +UPDATE `creature_template` SET `speed_walk`=0.777776 WHERE `entry`=16322; -- Gangled Flesheater +UPDATE `creature_template` SET `speed_walk`=0.777776 WHERE `entry`=1793; -- Rotting Ghoul +UPDATE `creature_template` SET `speed_walk`=0.777776 WHERE `entry`=1796; -- Freezing Ghoul +UPDATE `creature_template` SET `speed_walk`=0.777776 WHERE `entry`=1971; -- Ivar the Foul +UPDATE `creature_template` SET `speed_walk`=0.777776 WHERE `entry`=25031; -- Pit Overlord +UPDATE `creature_template` SET `speed_walk`=0.777776 WHERE `entry`=27272; -- Risen Villager +UPDATE `creature_template` SET `speed_walk`=0.777776 WHERE `entry`=30984; -- Scourge Drudge +UPDATE `creature_template` SET `speed_walk`=0.777776 WHERE `entry`=39639; -- Restless Zombie +UPDATE `creature_template` SET `speed_walk`=0.777776 WHERE `entry`=40274; -- Restless Zombie +UPDATE `creature_template` SET `speed_walk`=0.777776 WHERE `entry`=511; -- Insane Ghoul +UPDATE `creature_template` SET `speed_walk`=0.777776 WHERE `entry`=5469; -- Dune Smasher +UPDATE `creature_template` SET `speed_walk`=0.777776 WHERE `entry`=5470; -- Raging Dune Smasher +UPDATE `creature_template` SET `speed_walk`=0.777776 WHERE `entry`=7347; -- Boneflayer Ghoul +UPDATE `creature_template` SET `speed_walk`=0.777776 WHERE `entry`=7348; -- Thorn Eater Ghoul +UPDATE `creature_template` SET `speed_walk`=0.8 WHERE `entry`=10435; -- Magistrate Barthilas +UPDATE `creature_template` SET `speed_walk`=0.8 WHERE `entry`=10507; -- The Ravenian +UPDATE `creature_template` SET `speed_walk`=0.8 WHERE `entry`=12222; -- Creeping Sludge +UPDATE `creature_template` SET `speed_walk`=0.8 WHERE `entry`=16927; -- Stonescythe Whelp +UPDATE `creature_template` SET `speed_walk`=0.8 WHERE `entry`=18682; -- Bog Lurker +UPDATE `creature_template` SET `speed_walk`=0.8 WHERE `entry`=24247; -- Koragg +UPDATE `creature_template` SET `speed_walk`=0.8 WHERE `entry`=25740; -- Ahune <The Frost Lord> +UPDATE `creature_template` SET `speed_walk`=0.8 WHERE `entry`=25865; -- Frozen Core +UPDATE `creature_template` SET `speed_walk`=0.8 WHERE `entry`=26239; -- Ghost of Ahune +UPDATE `creature_template` SET `speed_walk`=0.8 WHERE `entry`=28253; -- Mistwhisper Lightning Cloud +UPDATE `creature_template` SET `speed_walk`=0.8 WHERE `entry`=29048; -- Ulduar Monitor +UPDATE `creature_template` SET `speed_walk`=0.8 WHERE `entry`=29722; -- Rabid Cannibal +UPDATE `creature_template` SET `speed_walk`=0.8 WHERE `entry`=7269; -- Scarab +UPDATE `creature_template` SET `speed_walk`=0.833334 WHERE `entry`=11473; -- Eldreth Spectre +UPDATE `creature_template` SET `speed_walk`=0.888888 WHERE `entry`=10394; -- Black Guard Sentry +UPDATE `creature_template` SET `speed_walk`=0.888888 WHERE `entry`=10486; -- Risen Warrior +UPDATE `creature_template` SET `speed_walk`=0.888888 WHERE `entry`=10487; -- Risen Protector +UPDATE `creature_template` SET `speed_walk`=0.888888 WHERE `entry`=10489; -- Risen Guard +UPDATE `creature_template` SET `speed_walk`=0.888888 WHERE `entry`=1110; -- Skeletal Raider +UPDATE `creature_template` SET `speed_walk`=0.888888 WHERE `entry`=1520; -- Rattlecage Soldier +UPDATE `creature_template` SET `speed_walk`=0.888888 WHERE `entry`=1523; -- Cracked Skull Soldier +UPDATE `creature_template` SET `speed_walk`=0.888888 WHERE `entry`=16305; -- Dreadbone Sentinel +UPDATE `creature_template` SET `speed_walk`=0.888888 WHERE `entry`=1658; -- Captain Dargol +UPDATE `creature_template` SET `speed_walk`=0.888888 WHERE `entry`=17878; -- Scourge Siege Engineer +UPDATE `creature_template` SET `speed_walk`=0.888888 WHERE `entry`=24243; -- Lord Raadan +UPDATE `creature_template` SET `speed_walk`=0.888888 WHERE `entry`=25033; -- Eredar Sorcerer +UPDATE `creature_template` SET `speed_walk`=0.888888 WHERE `entry`=27969; -- Dark Rune Giant +UPDATE `creature_template` SET `speed_walk`=0.888888 WHERE `entry`=28587; -- Volkhan +UPDATE `creature_template` SET `speed_walk`=0.888888 WHERE `entry`=28920; -- Stormforged Giant +UPDATE `creature_template` SET `speed_walk`=0.888888 WHERE `entry`=31079; -- Azure Saboteur +UPDATE `creature_template` SET `speed_walk`=0.888888 WHERE `entry`=37596; -- Lady Sylvanas Windrunner <Banshee Queen> +UPDATE `creature_template` SET `speed_walk`=0.888888 WHERE `entry`=4328; -- Firemane Scalebane +UPDATE `creature_template` SET `speed_walk`=0.888888 WHERE `entry`=4329; -- Firemane Scout +UPDATE `creature_template` SET `speed_walk`=0.888888 WHERE `entry`=4331; -- Firemane Ash Tail +UPDATE `creature_template` SET `speed_walk`=0.888888 WHERE `entry`=4334; -- Firemane Flamecaller +UPDATE `creature_template` SET `speed_walk`=0.888888 WHERE `entry`=48; -- Skeletal Warrior +UPDATE `creature_template` SET `speed_walk`=0.888888 WHERE `entry`=522; -- Mor'Ladim +UPDATE `creature_template` SET `speed_walk`=0.888888 WHERE `entry`=7344; -- Splinterbone Warrior +UPDATE `creature_template` SET `speed_walk`=0.888888 WHERE `entry`=7345; -- Splinterbone Captain +UPDATE `creature_template` SET `speed_walk`=0.888888 WHERE `entry`=7346; -- Splinterbone Centurion +UPDATE `creature_template` SET `speed_walk`=0.888888 WHERE `entry`=771; -- Commander Felstrom +UPDATE `creature_template` SET `speed_walk`=0.888888 WHERE `entry`=8527; -- Scourge Guard +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=10000; -- Arugal +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=10058; -- Greth <Stable Master> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=10082; -- Zerillis +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=10096; -- High Justice Grimstone +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=10120; -- Vault Warder +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=10300; -- Ranshalla +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=10301; -- Jaron Stoneshaper <Explorers' League> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=10303; -- Storm Shadowhoof +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=10305; -- Umi Rumplesnicker +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=10307; -- Witch Doctor Mau'ari +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=10356; -- Bayne +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=10381; -- Ravaged Cadaver +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=10382; -- Mangled Cadaver +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=10390; -- Skeletal Guardian +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=10391; -- Skeletal Berserker +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=10393; -- Skul +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=10398; -- Thuzadin Shadowcaster +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=10400; -- Thuzadin Necromancer +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=10408; -- Rockwing Gargoyle +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=10409; -- Rockwing Screecher +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=10411; -- Eye of Naxxramas +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=10412; -- Crypt Crawler +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=10413; -- Crypt Beast +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=10414; -- Patchwork Horror +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=10415; -- Ash'ari Crystal +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=10416; -- Bile Spewer +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=10417; -- Venom Belcher +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=10418; -- Crimson Guardsman +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=10419; -- Crimson Conjuror +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=10420; -- Crimson Initiate +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=10421; -- Crimson Defender +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=10422; -- Crimson Sorcerer +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=10423; -- Crimson Priest +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=10424; -- Crimson Gallant +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=10425; -- Crimson Battle Mage +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=10426; -- Crimson Inquisitor +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=10427; -- Pao'ka Swiftmountain +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=10431; -- Gregor Greystone <The Argent Dawn> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=10432; -- Vectus +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=10433; -- Marduk Blackpool +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=10436; -- Baroness Anastari +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=10437; -- Nerub'enkan +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=10438; -- Maleki the Pallid +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=10439; -- Ramstein the Gorger +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=10440; -- Baron Rivendare +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=10441; -- Plagued Rat +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=10445; -- Selina Dourman <Darkmoon Faire Information> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=10461; -- Plagued Insect +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=10463; -- Shrieking Banshee +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=10464; -- Wailing Banshee +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=10468; -- Felnok Steelspring +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=10469; -- Scholomance Adept +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=10470; -- Scholomance Neophyte +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=10471; -- Scholomance Acolyte +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=10472; -- Scholomance Occultist +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=10475; -- Scholomance Student +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=10477; -- Scholomance Necromancer +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=10478; -- Splintered Skeleton +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=10480; -- Unstable Corpse +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=10481; -- Reanimated Corpse +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=10485; -- Risen Aberration +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=10488; -- Risen Construct +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=10491; -- Risen Bonewarder +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=10502; -- Lady Illucia Barov +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=10503; -- Jandice Barov +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=10504; -- Lord Alexei Barov +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=10505; -- Instructor Malicia +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=10508; -- Ras Frostwhisper +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=1051; -- Dark Iron Dwarf +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=1052; -- Dark Iron Saboteur +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=10558; -- Hearthsinger Forresten +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=10580; -- Fetid Zombie +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=10637; -- Malyfous Darkhammer <The Thorium Brotherhood> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=1065; -- Riverpaw Shaman +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=1068; -- Gorn +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=1071; -- Longbraid the Grim +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=1072; -- Roggo Harlbarrow +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=1073; -- Ashlan Stonesmirk +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=1074; -- Motley Garmason +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=1075; -- Rhag Garmason +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=10811; -- Archivist Galford +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=10812; -- Grand Crusader Dathrohan +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=10828; -- High General Abbendis +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=10897; -- Sindrayl <Hippogryph Master> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=10901; -- Lorekeeper Polkelt +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=10917; -- Aurius +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=10919; -- Shatterspear Troll +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=10978; -- Legacki +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=10997; -- Cannon Master Willey +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11032; -- Malor the Zealous +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=1103; -- Eldrin <Tailoring Trainer> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11043; -- Crimson Monk +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11058; -- Fras Siabi +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11072; -- Kitta Firewind <Enchanting Trainer> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11079; -- Wynd Nightchaser +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11082; -- Stratholme Courier +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11103; -- Innkeeper Lyshaerya <Innkeeper> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11118; -- Innkeeper Vizzie <Innkeeper> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11119; -- Azzleby <Stable Master> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11138; -- Maethrya <Hippogryph Master> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11139; -- Yugrek <Wind Rider Master> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11140; -- Egan +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11142; -- Undead Postman +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11182; -- Nixxrak <Heavy Armor Merchant> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11183; -- Blixxrak <Light Armor Merchant> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11184; -- Wixxrak <Weaponsmith & Gunsmith> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11185; -- Xizzer Fizzbolt <Engineering Supplies> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11186; -- Lunnix Sprocketslip <Mining Supplies> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11187; -- Himmik <Food & Drink> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11188; -- Evie Whirlbrew <Alchemy Supplies> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11189; -- Qia <Trade Supplies> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11190; -- Everlook Bruiser +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11191; -- Lilith the Lithe +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11192; -- Kilram +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11193; -- Seril Scourgebane +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11196; -- Shatterspear Drummer +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11257; -- Scholomance Handler +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11261; -- Doctor Theolen Krastinov <The Butcher> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11438; -- Bibbly F'utzbuckle +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11451; -- Wildspawn Satyr +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11452; -- Wildspawn Rogue +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11453; -- Wildspawn Trickster +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11454; -- Wildspawn Betrayer +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11455; -- Wildspawn Felsworn +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11456; -- Wildspawn Shadowstalker +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11457; -- Wildspawn Hellcaller +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11458; -- Petrified Treant +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11460; -- Alzzin's Minion +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11461; -- Warpwood Guardian +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11462; -- Warpwood Treant +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11464; -- Warpwood Tangler +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11465; -- Warpwood Stomper +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11469; -- Eldreth Seether +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11470; -- Eldreth Sorcerer +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11472; -- Eldreth Spirit +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11476; -- Skeletal Highborne +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11477; -- Rotting Highborne +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11480; -- Arcane Aberration +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11483; -- Mana Remnant +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11486; -- Prince Tortheldrin +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11487; -- Magister Kalendris +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11488; -- Illyanna Ravenoak +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11489; -- Tendris Warpwood +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11490; -- Zevrim Thornhoof +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11491; -- Old Ironbark +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11492; -- Alzzin the Wildshaper +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11546; -- Jack Sterling +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11551; -- Necrofiend +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11598; -- Risen Guardian +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11622; -- Rattlegore +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11625; -- Cork Gizelton +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11626; -- Rigger Gizelton +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11629; -- Jessica Redpath +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=1165; -- Stonesplinter Geomancer +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11661; -- Flamewaker +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11662; -- Flamewaker Priest +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11663; -- Flamewaker Healer +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11664; -- Flamewaker Elite +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11666; -- Firewalker +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11667; -- Flameguard +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11668; -- Firelord +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11669; -- Flame Imp +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11671; -- Core Hound +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11672; -- Core Rager +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=1167; -- Stonesplinter Digger +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11701; -- Mor'vek <Ravasaur Trainers> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11706; -- Adon +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11715; -- Talendria +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11718; -- Sar Browneye +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11751; -- Rilan Howard +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11753; -- Gogo +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11754; -- Meggi Peppinrocker +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11755; -- Harlo Wigglesworth +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11757; -- Umaron Stragarelm +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11789; -- Deep Borer +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=1178; -- Mo'grosh Ogre +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11790; -- Putridus Satyr +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11791; -- Putridus Trickster +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11792; -- Putridus Shadowstalker +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11793; -- Celebrian Dryad +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11794; -- Sister of Celebras +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=1179; -- Mo'grosh Enforcer +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11804; -- Twilight Keeper Havunth <Twilight's Hammer> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11808; -- Grum Redbeard +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11811; -- Narain Soothfancy +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11817; -- Krah'ranik +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11819; -- Jory Zaga +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11868; -- Sayoc <Weapon Master> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11871; -- Grinning Dog +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11896; -- Borelgore +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11897; -- Duskwing +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11899; -- Shardi <Wind Rider Master> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=1192; -- Elder Mountain Boar +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=1194; -- Mountain Buzzard +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=11982; -- Magmadar +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=12018; -- Majordomo Executus +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=12056; -- Baron Geddon +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=1206; -- Gnasher +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=1207; -- Brawler +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=12098; -- Sulfuron Harbinger +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=12118; -- Lucifron +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=12119; -- Flamewaker Protector +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=12150; -- Riding Kodo (Purple) +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=12198; -- Martin Lindsey <Arathi Basin Battlemaster> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=12201; -- Princess Theradras +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=12207; -- Thessala Hydra +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=12216; -- Poison Sprite +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=12217; -- Corruptor +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=12218; -- Vile Larva +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=12219; -- Barbed Lasher +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=12220; -- Constrictor Vine +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=12221; -- Noxious Slime +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=12236; -- Lord Vyletongue +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=12244; -- Mark of Detonation (NW) +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=12246; -- Super-Seller 680 +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=12258; -- Razorlash +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=12259; -- Gehennas +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=12264; -- Shazzrah +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=12337; -- Crimson Courier +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=12384; -- Augustus the Touched +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=12430; -- Grunt Kor'ja +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=1250; -- Drake Lindgren <General & Trade Supplies> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=125; -- Riverpaw Overseer +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=12740; -- Faustron <Wind Rider Master> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=12865; -- Ambassador Malcin +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=12866; -- Myriam Moonsinger +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=12960; -- Christi Galvanis <General Goods> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=13022; -- Whip Lasher +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=13078; -- Umi Thorson +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=13079; -- Keetar +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=13080; -- Irondeep Guard +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=13081; -- Irondeep Raider +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=13099; -- Irondeep Explorer +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=13118; -- Crimson Bodyguard +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=13141; -- Deeprot Stomper +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=13142; -- Deeprot Tangler +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=13159; -- James Clark +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=13196; -- Phase Lasher +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=13197; -- Fel Lash +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=13276; -- Wildspawn Imp +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=13280; -- Hydrospawn +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=13282; -- Noxxion +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=13285; -- Death Lash +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=13323; -- Subterranean Diemetradon +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=13338; -- Core Rat +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=13397; -- Irondeep Peon +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=13476; -- Balai Lok'Wein <Potions, Scrolls & Reagents> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=13533; -- Spewed Larva +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=13596; -- Rotgrip +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=13599; -- Stolid Snapjaw +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=13601; -- Tinkerer Gizlock +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=13656; -- Willow <Twilight's Hammer> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=13743; -- Corrupt Force of Nature +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=13777; -- Sergeant Durgen Stormpike +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=13916; -- Dire Maul Crystal Totem +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=13917; -- Izzy Coppergrab <Banker> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=1393; -- Berserk Trogg +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=1398; -- Boss Galgosh <Stonesplinter Chieftain> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=14028; -- Trigger Jeztor +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=1407; -- Sranda <Light Armor & Weapons Merchant> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=1410; -- Firewing Bloodwarder +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=14232; -- Dart +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=14235; -- The Rot +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=14236; -- Lord Angler +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=14237; -- Oozeworm +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=14266; -- Shanda the Spinner +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=14267; -- Emogg the Crusher +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=14276; -- Scargil +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=14277; -- Lady Zephris +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=14279; -- Creepthess +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=14280; -- Big Samras +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=14303; -- Petrified Guardian +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=14327; -- Lethtendris +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=14347; -- Highlord Demitrian +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=14349; -- Pimgib +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=14354; -- Pusillin +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=14355; -- Azj'Tordin +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=14357; -- Lake Thresher +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=14358; -- Shen'dralar Ancient +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=14361; -- Shen'dralar Wisp +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=14368; -- Lorekeeper Lydros +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=14369; -- Shen'dralar Zealot +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=14371; -- Shen'dralar Provisioner +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=14381; -- Lorekeeper Javon +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=14382; -- Lorekeeper Mykos +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=14383; -- Lorekeeper Kildrath +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=14398; -- Eldreth Darter +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=14400; -- Arcane Feedback +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=14430; -- Duskstalker +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=1449; -- Witch Doctor Unbagwa +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=14531; -- Artorius the Amiable +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=14566; -- Ancient Equine Spirit +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=14635; -- Sleepy Dark Iron Worker +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=14636; -- Chambermaid Pillaclencher +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=14646; -- Stratholme Trigger +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=14717; -- Horde Elite +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=14718; -- Horde Laborer +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=14742; -- Zap Farflinger <Unbalanced Engineer> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=14754; -- Kelm Hargunth <Warsong Supply Officer> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=14781; -- Captain Shatterskull +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=14822; -- Sayge +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=14823; -- Silas Darkmoon +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=14827; -- Burth +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=14828; -- Gelvas Grimegate <Darkmoon Faire Ticket Redemption> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=14829; -- Yebb Neblegear +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=14832; -- Kerri Hicks <The Strongest Woman Alive!> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=14833; -- Chronos <He Who Never Forgets!> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=14841; -- Rinling +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=14844; -- Sylannia <Darkmoon Faire Drink Vendor> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=14845; -- Stamp Thunderhorn <Darkmoon Faire Food Vendor> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=14846; -- Lhara <Darkmoon Faire Exotic Goods> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=14847; -- Professor Thaddeus Paleo <Darkmoon Faire Cards & Exotic Goods> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=14849; -- Darkmoon Faire Carnie +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=14860; -- Flik +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=14861; -- Blood Steward of Kirtonos +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=14864; -- Khaz Modan Ram +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=14865; -- Felinni +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=14866; -- Flik's Frog +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=14867; -- Jubjub +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=14868; -- Hornsley +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=14869; -- Pygmy Cockatrice +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=14871; -- Morja +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=14872; -- Trok +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=14874; -- Karu +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=14894; -- Swarm of bees +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=14909; -- Pooka +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=14961; -- Mirvyna Jinglepocket <Smokywood Pastures> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=14964; -- Hecht Copperpinch <Smokywood Pastures> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=1497; -- Gunther Arcanus +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=15006; -- Deze Snowbane <Arathi Basin Battlemaster> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=1511; -- Enraged Silverback Gorilla +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=15136; -- Hammerfall Elite +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=1514; -- Mokk the Savage +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=15162; -- Scarlet Inquisitor +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=1516; -- Konda +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=1522; -- Darkeye Bonecaster +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=1527; -- Hungering Dead +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=1528; -- Shambling Horror +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=15301; -- Outrunner Alarion +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=1530; -- Rotting Ancestor +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=1531; -- Lost Soul +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=1532; -- Wandering Spirit +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=1534; -- Wailing Ancestor +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=1535; -- Scarlet Warrior +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=15397; -- Marniel Amberlight <Innkeeper> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=15398; -- Larianna Riverwind +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=15399; -- Lieutenant Dawnrunner <Farstriders> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=15400; -- Arathel Sunforge <Blacksmithing Trainer> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=15401; -- Ley-Keeper Velania +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=15402; -- Apprentice Mirveda +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=15405; -- Ley-Keeper Caidanis +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=15409; -- Old Whitebark +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=15416; -- Ranger Jaela +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=15417; -- Velan Brightoak +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=15420; -- Prospector Anvilward +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=1543; -- Vile Fin Puddlejumper +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=1544; -- Vile Fin Minor Oracle +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=1545; -- Vile Fin Muckdweller +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=15461; -- Shrieker Scarab +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=15466; -- Minion of Omen +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=15520; -- O'Reily +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=15549; -- Elder Morndeep +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=15562; -- Elder Hammershout +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=15565; -- Elder Stormbrow +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=15567; -- Elder Ironband +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=15568; -- Elder Graveborn +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=15570; -- Elder Primestone +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=15573; -- Elder Ragetotem +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=15578; -- Elder Wildmane +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=15581; -- Elder Grimtotem +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=15582; -- Elder Windtotem +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=15583; -- Elder Thunderhorn +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=15584; -- Elder Skyseer +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=15586; -- Elder Dreamseer +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=15595; -- Elder Bladeleaf +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=15597; -- Elder Moonwarden +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=15599; -- Elder Bladesing +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=15601; -- Elder Starweave +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=15604; -- Elder Morningdew +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=15605; -- Elder Riversong +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=15607; -- Elder Farwhisper +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=15624; -- Forest Wisp +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=15635; -- Eversong Tender +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=15636; -- Eversong Green Keeper +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=15637; -- Withered Green Keeper +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=15638; -- Arcane Patroller +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=15645; -- Wretched Thug +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=15647; -- Mana Stalker +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=15648; -- Manawraith +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=15650; -- Crazed Dragonhawk +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=15652; -- Elder Springpaw +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=15654; -- Plaguebone Pillager +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=15656; -- Angershade +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=15657; -- Darkwraith +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=15668; -- Grimscale Murloc +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=15669; -- Grimscale Oracle +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=15670; -- Grimscale Forager +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=15719; -- Thunder Bluff Reveler +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=15871; -- Elder Bronzebeard +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=15905; -- Darnassus Reveler +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=15907; -- Undercity Reveler +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=15908; -- Orgrimmar Reveler +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=15920; -- Hathvelion Sungaze +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=15924; -- Apprentice Loralthalis +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=15937; -- Mmmrrrggglll <Grimscale Chieftain> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=15938; -- Eversong Ranger +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=15939; -- Ranger Degolien +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=15940; -- Ranger Selron +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=15941; -- Apprentice Ralen +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=15942; -- Ranger Sareyn +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=15945; -- Apprentice Meledor +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=15946; -- Apprentice Veya +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=15949; -- Thaelis the Hungerer +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=15950; -- Grimscale Seer +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=15951; -- Magister Duskwither +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=15961; -- Lunar Festival Sentinel +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=15966; -- Mana Serpent +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=15967; -- Ether Fiend +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=15968; -- Darnassian Scout +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=15969; -- Groundskeeper Wyllithen +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16031; -- Ysida Harmon +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16032; -- Falrin Treeshaper +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16045; -- Isalien Trigger +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16046; -- Jarien and Sothos Trigger +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16047; -- Kormok Trigger +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16090; -- Rousch +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16117; -- Plagued Swine +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16144; -- Lord Saltheril +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16147; -- Elisara Sunstriker +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16160; -- Magistrix Eredania <Enchanting Trainer> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16161; -- Arcanist Sheynathren <Alchemy Trainer> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16162; -- Wretched Hooligan +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16183; -- Courier Dawnstrider +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16187; -- Quartermaster Lymel <General Goods> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16189; -- Skymaster Sunwing <Dragonhawk Master> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16196; -- Apothecary Thedra +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16198; -- Apothecary Renzithen +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16199; -- Magister Darenis +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16200; -- Deathstalker Rathiel +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16201; -- Geranis Whitemorn +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16202; -- Farstrider Sedina <Farstriders> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16203; -- Ranger Vynna <Farstriders> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16205; -- Magistrix Aminel +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16210; -- Magistrix Landra Dawnstrider +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16213; -- Ranger Lethvalin <Farstriders> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16219; -- Ranger Valanna <Farstriders> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16220; -- Captain Helios <Farstriders> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16224; -- Rathis Tomber <Trade Supplies> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16226; -- Guard Didier <Brotherhood of the Light> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16231; -- Dame Auriferous +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16232; -- Caravan Mule +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16245; -- Luzran +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16251; -- Deathstalker Maltendis +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16252; -- High Executor Mavren +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16253; -- Master Chef Mouldier <Cooking Trainer & Supplies> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16260; -- Areyn <General Goods> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16261; -- Sathiel <Trade Supplies> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16263; -- Paelarin <Bowyer> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16264; -- Winaestra <Hawkstrider Breeder> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16268; -- Eralan <Poison Supplies> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16274; -- Narina <Bowyer> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16280; -- Perascamin <Riding Trainer> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16288; -- Advisor Sorrelon +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16289; -- Advisor Valwyn +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16293; -- Apprentice Shatharia +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16301; -- Risen Hungerer +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16302; -- Risen Stalker +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16304; -- Arcane Devourer +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16307; -- Deathcage Scryer +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16308; -- Deathcage Sorcerer +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16310; -- Mana Shifter +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16311; -- Phantasmal Watcher +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16313; -- Nerubis Guard +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16314; -- Fallen Ranger +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16315; -- Deatholme Acolyte +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16316; -- Stonewing Tracker +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16317; -- Deatholme Necromancer +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16318; -- Deatholme Darkmage +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16319; -- Nerubis Centurion +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16320; -- Eye of Dar'Khan +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16321; -- Wailer +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16323; -- Phantasmal Seeker +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16324; -- Stonewing Slayer +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16325; -- Quel'dorei Ghost +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16326; -- Quel'dorei Wraith +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16330; -- Sentinel Spy +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16333; -- Sentinel Infiltrator +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16334; -- Blackpaw Gnoll +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16337; -- Blackpaw Shaman +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16341; -- Shadowpine Witch +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16343; -- Shadowpine Oracle +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16345; -- Shadowpine Catlord +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16346; -- Shadowpine Hexxer +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16348; -- Ghostclaw Lynx +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16349; -- Ghostclaw Ravager +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16350; -- Spindleweb Spider +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16351; -- Spindleweb Lurker +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16352; -- Greater Spindleweb +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16354; -- Vampiric Mistbat +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16355; -- Lesser Scourgebat +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16357; -- Anok'suten +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16362; -- Runewarden Deryan +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16366; -- Sempstress Ambershine <Tailoring Trainer> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16367; -- Botanist Tyniarrel <Herbalism Trainer & Supplies> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16397; -- Ardeyn Riverwind +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16402; -- Zombified Grimscale +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16403; -- Withered Grimscale +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16416; -- Bronn Fitzwrench +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16443; -- Zalene Firstlight <Food & Drink> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16444; -- Halis Dawnstrider <General Goods> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16462; -- Ranger Krenn'an <Farstriders> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16463; -- Farstrider Solanna <Farstriders> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16464; -- Apothecary Venustus <Royal Apothecary Society> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16465; -- Raw Meat Rack Trigger +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16466; -- Smoked Meat Rack Trigger +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16480; -- Apprentice Vor'el +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=1650; -- Terry Palin <Lumberjack> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16519; -- Shadowy Executioner +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16528; -- Provisioner Vredigar +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16541; -- Ghostlands Guardian +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16542; -- Innkeeper Kalarin <Innkeeper> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16550; -- Image of Technician Dyvuun +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=1655; -- Nissa Agamand +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=1657; -- Devlin Agamand +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16588; -- Apothecary Antonivich <Master Alchemy Trainer> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16601; -- Dying Blood Elf +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16603; -- Farstrider Dusking <Farstriders> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16665; -- Paniar <Stable Master> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16694; -- Karen Wentworth <Arathi Basin Battlemaster> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=1675; -- Rot Hide Mongrel +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16769; -- Firewing Warlock +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16818; -- Festival Talespinner +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16854; -- Eldinarcus +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16855; -- Tregla +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16860; -- Jilanne +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=16862; -- Silanna +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=1696; -- Targorr the Dread +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=17000; -- Aggonis +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=17002; -- Angela "The Claw" Kestrel +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=17004; -- Jir'see <Angela's Pet> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=1700; -- Paxton Ganter <Fishing Trainer> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=17047; -- Wretched Crate Trigger +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=17056; -- Eversong Partygoer +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=17088; -- Shadowy Summoner +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=17095; -- Balandar Brightstar +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=17097; -- Advisor Sarophas +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=17138; -- Warmaul Reaver +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=17180; -- Spirit of Air +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=17181; -- Spirit of Water +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=17182; -- Spirit of Fire +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=17186; -- Deranged Owlbeast +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=17187; -- Aberrant Owlbeast +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=17188; -- Raving Owlbeast +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=17189; -- Crazed Wildkin +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=171; -- Murloc Warrior +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=17210; -- Sentinel Leader +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=17218; -- Huraan +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=17233; -- Ghost of Uther Lightbringer <Knights of the Silver Hand> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=17253; -- Defile Uther's Tomb Trigger +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=1729; -- Defias Evoker +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=17311; -- Cowlen +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=17312; -- Magwin +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=1732; -- Defias Squallshaper +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=17361; -- Totem of Coo +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=17362; -- Totem of Tikti +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=17363; -- Totem of Yor +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=17364; -- Totem of Vark +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=17405; -- Krun Spinebreaker +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=17417; -- Mag'har Escort +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=17418; -- Laughing Skull Ambusher +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=1753; -- Maggot Eye +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=17556; -- Death Ravager +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=17587; -- Draenei Youngling +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=17624; -- Laughing Skull Warden +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=1763; -- Gilnid <The Smelter> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=17655; -- Blacksmith Frances <Blacksmithing Supplies> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=17656; -- Heron Skygaze <Food & Drink> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=17690; -- <TXT>Eastwall Capture Quest Doodad +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=17721; -- Coilfang Engineer +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=17722; -- Coilfang Sorceress +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=1772; -- Rot Hide Gladerunner +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=1773; -- Rot Hide Mystic +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=17796; -- Mekgineer Steamrigger +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=17797; -- Hydromancer Thespia +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=17798; -- Warlord Kalithresh +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=17799; -- Dreghood Slave +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=17800; -- Coilfang Myrmidon +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=17801; -- Coilfang Siren +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=17802; -- Coilfang Warrior +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=17803; -- Coilfang Oracle +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=17805; -- Coilfang Slavemaster +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=17816; -- Bogstrok +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=17817; -- Greater Bogstrok +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=17822; -- Landen Stilwell +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=17826; -- Swamplord Musel'ek +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=17827; -- Claw <Swamplord Musel'ek's Pet> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=17849; -- Slain Outrunner +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=17882; -- The Black Stalker +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=17885; -- Earthbinder Rayge +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=17890; -- Weeder Greenthumb +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=17893; -- Naturalist Bite +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=17915; -- [PH] Invis Paladin Quest Credit <Nothing to See Here> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=17917; -- Coilfang Water Elemental +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=17938; -- Coilfang Observer +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=17940; -- Coilfang Technician +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=17941; -- Mennu the Betrayer +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=17942; -- Quagmirran +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=17951; -- Steamrigger Mechanic +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=17954; -- Naga Distiller +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=17957; -- Coilfang Champion +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=17958; -- Coilfang Defender +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=17959; -- Coilfang Slavehandler +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=17960; -- Coilfang Soothsayer +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=17961; -- Coilfang Enchantress +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=17962; -- Coilfang Collaborator +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=17963; -- Wastewalker Slave +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=17964; -- Wastewalker Worker +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=17984; -- Power Source Invisible Bunny +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=17992; -- Coilfang Invisible Vacuum Dummy +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=18035; -- Scout Jyoba +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=18064; -- Warmaul Shaman +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=1806; -- Vile Slime +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=18117; -- Ango'rosh Ogre +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=18118; -- Ango'rosh Shaman +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=18134; -- Fen Strider +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=18135; -- Marsh Walker +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=18159; -- Boss Grog'ak +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=18206; -- Wastewalker Captive +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=18283; -- Blacksting +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=18286; -- Mragesh +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=18393; -- Warmaul Ogre Credit Marker +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=18395; -- Warmaul Pyre Credit Marker +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=18426; -- Terellia <Trade Supplies> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=18452; -- Skithian Dreadhawk +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=1853; -- Darkmaster Gandling +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=18541; -- Urdak +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=18548; -- Firewing Courier +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=1854; -- High Priest Thel'danis +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=18586; -- Coosh'coosh +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=18670; -- Ironjaw +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=18678; -- Fulgorge +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=18681; -- Coilfang Emissary +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=18684; -- Bro'Gaz the Clanless +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=18716; -- Shadowy Initiate +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=18717; -- Shadowy Laborer +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=18718; -- Shadowy Hunter +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=18719; -- Shadowy Advisor +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=18720; -- Shadowmaster Grieve +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=18748; -- Ruak Stronghorn <Master Herbalism Trainer> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=18753; -- Felannia <Master Enchanting Trainer> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=18759; -- Zangarmarsh PvP Beam (Blue) +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=18841; -- Laughing Skull Clan Ruins Credit Marker +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=1892; -- Moonrage Watcher +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=18947; -- Solanin <Bag Vendor> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=1894; -- Pyrewood Sentry +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=1910; -- Muad +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=19273; -- Forward Commander To'arch +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=19280; -- Red Hawkstrider +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=19281; -- Swift Pink Hawkstrider +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=19315; -- Supply Officer Isabel <General Goods & Repairs> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=19333; -- Grokom Deatheye <Weaponsmith> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=19339; -- Korthul <Bowyer & Gunsmith> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=19342; -- Krek Cragcrush <Blacksmithing Supplies> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=1934; -- Tirisfal Farmer +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=1935; -- Tirisfal Farmhand +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=1936; -- Farmer Solliden +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=1937; -- Apothecary Renferrel <Royal Apothecary Society> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=1938; -- Dalar Dawnweaver +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=19412; -- D'ore +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=19416; -- Ancient Draenei Spirit +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=1950; -- Rane Yorick <Deathstalker> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=1951; -- Quinn Yorick <Deathstalker> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=19526; -- Dunaman <Weapons Vendor> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=19528; -- Nanomah <Provisions Merchant> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=1952; -- High Executor Hadrec +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=19530; -- Darmend <Blacksmithing Supplies> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=19532; -- Dearny <Leatherworking Merchant> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=19581; -- Maddix <Flight Master> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=1960; -- Pilot Hammerfoot +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=19629; -- Denath +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=19631; -- Harram +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=19648; -- Maranem +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=19649; -- Dorni <General Goods> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=19698; -- Greatfather Aldrimus +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=1975; -- Eastvale Lumberjack +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=19762; -- Coilskar Defender +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=19765; -- Coilskar Myrmidon +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=19767; -- Coilskar Sorceress +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=19768; -- Coilskar Siren +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=19769; -- Coilskar Screamer +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=19784; -- Coilskar Cobra +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=19788; -- Coilskar Muckwatcher +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=19789; -- Coilskar Waterkeeper +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=19795; -- Eclipsion Blood Knight +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=19826; -- Dark Conclave Shadowmancer +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=19827; -- Dark Conclave Ravenguard +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=1983; -- Nightlash +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=19879; -- Horvon the Armorer <Armorsmith> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=19910; -- Gargok <Warsong Gulch Battlemaster> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=1997; -- Strigid Hunter +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2000; -- Webwood Silkspinner +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=20076; -- Naga Distiller (Coilskar Point) +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=20217; -- Purple Hawkstrider +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=20220; -- Blue Hawkstrider +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=20222; -- Black Hawkstrider +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=20223; -- Swift Purple Hawkstrider +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=20224; -- Swift Green Hawkstrider +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=20324; -- Parched Hydra +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2033; -- Elder Nightsaber +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2044; -- Forlorn Spirit +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=20684; -- Lady Shav'rar +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=20767; -- Mana Bomb Explosion Trigger +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=20797; -- Deviate Coiler Hatchling +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=20812; -- Corki +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2084; -- Natheril Raincaller <General Goods> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2090; -- Ma'ruk Wyrmscale <Dragonmaw Warlord> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=20926; -- Coilfang Door Controller +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2102; -- Dragonmaw Grunt +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=21039; -- Mana Bomb Kill Credit Trigger +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2103; -- Dragonmaw Scout +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=21059; -- Enraged Water Spirit +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=21060; -- Enraged Air Spirit +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=21095; -- Credit Marker: Water +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=21096; -- Credit Marker: Air +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=21126; -- Coilfang Scale-Healer +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=21127; -- Coilfang Tempest +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=21128; -- Coilfang Ray <Observer's Pet> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2121; -- Shadow Priest Allister +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=21284; -- Auchenai Initiate +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=21338; -- Coilfang Leper +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=21386; -- Dark Conclave Hawkeye +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=21402; -- Anchorite Ceyla +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2140; -- Edwin Harly <General Supplies> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=21416; -- Lakaan <Corruptor of Water> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=21420; -- Corrupt Water Totem +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=21453; -- Ashtongue Shaman <Servant of Illidan> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=21454; -- Ashtongue Warrior <Servant of Illidan> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=21455; -- Ashtongue Worker <Servant of Illidan> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=21477; -- Rocknail Flayer +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=21478; -- Rocknail Ripper +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=21515; -- Trachela +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=215; -- Defias Night Runner +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=21638; -- Vengeful Harbinger +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=21656; -- Illidari Satyr <Servant of Illidan> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=21663; -- Oronu the Elder +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=21694; -- Bog Overlord +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=21695; -- Tidal Surger +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=21696; -- Steam Surger +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=21717; -- Dragonmaw Wrangler +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=21718; -- Dragonmaw Subjugator +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=21719; -- Dragonmaw Drake-Rider +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=21720; -- Dragonmaw Shaman +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=21721; -- Enslaved Netherwing Whelp +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=21746; -- Caretaker Aluuro <Innkeeper> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=21802; -- Elekk Demolisher +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=21803; -- Ashtongue Handler <Servant of Illidan> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=21808; -- Illidari Overseer <Servant of Illidan> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2181; -- Stormscale Myrmidon +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=21822; -- Vindicator Aluumen +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2182; -- Stormscale Sorceress +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2183; -- Stormscale Warrior +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=21860; -- Exarch Onaala +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=21898; -- Mana Bomb Lightning Trigger +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=21899; -- Mana Bomb Lightning Target +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2189; -- Vile Sprite +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=218; -- Grave Robber +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2190; -- Wild Grell +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=21979; -- Val'zareq the Conqueror <The Crimson Sigil> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=21986; -- Altar of Sha'tar Vindicator +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=22054; -- Behemothon, King of the Colossi +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=22062; -- Dr. Whitherlimb +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=22079; -- Air Force Guard Post (Aldor - Gryphon) +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=22080; -- Air Force Trip Wire - Rooftop (Aldor) +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=22081; -- Shadowmoon Darkweaver <Servant of Illidan> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=22082; -- Shadowmoon Slayer <Servant of Illidan> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=22112; -- Karynaku <Mate of Neltharaku> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=22113; -- Mordenai +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2212; -- Deth'ryll Satyr +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=22134; -- Shadowmoon Eye of Kilrogg +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2214; -- Deathstalker Lesh +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=22214; -- Harbinger Saronen +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=22252; -- Dragonmaw Peon +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2226; -- Karos Razok <Bat Handler> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=22288; -- Terokkar Quest Target +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2228; -- Lieutenant Farren Orinelle +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=22314; -- Captive Child +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=22331; -- Dragonmaw Elite +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2242; -- Syndicate Spy +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2263; -- Marshal Redpath +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2264; -- Hillsbrad Tailor +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2265; -- Hillsbrad Apprentice Blacksmith +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2266; -- Hillsbrad Farmer +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2268; -- Hillsbrad Footman +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2269; -- Hillsbrad Miner +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2270; -- Hillsbrad Sentry +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2271; -- Dalaran Shield Guard +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2272; -- Dalaran Theurgist +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2276; -- Magistrate Henry Maleb +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2277; -- Loremaster Dibbs +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=22835; -- Cenarion Dreamwarden +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=23020; -- Shadow Serpent +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2303; -- Lyranne Feathersong <Food & Drink> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2305; -- Foreman Bonds +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=23094; -- Minion of Sar'this +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2316; -- Gol'dir +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=23188; -- Dragonmaw Transporter +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2319; -- Syndicate Wizard +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=23326; -- Nethermine Ravager +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=23340; -- Murg "Oldie" Muckjaw +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=23342; -- Trope the Filth-Belcher +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=23344; -- Corlok the Vet +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=23346; -- Wing Commander Mulverick +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=23348; -- Captain Skyshatter +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2335; -- Magistrate Burnside +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=23452; -- Commander Arcus +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=23454; -- Dragonmaw Raid Credit Marker (Aldor) +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2348; -- Elder Moss Creeper +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2352; -- Innkeeper Anderson <Innkeeper> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=23542; -- Amani'shi Axe Thrower +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=23559; -- Budd Nedreck +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=23560; -- Provisioner Ameenah <Reagents> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=23569; -- Renn McGill <SI:7 Salvage Diver> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=23570; -- Gizzix Grimegurgle +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=23571; -- Razbo Rustgear <Weapon & Armor Merchant> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=23572; -- Drazzit Dripvalve +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=23573; -- Krixil Slogswitch <Food & Drink> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=23579; -- Brogg <Stonemaul Survivor> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2357; -- Merideth Carlson <Horse Breeder> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=23580; -- Amani'shi Warbringer +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=23581; -- Amani'shi Medicine Man +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=23582; -- Amani'shi Tribesman +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=23600; -- Apprentice Morlann <Tabetha's Apprentice> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=23601; -- Apprentice Garion <Tabetha's Apprentice> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2360; -- Hillsbrad Farmhand +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=23612; -- Dyslix Silvergrub <Flight Master> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2361; -- Tamara Armstrong +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2362; -- Hemmit Armstrong +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2363; -- Apprentice Honeywell +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2364; -- Neema <Waitress> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2365; -- Bront Coldcleave <Butcher> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2366; -- Barkeep Kelly <Bartender> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2367; -- Donald Rabonne <Fishing Trainer> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2368; -- Daggerspine Shorestalker +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2369; -- Daggerspine Shorehunter +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=23705; -- Catlord Corpse +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2370; -- Daggerspine Screamer +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=23716; -- Hexxer Corpse +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=23718; -- Mack +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2371; -- Daggerspine Siren +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=23724; -- Samir +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2372; -- Mudsnout Gnoll +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=23748; -- Kurzel <Food & Drink> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2374; -- Torn Fin Muckdweller +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2375; -- Torn Fin Coastrunner +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=23761; -- Prigmon +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2377; -- Torn Fin Tidehunter +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2378; -- Kundric Zanden <Town Historian> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2379; -- Caretaker Smithers +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=237; -- Farmer Furlbrow +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=23807; -- Zul'Aman - Bear God Invisman +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2380; -- Nandar Branson <Alchemy Supplies> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=23813; -- Zul'Aman - Dragonhawk God Invisman +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=23814; -- Zul'Aman - Eagle God Invisman +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2381; -- Micha Yance <Trade Goods> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2382; -- Darren Malvew <Stablehand> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2383; -- Lindea Rabonne <Fishing Supplies> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=23858; -- Donna Brascoe +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=23872; -- Coren Direbrew +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2387; -- Hillsbrad Councilman +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=23889; -- Amani'shi Savage +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=23897; -- Zungam +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=238; -- Verna Furlbrow +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=23942; -- Andello Porter <SI:7> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=23995; -- Axle <Innkeeper> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=24059; -- Amani'shi Beast Tamer +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2411; -- Ricter +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2412; -- Alina +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2414; -- Kegan Darkmar +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2415; -- Warden Belamoore +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=24208; -- "Little" Logok <Innkeeper> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2430; -- Chef Jessen +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2431; -- Jailor Borhuin +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=24325; -- Eagle Troll Spawn Target +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2432; -- Darla Harris <Gryphon Master> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=24358; -- Harrison Jones +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2436; -- Farmer Kent +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2438; -- Bartolo Ginsetti +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=24396; -- Forest Frog +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=24410; -- Vazruden the Herald Image +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2448; -- Clerk Horrace Whitesteed +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2450; -- Miner Hackett +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2451; -- Farmer Kalaba +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=24530; -- Amani Elder Lynx +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2466; -- Mountaineer Grugelm +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2476; -- Large Loch Crocolisk +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2477; -- Gradok <Horde Runner> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2478; -- Haren Swifthoof <Horde Runner> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=247; -- Billy Maclure +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=24851; -- Kiz Coilspanner <Flight Master> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2503; -- Hillsbrad Foreman +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=25060; -- Darkspine Myrmidon +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=25073; -- Darkspine Siren +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=25084; -- Greengill Slave +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=250; -- Pa Maclure +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=25145; -- Budd's Bodyguard +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=25154; -- Sunwell - Quest Bunny - Shrine +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=25173; -- Zul'Aman Door Trigger +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2529; -- Son of Arugal +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2543; -- Archmage Ansirem Runeweaver <Kirin Tor> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2545; -- "Pretty Boy" Duncan +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2546; -- Fleet Master Firallon +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=25492; -- Central En'kilah Cauldron +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2557; -- Witherbark Shadow Hunter +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=255; -- Gerard Tiller +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=25697; -- Luma Skymother <The Earthen Ring> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2572; -- Drywhisker Kobold +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2577; -- Dark Iron Shadowcaster +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=258; -- Joshua Maclure <Vintner> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2596; -- Daggerspine Sorceress +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2603; -- Kovork +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2610; -- Shakes O'Breen <Blackwater Raiders> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=26113; -- Master Flame Eater +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2636; -- Blackwater Deckhand +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=26477; -- Dead Mage Hunter +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2672; -- Cowardly Crosby <Tailoring Supplies> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2687; -- Gnaz Blunderflame <Engineering Supplies> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2696; -- Foggy MacKreel +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2704; -- Hanashi <Weapon Master> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2705; -- Brewmeister Bilger +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2711; -- Phin Odelic +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2727; -- Crag Coyote +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2729; -- Elder Crag Coyote +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2732; -- Ridge Huntress +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2734; -- Ridge Stalker Patriarch +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2742; -- Shadowforge Chanter +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2743; -- Shadowforge Warrior +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=27499; -- Caged Prisoner +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=27537; -- Fordragon Lumberjack +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2764; -- Sleeby +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2765; -- Znort +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2766; -- Lolo the Lookout <Blackwater Raiders> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2767; -- First Mate Nilzlix <Blackwater Raiders> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2768; -- Professor Phizzlethorpe <Blackwater Raiders> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2769; -- Captain Steelgut <Blackwater Raiders> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2774; -- Doctor Draxlegauge <Blackwater Raiders> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2778; -- Deckhand Moishe <Blackwater Raiders> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=278; -- Sara Timberlain +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2804; -- Kurden Bloodclaw <Warsong Gulch Battlemaster> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2829; -- Starving Buzzard +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2831; -- Giant Buzzard +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=28506; -- Mindless Laborer +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2861; -- Gorrik <Wind Rider Master> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2908; -- Grawl <General Goods> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2909; -- Hammertoe Grez +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2920; -- Lucien Tosselwrench +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2921; -- Lotwil Veriatus +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2922; -- Servo +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=294; -- Marshal Haggard +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2961; -- Mountain Cougar +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2969; -- Wiry Swoop +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=2986; -- Dorn Plainstalker +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=29917; -- Field Corpse (Type B) +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=29; -- Kanrethad <Master of Death> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=30387; -- Seething Revenant +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=3053; -- Synge <Gun Merchant> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=30696; -- Corpulent Horror +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=3096; -- Captured Servant of Azora <Specialist Tailoring Supplies> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=3103; -- Makrura Clacker +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=3104; -- Makrura Shellhide +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=3106; -- Pygmy Surf Crawler +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=3107; -- Surf Crawler +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=3113; -- Razormane Dustrunner +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=3121; -- Durotar Tiger +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=313; -- Theocritus <Mage of Tower Azora> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=3140; -- Lar Prowltusk +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=31773; -- Plague Cauldron Target +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=3206; -- Voodoo Troll +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=3207; -- Hexed Troll +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=32181; -- Living Plague +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=32429; -- Seething Hate +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=32442; -- Plague Cauldron Target 02 +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=32572; -- Dragonblight Mage Hunter +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=3263; -- Bristleback Geomancer +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=3271; -- Razormane Mystic +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=327; -- Goldtooth +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=330; -- Princess +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=3337; -- Kargal Battlescar +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=3360; -- Koru <Mace & Staves Vendor> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=3361; -- Shoma <Weapon Vendor> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=3380; -- Burning Blade Acolyte +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=3385; -- Theramore Marine +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=3386; -- Theramore Preserver +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=3388; -- Mahren Skyseer +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=3392; -- Prospector Khazgorm <Explorers' League> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=3409; -- Zendo'jian <Weapon Vendor> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=3414; -- General Twinbraid +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=3421; -- Feegly the Exiled +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=3470; -- Rathorian +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=3476; -- Isha Awak +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=3519; -- Sentinel Arynia Cloudsbreak +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=3521; -- Ak'Zeloth +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=3529; -- Moonrage Armorer +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=3531; -- Moonrage Tailor +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=3540; -- Hal McAllister <Fish Merchant> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=3541; -- Sarah Raycroft <General Goods> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=3542; -- Jaysin Lanyda <Poisons & Reagents> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=3543; -- Robert Aebischer <Superior Armorsmith> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=3550; -- Martine Tramblay <Fishing Supplies> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=3552; -- Alexandre Lefevre <Leather Armor Merchant> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=3553; -- Sebastian Meloche <Armorer> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=3554; -- Andrea Boynton <Clothier> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=3555; -- Johan Focht <Mining Trainer> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=3557; -- Guillaume Sorouy <Blacksmithing Trainer> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=3581; -- Sewer Beast +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=3606; -- Alanna Raveneye <Enchanting Trainer> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=3634; -- Deviate Stalker +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=3636; -- Deviate Ravager +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=3637; -- Deviate Guardian +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=3640; -- Evolving Ectoplasm +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=3650; -- Asterion +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=3652; -- Trigore the Lasher +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=3653; -- Kresh +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=3654; -- Mutanus the Devourer +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=3661; -- Balthule Shadowstrike +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=3669; -- Lord Cobrahn <Fanglord> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=3670; -- Lord Pythas <Fanglord> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=3671; -- Lady Anacondra <Fanglord> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=3673; -- Lord Serpentis <Fanglord> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=3674; -- Skum +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=3678; -- Disciple of Naralex +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=3679; -- Naralex +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=3682; -- Vrang Wildgore <Weaponsmith & Armorcrafter> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=3737; -- Saltspittle Puddlejumper +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=3739; -- Saltspittle Warrior +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=3740; -- Saltspittle Muckdweller +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=3742; -- Saltspittle Oracle +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=3779; -- Syurana <Trade Supplies> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=3840; -- Druid of the Fang +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=3849; -- Deathstalker Adamant +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=384; -- Katie Hunter <Horse Breeder> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=3850; -- Sorcerer Ashcrombe +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=3851; -- Shadowfang Whitescalp +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=3853; -- Shadowfang Moonwalker +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=3854; -- Shadowfang Wolfguard +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=3855; -- Shadowfang Darksoul +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=3857; -- Shadowfang Glutton +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=3859; -- Shadowfang Ragetooth +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=3861; -- Bleak Worg +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=3862; -- Slavering Worg +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=3863; -- Lupine Horror +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=3864; -- Fel Steed +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=3865; -- Shadow Charger +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=3866; -- Vile Bat +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=3868; -- Blood Seeker +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=3873; -- Tormented Officer +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=3875; -- Haunted Servitor +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=3877; -- Wailing Guardsman +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=3886; -- Razorclaw the Butcher +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=3887; -- Baron Silverlaine +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=3891; -- Teronis' Corpse +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=390; -- Porcine Entourage +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=3914; -- Rethilgore <The Cell Keeper> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=3927; -- Wolf Master Nandos +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=3947; -- Goblin Shipbuilder +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=3974; -- Houndmaster Loksey +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=3975; -- Herod <The Scarlet Champion> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=3976; -- Scarlet Commander Mograine +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=3977; -- High Inquisitor Whitemane +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=3980; -- Raleigh the Devout +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=3981; -- Vorrel Sengutz +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=3983; -- Interrogator Vishas +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=3986; -- Sarilus Foulborne +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=4043; -- Galthuk <Two-Handed Weapons Merchant> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=4063; -- Feeboz +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=4113; -- Gravelsnout Digger +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=4274; -- Fenrus the Devourer +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=4275; -- Archmage Arugal +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=4278; -- Commander Springvale +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=4279; -- Odo the Blindwatcher +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=4286; -- Scarlet Soldier +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=4287; -- Scarlet Gallant +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=4288; -- Scarlet Beastmaster +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=4289; -- Scarlet Evoker +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=4290; -- Scarlet Guardsman +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=4291; -- Scarlet Diviner +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=4292; -- Scarlet Protector +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=4293; -- Scarlet Scryer +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=4294; -- Scarlet Sorcerer +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=4295; -- Scarlet Myrmidon +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=4296; -- Scarlet Adept +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=4297; -- Scarlet Conjuror +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=4298; -- Scarlet Defender +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=4299; -- Scarlet Chaplain +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=4300; -- Scarlet Wizard +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=4301; -- Scarlet Centurion +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=4302; -- Scarlet Champion +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=4303; -- Scarlet Abbot +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=4304; -- Scarlet Tracking Hound +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=4306; -- Scarlet Torturer +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=4419; -- Race Master Kronkrider +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=4429; -- Goblin Pit Crewman +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=4430; -- Gnome Pit Crewman +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=4444; -- Deathstalker Vincent +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=4452; -- Kravel Koalbeard +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=4453; -- Wizzle Brassbolts +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=4454; -- Fizzle Brassbolts +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=4495; -- Gnome Pit Boss +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=4496; -- Goblin Pit Boss +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=4500; -- Overlord Mok'Morokk +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=4501; -- Draz'Zilb +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=4502; -- Tharg +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=4503; -- Mudcrush Durtfeet +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=4540; -- Scarlet Monk +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=4542; -- High Inquisitor Fairbanks +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=4543; -- Bloodmage Thalnos +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=4627; -- Arugal's Voidwalker +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=4630; -- Pozzik +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=4706; -- Razzeric +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=4709; -- Zamek +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=471; -- Mother Fang +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=4732; -- Randal Hunter <Riding Trainer> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=473; -- Morgan the Collector +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=476; -- Kobold Geomancer +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=4779; -- Brown Ram +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=4791; -- Nazeer Bloodpike +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=481; -- Defias Footpad +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=4847; -- Shadowforge Relic Hunter +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=4848; -- Shadowforge Darkcaster +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=4849; -- Shadowforge Archaeologist +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=4850; -- Stonevault Cave Lurker +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=4852; -- Stonevault Oracle +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=4853; -- Stonevault Geomancer +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=4854; -- Grimlok <Stonevault Chieftain> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=4855; -- Stonevault Brawler +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=4857; -- Stone Keeper +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=4860; -- Stone Steward +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=4861; -- Shrike Bat +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=4872; -- Obsidian Golem +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=4879; -- Ogg'marr <Butcher> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=4883; -- Krak <Armorer> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=4884; -- Zulrg <Weaponsmith> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=4926; -- Krog +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=4969; -- Old Town Thug +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=502; -- Benny Blaanco +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=5048; -- Deviate Adder +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=5053; -- Deviate Crocolisk +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=5055; -- Deviate Lasher +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=5056; -- Deviate Dreadfang +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=5058; -- Wolfguard Worg +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=506; -- Sergeant Brashclaw +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=507; -- Fenros +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=5087; -- Do'gol +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=5088; -- Falgran Hastil +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=5089; -- Balos Jacken +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=515; -- Murloc Raider +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=5198; -- Arctic Riding Wolf +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=519; -- Slark +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=521; -- Lupos +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=5229; -- Gordunni Ogre +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=5237; -- Gordunni Ogre Mage +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=5355; -- Firewing Defender +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=5356; -- Snarler +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=5389; -- Prospector Gunstan <Explorers' League> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=5394; -- Neeka Bloodscar +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=5431; -- Surf Glider +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=5456; -- Centipaar Stinger +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=5458; -- Centipaar Worker +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=5460; -- Centipaar Sandreaver +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=5615; -- Wastewander Rogue +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=5616; -- Wastewander Thief +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=5617; -- Wastewander Shadow Mage +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=5618; -- Wastewander Bandit +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=5623; -- Wastewander Assassin +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=5649; -- Sandfury Blood Drinker +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=5650; -- Sandfury Witch Doctor +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=5676; -- Summoned Voidwalker +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=5683; -- Comar Villard +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=574; -- Naraxis +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=5755; -- Deviate Viper +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=5756; -- Deviate Venomwing +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=5762; -- Deviate Moccasin +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=5763; -- Nightmare Ectoplasm +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=5767; -- Nalpak <Disciple of Naralex> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=5768; -- Ebru <Disciple of Naralex> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=5783; -- Kalldan Felmoon <Specialist Leatherworking Supplies> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=5784; -- Waldor <Leatherworking Trainer> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=5829; -- Snort the Heckler +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=5831; -- Swiftmane +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=5851; -- Captain Gerogg Hammertoe <Bael'dun Captain of the Guard> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=5886; -- Gwyn Farrow <Mushroom Merchant> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=5901; -- Islen Waterseer +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=5907; -- Kranal Fiss +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=5914; -- Deviate Nightmare +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=5916; -- Sentinel Amarassan +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=6004; -- Shadowsworn Cultist +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=6005; -- Shadowsworn Thug +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=6007; -- Shadowsworn Enforcer +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=6008; -- Shadowsworn Warlock +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=6009; -- Shadowsworn Dreadweaver +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=6015; -- Torta +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=60; -- Ruklar the Trapper +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=6172; -- Henze Faulk +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=6177; -- Narm Faulk +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=6206; -- Caverndeep Burrower +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=6207; -- Caverndeep Ambusher +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=6208; -- Caverndeep Invader +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=6210; -- Caverndeep Pillager +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=6211; -- Caverndeep Reaver +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=6212; -- Dark Iron Agent +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=6213; -- Irradiated Invader +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=6218; -- Irradiated Slime +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=6219; -- Corrosive Lurker +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=6220; -- Irradiated Horror +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=6222; -- Leprous Technician +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=6223; -- Leprous Defender +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=6224; -- Leprous Machinesmith +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=6225; -- Mechano-Tank +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=6226; -- Mechano-Flamewalker +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=6227; -- Mechano-Frostwalker +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=6228; -- Dark Iron Ambassador +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=6229; -- Crowd Pummeler 9-60 +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=6230; -- Peacekeeper Security Suit +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=6232; -- Arcane Nullifier X-21 +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=6233; -- Mechanized Sentry +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=6234; -- Mechanized Guardian +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=6235; -- Electrocutioner 6000 +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=6329; -- Irradiated Pillager +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=6389; -- Deathguard Podrig +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=6392; -- Holdout Medic +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=639; -- Edwin VanCleef <Defias Kingpin> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=6426; -- Anguished Dead +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=6427; -- Haunting Phantasm +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=642; -- Sneed's Shredder <Lumbermaster> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=644; -- Rhahk'Zor <The Foreman> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=645; -- Cookie <The Ship's Cook> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=646; -- Mr. Smite <The Ship's First Mate> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=647; -- Captain Greenskin +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=6487; -- Arcanist Doan +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=6494; -- Tazan +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=6496; -- Brivelthwerp <Ice Cream Vendor> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=6523; -- Dark Iron Rifleman +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=6546; -- Tabetha +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=6547; -- Suffering Victim +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=6548; -- Magus Tirth +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=6567; -- Ghok'kah <Tailoring Supplies> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=6575; -- Scarlet Trainee +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=657; -- Defias Pirate +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=6669; -- The Threshwackonator 4100 <The First Mate> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=6730; -- Jinky Twizzlefixxit <Engineering Supplies> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=6739; -- Innkeeper Bates <Innkeeper> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=6775; -- Antur Fallow +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=6786; -- Ukor +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=6868; -- Jarkal Mossmeld +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=6906; -- Baelog +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=6907; -- Eric "The Swift" +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=6908; -- Olaf +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=6910; -- Revelosh +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=6912; -- Remains of a Paladin +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=7011; -- Earthen Rocksmasher +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=7012; -- Earthen Sculptor +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=7022; -- Venomlash Scorpid +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=7030; -- Shadowforge Geologist +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=7050; -- Defias Drone +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=7051; -- Malformed Defias Drone +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=7052; -- Defias Tower Patroller +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=7053; -- Klaven Mortwake +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=7056; -- Defias Tower Sentry +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=7068; -- Condemned Acolyte +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=7071; -- Cursed Paladin +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=7076; -- Earthen Guardian +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=7077; -- Earthen Hallshaper +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=7078; -- Cleft Scorpid +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=7079; -- Viscous Fallout +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=7126; -- Jaedenar Hunter +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=7135; -- Infernal Bodyguard +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=7137; -- Immolatus +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=7170; -- Thragomm <Horde Runner> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=7175; -- Stonevault Ambusher +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=7206; -- Ancient Stone Keeper +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=7231; -- Kelgruk Bloodaxe <Weaponsmith Trainer> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=7246; -- Sandfury Shadowhunter +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=7247; -- Sandfury Soul Eater +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=7267; -- Chief Ukorz Sandscalp +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=7268; -- Sandfury Guardian +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=7271; -- Witch Doctor Zum'rah +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=7272; -- Theka the Martyr +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=7274; -- Sandfury Executioner +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=7275; -- Shadowpriest Sezz'ziz +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=7290; -- Shadowforge Sharpshooter +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=7291; -- Galgann Firehammer +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=7309; -- Earthen Custodian +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=7318; -- Rageclaw +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=7320; -- Stonevault Mauler +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=7321; -- Stonevault Flameweaver +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=7327; -- Withered Warrior +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=7328; -- Withered Reaver +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=7329; -- Withered Quilguard +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=7332; -- Withered Spearhide +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=7333; -- Withered Battle Boar +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=7334; -- Battle Boar Horror +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=7335; -- Death's Head Geomancer +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=7337; -- Death's Head Necromancer +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=7341; -- Skeletal Frostweaver +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=7342; -- Skeletal Summoner +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=7343; -- Splinterbone Skeleton +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=7349; -- Tomb Fiend +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=7351; -- Tomb Reaver +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=7354; -- Ragglesnout +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=7355; -- Tuten'kash +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=7357; -- Mordresh Fire Eye +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=7358; -- Amnennar the Coldbringer +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=7361; -- Grubbis +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=7396; -- Earthen Stonebreaker +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=7397; -- Earthen Stonecarver +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=7405; -- Deadly Cleft Scorpid +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=7430; -- Frostsaber Cub +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=7431; -- Frostsaber +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=7432; -- Frostsaber Stalker +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=7433; -- Frostsaber Huntress +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=7443; -- Shardtooth Mauler +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=7444; -- Shardtooth Bear +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=7450; -- Ragged Owlbeast +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=7451; -- Raging Owlbeast +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=7455; -- Winterspring Owl +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=7457; -- Rogue Ice Thistle +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=7458; -- Ice Thistle Yeti +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=7603; -- Leprous Assistant +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=7604; -- Sergeant Bly +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=7605; -- Raven +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=7606; -- Oro Eyegouge +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=7607; -- Weegli Blastfuse +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=7608; -- Murta Grimgut +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=7670; -- Servant of Allistarj +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=7671; -- Servant of Sevine +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=7787; -- Sandfury Slave +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=7788; -- Sandfury Drudge +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=7795; -- Hydromancer Velratha +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=7796; -- Nekrum Gutchewer +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=7797; -- Ruuzlu +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=7800; -- Mekgineer Thermaplugg +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=7802; -- Galvan the Ancient <Artisan Blacksmith of the Mithril Order> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=7808; -- Marauding Owlbeast +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=7847; -- Caliph Scorpidsting +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=7850; -- Kernobee +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=7855; -- Southsea Pirate +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=7856; -- Southsea Freebooter +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=7857; -- Southsea Dock Worker +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=7858; -- Southsea Swashbuckler +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=7883; -- Andre Firebeard +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=7897; -- Alarm-a-bomb 2600 +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=7975; -- Mulgore Protector +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=798; -- Solomon +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=799; -- Kevin +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=79; -- Narg the Taskmaster +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=800; -- Kyle +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=8017; -- Sen'jin Guardian +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=801; -- Eric +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=802; -- Jay +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=8118; -- Lillian Singh <Holiday Fireworks Vendor> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=8127; -- Antu'sul <Overseer of Sul> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=8150; -- Janet Hommers <Food & Drink> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=8155; -- Kargath Grunt +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=815; -- Bookie Herod +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=8211; -- Old Cliff Jumper +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=8218; -- Witherheart the Stalker +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=8219; -- Zul'arek Hatefowler +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=8277; -- Rekk'tilac +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=8281; -- Scald +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=831; -- Sea Crawler +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=8320; -- Sprok <Away Team> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=8338; -- Dark Iron Marksman +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=8442; -- Shadowsilk Poacher <The Undermarket> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=8480; -- Kalaran the Deceiver +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=8516; -- Belnistrasz +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=8539; -- Eyeless Watcher +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=8546; -- Dark Adept <Cult of the Damned> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=8560; -- Mossflayer Scout +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=8561; -- Mossflayer Shadowhunter +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=8562; -- Mossflayer Cannibal +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=8567; -- Glutton +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=8611; -- Idol Room Spawner +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=8617; -- Zalashji +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=8662; -- Idol Oven Fire Target +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=8679; -- Knaz Blunderflame <Engineering Supplies> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=8696; -- Henry Stern +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=8767; -- Sah'rhee +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=880; -- Erlan Drudgemoor +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=881; -- Surena Caledon +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=8876; -- Sandfury Acolyte +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=8877; -- Sandfury Zealot +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=8886; -- Deviate Python +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=8923; -- Panzor the Invincible +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=8925; -- Dredge Worm +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=8926; -- Deep Stinger +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=8927; -- Dark Screecher +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=8928; -- Burrowing Thundersnout +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=896; -- Veldan Lightfoot <Leather Armor Merchant> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=9029; -- Eviscerator +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=9031; -- Anub'shiah +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=9077; -- Warlord Goretooth <Kargath Expeditionary Force> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=9078; -- Shadowmage Vivian Lagrave <Kargath Expeditionary Force> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=9079; -- Hierophant Theodora Mulvadania <Kargath Expeditionary Force> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=907; -- Keras Wolfheart <Arathi Basin Battlemaster> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=9080; -- Lexlort <Kargath Expeditionary Force> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=9081; -- Galamav the Marksman <Kargath Expeditionary Force> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=9238; -- Quentin +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=9298; -- Donova Snowden +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=9316; -- Wenikee Boltbucket +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=9356; -- Innkeeper Shul'kar <Innkeeper> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=9376; -- Blazerunner +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=9448; -- Scarlet Praetorian +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=9450; -- Scarlet Curate +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=9537; -- Hurley Blackbreath +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=9541; -- Blackbreath Crony +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=9543; -- Ribbly Screwspigot +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=9552; -- Zanara <Bowyer> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=9553; -- Nadia Vernon <Bowyer> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=955; -- Sergeant De Vries <Morale Officer> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=958; -- Dawn Brightstar <Arcane Goods> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=959; -- Morley Eberlein <Clothier> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=9619; -- Torwa Pathfinder +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=9622; -- U'cha +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=963; -- Deputy Rainer +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=9676; -- Tink Sprocketwhistle <Engineering Supplies> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=9857; -- Auctioneer Grizzlin +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=9978; -- Wesley <Stable Master> +UPDATE `creature_template` SET `speed_walk`=1 WHERE `entry`=9979; -- Sarah Goode <Stable Master> +UPDATE `creature_template` SET `speed_walk`=1.111112 WHERE `entry`=10358; -- Fellicent's Shade +UPDATE `creature_template` SET `speed_walk`=1.111112 WHERE `entry`=10387; -- Vengeful Phantom +UPDATE `creature_template` SET `speed_walk`=1.111112 WHERE `entry`=10498; -- Spectral Tutor +UPDATE `creature_template` SET `speed_walk`=1.111112 WHERE `entry`=10499; -- Spectral Researcher +UPDATE `creature_template` SET `speed_walk`=1.111112 WHERE `entry`=10500; -- Spectral Teacher +UPDATE `creature_template` SET `speed_walk`=1.111112 WHERE `entry`=10516; -- The Unforgiven +UPDATE `creature_template` SET `speed_walk`=1.111112 WHERE `entry`=10678; -- Plagued Hatchling +UPDATE `creature_template` SET `speed_walk`=1.111112 WHERE `entry`=11459; -- Ironbark Protector +UPDATE `creature_template` SET `speed_walk`=1.111112 WHERE `entry`=11471; -- Eldreth Apparition +UPDATE `creature_template` SET `speed_walk`=1.111112 WHERE `entry`=11475; -- Eldreth Phantasm +UPDATE `creature_template` SET `speed_walk`=1.111112 WHERE `entry`=12225; -- Celebras the Cursed +UPDATE `creature_template` SET `speed_walk`=1.111112 WHERE `entry`=12238; -- Zaetar's Spirit +UPDATE `creature_template` SET `speed_walk`=1.111112 WHERE `entry`=13021; -- Warpwood Crusher +UPDATE `creature_template` SET `speed_walk`=1.111112 WHERE `entry`=13716; -- Celebras the Redeemed +UPDATE `creature_template` SET `speed_walk`=1.111112 WHERE `entry`=14272; -- Snarlflare +UPDATE `creature_template` SET `speed_walk`=1.111112 WHERE `entry`=1552; -- Scale Belly +UPDATE `creature_template` SET `speed_walk`=1.111112 WHERE `entry`=16327; -- Ravening Apparition +UPDATE `creature_template` SET `speed_walk`=1.111112 WHERE `entry`=16328; -- Vengeful Apparition +UPDATE `creature_template` SET `speed_walk`=1.111112 WHERE `entry`=23193; -- Lordaeron Citizen (Jesse) +UPDATE `creature_template` SET `speed_walk`=1.111112 WHERE `entry`=4308; -- Unfettered Spirit +UPDATE `creature_template` SET `speed_walk`=1.111112 WHERE `entry`=4323; -- Searing Hatchling +UPDATE `creature_template` SET `speed_walk`=1.111112 WHERE `entry`=4324; -- Searing Whelp +UPDATE `creature_template` SET `speed_walk`=1.111112 WHERE `entry`=4863; -- Jadespine Basilisk +UPDATE `creature_template` SET `speed_walk`=1.111112 WHERE `entry`=5979; -- Wretched Lost One +UPDATE `creature_template` SET `speed_walk`=1.111112 WHERE `entry`=6215; -- Chomper +UPDATE `creature_template` SET `speed_walk`=1.111112 WHERE `entry`=7149; -- Withered Protector +UPDATE `creature_template` SET `speed_walk`=1.111112 WHERE `entry`=7352; -- Frozen Soul +UPDATE `creature_template` SET `speed_walk`=1.111112 WHERE `entry`=7353; -- Freezing Spirit +UPDATE `creature_template` SET `speed_walk`=1.111112 WHERE `entry`=8095; -- Sul'lithuz Sandcrawler +UPDATE `creature_template` SET `speed_walk`=1.111112 WHERE `entry`=8120; -- Sul'lithuz Abomination +UPDATE `creature_template` SET `speed_walk`=1.111112 WHERE `entry`=8130; -- Sul'lithuz Hatchling +UPDATE `creature_template` SET `speed_walk`=1.111112 WHERE `entry`=8138; -- Sul'lithuz Broodling +UPDATE `creature_template` SET `speed_walk`=1.2 WHERE `entry`=100; -- Gruff Swiftbite +UPDATE `creature_template` SET `speed_walk`=1.2 WHERE `entry`=11673; -- Ancient Core Hound +UPDATE `creature_template` SET `speed_walk`=1.2 WHERE `entry`=14271; -- Ribchaser +UPDATE `creature_template` SET `speed_walk`=1.2 WHERE `entry`=16335; -- Blackpaw Scavenger +UPDATE `creature_template` SET `speed_walk`=1.2 WHERE `entry`=1674; -- Rot Hide Gnoll +UPDATE `creature_template` SET `speed_walk`=1.2 WHERE `entry`=23264; -- Overmine Flayer +UPDATE `creature_template` SET `speed_walk`=1.2 WHERE `entry`=2373; -- Mudsnout Shaman +UPDATE `creature_template` SET `speed_walk`=1.2 WHERE `entry`=27523; -- Grizzlesnout +UPDATE `creature_template` SET `speed_walk`=1.2 WHERE `entry`=27766; -- Image of Kel'Thuzad +UPDATE `creature_template` SET `speed_walk`=1.2 WHERE `entry`=28208; -- Hailscorn +UPDATE `creature_template` SET `speed_walk`=1.2 WHERE `entry`=28586; -- General Bjarngrim +UPDATE `creature_template` SET `speed_walk`=1.2 WHERE `entry`=28824; -- Brann Flying Machine +UPDATE `creature_template` SET `speed_walk`=1.2 WHERE `entry`=29240; -- Stormforged Lieutenant +UPDATE `creature_template` SET `speed_walk`=1.2 WHERE `entry`=30167; -- Gimorak +UPDATE `creature_template` SET `speed_walk`=1.2 WHERE `entry`=472; -- Fedfennel +UPDATE `creature_template` SET `speed_walk`=1.32 WHERE `entry`=9082; -- Thal'trak Proudtusk <Kargath Expeditionary Force> +UPDATE `creature_template` SET `speed_walk`=1.32 WHERE `entry`=9083; -- Razal'blade <Kargath Expeditionary Force> +UPDATE `creature_template` SET `speed_walk`=1.32 WHERE `entry`=9084; -- Thunderheart <Kargath Expeditionary Force> +UPDATE `creature_template` SET `speed_walk`=1.32 WHERE `entry`=9085; -- Initiate Amakkar <Kargath Expeditionary Force> +UPDATE `creature_template` SET `speed_walk`=1.32 WHERE `entry`=9086; -- Grunt Gargal <Kargath Expeditionary Force> +UPDATE `creature_template` SET `speed_walk`=1.388888 WHERE `entry`=14431; -- Fury Shelda +UPDATE `creature_template` SET `speed_walk`=1.388888 WHERE `entry`=2015; -- Bloodfeather Harpy +UPDATE `creature_template` SET `speed_walk`=1.388888 WHERE `entry`=2017; -- Bloodfeather Rogue +UPDATE `creature_template` SET `speed_walk`=1.388888 WHERE `entry`=2018; -- Bloodfeather Sorceress +UPDATE `creature_template` SET `speed_walk`=1.388888 WHERE `entry`=3276; -- Witchwing Harpy +UPDATE `creature_template` SET `speed_walk`=1.388888 WHERE `entry`=3277; -- Witchwing Roguefeather +UPDATE `creature_template` SET `speed_walk`=1.388888 WHERE `entry`=3278; -- Witchwing Slayer +UPDATE `creature_template` SET `speed_walk`=1.388888 WHERE `entry`=3279; -- Witchwing Ambusher +UPDATE `creature_template` SET `speed_walk`=1.388888 WHERE `entry`=3280; -- Witchwing Windcaller +UPDATE `creature_template` SET `speed_walk`=1.388888 WHERE `entry`=3452; -- Serena Bloodfeather +UPDATE `creature_template` SET `speed_walk`=1.388888 WHERE `entry`=4024; -- Bloodfury Slayer +UPDATE `creature_template` SET `speed_walk`=1.388888 WHERE `entry`=4100; -- Screeching Harpy +UPDATE `creature_template` SET `speed_walk`=1.388888 WHERE `entry`=4101; -- Screeching Roguefeather +UPDATE `creature_template` SET `speed_walk`=1.388888 WHERE `entry`=4104; -- Screeching Windcaller +UPDATE `creature_template` SET `speed_walk`=1.388888 WHERE `entry`=5830; -- Sister Rathtalon +UPDATE `creature_template` SET `speed_walk`=1.4 WHERE `entry`=21901; -- Netherskate +UPDATE `creature_template` SET `speed_walk`=1.4 WHERE `entry`=23501; -- Netherwing Ray +UPDATE `creature_template` SET `speed_walk`=1.4 WHERE `entry`=30142; -- The Iron Watcher +UPDATE `creature_template` SET `speed_walk`=1.4 WHERE `entry`=5466; -- Coast Strider +UPDATE `creature_template` SET `speed_walk`=1.4 WHERE `entry`=7447; -- Fledgling Chillwind +UPDATE `creature_template` SET `speed_walk`=1.4 WHERE `entry`=7448; -- Chillwind Chimaera +UPDATE `creature_template` SET `speed_walk`=1.5 WHERE `entry`=2748; -- Archaedas <Ancient Stone Watcher> +UPDATE `creature_template` SET `speed_walk`=1.5 WHERE `entry`=7172; -- Lore Keeper of Norgannon +UPDATE `creature_template` SET `speed_walk`=1.555556 WHERE `entry`=11665; -- Lava Annihilator +UPDATE `creature_template` SET `speed_walk`=1.555556 WHERE `entry`=11783; -- Theradrim Shardling +UPDATE `creature_template` SET `speed_walk`=1.555556 WHERE `entry`=11784; -- Theradrim Guardian +UPDATE `creature_template` SET `speed_walk`=1.555556 WHERE `entry`=12057; -- Garr +UPDATE `creature_template` SET `speed_walk`=1.555556 WHERE `entry`=12076; -- Lava Elemental +UPDATE `creature_template` SET `speed_walk`=1.555556 WHERE `entry`=12099; -- Firesworn +UPDATE `creature_template` SET `speed_walk`=1.555556 WHERE `entry`=12100; -- Lava Reaver +UPDATE `creature_template` SET `speed_walk`=1.555556 WHERE `entry`=12101; -- Lava Surger +UPDATE `creature_template` SET `speed_walk`=1.555556 WHERE `entry`=17087; -- Spirit of the Vale +UPDATE `creature_template` SET `speed_walk`=1.555556 WHERE `entry`=17179; -- Restless Spirit of Earth +UPDATE `creature_template` SET `speed_walk`=1.555556 WHERE `entry`=2735; -- Lesser Rock Elemental +UPDATE `creature_template` SET `speed_walk`=1.555556 WHERE `entry`=28585; -- Slag +UPDATE `creature_template` SET `speed_walk`=1.555556 WHERE `entry`=4499; -- Rok'Alim the Pounder +UPDATE `creature_template` SET `speed_walk`=1.555556 WHERE `entry`=8278; -- Smoldar +UPDATE `creature_template` SET `speed_walk`=1.6 WHERE `entry`=11440; -- Gordok Enforcer +UPDATE `creature_template` SET `speed_walk`=1.6 WHERE `entry`=12046; -- Gor'marok the Ravager +UPDATE `creature_template` SET `speed_walk`=1.6 WHERE `entry`=14308; -- Ferra +UPDATE `creature_template` SET `speed_walk`=1.6 WHERE `entry`=17991; -- Rokmar the Crackler +UPDATE `creature_template` SET `speed_walk`=1.6 WHERE `entry`=23093; -- Sar'this +UPDATE `creature_template` SET `speed_walk`=1.6 WHERE `entry`=25451; -- Nerub'ar Sky Darkener +UPDATE `creature_template` SET `speed_walk`=1.6 WHERE `entry`=2720; -- Dustbelcher Ogre Mage +UPDATE `creature_template` SET `speed_walk`=1.6 WHERE `entry`=27975; -- Maiden of Grief +UPDATE `creature_template` SET `speed_walk`=1.6 WHERE `entry`=28923; -- Loken +UPDATE `creature_template` SET `speed_walk`=1.6 WHERE `entry`=29553; -- Garm Watcher +UPDATE `creature_template` SET `speed_walk`=1.6 WHERE `entry`=29932; -- Eck the Ferocious +UPDATE `creature_template` SET `speed_walk`=1.6 WHERE `entry`=30258; -- Amanitar +UPDATE `creature_template` SET `speed_walk`=1.6 WHERE `entry`=30396; -- Loken +UPDATE `creature_template` SET `speed_walk`=1.6 WHERE `entry`=33224; -- Lake Frog +UPDATE `creature_template` SET `speed_walk`=1.6 WHERE `entry`=37215; -- Orgrim's Hammer +UPDATE `creature_template` SET `speed_walk`=1.6 WHERE `entry`=37540; -- The Skybreaker +UPDATE `creature_template` SET `speed_walk`=1.6 WHERE `entry`=37543; -- [DND] Shaker +UPDATE `creature_template` SET `speed_walk`=1.6 WHERE `entry`=37574; -- [DND] Shaker - Small +UPDATE `creature_template` SET `speed_walk`=1.6 WHERE `entry`=40217; -- Echo Isle Animal +UPDATE `creature_template` SET `speed_walk`=1.6 WHERE `entry`=5472; -- Dunemaul Enforcer +UPDATE `creature_template` SET `speed_walk`=1.6 WHERE `entry`=5473; -- Dunemaul Ogre Mage +UPDATE `creature_template` SET `speed_walk`=1.6 WHERE `entry`=5475; -- Dunemaul Warlock +UPDATE `creature_template` SET `speed_walk`=1.6 WHERE `entry`=5978; -- Dreadmaul Warlock +UPDATE `creature_template` SET `speed_walk`=1.6 WHERE `entry`=7273; -- Gahz'rilla +UPDATE `creature_template` SET `speed_walk`=1.6 WHERE `entry`=7789; -- Sandfury Cretin +UPDATE `creature_template` SET `speed_walk`=1.6 WHERE `entry`=9030; -- Ok'thor the Breaker +UPDATE `creature_template` SET `speed_walk`=1.6 WHERE `entry`=9604; -- Gorgon'och +UPDATE `creature_template` SET `speed_walk`=1.6 WHERE `entry`=9684; -- Lar'korwi +UPDATE `creature_template` SET `speed_walk`=1.666668 WHERE `entry`=7228; -- Ironaya +UPDATE `creature_template` SET `speed_walk`=12 WHERE `entry`=22317; -- Netherwing Drake Escape Dummy +UPDATE `creature_template` SET `speed_walk`=12 WHERE `entry`=25964; -- Shaman Beam Bunny 000 +UPDATE `creature_template` SET `speed_walk`=12 WHERE `entry`=25965; -- Shaman Beam Bunny 001 +UPDATE `creature_template` SET `speed_walk`=12 WHERE `entry`=25966; -- Shaman Beam Bunny 002 +UPDATE `creature_template` SET `speed_walk`=2 WHERE `entry`=23576; -- Nalorakk <Bear Avatar> +UPDATE `creature_template` SET `speed_walk`=2 WHERE `entry`=26231; -- Saragosa <Consort of Malygos> +UPDATE `creature_template` SET `speed_walk`=2 WHERE `entry`=26232; -- Saragosa +UPDATE `creature_template` SET `speed_walk`=2 WHERE `entry`=26299; -- Corpse of Saragosa +UPDATE `creature_template` SET `speed_walk`=2 WHERE `entry`=30017; -- Stinkbeard +UPDATE `creature_template` SET `speed_walk`=2 WHERE `entry`=30593; -- Forgotten Depths Slayer +UPDATE `creature_template` SET `speed_walk`=2 WHERE `entry`=34928; -- Argent Confessor Paletress +UPDATE `creature_template` SET `speed_walk`=2 WHERE `entry`=35877; -- The Lich King +UPDATE `creature_template` SET `speed_walk`=2 WHERE `entry`=37038; -- Vengeful Fleshreaper +UPDATE `creature_template` SET `speed_walk`=2 WHERE `entry`=37230; -- Spire Frostwyrm +UPDATE `creature_template` SET `speed_walk`=2 WHERE `entry`=7784; -- Homing Robot OOX-17/TN +UPDATE `creature_template` SET `speed_walk`=2 WHERE `entry`=7849; -- Mobile Alert System +UPDATE `creature_template` SET `speed_walk`=2 WHERE `entry`=9623; -- A-Me 01 +UPDATE `creature_template` SET `speed_walk`=2.4 WHERE `entry`=21315; -- Ruul the Darkener +UPDATE `creature_template` SET `speed_walk`=2.4 WHERE `entry`=23267; -- Arvoar the Rapacious +UPDATE `creature_template` SET `speed_walk`=2.4 WHERE `entry`=26838; -- Dreadtalon +UPDATE `creature_template` SET `speed_walk`=2.4 WHERE `entry`=28599; -- Plagueroach +UPDATE `creature_template` SET `speed_walk`=2.4 WHERE `entry`=29664; -- Ragemane +UPDATE `creature_template` SET `speed_walk`=2.4 WHERE `entry`=30443; -- The Lich King +UPDATE `creature_template` SET `speed_walk`=2.4 WHERE `entry`=30501; -- Val'kyr Arbiter +UPDATE `creature_template` SET `speed_walk`=2.4 WHERE `entry`=30575; -- Frostbrood Destroyer +UPDATE `creature_template` SET `speed_walk`=2.4 WHERE `entry`=30945; -- Vardmadra +UPDATE `creature_template` SET `speed_walk`=2.4 WHERE `entry`=30989; -- Halof the Deathbringer +UPDATE `creature_template` SET `speed_walk`=2.4 WHERE `entry`=31029; -- Possessed Vardmadra +UPDATE `creature_template` SET `speed_walk`=2.4 WHERE `entry`=31083; -- The Lich King +UPDATE `creature_template` SET `speed_walk`=2.8 WHERE `entry`=11832; -- Keeper Remulos +UPDATE `creature_template` SET `speed_walk`=2.8 WHERE `entry`=26933; -- Wyrmrest Guardian +UPDATE `creature_template` SET `speed_walk`=2.8 WHERE `entry`=27608; -- Azure Dragon +UPDATE `creature_template` SET `speed_walk`=2.8 WHERE `entry`=29375; -- Stormforged Iron Giant +UPDATE `creature_template` SET `speed_walk`=2.8 WHERE `entry`=29503; -- Fjorn +UPDATE `creature_template` SET `speed_walk`=2.8 WHERE `entry`=29914; -- Dead Iron Giant +UPDATE `creature_template` SET `speed_walk`=2.8 WHERE `entry`=30099; -- Njormeld +UPDATE `creature_template` SET `speed_walk`=2.8 WHERE `entry`=30121; -- Frost Giant Stormherald +UPDATE `creature_template` SET `speed_walk`=3.2 WHERE `entry`=14399; -- Arcane Torrent +UPDATE `creature_template` SET `speed_walk`=3.2 WHERE `entry`=23969; -- Firemane Drake +UPDATE `creature_template` SET `speed_walk`=3.2 WHERE `entry`=28546; -- Ionar +UPDATE `creature_template` SET `speed_walk`=3.2 WHERE `entry`=28547; -- Storming Vortex +UPDATE `creature_template` SET `speed_walk`=3.2 WHERE `entry`=28826; -- Stormfury Revenant +UPDATE `creature_template` SET `speed_walk`=3.6 WHERE `entry`=26237; -- Keristrasza +UPDATE `creature_template` SET `speed_walk`=3.6 WHERE `entry`=26925; -- Wyrmrest Temple Drake +UPDATE `creature_template` SET `speed_walk`=4 WHERE `entry`=23577; -- Halazzi <Lynx Avatar> +UPDATE `creature_template` SET `speed_walk`=4 WHERE `entry`=32176; -- Plague Drenched Ghoul +UPDATE `creature_template` SET `speed_walk`=4 WHERE `entry`=32178; -- Rampaging Ghoul +UPDATE `creature_template` SET `speed_walk`=4 WHERE `entry`=4945; -- Goblin Drag Car +UPDATE `creature_template` SET `speed_walk`=4 WHERE `entry`=4946; -- Gnome Drag Car +UPDATE `creature_template` SET `speed_walk`=4.8 WHERE `entry`=30399; -- Thorim +UPDATE `creature_template` SET `speed_walk`=4.8 WHERE `entry`=30462; -- Thorim +UPDATE `creature_template` SET `speed_walk`=4.8 WHERE `entry`=37755; -- Sindragosa <Queen of the Frostbrood> +UPDATE `creature_template` SET `speed_walk`=8 WHERE `entry`=13876; -- Mekgineer Trigger +UPDATE `creature_template` SET `speed_walk`=8 WHERE `entry`=26310; -- Malygos + +-- attack times +UPDATE `creature_template` SET `BaseAttackTime`=1000 WHERE `entry`=26630; -- Trollgore +UPDATE `creature_template` SET `BaseAttackTime`=1000 WHERE `entry`=28419; -- Frenzied Geist +UPDATE `creature_template` SET `BaseAttackTime`=1000 WHERE `entry`=29722; -- Rabid Cannibal +UPDATE `creature_template` SET `BaseAttackTime`=1000 WHERE `entry`=29735; -- Savage Worg +UPDATE `creature_template` SET `BaseAttackTime`=1000 WHERE `entry`=36612; -- Lord Marrowgar +UPDATE `creature_template` SET `BaseAttackTime`=1000 WHERE `entry`=37011; -- The Damned +UPDATE `creature_template` SET `BaseAttackTime`=1000 WHERE `entry`=40274; -- Restless Zombie +UPDATE `creature_template` SET `BaseAttackTime`=1000 WHERE `entry`=5713; -- Gasher +UPDATE `creature_template` SET `BaseAttackTime`=1140 WHERE `entry`=37546; -- Frenzied Abomination +UPDATE `creature_template` SET `BaseAttackTime`=1200 WHERE `entry`=15369; -- Ayamiss the Hunter +UPDATE `creature_template` SET `BaseAttackTime`=1200 WHERE `entry`=23877; -- Amani Lynx Spirit +UPDATE `creature_template` SET `BaseAttackTime`=1200 WHERE `entry`=23878; -- Amani Bear Spirit +UPDATE `creature_template` SET `BaseAttackTime`=1200 WHERE `entry`=23879; -- Amani Dragonhawk Spirit +UPDATE `creature_template` SET `BaseAttackTime`=1200 WHERE `entry`=23880; -- Amani Eagle Spirit +UPDATE `creature_template` SET `BaseAttackTime`=1250 WHERE `entry`=18950; -- Orgrimmar Grunt +UPDATE `creature_template` SET `BaseAttackTime`=1300 WHERE `entry`=1061; -- Gan'zulah <Bloodscalp Chief> +UPDATE `creature_template` SET `BaseAttackTime`=1300 WHERE `entry`=15344; -- Swarmguard Needler +UPDATE `creature_template` SET `BaseAttackTime`=1300 WHERE `entry`=9029; -- Eviscerator +UPDATE `creature_template` SET `BaseAttackTime`=1333 WHERE `entry`=6225; -- Mechano-Tank +UPDATE `creature_template` SET `BaseAttackTime`=1333 WHERE `entry`=6226; -- Mechano-Flamewalker +UPDATE `creature_template` SET `BaseAttackTime`=1333 WHERE `entry`=6227; -- Mechano-Frostwalker +UPDATE `creature_template` SET `BaseAttackTime`=1400 WHERE `entry`=18257; -- Gutripper +UPDATE `creature_template` SET `BaseAttackTime`=1400 WHERE `entry`=9265; -- Smolderthorn Shadow Hunter +UPDATE `creature_template` SET `BaseAttackTime`=1500 WHERE `entry`=11486; -- Prince Tortheldrin +UPDATE `creature_template` SET `BaseAttackTime`=1500 WHERE `entry`=11946; -- Drek'Thar <Frostwolf General> +UPDATE `creature_template` SET `BaseAttackTime`=1500 WHERE `entry`=222; -- Nillen Andemar <Macecrafter> +UPDATE `creature_template` SET `BaseAttackTime`=1500 WHERE `entry`=24552; -- Sliver <Garaxxas' Pet> +UPDATE `creature_template` SET `BaseAttackTime`=1500 WHERE `entry`=26212; -- Captain Gryan Stoutmantle <Commander of the Westfall Brigade> +UPDATE `creature_template` SET `BaseAttackTime`=1500 WHERE `entry`=27467; -- Amberpine Hunter +UPDATE `creature_template` SET `BaseAttackTime`=1500 WHERE `entry`=28042; -- Captain Brandon +UPDATE `creature_template` SET `BaseAttackTime`=1500 WHERE `entry`=28044; -- Captain Rupert +UPDATE `creature_template` SET `BaseAttackTime`=1500 WHERE `entry`=28125; -- Dr. Rogers +UPDATE `creature_template` SET `BaseAttackTime`=1500 WHERE `entry`=29050; -- Har'koa +UPDATE `creature_template` SET `BaseAttackTime`=1500 WHERE `entry`=33996; -- William Saldean <Grain & Feed Vendor> +UPDATE `creature_template` SET `BaseAttackTime`=1500 WHERE `entry`=34158; -- Young Venomhide Ravasaur +UPDATE `creature_template` SET `BaseAttackTime`=1500 WHERE `entry`=34496; -- Eydis Darkbane +UPDATE `creature_template` SET `BaseAttackTime`=1500 WHERE `entry`=34497; -- Fjola Lightbane +UPDATE `creature_template` SET `BaseAttackTime`=1500 WHERE `entry`=34564; -- Anub'arak +UPDATE `creature_template` SET `BaseAttackTime`=1500 WHERE `entry`=36626; -- Festergut +UPDATE `creature_template` SET `BaseAttackTime`=1500 WHERE `entry`=36627; -- Rotface +UPDATE `creature_template` SET `BaseAttackTime`=1500 WHERE `entry`=37688; -- Crusader Grimtong <Warrior Armor> +UPDATE `creature_template` SET `BaseAttackTime`=1500 WHERE `entry`=37689; -- Commander Kunz +UPDATE `creature_template` SET `BaseAttackTime`=1500 WHERE `entry`=37696; -- Crusader Halford <Paladin Armor> +UPDATE `creature_template` SET `BaseAttackTime`=1500 WHERE `entry`=37967; -- Ebon Blade Commander +UPDATE `creature_template` SET `BaseAttackTime`=1500 WHERE `entry`=38493; -- Argent Crusader +UPDATE `creature_template` SET `BaseAttackTime`=1500 WHERE `entry`=38505; -- Knight of the Ebon Blade +UPDATE `creature_template` SET `BaseAttackTime`=1500 WHERE `entry`=40142; -- Halion <The Twilight Destroyer> +UPDATE `creature_template` SET `BaseAttackTime`=1500 WHERE `entry`=40405; -- Kieupid <Pet Trainer> +UPDATE `creature_template` SET `BaseAttackTime`=1500 WHERE `entry`=8257; -- Oozeling +UPDATE `creature_template` SET `BaseAttackTime`=1500 WHERE `entry`=8666; -- Lil Timmy <Boy with kittens> +UPDATE `creature_template` SET `BaseAttackTime`=1500 WHERE `entry`=9683; -- Lar'korwi Mate +UPDATE `creature_template` SET `BaseAttackTime`=1500 WHERE `entry`=9684; -- Lar'korwi +UPDATE `creature_template` SET `BaseAttackTime`=1538 WHERE `entry`=18827; -- Gan'arg Sapper +UPDATE `creature_template` SET `BaseAttackTime`=1538 WHERE `entry`=26943; -- Battered Drakkari Berserker +UPDATE `creature_template` SET `BaseAttackTime`=1538 WHERE `entry`=27340; -- Bloodpaw Marauder +UPDATE `creature_template` SET `BaseAttackTime`=1538 WHERE `entry`=29438; -- Rageclaw Primalist +UPDATE `creature_template` SET `BaseAttackTime`=1600 WHERE `entry`=11469; -- Eldreth Seether +UPDATE `creature_template` SET `BaseAttackTime`=1700 WHERE `entry`=7268; -- Sandfury Guardian +UPDATE `creature_template` SET `BaseAttackTime`=1750 WHERE `entry`=34797; -- Icehowl +UPDATE `creature_template` SET `BaseAttackTime`=1750 WHERE `entry`=35470; -- Icehowl +UPDATE `creature_template` SET `BaseAttackTime`=1800 WHERE `entry`=15339; -- Ossirian the Unscarred +UPDATE `creature_template` SET `BaseAttackTime`=1800 WHERE `entry`=24043; -- Amani Lynx +UPDATE `creature_template` SET `BaseAttackTime`=1800 WHERE `entry`=9031; -- Anub'shiah +UPDATE `creature_template` SET `BaseAttackTime`=1818 WHERE `entry`=28034; -- Drakkari Snake Handler +UPDATE `creature_template` SET `BaseAttackTime`=1818 WHERE `entry`=28035; -- Priest of Sseratus +UPDATE `creature_template` SET `BaseAttackTime`=1818 WHERE `entry`=34127; -- Boneguard Commander +UPDATE `creature_template` SET `BaseAttackTime`=1846 WHERE `entry`=12121; -- Drakan +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=10082; -- Zerillis +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=10096; -- High Justice Grimstone +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=10177; -- Spire Scarab +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=10393; -- Skul +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=10919; -- Shatterspear Troll +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=1091; -- Mountaineer Gravelgaw +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=1095; -- Venture Co. Workboss +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=1098; -- Watcher Merant <The Night Watch> +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=1099; -- Watcher Gelwin <The Night Watch> +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=1100; -- Watcher Selkin <The Night Watch> +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=1101; -- Watcher Thayer <The Night Watch> +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=11196; -- Shatterspear Drummer +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=11458; -- Petrified Treant +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=11459; -- Ironbark Protector +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=11470; -- Eldreth Sorcerer +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=11471; -- Eldreth Apparition +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=11472; -- Eldreth Spirit +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=11473; -- Eldreth Spectre +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=11475; -- Eldreth Phantasm +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=11476; -- Skeletal Highborne +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=11477; -- Rotting Highborne +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=11480; -- Arcane Aberration +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=11483; -- Mana Remnant +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=11487; -- Magister Kalendris +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=11488; -- Illyanna Ravenoak +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=11489; -- Tendris Warpwood +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=1165; -- Stonesplinter Geomancer +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=11663; -- Flamewaker Healer +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=1167; -- Stonesplinter Digger +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=1176; -- Tunnel Rat Forager +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=1178; -- Mo'grosh Ogre +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=11792; -- Putridus Shadowstalker +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=1179; -- Mo'grosh Enforcer +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=1181; -- Mo'grosh Shaman +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=1183; -- Mo'grosh Mystic +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=1184; -- Cliff Lurker +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=1185; -- Wood Lurker +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=1189; -- Black Bear Patriarch +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=1192; -- Elder Mountain Boar +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=1194; -- Mountain Buzzard +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=11980; -- Zuluhed the Whacked <Chieftain of the Dragonmaw Clan> +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=12018; -- Majordomo Executus +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=1202; -- Tunnel Rat Kobold +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=1205; -- Grawmug +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=1206; -- Gnasher +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=1207; -- Brawler +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=1210; -- Chok'sul +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=1214; -- Aldren Cordon <Clothier> +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=12238; -- Zaetar's Spirit +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=1271; -- Old Icebeard +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=1283; -- Mountaineer Kalmir +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=13079; -- Keetar +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=13081; -- Irondeep Raider +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=13099; -- Irondeep Explorer +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=13257; -- Murgot Deepforge +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=1329; -- Mountaineer Naarh +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=13326; -- Seasoned Defender +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=13397; -- Irondeep Peon +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=1342; -- Mountaineer Rockgar +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=1344; -- Prospector Ironband +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=1345; -- Magmar Fellhew +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=13716; -- Celebras the Redeemed +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=13916; -- Dire Maul Crystal Totem +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=1393; -- Berserk Trogg +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=1398; -- Boss Galgosh <Stonesplinter Chieftain> +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=14235; -- The Rot +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=14236; -- Lord Angler +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=14237; -- Oozeworm +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=14266; -- Shanda the Spinner +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=14267; -- Emogg the Crusher +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=14279; -- Creepthess +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=14303; -- Petrified Guardian +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=14308; -- Ferra +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=14358; -- Shen'dralar Ancient +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=14368; -- Lorekeeper Lydros +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=14369; -- Shen'dralar Zealot +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=14371; -- Shen'dralar Provisioner +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=14381; -- Lorekeeper Javon +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=14382; -- Lorekeeper Mykos +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=14383; -- Lorekeeper Kildrath +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=14398; -- Eldreth Darter +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=14399; -- Arcane Torrent +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=14400; -- Arcane Feedback +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=14480; -- Alowicious Czervik <Sweet Treats> +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=14481; -- Emmithue Smails <Sweet Treats> +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=14566; -- Ancient Equine Spirit +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=14843; -- Kruban Darkblade <Darkmoon Faire Barker> +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=15011; -- Wagner Hammerstrike +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=15012; -- Javnir Nashak +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=15113; -- Honored Hero +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=15115; -- Honored Ancestor +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=1511; -- Enraged Silverback Gorilla +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=15136; -- Hammerfall Elite +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=1514; -- Mokk the Savage +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=1516; -- Konda +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=15318; -- Hive'Zara Drone +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=15319; -- Hive'Zara Collector +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=15320; -- Hive'Zara Soldier +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=15333; -- Silicate Feeder +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=15335; -- Flesh Hunter +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=15336; -- Hive'Zara Tail Lasher +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=15338; -- Obsidian Destroyer +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=15341; -- General Rajaxx +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=15348; -- Kurinnaxx +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=15355; -- Anubisath Guardian +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=15385; -- Colonel Zerran +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=15386; -- Major Yeggeth +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=15387; -- Qiraji Warrior +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=15388; -- Major Pakkon +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=15389; -- Captain Drenn +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=15390; -- Captain Xurrem +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=15391; -- Captain Qeez +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=15392; -- Captain Tuubid +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=15461; -- Shrieker Scarab +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=15471; -- Lieutenant General Andorov +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=15549; -- Elder Morndeep +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=15565; -- Elder Stormbrow +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=15567; -- Elder Ironband +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=15568; -- Elder Graveborn +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=15570; -- Elder Primestone +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=15573; -- Elder Ragetotem +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=15578; -- Elder Wildmane +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=15583; -- Elder Thunderhorn +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=15584; -- Elder Skyseer +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=15604; -- Elder Morningdew +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=15954; -- Noth the Plaguebringer +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=16032; -- Falrin Treeshaper +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=16226; -- Guard Didier <Brotherhood of the Light> +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=16232; -- Caravan Mule +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=16550; -- Image of Technician Dyvuun +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=16980; -- The Lich King +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=17129; -- Greater Windroc +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=17233; -- Ghost of Uther Lightbringer <Knights of the Silver Hand> +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=17431; -- Velaada +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=18183; -- Arechron +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=18192; -- Horde Halaani Guard +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=18233; -- Elementalist Ioki <The Earthen Ring> +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=18282; -- Lord Klaq +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=1848; -- Lord Maldazzar +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=18506; -- Raging Soul +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=18678; -- Fulgorge +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=18816; -- Chief Researcher Amereldine +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=18821; -- Quartermaster Jaffrey Noreliqe +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=1892; -- Moonrage Watcher +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=1893; -- Moonrage Sentry +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=1896; -- Moonrage Elder +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=19339; -- Korthul <Bowyer & Gunsmith> +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=19342; -- Krek Cragcrush <Blacksmithing Supplies> +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=19412; -- D'ore +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=19416; -- Ancient Draenei Spirit +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=19666; -- Shadow Lord Xiraxis +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=19698; -- Greatfather Aldrimus +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=19879; -- Horvon the Armorer <Armorsmith> +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=2044; -- Forlorn Spirit +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=20812; -- Corki +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=21095; -- Credit Marker: Water +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=2110; -- Black Rat +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=21474; -- Coreiel <Blade Merchant> +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=21483; -- Tasaldan <Ammunition> +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=21484; -- Embelar <Food & Drink> +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=21638; -- Vengeful Harbinger +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=22331; -- Dragonmaw Elite +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=22332; -- Brood of Neltharaku +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=23326; -- Nethermine Ravager +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=23651; -- Dragonflayer Tribesman +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=23652; -- Dragonflayer Vrykul +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=23660; -- Dragonflayer Thane +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=23801; -- Turkey +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=23931; -- Oluf the Violent +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=23953; -- Prince Keleseth <The San'layn> +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=23954; -- Ingvar the Plunderer +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=23956; -- Dragonflayer Strategist +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=23960; -- Dragonflayer Runecaster +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=23961; -- Dragonflayer Ironhelm +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=23970; -- Vrykul Skeleton +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=24063; -- Dragonflayer Worg +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=24069; -- Dragonflayer Bonecrusher +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=24071; -- Dragonflayer Heartsplitter +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=24078; -- Dragonflayer Metalworker +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=24079; -- Dragonflayer Forge Master +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=24080; -- Dragonflayer Weaponsmith +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=24082; -- Proto-Drake Handler +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=24084; -- Tunneling Ghoul +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=24085; -- Dragonflayer Overseer +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=24200; -- Skarvald the Constructor +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=24201; -- Dalronn the Controller +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=24214; -- Yorus the Flesh Harvester +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=24215; -- Jlarborn the Strategist +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=24249; -- Dragonflayer Soulreaver +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=24250; -- Dragonflayer Fleshripper +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=24676; -- Crazed Northsea Slaver +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=2476; -- Large Loch Crocolisk +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=2477; -- Gradok <Horde Runner> +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=2478; -- Haren Swifthoof <Horde Runner> +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=24849; -- Proto-Drake Rider +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=24975; -- Mar'nah <Alchemist> +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=2524; -- Mountaineer Haggis +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=2541; -- Lord Sakrasis +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=25950; -- Shaani <Jewelcrafting Supplies> +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=2602; -- Ruul Onestone +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=2603; -- Kovork +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=26550; -- Dragonflayer Deathseeker +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=26553; -- Dragonflayer Fanatic +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=26554; -- Dragonflayer Seer +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=26620; -- Drakkari Guardian +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=26621; -- Ghoul Tormentor +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=26624; -- Wretched Belcher +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=26625; -- Darkweb Recluse +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=26627; -- Crystal Handler +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=26628; -- Drakkari Scytheclaw +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=26632; -- The Prophet Tharon'ja +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=26635; -- Risen Drakkari Warrior +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=26636; -- Risen Drakkari Soulmage +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=26637; -- Risen Drakkari Handler +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=26638; -- Risen Drakkari Bat Rider +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=26639; -- Drakkari Shaman +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=26641; -- Drakkari Gutripper +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=26668; -- Svala Sorrowgrave +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=26669; -- Ymirjar Savage +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=26670; -- Ymirjar Flesh Hunter +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=26672; -- Bloodthirsty Tundra Wolf +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=26683; -- Frenzied Worgen +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=26684; -- Ravenous Furbolg +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=26685; -- Massive Jormungar +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=26686; -- Ferocious Rhino +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=26687; -- Gortok Palehoof +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=26690; -- Ymirjar Warrior +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=26693; -- Skadi the Ruthless +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=26728; -- Mage Hunter Initiate +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=26729; -- Steward +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=26735; -- Azure Scale-Binder +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=26737; -- Crazed Mana-Surge +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=26746; -- Crazed Mana-Wraith +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=26763; -- Anomalus +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=26782; -- Crystalline Keeper +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=26793; -- Crystalline Frayer +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=26830; -- Risen Drakkari Death Knight +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=26918; -- Chaotic Rift +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=27431; -- Drakkari Commander +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=27447; -- Varos Cloudstrider <Azure-Lord of the Blue Dragonflight> +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=27483; -- King Dred +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=27631; -- Angrathar Aberration +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=27633; -- Azure Inquisitor +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=27635; -- Azure Spellbinder +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=27636; -- Azure Ley-Whelp +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=27638; -- Azure Ring Guardian +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=27639; -- Ring-Lord Sorceress +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=27640; -- Ring-Lord Conjurer +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=27641; -- Centrifuge Construct +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=27642; -- Phantasmal Mammoth +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=27645; -- Phantasmal Cloudscraper +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=27648; -- Phantasmal Naga +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=27650; -- Phantasmal Air +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=27651; -- Phantasmal Fire +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=27653; -- Phantasmal Water +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=27654; -- Drakos the Interrogator +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=27655; -- Mage-Lord Urom +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=27871; -- Flesheating Ghoul +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=27947; -- Horde Commander +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=27972; -- Lightning Construct +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=28231; -- Crystalline Tender +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=28368; -- Ymirjar Necromancer +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=28410; -- Dragonflayer Spiritualist +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=28684; -- Krik'thir the Gatewatcher +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=28729; -- Watcher Narjil +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=28730; -- Watcher Gashra +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=28731; -- Watcher Silthik +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=28732; -- Anub'ar Warrior +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=28733; -- Anub'ar Shadowcaster +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=28921; -- Hadronox +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=28922; -- Anub'ar Crusher +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=29120; -- Anub'arak +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=29128; -- Anub'ar Prime Guard +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=29308; -- Prince Taldaram +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=29309; -- Elder Nadox +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=29310; -- Jedoga Shadowseeker +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=29311; -- Herald Volazj +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=30111; -- Twilight Worshipper +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=30179; -- Twilight Apostle +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=30276; -- Ahn'kahar Web Winder +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=30277; -- Ahn'kahar Slasher +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=30278; -- Ahn'kahar Spell Flinger +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=30279; -- Deep Crawler +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=30284; -- Bonegrinder +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=30285; -- Eye of Taldaram +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=30286; -- Frostbringer +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=30287; -- Plundering Geist +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=30319; -- Twilight Darkcaster +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=30338; -- Ahn'kahar Swarmer +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=30385; -- Twilight Volunteer +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=30414; -- Forgotten One +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=30416; -- Bound Fire Elemental +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=30418; -- Bound Air Elemental +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=30419; -- Bound Water Elemental +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=31266; -- Shadow Vault Assaulter +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=32545; -- Initiate's Training Dummy +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=33255; -- Titanium Stormlord +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=35119; -- Eadric the Pure <Grand Champion of the Argent Crusade> +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=3529; -- Moonrage Armorer +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=3531; -- Moonrage Tailor +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=35570; -- Zul'tore <Grand Champion of Sen'jin> +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=35571; -- Runok Wildmane <Grand Champion of the Thunder Bluff> +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=3581; -- Sewer Beast +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=3652; -- Trigore the Lasher +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=38112; -- Falric +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=3854; -- Shadowfang Wolfguard +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=3865; -- Shadow Charger +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=4257; -- Lana Thunderbrew <Blacksmithing Supplies> +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=4293; -- Scarlet Scryer +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=4848; -- Shadowforge Darkcaster +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=4849; -- Shadowforge Archaeologist +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=4853; -- Stonevault Geomancer +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=4854; -- Grimlok <Stonevault Chieftain> +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=4855; -- Stonevault Brawler +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=4860; -- Stone Steward +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=4861; -- Shrike Bat +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=521; -- Lupos +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=5226; -- Murk Worm +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=5228; -- Saturated Ooze +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=5256; -- Atal'ai Warrior +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=5259; -- Atal'ai Witch Doctor +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=5267; -- Unliving Atal'ai +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=5270; -- Atal'ai Corpse Eater +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=5271; -- Atal'ai Deathwalker +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=5273; -- Atal'ai High Priest +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=5277; -- Nightmare Scalebane +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=5280; -- Nightmare Wyrmkin +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=5283; -- Nightmare Wanderer +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=5286; -- Longtooth Runner +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=5291; -- Hakkari Frostwing +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=5434; -- Coral Shark +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=5470; -- Raging Dune Smasher +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=5676; -- Summoned Voidwalker +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=5708; -- Spawn of Hakkar +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=5709; -- Shade of Eranikus +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=5710; -- Jammal'an the Prophet +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=5711; -- Ogom the Wretched +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=5712; -- Zolo +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=5714; -- Loro +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=5715; -- Hukku +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=5716; -- Zul'Lor +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=5717; -- Mijan +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=5719; -- Morphaz +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=5720; -- Weaver +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=5721; -- Dreamscythe +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=5722; -- Hazzas +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=5728; -- Jezelle's Succubus +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=5832; -- Thunderstomp +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=5834; -- Azzere the Skyblade +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=5851; -- Captain Gerogg Hammertoe <Bael'dun Captain of the Guard> +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=5916; -- Sentinel Amarassan +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=5937; -- Vile Sting +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=6177; -- Narm Faulk +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=6215; -- Chomper +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=6228; -- Dark Iron Ambassador +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=646; -- Mr. Smite <The Ship's First Mate> +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=6577; -- Bingles Blastenheimer +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=7012; -- Earthen Sculptor +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=7015; -- Flagglemurk the Cruel +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=7077; -- Earthen Hallshaper +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=7135; -- Infernal Bodyguard +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=7170; -- Thragomm <Horde Runner> +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=7172; -- Lore Keeper of Norgannon +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=7267; -- Chief Ukorz Sandscalp +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=7273; -- Gahz'rilla +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=7275; -- Shadowpriest Sezz'ziz +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=7290; -- Shadowforge Sharpshooter +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=7291; -- Galgann Firehammer +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=7309; -- Earthen Custodian +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=7320; -- Stonevault Mauler +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=7321; -- Stonevault Flameweaver +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=7349; -- Tomb Fiend +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=7351; -- Tomb Reaver +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=7354; -- Ragglesnout +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=7355; -- Tuten'kash +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=7361; -- Grubbis +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=7397; -- Earthen Stonecarver +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=7405; -- Deadly Cleft Scorpid +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=7787; -- Sandfury Slave +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=7788; -- Sandfury Drudge +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=7789; -- Sandfury Cretin +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=7803; -- Scorpid Duneburrower +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=7808; -- Marauding Owlbeast +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=8017; -- Sen'jin Guardian +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=8118; -- Lillian Singh <Holiday Fireworks Vendor> +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=8138; -- Sul'lithuz Broodling +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=815; -- Bookie Herod +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=8199; -- Warleader Krazzilak +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=8211; -- Old Cliff Jumper +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=8218; -- Witherheart the Stalker +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=8219; -- Zul'arek Hatefowler +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=8279; -- Faulty War Golem +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=8281; -- Scald +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=8311; -- Slime Maggot +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=8318; -- Atal'ai Slave +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=8319; -- Nightmare Whelp +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=8320; -- Sprok <Away Team> +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=8336; -- Hakkari Sapper +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=8338; -- Dark Iron Marksman +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=8384; -- Deep Lurker +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=8480; -- Kalaran the Deceiver +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=8876; -- Sandfury Acolyte +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=8923; -- Panzor the Invincible +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=8925; -- Dredge Worm +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=8926; -- Deep Stinger +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=8927; -- Dark Screecher +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=8928; -- Burrowing Thundersnout +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=9028; -- Grizzle +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=9030; -- Ok'thor the Breaker +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=9178; -- Burning Spirit +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=9237; -- War Master Voone +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=9239; -- Smolderthorn Mystic +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=9240; -- Smolderthorn Shadow Priest +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=9261; -- Firebrand Darkweaver <Firebrand Legion> +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=9262; -- Firebrand Invoker <Firebrand Legion> +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=9267; -- Smolderthorn Axe Thrower +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=9268; -- Smolderthorn Berserker +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=9269; -- Smolderthorn Seer +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=9476; -- Watchman Doomgrip +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=9537; -- Hurley Blackbreath +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=9541; -- Blackbreath Crony +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=9604; -- Gorgon'och +UPDATE `creature_template` SET `BaseAttackTime`=2000 WHERE `entry`=9701; -- Spire Scorpid +UPDATE `creature_template` SET `BaseAttackTime`=2143 WHERE `entry`=30338; -- Ahn'kahar Swarmer +UPDATE `creature_template` SET `BaseAttackTime`=2200 WHERE `entry`=30283; -- Plague Walker +UPDATE `creature_template` SET `BaseAttackTime`=2200 WHERE `entry`=31144; -- Grandmaster's Training Dummy +UPDATE `creature_template` SET `BaseAttackTime`=2280 WHERE `entry`=37003; -- Skybreaker Vindicator +UPDATE `creature_template` SET `BaseAttackTime`=2280 WHERE `entry`=37017; -- Skybreaker Assassin +UPDATE `creature_template` SET `BaseAttackTime`=2280 WHERE `entry`=37148; -- Skybreaker Summoner +UPDATE `creature_template` SET `BaseAttackTime`=2280 WHERE `entry`=37544; -- Spire Gargoyle +UPDATE `creature_template` SET `BaseAttackTime`=2300 WHERE `entry`=31438; -- Shadow Vault Abomination +UPDATE `creature_template` SET `BaseAttackTime`=2300 WHERE `entry`=7076; -- Earthen Guardian +UPDATE `creature_template` SET `BaseAttackTime`=2308 WHERE `entry`=30338; -- Ahn'kahar Swarmer +UPDATE `creature_template` SET `BaseAttackTime`=2400 WHERE `entry`=11664; -- Flamewaker Elite +UPDATE `creature_template` SET `BaseAttackTime`=2400 WHERE `entry`=11949; -- Captain Balinda Stonehearth <Stormpike Captain> +UPDATE `creature_template` SET `BaseAttackTime`=2400 WHERE `entry`=2502; -- "Shaky" Phillipe +UPDATE `creature_template` SET `BaseAttackTime`=2400 WHERE `entry`=26734; -- Azure Enforcer +UPDATE `creature_template` SET `BaseAttackTime`=2400 WHERE `entry`=26792; -- Crystalline Protector +UPDATE `creature_template` SET `BaseAttackTime`=2400 WHERE `entry`=26794; -- Ormorok the Tree-Shaper +UPDATE `creature_template` SET `BaseAttackTime`=2400 WHERE `entry`=30688; -- Disciple of Shadron +UPDATE `creature_template` SET `BaseAttackTime`=2400 WHERE `entry`=36880; -- Decaying Colossus +UPDATE `creature_template` SET `BaseAttackTime`=2400 WHERE `entry`=40502; -- Zalazane +UPDATE `creature_template` SET `BaseAttackTime`=2400 WHERE `entry`=8877; -- Sandfury Zealot +UPDATE `creature_template` SET `BaseAttackTime`=2500 WHERE `entry`=10120; -- Vault Warder +UPDATE `creature_template` SET `BaseAttackTime`=2500 WHERE `entry`=15370; -- Buru the Gorger +UPDATE `creature_template` SET `BaseAttackTime`=2500 WHERE `entry`=24018; -- Necro Overlord Mezhen +UPDATE `creature_template` SET `BaseAttackTime`=2500 WHERE `entry`=24241; -- Thurg +UPDATE `creature_template` SET `BaseAttackTime`=2500 WHERE `entry`=26626; -- Scourge Reanimator +UPDATE `creature_template` SET `BaseAttackTime`=2500 WHERE `entry`=7796; -- Nekrum Gutchewer +UPDATE `creature_template` SET `BaseAttackTime`=2600 WHERE `entry`=2748; -- Archaedas <Ancient Stone Watcher> +UPDATE `creature_template` SET `BaseAttackTime`=2600 WHERE `entry`=7797; -- Ruuzlu +UPDATE `creature_template` SET `BaseAttackTime`=2700 WHERE `entry`=15473; -- Kaldorei Elite +UPDATE `creature_template` SET `BaseAttackTime`=2700 WHERE `entry`=7011; -- Earthen Rocksmasher +UPDATE `creature_template` SET `BaseAttackTime`=2700 WHERE `entry`=7396; -- Earthen Stonebreaker +UPDATE `creature_template` SET `BaseAttackTime`=2700 WHERE `entry`=9259; -- Firebrand Grunt <Firebrand Legion> +UPDATE `creature_template` SET `BaseAttackTime`=2800 WHERE `entry`=11502; -- Ragnaros +UPDATE `creature_template` SET `BaseAttackTime`=2800 WHERE `entry`=4857; -- Stone Keeper +UPDATE `creature_template` SET `BaseAttackTime`=2800 WHERE `entry`=7206; -- Ancient Stone Keeper +UPDATE `creature_template` SET `BaseAttackTime`=2900 WHERE `entry`=7228; -- Ironaya +UPDATE `creature_template` SET `BaseAttackTime`=3000 WHERE `entry`=1180; -- Mo'grosh Brute +UPDATE `creature_template` SET `BaseAttackTime`=3000 WHERE `entry`=30023; -- Korrak the Bloodrager <Champion of the Winterax> +UPDATE `creature_template` SET `BaseAttackTime`=3000 WHERE `entry`=35763; -- Skittering Scarab +UPDATE `creature_template` SET `BaseAttackTime`=3000 WHERE `entry`=412; -- Stitches <Gift from the Embalmer> +UPDATE `creature_template` SET `BaseAttackTime`=3000 WHERE `entry`=8580; -- Atal'alarion <Guardian of the Idol> +UPDATE `creature_template` SET `BaseAttackTime`=3300 WHERE `entry`=17185; -- Bristlelimb Ursa +UPDATE `creature_template` SET `BaseAttackTime`=3600 WHERE `entry`=24559; -- Warlord Salaris +UPDATE `creature_template` SET `BaseAttackTime`=4000 WHERE `entry`=15428; -- Sand Vortex +UPDATE `creature_template` SET `BaseAttackTime`=5000 WHERE `entry`=36551; -- Spiteful Apparition +UPDATE `creature_template` SET `BaseAttackTime`=800 WHERE `entry`=15323; -- Hive'Zara Sandstalker + +-- hover heights +UPDATE `creature_template` SET `HoverHeight`=1.2 WHERE `entry`=29349; -- Anub'ar Darter +UPDATE `creature_template` SET `HoverHeight`=1.2 WHERE `entry`=29755; -- Stormpeak Hatchling +UPDATE `creature_template` SET `HoverHeight`=1.2 WHERE `entry`=30500; -- Argent Skytalon +UPDATE `creature_template` SET `HoverHeight`=1.2 WHERE `entry`=37858; -- Razorscale Image +UPDATE `creature_template` SET `HoverHeight`=1.5 WHERE `entry`=26607; -- Anub'ar Blightbeast +UPDATE `creature_template` SET `HoverHeight`=10 WHERE `entry`=24770; -- Nexus Watcher +UPDATE `creature_template` SET `HoverHeight`=10 WHERE `entry`=26949; -- Torastrasza <Majordomo to the Ruling Council> +UPDATE `creature_template` SET `HoverHeight`=10 WHERE `entry`=29066; -- Titan Sentry +UPDATE `creature_template` SET `HoverHeight`=10 WHERE `entry`=30575; -- Frostbrood Destroyer +UPDATE `creature_template` SET `HoverHeight`=10 WHERE `entry`=30674; -- Frostbrood Destroyer +UPDATE `creature_template` SET `HoverHeight`=10 WHERE `entry`=32857; -- Stormcaller Brundir +UPDATE `creature_template` SET `HoverHeight`=12.5 WHERE `entry`=26276; -- Nexus Guardian +UPDATE `creature_template` SET `HoverHeight`=15 WHERE `entry`=26276; -- Nexus Guardian +UPDATE `creature_template` SET `HoverHeight`=15 WHERE `entry`=27608; -- Azure Dragon +UPDATE `creature_template` SET `HoverHeight`=15 WHERE `entry`=31393; -- Crystal Wyrm +UPDATE `creature_template` SET `HoverHeight`=2 WHERE `entry`=24563; -- Nerub'ar Venomspitter +UPDATE `creature_template` SET `HoverHeight`=2 WHERE `entry`=25582; -- Scourged Flamespitter +UPDATE `creature_template` SET `HoverHeight`=2 WHERE `entry`=25711; -- Spirit of the North +UPDATE `creature_template` SET `HoverHeight`=2 WHERE `entry`=29488; -- Scourge Gryphon +UPDATE `creature_template` SET `HoverHeight`=2 WHERE `entry`=29501; -- Scourge Gryphon +UPDATE `creature_template` SET `HoverHeight`=2 WHERE `entry`=33721; -- Lore Keeper Projection Unit +UPDATE `creature_template` SET `HoverHeight`=2.25 WHERE `entry`=29798; -- Hyldsmeet Proto-Drake +UPDATE `creature_template` SET `HoverHeight`=2.25 WHERE `entry`=30235; -- Glory +UPDATE `creature_template` SET `HoverHeight`=3 WHERE `entry`=23680; -- Plagued Proto-Dragon +UPDATE `creature_template` SET `HoverHeight`=3 WHERE `entry`=23935; -- Val'kyr Watcher +UPDATE `creature_template` SET `HoverHeight`=3 WHERE `entry`=24258; -- Val'kyr Overseer +UPDATE `creature_template` SET `HoverHeight`=3 WHERE `entry`=28824; -- Brann Flying Machine +UPDATE `creature_template` SET `HoverHeight`=3 WHERE `entry`=29545; -- Proto-Drake Corpse +UPDATE `creature_template` SET `HoverHeight`=3 WHERE `entry`=31721; -- Frostbrood Sentry +UPDATE `creature_template` SET `HoverHeight`=3 WHERE `entry`=32767; -- Frostbrood Sentry +UPDATE `creature_template` SET `HoverHeight`=3.75 WHERE `entry`=26841; -- Reanimated Frost Wyrm +UPDATE `creature_template` SET `HoverHeight`=35 WHERE `entry`=27925; -- Nozdormu <The Lord of Time> +UPDATE `creature_template` SET `HoverHeight`=4 WHERE `entry`=23689; -- Proto-Drake +UPDATE `creature_template` SET `HoverHeight`=4 WHERE `entry`=24327; -- Val'kyr Soulclaimer +UPDATE `creature_template` SET `HoverHeight`=4 WHERE `entry`=28487; -- Val'kyr Battle-maiden +UPDATE `creature_template` SET `HoverHeight`=4 WHERE `entry`=29590; -- Blighted Proto-Drake +UPDATE `creature_template` SET `HoverHeight`=4 WHERE `entry`=31029; -- Possessed Vardmadra +UPDATE `creature_template` SET `HoverHeight`=4 WHERE `entry`=31265; -- Savage Proto-Drake +UPDATE `creature_template` SET `HoverHeight`=4 WHERE `entry`=31396; -- Val'kyr Taskmistress +UPDATE `creature_template` SET `HoverHeight`=5 WHERE `entry`=28208; -- Hailscorn +UPDATE `creature_template` SET `HoverHeight`=5 WHERE `entry`=29746; -- Databank +UPDATE `creature_template` SET `HoverHeight`=5.85 WHERE `entry`=27638; -- Azure Ring Guardian +UPDATE `creature_template` SET `HoverHeight`=6 WHERE `entry`=31135; -- Geirrvif +UPDATE `creature_template` SET `HoverHeight`=6 WHERE `entry`=36065; -- Fjola Lightbane +UPDATE `creature_template` SET `HoverHeight`=6 WHERE `entry`=36066; -- Eydis Darkbane +UPDATE `creature_template` SET `HoverHeight`=7.5 WHERE `entry`=26858; -- Sarathstra +UPDATE `creature_template` SET `HoverHeight`=7.5 WHERE `entry`=30486; -- Frostbrood Destroyer +UPDATE `creature_template` SET `HoverHeight`=8 WHERE `entry`=30997; -- Chromie +UPDATE `creature_template` SET `HoverHeight`=9 WHERE `entry`=32492; -- Frostbrood Matriarch +UPDATE `creature_template` SET `HoverHeight`=9 WHERE `entry`=37533; -- Rimefang +UPDATE `creature_template` SET `HoverHeight`=9 WHERE `entry`=37534; -- Spinestalker diff --git a/sql/updates/world/2014_09_07_04_world_npc_classes.sql b/sql/updates/world/2014_09_07_04_world_npc_classes.sql new file mode 100644 index 00000000000..c95d4b3ee41 --- /dev/null +++ b/sql/updates/world/2014_09_07_04_world_npc_classes.sql @@ -0,0 +1,15 @@ +UPDATE `creature_template` SET `unit_class`=2 WHERE `entry`=32113; +UPDATE `creature_template` SET `unit_class`=2 WHERE `entry`=32116; +UPDATE `creature_template` SET `unit_class`=2 WHERE `entry`=32115; +UPDATE `creature_template` SET `unit_class`=2 WHERE `entry`=32114; +UPDATE `creature_template` SET `unit_class`=2 WHERE `entry`=32117; +UPDATE `creature_template` SET `unit_class`=2 WHERE `entry`=32118; +UPDATE `creature_template` SET `unit_class`=2 WHERE `entry`=35744; + +UPDATE `creature_template` SET `unit_class`=2 WHERE `entry`=37436; +UPDATE `creature_template` SET `unit_class`=2 WHERE `entry`=37439; +UPDATE `creature_template` SET `unit_class`=2 WHERE `entry`=37438; +UPDATE `creature_template` SET `unit_class`=2 WHERE `entry`=37437; +UPDATE `creature_template` SET `unit_class`=2 WHERE `entry`=37440; +UPDATE `creature_template` SET `unit_class`=2 WHERE `entry`=37441; +UPDATE `creature_template` SET `unit_class`=2 WHERE `entry`=35745; diff --git a/sql/updates/world/2014_09_07_05_world_sai.sql b/sql/updates/world/2014_09_07_05_world_sai.sql new file mode 100644 index 00000000000..104e9d3d015 --- /dev/null +++ b/sql/updates/world/2014_09_07_05_world_sai.sql @@ -0,0 +1,128 @@ + +DELETE FROM `smart_scripts` WHERE `entryorguid` IN(19546,19579,19545,19580,19543,19544,-70107,-70108,-70109,-70110,-70111) AND `source_type`=0; +DELETE FROM `smart_scripts` WHERE `entryorguid` IN(1954600,1954500,1954400,1954300) 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 +(19546, 0, 0, 1, 54, 0, 100, 0, 0, 0, 0, 0, 64, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Abjurist Belmara - On Just Summoned - Store Targetlist'), +(19546, 0, 1, 2, 61, 0, 100, 0, 0, 0, 0, 0, 2, 7, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Abjurist Belmara - On Just Summoned - Set Faction 7'), +(19546, 0, 2, 3, 61, 0, 100, 0, 0, 0, 0, 0, 18, 768, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Abjurist Belmara - On Just Summoned - Set Flags Immune to NPC/PC'), +(19546, 0, 3, 0, 61, 0, 100, 0, 0, 0, 0, 0, 53, 0, 19546, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Abjurist Belmara - On Just Summoned - Start WP'), +(19546, 0, 4, 0, 40, 0, 100, 0, 5, 19546, 0, 0, 80, 1954600, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Abjurist Belmara - On Reached WP5 - Run Script'), +(19546, 0, 5, 0, 4, 0, 100, 0, 0, 0, 0, 0, 11, 12544, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Abjurist Belmara - On Aggro - Cast \'Frost Armor\''), +(19546, 0, 6, 0, 0, 0, 100, 0, 2000, 5000, 12000, 22000, 11, 17740, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Abjurist Belmara - In Combat - Cast \'Mana Shield\''), +(19546, 0, 7, 0, 0, 0, 100, 0, 0, 6000, 2500, 8000, 11, 34447, 64, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 'Abjurist Belmara - In Combat - Cast \'Arcane Missiles\''), +(19546, 0, 8, 0, 25, 0, 100, 0, 0, 0, 0, 0, 28, 12544, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Abjurist Belmara - On Reset - Remove Aura \'Frost Armor\''), +(19545, 0, 0, 1, 54, 0, 100, 0, 0, 0, 0, 0, 64, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Cohlien Frostweaver - On Just Summoned - Store Targetlist'), +(19545, 0, 1, 2, 61, 0, 100, 0, 0, 0, 0, 0, 2, 7, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Cohlien Frostweaver - On Just Summoned - Set Faction 7'), +(19545, 0, 2, 3, 61, 0, 100, 0, 0, 0, 0, 0, 18, 768, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Cohlien Frostweaver - On Just Summoned - Set Flags Immune to NPC/PC'), +(19545, 0, 3, 0, 61, 0, 100, 0, 0, 0, 0, 0, 53, 0, 19545, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Cohlien Frostweaver - On Just Summoned - Start WP'), +(19545, 0, 4, 0, 40, 0, 100, 0, 6, 19545, 0, 0, 80, 1954500, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Cohlien Frostweaver - On Reached WP6 - Run Script'), +(19545, 0, 5, 0, 0, 0, 100, 0, 0, 1000, 25000, 30000, 11, 33245, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Cohlien Frostweaver - In Combat - Cast \'Ice Barrier\''), +(19545, 0, 6, 0, 0, 0, 100, 0, 0, 10000, 2500, 9500, 11, 11831, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 'Cohlien Frostweaver - In Combat - Cast \'Frost Nova\''), +(19545, 0, 7, 0, 0, 0, 100, 0, 0, 2500, 2500, 11000, 11, 9672, 64, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 'Cohlien Frostweaver - In Combat - Cast \'Frostbolt\''), +(19544, 0, 0, 1, 54, 0, 100, 0, 0, 0, 0, 0, 64, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Conjurer Luminrath - On Just Summoned - Store Targetlist'), +(19544, 0, 1, 2, 61, 0, 100, 0, 0, 0, 0, 0, 2, 7, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Conjurer Luminrath - On Just Summoned - Set Faction 7'), +(19544, 0, 2, 3, 61, 0, 100, 0, 0, 0, 0, 0, 18, 768, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Conjurer Luminrath - On Just Summoned - Set Flags Immune to NPC/PC'), +(19544, 0, 3, 0, 61, 0, 100, 0, 0, 0, 0, 0, 53, 0, 19544, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Conjurer Luminrath - On Just Summoned - Start WP'), +(19544, 0, 4, 0, 40, 0, 100, 0, 3, 19544, 0, 0, 80, 1954400, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Conjurer Luminrath - On Reached WP3 - Run Script'), +(19544, 0, 5, 0, 0, 0, 100, 0, 0, 2500, 1000, 7500, 11, 9532, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 'Conjurer Luminrath - In Combat - Cast \'Lightning Bolt\''), +(19544, 0, 6, 0, 0, 0, 100, 0, 0, 5000, 15000, 30000, 11, 36110, 64, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 'Conjurer Luminrath - In Combat - Cast \'Summon Dancing Sword\''), +(19544, 0, 7, 0, 0, 0, 100, 0, 0, 10000, 5000, 15000, 11, 36109, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Conjurer Luminrath - In Combat - Cast \'Blink\''), +(19543, 0, 0, 1, 54, 0, 100, 0, 0, 0, 0, 0, 64, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Battle-Mage Dathric - On Just Summoned - Store Targetlist'), +(19543, 0, 1, 2, 61, 0, 100, 0, 0, 0, 0, 0, 71, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Battle-Mage Dathric - On Just Summoned - Remove Weapon'), +(19543, 0, 2, 3, 61, 0, 100, 0, 0, 0, 0, 0, 2, 7, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Battle-Mage Dathric - On Just Summoned - Set Faction 7'), +(19543, 0, 3, 4, 61, 0, 100, 0, 0, 0, 0, 0, 18, 768, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Battle-Mage Dathric - On Just Summoned - Set Flags Immune to NPC/PC'), +(19543, 0, 4, 0, 61, 0, 100, 0, 0, 0, 0, 0, 53, 0, 19543, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Battle-Mage Dathric - On Just Summoned - Start WP'), +(19543, 0, 5, 0, 40, 0, 100, 0, 5, 19543, 0, 0, 80, 1954300, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Battle-Mage Dathric - On Reached WP5 - Run Script'), +(19543, 0, 6, 0, 0, 0, 100, 0, 0, 3000, 3000, 8000, 11, 36104, 64, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 'Battle-Mage Dathric - In Combat - Cast \'Torrent of Flames\''), +(19543, 0, 7, 0, 0, 0, 100, 0, 0, 2500, 8500, 12000, 11, 17273, 64, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 'Battle-Mage Dathric - In Combat - Cast \'Pyroblast\''), +(-70109, 0, 0, 0, 1, 0, 100, 0, 0, 0, 5000, 5000, 11, 34212, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Invisible Location Trigger - OOC - Cast Blue beam'), +(-70107, 0, 0, 0, 1, 0, 100, 0, 0, 0, 5000, 5000, 11, 34211, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Invisible Location Trigger - OOC - Cast Blue beam'), +(-70110, 0, 0, 0, 1, 0, 100, 0, 0, 0, 5000, 5000, 11, 34209, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Invisible Location Trigger - OOC - Cast Blue beam'), +(-70108, 0, 0, 0, 1, 0, 100, 0, 0, 0, 5000, 5000, 11, 34212, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Invisible Location Trigger - OOC - Cast Blue beam'), +(-70111, 0, 0, 0, 1, 0, 100, 0, 0, 0, 5000, 5000, 11, 34211, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Invisible Location Trigger - OOC - Cast Blue beam'), +(1954600, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 66, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 4.014257, 'Abjurist Belmara - Script - Set Orientation'), +(1954600, 9, 1, 0, 0, 0, 100, 0, 3000, 3000, 0, 0, 5, 69, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Abjurist Belmara - Script - Play Emote Use_standing'), +(1954600, 9, 2, 0, 0, 0, 100, 0, 3000, 3000, 0, 0, 5, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Abjurist Belmara - Script - Play Emote none'), +(1954600, 9, 3, 0, 0, 0, 100, 0, 0, 0, 0, 0, 71, 0, 0, 12742, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Abjurist Belmara - Script - Equip Item'), +(1954600, 9, 4, 0, 0, 0, 100, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Abjurist Belmara - Script - Say Line'), +(1954600, 9, 5, 0, 0, 0, 100, 0, 0, 0, 0, 0, 33, 19547, 0, 0, 0, 0, 0, 12, 1, 0, 0, 0, 0, 0, 0, 'Abjurist Belmara - Script - Give Kill Credit'), +(1954500, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 66, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 1.902409, 'Cohlien Frostweaver - Script - Set Orientation'), +(1954500, 9, 1, 0, 0, 0, 100, 0, 3000, 3000, 0, 0, 5, 69, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Cohlien Frostweaver - Script - Play Emote Use_standing'), +(1954500, 9, 2, 0, 0, 0, 100, 0, 3000, 3000, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Cohlien Frostweaver - Script - Say Line'), +(1954500, 9, 3, 0, 0, 0, 100, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Cohlien Frostweaver - Script - Play Emote none'), +(1954500, 9, 4, 0, 0, 0, 100, 0, 0, 0, 0, 0, 36, 19579, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Cohlien Frostweaver - Script - Change Entry to Cohlien Frostweaver with Hat'), +(1954500, 9, 5, 0, 0, 0, 100, 0, 0, 0, 0, 0, 2, 7, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Cohlien Frostweaver - Script - Set Faction'), +(1954500, 9, 6, 0, 0, 0, 100, 0, 0, 0, 0, 0, 33, 19550, 0, 0, 0, 0, 0, 12, 1, 0, 0, 0, 0, 0, 0, 'Cohlien Frostweaver - Script - Give Kill Credit'), +(1954400, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 66, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 3.961897, 'Conjurer Luminrath - Script - Set Orientation'), +(1954400, 9, 1, 0, 0, 0, 100, 0, 5000, 5000, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Conjurer Luminrath - Script - Say Line'), +(1954400, 9, 2, 0, 0, 0, 100, 0, 0, 0, 0, 0, 5, 69, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Conjurer Luminrath - Script - Play Emote Use_standing'), +(1954400, 9, 3, 0, 0, 0, 100, 0, 5000, 5000, 0, 0, 5, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Conjurer Luminrath - Script - Play Emote none'), +(1954400, 9, 4, 0, 0, 0, 100, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Conjurer Luminrath - Script - Say Line 2'), +(1954400, 9, 5, 0, 0, 0, 100, 0, 0, 0, 0, 0, 36, 19580, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Conjurer Luminrath - Script - Change Entry to Luminrath with Cape'), +(1954400, 9, 6, 0, 0, 0, 100, 0, 0, 0, 0, 0, 2, 7, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Conjurer Luminrath - Script - Set Faction'), +(1954400, 9, 7, 0, 0, 0, 100, 0, 0, 0, 0, 0, 33, 19548, 0, 0, 0, 0, 0, 12, 1, 0, 0, 0, 0, 0, 0, 'Conjurer Luminrath - Script - Give Kill Credit'), +(1954300, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 66, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 4.537856, 'Battle-Mage Dathric - Script - Set Orientation'), +(1954300, 9, 1, 0, 0, 0, 100, 0, 3000, 3000, 0, 0, 5, 69, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Battle-Mage Dathric - Script - Play Emote Use_standing'), +(1954300, 9, 2, 0, 0, 0, 100, 0, 5000, 5000, 0, 0, 5, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Battle-Mage Dathric - Script - Play Emote none'), +(1954300, 9, 3, 0, 0, 0, 100, 0, 0, 0, 0, 0, 71, 0, 0, 18983, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Battle-Mage Dathric - Script - Equip Item'), +(1954300, 9, 4, 0, 0, 0, 100, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Battle-Mage Dathric - Script - Say Line'), +(1954300, 9, 5, 0, 0, 0, 100, 0, 0, 0, 0, 0, 33, 19549, 0, 0, 0, 0, 0, 12, 1, 0, 0, 0, 0, 0, 0, 'Battle-Mage Dathric - Script - Give Kill Credit'); + +DELETE FROM `creature_text` WHERE `entry` IN(19545,19544,19543,19546); +INSERT INTO `creature_text` (`entry`, `groupid`, `id`, `text`, `type`, `language`, `probability`, `emote`, `duration`, `sound`, `comment`, `BroadcastTextID`) VALUES +(19545, 0, 0, 'Phew! There''s my lucky hat. I''ve been looking for it everywhere.', 12, 0, 100, 0, 0, 0, 'Cohlien Frostweaver',16926), +(19544, 0, 0, 'I can''t possibly go out without my cloak. I hope it''s in here...', 12, 0, 100, 0, 0, 0, 'Conjurer Luminrath',16927), +(19544, 1, 0, 'There it is! I could''ve sworn it wasn''t here last time I checked...', 12, 0, 100, 0, 0, 0, 'Conjurer Luminrath',16929), +(19543, 0, 0, 'I don''t know what I was thinking, going out without my sword. I would''ve put it on if I''d seen it here...', 12, 0, 100, 0, 0, 0, 'Battle-Mage Dathric',16931), +(19546, 0, 0, 'I can''t sleep without a good bedtime story. Now I''m certain to rest well.', 12, 0, 100, 0, 0, 0, 'Abjurist Belmara',16932); + +DELETE FROM `waypoints` WHERE `entry` IN(19546,19545,19544,19543); + +INSERT INTO `waypoints` (`entry`, `pointid`, `position_x`, `position_y`, `position_z`, `point_comment`) VALUES +(19546, 1,2237.667, 2393.5, 112.7383, 'Abjurist Belmara'), +(19546, 2,2238.667, 2393.75, 112.9883, 'Abjurist Belmara'), +(19546, 3,2239.417, 2393.25, 112.9883, 'Abjurist Belmara'), +(19546, 4,2239.917, 2392.5, 112.9883, 'Abjurist Belmara'), +(19546, 5,2240.365, 2390.882, 112.6025, 'Abjurist Belmara'), +(19545, 1,2214.206, 2400.794, 108.8995, 'Cohlien Frostweaver'), +(19545, 2,2213.218, 2400.951, 108.8995, 'Cohlien Frostweaver'), +(19545, 3,2204.71, 2408.806, 108.6094, 'Cohlien Frostweaver'), +(19545, 4,2204.71, 2408.806, 108.6094, 'Cohlien Frostweaver'), +(19545, 5,2204.652, 2408.992, 108.6537, 'Cohlien Frostweaver'), +(19545, 6,2202.912, 2411.269, 108.6577, 'Cohlien Frostweaver'), +(19544, 1,2198.386, 2334.958, 89.4724, 'Conjurer Luminrath'), +(19544, 2,2197.577, 2334.37, 89.4724, 'Conjurer Luminrath'), +(19544, 3,2193.663, 2339.085, 90.02818, 'Conjurer Luminrath'), +(19543, 1,2235.705, 2320.857, 92.30136, 'Battle-Mage Dathric'), +(19543, 2,2235.67, 2319.858, 92.30136, 'Battle-Mage Dathric'), +(19543, 3,2233.228, 2317.592, 91.34792, 'Battle-Mage Dathric'), +(19543, 4,2230.454, 2316.294, 90.59956, 'Battle-Mage Dathric'), +(19543, 5,2228.403, 2313.777, 89.63835, 'Battle-Mage Dathric'); + +DELETE FROM `event_scripts` WHERE `id` IN(12607,12610,12609,12608); +INSERT INTO `event_scripts` (`id`, `delay`, `command`, `datalong`, `datalong2`, `dataint`, `x`, `y`, `z`, `o`) VALUES +(12607, 0, 10, 19546, 25000, 0, 2236.969, 2393.117, 112.374, 5.811946), +(12610, 0, 10, 19545, 25000, 0, 2212.535, 2401.582, 108.8762, 2.396056), +(12609, 0, 10, 19544, 25000, 0, 2197.269, 2334.741, 89.5162, 2.263612), +(12608, 0, 10, 19543, 25000, 0, 2235.094, 2319.323, 92.07642, 3.889618); + +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=13 AND `SourceEntry` IN(34209,34211,34212); +INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES +(13, 1, 34209, 0, 0, 31, 0, 3, 19656, 0, 0, 0, 0, '', 'Blue Beam Targets Invisible Location trigger'), +(13, 1, 34211, 0, 0, 31, 0, 3, 19656, 0, 0, 0, 0, '', 'Blue Beam Targets Invisible Location trigger'), +(13, 1, 34212, 0, 0, 31, 0, 3, 19656, 0, 0, 0, 0, '', 'Blue Beam Targets Invisible Location trigger'); + +UPDATE `smart_scripts` SET `link`=0 WHERE `entryorguid`=28503 AND `source_type`=0 AND `id`=7 AND `link`=8; +UPDATE `smart_scripts` SET `event_flags`=0 WHERE `entryorguid`=9098 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_flags`=0 WHERE `entryorguid`=14389 AND `source_type`=0 AND `id`=0 AND `link`=0; + +DELETE FROM `spell_area` WHERE `spell`=34102; +INSERT INTO `spell_area` (`spell`, `area`, `quest_start`, `quest_end`, `aura_spell`, `racemask`, `gender`, `autocast`, `quest_start_status`, `quest_end_status`) VALUES +(34102, 3733, 0, 0, 0, 0, 2, 1, 64, 11); -- Curse of the Violet Tower + +DELETE FROM `disables` WHERE `sourceType`=0 AND `entry` IN(34209,34211,34212); +INSERT INTO `disables` (`sourceType`, `entry`, `flags`, `params_0`, `params_1`, `comment`) VALUES +(0, 34209, 64, '', '', 'Ignore LOS on Blue Beam'), +(0, 34211, 64, '', '', 'Ignore LOS on Blue Beam'), +(0, 34212, 64, '', '', 'Ignore LOS on Blue Beam'); diff --git a/sql/updates/world/2014_09_07_06_world_sai.sql b/sql/updates/world/2014_09_07_06_world_sai.sql new file mode 100644 index 00000000000..b668a881591 --- /dev/null +++ b/sql/updates/world/2014_09_07_06_world_sai.sql @@ -0,0 +1,6 @@ +SET @ENTRY := 25040; -- Greater Water Elemental
+UPDATE `creature_template` SET `AIName` = 'SmartAI', `ScriptName` = '' WHERE `entry` = @ENTRY;
+DELETE FROM `smart_scripts` WHERE `entryorguid` = @ENTRY AND `source_type` = 0;
+INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
+(@ENTRY, 0, 1, 0, 0, 0, 100, 0, 3000, 3000, 5000, 5000, 11, 46983, 64, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 'Greater Water Elemental - In Combat CMC - Cast Waterbolt');
+
diff --git a/sql/updates/world/2014_09_08_00_world_conditions.sql b/sql/updates/world/2014_09_08_00_world_conditions.sql new file mode 100644 index 00000000000..492d6b5a981 --- /dev/null +++ b/sql/updates/world/2014_09_08_00_world_conditions.sql @@ -0,0 +1,76 @@ +UPDATE `quest_template` SET `PrevQuestId`=13794 WHERE `Id` IN(13861,13862); -- Battle before the Citadel (Non DK) requires Eadric the Pure complete +UPDATE `quest_template` SET `PrevQuestId`=13795 WHERE `Id` IN(13863,13864); -- Battle before the Citadel (DK) requires The Scourgebane complete +UPDATE `quest_template` SET `PrevQuestId`=13794 WHERE `Id` IN(13790,13811); -- Among the Champions (Non DK) requires Eadric the Pure complete +UPDATE `quest_template` SET `PrevQuestId`=13795 WHERE `Id` IN(13793,13814); -- Among the Champtions (DK) requires The Scourgebane complete +UPDATE `quest_template` SET `PrevQuestId`=13794 WHERE `Id` IN(13789,13810); -- Taking Battle To The Enemy (Non DK) requires Eadric the Pure complete +UPDATE `quest_template` SET `PrevQuestId`=13795 WHERE `Id` IN(13791,13813); -- Taking Battle To The Enemy (DK) requires The Scourgebane complete +UPDATE `quest_template` SET `PrevQuestId`=0 WHERE `Id` IN(13682,13809); -- Clear prev quest from Threat from above as this needs more than one quest complete to become available so will be dealt with by conditions instead +UPDATE `quest_template` SET `PrevQuestId`=0 WHERE `Id` IN(13788,13812); -- Clear prev quest from Threat from above as this needs more than one quest complete to become available so will be dealt with by conditions instead +UPDATE `quest_template` SET `PrevQuestId`=0 WHERE `Id`=13664; -- Clear prev quest for the Black Knight's Fall as this quest had multiple requirements and will be dealt with by conditions instead + +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` IN(19,20) AND `SourceId` IN(13794,13795,13682,13809,13788,13812,13664); +INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES +(19, 0, 13794, 0, 0, 8, 0, 13737, 0, 0, 0, 0, 0, '', 'Eadric the Pure requires A Champion Rises'), +(20, 0, 13794, 0, 0, 8, 0, 13737, 0, 0, 0, 0, 0, '', 'Eadric the Pure requires A Champion Rises'), +(19, 0, 13794, 0, 1, 8, 0, 13738, 0, 0, 0, 0, 0, '', 'Eadric the Pure requires A Champion Rises'), +(20, 0, 13794, 0, 1, 8, 0, 13738, 0, 0, 0, 0, 0, '', 'Eadric the Pure requires A Champion Rises'), +(19, 0, 13794, 0, 2, 8, 0, 13736, 0, 0, 0, 0, 0, '', 'Eadric the Pure requires A Champion Rises'), +(20, 0, 13794, 0, 2, 8, 0, 13736, 0, 0, 0, 0, 0, '', 'Eadric the Pure requires A Champion Rises'), +(19, 0, 13794, 0, 3, 8, 0, 13739, 0, 0, 0, 0, 0, '', 'Eadric the Pure requires A Champion Rises'), +(20, 0, 13794, 0, 3, 8, 0, 13739, 0, 0, 0, 0, 0, '', 'Eadric the Pure requires A Champion Rises'), +(19, 0, 13794, 0, 4, 8, 0, 13740, 0, 0, 0, 0, 0, '', 'Eadric the Pure requires A Champion Rises'), +(20, 0, 13794, 0, 4, 8, 0, 13740, 0, 0, 0, 0, 0, '', 'Eadric the Pure requires A Champion Rises'), +(19, 0, 13794, 0, 5, 8, 0, 13735, 0, 0, 0, 0, 0, '', 'Eadric the Pure requires A Champion Rises'), +(20, 0, 13794, 0, 5, 8, 0, 13735, 0, 0, 0, 0, 0, '', 'Eadric the Pure requires A Champion Rises'), +(19, 0, 13794, 0, 6, 8, 0, 13732, 0, 0, 0, 0, 0, '', 'Eadric the Pure requires A Champion Rises'), +(20, 0, 13794, 0, 6, 8, 0, 13732, 0, 0, 0, 0, 0, '', 'Eadric the Pure requires A Champion Rises'), +(19, 0, 13794, 0, 7, 8, 0, 13733, 0, 0, 0, 0, 0, '', 'Eadric the Pure requires A Champion Rises'), +(20, 0, 13794, 0, 7, 8, 0, 13733, 0, 0, 0, 0, 0, '', 'Eadric the Pure requires A Champion Rises'), +(19, 0, 13794, 0, 8, 8, 0, 13734, 0, 0, 0, 0, 0, '', 'Eadric the Pure requires A Champion Rises'), +(20, 0, 13794, 0, 8, 8, 0, 13734, 0, 0, 0, 0, 0, '', 'Eadric the Pure requires A Champion Rises'), +(19, 0, 13794, 0, 9, 8, 0, 13702, 0, 0, 0, 0, 0, '', 'Eadric the Pure requires A Champion Rises'), +(20, 0, 13794, 0, 9, 8, 0, 13702, 0, 0, 0, 0, 0, '', 'Eadric the Pure requires A Champion Rises'), +(19, 0, 13795, 0, 0, 8, 0, 13737, 0, 0, 0, 0, 0, '', 'The Scourgebane requires A Champion Rises'), +(20, 0, 13795, 0, 0, 8, 0, 13737, 0, 0, 0, 0, 0, '', 'The Scourgebane requires A Champion Rises'), +(19, 0, 13795, 0, 1, 8, 0, 13738, 0, 0, 0, 0, 0, '', 'The Scourgebane requires A Champion Rises'), +(20, 0, 13795, 0, 1, 8, 0, 13738, 0, 0, 0, 0, 0, '', 'The Scourgebane requires A Champion Rises'), +(19, 0, 13795, 0, 2, 8, 0, 13736, 0, 0, 0, 0, 0, '', 'The Scourgebane requires A Champion Rises'), +(20, 0, 13795, 0, 2, 8, 0, 13736, 0, 0, 0, 0, 0, '', 'The Scourgebane requires A Champion Rises'), +(19, 0, 13795, 0, 3, 8, 0, 13739, 0, 0, 0, 0, 0, '', 'The Scourgebane requires A Champion Rises'), +(20, 0, 13795, 0, 3, 8, 0, 13739, 0, 0, 0, 0, 0, '', 'The Scourgebane requires A Champion Rises'), +(19, 0, 13795, 0, 4, 8, 0, 13740, 0, 0, 0, 0, 0, '', 'The Scourgebane requires A Champion Rises'), +(20, 0, 13795, 0, 4, 8, 0, 13740, 0, 0, 0, 0, 0, '', 'The Scourgebane requires A Champion Rises'), +(19, 0, 13795, 0, 5, 8, 0, 13735, 0, 0, 0, 0, 0, '', 'The Scourgebane requires A Champion Rises'), +(20, 0, 13795, 0, 5, 8, 0, 13735, 0, 0, 0, 0, 0, '', 'The Scourgebane requires A Champion Rises'), +(19, 0, 13795, 0, 6, 8, 0, 13732, 0, 0, 0, 0, 0, '', 'The Scourgebane requires A Champion Rises'), +(20, 0, 13795, 0, 6, 8, 0, 13732, 0, 0, 0, 0, 0, '', 'The Scourgebane requires A Champion Rises'), +(19, 0, 13795, 0, 7, 8, 0, 13733, 0, 0, 0, 0, 0, '', 'The Scourgebane requires A Champion Rises'), +(20, 0, 13795, 0, 7, 8, 0, 13733, 0, 0, 0, 0, 0, '', 'The Scourgebane requires A Champion Rises'), +(19, 0, 13795, 0, 8, 8, 0, 13734, 0, 0, 0, 0, 0, '', 'The Scourgebane requires A Champion Rises'), +(20, 0, 13795, 0, 8, 8, 0, 13734, 0, 0, 0, 0, 0, '', 'The Scourgebane requires A Champion Rises'), +(19, 0, 13795, 0, 9, 8, 0, 13702, 0, 0, 0, 0, 0, '', 'The Scourgebane requires A Champion Rises'), +(20, 0, 13795, 0, 9, 8, 0, 13702, 0, 0, 0, 0, 0, '', 'The Scourgebane requires A Champion Rises'), +(19, 0, 13682, 0, 0, 8, 0, 13794, 0, 0, 0, 0, 0, '', 'Threat from Above requires Eadric the Pure rewarded'), +(20, 0, 13682, 0, 0, 8, 0, 13794, 0, 0, 0, 0, 0, '', 'Threat from Above requires Eadric the Pure rewarded'), +(19, 0, 13682, 0, 0, 8, 0, 13664, 0, 0, 0, 0, 0, '', 'Threat from Above requires The Black Knights Fall rewarded'), +(20, 0, 13682, 0, 0, 8, 0, 13664, 0, 0, 0, 0, 0, '', 'Threat from Above requires The Black Knights Fall rewarded'), +(19, 0, 13809, 0, 0, 8, 0, 13794, 0, 0, 0, 0, 0, '', 'Threat from Above requires Eadric the Pure rewarded'), +(20, 0, 13809, 0, 0, 8, 0, 13794, 0, 0, 0, 0, 0, '', 'Threat from Above requires Eadric the Pure rewarded'), +(19, 0, 13809, 0, 0, 8, 0, 13664, 0, 0, 0, 0, 0, '', 'Threat from Above requires The Black Knights Fall rewarded'), +(20, 0, 13809, 0, 0, 8, 0, 13664, 0, 0, 0, 0, 0, '', 'Threat from Above requires The Black Knights Fall rewarded'), +(19, 0, 13788, 0, 0, 8, 0, 13795, 0, 0, 0, 0, 0, '', 'Threat from Above requires The Scourgebane rewarded'), +(20, 0, 13788, 0, 0, 8, 0, 13795, 0, 0, 0, 0, 0, '', 'Threat from Above requires The Scourgebane rewarded'), +(19, 0, 13788, 0, 0, 8, 0, 13664, 0, 0, 0, 0, 0, '', 'Threat from Above requires The Black Knights Fall rewarded'), +(20, 0, 13788, 0, 0, 8, 0, 13664, 0, 0, 0, 0, 0, '', 'Threat from Above requires The Black Knights Fall rewarded'), +(19, 0, 13812, 0, 0, 8, 0, 13795, 0, 0, 0, 0, 0, '', 'Threat from Above requires The Scourgebane rewarded'), +(20, 0, 13812, 0, 0, 8, 0, 13795, 0, 0, 0, 0, 0, '', 'Threat from Above requires The Scourgebane rewarded'), +(19, 0, 13812, 0, 0, 8, 0, 13664, 0, 0, 0, 0, 0, '', 'Threat from Above requires The Black Knights Fall rewarded'), +(20, 0, 13812, 0, 0, 8, 0, 13664, 0, 0, 0, 0, 0, '', 'Threat from Above requires The Black Knights Fall rewarded'), +(19, 0, 13664, 0, 0, 8, 0, 13794, 0, 0, 0, 0, 0, '', 'The Black Knights fall requires Eadric the Pure rewarded'), +(20, 0, 13664, 0, 0, 8, 0, 13794, 0, 0, 0, 0, 0, '', 'The Black Knights fall requires Eadric the Pure rewarded'), +(19, 0, 13664, 0, 0, 8, 0, 13663, 0, 0, 0, 0, 0, '', 'The Black Knights fall requires The Black Knights Orders rewarded'), +(20, 0, 13664, 0, 0, 8, 0, 13663, 0, 0, 0, 0, 0, '', 'The Black Knights fall requires The Black Knights Orders rewarded'), +(19, 0, 13664, 0, 1, 8, 0, 13795, 0, 0, 0, 0, 0, '', 'The Black Knights fall requires The Scourgebane rewarded'), +(20, 0, 13664, 0, 1, 8, 0, 13795, 0, 0, 0, 0, 0, '', 'The Black Knights fall requires The Scourgebane rewarded'), +(19, 0, 13664, 0, 1, 8, 0, 13663, 0, 0, 0, 0, 0, '', 'The Black Knights fall requires The Black Knights Orders rewarded'), +(20, 0, 13664, 0, 1, 8, 0, 13663, 0, 0, 0, 0, 0, '', 'The Black Knights fall requires The Black Knights Orders rewarded'); diff --git a/src/server/game/AI/ScriptedAI/ScriptedCreature.h b/src/server/game/AI/ScriptedAI/ScriptedCreature.h index 788da26ea4a..f11769f1d1d 100644 --- a/src/server/game/AI/ScriptedAI/ScriptedCreature.h +++ b/src/server/game/AI/ScriptedAI/ScriptedCreature.h @@ -370,7 +370,7 @@ class BossAI : public ScriptedAI void _JustDied(); void _JustReachedHome() { me->setActive(false); } - bool CheckInRoom() + virtual bool CheckInRoom() { if (CheckBoundary(me)) return true; 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 20d0364ab79..6e7425a75a3 100644 --- a/src/server/game/AuctionHouseBot/AuctionHouseBotBuyer.cpp +++ b/src/server/game/AuctionHouseBot/AuctionHouseBotBuyer.cpp @@ -355,6 +355,7 @@ void AuctionBotBuyer::AddNewAuctionBuyerBotBid(BuyerConfiguration& config) uint32 bidPrice; uint32 bidPriceByItem; uint32 minBidPrice; + uint32 minBuyPrice; if (auction->bid >= auction->startbid) { bidPrice = auction->GetAuctionOutBid(); @@ -373,6 +374,7 @@ void AuctionBotBuyer::AddNewAuctionBuyerBotBid(BuyerConfiguration& config) inGameBuyPrice = 0; inGameBidPrice = 0; minBidPrice = 0; + minBuyPrice = 0; } else { @@ -381,6 +383,7 @@ void AuctionBotBuyer::AddNewAuctionBuyerBotBid(BuyerConfiguration& config) inGameBuyPrice = sameItemItr->second.BuyPrice / sameItemItr->second.ItemCount; inGameBidPrice = sameItemItr->second.BidPrice / sameItemItr->second.ItemCount; minBidPrice = sameItemItr->second.MinBidPrice; + minBuyPrice = sameItemItr->second.MinBuyPrice; } uint32 maxBidablePrice = maxBuyablePrice - (maxBuyablePrice / 30); // Max Bidable price defined to 70% of max buyable price @@ -389,14 +392,14 @@ void AuctionBotBuyer::AddNewAuctionBuyerBotBid(BuyerConfiguration& config) 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, 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, minBidPrice, maxChance / 2, config.FactionChance)) { diff --git a/src/server/game/Entities/GameObject/GameObject.cpp b/src/server/game/Entities/GameObject/GameObject.cpp index 3c33159cf1e..f45d3a071e1 100644 --- a/src/server/game/Entities/GameObject/GameObject.cpp +++ b/src/server/game/Entities/GameObject/GameObject.cpp @@ -892,11 +892,6 @@ void GameObject::DeleteFromDB() WorldDatabase.Execute(stmt); } -GameObject* GameObject::GetGameObject(WorldObject& object, uint64 guid) -{ - return object.GetMap()->GetGameObject(guid); -} - /*********************************************************/ /*** QUEST SYSTEM ***/ /*********************************************************/ diff --git a/src/server/game/Entities/GameObject/GameObject.h b/src/server/game/Entities/GameObject/GameObject.h index f551ab2046c..6807fbf9387 100644 --- a/src/server/game/Entities/GameObject/GameObject.h +++ b/src/server/game/Entities/GameObject/GameObject.h @@ -643,7 +643,6 @@ class GameObject : public WorldObject, public GridObject<GameObject>, public Map bool Create(uint32 guidlow, uint32 name_id, Map* map, uint32 phaseMask, float x, float y, float z, float ang, float rotation0, float rotation1, float rotation2, float rotation3, uint32 animprogress, GOState go_state, uint32 artKit = 0); void Update(uint32 p_time) override; - static GameObject* GetGameObject(WorldObject& object, uint64 guid); GameObjectTemplate const* GetGOInfo() const { return m_goInfo; } GameObjectData const* GetGOData() const { return m_goData; } GameObjectValue const* GetGOValue() const { return &m_goValue; } diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 158ff17ea11..0e1e53cfe4c 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -5884,38 +5884,36 @@ float Player::OCTRegenMPPerSpirit() return regen; } -void Player::ApplyRatingMod(CombatRating cr, int32 value, bool apply) +void Player::ApplyRatingMod(CombatRating combatRating, int32 value, bool apply) { - float oldRating = m_baseRatingValue[cr]; - m_baseRatingValue[cr]+=(apply ? value : -value); + float oldRating = m_baseRatingValue[combatRating]; + m_baseRatingValue[combatRating] += (apply ? value : -value); + // explicit affected values - if (cr == CR_HASTE_MELEE || cr == CR_HASTE_RANGED || cr == CR_HASTE_SPELL) - { - float const mult = GetRatingMultiplier(cr); - float const oldVal = oldRating * mult; - float const newVal = m_baseRatingValue[cr] * mult; - switch (cr) - { - case CR_HASTE_MELEE: - ApplyAttackTimePercentMod(BASE_ATTACK, oldVal, false); - ApplyAttackTimePercentMod(OFF_ATTACK, oldVal, false); - ApplyAttackTimePercentMod(BASE_ATTACK, newVal, true); - ApplyAttackTimePercentMod(OFF_ATTACK, newVal, true); - break; - case CR_HASTE_RANGED: - ApplyAttackTimePercentMod(RANGED_ATTACK, oldVal, false); - ApplyAttackTimePercentMod(RANGED_ATTACK, newVal, true); - break; - case CR_HASTE_SPELL: - ApplyCastTimePercentMod(oldVal, false); - ApplyCastTimePercentMod(newVal, true); - break; - default: // shut up compiler warnings - break; - } + float const multiplier = GetRatingMultiplier(combatRating); + float const oldVal = oldRating * multiplier; + float const newVal = m_baseRatingValue[combatRating] * multiplier; + switch (combatRating) + { + case CR_HASTE_MELEE: + ApplyAttackTimePercentMod(BASE_ATTACK, oldVal, false); + ApplyAttackTimePercentMod(OFF_ATTACK, oldVal, false); + ApplyAttackTimePercentMod(BASE_ATTACK, newVal, true); + ApplyAttackTimePercentMod(OFF_ATTACK, newVal, true); + break; + case CR_HASTE_RANGED: + ApplyAttackTimePercentMod(RANGED_ATTACK, oldVal, false); + ApplyAttackTimePercentMod(RANGED_ATTACK, newVal, true); + break; + case CR_HASTE_SPELL: + ApplyCastTimePercentMod(oldVal, false); + ApplyCastTimePercentMod(newVal, true); + break; + default: + break; } - UpdateRating(cr); + UpdateRating(combatRating); } void Player::UpdateRating(CombatRating cr) @@ -26495,13 +26493,13 @@ 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); } diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp index 0bc5c29ab11..7ab843943f8 100644 --- a/src/server/game/Globals/ObjectMgr.cpp +++ b/src/server/game/Globals/ObjectMgr.cpp @@ -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/Handlers/SpellHandler.cpp b/src/server/game/Handlers/SpellHandler.cpp index 13f79fb88c5..9cce494a522 100644 --- a/src/server/game/Handlers/SpellHandler.cpp +++ b/src/server/game/Handlers/SpellHandler.cpp @@ -33,6 +33,7 @@ #include "GameObjectAI.h" #include "SpellAuraEffects.h" #include "Player.h" +#include "Config.h" void WorldSession::HandleClientCastFlags(WorldPacket& recvPacket, uint8 castFlags, SpellCastTargets& targets) { @@ -436,6 +437,25 @@ void WorldSession::HandleCancelAuraOpcode(WorldPacket& recvPacket) // maybe should only remove one buff when there are multiple? _player->RemoveOwnedAura(spellId, 0, 0, AURA_REMOVE_BY_CANCEL); + + // If spell being removed is a resource tracker, see if player was tracking both (herbs / minerals) and remove the other + if (sWorld->getBoolConfig(CONFIG_ALLOW_TRACK_BOTH_RESOURCES) && spellInfo->HasAura(SPELL_AURA_TRACK_RESOURCES)) + { + Unit::AuraEffectList const& auraEffects = _player->GetAuraEffectsByType(SPELL_AURA_TRACK_RESOURCES); + if (!auraEffects.empty()) + { + // Build list of spell IDs to cancel. Trying to cancel the aura while iterating + // over AuraEffectList caused "incompatible iterator" errors on second pass + std::list<uint32> spellIDs; + + for (Unit::AuraEffectList::const_iterator auraEffect = auraEffects.begin(); auraEffect != auraEffects.end(); auraEffect++) + spellIDs.push_back((*auraEffect)->GetId()); + + // Remove all auras related to resource tracking (only Herbs and Minerals in 3.3.5a) + for (std::list<uint32>::iterator it = spellIDs.begin(); it != spellIDs.end(); it++) + _player->RemoveOwnedAura(*it, 0, 0, AURA_REMOVE_BY_CANCEL); + } + } } void WorldSession::HandlePetCancelAuraOpcode(WorldPacket& recvPacket) diff --git a/src/server/game/Instances/InstanceScript.cpp b/src/server/game/Instances/InstanceScript.cpp index adef21fe7a2..6278e66baef 100644 --- a/src/server/game/Instances/InstanceScript.cpp +++ b/src/server/game/Instances/InstanceScript.cpp @@ -43,16 +43,6 @@ void InstanceScript::SaveToDB() CharacterDatabase.Execute(stmt); } -void InstanceScript::HandleGameObject(uint64 GUID, bool open, GameObject* go) -{ - if (!go) - go = instance->GetGameObject(GUID); - if (go) - go->SetGoState(open ? GO_STATE_ACTIVE : GO_STATE_READY); - else - TC_LOG_DEBUG("scripts", "InstanceScript: HandleGameObject failed"); -} - bool InstanceScript::IsEncounterInProgress() const { for (std::vector<BossInfo>::const_iterator itr = bosses.begin(); itr != bosses.end(); ++itr) @@ -62,6 +52,13 @@ bool InstanceScript::IsEncounterInProgress() const return false; } +void InstanceScript::SetHeaders(std::string const& dataHeaders) +{ + for (char header : dataHeaders) + if (isalpha(header)) + headers.push_back(header); +} + void InstanceScript::LoadMinionData(const MinionData* data) { while (data->entry) @@ -232,65 +229,140 @@ bool InstanceScript::SetBossState(uint32 id, EncounterState state) return false; } -std::string InstanceScript::LoadBossState(const char * data) +void InstanceScript::Load(char const* data) { if (!data) - return NULL; + { + OUT_LOAD_INST_DATA_FAIL; + return; + } + + OUT_LOAD_INST_DATA(data); + std::istringstream loadStream(data); - uint32 buff; + + if (ReadSaveDataHeaders(loadStream)) + { + ReadSaveDataBossStates(loadStream); + ReadSaveDataMore(loadStream); + } + else + OUT_LOAD_INST_DATA_FAIL; + + OUT_LOAD_INST_DATA_COMPLETE; +} + +bool InstanceScript::ReadSaveDataHeaders(std::istringstream& data) +{ + for (char header : headers) + { + char buff; + data >> buff; + + if (header != buff) + return false; + } + + return true; +} + +void InstanceScript::ReadSaveDataBossStates(std::istringstream& data) +{ uint32 bossId = 0; for (std::vector<BossInfo>::iterator i = bosses.begin(); i != bosses.end(); ++i, ++bossId) { - loadStream >> buff; + uint32 buff; + data >> buff; + if (buff == IN_PROGRESS || buff == SPECIAL) + buff = NOT_STARTED; + if (buff < TO_BE_DECIDED) - SetBossState(bossId, (EncounterState)buff); + SetBossState(bossId, EncounterState(buff)); } - return loadStream.str(); } -std::string InstanceScript::GetBossSaveData() +std::string InstanceScript::GetSaveData() { + OUT_SAVE_INST_DATA; + std::ostringstream saveStream; - for (std::vector<BossInfo>::iterator i = bosses.begin(); i != bosses.end(); ++i) - saveStream << (uint32)i->state << ' '; + + WriteSaveDataHeaders(saveStream); + WriteSaveDataBossStates(saveStream); + WriteSaveDataMore(saveStream); + + OUT_SAVE_INST_DATA_COMPLETE; + return saveStream.str(); } -void InstanceScript::DoUseDoorOrButton(uint64 uiGuid, uint32 uiWithRestoreTime, bool bUseAlternativeState) +void InstanceScript::WriteSaveDataHeaders(std::ostringstream& data) { - if (!uiGuid) - return; + for (char header : headers) + data << header << ' '; +} - GameObject* go = instance->GetGameObject(uiGuid); +void InstanceScript::WriteSaveDataBossStates(std::ostringstream& data) +{ + for (BossInfo const& bossInfo : bosses) + data << uint32(bossInfo.state) << ' '; +} +void InstanceScript::HandleGameObject(uint64 guid, bool open, GameObject* go /*= nullptr*/) +{ + if (!go) + go = instance->GetGameObject(guid); if (go) + go->SetGoState(open ? GO_STATE_ACTIVE : GO_STATE_READY); + else + TC_LOG_DEBUG("scripts", "InstanceScript: HandleGameObject failed"); +} + +void InstanceScript::DoUseDoorOrButton(uint64 guid, uint32 withRestoreTime /*= 0*/, bool useAlternativeState /*= false*/) +{ + if (!guid) + return; + + if (GameObject* go = instance->GetGameObject(guid)) { if (go->GetGoType() == GAMEOBJECT_TYPE_DOOR || go->GetGoType() == GAMEOBJECT_TYPE_BUTTON) { if (go->getLootState() == GO_READY) - go->UseDoorOrButton(uiWithRestoreTime, bUseAlternativeState); + go->UseDoorOrButton(withRestoreTime, useAlternativeState); else if (go->getLootState() == GO_ACTIVATED) go->ResetDoorOrButton(); } else - TC_LOG_ERROR("misc", "SD2: Script call DoUseDoorOrButton, but gameobject entry %u is type %u.", go->GetEntry(), go->GetGoType()); + TC_LOG_ERROR("scripts", "InstanceScript: DoUseDoorOrButton can't use gameobject entry %u, because type is %u.", go->GetEntry(), go->GetGoType()); } + else + TC_LOG_DEBUG("scripts", "InstanceScript: HandleGameObject failed"); } -void InstanceScript::DoRespawnGameObject(uint64 uiGuid, uint32 uiTimeToDespawn) +void InstanceScript::DoRespawnGameObject(uint64 guid, uint32 timeToDespawn /*= MINUTE*/) { - if (GameObject* go = instance->GetGameObject(uiGuid)) + if (GameObject* go = instance->GetGameObject(guid)) { - //not expect any of these should ever be handled - if (go->GetGoType() == GAMEOBJECT_TYPE_FISHINGNODE || go->GetGoType() == GAMEOBJECT_TYPE_DOOR || - go->GetGoType() == GAMEOBJECT_TYPE_BUTTON || go->GetGoType() == GAMEOBJECT_TYPE_TRAP) - return; + switch (go->GetGoType()) + { + case GAMEOBJECT_TYPE_DOOR: + case GAMEOBJECT_TYPE_BUTTON: + case GAMEOBJECT_TYPE_TRAP: + case GAMEOBJECT_TYPE_FISHINGNODE: + // not expect any of these should ever be handled + TC_LOG_ERROR("scripts", "InstanceScript: DoRespawnGameObject can't respawn gameobject entry %u, because type is %u.", go->GetEntry(), go->GetGoType()); + return; + default: + break; + } if (go->isSpawned()) return; - go->SetRespawnTime(uiTimeToDespawn); + go->SetRespawnTime(timeToDespawn); } + else + TC_LOG_DEBUG("scripts", "InstanceScript: DoRespawnGameObject failed"); } void InstanceScript::DoUpdateWorldState(uint32 uiStateId, uint32 uiStateData) diff --git a/src/server/game/Instances/InstanceScript.h b/src/server/game/Instances/InstanceScript.h index f379572961c..41f62cfb5f2 100644 --- a/src/server/game/Instances/InstanceScript.h +++ b/src/server/game/Instances/InstanceScript.h @@ -137,38 +137,38 @@ class InstanceScript : public ZoneScript Map* instance; - //On creation, NOT load. + // On creation, NOT load. virtual void Initialize() { } - //On load - virtual void Load(char const* data) { LoadBossState(data); } + // On load + virtual void Load(char const* data); - //When save is needed, this function generates the data - virtual std::string GetSaveData() { return GetBossSaveData(); } + // When save is needed, this function generates the data + virtual std::string GetSaveData(); void SaveToDB(); virtual void Update(uint32 /*diff*/) { } - //Used by the map's CanEnter function. - //This is to prevent players from entering during boss encounters. + // Used by the map's CanEnter function. + // This is to prevent players from entering during boss encounters. virtual bool IsEncounterInProgress() const; - //Called when a player successfully enters the instance. + // Called when a player successfully enters the instance. virtual void OnPlayerEnter(Player* /*player*/) { } - //Handle open / close objects - //use HandleGameObject(0, boolen, GO); in OnObjectCreate in instance scripts - //use HandleGameObject(GUID, boolen, NULL); in any other script - void HandleGameObject(uint64 guid, bool open, GameObject* go = NULL); + // Handle open / close objects + // * use HandleGameObject(0, boolen, GO); in OnObjectCreate in instance scripts + // * use HandleGameObject(GUID, boolen, NULL); in any other script + void HandleGameObject(uint64 guid, bool open, GameObject* go = nullptr); - //change active state of doors or buttons + // Change active state of doors or buttons void DoUseDoorOrButton(uint64 guid, uint32 withRestoreTime = 0, bool useAlternativeState = false); - //Respawns a GO having negative spawntimesecs in gameobject-table + // Respawns a GO having negative spawntimesecs in gameobject-table void DoRespawnGameObject(uint64 guid, uint32 timeToDespawn = MINUTE); - //sends world state update to all players in instance + // Sends world state update to all players in instance void DoUpdateWorldState(uint32 worldstateId, uint32 worldstateValue); // Send Notify to all players in instance @@ -215,6 +215,7 @@ class InstanceScript : public ZoneScript virtual void FillInitialWorldStates(WorldPacket& /*data*/) { } protected: + void SetHeaders(std::string const& dataHeaders); void SetBossNumber(uint32 number) { bosses.resize(number); } void LoadDoorData(DoorData const* data); void LoadMinionData(MinionData const* data); @@ -225,9 +226,16 @@ class InstanceScript : public ZoneScript void UpdateDoorState(GameObject* door); void UpdateMinionState(Creature* minion, EncounterState state); - std::string LoadBossState(char const* data); - std::string GetBossSaveData(); + // Instance Load and Save + bool ReadSaveDataHeaders(std::istringstream& data); + void ReadSaveDataBossStates(std::istringstream& data); + virtual void ReadSaveDataMore(std::istringstream& /*data*/) { } + void WriteSaveDataHeaders(std::ostringstream& data); + void WriteSaveDataBossStates(std::ostringstream& data); + virtual void WriteSaveDataMore(std::ostringstream& /*data*/) { } + private: + std::vector<char> headers; std::vector<BossInfo> bosses; DoorInfoMap doors; MinionInfoMap minions; diff --git a/src/server/game/Miscellaneous/Language.h b/src/server/game/Miscellaneous/Language.h index 66cae69cb33..eceb0a8e7de 100644 --- a/src/server/game/Miscellaneous/Language.h +++ b/src/server/game/Miscellaneous/Language.h @@ -404,8 +404,8 @@ enum TrinityStrings LANG_BANINFO_HISTORYENTRY = 418, LANG_BANINFO_INFINITE = 419, LANG_BANINFO_NEVER = 420, - LANG_BANINFO_YES = 421, - LANG_BANINFO_NO = 422, + LANG_YES = 421, + LANG_NO = 422, LANG_BANINFO_IPENTRY = 423, LANG_BANLIST_NOIP = 424, @@ -1014,7 +1014,7 @@ enum TrinityStrings LANG_BG_AV_START_TWO_MINUTES = 1333, // FREE IDS 1334-1999 - // Ticket Strings 2000-2029 + // Ticket Strings 2000-2030 LANG_COMMAND_TICKETNEW = 2000, LANG_COMMAND_TICKETUPDATED = 2001, LANG_COMMAND_TICKETPLAYERABANDON = 2002, @@ -1045,6 +1045,7 @@ enum TrinityStrings LANG_COMMAND_TICKETPENDING = 2027, LANG_COMMAND_TICKETRESET = 2028, LANG_COMMAND_TICKETLISTRESPONSE = 2029, + LANG_COMMAND_TICKETCOMPLETED = 2030, // Trinity strings 5000-9999 LANG_COMMAND_FREEZE = 5000, @@ -1078,16 +1079,37 @@ enum TrinityStrings LANG_GOINFO_NAME = 5027, LANG_GOINFO_LOOTID = 5028, LANG_COMMAND_LOOKUP_MAX_RESULTS = 5029, - // unused = 5030, + LANG_UNAUTHORIZED = 5030, LANG_NPCINFO_AIINFO = 5031, LANG_COMMAND_NO_BATTLEGROUND_FOUND = 5032, LANG_COMMAND_NO_ACHIEVEMENT_CRITERIA_FOUND = 5033, LANG_COMMAND_NO_OUTDOOR_PVP_FORUND = 5034, - // unused = 5035, + LANG_NO_REASON = 5035, LANG_NPCINFO_EQUIPMENT = 5036, LANG_NPCINFO_MECHANIC_IMMUNE = 5037, LANG_NPCINFO_UNIT_FIELD_FLAGS = 5038, - // Room for more Trinity strings 5039-9999 + LANG_CONSOLE = 5039, + LANG_CHARACTER = 5040, + LANG_PERMANENTLY = 5041, + LANG_GPS_POSITION_OUTDOORS = 5042, + LANG_GPS_POSITION_INDOORS = 5043, + LANG_GPS_NO_VMAP = 5044, + + // Instance commands + LANG_COMMAND_LIST_BIND_INFO = 5045, + LANG_COMMAND_LIST_BIND_PLAYER_BINDS = 5046, + LANG_COMMAND_LIST_BIND_GROUP_BINDS = 5047, + LANG_COMMAND_INST_UNBIND_UNBINDING = 5048, + LANG_COMMAND_INST_UNBIND_UNBOUND = 5049, + LANG_COMMAND_INST_STAT_LOADED_INST = 5050, + LANG_COMMAND_INST_STAT_PLAYERS_IN = 5051, + LANG_COMMAND_INST_STAT_SAVES = 5052, + LANG_COMMAND_INST_STAT_PLAYERSBOUND = 5053, + LANG_COMMAND_INST_STAT_GROUPSBOUND = 5054, + LANG_NOT_DUNGEON = 5055, // Map is not a dungeon. + LANG_NO_INSTANCE_DATA = 5056, // Map has no instance data. + + // Room for more Trinity strings 5057-9999 // Level requirement notifications LANG_SAY_REQ = 6604, diff --git a/src/server/game/Miscellaneous/SharedDefines.h b/src/server/game/Miscellaneous/SharedDefines.h index 5309229b0fc..0e6966e6678 100644 --- a/src/server/game/Miscellaneous/SharedDefines.h +++ b/src/server/game/Miscellaneous/SharedDefines.h @@ -2586,7 +2586,7 @@ enum CreatureTypeFlags CREATURE_TYPEFLAGS_DEAD_INTERACT = 0x00000080, // Player can interact with the creature if its dead (not player dead) CREATURE_TYPEFLAGS_HERBLOOT = 0x00000100, // Can be looted by herbalist CREATURE_TYPEFLAGS_MININGLOOT = 0x00000200, // Can be looted by miner - CREATURE_TYPEFLAGS_UNK10 = 0x00000400, + CREATURE_TYPEFLAGS_DONT_LOG_DEATH = 0x00000400, // Death event will not show up in combat log CREATURE_TYPEFLAGS_MOUNTED_COMBAT = 0x00000800, // Creature can remain mounted when entering combat CREATURE_TYPEFLAGS_AID_PLAYERS = 0x00001000, // ? Can aid any player in combat if in range? CREATURE_TYPEFLAGS_UNK13 = 0x00002000, diff --git a/src/server/game/Spells/Auras/SpellAuras.cpp b/src/server/game/Spells/Auras/SpellAuras.cpp index 07cfa80f297..5bc2c41b6ce 100644 --- a/src/server/game/Spells/Auras/SpellAuras.cpp +++ b/src/server/game/Spells/Auras/SpellAuras.cpp @@ -35,6 +35,7 @@ #include "ScriptMgr.h" #include "SpellScript.h" #include "Vehicle.h" +#include "Config.h" AuraApplication::AuraApplication(Unit* target, Unit* caster, Aura* aura, uint8 effMask): _target(target), _base(aura), _removeMode(AURA_REMOVE_NONE), _slot(MAX_AURAS), @@ -1785,6 +1786,15 @@ bool Aura::CanStackWith(Aura const* existingAura) const return true; } + // Check for custom server setting to allow tracking both Herbs and Minerals + // Note: The following are client limitations and cannot be coded for: + // * The minimap tracking icon will display whichever skill is activated second + // * The minimap tracking list will only show a check mark next to the last skill activated + // Sometimes this bugs out and doesn't switch the check mark. It has no effect on the actual tracking though. + // * The minimap dots are yellow for both resources + if (m_spellInfo->HasAura(SPELL_AURA_TRACK_RESOURCES) && existingSpellInfo->HasAura(SPELL_AURA_TRACK_RESOURCES)) + return sWorld->getBoolConfig(CONFIG_ALLOW_TRACK_BOTH_RESOURCES); + // check spell specific stack rules if (m_spellInfo->IsAuraExclusiveBySpecificWith(existingSpellInfo) || (sameCaster && m_spellInfo->IsAuraExclusiveBySpecificPerCasterWith(existingSpellInfo))) diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp index de6effb8b14..bb68010ca12 100644 --- a/src/server/game/Spells/Spell.cpp +++ b/src/server/game/Spells/Spell.cpp @@ -6449,7 +6449,7 @@ bool Spell::CheckEffectTarget(Unit const* target, uint32 eff, Position const* lo // 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; diff --git a/src/server/game/Spells/SpellMgr.cpp b/src/server/game/Spells/SpellMgr.cpp index 3e835f8dd91..a5355c62f2c 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/Tickets/TicketMgr.cpp b/src/server/game/Tickets/TicketMgr.cpp index 71d51153b4c..d1f45ba88bf 100644 --- a/src/server/game/Tickets/TicketMgr.cpp +++ b/src/server/game/Tickets/TicketMgr.cpp @@ -179,7 +179,7 @@ std::string GmTicket::FormatMessageString(ChatHandler& handler, bool detailed) c return ss.str(); } -std::string GmTicket::FormatMessageString(ChatHandler& handler, const char* szClosedName, const char* szAssignedToName, const char* szUnassignedName, const char* szDeletedName) const +std::string GmTicket::FormatMessageString(ChatHandler& handler, const char* szClosedName, const char* szAssignedToName, const char* szUnassignedName, const char* szDeletedName, const char* szCompletedName) const { std::stringstream ss; ss << handler.PGetParseString(LANG_COMMAND_TICKETLISTGUID, _id); @@ -192,6 +192,8 @@ std::string GmTicket::FormatMessageString(ChatHandler& handler, const char* szCl ss << handler.PGetParseString(LANG_COMMAND_TICKETLISTUNASSIGNED, szUnassignedName); if (szDeletedName) ss << handler.PGetParseString(LANG_COMMAND_TICKETDELETED, szDeletedName); + if (szCompletedName) + ss << handler.PGetParseString(LANG_COMMAND_TICKETCOMPLETED, szCompletedName); return ss.str(); } diff --git a/src/server/game/Tickets/TicketMgr.h b/src/server/game/Tickets/TicketMgr.h index 5ad44365e7f..8b1c8fbc0f9 100644 --- a/src/server/game/Tickets/TicketMgr.h +++ b/src/server/game/Tickets/TicketMgr.h @@ -142,7 +142,7 @@ public: void TeleportTo(Player* player) const; std::string FormatMessageString(ChatHandler& handler, bool detailed = false) const; - std::string FormatMessageString(ChatHandler& handler, const char* szClosedName, const char* szAssignedToName, const char* szUnassignedName, const char* szDeletedName) const; + std::string FormatMessageString(ChatHandler& handler, const char* szClosedName, const char* szAssignedToName, const char* szUnassignedName, const char* szDeletedName, const char* szCompletedName) const; void SetChatLog(std::list<uint32> time, std::string const& log); std::string const& GetChatLog() const { return _chatLog; } diff --git a/src/server/game/World/World.cpp b/src/server/game/World/World.cpp index 79dc565487d..5c65055f3c0 100644 --- a/src/server/game/World/World.cpp +++ b/src/server/game/World/World.cpp @@ -1169,6 +1169,7 @@ void World::LoadConfigSettings(bool reload) if (m_int_configs[CONFIG_PVP_TOKEN_COUNT] < 1) m_int_configs[CONFIG_PVP_TOKEN_COUNT] = 1; + m_bool_configs[CONFIG_ALLOW_TRACK_BOTH_RESOURCES] = sConfigMgr->GetBoolDefault("AllowTrackBothResources", false); m_bool_configs[CONFIG_NO_RESET_TALENT_COST] = sConfigMgr->GetBoolDefault("NoResetTalentsCost", false); m_bool_configs[CONFIG_SHOW_KICK_IN_WORLD] = sConfigMgr->GetBoolDefault("ShowKickInWorld", false); m_bool_configs[CONFIG_SHOW_MUTE_IN_WORLD] = sConfigMgr->GetBoolDefault("ShowMuteInWorld", false); diff --git a/src/server/game/World/World.h b/src/server/game/World/World.h index 8a36a0af71a..05bfcc21462 100644 --- a/src/server/game/World/World.h +++ b/src/server/game/World/World.h @@ -156,6 +156,7 @@ enum WorldBoolConfigs CONFIG_STATS_LIMITS_ENABLE, CONFIG_INSTANCES_RESET_ANNOUNCE, CONFIG_IP_BASED_ACTION_LOGGING, + CONFIG_ALLOW_TRACK_BOTH_RESOURCES, BOOL_CONFIG_VALUE_COUNT }; diff --git a/src/server/scripts/Commands/cs_ban.cpp b/src/server/scripts/Commands/cs_ban.cpp index a90bbd69e24..6143a4ca344 100644 --- a/src/server/scripts/Commands/cs_ban.cpp +++ b/src/server/scripts/Commands/cs_ban.cpp @@ -287,7 +287,7 @@ public: bool permanent = (fields[1].GetUInt64() == uint64(0)); std::string banTime = permanent ? handler->GetTrinityString(LANG_BANINFO_INFINITE) : secsToTimeString(fields[1].GetUInt64(), true); handler->PSendSysMessage(LANG_BANINFO_HISTORYENTRY, - fields[0].GetCString(), banTime.c_str(), active ? handler->GetTrinityString(LANG_BANINFO_YES) : handler->GetTrinityString(LANG_BANINFO_NO), fields[4].GetCString(), fields[5].GetCString()); + fields[0].GetCString(), banTime.c_str(), active ? handler->GetTrinityString(LANG_YES) : handler->GetTrinityString(LANG_NO), fields[4].GetCString(), fields[5].GetCString()); } while (result->NextRow()); @@ -340,7 +340,7 @@ public: bool permanent = (fields[1].GetUInt32() == uint32(0)); std::string banTime = permanent ? handler->GetTrinityString(LANG_BANINFO_INFINITE) : secsToTimeString(fields[1].GetUInt32(), true); handler->PSendSysMessage(LANG_BANINFO_HISTORYENTRY, - fields[0].GetCString(), banTime.c_str(), active ? handler->GetTrinityString(LANG_BANINFO_YES) : handler->GetTrinityString(LANG_BANINFO_NO), fields[4].GetCString(), fields[5].GetCString()); + fields[0].GetCString(), banTime.c_str(), active ? handler->GetTrinityString(LANG_YES) : handler->GetTrinityString(LANG_NO), fields[4].GetCString(), fields[5].GetCString()); } while (result->NextRow()); diff --git a/src/server/scripts/Commands/cs_instance.cpp b/src/server/scripts/Commands/cs_instance.cpp index b8d69c250bb..464d58ad908 100644 --- a/src/server/scripts/Commands/cs_instance.cpp +++ b/src/server/scripts/Commands/cs_instance.cpp @@ -29,6 +29,7 @@ EndScriptData */ #include "InstanceScript.h" #include "MapManager.h" #include "Player.h" +#include "Language.h" class instance_commandscript : public CommandScript { @@ -81,11 +82,11 @@ public: { InstanceSave* save = itr->second.save; std::string timeleft = GetTimeString(save->GetResetTime() - time(NULL)); - handler->PSendSysMessage("map: %d inst: %d perm: %s diff: %d canReset: %s TTR: %s", itr->first, save->GetInstanceId(), itr->second.perm ? "yes" : "no", save->GetDifficulty(), save->CanReset() ? "yes" : "no", timeleft.c_str()); + handler->PSendSysMessage(LANG_COMMAND_LIST_BIND_INFO, itr->first, save->GetInstanceId(), itr->second.perm ? "yes" : "no", save->GetDifficulty(), save->CanReset() ? "yes" : "no", timeleft.c_str()); counter++; } } - handler->PSendSysMessage("player binds: %d", counter); + handler->PSendSysMessage(LANG_COMMAND_LIST_BIND_PLAYER_BINDS, counter); counter = 0; if (Group* group = player->GetGroup()) @@ -97,12 +98,12 @@ public: { InstanceSave* save = itr->second.save; std::string timeleft = GetTimeString(save->GetResetTime() - time(NULL)); - handler->PSendSysMessage("map: %d inst: %d perm: %s diff: %d canReset: %s TTR: %s", itr->first, save->GetInstanceId(), itr->second.perm ? "yes" : "no", save->GetDifficulty(), save->CanReset() ? "yes" : "no", timeleft.c_str()); + handler->PSendSysMessage(LANG_COMMAND_LIST_BIND_INFO, itr->first, save->GetInstanceId(), itr->second.perm ? "yes" : "no", save->GetDifficulty(), save->CanReset() ? "yes" : "no", timeleft.c_str()); counter++; } } } - handler->PSendSysMessage("group binds: %d", counter); + handler->PSendSysMessage(LANG_COMMAND_LIST_BIND_GROUP_BINDS, counter); return true; } @@ -140,7 +141,7 @@ public: if (itr->first != player->GetMapId() && (!MapId || MapId == itr->first) && (diff == -1 || diff == save->GetDifficulty())) { std::string timeleft = GetTimeString(save->GetResetTime() - time(NULL)); - handler->PSendSysMessage("unbinding map: %d inst: %d perm: %s diff: %d canReset: %s TTR: %s", itr->first, save->GetInstanceId(), itr->second.perm ? "yes" : "no", save->GetDifficulty(), save->CanReset() ? "yes" : "no", timeleft.c_str()); + handler->PSendSysMessage(LANG_COMMAND_INST_UNBIND_UNBINDING, itr->first, save->GetInstanceId(), itr->second.perm ? "yes" : "no", save->GetDifficulty(), save->CanReset() ? "yes" : "no", timeleft.c_str()); player->UnbindInstance(itr, Difficulty(i)); counter++; } @@ -148,18 +149,18 @@ public: ++itr; } } - handler->PSendSysMessage("instances unbound: %d", counter); + handler->PSendSysMessage(LANG_COMMAND_INST_UNBIND_UNBOUND, counter); return true; } static bool HandleInstanceStatsCommand(ChatHandler* handler, char const* /*args*/) { - handler->PSendSysMessage("instances loaded: %d", sMapMgr->GetNumInstances()); - handler->PSendSysMessage("players in instances: %d", sMapMgr->GetNumPlayersInInstances()); - handler->PSendSysMessage("instance saves: %d", sInstanceSaveMgr->GetNumInstanceSaves()); - handler->PSendSysMessage("players bound: %d", sInstanceSaveMgr->GetNumBoundPlayersTotal()); - handler->PSendSysMessage("groups bound: %d", sInstanceSaveMgr->GetNumBoundGroupsTotal()); + handler->PSendSysMessage(LANG_COMMAND_INST_STAT_LOADED_INST, sMapMgr->GetNumInstances()); + handler->PSendSysMessage(LANG_COMMAND_INST_STAT_PLAYERS_IN, sMapMgr->GetNumPlayersInInstances()); + handler->PSendSysMessage(LANG_COMMAND_INST_STAT_SAVES, sInstanceSaveMgr->GetNumInstanceSaves()); + handler->PSendSysMessage(LANG_COMMAND_INST_STAT_PLAYERSBOUND, sInstanceSaveMgr->GetNumBoundPlayersTotal()); + handler->PSendSysMessage(LANG_COMMAND_INST_STAT_GROUPSBOUND, sInstanceSaveMgr->GetNumBoundGroupsTotal()); return true; } @@ -170,14 +171,14 @@ public: Map* map = player->GetMap(); if (!map->IsDungeon()) { - handler->PSendSysMessage("Map is not a dungeon."); + handler->PSendSysMessage(LANG_NOT_DUNGEON); handler->SetSentErrorMessage(true); return false; } if (!((InstanceMap*)map)->GetInstanceScript()) { - handler->PSendSysMessage("Map has no instance data."); + handler->PSendSysMessage(LANG_NO_INSTANCE_DATA); handler->SetSentErrorMessage(true); return false; } diff --git a/src/server/scripts/Commands/cs_misc.cpp b/src/server/scripts/Commands/cs_misc.cpp index 9cb7173556a..80b7710cd21 100644 --- a/src/server/scripts/Commands/cs_misc.cpp +++ b/src/server/scripts/Commands/cs_misc.cpp @@ -192,17 +192,17 @@ public: if (haveVMap) { if (map->IsOutdoors(object->GetPositionX(), object->GetPositionY(), object->GetPositionZ())) - handler->PSendSysMessage("You are outdoors"); + handler->PSendSysMessage(LANG_GPS_POSITION_OUTDOORS); else - handler->PSendSysMessage("You are indoors"); + handler->PSendSysMessage(LANG_GPS_POSITION_INDOORS); } else - handler->PSendSysMessage("no VMAP available for area info"); + handler->PSendSysMessage(LANG_GPS_NO_VMAP); handler->PSendSysMessage(LANG_MAP_POSITION, - mapId, (mapEntry ? mapEntry->name[handler->GetSessionDbcLocale()] : "<unknown>"), - zoneId, (zoneEntry ? zoneEntry->area_name[handler->GetSessionDbcLocale()] : "<unknown>"), - areaId, (areaEntry ? areaEntry->area_name[handler->GetSessionDbcLocale()] : "<unknown>"), + mapId, (mapEntry ? mapEntry->name[handler->GetSessionDbcLocale()] : handler->GetTrinityString(LANG_UNKNOWN)), + zoneId, (zoneEntry ? zoneEntry->area_name[handler->GetSessionDbcLocale()] : handler->GetTrinityString(LANG_UNKNOWN)), + areaId, (areaEntry ? areaEntry->area_name[handler->GetSessionDbcLocale()] : handler->GetTrinityString(LANG_UNKNOWN)), object->GetPhaseMask(), object->GetPositionX(), object->GetPositionY(), object->GetPositionZ(), object->GetOrientation(), cell.GridX(), cell.GridY(), cell.CellX(), cell.CellY(), object->GetInstanceId(), @@ -808,7 +808,7 @@ public: if (handler->HasLowerSecurity(target, 0)) return false; - std::string kickReasonStr = "No reason"; + std::string kickReasonStr = handler->GetTrinityString(LANG_NO_REASON); if (*args != '\0') { char const* kickReason = strtok(NULL, "\r"); @@ -1441,22 +1441,22 @@ public: std::string lastLogin = handler->GetTrinityString(LANG_ERROR); uint32 failedLogins = 0; uint32 latency = 0; - std::string OS = "None"; + std::string OS = handler->GetTrinityString(LANG_UNKNOWN); // Mute data print variables int64 muteTime = -1; - std::string muteReason = "unknown"; - std::string muteBy = "unknown"; + std::string muteReason = handler->GetTrinityString(LANG_NO_REASON); + std::string muteBy = handler->GetTrinityString(LANG_UNKNOWN); // Ban data print variables int64 banTime = -1; - std::string banType = "None"; - std::string banReason = "Unknown"; - std::string bannedBy = "Unknown"; + std::string banType = handler->GetTrinityString(LANG_UNKNOWN); + std::string banReason = handler->GetTrinityString(LANG_NO_REASON); + std::string bannedBy = handler->GetTrinityString(LANG_UNKNOWN); // Character data print variables uint8 raceid, classid = 0; //RACE_NONE, CLASS_NONE - std::string raceStr, classStr = "None"; + std::string raceStr, classStr = handler->GetTrinityString(LANG_UNKNOWN); uint8 gender = 0; int8 locale = handler->GetSessionDbcLocale(); uint32 totalPlayerTime = 0; @@ -1470,8 +1470,8 @@ public: uint32 mapId; uint32 areaId; uint32 phase = 0; - std::string areaName = "<unknown>"; - std::string zoneName = "<unknown>"; + std::string areaName = handler->GetTrinityString(LANG_UNKNOWN); + std::string zoneName = handler->GetTrinityString(LANG_UNKNOWN); // Guild data print variables defined so that they exist, but are not necessarily used uint32 guildId = 0; @@ -1499,7 +1499,7 @@ public: muteTime = target->GetSession()->m_muteTime; mapId = target->GetMapId(); areaId = target->GetAreaId(); - alive = target->IsAlive() ? "Yes" : "No"; + alive = target->IsAlive() ? handler->GetTrinityString(LANG_YES) : handler->GetTrinityString(LANG_NO); gender = target->getGender(); phase = target->GetPhaseMask(); } @@ -1532,9 +1532,9 @@ public: uint32 playerFlags = fields[10].GetUInt32(); if (!health || playerFlags & PLAYER_FLAGS_GHOST) - alive = "No"; + alive = handler->GetTrinityString(LANG_NO); else - alive = "Yes"; + alive = handler->GetTrinityString(LANG_YES); } // Query the prepared statement for login data @@ -1574,9 +1574,10 @@ public: } else { - eMail = "Unauthorized"; - lastIp = "Unauthorized"; - lastLogin = "Unauthorized"; + eMail = handler->GetTrinityString(LANG_UNAUTHORIZED); + regMail = handler->GetTrinityString(LANG_UNAUTHORIZED); + lastIp = handler->GetTrinityString(LANG_UNAUTHORIZED); + lastLogin = handler->GetTrinityString(LANG_UNAUTHORIZED); } muteTime = fields[6].GetUInt64(); muteReason = fields[7].GetString(); @@ -1595,7 +1596,7 @@ public: PreparedQueryResult result2 = LoginDatabase.Query(stmt2); if (!result2) { - banType = "Character"; + banType = handler->GetTrinityString(LANG_CHARACTER); stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_PINFO_BANS); stmt->setUInt32(0, lowguid); result2 = CharacterDatabase.Query(stmt); @@ -1652,7 +1653,7 @@ public: // Output III. LANG_PINFO_BANNED if ban exists and is applied if (banTime >= 0) - handler->PSendSysMessage(LANG_PINFO_BANNED, banType.c_str(), banReason.c_str(), banTime > 0 ? secsToTimeString(banTime - time(NULL), true).c_str() : "permanently", bannedBy.c_str()); + handler->PSendSysMessage(LANG_PINFO_BANNED, banType.c_str(), banReason.c_str(), banTime > 0 ? secsToTimeString(banTime - time(NULL), true).c_str() : handler->GetTrinityString(LANG_PERMANENTLY), bannedBy.c_str()); // Output IV. LANG_PINFO_MUTED if mute is applied if (muteTime > 0) @@ -1671,7 +1672,7 @@ public: handler->PSendSysMessage(LANG_PINFO_ACC_REGMAILS, regMail.c_str(), eMail.c_str()); // Output IX. LANG_PINFO_ACC_IP - handler->PSendSysMessage(LANG_PINFO_ACC_IP, lastIp.c_str(), locked ? "Yes" : "No"); + handler->PSendSysMessage(LANG_PINFO_ACC_IP, lastIp.c_str(), locked ? handler->GetTrinityString(LANG_YES) : handler->GetTrinityString(LANG_NO)); // Output X. LANG_PINFO_CHR_LEVEL if (level != sWorld->getIntConfig(CONFIG_MAX_PLAYER_LEVEL)) @@ -1710,7 +1711,7 @@ public: } if (target) - handler->PSendSysMessage(LANG_PINFO_CHR_MAP, map->name[locale], (!zoneName.empty() ? zoneName.c_str() : "<Unknown>"), (!areaName.empty() ? areaName.c_str() : "<Unknown>")); + handler->PSendSysMessage(LANG_PINFO_CHR_MAP, map->name[locale], (!zoneName.empty() ? zoneName.c_str() : handler->GetTrinityString(LANG_UNKNOWN)), (!areaName.empty() ? areaName.c_str() : handler->GetTrinityString(LANG_UNKNOWN))); // Output XVII. - XVIX. if they are not empty if (!guildName.empty()) @@ -1790,7 +1791,7 @@ public: return false; char const* muteReason = strtok(NULL, "\r"); - std::string muteReasonStr = "No reason"; + std::string muteReasonStr = handler->GetTrinityString(LANG_NO_REASON); if (muteReason != NULL) muteReasonStr = muteReason; @@ -1818,7 +1819,7 @@ public: if (handler->GetSession()) muteBy = handler->GetSession()->GetPlayerName(); else - muteBy = "Console"; + muteBy = handler->GetTrinityString(LANG_CONSOLE); if (target) { diff --git a/src/server/scripts/Commands/cs_server.cpp b/src/server/scripts/Commands/cs_server.cpp index 14a68d1fdae..74a947e42e4 100644 --- a/src/server/scripts/Commands/cs_server.cpp +++ b/src/server/scripts/Commands/cs_server.cpp @@ -288,7 +288,7 @@ public: return false; sWorld->SetRecordDiffInterval(newTime); - printf("Record diff every %u ms\n", newTime); + printf("Record diff every %i ms\n", newTime); return true; } @@ -316,6 +316,9 @@ private: if (!*args) return false; + if (strlen(args) > 255) + return false; + // #delay [#exit_code] [reason] char* delayStr = strtok((char*)args, " "); if (!delayStr || !isNumeric(delayStr)) @@ -323,10 +326,7 @@ private: char* exitCodeStr = nullptr; - if (strlen(args) > 255) - return false; - - char reason[255] = { 0 }; + char reason[256] = { 0 }; while (char* nextToken = strtok(nullptr, " ")) { @@ -335,8 +335,11 @@ private: else { strcat(reason, nextToken); - strcat(reason, " "); - strcat(reason, strtok(nullptr, "\0")); + if (char* remainingTokens = strtok(nullptr, "\0")) + { + strcat(reason, " "); + strcat(reason, remainingTokens); + } break; } } diff --git a/src/server/scripts/Commands/cs_ticket.cpp b/src/server/scripts/Commands/cs_ticket.cpp index a2f1c75106b..cbf0ae51a82 100644 --- a/src/server/scripts/Commands/cs_ticket.cpp +++ b/src/server/scripts/Commands/cs_ticket.cpp @@ -126,7 +126,7 @@ public: ticket->SaveToDB(trans); sTicketMgr->UpdateLastChange(); - std::string msg = ticket->FormatMessageString(*handler, NULL, target.c_str(), NULL, NULL); + std::string msg = ticket->FormatMessageString(*handler, NULL, target.c_str(), NULL, NULL, NULL); handler->SendGlobalGMSysMessage(msg.c_str()); return true; } @@ -156,7 +156,7 @@ public: sTicketMgr->CloseTicket(ticket->GetId(), player ? player->GetGUID() : -1); sTicketMgr->UpdateLastChange(); - std::string msg = ticket->FormatMessageString(*handler, player ? player->GetName().c_str() : "Console", NULL, NULL, NULL); + std::string msg = ticket->FormatMessageString(*handler, player ? player->GetName().c_str() : "Console", NULL, NULL, NULL, NULL); handler->SendGlobalGMSysMessage(msg.c_str()); // Inform player, who submitted this ticket, that it is closed @@ -205,7 +205,7 @@ public: ticket->SaveToDB(trans); sTicketMgr->UpdateLastChange(); - std::string msg = ticket->FormatMessageString(*handler, NULL, ticket->GetAssignedToName().c_str(), NULL, NULL); + std::string msg = ticket->FormatMessageString(*handler, NULL, ticket->GetAssignedToName().c_str(), NULL, NULL, NULL); msg += handler->PGetParseString(LANG_COMMAND_TICKETLISTADDCOMMENT, player ? player->GetName().c_str() : "Console", comment); handler->SendGlobalGMSysMessage(msg.c_str()); @@ -239,6 +239,9 @@ public: ticket->SetCompleted(); ticket->SaveToDB(trans); + std::string msg = ticket->FormatMessageString(*handler, NULL, NULL, + NULL, NULL, handler->GetSession() ? handler->GetSession()->GetPlayer()->GetName().c_str() : "Console"); + handler->SendGlobalGMSysMessage(msg.c_str()); sTicketMgr->UpdateLastChange(); return true; } @@ -262,7 +265,7 @@ public: return true; } - std::string msg = ticket->FormatMessageString(*handler, NULL, NULL, NULL, handler->GetSession() ? handler->GetSession()->GetPlayer()->GetName().c_str() : "Console"); + std::string msg = ticket->FormatMessageString(*handler, NULL, NULL, NULL, handler->GetSession() ? handler->GetSession()->GetPlayer()->GetName().c_str() : "Console", NULL); handler->SendGlobalGMSysMessage(msg.c_str()); sTicketMgr->RemoveTicket(ticket->GetId()); @@ -394,7 +397,7 @@ public: sTicketMgr->UpdateLastChange(); std::string msg = ticket->FormatMessageString(*handler, NULL, assignedTo.c_str(), - handler->GetSession() ? handler->GetSession()->GetPlayer()->GetName().c_str() : "Console", NULL); + handler->GetSession() ? handler->GetSession()->GetPlayer()->GetName().c_str() : "Console", NULL, NULL); handler->SendGlobalGMSysMessage(msg.c_str()); return true; diff --git a/src/server/scripts/EasternKingdoms/AlteracValley/boss_balinda.cpp b/src/server/scripts/EasternKingdoms/AlteracValley/boss_balinda.cpp index 8bc969e9020..ca46ff36079 100644 --- a/src/server/scripts/EasternKingdoms/AlteracValley/boss_balinda.cpp +++ b/src/server/scripts/EasternKingdoms/AlteracValley/boss_balinda.cpp @@ -23,19 +23,16 @@ enum Spells SPELL_ARCANE_EXPLOSION = 46608, SPELL_CONE_OF_COLD = 38384, SPELL_FIREBALL = 46988, - SPELL_FROSTBOLT = 46987 + SPELL_FROSTBOLT = 46987, + SPELL_SUMMON_WATER_ELEMENTAL = 45067, + SPELL_ICEBLOCK = 46604 }; -enum Yells +enum Texts { - YELL_AGGRO = 0, - YELL_EVADE = 1, - YELL_SALVATION = 2, -}; - -enum Creatures -{ - NPC_WATER_ELEMENTAL = 25040 + SAY_AGGRO = 0, + SAY_EVADE = 1, + SAY_SALVATION = 2, }; enum Action @@ -43,64 +40,15 @@ enum Action ACTION_BUFF_YELL = -30001 // shared from Battleground }; -enum WaterElementalSpells +enum Events { - SPELL_WATERBOLT = 46983 -}; - -class npc_water_elemental : public CreatureScript -{ -public: - npc_water_elemental() : CreatureScript("npc_water_elemental") { } - - struct npc_water_elementalAI : public ScriptedAI - { - npc_water_elementalAI(Creature* creature) : ScriptedAI(creature) - { - waterBoltTimer = 3 * IN_MILLISECONDS; - resetTimer = 5 * IN_MILLISECONDS; - balindaGUID = 0; - } - - uint32 waterBoltTimer; - uint64 balindaGUID; - uint32 resetTimer; - - void Reset() override - { - waterBoltTimer = 3 * IN_MILLISECONDS; - resetTimer = 5 * IN_MILLISECONDS; - balindaGUID = 0; - } - - void UpdateAI(uint32 diff) override - { - if (!UpdateVictim()) - return; - - if (waterBoltTimer < diff) - { - DoCastVictim(SPELL_WATERBOLT); - waterBoltTimer = 5 * IN_MILLISECONDS; - } else waterBoltTimer -= diff; - - // check if creature is not outside of building - if (resetTimer < diff) - { - if (Creature* pBalinda = ObjectAccessor::GetCreature(*me, balindaGUID)) - if (me->GetDistance2d(pBalinda->GetHomePosition().GetPositionX(), pBalinda->GetHomePosition().GetPositionY()) > 50) - EnterEvadeMode(); - resetTimer = 5 * IN_MILLISECONDS; - } else resetTimer -= diff; - - DoMeleeAttackIfReady(); - } - }; - - CreatureAI* GetAI(Creature* creature) const override - { - return new npc_water_elementalAI(creature); - } + // Balinda + EVENT_ARCANE_EXPLOSION = 1, + EVENT_CONE_OF_COLD, + EVENT_FIREBOLT, + EVENT_FROSTBOLT, + EVENT_SUMMON_WATER_ELEMENTAL, + EVENT_CHECK_RESET, // Checks if Balinda or the Water Elemental are outside of building. }; class boss_balinda : public CreatureScript @@ -117,23 +65,10 @@ public: 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; + WaterElementalGUID = 0; + HasCastIceblock = false; } - uint32 arcaneExplosionTimer; - uint32 coneOfColdTimer; - uint32 fireBoltTimer; - uint32 frostboltTimer; - uint32 resetTimer; - uint32 waterElementalTimer; - - SummonList summons; - void Reset() override { Initialize(); @@ -143,22 +78,28 @@ public: void EnterCombat(Unit* /*who*/) override { - Talk(YELL_AGGRO); - } - - void JustRespawned() override - { - Reset(); + Talk(SAY_AGGRO); + events.ScheduleEvent(EVENT_ARCANE_EXPLOSION, urand(5 * IN_MILLISECONDS, 15 * IN_MILLISECONDS)); + events.ScheduleEvent(EVENT_CONE_OF_COLD, 8 * IN_MILLISECONDS); + events.ScheduleEvent(EVENT_FIREBOLT, 1 * IN_MILLISECONDS); + events.ScheduleEvent(EVENT_FROSTBOLT, 4 * IN_MILLISECONDS); + events.ScheduleEvent(EVENT_SUMMON_WATER_ELEMENTAL, 3 * IN_MILLISECONDS); + events.ScheduleEvent(EVENT_CHECK_RESET, 5 * IN_MILLISECONDS); } void JustSummoned(Creature* summoned) override { - ENSURE_AI(npc_water_elemental::npc_water_elementalAI, summoned->AI())->balindaGUID = me->GetGUID(); summoned->AI()->AttackStart(SelectTarget(SELECT_TARGET_RANDOM, 0, 50, true)); summoned->setFaction(me->getFaction()); + WaterElementalGUID = summoned->GetGUID(); summons.Summon(summoned); } + void SummonedCreatureDespawn(Creature* summoned) override + { + summons.Despawn(summoned); + } + void JustDied(Unit* /*killer*/) override { summons.DespawnAll(); @@ -167,7 +108,16 @@ public: void DoAction(int32 actionId) override { if (actionId == ACTION_BUFF_YELL) - Talk(YELL_AGGRO); + Talk(SAY_AGGRO); + } + + void DamageTaken(Unit* /*attacker*/, uint32& damage) override + { + if (me->HealthBelowPctDamaged(40, damage) && !HasCastIceblock) + { + DoCast(SPELL_ICEBLOCK); + HasCastIceblock = true; + } } void UpdateAI(uint32 diff) override @@ -175,50 +125,60 @@ public: if (!UpdateVictim()) return; - if (waterElementalTimer < diff) - { - if (summons.empty()) - me->SummonCreature(NPC_WATER_ELEMENTAL, 0, 0, 0, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 45 * IN_MILLISECONDS); - waterElementalTimer = 50 * IN_MILLISECONDS; - } else waterElementalTimer -= diff; - - if (arcaneExplosionTimer < diff) - { - DoCastVictim(SPELL_ARCANE_EXPLOSION); - arcaneExplosionTimer = urand(5 * IN_MILLISECONDS, 15 * IN_MILLISECONDS); - } else arcaneExplosionTimer -= diff; - - if (coneOfColdTimer < diff) - { - DoCastVictim(SPELL_CONE_OF_COLD); - coneOfColdTimer = urand(10 * IN_MILLISECONDS, 20 * IN_MILLISECONDS); - } else coneOfColdTimer -= diff; - - if (fireBoltTimer < diff) - { - DoCastVictim(SPELL_FIREBALL); - fireBoltTimer = urand(5 * IN_MILLISECONDS, 9 * IN_MILLISECONDS); - } else fireBoltTimer -= diff; + events.Update(diff); - if (frostboltTimer < diff) - { - DoCastVictim(SPELL_FROSTBOLT); - frostboltTimer = urand(4 * IN_MILLISECONDS, 12 * IN_MILLISECONDS); - } else frostboltTimer -= diff; + if (me->HasUnitState(UNIT_STATE_CASTING)) + return; - // check if creature is not outside of building - if (resetTimer < diff) + while (uint32 eventId = events.ExecuteEvent()) { - if (me->GetDistance2d(me->GetHomePosition().GetPositionX(), me->GetHomePosition().GetPositionY()) > 50) + switch (eventId) { - EnterEvadeMode(); - Talk(YELL_EVADE); + case EVENT_ARCANE_EXPLOSION: + DoCastVictim(SPELL_ARCANE_EXPLOSION); + events.ScheduleEvent(EVENT_ARCANE_EXPLOSION, urand(5 * IN_MILLISECONDS, 15 * IN_MILLISECONDS)); + break; + case EVENT_CONE_OF_COLD: + DoCastVictim(SPELL_CONE_OF_COLD); + events.ScheduleEvent(EVENT_CONE_OF_COLD, urand(10 * IN_MILLISECONDS, 20 * IN_MILLISECONDS)); + break; + case EVENT_FIREBOLT: + DoCastVictim(SPELL_FIREBALL); + events.ScheduleEvent(EVENT_FIREBOLT, urand(5 * IN_MILLISECONDS, 9 * IN_MILLISECONDS)); + break; + case EVENT_FROSTBOLT: + DoCastVictim(SPELL_FROSTBOLT); + events.ScheduleEvent(EVENT_FROSTBOLT, urand(4 * IN_MILLISECONDS, 12 * IN_MILLISECONDS)); + break; + case EVENT_SUMMON_WATER_ELEMENTAL: + if (summons.empty()) + DoCast(SPELL_SUMMON_WATER_ELEMENTAL); + events.ScheduleEvent(EVENT_SUMMON_WATER_ELEMENTAL, 50 * IN_MILLISECONDS); + break; + case EVENT_CHECK_RESET: + if (me->GetDistance2d(me->GetHomePosition().GetPositionX(), me->GetHomePosition().GetPositionY()) > 50) + { + EnterEvadeMode(); + Talk(SAY_EVADE); + } + if (Creature* elemental = ObjectAccessor::GetCreature(*me, WaterElementalGUID)) + if (elemental->GetDistance2d(me->GetHomePosition().GetPositionX(), me->GetHomePosition().GetPositionY()) > 50) + elemental->AI()->EnterEvadeMode(); + events.ScheduleEvent(EVENT_CHECK_RESET, 5 * IN_MILLISECONDS); + break; + default: + break; } - resetTimer = 5 * IN_MILLISECONDS; - } else resetTimer -= diff; + } DoMeleeAttackIfReady(); } + + private: + EventMap events; + SummonList summons; + uint64 WaterElementalGUID; + bool HasCastIceblock; }; CreatureAI* GetAI(Creature* creature) const override @@ -230,5 +190,4 @@ public: void AddSC_boss_balinda() { new boss_balinda; - new npc_water_elemental; } diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/blackrock_depths.h b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/blackrock_depths.h index ea3fd59490a..160c80fc4d1 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/blackrock_depths.h +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/blackrock_depths.h @@ -19,6 +19,8 @@ #ifndef DEF_BRD_H #define DEF_BRD_H +#define DataHeader "BRD" + enum FactionIds { FACTION_NEUTRAL = 734, diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/instance_blackrock_depths.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/instance_blackrock_depths.cpp index f51a2a95c81..67219a2990a 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/instance_blackrock_depths.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/instance_blackrock_depths.cpp @@ -117,6 +117,7 @@ public: void Initialize() override { + SetHeaders(DataHeader); memset(&encounter, 0, sizeof(encounter)); EmperorGUID = 0; diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/blackrock_spire.h b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/blackrock_spire.h index 2199e52129c..be8149fbdcc 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/blackrock_spire.h +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/blackrock_spire.h @@ -21,6 +21,7 @@ uint32 const EncounterCount = 23; #define BRSScriptName "instance_blackrock_spire" +#define DataHeader "BRS" enum DataTypes { diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/instance_blackrock_spire.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/instance_blackrock_spire.cpp index 555eac21c43..e95fb8da42e 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/instance_blackrock_spire.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/instance_blackrock_spire.cpp @@ -15,15 +15,14 @@ * with this program. If not, see <http://www.gnu.org/licenses/>. */ -#include "ObjectMgr.h" -#include "ScriptMgr.h" -#include "ObjectDefines.h" #include "Cell.h" #include "CellImpl.h" #include "GridNotifiers.h" #include "GridNotifiersImpl.h" #include "InstanceScript.h" +#include "Player.h" #include "ScriptedCreature.h" +#include "ScriptMgr.h" #include "blackrock_spire.h" //uint32 const DragonspireRunes[7] = { GO_HALL_RUNE_1, GO_HALL_RUNE_2, GO_HALL_RUNE_3, GO_HALL_RUNE_4, GO_HALL_RUNE_5, GO_HALL_RUNE_6, GO_HALL_RUNE_7 }; @@ -51,6 +50,7 @@ public: { instance_blackrock_spireMapScript(InstanceMap* map) : InstanceScript(map) { + SetHeaders(DataHeader); SetBossNumber(EncounterCount); HighlordOmokk = 0; ShadowHunterVoshgajin = 0; @@ -502,50 +502,6 @@ public: } } - std::string GetSaveData() override - { - OUT_SAVE_INST_DATA; - - std::ostringstream saveStream; - saveStream << "B S " << GetBossSaveData(); - - OUT_SAVE_INST_DATA_COMPLETE; - return saveStream.str(); - } - - void Load(const char* strIn) override - { - if (!strIn) - { - OUT_LOAD_INST_DATA_FAIL; - return; - } - - OUT_LOAD_INST_DATA(strIn); - - char dataHead1, dataHead2; - - std::istringstream loadStream(strIn); - loadStream >> dataHead1 >> dataHead2; - - if (dataHead1 == 'B' && dataHead2 == 'S') - { - for (uint8 i = 0; i < EncounterCount; ++i) - { - uint32 tmpState; - loadStream >> tmpState; - if (tmpState == IN_PROGRESS || tmpState > SPECIAL) - tmpState = NOT_STARTED; - - SetBossState(i, EncounterState(tmpState)); - } - } - else - OUT_LOAD_INST_DATA_FAIL; - - OUT_LOAD_INST_DATA_COMPLETE; - } - protected: EventMap Events; uint64 HighlordOmokk; diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/blackwing_lair.h b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/blackwing_lair.h index e07d1d987fc..1cf89a263ce 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/blackwing_lair.h +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/blackwing_lair.h @@ -21,6 +21,7 @@ uint32 const EncounterCount = 8; #define BRLScriptName "instance_blackwing_lair" +#define DataHeader "BWL" enum BWLEncounter { diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_chromaggus.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_chromaggus.cpp index 1a97f668558..9a6d0e9c224 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_chromaggus.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_chromaggus.cpp @@ -75,6 +75,9 @@ public: { Initialize(); + Breath1_Spell = 0; + Breath2_Spell = 0; + // 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 diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/instance_blackwing_lair.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/instance_blackwing_lair.cpp index be8bc34acf1..ae52e281c9d 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/instance_blackwing_lair.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/instance_blackwing_lair.cpp @@ -56,6 +56,7 @@ public: { instance_blackwing_lair_InstanceMapScript(Map* map) : InstanceScript(map) { + SetHeaders(DataHeader); // Razorgore EggCount = 0; EggEvent = 0; diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/instance_molten_core.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/instance_molten_core.cpp index 7dee91bfb6f..800b6bb0edc 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/instance_molten_core.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/instance_molten_core.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,19 +15,10 @@ * with this program. If not, see <http://www.gnu.org/licenses/>. */ -/* ScriptData -SDName: Instance_Molten_Core -SD%Complete: 0 -SDComment: Place Holder -SDCategory: Molten Core -EndScriptData */ - -#include "ObjectMgr.h" -#include "ScriptMgr.h" #include "InstanceScript.h" -#include "CreatureAI.h" +#include "ScriptedCreature.h" +#include "ScriptMgr.h" #include "molten_core.h" -#include "TemporarySummon.h" Position const SummonPositions[10] = { @@ -53,30 +43,19 @@ class instance_molten_core : public InstanceMapScript { instance_molten_core_InstanceMapScript(Map* map) : InstanceScript(map) { + SetHeaders(DataHeader); SetBossNumber(MAX_ENCOUNTER); _golemaggTheIncineratorGUID = 0; _majordomoExecutusGUID = 0; _cacheOfTheFirelordGUID = 0; - _executusSchedule = NULL; - _deadBossCount = 0; + _executusSchedule = false; _ragnarosAddDeaths = 0; - _isLoading = false; - _summonedExecutus = false; } - ~instance_molten_core_InstanceMapScript() - { - delete _executusSchedule; - } - - void OnPlayerEnter(Player* /*player*/) + void OnPlayerEnter(Player* /*player*/) override { if (_executusSchedule) - { - SummonMajordomoExecutus(*_executusSchedule); - delete _executusSchedule; - _executusSchedule = NULL; - } + SummonMajordomoExecutus(); } void OnCreatureCreate(Creature* creature) override @@ -141,19 +120,14 @@ class instance_molten_core : public InstanceMapScript return 0; } - bool SetBossState(uint32 bossId, EncounterState state) + bool SetBossState(uint32 bossId, EncounterState state) override { if (!InstanceScript::SetBossState(bossId, state)) return false; if (state == DONE && bossId < BOSS_MAJORDOMO_EXECUTUS) - ++_deadBossCount; - - if (_isLoading) - return true; - - if (_deadBossCount == 8) - SummonMajordomoExecutus(false); + if (CheckMajordomoExecutus()) + SummonMajordomoExecutus(); if (bossId == BOSS_MAJORDOMO_EXECUTUS && state == DONE) DoRespawnGameObject(_cacheOfTheFirelordGUID, 7 * DAY); @@ -161,13 +135,13 @@ class instance_molten_core : public InstanceMapScript return true; } - void SummonMajordomoExecutus(bool done) + void SummonMajordomoExecutus() { - if (_summonedExecutus) + _executusSchedule = false; + if (_majordomoExecutusGUID) return; - _summonedExecutus = true; - if (!done) + if (GetBossState(BOSS_MAJORDOMO_EXECUTUS) != DONE) { instance->SummonCreature(NPC_MAJORDOMO_EXECUTUS, SummonPositions[0]); instance->SummonCreature(NPC_FLAMEWAKER_HEALER, SummonPositions[1]); @@ -180,76 +154,33 @@ class instance_molten_core : public InstanceMapScript instance->SummonCreature(NPC_FLAMEWAKER_ELITE, SummonPositions[8]); } else if (TempSummon* summon = instance->SummonCreature(NPC_MAJORDOMO_EXECUTUS, RagnarosTelePos)) - summon->AI()->DoAction(ACTION_START_RAGNAROS_ALT); + summon->AI()->DoAction(ACTION_START_RAGNAROS_ALT); } - std::string GetSaveData() override + bool CheckMajordomoExecutus() const { - OUT_SAVE_INST_DATA; + if (GetBossState(BOSS_RAGNAROS) == DONE) + return false; - std::ostringstream saveStream; - saveStream << "M C " << GetBossSaveData(); + for (uint8 i = 0; i < BOSS_MAJORDOMO_EXECUTUS; ++i) + if (GetBossState(i) != DONE) + return false; - OUT_SAVE_INST_DATA_COMPLETE; - return saveStream.str(); + return true; } - void Load(char const* data) + void ReadSaveDataMore(std::istringstream& /*data*/) override { - if (!data) - { - OUT_LOAD_INST_DATA_FAIL; - return; - } - - _isLoading = true; - OUT_LOAD_INST_DATA(data); - - char dataHead1, dataHead2; - - std::istringstream loadStream(data); - loadStream >> dataHead1 >> dataHead2; - - if (dataHead1 == 'M' && dataHead2 == 'C') - { - EncounterState states[MAX_ENCOUNTER]; - uint8 executusCounter = 0; - - // need 2 loops to check spawning executus/ragnaros - for (uint8 i = 0; i < MAX_ENCOUNTER; ++i) - { - uint32 tmpState; - loadStream >> tmpState; - if (tmpState == IN_PROGRESS || tmpState > TO_BE_DECIDED) - tmpState = NOT_STARTED; - states[i] = EncounterState(tmpState); - - if (tmpState == DONE && i < BOSS_MAJORDOMO_EXECUTUS) - ++executusCounter; - } - - if (executusCounter >= 8 && states[BOSS_RAGNAROS] != DONE) - _executusSchedule = new bool(states[BOSS_MAJORDOMO_EXECUTUS] == DONE); - - for (uint8 i = 0; i < MAX_ENCOUNTER; ++i) - SetBossState(i, states[i]); - } - else - OUT_LOAD_INST_DATA_FAIL; - - OUT_LOAD_INST_DATA_COMPLETE; - _isLoading = false; + if (CheckMajordomoExecutus()) + _executusSchedule = true; } private: uint64 _golemaggTheIncineratorGUID; uint64 _majordomoExecutusGUID; uint64 _cacheOfTheFirelordGUID; - bool* _executusSchedule; - uint8 _deadBossCount; + bool _executusSchedule; uint8 _ragnarosAddDeaths; - bool _isLoading; - bool _summonedExecutus; }; InstanceScript* GetInstanceScript(InstanceMap* map) const override diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/molten_core.h b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/molten_core.h index 39d6cf40a8a..af0e0a89e45 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/molten_core.h +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/molten_core.h @@ -19,6 +19,8 @@ #ifndef DEF_MOLTEN_CORE_H #define DEF_MOLTEN_CORE_H +#define DataHeader "MC" + enum Encounters { BOSS_LUCIFRON = 0, diff --git a/src/server/scripts/EasternKingdoms/Deadmines/boss_mr_smite.cpp b/src/server/scripts/EasternKingdoms/Deadmines/boss_mr_smite.cpp index b0222413513..7338620a8b2 100644 --- a/src/server/scripts/EasternKingdoms/Deadmines/boss_mr_smite.cpp +++ b/src/server/scripts/EasternKingdoms/Deadmines/boss_mr_smite.cpp @@ -133,7 +133,7 @@ public: ++uiHealth; DoCastAOE(SPELL_SMITE_STOMP, false); SetCombatMovement(false); - if (GameObject* go = GameObject::GetGameObject(*me, instance->GetData64(DATA_SMITE_CHEST))) + if (GameObject* go = ObjectAccessor::GetGameObject(*me, instance->GetData64(DATA_SMITE_CHEST))) { me->GetMotionMaster()->Clear(); me->GetMotionMaster()->MovePoint(1, go->GetPositionX() - 3.0f, go->GetPositionY(), go->GetPositionZ()); diff --git a/src/server/scripts/EasternKingdoms/Deadmines/deadmines.h b/src/server/scripts/EasternKingdoms/Deadmines/deadmines.h index c3b09c76c68..b1ff0e03ff0 100644 --- a/src/server/scripts/EasternKingdoms/Deadmines/deadmines.h +++ b/src/server/scripts/EasternKingdoms/Deadmines/deadmines.h @@ -18,6 +18,8 @@ #ifndef DEF_DEADMINES_H #define DEF_DEADMINES_H +#define DataHeader "DM" + enum CannonState { CANNON_NOT_USED, diff --git a/src/server/scripts/EasternKingdoms/Deadmines/instance_deadmines.cpp b/src/server/scripts/EasternKingdoms/Deadmines/instance_deadmines.cpp index 050ef1eb642..c5f4f9cdbf9 100644 --- a/src/server/scripts/EasternKingdoms/Deadmines/instance_deadmines.cpp +++ b/src/server/scripts/EasternKingdoms/Deadmines/instance_deadmines.cpp @@ -74,6 +74,7 @@ class instance_deadmines : public InstanceMapScript void Initialize() override { + SetHeaders(DataHeader); FactoryDoorGUID = 0; IronCladDoorGUID = 0; DefiasCannonGUID = 0; diff --git a/src/server/scripts/EasternKingdoms/Gnomeregan/gnomeregan.cpp b/src/server/scripts/EasternKingdoms/Gnomeregan/gnomeregan.cpp index 220cf0c92b4..d009986651a 100644 --- a/src/server/scripts/EasternKingdoms/Gnomeregan/gnomeregan.cpp +++ b/src/server/scripts/EasternKingdoms/Gnomeregan/gnomeregan.cpp @@ -142,56 +142,48 @@ public: uiPhase = uiPhaseStep; } - void CaveDestruction(bool bBool) + void CaveDestruction(bool isRight) { if (GoSummonList.empty()) return; for (std::list<uint64>::const_iterator itr = GoSummonList.begin(); itr != GoSummonList.end(); ++itr) { - if (GameObject* go = GameObject::GetGameObject(*me, *itr)) - { - if (go) + if (GameObject* go = ObjectAccessor::GetGameObject(*me, *itr)) + { + if (Creature* trigger = go->SummonTrigger(go->GetPositionX(), go->GetPositionY(), go->GetPositionZ(), 0, 1)) { - if (Creature* trigger = go->SummonTrigger(go->GetPositionX(), go->GetPositionY(), go->GetPositionZ(), 0, 1)) - { - //visual effects are not working! - trigger->CastSpell(trigger, 11542, true); - trigger->CastSpell(trigger, 35470, true); - } - go->RemoveFromWorld(); - //go->CastSpell(me, 12158); makes all die?! + //visual effects are not working! + trigger->CastSpell(trigger, 11542, true); + trigger->CastSpell(trigger, 35470, true); } - } + go->RemoveFromWorld(); + //go->CastSpell(me, 12158); makes all die?! + } } - if (bBool) - { - if (GameObject* go = GameObject::GetGameObject(*me, instance->GetData64(DATA_GO_CAVE_IN_RIGHT))) - instance->HandleGameObject(0, false, go); - }else - if (GameObject* go = GameObject::GetGameObject(*me, instance->GetData64(DATA_GO_CAVE_IN_LEFT))) - instance->HandleGameObject(0, false, go); + if (GameObject* go = ObjectAccessor::GetGameObject(*me, instance->GetData64(isRight ? DATA_GO_CAVE_IN_RIGHT : DATA_GO_CAVE_IN_LEFT))) + instance->HandleGameObject(0, false, go); } void SetInFace(bool isRight) { - if (GameObject* go = GameObject::GetGameObject(*me, instance->GetData64(isRight ? DATA_GO_CAVE_IN_RIGHT : DATA_GO_CAVE_IN_LEFT))) + if (GameObject* go = ObjectAccessor::GetGameObject(*me, instance->GetData64(isRight ? DATA_GO_CAVE_IN_RIGHT : DATA_GO_CAVE_IN_LEFT))) me->SetFacingToObject(go); } void RestoreAll() { - if (GameObject* go = GameObject::GetGameObject(*me, instance->GetData64(DATA_GO_CAVE_IN_RIGHT))) + if (GameObject* go = ObjectAccessor::GetGameObject(*me, instance->GetData64(DATA_GO_CAVE_IN_RIGHT))) instance->HandleGameObject(0, false, go); - if (GameObject* go = GameObject::GetGameObject(*me, instance->GetData64(DATA_GO_CAVE_IN_LEFT))) + if (GameObject* go = ObjectAccessor::GetGameObject(*me, instance->GetData64(DATA_GO_CAVE_IN_LEFT))) instance->HandleGameObject(0, false, go); if (!GoSummonList.empty()) for (std::list<uint64>::const_iterator itr = GoSummonList.begin(); itr != GoSummonList.end(); ++itr) { - if (GameObject* go = GameObject::GetGameObject(*me, *itr)) + if (GameObject* go = ObjectAccessor::GetGameObject(*me, *itr)) go->RemoveFromWorld(); } @@ -406,7 +398,7 @@ public: SetInFace(true); Talk(SAY_BLASTMASTER_5); Summon(1); - if (GameObject* go = GameObject::GetGameObject(*me, instance->GetData64(DATA_GO_CAVE_IN_RIGHT))) + if (GameObject* go = ObjectAccessor::GetGameObject(*me, instance->GetData64(DATA_GO_CAVE_IN_RIGHT))) instance->HandleGameObject(0, true, go); NextStep(3000, true); break; @@ -452,7 +444,7 @@ public: case 16: Talk(SAY_BLASTMASTER_14); SetInFace(false); - if (GameObject* go = GameObject::GetGameObject(*me, instance->GetData64(DATA_GO_CAVE_IN_LEFT))) + if (GameObject* go = ObjectAccessor::GetGameObject(*me, instance->GetData64(DATA_GO_CAVE_IN_LEFT))) instance->HandleGameObject(0, true, go); NextStep(2000, true); break; diff --git a/src/server/scripts/EasternKingdoms/Gnomeregan/gnomeregan.h b/src/server/scripts/EasternKingdoms/Gnomeregan/gnomeregan.h index 096b8910d5a..adac26efff5 100644 --- a/src/server/scripts/EasternKingdoms/Gnomeregan/gnomeregan.h +++ b/src/server/scripts/EasternKingdoms/Gnomeregan/gnomeregan.h @@ -18,6 +18,8 @@ #ifndef DEF_GNOMEREGAN_H #define DEF_GNOMEREGAN_H +#define DataHeader "GNO" + enum GameObjectIds { GO_CAVE_IN_LEFT = 146085, diff --git a/src/server/scripts/EasternKingdoms/Gnomeregan/instance_gnomeregan.cpp b/src/server/scripts/EasternKingdoms/Gnomeregan/instance_gnomeregan.cpp index b35601fcc6c..f8e00fab682 100644 --- a/src/server/scripts/EasternKingdoms/Gnomeregan/instance_gnomeregan.cpp +++ b/src/server/scripts/EasternKingdoms/Gnomeregan/instance_gnomeregan.cpp @@ -36,6 +36,7 @@ public: { instance_gnomeregan_InstanceMapScript(Map* map) : InstanceScript(map) { + SetHeaders(DataHeader); } uint32 m_auiEncounter[MAX_ENCOUNTER]; diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_nightbane.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_nightbane.cpp index 9084a6b0371..7ce11653567 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/boss_nightbane.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_nightbane.cpp @@ -81,6 +81,9 @@ public: Initialize(); instance = creature->GetInstanceScript(); Intro = true; + RainBones = false; + Skeletons = false; + FlyTimer = 0; } void Initialize() diff --git a/src/server/scripts/EasternKingdoms/Karazhan/bosses_opera.cpp b/src/server/scripts/EasternKingdoms/Karazhan/bosses_opera.cpp index ce8223c90cf..7b51b61ba0a 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/bosses_opera.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/bosses_opera.cpp @@ -1068,6 +1068,7 @@ public: EntryYellTimer = 1000; AggroYellTimer = 10000; IsFakingDeath = false; + ResurrectTimer = 0; } void Initialize() diff --git a/src/server/scripts/EasternKingdoms/Karazhan/instance_karazhan.cpp b/src/server/scripts/EasternKingdoms/Karazhan/instance_karazhan.cpp index 3300e92869b..8f6d142e22b 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/instance_karazhan.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/instance_karazhan.cpp @@ -82,6 +82,7 @@ public: void Initialize() override { + SetHeaders(DataHeader); memset(&m_auiEncounter, 0, sizeof(m_auiEncounter)); // 1 - OZ, 2 - HOOD, 3 - RAJ, this never gets altered. diff --git a/src/server/scripts/EasternKingdoms/Karazhan/karazhan.h b/src/server/scripts/EasternKingdoms/Karazhan/karazhan.h index 3812e06b442..eec7e461e9b 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/karazhan.h +++ b/src/server/scripts/EasternKingdoms/Karazhan/karazhan.h @@ -19,6 +19,8 @@ #ifndef DEF_KARAZHAN_H #define DEF_KARAZHAN_H +#define DataHeader "KZ" + enum DataTypes { TYPE_ATTUMEN = 1, @@ -62,5 +64,4 @@ enum OperaEvents EVENT_RAJ = 3 }; -#define ERROR_INST_DATA(a) TC_LOG_ERROR("scripts", "Instance Data for Karazhan not set properly. Encounter for Creature Entry %u may not work properly.", a->GetEntry()); #endif diff --git a/src/server/scripts/EasternKingdoms/MagistersTerrace/instance_magisters_terrace.cpp b/src/server/scripts/EasternKingdoms/MagistersTerrace/instance_magisters_terrace.cpp index 65b3553fd87..01491c53f72 100644 --- a/src/server/scripts/EasternKingdoms/MagistersTerrace/instance_magisters_terrace.cpp +++ b/src/server/scripts/EasternKingdoms/MagistersTerrace/instance_magisters_terrace.cpp @@ -45,6 +45,7 @@ class instance_magisters_terrace : public InstanceMapScript { instance_magisters_terrace_InstanceMapScript(Map* map) : InstanceScript(map) { + SetHeaders(DataHeader); SetBossNumber(EncounterCount); LoadDoorData(doorData); @@ -161,48 +162,6 @@ class instance_magisters_terrace : public InstanceMapScript return true; } - std::string GetSaveData() override - { - OUT_SAVE_INST_DATA; - - std::ostringstream saveStream; - saveStream << "M T " << GetBossSaveData(); - - OUT_SAVE_INST_DATA_COMPLETE; - return saveStream.str(); - } - - void Load(const char* str) override - { - if (!str) - { - OUT_LOAD_INST_DATA_FAIL; - return; - } - - OUT_LOAD_INST_DATA(str); - - char dataHead1, dataHead2; - - std::istringstream loadStream(str); - loadStream >> dataHead1 >> dataHead2; - if (dataHead1 == 'M' && dataHead2 == 'T') - { - for (uint32 i = 0; i < EncounterCount; ++i) - { - uint32 tmpState; - loadStream >> tmpState; - if (tmpState == IN_PROGRESS || tmpState > SPECIAL) - tmpState = NOT_STARTED; - SetBossState(i, EncounterState(tmpState)); - } - } - else - OUT_LOAD_INST_DATA_FAIL; - - OUT_LOAD_INST_DATA_COMPLETE; - } - uint64 GetData64(uint32 type) const override { switch (type) diff --git a/src/server/scripts/EasternKingdoms/MagistersTerrace/magisters_terrace.h b/src/server/scripts/EasternKingdoms/MagistersTerrace/magisters_terrace.h index 8b8d7d5b875..142453c2502 100644 --- a/src/server/scripts/EasternKingdoms/MagistersTerrace/magisters_terrace.h +++ b/src/server/scripts/EasternKingdoms/MagistersTerrace/magisters_terrace.h @@ -19,6 +19,8 @@ #ifndef DEF_MAGISTERS_TERRACE_H #define DEF_MAGISTERS_TERRACE_H +#define DataHeader "MT" + uint32 const EncounterCount = 4; enum DataTypes diff --git a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp index 7355674963a..58ebef77425 100644 --- a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp +++ b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp @@ -412,7 +412,7 @@ class npc_eye_of_acherus : public CreatureScript { if (movementType == WAYPOINT_MOTION_TYPE && pointId == POINT_EYE_MOVE_END - 1) { - me->SetByteValue(UNIT_FIELD_BYTES_2, 0, SHEATH_STATE_MELEE); + me->SetByteValue(UNIT_FIELD_BYTES_2, 0, SHEATH_STATE_MELEE); me->RemoveAllAuras(); if (Player* owner = me->GetCharmerOrOwner()->ToPlayer()) diff --git a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter2.cpp b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter2.cpp index 08e3de1941a..ee624c4f6a5 100644 --- a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter2.cpp +++ b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter2.cpp @@ -389,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; @@ -397,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 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_headless_horseman.cpp b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp index cad46b84748..0733640f4c3 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,8 +388,31 @@ public: { boss_headless_horsemanAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); headGUID = 0; + PlayerGUID = 0; + id = 0; + whirlwind = 0; + wp_reached = false; + } + + 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; @@ -410,20 +441,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_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_interrogator_vishas.cpp b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_interrogator_vishas.cpp index a73cf946a7c..3e752858e63 100644 --- a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_interrogator_vishas.cpp +++ b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_interrogator_vishas.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_Interrogator_Vishas -SD%Complete: 100 -SDComment: -SDCategory: Scarlet Monastery -EndScriptData */ - #include "ScriptMgr.h" #include "ScriptedCreature.h" #include "scarlet_monastery.h" @@ -38,88 +30,93 @@ enum Says enum Spells { - SPELL_SHADOWWORDPAIN = 2767 + SPELL_SHADOW_WORD_PAIN = 2767 }; -class boss_interrogator_vishas : public CreatureScript +enum Events { -public: - boss_interrogator_vishas() : CreatureScript("boss_interrogator_vishas") { } - - CreatureAI* GetAI(Creature* creature) const override - { - return GetInstanceAI<boss_interrogator_vishasAI>(creature); - } - - struct boss_interrogator_vishasAI : public ScriptedAI - { - boss_interrogator_vishasAI(Creature* creature) : ScriptedAI(creature) - { - instance = me->GetInstanceScript(); - } - - InstanceScript* instance; + EVENT_SHADOW_WORD_PAIN = 1 +}; - bool Yell30; - bool Yell60; - uint32 ShadowWordPain_Timer; +class boss_interrogator_vishas : public CreatureScript +{ + public: + boss_interrogator_vishas() : CreatureScript("boss_interrogator_vishas") { } - void Reset() override + struct boss_interrogator_vishasAI : public BossAI { - ShadowWordPain_Timer = 5000; - Yell60 = false; - Yell30 = false; - instance->SetBossState(DATA_INTERROGATOR_VISHAS, NOT_STARTED); - } + boss_interrogator_vishasAI(Creature* creature) : BossAI(creature, DATA_INTERROGATOR_VISHAS) + { + Initialize(); + } - void EnterCombat(Unit* /*who*/) override - { - Talk(SAY_AGGRO); - instance->SetBossState(DATA_INTERROGATOR_VISHAS, IN_PROGRESS); - } + void Initialize() + { + _yellCount = 0; + } - void KilledUnit(Unit* /*Victim*/) override - { - Talk(SAY_KILL); - } + void Reset() override + { + Initialize(); + _Reset(); + } - void JustDied(Unit* /*killer*/) override - { - //Any other Actions to do with vorrel? setStandState? - if (Creature* vorrel = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_VORREL))) - vorrel->AI()->Talk(SAY_TRIGGER_VORREL); - instance->SetBossState(DATA_INTERROGATOR_VISHAS, DONE); - } + void EnterCombat(Unit* /*who*/) override + { + Talk(SAY_AGGRO); + _EnterCombat(); + events.ScheduleEvent(EVENT_SHADOW_WORD_PAIN, 5000); + } - void UpdateAI(uint32 diff) override - { - if (!UpdateVictim()) - return; + void KilledUnit(Unit* victim) override + { + if (victim->GetTypeId() == TYPEID_PLAYER) + Talk(SAY_KILL); + } - //If we are low on hp Do sayings - if (!Yell60 && !HealthAbovePct(60)) + void JustDied(Unit* /*killer*/) override { - Talk(SAY_HEALTH1); - Yell60 = true; + _JustDied(); + if (Creature* vorrel = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_VORREL))) + vorrel->AI()->Talk(SAY_TRIGGER_VORREL); } - if (!Yell30 && !HealthAbovePct(30)) + void DamageTaken(Unit* /*attacker*/, uint32 &damage) override { - Talk(SAY_HEALTH2); - Yell30 = true; + if (me->HealthBelowPctDamaged(60, damage) && _yellCount < 1) + { + Talk(SAY_HEALTH1); + ++_yellCount; + } + + if (me->HealthBelowPctDamaged(30, damage) && _yellCount < 2) + { + Talk(SAY_HEALTH2); + ++_yellCount; + } } - //ShadowWordPain_Timer - if (ShadowWordPain_Timer <= diff) + void ExecuteEvent(uint32 eventId) override { - DoCastVictim(SPELL_SHADOWWORDPAIN); - ShadowWordPain_Timer = urand(5000, 15000); + switch (eventId) + { + case EVENT_SHADOW_WORD_PAIN: + DoCastVictim(SPELL_SHADOW_WORD_PAIN); + events.ScheduleEvent(EVENT_SHADOW_WORD_PAIN, urand(5000, 15000)); + break; + default: + break; + } } - else ShadowWordPain_Timer -= diff; - DoMeleeAttackIfReady(); + private: + uint8 _yellCount; + }; + + CreatureAI* GetAI(Creature* creature) const override + { + return GetInstanceAI<boss_interrogator_vishasAI>(creature); } - }; }; void AddSC_boss_interrogator_vishas() 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/instance_scarlet_monastery.cpp b/src/server/scripts/EasternKingdoms/ScarletMonastery/instance_scarlet_monastery.cpp index dc65bd42bf4..3a79dac3a90 100644 --- a/src/server/scripts/EasternKingdoms/ScarletMonastery/instance_scarlet_monastery.cpp +++ b/src/server/scripts/EasternKingdoms/ScarletMonastery/instance_scarlet_monastery.cpp @@ -34,6 +34,7 @@ class instance_scarlet_monastery : public InstanceMapScript { instance_scarlet_monastery_InstanceMapScript(Map* map) : InstanceScript(map) { + SetHeaders(DataHeader); SetBossNumber(EncounterCount); LoadDoorData(doorData); @@ -155,50 +156,6 @@ class instance_scarlet_monastery : public InstanceMapScript return 0; } - std::string GetSaveData() override - { - OUT_SAVE_INST_DATA; - - std::ostringstream saveStream; - saveStream << "S M " << GetBossSaveData(); - - OUT_SAVE_INST_DATA_COMPLETE; - return saveStream.str(); - } - - void Load(const char* str) override - { - if (!str) - { - OUT_LOAD_INST_DATA_FAIL; - return; - } - - OUT_LOAD_INST_DATA(str); - - char dataHead1, dataHead2; - - std::istringstream loadStream(str); - loadStream >> dataHead1 >> dataHead2; - - if (dataHead1 == 'S' && dataHead2 == 'M') - { - for (uint8 i = 0; i < EncounterCount; ++i) - { - uint32 tmpState; - loadStream >> tmpState; - if (tmpState == IN_PROGRESS || tmpState > SPECIAL) - tmpState = NOT_STARTED; - - SetBossState(i, EncounterState(tmpState)); - } - } - else - OUT_LOAD_INST_DATA_FAIL; - - OUT_LOAD_INST_DATA_COMPLETE; - } - protected: uint64 PumpkinShrineGUID; uint64 HorsemanGUID; diff --git a/src/server/scripts/EasternKingdoms/ScarletMonastery/scarlet_monastery.h b/src/server/scripts/EasternKingdoms/ScarletMonastery/scarlet_monastery.h index a74efba751f..af716b5f448 100644 --- a/src/server/scripts/EasternKingdoms/ScarletMonastery/scarlet_monastery.h +++ b/src/server/scripts/EasternKingdoms/ScarletMonastery/scarlet_monastery.h @@ -19,6 +19,8 @@ #define SCARLET_M_ #define SMScriptName "instance_scarlet_monastery" +#define DataHeader "SM" + uint32 const EncounterCount = 10; enum DataTypes diff --git a/src/server/scripts/EasternKingdoms/Scholomance/boss_darkmaster_gandling.cpp b/src/server/scripts/EasternKingdoms/Scholomance/boss_darkmaster_gandling.cpp index 9a1f8f14557..0386341ed0c 100644 --- a/src/server/scripts/EasternKingdoms/Scholomance/boss_darkmaster_gandling.cpp +++ b/src/server/scripts/EasternKingdoms/Scholomance/boss_darkmaster_gandling.cpp @@ -162,52 +162,58 @@ class spell_shadow_portal : public SpellScriptLoader { PrepareSpellScript(spell_shadow_portal_SpellScript); + bool Load() override + { + _instance = GetCaster()->GetInstanceScript(); + return _instance != nullptr; + } + void HandleCast(SpellEffIndex /*effIndex*/) { - Creature* caster = GetCaster()->ToCreature(); - int8 attempts = 0; - int32 spell_to_cast =0; + Unit* caster = GetCaster(); + uint8 attempts = 0; + uint32 spellId = 0; - while (!spell_to_cast) + while (!spellId) { if (attempts++ >= 6) break; switch (urand(0, 5)) { case ROOM_HALL_OF_SECRETS: - if (InstanceScript* instance = GetCaster()->GetInstanceScript()) - if (GameObject::GetGameObject(*caster, instance->GetData64(GO_GATE_RAVENIAN))->GetGoState() == GO_STATE_ACTIVE) - spell_to_cast = SPELL_SHADOW_PORTAL_HALLOFSECRETS; + if (GameObject* go = ObjectAccessor::GetGameObject(*caster, _instance->GetData64(GO_GATE_RAVENIAN))) + if (go->GetGoState() == GO_STATE_ACTIVE) + spellId = SPELL_SHADOW_PORTAL_HALLOFSECRETS; break; case ROOM_HALL_OF_THE_DAMNED: - if (InstanceScript* instance = GetCaster()->GetInstanceScript()) - if (GameObject::GetGameObject(*caster, instance->GetData64(GO_GATE_THEOLEN))->GetGoState() == GO_STATE_ACTIVE) - spell_to_cast = SPELL_SHADOW_PORTAL_HALLOFTHEDAMNED; + if (GameObject* go = ObjectAccessor::GetGameObject(*caster, _instance->GetData64(GO_GATE_THEOLEN))) + if (go->GetGoState() == GO_STATE_ACTIVE) + spellId = SPELL_SHADOW_PORTAL_HALLOFTHEDAMNED; break; case ROOM_THE_COVEN: - if (InstanceScript* instance = GetCaster()->GetInstanceScript()) - if (GameObject::GetGameObject(*caster, instance->GetData64(GO_GATE_MALICIA))->GetGoState() == GO_STATE_ACTIVE) - spell_to_cast = SPELL_SHADOW_PORTAL_THECOVEN; + if (GameObject* go = ObjectAccessor::GetGameObject(*caster, _instance->GetData64(GO_GATE_MALICIA))) + if (go->GetGoState() == GO_STATE_ACTIVE) + spellId = SPELL_SHADOW_PORTAL_THECOVEN; break; case ROOM_THE_SHADOW_VAULT: - if (InstanceScript* instance = GetCaster()->GetInstanceScript()) - if (GameObject::GetGameObject(*caster, instance->GetData64(GO_GATE_ILLUCIA))->GetGoState() == GO_STATE_ACTIVE) - spell_to_cast = SPELL_SHADOW_PORTAL_THESHADOWVAULT; + if (GameObject* go = ObjectAccessor::GetGameObject(*caster, _instance->GetData64(GO_GATE_ILLUCIA))) + if (go->GetGoState() == GO_STATE_ACTIVE) + spellId = SPELL_SHADOW_PORTAL_THESHADOWVAULT; break; case ROOM_BAROV_FAMILY_VAULT: - if (InstanceScript* instance = GetCaster()->GetInstanceScript()) - if (GameObject::GetGameObject(*caster, instance->GetData64(GO_GATE_BAROV))->GetGoState() == GO_STATE_ACTIVE) - spell_to_cast = SPELL_SHADOW_PORTAL_BAROVFAMILYVAULT; + if (GameObject* go = ObjectAccessor::GetGameObject(*caster, _instance->GetData64(GO_GATE_BAROV))) + if (go->GetGoState() == GO_STATE_ACTIVE) + spellId = SPELL_SHADOW_PORTAL_BAROVFAMILYVAULT; break; case ROOM_VAULT_OF_THE_RAVENIAN: - if (InstanceScript* instance = GetCaster()->GetInstanceScript()) - if (GameObject::GetGameObject(*caster, instance->GetData64(GO_GATE_POLKELT))->GetGoState() == GO_STATE_ACTIVE) - spell_to_cast = SPELL_SHADOW_PORTAL_VAULTOFTHERAVENIAN; + if (GameObject* go = ObjectAccessor::GetGameObject(*caster, _instance->GetData64(GO_GATE_POLKELT))) + if (go->GetGoState() == GO_STATE_ACTIVE) + spellId = SPELL_SHADOW_PORTAL_VAULTOFTHERAVENIAN; break; } - if (spell_to_cast) - GetHitUnit()->CastSpell(GetHitUnit(), spell_to_cast); + if (spellId) + GetHitUnit()->CastSpell(GetHitUnit(), spellId); } } @@ -215,6 +221,9 @@ class spell_shadow_portal : public SpellScriptLoader { OnEffectHitTarget += SpellEffectFn(spell_shadow_portal_SpellScript::HandleCast, EFFECT_0, SPELL_EFFECT_DUMMY); } + + private: + InstanceScript* _instance; }; SpellScript* GetSpellScript() const override @@ -276,12 +285,17 @@ class spell_shadow_portal_rooms : public SpellScriptLoader { PrepareSpellScript(spell_shadow_portal_rooms_SpellScript); + bool Load() override + { + _instance = GetCaster()->GetInstanceScript(); + return _instance != nullptr; + } + void HandleSendEvent(SpellEffIndex effIndex) { // If only one player in threat list fail spell - Creature* Summoned = NULL; - Creature* caster = GetCaster()->ToCreature(); + Unit* caster = GetCaster(); int8 pos_to_summon = 0; int8 phase_to_set = 0; @@ -323,21 +337,19 @@ class spell_shadow_portal_rooms : public SpellScriptLoader break; } - if (gate_to_close && (GetCaster()->GetMap()->GetId() == 289)) + if (gate_to_close && (caster->GetMap()->GetId() == 289)) { for (uint8 i = 0; i < 3; ++i) { - Summoned = GetCaster()->SummonCreature(NPC_RISEN_GUARDIAN, SummonPos[pos_to_summon++], TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 120000); - if (Summoned) + if (Creature* Summoned = caster->SummonCreature(NPC_RISEN_GUARDIAN, SummonPos[pos_to_summon++], TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 120000)) { Summoned->GetMotionMaster()->MoveRandom(5); Summoned->AI()->SetData(0, phase_to_set); } } - if (InstanceScript* instance = GetCaster()->GetInstanceScript()) - if (GameObject* gate = GameObject::GetGameObject(*caster, instance->GetData64(gate_to_close))) - gate->SetGoState(GO_STATE_READY); + if (GameObject* gate = ObjectAccessor::GetGameObject(*caster, _instance->GetData64(gate_to_close))) + gate->SetGoState(GO_STATE_READY); } } @@ -345,6 +357,9 @@ class spell_shadow_portal_rooms : public SpellScriptLoader { OnEffectHit += SpellEffectFn(spell_shadow_portal_rooms_SpellScript::HandleSendEvent, EFFECT_1, SPELL_EFFECT_SEND_EVENT); } + + private: + InstanceScript* _instance; }; SpellScript* GetSpellScript() const override 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..b218e3f2978 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(); } - }; -}; - -// Illusion of Jandice Barov Script - -class npc_illusionofjandicebarov : public CreatureScript -{ -public: - npc_illusionofjandicebarov() : CreatureScript("npc_illusionofjandicebarov") { } + private: + EventMap events; + SummonList Summons; + }; 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..099a69782b8 100644 --- a/src/server/scripts/EasternKingdoms/Scholomance/boss_kormok.cpp +++ b/src/server/scripts/EasternKingdoms/Scholomance/boss_kormok.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,20 +15,31 @@ * with this program. If not, see <http://www.gnu.org/licenses/>. */ -/* ScriptData -SDName: Boss_Kormok -SD%Complete: 100 -SDComment: -SDCategory: Scholomance -EndScriptData */ - #include "ScriptMgr.h" #include "ScriptedCreature.h" +#include "SpellScript.h" +#include "scholomance.h" enum Spells { - SPELL_SHADOWBOLTVOLLEY = 20741, - SPELL_BONESHIELD = 27688 + SPELL_SHADOWBOLT_VOLLEY = 20741, + SPELL_BONE_SHIELD = 27688, + + SPELL_SUMMON_BONE_MAGES = 27695, + + SPELL_SUMMON_BONE_MAGE_FRONT_LEFT = 27696, + SPELL_SUMMON_BONE_MAGE_FRONT_RIGHT = 27697, + SPELL_SUMMON_BONE_MAGE_BACK_RIGHT = 27698, + SPELL_SUMMON_BONE_MAGE_BACK_LEFT = 27699, + + SPELL_SUMMON_BONE_MINIONS = 27687 +}; + +enum Events +{ + EVENT_SHADOWBOLT_VOLLEY = 1, + EVENT_BONE_SHIELD, + EVENT_SUMMON_MINIONS }; class boss_kormok : public CreatureScript @@ -37,44 +47,43 @@ class boss_kormok : public CreatureScript public: boss_kormok() : CreatureScript("boss_kormok") { } - CreatureAI* GetAI(Creature* creature) const override - { - return new boss_kormokAI(creature); - } - struct boss_kormokAI : public ScriptedAI { - boss_kormokAI(Creature* creature) : ScriptedAI(creature) { } + boss_kormokAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } - uint32 ShadowVolley_Timer; - uint32 BoneShield_Timer; - uint32 Minion_Timer; - uint32 Mage_Timer; - bool Mages; + void Initialize() + { + Mages = false; + } void Reset() override { - ShadowVolley_Timer = 10000; - BoneShield_Timer = 2000; - Minion_Timer = 15000; - Mage_Timer = 0; - Mages = false; + Initialize(); + events.Reset(); } void EnterCombat(Unit* /*who*/) override { + events.ScheduleEvent(EVENT_SHADOWBOLT_VOLLEY, 10000); + events.ScheduleEvent(EVENT_BONE_SHIELD, 2000); + events.ScheduleEvent(EVENT_SUMMON_MINIONS, 15000); } - void SummonMinions(Unit* victim) + void JustSummoned(Creature* summoned) override { - if (Creature* SummonedMinion = DoSpawnCreature(16119, float(irand(-7, 7)), float(irand(-7, 7)), 0, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 120000)) - SummonedMinion->AI()->AttackStart(victim); + summoned->AI()->AttackStart(me->GetVictim()); } - void SummonMages(Unit* victim) + void DamageTaken(Unit* /*attacker*/, uint32& damage) override { - if (Creature* SummonedMage = DoSpawnCreature(16120, float(irand(-9, 9)), float(irand(-9, 9)), 0, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 120000)) - SummonedMage->AI()->AttackStart(victim); + if (me->HealthBelowPctDamaged(25, damage) && !Mages) + { + DoCast(SPELL_SUMMON_BONE_MAGES); + Mages = true; + } } void UpdateAI(uint32 diff) override @@ -82,48 +91,132 @@ public: if (!UpdateVictim()) return; - //ShadowVolley_Timer - if (ShadowVolley_Timer <= diff) - { - DoCastVictim(SPELL_SHADOWBOLTVOLLEY); - ShadowVolley_Timer = 15000; - } else ShadowVolley_Timer -= diff; + events.Update(diff); + + if (me->HasUnitState(UNIT_STATE_CASTING)) + return; - //BoneShield_Timer - if (BoneShield_Timer <= diff) + while (uint32 eventId = events.ExecuteEvent()) { - DoCastVictim(SPELL_BONESHIELD); - BoneShield_Timer = 45000; - } else BoneShield_Timer -= diff; + switch (eventId) + { + case EVENT_SHADOWBOLT_VOLLEY: + DoCastVictim(SPELL_SHADOWBOLT_VOLLEY); + events.ScheduleEvent(EVENT_SHADOWBOLT_VOLLEY, 15000); + break; + case EVENT_BONE_SHIELD: + DoCastVictim(SPELL_BONE_SHIELD); + events.ScheduleEvent(EVENT_BONE_SHIELD, 45000); + break; + case EVENT_SUMMON_MINIONS: + DoCast(SPELL_SUMMON_BONE_MINIONS); + events.ScheduleEvent(EVENT_SUMMON_MINIONS, 12000); + break; + default: + break; + } + } + + DoMeleeAttackIfReady(); + } + + private: + EventMap events; + bool Mages; + }; + + CreatureAI* GetAI(Creature* creature) const override + { + return new boss_kormokAI(creature); + } +}; - //Minion_Timer - if (Minion_Timer <= diff) +uint32 const SummonMageSpells[4] = +{ + SPELL_SUMMON_BONE_MAGE_FRONT_LEFT, + SPELL_SUMMON_BONE_MAGE_FRONT_RIGHT, + SPELL_SUMMON_BONE_MAGE_BACK_RIGHT, + SPELL_SUMMON_BONE_MAGE_BACK_LEFT, +}; + +// 27695 - Summon Bone Mages +class spell_kormok_summon_bone_mages : SpellScriptLoader +{ + public: + spell_kormok_summon_bone_mages() : SpellScriptLoader("spell_kormok_summon_bone_mages") { } + + class spell_kormok_summon_bone_magesSpellScript : public SpellScript + { + PrepareSpellScript(spell_kormok_summon_bone_magesSpellScript); + + bool Validate(SpellInfo const* /*spell*/) override { - //Cast - SummonMinions(me->GetVictim()); - SummonMinions(me->GetVictim()); - SummonMinions(me->GetVictim()); - SummonMinions(me->GetVictim()); + for (uint32 i = 0; i < 4; ++i) + if (!sSpellMgr->GetSpellInfo(SummonMageSpells[i])) + return false; + return true; + } - Minion_Timer = 12000; - } else Minion_Timer -= diff; + void HandleScript(SpellEffIndex effIndex) + { + PreventHitDefaultEffect(effIndex); + for (uint32 i = 0; i < 2; ++i) + GetCaster()->CastSpell(GetCaster(), SummonMageSpells[urand(0, 3)], true); + } - //Summon 2 Bone Mages - if (!Mages && HealthBelowPct(26)) + void Register() override { - //Cast - SummonMages(me->GetVictim()); - SummonMages(me->GetVictim()); - Mages = true; + OnEffectHitTarget += SpellEffectFn(spell_kormok_summon_bone_magesSpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT); } + }; - DoMeleeAttackIfReady(); + SpellScript* GetSpellScript() const override + { + return new spell_kormok_summon_bone_magesSpellScript(); + } +}; + +// 27687 - Summon Bone Minions +class spell_kormok_summon_bone_minions : SpellScriptLoader +{ + public: + spell_kormok_summon_bone_minions() : SpellScriptLoader("spell_kormok_summon_bone_minions") { } + + class spell_kormok_summon_bone_minionsSpellScript : public SpellScript + { + PrepareSpellScript(spell_kormok_summon_bone_minionsSpellScript); + + bool Validate(SpellInfo const* /*spell*/) override + { + if (!sSpellMgr->GetSpellInfo(SPELL_SUMMON_BONE_MINIONS)) + return false; + return true; + } + + void HandleScript(SpellEffIndex effIndex) + { + PreventHitDefaultEffect(effIndex); + + // Possible spells to handle this not found. + for (uint32 i = 0; i < 4; ++i) + GetCaster()->SummonCreature(NPC_BONE_MINION, GetCaster()->GetPositionX() + float(irand(-7, 7)), GetCaster()->GetPositionY() + float(irand(-7, 7)), GetCaster()->GetPositionZ(), 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 120000); + } + + void Register() override + { + OnEffectHitTarget += SpellEffectFn(spell_kormok_summon_bone_minionsSpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT); } }; + SpellScript* GetSpellScript() const override + { + return new spell_kormok_summon_bone_minionsSpellScript(); + } }; void AddSC_boss_kormok() { new boss_kormok(); + new spell_kormok_summon_bone_mages(); + new spell_kormok_summon_bone_minions(); } diff --git a/src/server/scripts/EasternKingdoms/Scholomance/boss_ras_frostwhisper.cpp b/src/server/scripts/EasternKingdoms/Scholomance/boss_ras_frostwhisper.cpp index 2aecc8bd491..897799a708c 100644 --- a/src/server/scripts/EasternKingdoms/Scholomance/boss_ras_frostwhisper.cpp +++ b/src/server/scripts/EasternKingdoms/Scholomance/boss_ras_frostwhisper.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,114 +15,108 @@ * with this program. If not, see <http://www.gnu.org/licenses/>. */ -/* ScriptData -SDName: Boss_Ras_Frostwhisper -SD%Complete: 100 -SDComment: -SDCategory: Scholomance -EndScriptData */ - #include "ScriptMgr.h" #include "ScriptedCreature.h" enum Spells { SPELL_FROSTBOLT = 21369, - SPELL_ICEARMOR = 18100, // This is actually a buff he gives himself + SPELL_ICE_ARMOR = 18100, // This is actually a buff he gives himself SPELL_FREEZE = 18763, SPELL_FEAR = 26070, - SPELL_CHILLNOVA = 18099, + SPELL_CHILL_NOVA = 18099, SPELL_FROSTVOLLEY = 8398 }; +enum Events +{ + EVENT_FROSTBOLT = 1, + EVENT_ICE_ARMOR, + EVENT_FREEZE, + EVENT_FEAR, + EVENT_CHILL_NOVA, + EVENT_FROSTVOLLEY +}; + class boss_boss_ras_frostwhisper : public CreatureScript { public: boss_boss_ras_frostwhisper() : CreatureScript("boss_boss_ras_frostwhisper") { } - CreatureAI* GetAI(Creature* creature) const override - { - return new boss_rasfrostAI(creature); - } - struct boss_rasfrostAI : public ScriptedAI { boss_rasfrostAI(Creature* creature) : ScriptedAI(creature) { } - uint32 IceArmor_Timer; - uint32 Frostbolt_Timer; - uint32 Freeze_Timer; - uint32 Fear_Timer; - uint32 ChillNova_Timer; - uint32 FrostVolley_Timer; - void Reset() override { - IceArmor_Timer = 2000; - Frostbolt_Timer = 8000; - ChillNova_Timer = 12000; - Freeze_Timer = 18000; - FrostVolley_Timer = 24000; - Fear_Timer = 45000; - - DoCast(me, SPELL_ICEARMOR, true); + events.Reset(); + DoCast(me, SPELL_ICE_ARMOR); } - void EnterCombat(Unit* /*who*/) override { } + void EnterCombat(Unit* /*who*/) override + { + events.ScheduleEvent(EVENT_ICE_ARMOR, 2000); + events.ScheduleEvent(EVENT_FROSTBOLT, 8000); + events.ScheduleEvent(EVENT_CHILL_NOVA, 12000); + events.ScheduleEvent(EVENT_FREEZE, 18000); + events.ScheduleEvent(EVENT_FEAR, 45000); + } void UpdateAI(uint32 diff) override { if (!UpdateVictim()) return; - //IceArmor_Timer - if (IceArmor_Timer <= diff) - { - DoCast(me, SPELL_ICEARMOR); - IceArmor_Timer = 180000; - } else IceArmor_Timer -= diff; - - //Frostbolt_Timer - if (Frostbolt_Timer <= diff) - { - if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true)) - DoCast(target, SPELL_FROSTBOLT); - - Frostbolt_Timer = 8000; - } else Frostbolt_Timer -= diff; - - //Freeze_Timer - if (Freeze_Timer <= diff) - { - DoCastVictim(SPELL_FREEZE); - Freeze_Timer = 24000; - } else Freeze_Timer -= diff; - - //Fear_Timer - if (Fear_Timer <= diff) - { - DoCastVictim(SPELL_FEAR); - Fear_Timer = 30000; - } else Fear_Timer -= diff; + events.Update(diff); - //ChillNova_Timer - if (ChillNova_Timer <= diff) - { - DoCastVictim(SPELL_CHILLNOVA); - ChillNova_Timer = 14000; - } else ChillNova_Timer -= diff; + if (me->HasUnitState(UNIT_STATE_CASTING)) + return; - //FrostVolley_Timer - if (FrostVolley_Timer <= diff) + while (uint32 eventId = events.ExecuteEvent()) { - DoCastVictim(SPELL_FROSTVOLLEY); - FrostVolley_Timer = 15000; - } else FrostVolley_Timer -= diff; + switch (eventId) + { + case EVENT_ICE_ARMOR: + DoCast(me, SPELL_ICE_ARMOR); + events.ScheduleEvent(EVENT_ICE_ARMOR, 180000); + break; + case EVENT_FROSTBOLT: + if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true)) + DoCast(target, SPELL_FROSTBOLT); + events.ScheduleEvent(EVENT_FROSTBOLT, 8000); + break; + case EVENT_FREEZE: + DoCastVictim(SPELL_FREEZE); + events.ScheduleEvent(EVENT_FREEZE, 24000); + break; + case EVENT_FEAR: + DoCastVictim(SPELL_FEAR); + events.ScheduleEvent(EVENT_FEAR, 30000); + break; + case EVENT_CHILL_NOVA: + DoCastVictim(SPELL_CHILL_NOVA); + events.ScheduleEvent(EVENT_CHILL_NOVA, 14000); + break; + case EVENT_FROSTVOLLEY: + DoCastVictim(SPELL_FROSTVOLLEY); + events.ScheduleEvent(EVENT_FROSTVOLLEY, 15000); + break; + default: + break; + } + } DoMeleeAttackIfReady(); } + + private: + EventMap events; }; + CreatureAI* GetAI(Creature* creature) const override + { + return new boss_rasfrostAI(creature); + } }; void AddSC_boss_rasfrost() diff --git a/src/server/scripts/EasternKingdoms/Scholomance/boss_vectus.cpp b/src/server/scripts/EasternKingdoms/Scholomance/boss_vectus.cpp index c111eb103b4..792649f2998 100644 --- a/src/server/scripts/EasternKingdoms/Scholomance/boss_vectus.cpp +++ b/src/server/scripts/EasternKingdoms/Scholomance/boss_vectus.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,95 +15,102 @@ * with this program. If not, see <http://www.gnu.org/licenses/>. */ -/* ScriptData -SDName: Boss_Vectus -SD%Complete: 100 -SDComment: -SDCategory: Scholomance -EndScriptData */ - #include "ScriptMgr.h" #include "ScriptedCreature.h" enum Emotes { - EMOTE_FRENZY_KILL = 0 + EMOTE_FRENZY = 0 }; enum Spells { SPELL_FLAMESTRIKE = 18399, SPELL_BLAST_WAVE = 16046, - SPELL_FIRESHIELD = 19626, + SPELL_FIRE_SHIELD = 19626, SPELL_FRENZY = 8269 // 28371 }; +enum Events +{ + EVENT_FIRE_SHIELD = 1, + EVENT_BLAST_WAVE, + EVENT_FRENZY +}; + class boss_vectus : public CreatureScript { public: boss_vectus() : CreatureScript("boss_vectus") { } - CreatureAI* GetAI(Creature* creature) const override - { - return new boss_vectusAI(creature); - } - struct boss_vectusAI : public ScriptedAI { boss_vectusAI(Creature* creature) : ScriptedAI(creature) { } - uint32 m_uiFireShield_Timer; - uint32 m_uiBlastWave_Timer; - uint32 m_uiFrenzy_Timer; - void Reset() override { - m_uiFireShield_Timer = 2000; - m_uiBlastWave_Timer = 14000; - m_uiFrenzy_Timer = 0; + events.Reset(); } - void UpdateAI(uint32 uiDiff) override + void EnterCombat(Unit* /*who*/) override { - if (!UpdateVictim()) - return; + events.ScheduleEvent(EVENT_FIRE_SHIELD, 2000); + events.ScheduleEvent(EVENT_BLAST_WAVE, 14000); + } - //FireShield_Timer - if (m_uiFireShield_Timer <= uiDiff) + void DamageTaken(Unit* /*attacker*/, uint32& damage) override + { + if (me->HealthBelowPctDamaged(25, damage)) { - DoCast(me, SPELL_FIRESHIELD); - m_uiFireShield_Timer = 90000; + DoCast(me, SPELL_FRENZY); + Talk(EMOTE_FRENZY); + events.ScheduleEvent(EVENT_FRENZY, 24000); } - else - m_uiFireShield_Timer -= uiDiff; + } - //BlastWave_Timer - if (m_uiBlastWave_Timer <= uiDiff) - { - DoCastVictim(SPELL_BLAST_WAVE); - m_uiBlastWave_Timer = 12000; - } - else - m_uiBlastWave_Timer -= uiDiff; + void UpdateAI(uint32 diff) override + { + if (!UpdateVictim()) + return; + + events.Update(diff); + + if (me->HasUnitState(UNIT_STATE_CASTING)) + return; - //Frenzy_Timer - if (HealthBelowPct(25)) + while (uint32 eventId = events.ExecuteEvent()) { - if (m_uiFrenzy_Timer <= uiDiff) + switch (eventId) { - DoCast(me, SPELL_FRENZY); - Talk(EMOTE_FRENZY_KILL); - - m_uiFrenzy_Timer = 24000; + case EVENT_FIRE_SHIELD: + DoCast(me, SPELL_FIRE_SHIELD); + events.ScheduleEvent(EVENT_FIRE_SHIELD, 90000); + break; + case EVENT_BLAST_WAVE: + DoCast(me, SPELL_BLAST_WAVE); + events.ScheduleEvent(EVENT_BLAST_WAVE, 12000); + case EVENT_FRENZY: + DoCast(me, SPELL_FRENZY); + Talk(EMOTE_FRENZY); + events.ScheduleEvent(EVENT_FRENZY, 24000); + break; + default: + break; } - else - m_uiFrenzy_Timer -= uiDiff; } DoMeleeAttackIfReady(); } + + private: + EventMap events; }; + + CreatureAI* GetAI(Creature* creature) const override + { + return new boss_vectusAI(creature); + } }; void AddSC_boss_vectus() diff --git a/src/server/scripts/EasternKingdoms/Scholomance/instance_scholomance.cpp b/src/server/scripts/EasternKingdoms/Scholomance/instance_scholomance.cpp index 6bb8e301e86..f1959b6cf56 100644 --- a/src/server/scripts/EasternKingdoms/Scholomance/instance_scholomance.cpp +++ b/src/server/scripts/EasternKingdoms/Scholomance/instance_scholomance.cpp @@ -36,6 +36,7 @@ class instance_scholomance : public InstanceMapScript { instance_scholomance_InstanceMapScript(Map* map) : InstanceScript(map) { + SetHeaders(DataHeader); SetBossNumber(EncounterCount); GateKirtonosGUID = 0; GateGandlingGUID = 0; @@ -168,49 +169,9 @@ class instance_scholomance : public InstanceMapScript instance->SummonCreature(NPC_DARKMASTER_GANDLING, GandlingLoc); } - std::string GetSaveData() override + void ReadSaveDataMore(std::istringstream& /*data*/) override { - OUT_SAVE_INST_DATA; - - std::ostringstream saveStream; - saveStream << "S O " << GetBossSaveData(); - - OUT_SAVE_INST_DATA_COMPLETE; - return saveStream.str(); - } - - void Load(const char* str) override - { - if (!str) - { - OUT_LOAD_INST_DATA_FAIL; - return; - } - - OUT_LOAD_INST_DATA(str); - - char dataHead1, dataHead2; - - std::istringstream loadStream(str); - loadStream >> dataHead1 >> dataHead2; - - if (dataHead1 == 'S' && dataHead2 == 'O') - { - for (uint32 i = 0; i < EncounterCount; ++i) - { - uint32 tmpState; - loadStream >> tmpState; - if (tmpState == IN_PROGRESS || tmpState > SPECIAL) - tmpState = NOT_STARTED; - SetBossState(i, EncounterState(tmpState)); - } - - CheckToSpawnGandling(); - } - else - OUT_LOAD_INST_DATA_FAIL; - - OUT_LOAD_INST_DATA_COMPLETE; + CheckToSpawnGandling(); } protected: diff --git a/src/server/scripts/EasternKingdoms/Scholomance/scholomance.h b/src/server/scripts/EasternKingdoms/Scholomance/scholomance.h index 9eb7c5e8f86..30d0e978145 100644 --- a/src/server/scripts/EasternKingdoms/Scholomance/scholomance.h +++ b/src/server/scripts/EasternKingdoms/Scholomance/scholomance.h @@ -18,6 +18,8 @@ #ifndef DEF_SCHOLOMANCE_H #define DEF_SCHOLOMANCE_H +#define DataHeader "SC" + uint32 const EncounterCount = 8; enum DataTypes @@ -34,7 +36,8 @@ enum DataTypes enum CreatureIds { - NPC_DARKMASTER_GANDLING = 1853 + NPC_DARKMASTER_GANDLING = 1853, + NPC_BONE_MINION = 16119 }; enum GameobjectIds diff --git a/src/server/scripts/EasternKingdoms/ShadowfangKeep/instance_shadowfang_keep.cpp b/src/server/scripts/EasternKingdoms/ShadowfangKeep/instance_shadowfang_keep.cpp index c76637224ae..10c4aedf103 100644 --- a/src/server/scripts/EasternKingdoms/ShadowfangKeep/instance_shadowfang_keep.cpp +++ b/src/server/scripts/EasternKingdoms/ShadowfangKeep/instance_shadowfang_keep.cpp @@ -96,6 +96,7 @@ public: void Initialize() override { + SetHeaders(DataHeader); memset(&m_auiEncounter, 0, sizeof(m_auiEncounter)); uiAshGUID = 0; 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/ShadowfangKeep/shadowfang_keep.h b/src/server/scripts/EasternKingdoms/ShadowfangKeep/shadowfang_keep.h index 0b399dc4050..669dfc3975d 100644 --- a/src/server/scripts/EasternKingdoms/ShadowfangKeep/shadowfang_keep.h +++ b/src/server/scripts/EasternKingdoms/ShadowfangKeep/shadowfang_keep.h @@ -19,6 +19,8 @@ #ifndef DEF_SHADOWFANG_H #define DEF_SHADOWFANG_H +#define DataHeader "SK" + enum DataTypes { TYPE_FREE_NPC = 1, 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/instance_stratholme.cpp b/src/server/scripts/EasternKingdoms/Stratholme/instance_stratholme.cpp index ecdc66d3e0f..43ce4d05297 100644 --- a/src/server/scripts/EasternKingdoms/Stratholme/instance_stratholme.cpp +++ b/src/server/scripts/EasternKingdoms/Stratholme/instance_stratholme.cpp @@ -49,6 +49,7 @@ class instance_stratholme : public InstanceMapScript { instance_stratholme_InstanceMapScript(Map* map) : InstanceScript(map) { + SetHeaders(DataHeader); } uint32 EncounterState[MAX_ENCOUNTER]; diff --git a/src/server/scripts/EasternKingdoms/Stratholme/stratholme.cpp b/src/server/scripts/EasternKingdoms/Stratholme/stratholme.cpp index 4109328afda..9c733677b42 100644 --- a/src/server/scripts/EasternKingdoms/Stratholme/stratholme.cpp +++ b/src/server/scripts/EasternKingdoms/Stratholme/stratholme.cpp @@ -81,38 +81,6 @@ public: }; /*###### -## npc_freed_soul -######*/ -enum FreedSoul -{ - SAY_ZAPPED = 0 -}; - -class npc_freed_soul : public CreatureScript -{ -public: - npc_freed_soul() : CreatureScript("npc_freed_soul") { } - - CreatureAI* GetAI(Creature* creature) const override - { - return new npc_freed_soulAI(creature); - } - - struct npc_freed_soulAI : public ScriptedAI - { - npc_freed_soulAI(Creature* creature) : ScriptedAI(creature) { } - - void Reset() override - { - Talk(SAY_ZAPPED); - } - - void EnterCombat(Unit* /*who*/) override { } - }; - -}; - -/*###### ## npc_restless_soul ######*/ @@ -142,7 +110,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 +128,7 @@ public: void Reset() override { - Tagger = 0; - Die_Timer = 5000; - Tagged = false; + Initialize(); } void EnterCombat(Unit* /*who*/) override { } @@ -173,6 +149,9 @@ public: void JustSummoned(Creature* summoned) override { summoned->CastSpell(summoned, SPELL_SOUL_FREED, false); + + if (Player* player = ObjectAccessor::GetPlayer(*me, Tagger)) + summoned->GetMotionMaster()->MoveFollow(player, 0.0f, 0.0f); } void JustDied(Unit* /*killer*/) override @@ -224,15 +203,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 { } @@ -302,7 +289,6 @@ public: void AddSC_stratholme() { new go_gauntlet_gate(); - new npc_freed_soul(); new npc_restless_soul(); new npc_spectral_ghostly_citizen(); } diff --git a/src/server/scripts/EasternKingdoms/Stratholme/stratholme.h b/src/server/scripts/EasternKingdoms/Stratholme/stratholme.h index 9e4c88f5856..687512ea92d 100644 --- a/src/server/scripts/EasternKingdoms/Stratholme/stratholme.h +++ b/src/server/scripts/EasternKingdoms/Stratholme/stratholme.h @@ -19,6 +19,8 @@ #ifndef DEF_STRATHOLME_H #define DEF_STRATHOLME_H +#define DataHeader "STR" + enum DataTypes { TYPE_BARON_RUN = 1, diff --git a/src/server/scripts/EasternKingdoms/SunkenTemple/instance_sunken_temple.cpp b/src/server/scripts/EasternKingdoms/SunkenTemple/instance_sunken_temple.cpp index 789a5c3a874..ee16a662711 100644 --- a/src/server/scripts/EasternKingdoms/SunkenTemple/instance_sunken_temple.cpp +++ b/src/server/scripts/EasternKingdoms/SunkenTemple/instance_sunken_temple.cpp @@ -60,6 +60,7 @@ public: { instance_sunken_temple_InstanceMapScript(Map* map) : InstanceScript(map) { + SetHeaders(DataHeader); } uint64 GOAtalaiStatue1; diff --git a/src/server/scripts/EasternKingdoms/SunkenTemple/sunken_temple.h b/src/server/scripts/EasternKingdoms/SunkenTemple/sunken_temple.h index 394b1e3e8ae..bfd99e2afdd 100644 --- a/src/server/scripts/EasternKingdoms/SunkenTemple/sunken_temple.h +++ b/src/server/scripts/EasternKingdoms/SunkenTemple/sunken_temple.h @@ -19,6 +19,8 @@ #ifndef DEF_SUNKEN_TEMPLE_H #define DEF_SUNKEN_TEMPLE_H +#define DataHeader "ST" + #define TROLLBOSS1_DEATH 1 #define TROLLBOSS2_DEATH 2 #define TROLLBOSS3_DEATH 3 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..79ebfa7b62b 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,48 @@ public: { boss_kiljaedenAI(Creature* creature) : ScriptedAI(creature), summons(me) { + Initialize(); instance = creature->GetInstanceScript(); + speechPhaseEnd = 0; 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 +569,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 +910,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 +928,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 +1015,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 +1066,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 +1083,7 @@ public: void Reset() override { - uiExplodeTimer = 2000; - bLockedTarget = false; + Initialize(); } void DamageTaken(Unit* /*done_by*/, uint32 &damage) override @@ -1093,16 +1133,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 +1196,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 +1225,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 +1289,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 +1302,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..823423fc3a8 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 @@ -378,10 +301,19 @@ public: { npc_muru_portalAI(Creature* creature) : ScriptedAI(creature), Summons(creature) { + Initialize(); SetCombatMovement(false); instance = creature->GetInstanceScript(); } + void Initialize() + { + SummonTimer = 5000; + + InAction = false; + SummonSentinel = false; + } + InstanceScript* instance; SummonList Summons; @@ -393,10 +325,7 @@ public: void Reset() override { - SummonTimer = 5000; - - InAction = false; - SummonSentinel = false; + Initialize(); me->AddUnitState(UNIT_STATE_STUNNED); @@ -405,8 +334,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 +344,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; } @@ -460,15 +389,23 @@ public: struct npc_dark_fiendAI : public ScriptedAI { - npc_dark_fiendAI(Creature* creature) : ScriptedAI(creature) { } + npc_dark_fiendAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } + + void Initialize() + { + WaitTimer = 2000; + InAction = false; + } uint32 WaitTimer; bool InAction; void Reset() override { - WaitTimer = 2000; - InAction = false; + Initialize(); me->AddUnitState(UNIT_STATE_STUNNED); } @@ -521,25 +458,34 @@ public: struct npc_void_sentinelAI : public ScriptedAI { - npc_void_sentinelAI(Creature* creature) : ScriptedAI(creature) { } + npc_void_sentinelAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } + + void Initialize() + { + PulseTimer = 3000; + VoidBlastTimer = 45000; //is this a correct timer? + } uint32 PulseTimer; uint32 VoidBlastTimer; void Reset() override { - PulseTimer = 3000; - VoidBlastTimer = 45000; //is this a correct timer? + Initialize(); 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 @@ -578,9 +524,18 @@ public: { npc_blackholeAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); } + void Initialize() + { + DespawnTimer = 15000; + SpellTimer = 5000; + Phase = 0; + NeedForAHack = 0; + } + InstanceScript* instance; uint32 DespawnTimer; @@ -590,10 +545,7 @@ public: void Reset() override { - DespawnTimer = 15000; - SpellTimer = 5000; - Phase = 0; - NeedForAHack = 0; + Initialize(); me->AddUnitState(UNIT_STATE_STUNNED); DoCastAOE(SPELL_BLACKHOLE_SPAWN, true); diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/instance_sunwell_plateau.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/instance_sunwell_plateau.cpp index 5a411d504aa..2066c4309b2 100644 --- a/src/server/scripts/EasternKingdoms/SunwellPlateau/instance_sunwell_plateau.cpp +++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/instance_sunwell_plateau.cpp @@ -49,6 +49,7 @@ class instance_sunwell_plateau : public InstanceMapScript { instance_sunwell_plateau_InstanceMapScript(Map* map) : InstanceScript(map) { + SetHeaders(DataHeader); SetBossNumber(EncounterCount); LoadDoorData(doorData); @@ -212,67 +213,24 @@ class instance_sunwell_plateau : public InstanceMapScript return 0; } - std::string GetSaveData() override - { - OUT_SAVE_INST_DATA; - - std::ostringstream saveStream; - saveStream << "S P " << GetBossSaveData(); - - OUT_SAVE_INST_DATA_COMPLETE; - return saveStream.str(); - } - - void Load(char const* str) override - { - if (!str) - { - OUT_LOAD_INST_DATA_FAIL; - return; - } - - OUT_LOAD_INST_DATA(str); - - char dataHead1, dataHead2; - - std::istringstream loadStream(str); - loadStream >> dataHead1 >> dataHead2; - - if (dataHead1 == 'S' && dataHead2 == 'P') - { - for (uint32 i = 0; i < EncounterCount; ++i) - { - uint32 tmpState; - loadStream >> tmpState; - if (tmpState == IN_PROGRESS || tmpState > SPECIAL) - tmpState = NOT_STARTED; - SetBossState(i, EncounterState(tmpState)); - } - } - else - OUT_LOAD_INST_DATA_FAIL; - - OUT_LOAD_INST_DATA_COMPLETE; - } - - protected: - uint64 KalecgosDragonGUID; - uint64 KalecgosHumanGUID; - uint64 SathrovarrGUID; - uint64 BrutallusGUID; - uint64 MadrigosaGUID; - uint64 FelmystGUID; - uint64 AlythessGUID; - uint64 SacrolashGUID; - uint64 MuruGUID; - uint64 KilJaedenGUID; - uint64 KilJaedenControllerGUID; - uint64 AnveenaGUID; - uint64 KalecgosKjGUID; - uint32 SpectralPlayers; - - uint32 SpectralRealmTimer; - std::vector<uint64> SpectralRealmList; + protected: + uint64 KalecgosDragonGUID; + uint64 KalecgosHumanGUID; + uint64 SathrovarrGUID; + uint64 BrutallusGUID; + uint64 MadrigosaGUID; + uint64 FelmystGUID; + uint64 AlythessGUID; + uint64 SacrolashGUID; + uint64 MuruGUID; + uint64 KilJaedenGUID; + uint64 KilJaedenControllerGUID; + uint64 AnveenaGUID; + uint64 KalecgosKjGUID; + uint32 SpectralPlayers; + + uint32 SpectralRealmTimer; + std::vector<uint64> SpectralRealmList; }; InstanceScript* GetInstanceScript(InstanceMap* map) const override diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/sunwell_plateau.h b/src/server/scripts/EasternKingdoms/SunwellPlateau/sunwell_plateau.h index d32cdb037b2..e6aed3eddf7 100644 --- a/src/server/scripts/EasternKingdoms/SunwellPlateau/sunwell_plateau.h +++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/sunwell_plateau.h @@ -19,6 +19,7 @@ #define SUNWELL_PLATEAU_H #define SunwellPlateauScriptName "instance_sunwell_plateau" +#define DataHeader "SWP" uint32 const EncounterCount = 6; 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/instance_uldaman.cpp b/src/server/scripts/EasternKingdoms/Uldaman/instance_uldaman.cpp index 56c84677181..17a6440702e 100644 --- a/src/server/scripts/EasternKingdoms/Uldaman/instance_uldaman.cpp +++ b/src/server/scripts/EasternKingdoms/Uldaman/instance_uldaman.cpp @@ -49,6 +49,7 @@ class instance_uldaman : public InstanceMapScript void Initialize() override { + SetHeaders(DataHeader); memset(&m_auiEncounter, 0, sizeof(m_auiEncounter)); archaedasGUID = 0; 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/Uldaman/uldaman.h b/src/server/scripts/EasternKingdoms/Uldaman/uldaman.h index 6f17fae0162..8697172fcb9 100644 --- a/src/server/scripts/EasternKingdoms/Uldaman/uldaman.h +++ b/src/server/scripts/EasternKingdoms/Uldaman/uldaman.h @@ -19,6 +19,8 @@ #ifndef DEF_ULDAMAN_H #define DEF_ULDAMAN_H +#define DataHeader "UD" + #define MAX_ENCOUNTER 3 enum DataTypes 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/instance_zulaman.cpp b/src/server/scripts/EasternKingdoms/ZulAman/instance_zulaman.cpp index 64ffddbbb6e..6081887e609 100644 --- a/src/server/scripts/EasternKingdoms/ZulAman/instance_zulaman.cpp +++ b/src/server/scripts/EasternKingdoms/ZulAman/instance_zulaman.cpp @@ -92,6 +92,7 @@ class instance_zulaman : public InstanceMapScript void Initialize() override { + SetHeaders(DataHeader); memset(&m_auiEncounter, 0, sizeof(m_auiEncounter)); HarkorsSatchelGUID = 0; 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/ZulAman/zulaman.h b/src/server/scripts/EasternKingdoms/ZulAman/zulaman.h index 4d5938d7253..84e1c963832 100644 --- a/src/server/scripts/EasternKingdoms/ZulAman/zulaman.h +++ b/src/server/scripts/EasternKingdoms/ZulAman/zulaman.h @@ -19,6 +19,8 @@ #ifndef DEF_ZULAMAN_H #define DEF_ZULAMAN_H +#define DataHeader "ZA" + enum DataTypes { DATA_GONGEVENT = 0, 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/ZulGurub/instance_zulgurub.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/instance_zulgurub.cpp index de1ed629a34..5aa37642798 100644 --- a/src/server/scripts/EasternKingdoms/ZulGurub/instance_zulgurub.cpp +++ b/src/server/scripts/EasternKingdoms/ZulGurub/instance_zulgurub.cpp @@ -41,6 +41,7 @@ class instance_zulgurub : public InstanceMapScript { instance_zulgurub_InstanceMapScript(Map* map) : InstanceScript(map) { + SetHeaders(DataHeader); SetBossNumber(EncounterCount); LoadDoorData(doorData); } @@ -144,48 +145,6 @@ class instance_zulgurub : public InstanceMapScript return 0; } - std::string GetSaveData() override - { - OUT_SAVE_INST_DATA; - - std::ostringstream saveStream; - saveStream << "Z G " << GetBossSaveData(); - - OUT_SAVE_INST_DATA_COMPLETE; - return saveStream.str(); - } - - void Load(const char* str) override - { - if (!str) - { - OUT_LOAD_INST_DATA_FAIL; - return; - } - - OUT_LOAD_INST_DATA(str); - - char dataHead1, dataHead2; - - std::istringstream loadStream(str); - loadStream >> dataHead1 >> dataHead2; - - if (dataHead1 == 'Z' && dataHead2 == 'G') - { - for (uint32 i = 0; i < EncounterCount; ++i) - { - uint32 tmpState; - loadStream >> tmpState; - if (tmpState == IN_PROGRESS || tmpState > SPECIAL) - tmpState = NOT_STARTED; - SetBossState(i, EncounterState(tmpState)); - } - } - else - OUT_LOAD_INST_DATA_FAIL; - - OUT_LOAD_INST_DATA_COMPLETE; - } private: //If all High Priest bosses were killed. Lorkhan, Zath and Ohgan are added too. //Storing Lorkhan, Zath and Thekal because we need to cast on them later. Jindo is needed for healfunction too. diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/zulgurub.h b/src/server/scripts/EasternKingdoms/ZulGurub/zulgurub.h index a9386ff1782..8b9c776dd78 100644 --- a/src/server/scripts/EasternKingdoms/ZulGurub/zulgurub.h +++ b/src/server/scripts/EasternKingdoms/ZulGurub/zulgurub.h @@ -18,6 +18,8 @@ #ifndef DEF_ZULGURUB_H #define DEF_ZULGURUB_H +#define DataHeader "ZG" + uint32 const EncounterCount = 13; #define ZGScriptName "instance_zulgurub" 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/EasternKingdoms/zone_western_plaguelands.cpp b/src/server/scripts/EasternKingdoms/zone_western_plaguelands.cpp index dbcf5998bdb..d242d17806c 100644 --- a/src/server/scripts/EasternKingdoms/zone_western_plaguelands.cpp +++ b/src/server/scripts/EasternKingdoms/zone_western_plaguelands.cpp @@ -319,19 +319,24 @@ public: struct npc_anchorite_truuenAI : public npc_escortAI { - npc_anchorite_truuenAI(Creature* creature) : npc_escortAI(creature) { } + npc_anchorite_truuenAI(Creature* creature) : npc_escortAI(creature) + { + Initialize(); + UghostGUID = 0; + } + + void Initialize() + { + m_uiChatTimer = 7000; + } uint32 m_uiChatTimer; uint64 UghostGUID; - uint64 TheldanisGUID; - - Creature* Ughost; - Creature* Theldanis; void Reset() override { - m_uiChatTimer = 7000; + Initialize(); } void JustSummoned(Creature* summoned) override @@ -364,26 +369,25 @@ public: Talk(SAY_WP_2); break; case 21: - Theldanis = GetClosestCreatureWithEntry(me, NPC_THEL_DANIS, 150); - if (Theldanis) + if (Creature* Theldanis = GetClosestCreatureWithEntry(me, NPC_THEL_DANIS, 150)) Theldanis->AI()->Talk(SAY_WP_3); break; case 23: - Ughost = me->SummonCreature(NPC_GHOST_UTHER, 971.86f, -1825.42f, 81.99f, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000); - if (Ughost) + if (Creature* Ughost = me->SummonCreature(NPC_GHOST_UTHER, 971.86f, -1825.42f, 81.99f, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000)) { + UghostGUID = Ughost->GetGUID(); Ughost->SetDisableGravity(true); Ughost->AI()->Talk(SAY_WP_4, me); } m_uiChatTimer = 4000; break; case 24: - if (Ughost) + if (Creature* Ughost = ObjectAccessor::GetCreature(*me, UghostGUID)) Ughost->AI()->Talk(SAY_WP_5, me); m_uiChatTimer = 4000; break; case 25: - if (Ughost) + if (Creature* Ughost = ObjectAccessor::GetCreature(*me, UghostGUID)) Ughost->AI()->Talk(SAY_WP_6, me); m_uiChatTimer = 4000; break; diff --git a/src/server/scripts/EasternKingdoms/zone_wetlands.cpp b/src/server/scripts/EasternKingdoms/zone_wetlands.cpp index e6c844b1b1e..94cea417b04 100644 --- a/src/server/scripts/EasternKingdoms/zone_wetlands.cpp +++ b/src/server/scripts/EasternKingdoms/zone_wetlands.cpp @@ -59,14 +59,22 @@ public: struct npc_tapoke_slim_jahnAI : public npc_escortAI { - npc_tapoke_slim_jahnAI(Creature* creature) : npc_escortAI(creature) { } + npc_tapoke_slim_jahnAI(Creature* creature) : npc_escortAI(creature) + { + Initialize(); + } + + void Initialize() + { + IsFriendSummoned = false; + } bool IsFriendSummoned; void Reset() override { if (!HasEscortState(STATE_ESCORT_ESCORTING)) - IsFriendSummoned = false; + Initialize(); } void WaypointReached(uint32 waypointId) override diff --git a/src/server/scripts/Events/childrens_week.cpp b/src/server/scripts/Events/childrens_week.cpp index 683b8d36011..4bc0642e348 100644 --- a/src/server/scripts/Events/childrens_week.cpp +++ b/src/server/scripts/Events/childrens_week.cpp @@ -27,7 +27,7 @@ enum Orphans ORPHAN_BLOOD_ELF = 22817, ORPHAN_DRAENEI = 22818, ORPHAN_HUMAN = 14305, - ORPHAN_ORCISH = 14444, + ORPHAN_ORCISH = 14444 }; enum Texts @@ -68,7 +68,7 @@ enum Texts TEXT_ELDER_KEKEK_1 = 1, TEXT_ALEXSTRASZA_2 = 2, - TEXT_KRASUS_8 = 8, + TEXT_KRASUS_8 = 8 }; enum Quests @@ -99,7 +99,7 @@ enum Quests QUEST_NOW_WHEN_I_GROW_UP = 11975, QUEST_HOME_OF_THE_BEAR_MEN = 13930, QUEST_THE_DRAGON_QUEEN_ORACLE = 13954, - QUEST_THE_DRAGON_QUEEN_WOLVAR = 13955, + QUEST_THE_DRAGON_QUEEN_WOLVAR = 13955 }; enum Areatriggers @@ -120,7 +120,7 @@ enum Areatriggers NPC_SPOREGGAR_CW_TRIGGER = 22829, NPC_THRONE_OF_ELEMENTS_CW_TRIGGER = 22839, NPC_SILVERMOON_01_CW_TRIGGER = 22866, - NPC_KRASUS = 27990, + NPC_KRASUS = 27990 }; enum Misc @@ -128,7 +128,7 @@ enum Misc SPELL_SNOWBALL = 21343, SPELL_ORPHAN_OUT = 58818, - DISPLAY_INVISIBLE = 11686, + DISPLAY_INVISIBLE = 11686 }; uint64 getOrphanGUID(Player* player, uint32 orphan) @@ -150,9 +150,12 @@ class npc_winterfin_playmate : public CreatureScript struct npc_winterfin_playmateAI : public ScriptedAI { - npc_winterfin_playmateAI(Creature* creature) : ScriptedAI(creature) { } + npc_winterfin_playmateAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } - void Reset() + void Initialize() { timer = 0; phase = 0; @@ -160,8 +163,12 @@ class npc_winterfin_playmate : public CreatureScript orphanGUID = 0; } - void MoveInLineOfSight(Unit* who) override + void Reset() override + { + Initialize(); + } + void MoveInLineOfSight(Unit* who) override { if (!phase && who && who->GetDistance2d(me) < 10.0f) if (Player* player = who->ToPlayer()) @@ -174,7 +181,7 @@ class npc_winterfin_playmate : public CreatureScript } } - void UpdateAI(uint32 diff) + void UpdateAI(uint32 diff) override { if (!phase) return; @@ -233,7 +240,7 @@ class npc_winterfin_playmate : public CreatureScript }; - CreatureAI* GetAI(Creature* creature) const + CreatureAI* GetAI(Creature* creature) const override { return new npc_winterfin_playmateAI(creature); } @@ -249,9 +256,12 @@ class npc_snowfall_glade_playmate : public CreatureScript struct npc_snowfall_glade_playmateAI : public ScriptedAI { - npc_snowfall_glade_playmateAI(Creature* creature) : ScriptedAI(creature) { } + npc_snowfall_glade_playmateAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } - void Reset() + void Initialize() { timer = 0; phase = 0; @@ -259,6 +269,11 @@ class npc_snowfall_glade_playmate : public CreatureScript orphanGUID = 0; } + void Reset() override + { + Initialize(); + } + void MoveInLineOfSight(Unit* who) override { @@ -273,7 +288,7 @@ class npc_snowfall_glade_playmate : public CreatureScript } } - void UpdateAI(uint32 diff) + void UpdateAI(uint32 diff) override { if (!phase) return; @@ -331,7 +346,7 @@ class npc_snowfall_glade_playmate : public CreatureScript uint64 orphanGUID; }; - CreatureAI* GetAI(Creature* pCreature) const + CreatureAI* GetAI(Creature* pCreature) const override { return new npc_snowfall_glade_playmateAI(pCreature); } @@ -349,10 +364,11 @@ class npc_the_biggest_tree : public CreatureScript { npc_the_biggest_treeAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); me->SetDisplayId(DISPLAY_INVISIBLE); } - void Reset() + void Initialize() { timer = 1000; phase = 0; @@ -360,8 +376,12 @@ class npc_the_biggest_tree : public CreatureScript orphanGUID = 0; } - void MoveInLineOfSight(Unit* who) override + void Reset() override + { + Initialize(); + } + void MoveInLineOfSight(Unit* who) override { if (!phase && who && who->GetDistance2d(me) < 10.0f) if (Player* player = who->ToPlayer()) @@ -374,7 +394,7 @@ class npc_the_biggest_tree : public CreatureScript } } - void UpdateAI(uint32 diff) + void UpdateAI(uint32 diff) override { if (!phase) return; @@ -421,7 +441,7 @@ class npc_the_biggest_tree : public CreatureScript }; - CreatureAI* GetAI(Creature* creature) const + CreatureAI* GetAI(Creature* creature) const override { return new npc_the_biggest_treeAI(creature); } @@ -437,9 +457,12 @@ class npc_high_oracle_soo_roo : public CreatureScript struct npc_high_oracle_soo_rooAI : public ScriptedAI { - npc_high_oracle_soo_rooAI(Creature* creature) : ScriptedAI(creature) { } + npc_high_oracle_soo_rooAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } - void Reset() + void Initialize() { timer = 0; phase = 0; @@ -447,6 +470,11 @@ class npc_high_oracle_soo_roo : public CreatureScript orphanGUID = 0; } + void Reset() override + { + Initialize(); + } + void MoveInLineOfSight(Unit* who) override { @@ -461,7 +489,7 @@ class npc_high_oracle_soo_roo : public CreatureScript } } - void UpdateAI(uint32 diff) + void UpdateAI(uint32 diff) override { if (!phase) return; @@ -510,7 +538,7 @@ class npc_high_oracle_soo_roo : public CreatureScript }; - CreatureAI* GetAI(Creature* creature) const + CreatureAI* GetAI(Creature* creature) const override { return new npc_high_oracle_soo_rooAI(creature); } @@ -526,9 +554,12 @@ class npc_elder_kekek : public CreatureScript struct npc_elder_kekekAI : public ScriptedAI { - npc_elder_kekekAI(Creature* creature) : ScriptedAI(creature) { } + npc_elder_kekekAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } - void Reset() + void Initialize() { timer = 0; phase = 0; @@ -536,8 +567,12 @@ class npc_elder_kekek : public CreatureScript orphanGUID = 0; } - void MoveInLineOfSight(Unit* who) override + void Reset() override + { + Initialize(); + } + void MoveInLineOfSight(Unit* who) override { if (!phase && who && who->GetDistance2d(me) < 10.0f) if (Player* player = who->ToPlayer()) @@ -550,7 +585,7 @@ class npc_elder_kekek : public CreatureScript } } - void UpdateAI(uint32 diff) + void UpdateAI(uint32 diff) override { if (!phase) return; @@ -598,7 +633,7 @@ class npc_elder_kekek : public CreatureScript }; - CreatureAI* GetAI(Creature* creature) const + CreatureAI* GetAI(Creature* creature) const override { return new npc_elder_kekekAI(creature); } @@ -615,9 +650,12 @@ class npc_the_etymidian : public CreatureScript struct npc_the_etymidianAI : public ScriptedAI { - npc_the_etymidianAI(Creature* creature) : ScriptedAI(creature) { } + npc_the_etymidianAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } - void Reset() + void Initialize() { timer = 0; phase = 0; @@ -625,8 +663,12 @@ class npc_the_etymidian : public CreatureScript orphanGUID = 0; } - void MoveInLineOfSight(Unit* who) override + void Reset() override + { + Initialize(); + } + void MoveInLineOfSight(Unit* who) override { if (!phase && who && who->GetDistance2d(me) < 10.0f) if (Player* player = who->ToPlayer()) @@ -639,7 +681,7 @@ class npc_the_etymidian : public CreatureScript } } - void UpdateAI(uint32 diff) + void UpdateAI(uint32 diff) override { if (!phase) return; @@ -695,7 +737,7 @@ class npc_the_etymidian : public CreatureScript }; - CreatureAI* GetAI(Creature* creature) const + CreatureAI* GetAI(Creature* creature) const override { return new npc_the_etymidianAI(creature); } @@ -711,9 +753,12 @@ class npc_alexstraza_the_lifebinder : public CreatureScript struct npc_alexstraza_the_lifebinderAI : public ScriptedAI { - npc_alexstraza_the_lifebinderAI(Creature* creature) : ScriptedAI(creature) { } + npc_alexstraza_the_lifebinderAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } - void Reset() + void Initialize() { timer = 0; phase = 0; @@ -721,6 +766,11 @@ class npc_alexstraza_the_lifebinder : public CreatureScript orphanGUID = 0; } + void Reset() override + { + Initialize(); + } + void SetData(uint32 type, uint32 data) override { // Existing SmartAI @@ -739,7 +789,6 @@ class npc_alexstraza_the_lifebinder : public CreatureScript } void MoveInLineOfSight(Unit* who) override - { if (!phase && who && who->GetDistance2d(me) < 10.0f) if (Player* player = who->ToPlayer()) @@ -761,7 +810,7 @@ class npc_alexstraza_the_lifebinder : public CreatureScript } } - void UpdateAI(uint32 diff) + void UpdateAI(uint32 diff) override { if (!phase) return; @@ -856,7 +905,7 @@ class npc_alexstraza_the_lifebinder : public CreatureScript }; - CreatureAI* GetAI(Creature* creature) const + CreatureAI* GetAI(Creature* creature) const override { return new npc_alexstraza_the_lifebinderAI(creature); } @@ -871,7 +920,7 @@ class at_bring_your_orphan_to : public AreaTriggerScript public: at_bring_your_orphan_to() : AreaTriggerScript("at_bring_your_orphan_to") { } - bool OnTrigger(Player* player, AreaTriggerEntry const* trigger) + bool OnTrigger(Player* player, AreaTriggerEntry const* trigger) override { if (player->isDead() || !player->HasAura(SPELL_ORPHAN_OUT)) return false; @@ -934,7 +983,6 @@ class npc_cw_area_trigger : public CreatureScript } void MoveInLineOfSight(Unit* who) override - { if (who && me->GetDistance2d(who) < 20.0f) if (Player* player = who->ToPlayer()) @@ -1009,7 +1057,7 @@ class npc_cw_area_trigger : public CreatureScript } }; - CreatureAI* GetAI(Creature* creature) const + CreatureAI* GetAI(Creature* creature) const override { return new npc_cw_area_triggerAI(creature); } @@ -1031,7 +1079,6 @@ class npc_grizzlemaw_cw_trigger : public CreatureScript } void MoveInLineOfSight(Unit* who) override - { if (who && who->GetDistance2d(me) < 10.0f) if (Player* player = who->ToPlayer()) @@ -1044,7 +1091,7 @@ class npc_grizzlemaw_cw_trigger : public CreatureScript } }; - CreatureAI* GetAI(Creature* creature) const + CreatureAI* GetAI(Creature* creature) const override { return new npc_grizzlemaw_cw_triggerAI(creature); } diff --git a/src/server/scripts/Kalimdor/BlackfathomDeeps/blackfathom_deeps.cpp b/src/server/scripts/Kalimdor/BlackfathomDeeps/blackfathom_deeps.cpp index e7beb4cf454..f8ba2ab6646 100644 --- a/src/server/scripts/Kalimdor/BlackfathomDeeps/blackfathom_deeps.cpp +++ b/src/server/scripts/Kalimdor/BlackfathomDeeps/blackfathom_deeps.cpp @@ -80,6 +80,7 @@ public: { npc_blackfathom_deeps_eventAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); if (creature->IsSummon()) { creature->SetHomePosition(HomePosition); @@ -89,6 +90,15 @@ public: instance = creature->GetInstanceScript(); } + void Initialize() + { + Flee = false; + + ravageTimer = urand(5000, 8000); + frostNovaTimer = urand(9000, 12000); + frostBoltVolleyTimer = urand(2000, 4000); + } + InstanceScript* instance; uint32 ravageTimer; @@ -99,11 +109,7 @@ public: void Reset() override { - Flee = false; - - ravageTimer = urand(5000, 8000); - frostNovaTimer = urand(9000, 12000); - frostBoltVolleyTimer = urand(2000, 4000); + Initialize(); } void AttackPlayer() diff --git a/src/server/scripts/Kalimdor/BlackfathomDeeps/blackfathom_deeps.h b/src/server/scripts/Kalimdor/BlackfathomDeeps/blackfathom_deeps.h index 07a388043a6..3ac99a32861 100644 --- a/src/server/scripts/Kalimdor/BlackfathomDeeps/blackfathom_deeps.h +++ b/src/server/scripts/Kalimdor/BlackfathomDeeps/blackfathom_deeps.h @@ -19,6 +19,8 @@ #ifndef BFD_H_ #define BFD_H_ +#define DataHeader "BFD" + enum Data64 { DATA_SHRINE1, diff --git a/src/server/scripts/Kalimdor/BlackfathomDeeps/boss_aku_mai.cpp b/src/server/scripts/Kalimdor/BlackfathomDeeps/boss_aku_mai.cpp index f6c34c6b555..b510a84b949 100644 --- a/src/server/scripts/Kalimdor/BlackfathomDeeps/boss_aku_mai.cpp +++ b/src/server/scripts/Kalimdor/BlackfathomDeeps/boss_aku_mai.cpp @@ -38,11 +38,19 @@ public: struct boss_aku_maiAI : public BossAI { - boss_aku_maiAI(Creature* creature) : BossAI(creature, TYPE_AKU_MAI) { } + boss_aku_maiAI(Creature* creature) : BossAI(creature, TYPE_AKU_MAI) + { + Initialize(); + } - void Reset() override + void Initialize() { IsEnraged = false; + } + + void Reset() override + { + Initialize(); _Reset(); } diff --git a/src/server/scripts/Kalimdor/BlackfathomDeeps/boss_gelihast.cpp b/src/server/scripts/Kalimdor/BlackfathomDeeps/boss_gelihast.cpp index 9e25de817fa..0eba1a14fa5 100644 --- a/src/server/scripts/Kalimdor/BlackfathomDeeps/boss_gelihast.cpp +++ b/src/server/scripts/Kalimdor/BlackfathomDeeps/boss_gelihast.cpp @@ -38,16 +38,22 @@ public: { boss_gelihastAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); } + void Initialize() + { + netTimer = urand(2000, 4000); + } + uint32 netTimer; InstanceScript* instance; void Reset() override { - netTimer = urand(2000, 4000); + Initialize(); instance->SetData(TYPE_GELIHAST, NOT_STARTED); } diff --git a/src/server/scripts/Kalimdor/BlackfathomDeeps/boss_kelris.cpp b/src/server/scripts/Kalimdor/BlackfathomDeeps/boss_kelris.cpp index 37fac0fa7de..d5860e4dbf7 100644 --- a/src/server/scripts/Kalimdor/BlackfathomDeeps/boss_kelris.cpp +++ b/src/server/scripts/Kalimdor/BlackfathomDeeps/boss_kelris.cpp @@ -43,9 +43,16 @@ public: { boss_kelrisAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); } + void Initialize() + { + mindBlastTimer = urand(2000, 5000); + sleepTimer = urand(9000, 12000); + } + uint32 mindBlastTimer; uint32 sleepTimer; @@ -53,8 +60,7 @@ public: void Reset() override { - mindBlastTimer = urand(2000, 5000); - sleepTimer = urand(9000, 12000); + Initialize(); instance->SetData(TYPE_KELRIS, NOT_STARTED); } diff --git a/src/server/scripts/Kalimdor/BlackfathomDeeps/instance_blackfathom_deeps.cpp b/src/server/scripts/Kalimdor/BlackfathomDeeps/instance_blackfathom_deeps.cpp index 940da4fcf52..28b414ba9ca 100644 --- a/src/server/scripts/Kalimdor/BlackfathomDeeps/instance_blackfathom_deeps.cpp +++ b/src/server/scripts/Kalimdor/BlackfathomDeeps/instance_blackfathom_deeps.cpp @@ -81,6 +81,7 @@ public: void Initialize() override { + SetHeaders(DataHeader); memset(&encounter, 0, sizeof(encounter)); twilightLordKelrisGUID = 0; diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_anetheron.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_anetheron.cpp index 7aaa2239745..782632602b3 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_anetheron.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_anetheron.cpp @@ -54,10 +54,20 @@ public: { boss_anetheronAI(Creature* creature) : hyjal_trashAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); go = false; } + void Initialize() + { + SwarmTimer = 45000; + SleepTimer = 60000; + AuraTimer = 5000; + InfernoTimer = 45000; + damageTaken = 0; + } + uint32 SwarmTimer; uint32 SleepTimer; uint32 AuraTimer; @@ -66,11 +76,7 @@ public: void Reset() override { - damageTaken = 0; - SwarmTimer = 45000; - SleepTimer = 60000; - AuraTimer = 5000; - InfernoTimer = 45000; + Initialize(); if (IsEvent) instance->SetData(DATA_ANETHERONEVENT, NOT_STARTED); diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_archimonde.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_archimonde.cpp index 576b3dbdb39..2885a838cee 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_archimonde.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_archimonde.cpp @@ -90,7 +90,13 @@ public: { npc_ancient_wispAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); + } + + void Initialize() + { + CheckTimer = 1000; ArchimondeGUID = 0; } @@ -100,7 +106,7 @@ public: void Reset() override { - CheckTimer = 1000; + Initialize(); ArchimondeGUID = instance->GetData64(DATA_ARCHIMONDE); @@ -174,15 +180,23 @@ public: struct npc_doomfire_targettingAI : public ScriptedAI { - npc_doomfire_targettingAI(Creature* creature) : ScriptedAI(creature) { } + npc_doomfire_targettingAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } + + void Initialize() + { + TargetGUID = 0; + ChangeTargetTimer = 5000; + } uint64 TargetGUID; uint32 ChangeTargetTimer; void Reset() override { - TargetGUID = 0; - ChangeTargetTimer = 5000; + Initialize(); } void MoveInLineOfSight(Unit* who) override @@ -244,9 +258,36 @@ public: { boss_archimondeAI(Creature* creature) : hyjal_trashAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); } + void Initialize() + { + DoomfireSpiritGUID = 0; + damageTaken = 0; + WorldTreeGUID = 0; + + DrainNordrassilTimer = 0; + FearTimer = 42000; + AirBurstTimer = 30000; + GripOfTheLegionTimer = urand(5000, 25000); + DoomfireTimer = 20000; + SoulChargeTimer = urand(2000, 30000); + SoulChargeCount = 0; + MeleeRangeCheckTimer = 15000; + HandOfDeathTimer = 2000; + WispCount = 0; // When ~30 wisps are summoned, Archimonde dies + EnrageTimer = 600000; // 10 minutes + CheckDistanceTimer = 30000; // This checks if he's too close to the World Tree (75 yards from a point on the tree), if true then he will enrage + SummonWispTimer = 0; + + Enraged = false; + BelowTenPercent = false; + HasProtected = false; + IsChanneling = false; + } + InstanceScript* instance; uint64 DoomfireSpiritGUID; @@ -275,28 +316,7 @@ public: { instance->SetData(DATA_ARCHIMONDEEVENT, NOT_STARTED); - DoomfireSpiritGUID = 0; - damageTaken = 0; - WorldTreeGUID = 0; - - DrainNordrassilTimer = 0; - FearTimer = 42000; - AirBurstTimer = 30000; - GripOfTheLegionTimer = urand(5000, 25000); - DoomfireTimer = 20000; - SoulChargeTimer = urand(2000, 30000); - SoulChargeCount = 0; - MeleeRangeCheckTimer = 15000; - HandOfDeathTimer = 2000; - WispCount = 0; // When ~30 wisps are summoned, Archimonde dies - EnrageTimer = 600000; // 10 minutes - CheckDistanceTimer = 30000; // This checks if he's too close to the World Tree (75 yards from a point on the tree), if true then he will enrage - SummonWispTimer = 0; - - Enraged = false; - BelowTenPercent = false; - HasProtected = false; - IsChanneling = false; + Initialize(); } void EnterCombat(Unit* /*who*/) override diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_azgalor.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_azgalor.cpp index 38e398f3d5b..7e50fd7b775 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_azgalor.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_azgalor.cpp @@ -55,10 +55,22 @@ public: { boss_azgalorAI(Creature* creature) : hyjal_trashAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); go = false; } + void Initialize() + { + damageTaken = 0; + RainTimer = 20000; + DoomTimer = 50000; + HowlTimer = 30000; + CleaveTimer = 10000; + EnrageTimer = 600000; + enraged = false; + } + uint32 RainTimer; uint32 DoomTimer; uint32 HowlTimer; @@ -70,13 +82,7 @@ public: void Reset() override { - damageTaken = 0; - RainTimer = 20000; - DoomTimer = 50000; - HowlTimer = 30000; - CleaveTimer = 10000; - EnrageTimer = 600000; - enraged = false; + Initialize(); if (IsEvent) instance->SetData(DATA_AZGALOREVENT, NOT_STARTED); diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_kazrogal.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_kazrogal.cpp index c5fcb150d3f..d3c137b67e8 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_kazrogal.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_kazrogal.cpp @@ -56,10 +56,20 @@ public: { boss_kazrogalAI(Creature* creature) : hyjal_trashAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); go = false; } + void Initialize() + { + damageTaken = 0; + CleaveTimer = 5000; + WarStompTimer = 15000; + MarkTimer = 45000; + MarkTimerBase = 45000; + } + uint32 CleaveTimer; uint32 WarStompTimer; uint32 MarkTimer; @@ -68,11 +78,7 @@ public: void Reset() override { - damageTaken = 0; - CleaveTimer = 5000; - WarStompTimer = 15000; - MarkTimer = 45000; - MarkTimerBase = 45000; + Initialize(); if (IsEvent) instance->SetData(DATA_KAZROGALEVENT, NOT_STARTED); diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_rage_winterchill.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_rage_winterchill.cpp index c37b9d910e7..5ce9b30eb58 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_rage_winterchill.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_rage_winterchill.cpp @@ -51,10 +51,20 @@ public: { boss_rage_winterchillAI(Creature* creature) : hyjal_trashAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); go = false; } + void Initialize() + { + damageTaken = 0; + FrostArmorTimer = 37000; + DecayTimer = 45000; + NovaTimer = 15000; + IceboltTimer = 10000; + } + uint32 FrostArmorTimer; uint32 DecayTimer; uint32 NovaTimer; @@ -63,11 +73,7 @@ public: void Reset() override { - damageTaken = 0; - FrostArmorTimer = 37000; - DecayTimer = 45000; - NovaTimer = 15000; - IceboltTimer = 10000; + Initialize(); if (IsEvent) instance->SetData(DATA_RAGEWINTERCHILLEVENT, NOT_STARTED); diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal.h b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal.h index 7ea09d2cda1..c5f4d4ae679 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal.h +++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal.h @@ -19,7 +19,7 @@ #ifndef DEF_HYJAL_H #define DEF_HYJAL_H -#define ERROR_INST_DATA "TSCR: Instance data not set properly for Mount Hyjal. Encounters will be buggy." +#define DataHeader "HY" uint32 const EncounterCount = 5; diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.cpp index b9c6025b91c..a7fa54b12e1 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.cpp @@ -317,6 +317,7 @@ float HordeFirePos[65][8]=//spawn points for the fire visuals (GO) in the horde hyjalAI::hyjalAI(Creature* creature) : npc_escortAI(creature), Summons(me) { + Initialize(); instance = creature->GetInstanceScript(); VeinsSpawned[0] = false; VeinsSpawned[1] = false; @@ -332,25 +333,15 @@ hyjalAI::hyjalAI(Creature* creature) : npc_escortAI(creature), Summons(me) InfernalPoint = 0; RespawnTimer = 10000; DoRespawn = false; - DoHide = false; MassTeleportTimer = 0; DoMassTeleport = false; + DummyGuid = 0; } -void hyjalAI::JustSummoned(Creature* summoned) -{ - Summons.Summon(summoned); -} - -void hyjalAI::SummonedCreatureDespawn(Creature* summoned) -{ - Summons.Despawn(summoned); -} - -void hyjalAI::Reset() +void hyjalAI::Initialize() { IsDummy = false; - me->setActive(true); + // GUIDs PlayerGUID = 0; BossGUID[0] = 0; @@ -365,6 +356,39 @@ void hyjalAI::Reset() WaveCount = 0; EnemyCount = 0; + //Bools + EventBegun = false; + FirstBossDead = false; + SecondBossDead = false; + Summon = false; + bRetreat = false; + Debug = false; + + //Visibility + DoHide = true; + + //Initialize spells + memset(Spells, 0, sizeof(Spell) * HYJAL_AI_MAX_SPELLS); + + Faction = 0; +} + +void hyjalAI::JustSummoned(Creature* summoned) +{ + Summons.Summon(summoned); +} + +void hyjalAI::SummonedCreatureDespawn(Creature* summoned) +{ + Summons.Despawn(summoned); +} + +void hyjalAI::Reset() +{ + me->setActive(true); + + Initialize(); + // Set faction properly based on Creature entry switch (me->GetEntry()) { @@ -382,20 +406,9 @@ void hyjalAI::Reset() break; } - //Bools - EventBegun = false; - FirstBossDead = false; - SecondBossDead = false; - Summon = false; - bRetreat = false; - Debug = false; - //Flags me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); - //Initialize spells - memset(Spells, 0, sizeof(Spell) * HYJAL_AI_MAX_SPELLS); - //Reset Instance Data for trash count if ((!instance->GetData(DATA_ALLIANCE_RETREAT) && me->GetEntry() == JAINA) || (instance->GetData(DATA_ALLIANCE_RETREAT) && me->GetEntry() == THRALL)) { @@ -405,9 +418,6 @@ void hyjalAI::Reset() instance->DoUpdateWorldState(WORLD_STATE_ENEMYCOUNT, 0); instance->SetData(DATA_RESET_TRASH_COUNT, 0); } - - //Visibility - DoHide = true; } void hyjalAI::EnterEvadeMode() diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.h b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.h index c91414eba9d..43afc58879c 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.h +++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.h @@ -119,6 +119,8 @@ struct hyjalAI : public npc_escortAI { hyjalAI(Creature* creature); + void Initialize(); + void Reset(); // Generically used to reset our variables. Do *not* call in EnterEvadeMode as this may make problems if the raid is still in combat void EnterEvadeMode(); // Send creature back to spawn location and evade. diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal_trash.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal_trash.cpp index 7537654c09c..8e1a78ea5f2 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal_trash.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal_trash.cpp @@ -1135,9 +1135,15 @@ public: { npc_frost_wyrmAI(Creature* creature) : hyjal_trashAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); go = false; - Reset(); + } + + void Initialize() + { + FrostBreathTimer = 5000; + MoveTimer = 0; } bool go; @@ -1146,8 +1152,7 @@ public: void Reset() override { - FrostBreathTimer = 5000; - MoveTimer = 0; + Initialize(); me->SetDisableGravity(true); } @@ -1388,9 +1393,15 @@ public: { alliance_riflemanAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); SetCombatMovement(false); } + void Initialize() + { + ExplodeTimer = 5000 + rand32() % 5000; + } + uint32 ExplodeTimer; void JustDied(Unit* /*killer*/) override @@ -1399,7 +1410,7 @@ public: void Reset() override { - ExplodeTimer = 5000 + rand32() % 5000; + Initialize(); } void MoveInLineOfSight(Unit* who) override diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/instance_hyjal.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/instance_hyjal.cpp index b228cb91382..6c718a4a16a 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/instance_hyjal.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/instance_hyjal.cpp @@ -59,6 +59,7 @@ public: void Initialize() override { + SetHeaders(DataHeader); memset(&m_auiEncounter, 0, sizeof(m_auiEncounter)); m_uiAncientGemGUID.clear(); diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_chrono_lord_epoch.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_chrono_lord_epoch.cpp index 44e1067498d..0a666488e84 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_chrono_lord_epoch.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_chrono_lord_epoch.cpp @@ -59,9 +59,20 @@ public: { boss_epochAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); } + void Initialize() + { + uiStep = 1; + uiStepTimer = 26000; + uiCurseOfExertionTimer = 9300; + uiTimeWarpTimer = 25300; + uiTimeStopTimer = 21300; + uiWoundingStrikeTimer = 5300; + } + uint8 uiStep; uint32 uiStepTimer; @@ -74,12 +85,7 @@ public: void Reset() override { - uiStep = 1; - uiStepTimer = 26000; - uiCurseOfExertionTimer = 9300; - uiTimeWarpTimer = 25300; - uiTimeStopTimer = 21300; - uiWoundingStrikeTimer = 5300; + Initialize(); instance->SetData(DATA_EPOCH_EVENT, NOT_STARTED); } diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_mal_ganis.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_mal_ganis.cpp index 6d36a933687..d9356b724c0 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_mal_ganis.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_mal_ganis.cpp @@ -73,7 +73,21 @@ public: { boss_mal_ganisAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); + uiOutroStep = 0; + } + + void Initialize() + { + bYelled = false; + bYelled2 = false; + Phase = COMBAT; + uiCarrionSwarmTimer = 6000; + uiMindBlastTimer = 11000; + uiVampiricTouchTimer = urand(10000, 15000); + uiSleepTimer = urand(15000, 20000); + uiOutroTimer = 1000; } uint32 uiCarrionSwarmTimer; @@ -93,16 +107,9 @@ public: void Reset() override { - bYelled = false; - bYelled2 = false; - Phase = COMBAT; - uiCarrionSwarmTimer = 6000; - uiMindBlastTimer = 11000; - uiVampiricTouchTimer = urand(10000, 15000); - uiSleepTimer = urand(15000, 20000); - uiOutroTimer = 1000; - - instance->SetData(DATA_MAL_GANIS_EVENT, NOT_STARTED); + Initialize(); + + instance->SetData(DATA_MAL_GANIS_EVENT, NOT_STARTED); } void EnterCombat(Unit* /*who*/) override diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_meathook.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_meathook.cpp index 4c26b30947f..c961bf9b2c6 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_meathook.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_meathook.cpp @@ -58,10 +58,18 @@ public: { boss_meathookAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); Talk(SAY_SPAWN); } + void Initialize() + { + uiChainTimer = urand(12000, 17000); //seen on video 13, 17, 15, 12, 16 + uiDiseaseTimer = urand(2000, 4000); //approx 3s + uiFrenzyTimer = urand(21000, 26000); //made it up + } + uint32 uiChainTimer; uint32 uiDiseaseTimer; uint32 uiFrenzyTimer; @@ -70,9 +78,7 @@ public: void Reset() override { - uiChainTimer = urand(12000, 17000); //seen on video 13, 17, 15, 12, 16 - uiDiseaseTimer = urand(2000, 4000); //approx 3s - uiFrenzyTimer = urand(21000, 26000); //made it up + Initialize(); instance->SetData(DATA_MEATHOOK_EVENT, NOT_STARTED); } diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_salramm_the_fleshcrafter.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_salramm_the_fleshcrafter.cpp index 7c299b1feaa..1c35a38a5e3 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_salramm_the_fleshcrafter.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_salramm_the_fleshcrafter.cpp @@ -63,10 +63,20 @@ public: { boss_salrammAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); Talk(SAY_SPAWN); } + void Initialize() + { + uiCurseFleshTimer = 30000; //30s DBM + uiExplodeGhoulTimer = urand(25000, 28000); //approx 6 sec after summon ghouls + uiShadowBoltTimer = urand(8000, 12000); // approx 10s + uiStealFleshTimer = 12345; + uiSummonGhoulsTimer = urand(19000, 24000); //on a video approx 24s after aggro + } + uint32 uiCurseFleshTimer; uint32 uiExplodeGhoulTimer; uint32 uiShadowBoltTimer; @@ -77,13 +87,9 @@ public: void Reset() override { - uiCurseFleshTimer = 30000; //30s DBM - uiExplodeGhoulTimer = urand(25000, 28000); //approx 6 sec after summon ghouls - uiShadowBoltTimer = urand(8000, 12000); // approx 10s - uiStealFleshTimer = 12345; - uiSummonGhoulsTimer = urand(19000, 24000); //on a video approx 24s after aggro + Initialize(); - instance->SetData(DATA_SALRAMM_EVENT, NOT_STARTED); + instance->SetData(DATA_SALRAMM_EVENT, NOT_STARTED); } void EnterCombat(Unit* /*who*/) override diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.cpp index fd832051421..b8a9b295161 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.cpp @@ -351,8 +351,37 @@ public: { npc_arthasAI(Creature* creature) : npc_escortAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); - Reset(); + bStepping = false; + step = 0; + gossipStep = 0; + bossEvent = 0; + } + + void Initialize() + { + utherGUID = 0; + jainaGUID = 0; + + for (uint8 i = 0; i < 2; ++i) + citymenGUID[i] = 0; + + for (uint8 i = 0; i < ENCOUNTER_WAVES_MAX_SPAWNS; ++i) + waveGUID[i] = 0; + + for (uint8 i = 0; i < ENCOUNTER_DRACONIAN_NUMBER; ++i) + infiniteDraconianGUID[i] = 0; + + stalkerGUID = 0; + bossGUID = 0; + epochGUID = 0; + malganisGUID = 0; + infiniteGUID = 0; + + phaseTimer = 1000; + exorcismTimer = 7300; + wave = 0; } InstanceScript* instance; @@ -361,7 +390,6 @@ public: uint32 step; uint32 phaseTimer; uint32 gossipStep; - uint32 playerFaction; uint32 bossEvent; uint32 wave; @@ -381,23 +409,7 @@ public: void Reset() override { - utherGUID = 0; - jainaGUID = 0; - - for (uint8 i = 0; i < 2; ++i) - citymenGUID[i] = 0; - - for (uint8 i = 0; i < ENCOUNTER_WAVES_MAX_SPAWNS; ++i) - waveGUID[i] = 0; - - for (uint8 i = 0; i < ENCOUNTER_DRACONIAN_NUMBER; ++i) - infiniteDraconianGUID[i] = 0; - - stalkerGUID = 0; - bossGUID = 0; - epochGUID = 0; - malganisGUID = 0; - infiniteGUID = 0; + Initialize(); instance->SetData(DATA_ARTHAS_EVENT, NOT_STARTED); switch (instance->GetData(DATA_ARTHAS_EVENT)) @@ -410,9 +422,6 @@ public: gossipStep = 0; break; } - phaseTimer = 1000; - exorcismTimer = 7300; - wave = 0; } void EnterCombat(Unit* /*who*/) override diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.h b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.h index 649d9dbf803..e7d1033e55f 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.h +++ b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.h @@ -18,6 +18,8 @@ #ifndef DEF_CULLING_OF_STRATHOLME_H #define DEF_CULLING_OF_STRATHOLME_H +#define DataHeader "CS" + enum Data { DATA_MEATHOOK_EVENT, diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/instance_culling_of_stratholme.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/instance_culling_of_stratholme.cpp index 503166e0b12..7af2b3f63aa 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/instance_culling_of_stratholme.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/instance_culling_of_stratholme.cpp @@ -54,6 +54,7 @@ class instance_culling_of_stratholme : public InstanceMapScript { instance_culling_of_stratholme_InstanceMapScript(Map* map) : InstanceScript(map) { + SetHeaders(DataHeader); _arthasGUID = 0; _meathookGUID = 0; _salrammGUID = 0; diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_captain_skarloc.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_captain_skarloc.cpp index b63075b681a..611ef38d626 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_captain_skarloc.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_captain_skarloc.cpp @@ -61,9 +61,20 @@ public: { boss_captain_skarlocAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); } + void Initialize() + { + Holy_Light_Timer = urand(20000, 30000); + Cleanse_Timer = 10000; + HammerOfJustice_Timer = urand(20000, 35000); + HolyShield_Timer = 240000; + DevotionAura_Timer = 3000; + Consecration_Timer = 8000; + } + InstanceScript* instance; uint32 Holy_Light_Timer; @@ -75,12 +86,7 @@ public: void Reset() override { - Holy_Light_Timer = urand(20000, 30000); - Cleanse_Timer = 10000; - HammerOfJustice_Timer = urand(20000, 35000); - HolyShield_Timer = 240000; - DevotionAura_Timer = 3000; - Consecration_Timer = 8000; + Initialize(); } void EnterCombat(Unit* /*who*/) override diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_epoch_hunter.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_epoch_hunter.cpp index e27dec09802..1916e184dbb 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_epoch_hunter.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_epoch_hunter.cpp @@ -59,9 +59,18 @@ public: { boss_epoch_hunterAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); } + void Initialize() + { + SandBreath_Timer = urand(8000, 16000); + ImpendingDeath_Timer = urand(25000, 30000); + WingBuffet_Timer = 35000; + Mda_Timer = 40000; + } + InstanceScript* instance; uint32 SandBreath_Timer; @@ -71,10 +80,7 @@ public: void Reset() override { - SandBreath_Timer = urand(8000, 16000); - ImpendingDeath_Timer = urand(25000, 30000); - WingBuffet_Timer = 35000; - Mda_Timer = 40000; + Initialize(); } void EnterCombat(Unit* /*who*/) override diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_leutenant_drake.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_leutenant_drake.cpp index 2cf5169b530..8d23cf0a3e4 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_leutenant_drake.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_leutenant_drake.cpp @@ -114,7 +114,21 @@ public: struct boss_lieutenant_drakeAI : public ScriptedAI { - boss_lieutenant_drakeAI(Creature* creature) : ScriptedAI(creature) { } + boss_lieutenant_drakeAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } + + void Initialize() + { + CanPatrol = true; + wpId = 0; + + Whirlwind_Timer = 20000; + Fear_Timer = 30000; + MortalStrike_Timer = 45000; + ExplodingShout_Timer = 25000; + } bool CanPatrol; uint32 wpId; @@ -126,13 +140,7 @@ public: void Reset() override { - CanPatrol = true; - wpId = 0; - - Whirlwind_Timer = 20000; - Fear_Timer = 30000; - MortalStrike_Timer = 45000; - ExplodingShout_Timer = 25000; + Initialize(); } void EnterCombat(Unit* /*who*/) override diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/instance_old_hillsbrad.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/instance_old_hillsbrad.cpp index 6fc36663c2a..32062be6f3c 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/instance_old_hillsbrad.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/instance_old_hillsbrad.cpp @@ -64,6 +64,7 @@ public: void Initialize() override { + SetHeaders(DataHeader); memset(&m_auiEncounter, 0, sizeof(m_auiEncounter)); mBarrelCount = 0; diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.cpp index 1dc86cd4ad4..56e95fafece 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.cpp @@ -276,11 +276,17 @@ public: { npc_thrall_old_hillsbradAI(Creature* creature) : npc_escortAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); HadMount = false; me->setActive(true); } + void Initialize() + { + LowHp = false; + } + InstanceScript* instance; bool LowHp; @@ -451,7 +457,7 @@ public: void Reset() override { - LowHp = false; + Initialize(); if (HadMount) DoMount(); diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.h b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.h index 57b0a1fce85..b8a0909e99e 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.h +++ b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.h @@ -19,6 +19,8 @@ #ifndef DEF_OLD_HILLSBRAD_H #define DEF_OLD_HILLSBRAD_H +#define DataHeader "OH" + enum DataTypes { TYPE_BARREL_DIVERSION = 1, diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/instance_the_black_morass.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/instance_the_black_morass.cpp index 3e776a0c905..35497b1f9ce 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/instance_the_black_morass.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/instance_the_black_morass.cpp @@ -94,6 +94,7 @@ public: void Initialize() override { + SetHeaders(DataHeader); _medivhGUID = 0; Clear(); } diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/the_black_morass.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/the_black_morass.cpp index a1c4f057161..1fa104ada00 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/the_black_morass.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/the_black_morass.cpp @@ -77,9 +77,19 @@ public: { npc_medivh_bmAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); } + void Initialize() + { + SpellCorrupt_Timer = 0; + Check_Timer = 0; + Life75 = true; + Life50 = true; + Life25 = true; + } + InstanceScript* instance; uint32 SpellCorrupt_Timer; @@ -91,11 +101,7 @@ public: void Reset() override { - SpellCorrupt_Timer = 0; - Check_Timer = 0; - Life75 = true; - Life50 = true; - Life25 = true; + Initialize(); if (instance->GetData(TYPE_MEDIVH) == IN_PROGRESS) DoCast(me, SPELL_CHANNEL, true); @@ -265,23 +271,28 @@ public: { npc_time_riftAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); } + void Initialize() + { + TimeRiftWave_Timer = 15000; + mRiftWaveCount = 0; + mWaveId = 0; + } + InstanceScript* instance; uint32 TimeRiftWave_Timer; uint8 mRiftWaveCount; - uint8 mPortalCount; uint8 mWaveId; void Reset() override { + Initialize(); - TimeRiftWave_Timer = 15000; - mRiftWaveCount = 0; - - mPortalCount = instance->GetData(DATA_PORTAL_COUNT); + uint8 mPortalCount = instance->GetData(DATA_PORTAL_COUNT); if (mPortalCount < 6) mWaveId = 0; diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/the_black_morass.h b/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/the_black_morass.h index 25f10f22907..b236c5eaa6c 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/the_black_morass.h +++ b/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/the_black_morass.h @@ -19,6 +19,8 @@ #ifndef DEF_THEBLACKMORASS_H #define DEF_THEBLACKMORASS_H +#define DataHeader "TBM" + uint32 const EncounterCount = 2; enum DataTypes diff --git a/src/server/scripts/Kalimdor/Maraudon/boss_celebras_the_cursed.cpp b/src/server/scripts/Kalimdor/Maraudon/boss_celebras_the_cursed.cpp index 15330643bd3..b8eb489461c 100644 --- a/src/server/scripts/Kalimdor/Maraudon/boss_celebras_the_cursed.cpp +++ b/src/server/scripts/Kalimdor/Maraudon/boss_celebras_the_cursed.cpp @@ -45,7 +45,17 @@ public: struct celebras_the_cursedAI : public ScriptedAI { - celebras_the_cursedAI(Creature* creature) : ScriptedAI(creature) { } + celebras_the_cursedAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } + + void Initialize() + { + WrathTimer = 8000; + EntanglingRootsTimer = 2000; + CorruptForcesTimer = 30000; + } uint32 WrathTimer; uint32 EntanglingRootsTimer; @@ -53,9 +63,7 @@ public: void Reset() override { - WrathTimer = 8000; - EntanglingRootsTimer = 2000; - CorruptForcesTimer = 30000; + Initialize(); } void EnterCombat(Unit* /*who*/) override { } diff --git a/src/server/scripts/Kalimdor/Maraudon/boss_landslide.cpp b/src/server/scripts/Kalimdor/Maraudon/boss_landslide.cpp index 12016d2223a..59bcdc89171 100644 --- a/src/server/scripts/Kalimdor/Maraudon/boss_landslide.cpp +++ b/src/server/scripts/Kalimdor/Maraudon/boss_landslide.cpp @@ -45,7 +45,17 @@ public: struct boss_landslideAI : public ScriptedAI { - boss_landslideAI(Creature* creature) : ScriptedAI(creature) { } + boss_landslideAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } + + void Initialize() + { + KnockAwayTimer = 8000; + TrampleTimer = 2000; + LandslideTimer = 0; + } uint32 KnockAwayTimer; uint32 TrampleTimer; @@ -53,9 +63,7 @@ public: void Reset() override { - KnockAwayTimer = 8000; - TrampleTimer = 2000; - LandslideTimer = 0; + Initialize(); } void EnterCombat(Unit* /*who*/) override diff --git a/src/server/scripts/Kalimdor/Maraudon/boss_noxxion.cpp b/src/server/scripts/Kalimdor/Maraudon/boss_noxxion.cpp index 8c7197b2942..a7aa487db90 100644 --- a/src/server/scripts/Kalimdor/Maraudon/boss_noxxion.cpp +++ b/src/server/scripts/Kalimdor/Maraudon/boss_noxxion.cpp @@ -44,7 +44,19 @@ public: struct boss_noxxionAI : public ScriptedAI { - boss_noxxionAI(Creature* creature) : ScriptedAI(creature) { } + boss_noxxionAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } + + void Initialize() + { + ToxicVolleyTimer = 7000; + UppercutTimer = 16000; + AddsTimer = 19000; + InvisibleTimer = 15000; //Too much too low? + Invisible = false; + } uint32 ToxicVolleyTimer; uint32 UppercutTimer; @@ -54,11 +66,7 @@ public: void Reset() override { - ToxicVolleyTimer = 7000; - UppercutTimer = 16000; - AddsTimer = 19000; - InvisibleTimer = 15000; //Too much too low? - Invisible = false; + Initialize(); } void EnterCombat(Unit* /*who*/) override { } diff --git a/src/server/scripts/Kalimdor/Maraudon/boss_princess_theradras.cpp b/src/server/scripts/Kalimdor/Maraudon/boss_princess_theradras.cpp index 0d48d8f43c6..a36e8f09d21 100644 --- a/src/server/scripts/Kalimdor/Maraudon/boss_princess_theradras.cpp +++ b/src/server/scripts/Kalimdor/Maraudon/boss_princess_theradras.cpp @@ -47,7 +47,18 @@ public: struct boss_ptheradrasAI : public ScriptedAI { - boss_ptheradrasAI(Creature* creature) : ScriptedAI(creature) { } + boss_ptheradrasAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } + + void Initialize() + { + DustfieldTimer = 8000; + BoulderTimer = 2000; + ThrashTimer = 5000; + RepulsiveGazeTimer = 23000; + } uint32 DustfieldTimer; uint32 BoulderTimer; @@ -56,10 +67,7 @@ public: void Reset() override { - DustfieldTimer = 8000; - BoulderTimer = 2000; - ThrashTimer = 5000; - RepulsiveGazeTimer = 23000; + Initialize(); } void EnterCombat(Unit* /*who*/) override { } diff --git a/src/server/scripts/Kalimdor/OnyxiasLair/boss_onyxia.cpp b/src/server/scripts/Kalimdor/OnyxiasLair/boss_onyxia.cpp index f04b5634616..347c87b160b 100644 --- a/src/server/scripts/Kalimdor/OnyxiasLair/boss_onyxia.cpp +++ b/src/server/scripts/Kalimdor/OnyxiasLair/boss_onyxia.cpp @@ -111,6 +111,7 @@ static OnyxMove MoveData[8]= Position const MiddleRoomLocation = {-23.6155f, -215.357f, -55.7344f, 0.0f}; Position const Phase2Location = {-80.924f, -214.299f, -82.942f, 0.0f}; +Position const Phase2Floating = { -80.924f, -214.299f, -57.942f, 0.0f }; Position const SpawnLocations[3]= { @@ -128,7 +129,7 @@ public: struct boss_onyxiaAI : public BossAI { - boss_onyxiaAI(Creature* creature) : BossAI(creature, DATA_ONYXIA), Summons(me) + boss_onyxiaAI(Creature* creature) : BossAI(creature, DATA_ONYXIA) { Reset(); } @@ -138,16 +139,16 @@ public: if (!IsCombatMovementAllowed()) SetCombatMovement(true); + _Reset(); + Phase = PHASE_START; MovePoint = urand(0, 5); PointData = GetMoveData(); - Summons.DespawnAll(); SummonWhelpCount = 0; IsMoving = false; - instance->SetBossState(DATA_ONYXIA, NOT_STARTED); instance->SetData(DATA_ONYXIA_PHASE, Phase); - instance->DoStopTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, ACHIEV_TIMED_START_EVENT); + instance->DoStopTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, ACHIEV_TIMED_START_EVENT); } void EnterCombat(Unit* /*who*/) override @@ -155,20 +156,15 @@ public: Talk(SAY_AGGRO); me->SetInCombatWithZone(); - events.ScheduleEvent(EVENT_FLAME_BREATH, urand (10000, 20000)); - events.ScheduleEvent(EVENT_TAIL_SWEEP, urand (15000, 20000)); - events.ScheduleEvent(EVENT_CLEAVE, urand (2000, 5000)); - events.ScheduleEvent(EVENT_WING_BUFFET, urand (10000, 20000)); - - instance->SetBossState(DATA_ONYXIA, IN_PROGRESS); - instance->DoStartTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, ACHIEV_TIMED_START_EVENT); - } + events.Reset(); - void JustDied(Unit* /*killer*/) override - { - instance->SetBossState(DATA_ONYXIA, DONE); + events.ScheduleEvent(EVENT_FLAME_BREATH, urand(10000, 20000)); + events.ScheduleEvent(EVENT_TAIL_SWEEP, urand(15000, 20000)); + events.ScheduleEvent(EVENT_CLEAVE, urand(2000, 5000)); + events.ScheduleEvent(EVENT_WING_BUFFET, urand(10000, 20000)); - Summons.DespawnAll(); + instance->SetBossState(DATA_ONYXIA, IN_PROGRESS); + instance->DoStartTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, ACHIEV_TIMED_START_EVENT); } void JustSummoned(Creature* summoned) override @@ -186,13 +182,9 @@ public: summoned->setActive(true); break; } - Summons.Summon(summoned); + summons.Summon(summoned); } - void SummonedCreatureDespawn(Creature* summon) override - { - Summons.Despawn(summon); - } void KilledUnit(Unit* /*victim*/) override { @@ -231,22 +223,43 @@ public: } break; case 9: - me->GetMotionMaster()->MoveChase(me->GetVictim()); - events.ScheduleEvent(EVENT_BELLOWING_ROAR, 1000); + me->SetCanFly(false); + me->SetDisableGravity(false); + me->RemoveByteFlag(UNIT_FIELD_BYTES_1, 3, UNIT_BYTE1_FLAG_ALWAYS_STAND | UNIT_BYTE1_FLAG_HOVER); + if (Creature* trigger = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_TRIGGER_GUID))) + me->Kill(trigger); + me->SetReactState(REACT_AGGRESSIVE); + // tank selection based on phase one. If tank is not there i take nearest one + if (Unit* tank = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_TANK_GUID))) + me->GetMotionMaster()->MoveChase(tank); + else if (Unit* newtarget = SelectTarget(SELECT_TARGET_NEAREST, 0)) + me->GetMotionMaster()->MoveChase(newtarget); + events.ScheduleEvent(EVENT_BELLOWING_ROAR, 5000); + events.ScheduleEvent(EVENT_FLAME_BREATH, urand(10000, 20000)); + events.ScheduleEvent(EVENT_TAIL_SWEEP, urand(15000, 20000)); + events.ScheduleEvent(EVENT_CLEAVE, urand(2000, 5000)); + events.ScheduleEvent(EVENT_WING_BUFFET, urand(15000, 30000)); break; case 10: me->SetCanFly(true); - me->GetMotionMaster()->MovePoint(11, Phase2Location.GetPositionX(), Phase2Location.GetPositionY(), Phase2Location.GetPositionZ()+25); + me->SetDisableGravity(true); + me->SetByteFlag(UNIT_FIELD_BYTES_1, 3, UNIT_BYTE1_FLAG_ALWAYS_STAND | UNIT_BYTE1_FLAG_HOVER); + me->SetFacingTo(me->GetOrientation() + float(M_PI)); + if (Creature * trigger = me->SummonCreature(NPC_TRIGGER, MiddleRoomLocation, TEMPSUMMON_CORPSE_DESPAWN)) + instance->SetData64(DATA_TRIGGER_GUID, trigger->GetGUID()); + me->GetMotionMaster()->MoveTakeoff(11, Phase2Floating); me->SetSpeed(MOVE_FLIGHT, 1.0f); Talk(SAY_PHASE_2_TRANS); instance->SetData(DATA_ONYXIA_PHASE, Phase); events.ScheduleEvent(EVENT_WHELP_SPAWN, 5000); events.ScheduleEvent(EVENT_LAIR_GUARD, 15000); + events.ScheduleEvent(EVENT_DEEP_BREATH, 75000); + events.ScheduleEvent(EVENT_MOVEMENT, 10000); + events.ScheduleEvent(EVENT_FIREBALL, 18000); break; case 11: if (PointData) me->GetMotionMaster()->MovePoint(PointData->LocId, PointData->fX, PointData->fY, PointData->fZ); - me->GetMotionMaster()->Clear(false); me->GetMotionMaster()->MoveIdle(); break; default: @@ -272,13 +285,13 @@ public: (Spell->Id >= 22267 && Spell->Id <= 22268)) && (target->GetTypeId() == TYPEID_PLAYER)) { - instance->SetData(DATA_SHE_DEEP_BREATH_MORE, FAIL); + instance->SetData(DATA_SHE_DEEP_BREATH_MORE, FAIL); } } OnyxMove* GetMoveData() { - uint8 MaxCount = sizeof(MoveData)/sizeof(OnyxMove); + uint8 MaxCount = sizeof(MoveData) / sizeof(OnyxMove); for (uint8 i = 0; i < MaxCount; ++i) { @@ -291,9 +304,9 @@ public: void SetNextRandomPoint() { - uint8 MaxCount = sizeof(MoveData)/sizeof(OnyxMove); + uint8 MaxCount = sizeof(MoveData) / sizeof(OnyxMove); - uint8 iTemp = urand(0, MaxCount-1); + uint8 iTemp = urand(0, MaxCount - 1); if (iTemp >= MovePoint) ++iTemp; @@ -312,15 +325,13 @@ public: //Specific to PHASE_START || PHASE_END if (Phase == PHASE_START) { - if (HealthBelowPct(60)) + if (HealthBelowPct(65)) { SetCombatMovement(false); Phase = PHASE_BREATH; - events.ScheduleEvent(EVENT_DEEP_BREATH, 85000); - events.ScheduleEvent(EVENT_MOVEMENT, 14000); - events.ScheduleEvent(EVENT_FIREBALL, 15000); - events.ScheduleEvent(EVENT_LAIR_GUARD, 60000); - events.ScheduleEvent(EVENT_WHELP_SPAWN, 60000); + instance->SetData64(DATA_TANK_GUID, me->GetVictim()->GetGUID()); + me->SetReactState(REACT_PASSIVE); + me->AttackStop(); me->GetMotionMaster()->MovePoint(10, Phase2Location); return; } @@ -347,19 +358,19 @@ public: } case EVENT_FLAME_BREATH: // Phase PHASE_START and PHASE_END DoCastVictim(SPELL_FLAME_BREATH); - events.ScheduleEvent(EVENT_FLAME_BREATH, urand (10000, 20000)); + events.ScheduleEvent(EVENT_FLAME_BREATH, urand(10000, 20000)); break; case EVENT_TAIL_SWEEP: // Phase PHASE_START and PHASE_END DoCastAOE(SPELL_TAIL_SWEEP); - events.ScheduleEvent(EVENT_TAIL_SWEEP, urand (15000, 20000)); + events.ScheduleEvent(EVENT_TAIL_SWEEP, urand(15000, 20000)); break; case EVENT_CLEAVE: // Phase PHASE_START and PHASE_END DoCastVictim(SPELL_CLEAVE); - events.ScheduleEvent(EVENT_CLEAVE, urand (2000, 5000)); + events.ScheduleEvent(EVENT_CLEAVE, urand(2000, 5000)); break; case EVENT_WING_BUFFET: // Phase PHASE_START and PHASE_END DoCastVictim(SPELL_WING_BUFFET); - events.ScheduleEvent(EVENT_WING_BUFFET, urand (15000, 30000)); + events.ScheduleEvent(EVENT_WING_BUFFET, urand(15000, 30000)); break; default: break; @@ -374,15 +385,18 @@ public: Phase = PHASE_END; instance->SetData(DATA_ONYXIA_PHASE, PHASE_END); Talk(SAY_PHASE_3_TRANS); - SetCombatMovement(true); - me->SetCanFly(false); IsMoving = false; - me->GetMotionMaster()->MovePoint(9, me->GetHomePosition()); + Position const pos = me->GetHomePosition(); + me->GetMotionMaster()->MovePoint(9, pos.GetPositionX(), pos.GetPositionY(), pos.GetPositionZ() + 12.0f); events.ScheduleEvent(EVENT_BELLOWING_ROAR, 30000); return; } + if (!me->isMoving()) + if (Creature* trigger = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_TRIGGER_GUID))) + me->SetFacingToObject(trigger); + events.Update(diff); while (uint32 eventId = events.ExecuteEvent()) @@ -398,8 +412,10 @@ public: Talk(EMOTE_BREATH); if (PointData) /// @todo: In what cases is this null? What should we do? DoCast(me, PointData->SpellId); - events.ScheduleEvent(EVENT_DEEP_BREATH, 70000); + events.ScheduleEvent(EVENT_DEEP_BREATH, 75000); } + else + events.ScheduleEvent(EVENT_DEEP_BREATH, 1000); break; case EVENT_MOVEMENT: // Phase PHASE_BREATH if (!IsMoving && !(me->HasUnitState(UNIT_STATE_CASTING))) @@ -414,18 +430,21 @@ public: IsMoving = true; events.ScheduleEvent(EVENT_MOVEMENT, 25000); } + else + events.ScheduleEvent(EVENT_MOVEMENT, 500); break; case EVENT_FIREBALL: // Phase PHASE_BREATH - if (me->GetMotionMaster()->GetCurrentMovementGeneratorType() != POINT_MOTION_TYPE) + if (!IsMoving) { if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0)) DoCast(target, SPELL_FIREBALL); - events.ScheduleEvent(EVENT_FIREBALL, 8000); } + else + events.ScheduleEvent(EVENT_FIREBALL, 1000); break; case EVENT_LAIR_GUARD: // Phase PHASE_BREATH - me->SummonCreature(NPC_LAIRGUARD, SpawnLocations[2], TEMPSUMMON_CORPSE_DESPAWN); + me->SummonCreature(NPC_LAIRGUARD, SpawnLocations[2], TEMPSUMMON_CORPSE_DESPAWN); events.ScheduleEvent(EVENT_LAIR_GUARD, 30000); break; case EVENT_WHELP_SPAWN: // Phase PHASE_BREATH @@ -437,7 +456,7 @@ public: events.ScheduleEvent(EVENT_WHELP_SPAWN, 90000); } else - events.ScheduleEvent(EVENT_WHELP_SPAWN, 500); + events.ScheduleEvent(EVENT_WHELP_SPAWN, 500); break; default: break; @@ -447,7 +466,6 @@ public: } private: - SummonList Summons; OnyxMove* PointData; uint8 Phase; uint8 MovePoint; diff --git a/src/server/scripts/Kalimdor/OnyxiasLair/instance_onyxias_lair.cpp b/src/server/scripts/Kalimdor/OnyxiasLair/instance_onyxias_lair.cpp index e6a08ade87f..61b57d181a3 100644 --- a/src/server/scripts/Kalimdor/OnyxiasLair/instance_onyxias_lair.cpp +++ b/src/server/scripts/Kalimdor/OnyxiasLair/instance_onyxias_lair.cpp @@ -50,9 +50,12 @@ public: void Initialize() override { + SetHeaders(DataHeader); SetBossNumber(EncounterCount); onyxiaGUID = 0; + triggerGUID = 0; + tankGUID = 0; onyxiaLiftoffTimer = 0; manyWhelpsCounter = 0; eruptTimer = 0; @@ -181,6 +184,12 @@ public: FloorEruptionGUIDQueue.push(data); eruptTimer = 2500; break; + case DATA_TRIGGER_GUID: + triggerGUID = data; + break; + case DATA_TANK_GUID: + tankGUID = data; + break; } } @@ -190,6 +199,13 @@ public: { case NPC_ONYXIA: return onyxiaGUID; + break; + case DATA_TRIGGER_GUID: + return triggerGUID; + break; + case DATA_TANK_GUID: + return tankGUID; + break; } return 0; @@ -250,59 +266,17 @@ public: return false; } - std::string GetSaveData() override - { - OUT_SAVE_INST_DATA; - - std::ostringstream saveStream; - saveStream << "O L " << GetBossSaveData(); - - OUT_SAVE_INST_DATA_COMPLETE; - return saveStream.str(); - } - - void Load(const char* strIn) override - { - if (!strIn) - { - OUT_LOAD_INST_DATA_FAIL; - return; - } - - OUT_LOAD_INST_DATA(strIn); - - char dataHead1, dataHead2; - - std::istringstream loadStream(strIn); - loadStream >> dataHead1 >> dataHead2; - - if (dataHead1 == 'O' && dataHead2 == 'L') - { - for (uint8 i = 0; i < EncounterCount; ++i) - { - uint32 tmpState; - loadStream >> tmpState; - if (tmpState == IN_PROGRESS || tmpState > SPECIAL) - tmpState = NOT_STARTED; - - SetBossState(i, EncounterState(tmpState)); - } - } - else - OUT_LOAD_INST_DATA_FAIL; - - OUT_LOAD_INST_DATA_COMPLETE; - } - - protected: - std::map<uint64, uint32> FloorEruptionGUID[2]; - std::queue<uint64> FloorEruptionGUIDQueue; - uint64 onyxiaGUID; - uint32 onyxiaLiftoffTimer; - uint32 manyWhelpsCounter; - uint32 eruptTimer; - bool achievManyWhelpsHandleIt; - bool achievSheDeepBreathMore; + protected: + std::map<uint64, uint32> FloorEruptionGUID[2]; + std::queue<uint64> FloorEruptionGUIDQueue; + uint64 onyxiaGUID; + uint64 triggerGUID; + uint64 tankGUID; + uint32 onyxiaLiftoffTimer; + uint32 manyWhelpsCounter; + uint32 eruptTimer; + bool achievManyWhelpsHandleIt; + bool achievSheDeepBreathMore; }; }; diff --git a/src/server/scripts/Kalimdor/OnyxiasLair/onyxias_lair.h b/src/server/scripts/Kalimdor/OnyxiasLair/onyxias_lair.h index cacbd8b2787..0c423f35de6 100644 --- a/src/server/scripts/Kalimdor/OnyxiasLair/onyxias_lair.h +++ b/src/server/scripts/Kalimdor/OnyxiasLair/onyxias_lair.h @@ -18,6 +18,8 @@ #ifndef DEF_ONYXIAS_LAIR_H #define DEF_ONYXIAS_LAIR_H +#define DataHeader "OL" + uint32 const EncounterCount = 1; enum DataTypes @@ -35,7 +37,9 @@ enum Data32 enum Data64 { DATA_ONYXIA_GUID = 0, - DATA_FLOOR_ERUPTION_GUID = 1 + DATA_FLOOR_ERUPTION_GUID = 1, + DATA_TRIGGER_GUID = 2, + DATA_TANK_GUID = 3 }; enum OnyxiaPhases @@ -49,7 +53,8 @@ enum CreatureIds { NPC_WHELP = 11262, NPC_LAIRGUARD = 36561, - NPC_ONYXIA = 10184 + NPC_ONYXIA = 10184, + NPC_TRIGGER = 14495 }; enum GameObjectIds diff --git a/src/server/scripts/Kalimdor/RazorfenDowns/boss_amnennar_the_coldbringer.cpp b/src/server/scripts/Kalimdor/RazorfenDowns/boss_amnennar_the_coldbringer.cpp index e0a30eba2c9..ba7934e18a3 100644 --- a/src/server/scripts/Kalimdor/RazorfenDowns/boss_amnennar_the_coldbringer.cpp +++ b/src/server/scripts/Kalimdor/RazorfenDowns/boss_amnennar_the_coldbringer.cpp @@ -50,14 +50,22 @@ public: struct boss_amnennar_the_coldbringerAI : public BossAI { - boss_amnennar_the_coldbringerAI(Creature* creature) : BossAI(creature, DATA_AMNENNAR_THE_COLD_BRINGER) { } + boss_amnennar_the_coldbringerAI(Creature* creature) : BossAI(creature, DATA_AMNENNAR_THE_COLD_BRINGER) + { + Initialize(); + } - void Reset() override + void Initialize() { - _Reset(); hp60Spectrals = false; hp30Spectrals = false; - hp50 = false; + hp50 = false; + } + + void Reset() override + { + _Reset(); + Initialize(); } void EnterCombat(Unit* /*who*/) override diff --git a/src/server/scripts/Kalimdor/RazorfenDowns/instance_razorfen_downs.cpp b/src/server/scripts/Kalimdor/RazorfenDowns/instance_razorfen_downs.cpp index f7f4b035614..ca5e6a9828c 100644 --- a/src/server/scripts/Kalimdor/RazorfenDowns/instance_razorfen_downs.cpp +++ b/src/server/scripts/Kalimdor/RazorfenDowns/instance_razorfen_downs.cpp @@ -53,6 +53,7 @@ public: { instance_razorfen_downs_InstanceMapScript(Map* map) : InstanceScript(map) { + SetHeaders(DataHeader); SetBossNumber(EncounterCount); } @@ -167,62 +168,17 @@ public: } break; } - } - - } - - std::string GetSaveData() override - { - OUT_SAVE_INST_DATA; - - std::ostringstream saveStream; - saveStream << "R D " << GetBossSaveData(); - - OUT_SAVE_INST_DATA_COMPLETE; - return saveStream.str(); - } - - void Load(const char* str) override - { - if (!str) - { - OUT_LOAD_INST_DATA_FAIL; - return; - } - - OUT_LOAD_INST_DATA(str); - - char dataHead1, dataHead2; - - std::istringstream loadStream(str); - loadStream >> dataHead1 >> dataHead2; - - if (dataHead1 == 'R' && dataHead2 == 'D') - { - for (uint32 i = 0; i < EncounterCount; ++i) - { - uint32 tmpState; - loadStream >> tmpState; - if (tmpState == IN_PROGRESS || tmpState > SPECIAL) - tmpState = NOT_STARTED; - SetBossState(i, EncounterState(tmpState)); - } - } - else - OUT_LOAD_INST_DATA_FAIL; - - OUT_LOAD_INST_DATA_COMPLETE; } - protected: - uint64 goGongGUID; - uint16 gongWave; - uint8 fiendsKilled; - uint8 reaversKilled; - uint8 summonLowRange; - uint8 summonHighRange; - uint32 summonCreature; + protected: + uint64 goGongGUID; + uint16 gongWave; + uint8 fiendsKilled; + uint8 reaversKilled; + uint8 summonLowRange; + uint8 summonHighRange; + uint32 summonCreature; }; InstanceScript* GetInstanceScript(InstanceMap* map) const override diff --git a/src/server/scripts/Kalimdor/RazorfenDowns/razorfen_downs.h b/src/server/scripts/Kalimdor/RazorfenDowns/razorfen_downs.h index a9a5a82f127..d77c48b8af0 100644 --- a/src/server/scripts/Kalimdor/RazorfenDowns/razorfen_downs.h +++ b/src/server/scripts/Kalimdor/RazorfenDowns/razorfen_downs.h @@ -19,6 +19,7 @@ #define DEF_RAZORFEN_DOWNS_H #define RFDScriptName "instance_razorfen_downs" +#define DataHeader "RFD" uint32 const EncounterCount = 5; diff --git a/src/server/scripts/Kalimdor/RazorfenKraul/instance_razorfen_kraul.cpp b/src/server/scripts/Kalimdor/RazorfenKraul/instance_razorfen_kraul.cpp index 705b0231e82..6f9ba0afa7b 100644 --- a/src/server/scripts/Kalimdor/RazorfenKraul/instance_razorfen_kraul.cpp +++ b/src/server/scripts/Kalimdor/RazorfenKraul/instance_razorfen_kraul.cpp @@ -49,6 +49,7 @@ public: void Initialize() override { + SetHeaders(DataHeader); WardKeeperDeath = 0; DoorWardGUID = 0; } diff --git a/src/server/scripts/Kalimdor/RazorfenKraul/razorfen_kraul.h b/src/server/scripts/Kalimdor/RazorfenKraul/razorfen_kraul.h index 236d06fee52..6d960d6146d 100644 --- a/src/server/scripts/Kalimdor/RazorfenKraul/razorfen_kraul.h +++ b/src/server/scripts/Kalimdor/RazorfenKraul/razorfen_kraul.h @@ -19,5 +19,7 @@ #ifndef DEF_RAZORFEN_KRAUL_H #define DEF_RAZORFEN_KRAUL_H +#define DataHeader "RFK" + #define EVENT_WARD_KEEPER 1 #endif diff --git a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_ayamiss.cpp b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_ayamiss.cpp index 162ce9b5359..19cc5316fa4 100644 --- a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_ayamiss.cpp +++ b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_ayamiss.cpp @@ -80,13 +80,19 @@ class boss_ayamiss : public CreatureScript { boss_ayamissAI(Creature* creature) : BossAI(creature, DATA_AYAMISS) { + Initialize(); } - void Reset() override + void Initialize() { - _Reset(); _phase = PHASE_AIR; _enraged = false; + } + + void Reset() override + { + _Reset(); + Initialize(); SetCombatMovement(false); } diff --git a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_buru.cpp b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_buru.cpp index ac490b1440d..cf6703a01f5 100644 --- a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_buru.cpp +++ b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_buru.cpp @@ -69,6 +69,7 @@ class boss_buru : public CreatureScript { boss_buruAI(Creature* creature) : BossAI(creature, DATA_BURU) { + _phase = 0; } void EnterEvadeMode() override diff --git a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_kurinnaxx.cpp b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_kurinnaxx.cpp index f0e582dee95..adb6723d2af 100644 --- a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_kurinnaxx.cpp +++ b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_kurinnaxx.cpp @@ -53,12 +53,18 @@ class boss_kurinnaxx : public CreatureScript { boss_kurinnaxxAI(Creature* creature) : BossAI(creature, DATA_KURINNAXX) { + Initialize(); + } + + void Initialize() + { + _enraged = false; } void Reset() override { _Reset(); - _enraged = false; + Initialize(); events.ScheduleEvent(EVENT_MORTAL_WOUND, 8000); events.ScheduleEvent(EVENT_SANDTRAP, urand(5000, 15000)); events.ScheduleEvent(EVENT_TRASH, 1000); diff --git a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_moam.cpp b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_moam.cpp index e123a84f88e..65de64fe6c5 100644 --- a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_moam.cpp +++ b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_moam.cpp @@ -60,13 +60,19 @@ class boss_moam : public CreatureScript { boss_moamAI(Creature* creature) : BossAI(creature, DATA_MOAM) { + Initialize(); + } + + void Initialize() + { + _isStonePhase = false; } void Reset() override { _Reset(); me->SetPower(POWER_MANA, 0); - _isStonePhase = false; + Initialize(); events.ScheduleEvent(EVENT_STONE_PHASE, 90000); //events.ScheduleEvent(EVENT_WIDE_SLASH, 11000); } diff --git a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_ossirian.cpp b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_ossirian.cpp index 256f76337b4..0180bbeddac 100644 --- a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_ossirian.cpp +++ b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_ossirian.cpp @@ -88,9 +88,17 @@ class boss_ossirian : public CreatureScript { boss_ossirianAI(Creature* creature) : BossAI(creature, DATA_OSSIRIAN) { + Initialize(); SaidIntro = false; } + void Initialize() + { + CrystalIterator = 0; + TriggerGUID = 0; + CrystalGUID = 0; + } + uint64 TriggerGUID; uint64 CrystalGUID; uint8 CrystalIterator; @@ -99,9 +107,7 @@ class boss_ossirian : public CreatureScript void Reset() override { _Reset(); - CrystalIterator = 0; - TriggerGUID = 0; - CrystalGUID = 0; + Initialize(); } void SpellHit(Unit* caster, SpellInfo const* spell) override diff --git a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_rajaxx.cpp b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_rajaxx.cpp index 0bb35f3842a..8369c343de4 100644 --- a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_rajaxx.cpp +++ b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_rajaxx.cpp @@ -65,12 +65,18 @@ class boss_rajaxx : public CreatureScript { boss_rajaxxAI(Creature* creature) : BossAI(creature, DATA_RAJAXX) { + Initialize(); + } + + void Initialize() + { + enraged = false; } void Reset() override { _Reset(); - enraged = false; + Initialize(); events.ScheduleEvent(EVENT_DISARM, 10000); events.ScheduleEvent(EVENT_THUNDERCRASH, 12000); } diff --git a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/instance_ruins_of_ahnqiraj.cpp b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/instance_ruins_of_ahnqiraj.cpp index 3da7e5b833f..1b62527dab7 100644 --- a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/instance_ruins_of_ahnqiraj.cpp +++ b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/instance_ruins_of_ahnqiraj.cpp @@ -28,6 +28,7 @@ class instance_ruins_of_ahnqiraj : public InstanceMapScript { instance_ruins_of_ahnqiraj_InstanceMapScript(Map* map) : InstanceScript(map) { + SetHeaders(DataHeader); SetBossNumber(NUM_ENCOUNTER); _kurinaxxGUID = 0; @@ -101,49 +102,6 @@ class instance_ruins_of_ahnqiraj : public InstanceMapScript return 0; } - std::string GetSaveData() override - { - OUT_SAVE_INST_DATA; - - std::ostringstream saveStream; - saveStream << "R A" << GetBossSaveData(); - - OUT_SAVE_INST_DATA_COMPLETE; - return saveStream.str(); - } - - void Load(char const* data) - { - if (!data) - { - OUT_LOAD_INST_DATA_FAIL; - return; - } - - OUT_LOAD_INST_DATA(data); - - char dataHead1, dataHead2; - - std::istringstream loadStream(data); - loadStream >> dataHead1 >> dataHead2; - - if (dataHead1 == 'R' && dataHead2 == 'A') - { - for (uint8 i = 0; i < NUM_ENCOUNTER; ++i) - { - uint32 tmpState; - loadStream >> tmpState; - if (tmpState == IN_PROGRESS || tmpState > TO_BE_DECIDED) - tmpState = NOT_STARTED; - SetBossState(i, EncounterState(tmpState)); - } - } - else - OUT_LOAD_INST_DATA_FAIL; - - OUT_LOAD_INST_DATA_COMPLETE; - } - private: uint64 _kurinaxxGUID; uint64 _rajaxxGUID; diff --git a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/ruins_of_ahnqiraj.h b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/ruins_of_ahnqiraj.h index 8d32bd61740..34c678474ec 100644 --- a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/ruins_of_ahnqiraj.h +++ b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/ruins_of_ahnqiraj.h @@ -18,6 +18,8 @@ #ifndef DEF_RUINS_OF_AHNQIRAJ_H #define DEF_RUINS_OF_AHNQIRAJ_H +#define DataHeader "AQR" + enum DataTypes { DATA_KURINNAXX = 0, diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_bug_trio.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_bug_trio.cpp index 189cb7854ad..be103541989 100644 --- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_bug_trio.cpp +++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_bug_trio.cpp @@ -55,9 +55,20 @@ public: { boss_kriAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); } + void Initialize() + { + Cleave_Timer = urand(4000, 8000); + ToxicVolley_Timer = urand(6000, 12000); + Check_Timer = 2000; + + VemDead = false; + Death = false; + } + InstanceScript* instance; uint32 Cleave_Timer; @@ -69,12 +80,7 @@ public: void Reset() override { - Cleave_Timer = urand(4000, 8000); - ToxicVolley_Timer = urand(6000, 12000); - Check_Timer = 2000; - - VemDead = false; - Death = false; + Initialize(); } void EnterCombat(Unit* /*who*/) override @@ -148,9 +154,19 @@ public: { boss_vemAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); } + void Initialize() + { + Charge_Timer = urand(15000, 27000); + KnockBack_Timer = urand(8000, 20000); + Enrage_Timer = 120000; + + Enraged = false; + } + InstanceScript* instance; uint32 Charge_Timer; @@ -161,11 +177,7 @@ public: void Reset() override { - Charge_Timer = urand(15000, 27000); - KnockBack_Timer = urand(8000, 20000); - Enrage_Timer = 120000; - - Enraged = false; + Initialize(); } void JustDied(Unit* /*killer*/) override @@ -237,9 +249,19 @@ public: { boss_yaujAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); } + void Initialize() + { + Heal_Timer = urand(25000, 40000); + Fear_Timer = urand(12000, 24000); + Check_Timer = 2000; + + VemDead = false; + } + InstanceScript* instance; uint32 Heal_Timer; @@ -250,11 +272,7 @@ public: void Reset() override { - Heal_Timer = urand(25000, 40000); - Fear_Timer = urand(12000, 24000); - Check_Timer = 2000; - - VemDead = false; + Initialize(); } void JustDied(Unit* /*killer*/) override diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp index 2cfd977fe99..c9795133d14 100644 --- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp +++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp @@ -160,11 +160,29 @@ public: { eye_of_cthunAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); SetCombatMovement(false); } + void Initialize() + { + //Phase information + PhaseTimer = 50000; //First dark glare in 50 seconds + + //Eye beam phase 50 seconds + BeamTimer = 3000; + EyeTentacleTimer = 45000; //Always spawns 5 seconds before Dark Beam + ClawTentacleTimer = 12500; //4 per Eye beam phase (unsure if they spawn during Dark beam) + + //Dark Beam phase 35 seconds (each tick = 1 second, 35 ticks) + DarkGlareTick = 0; + DarkGlareTickTimer = 1000; + DarkGlareAngle = 0; + ClockWise = false; + } + InstanceScript* instance; //Global variables @@ -183,19 +201,7 @@ public: void Reset() override { - //Phase information - PhaseTimer = 50000; //First dark glare in 50 seconds - - //Eye beam phase 50 seconds - BeamTimer = 3000; - EyeTentacleTimer = 45000; //Always spawns 5 seconds before Dark Beam - ClawTentacleTimer = 12500; //4 per Eye beam phase (unsure if they spawn during Dark beam) - - //Dark Beam phase 35 seconds (each tick = 1 second, 35 ticks) - DarkGlareTick = 0; - DarkGlareTickTimer = 1000; - DarkGlareAngle = 0; - ClockWise = false; + Initialize(); //Reset flags me->RemoveAurasDueToSpell(SPELL_RED_COLORATION); @@ -454,11 +460,34 @@ public: { cthunAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); SetCombatMovement(false); instance = creature->GetInstanceScript(); } + void Initialize() + { + //One random wisper every 90 - 300 seconds + WisperTimer = 90000; + + //Phase information + PhaseTimer = 10000; //Emerge in 10 seconds + + //No hold player for transition + HoldPlayer = 0; + + //Body Phase + EyeTentacleTimer = 30000; + FleshTentaclesKilled = 0; + GiantClawTentacleTimer = 15000; //15 seconds into body phase (1 min repeat) + GiantEyeTentacleTimer = 45000; //15 seconds into body phase (1 min repeat) + StomachAcidTimer = 4000; //Every 4 seconds + StomachEnterTimer = 10000; //Every 10 seconds + StomachEnterVisTimer = 0; //Always 3.5 seconds after Stomach Enter Timer + StomachEnterTarget = 0; //Target to be teleported to stomach + } + InstanceScript* instance; //Out of combat whisper timer @@ -487,24 +516,7 @@ public: void Reset() override { - //One random wisper every 90 - 300 seconds - WisperTimer = 90000; - - //Phase information - PhaseTimer = 10000; //Emerge in 10 seconds - - //No hold player for transition - HoldPlayer = 0; - - //Body Phase - EyeTentacleTimer = 30000; - FleshTentaclesKilled = 0; - GiantClawTentacleTimer = 15000; //15 seconds into body phase (1 min repeat) - GiantEyeTentacleTimer = 45000; //15 seconds into body phase (1 min repeat) - StomachAcidTimer = 4000; //Every 4 seconds - StomachEnterTimer = 10000; //Every 10 seconds - StomachEnterVisTimer = 0; //Always 3.5 seconds after Stomach Enter Timer - StomachEnterTarget = 0; //Target to be teleported to stomach + Initialize(); //Clear players in stomach and outside Stomach_Map.clear(); diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_fankriss.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_fankriss.cpp index 5947c9860ec..b916f93aef7 100644 --- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_fankriss.cpp +++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_fankriss.cpp @@ -53,23 +53,25 @@ public: struct boss_fankrissAI : public ScriptedAI { - boss_fankrissAI(Creature* creature) : ScriptedAI(creature) { } + boss_fankrissAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } + + void Initialize() + { + MortalWound_Timer = urand(10000, 15000); + SpawnHatchlings_Timer = urand(6000, 12000); + SpawnSpawns_Timer = urand(15000, 45000); + } uint32 MortalWound_Timer; uint32 SpawnHatchlings_Timer; uint32 SpawnSpawns_Timer; - int Rand; - float RandX; - float RandY; - - Creature* Hatchling; - Creature* Spawn; void Reset() override { - MortalWound_Timer = urand(10000, 15000); - SpawnHatchlings_Timer = urand(6000, 12000); - SpawnSpawns_Timer = urand(15000, 45000); + Initialize(); } void SummonSpawn(Unit* victim) @@ -77,7 +79,10 @@ public: if (!victim) return; - Rand = 10 + (rand32() % 10); + int Rand = 10 + (rand32() % 10); + float RandX = 0.f; + float RandY = 0.f; + switch (rand32() % 2) { case 0: RandX = 0.0f - Rand; break; @@ -91,7 +96,7 @@ public: case 1: RandY = 0.0f + Rand; break; } Rand = 0; - Spawn = DoSpawnCreature(15630, RandX, RandY, 0, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000); + Creature* Spawn = DoSpawnCreature(15630, RandX, RandY, 0, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000); if (Spawn) Spawn->AI()->AttackStart(victim); } @@ -147,6 +152,7 @@ public: if (DoGetThreat(target)) DoModifyThreatPercent(target, -100); + Creature* Hatchling = nullptr; switch (urand(0, 2)) { case 0: @@ -166,7 +172,7 @@ public: break; case 1: DoTeleportPlayer(target, -7990.135354f, 1155.1907f, -78.849319f, 2.608f); - Hatchling = me->SummonCreature(15962, target->GetPositionX()-3, target->GetPositionY()-3, target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000); + Hatchling = me->SummonCreature(15962, target->GetPositionX() - 3, target->GetPositionY() - 3, target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000); if (Hatchling) Hatchling->AI()->AttackStart(target); Hatchling = me->SummonCreature(15962, target->GetPositionX()-3, target->GetPositionY()+3, target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000); @@ -181,7 +187,7 @@ public: break; case 2: DoTeleportPlayer(target, -8159.7753f, 1127.9064f, -76.868660f, 0.675f); - Hatchling = me->SummonCreature(15962, target->GetPositionX()-3, target->GetPositionY()-3, target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000); + Hatchling = me->SummonCreature(15962, target->GetPositionX() - 3, target->GetPositionY() - 3, target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000); if (Hatchling) Hatchling->AI()->AttackStart(target); Hatchling = me->SummonCreature(15962, target->GetPositionX()-3, target->GetPositionY()+3, target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000); diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_huhuran.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_huhuran.cpp index 5cc1670d8fb..b5512f29589 100644 --- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_huhuran.cpp +++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_huhuran.cpp @@ -51,7 +51,23 @@ public: struct boss_huhuranAI : public ScriptedAI { - boss_huhuranAI(Creature* creature) : ScriptedAI(creature) { } + boss_huhuranAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } + + void Initialize() + { + Frenzy_Timer = urand(25000, 35000); + Wyvern_Timer = urand(18000, 28000); + Spit_Timer = 8000; + PoisonBolt_Timer = 4000; + NoxiousPoison_Timer = urand(10000, 20000); + FrenzyBack_Timer = 15000; + + Frenzy = false; + Berserk = false; + } uint32 Frenzy_Timer; uint32 Wyvern_Timer; @@ -65,15 +81,7 @@ public: void Reset() override { - Frenzy_Timer = urand(25000, 35000); - Wyvern_Timer = urand(18000, 28000); - Spit_Timer = 8000; - PoisonBolt_Timer = 4000; - NoxiousPoison_Timer = urand(10000, 20000); - FrenzyBack_Timer = 15000; - - Frenzy = false; - Berserk = false; + Initialize(); } void EnterCombat(Unit* /*who*/) override diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_ouro.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_ouro.cpp index 26866de9aa8..092d7ed2a3b 100644 --- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_ouro.cpp +++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_ouro.cpp @@ -48,7 +48,23 @@ public: struct boss_ouroAI : public ScriptedAI { - boss_ouroAI(Creature* creature) : ScriptedAI(creature) { } + boss_ouroAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } + + void Initialize() + { + Sweep_Timer = urand(5000, 10000); + SandBlast_Timer = urand(20000, 35000); + Submerge_Timer = urand(90000, 150000); + Back_Timer = urand(30000, 45000); + ChangeTarget_Timer = urand(5000, 8000); + Spawn_Timer = urand(10000, 20000); + + Enrage = false; + Submerged = false; + } uint32 Sweep_Timer; uint32 SandBlast_Timer; @@ -62,15 +78,7 @@ public: void Reset() override { - Sweep_Timer = urand(5000, 10000); - SandBlast_Timer = urand(20000, 35000); - Submerge_Timer = urand(90000, 150000); - Back_Timer = urand(30000, 45000); - ChangeTarget_Timer = urand(5000, 8000); - Spawn_Timer = urand(10000, 20000); - - Enrage = false; - Submerged = false; + Initialize(); } void EnterCombat(Unit* /*who*/) override diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_sartura.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_sartura.cpp index e9eb9d58ca8..b73a79506a9 100644 --- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_sartura.cpp +++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_sartura.cpp @@ -53,7 +53,25 @@ public: struct boss_sarturaAI : public ScriptedAI { - boss_sarturaAI(Creature* creature) : ScriptedAI(creature) { } + boss_sarturaAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } + + void Initialize() + { + WhirlWind_Timer = 30000; + WhirlWindRandom_Timer = urand(3000, 7000); + WhirlWindEnd_Timer = 15000; + AggroReset_Timer = urand(45000, 55000); + AggroResetEnd_Timer = 5000; + EnrageHard_Timer = 10 * 60000; + + WhirlWind = false; + AggroReset = false; + Enraged = false; + EnragedHard = false; + } uint32 WhirlWind_Timer; uint32 WhirlWindRandom_Timer; @@ -69,18 +87,7 @@ public: void Reset() override { - WhirlWind_Timer = 30000; - WhirlWindRandom_Timer = urand(3000, 7000); - WhirlWindEnd_Timer = 15000; - AggroReset_Timer = urand(45000, 55000); - AggroResetEnd_Timer = 5000; - EnrageHard_Timer = 10*60000; - - WhirlWind = false; - AggroReset = false; - Enraged = false; - EnragedHard = false; - + Initialize(); } void EnterCombat(Unit* /*who*/) override @@ -196,7 +203,23 @@ public: struct npc_sartura_royal_guardAI : public ScriptedAI { - npc_sartura_royal_guardAI(Creature* creature) : ScriptedAI(creature) { } + npc_sartura_royal_guardAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } + + void Initialize() + { + WhirlWind_Timer = 30000; + WhirlWindRandom_Timer = urand(3000, 7000); + WhirlWindEnd_Timer = 15000; + AggroReset_Timer = urand(45000, 55000); + AggroResetEnd_Timer = 5000; + KnockBack_Timer = 10000; + + WhirlWind = false; + AggroReset = false; + } uint32 WhirlWind_Timer; uint32 WhirlWindRandom_Timer; @@ -210,15 +233,7 @@ public: void Reset() override { - WhirlWind_Timer = 30000; - WhirlWindRandom_Timer = urand(3000, 7000); - WhirlWindEnd_Timer = 15000; - AggroReset_Timer = urand(45000, 55000); - AggroResetEnd_Timer = 5000; - KnockBack_Timer = 10000; - - WhirlWind = false; - AggroReset = false; + Initialize(); } void EnterCombat(Unit* /*who*/) override diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_skeram.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_skeram.cpp index 51384cc117d..62de8fbd607 100644 --- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_skeram.cpp +++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_skeram.cpp @@ -55,12 +55,20 @@ class boss_skeram : public CreatureScript struct boss_skeramAI : public BossAI { - boss_skeramAI(Creature* creature) : BossAI(creature, DATA_SKERAM) { } + boss_skeramAI(Creature* creature) : BossAI(creature, DATA_SKERAM) + { + Initialize(); + } - void Reset() override + void Initialize() { _flag = 0; _hpct = 75.0f; + } + + void Reset() override + { + Initialize(); me->SetVisible(true); } diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_twinemperors.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_twinemperors.cpp index 3e02406b93d..e65dbacc1f2 100644 --- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_twinemperors.cpp +++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_twinemperors.cpp @@ -69,9 +69,24 @@ struct boss_twinemperorsAI : public ScriptedAI { boss_twinemperorsAI(Creature* creature): ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); } + void Initialize() + { + Heal_Timer = 0; // first heal immediately when they get close together + Teleport_Timer = TELEPORTTIME; + AfterTeleport = false; + tspellcast = false; + AfterTeleportTimer = 0; + Abuse_Bug_Timer = urand(10000, 17000); + BugsTimer = 2000; + + DontYellWhenDead = false; + EnrageTimer = 15 * 60000; + } + InstanceScript* instance; uint32 Heal_Timer; @@ -89,16 +104,8 @@ struct boss_twinemperorsAI : public ScriptedAI void TwinReset() { - Heal_Timer = 0; // first heal immediately when they get close together - Teleport_Timer = TELEPORTTIME; - AfterTeleport = false; - tspellcast = false; - AfterTeleportTimer = 0; - Abuse_Bug_Timer = urand(10000, 17000); - BugsTimer = 2000; + Initialize(); me->ClearUnitState(UNIT_STATE_STUNNED); - DontYellWhenDead = false; - EnrageTimer = 15*60000; } Creature* GetOtherBoss() @@ -394,24 +401,26 @@ public: struct boss_veknilashAI : public boss_twinemperorsAI { bool IAmVeklor() {return false;} - boss_veknilashAI(Creature* creature) : boss_twinemperorsAI(creature) { } + boss_veknilashAI(Creature* creature) : boss_twinemperorsAI(creature) + { + Initialize(); + } + + void Initialize() + { + UpperCut_Timer = urand(14000, 29000); + UnbalancingStrike_Timer = urand(8000, 18000); + Scarabs_Timer = urand(7000, 14000); + } uint32 UpperCut_Timer; uint32 UnbalancingStrike_Timer; uint32 Scarabs_Timer; - int Rand; - int RandX; - int RandY; - - Creature* Summoned; void Reset() override { TwinReset(); - UpperCut_Timer = urand(14000, 29000); - UnbalancingStrike_Timer = urand(8000, 18000); - Scarabs_Timer = urand(7000, 14000); - + Initialize(); //Added. Can be removed if its included in DB. me->ApplySpellImmune(0, IMMUNITY_DAMAGE, SPELL_SCHOOL_MASK_MAGIC, true); } @@ -480,25 +489,28 @@ public: struct boss_veklorAI : public boss_twinemperorsAI { bool IAmVeklor() {return true;} - boss_veklorAI(Creature* creature) : boss_twinemperorsAI(creature) { } + boss_veklorAI(Creature* creature) : boss_twinemperorsAI(creature) + { + Initialize(); + } + + void Initialize() + { + ShadowBolt_Timer = 0; + Blizzard_Timer = urand(15000, 20000); + ArcaneBurst_Timer = 1000; + Scorpions_Timer = urand(7000, 14000); + } uint32 ShadowBolt_Timer; uint32 Blizzard_Timer; uint32 ArcaneBurst_Timer; uint32 Scorpions_Timer; - int Rand; - int RandX; - int RandY; - - Creature* Summoned; void Reset() override { TwinReset(); - ShadowBolt_Timer = 0; - Blizzard_Timer = urand(15000, 20000); - ArcaneBurst_Timer = 1000; - Scorpions_Timer = urand(7000, 14000); + Initialize(); //Added. Can be removed if its included in DB. me->ApplySpellImmune(0, IMMUNITY_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, true); diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_viscidus.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_viscidus.cpp index a9ec3007e5d..7f223f21269 100644 --- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_viscidus.cpp +++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_viscidus.cpp @@ -91,15 +91,23 @@ class boss_viscidus : public CreatureScript struct boss_viscidusAI : public BossAI { - boss_viscidusAI(Creature* creature) : BossAI(creature, DATA_VISCIDUS) { } + boss_viscidusAI(Creature* creature) : BossAI(creature, DATA_VISCIDUS) + { + Initialize(); + } - void Reset() override + void Initialize() { - _Reset(); _hitcounter = 0; _phase = PHASE_FROST; } + void Reset() override + { + _Reset(); + Initialize(); + } + void DamageTaken(Unit* attacker, uint32& /*damage*/) override { if (_phase != PHASE_MELEE) diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/instance_temple_of_ahnqiraj.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/instance_temple_of_ahnqiraj.cpp index 5780da5e759..e6d9bd86a4d 100644 --- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/instance_temple_of_ahnqiraj.cpp +++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/instance_temple_of_ahnqiraj.cpp @@ -58,6 +58,7 @@ class instance_temple_of_ahnqiraj : public InstanceMapScript void Initialize() override { + SetHeaders(DataHeader); IsBossDied[0] = false; IsBossDied[1] = false; IsBossDied[2] = false; diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/mob_anubisath_sentinel.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/mob_anubisath_sentinel.cpp index a0d57481c75..b8f6c0ed80e 100644 --- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/mob_anubisath_sentinel.cpp +++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/mob_anubisath_sentinel.cpp @@ -92,8 +92,15 @@ public: aqsentinelAI(Creature* creature) : ScriptedAI(creature) { - ClearBuddyList(); + Initialize(); abselected = 0; // just initialization of variable + ability = 0; + } + + void Initialize() + { + ClearBuddyList(); + gatherOthersWhenAggro = true; } uint64 NearbyGUID[3]; @@ -183,8 +190,8 @@ public: void GetOtherSentinels(Unit* who) { - bool *chosenAbilities = new bool[9]; - memset(chosenAbilities, 0, 9*sizeof(bool)); + bool chosenAbilities[9]; + memset(chosenAbilities, 0, sizeof(chosenAbilities)); selectAbility(pickAbilityRandom(chosenAbilities)); ClearBuddyList(); @@ -207,8 +214,6 @@ public: DoYell("I dont have enough buddies.", LANG_NEUTRAL, 0);*/ SendMyListToBuddies(); CallBuddiesToAttack(who); - - delete[] chosenAbilities; } bool gatherOthersWhenAggro; @@ -228,8 +233,7 @@ public: } } } - ClearBuddyList(); - gatherOthersWhenAggro = true; + Initialize(); } void GainSentinelAbility(uint32 id) diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/temple_of_ahnqiraj.h b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/temple_of_ahnqiraj.h index fc858ced774..99ce6e738e8 100644 --- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/temple_of_ahnqiraj.h +++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/temple_of_ahnqiraj.h @@ -19,6 +19,8 @@ #ifndef DEF_TEMPLE_OF_AHNQIRAJ_H #define DEF_TEMPLE_OF_AHNQIRAJ_H +#define DataHeader "AQT" + enum DataTypes { DATA_SKERAM = 1, diff --git a/src/server/scripts/Kalimdor/WailingCaverns/instance_wailing_caverns.cpp b/src/server/scripts/Kalimdor/WailingCaverns/instance_wailing_caverns.cpp index 9b8397ec6cd..bb2fc8bca20 100644 --- a/src/server/scripts/Kalimdor/WailingCaverns/instance_wailing_caverns.cpp +++ b/src/server/scripts/Kalimdor/WailingCaverns/instance_wailing_caverns.cpp @@ -50,6 +50,7 @@ public: void Initialize() override { + SetHeaders(DataHeader); memset(&m_auiEncounter, 0, sizeof(m_auiEncounter)); yelled = false; diff --git a/src/server/scripts/Kalimdor/WailingCaverns/wailing_caverns.h b/src/server/scripts/Kalimdor/WailingCaverns/wailing_caverns.h index c331d5f43c1..87577f9abaf 100644 --- a/src/server/scripts/Kalimdor/WailingCaverns/wailing_caverns.h +++ b/src/server/scripts/Kalimdor/WailingCaverns/wailing_caverns.h @@ -19,6 +19,8 @@ #ifndef DEF_WAILING_CAVERNS_H #define DEF_WAILING_CAVERNS_H +#define DataHeader "WC" + enum DataTypes { TYPE_LORD_COBRAHN = 1, diff --git a/src/server/scripts/Kalimdor/ZulFarrak/boss_zum_rah.cpp b/src/server/scripts/Kalimdor/ZulFarrak/boss_zum_rah.cpp index f0035cc921c..4a2425d879f 100644 --- a/src/server/scripts/Kalimdor/ZulFarrak/boss_zum_rah.cpp +++ b/src/server/scripts/Kalimdor/ZulFarrak/boss_zum_rah.cpp @@ -59,16 +59,24 @@ public: struct boss_zum_rahAI : public BossAI { - boss_zum_rahAI(Creature* creature) : BossAI(creature, DATA_ZUM_RAH) { } + boss_zum_rahAI(Creature* creature) : BossAI(creature, DATA_ZUM_RAH) + { + Initialize(); + } - void Reset() override + void Initialize() { - me->setFaction(ZUMRAH_FRIENDLY_FACTION); // areatrigger sets faction to enemy _ward80 = false; _ward40 = false; _heal30 = false; } + void Reset() override + { + me->setFaction(ZUMRAH_FRIENDLY_FACTION); // areatrigger sets faction to enemy + Initialize(); + } + void EnterCombat(Unit* /*who*/) override { Talk(SAY_SANCT_INVADE); diff --git a/src/server/scripts/Kalimdor/ZulFarrak/instance_zulfarrak.cpp b/src/server/scripts/Kalimdor/ZulFarrak/instance_zulfarrak.cpp index 8139f45bf46..83f1724130c 100644 --- a/src/server/scripts/Kalimdor/ZulFarrak/instance_zulfarrak.cpp +++ b/src/server/scripts/Kalimdor/ZulFarrak/instance_zulfarrak.cpp @@ -126,6 +126,7 @@ public: void Initialize() override { + SetHeaders(DataHeader); GahzRillaEncounter = NOT_STARTED; ZumrahGUID = 0; BlyGUID = 0; diff --git a/src/server/scripts/Kalimdor/ZulFarrak/zulfarrak.cpp b/src/server/scripts/Kalimdor/ZulFarrak/zulfarrak.cpp index 7c02ecdb8f2..47d269a00ff 100644 --- a/src/server/scripts/Kalimdor/ZulFarrak/zulfarrak.cpp +++ b/src/server/scripts/Kalimdor/ZulFarrak/zulfarrak.cpp @@ -104,8 +104,17 @@ public: { npc_sergeant_blyAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); postGossipStep = 0; + Text_Timer = 0; + PlayerGUID = 0; + } + + void Initialize() + { + ShieldBash_Timer = 5000; + Revenge_Timer = 8000; } InstanceScript* instance; @@ -118,8 +127,7 @@ public: void Reset() override { - ShieldBash_Timer = 5000; - Revenge_Timer = 8000; + Initialize(); me->setFaction(FACTION_FRIENDLY); } diff --git a/src/server/scripts/Kalimdor/ZulFarrak/zulfarrak.h b/src/server/scripts/Kalimdor/ZulFarrak/zulfarrak.h index 0d16c1d1ddd..3e742db02c0 100644 --- a/src/server/scripts/Kalimdor/ZulFarrak/zulfarrak.h +++ b/src/server/scripts/Kalimdor/ZulFarrak/zulfarrak.h @@ -5,6 +5,8 @@ #ifndef DEF_ZF_H #define DEF_ZF_H +#define DataHeader "ZF" + enum zfEntries { ENTRY_ZUM_RAH = 7271, diff --git a/src/server/scripts/Kalimdor/boss_azuregos.cpp b/src/server/scripts/Kalimdor/boss_azuregos.cpp index db41213e94e..df0c9a9c16c 100644 --- a/src/server/scripts/Kalimdor/boss_azuregos.cpp +++ b/src/server/scripts/Kalimdor/boss_azuregos.cpp @@ -58,7 +58,10 @@ class boss_azuregos : public CreatureScript struct boss_azuregosAI : public WorldBossAI { - boss_azuregosAI(Creature* creature) : WorldBossAI(creature) { } + boss_azuregosAI(Creature* creature) : WorldBossAI(creature) + { + _enraged = false; + } void Reset() override { diff --git a/src/server/scripts/Kalimdor/zone_ashenvale.cpp b/src/server/scripts/Kalimdor/zone_ashenvale.cpp index 2b8dbdaab6c..500739b9404 100644 --- a/src/server/scripts/Kalimdor/zone_ashenvale.cpp +++ b/src/server/scripts/Kalimdor/zone_ashenvale.cpp @@ -61,13 +61,21 @@ public: struct npc_torekAI : public npc_escortAI { - npc_torekAI(Creature* creature) : npc_escortAI(creature) { } + npc_torekAI(Creature* creature) : npc_escortAI(creature) + { + Initialize(); + } - void Reset() override + void Initialize() { - rend_Timer = 5000; + rend_Timer = 5000; thunderclap_Timer = 8000; - _completed = false; + _completed = false; + } + + void Reset() override + { + Initialize(); } void EnterCombat(Unit* /*who*/) override { } @@ -298,15 +306,23 @@ public: struct npc_muglashAI : public npc_escortAI { - npc_muglashAI(Creature* creature) : npc_escortAI(creature) { } + npc_muglashAI(Creature* creature) : npc_escortAI(creature) + { + Initialize(); + } - void Reset() override + void Initialize() { eventTimer = 10000; waveId = 0; _isBrazierExtinguished = false; } + void Reset() override + { + Initialize(); + } + void EnterCombat(Unit* /*who*/) override { if (Player* player = GetPlayerForEscort()) diff --git a/src/server/scripts/Kalimdor/zone_azshara.cpp b/src/server/scripts/Kalimdor/zone_azshara.cpp index e62e17593ba..cec94617454 100644 --- a/src/server/scripts/Kalimdor/zone_azshara.cpp +++ b/src/server/scripts/Kalimdor/zone_azshara.cpp @@ -58,15 +58,23 @@ public: struct npc_spitelashesAI : public ScriptedAI { - npc_spitelashesAI(Creature* creature) : ScriptedAI(creature) { } + npc_spitelashesAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } + + void Initialize() + { + morphtimer = 0; + spellhit = false; + } uint32 morphtimer; bool spellhit; void Reset() override { - morphtimer = 0; - spellhit = false; + Initialize(); } void EnterCombat(Unit* /*who*/) override { } @@ -292,9 +300,12 @@ public: struct npc_rizzle_sprysprocketAI : public ScriptedAI { - npc_rizzle_sprysprocketAI(Creature* creature) : ScriptedAI(creature) { } + npc_rizzle_sprysprocketAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } - void Reset() override + void Initialize() { SpellEscapeTimer = 1300; TeleportTimer = 3500; @@ -311,6 +322,11 @@ public: Reached = false; } + void Reset() override + { + Initialize(); + } + void EnterCombat(Unit* /*who*/) override { } void AttackStart(Unit* who) override @@ -475,7 +491,16 @@ public: struct npc_depth_chargeAI : public ScriptedAI { - npc_depth_chargeAI(Creature* creature) : ScriptedAI(creature) { } + npc_depth_chargeAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } + + void Initialize() + { + WeMustDie = false; + WeMustDieTimer = 1000; + } bool WeMustDie; uint32 WeMustDieTimer; @@ -485,8 +510,7 @@ public: me->SetHover(true); me->SetSwim(true); me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); - WeMustDie = false; - WeMustDieTimer = 1000; + Initialize(); } void EnterCombat(Unit* /*who*/) override { } diff --git a/src/server/scripts/Kalimdor/zone_azuremyst_isle.cpp b/src/server/scripts/Kalimdor/zone_azuremyst_isle.cpp index 6f02752d2fb..e6869dbf0f5 100644 --- a/src/server/scripts/Kalimdor/zone_azuremyst_isle.cpp +++ b/src/server/scripts/Kalimdor/zone_azuremyst_isle.cpp @@ -61,7 +61,21 @@ public: struct npc_draenei_survivorAI : public ScriptedAI { - npc_draenei_survivorAI(Creature* creature) : ScriptedAI(creature) { } + npc_draenei_survivorAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } + + void Initialize() + { + pCaster = 0; + + SayThanksTimer = 0; + RunAwayTimer = 0; + SayHelpTimer = 10000; + + CanSayHelp = true; + } uint64 pCaster; @@ -73,13 +87,7 @@ public: void Reset() override { - pCaster = 0; - - SayThanksTimer = 0; - RunAwayTimer = 0; - SayHelpTimer = 10000; - - CanSayHelp = true; + Initialize(); DoCast(me, SPELL_IRRIDATION, true); @@ -193,22 +201,28 @@ public: { npc_engineer_spark_overgrindAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); NormFaction = creature->getFaction(); NpcFlags = creature->GetUInt32Value(UNIT_NPC_FLAGS); + } - if (creature->GetAreaId() == AREA_COVE || creature->GetAreaId() == AREA_ISLE) + void Initialize() + { + DynamiteTimer = 8000; + EmoteTimer = urand(120000, 150000); + + if (me->GetAreaId() == AREA_COVE || me->GetAreaId() == AREA_ISLE) IsTreeEvent = true; + else + IsTreeEvent = false; } void Reset() override { - DynamiteTimer = 8000; - EmoteTimer = urand(120000, 150000); + Initialize(); me->setFaction(NormFaction); me->SetUInt32Value(UNIT_NPC_FLAGS, NpcFlags); - - IsTreeEvent = false; } void EnterCombat(Unit* who) override @@ -410,7 +424,18 @@ public: struct npc_geezleAI : public ScriptedAI { - npc_geezleAI(Creature* creature) : ScriptedAI(creature) { } + npc_geezleAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } + + void Initialize() + { + SparkGUID = 0; + Step = 0; + EventStarted = false; + SayTimer = 0; + } uint64 SparkGUID; @@ -421,8 +446,7 @@ public: void Reset() override { - SparkGUID = 0; - Step = 0; + Initialize(); StartEvent(); } @@ -582,15 +606,23 @@ public: struct npc_death_ravagerAI : public ScriptedAI { - npc_death_ravagerAI(Creature* creature) : ScriptedAI(creature){ } + npc_death_ravagerAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } + + void Initialize() + { + RendTimer = 30000; + EnragingBiteTimer = 20000; + } uint32 RendTimer; uint32 EnragingBiteTimer; void Reset() override { - RendTimer = 30000; - EnragingBiteTimer = 20000; + Initialize(); me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); me->SetReactState(REACT_PASSIVE); @@ -648,7 +680,16 @@ class npc_stillpine_capitive : public CreatureScript struct npc_stillpine_capitiveAI : public ScriptedAI { - npc_stillpine_capitiveAI(Creature* creature) : ScriptedAI(creature) { } + npc_stillpine_capitiveAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } + + void Initialize() + { + _playerGUID = 0; + _movementComplete = false; + } void Reset() override { @@ -658,8 +699,7 @@ class npc_stillpine_capitive : public CreatureScript cage->SetGoState(GO_STATE_READY); } _events.Reset(); - _player = NULL; - _movementComplete = false; + Initialize(); } void StartMoving(Player* owner) @@ -667,7 +707,7 @@ class npc_stillpine_capitive : public CreatureScript if (owner) { Talk(CAPITIVE_SAY, owner); - _player = owner; + _playerGUID = owner->GetGUID(); } Position pos = me->GetNearPosition(3.0f, 0.0f); me->GetMotionMaster()->MovePoint(POINT_INIT, pos); @@ -678,7 +718,7 @@ class npc_stillpine_capitive : public CreatureScript if (type != POINT_MOTION_TYPE || id != POINT_INIT) return; - if (_player) + if (Player* _player = ObjectAccessor::GetPlayer(*me, _playerGUID)) _player->KilledMonsterCredit(me->GetEntry(), me->GetGUID()); _movementComplete = true; @@ -697,7 +737,7 @@ class npc_stillpine_capitive : public CreatureScript } private: - Player* _player; + uint64 _playerGUID; EventMap _events; bool _movementComplete; }; diff --git a/src/server/scripts/Kalimdor/zone_darkshore.cpp b/src/server/scripts/Kalimdor/zone_darkshore.cpp index 43a533ada01..22c619f9a90 100644 --- a/src/server/scripts/Kalimdor/zone_darkshore.cpp +++ b/src/server/scripts/Kalimdor/zone_darkshore.cpp @@ -65,13 +65,21 @@ public: struct npc_kerlonianAI : public FollowerAI { - npc_kerlonianAI(Creature* creature) : FollowerAI(creature) { } + npc_kerlonianAI(Creature* creature) : FollowerAI(creature) + { + Initialize(); + } + + void Initialize() + { + FallAsleepTimer = urand(10000, 45000); + } uint32 FallAsleepTimer; void Reset() override { - FallAsleepTimer = urand(10000, 45000); + Initialize(); } void MoveInLineOfSight(Unit* who) override diff --git a/src/server/scripts/Kalimdor/zone_durotar.cpp b/src/server/scripts/Kalimdor/zone_durotar.cpp index a1df70522a8..e2f8dd0854d 100644 --- a/src/server/scripts/Kalimdor/zone_durotar.cpp +++ b/src/server/scripts/Kalimdor/zone_durotar.cpp @@ -51,7 +51,17 @@ public: struct npc_lazy_peonAI : public ScriptedAI { - npc_lazy_peonAI(Creature* creature) : ScriptedAI(creature) { } + npc_lazy_peonAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } + + void Initialize() + { + PlayerGUID = 0; + RebuffTimer = 0; + work = false; + } uint64 PlayerGUID; @@ -60,9 +70,7 @@ public: void Reset() override { - PlayerGUID = 0; - RebuffTimer = 0; - work = false; + Initialize(); } void MovementInform(uint32 /*type*/, uint32 id) override @@ -360,6 +368,13 @@ class npc_troll_volunteer : public CreatureScript { npc_troll_volunteerAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); + _mountModel = 0; + } + + void Initialize() + { + _complete = false; } void InitializeAI() override @@ -391,7 +406,7 @@ class npc_troll_volunteer : public CreatureScript void Reset() override { - _complete = false; + Initialize(); me->AddAura(SPELL_VOLUNTEER_AURA, me); me->AddAura(SPELL_MOUNTING_CHECK, me); DoCast(me, SPELL_PETACT_AURA); diff --git a/src/server/scripts/Kalimdor/zone_moonglade.cpp b/src/server/scripts/Kalimdor/zone_moonglade.cpp index 0c07d5dc6df..268db8da779 100644 --- a/src/server/scripts/Kalimdor/zone_moonglade.cpp +++ b/src/server/scripts/Kalimdor/zone_moonglade.cpp @@ -298,9 +298,20 @@ public: public: npc_clintar_spiritAI(Creature* creature) : npc_escortAI(creature) { + Initialize(); PlayerGUID = 0; } + void Initialize() + { + Step = 0; + CurrWP = 0; + EventTimer = 0; + PlayerGUID = 0; + checkPlayerTimer = 1000; + EventOnWait = false; + } + uint8 Step; uint32 CurrWP; uint32 EventTimer; @@ -313,14 +324,7 @@ public: void Reset() override { if (!PlayerGUID) - { - Step = 0; - CurrWP = 0; - EventTimer = 0; - PlayerGUID = 0; - checkPlayerTimer = 1000; - EventOnWait = false; - } + Initialize(); } void IsSummonedBy(Unit* /*summoner*/) override diff --git a/src/server/scripts/Kalimdor/zone_mulgore.cpp b/src/server/scripts/Kalimdor/zone_mulgore.cpp index fa35371f3f2..289d7282ac6 100644 --- a/src/server/scripts/Kalimdor/zone_mulgore.cpp +++ b/src/server/scripts/Kalimdor/zone_mulgore.cpp @@ -62,7 +62,19 @@ public: struct npc_kyle_frenziedAI : public ScriptedAI { - npc_kyle_frenziedAI(Creature* creature) : ScriptedAI(creature) { } + npc_kyle_frenziedAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } + + void Initialize() + { + EventActive = false; + IsMovingToLunch = false; + PlayerGUID = 0; + EventTimer = 5000; + EventPhase = 0; + } bool EventActive; bool IsMovingToLunch; @@ -72,11 +84,7 @@ public: void Reset() override { - EventActive = false; - IsMovingToLunch = false; - PlayerGUID = 0; - EventTimer = 5000; - EventPhase = 0; + Initialize(); if (me->GetEntry() == NPC_KYLE_FRIENDLY) me->UpdateEntry(NPC_KYLE_FRENZIED); @@ -235,7 +243,17 @@ public: struct npc_plains_visionAI : public ScriptedAI { - npc_plains_visionAI(Creature* creature) : ScriptedAI(creature) { } + npc_plains_visionAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } + + void Initialize() + { + WayPointId = 0; + newWaypoint = true; + amountWP = 49; + } bool newWaypoint; uint8 WayPointId; @@ -243,9 +261,7 @@ public: void Reset() override { - WayPointId = 0; - newWaypoint = true; - amountWP = 49; + Initialize(); } void EnterCombat(Unit* /*who*/) override { } diff --git a/src/server/scripts/Kalimdor/zone_orgrimmar.cpp b/src/server/scripts/Kalimdor/zone_orgrimmar.cpp index 5ae50ff7c8e..fd666b7fcd7 100644 --- a/src/server/scripts/Kalimdor/zone_orgrimmar.cpp +++ b/src/server/scripts/Kalimdor/zone_orgrimmar.cpp @@ -64,7 +64,19 @@ public: struct npc_shenthulAI : public ScriptedAI { - npc_shenthulAI(Creature* creature) : ScriptedAI(creature) { } + npc_shenthulAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } + + void Initialize() + { + CanTalk = false; + CanEmote = false; + SaluteTimer = 6000; + ResetTimer = 0; + PlayerGUID = 0; + } bool CanTalk; bool CanEmote; @@ -74,11 +86,7 @@ public: void Reset() override { - CanTalk = false; - CanEmote = false; - SaluteTimer = 6000; - ResetTimer = 0; - PlayerGUID = 0; + Initialize(); } void EnterCombat(Unit* /*who*/) override { } @@ -211,15 +219,23 @@ public: struct npc_thrall_warchiefAI : public ScriptedAI { - npc_thrall_warchiefAI(Creature* creature) : ScriptedAI(creature) { } + npc_thrall_warchiefAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } + + void Initialize() + { + ChainLightningTimer = 2000; + ShockTimer = 8000; + } uint32 ChainLightningTimer; uint32 ShockTimer; void Reset() override { - ChainLightningTimer = 2000; - ShockTimer = 8000; + Initialize(); } void EnterCombat(Unit* /*who*/) override { } diff --git a/src/server/scripts/Kalimdor/zone_silithus.cpp b/src/server/scripts/Kalimdor/zone_silithus.cpp index 3ddf97c164d..55f36779145 100644 --- a/src/server/scripts/Kalimdor/zone_silithus.cpp +++ b/src/server/scripts/Kalimdor/zone_silithus.cpp @@ -422,7 +422,23 @@ public: struct npc_anachronos_the_ancientAI : public ScriptedAI { - npc_anachronos_the_ancientAI(Creature* creature) : ScriptedAI(creature) { } + npc_anachronos_the_ancientAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } + + void Initialize() + { + AnimationTimer = 1500; + AnimationCount = 0; + AnachronosQuestTriggerGUID = 0; + MerithraGUID = 0; + ArygosGUID = 0; + CaelestraszGUID = 0; + FandralGUID = 0; + PlayerGUID = 0; + eventEnd = false; + } uint32 AnimationTimer; uint8 AnimationCount; @@ -437,15 +453,7 @@ public: void Reset() override { - AnimationTimer = 1500; - AnimationCount = 0; - AnachronosQuestTriggerGUID = 0; - MerithraGUID = 0; - ArygosGUID = 0; - CaelestraszGUID = 0; - FandralGUID = 0; - PlayerGUID = 0; - eventEnd = false; + Initialize(); me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); } @@ -750,7 +758,22 @@ public: struct npc_qiraj_war_spawnAI : public ScriptedAI { - npc_qiraj_war_spawnAI(Creature* creature) : ScriptedAI(creature) { } + npc_qiraj_war_spawnAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + SpellTimer1 = 0; + SpellTimer2 = 0; + SpellTimer3 = 0; + SpellTimer4 = 0; + } + + void Initialize() + { + MobGUID = 0; + PlayerGUID = 0; + Timers = false; + hasTarget = false; + } uint64 MobGUID; uint64 PlayerGUID; @@ -760,10 +783,7 @@ public: void Reset() override { - MobGUID = 0; - PlayerGUID = 0; - Timers = false; - hasTarget = false; + Initialize(); } void EnterCombat(Unit* /*who*/) override { } @@ -863,7 +883,24 @@ public: struct npc_anachronos_quest_triggerAI : public ScriptedAI { - npc_anachronos_quest_triggerAI(Creature* creature) : ScriptedAI(creature) { } + npc_anachronos_quest_triggerAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } + + void Initialize() + { + PlayerGUID = 0; + + WaveTimer = 2000; + AnnounceTimer = 1000; + LiveCount = 0; + WaveCount = 0; + + EventStarted = false; + Announced = false; + Failed = false; + } uint64 PlayerGUID; @@ -879,16 +916,7 @@ public: void Reset() override { - PlayerGUID = 0; - - WaveTimer = 2000; - AnnounceTimer = 1000; - LiveCount = 0; - WaveCount = 0; - - EventStarted = false; - Announced = false; - Failed = false; + Initialize(); me->SetVisible(false); } diff --git a/src/server/scripts/Kalimdor/zone_tanaris.cpp b/src/server/scripts/Kalimdor/zone_tanaris.cpp index 23e8e2f26ff..fce0608faaf 100644 --- a/src/server/scripts/Kalimdor/zone_tanaris.cpp +++ b/src/server/scripts/Kalimdor/zone_tanaris.cpp @@ -64,7 +64,21 @@ public: struct npc_aquementasAI : public ScriptedAI { - npc_aquementasAI(Creature* creature) : ScriptedAI(creature) { } + npc_aquementasAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } + + void Initialize() + { + SendItemTimer = 0; + SwitchFactionTimer = 10000; + + isFriendly = true; + + AquaJetTimer = 5000; + FrostShockTimer = 1000; + } uint32 SendItemTimer; uint32 SwitchFactionTimer; @@ -75,13 +89,8 @@ public: void Reset() override { - SendItemTimer = 0; - SwitchFactionTimer = 10000; + Initialize(); me->setFaction(35); - isFriendly = true; - - AquaJetTimer = 5000; - FrostShockTimer = 1000; } void SendItem(Unit* receiver) @@ -526,7 +535,19 @@ public: struct npc_toogaAI : public FollowerAI { - npc_toogaAI(Creature* creature) : FollowerAI(creature) { } + npc_toogaAI(Creature* creature) : FollowerAI(creature) + { + Initialize(); + } + + void Initialize() + { + CheckSpeechTimer = 2500; + PostEventTimer = 1000; + PhasePostEvent = 0; + + TortaGUID = 0; + } uint32 CheckSpeechTimer; uint32 PostEventTimer; @@ -536,11 +557,7 @@ public: void Reset() override { - CheckSpeechTimer = 2500; - PostEventTimer = 1000; - PhasePostEvent = 0; - - TortaGUID = 0; + Initialize(); } void MoveInLineOfSight(Unit* who) override diff --git a/src/server/scripts/Kalimdor/zone_the_barrens.cpp b/src/server/scripts/Kalimdor/zone_the_barrens.cpp index b158422054f..ced964048c2 100644 --- a/src/server/scripts/Kalimdor/zone_the_barrens.cpp +++ b/src/server/scripts/Kalimdor/zone_the_barrens.cpp @@ -200,9 +200,17 @@ public: { npc_taskmaster_fizzuleAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); factionNorm = creature->getFaction(); } + void Initialize() + { + IsFriend = false; + ResetTimer = 120000; + FlareCount = 0; + } + uint32 factionNorm; bool IsFriend; uint32 ResetTimer; @@ -210,9 +218,7 @@ public: void Reset() override { - IsFriend = false; - ResetTimer = 120000; - FlareCount = 0; + Initialize(); me->setFaction(factionNorm); } @@ -314,20 +320,12 @@ public: struct npc_twiggy_flatheadAI : public ScriptedAI { - npc_twiggy_flatheadAI(Creature* creature) : ScriptedAI(creature) { } - - bool EventInProgress; - bool EventGrate; - bool EventBigWill; - bool ChallengerDown[6]; - uint8 Wave; - uint32 WaveTimer; - uint32 ChallengerChecker; - uint64 PlayerGUID; - uint64 AffrayChallenger[6]; - uint64 BigWill; + npc_twiggy_flatheadAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } - void Reset() override + void Initialize() { EventInProgress = false; EventGrate = false; @@ -345,6 +343,22 @@ public: BigWill = 0; } + bool EventInProgress; + bool EventGrate; + bool EventBigWill; + bool ChallengerDown[6]; + uint8 Wave; + uint32 WaveTimer; + uint32 ChallengerChecker; + uint64 PlayerGUID; + uint64 AffrayChallenger[6]; + uint64 BigWill; + + void Reset() override + { + Initialize(); + } + void MoveInLineOfSight(Unit* who) override { if (!who || !who->IsAlive() || EventInProgress) diff --git a/src/server/scripts/Kalimdor/zone_thousand_needles.cpp b/src/server/scripts/Kalimdor/zone_thousand_needles.cpp index b36037d9995..9092d4e06e5 100644 --- a/src/server/scripts/Kalimdor/zone_thousand_needles.cpp +++ b/src/server/scripts/Kalimdor/zone_thousand_needles.cpp @@ -324,14 +324,23 @@ public: struct npc_pluckyAI : public ScriptedAI { - npc_pluckyAI(Creature* creature) : ScriptedAI(creature) { NormFaction = creature->getFaction(); } + npc_pluckyAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + NormFaction = creature->getFaction(); + } + + void Initialize() + { + ResetTimer = 120000; + } uint32 NormFaction; uint32 ResetTimer; void Reset() override { - ResetTimer = 120000; + Initialize(); if (me->getFaction() != NormFaction) me->setFaction(NormFaction); diff --git a/src/server/scripts/Kalimdor/zone_thunder_bluff.cpp b/src/server/scripts/Kalimdor/zone_thunder_bluff.cpp index 3b303ffa463..40b68270c9d 100644 --- a/src/server/scripts/Kalimdor/zone_thunder_bluff.cpp +++ b/src/server/scripts/Kalimdor/zone_thunder_bluff.cpp @@ -79,7 +79,19 @@ public: struct npc_cairne_bloodhoofAI : public ScriptedAI { - npc_cairne_bloodhoofAI(Creature* creature) : ScriptedAI(creature) { } + npc_cairne_bloodhoofAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } + + void Initialize() + { + BerserkerChargeTimer = 30000; + CleaveTimer = 5000; + MortalStrikeTimer = 10000; + ThunderclapTimer = 15000; + UppercutTimer = 10000; + } uint32 BerserkerChargeTimer; uint32 CleaveTimer; @@ -89,11 +101,7 @@ public: void Reset() override { - BerserkerChargeTimer = 30000; - CleaveTimer = 5000; - MortalStrikeTimer = 10000; - ThunderclapTimer = 15000; - UppercutTimer = 10000; + Initialize(); } void EnterCombat(Unit* /*who*/) override { } diff --git a/src/server/scripts/Kalimdor/zone_ungoro_crater.cpp b/src/server/scripts/Kalimdor/zone_ungoro_crater.cpp index a1e4467e9fb..ea4c743b8a5 100644 --- a/src/server/scripts/Kalimdor/zone_ungoro_crater.cpp +++ b/src/server/scripts/Kalimdor/zone_ungoro_crater.cpp @@ -77,7 +77,15 @@ public: struct npc_ameAI : public npc_escortAI { - npc_ameAI(Creature* creature) : npc_escortAI(creature) { } + npc_ameAI(Creature* creature) : npc_escortAI(creature) + { + Initialize(); + } + + void Initialize() + { + DemoralizingShoutTimer = 5000; + } uint32 DemoralizingShoutTimer; @@ -112,7 +120,7 @@ public: void Reset() override { - DemoralizingShoutTimer = 5000; + Initialize(); } void JustSummoned(Creature* summoned) override @@ -194,7 +202,18 @@ public: struct npc_ringoAI : public FollowerAI { - npc_ringoAI(Creature* creature) : FollowerAI(creature) { } + npc_ringoAI(Creature* creature) : FollowerAI(creature) + { + Initialize(); + } + + void Initialize() + { + FaintTimer = urand(30000, 60000); + EndEventProgress = 0; + EndEventTimer = 1000; + SpraggleGUID = 0; + } uint32 FaintTimer; uint32 EndEventProgress; @@ -204,10 +223,7 @@ public: void Reset() override { - FaintTimer = urand(30000, 60000); - EndEventProgress = 0; - EndEventTimer = 1000; - SpraggleGUID = 0; + Initialize(); } void MoveInLineOfSight(Unit* who) override diff --git a/src/server/scripts/Kalimdor/zone_winterspring.cpp b/src/server/scripts/Kalimdor/zone_winterspring.cpp index 11b720ad8d5..58d9b115398 100644 --- a/src/server/scripts/Kalimdor/zone_winterspring.cpp +++ b/src/server/scripts/Kalimdor/zone_winterspring.cpp @@ -317,7 +317,17 @@ public: npc_ranshallaAI(Creature* creature) : npc_escortAI(creature), DialogueHelper(introDialogue) { - Reset(); + Initialize(); + _firstPriestessGUID = 0; + _secondPriestessGUID = 0; + _guardEluneGUID = 0; + _voiceEluneGUID = 0; + _altarGUID = 0; + } + + void Initialize() + { + _delayTimer = 0; } uint32 _delayTimer; @@ -330,7 +340,7 @@ public: void Reset() override { - _delayTimer = 0; + Initialize(); } // Called when the player activates the torch / altar diff --git a/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/ahnkahet.h b/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/ahnkahet.h index 3830ba3c8aa..0dc2d68319d 100644 --- a/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/ahnkahet.h +++ b/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/ahnkahet.h @@ -19,6 +19,7 @@ #define AHNKAHET_H_ #define AhnKahetScriptName "instance_ahnkahet" +#define DataHeader "AK" uint32 const EncounterCount = 5; diff --git a/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_elder_nadox.cpp b/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_elder_nadox.cpp index d4dc5efb6d5..79449723a16 100644 --- a/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_elder_nadox.cpp +++ b/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_elder_nadox.cpp @@ -61,15 +61,23 @@ class boss_elder_nadox : public CreatureScript struct boss_elder_nadoxAI : public BossAI { - boss_elder_nadoxAI(Creature* creature) : BossAI(creature, DATA_ELDER_NADOX) { } + boss_elder_nadoxAI(Creature* creature) : BossAI(creature, DATA_ELDER_NADOX) + { + Initialize(); + } - void Reset() override + void Initialize() { - _Reset(); GuardianSummoned = false; GuardianDied = false; } + void Reset() override + { + _Reset(); + Initialize(); + } + void EnterCombat(Unit* /*who*/) override { _EnterCombat(); diff --git a/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_herald_volazj.cpp b/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_herald_volazj.cpp index 1c042f4d185..b200a4e9825 100644 --- a/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_herald_volazj.cpp +++ b/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_herald_volazj.cpp @@ -63,9 +63,19 @@ public: { boss_volazjAI(Creature* creature) : ScriptedAI(creature), Summons(me) { + Initialize(); instance = creature->GetInstanceScript(); } + void Initialize() + { + uiMindFlayTimer = 8 * IN_MILLISECONDS; + uiShadowBoltVolleyTimer = 5 * IN_MILLISECONDS; + uiShiverTimer = 15 * IN_MILLISECONDS; + // Used for Insanity handling + insanityHandled = 0; + } + InstanceScript* instance; uint32 uiMindFlayTimer; @@ -145,17 +155,13 @@ public: void Reset() override { - uiMindFlayTimer = 8*IN_MILLISECONDS; - uiShadowBoltVolleyTimer = 5*IN_MILLISECONDS; - uiShiverTimer = 15*IN_MILLISECONDS; + Initialize(); instance->SetBossState(DATA_HERALD_VOLAZJ, NOT_STARTED); instance->DoStopTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, ACHIEV_QUICK_DEMISE_START_EVENT); // Visible for all players in insanity me->SetPhaseMask((1|16|32|64|128|256), true); - // Used for Insanity handling - insanityHandled = 0; ResetPlayersPhaseMask(); diff --git a/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_jedoga_shadowseeker.cpp b/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_jedoga_shadowseeker.cpp index 905761ce359..7ae8730d57b 100644 --- a/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_jedoga_shadowseeker.cpp +++ b/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_jedoga_shadowseeker.cpp @@ -64,11 +64,27 @@ public: { boss_jedoga_shadowseekerAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); bFirstTime = true; bPreDone = false; } + void Initialize() + { + uiOpFerTimer = urand(15 * IN_MILLISECONDS, 20 * IN_MILLISECONDS); + + uiCycloneTimer = 3 * IN_MILLISECONDS; + uiBoltTimer = 7 * IN_MILLISECONDS; + uiThunderTimer = 12 * IN_MILLISECONDS; + + bOpFerok = false; + bOpFerokFail = false; + bOnGround = false; + bCanDown = false; + volunteerWork = true; + } + InstanceScript* instance; uint32 uiOpFerTimer; @@ -86,17 +102,7 @@ public: void Reset() override { - uiOpFerTimer = urand(15*IN_MILLISECONDS, 20*IN_MILLISECONDS); - - uiCycloneTimer = 3*IN_MILLISECONDS; - uiBoltTimer = 7*IN_MILLISECONDS; - uiThunderTimer = 12*IN_MILLISECONDS; - - bOpFerok = false; - bOpFerokFail = false; - bOnGround = false; - bCanDown = false; - volunteerWork = true; + Initialize(); if (!bFirstTime) instance->SetBossState(DATA_JEDOGA_SHADOWSEEKER, FAIL); @@ -331,9 +337,16 @@ public: { npc_jedoga_initiandAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); } + void Initialize() + { + bWalking = false; + bCheckTimer = 2 * IN_MILLISECONDS; + } + InstanceScript* instance; uint32 bCheckTimer; @@ -342,8 +355,7 @@ public: void Reset() override { - bWalking = false; - bCheckTimer = 2*IN_MILLISECONDS; + Initialize(); if (instance->GetBossState(DATA_JEDOGA_SHADOWSEEKER) != IN_PROGRESS) { diff --git a/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/instance_ahnkahet.cpp b/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/instance_ahnkahet.cpp index bf7b4355ea6..7c9ed240959 100644 --- a/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/instance_ahnkahet.cpp +++ b/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/instance_ahnkahet.cpp @@ -35,6 +35,7 @@ class instance_ahnkahet : public InstanceMapScript { instance_ahnkahet_InstanceScript(Map* map) : InstanceScript(map) { + SetHeaders(DataHeader); SetBossNumber(EncounterCount); LoadDoorData(doorData); @@ -258,50 +259,15 @@ class instance_ahnkahet : public InstanceMapScript return true; } - std::string GetSaveData() override + void WriteSaveDataMore(std::ostringstream& data) override { - OUT_SAVE_INST_DATA; - - std::ostringstream saveStream; - saveStream << "A K " << GetBossSaveData() << SpheresState[0] << ' ' << SpheresState[1]; - - OUT_SAVE_INST_DATA_COMPLETE; - return saveStream.str(); + data << SpheresState[0] << ' ' << SpheresState[1]; } - void Load(char const* str) override + void ReadSaveDataMore(std::istringstream& data) override { - if (!str) - { - OUT_LOAD_INST_DATA_FAIL; - return; - } - - OUT_LOAD_INST_DATA(str); - - char dataHead1, dataHead2; - - std::istringstream loadStream(str); - loadStream >> dataHead1 >> dataHead2; - - if (dataHead1 == 'A' && dataHead2 == 'K') - { - for (uint32 i = 0; i < EncounterCount; ++i) - { - uint32 tmpState; - loadStream >> tmpState; - if (tmpState == IN_PROGRESS || tmpState > SPECIAL) - tmpState = NOT_STARTED; - SetBossState(i, EncounterState(tmpState)); - } - - loadStream >> SpheresState[0]; - loadStream >> SpheresState[1]; - } - else - OUT_LOAD_INST_DATA_FAIL; - - OUT_LOAD_INST_DATA_COMPLETE; + data >> SpheresState[0]; + data >> SpheresState[1]; } protected: @@ -317,7 +283,7 @@ class instance_ahnkahet : public InstanceMapScript std::set<uint64> InitiandGUIDs; - uint8 SpheresState[2]; + uint32 SpheresState[2]; uint8 SwitchTrigger; }; diff --git a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/azjol_nerub.h b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/azjol_nerub.h index 674e5cf36bb..c274b283c1d 100644 --- a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/azjol_nerub.h +++ b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/azjol_nerub.h @@ -19,6 +19,7 @@ #define AZJOL_NERUB_H_ #define AzjolNerubScriptName "instance_azjol_nerub" +#define DataHeader "AN" uint32 const EncounterCount = 3; diff --git a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_anubarak.cpp b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_anubarak.cpp index bf5855c3318..49d0840f08a 100644 --- a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_anubarak.cpp +++ b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_anubarak.cpp @@ -87,7 +87,29 @@ public: { boss_anub_arakAI(Creature* creature) : ScriptedAI(creature), Summons(me) { + Initialize(); instance = creature->GetInstanceScript(); + GuardianSummoned = false; + VenomancerSummoned = false; + DatterSummoned = false; + UndergroundTimer = 0; + VenomancerTimer = 0; + DatterTimer = 0; + DelayTimer = 0; + ImpaleTarget = 0; + } + + void Initialize() + { + CarrionBeetlesTimer = 8 * IN_MILLISECONDS; + LeechingSwarmTimer = 20 * IN_MILLISECONDS; + ImpaleTimer = 9 * IN_MILLISECONDS; + PoundTimer = 15 * IN_MILLISECONDS; + + Phase = PHASE_MELEE; + UndergroundPhase = 0; + Channeling = false; + ImpalePhase = IMPALE_PHASE_TARGET; } InstanceScript* instance; @@ -101,7 +123,6 @@ public: uint32 CarrionBeetlesTimer; uint32 LeechingSwarmTimer; uint32 PoundTimer; - uint32 SubmergeTimer; uint32 UndergroundTimer; uint32 VenomancerTimer; uint32 DatterTimer; @@ -115,15 +136,7 @@ public: void Reset() override { - CarrionBeetlesTimer = 8*IN_MILLISECONDS; - LeechingSwarmTimer = 20*IN_MILLISECONDS; - ImpaleTimer = 9*IN_MILLISECONDS; - PoundTimer = 15*IN_MILLISECONDS; - - Phase = PHASE_MELEE; - UndergroundPhase = 0; - Channeling = false; - ImpalePhase = IMPALE_PHASE_TARGET; + Initialize(); me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE|UNIT_FLAG_NOT_SELECTABLE); me->RemoveAura(SPELL_SUBMERGE); diff --git a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_hadronox.cpp b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_hadronox.cpp index 10d34be46b6..f8c5c63cf91 100644 --- a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_hadronox.cpp +++ b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_hadronox.cpp @@ -54,11 +54,22 @@ public: { boss_hadronoxAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); fMaxDistance = 50.0f; bFirstTime = true; } + void Initialize() + { + uiAcidTimer = urand(10 * IN_MILLISECONDS, 14 * IN_MILLISECONDS); + uiLeechTimer = urand(3 * IN_MILLISECONDS, 9 * IN_MILLISECONDS); + uiPierceTimer = urand(1 * IN_MILLISECONDS, 3 * IN_MILLISECONDS); + uiGrabTimer = urand(15 * IN_MILLISECONDS, 19 * IN_MILLISECONDS); + uiDoorsTimer = urand(20 * IN_MILLISECONDS, 30 * IN_MILLISECONDS); + uiCheckDistanceTimer = 2 * IN_MILLISECONDS; + } + InstanceScript* instance; uint32 uiAcidTimer; @@ -77,12 +88,7 @@ public: me->SetFloatValue(UNIT_FIELD_BOUNDINGRADIUS, 9.0f); me->SetFloatValue(UNIT_FIELD_COMBATREACH, 9.0f); - uiAcidTimer = urand(10*IN_MILLISECONDS, 14*IN_MILLISECONDS); - uiLeechTimer = urand(3*IN_MILLISECONDS, 9*IN_MILLISECONDS); - uiPierceTimer = urand(1*IN_MILLISECONDS, 3*IN_MILLISECONDS); - uiGrabTimer = urand(15*IN_MILLISECONDS, 19*IN_MILLISECONDS); - uiDoorsTimer = urand(20*IN_MILLISECONDS, 30*IN_MILLISECONDS); - uiCheckDistanceTimer = 2*IN_MILLISECONDS; + Initialize(); if (instance->GetBossState(DATA_HADRONOX) != DONE && !bFirstTime) instance->SetBossState(DATA_HADRONOX, FAIL); diff --git a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/instance_azjol_nerub.cpp b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/instance_azjol_nerub.cpp index 106d7e54150..1ae68f5a33e 100644 --- a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/instance_azjol_nerub.cpp +++ b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/instance_azjol_nerub.cpp @@ -37,6 +37,7 @@ class instance_azjol_nerub : public InstanceMapScript { instance_azjol_nerub_InstanceScript(Map* map) : InstanceScript(map) { + SetHeaders(DataHeader); SetBossNumber(EncounterCount); LoadDoorData(doorData); @@ -128,49 +129,6 @@ class instance_azjol_nerub : public InstanceMapScript return 0; } - std::string GetSaveData() override - { - OUT_SAVE_INST_DATA; - - std::ostringstream saveStream; - saveStream << "A N " << GetBossSaveData(); - - OUT_SAVE_INST_DATA_COMPLETE; - return saveStream.str(); - } - - void Load(char const* str) override - { - if (!str) - { - OUT_LOAD_INST_DATA_FAIL; - return; - } - - OUT_LOAD_INST_DATA(str); - - char dataHead1, dataHead2; - - std::istringstream loadStream(str); - loadStream >> dataHead1 >> dataHead2; - - if (dataHead1 == 'A' && dataHead2 == 'N') - { - for (uint32 i = 0; i < EncounterCount; ++i) - { - uint32 tmpState; - loadStream >> tmpState; - if (tmpState == IN_PROGRESS || tmpState > SPECIAL) - tmpState = NOT_STARTED; - SetBossState(i, EncounterState(tmpState)); - } - } - else - OUT_LOAD_INST_DATA_FAIL; - - OUT_LOAD_INST_DATA_COMPLETE; - } - protected: uint64 KrikthirGUID; uint64 HadronoxGUID; diff --git a/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/boss_sartharion.cpp b/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/boss_sartharion.cpp index 4c3ca322574..77ced6acef1 100644 --- a/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/boss_sartharion.cpp +++ b/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/boss_sartharion.cpp @@ -130,14 +130,22 @@ public: struct boss_sartharionAI : public BossAI { - boss_sartharionAI(Creature* creature) : BossAI(creature, DATA_SARTHARION) { } + boss_sartharionAI(Creature* creature) : BossAI(creature, DATA_SARTHARION) + { + Initialize(); + } - void Reset() override + void Initialize() { - _isBerserk = false; + _isBerserk = false; _isSoftEnraged = false; _isHardEnraged = false; - drakeCount = 0; + drakeCount = 0; + } + + void Reset() override + { + Initialize(); if (me->HasAura(SPELL_TWILIGHT_REVENGE)) me->RemoveAurasDueToSpell(SPELL_TWILIGHT_REVENGE); diff --git a/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/instance_obsidian_sanctum.cpp b/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/instance_obsidian_sanctum.cpp index 0d07a9fde50..5e4a31d6b5e 100644 --- a/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/instance_obsidian_sanctum.cpp +++ b/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/instance_obsidian_sanctum.cpp @@ -34,6 +34,7 @@ public: void Initialize() override { + SetHeaders(DataHeader); sartharionGUID = 0; tenebronGUID = 0; shadronGUID = 0; @@ -98,49 +99,6 @@ public: return 0; } - std::string GetSaveData() override - { - OUT_SAVE_INST_DATA; - - std::ostringstream saveStream; - saveStream << "O S " << GetBossSaveData(); - - OUT_SAVE_INST_DATA_COMPLETE; - return saveStream.str(); - } - - void Load(const char* str) override - { - if (!str) - { - OUT_LOAD_INST_DATA_FAIL; - return; - } - - OUT_LOAD_INST_DATA(str); - - char dataHead1, dataHead2; - - std::istringstream loadStream(str); - loadStream >> dataHead1 >> dataHead2; - - if (dataHead1 == 'O' && dataHead2 == 'S') - { - for (uint32 i = 0; i < EncounterCount; ++i) - { - uint32 tmpState; - loadStream >> tmpState; - if (tmpState == IN_PROGRESS || tmpState > SPECIAL) - tmpState = NOT_STARTED; - SetBossState(i, EncounterState(tmpState)); - } - } - else - OUT_LOAD_INST_DATA_FAIL; - - OUT_LOAD_INST_DATA_COMPLETE; - } - protected: uint64 sartharionGUID; uint64 tenebronGUID; diff --git a/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/obsidian_sanctum.cpp b/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/obsidian_sanctum.cpp index 0a712b69771..58d7c6141b4 100644 --- a/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/obsidian_sanctum.cpp +++ b/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/obsidian_sanctum.cpp @@ -161,19 +161,25 @@ struct dummy_dragonAI : public ScriptedAI { dummy_dragonAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); } + void Initialize() + { + waypointId = 0; + portalRespawnTime = 30000; + _canMoveFree = false; + _canLoot = true; + } + void Reset() override { if (me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE)) me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); events.Reset(); - waypointId = 0; - portalRespawnTime = 30000; - _canMoveFree = false; - _canLoot = true; + Initialize(); } void EnterCombat(Unit* /*who*/) override diff --git a/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/obsidian_sanctum.h b/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/obsidian_sanctum.h index f26ad3a45ed..341a5686e58 100644 --- a/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/obsidian_sanctum.h +++ b/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/obsidian_sanctum.h @@ -19,6 +19,7 @@ #define OBSIDIAN_SANCTUM_H_ #define OSScriptName "instance_obsidian_sanctum" +#define DataHeader "OS" uint32 const EncounterCount = 5; diff --git a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_baltharus_the_warborn.cpp b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_baltharus_the_warborn.cpp index 69605574f86..4e02b3ad2e8 100644 --- a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_baltharus_the_warborn.cpp +++ b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_baltharus_the_warborn.cpp @@ -15,9 +15,9 @@ * with this program. If not, see <http://www.gnu.org/licenses/>. */ -#include "ObjectMgr.h" -#include "ScriptMgr.h" #include "ScriptedCreature.h" +#include "ScriptMgr.h" +#include "SpellScript.h" #include "SpellAuraEffects.h" #include "ruby_sanctum.h" @@ -73,15 +73,21 @@ class boss_baltharus_the_warborn : public CreatureScript { boss_baltharus_the_warbornAI(Creature* creature) : BossAI(creature, DATA_BALTHARUS_THE_WARBORN) { + Initialize(); _introDone = false; } + void Initialize() + { + _cloneCount = RAID_MODE<uint8>(1, 2, 2, 2); + } + void Reset() override { _Reset(); events.SetPhase(PHASE_INTRO); events.ScheduleEvent(EVENT_OOC_CHANNEL, 0, 0, PHASE_INTRO); - _cloneCount = RAID_MODE<uint8>(1, 2, 2, 2); + Initialize(); instance->SetData(DATA_BALTHARUS_SHARED_HEALTH, me->GetMaxHealth()); } @@ -245,7 +251,7 @@ class npc_baltharus_the_warborn_clone : public CreatureScript void DamageTaken(Unit* /*attacker*/, uint32& damage) override { // Setting DATA_BALTHARUS_SHARED_HEALTH to 0 when killed would bug the boss. - if (_instance && me->GetHealth() > damage) + if (me->GetHealth() > damage) _instance->SetData(DATA_BALTHARUS_SHARED_HEALTH, me->GetHealth() - damage); } diff --git a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_general_zarithrian.cpp b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_general_zarithrian.cpp index b5c20e95278..e41ea8de38b 100644 --- a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_general_zarithrian.cpp +++ b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_general_zarithrian.cpp @@ -204,12 +204,18 @@ class npc_onyx_flamecaller : public CreatureScript { npc_onyx_flamecallerAI(Creature* creature) : npc_escortAI(creature), _instance(creature->GetInstanceScript()) { + Initialize(); npc_escortAI::SetDespawnAtEnd(false); } - void Reset() override + void Initialize() { _lavaGoutCount = 0; + } + + void Reset() override + { + Initialize(); me->setActive(true); AddWaypoints(); Start(true, true); diff --git a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp index d08c6f66903..9d44e7d884f 100644 --- a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp +++ b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp @@ -262,9 +262,21 @@ struct generic_halionAI : public BossAI } } + bool CheckInRoom() override + { + // Rough radius, it is not an exactly perfect circle + if (me->GetDistance2d(HalionControllerSpawnPos.GetPositionX(), HalionControllerSpawnPos.GetPositionY()) > 48.5f) + { + if (Creature* controller = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_HALION_CONTROLLER))) + controller->AI()->EnterEvadeMode(); + return false; + } + return true; + } + void UpdateAI(uint32 diff) override { - if (!UpdateVictim() || me->HasUnitState(UNIT_STATE_CASTING)) + if (!UpdateVictim() || !CheckInRoom() || me->HasUnitState(UNIT_STATE_CASTING)) return; events.Update(diff); @@ -394,13 +406,6 @@ class boss_halion : public CreatureScript if (events.IsInPhase(PHASE_TWO)) return; - // Rough radius, it is not an exactly perfect circle - if (me->GetDistance2d(HalionControllerSpawnPos.GetPositionX(), HalionControllerSpawnPos.GetPositionY()) > 48.5f) - { - EnterEvadeMode(); - return; - } - generic_halionAI::UpdateAI(diff); } @@ -596,16 +601,22 @@ class npc_halion_controller : public CreatureScript npc_halion_controllerAI(Creature* creature) : ScriptedAI(creature), _instance(creature->GetInstanceScript()), _summons(me) { + Initialize(); me->SetPhaseMask(me->GetPhaseMask() | 0x20, true); } - void Reset() override + void Initialize() { - _summons.DespawnAll(); - _events.Reset(); _materialCorporealityValue = 5; _materialDamageTaken = 0; _twilightDamageTaken = 0; + } + + void Reset() override + { + _summons.DespawnAll(); + _events.Reset(); + Initialize(); DoCast(me, SPELL_CLEAR_DEBUFFS); } @@ -1208,13 +1219,22 @@ class npc_living_ember : public CreatureScript struct npc_living_emberAI : public ScriptedAI { - npc_living_emberAI(Creature* creature) : ScriptedAI(creature) { } + npc_living_emberAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + _enrageTimer = 0; + } - void Reset() override + void Initialize() { _hasEnraged = false; } + void Reset() override + { + Initialize(); + } + void EnterCombat(Unit* /*who*/) override { _enrageTimer = 20000; diff --git a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_saviana_ragefire.cpp b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_saviana_ragefire.cpp index 199337b0631..696d8e0f2a3 100644 --- a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_saviana_ragefire.cpp +++ b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_saviana_ragefire.cpp @@ -17,6 +17,7 @@ #include "ScriptMgr.h" #include "ScriptedCreature.h" +#include "SpellScript.h" #include "ruby_sanctum.h" enum Texts diff --git a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/instance_ruby_sanctum.cpp b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/instance_ruby_sanctum.cpp index eed8168eff8..be756a8ab36 100644 --- a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/instance_ruby_sanctum.cpp +++ b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/instance_ruby_sanctum.cpp @@ -15,12 +15,13 @@ * with this program. If not, see <http://www.gnu.org/licenses/>. */ -#include "ScriptMgr.h" #include "InstanceScript.h" -#include "ruby_sanctum.h" #include "Player.h" +#include "ScriptedCreature.h" +#include "ScriptMgr.h" #include "TemporarySummon.h" #include "WorldPacket.h" +#include "ruby_sanctum.h" DoorData const doorData[] = { @@ -37,6 +38,7 @@ class instance_ruby_sanctum : public InstanceMapScript { instance_ruby_sanctum_InstanceMapScript(InstanceMap* map) : InstanceScript(map) { + SetHeaders(DataHeader); SetBossNumber(EncounterCount); LoadDoorData(doorData); BaltharusTheWarbornGUID = 0; @@ -52,6 +54,7 @@ class instance_ruby_sanctum : public InstanceMapScript BaltharusSharedHealth = 0; FlameWallsGUID = 0; FlameRingGUID = 0; + TwilightFlameRingGUID = 0; memset(ZarithrianSpawnStalkerGUID, 0, 2 * sizeof(uint64)); memset(BurningTreeGUID, 0, 4 * sizeof(uint64)); @@ -294,17 +297,6 @@ class instance_ruby_sanctum : public InstanceMapScript return BaltharusSharedHealth; } - std::string GetSaveData() override - { - OUT_SAVE_INST_DATA; - - std::ostringstream saveStream; - saveStream << "R S " << GetBossSaveData(); - - OUT_SAVE_INST_DATA_COMPLETE; - return saveStream.str(); - } - void FillInitialWorldStates(WorldPacket& data) override { data << uint32(WORLDSTATE_CORPOREALITY_MATERIAL) << uint32(50); @@ -312,39 +304,6 @@ class instance_ruby_sanctum : public InstanceMapScript data << uint32(WORLDSTATE_CORPOREALITY_TOGGLE) << uint32(0); } - void Load(char const* str) override - { - if (!str) - { - OUT_LOAD_INST_DATA_FAIL; - return; - } - - OUT_LOAD_INST_DATA(str); - - char dataHead1, dataHead2; - - std::istringstream loadStream(str); - loadStream >> dataHead1 >> dataHead2; - - if (dataHead1 == 'R' && dataHead2 == 'S') - { - for (uint8 i = 0; i < EncounterCount; ++i) - { - uint32 tmpState; - loadStream >> tmpState; - if (tmpState == IN_PROGRESS || tmpState > SPECIAL) - tmpState = NOT_STARTED; - - SetBossState(i, EncounterState(tmpState)); - } - } - else - OUT_LOAD_INST_DATA_FAIL; - - OUT_LOAD_INST_DATA_COMPLETE; - } - protected: uint64 BaltharusTheWarbornGUID; uint64 GeneralZarithrianGUID; diff --git a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/ruby_sanctum.h b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/ruby_sanctum.h index 016d541cec9..055e04a1328 100644 --- a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/ruby_sanctum.h +++ b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/ruby_sanctum.h @@ -18,12 +18,9 @@ #ifndef RUBY_SANCTUM_H_ #define RUBY_SANCTUM_H_ -#include "SpellScript.h" -#include "Map.h" -#include "Creature.h" -#include "GameObjectAI.h" - #define RSScriptName "instance_ruby_sanctum" +#define DataHeader "RS" + uint32 const EncounterCount = 4; Position const HalionControllerSpawnPos = {3156.037f, 533.2656f, 72.97205f, 0.0f}; diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_argent_challenge.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_argent_challenge.cpp index 7e9e351ae9c..f2d2c3e3d5b 100644 --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_argent_challenge.cpp +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_argent_challenge.cpp @@ -156,11 +156,22 @@ public: { boss_eadricAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); creature->SetReactState(REACT_PASSIVE); creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); } + void Initialize() + { + uiVenganceTimer = 10000; + uiRadianceTimer = 16000; + uiHammerJusticeTimer = 25000; + uiResetTimer = 5000; + + bDone = false; + } + InstanceScript* instance; uint32 uiVenganceTimer; @@ -172,12 +183,7 @@ public: void Reset() override { - uiVenganceTimer = 10000; - uiRadianceTimer = 16000; - uiHammerJusticeTimer = 25000; - uiResetTimer = 5000; - - bDone = false; + Initialize(); } void DamageTaken(Unit* /*done_by*/, uint32 &damage) override @@ -260,6 +266,7 @@ public: { boss_paletressAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); MemoryGUID = 0; @@ -268,6 +275,18 @@ public: creature->RestoreFaction(); } + void Initialize() + { + uiHolyFireTimer = urand(9000, 12000); + uiHolySmiteTimer = urand(5000, 7000); + uiRenewTimer = urand(2000, 5000); + + uiResetTimer = 7000; + + bHealth = false; + bDone = false; + } + InstanceScript* instance; uint64 MemoryGUID; @@ -283,14 +302,7 @@ public: { me->RemoveAllAuras(); - uiHolyFireTimer = urand(9000, 12000); - uiHolySmiteTimer = urand(5000, 7000); - uiRenewTimer = urand(2000, 5000); - - uiResetTimer = 7000; - - bHealth = false; - bDone = false; + Initialize(); if (Creature* pMemory = ObjectAccessor::GetCreature(*me, MemoryGUID)) if (pMemory->IsAlive()) @@ -415,7 +427,17 @@ public: struct npc_memoryAI : public ScriptedAI { - npc_memoryAI(Creature* creature) : ScriptedAI(creature) { } + npc_memoryAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } + + void Initialize() + { + uiOldWoundsTimer = 12000; + uiShadowPastTimer = 5000; + uiWakingNightmare = 7000; + } uint32 uiOldWoundsTimer; uint32 uiShadowPastTimer; @@ -423,9 +445,7 @@ public: void Reset() override { - uiOldWoundsTimer = 12000; - uiShadowPastTimer = 5000; - uiWakingNightmare = 7000; + Initialize(); } void UpdateAI(uint32 uiDiff) override diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_black_knight.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_black_knight.cpp index a8aff70b034..e342b3bbfb1 100644 --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_black_knight.cpp +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_black_knight.cpp @@ -83,9 +83,31 @@ public: { boss_black_knightAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); } + void Initialize() + { + bEventInProgress = false; + bEvent = false; + bSummonArmy = false; + bDeathArmyDone = false; + + uiPhase = PHASE_UNDEAD; + + uiIcyTouchTimer = urand(5000, 9000); + uiPlagueStrikeTimer = urand(10000, 13000); + uiDeathRespiteTimer = urand(15000, 16000); + uiObliterateTimer = urand(17000, 19000); + uiDesecration = urand(15000, 16000); + uiDeathArmyCheckTimer = 7000; + uiResurrectTimer = 4000; + uiGhoulExplodeTimer = 8000; + uiDeathBiteTimer = urand(2000, 4000); + uiMarkedDeathTimer = urand(5000, 7000); + } + InstanceScript* instance; std::list<uint64> SummonList; @@ -114,23 +136,7 @@ public: me->SetDisplayId(me->GetNativeDisplayId()); me->ClearUnitState(UNIT_STATE_ROOT | UNIT_STATE_STUNNED); - bEventInProgress = false; - bEvent = false; - bSummonArmy = false; - bDeathArmyDone = false; - - uiPhase = PHASE_UNDEAD; - - uiIcyTouchTimer = urand(5000, 9000); - uiPlagueStrikeTimer = urand(10000, 13000); - uiDeathRespiteTimer = urand(15000, 16000); - uiObliterateTimer = urand(17000, 19000); - uiDesecration = urand(15000, 16000); - uiDeathArmyCheckTimer = 7000; - uiResurrectTimer = 4000; - uiGhoulExplodeTimer = 8000; - uiDeathBiteTimer = urand(2000, 4000); - uiMarkedDeathTimer = urand(5000, 7000); + Initialize(); } void RemoveSummons() @@ -310,13 +316,21 @@ public: struct npc_risen_ghoulAI : public ScriptedAI { - npc_risen_ghoulAI(Creature* creature) : ScriptedAI(creature) { } + npc_risen_ghoulAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } + + void Initialize() + { + uiAttackTimer = 3500; + } uint32 uiAttackTimer; void Reset() override { - uiAttackTimer = 3500; + Initialize(); } void UpdateAI(uint32 uiDiff) override diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_grand_champions.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_grand_champions.cpp index 7dd935e86f0..027238be6d3 100644 --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_grand_champions.cpp +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_grand_champions.cpp @@ -155,12 +155,20 @@ public: { generic_vehicleAI_toc5AI(Creature* creature) : npc_escortAI(creature) { + Initialize(); SetDespawnAtEnd(false); uiWaypointPath = 0; instance = creature->GetInstanceScript(); } + void Initialize() + { + uiChargeTimer = 5000; + uiShieldBreakerTimer = 8000; + uiBuffTimer = urand(30000, 60000); + } + InstanceScript* instance; uint32 uiChargeTimer; @@ -171,9 +179,7 @@ public: void Reset() override { - uiChargeTimer = 5000; - uiShieldBreakerTimer = 8000; - uiBuffTimer = urand(30000, 60000); + Initialize(); } void SetData(uint32 uiType, uint32 /*uiData*/) override @@ -311,6 +317,7 @@ public: { boss_warrior_toc5AI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); bDone = false; @@ -324,6 +331,13 @@ public: me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_IMMUNE_TO_PC); } + void Initialize() + { + uiBladeStormTimer = urand(15000, 20000); + uiInterceptTimer = 7000; + uiMortalStrikeTimer = urand(8000, 12000); + } + InstanceScript* instance; uint8 uiPhase; @@ -339,9 +353,7 @@ public: void Reset() override { - uiBladeStormTimer = urand(15000, 20000); - uiInterceptTimer = 7000; - uiMortalStrikeTimer = urand(8000, 12000); + Initialize(); } void JustReachedHome() override @@ -443,6 +455,7 @@ public: { boss_mage_toc5AI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); bDone = false; @@ -456,6 +469,14 @@ public: me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_IMMUNE_TO_PC); } + void Initialize() + { + uiFireBallTimer = 5000; + uiPolymorphTimer = 8000; + uiBlastWaveTimer = 12000; + uiHasteTimer = 22000; + } + InstanceScript* instance; uint8 uiPhase; @@ -471,10 +492,7 @@ public: void Reset() override { - uiFireBallTimer = 5000; - uiPolymorphTimer = 8000; - uiBlastWaveTimer = 12000; - uiHasteTimer = 22000; + Initialize(); } void JustReachedHome() override @@ -580,6 +598,7 @@ public: { boss_shaman_toc5AI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); bDone = false; @@ -593,6 +612,14 @@ public: me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_IMMUNE_TO_PC); } + void Initialize() + { + uiChainLightningTimer = 16000; + uiHealingWaveTimer = 12000; + uiEartShieldTimer = urand(30000, 35000); + uiHexMendingTimer = urand(20000, 25000); + } + InstanceScript* instance; uint8 uiPhase; @@ -608,10 +635,7 @@ public: void Reset() override { - uiChainLightningTimer = 16000; - uiHealingWaveTimer = 12000; - uiEartShieldTimer = urand(30000, 35000); - uiHexMendingTimer = urand(20000, 25000); + Initialize(); } void EnterCombat(Unit* who) override @@ -725,6 +749,7 @@ public: { boss_hunter_toc5AI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); bDone = false; @@ -738,6 +763,17 @@ public: me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_IMMUNE_TO_PC); } + void Initialize() + { + uiShootTimer = 12000; + uiMultiShotTimer = 0; + uiLightningArrowsTimer = 7000; + + uiTargetGUID = 0; + + bShoot = false; + } + InstanceScript* instance; uint8 uiPhase; @@ -755,13 +791,7 @@ public: void Reset() override { - uiShootTimer = 12000; - uiMultiShotTimer = 0; - uiLightningArrowsTimer = 7000; - - uiTargetGUID = 0; - - bShoot = false; + Initialize(); } void JustReachedHome() override @@ -879,6 +909,7 @@ public: { boss_rouge_toc5AI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); bDone = false; @@ -892,6 +923,13 @@ public: me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_IMMUNE_TO_PC); } + void Initialize() + { + uiEviscerateTimer = 8000; + uiFanKivesTimer = 14000; + uiPosionBottleTimer = 19000; + } + InstanceScript* instance; uint8 uiPhase; @@ -905,9 +943,7 @@ public: void Reset() override { - uiEviscerateTimer = 8000; - uiFanKivesTimer = 14000; - uiPosionBottleTimer = 19000; + Initialize(); } void JustReachedHome() override diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/instance_trial_of_the_champion.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/instance_trial_of_the_champion.cpp index 5209e8b2f94..021947db0f7 100644 --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/instance_trial_of_the_champion.cpp +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/instance_trial_of_the_champion.cpp @@ -68,6 +68,7 @@ public: void Initialize() override { + SetHeaders(DataHeader); uiMovementDone = 0; uiGrandChampionsDeaths = 0; uiArgentSoldierDeaths = 0; diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/trial_of_the_champion.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/trial_of_the_champion.cpp index e0930a1ae2e..f601f06e16c 100644 --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/trial_of_the_champion.cpp +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/trial_of_the_champion.cpp @@ -115,8 +115,6 @@ public: uint64 uiVehicle2GUID; uint64 uiVehicle3GUID; - uint64 uiGrandChampionBoss1; - std::list<uint64> Champion1List; std::list<uint64> Champion2List; std::list<uint64> Champion3List; @@ -140,7 +138,7 @@ public: break; case DATA_IN_POSITION: //movement done. me->GetMotionMaster()->MovePoint(1, 735.81f, 661.92f, 412.39f); - if (GameObject* go = GameObject::GetGameObject(*me, instance->GetData64(DATA_MAIN_GATE))) + if (GameObject* go = ObjectAccessor::GetGameObject(*me, instance->GetData64(DATA_MAIN_GATE))) instance->HandleGameObject(go->GetGUID(), false); NextStep(10000, false, 3); break; diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/trial_of_the_champion.h b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/trial_of_the_champion.h index 2b69fcbcc08..4e3979dd0f9 100644 --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/trial_of_the_champion.h +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/trial_of_the_champion.h @@ -19,6 +19,8 @@ #ifndef DEF_TOC_H #define DEF_TOC_H +#define DataHeader "TC" + enum Data { BOSS_GRAND_CHAMPIONS, diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp index 7af55ec37ea..2f29e03a2f2 100644 --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp @@ -166,6 +166,13 @@ class boss_anubarak_trial : public CreatureScript { boss_anubarak_trialAI(Creature* creature) : BossAI(creature, BOSS_ANUBARAK) { + Initialize(); + } + + void Initialize() + { + _intro = true; + _reachedPhase3 = false; } void Reset() override @@ -183,8 +190,7 @@ class boss_anubarak_trial : public CreatureScript if (!IsHeroic()) events.ScheduleEvent(EVENT_SUMMON_FROST_SPHERE, 20*IN_MILLISECONDS); - _intro = true; - _reachedPhase3 = false; + Initialize(); me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE); // clean up spawned Frost Spheres std::list<Creature*> FrostSphereList; @@ -436,13 +442,19 @@ class npc_swarm_scarab : public CreatureScript { npc_swarm_scarabAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); _instance = creature->GetInstanceScript(); } + void Initialize() + { + _determinationTimer = urand(5 * IN_MILLISECONDS, 60 * IN_MILLISECONDS); + } + void Reset() override { me->SetCorpseDelay(0); - _determinationTimer = urand(5*IN_MILLISECONDS, 60*IN_MILLISECONDS); + Initialize(); DoCast(me, SPELL_ACID_MANDIBLE); me->SetInCombatWithZone(); if (me->IsInCombat()) @@ -508,13 +520,19 @@ class npc_nerubian_burrower : public CreatureScript { npc_nerubian_burrowerAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); _instance = creature->GetInstanceScript(); } + void Initialize() + { + _submergeTimer = 30 * IN_MILLISECONDS; + } + void Reset() override { me->SetCorpseDelay(10); - _submergeTimer = 30*IN_MILLISECONDS; + Initialize(); DoCast(me, SPELL_EXPOSE_WEAKNESS); DoCast(me, SPELL_SPIDER_FRENZY); DoCast(me, SPELL_AWAKENED); @@ -669,12 +687,18 @@ class npc_anubarak_spike : public CreatureScript { npc_anubarak_spikeAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); } - void Reset() override + void Initialize() { _phase = PHASE_NO_MOVEMENT; _phaseSwitchTimer = 1; + } + + void Reset() override + { + Initialize(); // make sure the spike has everyone on threat list me->SetInCombatWithZone(); } diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp index 0a43c01081f..3d59f24b6dd 100644 --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp @@ -348,10 +348,11 @@ class boss_toc_champion_controller : public CreatureScript { boss_toc_champion_controllerAI(Creature* creature) : ScriptedAI(creature), _summons(me) { + Initialize(); _instance = creature->GetInstanceScript(); } - void Reset() override + void Initialize() { _championsNotStarted = 0; _championsFailed = 0; @@ -359,6 +360,11 @@ class boss_toc_champion_controller : public CreatureScript _inProgress = false; } + void Reset() override + { + Initialize(); + } + std::vector<uint32> SelectChampions(Team playerTeam) { std::vector<uint32> vHealersEntries; @@ -1908,7 +1914,17 @@ class npc_toc_enh_shaman : public CreatureScript struct npc_toc_enh_shamanAI : public boss_faction_championsAI { - npc_toc_enh_shamanAI(Creature* creature) : boss_faction_championsAI(creature, AI_MELEE) { } + npc_toc_enh_shamanAI(Creature* creature) : boss_faction_championsAI(creature, AI_MELEE) + { + Initialize(); + } + + void Initialize() + { + _totemCount = 0; + _totemOldCenterX = me->GetPositionX(); + _totemOldCenterY = me->GetPositionY(); + } void Reset() override { @@ -1920,9 +1936,7 @@ class npc_toc_enh_shaman : public CreatureScript events.ScheduleEvent(EVENT_DEPLOY_TOTEM, 1*IN_MILLISECONDS); events.ScheduleEvent(EVENT_WINDFURY, urand(20*IN_MILLISECONDS, 50*IN_MILLISECONDS)); - _totemCount = 0; - _totemOldCenterX = me->GetPositionX(); - _totemOldCenterY = me->GetPositionY(); + Initialize(); SetEquipmentSlots(false, 51803, 48013, EQUIP_NO_CHANGE); summons.DespawnAll(); } @@ -2192,12 +2206,20 @@ class npc_toc_pet_hunter : public CreatureScript struct npc_toc_pet_hunterAI : public boss_faction_championsAI { - npc_toc_pet_hunterAI(Creature* creature) : boss_faction_championsAI(creature, AI_PET) { } + npc_toc_pet_hunterAI(Creature* creature) : boss_faction_championsAI(creature, AI_PET) + { + Initialize(); + } + + void Initialize() + { + _clawTimer = urand(5 * IN_MILLISECONDS, 10 * IN_MILLISECONDS); + } void Reset() override { boss_faction_championsAI::Reset(); - _clawTimer = urand(5*IN_MILLISECONDS, 10*IN_MILLISECONDS); + Initialize(); } void UpdateAI(uint32 diff) override diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_lord_jaraxxus.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_lord_jaraxxus.cpp index c0f7b2f1856..a8a370076a8 100644 --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_lord_jaraxxus.cpp +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_lord_jaraxxus.cpp @@ -315,12 +315,18 @@ class npc_fel_infernal : public CreatureScript { npc_fel_infernalAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); _instance = creature->GetInstanceScript(); } + void Initialize() + { + _felStreakTimer = 30 * IN_MILLISECONDS; + } + void Reset() override { - _felStreakTimer = 30*IN_MILLISECONDS; + Initialize(); me->SetInCombatWithZone(); } diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp index 9e75bef9735..f4112b7a43b 100644 --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp @@ -492,6 +492,18 @@ struct boss_jormungarAI : public BossAI { boss_jormungarAI(Creature* creature) : BossAI(creature, BOSS_BEASTS) { + OtherWormEntry = 0; + ModelStationary = 0; + ModelMobile = 0; + + BiteSpell = 0; + SpewSpell = 0; + SpitSpell = 0; + SpraySpell = 0; + + Phase = PHASE_MOBILE; + Enraged = false; + WasMobile = false; } void Reset() override @@ -780,12 +792,18 @@ class npc_slime_pool : public CreatureScript { npc_slime_poolAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); _instance = creature->GetInstanceScript(); } - void Reset() override + void Initialize() { _cast = false; + } + + void Reset() override + { + Initialize(); me->SetReactState(REACT_PASSIVE); } @@ -851,14 +869,11 @@ class boss_icehowl : public CreatureScript { boss_icehowlAI(Creature* creature) : BossAI(creature, BOSS_BEASTS) { + Initialize(); } - void Reset() override + void Initialize() { - events.ScheduleEvent(EVENT_FEROCIOUS_BUTT, urand(15*IN_MILLISECONDS, 30*IN_MILLISECONDS)); - events.ScheduleEvent(EVENT_ARCTIC_BREATH, urand(15*IN_MILLISECONDS, 25*IN_MILLISECONDS)); - events.ScheduleEvent(EVENT_WHIRL, urand(15*IN_MILLISECONDS, 30*IN_MILLISECONDS)); - events.ScheduleEvent(EVENT_MASSIVE_CRASH, 30*IN_MILLISECONDS); _movementStarted = false; _movementFinish = false; _trampleCast = false; @@ -869,6 +884,15 @@ class boss_icehowl : public CreatureScript _stage = 0; } + void Reset() override + { + events.ScheduleEvent(EVENT_FEROCIOUS_BUTT, urand(15*IN_MILLISECONDS, 30*IN_MILLISECONDS)); + events.ScheduleEvent(EVENT_ARCTIC_BREATH, urand(15*IN_MILLISECONDS, 25*IN_MILLISECONDS)); + events.ScheduleEvent(EVENT_WHIRL, urand(15*IN_MILLISECONDS, 30*IN_MILLISECONDS)); + events.ScheduleEvent(EVENT_MASSIVE_CRASH, 30*IN_MILLISECONDS); + Initialize(); + } + void JustDied(Unit* /*killer*/) override { _JustDied(); diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp index 68de65f9f7b..1118c1ec27b 100644 --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp @@ -143,6 +143,33 @@ struct boss_twin_baseAI : public BossAI { boss_twin_baseAI(Creature* creature) : BossAI(creature, BOSS_VALKIRIES) { + Initialize(); + AuraState = AURA_STATE_NONE; + + Stage = 0; + + Weapon = 0; + + VortexEmote = 0; + SisterNpcId = 0; + MyEmphatySpellId = 0; + OtherEssenceSpellId = 0; + SurgeSpellId = 0; + VortexSpellId = 0; + ShieldSpellId = 0; + TwinPactSpellId = 0; + SpikeSpellId = 0; + TouchSpellId = 0; + } + + void Initialize() + { + IsBerserk = false; + + SpecialAbilityTimer = 1 * MINUTE*IN_MILLISECONDS; + SpikeTimer = 20 * IN_MILLISECONDS; + TouchTimer = urand(10 * IN_MILLISECONDS, 15 * IN_MILLISECONDS); + BerserkTimer = IsHeroic() ? 6 * MINUTE*IN_MILLISECONDS : 10 * MINUTE*IN_MILLISECONDS; } void Reset() override @@ -153,12 +180,7 @@ struct boss_twin_baseAI : public BossAI /* Uncomment this once that they are floating above the ground me->SetLevitate(true); me->SetFlying(true); */ - IsBerserk = false; - - SpecialAbilityTimer = 1*MINUTE*IN_MILLISECONDS; - SpikeTimer = 20*IN_MILLISECONDS; - TouchTimer = urand(10*IN_MILLISECONDS, 15*IN_MILLISECONDS); - BerserkTimer = IsHeroic() ? 6*MINUTE*IN_MILLISECONDS : 10*MINUTE*IN_MILLISECONDS; + Initialize(); summons.DespawnAll(); } @@ -524,6 +546,12 @@ struct npc_unleashed_ballAI : public ScriptedAI { npc_unleashed_ballAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); + } + + void Initialize() + { + RangeCheckTimer = 0.5*IN_MILLISECONDS; } void MoveToNextPoint() @@ -548,7 +576,7 @@ struct npc_unleashed_ballAI : public ScriptedAI me->SetCanFly(true); SetCombatMovement(false); MoveToNextPoint(); - RangeCheckTimer = 0.5*IN_MILLISECONDS; + Initialize(); } void MovementInform(uint32 uiType, uint32 uiId) override diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/instance_trial_of_the_crusader.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/instance_trial_of_the_crusader.cpp index 7cab84ee4a7..949ee652d81 100644 --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/instance_trial_of_the_crusader.cpp +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/instance_trial_of_the_crusader.cpp @@ -33,6 +33,7 @@ class instance_trial_of_the_crusader : public InstanceMapScript void Initialize() override { + SetHeaders(DataHeader); SetBossNumber(MAX_ENCOUNTERS); TrialCounter = 50; EventStage = 0; @@ -95,11 +96,10 @@ class instance_trial_of_the_crusader : public InstanceMapScript // make sure Anub'arak isnt missing and floor is destroyed after a crash if (GetBossState(BOSS_LICH_KING) == DONE && TrialCounter && GetBossState(BOSS_ANUBARAK) != DONE) { - Creature* anubArak = ObjectAccessor::GetCreature(*player, GetData64(NPC_ANUBARAK)); - if (!anubArak) + if (Creature* anubArak = ObjectAccessor::GetCreature(*player, GetData64(NPC_ANUBARAK))) anubArak = player->SummonCreature(NPC_ANUBARAK, AnubarakLoc[0].GetPositionX(), AnubarakLoc[0].GetPositionY(), AnubarakLoc[0].GetPositionZ(), 3, TEMPSUMMON_CORPSE_TIMED_DESPAWN, DESPAWN_TIME); - if (GameObject* floor = GameObject::GetGameObject(*player, GetData64(GO_ARGENT_COLISEUM_FLOOR))) + if (GameObject* floor = ObjectAccessor::GetGameObject(*player, GetData64(GO_ARGENT_COLISEUM_FLOOR))) floor->SetDestructibleState(GO_DESTRUCTIBLE_DAMAGED); } } diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.cpp index 11548ba4b1c..b068b458073 100644 --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.cpp +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.cpp @@ -201,7 +201,7 @@ class npc_announcer_toc10 : public CreatureScript } else if (instance->GetBossState(BOSS_LICH_KING) != DONE) { - if (GameObject* floor = GameObject::GetGameObject(*player, instance->GetData64(GO_ARGENT_COLISEUM_FLOOR))) + if (GameObject* floor = ObjectAccessor::GetGameObject(*player, instance->GetData64(GO_ARGENT_COLISEUM_FLOOR))) floor->SetDestructibleState(GO_DESTRUCTIBLE_DAMAGED); creature->CastSpell(creature, SPELL_CORPSE_TELEPORT, false); @@ -240,7 +240,6 @@ class boss_lich_king_toc : public CreatureScript void Reset() override { - _updateTimer = 0; me->SetReactState(REACT_PASSIVE); if (Creature* summoned = me->SummonCreature(NPC_TRIGGER, ToCCommonLoc[2].GetPositionX(), ToCCommonLoc[2].GetPositionY(), ToCCommonLoc[2].GetPositionZ(), 5, TEMPSUMMON_TIMED_DESPAWN, 1*MINUTE*IN_MILLISECONDS)) { @@ -278,7 +277,7 @@ class boss_lich_king_toc : public CreatureScript if (_instance->GetData(TYPE_EVENT_NPC) != NPC_LICH_KING) return; - _updateTimer = _instance->GetData(TYPE_EVENT_TIMER); + uint32 _updateTimer = _instance->GetData(TYPE_EVENT_TIMER); if (_updateTimer <= uiDiff) { switch (_instance->GetData(TYPE_EVENT)) @@ -319,7 +318,7 @@ class boss_lich_king_toc : public CreatureScript break; case 5080: { - if (GameObject* go = GameObject::GetGameObject(*me, _instance->GetData64(GO_ARGENT_COLISEUM_FLOOR))) + if (GameObject* go = ObjectAccessor::GetGameObject(*me, _instance->GetData64(GO_ARGENT_COLISEUM_FLOOR))) { go->SetDisplayId(DISPLAYID_DESTROYED_FLOOR); go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_DAMAGED | GO_FLAG_NODESPAWN); @@ -352,7 +351,6 @@ class boss_lich_king_toc : public CreatureScript private: InstanceScript* _instance; - uint32 _updateTimer; }; CreatureAI* GetAI(Creature* creature) const override @@ -370,7 +368,14 @@ class npc_fizzlebang_toc : public CreatureScript { npc_fizzlebang_tocAI(Creature* creature) : ScriptedAI(creature), _summons(me) { + Initialize(); _instance = me->GetInstanceScript(); + _triggerGUID = 0; + } + + void Initialize() + { + _portalGUID = 0; } void JustDied(Unit* killer) override @@ -388,7 +393,7 @@ class npc_fizzlebang_toc : public CreatureScript void Reset() override { me->SetWalk(true); - _portalGUID = 0; + Initialize(); me->GetMotionMaster()->MovePoint(1, ToCCommonLoc[10].GetPositionX(), ToCCommonLoc[10].GetPositionY()-60, ToCCommonLoc[10].GetPositionZ()); } @@ -423,7 +428,7 @@ class npc_fizzlebang_toc : public CreatureScript if (_instance->GetData(TYPE_EVENT_NPC) != NPC_FIZZLEBANG) return; - _updateTimer = _instance->GetData(TYPE_EVENT_TIMER); + uint32 _updateTimer = _instance->GetData(TYPE_EVENT_TIMER); if (_updateTimer <= uiDiff) { switch (_instance->GetData(TYPE_EVENT)) @@ -521,7 +526,6 @@ class npc_fizzlebang_toc : public CreatureScript private: InstanceScript* _instance; SummonList _summons; - uint32 _updateTimer; uint64 _portalGUID; uint64 _triggerGUID; }; @@ -556,7 +560,7 @@ class npc_tirion_toc : public CreatureScript if (_instance->GetData(TYPE_EVENT_NPC) != NPC_TIRION) return; - _updateTimer = _instance->GetData(TYPE_EVENT_TIMER); + uint32 _updateTimer = _instance->GetData(TYPE_EVENT_TIMER); if (_updateTimer <= uiDiff) { switch (_instance->GetData(TYPE_EVENT)) @@ -811,7 +815,6 @@ class npc_tirion_toc : public CreatureScript } private: InstanceScript* _instance; - uint32 _updateTimer; }; CreatureAI* GetAI(Creature* creature) const override @@ -844,7 +847,7 @@ class npc_garrosh_toc : public CreatureScript if (_instance->GetData(TYPE_EVENT_NPC) != NPC_GARROSH) return; - _updateTimer = _instance->GetData(TYPE_EVENT_TIMER); + uint32 _updateTimer = _instance->GetData(TYPE_EVENT_TIMER); if (_updateTimer <= uiDiff) { switch (_instance->GetData(TYPE_EVENT)) @@ -895,7 +898,6 @@ class npc_garrosh_toc : public CreatureScript } private: InstanceScript* _instance; - uint32 _updateTimer; }; CreatureAI* GetAI(Creature* creature) const override @@ -928,7 +930,7 @@ class npc_varian_toc : public CreatureScript if (_instance->GetData(TYPE_EVENT_NPC) != NPC_VARIAN) return; - _updateTimer = _instance->GetData(TYPE_EVENT_TIMER); + uint32 _updateTimer = _instance->GetData(TYPE_EVENT_TIMER); if (_updateTimer <= uiDiff) { switch (_instance->GetData(TYPE_EVENT)) @@ -979,7 +981,6 @@ class npc_varian_toc : public CreatureScript } private: InstanceScript* _instance; - uint32 _updateTimer; }; CreatureAI* GetAI(Creature* creature) const override diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.h b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.h index dc0f390f8e0..cf08fb75228 100644 --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.h +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.h @@ -5,6 +5,8 @@ #ifndef DEF_CRUSADER_H #define DEF_CRUSADER_H +#define DataHeader "TCR" + enum DataTypes { BOSS_BEASTS = 0, diff --git a/src/server/scripts/Northrend/DraktharonKeep/boss_king_dred.cpp b/src/server/scripts/Northrend/DraktharonKeep/boss_king_dred.cpp index a1690598532..694e502e508 100644 --- a/src/server/scripts/Northrend/DraktharonKeep/boss_king_dred.cpp +++ b/src/server/scripts/Northrend/DraktharonKeep/boss_king_dred.cpp @@ -58,10 +58,19 @@ class boss_king_dred : public CreatureScript struct boss_king_dredAI : public BossAI { - boss_king_dredAI(Creature* creature) : BossAI(creature, DATA_KING_DRED) { } + boss_king_dredAI(Creature* creature) : BossAI(creature, DATA_KING_DRED) + { + Initialize(); + } + + void Initialize() + { + raptorsKilled = 0; + } void Reset() override { + Initialize(); _Reset(); } @@ -166,16 +175,22 @@ class npc_drakkari_gutripper : public CreatureScript { npc_drakkari_gutripperAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = me->GetInstanceScript(); } + void Initialize() + { + GutRipTimer = urand(10000, 15000); + } + InstanceScript* instance; uint32 GutRipTimer; void Reset() override { - GutRipTimer = urand(10000, 15000); + Initialize(); } void UpdateAI(uint32 diff) override @@ -216,16 +231,22 @@ class npc_drakkari_scytheclaw : public CreatureScript { npc_drakkari_scytheclawAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = me->GetInstanceScript(); } + void Initialize() + { + uiRendTimer = urand(10000, 15000); + } + InstanceScript* instance; uint32 uiRendTimer; void Reset() override { - uiRendTimer = urand(10000, 15000); + Initialize(); } void UpdateAI(uint32 diff) override diff --git a/src/server/scripts/Northrend/DraktharonKeep/boss_novos.cpp b/src/server/scripts/Northrend/DraktharonKeep/boss_novos.cpp index 4e9462a447f..6b26143745b 100644 --- a/src/server/scripts/Northrend/DraktharonKeep/boss_novos.cpp +++ b/src/server/scripts/Northrend/DraktharonKeep/boss_novos.cpp @@ -80,14 +80,23 @@ public: struct boss_novosAI : public BossAI { - boss_novosAI(Creature* creature) : BossAI(creature, DATA_NOVOS) { } + boss_novosAI(Creature* creature) : BossAI(creature, DATA_NOVOS) + { + Initialize(); + _bubbled = false; + } + + void Initialize() + { + _ohNovos = true; + _crystalHandlerCount = 0; + } void Reset() override { _Reset(); - _ohNovos = true; - _crystalHandlerCount = 0; + Initialize(); SetCrystalsStatus(false); SetSummonerStatus(false); SetBubbled(false); @@ -280,15 +289,23 @@ public: struct npc_crystal_channel_targetAI : public ScriptedAI { - npc_crystal_channel_targetAI(Creature* creature) : ScriptedAI(creature) { } + npc_crystal_channel_targetAI(Creature* creature) : ScriptedAI(creature) + { + Initialize(); + } - void Reset() override + void Initialize() { _spell = 0; _timer = 0; _temp = 0; } + void Reset() override + { + Initialize(); + } + void UpdateAI(uint32 diff) override { if (_spell) diff --git a/src/server/scripts/Northrend/DraktharonKeep/boss_trollgore.cpp b/src/server/scripts/Northrend/DraktharonKeep/boss_trollgore.cpp index 13d968d9e06..a8f083c97ee 100644 --- a/src/server/scripts/Northrend/DraktharonKeep/boss_trollgore.cpp +++ b/src/server/scripts/Northrend/DraktharonKeep/boss_trollgore.cpp @@ -73,12 +73,20 @@ class boss_trollgore : public CreatureScript struct boss_trollgoreAI : public BossAI { - boss_trollgoreAI(Creature* creature) : BossAI(creature, DATA_TROLLGORE) { } + boss_trollgoreAI(Creature* creature) : BossAI(creature, DATA_TROLLGORE) + { + Initialize(); + } + + void Initialize() + { + _consumptionJunction = true; + } void Reset() override { _Reset(); - _consumptionJunction = true; + Initialize(); } void EnterCombat(Unit* /*who*/) override diff --git a/src/server/scripts/Northrend/DraktharonKeep/drak_tharon_keep.h b/src/server/scripts/Northrend/DraktharonKeep/drak_tharon_keep.h index b5e7be25d73..fd260e2c5ba 100644 --- a/src/server/scripts/Northrend/DraktharonKeep/drak_tharon_keep.h +++ b/src/server/scripts/Northrend/DraktharonKeep/drak_tharon_keep.h @@ -19,6 +19,7 @@ #define DRAK_THARON_KEEP_H_ #define DrakTharonKeepScriptName "instance_drak_tharon_keep" +#define DataHeader "DTK" uint32 const EncounterCount = 4; diff --git a/src/server/scripts/Northrend/DraktharonKeep/instance_drak_tharon_keep.cpp b/src/server/scripts/Northrend/DraktharonKeep/instance_drak_tharon_keep.cpp index d7c21991ca0..30b473b6ebc 100644 --- a/src/server/scripts/Northrend/DraktharonKeep/instance_drak_tharon_keep.cpp +++ b/src/server/scripts/Northrend/DraktharonKeep/instance_drak_tharon_keep.cpp @@ -29,6 +29,7 @@ class instance_drak_tharon_keep : public InstanceMapScript { instance_drak_tharon_keep_InstanceScript(Map* map) : InstanceScript(map) { + SetHeaders(DataHeader); SetBossNumber(EncounterCount); TrollgoreGUID = 0; @@ -159,49 +160,6 @@ class instance_drak_tharon_keep : public InstanceMapScript novos->AI()->DoAction(ACTION_CRYSTAL_HANDLER_DIED); } - std::string GetSaveData() override - { - OUT_SAVE_INST_DATA; - - std::ostringstream saveStream; - saveStream << "D K " << GetBossSaveData(); - - OUT_SAVE_INST_DATA_COMPLETE; - return saveStream.str(); - } - - void Load(char const* str) override - { - if (!str) - { - OUT_LOAD_INST_DATA_FAIL; - return; - } - - OUT_LOAD_INST_DATA(str); - - char dataHead1, dataHead2; - - std::istringstream loadStream(str); - loadStream >> dataHead1 >> dataHead2; - - if (dataHead1 == 'D' && dataHead2 == 'K') - { - for (uint32 i = 0; i < EncounterCount; ++i) - { - uint32 tmpState; - loadStream >> tmpState; - if (tmpState == IN_PROGRESS || tmpState > SPECIAL) - tmpState = NOT_STARTED; - SetBossState(i, EncounterState(tmpState)); - } - } - else - OUT_LOAD_INST_DATA_FAIL; - - OUT_LOAD_INST_DATA_COMPLETE; - } - protected: uint64 TrollgoreGUID; uint64 NovosGUID; diff --git a/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/boss_bronjahm.cpp b/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/boss_bronjahm.cpp index fe98f005bca..670591a058c 100644 --- a/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/boss_bronjahm.cpp +++ b/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/boss_bronjahm.cpp @@ -71,14 +71,6 @@ class boss_bronjahm : public CreatureScript DoCast(me, SPELL_SOULSTORM_CHANNEL, true); } - void InitializeAI() override - { - if (!instance || static_cast<InstanceMap*>(me->GetMap())->GetScriptId() != sObjectMgr->GetScriptId(FoSScriptName)) - me->IsAIEnabled = false; - else if (!me->isDead()) - Reset(); - } - void Reset() override { events.Reset(); @@ -188,7 +180,7 @@ class boss_bronjahm : public CreatureScript CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<boss_bronjahmAI>(creature); + return GetInstanceAI<boss_bronjahmAI>(creature, FoSScriptName); } }; diff --git a/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/boss_devourer_of_souls.cpp b/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/boss_devourer_of_souls.cpp index a048abd6554..4b4fd398e72 100644 --- a/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/boss_devourer_of_souls.cpp +++ b/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/boss_devourer_of_souls.cpp @@ -130,14 +130,15 @@ class boss_devourer_of_souls : public CreatureScript { boss_devourer_of_soulsAI(Creature* creature) : BossAI(creature, DATA_DEVOURER_EVENT) { + Initialize(); + beamAngle = 0.f; + beamAngleDiff = 0.f; + wailingSoulTick = 0; } - void InitializeAI() override + void Initialize() { - if (!instance || static_cast<InstanceMap*>(me->GetMap())->GetScriptId() != sObjectMgr->GetScriptId(FoSScriptName)) - me->IsAIEnabled = false; - else if (!me->isDead()) - Reset(); + threeFaced = true; } void Reset() override @@ -149,7 +150,7 @@ class boss_devourer_of_souls : public CreatureScript events.Reset(); summons.DespawnAll(); - threeFaced = true; + Initialize(); instance->SetData(DATA_DEVOURER_EVENT, NOT_STARTED); } @@ -345,7 +346,7 @@ class boss_devourer_of_souls : public CreatureScript CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<boss_devourer_of_soulsAI>(creature); + return GetInstanceAI<boss_devourer_of_soulsAI>(creature, FoSScriptName); } }; diff --git a/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/forge_of_souls.cpp b/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/forge_of_souls.cpp index fc9a786aab9..7a36dfe7fae 100644 --- a/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/forge_of_souls.cpp +++ b/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/forge_of_souls.cpp @@ -80,10 +80,16 @@ public: { npc_sylvanas_fosAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = me->GetInstanceScript(); me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); } + void Initialize() + { + phase = PHASE_NORMAL; + } + InstanceScript* instance; EventMap events; @@ -92,7 +98,7 @@ public: void Reset() override { events.Reset(); - phase = PHASE_NORMAL; + Initialize(); } void DoAction(int32 actionId) override @@ -203,10 +209,16 @@ public: { npc_jaina_fosAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = me->GetInstanceScript(); me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); } + void Initialize() + { + phase = PHASE_NORMAL; + } + InstanceScript* instance; EventMap events; @@ -215,7 +227,7 @@ public: void Reset() override { events.Reset(); - phase = PHASE_NORMAL; + Initialize(); } void DoAction(int32 actionId) override diff --git a/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/forge_of_souls.h b/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/forge_of_souls.h index 14220e26cdd..34340ae3018 100644 --- a/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/forge_of_souls.h +++ b/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/forge_of_souls.h @@ -19,6 +19,7 @@ #define DEF_FORGE_OF_SOULS_H #define FoSScriptName "instance_forge_of_souls" +#define DataHeader "FOS" enum Data { diff --git a/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/instance_forge_of_souls.cpp b/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/instance_forge_of_souls.cpp index 964787777a7..f3034fa0796 100644 --- a/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/instance_forge_of_souls.cpp +++ b/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/instance_forge_of_souls.cpp @@ -36,6 +36,7 @@ class instance_forge_of_souls : public InstanceMapScript { instance_forge_of_souls_InstanceScript(Map* map) : InstanceScript(map) { + SetHeaders(DataHeader); SetBossNumber(MAX_ENCOUNTER); bronjahm = 0; devourerOfSouls = 0; @@ -110,47 +111,6 @@ class instance_forge_of_souls : public InstanceMapScript return 0; } - std::string GetSaveData() override - { - OUT_SAVE_INST_DATA; - - std::ostringstream saveStream; - saveStream << "F S " << GetBossSaveData(); - - OUT_SAVE_INST_DATA_COMPLETE; - return saveStream.str(); - } - - void Load(const char* in) override - { - if (!in) - { - OUT_LOAD_INST_DATA_FAIL; - return; - } - - OUT_LOAD_INST_DATA(in); - - char dataHead1, dataHead2; - - std::istringstream loadStream(in); - loadStream >> dataHead1 >> dataHead2; - - if (dataHead1 == 'F' && dataHead2 == 'S') - { - for (uint8 i = 0; i < MAX_ENCOUNTER; ++i) - { - uint32 tmpState; - loadStream >> tmpState; - if (tmpState == IN_PROGRESS || tmpState > SPECIAL) - tmpState = NOT_STARTED; - SetBossState(i, EncounterState(tmpState)); - } - } else OUT_LOAD_INST_DATA_FAIL; - - OUT_LOAD_INST_DATA_COMPLETE; - } - private: uint64 bronjahm; uint64 devourerOfSouls; diff --git a/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/boss_falric.cpp b/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/boss_falric.cpp index a5577b6a0ea..a014be4369e 100644 --- a/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/boss_falric.cpp +++ b/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/boss_falric.cpp @@ -55,12 +55,20 @@ class boss_falric : public CreatureScript struct boss_falricAI : public boss_horAI { - boss_falricAI(Creature* creature) : boss_horAI(creature, DATA_FALRIC) { } + boss_falricAI(Creature* creature) : boss_horAI(creature, DATA_FALRIC) + { + Initialize(); + } + + void Initialize() + { + _hopelessnessCount = 0; + } void Reset() override { boss_horAI::Reset(); - _hopelessnessCount = 0; + Initialize(); } void EnterCombat(Unit* /*who*/) override diff --git a/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.h b/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.h index a05035f7b44..578cf4f84fa 100644 --- a/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.h +++ b/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.h @@ -19,6 +19,7 @@ #define HALLS_OF_REFLECTION_H_ #define HoRScriptName "instance_halls_of_reflection" +#define DataHeader "HOR" uint32 const EncounterCount = 3; diff --git a/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/instance_halls_of_reflection.cpp b/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/instance_halls_of_reflection.cpp index 6f33e80b92b..51502b8a336 100644 --- a/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/instance_halls_of_reflection.cpp +++ b/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/instance_halls_of_reflection.cpp @@ -82,6 +82,7 @@ class instance_halls_of_reflection : public InstanceMapScript { instance_halls_of_reflection_InstanceMapScript(Map* map) : InstanceScript(map) { + SetHeaders(DataHeader); SetBossNumber(EncounterCount); JainaOrSylvanasIntroGUID = 0; @@ -709,61 +710,25 @@ class instance_halls_of_reflection : public InstanceMapScript return 0; } - std::string GetSaveData() override + void WriteSaveDataMore(std::ostringstream& data) override { - OUT_SAVE_INST_DATA; - - std::ostringstream saveStream; - saveStream << "H R " << GetBossSaveData() << _introState << ' ' << _frostswornGeneralState; - - OUT_SAVE_INST_DATA_COMPLETE; - return saveStream.str(); + data << _introState << ' ' << _frostswornGeneralState; } - void Load(char const* in) override + void ReadSaveDataMore(std::istringstream& data) override { - if (!in) - { - OUT_LOAD_INST_DATA_FAIL; - return; - } - - OUT_LOAD_INST_DATA(in); - - char dataHead1, dataHead2; - - std::istringstream loadStream(in); - loadStream >> dataHead1 >> dataHead2; - - if (dataHead1 == 'H' && dataHead2 == 'R') - { - for (uint8 i = 0; i < EncounterCount; ++i) - { - uint32 tmpState; - loadStream >> tmpState; - if (tmpState == IN_PROGRESS || tmpState > SPECIAL) - tmpState = NOT_STARTED; - - SetBossState(i, EncounterState(tmpState)); - } - - uint32 temp = 0; - loadStream >> temp; - if (temp == DONE) - SetData(DATA_INTRO_EVENT, DONE); - else - SetData(DATA_INTRO_EVENT, NOT_STARTED); - - loadStream >> temp; - if (temp == DONE) - SetData(DATA_FROSTSWORN_GENERAL, DONE); - else - SetData(DATA_FROSTSWORN_GENERAL, NOT_STARTED); - } + uint32 temp = 0; + data >> temp; + if (temp == DONE) + SetData(DATA_INTRO_EVENT, DONE); else - OUT_LOAD_INST_DATA_FAIL; + SetData(DATA_INTRO_EVENT, NOT_STARTED); - OUT_LOAD_INST_DATA_COMPLETE; + data >> temp; + if (temp == DONE) + SetData(DATA_FROSTSWORN_GENERAL, DONE); + else + SetData(DATA_FROSTSWORN_GENERAL, NOT_STARTED); } private: diff --git a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_forgemaster_garfrost.cpp b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_forgemaster_garfrost.cpp index 783f9e245c8..62a6ac41074 100644 --- a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_forgemaster_garfrost.cpp +++ b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_forgemaster_garfrost.cpp @@ -82,14 +82,22 @@ class boss_garfrost : public CreatureScript struct boss_garfrostAI : public BossAI { - boss_garfrostAI(Creature* creature) : BossAI(creature, DATA_GARFROST) { } + boss_garfrostAI(Creature* creature) : BossAI(creature, DATA_GARFROST) + { + Initialize(); + } + + void Initialize() + { + _permafrostStack = 0; + } void Reset() override { _Reset(); events.SetPhase(PHASE_ONE); SetEquipmentSlots(true); - _permafrostStack = 0; + Initialize(); } void EnterCombat(Unit* /*who*/) override diff --git a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_krickandick.cpp b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_krickandick.cpp index 3f8e1cc6ee0..5b147344a59 100644 --- a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_krickandick.cpp +++ b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_krickandick.cpp @@ -140,6 +140,7 @@ class boss_ick : public CreatureScript boss_ickAI(Creature* creature) : BossAI(creature, DATA_ICK), _vehicle(creature->GetVehicleKit()) { ASSERT(_vehicle); + _tempThreat = 0; } void Reset() override @@ -286,14 +287,20 @@ class boss_krick : public CreatureScript { boss_krickAI(Creature* creature) : ScriptedAI(creature), _instanceScript(creature->GetInstanceScript()), _summons(creature) { + Initialize(); } - void Reset() override + void Initialize() { - _events.Reset(); _phase = PHASE_COMBAT; _outroNpcGUID = 0; _tyrannusGUID = 0; + } + + void Reset() override + { + _events.Reset(); + Initialize(); me->SetReactState(REACT_PASSIVE); me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); diff --git a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp index c4f46136bd9..f392b21b173 100644 --- a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp +++ b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp @@ -293,14 +293,20 @@ class boss_rimefang : public CreatureScript boss_rimefangAI(Creature* creature) : ScriptedAI(creature), _vehicle(creature->GetVehicleKit()) { ASSERT(_vehicle); + Initialize(); + } + + void Initialize() + { + _currentWaypoint = 0; + _hoarfrostTargetGUID = 0; } void Reset() override { _events.Reset(); _events.SetPhase(PHASE_NONE); - _currentWaypoint = 0; - _hoarfrostTargetGUID = 0; + Initialize(); me->SetCanFly(true); me->SetReactState(REACT_PASSIVE); me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); diff --git a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/instance_pit_of_saron.cpp b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/instance_pit_of_saron.cpp index c2df16f03e1..d829b98f926 100644 --- a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/instance_pit_of_saron.cpp +++ b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/instance_pit_of_saron.cpp @@ -41,6 +41,7 @@ class instance_pit_of_saron : public InstanceMapScript { instance_pit_of_saron_InstanceScript(Map* map) : InstanceScript(map) { + SetHeaders(DataHeader); SetBossNumber(EncounterCount); LoadDoorData(Doors); _garfrostGUID = 0; @@ -51,6 +52,7 @@ class instance_pit_of_saron : public InstanceMapScript _jainaOrSylvanas1GUID = 0; _jainaOrSylvanas2GUID = 0; _teamInInstance = 0; + _tyrannusEventGUID = 0; } void OnPlayerEnter(Player* player) override @@ -264,50 +266,6 @@ class instance_pit_of_saron : public InstanceMapScript return 0; } - std::string GetSaveData() override - { - OUT_SAVE_INST_DATA; - - std::ostringstream saveStream; - saveStream << "P S " << GetBossSaveData(); - - OUT_SAVE_INST_DATA_COMPLETE; - return saveStream.str(); - } - - void Load(const char* in) override - { - if (!in) - { - OUT_LOAD_INST_DATA_FAIL; - return; - } - - OUT_LOAD_INST_DATA(in); - - char dataHead1, dataHead2; - - std::istringstream loadStream(in); - loadStream >> dataHead1 >> dataHead2; - - if (dataHead1 == 'P' && dataHead2 == 'S') - { - for (uint8 i = 0; i < EncounterCount; ++i) - { - uint32 tmpState; - loadStream >> tmpState; - if (tmpState == IN_PROGRESS || tmpState > SPECIAL) - tmpState = NOT_STARTED; - - SetBossState(i, EncounterState(tmpState)); - } - } - else - OUT_LOAD_INST_DATA_FAIL; - - OUT_LOAD_INST_DATA_COMPLETE; - } - private: uint64 _garfrostGUID; uint64 _krickGUID; diff --git a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/pit_of_saron.cpp b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/pit_of_saron.cpp index 7bd9325dd97..4d2ebd44db8 100644 --- a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/pit_of_saron.cpp +++ b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/pit_of_saron.cpp @@ -113,13 +113,19 @@ class npc_iceborn_protodrake : public CreatureScript npc_iceborn_protodrakeAI(Creature* creature) : ScriptedAI(creature), _vehicle(creature->GetVehicleKit()) { ASSERT(_vehicle); + Initialize(); } - void Reset() override + void Initialize() { _frostBreathCooldown = 5000; } + void Reset() override + { + Initialize(); + } + void EnterCombat(Unit* /*who*/) override { _vehicle->RemoveAllPassengers(); @@ -161,13 +167,19 @@ class npc_geist_ambusher : public CreatureScript { npc_geist_ambusherAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); } - void Reset() override + void Initialize() { _leapingFaceMaulCooldown = 9000; } + void Reset() override + { + Initialize(); + } + void EnterCombat(Unit* who) override { if (who->GetTypeId() != TYPEID_PLAYER) diff --git a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/pit_of_saron.h b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/pit_of_saron.h index 2a2f6a25741..4f06c6b2a26 100644 --- a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/pit_of_saron.h +++ b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/pit_of_saron.h @@ -19,6 +19,7 @@ #define PIT_OF_SARON_H_ #define PoSScriptName "instance_pit_of_saron" +#define DataHeader "POS" uint32 const EncounterCount = 3; diff --git a/src/server/scripts/Northrend/Gundrak/boss_drakkari_colossus.cpp b/src/server/scripts/Northrend/Gundrak/boss_drakkari_colossus.cpp index 68929d2aa01..001f19679c4 100644 --- a/src/server/scripts/Northrend/Gundrak/boss_drakkari_colossus.cpp +++ b/src/server/scripts/Northrend/Gundrak/boss_drakkari_colossus.cpp @@ -82,14 +82,14 @@ class boss_drakkari_colossus : public CreatureScript { boss_drakkari_colossusAI(Creature* creature) : BossAI(creature, DATA_DRAKKARI_COLOSSUS_EVENT) { + Initialize(); me->SetReactState(REACT_PASSIVE); introDone = false; } - void InitializeAI() override + void Initialize() { - if (!me->isDead()) - Reset(); + phase = COLOSSUS_PHASE_NORMAL; } void Reset() override @@ -106,7 +106,7 @@ class boss_drakkari_colossus : public CreatureScript //events.Reset(); -> done in _Reset(); events.ScheduleEvent(EVENT_MIGHTY_BLOW, urand(10000, 30000)); - phase = COLOSSUS_PHASE_NORMAL; + Initialize(); // Note: This should not be called, but before use SetBossState function we should use BossAI // in all the bosses of the instance @@ -393,13 +393,19 @@ public: { npc_living_mojoAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); } + void Initialize() + { + mojoWaveTimer = 2 * IN_MILLISECONDS; + mojoPuddleTimer = 7 * IN_MILLISECONDS; + } + void Reset() override { - mojoWaveTimer = 2*IN_MILLISECONDS; - mojoPuddleTimer = 7*IN_MILLISECONDS; + Initialize(); } void MoveMojos(Creature* boss) diff --git a/src/server/scripts/Northrend/Gundrak/boss_eck.cpp b/src/server/scripts/Northrend/Gundrak/boss_eck.cpp index 8e0ff54e161..0783a79b381 100644 --- a/src/server/scripts/Northrend/Gundrak/boss_eck.cpp +++ b/src/server/scripts/Northrend/Gundrak/boss_eck.cpp @@ -44,9 +44,20 @@ public: { boss_eckAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); } + void Initialize() + { + uiBerserkTimer = urand(60 * IN_MILLISECONDS, 90 * IN_MILLISECONDS); //60-90 secs according to wowwiki + uiBiteTimer = 5 * IN_MILLISECONDS; + uiSpitTimer = 10 * IN_MILLISECONDS; + uiSpringTimer = 8 * IN_MILLISECONDS; + + bBerserk = false; + } + uint32 uiBerserkTimer; uint32 uiBiteTimer; uint32 uiSpitTimer; @@ -58,12 +69,7 @@ public: void Reset() override { - uiBerserkTimer = urand(60*IN_MILLISECONDS, 90*IN_MILLISECONDS); //60-90 secs according to wowwiki - uiBiteTimer = 5*IN_MILLISECONDS; - uiSpitTimer = 10*IN_MILLISECONDS; - uiSpringTimer = 8*IN_MILLISECONDS; - - bBerserk = false; + Initialize(); instance->SetData(DATA_ECK_THE_FEROCIOUS_EVENT, NOT_STARTED); } diff --git a/src/server/scripts/Northrend/Gundrak/boss_gal_darah.cpp b/src/server/scripts/Northrend/Gundrak/boss_gal_darah.cpp index f1c246dbbea..22e7ac280fd 100644 --- a/src/server/scripts/Northrend/Gundrak/boss_gal_darah.cpp +++ b/src/server/scripts/Northrend/Gundrak/boss_gal_darah.cpp @@ -77,9 +77,26 @@ public: { boss_gal_darahAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); } + void Initialize() + { + uiStampedeTimer = 10 * IN_MILLISECONDS; + uiWhirlingSlashTimer = 21 * IN_MILLISECONDS; + uiPunctureTimer = 10 * IN_MILLISECONDS; + uiEnrageTimer = 15 * IN_MILLISECONDS; + uiImpalingChargeTimer = 21 * IN_MILLISECONDS; + uiStompTimer = 25 * IN_MILLISECONDS; + uiTransformationTimer = 9 * IN_MILLISECONDS; + uiPhaseCounter = 0; + + shareTheLove = 0; + bStartOfTransformation = true; + Phase = TROLL; + } + uint32 uiStampedeTimer; uint32 uiWhirlingSlashTimer; uint32 uiPunctureTimer; @@ -100,21 +117,9 @@ public: void Reset() override { - uiStampedeTimer = 10*IN_MILLISECONDS; - uiWhirlingSlashTimer = 21*IN_MILLISECONDS; - uiPunctureTimer = 10*IN_MILLISECONDS; - uiEnrageTimer = 15*IN_MILLISECONDS; - uiImpalingChargeTimer = 21*IN_MILLISECONDS; - uiStompTimer = 25*IN_MILLISECONDS; - uiTransformationTimer = 9*IN_MILLISECONDS; - uiPhaseCounter = 0; + Initialize(); impaledList.clear(); - shareTheLove = 0; - - bStartOfTransformation = true; - - Phase = TROLL; me->SetDisplayId(DISPLAY_TROLL); diff --git a/src/server/scripts/Northrend/Gundrak/boss_moorabi.cpp b/src/server/scripts/Northrend/Gundrak/boss_moorabi.cpp index 7645d984aac..255a5ece261 100644 --- a/src/server/scripts/Northrend/Gundrak/boss_moorabi.cpp +++ b/src/server/scripts/Northrend/Gundrak/boss_moorabi.cpp @@ -61,9 +61,19 @@ public: { boss_moorabiAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); instance = creature->GetInstanceScript(); } + void Initialize() + { + uiGroundTremorTimer = 18 * IN_MILLISECONDS; + uiNumblingShoutTimer = 10 * IN_MILLISECONDS; + uiDeterminedStabTimer = 20 * IN_MILLISECONDS; + uiTransformationTImer = 12 * IN_MILLISECONDS; + bPhase = false; + } + InstanceScript* instance; bool bPhase; @@ -75,11 +85,7 @@ public: void Reset() override { - uiGroundTremorTimer = 18*IN_MILLISECONDS; - uiNumblingShoutTimer = 10*IN_MILLISECONDS; - uiDeterminedStabTimer = 20*IN_MILLISECONDS; - uiTransformationTImer = 12*IN_MILLISECONDS; - bPhase = false; + Initialize(); instance->SetData(DATA_MOORABI_EVENT, NOT_STARTED); } diff --git a/src/server/scripts/Northrend/Gundrak/boss_slad_ran.cpp b/src/server/scripts/Northrend/Gundrak/boss_slad_ran.cpp index 98c8481b5ae..5db49415604 100644 --- a/src/server/scripts/Northrend/Gundrak/boss_slad_ran.cpp +++ b/src/server/scripts/Northrend/Gundrak/boss_slad_ran.cpp @@ -83,9 +83,19 @@ public: { boss_slad_ranAI(Creature* creature) : ScriptedAI(creature), lSummons(me) { + Initialize(); instance = creature->GetInstanceScript(); } + void Initialize() + { + uiPoisonNovaTimer = 10 * IN_MILLISECONDS; + uiPowerfullBiteTimer = 3 * IN_MILLISECONDS; + uiVenomBoltTimer = 15 * IN_MILLISECONDS; + uiSpawnTimer = 5 * IN_MILLISECONDS; + uiPhase = 0; + } + uint32 uiPoisonNovaTimer; uint32 uiPowerfullBiteTimer; uint32 uiVenomBoltTimer; @@ -100,11 +110,7 @@ public: void Reset() override { - uiPoisonNovaTimer = 10*IN_MILLISECONDS; - uiPowerfullBiteTimer = 3*IN_MILLISECONDS; - uiVenomBoltTimer = 15*IN_MILLISECONDS; - uiSpawnTimer = 5*IN_MILLISECONDS; - uiPhase = 0; + Initialize(); lWrappedPlayers.clear(); lSummons.DespawnAll(); diff --git a/src/server/scripts/Northrend/Gundrak/gundrak.h b/src/server/scripts/Northrend/Gundrak/gundrak.h index 4cdbec3c157..8f269705a45 100644 --- a/src/server/scripts/Northrend/Gundrak/gundrak.h +++ b/src/server/scripts/Northrend/Gundrak/gundrak.h @@ -18,6 +18,8 @@ #ifndef DEF_GUNDRAK_H #define DEF_GUNDRAK_H +#define DataHeader "GD" + enum Data { DATA_SLAD_RAN_EVENT, diff --git a/src/server/scripts/Northrend/Gundrak/instance_gundrak.cpp b/src/server/scripts/Northrend/Gundrak/instance_gundrak.cpp index 273cc4361af..e5efdad27f3 100644 --- a/src/server/scripts/Northrend/Gundrak/instance_gundrak.cpp +++ b/src/server/scripts/Northrend/Gundrak/instance_gundrak.cpp @@ -45,6 +45,7 @@ public: { instance_gundrak_InstanceMapScript(Map* map) : InstanceScript(map) { + SetHeaders(DataHeader); isHeroic = map->IsHeroic(); } diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_prince_council.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_prince_council.cpp index a9088207ebe..4b3c50d1388 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_prince_council.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_prince_council.cpp @@ -182,14 +182,20 @@ class boss_blood_council_controller : public CreatureScript { boss_blood_council_controllerAI(Creature* creature) : BossAI(creature, DATA_BLOOD_PRINCE_COUNCIL) { + Initialize(); + } + + void Initialize() + { + _invocationStage = 0; + _resetCounter = 0; } void Reset() override { events.Reset(); me->SetReactState(REACT_PASSIVE); - _invocationStage = 0; - _resetCounter = 0; + Initialize(); instance->SetBossState(DATA_BLOOD_PRINCE_COUNCIL, NOT_STARTED); } @@ -504,7 +510,7 @@ class boss_prince_keleseth_icc : public CreatureScript } } - bool CheckRoom() + bool CheckInRoom() override { if (!CheckBoundary(me)) { @@ -523,7 +529,7 @@ class boss_prince_keleseth_icc : public CreatureScript void UpdateAI(uint32 diff) override { - if (!UpdateVictim() || !CheckRoom()) + if (!UpdateVictim() || !CheckInRoom()) return; events.Update(diff); @@ -723,7 +729,7 @@ class boss_prince_taldaram_icc : public CreatureScript } } - bool CheckRoom() + bool CheckInRoom() override { if (!CheckBoundary(me)) { @@ -742,7 +748,7 @@ class boss_prince_taldaram_icc : public CreatureScript void UpdateAI(uint32 diff) override { - if (!UpdateVictim() || !CheckRoom()) + if (!UpdateVictim() || !CheckInRoom()) return; events.Update(diff); @@ -962,7 +968,7 @@ class boss_prince_valanar_icc : public CreatureScript } } - bool CheckRoom() + bool CheckInRoom() override { if (!CheckBoundary(me)) { @@ -981,7 +987,7 @@ class boss_prince_valanar_icc : public CreatureScript void UpdateAI(uint32 diff) override { - if (!UpdateVictim() || !CheckRoom()) + if (!UpdateVictim() || !CheckInRoom()) return; events.Update(diff); @@ -1142,6 +1148,7 @@ class npc_ball_of_flame : public CreatureScript npc_ball_of_flameAI(Creature* creature) : ScriptedAI(creature), _instance(creature->GetInstanceScript()) { _despawnTimer = 0; + _chaseGUID = 0; } void Reset() override @@ -1224,7 +1231,12 @@ class npc_kinetic_bomb : public CreatureScript struct npc_kinetic_bombAI : public ScriptedAI { - npc_kinetic_bombAI(Creature* creature) : ScriptedAI(creature) { } + npc_kinetic_bombAI(Creature* creature) : ScriptedAI(creature) + { + _x = 0.f; + _y = 0.f; + _groundZ = 0.f; + } void Reset() override { diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_queen_lana_thel.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_queen_lana_thel.cpp index 104a8357917..29d50f1db2a 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_queen_lana_thel.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_queen_lana_thel.cpp @@ -143,6 +143,14 @@ class boss_blood_queen_lana_thel : public CreatureScript { boss_blood_queen_lana_thelAI(Creature* creature) : BossAI(creature, DATA_BLOOD_QUEEN_LANA_THEL) { + Initialize(); + } + + void Initialize() + { + _offtankGUID = 0; + _creditBloodQuickening = false; + _killMinchar = false; } void Reset() override @@ -157,10 +165,8 @@ class boss_blood_queen_lana_thel : public CreatureScript events.ScheduleEvent(EVENT_TWILIGHT_BLOODBOLT, urand(20000, 25000), EVENT_GROUP_NORMAL); events.ScheduleEvent(EVENT_AIR_PHASE, 124000 + uint32(Is25ManRaid() ? 3000 : 0)); CleanAuras(); - _offtankGUID = 0; _vampires.clear(); - _creditBloodQuickening = false; - _killMinchar = false; + Initialize(); } void EnterCombat(Unit* who) override diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_deathbringer_saurfang.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_deathbringer_saurfang.cpp index 5ef84c7bb40..2909946a0db 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_deathbringer_saurfang.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_deathbringer_saurfang.cpp @@ -249,18 +249,24 @@ class boss_deathbringer_saurfang : public CreatureScript { boss_deathbringer_saurfangAI(Creature* creature) : BossAI(creature, DATA_DEATHBRINGER_SAURFANG) { + Initialize(); ASSERT(creature->GetVehicleKit()); // we dont actually use it, just check if exists _introDone = false; _fallenChampionCastCount = 0; } + void Initialize() + { + _frenzied = false; + _dead = false; + } + void Reset() override { _Reset(); me->SetReactState(REACT_DEFENSIVE); events.SetPhase(PHASE_COMBAT); - _frenzied = false; - _dead = false; + Initialize(); me->SetPower(POWER_ENERGY, 0); DoCast(me, SPELL_ZERO_POWER, true); DoCast(me, SPELL_BLOOD_LINK, true); @@ -299,12 +305,6 @@ class boss_deathbringer_saurfang : public CreatureScript _introDone = true; - if (GameObject* teleporter = GameObject::GetGameObject(*me, instance->GetData64(GO_SCOURGE_TRANSPORTER_DEATHBRINGER))) - { - instance->HandleGameObject(0, false, teleporter); - teleporter->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); - } - Talk(SAY_AGGRO); events.ScheduleEvent(EVENT_SUMMON_BLOOD_BEAST, 30000, 0, PHASE_COMBAT); events.ScheduleEvent(EVENT_BERSERK, IsHeroic() ? 360000 : 480000, 0, PHASE_COMBAT); diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_lady_deathwhisper.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_lady_deathwhisper.cpp index d59e723d070..bbdca1fa8c5 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_lady_deathwhisper.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_lady_deathwhisper.cpp @@ -218,6 +218,14 @@ class boss_lady_deathwhisper : public CreatureScript boss_lady_deathwhisperAI(Creature* creature) : BossAI(creature, DATA_LADY_DEATHWHISPER), _dominateMindCount(RAID_MODE<uint8>(0, 1, 1, 3)), _introDone(false) { + Initialize(); + } + + void Initialize() + { + _waveCounter = 0; + _nextVengefulShadeTargetGUID = 0; + _darnavanGUID = 0; } void Reset() override @@ -225,9 +233,7 @@ class boss_lady_deathwhisper : public CreatureScript _Reset(); me->SetPower(POWER_MANA, me->GetMaxPower(POWER_MANA)); events.SetPhase(PHASE_ONE); - _waveCounter = 0; - _nextVengefulShadeTargetGUID = 0; - _darnavanGUID = 0; + Initialize(); DoCast(me, SPELL_SHADOW_CHANNELING); me->RemoveAurasDueToSpell(SPELL_BERSERK); me->RemoveAurasDueToSpell(SPELL_MANA_BARRIER); @@ -837,6 +843,13 @@ class npc_darnavan : public CreatureScript { npc_darnavanAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); + } + + void Initialize() + { + _canCharge = true; + _canShatter = true; } void Reset() override @@ -846,8 +859,7 @@ class npc_darnavan : public CreatureScript _events.ScheduleEvent(EVENT_DARNAVAN_INTIMIDATING_SHOUT, urand(20000, 25000)); _events.ScheduleEvent(EVENT_DARNAVAN_MORTAL_STRIKE, urand(25000, 30000)); _events.ScheduleEvent(EVENT_DARNAVAN_SUNDER_ARMOR, urand(5000, 8000)); - _canCharge = true; - _canShatter = true; + Initialize(); } void JustDied(Unit* killer) override diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_lord_marrowgar.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_lord_marrowgar.cpp index 9d24ad062df..b7bf27177ea 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_lord_marrowgar.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_lord_marrowgar.cpp @@ -133,6 +133,7 @@ class boss_lord_marrowgar : public CreatureScript _coldflameLastPos.Relocate(creature); _introDone = false; _boneSlice = false; + _coldflameTarget = 0; } void Reset() override diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp index 11f20129b3e..c1a13c90780 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp @@ -223,6 +223,7 @@ class boss_professor_putricide : public CreatureScript _baseSpeed(creature->GetSpeedRate(MOVE_RUN)), _experimentState(EXPERIMENT_STATE_OOZE) { _phase = PHASE_NONE; + _oozeFloodStage = 0; } void Reset() override diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp index 76c5a93f9c5..3b65c10aaa9 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp @@ -221,6 +221,14 @@ class boss_sindragosa : public CreatureScript { boss_sindragosaAI(Creature* creature) : BossAI(creature, DATA_SINDRAGOSA), _summoned(false) { + Initialize(); + } + + void Initialize() + { + _mysticBuffetStack = 0; + _isInAirPhase = false; + _isThirdPhase = false; } void Reset() override @@ -235,9 +243,7 @@ class boss_sindragosa : public CreatureScript events.ScheduleEvent(EVENT_UNCHAINED_MAGIC, urand(9000, 14000), EVENT_GROUP_LAND_PHASE); events.ScheduleEvent(EVENT_ICY_GRIP, 33500, EVENT_GROUP_LAND_PHASE); events.ScheduleEvent(EVENT_AIR_PHASE, 50000); - _mysticBuffetStack = 0; - _isInAirPhase = false; - _isThirdPhase = false; + Initialize(); if (!_summoned) { @@ -558,6 +564,7 @@ class npc_ice_tomb : public CreatureScript npc_ice_tombAI(Creature* creature) : ScriptedAI(creature) { _trappedPlayerGUID = 0; + _existenceCheckTimer = 0; SetCombatMovement(false); } @@ -765,6 +772,12 @@ class npc_rimefang : public CreatureScript { npc_rimefangAI(Creature* creature) : ScriptedAI(creature), _instance(creature->GetInstanceScript()), _summoned(false) { + Initialize(); + } + + void Initialize() + { + _icyBlastCounter = 0; } void InitializeAI() override @@ -783,7 +796,7 @@ class npc_rimefang : public CreatureScript _events.ScheduleEvent(EVENT_FROST_BREATH_RIMEFANG, urand(12000, 15000)); _events.ScheduleEvent(EVENT_ICY_BLAST, urand(30000, 35000)); me->SetReactState(REACT_DEFENSIVE); - _icyBlastCounter = 0; + Initialize(); if (!_summoned) { @@ -922,7 +935,14 @@ class npc_sindragosa_trash : public CreatureScript { npc_sindragosa_trashAI(Creature* creature) : ScriptedAI(creature) { + Initialize(); _instance = creature->GetInstanceScript(); + _frostwyrmId = 0; + } + + void Initialize() + { + _isTaunted = false; } void InitializeAI() override @@ -946,7 +966,7 @@ class npc_sindragosa_trash : public CreatureScript _events.ScheduleEvent(EVENT_CONCUSSIVE_SHOCK, urand(8000, 10000)); } - _isTaunted = false; + Initialize(); } void JustRespawned() override diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp index b72b953efb4..e2fe441dae2 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp @@ -504,6 +504,13 @@ class boss_the_lich_king : public CreatureScript { boss_the_lich_kingAI(Creature* creature) : BossAI(creature, DATA_THE_LICH_KING) { + Initialize(); + } + + void Initialize() + { + _necroticPlagueStack = 0; + _vileSpiritExplosions = 0; } void Reset() override @@ -511,8 +518,7 @@ class boss_the_lich_king : public CreatureScript _Reset(); me->SetReactState(REACT_PASSIVE); events.SetPhase(PHASE_INTRO); - _necroticPlagueStack = 0; - _vileSpiritExplosions = 0; + Initialize(); SetEquipmentSlots(true); } diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_valithria_dreamwalker.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_valithria_dreamwalker.cpp index 0c504842c08..2d58a6eeb26 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_valithria_dreamwalker.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_valithria_dreamwalker.cpp @@ -282,6 +282,17 @@ class boss_valithria_dreamwalker : public CreatureScript boss_valithria_dreamwalkerAI(Creature* creature) : ScriptedAI(creature), _instance(creature->GetInstanceScript()), _portalCount(RAID_MODE<uint32>(3, 8, 3, 8)) { + Initialize(); + _spawnHealth = me->GetHealth(); + } + + void Initialize() + { + _missedPortals = 0; + _under25PercentTalkDone = false; + _over75PercentTalkDone = false; + _justDied = false; + _done = false; } void InitializeAI() override @@ -305,11 +316,7 @@ class boss_valithria_dreamwalker : public CreatureScript // Glyph of Dispel Magic - not a percent heal by effect, its cast with custom basepoints me->ApplySpellImmune(0, IMMUNITY_ID, 56131, true); _instance->SendEncounterUnit(ENCOUNTER_FRAME_DISENGAGE, me); - _missedPortals = 0; - _under25PercentTalkDone = false; - _over75PercentTalkDone = false; - _justDied = false; - _done = false; + Initialize(); } void AttackStart(Unit* /*target*/) override @@ -680,6 +687,12 @@ class npc_risen_archmage : public CreatureScript npc_risen_archmageAI(Creature* creature) : ScriptedAI(creature), _instance(creature->GetInstanceScript()) { + Initialize(); + } + + void Initialize() + { + _canCallEnterCombat = true; } bool CanAIAttack(Unit const* target) const override @@ -693,7 +706,7 @@ class npc_risen_archmage : public CreatureScript _events.ScheduleEvent(EVENT_FROSTBOLT_VOLLEY, urand(5000, 15000)); _events.ScheduleEvent(EVENT_MANA_VOID, urand(20000, 25000)); _events.ScheduleEvent(EVENT_COLUMN_OF_FROST, urand(10000, 20000)); - _canCallEnterCombat = true; + Initialize(); } void EnterCombat(Unit* /*target*/) override diff --git a/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.cpp b/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.cpp index e85ddc21dda..23569ba77c2 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.cpp @@ -385,17 +385,23 @@ class npc_highlord_tirion_fordring_lh : public CreatureScript { npc_highlord_tirion_fordringAI(Creature* creature) : ScriptedAI(creature), _instance(creature->GetInstanceScript()) { + Initialize(); } - void Reset() override + void Initialize() { - _events.Reset(); _theLichKing = 0; _bolvarFordragon = 0; _factionNPC = 0; _damnedKills = 0; } + void Reset() override + { + _events.Reset(); + Initialize(); + } + // IMPORTANT NOTE: This is triggered from per-GUID scripts // of The Damned SAI void SetData(uint32 type, uint32 data) override @@ -939,11 +945,18 @@ class npc_crok_scourgebane : public CreatureScript _instance(creature->GetInstanceScript()), _respawnTime(creature->GetRespawnDelay()), _corpseDelay(creature->GetCorpseDelay()) { + Initialize(); SetDespawnAtEnd(false); SetDespawnAtFar(false); _isEventActive = false; _isEventDone = _instance->GetBossState(DATA_SISTER_SVALNA) == DONE; + _currentWPid = 0; + } + + void Initialize() + { _didUnderTenPercentText = false; + _wipeCheckTimer = 1000; } void Reset() override @@ -952,8 +965,7 @@ class npc_crok_scourgebane : public CreatureScript _events.ScheduleEvent(EVENT_SCOURGE_STRIKE, urand(7500, 12500)); _events.ScheduleEvent(EVENT_DEATH_STRIKE, urand(25000, 30000)); me->SetReactState(REACT_DEFENSIVE); - _didUnderTenPercentText = false; - _wipeCheckTimer = 1000; + Initialize(); } void DoAction(int32 action) override @@ -1647,12 +1659,18 @@ class npc_impaling_spear : public CreatureScript { npc_impaling_spearAI(Creature* creature) : CreatureAI(creature) { + Initialize(); + } + + void Initialize() + { + _vehicleCheckTimer = 500; } void Reset() override { me->SetReactState(REACT_PASSIVE); - _vehicleCheckTimer = 500; + Initialize(); } void UpdateAI(uint32 diff) override @@ -2102,15 +2120,8 @@ class at_icc_shutdown_traps : public AreaTriggerScript bool OnTrigger(Player* player, AreaTriggerEntry const* /*areaTrigger*/) override { if (InstanceScript* instance = player->GetInstanceScript()) - { instance->SetData(DATA_UPPERSPIRE_TELE_ACT, DONE); - uint64 teleporterGUID = instance->GetData64(GO_SCOURGE_TRANSPORTER_UPPERSPIRE); - if (GameObject* go = instance->instance->GetGameObject(teleporterGUID)) - { - go->SetGoState(GO_STATE_ACTIVE); - go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); - } - } + return true; } }; diff --git a/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.h b/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.h index fbd3a715fb8..5d2aa9ca02f 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.h +++ b/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.h @@ -19,11 +19,9 @@ #define ICECROWN_CITADEL_H_ #include "SpellScript.h" -#include "Map.h" -#include "Creature.h" -#include "SpellMgr.h" #define ICCScriptName "instance_icecrown_citadel" +#define DataHeader "IC" uint32 const EncounterCount = 13; uint32 const WeeklyNPCs = 9; diff --git a/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel_teleport.cpp b/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel_teleport.cpp index 469bfc1d310..af07375e14c 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel_teleport.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel_teleport.cpp @@ -15,12 +15,12 @@ * with this program. If not, see <http://www.gnu.org/licenses/>. */ +#include "InstanceScript.h" +#include "Player.h" #include "ScriptedGossip.h" #include "ScriptMgr.h" -#include "InstanceScript.h" -#include "icecrown_citadel.h" #include "Spell.h" -#include "Player.h" +#include "icecrown_citadel.h" #define GOSSIP_SENDER_ICC_PORT 631 diff --git a/src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp b/src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp index f7f8e3e2489..3f429183fa0 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp @@ -115,6 +115,7 @@ class instance_icecrown_citadel : public InstanceMapScript { instance_icecrown_citadel_InstanceMapScript(InstanceMap* map) : InstanceScript(map) { + SetHeaders(DataHeader); SetBossNumber(EncounterCount); LoadDoorData(doorData); TeamInInstance = 0; @@ -173,6 +174,9 @@ class instance_icecrown_citadel : public InstanceMapScript UpperSpireTeleporterActiveState = NOT_STARTED; BloodQuickeningState = NOT_STARTED; BloodQuickeningMinutes = 0; + FrozenBolvarGUID = 0; + PillarsChainedGUID = 0; + PillarsUnchainedGUID = 0; } // A function to help reduce the number of lines for teleporter management. @@ -769,20 +773,6 @@ class instance_icecrown_citadel : public InstanceMapScript return DeathbringerSaurfangEventGUID; case GO_SAURFANG_S_DOOR: return DeathbringerSaurfangDoorGUID; - case GO_SCOURGE_TRANSPORTER_LICHKING: - return TeleporterLichKingGUID; - case GO_SCOURGE_TRANSPORTER_UPPERSPIRE: - return TeleporterUpperSpireGUID; - case GO_SCOURGE_TRANSPORTER_LIGHTSHAMMER: - return TeleporterLightsHammerGUID; - case GO_SCOURGE_TRANSPORTER_RAMPART: - return TeleporterRampartsGUID; - case GO_SCOURGE_TRANSPORTER_DEATHBRINGER: - return TeleporterDeathBringerGUID; - case GO_SCOURGE_TRANSPORTER_ORATORY: - return TeleporterOratoryGUID; - case GO_SCOURGE_TRANSPORTER_SINDRAGOSA: - return TeleporterSindragosaGUID; case DATA_FESTERGUT: return FestergutGUID; case DATA_ROTFACE: @@ -907,7 +897,12 @@ class instance_icecrown_citadel : public InstanceMapScript { if (GameObject* teleporter = instance->GetGameObject(TeleporterDeathBringerGUID)) SetTeleporterState(teleporter, true); - + break; + } + case IN_PROGRESS: + { + if (GameObject* teleporter = instance->GetGameObject(TeleporterDeathBringerGUID)) + SetTeleporterState(teleporter, false); break; } default: @@ -1122,7 +1117,11 @@ class instance_icecrown_citadel : public InstanceMapScript case DATA_UPPERSPIRE_TELE_ACT: UpperSpireTeleporterActiveState = data; if (UpperSpireTeleporterActiveState == DONE) + { + if (GameObject* go = instance->GetGameObject(TeleporterUpperSpireGUID)) + SetTeleporterState(go, true); SaveToDB(); + } break; default: break; @@ -1324,64 +1323,32 @@ class instance_icecrown_citadel : public InstanceMapScript } } - std::string GetSaveData() override + void WriteSaveDataMore(std::ostringstream& data) override { - OUT_SAVE_INST_DATA; - - std::ostringstream saveStream; - saveStream << "I C " << GetBossSaveData() << HeroicAttempts << ' ' - << ColdflameJetsState << ' ' << BloodQuickeningState << ' ' << BloodQuickeningMinutes << ' ' << UpperSpireTeleporterActiveState; - - OUT_SAVE_INST_DATA_COMPLETE; - return saveStream.str(); + data << HeroicAttempts << ' ' + << ColdflameJetsState << ' ' + << BloodQuickeningState << ' ' + << BloodQuickeningMinutes << ' ' + << UpperSpireTeleporterActiveState; } - void Load(const char* str) override + void ReadSaveDataMore(std::istringstream& data) override { - if (!str) - { - OUT_LOAD_INST_DATA_FAIL; - return; - } - - OUT_LOAD_INST_DATA(str); - - char dataHead1, dataHead2; - - std::istringstream loadStream(str); - loadStream >> dataHead1 >> dataHead2; - - if (dataHead1 == 'I' && dataHead2 == 'C') - { - for (uint32 i = 0; i < EncounterCount; ++i) - { - uint32 tmpState; - loadStream >> tmpState; - if (tmpState == IN_PROGRESS || tmpState > SPECIAL) - tmpState = NOT_STARTED; - SetBossState(i, EncounterState(tmpState)); - } - - loadStream >> HeroicAttempts; + data >> HeroicAttempts; - uint32 temp = 0; - loadStream >> temp; - if (temp == IN_PROGRESS) - ColdflameJetsState = NOT_STARTED; - else - ColdflameJetsState = temp ? DONE : NOT_STARTED; - - loadStream >> temp; - BloodQuickeningState = temp ? DONE : NOT_STARTED; // DONE means finished (not success/fail) - loadStream >> BloodQuickeningMinutes; - - loadStream >> temp; - UpperSpireTeleporterActiveState = temp ? DONE : NOT_STARTED; - } + uint32 temp = 0; + data >> temp; + if (temp == IN_PROGRESS) + ColdflameJetsState = NOT_STARTED; else - OUT_LOAD_INST_DATA_FAIL; + ColdflameJetsState = temp ? DONE : NOT_STARTED; + + data >> temp; + BloodQuickeningState = temp ? DONE : NOT_STARTED; // DONE means finished (not success/fail) + data >> BloodQuickeningMinutes; - OUT_LOAD_INST_DATA_COMPLETE; + data >> temp; + UpperSpireTeleporterActiveState = temp ? DONE : NOT_STARTED; } void Update(uint32 diff) override diff --git a/src/server/scripts/Northrend/Naxxramas/boss_anubrekhan.cpp b/src/server/scripts/Northrend/Naxxramas/boss_anubrekhan.cpp index 676e4134f11..35402771494 100644 --- a/src/server/scripts/Northrend/Naxxramas/boss_anubrekhan.cpp +++ b/src/server/scripts/Northrend/Naxxramas/boss_anubrekhan.cpp @@ -62,7 +62,15 @@ public: struct boss_anubrekhanAI : public BossAI { - boss_anubrekhanAI(Creature* creature) : BossAI(creature, BOSS_ANUBREKHAN) { } + boss_anubrekhanAI(Creature* creature) : BossAI(creature, BOSS_ANUBREKHAN) + { + Initialize(); + } + + void Initialize() + { + hasTaunted = false; + } bool hasTaunted; @@ -70,7 +78,7 @@ public: { _Reset(); - hasTaunted = false; + Initialize(); if (GetDifficulty() == RAID_DIFFICULTY_25MAN_NORMAL) { diff --git a/src/server/scripts/Northrend/Naxxramas/boss_four_horsemen.cpp b/src/server/scripts/Northrend/Naxxramas/boss_four_horsemen.cpp index e2ff68ab851..a8de1418cc4 100644 --- a/src/server/scripts/Northrend/Naxxramas/boss_four_horsemen.cpp +++ b/src/server/scripts/Northrend/Naxxramas/boss_four_horsemen.cpp @@ -96,12 +96,25 @@ public: { boss_four_horsemenAI(Creature* creature) : BossAI(creature, BOSS_HORSEMEN) { + Initialize(); id = Horsemen(0); for (uint8 i = 0; i < 4; ++i) if (me->GetEntry() == NPC_HORSEMEN[i]) id = Horsemen(i); caster = (id == HORSEMEN_LADY || id == HORSEMEN_SIR); + } + + void Initialize() + { + uiEventStarterGUID = 0; + nextWP = 0; + punishTimer = 2000; + nextMovementStarted = false; + movementCompleted = false; + movementStarted = false; + encounterActionAttack = false; encounterActionReset = false; + doDelayPunish = false; } Horsemen id; @@ -124,15 +137,7 @@ public: instance->SetData(DATA_HORSEMEN0 + id, NOT_STARTED); me->SetReactState(REACT_AGGRESSIVE); - uiEventStarterGUID = 0; - nextWP = 0; - punishTimer = 2000; - nextMovementStarted = false; - movementCompleted = false; - movementStarted = false; - encounterActionAttack = false; - encounterActionReset = false; - doDelayPunish = false; + Initialize(); _Reset(); } diff --git a/src/server/scripts/Northrend/Naxxramas/boss_gothik.cpp b/src/server/scripts/Northrend/Naxxramas/boss_gothik.cpp index 648fc3c87d2..de9d85db70b 100644 --- a/src/server/scripts/Northrend/Naxxramas/boss_gothik.cpp +++ b/src/server/scripts/Northrend/Naxxramas/boss_gothik.cpp @@ -162,7 +162,18 @@ class boss_gothik : public CreatureScript struct boss_gothikAI : public BossAI { - boss_gothikAI(Creature* creature) : BossAI(creature, BOSS_GOTHIK) { } + boss_gothikAI(Creature* creature) : BossAI(creature, BOSS_GOTHIK) + { + Initialize(); + waveCount = 0; + } + + void Initialize() + { + mergedSides = false; + phaseTwo = false; + thirtyPercentReached = false; + } uint32 waveCount; typedef std::vector<Creature*> TriggerVct; @@ -182,9 +193,7 @@ class boss_gothik : public CreatureScript me->SetReactState(REACT_PASSIVE); instance->SetData(DATA_GOTHIK_GATE, GO_STATE_ACTIVE); _Reset(); - mergedSides = false; - phaseTwo = false; - thirtyPercentReached = false; + Initialize(); } void EnterCombat(Unit* /*who*/) override diff --git a/src/server/scripts/Northrend/Naxxramas/boss_heigan.cpp b/src/server/scripts/Northrend/Naxxramas/boss_heigan.cpp index 648da29ca66..2d0e8a6d2b2 100644 --- a/src/server/scripts/Northrend/Naxxramas/boss_heigan.cpp +++ b/src/server/scripts/Northrend/Naxxramas/boss_heigan.cpp @@ -66,7 +66,13 @@ public: struct boss_heiganAI : public BossAI { - boss_heiganAI(Creature* creature) : BossAI(creature, BOSS_HEIGAN) { } + boss_heiganAI(Creature* creature) : BossAI(creature, BOSS_HEIGAN) + { + eruptSection = 0; + eruptDirection = false; + safetyDance = false; + phase = PHASE_FIGHT; + } uint32 eruptSection; bool eruptDirection; diff --git a/src/server/scripts/Northrend/Naxxramas/boss_kelthuzad.cpp b/src/server/scripts/Northrend/Naxxramas/boss_kelthuzad.cpp index 61ee650b37a..1c4320fd48b 100644 --- a/src/server/scripts/Northrend/Naxxramas/boss_kelthuzad.cpp +++ b/src/server/scripts/Northrend/Naxxramas/boss_kelthuzad.cpp @@ -263,9 +263,20 @@ public: { boss_kelthuzadAI(Creature* creature) : BossAI(creature, BOSS_KELTHUZAD), spawns(creature) { + Initialize(); uiFaction = me->getFaction(); } + void Initialize() + { + nGuardiansOfIcecrownCount = 0; + uiGuardiansOfIcecrownTimer = 5000; // 5 seconds for summoning each Guardian of Icecrown in phase 3 + + Phase = 0; + nAbomination = 0; + nWeaver = 0; + } + uint32 Phase; uint32 uiGuardiansOfIcecrownTimer; uint32 uiFaction; @@ -315,12 +326,7 @@ public: portal->ResetDoorOrButton(); } - nGuardiansOfIcecrownCount = 0; - uiGuardiansOfIcecrownTimer = 5000; // 5 seconds for summoning each Guardian of Icecrown in phase 3 - - Phase = 0; - nAbomination = 0; - nWeaver = 0; + Initialize(); } void KilledUnit(Unit* /*victim*/) override diff --git a/src/server/scripts/Northrend/Naxxramas/boss_loatheb.cpp b/src/server/scripts/Northrend/Naxxramas/boss_loatheb.cpp index 9987802a165..736941949d1 100644 --- a/src/server/scripts/Northrend/Naxxramas/boss_loatheb.cpp +++ b/src/server/scripts/Northrend/Naxxramas/boss_loatheb.cpp @@ -60,15 +60,21 @@ class boss_loatheb : public CreatureScript { boss_loathebAI(Creature* creature) : BossAI(creature, BOSS_LOATHEB) { + Initialize(); } - void Reset() override + void Initialize() { - _Reset(); _doomCounter = 0; _sporeLoserData = true; } + void Reset() override + { + _Reset(); + Initialize(); + } + void EnterCombat(Unit* /*who*/) override { _EnterCombat(); diff --git a/src/server/scripts/Northrend/Naxxramas/boss_sapphiron.cpp b/src/server/scripts/Northrend/Naxxramas/boss_sapphiron.cpp index ea345c0dee0..0f5320a8fa1 100644 --- a/src/server/scripts/Northrend/Naxxramas/boss_sapphiron.cpp +++ b/src/server/scripts/Northrend/Naxxramas/boss_sapphiron.cpp @@ -375,7 +375,7 @@ class boss_sapphiron : public CreatureScript for (IceBlockMap::const_iterator itr = _iceblocks.begin(); itr != _iceblocks.end(); ++itr) { - if (GameObject* go = GameObject::GetGameObject(*me, itr->second)) + if (GameObject* go = ObjectAccessor::GetGameObject(*me, itr->second)) { if (go->IsInBetween(me, target, 2.0f) && me->GetExactDist2d(target->GetPositionX(), target->GetPositionY()) - me->GetExactDist2d(go->GetPositionX(), go->GetPositionY()) < 5.0f) diff --git a/src/server/scripts/Northrend/Naxxramas/instance_naxxramas.cpp b/src/server/scripts/Northrend/Naxxramas/instance_naxxramas.cpp index e8ed181da5a..173b6e2d094 100644 --- a/src/server/scripts/Northrend/Naxxramas/instance_naxxramas.cpp +++ b/src/server/scripts/Northrend/Naxxramas/instance_naxxramas.cpp @@ -107,6 +107,7 @@ class instance_naxxramas : public InstanceMapScript { instance_naxxramas_InstanceMapScript(Map* map) : InstanceScript(map) { + SetHeaders(DataHeader); SetBossNumber(EncounterCount); LoadDoorData(doorData); LoadMinionData(minionData); @@ -427,50 +428,6 @@ class instance_naxxramas : public InstanceMapScript return false; } - std::string GetSaveData() override - { - OUT_SAVE_INST_DATA; - - std::ostringstream saveStream; - saveStream << "N X " << GetBossSaveData() << playerDied; - - OUT_SAVE_INST_DATA_COMPLETE; - return saveStream.str(); - } - - void Load(const char* strIn) override - { - if (!strIn) - { - OUT_LOAD_INST_DATA_FAIL; - return; - } - - OUT_LOAD_INST_DATA(strIn); - - char dataHead1, dataHead2; - - std::istringstream loadStream(strIn); - loadStream >> dataHead1 >> dataHead2; - - if (dataHead1 == 'N' && dataHead2 == 'X') - { - for (uint8 i = 0; i < EncounterCount; ++i) - { - uint32 tmpState; - loadStream >> tmpState; - if (tmpState == IN_PROGRESS || tmpState > SPECIAL) - tmpState = NOT_STARTED; - - SetBossState(i, EncounterState(tmpState)); - } - - loadStream >> playerDied; - } - - OUT_LOAD_INST_DATA_COMPLETE; - } - protected: /* The Arachnid Quarter */ // Grand Widow Faerlina diff --git a/src/server/scripts/Northrend/Naxxramas/naxxramas.h b/src/server/scripts/Northrend/Naxxramas/naxxramas.h index b6e87504c77..8325271a403 100644 --- a/src/server/scripts/Northrend/Naxxramas/naxxramas.h +++ b/src/server/scripts/Northrend/Naxxramas/naxxramas.h @@ -18,6 +18,8 @@ #ifndef DEF_NAXXRAMAS_H #define DEF_NAXXRAMAS_H +#define DataHeader "NAX" + uint32 const EncounterCount = 15; enum Encounter diff --git a/src/server/scripts/Northrend/Nexus/EyeOfEternity/eye_of_eternity.h b/src/server/scripts/Northrend/Nexus/EyeOfEternity/eye_of_eternity.h index f94acf5d772..ef7dd743515 100644 --- a/src/server/scripts/Northrend/Nexus/EyeOfEternity/eye_of_eternity.h +++ b/src/server/scripts/Northrend/Nexus/EyeOfEternity/eye_of_eternity.h @@ -18,6 +18,8 @@ #ifndef DEF_EYE_OF_ETERNITY_H #define DEF_EYE_OF_ETERNITY_H +#define DataHeader "EOE" + enum InstanceData { DATA_MALYGOS_EVENT, diff --git a/src/server/scripts/Northrend/Nexus/EyeOfEternity/instance_eye_of_eternity.cpp b/src/server/scripts/Northrend/Nexus/EyeOfEternity/instance_eye_of_eternity.cpp index 8a1fb6a9829..1489b78159b 100644 --- a/src/server/scripts/Northrend/Nexus/EyeOfEternity/instance_eye_of_eternity.cpp +++ b/src/server/scripts/Northrend/Nexus/EyeOfEternity/instance_eye_of_eternity.cpp @@ -35,6 +35,7 @@ public: { instance_eye_of_eternity_InstanceMapScript(Map* map) : InstanceScript(map) { + SetHeaders(DataHeader); SetBossNumber(MAX_ENCOUNTER); vortexTriggers.clear(); @@ -278,65 +279,23 @@ public: return 0; } - std::string GetSaveData() override - { - OUT_SAVE_INST_DATA; - - std::ostringstream saveStream; - saveStream << "E E " << GetBossSaveData(); - - OUT_SAVE_INST_DATA_COMPLETE; - return saveStream.str(); - } - - void Load(const char* str) override - { - if (!str) - { - OUT_LOAD_INST_DATA_FAIL; - return; - } - - OUT_LOAD_INST_DATA(str); - - char dataHead1, dataHead2; - - std::istringstream loadStream(str); - loadStream >> dataHead1 >> dataHead2; - - if (dataHead1 == 'E' && dataHead2 == 'E') - { - for (uint8 i = 0; i < MAX_ENCOUNTER; ++i) - { - uint32 tmpState; - loadStream >> tmpState; - if (tmpState == IN_PROGRESS || tmpState > SPECIAL) - tmpState = NOT_STARTED; - SetBossState(i, EncounterState(tmpState)); - } - - } else OUT_LOAD_INST_DATA_FAIL; - - OUT_LOAD_INST_DATA_COMPLETE; - } - - private: - std::list<uint64> vortexTriggers; - std::list<uint64> portalTriggers; - uint64 malygosGUID; - uint64 irisGUID; - uint64 lastPortalGUID; - uint64 platformGUID; - uint64 exitPortalGUID; - uint64 heartOfMagicGUID; - uint64 alexstraszaBunnyGUID; - uint64 giftBoxBunnyGUID; - Position focusingIrisPosition; - Position exitPortalPosition; + private: + std::list<uint64> vortexTriggers; + std::list<uint64> portalTriggers; + uint64 malygosGUID; + uint64 irisGUID; + uint64 lastPortalGUID; + uint64 platformGUID; + uint64 exitPortalGUID; + uint64 heartOfMagicGUID; + uint64 alexstraszaBunnyGUID; + uint64 giftBoxBunnyGUID; + Position focusingIrisPosition; + Position exitPortalPosition; }; }; void AddSC_instance_eye_of_eternity() { - new instance_eye_of_eternity(); + new instance_eye_of_eternity(); } diff --git a/src/server/scripts/Northrend/Nexus/Nexus/instance_nexus.cpp b/src/server/scripts/Northrend/Nexus/Nexus/instance_nexus.cpp index f2118932d61..663f4bca6ac 100644 --- a/src/server/scripts/Northrend/Nexus/Nexus/instance_nexus.cpp +++ b/src/server/scripts/Northrend/Nexus/Nexus/instance_nexus.cpp @@ -55,6 +55,7 @@ public: void Initialize() override { + SetHeaders(DataHeader); memset(&m_auiEncounter, 0, sizeof(m_auiEncounter)); Anomalus = 0; diff --git a/src/server/scripts/Northrend/Nexus/Nexus/nexus.h b/src/server/scripts/Northrend/Nexus/Nexus/nexus.h index e9be1a32c2a..c9f5d44c932 100644 --- a/src/server/scripts/Northrend/Nexus/Nexus/nexus.h +++ b/src/server/scripts/Northrend/Nexus/Nexus/nexus.h @@ -18,6 +18,8 @@ #ifndef DEF_NEXUS_H #define DEF_NEXUS_H +#define DataHeader "NEX" + enum DataTypes { DATA_MAGUS_TELESTRA_EVENT, diff --git a/src/server/scripts/Northrend/Nexus/Oculus/instance_oculus.cpp b/src/server/scripts/Northrend/Nexus/Oculus/instance_oculus.cpp index 2b15ddf32c4..b758f9c678c 100644 --- a/src/server/scripts/Northrend/Nexus/Oculus/instance_oculus.cpp +++ b/src/server/scripts/Northrend/Nexus/Oculus/instance_oculus.cpp @@ -40,6 +40,7 @@ class instance_oculus : public InstanceMapScript { instance_oculus_InstanceMapScript(Map* map) : InstanceScript(map) { + SetHeaders(DataHeader); SetBossNumber(EncounterCount); LoadDoorData(doorData); @@ -286,49 +287,6 @@ class instance_oculus : public InstanceMapScript gwhelp->SetPhaseMask(1, true); } - std::string GetSaveData() override - { - OUT_SAVE_INST_DATA; - - std::ostringstream saveStream; - saveStream << "T O " << GetBossSaveData(); - - OUT_SAVE_INST_DATA_COMPLETE; - return saveStream.str(); - } - - void Load(char const* str) override - { - if (!str) - { - OUT_LOAD_INST_DATA_FAIL; - return; - } - - OUT_LOAD_INST_DATA(str); - - char dataHead1, dataHead2; - - std::istringstream loadStream(str); - loadStream >> dataHead1 >> dataHead2; - - if (dataHead1 == 'T' && dataHead2 == 'O') - { - for (uint32 i = 0; i < EncounterCount; ++i) - { - uint32 tmpState; - loadStream >> tmpState; - if (tmpState == IN_PROGRESS || tmpState > SPECIAL) - tmpState = NOT_STARTED; - SetBossState(i, EncounterState(tmpState)); - } - } - else - OUT_LOAD_INST_DATA_FAIL; - - OUT_LOAD_INST_DATA_COMPLETE; - } - protected: uint64 DrakosGUID; uint64 VarosGUID; diff --git a/src/server/scripts/Northrend/Nexus/Oculus/oculus.h b/src/server/scripts/Northrend/Nexus/Oculus/oculus.h index f54b1c067f0..268cdb54e3e 100644 --- a/src/server/scripts/Northrend/Nexus/Oculus/oculus.h +++ b/src/server/scripts/Northrend/Nexus/Oculus/oculus.h @@ -19,6 +19,7 @@ #define OCULUS_H_ #define OculusScriptName "instance_oculus" +#define DataHeader "OC" uint32 const EncounterCount = 4; diff --git a/src/server/scripts/Northrend/Ulduar/HallsOfLightning/halls_of_lightning.h b/src/server/scripts/Northrend/Ulduar/HallsOfLightning/halls_of_lightning.h index cef99ce7abd..5dd2e48898b 100644 --- a/src/server/scripts/Northrend/Ulduar/HallsOfLightning/halls_of_lightning.h +++ b/src/server/scripts/Northrend/Ulduar/HallsOfLightning/halls_of_lightning.h @@ -19,6 +19,7 @@ #define HALLS_OF_LIGHTNING_H_ #define HoLScriptName "instance_halls_of_lightning" +#define DataHeader "HOL" uint32 const EncounterCount = 4; diff --git a/src/server/scripts/Northrend/Ulduar/HallsOfLightning/instance_halls_of_lightning.cpp b/src/server/scripts/Northrend/Ulduar/HallsOfLightning/instance_halls_of_lightning.cpp index 2f5273f0296..0f44f935d24 100644 --- a/src/server/scripts/Northrend/Ulduar/HallsOfLightning/instance_halls_of_lightning.cpp +++ b/src/server/scripts/Northrend/Ulduar/HallsOfLightning/instance_halls_of_lightning.cpp @@ -36,6 +36,7 @@ class instance_halls_of_lightning : public InstanceMapScript { instance_halls_of_lightning_InstanceMapScript(Map* map) : InstanceScript(map) { + SetHeaders(DataHeader); SetBossNumber(EncounterCount); LoadDoorData(doorData); @@ -136,49 +137,6 @@ class instance_halls_of_lightning : public InstanceMapScript return 0; } - std::string GetSaveData() override - { - OUT_SAVE_INST_DATA; - - std::ostringstream saveStream; - saveStream << "H L " << GetBossSaveData(); - - OUT_SAVE_INST_DATA_COMPLETE; - return saveStream.str(); - } - - void Load(const char* str) override - { - if (!str) - { - OUT_LOAD_INST_DATA_FAIL; - return; - } - - OUT_LOAD_INST_DATA(str); - - char dataHead1, dataHead2; - - std::istringstream loadStream(str); - loadStream >> dataHead1 >> dataHead2; - - if (dataHead1 == 'H' && dataHead2 == 'L') - { - for (uint32 i = 0; i < EncounterCount; ++i) - { - uint32 tmpState; - loadStream >> tmpState; - if (tmpState == IN_PROGRESS || tmpState > SPECIAL) - tmpState = NOT_STARTED; - SetBossState(i, EncounterState(tmpState)); - } - } - else - OUT_LOAD_INST_DATA_FAIL; - - OUT_LOAD_INST_DATA_COMPLETE; - } - protected: uint64 GeneralBjarngrimGUID; uint64 VolkhanGUID; diff --git a/src/server/scripts/Northrend/Ulduar/HallsOfStone/halls_of_stone.h b/src/server/scripts/Northrend/Ulduar/HallsOfStone/halls_of_stone.h index 3690557d91b..253fbc43a5d 100644 --- a/src/server/scripts/Northrend/Ulduar/HallsOfStone/halls_of_stone.h +++ b/src/server/scripts/Northrend/Ulduar/HallsOfStone/halls_of_stone.h @@ -19,6 +19,7 @@ #define HALLS_OF_STONE_H_ #define HoSScriptName "instance_halls_of_stone" +#define DataHeader "HOS" uint32 const EncounterCount = 4; diff --git a/src/server/scripts/Northrend/Ulduar/HallsOfStone/instance_halls_of_stone.cpp b/src/server/scripts/Northrend/Ulduar/HallsOfStone/instance_halls_of_stone.cpp index 0c9492c87c0..b7aa606aeeb 100644 --- a/src/server/scripts/Northrend/Ulduar/HallsOfStone/instance_halls_of_stone.cpp +++ b/src/server/scripts/Northrend/Ulduar/HallsOfStone/instance_halls_of_stone.cpp @@ -15,11 +15,11 @@ * with this program. If not, see <http://www.gnu.org/licenses/>. */ -#include "ScriptMgr.h" #include "InstanceScript.h" +#include "Player.h" +#include "ScriptMgr.h" #include "WorldSession.h" #include "halls_of_stone.h" -#include <Player.h> DoorData const doorData[] = { @@ -36,6 +36,7 @@ class instance_halls_of_stone : public InstanceMapScript { instance_halls_of_stone_InstanceMapScript(Map* map) : InstanceScript(map) { + SetHeaders(DataHeader); SetBossNumber(EncounterCount); LoadDoorData(doorData); @@ -203,49 +204,6 @@ class instance_halls_of_stone : public InstanceMapScript return true; } - std::string GetSaveData() override - { - OUT_SAVE_INST_DATA; - - std::ostringstream saveStream; - saveStream << "H S " << GetBossSaveData(); - - OUT_SAVE_INST_DATA_COMPLETE; - return saveStream.str(); - } - - void Load(char const* str) override - { - if (!str) - { - OUT_LOAD_INST_DATA_FAIL; - return; - } - - OUT_LOAD_INST_DATA(str); - - char dataHead1, dataHead2; - - std::istringstream loadStream(str); - loadStream >> dataHead1 >> dataHead2; - - if (dataHead1 == 'H' && dataHead2 == 'S') - { - for (uint32 i = 0; i < EncounterCount; ++i) - { - uint32 tmpState; - loadStream >> tmpState; - if (tmpState == IN_PROGRESS || tmpState > SPECIAL) - tmpState = NOT_STARTED; - SetBossState(i, EncounterState(tmpState)); - } - } - else - OUT_LOAD_INST_DATA_FAIL; - - OUT_LOAD_INST_DATA_COMPLETE; - } - protected: uint64 KrystallusGUID; uint64 MaidenOfGriefGUID; diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp index a074ce28181..56f5c19c574 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp @@ -123,6 +123,7 @@ class instance_ulduar : public InstanceMapScript void Initialize() override { + SetHeaders(DataHeader); SetBossNumber(MAX_ENCOUNTER); LoadDoorData(doorData); LoadMinionData(minionData); @@ -1033,84 +1034,50 @@ class instance_ulduar : public InstanceMapScript return false; } - std::string GetSaveData() override + void WriteSaveDataMore(std::ostringstream& data) override { - OUT_SAVE_INST_DATA; - - std::ostringstream saveStream; - saveStream << "U U " << GetBossSaveData() << GetData(DATA_COLOSSUS) << ' ' << _algalonTimer << ' ' << (_algalonSummoned ? 1 : 0); + data << GetData(DATA_COLOSSUS) << ' ' << _algalonTimer << ' ' << uint32(_algalonSummoned ? 1 : 0); for (uint8 i = 0; i < 4; ++i) - saveStream << ' ' << (KeeperGUIDs[i] ? 1 : 0); - - OUT_SAVE_INST_DATA_COMPLETE; - return saveStream.str(); + data << ' ' << uint32(KeeperGUIDs[i] ? 1 : 0); } - void Load(char const* strIn) override + void ReadSaveDataMore(std::istringstream& data) override { - if (!strIn) + uint32 tempState; + data >> tempState; + if (tempState == IN_PROGRESS || tempState > SPECIAL) + tempState = NOT_STARTED; + SetData(DATA_COLOSSUS, tempState); + + data >> _algalonTimer; + data >> tempState; + _algalonSummoned = tempState != 0; + if (_algalonSummoned && GetBossState(BOSS_ALGALON) != DONE) { - OUT_LOAD_INST_DATA_FAIL; - return; - } - - OUT_LOAD_INST_DATA(strIn); - - char dataHead1, dataHead2; - - std::istringstream loadStream(strIn); - loadStream >> dataHead1 >> dataHead2; - - if (dataHead1 == 'U' && dataHead2 == 'U') - { - for (uint8 i = 0; i < MAX_ENCOUNTER; ++i) - { - uint32 tmpState; - loadStream >> tmpState; - if (tmpState == IN_PROGRESS || tmpState > SPECIAL) - tmpState = NOT_STARTED; - - SetBossState(i, EncounterState(tmpState)); - } - - uint32 tempState; - loadStream >> tempState; - if (tempState == IN_PROGRESS || tempState > SPECIAL) - tempState = NOT_STARTED; - SetData(DATA_COLOSSUS, tempState); - - loadStream >> _algalonTimer; - loadStream >> tempState; - _algalonSummoned = tempState != 0; - if (_algalonSummoned && GetBossState(BOSS_ALGALON) != DONE) - { - _summonAlgalon = true; - if (_algalonTimer && _algalonTimer <= 60) - { - _events.ScheduleEvent(EVENT_UPDATE_ALGALON_TIMER, 60000); - DoUpdateWorldState(WORLD_STATE_ALGALON_TIMER_ENABLED, 1); - DoUpdateWorldState(WORLD_STATE_ALGALON_DESPAWN_TIMER, _algalonTimer); - } - } - - for (uint8 i = 0; i < 4; ++i) + _summonAlgalon = true; + if (_algalonTimer && _algalonTimer <= 60) { - loadStream >> tempState; - _summonYSKeeper[i] = tempState != 0; + _events.ScheduleEvent(EVENT_UPDATE_ALGALON_TIMER, 60000); + DoUpdateWorldState(WORLD_STATE_ALGALON_TIMER_ENABLED, 1); + DoUpdateWorldState(WORLD_STATE_ALGALON_DESPAWN_TIMER, _algalonTimer); } + } - if (GetBossState(BOSS_FREYA) == DONE && !_summonYSKeeper[0]) - _summonObservationRingKeeper[0] = true; - if (GetBossState(BOSS_HODIR) == DONE && !_summonYSKeeper[1]) - _summonObservationRingKeeper[1] = true; - if (GetBossState(BOSS_THORIM) == DONE && !_summonYSKeeper[2]) - _summonObservationRingKeeper[2] = true; - if (GetBossState(BOSS_MIMIRON) == DONE && !_summonYSKeeper[3]) - _summonObservationRingKeeper[3] = true; + for (uint8 i = 0; i < 4; ++i) + { + data >> tempState; + _summonYSKeeper[i] = tempState != 0; } - OUT_LOAD_INST_DATA_COMPLETE; + if (GetBossState(BOSS_FREYA) == DONE && !_summonYSKeeper[0]) + _summonObservationRingKeeper[0] = true; + if (GetBossState(BOSS_HODIR) == DONE && !_summonYSKeeper[1]) + _summonObservationRingKeeper[1] = true; + if (GetBossState(BOSS_THORIM) == DONE && !_summonYSKeeper[2]) + _summonObservationRingKeeper[2] = true; + if (GetBossState(BOSS_MIMIRON) == DONE && !_summonYSKeeper[3]) + _summonObservationRingKeeper[3] = true; } void Update(uint32 diff) override diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/ulduar.h b/src/server/scripts/Northrend/Ulduar/Ulduar/ulduar.h index 5dfc2b54f6e..9b95d7cf7b8 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/ulduar.h +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/ulduar.h @@ -19,6 +19,7 @@ #define DEF_ULDUAR_H #define UlduarScriptName "instance_ulduar" +#define DataHeader "UU" extern Position const ObservationRingKeepersPos[4]; extern Position const YSKeepersPos[4]; diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/instance_utgarde_keep.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/instance_utgarde_keep.cpp index 69229be1771..78df568d144 100644 --- a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/instance_utgarde_keep.cpp +++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/instance_utgarde_keep.cpp @@ -41,6 +41,7 @@ class instance_utgarde_keep : public InstanceMapScript { instance_utgarde_keep_InstanceMapScript(Map* map) : InstanceScript(map) { + SetHeaders(DataHeader); SetBossNumber(EncounterCount); LoadDoorData(doorData); LoadMinionData(minionData); @@ -191,53 +192,16 @@ class instance_utgarde_keep : public InstanceMapScript } } - std::string GetSaveData() override + void WriteSaveDataMore(std::ostringstream& data) override { - OUT_SAVE_INST_DATA; - - std::ostringstream saveStream; - saveStream << "U K " << GetBossSaveData(); - for (uint8 i = 0; i < 3; ++i) - saveStream << Forges[i].Event << ' '; - - OUT_SAVE_INST_DATA_COMPLETE; - return saveStream.str(); + data << Forges[i].Event << ' '; } - void Load(char const* str) override + void ReadSaveDataMore(std::istringstream& data) override { - if (!str) - { - OUT_LOAD_INST_DATA_FAIL; - return; - } - - OUT_LOAD_INST_DATA(str); - - char dataHead1, dataHead2; - - std::istringstream loadStream(str); - loadStream >> dataHead1 >> dataHead2; - - if (dataHead1 == 'U' && dataHead2 == 'K') - { - for (uint32 i = 0; i < EncounterCount; ++i) - { - uint32 tmpState; - loadStream >> tmpState; - if (tmpState == IN_PROGRESS || tmpState > SPECIAL) - tmpState = NOT_STARTED; - SetBossState(i, EncounterState(tmpState)); - } - - for (uint8 i = 0; i < 3; ++i) - loadStream >> Forges[i].Event; - } - else - OUT_LOAD_INST_DATA_FAIL; - - OUT_LOAD_INST_DATA_COMPLETE; + for (uint8 i = 0; i < 3; ++i) + data >> Forges[i].Event; } protected: diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/utgarde_keep.h b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/utgarde_keep.h index 240cb8c65db..751239755cf 100644 --- a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/utgarde_keep.h +++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/utgarde_keep.h @@ -19,6 +19,7 @@ #define UTGARDE_KEEP_H_ #define UKScriptName "instance_utgarde_keep" +#define DataHeader "UK" uint32 const EncounterCount = 3; diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/instance_utgarde_pinnacle.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/instance_utgarde_pinnacle.cpp index 6eea38c32a3..1bc3f20c3fe 100644 --- a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/instance_utgarde_pinnacle.cpp +++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/instance_utgarde_pinnacle.cpp @@ -35,6 +35,7 @@ class instance_utgarde_pinnacle : public InstanceMapScript { instance_utgarde_pinnacle_InstanceMapScript(Map* map) : InstanceScript(map) { + SetHeaders(DataHeader); SetBossNumber(EncounterCount); LoadDoorData(doorData); @@ -181,49 +182,6 @@ class instance_utgarde_pinnacle : public InstanceMapScript return 0; } - std::string GetSaveData() override - { - OUT_SAVE_INST_DATA; - - std::ostringstream saveStream; - saveStream << "U P " << GetBossSaveData(); - - OUT_SAVE_INST_DATA_COMPLETE; - return saveStream.str(); - } - - void Load(char const* str) override - { - if (!str) - { - OUT_LOAD_INST_DATA_FAIL; - return; - } - - OUT_LOAD_INST_DATA(str); - - char dataHead1, dataHead2; - - std::istringstream loadStream(str); - loadStream >> dataHead1 >> dataHead2; - - if (dataHead1 == 'U' && dataHead2 == 'P') - { - for (uint32 i = 0; i < EncounterCount; ++i) - { - uint32 tmpState; - loadStream >> tmpState; - if (tmpState == IN_PROGRESS || tmpState > SPECIAL) - tmpState = NOT_STARTED; - SetBossState(i, EncounterState(tmpState)); - } - } - else - OUT_LOAD_INST_DATA_FAIL; - - OUT_LOAD_INST_DATA_COMPLETE; - } - protected: uint64 SvalaSorrowgraveGUID; uint64 GortokPalehoofGUID; diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/utgarde_pinnacle.h b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/utgarde_pinnacle.h index 99acef0b2b3..cccfcede80b 100644 --- a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/utgarde_pinnacle.h +++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/utgarde_pinnacle.h @@ -19,6 +19,7 @@ #define UTGARDE_PINNACLE_H_ #define UPScriptName "instance_utgarde_pinnacle" +#define DataHeader "UP" uint32 const EncounterCount = 4; diff --git a/src/server/scripts/Northrend/VaultOfArchavon/instance_vault_of_archavon.cpp b/src/server/scripts/Northrend/VaultOfArchavon/instance_vault_of_archavon.cpp index 1f5b16f1a46..959c8b7724d 100644 --- a/src/server/scripts/Northrend/VaultOfArchavon/instance_vault_of_archavon.cpp +++ b/src/server/scripts/Northrend/VaultOfArchavon/instance_vault_of_archavon.cpp @@ -35,6 +35,7 @@ class instance_vault_of_archavon : public InstanceMapScript { instance_vault_of_archavon_InstanceMapScript(Map* map) : InstanceScript(map) { + SetHeaders(DataHeader); SetBossNumber(EncounterCount); EmalonGUID = 0; diff --git a/src/server/scripts/Northrend/VaultOfArchavon/vault_of_archavon.h b/src/server/scripts/Northrend/VaultOfArchavon/vault_of_archavon.h index 4a8d52ac306..d321a7b8347 100644 --- a/src/server/scripts/Northrend/VaultOfArchavon/vault_of_archavon.h +++ b/src/server/scripts/Northrend/VaultOfArchavon/vault_of_archavon.h @@ -18,6 +18,8 @@ #ifndef DEF_ARCHAVON_H #define DEF_ARCHAVON_H +#define DataHeader "VA" + uint32 const EncounterCount = 4; enum Data diff --git a/src/server/scripts/Northrend/VioletHold/instance_violet_hold.cpp b/src/server/scripts/Northrend/VioletHold/instance_violet_hold.cpp index c799a2f1813..9c81e664fd4 100644 --- a/src/server/scripts/Northrend/VioletHold/instance_violet_hold.cpp +++ b/src/server/scripts/Northrend/VioletHold/instance_violet_hold.cpp @@ -170,6 +170,7 @@ public: void Initialize() override { + SetHeaders(DataHeader); uiMoragg = 0; uiErekem = 0; uiIchoron = 0; diff --git a/src/server/scripts/Northrend/VioletHold/violet_hold.h b/src/server/scripts/Northrend/VioletHold/violet_hold.h index 96691f5e662..205fbec2487 100644 --- a/src/server/scripts/Northrend/VioletHold/violet_hold.h +++ b/src/server/scripts/Northrend/VioletHold/violet_hold.h @@ -18,6 +18,8 @@ #ifndef DEF_VIOLET_HOLD_H #define DEF_VIOLET_HOLD_H +#define DataHeader "VIO" + enum Data { DATA_1ST_BOSS_EVENT, diff --git a/src/server/scripts/Outland/Auchindoun/AuchenaiCrypts/auchenai_crypts.h b/src/server/scripts/Outland/Auchindoun/AuchenaiCrypts/auchenai_crypts.h index d741044eea7..c07c8365c2f 100644 --- a/src/server/scripts/Outland/Auchindoun/AuchenaiCrypts/auchenai_crypts.h +++ b/src/server/scripts/Outland/Auchindoun/AuchenaiCrypts/auchenai_crypts.h @@ -19,6 +19,7 @@ #define AUCHENAI_CRYPTS_H_ #define ACScriptName "instance_auchenai_crypts" +#define DataHeader "AC" uint32 const EncounterCount = 2; diff --git a/src/server/scripts/Outland/Auchindoun/AuchenaiCrypts/instance_auchenai_crypts.cpp b/src/server/scripts/Outland/Auchindoun/AuchenaiCrypts/instance_auchenai_crypts.cpp index 4b8a764fa03..33c9aab0cf9 100644 --- a/src/server/scripts/Outland/Auchindoun/AuchenaiCrypts/instance_auchenai_crypts.cpp +++ b/src/server/scripts/Outland/Auchindoun/AuchenaiCrypts/instance_auchenai_crypts.cpp @@ -28,6 +28,7 @@ class instance_auchenai_crypts : public InstanceMapScript { instance_auchenai_crypts_InstanceMapScript(Map* map) : InstanceScript(map) { + SetHeaders(DataHeader); SetBossNumber(EncounterCount); } }; diff --git a/src/server/scripts/Outland/Auchindoun/ManaTombs/boss_pandemonius.cpp b/src/server/scripts/Outland/Auchindoun/ManaTombs/boss_pandemonius.cpp index b74c800c01b..d9a66f7b420 100644 --- a/src/server/scripts/Outland/Auchindoun/ManaTombs/boss_pandemonius.cpp +++ b/src/server/scripts/Outland/Auchindoun/ManaTombs/boss_pandemonius.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,27 +15,28 @@ * with this program. If not, see <http://www.gnu.org/licenses/>. */ -/* ScriptData -SDName: Boss_Pandemonius -SD%Complete: 75 -SDComment: Not known how void blast is done (amount of rapid cast seems to be related to players in party). All mobs remaining in surrounding area should aggro when engaged. -SDCategory: Auchindoun, Mana Tombs -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 +}; + +enum Spells +{ + SPELL_VOID_BLAST = 32325, + SPELL_DARK_SHELL = 32358 +}; - SPELL_VOID_BLAST = 32325, - H_SPELL_VOID_BLAST = 38760, - SPELL_DARK_SHELL = 32358, - H_SPELL_DARK_SHELL = 38759 +enum Events +{ + EVENT_VOID_BLAST = 1, + EVENT_DARK_SHELL }; @@ -45,26 +45,17 @@ class boss_pandemonius : public CreatureScript public: boss_pandemonius() : CreatureScript("boss_pandemonius") { } - CreatureAI* GetAI(Creature* creature) const override - { - return new boss_pandemoniusAI(creature); - } - - struct boss_pandemoniusAI : public ScriptedAI + struct boss_pandemoniusAI : public BossAI { - 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 +70,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/ManaTombs/instance_mana_tombs.cpp b/src/server/scripts/Outland/Auchindoun/ManaTombs/instance_mana_tombs.cpp index 48bea45a95b..4629aadb2bd 100644 --- a/src/server/scripts/Outland/Auchindoun/ManaTombs/instance_mana_tombs.cpp +++ b/src/server/scripts/Outland/Auchindoun/ManaTombs/instance_mana_tombs.cpp @@ -28,6 +28,7 @@ class instance_mana_tombs : public InstanceMapScript { instance_mana_tombs_InstanceMapScript(Map* map) : InstanceScript(map) { + SetHeaders(DataHeader); SetBossNumber(EncounterCount); } }; diff --git a/src/server/scripts/Outland/Auchindoun/ManaTombs/mana_tombs.h b/src/server/scripts/Outland/Auchindoun/ManaTombs/mana_tombs.h index 89eefa19d6a..7dd9e96a75e 100644 --- a/src/server/scripts/Outland/Auchindoun/ManaTombs/mana_tombs.h +++ b/src/server/scripts/Outland/Auchindoun/ManaTombs/mana_tombs.h @@ -19,6 +19,7 @@ #define MANA_TOMBS_H_ #define MTScriptName "instance_mana_tombs" +#define DataHeader "MT" uint32 const EncounterCount = 4; diff --git a/src/server/scripts/Outland/Auchindoun/SethekkHalls/instance_sethekk_halls.cpp b/src/server/scripts/Outland/Auchindoun/SethekkHalls/instance_sethekk_halls.cpp index 308e5e80105..53fbf8f0cf7 100644 --- a/src/server/scripts/Outland/Auchindoun/SethekkHalls/instance_sethekk_halls.cpp +++ b/src/server/scripts/Outland/Auchindoun/SethekkHalls/instance_sethekk_halls.cpp @@ -34,6 +34,7 @@ class instance_sethekk_halls : public InstanceMapScript { instance_sethekk_halls_InstanceMapScript(Map* map) : InstanceScript(map) { + SetHeaders(DataHeader); SetBossNumber(EncounterCount); LoadDoorData(doorData); } @@ -60,49 +61,6 @@ class instance_sethekk_halls : public InstanceMapScript if (go->GetEntry() == GO_IKISS_DOOR) AddDoor(go, false); } - - std::string GetSaveData() override - { - OUT_SAVE_INST_DATA; - - std::ostringstream saveStream; - saveStream << "S H " << GetBossSaveData(); - - OUT_SAVE_INST_DATA_COMPLETE; - return saveStream.str(); - } - - void Load(char const* str) override - { - if (!str) - { - OUT_LOAD_INST_DATA_FAIL; - return; - } - - OUT_LOAD_INST_DATA(str); - - char dataHead1, dataHead2; - - std::istringstream loadStream(str); - loadStream >> dataHead1 >> dataHead2; - - if (dataHead1 == 'S' && dataHead2 == 'H') - { - for (uint32 i = 0; i < EncounterCount; ++i) - { - uint32 tmpState; - loadStream >> tmpState; - if (tmpState == IN_PROGRESS || tmpState > SPECIAL) - tmpState = NOT_STARTED; - SetBossState(i, EncounterState(tmpState)); - } - } - else - OUT_LOAD_INST_DATA_FAIL; - - OUT_LOAD_INST_DATA_COMPLETE; - } }; InstanceScript* GetInstanceScript(InstanceMap* map) const override diff --git a/src/server/scripts/Outland/Auchindoun/SethekkHalls/sethekk_halls.h b/src/server/scripts/Outland/Auchindoun/SethekkHalls/sethekk_halls.h index aeca1b88fcd..4b6bfab46cb 100644 --- a/src/server/scripts/Outland/Auchindoun/SethekkHalls/sethekk_halls.h +++ b/src/server/scripts/Outland/Auchindoun/SethekkHalls/sethekk_halls.h @@ -19,6 +19,7 @@ #define SETHEKK_HALLS_H_ #define SHScriptName "instance_sethekk_halls" +#define DataHeader "SH" uint32 const EncounterCount = 3; diff --git a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/instance_shadow_labyrinth.cpp b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/instance_shadow_labyrinth.cpp index 4df80a0e15b..9bd985130a9 100644 --- a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/instance_shadow_labyrinth.cpp +++ b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/instance_shadow_labyrinth.cpp @@ -36,6 +36,7 @@ class instance_shadow_labyrinth : public InstanceMapScript { instance_shadow_labyrinth_InstanceMapScript(Map* map) : InstanceScript(map) { + SetHeaders(DataHeader); SetBossNumber(EncounterCount); LoadDoorData(doorData); @@ -134,49 +135,6 @@ class instance_shadow_labyrinth : public InstanceMapScript return 0; } - std::string GetSaveData() override - { - OUT_SAVE_INST_DATA; - - std::ostringstream saveStream; - saveStream << "S L " << GetBossSaveData(); - - OUT_SAVE_INST_DATA_COMPLETE; - return saveStream.str(); - } - - void Load(char const* str) override - { - if (!str) - { - OUT_LOAD_INST_DATA_FAIL; - return; - } - - OUT_LOAD_INST_DATA(str); - - char dataHead1, dataHead2; - - std::istringstream loadStream(str); - loadStream >> dataHead1 >> dataHead2; - - if (dataHead1 == 'S' && dataHead2 == 'L') - { - for (uint32 i = 0; i < EncounterCount; ++i) - { - uint32 tmpState; - loadStream >> tmpState; - if (tmpState == IN_PROGRESS || tmpState > SPECIAL) - tmpState = NOT_STARTED; - SetBossState(i, EncounterState(tmpState)); - } - } - else - OUT_LOAD_INST_DATA_FAIL; - - OUT_LOAD_INST_DATA_COMPLETE; - } - protected: uint64 AmbassadorHellmawGUID; uint64 GrandmasterVorpilGUID; diff --git a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/shadow_labyrinth.h b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/shadow_labyrinth.h index d7ef52cc7a7..1fa70298d41 100644 --- a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/shadow_labyrinth.h +++ b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/shadow_labyrinth.h @@ -19,6 +19,7 @@ #define SHADOW_LABYRINTH_H_ #define SLScriptName "instance_shadow_labyrinth" +#define DataHeader "SL" uint32 const EncounterCount = 4; diff --git a/src/server/scripts/Outland/BlackTemple/black_temple.h b/src/server/scripts/Outland/BlackTemple/black_temple.h index 4af561480be..bbad9ff7651 100644 --- a/src/server/scripts/Outland/BlackTemple/black_temple.h +++ b/src/server/scripts/Outland/BlackTemple/black_temple.h @@ -19,6 +19,7 @@ #define BLACK_TEMPLE_H_ #define BTScriptName "instance_black_temple" +#define DataHeader "BT" uint32 const EncounterCount = 9; @@ -65,12 +66,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..60162188f7e 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 - { - return GetInstanceAI<boss_shahrazAI>(creature); - } - - struct boss_shahrazAI : public ScriptedAI + struct boss_shahrazAI : public BossAI { - 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; } - } - ++ExplosionCount; - FatalAttractionExplodeTimer = 1000; - } - else - { - FatalAttractionExplodeTimer = FatalAttractionTimer + 2000; + ++BeamCount; + uint32 Beam = CurrentBeam; + if (BeamCount > 3) + while (CurrentBeam == Beam) + CurrentBeam = urand(0, 3); + } + 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..c998bfed2dc 100644 --- a/src/server/scripts/Outland/BlackTemple/boss_warlord_najentus.cpp +++ b/src/server/scripts/Outland/BlackTemple/boss_warlord_najentus.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,20 +15,13 @@ * with this program. If not, see <http://www.gnu.org/licenses/>. */ -/* ScriptData -SDName: Boss_Warlord_Najentus -SD%Complete: 95 -SDComment: -SDCategory: Black Temple -EndScriptData */ - #include "ScriptMgr.h" #include "ScriptedCreature.h" #include "black_temple.h" #include "Player.h" #include "SpellInfo.h" -enum Yells +enum Texts { SAY_AGGRO = 0, SAY_NEEDLE = 1, @@ -51,11 +43,6 @@ enum Spells }; -enum GameObjects -{ - GOBJECT_SPINE = 185584 -}; - enum Events { EVENT_BERSERK = 1, @@ -65,7 +52,7 @@ enum Events EVENT_SHIELD = 5 }; -enum Misc +enum EventGroups { GCD_CAST = 1, GCD_YELL = 2 @@ -76,30 +63,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 +84,7 @@ public: void JustDied(Unit* /*killer*/) override { - instance->SetBossState(DATA_HIGH_WARLORD_NAJENTUS, DONE); - + _JustDied(); Talk(SAY_DEATH); } @@ -127,10 +100,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 +126,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 +170,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/BlackTemple/instance_black_temple.cpp b/src/server/scripts/Outland/BlackTemple/instance_black_temple.cpp index 5b91367a9c9..55ad45597ea 100644 --- a/src/server/scripts/Outland/BlackTemple/instance_black_temple.cpp +++ b/src/server/scripts/Outland/BlackTemple/instance_black_temple.cpp @@ -44,6 +44,7 @@ class instance_black_temple : public InstanceMapScript { instance_black_temple_InstanceMapScript(Map* map) : InstanceScript(map) { + SetHeaders(DataHeader); SetBossNumber(EncounterCount); LoadDoorData(doorData); @@ -202,49 +203,6 @@ class instance_black_temple : public InstanceMapScript return 0; } - std::string GetSaveData() override - { - OUT_SAVE_INST_DATA; - - std::ostringstream saveStream; - saveStream << "B T " << GetBossSaveData(); - - OUT_SAVE_INST_DATA_COMPLETE; - return saveStream.str(); - } - - void Load(char const* str) override - { - if (!str) - { - OUT_LOAD_INST_DATA_FAIL; - return; - } - - OUT_LOAD_INST_DATA(str); - - char dataHead1, dataHead2; - - std::istringstream loadStream(str); - loadStream >> dataHead1 >> dataHead2; - - if (dataHead1 == 'B' && dataHead2 == 'T') - { - for (uint32 i = 0; i < EncounterCount; ++i) - { - uint32 tmpState; - loadStream >> tmpState; - if (tmpState == IN_PROGRESS || tmpState > SPECIAL) - tmpState = NOT_STARTED; - SetBossState(i, EncounterState(tmpState)); - } - } - else - OUT_LOAD_INST_DATA_FAIL; - - OUT_LOAD_INST_DATA_COMPLETE; - } - protected: uint64 NajentusGUID; uint64 SupremusGUID; diff --git a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/instance_serpent_shrine.cpp b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/instance_serpent_shrine.cpp index bc557d97ef5..a3577f40d68 100644 --- a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/instance_serpent_shrine.cpp +++ b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/instance_serpent_shrine.cpp @@ -87,6 +87,7 @@ class instance_serpent_shrine : public InstanceMapScript { instance_serpentshrine_cavern_InstanceMapScript(Map* map) : InstanceScript(map) { + SetHeaders(DataHeader); } void Initialize() override diff --git a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/serpent_shrine.h b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/serpent_shrine.h index f7f3bc9c24b..660ec6bfb3d 100644 --- a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/serpent_shrine.h +++ b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/serpent_shrine.h @@ -19,6 +19,8 @@ #ifndef DEF_SERPENT_SHRINE_H #define DEF_SERPENT_SHRINE_H +#define DataHeader "SS" + enum WaterEventState { WATERSTATE_NONE = 0, diff --git a/src/server/scripts/Outland/CoilfangReservoir/SteamVault/instance_steam_vault.cpp b/src/server/scripts/Outland/CoilfangReservoir/SteamVault/instance_steam_vault.cpp index 19e8c5187ba..40bc8dd69d7 100644 --- a/src/server/scripts/Outland/CoilfangReservoir/SteamVault/instance_steam_vault.cpp +++ b/src/server/scripts/Outland/CoilfangReservoir/SteamVault/instance_steam_vault.cpp @@ -55,6 +55,7 @@ class instance_steam_vault : public InstanceMapScript { instance_steam_vault_InstanceMapScript(Map* map) : InstanceScript(map) { + SetHeaders(DataHeader); SetBossNumber(EncounterCount); ThespiaGUID = 0; @@ -156,56 +157,13 @@ class instance_steam_vault : public InstanceMapScript return true; } - std::string GetSaveData() override - { - OUT_SAVE_INST_DATA; - - std::ostringstream saveStream; - saveStream << "S V " << GetBossSaveData(); - - OUT_SAVE_INST_DATA_COMPLETE; - return saveStream.str(); - } - - void Load(char const* str) override - { - if (!str) - { - OUT_LOAD_INST_DATA_FAIL; - return; - } - - OUT_LOAD_INST_DATA(str); - - char dataHead1, dataHead2; - - std::istringstream loadStream(str); - loadStream >> dataHead1 >> dataHead2; - - if (dataHead1 == 'S' && dataHead2 == 'V') - { - for (uint32 i = 0; i < EncounterCount; ++i) - { - uint32 tmpState; - loadStream >> tmpState; - if (tmpState == IN_PROGRESS || tmpState > SPECIAL) - tmpState = NOT_STARTED; - SetBossState(i, EncounterState(tmpState)); - } - } - else - OUT_LOAD_INST_DATA_FAIL; - - OUT_LOAD_INST_DATA_COMPLETE; - } - - protected: - uint64 ThespiaGUID; - uint64 MekgineerGUID; - uint64 KalithreshGUID; + protected: + uint64 ThespiaGUID; + uint64 MekgineerGUID; + uint64 KalithreshGUID; - uint64 MainChambersDoorGUID; - uint8 DistillerState; + uint64 MainChambersDoorGUID; + uint8 DistillerState; }; InstanceScript* GetInstanceScript(InstanceMap* map) const override diff --git a/src/server/scripts/Outland/CoilfangReservoir/SteamVault/steam_vault.h b/src/server/scripts/Outland/CoilfangReservoir/SteamVault/steam_vault.h index e1761c80769..58f71b047ef 100644 --- a/src/server/scripts/Outland/CoilfangReservoir/SteamVault/steam_vault.h +++ b/src/server/scripts/Outland/CoilfangReservoir/SteamVault/steam_vault.h @@ -19,6 +19,7 @@ #define DEF_STEAM_VAULT_H #define SteamVaultScriptName "instance_steam_vault" +#define DataHeader "SV" uint32 const EncounterCount = 3; diff --git a/src/server/scripts/Outland/CoilfangReservoir/TheSlavePens/the_slave_pens.h b/src/server/scripts/Outland/CoilfangReservoir/TheSlavePens/the_slave_pens.h index 101268727b0..3130737eed5 100644 --- a/src/server/scripts/Outland/CoilfangReservoir/TheSlavePens/the_slave_pens.h +++ b/src/server/scripts/Outland/CoilfangReservoir/TheSlavePens/the_slave_pens.h @@ -21,6 +21,7 @@ uint32 const EncounterCount = 3; #define SPScriptName "instance_the_slave_pens" +#define DataHeader "SP" enum DataTypes { diff --git a/src/server/scripts/Outland/GruulsLair/gruuls_lair.h b/src/server/scripts/Outland/GruulsLair/gruuls_lair.h index 81644a01567..288601c4584 100644 --- a/src/server/scripts/Outland/GruulsLair/gruuls_lair.h +++ b/src/server/scripts/Outland/GruulsLair/gruuls_lair.h @@ -19,6 +19,7 @@ #define GRUULS_LAIR_H_ #define GLScriptName "instance_gruuls_lair" +#define DataHeader "GL" uint32 const EncounterCount = 2; diff --git a/src/server/scripts/Outland/GruulsLair/instance_gruuls_lair.cpp b/src/server/scripts/Outland/GruulsLair/instance_gruuls_lair.cpp index ae3971a943e..3337ce47fd6 100644 --- a/src/server/scripts/Outland/GruulsLair/instance_gruuls_lair.cpp +++ b/src/server/scripts/Outland/GruulsLair/instance_gruuls_lair.cpp @@ -44,6 +44,7 @@ class instance_gruuls_lair : public InstanceMapScript { instance_gruuls_lair_InstanceMapScript(Map* map) : InstanceScript(map) { + SetHeaders(DataHeader); SetBossNumber(EncounterCount); LoadDoorData(doorData); LoadMinionData(minionData); @@ -123,49 +124,6 @@ class instance_gruuls_lair : public InstanceMapScript return 0; } - std::string GetSaveData() override - { - OUT_SAVE_INST_DATA; - - std::ostringstream saveStream; - saveStream << "G L " << GetBossSaveData(); - - OUT_SAVE_INST_DATA_COMPLETE; - return saveStream.str(); - } - - void Load(char const* str) override - { - if (!str) - { - OUT_LOAD_INST_DATA_FAIL; - return; - } - - OUT_LOAD_INST_DATA(str); - - char dataHead1, dataHead2; - - std::istringstream loadStream(str); - loadStream >> dataHead1 >> dataHead2; - - if (dataHead1 == 'G' && dataHead2 == 'L') - { - for (uint32 i = 0; i < EncounterCount; ++i) - { - uint32 tmpState; - loadStream >> tmpState; - if (tmpState == IN_PROGRESS || tmpState > SPECIAL) - tmpState = NOT_STARTED; - SetBossState(i, EncounterState(tmpState)); - } - } - else - OUT_LOAD_INST_DATA_FAIL; - - OUT_LOAD_INST_DATA_COMPLETE; - } - protected: uint64 MaulgarGUID; }; diff --git a/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/blood_furnace.h b/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/blood_furnace.h index b2097c34b33..8bcfdf5558f 100644 --- a/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/blood_furnace.h +++ b/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/blood_furnace.h @@ -19,6 +19,8 @@ #define BLOOD_FURNACE_H_ #define BFScriptName "instance_blood_furnace" +#define DataHeader "BF" + uint32 const EncounterCount = 3; enum DataTypes @@ -46,7 +48,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..bd16fe9edd2 100644 --- a/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_broggok.cpp +++ b/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_broggok.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_Broggok -SD%Complete: 70 -SDComment: pre-event not made -SDCategory: Hellfire Citadel, Blood Furnace -EndScriptData */ - #include "ScriptMgr.h" #include "ScriptedCreature.h" #include "SpellScript.h" @@ -43,6 +35,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 +51,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 +63,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 +104,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 +123,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 +184,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/HellfireCitadel/BloodFurnace/instance_blood_furnace.cpp b/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/instance_blood_furnace.cpp index 4f1200be37b..d88594d9c1e 100644 --- a/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/instance_blood_furnace.cpp +++ b/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/instance_blood_furnace.cpp @@ -40,6 +40,7 @@ class instance_blood_furnace : public InstanceMapScript { instance_blood_furnace_InstanceMapScript(Map* map) : InstanceScript(map) { + SetHeaders(DataHeader); SetBossNumber(EncounterCount); LoadDoorData(doorData); @@ -322,49 +323,6 @@ class instance_blood_furnace : public InstanceMapScript } } - std::string GetSaveData() override - { - OUT_SAVE_INST_DATA; - - std::ostringstream saveStream; - saveStream << "B F " << GetBossSaveData(); - - OUT_SAVE_INST_DATA_COMPLETE; - return saveStream.str(); - } - - void Load(char const* str) override - { - if (!str) - { - OUT_LOAD_INST_DATA_FAIL; - return; - } - - OUT_LOAD_INST_DATA(str); - - char dataHead1, dataHead2; - - std::istringstream loadStream(str); - loadStream >> dataHead1 >> dataHead2; - - if (dataHead1 == 'B' && dataHead2 == 'F') - { - for (uint32 i = 0; i < EncounterCount; ++i) - { - uint32 tmpState; - loadStream >> tmpState; - if (tmpState == IN_PROGRESS || tmpState > SPECIAL) - tmpState = NOT_STARTED; - SetBossState(i, EncounterState(tmpState)); - } - } - else - OUT_LOAD_INST_DATA_FAIL; - - OUT_LOAD_INST_DATA_COMPLETE; - } - protected: uint64 TheMakerGUID; uint64 BroggokGUID; diff --git a/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/hellfire_ramparts.h b/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/hellfire_ramparts.h index 61252d16527..df34ab5fafb 100644 --- a/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/hellfire_ramparts.h +++ b/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/hellfire_ramparts.h @@ -19,6 +19,8 @@ #ifndef DEF_RAMPARTS_H #define DEF_RAMPARTS_H +#define DataHeader "HR" + uint32 const EncounterCount = 4; enum DataTypes diff --git a/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/instance_hellfire_ramparts.cpp b/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/instance_hellfire_ramparts.cpp index 9a0e7c22308..c8ffc7d495a 100644 --- a/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/instance_hellfire_ramparts.cpp +++ b/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/instance_hellfire_ramparts.cpp @@ -38,6 +38,7 @@ class instance_ramparts : public InstanceMapScript void Initialize() override { + SetHeaders(DataHeader); SetBossNumber(EncounterCount); felIronChestGUID = 0; } @@ -72,53 +73,9 @@ class instance_ramparts : public InstanceMapScript return true; } - std::string GetSaveData() override - { - OUT_SAVE_INST_DATA; - - std::ostringstream saveStream; - saveStream << "H R " << GetBossSaveData(); - - OUT_SAVE_INST_DATA_COMPLETE; - return saveStream.str(); - } - - void Load(const char* strIn) override - { - if (!strIn) - { - OUT_LOAD_INST_DATA_FAIL; - return; - } - - OUT_LOAD_INST_DATA(strIn); - - char dataHead1, dataHead2; - - std::istringstream loadStream(strIn); - loadStream >> dataHead1 >> dataHead2; - - if (dataHead1 == 'H' && dataHead2 == 'R') - { - for (uint8 i = 0; i < EncounterCount; ++i) - { - uint32 tmpState; - loadStream >> tmpState; - if (tmpState == IN_PROGRESS || tmpState > SPECIAL) - tmpState = NOT_STARTED; - - SetBossState(i, EncounterState(tmpState)); - } - } - else - OUT_LOAD_INST_DATA_FAIL; - - OUT_LOAD_INST_DATA_COMPLETE; - } - - protected: - uint64 felIronChestGUID; - bool spawned; + protected: + uint64 felIronChestGUID; + bool spawned; }; InstanceScript* GetInstanceScript(InstanceMap* map) const override diff --git a/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/instance_magtheridons_lair.cpp b/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/instance_magtheridons_lair.cpp index 71d9203fcac..ae5ad009942 100644 --- a/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/instance_magtheridons_lair.cpp +++ b/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/instance_magtheridons_lair.cpp @@ -68,6 +68,7 @@ class instance_magtheridons_lair : public InstanceMapScript void Initialize() override { + SetHeaders(DataHeader); memset(&m_auiEncounter, 0, sizeof(m_auiEncounter)); MagtheridonGUID = 0; diff --git a/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/magtheridons_lair.h b/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/magtheridons_lair.h index d3921a8709b..159962475ca 100644 --- a/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/magtheridons_lair.h +++ b/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/magtheridons_lair.h @@ -19,6 +19,8 @@ #ifndef DEF_MAGTHERIDONS_LAIR_H #define DEF_MAGTHERIDONS_LAIR_H +#define DataHeader "ML" + enum DataTypes { DATA_MAGTHERIDON_EVENT = 1, diff --git a/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/instance_shattered_halls.cpp b/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/instance_shattered_halls.cpp index a220f26e18b..8ee63ff03a2 100644 --- a/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/instance_shattered_halls.cpp +++ b/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/instance_shattered_halls.cpp @@ -43,6 +43,7 @@ class instance_shattered_halls : public InstanceMapScript void Initialize() override { + SetHeaders(DataHeader); SetBossNumber(EncounterCount); nethekurseGUID = 0; nethekurseDoor1GUID = 0; @@ -114,53 +115,10 @@ class instance_shattered_halls : public InstanceMapScript return 0; } - std::string GetSaveData() override - { - OUT_SAVE_INST_DATA; - - std::ostringstream saveStream; - saveStream << "S H " << GetBossSaveData(); - - OUT_SAVE_INST_DATA_COMPLETE; - return saveStream.str(); - } - - void Load(const char* strIn) override - { - if (!strIn) - { - OUT_LOAD_INST_DATA_FAIL; - return; - } - - OUT_LOAD_INST_DATA(strIn); - - char dataHead1, dataHead2; - - std::istringstream loadStream(strIn); - loadStream >> dataHead1 >> dataHead2; - - if (dataHead1 == 'S' && dataHead2 == 'H') - { - for (uint8 i = 0; i < EncounterCount; ++i) - { - uint32 tmpState; - loadStream >> tmpState; - if (tmpState == IN_PROGRESS || tmpState > SPECIAL) - tmpState = NOT_STARTED; - SetBossState(i, EncounterState(tmpState)); - } - } - else - OUT_LOAD_INST_DATA_FAIL; - - OUT_LOAD_INST_DATA_COMPLETE; - } - - protected: - uint64 nethekurseGUID; - uint64 nethekurseDoor1GUID; - uint64 nethekurseDoor2GUID; + protected: + uint64 nethekurseGUID; + uint64 nethekurseDoor1GUID; + uint64 nethekurseDoor2GUID; }; }; diff --git a/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/shattered_halls.h b/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/shattered_halls.h index 10e944d5bc4..d0490676bdd 100644 --- a/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/shattered_halls.h +++ b/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/shattered_halls.h @@ -19,6 +19,8 @@ #ifndef DEF_SHATTERED_H #define DEF_SHATTERED_H +#define DataHeader "SH" + uint32 const EncounterCount = 3; enum DataTypes diff --git a/src/server/scripts/Outland/TempestKeep/Eye/instance_the_eye.cpp b/src/server/scripts/Outland/TempestKeep/Eye/instance_the_eye.cpp index 0da16967a49..07cbd68f741 100644 --- a/src/server/scripts/Outland/TempestKeep/Eye/instance_the_eye.cpp +++ b/src/server/scripts/Outland/TempestKeep/Eye/instance_the_eye.cpp @@ -62,6 +62,7 @@ class instance_the_eye : public InstanceMapScript void Initialize() override { + SetHeaders(DataHeader); memset(&m_auiEncounter, 0, sizeof(m_auiEncounter)); ThaladredTheDarkener = 0; diff --git a/src/server/scripts/Outland/TempestKeep/Eye/the_eye.h b/src/server/scripts/Outland/TempestKeep/Eye/the_eye.h index 52061a54591..6b1cd89abf6 100644 --- a/src/server/scripts/Outland/TempestKeep/Eye/the_eye.h +++ b/src/server/scripts/Outland/TempestKeep/Eye/the_eye.h @@ -19,6 +19,8 @@ #ifndef DEF_THE_EYE_H #define DEF_THE_EYE_H +#define DataHeader "TE" + enum DataTypes { DATA_ALAREVENT = 1, diff --git a/src/server/scripts/Outland/TempestKeep/Mechanar/instance_mechanar.cpp b/src/server/scripts/Outland/TempestKeep/Mechanar/instance_mechanar.cpp index 4dddee83459..c620a17f7b6 100644 --- a/src/server/scripts/Outland/TempestKeep/Mechanar/instance_mechanar.cpp +++ b/src/server/scripts/Outland/TempestKeep/Mechanar/instance_mechanar.cpp @@ -37,6 +37,7 @@ class instance_mechanar : public InstanceMapScript { instance_mechanar_InstanceMapScript(Map* map) : InstanceScript(map) { + SetHeaders(DataHeader); SetBossNumber(EncounterCount); LoadDoorData(doorData); } @@ -88,49 +89,6 @@ class instance_mechanar : public InstanceMapScript return true; } - - std::string GetSaveData() override - { - OUT_SAVE_INST_DATA; - - std::ostringstream saveStream; - saveStream << "M C " << GetBossSaveData(); - - OUT_SAVE_INST_DATA_COMPLETE; - return saveStream.str(); - } - - void Load(const char* str) override - { - if (!str) - { - OUT_LOAD_INST_DATA_FAIL; - return; - } - - OUT_LOAD_INST_DATA(str); - - char dataHead1, dataHead2; - - std::istringstream loadStream(str); - loadStream >> dataHead1 >> dataHead2; - - if (dataHead1 == 'M' && dataHead2 == 'C') - { - for (uint32 i = 0; i < EncounterCount; ++i) - { - uint32 tmpState; - loadStream >> tmpState; - if (tmpState == IN_PROGRESS || tmpState > SPECIAL) - tmpState = NOT_STARTED; - SetBossState(i, EncounterState(tmpState)); - } - } - else - OUT_LOAD_INST_DATA_FAIL; - - OUT_LOAD_INST_DATA_COMPLETE; - } }; InstanceScript* GetInstanceScript(InstanceMap* map) const override diff --git a/src/server/scripts/Outland/TempestKeep/Mechanar/mechanar.h b/src/server/scripts/Outland/TempestKeep/Mechanar/mechanar.h index 34346e163c7..0d823dac325 100644 --- a/src/server/scripts/Outland/TempestKeep/Mechanar/mechanar.h +++ b/src/server/scripts/Outland/TempestKeep/Mechanar/mechanar.h @@ -18,6 +18,8 @@ #ifndef DEF_MECHANAR_H #define DEF_MECHANAR_H +#define DataHeader "MR" + uint32 const EncounterCount = 5; enum DataTypes diff --git a/src/server/scripts/Outland/TempestKeep/arcatraz/arcatraz.h b/src/server/scripts/Outland/TempestKeep/arcatraz/arcatraz.h index 889a900653f..5b1695f4cfb 100644 --- a/src/server/scripts/Outland/TempestKeep/arcatraz/arcatraz.h +++ b/src/server/scripts/Outland/TempestKeep/arcatraz/arcatraz.h @@ -19,6 +19,7 @@ #define ARCATRAZ_H #define ArcatrazScriptName "instance_arcatraz" +#define DataHeader "AZ" uint32 const EncounterCount = 4; diff --git a/src/server/scripts/Outland/TempestKeep/arcatraz/instance_arcatraz.cpp b/src/server/scripts/Outland/TempestKeep/arcatraz/instance_arcatraz.cpp index a6d0b348984..b092243637b 100644 --- a/src/server/scripts/Outland/TempestKeep/arcatraz/instance_arcatraz.cpp +++ b/src/server/scripts/Outland/TempestKeep/arcatraz/instance_arcatraz.cpp @@ -35,6 +35,7 @@ class instance_arcatraz : public InstanceMapScript { instance_arcatraz_InstanceMapScript(Map* map) : InstanceScript(map) { + SetHeaders(DataHeader); SetBossNumber(EncounterCount); LoadDoorData(doorData); @@ -191,49 +192,6 @@ class instance_arcatraz : public InstanceMapScript return true; } - std::string GetSaveData() override - { - OUT_SAVE_INST_DATA; - - std::ostringstream saveStream; - saveStream << "A Z " << GetBossSaveData(); - - OUT_SAVE_INST_DATA_COMPLETE; - return saveStream.str(); - } - - void Load(char const* str) override - { - if (!str) - { - OUT_LOAD_INST_DATA_FAIL; - return; - } - - OUT_LOAD_INST_DATA(str); - - char dataHead1, dataHead2; - - std::istringstream loadStream(str); - loadStream >> dataHead1 >> dataHead2; - - if (dataHead1 == 'A' && dataHead2 == 'Z') - { - for (uint32 i = 0; i < EncounterCount; ++i) - { - uint32 tmpState; - loadStream >> tmpState; - if (tmpState == IN_PROGRESS || tmpState > SPECIAL) - tmpState = NOT_STARTED; - SetBossState(i, EncounterState(tmpState)); - } - } - else - OUT_LOAD_INST_DATA_FAIL; - - OUT_LOAD_INST_DATA_COMPLETE; - } - protected: uint64 DalliahGUID; uint64 SoccothratesGUID; diff --git a/src/server/scripts/Outland/TempestKeep/botanica/instance_the_botanica.cpp b/src/server/scripts/Outland/TempestKeep/botanica/instance_the_botanica.cpp index f8929f7e42a..eb46211fa59 100644 --- a/src/server/scripts/Outland/TempestKeep/botanica/instance_the_botanica.cpp +++ b/src/server/scripts/Outland/TempestKeep/botanica/instance_the_botanica.cpp @@ -28,6 +28,7 @@ class instance_the_botanica : public InstanceMapScript { instance_the_botanica_InstanceMapScript(Map* map) : InstanceScript(map) { + SetHeaders(DataHeader); CommanderSarannisGUID = 0; HighBotanistFreywinnGUID = 0; ThorngrinTheTenderGUID = 0; @@ -100,50 +101,6 @@ class instance_the_botanica : public InstanceMapScript return true; } - std::string GetSaveData() override - { - OUT_SAVE_INST_DATA; - - std::ostringstream saveStream; - saveStream << "B O " << GetBossSaveData(); - - OUT_SAVE_INST_DATA_COMPLETE; - return saveStream.str(); - } - - void Load(char const* str) override - { - if (!str) - { - OUT_LOAD_INST_DATA_FAIL; - return; - } - - OUT_LOAD_INST_DATA(str); - - char dataHead1, dataHead2; - - std::istringstream loadStream(str); - loadStream >> dataHead1 >> dataHead2; - - if (dataHead1 == 'B' && dataHead2 == 'O') - { - for (uint8 i = 0; i < EncounterCount; ++i) - { - uint32 tmpState; - loadStream >> tmpState; - if (tmpState == IN_PROGRESS || tmpState > SPECIAL) - tmpState = NOT_STARTED; - - SetBossState(i, EncounterState(tmpState)); - } - } - else - OUT_LOAD_INST_DATA_FAIL; - - OUT_LOAD_INST_DATA_COMPLETE; - } - protected: uint64 CommanderSarannisGUID; uint64 HighBotanistFreywinnGUID; diff --git a/src/server/scripts/Outland/TempestKeep/botanica/the_botanica.h b/src/server/scripts/Outland/TempestKeep/botanica/the_botanica.h index ed0d6b0c98a..68d869520ce 100644 --- a/src/server/scripts/Outland/TempestKeep/botanica/the_botanica.h +++ b/src/server/scripts/Outland/TempestKeep/botanica/the_botanica.h @@ -19,6 +19,8 @@ #ifndef DEF_THE_BOTANICA_H #define DEF_THE_BOTANICA_H +#define DataHeader "BC" + uint32 const EncounterCount = 5; enum DataTypes 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/Spells/spell_generic.cpp b/src/server/scripts/Spells/spell_generic.cpp index 86ef8bdc8cc..84e36b55c2c 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 23e373312cb..a00c9465a05 100644 --- a/src/server/scripts/World/boss_emerald_dragons.cpp +++ b/src/server/scripts/World/boss_emerald_dragons.cpp @@ -587,7 +587,7 @@ class boss_taerar : public CreatureScript void Reset() override { me->RemoveAurasDueToSpell(SPELL_SHADE); - + Initialize(); emerald_dragonAI::Reset(); diff --git a/src/server/scripts/World/go_scripts.cpp b/src/server/scripts/World/go_scripts.cpp index 3c3f0c2c26b..7ba043f2a2e 100644 --- a/src/server/scripts/World/go_scripts.cpp +++ b/src/server/scripts/World/go_scripts.cpp @@ -36,7 +36,6 @@ go_jotunheim_cage go_table_theka go_soulwell go_bashir_crystalforge -go_ethereal_teleport_pad go_soulwell go_dragonflayer_cage go_tadpole_cage @@ -841,32 +840,6 @@ public: }; /*###### -## go_ethereal_teleport_pad -######*/ - -enum EtherealTeleportPad -{ - NPC_IMAGE_WIND_TRADER = 20518, - ITEM_TELEPORTER_POWER_PACK = 28969, -}; - -class go_ethereal_teleport_pad : public GameObjectScript -{ -public: - go_ethereal_teleport_pad() : GameObjectScript("go_ethereal_teleport_pad") { } - - bool OnGossipHello(Player* player, GameObject* go) override - { - if (!player->HasItemCount(ITEM_TELEPORTER_POWER_PACK)) - return false; - - go->SummonCreature(NPC_IMAGE_WIND_TRADER, go->GetPositionX(), go->GetPositionY(), go->GetPositionZ(), go->GetAngle(player), TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 60000); - - return true; - } -}; - -/*###### ## go_soulwell ######*/ @@ -1334,7 +1307,6 @@ void AddSC_go_scripts() new go_jotunheim_cage(); new go_table_theka(); new go_inconspicuous_landmark(); - new go_ethereal_teleport_pad(); new go_soulwell(); new go_tadpole_cage(); new go_dragonflayer_cage(); diff --git a/src/server/shared/Configuration/Config.cpp b/src/server/shared/Configuration/Config.cpp index 6b83f562520..21bbd063b53 100644 --- a/src/server/shared/Configuration/Config.cpp +++ b/src/server/shared/Configuration/Config.cpp @@ -59,7 +59,7 @@ bool ConfigMgr::LoadInitial(std::string const& file, std::string& error) bool ConfigMgr::Reload(std::string& error) { - return LoadInitial(_filename.c_str(), error); + return LoadInitial(_filename, error); } std::string ConfigMgr::GetStringDefault(std::string const& name, const std::string& def) diff --git a/src/server/shared/Database/Field.h b/src/server/shared/Database/Field.h index 5f427a5871b..2e888be5ed3 100644 --- a/src/server/shared/Database/Field.h +++ b/src/server/shared/Database/Field.h @@ -50,7 +50,7 @@ class Field if (data.raw) return *reinterpret_cast<uint8*>(data.value); - return static_cast<uint8>(atol((char*)data.value)); + return static_cast<uint8>(strtoul((char*)data.value, nullptr, 10)); } int8 GetInt8() const @@ -68,7 +68,7 @@ class Field if (data.raw) return *reinterpret_cast<int8*>(data.value); - return static_cast<int8>(atol((char*)data.value)); + return static_cast<int8>(strtol((char*)data.value, NULL, 10)); } uint16 GetUInt16() const @@ -86,7 +86,7 @@ class Field if (data.raw) return *reinterpret_cast<uint16*>(data.value); - return static_cast<uint16>(atol((char*)data.value)); + return static_cast<uint16>(strtoul((char*)data.value, nullptr, 10)); } int16 GetInt16() const @@ -104,7 +104,7 @@ class Field if (data.raw) return *reinterpret_cast<int16*>(data.value); - return static_cast<int16>(atol((char*)data.value)); + return static_cast<int16>(strtol((char*)data.value, NULL, 10)); } uint32 GetUInt32() const @@ -122,7 +122,7 @@ class Field if (data.raw) return *reinterpret_cast<uint32*>(data.value); - return static_cast<uint32>(atol((char*)data.value)); + return static_cast<uint32>(strtoul((char*)data.value, nullptr, 10)); } int32 GetInt32() const @@ -140,7 +140,7 @@ class Field if (data.raw) return *reinterpret_cast<int32*>(data.value); - return static_cast<int32>(atol((char*)data.value)); + return static_cast<int32>(strtol((char*)data.value, NULL, 10)); } uint64 GetUInt64() const @@ -158,7 +158,7 @@ class Field if (data.raw) return *reinterpret_cast<uint64*>(data.value); - return static_cast<uint64>(atol((char*)data.value)); + return static_cast<uint64>(strtoull((char*)data.value, nullptr, 10)); } int64 GetInt64() const @@ -176,7 +176,7 @@ class Field if (data.raw) return *reinterpret_cast<int64*>(data.value); - return static_cast<int64>(strtol((char*)data.value, NULL, 10)); + return static_cast<int64>(strtoll((char*)data.value, NULL, 10)); } float GetFloat() const diff --git a/src/server/worldserver/worldserver.conf.dist b/src/server/worldserver/worldserver.conf.dist index 9a78d74bb45..b49f9ebd9ec 100644 --- a/src/server/worldserver/worldserver.conf.dist +++ b/src/server/worldserver/worldserver.conf.dist @@ -2432,6 +2432,20 @@ CharDelete.KeepDays = 30 ################################################################################################### # CUSTOM SERVER OPTIONS # +# AllowTrackBothResources +# Description: Allows players to track herbs and minerals at the same time (if they have the skills) +# Default: 0 (do not allow) +# 1 (allow) +# +# Note: The following are client limitations and cannot be coded for: +# * The minimap tracking icon will display whichever skill is activated second +# * The minimap tracking list will only show a check mark next to the last skill activated (sometimes this +# bugs out and doesn't switch the check mark. It has no effect on the actual tracking though). +# * The minimap dots are yellow for both resources + +AllowTrackBothResources = 0 + +# # PlayerStart.AllReputation # Description: Players will start with most of the high level reputations that are needed # for items, mounts etc. @@ -2630,11 +2644,7 @@ UI.ShowQuestLevelsInDialogs = 0 # ################################################################################################### -################################### -# Auction House Bot Configuration # -################################### - -################################################################################################################### +################################################################################################### # AUCTION HOUSE BOT SETTINGS # # AuctionHouseBot.Update.Interval @@ -2857,7 +2867,10 @@ AuctionHouseBot.Class.Key = 1 AuctionHouseBot.Class.Misc = 5 AuctionHouseBot.Class.Glyph = 3 -################################################################################################################### +# +################################################################################################### + +################################################################################################### # # AHBot ITEM FINE TUNING # The following are usefull for limiting what character levels can @@ -2929,9 +2942,9 @@ AuctionHouseBot.forceIncludeItems = "" AuctionHouseBot.forceExcludeItems = "" # -################################################################################################################### +################################################################################################### -################################################################################################################### +################################################################################################### # AHBot Buyer config # # AuctionHouseBot.Buyer.Enabled @@ -2979,7 +2992,7 @@ AuctionHouseBot.Buyer.Horde.Chance.Ratio = 3 AuctionHouseBot.Buyer.Neutral.Chance.Ratio = 3 # -################################################################################################################### +################################################################################################### ################################################################################################### # LOGGING SYSTEM SETTINGS @@ -3135,6 +3148,7 @@ Log.Async.Enable = 0 # 1 - (Enabled) Allow.IP.Based.Action.Logging = 0 + # ################################################################################################### diff --git a/src/tools/vmap4_extractor/model.cpp b/src/tools/vmap4_extractor/model.cpp index 519f59cb086..64b2923b345 100644 --- a/src/tools/vmap4_extractor/model.cpp +++ b/src/tools/vmap4_extractor/model.cpp @@ -143,7 +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) + : id(0), scale(0), flags(0) { float ff[3]; f.read(&id, 4); |