diff --git a/.github/workflows/core_modules_build.yml b/.github/workflows/core_modules_build.yml index d46e1f418..a5ef03cd5 100644 --- a/.github/workflows/core_modules_build.yml +++ b/.github/workflows/core_modules_build.yml @@ -4,7 +4,11 @@ on: branches: - 'master' pull_request: - types: ['labeled', 'opened', 'synchronize', 'reopened'] + types: + - labeled + - opened + - reopened + - synchronize concurrency: group: ${{ github.head_ref }} || concat(${{ github.ref }}, ${{ github.workflow }}) @@ -12,10 +16,17 @@ concurrency: jobs: build-modules: - runs-on: ubuntu-latest - name: modules build on latest ubuntu - if: | - github.repository == 'liyunfan1223/azerothcore-wotlk' + strategy: + fail-fast: true + matrix: + include: + - os: ubuntu-24.04 + compiler: + CC: clang-18 + CXX: clang++-18 + runs-on: ${{ matrix.os }} + name: ${{ matrix.os }}-${{ matrix.compiler.CC }}-nopch-modules + if: github.repository == 'liyunfan1223/azerothcore-wotlk' && !github.event.pull_request.draft && ( github.ref_name == 'master' @@ -33,7 +44,7 @@ jobs: run: bash -x ./apps/ci/ci-install-modules.sh - uses: ./.github/actions/linux-build with: - CC: clang-15 - CXX: clang++-15 + CC: ${{ matrix.compiler.CC }} + CXX: ${{ matrix.compiler.CXX }} modules: true pch: false diff --git a/.github/workflows/tools_build.yml b/.github/workflows/tools_build.yml index 347269335..12122e183 100644 --- a/.github/workflows/tools_build.yml +++ b/.github/workflows/tools_build.yml @@ -4,6 +4,11 @@ on: branches: - 'master' pull_request: + types: + - labeled + - opened + - reopened + - synchronize concurrency: group: ${{ github.head_ref }} || concat(${{ github.ref }}, ${{ github.workflow }}) diff --git a/.gitignore b/.gitignore index afe157983..ca6108a3a 100644 --- a/.gitignore +++ b/.gitignore @@ -29,6 +29,9 @@ !.gitkeep +# default build directory if not specified by CMAKE configuration +/out/* + # #Generic # @@ -65,6 +68,7 @@ nbproject/ .idea cmake-build-*/* coverage-report/ +.vs # # Eclipse diff --git a/apps/startup-scripts/gdb.conf b/apps/startup-scripts/gdb.conf index 34c1829fd..d6802a56b 100644 --- a/apps/startup-scripts/gdb.conf +++ b/apps/startup-scripts/gdb.conf @@ -1,4 +1,4 @@ -set logging on +set logging enabled on set debug timestamp run bt diff --git a/apps/startup-scripts/starter b/apps/startup-scripts/starter index d1768667e..47bbedce7 100644 --- a/apps/startup-scripts/starter +++ b/apps/startup-scripts/starter @@ -9,7 +9,7 @@ CRASHES_PATH="$7" if [ $GDB_ENABLED -eq 1 ]; then echo "set logging file "$CRASHES_PATH"/gdb-$(date +%Y-%m-%d-%H-%M-%S).txt" > "$GDB_FILE" - echo "set logging on" >> "$GDB_FILE" + echo "set logging enabled on" >> "$GDB_FILE" echo "set debug timestamp" >> "$GDB_FILE" echo "run -c $3" >> "$GDB_FILE" echo "bt" >> "$GDB_FILE" diff --git a/data/sql/updates/db_world/2024_11_25_00.sql b/data/sql/updates/db_world/2024_11_25_00.sql new file mode 100644 index 000000000..ca5a30873 --- /dev/null +++ b/data/sql/updates/db_world/2024_11_25_00.sql @@ -0,0 +1,5 @@ +-- DB update 2024_11_24_07 -> 2024_11_25_00 +-- +DELETE FROM `smart_scripts` WHERE (`entryorguid` = 7725) AND (`source_type` = 0) AND (`id` IN (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`, `event_param5`, `event_param6`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(7725, 0, 1, 0, 0, 0, 100, 512, 2000, 5000, 5000, 8000, 0, 0, 11, 6533, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Grimtotem Raider - In Combat - Cast \'Net\''); diff --git a/data/sql/updates/db_world/2024_11_25_01.sql b/data/sql/updates/db_world/2024_11_25_01.sql new file mode 100644 index 000000000..9e0a607d0 --- /dev/null +++ b/data/sql/updates/db_world/2024_11_25_01.sql @@ -0,0 +1,4 @@ +-- DB update 2024_11_25_00 -> 2024_11_25_01 +-- +-- Adds "Taunt Immunity" to Boss "Hex Lord Malacrass" (Zul'aman) +UPDATE `creature_template` SET `flags_extra` = `flags_extra` | 256 WHERE `entry` = 24239; diff --git a/data/sql/updates/db_world/2024_11_26_00.sql b/data/sql/updates/db_world/2024_11_26_00.sql new file mode 100644 index 000000000..7b77674e5 --- /dev/null +++ b/data/sql/updates/db_world/2024_11_26_00.sql @@ -0,0 +1,4 @@ +-- DB update 2024_11_25_01 -> 2024_11_26_00 +-- +-- Adds "Disarm" immunity to Creautre (Boss) "Nalorakk" - [Zul'Aman] +UPDATE `creature_template` SET `mechanic_immune_mask` = `mechanic_immune_mask` | 4 WHERE `entry` = 23576; diff --git a/data/sql/updates/db_world/2024_11_26_01.sql b/data/sql/updates/db_world/2024_11_26_01.sql new file mode 100644 index 000000000..b7d416fcd --- /dev/null +++ b/data/sql/updates/db_world/2024_11_26_01.sql @@ -0,0 +1,3 @@ +-- DB update 2024_11_26_00 -> 2024_11_26_01 +DELETE FROM `spell_custom_attr` WHERE `spell_id`=44132; +INSERT INTO `spell_custom_attr` (`spell_id`, `attributes`) VALUES (44132, 4194304); diff --git a/data/sql/updates/db_world/2024_11_26_02.sql b/data/sql/updates/db_world/2024_11_26_02.sql new file mode 100644 index 000000000..c56afc032 --- /dev/null +++ b/data/sql/updates/db_world/2024_11_26_02.sql @@ -0,0 +1,138 @@ +-- DB update 2024_11_26_01 -> 2024_11_26_02 + +-- Remove Wrong Guids + +DELETE FROM `creature` WHERE (`id1` = 28611) AND (`guid` IN (129294, 129297, 129298, 129300, 129303)); + + +-- Add Waypoints + +DELETE FROM `waypoint_data` WHERE `id` IN (12929200, 12929300, 12929500, 12929600, 12929900, 12930100, 12930200, 12930400, 12930500); +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`, `action`, `action_chance`, `wpguid`) VALUES +(12930500, 1, 2374.73, -5855.05, 105.204, NULL, 0, 0, 0, 100, 0), +(12930500, 2, 2359.39, -5856.19, 103.536, NULL, 0, 0, 0, 100, 0), +(12930500, 3, 2343.31, -5854.01, 101.126, NULL, 0, 0, 0, 100, 0), +(12930500, 4, 2332.27, -5850.46, 100.934, NULL, 0, 0, 0, 100, 0), +(12930500, 5, 2316.51, -5848.56, 100.935, NULL, 0, 0, 0, 100, 0), +(12930500, 6, 2332.27, -5850.46, 100.934, NULL, 0, 0, 0, 100, 0), +(12930500, 7, 2343.31, -5854.01, 101.126, NULL, 0, 0, 0, 100, 0), +(12930500, 8, 2359.39, -5856.19, 103.536, NULL, 0, 0, 0, 100, 0), +(12930500, 9, 2374.73, -5855.05, 105.204, NULL, 0, 0, 0, 100, 0), +(12930500, 10, 2395.31, -5848.83, 107.756, NULL, 0, 0, 0, 100, 0), +(12930400, 1, 2412.42, -5854.43, 106.352, NULL, 0, 0, 0, 100, 0), +(12930400, 2, 2402.93, -5842.97, 109.672, NULL, 0, 0, 0, 100, 0), +(12930400, 3, 2412.42, -5854.43, 106.352, NULL, 0, 0, 0, 100, 0), +(12930400, 4, 2422.19, -5860.64, 105.745, NULL, 0, 0, 0, 100, 0), +(12930100, 1, 2282.34, -5879.39, 100.511, NULL, 0, 0, 0, 100, 0), +(12930100, 2, 2298.16, -5877.04, 100.659, NULL, 0, 0, 0, 100, 0), +(12930100, 3, 2332.68, -5870.94, 101.275, NULL, 0, 0, 0, 100, 0), +(12930100, 4, 2343.74, -5873.16, 103.259, NULL, 0, 0, 0, 100, 0), +(12930100, 5, 2359.56, -5876.34, 104.555, NULL, 0, 0, 0, 100, 0), +(12930100, 6, 2373.53, -5899.89, 107.302, NULL, 0, 0, 0, 100, 0), +(12930100, 7, 2383.58, -5923.9, 110.248, NULL, 0, 0, 0, 100, 0), +(12930100, 8, 2373.53, -5899.89, 107.302, NULL, 0, 0, 0, 100, 0), +(12930100, 9, 2359.56, -5876.34, 104.555, NULL, 0, 0, 0, 100, 0), +(12930100, 10, 2343.74, -5873.16, 103.259, NULL, 0, 0, 0, 100, 0), +(12930100, 11, 2332.68, -5870.94, 101.275, NULL, 0, 0, 0, 100, 0), +(12930100, 12, 2298.16, -5877.04, 100.659, NULL, 0, 0, 0, 100, 0), +(12930100, 13, 2282.34, -5879.39, 100.511, NULL, 0, 0, 0, 100, 0), +(12930100, 14, 2261.25, -5882.46, 101.871, NULL, 0, 0, 0, 100, 0), +(12929500, 1, 2270.25, -5814.23, 100.935, NULL, 0, 0, 0, 100, 0), +(12929500, 2, 2258.81, -5827.16, 101.01, NULL, 0, 0, 0, 100, 0), +(12929500, 3, 2263.75, -5846.31, 100.946, NULL, 0, 0, 0, 100, 0), +(12929500, 4, 2277.02, -5851.78, 100.956, NULL, 0, 0, 0, 100, 0), +(12929500, 5, 2287.03, -5859.74, 100.932, NULL, 0, 0, 0, 100, 0), +(12929500, 6, 2301.7, -5860.49, 100.934, NULL, 0, 0, 0, 100, 0), +(12929500, 7, 2304.83, -5844.42, 100.934, NULL, 0, 0, 0, 100, 0), +(12929500, 8, 2307.86, -5827.64, 101.103, NULL, 0, 0, 0, 100, 0), +(12929500, 9, 2291.21, -5815.83, 101.052, NULL, 0, 0, 0, 100, 0), +(12929200, 1, 2192.48, -5751.67, 102.118, NULL, 0, 0, 0, 100, 0), +(12929200, 2, 2202.8, -5748.1, 102.467, NULL, 0, 0, 0, 100, 0), +(12929200, 3, 2211.03, -5751.19, 102.489, NULL, 0, 0, 0, 100, 0), +(12929200, 4, 2226.86, -5757.15, 101.971, NULL, 0, 0, 0, 100, 0), +(12929200, 5, 2222.44, -5771.2, 101.682, NULL, 0, 0, 0, 100, 0), +(12929200, 6, 2212.7, -5784.32, 101.645, NULL, 0, 0, 0, 100, 0), +(12929200, 7, 2196.78, -5777.67, 101.373, NULL, 0, 0, 0, 100, 0), +(12929200, 8, 2181.33, -5770.79, 101.357, NULL, 0, 0, 0, 100, 0), +(12929200, 9, 2178.22, -5758.94, 101.309, NULL, 0, 0, 0, 100, 0), +(12929600, 1, 2071.02, -5751.46, 98.8196, NULL, 0, 0, 0, 100, 0), +(12929600, 2, 2068.28, -5740.5, 99.1555, NULL, 0, 0, 0, 100, 0), +(12929600, 3, 2078.86, -5724.54, 101.533, NULL, 0, 0, 0, 100, 0), +(12929600, 4, 2094.46, -5726.09, 100.311, NULL, 0, 0, 0, 100, 0), +(12929600, 5, 2105.5, -5731.14, 100.3, NULL, 0, 0, 0, 100, 0), +(12929600, 6, 2114.52, -5751.33, 99.0498, NULL, 0, 0, 0, 100, 0), +(12929600, 7, 2115.35, -5761.94, 98.3894, NULL, 0, 0, 0, 100, 0), +(12929600, 8, 2116.15, -5772.22, 98.1393, NULL, 0, 0, 0, 100, 0), +(12929600, 9, 2103.76, -5770.65, 98.6399, NULL, 0, 0, 0, 100, 0), +(12929600, 10, 2089.87, -5770.89, 99.1377, NULL, 0, 0, 0, 100, 0), +(12930200, 1, 2135.82, -5800.13, 99.739, NULL, 0, 0, 0, 100, 0), +(12930200, 2, 2143.67, -5816.31, 100.827, NULL, 0, 0, 0, 100, 0), +(12930200, 3, 2143.72, -5829.03, 101.223, NULL, 0, 0, 0, 100, 0), +(12930200, 4, 2142.77, -5854.49, 101.349, NULL, 0, 0, 0, 100, 0), +(12930200, 5, 2161.43, -5866.23, 101.331, NULL, 0, 0, 0, 100, 0), +(12930200, 6, 2181.55, -5871.43, 101.271, NULL, 0, 0, 0, 100, 0), +(12930200, 7, 2161.43, -5866.23, 101.331, NULL, 0, 0, 0, 100, 0), +(12930200, 8, 2142.77, -5854.49, 101.349, NULL, 0, 0, 0, 100, 0), +(12930200, 9, 2143.72, -5829.03, 101.223, NULL, 0, 0, 0, 100, 0), +(12930200, 10, 2143.67, -5816.31, 100.827, NULL, 0, 0, 0, 100, 0), +(12930200, 11, 2135.82, -5800.13, 99.739, NULL, 0, 0, 0, 100, 0), +(12930200, 12, 2129.66, -5787.29, 98.852, NULL, 0, 0, 0, 100, 0), +(12929900, 1, 2146.6, -5758.24, 99.7128, NULL, 0, 0, 0, 100, 0), +(12929900, 2, 2146.64, -5747.25, 99.9351, NULL, 0, 0, 0, 100, 0), +(12929900, 3, 2146.47, -5736.57, 100.398, NULL, 0, 0, 0, 100, 0), +(12929900, 4, 2141.57, -5729.49, 100.39, NULL, 0, 0, 0, 100, 0), +(12929900, 5, 2136.73, -5722.5, 100.563, NULL, 0, 0, 0, 100, 0), +(12929900, 6, 2128.72, -5710.92, 100.776, NULL, 0, 0, 0, 100, 0), +(12929900, 7, 2136.73, -5722.5, 100.563, NULL, 0, 0, 0, 100, 0), +(12929900, 8, 2141.57, -5729.49, 100.39, NULL, 0, 0, 0, 100, 0), +(12929900, 9, 2146.47, -5736.57, 100.398, NULL, 0, 0, 0, 100, 0), +(12929900, 10, 2146.64, -5747.25, 99.9351, NULL, 0, 0, 0, 100, 0), +(12929900, 11, 2146.6, -5758.24, 99.7128, NULL, 0, 0, 0, 100, 0), +(12929900, 12, 2146.88, -5768.92, 99.848, NULL, 0, 0, 0, 100, 0), +(12929300, 1, 2163.01, -5915.32, 100.19, NULL, 0, 0, 0, 100, 0), +(12929300, 2, 2181.89, -5919.04, 100.921, NULL, 0, 0, 0, 100, 0), +(12929300, 3, 2189.84, -5910.22, 100.848, NULL, 0, 0, 0, 100, 0), +(12929300, 4, 2185.54, -5897.07, 100.693, NULL, 0, 0, 0, 100, 0), +(12929300, 5, 2177.43, -5894.1, 101.309, NULL, 0, 0, 0, 100, 0), +(12929300, 6, 2167.9, -5893.54, 101.112, NULL, 0, 0, 0, 100, 0), +(12929300, 7, 2141.5, -5901.44, 102.039, NULL, 0, 0, 0, 100, 0), +(12929300, 8, 2134.57, -5895.35, 102.476, NULL, 0, 0, 0, 100, 0), +(12929300, 9, 2124.09, -5885.86, 102.768, NULL, 0, 0, 0, 100, 0), +(12929300, 10, 2127.24, -5862.9, 101.846, NULL, 0, 0, 0, 100, 0), +(12929300, 11, 2144.77, -5853.55, 101.35, NULL, 0, 0, 0, 100, 0), +(12929300, 12, 2160.56, -5868.36, 101.312, NULL, 0, 0, 0, 100, 0), +(12929300, 13, 2159.3, -5877.75, 101.317, NULL, 0, 0, 0, 100, 0); + + +-- Update Spawn-Points + +UPDATE `creature` SET `position_x` = 2177.7983, `position_y` = -5758.793, `position_z` = 101.29145, `orientation` = 0.51258016 WHERE `guid` = 129292 AND `id1` = 28611; +UPDATE `creature` SET `position_x` = 2158, `position_y` = -5887.69, `position_z` = 101.37, `orientation` = 4.47917 WHERE `guid` = 129293 AND `id1` = 28611; +UPDATE `creature` SET `position_x` = 2291.298, `position_y` = -5815.7197, `position_z` = 101.05994, `orientation` = 2.814103 WHERE `guid` = 129295 AND `id1` = 28611; +UPDATE `creature` SET `position_x` = 2089.395, `position_y` = -5771.01, `position_z` = 99.147934, `orientation` = 2.3090818 WHERE `guid` = 129296 AND `id1` = 28611; +UPDATE `creature` SET `position_x` = 2146.8882, `position_y` = -5768.9214, `position_z` = 99.84805, `orientation` = 1.5770894 WHERE `guid` = 129299 AND `id1` = 28611; +UPDATE `creature` SET `position_x` = 2261.2556, `position_y` = -5882.462, `position_z` = 101.87194, `orientation` = 0.29108763 WHERE `guid` = 129301 AND `id1` = 28611; +UPDATE `creature` SET `position_x` = 2129.6663, `position_y` = -5787.2954, `position_z` = 98.85208, `orientation` = 5.258737 WHERE `guid` = 129302 AND `id1` = 28611; +UPDATE `creature` SET `position_x` = 2422.1914, `position_y` = -5860.641, `position_z` = 105.74505, `orientation` = 2.593869 WHERE `guid` = 129304 AND `id1` = 28611; +UPDATE `creature` SET `position_x` = 2395.3108, `position_y` = -5848.834, `position_z` = 107.756935, `orientation` = 3.5421836 WHERE `guid` = 129305 AND `id1` = 28611; + + +-- Update Movement Type and Wander Distance + +UPDATE `creature` SET `MovementType` = 2 WHERE (`guid` IN (129292, 129293, 129295, 129296, 129299, 129301, 129302, 129304, 129305)); +UPDATE `creature` SET `wander_distance` = 0 WHERE (`guid` IN (129292, 129293, 129295, 129296, 129299, 129301, 129302, 129304, 129305)); + + +-- Add Spawn Addon + +DELETE FROM `creature_addon` WHERE (`guid` IN (129292, 129293, 129295, 129296, 129299, 129301, 129302, 129304, 129305)); +INSERT INTO `creature_addon` (`guid`, `path_id`, `mount`, `bytes1`, `bytes2`, `emote`, `visibilityDistanceType`, `auras`) VALUES +(129292, 12929200, 2404, 0, 1, 0, 0, NULL), +(129293, 12929300, 2404, 0, 1, 0, 0, NULL), +(129295, 12929500, 2404, 0, 1, 0, 0, NULL), +(129296, 12929600, 2404, 0, 1, 0, 0, NULL), +(129299, 12929900, 2404, 0, 1, 0, 0, NULL), +(129301, 12930100, 2404, 0, 1, 0, 0, NULL), +(129302, 12930200, 2404, 0, 1, 0, 0, NULL), +(129304, 12930400, 2404, 0, 1, 0, 0, NULL), +(129305, 12930500, 2404, 0, 1, 0, 0, NULL); diff --git a/data/sql/updates/db_world/2024_11_27_00.sql b/data/sql/updates/db_world/2024_11_27_00.sql new file mode 100644 index 000000000..cdf306434 --- /dev/null +++ b/data/sql/updates/db_world/2024_11_27_00.sql @@ -0,0 +1,119 @@ +-- DB update 2024_11_26_02 -> 2024_11_27_00 + +-- Remove Wrong Guids + +DELETE FROM `creature` WHERE (`id1` = 28608) AND (`guid` IN (129257, 129260, 129261, 129262, 129263)); + + +-- Add Waypoints + +DELETE FROM `waypoint_data` WHERE `id` IN (12925900, 12925400, 12925300, 12925600, 12925500, 12925800); +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`, `action`, `action_chance`, `wpguid`) VALUES +(12925900, 1, 2393.85, -5867.42, 104.623, NULL, 0, 0, 0, 100, 0), +(12925900, 2, 2384.14, -5868.85, 104.717, NULL, 0, 0, 0, 100, 0), +(12925900, 3, 2374.47, -5870.27, 104.651, NULL, 0, 0, 0, 100, 0), +(12925900, 4, 2374.07, -5880.72, 105, NULL, 0, 0, 0, 100, 0), +(12925900, 5, 2379.33, -5892.84, 106.397, NULL, 0, 0, 0, 100, 0), +(12925900, 6, 2392.93, -5906.33, 109.858, NULL, 0, 0, 0, 100, 0), +(12925900, 7, 2398.14, -5911.46, 110.23, NULL, 0, 0, 0, 100, 0), +(12925900, 8, 2388.46, -5924, 110.265, NULL, 0, 0, 0, 100, 0), +(12925900, 9, 2383.91, -5916.7, 110.05, NULL, 0, 0, 0, 100, 0), +(12925900, 10, 2374.87, -5900.46, 107.485, NULL, 0, 0, 0, 100, 0), +(12925900, 11, 2371.01, -5887.31, 105.561, NULL, 0, 0, 0, 100, 0), +(12925900, 12, 2361.64, -5870.66, 104.405, NULL, 0, 0, 0, 100, 0), +(12925900, 13, 2364.24, -5862.32, 104.223, NULL, 0, 0, 0, 100, 0), +(12925900, 14, 2374.76, -5861.15, 104.809, NULL, 0, 0, 0, 100, 0), +(12925900, 15, 2391.64, -5860.2, 105.318, NULL, 0, 0, 0, 100, 0), +(12925900, 16, 2407.92, -5861.47, 105.057, NULL, 0, 0, 0, 100, 0), +(12925900, 17, 2408.01, -5865.92, 104.647, NULL, 0, 0, 0, 100, 0), +(12925400, 1, 2245.25, -5881.24, 100.781, NULL, 0, 0, 0, 100, 0), +(12925400, 2, 2252.44, -5874.35, 100.925, NULL, 0, 0, 0, 100, 0), +(12925400, 3, 2257.84, -5865.62, 101.521, NULL, 0, 0, 0, 100, 0), +(12925400, 4, 2265.58, -5852.52, 101.158, NULL, 0, 0, 0, 100, 0), +(12925400, 5, 2257.84, -5865.62, 101.521, NULL, 0, 0, 0, 100, 0), +(12925400, 6, 2252.44, -5874.35, 100.925, NULL, 0, 0, 0, 100, 0), +(12925400, 7, 2245.25, -5881.24, 100.781, NULL, 0, 0, 0, 100, 0), +(12925400, 8, 2237.98, -5888.56, 100.79, NULL, 0, 0, 0, 100, 0), +(12925300, 1, 2166.5, -5852.88, 102.042, NULL, 0, 0, 0, 100, 0), +(12925300, 2, 2162.32, -5839.37, 101.433, NULL, 0, 0, 0, 100, 0), +(12925300, 3, 2158.63, -5827.33, 101.499, NULL, 0, 0, 0, 100, 0), +(12925300, 4, 2154.28, -5813.41, 101.838, NULL, 0, 0, 0, 100, 0), +(12925300, 5, 2155.38, -5805.82, 101.126, NULL, 0, 0, 0, 100, 0), +(12925300, 6, 2164.54, -5798.98, 101.145, NULL, 0, 0, 0, 100, 0), +(12925300, 7, 2174.14, -5791.68, 101.276, NULL, 0, 0, 0, 100, 0), +(12925300, 8, 2179.7, -5787.44, 101.256, NULL, 0, 0, 0, 100, 0), +(12925300, 9, 2174.14, -5791.68, 101.276, NULL, 0, 0, 0, 100, 0), +(12925300, 10, 2164.54, -5798.98, 101.145, NULL, 0, 0, 0, 100, 0), +(12925300, 11, 2155.38, -5805.82, 101.126, NULL, 0, 0, 0, 100, 0), +(12925300, 12, 2154.28, -5813.41, 101.838, NULL, 0, 0, 0, 100, 0), +(12925300, 13, 2158.63, -5827.33, 101.499, NULL, 0, 0, 0, 100, 0), +(12925300, 14, 2162.32, -5839.37, 101.433, NULL, 0, 0, 0, 100, 0), +(12925300, 15, 2166.5, -5852.88, 102.042, NULL, 0, 0, 0, 100, 0), +(12925300, 16, 2169.78, -5863.75, 101.35, NULL, 0, 0, 0, 100, 0), +(12925600, 1, 2171.57, -5781.3, 101.267, NULL, 0, 0, 0, 100, 0), +(12925600, 2, 2161.47, -5787.41, 100.968, NULL, 0, 0, 0, 100, 0), +(12925600, 3, 2147.94, -5795.67, 100.381, NULL, 0, 0, 0, 100, 0), +(12925600, 4, 2132.97, -5792.91, 99.2783, NULL, 0, 0, 0, 100, 0), +(12925600, 5, 2136.68, -5780.42, 99.0729, NULL, 0, 0, 0, 100, 0), +(12925600, 6, 2148.77, -5772.53, 100.085, NULL, 0, 0, 0, 100, 0), +(12925600, 7, 2161.02, -5764.45, 100.964, NULL, 0, 0, 0, 100, 0), +(12925600, 8, 2172.77, -5757.18, 101.234, NULL, 0, 0, 0, 100, 0), +(12925600, 9, 2176.58, -5768.25, 101.33, NULL, 0, 0, 0, 100, 0), +(12925600, 10, 2178.72, -5776.63, 101.38, NULL, 0, 0, 0, 100, 0), +(12925500, 1, 2220.55, -5786.82, 101.655, NULL, 0, 0, 0, 100, 0), +(12925500, 2, 2233.64, -5792.13, 101.161, NULL, 0, 0, 0, 100, 0), +(12925500, 3, 2242.44, -5799.18, 100.966, NULL, 0, 0, 0, 100, 0), +(12925500, 4, 2253.64, -5808.14, 100.953, NULL, 0, 0, 0, 100, 0), +(12925500, 5, 2262.18, -5815.47, 100.936, NULL, 0, 0, 0, 100, 0), +(12925500, 6, 2253.64, -5808.14, 100.953, NULL, 0, 0, 0, 100, 0), +(12925500, 7, 2242.44, -5799.18, 100.966, NULL, 0, 0, 0, 100, 0), +(12925500, 8, 2233.64, -5792.13, 101.161, NULL, 0, 0, 0, 100, 0), +(12925500, 9, 2220.55, -5786.82, 101.655, NULL, 0, 0, 0, 100, 0), +(12925500, 10, 2211.51, -5783.26, 101.63, NULL, 0, 0, 0, 100, 0), +(12925800, 1, 2129.46, -5690.47, 101.372, NULL, 0, 0, 0, 100, 0), +(12925800, 2, 2127.82, -5697.43, 101.051, NULL, 0, 0, 0, 100, 0), +(12925800, 3, 2125.35, -5707.95, 100.708, NULL, 0, 0, 0, 100, 0), +(12925800, 4, 2130.94, -5716.03, 100.713, NULL, 0, 0, 0, 100, 0), +(12925800, 5, 2140.7, -5730.14, 100.305, NULL, 0, 0, 0, 100, 0), +(12925800, 6, 2150.79, -5730.22, 100.835, NULL, 0, 0, 0, 100, 0), +(12925800, 7, 2164.25, -5729.12, 101.318, NULL, 0, 0, 0, 100, 0), +(12925800, 8, 2175.68, -5728.08, 102.006, NULL, 0, 0, 0, 100, 0), +(12925800, 9, 2182.5, -5724.03, 105.799, NULL, 0, 0, 0, 100, 0), +(12925800, 10, 2175.68, -5728.08, 102.006, NULL, 0, 0, 0, 100, 0), +(12925800, 11, 2164.25, -5729.12, 101.318, NULL, 0, 0, 0, 100, 0), +(12925800, 12, 2150.79, -5730.22, 100.835, NULL, 0, 0, 0, 100, 0), +(12925800, 13, 2140.7, -5730.14, 100.305, NULL, 0, 0, 0, 100, 0), +(12925800, 14, 2130.94, -5716.03, 100.713, NULL, 0, 0, 0, 100, 0), +(12925800, 15, 2125.35, -5707.95, 100.708, NULL, 0, 0, 0, 100, 0), +(12925800, 16, 2127.82, -5697.43, 101.051, NULL, 0, 0, 0, 100, 0), +(12925800, 17, 2129.46, -5690.47, 101.372, NULL, 0, 0, 0, 100, 0), +(12925800, 18, 2131.78, -5680.34, 101.83, NULL, 0, 0, 0, 100, 0); + + +-- Update Spawn-Points + +UPDATE `creature` SET `position_x` = 2169.78, `position_y` = -5863.75, `position_z` = 101.35, `orientation` = 1.8841 WHERE `guid` = 129253 AND `id1` = 28608; +UPDATE `creature` SET `position_x` = 2237.98, `position_y` = -5888.56, `position_z` = 100.79, `orientation` = 0.7781 WHERE `guid` = 129254 AND `id1` = 28608; +UPDATE `creature` SET `position_x` = 2211.51, `position_y` = -5783.26, `position_z` = 101.63, `orientation` = 5.8463 WHERE `guid` = 129255 AND `id1` = 28608; +UPDATE `creature` SET `position_x` = 2178.59, `position_y` = -5776.99, `position_z` = 101.38, `orientation` = 3.7383 WHERE `guid` = 129256 AND `id1` = 28608; +UPDATE `creature` SET `position_x` = 2131.78, `position_y` = -5680.34, `position_z` = 101.83, `orientation` = 4.3431 WHERE `guid` = 129258 AND `id1` = 28608; +UPDATE `creature` SET `position_x` = 2403.13, `position_y` = -5865.98, `position_z` = 104.72, `orientation` = 3.0314 WHERE `guid` = 129259 AND `id1` = 28608; + + +-- Update Movement Type and Wander Distance + +UPDATE `creature` SET `MovementType` = 2 WHERE (`guid` IN (129253, 129254, 129255, 129256, 129258, 129259)); +UPDATE `creature` SET `wander_distance` = 0 WHERE (`guid` IN (129253, 129254, 129255, 129256, 129258, 129259)); + + +-- Add Spawn Addon + +DELETE FROM `creature_addon` WHERE (`guid` IN (129259, 129254, 129253, 129256, 129255, 129258)); +INSERT INTO `creature_addon` (`guid`, `path_id`, `mount`, `bytes1`, `bytes2`, `emote`, `visibilityDistanceType`, `auras`) VALUES +(129259, 12925900, 0, 0, 1, 0, 0, NULL), +(129254, 12925400, 0, 0, 1, 0, 0, NULL), +(129253, 12925300, 0, 0, 1, 0, 0, NULL), +(129256, 12925600, 0, 0, 1, 0, 0, NULL), +(129255, 12925500, 0, 0, 1, 0, 0, NULL), +(129258, 12925800, 0, 0, 1, 0, 0, NULL); + diff --git a/data/sql/updates/db_world/2024_11_27_01.sql b/data/sql/updates/db_world/2024_11_27_01.sql new file mode 100644 index 000000000..b9e6eae56 --- /dev/null +++ b/data/sql/updates/db_world/2024_11_27_01.sql @@ -0,0 +1,256 @@ +-- DB update 2024_11_27_00 -> 2024_11_27_01 + +-- Remove Wrong Guids + +DELETE FROM `creature` WHERE (`id1` = 28822) AND (`guid` IN (128885, 128886, 128887, 128888, 128889, 128890, 128891, 128897, 128900, 128902, 128903, 128904, 128905, 128906, 128907, 128908, 128909)); +DELETE FROM `creature` WHERE `id1` = 28821; +DELETE FROM `creature_addon` WHERE (`guid` IN (128860, 128861, 128862, 128863, 128864, 128865, 128866, 128867, 128868, 128869, 128870, 128871, 128872, 128873, 128874, 128875, 128876, 128877, 128878, 128879, 128880, 128881, 128882, 128883, 128884)); + + +-- Add Waypoints + +DELETE FROM `waypoint_data` WHERE `id` IN (12889500, 12890100, 12889300, 12889400, 12889200, 12889800, 12889900, 12889600); +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`, `action`, `action_chance`, `wpguid`) VALUES + +-- Inside the Mine + +(12889500, 1, 2457.81, -5971.01, 94.5838, NULL, 0, 0, 0, 100, 0), +(12889500, 2, 2468.17, -5975.07, 95.2765, NULL, 0, 0, 0, 100, 0), +(12889500, 3, 2479.37, -5975.9, 95.7913, NULL, 0, 0, 0, 100, 0), +(12889500, 4, 2495.7, -5979.33, 95.4122, NULL, 0, 0, 0, 100, 0), +(12889500, 5, 2503.53, -5985.32, 96.5173, NULL, 0, 0, 0, 100, 0), +(12889500, 6, 2515.44, -5993.6, 102.24, NULL, 0, 0, 0, 100, 0), +(12889500, 7, 2526.11, -5994.83, 103.623, NULL, 0, 0, 0, 100, 0), +(12889500, 8, 2536.84, -5995.78, 103.055, NULL, 0, 0, 0, 100, 0), +(12890100, 1, 2531.59, -5984.55, 103.079, NULL, 0, 0, 0, 100, 0), +(12890100, 2, 2525.21, -5974.85, 104.959, NULL, 0, 0, 0, 100, 0), +(12890100, 3, 2519.88, -5963.3, 106.808, NULL, 0, 0, 0, 100, 0), +(12890100, 4, 2520.58, -5959.67, 107.449, NULL, 0, 0, 0, 100, 0), +(12890100, 5, 2522.39, -5951.61, 109.614, NULL, 0, 0, 0, 100, 0), +(12890100, 6, 2519.53, -5944.17, 110.163, NULL, 0, 0, 0, 100, 0), +(12890100, 7, 2514.74, -5940.45, 110.76, NULL, 0, 0, 0, 100, 0), +(12890100, 8, 2506.28, -5933.64, 114.661, NULL, 0, 0, 0, 100, 0), +(12890100, 9, 2497.09, -5932, 115.473, NULL, 0, 0, 0, 100, 0), +(12890100, 10, 2487.37, -5936.89, 116.275, NULL, 0, 0, 0, 100, 0), +(12890100, 11, 2481.05, -5933.07, 116.141, NULL, 0, 0, 0, 100, 0), +(12889300, 1, 2470.42, -5926.1, 115.008, NULL, 0, 0, 0, 100, 0), +(12889300, 2, 2463.34, -5917.07, 113.401, NULL, 0, 0, 0, 100, 0), +(12889300, 3, 2458.6, -5911.03, 112.855, NULL, 0, 0, 0, 100, 0), +(12889300, 4, 2451.09, -5911.71, 112.944, NULL, 0, 0, 0, 100, 0), +(12889300, 5, 2446.34, -5911.87, 113.166, NULL, 0, 0, 0, 100, 0), +(12889300, 6, 2436.46, -5915.82, 112.753, NULL, 0, 0, 0, 100, 0), +(12889300, 7, 2430.58, -5911.54, 112.894, NULL, 0, 0, 0, 100, 0), +(12889400, 1, 2435.06, -5894.12, 104.829, NULL, 0, 0, 0, 100, 0), +(12889400, 2, 2442.21, -5913, 102.131, NULL, 0, 0, 0, 100, 0), +(12889400, 3, 2436.28, -5932.54, 95.8856, NULL, 0, 0, 0, 100, 0), +(12889400, 4, 2426.06, -5937.89, 95.255, NULL, 0, 0, 0, 100, 0), +(12889400, 5, 2422.21, -5939.99, 96.5058, NULL, 0, 0, 0, 100, 0), +(12889400, 6, 2418.61, -5943.65, 96.577, NULL, 0, 0, 0, 100, 0), +(12889400, 7, 2419.33, -5951.59, 97.7769, NULL, 0, 0, 0, 100, 0), +(12889400, 8, 2421.13, -5961.58, 96.9244, NULL, 0, 0, 0, 100, 0), +(12889400, 9, 2438.07, -5973.54, 95.7458, NULL, 0, 0, 0, 100, 0), +(12889400, 10, 2439.83, -5978.79, 96.0635, NULL, 0, 0, 0, 100, 0), +(12889400, 11, 2444.96, -5980.43, 95.6443, NULL, 0, 0, 0, 100, 0), + +-- Out of the Mine + +(12889200, 1, 2382.04, -5921.96, 110.242, NULL, 0, 0, 0, 100, 0), +(12889200, 2, 2359.96, -5905.98, 105.751, NULL, 0, 0, 0, 100, 0), +(12889200, 3, 2345.92, -5901.88, 103.249, NULL, 0, 0, 0, 100, 0), +(12889200, 4, 2323.33, -5899.63, 97.4549, NULL, 0, 0, 0, 100, 0), +(12889200, 5, 2297.8, -5907.54, 87.3678, NULL, 0, 0, 0, 100, 0), +(12889200, 6, 2289.81, -5921.47, 80.0533, NULL, 0, 0, 0, 100, 0), +(12889200, 7, 2286.44, -5933.45, 70.1835, NULL, 0, 0, 0, 100, 0), +(12889200, 8, 2281.33, -5948.36, 60.3395, NULL, 0, 0, 0, 100, 0), +(12889200, 9, 2275.66, -5962.62, 52.2482, NULL, 0, 0, 0, 100, 0), +(12889200, 10, 2269.13, -5966.74, 48.7308, NULL, 0, 0, 0, 100, 0), +(12889200, 11, 2258.51, -5969.35, 43.6041, NULL, 0, 0, 0, 100, 0), +(12889200, 12, 2248.35, -5972.64, 39.794, NULL, 0, 0, 0, 100, 0), +(12889200, 13, 2240.77, -5976.29, 37.8815, NULL, 0, 0, 0, 100, 0), +(12889200, 14, 2230.78, -5991.88, 27.7426, NULL, 0, 0, 0, 100, 0), +(12889200, 15, 2219.15, -6015.72, 10.2269, NULL, 0, 0, 0, 100, 0), +(12889200, 16, 2199.6, -6039.85, 6.60174, NULL, 0, 0, 0, 100, 0), +(12889200, 17, 2192.6, -6052.12, 6.17986, NULL, 0, 0, 0, 100, 0), +(12889200, 18, 2187.14, -6079.83, 3.74995, NULL, 0, 0, 0, 100, 0), +(12889200, 19, 2184.65, -6094.9, 1.1951, NULL, 0, 0, 0, 100, 0), +(12889200, 20, 2180.87, -6108.83, 1.42742, NULL, 0, 0, 0, 100, 0), +(12889200, 21, 2176.42, -6122.98, 1.03207, NULL, 0, 0, 0, 100, 0), +(12889200, 22, 2174.1, -6138.22, 1.08874, NULL, 0, 0, 0, 100, 0), +(12889200, 23, 2172.34, -6150.78, 1.10813, NULL, 0, 0, 0, 100, 0), +(12889200, 24, 2170.01, -6166.01, 1.05316, NULL, 0, 0, 0, 100, 0), +(12889900, 1, 2405.54, -5918.65, 110.479, NULL, 0, 0, 0, 100, 0), +(12889900, 2, 2388.47, -5913.34, 109.999, NULL, 0, 0, 0, 100, 0), +(12889900, 3, 2369.29, -5911.69, 107.857, NULL, 0, 0, 0, 100, 0), +(12889900, 4, 2351.15, -5908.11, 104.67, NULL, 0, 0, 0, 100, 0), +(12889900, 5, 2331.58, -5902.87, 99.9088, NULL, 0, 0, 0, 100, 0), +(12889900, 6, 2313.75, -5905.73, 92.7526, NULL, 0, 0, 0, 100, 0), +(12889900, 7, 2299.84, -5911.64, 86.2449, NULL, 0, 0, 0, 100, 0), +(12889900, 8, 2295.14, -5918.49, 81.6661, NULL, 0, 0, 0, 100, 0), +(12889900, 9, 2291.21, -5934.34, 70.5652, NULL, 0, 0, 0, 100, 0), +(12889900, 10, 2284.95, -5949.05, 61.0421, NULL, 0, 0, 0, 100, 0), +(12889900, 11, 2277.55, -5963.95, 52.5199, NULL, 0, 0, 0, 100, 0), +(12889900, 12, 2271.31, -5970.06, 48.8038, NULL, 0, 0, 0, 100, 0), +(12889900, 13, 2256.63, -5978.17, 39.8053, NULL, 0, 0, 0, 100, 0), +(12889900, 14, 2244.13, -5984.78, 32.9579, NULL, 0, 0, 0, 100, 0), +(12889900, 15, 2240.24, -5996.13, 28.4352, NULL, 0, 0, 0, 100, 0), +(12889900, 16, 2231.2, -6010.75, 15.9018, NULL, 0, 0, 0, 100, 0), +(12889900, 17, 2224.83, -6023.55, 8.75607, NULL, 0, 0, 0, 100, 0), +(12889900, 18, 2219.76, -6034.62, 7.12963, NULL, 0, 0, 0, 100, 0), +(12889900, 19, 2213.29, -6047.36, 6.41622, NULL, 0, 0, 0, 100, 0), +(12889900, 20, 2213.17, -6067.14, 5.44721, NULL, 0, 0, 0, 100, 0), +(12889900, 21, 2214.16, -6085.68, 4.16441, NULL, 0, 0, 0, 100, 0), +(12889900, 22, 2214.76, -6102.52, 4.00186, NULL, 0, 0, 0, 100, 0), +(12889900, 23, 2217.78, -6120.79, 5.36503, NULL, 0, 0, 0, 100, 0), +(12889900, 24, 2220.36, -6137.75, 4.70524, NULL, 0, 0, 0, 100, 0), +(12889900, 25, 2222.37, -6155.49, 1.70917, NULL, 0, 0, 0, 100, 0), +(12889900, 26, 2217.15, -6172.6, 0.789688, NULL, 0, 0, 0, 100, 0), +(12889600, 1, 2369.51, -5908.76, 107.55, NULL, 0, 0, 0, 100, 0), +(12889600, 2, 2354.31, -5907.67, 105.178, NULL, 0, 0, 0, 100, 0), +(12889600, 3, 2343.31, -5906.82, 103.387, NULL, 0, 0, 0, 100, 0), +(12889600, 4, 2326.47, -5904.37, 98.0022, NULL, 0, 0, 0, 100, 0), +(12889600, 5, 2302.91, -5908.62, 88.0557, NULL, 0, 0, 0, 100, 0), +(12889600, 6, 2297.43, -5916.56, 83.4883, NULL, 0, 0, 0, 100, 0), +(12889600, 7, 2294.39, -5929.78, 73.8046, NULL, 0, 0, 0, 100, 0), +(12889600, 8, 2291.11, -5941.63, 66.5253, NULL, 0, 0, 0, 100, 0), +(12889600, 9, 2285.16, -5950, 60.6343, NULL, 0, 0, 0, 100, 0), +(12889600, 10, 2274.82, -5963.1, 51.807, NULL, 0, 0, 0, 100, 0), +(12889600, 11, 2266.62, -5968.36, 47.4507, NULL, 0, 0, 0, 100, 0), +(12889600, 12, 2256.1, -5974.46, 40.8902, NULL, 0, 0, 0, 100, 0), +(12889600, 13, 2245.62, -5980.4, 35.077, NULL, 0, 0, 0, 100, 0), +(12889600, 14, 2242.71, -5988.02, 31.8258, NULL, 0, 0, 0, 100, 0), +(12889600, 15, 2239.34, -5996.3, 27.931, NULL, 0, 0, 0, 100, 0), +(12889600, 16, 2235.32, -6003.91, 22.1893, NULL, 0, 0, 0, 100, 0), +(12889600, 17, 2231.05, -6011.65, 15.2639, NULL, 0, 0, 0, 100, 0), +(12889600, 18, 2227.07, -6019.02, 10.3049, NULL, 0, 0, 0, 100, 0), +(12889600, 19, 2218.23, -6037.9, 6.88196, NULL, 0, 0, 0, 100, 0), +(12889600, 20, 2207.97, -6060.2, 5.96104, NULL, 0, 0, 0, 100, 0), +(12889600, 21, 2194.82, -6074.19, 3.82115, NULL, 0, 0, 0, 100, 0), +(12889600, 22, 2194.56, -6089.64, 2.68589, NULL, 0, 0, 0, 100, 0), +(12889600, 23, 2194.6, -6109.86, 1.11994, NULL, 0, 0, 0, 100, 0), +(12889600, 24, 2199.39, -6125.17, 3.28229, NULL, 0, 0, 0, 100, 0), +(12889600, 25, 2201.02, -6138.01, 5.35399, NULL, 0, 0, 0, 100, 0), +(12889800, 1, 2397.83, -5922.97, 110.373, NULL, 0, 0, 0, 100, 0), +(12889800, 2, 2386.57, -5918.26, 110.209, NULL, 0, 0, 0, 100, 0), +(12889800, 3, 2370.05, -5912.67, 108.097, NULL, 0, 0, 0, 100, 0), +(12889800, 4, 2352.75, -5908.58, 105.014, NULL, 0, 0, 0, 100, 0), +(12889800, 5, 2338.3, -5901.52, 101.878, NULL, 0, 0, 0, 100, 0), +(12889800, 6, 2320.69, -5902.6, 96.0814, NULL, 0, 0, 0, 100, 0), +(12889800, 7, 2303.02, -5906.62, 88.7967, NULL, 0, 0, 0, 100, 0), +(12889800, 8, 2292.08, -5910.15, 86.1959, NULL, 0, 0, 0, 100, 0), +(12889800, 9, 2290.14, -5919.46, 81.3954, NULL, 0, 0, 0, 100, 0), +(12889800, 10, 2288.1, -5929.7, 73.4314, NULL, 0, 0, 0, 100, 0), +(12889800, 11, 2285.71, -5938.77, 66.5439, NULL, 0, 0, 0, 100, 0), +(12889800, 12, 2282.96, -5948.26, 60.8342, NULL, 0, 0, 0, 100, 0), +(12889800, 13, 2278.88, -5960.01, 54.3672, NULL, 0, 0, 0, 100, 0), +(12889800, 14, 2275.86, -5972.99, 50.1883, NULL, 0, 0, 0, 100, 0), +(12889800, 15, 2266.45, -5975.92, 45.7126, NULL, 0, 0, 0, 100, 0), +(12889800, 16, 2257.05, -5977.68, 40.1854, NULL, 0, 0, 0, 100, 0), +(12889800, 17, 2248.05, -5979.76, 35.7801, NULL, 0, 0, 0, 100, 0), +(12889800, 18, 2240.11, -5989.08, 30.5966, NULL, 0, 0, 0, 100, 0), +(12889800, 19, 2232.67, -6001.29, 22.5347, NULL, 0, 0, 0, 100, 0), +(12889800, 20, 2227.55, -6009.1, 15.5793, NULL, 0, 0, 0, 100, 0), +(12889800, 21, 2222.56, -6017.32, 10.2762, NULL, 0, 0, 0, 100, 0), +(12889800, 22, 2219.65, -6035.31, 7.07337, NULL, 0, 0, 0, 100, 0), +(12889800, 23, 2217.22, -6052.6, 6.29405, NULL, 0, 0, 0, 100, 0), +(12889800, 24, 2226.42, -6062.52, 6.18018, NULL, 0, 0, 0, 100, 0), +(12889800, 25, 2237.33, -6073.54, 5.80553, NULL, 0, 0, 0, 100, 0), +(12889800, 26, 2247.76, -6083.73, 6.15304, NULL, 0, 0, 0, 100, 0), +(12889800, 27, 2254.38, -6094.76, 6.24679, NULL, 0, 0, 0, 100, 0); + + +-- Activate SmartAI to Scarlet Miners and Mine Cars + +UPDATE `creature_template` SET `AIName` = 'SmartAI' WHERE (`entry` = 28822); +UPDATE `creature_template` SET `AIName` = 'SmartAI' WHERE (`entry` = 28821); + + +-- SMARTAI + +-- Mine Cars + +UPDATE `creature_template` SET `AIName` = 'SmartAI' WHERE `entry` = 28821; + +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 28821); +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`, `event_param5`, `event_param6`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(28821, 0, 0, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 29, 1, 180, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 'Mine Car - On Respawn - Start Follow Owner Or Summoner'); + + +-- Scarlet Miners + +UPDATE `creature` SET `Comment` = "has guid specific SAI" WHERE (`id1` = 28822) AND (`guid` IN (128895, 128901, 128893, 128894, 128892, 128899, 128896, 128898)); + +-- Miners inside the Mine + +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = -128895); +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`, `event_param5`, `event_param6`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(-128895, 0, 0, 1, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 12, 28821, 8, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Scarlet Miner - On Respawn - Summon Creature \'Mine Car\''), +(-128895, 0, 1, 2, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 11, 52465, 0, 0, 0, 0, 0, 204, 28821, 0, 0, 0, 0, 0, 0, 0, 'Scarlet Miner - On Respawn - Cast \'Drag Mine Cart\''), +(-128895, 0, 2, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 232, 12889500, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Scarlet Miner - On Respawn - Start Path 12889500'), +(-128895, 0, 3, 0, 109, 0, 100, 0, 0, 12889500, 0, 0, 0, 0, 41, 2000, 10, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Scarlet Miner - On Path 12889500 Finished - Despawn In 2000 ms'), +(-128895, 0, 4, 0, 109, 0, 100, 0, 0, 12889500, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 204, 28821, 0, 0, 0, 0, 0, 0, 0, 'Scarlet Miner - On Path 12889500 Finished - Despawn In 2000 ms'), +(-128895, 0, 5, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 1000, 0, 0, 0, 0, 0, 204, 28821, 0, 0, 0, 0, 0, 0, 0, 'Scarlet Miner - On Just Died - Despawn In 1000 ms'); + +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = -128901); +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`, `event_param5`, `event_param6`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(-128901, 0, 0, 1, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 12, 28821, 8, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Scarlet Miner - On Respawn - Summon Creature \'Mine Car\''), +(-128901, 0, 1, 2, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 11, 52465, 0, 0, 0, 0, 0, 204, 28821, 0, 0, 0, 0, 0, 0, 0, 'Scarlet Miner - On Respawn - Cast \'Drag Mine Cart\''), +(-128901, 0, 2, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 232, 12890100, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Scarlet Miner - On Respawn - Start Path 12890100'), +(-128901, 0, 3, 0, 109, 0, 100, 0, 0, 12890100, 0, 0, 0, 0, 41, 2000, 10, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Scarlet Miner - On Path 12890100 Finished - Despawn In 2000 ms'), +(-128901, 0, 4, 0, 109, 0, 100, 0, 0, 12890100, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 204, 28821, 0, 0, 0, 0, 0, 0, 0, 'Scarlet Miner - On Path 12890100 Finished - Despawn In 2000 ms'), +(-128901, 0, 5, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 1000, 0, 0, 0, 0, 0, 204, 28821, 0, 0, 0, 0, 0, 0, 0, 'Scarlet Miner - On Just Died - Despawn In 1000 ms'); + +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = -128893); +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`, `event_param5`, `event_param6`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(-128893, 0, 0, 1, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 12, 28821, 8, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Scarlet Miner - On Respawn - Summon Creature \'Mine Car\''), +(-128893, 0, 1, 2, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 11, 52465, 0, 0, 0, 0, 0, 204, 28821, 0, 0, 0, 0, 0, 0, 0, 'Scarlet Miner - On Respawn - Cast \'Drag Mine Cart\''), +(-128893, 0, 2, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 232, 12889300, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Scarlet Miner - On Respawn - Start Path 12889300'), +(-128893, 0, 3, 0, 109, 0, 100, 0, 0, 12889300, 0, 0, 0, 0, 41, 2000, 10, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Scarlet Miner - On Path 12889300 Finished - Despawn In 2000 ms'), +(-128893, 0, 4, 0, 109, 0, 100, 0, 0, 12889300, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 204, 28821, 0, 0, 0, 0, 0, 0, 0, 'Scarlet Miner - On Path 12889300 Finished - Despawn In 2000 ms'), +(-128893, 0, 5, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 1000, 0, 0, 0, 0, 0, 204, 28821, 0, 0, 0, 0, 0, 0, 0, 'Scarlet Miner - On Just Died - Despawn In 1000 ms'); + +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = -128894); +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`, `event_param5`, `event_param6`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(-128894, 0, 0, 1, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 12, 28821, 8, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Scarlet Miner - On Respawn - Summon Creature \'Mine Car\''), +(-128894, 0, 1, 2, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 11, 52465, 0, 0, 0, 0, 0, 204, 28821, 0, 0, 0, 0, 0, 0, 0, 'Scarlet Miner - On Respawn - Cast \'Drag Mine Cart\''), +(-128894, 0, 2, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 232, 12889400, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Scarlet Miner - On Respawn - Start Path 12889400'), +(-128894, 0, 3, 0, 109, 0, 100, 0, 0, 12889400, 0, 0, 0, 0, 41, 2000, 10, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Scarlet Miner - On Path 12889400 Finished - Despawn In 2000 ms'), +(-128894, 0, 4, 0, 109, 0, 100, 0, 0, 12889400, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 204, 28821, 0, 0, 0, 0, 0, 0, 0, 'Scarlet Miner - On Path 12889400 Finished - Despawn In 2000 ms'), +(-128894, 0, 5, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 1000, 0, 0, 0, 0, 0, 204, 28821, 0, 0, 0, 0, 0, 0, 0, 'Scarlet Miner - On Just Died - Despawn In 1000 ms'); + +-- Miners outside the Mine + +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = -128892); +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`, `event_param5`, `event_param6`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(-128892, 0, 0, 1, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 12, 28821, 8, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Scarlet Miner - On Respawn - Summon Creature \'Mine Car\''), +(-128892, 0, 1, 2, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 11, 52465, 0, 0, 0, 0, 0, 204, 28821, 0, 0, 0, 0, 0, 0, 0, 'Scarlet Miner - On Respawn - Cast \'Drag Mine Cart\''), +(-128892, 0, 2, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 232, 12889200, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Scarlet Miner - On Respawn - Start Path 12889200'), +(-128892, 0, 3, 0, 109, 0, 100, 0, 0, 12889200, 0, 0, 0, 0, 41, 2000, 10, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Scarlet Miner - On Path 12889200 Finished - Despawn In 2000 ms'), +(-128892, 0, 4, 0, 109, 0, 100, 0, 0, 12889200, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 204, 28821, 0, 0, 0, 0, 0, 0, 0, 'Scarlet Miner - On Path 12889200 Finished - Despawn In 2000 ms'), +(-128892, 0, 5, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 1000, 0, 0, 0, 0, 0, 204, 28821, 0, 0, 0, 0, 0, 0, 0, 'Scarlet Miner - On Just Died - Despawn In 1000 ms'); + +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = -128899); +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`, `event_param5`, `event_param6`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(-128899, 0, 0, 1, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 12, 28821, 8, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Scarlet Miner - On Respawn - Summon Creature \'Mine Car\''), +(-128899, 0, 1, 2, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 11, 52465, 0, 0, 0, 0, 0, 204, 28821, 0, 0, 0, 0, 0, 0, 0, 'Scarlet Miner - On Respawn - Cast \'Drag Mine Cart\''), +(-128899, 0, 2, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 232, 12889900, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Scarlet Miner - On Respawn - Start Path 12889900'), +(-128899, 0, 3, 0, 109, 0, 100, 0, 0, 12889900, 0, 0, 0, 0, 41, 2000, 10, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Scarlet Miner - On Path 12889900 Finished - Despawn In 2000 ms'), +(-128899, 0, 4, 0, 109, 0, 100, 0, 0, 12889900, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 204, 28821, 0, 0, 0, 0, 0, 0, 0, 'Scarlet Miner - On Path 12889900 Finished - Despawn In 2000 ms'), +(-128899, 0, 5, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 1000, 0, 0, 0, 0, 0, 204, 28821, 0, 0, 0, 0, 0, 0, 0, 'Scarlet Miner - On Just Died - Despawn In 1000 ms'); + +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = -128896); +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`, `event_param5`, `event_param6`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(-128896, 0, 0, 1, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 12, 28821, 8, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Scarlet Miner - On Respawn - Summon Creature \'Mine Car\''), +(-128896, 0, 1, 2, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 11, 52465, 0, 0, 0, 0, 0, 204, 28821, 0, 0, 0, 0, 0, 0, 0, 'Scarlet Miner - On Respawn - Cast \'Drag Mine Cart\''), +(-128896, 0, 2, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 232, 12889600, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Scarlet Miner - On Respawn - Start Path 12889600'), +(-128896, 0, 3, 0, 109, 0, 100, 0, 0, 12889600, 0, 0, 0, 0, 41, 2000, 10, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Scarlet Miner - On Path 12889600 Finished - Despawn In 2000 ms'), +(-128896, 0, 4, 0, 109, 0, 100, 0, 0, 12889600, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 204, 28821, 0, 0, 0, 0, 0, 0, 0, 'Scarlet Miner - On Path 12889600 Finished - Despawn In 2000 ms'), +(-128896, 0, 5, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 1000, 0, 0, 0, 0, 0, 204, 28821, 0, 0, 0, 0, 0, 0, 0, 'Scarlet Miner - On Just Died - Despawn In 1000 ms'); + +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = -128898); +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`, `event_param5`, `event_param6`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(-128898, 0, 0, 1, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 12, 28821, 8, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Scarlet Miner - On Respawn - Summon Creature \'Mine Car\''), +(-128898, 0, 1, 2, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 11, 52465, 0, 0, 0, 0, 0, 204, 28821, 0, 0, 0, 0, 0, 0, 0, 'Scarlet Miner - On Respawn - Cast \'Drag Mine Cart\''), +(-128898, 0, 2, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 232, 12889800, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Scarlet Miner - On Respawn - Start Path 12889800'), +(-128898, 0, 3, 0, 109, 0, 100, 0, 0, 12889800, 0, 0, 0, 0, 41, 2000, 10, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Scarlet Miner - On Path 12889800 Finished - Despawn In 2000 ms'), +(-128898, 0, 4, 0, 109, 0, 100, 0, 0, 12889800, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 204, 28821, 0, 0, 0, 0, 0, 0, 0, 'Scarlet Miner - On Path 12889800 Finished - Despawn In 2000 ms'), +(-128898, 0, 5, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 1000, 0, 0, 0, 0, 0, 204, 28821, 0, 0, 0, 0, 0, 0, 0, 'Scarlet Miner - On Just Died - Despawn In 1000 ms'); diff --git a/data/sql/updates/db_world/2024_11_27_02.sql b/data/sql/updates/db_world/2024_11_27_02.sql new file mode 100644 index 000000000..04c9d9323 --- /dev/null +++ b/data/sql/updates/db_world/2024_11_27_02.sql @@ -0,0 +1,22 @@ +-- DB update 2024_11_27_01 -> 2024_11_27_02 +-- add flag CU_DURATION_REAL_TIME to Pilgrim's Bounty items +-- Wild Turkey +UPDATE `item_template` SET `flagsCustom` = (`flagsCustom` | 1) WHERE (`entry` = 44834); +-- Recipe: Cranberry Chutney +UPDATE `item_template` SET `flagsCustom` = (`flagsCustom` | 1) WHERE (`entry` = 44858); +UPDATE `item_template` SET `flagsCustom` = (`flagsCustom` | 1) WHERE (`entry` = 46805); +-- Recipe: Candied Sweet Potato +UPDATE `item_template` SET `flagsCustom` = (`flagsCustom` | 1) WHERE (`entry` = 44859); +UPDATE `item_template` SET `flagsCustom` = (`flagsCustom` | 1) WHERE (`entry` = 46806); +-- Recipe: Spice Bread Stuffing +UPDATE `item_template` SET `flagsCustom` = (`flagsCustom` | 1) WHERE (`entry` = 44860); +UPDATE `item_template` SET `flagsCustom` = (`flagsCustom` | 1) WHERE (`entry` = 46803); +-- Recipe: Slow-Roasted Turkey +UPDATE `item_template` SET `flagsCustom` = (`flagsCustom` | 1) WHERE (`entry` = 44861); +UPDATE `item_template` SET `flagsCustom` = (`flagsCustom` | 1) WHERE (`entry` = 46807); +-- Recipe: Pumpkin Pie +UPDATE `item_template` SET `flagsCustom` = (`flagsCustom` | 1) WHERE (`entry` = 44862); +UPDATE `item_template` SET `flagsCustom` = (`flagsCustom` | 1) WHERE (`entry` = 46804); + +-- set duration to 7 days +UPDATE `item_template` SET `duration` = 604800 WHERE (`entry` IN (44858, 46805, 44859, 46806, 44860, 46803, 44861, 46807, 44862, 46804)); diff --git a/data/sql/updates/db_world/2024_11_30_00.sql b/data/sql/updates/db_world/2024_11_30_00.sql new file mode 100644 index 000000000..5afb60cd6 --- /dev/null +++ b/data/sql/updates/db_world/2024_11_30_00.sql @@ -0,0 +1,7 @@ +-- DB update 2024_11_27_02 -> 2024_11_30_00 +-- +-- To Skettis! requirement removed from Escape from Skettis +UPDATE `quest_template_addon` SET `PrevQuestID` = 0 WHERE (`ID` = 11085); + +-- To Skettis! requirement removed from Hungry Nether Rays +UPDATE `quest_template_addon` SET `PrevQuestID` = 0 WHERE (`ID` = 11093); diff --git a/data/sql/updates/db_world/2024_11_30_01.sql b/data/sql/updates/db_world/2024_11_30_01.sql new file mode 100644 index 000000000..28b75f3c7 --- /dev/null +++ b/data/sql/updates/db_world/2024_11_30_01.sql @@ -0,0 +1,838 @@ +-- DB update 2024_11_30_00 -> 2024_11_30_01 +-- enforce minCnt == macCnt for reference loot entries + +-- creature loot + +-- 33885 XT-002 Deconstructor (1), minCnt 1, maxCnt 3 +UPDATE `creature_loot_template` SET `MinCount` = 3 WHERE ( `Entry`= 33885 AND `Item` = 1 AND `Reference` = 34358 ); +-- 37613 Forgemaster Garfrost (1), minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 37613 AND `Item` = 1 AND `Reference` = 35060 ); +-- 17808 Anetheron, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 17808 AND `Item` = 34065 AND `Reference` = 34065 ); +-- 22898 Supremus, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 22898 AND `Item` = 34071 AND `Reference` = 34071 ); +-- 38401 Prince Valanar (1), minCnt 1, maxCnt 3 +UPDATE `creature_loot_template` SET `MinCount` = 3 WHERE ( `Entry`= 38401 AND `Item` = 1 AND `Reference` = 34248 ); +-- 38075 Deathspeaker Servant (1), minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 38075 AND `Item` = 1 AND `Reference` = 35069 ); +-- 35448 Icehowl (2), minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 35448 AND `Item` = 1 AND `Reference` = 34306 ); +-- 35448 Icehowl (2), minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 35448 AND `Item` = 2 AND `Reference` = 34313 ); +-- 38390 Rotface (1), minCnt 1, maxCnt 3 +UPDATE `creature_loot_template` SET `MinCount` = 3 WHERE ( `Entry`= 38390 AND `Item` = 1 AND `Reference` = 34245 ); +-- 37957 Lord Marrowgar (1), minCnt 1, maxCnt 3 +UPDATE `creature_loot_template` SET `MinCount` = 3 WHERE ( `Entry`= 37957 AND `Item` = 1 AND `Reference` = 34242 ); +-- 38479 Darkfallen Tactician (1), minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 38479 AND `Item` = 1 AND `Reference` = 35069 ); +-- 33515 Auriaya, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 33515 AND `Item` = 1 AND `Reference` = 34363 ); +-- 37664 Darkfallen Archmage, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 37664 AND `Item` = 1 AND `Reference` = 35069 ); +-- 37546 Frenzied Abomination, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 37546 AND `Item` = 1 AND `Reference` = 35069 ); +-- 38599 Falric (1), minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 38599 AND `Item` = 1 AND `Reference` = 35055 ); +-- 11492 Alzzin the Wildshaper, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 11492 AND `Item` = 35017 AND `Reference` = 35017 ); +-- 38058 Nerub'ar Broodkeeper (1), minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 38058 AND `Item` = 1 AND `Reference` = 35069 ); +-- 19516 Void Reaver, minCnt 1, maxCnt 3 +UPDATE `creature_loot_template` SET `MinCount` = 3 WHERE ( `Entry`= 19516 AND `Item` = 34054 AND `Reference` = 34054 ); +-- 19622 Kael'thas Sunstrider, minCnt 1, maxCnt 3 +UPDATE `creature_loot_template` SET `MinCount` = 3 WHERE ( `Entry`= 19622 AND `Item` = 34056 AND `Reference` = 34056 ); +-- 19622 Kael'thas Sunstrider, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 19622 AND `Item` = 90056 AND `Reference` = 34056 ); +-- 29278 Maexxna (1), minCnt 1, maxCnt 4 +UPDATE `creature_loot_template` SET `MinCount` = 4 WHERE ( `Entry`= 29278 AND `Item` = 1 AND `Reference` = 34139 ); +-- 38434 Blood-Queen Lana'thel (1), minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 38434 AND `Item` = 2 AND `Reference` = 34278 ); +-- 15936 Heigan the Unclean, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 15936 AND `Item` = 1 AND `Reference` = 34041 ); +-- 38059 Ancient Skeletal Soldier (1), minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 38059 AND `Item` = 1 AND `Reference` = 35069 ); +-- 38585 Professor Putricide (2), minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 38585 AND `Item` = 1 AND `Reference` = 34258 ); +-- 18831 High King Maulgar, minCnt 1, maxCnt 3 +UPDATE `creature_loot_template` SET `MinCount` = 3 WHERE ( `Entry`= 18831 AND `Item` = 34050 AND `Reference` = 34050 ); +-- 38031 Deathbound Ward (1), minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 38031 AND `Item` = 1 AND `Reference` = 35069 ); +-- 38074 Deathspeaker High Priest (1), minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 38074 AND `Item` = 1 AND `Reference` = 35069 ); +-- 38267 Sindragosa (3), minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 38267 AND `Item` = 2 AND `Reference` = 34278 ); +-- 29701 Heigan the Unclean (1), minCnt 1, maxCnt 4 +UPDATE `creature_loot_template` SET `MinCount` = 4 WHERE ( `Entry`= 29701 AND `Item` = 1 AND `Reference` = 34148 ); +-- 31311 Sartharion (1), minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 31311 AND `Item` = 1 AND `Reference` = 34166 ); +-- 22947 Mother Shahraz, minCnt 1, maxCnt 3 +UPDATE `creature_loot_template` SET `MinCount` = 3 WHERE ( `Entry`= 22947 AND `Item` = 34076 AND `Reference` = 34076 ); +-- 22917 Illidan Stormrage, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 22917 AND `Item` = 90077 AND `Reference` = 34077 ); +-- 9019 Emperor Dagran Thaurissan, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 9019 AND `Item` = 35014 AND `Reference` = 35014 ); +-- 38106 Lady Deathwhisper (1), minCnt 1, maxCnt 3 +UPDATE `creature_loot_template` SET `MinCount` = 3 WHERE ( `Entry`= 38106 AND `Item` = 1 AND `Reference` = 34243 ); +-- 11486 Prince Tortheldrin, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 11486 AND `Item` = 35021 AND `Reference` = 35021 ); +-- 38296 Lady Deathwhisper (2), minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 38296 AND `Item` = 1 AND `Reference` = 34255 ); +-- 21214 Fathom-Lord Karathress, minCnt 1, maxCnt 3 +UPDATE `creature_loot_template` SET `MinCount` = 3 WHERE ( `Entry`= 21214 AND `Item` = 34060 AND `Reference` = 34060 ); +-- 19044 Gruul the Dragonkiller, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 19044 AND `Item` = 34051 AND `Reference` = 34051 ); +-- 25165 Lady Sacrolash, minCnt 1, maxCnt 3 +UPDATE `creature_loot_template` SET `MinCount` = 3 WHERE ( `Entry`= 25165 AND `Item` = 34085 AND `Reference` = 34085 ); +-- 32867 Steelbreaker, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 32867 AND `Item` = 1 AND `Reference` = 34359 ); +-- 33724 Razorscale (1), minCnt 1, maxCnt 3 +UPDATE `creature_loot_template` SET `MinCount` = 3 WHERE ( `Entry`= 33724 AND `Item` = 1 AND `Reference` = 34356 ); +-- 12017 Broodlord Lashlayer, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 12017 AND `Item` = 30346 AND `Reference` = 30346 ); +-- 37662 Darkfallen Commander, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 37662 AND `Item` = 1 AND `Reference` = 35069 ); +-- 24239 Hex Lord Malacrass, minCnt 2, maxCnt 3 +UPDATE `creature_loot_template` SET `MinCount` = 3 WHERE ( `Entry`= 24239 AND `Item` = 34078 AND `Reference` = 34078 ); +-- 38564 Shadowy Mercenary (1), minCnt 1, maxCnt 2 +-- 38563 Ghostly Priest (1), minCnt 1, maxCnt 2 +-- 38544 Tortured Rifleman (1), minCnt 1, maxCnt 2 +-- 38525 Spectral Footman (1), minCnt 1, maxCnt 2 +-- 38524 Phantom Mage (1), minCnt 1, maxCnt 2 +-- 38249 Hungering Ghoul (1), minCnt 1, maxCnt 2 +-- 38193 Soulguard Bonecaster (1), minCnt 1, maxCnt 2 +-- 38026 Deathwhisper Torturer (1), minCnt 1, maxCnt 2 +-- 38025 Deathwhisper Shadowcaster (1), minCnt 1, maxCnt 2 +-- 37720 Frostsworn General (1), minCnt 1, maxCnt 2 +-- 37644 Ymirjar Wrathbringer (1), minCnt 1, maxCnt 2 +-- 37643 Ymirjar Skycaller (1), minCnt 1, maxCnt 2 +-- 37642 Ymirjar Flamebearer (1), minCnt 1, maxCnt 2 +-- 37641 Ymirjar Deathbringer (1), minCnt 1, maxCnt 2 +-- 37638 Wrathbone Laborer (1), minCnt 1, maxCnt 2 +-- 37637 Wrathbone Coldwraith (1), minCnt 1, maxCnt 2 +-- 37636 Stonespine Gargoyle (1), minCnt 1, maxCnt 2 +-- 37635 Plagueborn Horror (1), minCnt 1, maxCnt 2 +-- 37622 Geist Ambusher (1), minCnt 1, maxCnt 2 +-- 37609 Deathwhisper Necrolyte (1), minCnt 1, maxCnt 2 +-- 37569 Soulguard Watchman (1), minCnt 1, maxCnt 2 +-- 37568 Soulguard Reaper (1), minCnt 1, maxCnt 2 +-- 37567 Soulguard Animator (1), minCnt 1, maxCnt 2 +-- 37566 Soulguard Adept (1), minCnt 1, maxCnt 2 +-- 37565 Soul Horror (1), minCnt 1, maxCnt 2 +-- 37563 Spectral Warden (1), minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 100001 AND `Item` = 1 AND `Reference` = 35073 ); +-- 38494 Rotting Frost Giant, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 38494 AND `Item` = 1 AND `Reference` = 35069 ); +-- 37007 Deathbound Ward, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 37007 AND `Item` = 1 AND `Reference` = 35069 ); +-- 38134 Frostwarden Warrior (1), minCnt 1, maxCnt 2 +-- 37228 Frostwarden Warrior, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 37228 AND `Item` = 1 AND `Reference` = 35069 ); +-- 38550 Rotface (3), minCnt 1, maxCnt 3 +UPDATE `creature_loot_template` SET `MinCount` = 3 WHERE ( `Entry`= 38550 AND `Item` = 1 AND `Reference` = 34269 ); +-- 38445 Spire Minion (1), minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 38445 AND `Item` = 1 AND `Reference` = 35069 ); +-- 37012 Ancient Skeletal Soldier, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 37012 AND `Item` = 1 AND `Reference` = 35069 ); +-- 38110 Pustulating Horror (1), minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 38110 AND `Item` = 1 AND `Reference` = 35069 ); +-- 38099 Darkfallen Archmage (1), minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 38099 AND `Item` = 1 AND `Reference` = 35069 ); +-- 24892 Sathrovarr the Corruptor, minCnt 1, maxCnt 3 +UPDATE `creature_loot_template` SET `MinCount` = 3 WHERE ( `Entry`= 24892 AND `Item` = 34082 AND `Reference` = 34082 ); +-- 35615 Anub'arak (2), minCnt 1, maxCnt 3 +UPDATE `creature_loot_template` SET `MinCount` = 3 WHERE ( `Entry`= 35615 AND `Item` = 1 AND `Reference` = 34310 ); +-- 35615 Anub'arak (2), minCnt 1, maxCnt 3 +UPDATE `creature_loot_template` SET `MinCount` = 3 WHERE ( `Entry`= 35615 AND `Item` = 2 AND `Reference` = 34317 ); +-- 37677 Devourer of Souls (1), minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 37677 AND `Item` = 1 AND `Reference` = 35052 ); +-- 38063 Vengeful Fleshreaper (1), minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 38063 AND `Item` = 1 AND `Reference` = 35069 ); +-- 11583 Nefarian, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 11583 AND `Item` = 30486 AND `Reference` = 30486 ); +-- 11583 Nefarian, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 11583 AND `Item` = 34009 AND `Reference` = 34009 ); +-- 29324 Patchwerk (1), minCnt 1, maxCnt 4 +UPDATE `creature_loot_template` SET `MinCount` = 4 WHERE ( `Entry`= 29324 AND `Item` = 1 AND `Reference` = 34140 ); +-- 25840 Entropius, minCnt 1, maxCnt 3 +UPDATE `creature_loot_template` SET `MinCount` = 3 WHERE ( `Entry`= 25840 AND `Item` = 34095 AND `Reference` = 34095 ); +-- 10363 General Drakkisath, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 10363 AND `Item` = 35025 AND `Reference` = 35025 ); +-- 11382 Bloodlord Mandokir, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 11382 AND `Item` = 34088 AND `Reference` = 34088 ); +-- 38603 Marwyn (1), minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 38603 AND `Item` = 1 AND `Reference` = 35056 ); +-- 17225 Nightbane, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 17225 AND `Item` = 34022 AND `Reference` = 34022 ); +-- 12435 Razorgore the Untamed, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 12435 AND `Item` = 30369 AND `Reference` = 30369 ); +-- 12201 Princess Theradras, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 12201 AND `Item` = 35009 AND `Reference` = 35009 ); +-- 29448 Thaddius (1), minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 29448 AND `Item` = 1 AND `Reference` = 34143 ); +-- 29448 Thaddius (1), minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 29448 AND `Item` = 2 AND `Reference` = 34380 ); +-- 8443 Avatar of Hakkar, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 8443 AND `Item` = 35012 AND `Reference` = 35012 ); +-- 10429 Warchief Rend Blackhand, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 10429 AND `Item` = 35022 AND `Reference` = 35022 ); +-- 37627 Ick (1), minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 37627 AND `Item` = 1 AND `Reference` = 35061 ); +-- 36627 Rotface, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 36627 AND `Item` = 1 AND `Reference` = 34233 ); +-- 10404 Pustulating Horror, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 10404 AND `Item` = 1 AND `Reference` = 35069 ); +-- 29120 Anub'arak, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 29120 AND `Item` = 1 AND `Reference` = 35035 ); +-- 11498 Skarr the Unbreakable, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 11498 AND `Item` = 35015 AND `Reference` = 35015 ); +-- 21217 The Lurker Below, minCnt 1, maxCnt 3 +UPDATE `creature_loot_template` SET `MinCount` = 3 WHERE ( `Entry`= 21217 AND `Item` = 34058 AND `Reference` = 34058 ); +-- 39167 The Lich King (2), minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 39167 AND `Item` = 1 AND `Reference` = 34262 ); +-- 10813 Balnazzar, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 10813 AND `Item` = 35027 AND `Reference` = 35027 ); +-- 11380 Jin'do the Hexxer, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 11380 AND `Item` = 34089 AND `Reference` = 34089 ); +-- 36811 Deathspeaker Attendant, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 36811 AND `Item` = 1 AND `Reference` = 35069 ); +-- 37595 Darkfallen Blood Knight, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 37595 AND `Item` = 1 AND `Reference` = 35069 ); +-- 33693 Steelbreaker (1), minCnt 1, maxCnt 3 +UPDATE `creature_loot_template` SET `MinCount` = 3 WHERE ( `Entry`= 33693 AND `Item` = 1 AND `Reference` = 34360 ); +-- 38139 Frostwarden Handler (1), minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 38139 AND `Item` = 1 AND `Reference` = 35069 ); +-- 37544 Spire Gargoyle, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 37544 AND `Item` = 1 AND `Reference` = 35069 ); +-- 17842 Azgalor, minCnt 1, maxCnt 3 +UPDATE `creature_loot_template` SET `MinCount` = 3 WHERE ( `Entry`= 17842 AND `Item` = 34067 AND `Reference` = 34067 ); +-- 37506 Festergut (3), minCnt 1, maxCnt 3 +UPDATE `creature_loot_template` SET `MinCount` = 3 WHERE ( `Entry`= 37506 AND `Item` = 1 AND `Reference` = 34268 ); +-- 11501 King Gordok, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 11501 AND `Item` = 35019 AND `Reference` = 35019 ); +-- 37959 Lord Marrowgar (3), minCnt 1, maxCnt 3 +UPDATE `creature_loot_template` SET `MinCount` = 3 WHERE ( `Entry`= 37959 AND `Item` = 1 AND `Reference` = 34266 ); +-- 33993 Emalon the Storm Watcher, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 33993 AND `Item` = 1 AND `Reference` = 34208 ); +-- 33118 Ignis the Furnace Master, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 33118 AND `Item` = 1 AND `Reference` = 34353 ); +-- 14888 Lethon, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 14888 AND `Item` = 34002 AND `Reference` = 34002 ); +-- 14888 Lethon, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 14888 AND `Item` = 34005 AND `Reference` = 34005 ); +-- 16457 Maiden of Virtue, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 16457 AND `Item` = 34018 AND `Reference` = 34018 ); +-- 5709 Shade of Eranikus, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 5709 AND `Item` = 35013 AND `Reference` = 35013 ); +-- 34564 Anub'arak, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 34564 AND `Item` = 1 AND `Reference` = 34298 ); +-- 34564 Anub'arak, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 34564 AND `Item` = 2 AND `Reference` = 34304 ); +-- 39168 The Lich King (3), minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 39168 AND `Item` = 1 AND `Reference` = 34274 ); +-- 39168 The Lich King (3), minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 39168 AND `Item` = 2 AND `Reference` = 34278 ); +-- 35352 Fjola Lightbane (3), minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 35352 AND `Item` = 1 AND `Reference` = 34336 ); +-- 35352 Fjola Lightbane (3), minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 35352 AND `Item` = 2 AND `Reference` = 34343 ); +-- 27978 Sjonnir The Ironshaper, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 27978 AND `Item` = 1 AND `Reference` = 35044 ); +-- 22948 Gurtogg Bloodboil, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 22948 AND `Item` = 34074 AND `Reference` = 34074 ); +-- 35351 Fjola Lightbane (2), minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 35351 AND `Item` = 1 AND `Reference` = 34308 ); +-- 35351 Fjola Lightbane (2), minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 35351 AND `Item` = 2 AND `Reference` = 34315 ); +-- 33113 Flame Leviathan, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 33113 AND `Item` = 2 AND `Reference` = 34351 ); +-- 6109 Azuregos, minCnt 1, maxCnt 3 +UPDATE `creature_loot_template` SET `MinCount` = 3 WHERE ( `Entry`= 6109 AND `Item` = 34002 AND `Reference` = 34002 ); +-- 6109 Azuregos, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 6109 AND `Item` = 34004 AND `Reference` = 34004 ); +-- 6109 Azuregos, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 6109 AND `Item` = 190003 AND `Reference` = 34003 ); +-- 13020 Vaelastrasz the Corrupt, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 13020 AND `Item` = 30372 AND `Reference` = 30372 ); +-- 17257 Magtheridon, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 17257 AND `Item` = 90039 AND `Reference` = 34039 ); +-- 35360 Koralon the Flame Watcher (1), minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 35360 AND `Item` = 1 AND `Reference` = 34205 ); +-- 35360 Koralon the Flame Watcher (1), minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 35360 AND `Item` = 3 AND `Reference` = 34205 ); +-- 35360 Koralon the Flame Watcher (1), minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 35360 AND `Item` = 4 AND `Reference` = 34205 ); +-- 29306 Gal'darah, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 29306 AND `Item` = 1 AND `Reference` = 35039 ); +-- 36807 Deathspeaker Disciple, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 36807 AND `Item` = 1 AND `Reference` = 35069 ); +-- 15339 Ossirian the Unscarred, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 15339 AND `Item` = 34024 AND `Reference` = 34024 ); +-- 15339 Ossirian the Unscarred, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 15339 AND `Item` = 34025 AND `Reference` = 34025 ); +-- 14890 Taerar, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 14890 AND `Item` = 34002 AND `Reference` = 34002 ); +-- 14890 Taerar, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 14890 AND `Item` = 34007 AND `Reference` = 34007 ); +-- 36626 Festergut, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 36626 AND `Item` = 1 AND `Reference` = 34232 ); +-- 15688 Terestian Illhoof, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 15688 AND `Item` = 34019 AND `Reference` = 34019 ); +-- 37663 Darkfallen Noble, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 37663 AND `Item` = 1 AND `Reference` = 35069 ); +-- 37666 Darkfallen Tactician, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 37666 AND `Item` = 1 AND `Reference` = 35069 ); +-- 38785 Prince Valanar (3), minCnt 1, maxCnt 3 +UPDATE `creature_loot_template` SET `MinCount` = 3 WHERE ( `Entry`= 38785 AND `Item` = 1 AND `Reference` = 34271 ); +-- 36805 Deathspeaker Servant, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 36805 AND `Item` = 1 AND `Reference` = 35069 ); +-- 37505 Festergut (2), minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 37505 AND `Item` = 1 AND `Reference` = 34256 ); +-- 37501 Nerub'ar Champion, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 37501 AND `Item` = 1 AND `Reference` = 35069 ); +-- 38435 Blood-Queen Lana'thel (2), minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 38435 AND `Item` = 1 AND `Reference` = 34260 ); +-- 10184 Onyxia, minCnt 1, maxCnt 5 +UPDATE `creature_loot_template` SET `MinCount` = 5 WHERE ( `Entry`= 10184 AND `Item` = 1 AND `Reference` = 34000 ); +-- 38108 Blighted Abomination (1), minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 38108 AND `Item` = 1 AND `Reference` = 35069 ); +-- 21212 Lady Vashj, minCnt 1, maxCnt 3 +UPDATE `creature_loot_template` SET `MinCount` = 3 WHERE ( `Entry`= 21212 AND `Item` = 34062 AND `Reference` = 34062 ); +-- 21212 Lady Vashj, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 21212 AND `Item` = 90062 AND `Reference` = 34062 ); +-- 10430 The Beast, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 10430 AND `Item` = 35023 AND `Reference` = 35023 ); +-- 10440 Baron Rivendare, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 10440 AND `Item` = 35028 AND `Reference` = 35028 ); +-- 11447 Mushgog, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 11447 AND `Item` = 35015 AND `Reference` = 35015 ); +-- 10508 Ras Frostwhisper, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 10508 AND `Item` = 35030 AND `Reference` = 35030 ); +-- 38102 Darkfallen Commander (1), minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 38102 AND `Item` = 1 AND `Reference` = 35069 ); +-- 37022 Blighted Abomination, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 37022 AND `Item` = 1 AND `Reference` = 35069 ); +-- 10997 Cannon Master Willey, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 10997 AND `Item` = 35026 AND `Reference` = 35026 ); +-- 11496 Immol'thar, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 11496 AND `Item` = 35020 AND `Reference` = 35020 ); +-- 11497 The Razza, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 11497 AND `Item` = 35015 AND `Reference` = 35015 ); +-- 11502 Ragnaros, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 11502 AND `Item` = 30171 AND `Reference` = 30171 ); +-- 26723 Keristrasza, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 26723 AND `Item` = 1 AND `Reference` = 35033 ); +-- 33449 General Vezax (1), minCnt 1, maxCnt 3 +UPDATE `creature_loot_template` SET `MinCount` = 3 WHERE ( `Entry`= 33449 AND `Item` = 1 AND `Reference` = 34374 ); +-- 34175 Auriaya (1), minCnt 1, maxCnt 3 +UPDATE `creature_loot_template` SET `MinCount` = 3 WHERE ( `Entry`= 34175 AND `Item` = 1 AND `Reference` = 34364 ); +-- 16808 Warchief Kargath Bladefist, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 16808 AND `Item` = 35003 AND `Reference` = 35003 ); +-- 14020 Chromaggus, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 14020 AND `Item` = 30379 AND `Reference` = 30379 ); +-- 35447 Icehowl (1), minCnt 1, maxCnt 3 +UPDATE `creature_loot_template` SET `MinCount` = 3 WHERE ( `Entry`= 35447 AND `Item` = 1 AND `Reference` = 34320 ); +-- 35447 Icehowl (1), minCnt 1, maxCnt 3 +UPDATE `creature_loot_template` SET `MinCount` = 3 WHERE ( `Entry`= 35447 AND `Item` = 2 AND `Reference` = 34327 ); +-- 15340 Moam, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 15340 AND `Item` = 34024 AND `Reference` = 34024 ); +-- 35268 Lord Jaraxxus (2), minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 35268 AND `Item` = 1 AND `Reference` = 34307 ); +-- 35268 Lord Jaraxxus (2), minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 35268 AND `Item` = 2 AND `Reference` = 34314 ); +-- 36724 Servant of the Throne, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 36724 AND `Item` = 1 AND `Reference` = 35069 ); +-- 36612 Lord Marrowgar, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 36612 AND `Item` = 1 AND `Reference` = 34230 ); +-- 29311 Herald Volazj, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 29311 AND `Item` = 1 AND `Reference` = 35036 ); +-- 14887 Ysondre, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 14887 AND `Item` = 34002 AND `Reference` = 34002 ); +-- 14887 Ysondre, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 14887 AND `Item` = 34008 AND `Reference` = 34008 ); +-- 14889 Emeriss, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 14889 AND `Item` = 34002 AND `Reference` = 34002 ); +-- 14889 Emeriss, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 14889 AND `Item` = 34006 AND `Reference` = 34006 ); +-- 25166 Grand Warlock Alythess, minCnt 1, maxCnt 4 +UPDATE `creature_loot_template` SET `MinCount` = 4 WHERE ( `Entry`= 25166 AND `Item` = 34085 AND `Reference` = 34085 ); +-- 15341 General Rajaxx, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 15341 AND `Item` = 34024 AND `Reference` = 34024 ); +-- 15348 Kurinnaxx, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 15348 AND `Item` = 34024 AND `Reference` = 34024 ); +-- 15369 Ayamiss the Hunter, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 15369 AND `Item` = 34024 AND `Reference` = 34024 ); +-- 15370 Buru the Gorger, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 15370 AND `Item` = 34024 AND `Reference` = 34024 ); +-- 29955 Gothik the Harvester (1), minCnt 1, maxCnt 4 +UPDATE `creature_loot_template` SET `MinCount` = 4 WHERE ( `Entry`= 29955 AND `Item` = 1 AND `Reference` = 34145 ); +-- 15952 Maexxna, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 15952 AND `Item` = 1 AND `Reference` = 34040 ); +-- 35449 Icehowl (3), minCnt 1, maxCnt 3 +UPDATE `creature_loot_template` SET `MinCount` = 3 WHERE ( `Entry`= 35449 AND `Item` = 1 AND `Reference` = 34334 ); +-- 35449 Icehowl (3), minCnt 1, maxCnt 3 +UPDATE `creature_loot_template` SET `MinCount` = 3 WHERE ( `Entry`= 35449 AND `Item` = 2 AND `Reference` = 34341 ); +-- 15687 Moroes, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 15687 AND `Item` = 34017 AND `Reference` = 34017 ); +-- 15689 Netherspite, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 15689 AND `Item` = 34021 AND `Reference` = 34021 ); +-- 15953 Grand Widow Faerlina, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 15953 AND `Item` = 1 AND `Reference` = 34099 ); +-- 15931 Grobbulus, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 15931 AND `Item` = 1 AND `Reference` = 34101 ); +-- 15954 Noth the Plaguebringer, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 15954 AND `Item` = 1 AND `Reference` = 34042 ); +-- 15956 Anub'Rekhan, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 15956 AND `Item` = 1 AND `Reference` = 34098 ); +-- 29940 Instructor Razuvious (1), minCnt 1, maxCnt 4 +UPDATE `creature_loot_template` SET `MinCount` = 4 WHERE ( `Entry`= 29940 AND `Item` = 1 AND `Reference` = 34144 ); +-- 15989 Sapphiron, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 15989 AND `Item` = 1 AND `Reference` = 34043 ); +-- 15990 Kel'Thuzad, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 15990 AND `Item` = 1 AND `Reference` = 34044 ); +-- 16028 Patchwerk, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 16028 AND `Item` = 1 AND `Reference` = 34100 ); +-- 16042 Lord Valthalak, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 16042 AND `Item` = 35024 AND `Reference` = 35024 ); +-- 16060 Gothik the Harvester, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 16060 AND `Item` = 1 AND `Reference` = 34103 ); +-- 16061 Instructor Razuvious, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 16061 AND `Item` = 1 AND `Reference` = 34102 ); +-- 29268 Grand Widow Faerlina (1), minCnt 1, maxCnt 4 +UPDATE `creature_loot_template` SET `MinCount` = 4 WHERE ( `Entry`= 29268 AND `Item` = 1 AND `Reference` = 34138 ); +-- 16152 Attumen the Huntsman, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 16152 AND `Item` = 34016 AND `Reference` = 34016 ); +-- 31125 Archavon the Stone Watcher, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 31125 AND `Item` = 1 AND `Reference` = 34209 ); +-- 35616 Anub'arak (3), minCnt 1, maxCnt 4 +UPDATE `creature_loot_template` SET `MinCount` = 4 WHERE ( `Entry`= 35616 AND `Item` = 1 AND `Reference` = 34338 ); +-- 35616 Anub'arak (3), minCnt 1, maxCnt 4 +UPDATE `creature_loot_template` SET `MinCount` = 4 WHERE ( `Entry`= 35616 AND `Item` = 2 AND `Reference` = 34345 ); +-- 39166 The Lich King (1), minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 39166 AND `Item` = 1 AND `Reference` = 34250 ); +-- 39166 The Lich King (1), minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 39166 AND `Item` = 2 AND `Reference` = 34278 ); +-- 35216 Lord Jaraxxus (1), minCnt 1, maxCnt 3 +UPDATE `creature_loot_template` SET `MinCount` = 3 WHERE ( `Entry`= 35216 AND `Item` = 1 AND `Reference` = 34321 ); +-- 35216 Lord Jaraxxus (1), minCnt 1, maxCnt 3 +UPDATE `creature_loot_template` SET `MinCount` = 3 WHERE ( `Entry`= 35216 AND `Item` = 2 AND `Reference` = 34328 ); +-- 16524 Shade of Aran, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 16524 AND `Item` = 34020 AND `Reference` = 34020 ); +-- 35350 Fjola Lightbane (1), minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 35350 AND `Item` = 1 AND `Reference` = 34322 ); +-- 35350 Fjola Lightbane (1), minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 35350 AND `Item` = 2 AND `Reference` = 34329 ); +-- 17711 Doomwalker, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 17711 AND `Item` = 34080 AND `Reference` = 34080 ); +-- 17767 Rage Winterchill, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 17767 AND `Item` = 34064 AND `Reference` = 34064 ); +-- 17888 Kaz'rogal, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 17888 AND `Item` = 34066 AND `Reference` = 34066 ); +-- 17968 Archimonde, minCnt 1, maxCnt 3 +UPDATE `creature_loot_template` SET `MinCount` = 3 WHERE ( `Entry`= 17968 AND `Item` = 34068 AND `Reference` = 34068 ); +-- 36853 Sindragosa, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 36853 AND `Item` = 1 AND `Reference` = 34237 ); +-- 38436 Blood-Queen Lana'thel (3), minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 38436 AND `Item` = 2 AND `Reference` = 34278 ); +-- 18728 Doom Lord Kazzak, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 18728 AND `Item` = 1 AND `Reference` = 26043 ); +-- 18805 High Astromancer Solarian, minCnt 1, maxCnt 3 +UPDATE `creature_loot_template` SET `MinCount` = 3 WHERE ( `Entry`= 18805 AND `Item` = 34055 AND `Reference` = 34055 ); +-- 38198 Nerub'ar Webweaver (1), minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 38198 AND `Item` = 1 AND `Reference` = 35069 ); +-- 37025 Stinky, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 37025 AND `Item` = 1 AND `Reference` = 35069 ); +-- 36829 Deathspeaker High Priest, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 36829 AND `Item` = 1 AND `Reference` = 35069 ); +-- 19514 Al'ar, minCnt 1, maxCnt 3 +UPDATE `creature_loot_template` SET `MinCount` = 3 WHERE ( `Entry`= 19514 AND `Item` = 1 AND `Reference` = 34053 ); +-- 38076 Deathspeaker Zealot (1), minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 38076 AND `Item` = 1 AND `Reference` = 35069 ); +-- 21213 Morogrim Tidewalker, minCnt 1, maxCnt 3 +UPDATE `creature_loot_template` SET `MinCount` = 3 WHERE ( `Entry`= 21213 AND `Item` = 34061 AND `Reference` = 34061 ); +-- 21215 Leotheras the Blind, minCnt 1, maxCnt 3 +UPDATE `creature_loot_template` SET `MinCount` = 3 WHERE ( `Entry`= 21215 AND `Item` = 34059 AND `Reference` = 34059 ); +-- 21216 Hydross the Unstable, minCnt 1, maxCnt 3 +UPDATE `creature_loot_template` SET `MinCount` = 3 WHERE ( `Entry`= 21216 AND `Item` = 34057 AND `Reference` = 34057 ); +-- 36808 Deathspeaker Zealot, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 36808 AND `Item` = 1 AND `Reference` = 35069 ); +-- 36494 Forgemaster Garfrost, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 36494 AND `Item` = 1 AND `Reference` = 35057 ); +-- 22841 Shade of Akama, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 22841 AND `Item` = 34072 AND `Reference` = 34072 ); +-- 22871 Teron Gorefiend, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 22871 AND `Item` = 34073 AND `Reference` = 34073 ); +-- 22887 High Warlord Naj'entus, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 22887 AND `Item` = 34070 AND `Reference` = 34070 ); +-- 33293 XT-002 Deconstructor, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 33293 AND `Item` = 1 AND `Reference` = 34357 ); +-- 23420 Essence of Anger, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 23420 AND `Item` = 34075 AND `Reference` = 34075 ); +-- 37098 Val'kyr Herald, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 37098 AND `Item` = 1 AND `Reference` = 35069 ); +-- 38297 Lady Deathwhisper (3), minCnt 1, maxCnt 3 +UPDATE `creature_loot_template` SET `MinCount` = 3 WHERE ( `Entry`= 38297 AND `Item` = 1 AND `Reference` = 34267 ); +-- 23863 Zul'jin, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 23863 AND `Item` = 34079 AND `Reference` = 34079 ); +-- 38418 Val'kyr Herald (1), minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 38418 AND `Item` = 1 AND `Reference` = 35069 ); +-- 23954 Ingvar the Plunderer, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 23954 AND `Item` = 1 AND `Reference` = 35048 ); +-- 38112 Falric, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 38112 AND `Item` = 1 AND `Reference` = 35053 ); +-- 24882 Brutallus, minCnt 1, maxCnt 3 +UPDATE `creature_loot_template` SET `MinCount` = 3 WHERE ( `Entry`= 24882 AND `Item` = 34083 AND `Reference` = 34083 ); +-- 25038 Felmyst, minCnt 1, maxCnt 3 +UPDATE `creature_loot_template` SET `MinCount` = 3 WHERE ( `Entry`= 25038 AND `Item` = 34084 AND `Reference` = 34084 ); +-- 25315 Kil'jaeden, minCnt 1, maxCnt 3 +UPDATE `creature_loot_template` SET `MinCount` = 3 WHERE ( `Entry`= 25315 AND `Item` = 34096 AND `Reference` = 34096 ); +-- 38549 Rotface (2), minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 38549 AND `Item` = 1 AND `Reference` = 34257 ); +-- 37958 Lord Marrowgar (2), minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 37958 AND `Item` = 1 AND `Reference` = 34254 ); +-- 26632 The Prophet Tharon'ja, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 26632 AND `Item` = 1 AND `Reference` = 35032 ); +-- 37504 Festergut (1), minCnt 1, maxCnt 3 +UPDATE `creature_loot_template` SET `MinCount` = 3 WHERE ( `Entry`= 37504 AND `Item` = 1 AND `Reference` = 34244 ); +-- 26861 King Ymiron, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 26861 AND `Item` = 1 AND `Reference` = 35050 ); +-- 38784 Prince Valanar (2), minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 38784 AND `Item` = 1 AND `Reference` = 34259 ); +-- 33694 Stormcaller Brundir (1), minCnt 1, maxCnt 3 +UPDATE `creature_loot_template` SET `MinCount` = 3 WHERE ( `Entry`= 33694 AND `Item` = 1 AND `Reference` = 34360 ); +-- 28923 Loken, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 28923 AND `Item` = 1 AND `Reference` = 35043 ); +-- 29249 Anub'Rekhan (1), minCnt 1, maxCnt 4 +UPDATE `creature_loot_template` SET `MinCount` = 4 WHERE ( `Entry`= 29249 AND `Item` = 1 AND `Reference` = 34137 ); +-- 29373 Grobbulus (1), minCnt 1, maxCnt 4 +UPDATE `creature_loot_template` SET `MinCount` = 4 WHERE ( `Entry`= 29373 AND `Item` = 1 AND `Reference` = 34141 ); +-- 29417 Gluth (1), minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 29417 AND `Item` = 1 AND `Reference` = 34142 ); +-- 29417 Gluth (1), minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 29417 AND `Item` = 2 AND `Reference` = 34383 ); +-- 29615 Noth the Plaguebringer (1), minCnt 1, maxCnt 4 +UPDATE `creature_loot_template` SET `MinCount` = 4 WHERE ( `Entry`= 29615 AND `Item` = 1 AND `Reference` = 34147 ); +-- 29718 Loatheb (1), minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 29718 AND `Item` = 1 AND `Reference` = 34149 ); +-- 29718 Loatheb (1), minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 29718 AND `Item` = 2 AND `Reference` = 34381 ); +-- 29991 Sapphiron (1), minCnt 1, maxCnt 4 +UPDATE `creature_loot_template` SET `MinCount` = 4 WHERE ( `Entry`= 29991 AND `Item` = 1 AND `Reference` = 34135 ); +-- 30061 Kel'Thuzad (1), minCnt 1, maxCnt 3 +UPDATE `creature_loot_template` SET `MinCount` = 3 WHERE ( `Entry`= 30061 AND `Item` = 1 AND `Reference` = 34136 ); +-- 30061 Kel'Thuzad (1), minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 30061 AND `Item` = 2 AND `Reference` = 34133 ); +-- 36476 Ick, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 36476 AND `Item` = 1 AND `Reference` = 35058 ); +-- 31134 Cyanigosa, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 31134 AND `Item` = 1 AND `Reference` = 35042 ); +-- 31722 Archavon the Stone Watcher (1), minCnt 1, maxCnt 4 +UPDATE `creature_loot_template` SET `MinCount` = 4 WHERE ( `Entry`= 31722 AND `Item` = 1 AND `Reference` = 34216 ); +-- 37545 Spire Minion, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 37545 AND `Item` = 1 AND `Reference` = 35069 ); +-- 32857 Stormcaller Brundir, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 32857 AND `Item` = 1 AND `Reference` = 34359 ); +-- 32927 Runemaster Molgeim, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 32927 AND `Item` = 1 AND `Reference` = 34359 ); +-- 33186 Razorscale, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 33186 AND `Item` = 1 AND `Reference` = 34355 ); +-- 33190 Ignis the Furnace Master (1), minCnt 1, maxCnt 3 +UPDATE `creature_loot_template` SET `MinCount` = 3 WHERE ( `Entry`= 33190 AND `Item` = 1 AND `Reference` = 34354 ); +-- 33271 General Vezax, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 33271 AND `Item` = 1 AND `Reference` = 34373 ); +-- 33692 Runemaster Molgeim (1), minCnt 1, maxCnt 3 +UPDATE `creature_loot_template` SET `MinCount` = 3 WHERE ( `Entry`= 33692 AND `Item` = 1 AND `Reference` = 34360 ); +-- 33955 Yogg-Saron (1), minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 33955 AND `Item` = 1 AND `Reference` = 34376 ); +-- 33955 Yogg-Saron (1), minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 33955 AND `Item` = 2 AND `Reference` = 12035 ); +-- 33994 Emalon the Storm Watcher (1), minCnt 1, maxCnt 4 +UPDATE `creature_loot_template` SET `MinCount` = 4 WHERE ( `Entry`= 33994 AND `Item` = 1 AND `Reference` = 34215 ); +-- 34003 Flame Leviathan (1), minCnt 1, maxCnt 3 +UPDATE `creature_loot_template` SET `MinCount` = 3 WHERE ( `Entry`= 34003 AND `Item` = 2 AND `Reference` = 34352 ); +-- 34003 Flame Leviathan (1), minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 34003 AND `Item` = 6 AND `Reference` = 34350 ); +-- 34566 Anub'arak (1), minCnt 1, maxCnt 3 +UPDATE `creature_loot_template` SET `MinCount` = 3 WHERE ( `Entry`= 34566 AND `Item` = 1 AND `Reference` = 34324 ); +-- 34566 Anub'arak (1), minCnt 1, maxCnt 3 +UPDATE `creature_loot_template` SET `MinCount` = 3 WHERE ( `Entry`= 34566 AND `Item` = 2 AND `Reference` = 34331 ); +-- 34780 Lord Jaraxxus, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 34780 AND `Item` = 1 AND `Reference` = 34295 ); +-- 34780 Lord Jaraxxus, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 34780 AND `Item` = 2 AND `Reference` = 34301 ); +-- 34797 Icehowl, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 34797 AND `Item` = 1 AND `Reference` = 34294 ); +-- 34797 Icehowl, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 34797 AND `Item` = 2 AND `Reference` = 34300 ); +-- 35269 Lord Jaraxxus (3), minCnt 1, maxCnt 3 +UPDATE `creature_loot_template` SET `MinCount` = 3 WHERE ( `Entry`= 35269 AND `Item` = 1 AND `Reference` = 34335 ); +-- 35269 Lord Jaraxxus (3), minCnt 1, maxCnt 3 +UPDATE `creature_loot_template` SET `MinCount` = 3 WHERE ( `Entry`= 35269 AND `Item` = 2 AND `Reference` = 34342 ); +-- 35451 The Black Knight, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 35451 AND `Item` = 1 AND `Reference` = 34170 ); +-- 35490 The Black Knight (1), minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 35490 AND `Item` = 1 AND `Reference` = 34171 ); +-- 36502 Devourer of Souls, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 36502 AND `Item` = 1 AND `Reference` = 35051 ); +-- 36538 Onyxia (1), minCnt 1, maxCnt 5 +UPDATE `creature_loot_template` SET `MinCount` = 5 WHERE ( `Entry`= 36538 AND `Item` = 1 AND `Reference` = 34001 ); +-- 36597 The Lich King, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 36597 AND `Item` = 1 AND `Reference` = 34238 ); +-- 36658 Scourgelord Tyrannus, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 36658 AND `Item` = 1 AND `Reference` = 35059 ); +-- 36678 Professor Putricide, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 36678 AND `Item` = 1 AND `Reference` = 34234 ); +-- 36725 Nerub'ar Broodkeeper, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 36725 AND `Item` = 1 AND `Reference` = 35069 ); +-- 36855 Lady Deathwhisper, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 36855 AND `Item` = 1 AND `Reference` = 34231 ); +-- 36880 Decaying Colossus, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 36880 AND `Item` = 1 AND `Reference` = 35069 ); +-- 36938 Scourgelord Tyrannus (1), minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 36938 AND `Item` = 1 AND `Reference` = 35062 ); +-- 37023 Plague Scientist, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 37023 AND `Item` = 1 AND `Reference` = 35069 ); +-- 37038 Vengeful Fleshreaper, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 37038 AND `Item` = 1 AND `Reference` = 35069 ); +-- 38137 Frostwarden Sorceress (1), minCnt 1, maxCnt 2 +-- 37229 Frostwarden Sorceress, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 37229 AND `Item` = 1 AND `Reference` = 35069 ); +-- 37502 Nerub'ar Webweaver, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 37502 AND `Item` = 1 AND `Reference` = 35069 ); +-- 37531 Frostwarden Handler, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 37531 AND `Item` = 1 AND `Reference` = 35069 ); +-- 37571 Darkfallen Advisor, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 37571 AND `Item` = 1 AND `Reference` = 35069 ); +-- 37655 Decaying Colossus (1), minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 37655 AND `Item` = 1 AND `Reference` = 35069 ); +-- 37665 Darkfallen Lieutenant, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 37665 AND `Item` = 1 AND `Reference` = 35069 ); +-- 37955 Blood-Queen Lana'thel, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 37955 AND `Item` = 1 AND `Reference` = 34236 ); +-- 37970 Prince Valanar, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 37970 AND `Item` = 1 AND `Reference` = 34235 ); +-- 38057 Servant of the Throne (1), minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 38057 AND `Item` = 1 AND `Reference` = 35069 ); +-- 38062 Plague Scientist (1), minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 38062 AND `Item` = 1 AND `Reference` = 35069 ); +-- 38064 Stinky (1), minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 38064 AND `Item` = 1 AND `Reference` = 35069 ); +-- 38072 Deathspeaker Attendant (1), minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 38072 AND `Item` = 1 AND `Reference` = 35069 ); +-- 38073 Deathspeaker Disciple (1), minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 38073 AND `Item` = 1 AND `Reference` = 35069 ); +-- 38098 Darkfallen Advisor (1), minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 38098 AND `Item` = 1 AND `Reference` = 35069 ); +-- 38100 Darkfallen Blood Knight (1), minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 38100 AND `Item` = 1 AND `Reference` = 35069 ); +-- 38101 Darkfallen Lieutenant (1), minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 38101 AND `Item` = 1 AND `Reference` = 35069 ); +-- 38113 Marwyn, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 38113 AND `Item` = 1 AND `Reference` = 35054 ); +-- 38197 Nerub'ar Champion (1), minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 38197 AND `Item` = 1 AND `Reference` = 35069 ); +-- 38265 Sindragosa (1), minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 38265 AND `Item` = 2 AND `Reference` = 34278 ); +-- 38266 Sindragosa (2), minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 38266 AND `Item` = 1 AND `Reference` = 34261 ); +-- 38431 Professor Putricide (1), minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 38431 AND `Item` = 1 AND `Reference` = 34278 ); +-- 38433 Toravon the Ice Watcher, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 38433 AND `Item` = 1 AND `Reference` = 34206 ); +-- 38446 Frenzied Abomination (1), minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 38446 AND `Item` = 1 AND `Reference` = 35069 ); +-- 38462 Toravon the Ice Watcher (1), minCnt 1, maxCnt 3 +UPDATE `creature_loot_template` SET `MinCount` = 3 WHERE ( `Entry`= 38462 AND `Item` = 1 AND `Reference` = 34207 ); +-- 38480 Darkfallen Noble (1), minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 38480 AND `Item` = 1 AND `Reference` = 35069 ); +-- 38481 Spire Gargoyle (1), minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 38481 AND `Item` = 1 AND `Reference` = 35069 ); +-- 38490 Rotting Frost Giant, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 38490 AND `Item` = 1 AND `Reference` = 35069 ); +-- 38586 Professor Putricide (3), minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 38586 AND `Item` = 1 AND `Reference` = 34278 ); +-- 39863 Halion, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 39863 AND `Item` = 1 AND `Reference` = 34280 ); +-- 39864 Halion (1), minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 39864 AND `Item` = 1 AND `Reference` = 34282 ); +-- 39944 Halion (2), minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 39944 AND `Item` = 1 AND `Reference` = 34281 ); +-- 39945 Halion (3), minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 39945 AND `Item` = 1 AND `Reference` = 34283 ); +-- 38177 Shadowy Mercenary, minCnt 1, maxCnt 2 +-- 38176 Tortured Rifleman, minCnt 1, maxCnt 2 +-- 38175 Ghostly Priest, minCnt 1, maxCnt 2 +-- 38173 Spectral Footman, minCnt 1, maxCnt 2 +-- 38172 Phantom Mage, minCnt 1, maxCnt 2 +-- 37713 Deathwhisper Torturer, minCnt 1, maxCnt 2 +-- 37712 Deathwhisper Shadowcaster, minCnt 1, maxCnt 2 +-- 37711 Hungering Ghoul, minCnt 1, maxCnt 2 +-- 36896 Stonespine Gargoyle, minCnt 1, maxCnt 2 +-- 36879 Plagueborn Horror, minCnt 1, maxCnt 2 +-- 36842 Wrathbone Coldwraith, minCnt 1, maxCnt 2 +-- 36830 Wrathbone Laborer, minCnt 1, maxCnt 2 +-- 36788 Deathwhisper Necrolyte, minCnt 1, maxCnt 2 +-- 36723 Frostsworn General, minCnt 1, maxCnt 2 +-- 36666 Spectral Warden, minCnt 1, maxCnt 2 +-- 36620 Soulguard Adept, minCnt 1, maxCnt 2 +-- 36564 Soulguard Bonecaster, minCnt 1, maxCnt 2 +-- 36522 Soul Horror, minCnt 1, maxCnt 2 +-- 36516 Soulguard Animator, minCnt 1, maxCnt 2 +-- 36499 Soulguard Reaper, minCnt 1, maxCnt 2 +-- 36478 Soulguard Watchman, minCnt 1, maxCnt 2 +UPDATE `creature_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 100000 AND `Item` = 1 AND `Reference` = 35071 ); + +-- gameobject loot + +-- 195672 Argent Crusade Tribute Chest , minCnt 1, maxCnt 2 +UPDATE `gameobject_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 195672 AND `Item` = 1 AND `Reference` = 34293 ); +-- 195672 Argent Crusade Tribute Chest , minCnt 1, maxCnt 2 +UPDATE `gameobject_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 195672 AND `Item` = 2 AND `Reference` = 12002 ); +-- 202238 Deathbringer's Cache , minCnt 1, maxCnt 2 +UPDATE `gameobject_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 28058 AND `Item` = 1 AND `Reference` = 34264 ); +-- 194315 Cache of Storms , minCnt 1, maxCnt 2 +UPDATE `gameobject_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 26956 AND `Item` = 2 AND `Reference` = 12033 ); +-- 169243 Chest of The Seven , minCnt 1, maxCnt 2 +UPDATE `gameobject_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 12260 AND `Item` = 12005 AND `Reference` = 12005 ); +-- 185169 Reinforced Fel Iron Chest , minCnt 1, maxCnt 2 +UPDATE `gameobject_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 21764 AND `Item` = 1 AND `Reference` = 35093 ); +-- 195046 Cache of Living Stone , minCnt 1, maxCnt 2 +UPDATE `gameobject_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 27061 AND `Item` = 1 AND `Reference` = 34361 ); +-- 191349 Cache of Eregos , minCnt 1, maxCnt 2 +UPDATE `gameobject_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 24462 AND `Item` = 1 AND `Reference` = 35041 ); +-- 202338 Cache of the Dreamwalker , minCnt 1, maxCnt 2 +UPDATE `gameobject_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 28064 AND `Item` = 1 AND `Reference` = 34265 ); +-- 195666 Argent Crusade Tribute Chest , minCnt 1, maxCnt 4 +UPDATE `gameobject_loot_template` SET `MinCount` = 4 WHERE ( `Entry`= 195666 AND `Item` = 3 AND `Reference` = 12002 ); +-- 185119 Dust Covered Chest , minCnt 1, maxCnt 2 +UPDATE `gameobject_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 20712 AND `Item` = 12001 AND `Reference` = 12001 ); +-- 195632 Champions' Cache , minCnt 1, maxCnt 3 +UPDATE `gameobject_loot_template` SET `MinCount` = 3 WHERE ( `Entry`= 27503 AND `Item` = 1 AND `Reference` = 34325 ); +-- 195632 Champions' Cache , minCnt 1, maxCnt 3 +UPDATE `gameobject_loot_template` SET `MinCount` = 3 WHERE ( `Entry`= 27503 AND `Item` = 2 AND `Reference` = 34332 ); +-- 202212 The Captain's Chest , minCnt 1, maxCnt 2 +-- 201710 The Captain's Chest , minCnt 1, maxCnt 2 +UPDATE `gameobject_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 27985 AND `Item` = 1 AND `Reference` = 35091 ); +-- 179501 Knot Thimblejack's Cache , minCnt 1, maxCnt 2 +UPDATE `gameobject_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 16591 AND `Item` = 12006 AND `Reference` = 12006 ); +-- 185168 Reinforced Fel Iron Chest , minCnt 1, maxCnt 2 +UPDATE `gameobject_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 21762 AND `Item` = 12003 AND `Reference` = 12003 ); +-- 195668 Argent Crusade Tribute Chest , minCnt 1, maxCnt 2 +UPDATE `gameobject_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 195668 AND `Item` = 1 AND `Reference` = 12002 ); +-- 194821 Gift of the Observer , minCnt 1, maxCnt 2 +UPDATE `gameobject_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 27030 AND `Item` = 1 AND `Reference` = 34134 ); +-- 202241 Deathbringer's Cache , minCnt 1, maxCnt 2 +UPDATE `gameobject_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 28088 AND `Item` = 2 AND `Reference` = 34278 ); +-- 201872 Gunship Armory , minCnt 1, maxCnt 2 +-- 202177 Gunship Armory , minCnt 1, maxCnt 2 +UPDATE `gameobject_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 28057 AND `Item` = 1 AND `Reference` = 34263 ); +-- 194327 Freya's Gift , minCnt 1, maxCnt 2 +UPDATE `gameobject_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 27081 AND `Item` = 2 AND `Reference` = 12027 ); +-- 194327 Freya's Gift , minCnt 1, maxCnt 2 +UPDATE `gameobject_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 27081 AND `Item` = 6 AND `Reference` = 34349 ); +-- 202240 Deathbringer's Cache , minCnt 1, maxCnt 2 +UPDATE `gameobject_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 28074 AND `Item` = 2 AND `Reference` = 34278 ); +-- 193426 Four Horsemen Chest , minCnt 1, maxCnt 2 +UPDATE `gameobject_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 25193 AND `Item` = 2 AND `Reference` = 34382 ); +-- 193426 Four Horsemen Chest , minCnt 1, maxCnt 2 +UPDATE `gameobject_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 25193 AND `Item` = 40344 AND `Reference` = 34146 ); +-- 195633 Champions' Cache , minCnt 1, maxCnt 2 +UPDATE `gameobject_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 27335 AND `Item` = 1 AND `Reference` = 34311 ); +-- 195633 Champions' Cache , minCnt 1, maxCnt 2 +UPDATE `gameobject_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 27335 AND `Item` = 2 AND `Reference` = 34318 ); +-- 202336 The Captain's Chest , minCnt 1, maxCnt 2 +-- 202337 The Captain's Chest , minCnt 1, maxCnt 2 +UPDATE `gameobject_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 27993 AND `Item` = 1 AND `Reference` = 35092 ); +-- 190663 Dark Runed Chest , minCnt 1, maxCnt 2 +UPDATE `gameobject_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 24556 AND `Item` = 1 AND `Reference` = 35037 ); +-- 193905 Alexstrasza's Gift , minCnt 1, maxCnt 2 +UPDATE `gameobject_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 26094 AND `Item` = 1 AND `Reference` = 34174 ); +-- 193967 Alexstrasza's Gift , minCnt 1, maxCnt 4 +UPDATE `gameobject_loot_template` SET `MinCount` = 4 WHERE ( `Entry`= 26097 AND `Item` = 1 AND `Reference` = 34175 ); +-- 195670 Argent Crusade Tribute Chest , minCnt 1, maxCnt 4 +UPDATE `gameobject_loot_template` SET `MinCount` = 4 WHERE ( `Entry`= 27517 AND `Item` = 1 AND `Reference` = 34293 ); +-- 195670 Argent Crusade Tribute Chest , minCnt 1, maxCnt 4 +UPDATE `gameobject_loot_template` SET `MinCount` = 4 WHERE ( `Entry`= 27517 AND `Item` = 4 AND `Reference` = 12002 ); +-- 195047 Cache of Living Stone , minCnt 1, maxCnt 3 +UPDATE `gameobject_loot_template` SET `MinCount` = 3 WHERE ( `Entry`= 26929 AND `Item` = 1 AND `Reference` = 34362 ); +-- 194314 Cache of Storms , minCnt 1, maxCnt 2 +UPDATE `gameobject_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 26955 AND `Item` = 2 AND `Reference` = 12033 ); +-- 194329 Freya's Gift , minCnt 1, maxCnt 2 +UPDATE `gameobject_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 26960 AND `Item` = 2 AND `Reference` = 12027 ); +-- 194329 Freya's Gift , minCnt 1, maxCnt 3 +UPDATE `gameobject_loot_template` SET `MinCount` = 3 WHERE ( `Entry`= 26960 AND `Item` = 6 AND `Reference` = 34349 ); +-- 194331 Freya's Gift , minCnt 1, maxCnt 2 +UPDATE `gameobject_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 26962 AND `Item` = 2 AND `Reference` = 12027 ); +-- 194956 Cache of Innovation , minCnt 1, maxCnt 2 +UPDATE `gameobject_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 26963 AND `Item` = 2 AND `Reference` = 12031 ); +-- 194958 Cache of Innovation , minCnt 1, maxCnt 2 +UPDATE `gameobject_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 26967 AND `Item` = 2 AND `Reference` = 12031 ); +-- 194822 Gift of the Observer , minCnt 1, maxCnt 3 +UPDATE `gameobject_loot_template` SET `MinCount` = 3 WHERE ( `Entry`= 26974 AND `Item` = 1 AND `Reference` = 12023 ); +-- 194325 Freya's Gift , minCnt 1, maxCnt 2 +UPDATE `gameobject_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 27079 AND `Item` = 2 AND `Reference` = 12027 ); +-- 194326 Freya's Gift , minCnt 1, maxCnt 2 +UPDATE `gameobject_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 27080 AND `Item` = 4 AND `Reference` = 34349 ); +-- 195635 Champions' Cache , minCnt 1, maxCnt 3 +UPDATE `gameobject_loot_template` SET `MinCount` = 3 WHERE ( `Entry`= 27356 AND `Item` = 1 AND `Reference` = 34339 ); +-- 195635 Champions' Cache , minCnt 1, maxCnt 3 +UPDATE `gameobject_loot_template` SET `MinCount` = 3 WHERE ( `Entry`= 27356 AND `Item` = 2 AND `Reference` = 34346 ); +-- 195631 Champions' Cache , minCnt 1, maxCnt 2 +UPDATE `gameobject_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 27498 AND `Item` = 1 AND `Reference` = 34299 ); +-- 195631 Champions' Cache , minCnt 1, maxCnt 2 +UPDATE `gameobject_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 27498 AND `Item` = 2 AND `Reference` = 34305 ); +-- 195669 Argent Crusade Tribute Chest , minCnt 1, maxCnt 4 +UPDATE `gameobject_loot_template` SET `MinCount` = 4 WHERE ( `Entry`= 27512 AND `Item` = 1 AND `Reference` = 34293 ); +-- 195669 Argent Crusade Tribute Chest , minCnt 1, maxCnt 4 +UPDATE `gameobject_loot_template` SET `MinCount` = 4 WHERE ( `Entry`= 27512 AND `Item` = 6 AND `Reference` = 12002 ); +-- 195671 Argent Crusade Tribute Chest , minCnt 1, maxCnt 2 +UPDATE `gameobject_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 27518 AND `Item` = 1 AND `Reference` = 34293 ); +-- 195671 Argent Crusade Tribute Chest , minCnt 1, maxCnt 2 +UPDATE `gameobject_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 27518 AND `Item` = 4 AND `Reference` = 12002 ); +-- 201873 Gunship Armory , minCnt 1, maxCnt 2 +-- 202178 Gunship Armory , minCnt 1, maxCnt 2 +UPDATE `gameobject_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 28045 AND `Item` = 1 AND `Reference` = 12036 ); +-- 202239 Deathbringer's Cache , minCnt 1, maxCnt 2 +UPDATE `gameobject_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 28046 AND `Item` = 1 AND `Reference` = 34240 ); +-- 201959 Cache of the Dreamwalker , minCnt 1, maxCnt 2 +UPDATE `gameobject_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 28052 AND `Item` = 1 AND `Reference` = 34241 ); +-- 201874 Gunship Armory , minCnt 1, maxCnt 3 +-- 202180 Gunship Armory , minCnt 1, maxCnt 3 +UPDATE `gameobject_loot_template` SET `MinCount` = 3 WHERE ( `Entry`= 28072 AND `Item` = 1 AND `Reference` = 34251 ); +-- 202339 Cache of the Dreamwalker , minCnt 1, maxCnt 3 +UPDATE `gameobject_loot_template` SET `MinCount` = 3 WHERE ( `Entry`= 28082 AND `Item` = 1 AND `Reference` = 34253 ); +-- 201875 Gunship Armory , minCnt 1, maxCnt 3 +-- 202179 Gunship Armory , minCnt 1, maxCnt 3 +UPDATE `gameobject_loot_template` SET `MinCount` = 3 WHERE ( `Entry`= 28090 AND `Item` = 1 AND `Reference` = 34275 ); +-- 202340 Cache of the Dreamwalker , minCnt 1, maxCnt 3 +UPDATE `gameobject_loot_template` SET `MinCount` = 3 WHERE ( `Entry`= 28096 AND `Item` = 1 AND `Reference` = 34277 ); +-- 195665 Argent Crusade Tribute Chest , minCnt 1, maxCnt 4 +UPDATE `gameobject_loot_template` SET `MinCount` = 4 WHERE ( `Entry`= 195665 AND `Item` = 5 AND `Reference` = 12002 ); +-- 195667 Argent Crusade Tribute Chest , minCnt 1, maxCnt 2 +UPDATE `gameobject_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 195667 AND `Item` = 3 AND `Reference` = 12002 ); + +-- item loot + +-- 34846 Black Sack of Gems, minCnt 1, maxCnt 2 +UPDATE `item_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 34846 AND `Item` = 0 AND `Reference` = 10005 ); +-- 34846 Black Sack of Gems, minCnt 1, maxCnt 3 +UPDATE `item_loot_template` SET `MinCount` = 3 WHERE ( `Entry`= 34846 AND `Item` = 10005 AND `Reference` = 10005 ); +-- 20469 Decoded True Believer Clippings, minCnt 1, maxCnt 2 +UPDATE `item_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 20469 AND `Item` = 1 AND `Reference` = 10025 ); +-- 46007 Bag of Fishing Treasures, minCnt 1, maxCnt 2 +UPDATE `item_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 46007 AND `Item` = 1 AND `Reference` = 10016 ); +-- 46007 Bag of Fishing Treasures, minCnt 1, maxCnt 2 +UPDATE `item_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 46007 AND `Item` = 2 AND `Reference` = 10017 ); +-- 46007 Bag of Fishing Treasures, minCnt 1, maxCnt 2 +UPDATE `item_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 46007 AND `Item` = 3 AND `Reference` = 10018 ); +-- 49909 Box of Chocolates, minCnt 1, maxCnt 6 +UPDATE `item_loot_template` SET `MinCount` = 6 WHERE ( `Entry`= 49909 AND `Item` = 1 AND `Reference` = 50012 ); +-- 44943 Icy Prism, minCnt 1, maxCnt 2 +UPDATE `item_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 44943 AND `Item` = 2 AND `Reference` = 45010 ); +-- 30320 Bundle of Nether Spikes, minCnt 1, maxCnt 6 +UPDATE `item_loot_template` SET `MinCount` = 6 WHERE ( `Entry`= 30320 AND `Item` = 10007 AND `Reference` = 10007 ); +-- 33844 Barrel of Fish, minCnt 1, maxCnt 2 +UPDATE `item_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 33844 AND `Item` = 10003 AND `Reference` = 10003 ); +-- 33857 Crate of Meat, minCnt 1, maxCnt 2 +UPDATE `item_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 33857 AND `Item` = 10004 AND `Reference` = 10004 ); +-- 45986 Tiny Titanium Lockbox, minCnt 1, maxCnt 2 +UPDATE `item_loot_template` SET `MinCount` = 2 WHERE ( `Entry`= 45986 AND `Item` = 1 AND `Reference` = 10012 ); diff --git a/data/sql/updates/db_world/2024_11_30_02.sql b/data/sql/updates/db_world/2024_11_30_02.sql new file mode 100644 index 000000000..69e2e0a69 --- /dev/null +++ b/data/sql/updates/db_world/2024_11_30_02.sql @@ -0,0 +1,1140 @@ +-- DB update 2024_11_30_01 -> 2024_11_30_02 +-- Update gameobject 'Lunar Festival' with sniffed values +-- updated spawns +DELETE FROM `gameobject` WHERE (`id` IN (180878, 180769, 180770, 180778, 180767, 180761, 180775, 180768, 180762, 180759, 180760, 180766, 180757, 180774, 180773, 180765, 180758, 180879, 180880, 180881, 180882, 180883, 180777, 180888)) +AND (`guid` IN (28846, 28847, 28849, 28850, 28851, 28852, 28853, 28854, 28855, 28856, 28857, 28858, 28859, 28860, 28861, 28862, 28863, 28864, 28867, 28868, 28869, 28870, 28871, 28873, 28874, 28875, 28877, 28878, 28879, 28880, 28881, 28882, 28884, 28887, 28888, 28889, 28890, 28891, 28893, 28894, 28895, 28896, 28897, 28898, 28900, 28901, 28902, 28903, 28904, 28906, 28907, 28908, 28909, 28910, 28911, 28912, 28913, 28916, 28917, 28918, 28919, 28920, 28921, 28923, 28927, 28928, 28929, 28930, 28932, 28933, 28937, 28938, 28939, 28940, 28941, 28942, 28943, 28944, 28947, 28949, 28950, 28952, 28953, 28955, 28956, 28957, 28959, 28960, 28962, 28963, 28964, 28965, 28966, 28967, 28968, 28970, 28971, 28973, 28975, 28977, 28978, 28979, 28980, 28981, 28982, 28983, 28984, 28985, 28986, 28988, 28989, 28990, 28992, 28993, 28994, 28995, 28996, 28997, 28999, 29000, 29001, 29002, 29003, 29005, 29006, 29007, 29009, 29010, 29011, 29014, 29015, 29018, 29020, 29022, 29023, 29024, 29025, 29028, 29030, 29032, 29033, 29036, 29037, 29038, 29039, 29040, 29041, 29042, 29044, 29045, 29046, 29047, 29048, 29049, 29050, 29051, 29052, 29053, 29054, 29055, 29056, 29057, 29059, 29060, 29062, 29063, 29065, 29067, 29068, 29069, 29070, 29071, 29072, 29073, 29074, 29076, 29077, 29078, 29081, 29082, 29083, 29084, 29085, 29087, 29088, 29089, 29090, 29091, 29092, 29094, 29095, 29097, 29098, 29099, 29100, 29101, 29102, 29103, 29104, 29105, 29106, 29107, 29108, 29110, 29111, 29112, 29113, 29424, 29425, 29426, 29427, 29430, 29431, 29433, 29434, 29436, 29437, 29439, 29442, 29443, 29444, 29445, 29446, 29447, 29448, 29450, 29451, 29452, 29454, 29455, 29456, 29457, 29458, 29459, 29460, 29461, 29462, 29463, 29464, 29465, 29467, 29468, 29469, 29470, 29471, 29472, 29473, 29474, 29475, 29476, 29477, 29479, 29480, 29482, 29483, 29486, 29487, 29488, 29489, 29492, 29493, 29495, 29496, 29497, 29499, 29500, 29501, 29502, 29503, 29504, 29505, 29506, 29507, 29508, 29509, 29511, 29512, 29515, 29516, 29517, 29518, 29519, 29520, 29522, 29523, 29524, 29525, 29526, 30356, 30802, 30803, 30806, 30860, 30861, 30862, 30863, 30864, 30868, 30869, 31144, 31146, 31147, 31148, 31149, 31150, 31151, 31152, 31153, 31154, 31156, 31157, 31158, 31159, 31160, 31163, 31164, 31165, 31167, 31168, 31169, 31171, 31172, 31174, 31175, 31177, 31178, 31180, 31181, 31182, 31184, 31185, 31187, 31188, 31189, 31190, 31191, 31192, 31193, 31194, 31195, 31196, 31198, 31199, 31202, 31250, 31251, 31253, 31255, 31256, 31260, 31262, 31263, 31264, 31265, 31266, 31268, 31270, 31272, 31273, 31274, 31275, 31276, 31277, 31278, 31279, 31281, 31282, 31284, 31286, 31289, 31290, 31291, 31292, 31293, 31294, 31296, 31297, 31298, 31299, 33158, 33159, 33161, 33162, 33163, 33164, 33165, 43232, 43236, 43237, 43238, 43239, 43240, 43241, 43242, 43243, 43244, 43245, 43246, 43248, 43249, 43250, 43251, 43252, 43253, 43254, 43255, 43256, 43259, 43260, 43261, 43262, 43263, 43264, 43265, 43266, 43267, 43268, 43270, 43272, 43273, 43274, 43275, 43277, 43278, 43279, 43280, 43281, 43283, 43284, 43285, 43286, 43287, 43288, 43289, 43292, 43293, 43294, 43295, 43296, 43297, 43298, 43299, 43300, 43303, 43304, 43305, 43306, 43308, 43309, 43310, 43311, 43312, 43313, 43314, 43315, 43317, 43318, 43320, 43321, 43323, 43324, 43325, 43327, 43328, 43329, 43330, 43331, 43332, 43334, 43335, 43337, 43338, 43339, 43340, 43341, 43342, 43343, 43345, 43347, 43348, 43349, 43350, 43352, 43355, 43356, 43357, 43358, 43359, 43360, 43361, 43363, 43364, 43365, 43366, 43367, 43368, 43371, 43372, 43374, 43375, 43376, 43377, 43378, 43379, 43380, 43383, 43384, 43385, 43386, 43387, 43388, 43389, 43390, 43391, 43392, 43393, 43395, 43396, 43397, 43399, 43400, 43401, 43402, 43403, 43404, 43405, 43406, 43407, 43408, 43409, 43410, 43411, 43414, 43415, 43419, 43421, 43422, 43423, 43424, 43425, 43426, 43427, 43428, 43429, 43430, 43431, 43433, 43435, 43436, 43438, 43439, 43440, 43441, 43442, 43443, 43444, 43445, 43446, 43447, 43448, 43452, 43453, 7235, 79584, 79585, 79586, 79587, 79588, 79589, 79590, 79591, 79592, 79593, 79600, 79601, 79602, 79603, 79604, 79605, 79606, 79744, 79745, 79748, 79753, 79754, 79755, 79756, 79757, 79767, 79768, 79769, 79770, 79771, 79772, 79773, 79774, 79775, 79776, 79777, 79778, 79779, 79780, 79781, 79782, 79783, 79784, 79785, 79786, 79787, 79788, 79789, 79790, 79791, 79792, 79793, 79794, 79795, 79796, 79797, 79798, 79799, 79800, 79801, 79802, 79803, 79804, 79805, 79806, 79807, 79808, 79809, 79810, 79811, 79812, 79813, 79814, 79815, 79816, 79817, 79826, 79827, 79828, 79829, 79830, 79831, 79832, 79833, 79834, 79835, 79836, 79837, 79838, 79839, 79840, 79841, 79842, 79843, 79844, 79845, 79846, 79847, 79848, 79849, 82948, 82949, 82950, 82951, 82952, 82953, 82954, 82955, 82958, 82959, 82960, 82961, 82962, 82963, 82964, 82965, 82966, 82967, 82968, 82969, 82970, 82971, 82972, 82973, 82974, 82975, 82976, 82977, 82978, 82985, 82994, 82995, 82996, 82997, 82998, 82999, 83000, 83001, 83002, 83003, 83004, 83005, 83006, 83007, 83008, 83009)); +INSERT INTO `gameobject` (`guid`, `id`, `map`, `zoneId`, `areaId`, `spawnMask`, `phaseMask`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecs`, `animprogress`, `state`, `ScriptName`, `VerifiedBuild`, `Comment`) VALUES +(28846, 180878, 1, 0, 0, 1, 1, 1969.1961669921875, -4259.796875, 32.37454986572265625, 0.104719325900077819, 0, 0, 0.052335739135742187, 0.998629570007324218, 120, 255, 1, "", 47720, NULL), +(28847, 180769, 1, 0, 0, 1, 1, 1670.4896240234375, -4477.44775390625, 32.53198623657226562, 4.101525306701660156, 0, 0, -0.88701057434082031, 0.461749136447906494, 120, 255, 1, "", 47720, NULL), +(28849, 180770, 1, 0, 0, 1, 1, 1703.54345703125, -4464.34375, 32.4458465576171875, 3.071766138076782226, 0, 0, 0.999390602111816406, 0.034906134009361267, 120, 255, 1, "", 47720, NULL), +(28850, 180769, 1, 0, 0, 1, 1, 1679.6353759765625, -4411.1005859375, 36.17628860473632812, 0.087265998125076293, 0, 0, 0.043619155883789062, 0.999048233032226562, 120, 255, 1, "", 47720, NULL), +(28851, 180770, 1, 0, 0, 1, 1, 1609.4322509765625, -4460.12158203125, 42.17335891723632812, 1.064649581909179687, 0, 0, 0.507537841796875, 0.861629426479339599, 120, 255, 1, "", 47720, NULL), +(28852, 180778, 1, 0, 0, 1, 1, 1942.6666259765625, -4280.4462890625, 29.56145286560058593, 3.490667104721069335, 0, 0, -0.98480701446533203, 0.173652306199073791, 120, 255, 1, "", 47720, NULL), +(28853, 180778, 1, 0, 0, 1, 1, 1958.8489990234375, -4268.31591796875, 31.62879180908203125, 3.804818391799926757, 0, 0, -0.94551849365234375, 0.325568377971649169, 120, 255, 1, "", 47720, NULL), +(28854, 180770, 1, 0, 0, 1, 1, 1694.3992919921875, -4476.283203125, 32.54077529907226562, 2.007128477096557617, 0, 0, 0.84339141845703125, 0.537299633026123046, 120, 255, 1, "", 47720, NULL), +(28855, 180767, 1, 0, 0, 1, 1, -1098.1510009765625, -58.2350273132324218, 158.3143463134765625, 2.600535154342651367, 0, 0, 0.963629722595214843, 0.26724100112915039, 120, 255, 1, "", 47720, NULL), +(28856, 180761, 1, 0, 0, 1, 1, -1222.7100830078125, -70.9461822509765625, 165.4095916748046875, 6.230826377868652343, 0, 0, -0.02617645263671875, 0.999657332897186279, 120, 255, 1, "", 47720, NULL), +(28857, 180775, 1, 0, 0, 1, 1, -1181.2864990234375, -91.986114501953125, 165.95849609375, 2.530723094940185546, 0, 0, 0.953716278076171875, 0.300707906484603881, 120, 255, 1, "", 47720, NULL), +(28858, 180768, 1, 0, 0, 1, 1, -1022.18707275390625, -231.043777465820312, 160.1183929443359375, 3.543023586273193359, 0, 0, -0.97992420196533203, 0.199370384216308593, 120, 255, 1, "", 47720, NULL), +(28859, 180778, 1, 0, 0, 1, 1, -1012.5609130859375, -11.1563587188720703, 60.61656951904296875, 0.645771682262420654, 0, 0, 0.317304611206054687, 0.948323667049407958, 120, 255, 1, "", 47720, NULL), +(28860, 180767, 1, 0, 0, 1, 1, -1244.12109375, -94.1285781860351562, 169.7642364501953125, 1.658061861991882324, 0, 0, 0.737277030944824218, 0.67559051513671875, 120, 255, 1, "", 47720, NULL), +(28861, 180761, 1, 0, 0, 1, 1, -1256.6197509765625, 39.43918228149414062, 132.648651123046875, 1.797688722610473632, 0, 0, 0.7826080322265625, 0.622514784336090087, 120, 255, 1, "", 47720, NULL), +(28862, 180769, 0, 0, 0, 1, 1, 1586.1744384765625, 201.4016876220703125, -36.3775291442871093, 4.398232460021972656, 0, 0, -0.80901622772216796, 0.587786316871643066, 120, 255, 1, "", 47720, NULL), +(28863, 180878, 0, 0, 0, 1, 1, 1645.920166015625, 234.4384307861328125, 62.59157180786132812, 2.164205789566040039, 0, 0, 0.882946968078613281, 0.469472706317901611, 120, 255, 1, "", 47720, NULL), +(28864, 180769, 0, 0, 0, 1, 1, 1629.632568359375, 261.488616943359375, -36.6427192687988281, 0.715584874153137207, 0, 0, 0.350207328796386718, 0.936672210693359375, 120, 255, 1, "", 47720, NULL), +(28867, 180769, 0, 0, 0, 1, 1, 1555.6927490234375, 248.0243072509765625, -36.4547843933105468, 2.862335443496704101, 0, 0, 0.990267753601074218, 0.139175355434417724, 120, 255, 1, "", 47720, NULL), +(28868, 180769, 0, 0, 0, 1, 1, 1561.97607421875, 219.1158294677734375, -36.4872055053710937, 0.628316879272460937, 0, 0, 0.309016227722167968, 0.95105677843093872, 120, 255, 1, "", 47720, NULL), +(28869, 180769, 1, 0, 0, 1, 1, 1578.60595703125, -4462.95654296875, 34.89577865600585937, 5.323255538940429687, 0, 0, -0.46174812316894531, 0.887011110782623291, 120, 255, 1, "", 47720, NULL), +(28870, 180775, 1, 0, 0, 1, 1, 1382.955078125, -4355.70556640625, 38.02347183227539062, 3.281238555908203125, 0, 0, -0.99756336212158203, 0.069766148924827575, 120, 255, 1, "", 47720, NULL), +(28871, 180770, 1, 0, 0, 1, 1, 1618.8021240234375, -4356.14404296875, 22.47444343566894531, 5.602506637573242187, 0, 0, -0.33380699157714843, 0.942641437053680419, 120, 255, 1, "", 47720, NULL), +(28873, 180769, 1, 0, 0, 1, 1, 1676.1944580078125, -4481.53466796875, 32.77462387084960937, 1.064649581909179687, 0, 0, 0.507537841796875, 0.861629426479339599, 120, 255, 1, "", 47720, NULL), +(28874, 180770, 1, 0, 0, 1, 1, 1606.4166259765625, -4460.80029296875, 33.94220352172851562, 1.012289404869079589, 0, 0, 0.484808921813964843, 0.87462007999420166, 120, 255, 1, "", 47720, NULL), +(28875, 180768, 1, 0, 0, 1, 1, 1964.095458984375, -4275.892578125, 30.99634742736816406, 0.471238493919372558, 0, 0, 0.233445167541503906, 0.972369968891143798, 120, 255, 1, "", 47720, NULL), +(28877, 180770, 1, 0, 0, 1, 1, 1614.3072509765625, -4361.892578125, 22.31605720520019531, 5.619962215423583984, 0, 0, -0.32556724548339843, 0.945518851280212402, 120, 255, 1, "", 47720, NULL), +(28878, 180768, 1, 0, 0, 1, 1, -1047.07421875, -227.933059692382812, 159.78472900390625, 4.380776405334472656, 0, 0, -0.81411552429199218, 0.580702960491180419, 120, 255, 1, "", 47720, NULL), +(28879, 180775, 1, 0, 0, 1, 1, -1235.890380859375, -90.114044189453125, 165.7311553955078125, 0.488691210746765136, 0, 0, 0.241921424865722656, 0.970295846462249755, 120, 255, 1, "", 47720, NULL), +(28880, 180767, 1, 0, 0, 1, 1, -1285.031005859375, 45.88433074951171875, 135.8875579833984375, 6.14356088638305664, 0, 0, -0.06975555419921875, 0.997564136981964111, 120, 255, 1, "", 47720, NULL), +(28881, 180767, 1, 0, 0, 1, 1, -1280.95751953125, -110.514381408691406, 178.7292022705078125, 5.89921426773071289, 0, 0, -0.19080829620361328, 0.981627285480499267, 120, 255, 1, "", 47720, NULL), +(28882, 180778, 1, 0, 0, 1, 1, -1328.2874755859375, 173.114288330078125, 60.92924118041992187, 3.22885894775390625, 0, 0, -0.99904823303222656, 0.043619260191917419, 120, 255, 1, "", 47720, NULL), +(28884, 180878, 1, 0, 0, 1, 1, -1042.9544677734375, -218.213699340820312, 160.2321319580078125, 0.226892471313476562, 0, 0, 0.113203048706054687, 0.993571877479553222, 120, 255, 1, "", 47720, NULL), +(28887, 180769, 0, 0, 0, 1, 1, 1572.1690673828125, 208.06549072265625, -36.5376052856445312, 0.977383077144622802, 0, 0, 0.469470977783203125, 0.882947921752929687, 120, 255, 1, "", 47720, NULL), +(28888, 180769, 0, 0, 0, 1, 1, 1556.3992919921875, 230.3715362548828125, -36.4690437316894531, 3.403396368026733398, 0, 0, -0.99144458770751953, 0.130528271198272705, 120, 255, 1, "", 47720, NULL), +(28889, 180878, 0, 0, 0, 1, 1, 1648.1024169921875, 232.4895782470703125, 62.59157180786132812, 4.502951622009277343, 0, 0, -0.7771453857421875, 0.629321098327636718, 120, 255, 1, "", 47720, NULL), +(28890, 180768, 0, 0, 0, 1, 1, 1637.78466796875, 245.4951171875, 62.59157180786132812, 3.822272777557373046, 0, 0, -0.94264125823974609, 0.333807557821273803, 120, 255, 1, "", 47720, NULL), +(28891, 180769, 0, 0, 0, 1, 1, 1616.4617919921875, 274.220489501953125, -36.5835762023925781, 0.994837164878845214, 0, 0, 0.477158546447753906, 0.878817260265350341, 120, 255, 1, "", 47720, NULL), +(28893, 180769, 0, 0, 0, 1, 1, 1575.2529296875, 275.016754150390625, -36.57464599609375, 5.375615119934082031, 0, 0, -0.4383707046508789, 0.898794233798980712, 120, 255, 1, "", 47720, NULL), +(28894, 180878, 0, 0, 0, 1, 1, 1646.796630859375, 232.9846954345703125, 62.59157180786132812, 4.206246376037597656, 0, 0, -0.86162853240966796, 0.50753939151763916, 120, 255, 1, "", 47720, NULL), +(28895, 180762, 1, 0, 0, 1, 1, 1970.123291015625, -4749.98291015625, 61.02700424194335937, 1.937312245368957519, 0, 0, 0.824125289916992187, 0.566407561302185058, 120, 255, 1, "", 47720, NULL), +(28896, 180759, 1, 0, 0, 1, 1, 1628.77783203125, -4432.283203125, 20.24281883239746093, 2.495818138122558593, 0, 0, 0.948323249816894531, 0.317305892705917358, 120, 255, 1, "", 47720, NULL), +(28897, 180770, 1, 0, 0, 1, 1, 1652.2864990234375, -4440.3505859375, 25.30954933166503906, 6.248279094696044921, 0, 0, -0.01745223999023437, 0.999847710132598876, 120, 255, 1, "", 47720, NULL), +(28898, 180778, 1, 0, 0, 1, 1, 1976.4444580078125, -4264.705078125, 32.35150527954101562, 0.645771682262420654, 0, 0, 0.317304611206054687, 0.948323667049407958, 120, 255, 1, "", 47720, NULL), +(28900, 180770, 1, 0, 0, 1, 1, 1635.7135009765625, -4428.51025390625, 25.70723915100097656, 4.468043327331542968, 0, 0, -0.7880105972290039, 0.615661680698394775, 120, 255, 1, "", 47720, NULL), +(28901, 180769, 1, 0, 0, 1, 1, 1622.5572509765625, -4438.32275390625, 25.86449813842773437, 5.654868602752685546, 0, 0, -0.30901622772216796, 0.95105677843093872, 120, 255, 1, "", 47720, NULL), +(28902, 180778, 1, 0, 0, 1, 1, -1330.80126953125, 184.1837615966796875, 60.79775619506835937, 0.506144583225250244, 0, 0, 0.250379562377929687, 0.968147754669189453, 120, 255, 1, "", 47720, NULL), +(28903, 180767, 1, 0, 0, 1, 1, -1121.5816650390625, 72.31694793701171875, 150.1532745361328125, 2.059488296508789062, 0, 0, 0.857167243957519531, 0.515038192272186279, 120, 255, 1, "", 47720, NULL), +(28904, 180878, 1, 0, 0, 1, 1, -1043.6807861328125, -217.30712890625, 160.2414093017578125, 0.24434557557106018, 0, 0, 0.121869087219238281, 0.9925462007522583, 120, 255, 1, "", 47720, NULL), +(28906, 180878, 1, 0, 0, 1, 1, -1042.0592041015625, -218.222549438476562, 159.8043365478515625, 0.209439441561698913, 0, 0, 0.104528427124023437, 0.994521915912628173, 120, 255, 1, "", 47720, NULL), +(28907, 180768, 0, 0, 0, 1, 1, 1641.107177734375, 232.87164306640625, 62.59157180786132812, 6.14356088638305664, 0, 0, -0.06975555419921875, 0.997564136981964111, 120, 255, 1, "", 47720, NULL), +(28908, 180760, 0, 0, 0, 1, 1, 1595.3975830078125, 201.921875, -50.7758598327636718, 1.570795774459838867, 0, 0, 0.707106590270996093, 0.707106947898864746, 120, 255, 1, "", 47720, NULL), +(28909, 180769, 0, 0, 0, 1, 1, 1648.8077392578125, 221.1050872802734375, -36.6522560119628906, 0.645771682262420654, 0, 0, 0.317304611206054687, 0.948323667049407958, 120, 255, 1, "", 47720, NULL), +(28910, 180769, 0, 0, 0, 1, 1, 1605.5521240234375, 279.723968505859375, -36.4851303100585937, 1.308995485305786132, 0, 0, 0.608760833740234375, 0.793353796005249023, 120, 255, 1, "", 47720, NULL), +(28911, 180769, 0, 0, 0, 1, 1, 1601.8555908203125, 200.0330352783203125, -36.5113410949707031, 1.762782454490661621, 0, 0, 0.771624565124511718, 0.636078238487243652, 120, 255, 1, "", 47720, NULL), +(28912, 180769, 0, 0, 0, 1, 1, 1635.6597900390625, 247.545135498046875, -36.351165771484375, 0.261798173189163208, 0, 0, 0.130525588989257812, 0.991444945335388183, 120, 255, 1, "", 47720, NULL), +(28913, 180769, 0, 0, 0, 1, 1, 1562.30078125, 262.051666259765625, -36.4425430297851562, 2.530723094940185546, 0, 0, 0.953716278076171875, 0.300707906484603881, 120, 255, 1, "", 47720, NULL), +(28916, 180770, 1, 0, 0, 1, 1, 1658.29345703125, -4451.77978515625, 32.54044723510742187, 6.14356088638305664, 0, 0, -0.06975555419921875, 0.997564136981964111, 120, 255, 1, "", 47720, NULL), +(28917, 180878, 1, 0, 0, 1, 1, 1968.532958984375, -4259.3369140625, 32.30084609985351562, 4.241150379180908203, 0, 0, -0.85264015197753906, 0.522498607635498046, 120, 255, 1, "", 47720, NULL), +(28918, 180769, 1, 0, 0, 1, 1, 1586.9010009765625, -4453.54541015625, 42.4123077392578125, 5.35816192626953125, 0, 0, -0.446197509765625, 0.894934535026550292, 120, 255, 1, "", 47720, NULL), +(28919, 180878, 1, 0, 0, 1, 1, 1968.9114990234375, -4257.11474609375, 32.2914581298828125, 6.003933906555175781, 0, 0, -0.13917255401611328, 0.990268170833587646, 120, 255, 1, "", 47720, NULL), +(28920, 180770, 1, 0, 0, 1, 1, 1687.55908203125, -4398.57275390625, 36.28493118286132812, 5.270895957946777343, 0, 0, -0.48480892181396484, 0.87462007999420166, 120, 255, 1, "", 47720, NULL), +(28921, 180770, 1, 0, 0, 1, 1, 1669.435791015625, -4428.91650390625, 31.84844970703125, 5.166176319122314453, 0, 0, -0.52991867065429687, 0.84804844856262207, 120, 255, 1, "", 47720, NULL), +(28923, 180770, 1, 0, 0, 1, 1, 1587.4617919921875, -4456.27978515625, 34.42712783813476562, 5.375615119934082031, 0, 0, -0.4383707046508789, 0.898794233798980712, 120, 255, 1, "", 47720, NULL), +(28927, 180767, 1, 0, 0, 1, 1, -1141.6683349609375, -122.524360656738281, 178.1985626220703125, 5.323255538940429687, 0, 0, -0.46174812316894531, 0.887011110782623291, 120, 255, 1, "", 47720, NULL), +(28928, 180878, 1, 0, 0, 1, 1, -1044.244140625, -216.62115478515625, 159.335205078125, 5.166176319122314453, 0, 0, -0.52991867065429687, 0.84804844856262207, 120, 255, 1, "", 47720, NULL), +(28929, 180878, 1, 0, 0, 1, 1, -1042.4605712890625, -218.979110717773437, 159.8175048828125, 5.253442287445068359, 0, 0, -0.49242305755615234, 0.870355963706970214, 120, 255, 1, "", 47720, NULL), +(28930, 180775, 1, 0, 0, 1, 1, -1206.3489990234375, 133.65972900390625, 138.1436614990234375, 3.822272777557373046, 0, 0, -0.94264125823974609, 0.333807557821273803, 120, 255, 1, "", 47720, NULL), +(28932, 180878, 0, 0, 0, 1, 1, 1648.579833984375, 234.881561279296875, 62.59157180786132812, 2.914689540863037109, 0, 0, 0.993571281433105468, 0.113208353519439697, 120, 255, 1, "", 47720, NULL), +(28933, 180878, 0, 0, 0, 1, 1, 1646.2762451171875, 233.5351104736328125, 62.59157180786132812, 2.897245407104492187, 0, 0, 0.99254608154296875, 0.121869951486587524, 120, 255, 1, "", 47720, NULL), +(28937, 180768, 0, 0, 0, 1, 1, 1635.3607177734375, 237.19580078125, 62.59157180786132812, 5.096362113952636718, 0, 0, -0.55919265747070312, 0.829037725925445556, 120, 255, 1, "", 47720, NULL), +(28938, 180770, 1, 0, 0, 1, 1, 1662.87158203125, -4432.1318359375, 31.90442848205566406, 5.131268978118896484, 0, 0, -0.54463863372802734, 0.838670849800109863, 120, 255, 1, "", 47720, NULL), +(28939, 180769, 1, 0, 0, 1, 1, 1684.6927490234375, -4480.89599609375, 32.70841598510742187, 5.078907966613769531, 0, 0, -0.56640625, 0.824126183986663818, 120, 255, 1, "", 47720, NULL), +(28940, 180770, 1, 0, 0, 1, 1, 1610.0035400390625, -4367.546875, 22.52040672302246093, 2.530723094940185546, 0, 0, 0.953716278076171875, 0.300707906484603881, 120, 255, 1, "", 47720, NULL), +(28941, 180878, 1, 0, 0, 1, 1, 1969.6302490234375, -4256.9306640625, 32.35718917846679687, 4.014260292053222656, 0, 0, -0.90630722045898437, 0.422619491815567016, 120, 255, 1, "", 47720, NULL), +(28942, 180770, 1, 0, 0, 1, 1, 1589.60595703125, -4451.71533203125, 42.48970413208007812, 5.393068790435791015, 0, 0, -0.43051052093505859, 0.902585566043853759, 120, 255, 1, "", 47720, NULL), +(28943, 180775, 1, 0, 0, 1, 1, 1733.1441650390625, -4408.24658203125, 48.66936492919921875, 2.181660413742065429, 0, 0, 0.887010574340820312, 0.461749136447906494, 120, 255, 1, "", 52237, NULL), +(28944, 180769, 1, 0, 0, 1, 1, 1599.9566650390625, -4456.82666015625, 34.08385086059570312, 4.188792228698730468, 0, 0, -0.86602497100830078, 0.50000077486038208, 120, 255, 1, "", 47720, NULL), +(28947, 180768, 1, 0, 0, 1, 1, -1041.4603271484375, -230.345535278320312, 160.022613525390625, 0.488691210746765136, 0, 0, 0.241921424865722656, 0.970295846462249755, 120, 255, 1, "", 47720, NULL), +(28949, 180768, 1, 0, 0, 1, 1, -1041.9439697265625, -217.551483154296875, 159.7678070068359375, 4.293513298034667968, 0, 0, -0.8386697769165039, 0.544640243053436279, 120, 255, 1, "", 47720, NULL), +(28950, 180878, 0, 0, 0, 1, 1, 1649.087890625, 233.5462799072265625, 62.59157180786132812, 3.420850038528442382, 0, 0, -0.99026775360107421, 0.139175355434417724, 120, 255, 1, "", 47720, NULL), +(28952, 180769, 0, 0, 0, 1, 1, 1589.67236328125, 280.358245849609375, -36.5544929504394531, 1.745326757431030273, 0, 0, 0.766043663024902343, 0.642788589000701904, 120, 255, 1, "", 47720, NULL), +(28953, 180769, 0, 0, 0, 1, 1, 1586.84033203125, 279.833343505859375, -36.3963851928710937, 1.832594871520996093, 0, 0, 0.793353080749511718, 0.608761727809906005, 120, 255, 1, "", 47720, NULL), +(28955, 180878, 0, 0, 0, 1, 1, 1648.6202392578125, 233.0487213134765625, 62.59157180786132812, 0.366517573595046997, 0, 0, 0.182234764099121093, 0.98325502872467041, 120, 255, 1, "", 47720, NULL), +(28956, 180769, 0, 0, 0, 1, 1, 1604.7039794921875, 200.7293243408203125, -36.4510993957519531, 4.956737518310546875, 0, 0, -0.61566066741943359, 0.788011372089385986, 120, 255, 1, "", 47720, NULL), +(28957, 180770, 1, 0, 0, 1, 1, 1634.123291015625, -4393.96875, 22.60219764709472656, 1.466075778007507324, 0, 0, 0.669130325317382812, 0.74314504861831665, 120, 255, 1, "", 47720, NULL), +(28959, 180769, 1, 0, 0, 1, 1, 1614.548583984375, -4387.671875, 22.58172988891601562, 0.488691210746765136, 0, 0, 0.241921424865722656, 0.970295846462249755, 120, 255, 1, "", 47720, NULL), +(28960, 180770, 1, 0, 0, 1, 1, 1620.314208984375, -4441.298828125, 26.00938224792480468, 5.585053920745849609, 0, 0, -0.34202003479003906, 0.939692676067352294, 120, 255, 1, "", 47720, NULL), +(28962, 180767, 1, 0, 0, 1, 1, -1173.8033447265625, -97.9679336547851562, 169.19488525390625, 3.508116960525512695, 0, 0, -0.98325443267822265, 0.182238012552261352, 120, 255, 1, "", 47720, NULL), +(28963, 180778, 1, 0, 0, 1, 1, -1045.6636962890625, -227.56494140625, 159.955780029296875, 5.794494152069091796, 0, 0, -0.24192142486572265, 0.970295846462249755, 120, 255, 1, "", 47720, NULL), +(28964, 180778, 1, 0, 0, 1, 1, -1276.5948486328125, 209.697479248046875, 59.27470016479492187, 0.715584874153137207, 0, 0, 0.350207328796386718, 0.936672210693359375, 120, 255, 1, "", 47720, NULL), +(28965, 180775, 1, 0, 0, 1, 1, -1276.954833984375, 50.09548568725585937, 132.455841064453125, 0.506144583225250244, 0, 0, 0.250379562377929687, 0.968147754669189453, 120, 255, 1, "", 52237, NULL), +(28966, 180878, 0, 0, 0, 1, 1, 1647.3203125, 232.5182342529296875, 62.59157180786132812, 5.515241622924804687, 0, 0, -0.37460613250732421, 0.927184045314788818, 120, 255, 1, "", 47720, NULL), +(28967, 180878, 0, 0, 0, 1, 1, 1649.08642578125, 234.271484375, 62.59157180786132812, 4.572763919830322265, 0, 0, -0.75470924377441406, 0.656059443950653076, 120, 255, 1, "", 47720, NULL), +(28968, 180769, 0, 0, 0, 1, 1, 1648.8599853515625, 215.153594970703125, -36.4556465148925781, 5.637413978576660156, 0, 0, -0.31730461120605468, 0.948323667049407958, 120, 255, 1, "", 47720, NULL), +(28970, 180769, 0, 0, 0, 1, 1, 1619.4107666015625, 272.49993896484375, -36.5721626281738281, 1.047197580337524414, 0, 0, 0.5, 0.866025388240814208, 120, 255, 1, "", 47720, NULL), +(28971, 180769, 0, 0, 0, 1, 1, 1635.752685546875, 232.6225128173828125, -36.5015144348144531, 5.969027042388916015, 0, 0, -0.1564340591430664, 0.987688362598419189, 120, 255, 1, "", 47720, NULL), +(28973, 180769, 0, 0, 0, 1, 1, 1572.96533203125, 273.088531494140625, -36.6699409484863281, 2.234017848968505859, 0, 0, 0.898793220520019531, 0.438372820615768432, 120, 255, 1, "", 47720, NULL), +(28975, 180770, 0, 0, 0, 1, 1, 1588.4791259765625, 240.0069427490234375, -48.0515327453613281, 6.230826377868652343, 0, 0, -0.02617645263671875, 0.999657332897186279, 120, 255, 1, "", 47720, NULL), +(28977, 180778, 0, 0, 0, 1, 1, 1646.557373046875, 244.0512237548828125, 62.59157180786132812, 0.087265998125076293, 0, 0, 0.043619155883789062, 0.999048233032226562, 120, 255, 1, "", 47720, NULL), +(28978, 180769, 0, 0, 0, 1, 1, 1574.7318115234375, 206.3705596923828125, -36.4860000610351562, 4.101525306701660156, 0, 0, -0.88701057434082031, 0.461749136447906494, 120, 255, 1, "", 47720, NULL), +(28979, 180769, 0, 0, 0, 1, 1, 1602.6441650390625, 280.404510498046875, -36.4615211486816406, 1.378809213638305664, 0, 0, 0.636077880859375, 0.771624863147735595, 120, 255, 1, "", 47720, NULL), +(28980, 180768, 1, 0, 0, 1, 1, 1993.423583984375, -4258.82666015625, 32.08855438232421875, 6.12610626220703125, 0, 0, -0.07845878601074218, 0.996917366981506347, 120, 255, 1, "", 47720, NULL), +(28981, 180770, 1, 0, 0, 1, 1, 1608.8836669921875, -4374.46337890625, 22.48315238952636718, 0.401424884796142578, 0, 0, 0.199367523193359375, 0.979924798011779785, 120, 255, 1, "", 47720, NULL), +(28982, 180769, 1, 0, 0, 1, 1, 1681.7257080078125, -4425.57666015625, 36.10413360595703125, 0.24434557557106018, 0, 0, 0.121869087219238281, 0.9925462007522583, 120, 255, 1, "", 47720, NULL), +(28983, 180770, 1, 0, 0, 1, 1, 1682.9444580078125, -4431.125, 32.56739044189453125, 0.907570242881774902, 0, 0, 0.438370704650878906, 0.898794233798980712, 120, 255, 1, "", 47720, NULL), +(28984, 180762, 1, 0, 0, 1, 1, 1937.875, -4251.4130859375, 45.30184555053710937, 4.764749526977539062, 0, 0, -0.6883544921875, 0.725374460220336914, 120, 255, 1, "", 47720, NULL), +(28985, 180770, 1, 0, 0, 1, 1, 1600.0625, -4454.21533203125, 42.40180206298828125, 4.171337604522705078, 0, 0, -0.87035560607910156, 0.492423713207244873, 120, 255, 1, "", 47720, NULL), +(28986, 180768, 1, 0, 0, 1, 1, 1984.626708984375, -4244.7880859375, 31.79969024658203125, 4.084071159362792968, 0, 0, -0.8910064697265625, 0.453990638256072998, 120, 255, 1, "", 47720, NULL), +(28988, 180767, 1, 0, 0, 1, 1, -1106.41845703125, -17.8789615631103515, 149.3155059814453125, 5.253442287445068359, 0, 0, -0.49242305755615234, 0.870355963706970214, 120, 255, 1, "", 47720, NULL), +(28989, 180778, 1, 0, 0, 1, 1, -1034.4757080078125, -73.7086029052734375, 60.53104019165039062, 2.076939344406127929, 0, 0, 0.861628532409667968, 0.50753939151763916, 120, 255, 1, "", 47720, NULL), +(28990, 180878, 1, 0, 0, 1, 1, -1043.079833984375, -217.583328247070312, 160.26116943359375, 3.351046562194824218, 0, 0, -0.99452114105224609, 0.104535527527332305, 120, 255, 1, "", 47720, NULL), +(28992, 180769, 0, 0, 0, 1, 1, 1627.6900634765625, 216.647735595703125, -36.4423294067382812, 2.565631866455078125, 0, 0, 0.958819389343261718, 0.284016460180282592, 120, 255, 1, "", 47720, NULL), +(28993, 180760, 0, 0, 0, 1, 1, 1595.69970703125, 278.743072509765625, -50.8353080749511718, 4.694936752319335937, 0, 0, -0.71325016021728515, 0.700909554958343505, 120, 255, 1, "", 47720, NULL), +(28994, 180769, 0, 0, 0, 1, 1, 1563.7159423828125, 216.6520233154296875, -36.4788894653320312, 3.769911527633666992, 0, 0, -0.95105648040771484, 0.309017121791839599, 120, 255, 1, "", 47720, NULL), +(28995, 180769, 0, 0, 0, 1, 1, 1618.7315673828125, 207.7862396240234375, -36.6290779113769531, 5.270895957946777343, 0, 0, -0.48480892181396484, 0.87462007999420166, 120, 255, 1, "", 47720, NULL), +(28996, 180768, 0, 0, 0, 1, 1, 1635.4854736328125, 242.69830322265625, 62.59157180786132812, 4.206246376037597656, 0, 0, -0.86162853240966796, 0.50753939151763916, 120, 255, 1, "", 47720, NULL), +(28997, 180770, 0, 0, 0, 1, 1, 1639.5538330078125, 215.954864501953125, -36.4585227966308593, 4.241150379180908203, 0, 0, -0.85264015197753906, 0.522498607635498046, 120, 255, 1, "", 47720, NULL), +(28999, 180769, 0, 0, 0, 1, 1, 1646.1676025390625, 213.659942626953125, -36.4928092956542968, 1.658061861991882324, 0, 0, 0.737277030944824218, 0.67559051513671875, 120, 255, 1, "", 47720, NULL), +(29000, 180769, 0, 0, 0, 1, 1, 1635.6322021484375, 227.1669921875, -36.5431098937988281, 1.012289404869079589, 0, 0, 0.484808921813964843, 0.87462007999420166, 120, 255, 1, "", 47720, NULL), +(29001, 180768, 0, 0, 0, 1, 1, 1637.638427734375, 234.2244415283203125, 62.59157180786132812, 5.742135047912597656, 0, 0, -0.26723766326904296, 0.96363067626953125, 120, 255, 1, "", 47720, NULL), +(29002, 180769, 0, 0, 0, 1, 1, 1589.298583984375, 200.453125, -36.4421310424804687, 4.45059061050415039, 0, 0, -0.79335308074951171, 0.608761727809906005, 120, 255, 1, "", 47720, NULL), +(29003, 180770, 0, 0, 0, 1, 1, 1595.7413330078125, 233.1805572509765625, -48.0654335021972656, 1.535889506340026855, 0, 0, 0.694658279418945312, 0.719339847564697265, 120, 255, 1, "", 47720, NULL), +(29005, 180878, 0, 0, 0, 1, 1, 1647.5833740234375, 233.3194427490234375, 63.69573974609375, 3.22885894775390625, 0, 0, -0.99904823303222656, 0.043619260191917419, 120, 255, 1, "", 47720, NULL), +(29006, 180760, 0, 0, 0, 1, 1, 1631.716552734375, 216.6436614990234375, -39.8793754577636718, 0.959929943084716796, 0, 0, 0.461748123168945312, 0.887011110782623291, 120, 255, 1, "", 47720, NULL), +(29007, 180769, 0, 0, 0, 1, 1, 1616.1185302734375, 205.969940185546875, -36.5110740661621093, 2.199114561080932617, 0, 0, 0.8910064697265625, 0.453990638256072998, 120, 255, 1, "", 47720, NULL), +(29009, 180778, 0, 0, 0, 1, 1, 1646.297607421875, 235.5414581298828125, 62.59157180786132812, 3.281238555908203125, 0, 0, -0.99756336212158203, 0.069766148924827575, 120, 255, 1, "", 47720, NULL), +(29010, 180770, 0, 0, 0, 1, 1, 1642.4442138671875, 224.40484619140625, -36.7174186706542968, 1.239183306694030761, 0, 0, 0.580702781677246093, 0.814115643501281738, 120, 255, 1, "", 47720, NULL), +(29011, 180775, 0, 0, 0, 1, 1, 1608.54541015625, 253.162109375, -46.6005516052246093, 0.715584874153137207, 0, 0, 0.350207328796386718, 0.936672210693359375, 120, 255, 1, "", 47966, NULL), +(29014, 180769, 0, 0, 0, 1, 1, 1627.6884765625, 264.104156494140625, -36.6370735168457031, 0.575957298278808593, 0, 0, 0.284014701843261718, 0.958819925785064697, 120, 255, 1, "", 47720, NULL), +(29015, 180769, 0, 0, 0, 1, 1, 1649.814208984375, 218.219024658203125, -36.4882392883300781, 0.017452461645007133, 0, 0, 0.008726119995117187, 0.999961912631988525, 120, 255, 1, "", 47720, NULL), +(29018, 180770, 0, 0, 0, 1, 1, 1595.7413330078125, 247.951385498046875, -48.0584793090820312, 1.570795774459838867, 0, 0, 0.707106590270996093, 0.707106947898864746, 120, 255, 1, "", 47720, NULL), +(29020, 180769, 0, 0, 0, 1, 1, 1634.904052734375, 250.342498779296875, -36.3342475891113281, 0.296705186367034912, 0, 0, 0.147809028625488281, 0.989015936851501464, 120, 255, 1, "", 47720, NULL), +(29022, 180769, 0, 0, 0, 1, 1, 1555.46337890625, 233.378631591796875, -36.3423957824707031, 3.43830275535583496, 0, 0, -0.98901557922363281, 0.147811368107795715, 120, 255, 1, "", 47720, NULL), +(29023, 180769, 0, 0, 0, 1, 1, 1632.9166259765625, 219.2395782470703125, -36.3693313598632812, 1.117009282112121582, 0, 0, 0.529918670654296875, 0.84804844856262207, 120, 255, 1, "", 47720, NULL), +(29024, 180769, 0, 0, 0, 1, 1, 1563.8756103515625, 264.798492431640625, -36.6633033752441406, 5.84685373306274414, 0, 0, -0.21643924713134765, 0.976296067237854003, 120, 255, 1, "", 47720, NULL), +(29025, 180769, 0, 0, 0, 1, 1, 1556.640625, 251.015625, -36.4765853881835937, 2.792518377304077148, 0, 0, 0.984807014465332031, 0.173652306199073791, 120, 255, 1, "", 47720, NULL), +(29028, 180769, 0, 0, 0, 1, 1, 1634.7457275390625, 229.68609619140625, -36.4041481018066406, 2.757613182067871093, 0, 0, 0.981626510620117187, 0.190812408924102783, 120, 255, 1, "", 47720, NULL), +(29030, 180768, 0, 0, 0, 1, 1, 1641.177978515625, 247.0255584716796875, 62.59157180786132812, 3.211419343948364257, 0, 0, -0.9993906021118164, 0.034906134009361267, 120, 255, 1, "", 47720, NULL), +(29032, 180769, 0, 0, 0, 1, 1, 1629.4600830078125, 219.2083282470703125, -36.4536666870117187, 5.619962215423583984, 0, 0, -0.32556724548339843, 0.945518851280212402, 120, 255, 1, "", 47720, NULL), +(29033, 180770, 0, 0, 0, 1, 1, 1603.2916259765625, 240.3958282470703125, -48.0445976257324218, 3.124123096466064453, 0, 0, 0.99996185302734375, 0.008734640665352344, 120, 255, 1, "", 47720, NULL), +(29036, 180770, 1, 0, 0, 1, 1, 1674.8941650390625, -4429.55029296875, 32.53606033325195312, 1.797688722610473632, 0, 0, 0.7826080322265625, 0.622514784336090087, 120, 255, 1, "", 47720, NULL), +(29037, 180769, 1, 0, 0, 1, 1, 1693.7117919921875, -4394.74462890625, 36.18780517578125, 5.270895957946777343, 0, 0, -0.48480892181396484, 0.87462007999420166, 120, 255, 1, "", 47720, NULL), +(29038, 180769, 1, 0, 0, 1, 1, 1662.8629150390625, -4436.9599609375, 32.6082305908203125, 2.303830623626708984, 0, 0, 0.913544654846191406, 0.406738430261611938, 120, 255, 1, "", 47720, NULL), +(29039, 180769, 1, 0, 0, 1, 1, 1695.15283203125, -4439.44775390625, 32.63016510009765625, 4.241150379180908203, 0, 0, -0.85264015197753906, 0.522498607635498046, 120, 255, 1, "", 47720, NULL), +(29040, 180769, 1, 0, 0, 1, 1, 1639.09375, -4429.361328125, 25.49821853637695312, 4.415683269500732421, 0, 0, -0.80385684967041015, 0.594822824001312255, 120, 255, 1, "", 47720, NULL), +(29041, 180778, 1, 0, 0, 1, 1, -1266.355712890625, 199.4052734375, 59.69921875, 4.084071159362792968, 0, 0, -0.8910064697265625, 0.453990638256072998, 120, 255, 1, "", 47720, NULL), +(29042, 180767, 1, 0, 0, 1, 1, -1322.1845703125, 29.21533203125, 144.8863983154296875, 0.296705186367034912, 0, 0, 0.147809028625488281, 0.989015936851501464, 120, 255, 1, "", 47720, NULL), +(29044, 180778, 1, 0, 0, 1, 1, -1023.0186767578125, -68.3546524047851562, 60.53104019165039062, 5.235987663269042968, 0, 0, -0.5, 0.866025388240814208, 120, 255, 1, "", 47720, NULL), +(29045, 180778, 1, 0, 0, 1, 1, -1006.6038818359375, -21.3942604064941406, 60.53104019165039062, 3.9793548583984375, 0, 0, -0.9135446548461914, 0.406738430261611938, 120, 255, 1, "", 47720, NULL), +(29046, 180768, 1, 0, 0, 1, 1, -1052.769775390625, -250.587127685546875, 159.0303497314453125, 4.991643905639648437, 0, 0, -0.60181427001953125, 0.798636078834533691, 120, 255, 1, "", 47720, NULL), +(29047, 180759, 1, 0, 0, 1, 1, 1614.173583984375, -4380.82666015625, 18.43857765197753906, 3.52557229995727539, 0, 0, -0.98162651062011718, 0.190812408924102783, 120, 255, 1, "", 47720, NULL), +(29048, 180770, 1, 0, 0, 1, 1, 1664.670166015625, -4472.76025390625, 32.53103256225585937, 4.049167633056640625, 0, 0, -0.89879322052001953, 0.438372820615768432, 120, 255, 1, "", 47720, NULL), +(29049, 180770, 1, 0, 0, 1, 1, 1673.3697509765625, -4479.65478515625, 32.61395263671875, 4.101525306701660156, 0, 0, -0.88701057434082031, 0.461749136447906494, 120, 255, 1, "", 47720, NULL), +(29050, 180878, 1, 0, 0, 1, 1, 1970.1771240234375, -4257.95654296875, 33.06834030151367187, 3.857182979583740234, 0, 0, -0.93667125701904296, 0.350209832191467285, 120, 255, 1, "", 47720, NULL), +(29051, 180759, 1, 0, 0, 1, 1, 1668.5504150390625, -4431.96533203125, 25.86832618713378906, 1.954769015312194824, 0, 0, 0.829037666320800781, 0.559192776679992675, 120, 255, 1, "", 47720, NULL), +(29052, 180770, 1, 0, 0, 1, 1, 1656.046875, -4443.6025390625, 31.73310279846191406, 6.178466320037841796, 0, 0, -0.05233573913574218, 0.998629570007324218, 120, 255, 1, "", 47720, NULL), +(29053, 180878, 1, 0, 0, 1, 1, -1043.48828125, -216.356063842773437, 159.401580810546875, 1.099556446075439453, 0, 0, 0.522498130798339843, 0.852640450000762939, 120, 255, 1, "", 47720, NULL), +(29054, 180768, 1, 0, 0, 1, 1, -1064.0010986328125, -252.400177001953125, 159.0303497314453125, 1.500982880592346191, 0, 0, 0.681998252868652343, 0.731353819370269775, 120, 255, 1, "", 47720, NULL), +(29055, 180878, 1, 0, 0, 1, 1, -1042.7203369140625, -216.533309936523437, 159.5494842529296875, 1.169368624687194824, 0, 0, 0.551936149597167968, 0.833886384963989257, 120, 255, 1, "", 47720, NULL), +(29056, 180761, 1, 0, 0, 1, 1, -1192.556396484375, -70.560821533203125, 165.004425048828125, 3.141592741012573242, 0, 0, -1, 0, 120, 255, 1, "", 47720, NULL), +(29057, 180878, 1, 0, 0, 1, 1, -1042.2047119140625, -217.193191528320312, 159.7144927978515625, 4.066620349884033203, 0, 0, -0.89493370056152343, 0.44619917869567871, 120, 255, 1, "", 47720, NULL), +(29059, 180775, 1, 0, 0, 1, 1, 1676.748291015625, -4363.52783203125, 46.46495437622070312, 3.577930212020874023, 0, 0, -0.97629547119140625, 0.216442063450813293, 120, 255, 1, "", 47720, NULL), +(29060, 180778, 1, 0, 0, 1, 1, 1945.7117919921875, -4286.7724609375, 28.27943992614746093, 0.541050612926483154, 0, 0, 0.267237663269042968, 0.96363067626953125, 120, 255, 1, "", 47720, NULL), +(29062, 180770, 1, 0, 0, 1, 1, 1680.4478759765625, -4418.36474609375, 36.25653457641601562, 0.139624491333961486, 0, 0, 0.06975555419921875, 0.997564136981964111, 120, 255, 1, "", 47720, NULL), +(29063, 180778, 1, 0, 0, 1, 1, 1963.310791015625, -4274.5, 31.30120849609375, 0.645771682262420654, 0, 0, 0.317304611206054687, 0.948323667049407958, 120, 255, 1, "", 47720, NULL), +(29065, 180770, 1, 0, 0, 1, 1, 1702.907958984375, -4452.88916015625, 32.46869277954101562, 3.263772249221801757, 0, 0, -0.99813461303710937, 0.061051756143569946, 120, 255, 1, "", 47720, NULL), +(29067, 180778, 1, 0, 0, 1, 1, -1041.67431640625, -218.831008911132812, 159.887969970703125, 2.67034769058227539, 0, 0, 0.972369194030761718, 0.233448356389999389, 120, 255, 1, "", 47720, NULL), +(29068, 180761, 1, 0, 0, 1, 1, -1178.93408203125, 30.53645896911621093, 154.6270904541015625, 3.124123096466064453, 0, 0, 0.99996185302734375, 0.008734640665352344, 120, 255, 1, "", 47720, NULL), +(29069, 180768, 1, 0, 0, 1, 1, -1025.51171875, -238.322265625, 159.3505401611328125, 4.886923789978027343, 0, 0, -0.64278697967529296, 0.766044974327087402, 120, 255, 1, "", 47720, NULL), +(29070, 180770, 1, 0, 0, 1, 1, 1657.1632080078125, -4459.13916015625, 32.53067398071289062, 6.03883981704711914, 0, 0, -0.12186908721923828, 0.9925462007522583, 120, 255, 1, "", 47720, NULL), +(29071, 180770, 1, 0, 0, 1, 1, 1627.060791015625, -4432.32275390625, 25.84846878051757812, 5.637413978576660156, 0, 0, -0.31730461120605468, 0.948323667049407958, 120, 255, 1, "", 47720, NULL), +(29072, 180770, 1, 0, 0, 1, 1, 1611.6805419921875, -4381.203125, 22.31065940856933593, 0.401424884796142578, 0, 0, 0.199367523193359375, 0.979924798011779785, 120, 255, 1, "", 47720, NULL), +(29073, 180769, 1, 0, 0, 1, 1, 1606.1805419921875, -4458.0556640625, 42.2401275634765625, 4.171337604522705078, 0, 0, -0.87035560607910156, 0.492423713207244873, 120, 255, 1, "", 47720, NULL), +(29074, 180770, 1, 0, 0, 1, 1, 1668.798583984375, -4432.82275390625, 32.47963333129882812, 2.146752834320068359, 0, 0, 0.878816604614257812, 0.477159708738327026, 120, 255, 1, "", 47720, NULL), +(29076, 180767, 1, 0, 0, 1, 1, -1107.3125, 110.8940200805664062, 159.152099609375, 2.251473426818847656, 0, 0, 0.902585029602050781, 0.430511653423309326, 120, 255, 1, "", 47720, NULL), +(29077, 180878, 1, 0, 0, 1, 1, -1044.8253173828125, -217.27398681640625, 159.3284912109375, 3.211419343948364257, 0, 0, -0.9993906021118164, 0.034906134009361267, 120, 255, 1, "", 47720, NULL), +(29078, 180768, 1, 0, 0, 1, 1, -1036.8250732421875, -221.709197998046875, 160.24481201171875, 1.658061861991882324, 0, 0, 0.737277030944824218, 0.67559051513671875, 120, 255, 1, "", 47720, NULL), +(29081, 180761, 1, 0, 0, 1, 1, -1057.46875, -260.164947509765625, 170.4704132080078125, 4.939284324645996093, 0, 0, -0.6225137710571289, 0.78260880708694458, 120, 255, 1, "", 47720, NULL), +(29082, 180767, 1, 0, 0, 1, 1, -1166.1871337890625, 162.909454345703125, 150.406707763671875, 2.687806606292724609, 0, 0, 0.974370002746582031, 0.224951311945915222, 120, 255, 1, "", 47720, NULL), +(29083, 180770, 1, 0, 0, 1, 1, 1687.890625, -4479.4619140625, 32.7740631103515625, 1.954769015312194824, 0, 0, 0.829037666320800781, 0.559192776679992675, 120, 255, 1, "", 47720, NULL), +(29084, 180770, 1, 0, 0, 1, 1, 1580.9375, -4457.81103515625, 42.23295974731445312, 2.181660413742065429, 0, 0, 0.887010574340820312, 0.461749136447906494, 120, 255, 1, "", 47720, NULL), +(29085, 180770, 1, 0, 0, 1, 1, 1623.1597900390625, -4451.96533203125, 26.22796058654785156, 0.645771682262420654, 0, 0, 0.317304611206054687, 0.948323667049407958, 120, 255, 1, "", 47720, NULL), +(29087, 180768, 1, 0, 0, 1, 1, 1957.9444580078125, -4267.13916015625, 31.56690216064453125, 3.735006093978881835, 0, 0, -0.95630455017089843, 0.292372345924377441, 120, 255, 1, "", 47720, NULL), +(29088, 180878, 1, 0, 0, 1, 1, 1968.3975830078125, -4257.73779296875, 32.25462722778320312, 3.089183330535888671, 0, 0, 0.99965667724609375, 0.026201646775007247, 120, 255, 1, "", 47720, NULL), +(29089, 180768, 1, 0, 0, 1, 1, 1942.0625, -4279.65283203125, 29.71286964416503906, 5.235987663269042968, 0, 0, -0.5, 0.866025388240814208, 120, 255, 1, "", 47720, NULL), +(29090, 180770, 1, 0, 0, 1, 1, 1581.5833740234375, -4460.80029296875, 34.81140518188476562, 2.181660413742065429, 0, 0, 0.887010574340820312, 0.461749136447906494, 120, 255, 1, "", 47720, NULL), +(29091, 180770, 1, 0, 0, 1, 1, 1681.4444580078125, -4402.75341796875, 36.44989395141601562, 5.393068790435791015, 0, 0, -0.43051052093505859, 0.902585566043853759, 120, 255, 1, "", 47720, NULL), +(29092, 180767, 1, 0, 0, 1, 1, -1199.381591796875, 139.050811767578125, 141.4077911376953125, 5.480334281921386718, 0, 0, -0.39073085784912109, 0.920504987239837646, 120, 255, 1, "", 47720, NULL), +(29094, 180878, 1, 0, 0, 1, 1, 1968.21875, -4258.5556640625, 32.25426483154296875, 1.413715124130249023, 0, 0, 0.649447441101074218, 0.760406434535980224, 120, 255, 1, "", 47720, NULL), +(29095, 180770, 1, 0, 0, 1, 1, 1659.1822509765625, -4444.40087890625, 32.66511917114257812, 3.089183330535888671, 0, 0, 0.99965667724609375, 0.026201646775007247, 120, 255, 1, "", 47720, NULL), +(29097, 180762, 1, 0, 0, 1, 1, 1623.3072509765625, -4440.173828125, 20.19143104553222656, 2.513273954391479492, 0, 0, 0.951056480407714843, 0.309017121791839599, 120, 255, 1, "", 47720, NULL), +(29098, 180778, 1, 0, 0, 1, 1, 1971.685791015625, -4258.375, 32.32268142700195312, 3.78736734390258789, 0, 0, -0.94832324981689453, 0.317305892705917358, 120, 255, 1, "", 47720, NULL), +(29099, 180768, 1, 0, 0, 1, 1, 1970.892333984375, -4257.1943359375, 32.3561553955078125, 3.735006093978881835, 0, 0, -0.95630455017089843, 0.292372345924377441, 120, 255, 1, "", 47720, NULL), +(29100, 180770, 1, 0, 0, 1, 1, 1687.515625, -4430.9931640625, 31.66991806030273437, 4.084071159362792968, 0, 0, -0.8910064697265625, 0.453990638256072998, 120, 255, 1, "", 47720, NULL), +(29101, 180759, 1, 0, 0, 1, 1, 1959.6285400390625, -4754.61474609375, 59.89603805541992187, 1.972219824790954589, 0, 0, 0.83388519287109375, 0.55193793773651123, 120, 255, 1, "", 47720, NULL), +(29102, 180768, 1, 0, 0, 1, 1, 1945.873291015625, -4287.72900390625, 28.06640052795410156, 4.97418975830078125, 0, 0, -0.60876083374023437, 0.793353796005249023, 120, 255, 1, "", 47720, NULL), +(29103, 180770, 1, 0, 0, 1, 1, 1645.9913330078125, -4431.2744140625, 25.39589881896972656, 4.45059061050415039, 0, 0, -0.79335308074951171, 0.608761727809906005, 120, 255, 1, "", 47720, NULL), +(29104, 180770, 1, 0, 0, 1, 1, 1627.029541015625, -4393.15283203125, 22.29093360900878906, 1.448621988296508789, 0, 0, 0.662619590759277343, 0.748956084251403808, 120, 255, 1, "", 47720, NULL), +(29105, 180770, 1, 0, 0, 1, 1, 1688.703125, -4435.4775390625, 32.52971267700195312, 4.084071159362792968, 0, 0, -0.8910064697265625, 0.453990638256072998, 120, 255, 1, "", 47720, NULL), +(29106, 180769, 1, 0, 0, 1, 1, 1619.967041015625, -4392.125, 22.551361083984375, 1.32644820213317871, 0, 0, 0.615660667419433593, 0.788011372089385986, 120, 255, 1, "", 47720, NULL), +(29107, 180768, 1, 0, 0, 1, 1, 1977.1927490234375, -4265.79150390625, 32.42452239990234375, 0.645771682262420654, 0, 0, 0.317304611206054687, 0.948323667049407958, 120, 255, 1, "", 47720, NULL), +(29108, 180878, 1, 0, 0, 1, 1, 1970.3663330078125, -4257.01416015625, 32.3834075927734375, 5.777040958404541015, 0, 0, -0.25037956237792968, 0.968147754669189453, 120, 255, 1, "", 47720, NULL), +(29110, 180762, 1, 0, 0, 1, 1, 1672.3333740234375, -4334.2880859375, 65.60201263427734375, 2.303830623626708984, 0, 0, 0.913544654846191406, 0.406738430261611938, 120, 255, 1, "", 47720, NULL), +(29111, 180759, 1, 0, 0, 1, 1, 1664.0972900390625, -4346.6494140625, 38.93149185180664062, 3.90954136848449707, 0, 0, -0.92718315124511718, 0.37460830807685852, 120, 255, 1, "", 47720, NULL), +(29112, 180769, 1, 0, 0, 1, 1, 1596.8385009765625, -4454.9599609375, 34.12637710571289062, 4.171337604522705078, 0, 0, -0.87035560607910156, 0.492423713207244873, 120, 255, 1, "", 47720, NULL), +(29113, 180759, 1, 0, 0, 1, 1, 1919.032958984375, -4252.79150390625, 46.09141921997070312, 4.764749526977539062, 0, 0, -0.6883544921875, 0.725374460220336914, 120, 255, 1, "", 47720, NULL), +(29424, 180766, 0, 0, 0, 1, 1, -4647.3173828125, -951.8907470703125, 502.14642333984375, 3.298687219619750976, 0, 0, -0.99691677093505859, 0.078466430306434631, 120, 255, 1, "", 47720, NULL), +(29425, 180766, 0, 0, 0, 1, 1, -4650.31884765625, -965.22149658203125, 502.1456298828125, 2.513273954391479492, 0, 0, 0.951056480407714843, 0.309017121791839599, 120, 255, 1, "", 47720, NULL), +(29426, 180770, 0, 0, 0, 1, 1, -4757.8427734375, -1036.9024658203125, 520.8275146484375, 0.907570242881774902, 0, 0, 0.438370704650878906, 0.898794233798980712, 120, 255, 1, "", 52237, NULL), +(29427, 180770, 0, 0, 0, 1, 1, -4749.11279296875, -1043.6868896484375, 520.83880615234375, 0.907570242881774902, 0, 0, 0.438370704650878906, 0.898794233798980712, 120, 255, 1, "", 52237, NULL), +(29430, 180769, 0, 0, 0, 1, 1, -4944.60595703125, -919.5711669921875, 510.7408447265625, 2.164205789566040039, 0, 0, 0.882946968078613281, 0.469472706317901611, 120, 255, 1, "", 47720, NULL), +(29431, 180769, 0, 0, 0, 1, 1, -8851.9619140625, 790.5382080078125, 101.022186279296875, 3.735006093978881835, 0, 0, -0.95630455017089843, 0.292372345924377441, 120, 255, 1, "", 47720, NULL), +(29433, 180769, 0, 0, 0, 1, 1, -8936.9345703125, 993.13018798828125, 136.4216156005859375, 5.235987663269042968, 0, 0, -0.5, 0.866025388240814208, 120, 255, 1, "", 52237, NULL), +(29434, 180769, 0, 0, 0, 1, 1, -8933.978515625, 994.6522216796875, 136.30926513671875, 5.218535900115966796, 0, 0, -0.507537841796875, 0.861629426479339599, 120, 255, 1, "", 52237, NULL), +(29436, 180769, 0, 0, 0, 1, 1, -4860.1337890625, -879.78472900390625, 517.72808837890625, 1.780233979225158691, 0, 0, 0.7771453857421875, 0.629321098327636718, 120, 255, 1, "", 47720, NULL), +(29437, 180769, 0, 0, 0, 1, 1, -4942.02783203125, -917.4375, 510.791168212890625, 2.338739633560180664, 0, 0, 0.920504570007324218, 0.3907318115234375, 120, 255, 1, "", 47720, NULL), +(29439, 180769, 0, 0, 0, 1, 1, -8838.09375, 653.7745361328125, 100.9432525634765625, 3.647741317749023437, 0, 0, -0.96814727783203125, 0.250381410121917724, 120, 255, 1, "", 47720, NULL), +(29442, 180769, 0, 0, 0, 1, 1, -8849.087890625, 622.7205810546875, 101.0871505737304687, 0.349065244197845458, 0, 0, 0.173647880554199218, 0.984807789325714111, 120, 255, 1, "", 47720, NULL), +(29443, 180770, 0, 0, 0, 1, 1, -8764.171875, 724.28643798828125, 104.2149276733398437, 3.892086982727050781, 0, 0, -0.93041706085205078, 0.366502493619918823, 120, 255, 1, "", 47720, NULL), +(29444, 180878, 0, 0, 0, 1, 1, -8737.2216796875, 1077.3302001953125, 90.78026580810546875, 4.276057243347167968, 0, 0, -0.84339141845703125, 0.537299633026123046, 120, 255, 1, "", 47720, NULL), +(29445, 180769, 0, 0, 0, 1, 1, -9055.89453125, 831.77777099609375, 119.2715225219726562, 3.508116960525512695, 0, 0, -0.98325443267822265, 0.182238012552261352, 120, 255, 1, "", 47966, NULL), +(29446, 180878, 0, 0, 0, 1, 1, -8739.701171875, 1076.3382568359375, 90.75988006591796875, 2.111847877502441406, 0, 0, 0.870355606079101562, 0.492423713207244873, 120, 255, 1, "", 47720, NULL), +(29447, 180766, 0, 0, 0, 1, 1, -8727.3876953125, 1079.9298095703125, 90.78026580810546875, 0.610863447189331054, 0, 0, 0.3007049560546875, 0.953717231750488281, 120, 255, 1, "", 47720, NULL), +(29448, 180878, 0, 0, 0, 1, 1, -8737.0283203125, 1076.2767333984375, 90.7685546875, 3.420850038528442382, 0, 0, -0.99026775360107421, 0.139175355434417724, 120, 255, 1, "", 47720, NULL), +(29450, 180757, 0, 0, 0, 1, 1, -8870.1298828125, 672.57110595703125, 101.51416015625, 0.628316879272460937, 0, 0, 0.309016227722167968, 0.95105677843093872, 120, 255, 1, "", 47720, NULL), +(29451, 180770, 0, 0, 0, 1, 1, -8868.48046875, 564.99462890625, 107.27374267578125, 2.268925428390502929, 0, 0, 0.906307220458984375, 0.422619491815567016, 120, 255, 1, "", 47720, NULL), +(29452, 180878, 0, 0, 0, 1, 1, -4646.25927734375, -951.1544189453125, 502.146484375, 1.308995485305786132, 0, 0, 0.608760833740234375, 0.793353796005249023, 120, 255, 1, "", 47720, NULL), +-- duplicate spawn +-- (29454, 180774, 0, 0, 0, 1, 1, -4909.1875, -877.80902099609375, 508.408538818359375, 5.096362113952636718, 0, 0, -0.55919265747070312, 0.829037725925445556, 120, 255, 1, "", 52237, NULL), +(29455, 180769, 0, 0, 0, 1, 1, -4936.736328125, -913.11456298828125, 510.865936279296875, 2.268925428390502929, 0, 0, 0.906307220458984375, 0.422619491815567016, 120, 255, 1, "", 47720, NULL), +(29456, 180769, 0, 0, 0, 1, 1, -4957.96533203125, -930.8367919921875, 510.45208740234375, 2.303830623626708984, 0, 0, 0.913544654846191406, 0.406738430261611938, 120, 255, 1, "", 47720, NULL), +-- duplicate spawn +-- (29457, 180774, 0, 0, 0, 1, 1, -4911.4423828125, -980.86956787109375, 508.03363037109375, 2.303830623626708984, 0, 0, 0.913544654846191406, 0.406738430261611938, 120, 255, 1, "", 47720, NULL), +(29458, 180769, 0, 0, 0, 1, 1, -4934.17529296875, -911.015625, 510.92388916015625, 2.199114561080932617, 0, 0, 0.8910064697265625, 0.453990638256072998, 120, 255, 1, "", 47720, NULL), +(29459, 180878, 0, 0, 0, 1, 1, -4645.6865234375, -950.10296630859375, 501.913726806640625, 4.45059061050415039, 0, 0, -0.79335308074951171, 0.608761727809906005, 120, 255, 1, "", 47720, NULL), +(29460, 180773, 0, 0, 0, 1, 1, -4634.31591796875, -1026.5972900390625, 511.7818603515625, 1.815141916275024414, 0, 0, 0.788010597229003906, 0.615661680698394775, 120, 255, 1, "", 47720, NULL), +(29461, 180773, 0, 0, 0, 1, 1, -4999.5625, -952.12152099609375, 508.382659912109375, 5.672322273254394531, 0, 0, -0.3007049560546875, 0.953717231750488281, 120, 255, 1, "", 52237, NULL), +(29462, 180769, 0, 0, 0, 1, 1, -4863.66845703125, -880.4930419921875, 517.64349365234375, 1.745326757431030273, 0, 0, 0.766043663024902343, 0.642788589000701904, 120, 255, 1, "", 47720, NULL), +(29463, 180878, 0, 0, 0, 1, 1, -4644.6357421875, -955.35040283203125, 501.91357421875, 1.570795774459838867, 0, 0, 0.707106590270996093, 0.707106947898864746, 120, 255, 1, "", 47720, NULL), +(29464, 180878, 0, 0, 0, 1, 1, -4643.89306640625, -954.76202392578125, 501.6607666015625, 0.331610709428787231, 0, 0, 0.16504669189453125, 0.986285746097564697, 120, 255, 1, "", 47720, NULL), +(29465, 180769, 0, 0, 0, 1, 1, -4724.23291015625, -1108.40283203125, 520.7218017578125, 6.178466320037841796, 0, 0, -0.05233573913574218, 0.998629570007324218, 120, 255, 1, "", 52237, NULL), +(29467, 180773, 0, 0, 0, 1, 1, -4640.94775390625, -1177.7257080078125, 511.82611083984375, 4.223697185516357421, 0, 0, -0.85716724395751953, 0.515038192272186279, 120, 255, 1, "", 52237, NULL), +(29468, 180878, 0, 0, 0, 1, 1, -4643.00634765625, -950.55914306640625, 501.66009521484375, 4.188792228698730468, 0, 0, -0.86602497100830078, 0.50000077486038208, 120, 255, 1, "", 47720, NULL), +(29469, 180769, 0, 0, 0, 1, 1, -4978.9130859375, -1022.39410400390625, 520.18487548828125, 5.916667938232421875, 0, 0, -0.18223476409912109, 0.98325502872467041, 120, 255, 1, "", 52237, NULL), +(29470, 180878, 0, 0, 0, 1, 1, -4644.38037109375, -953.23956298828125, 502.584381103515625, 4.97418975830078125, 0, 0, -0.60876083374023437, 0.793353796005249023, 120, 255, 1, "", 47720, NULL), +-- duplicate spawn +-- (29471, 180774, 0, 0, 0, 1, 1, -8942.748046875, 987.95489501953125, 135.160858154296875, 5.340708732604980468, 0, 0, -0.45398998260498046, 0.891006767749786376, 120, 255, 1, "", 52237, NULL), +(29472, 180770, 0, 0, 0, 1, 1, -8456.8994140625, 501.864593505859375, 110.47296142578125, 5.375615119934082031, 0, 0, -0.4383707046508789, 0.898794233798980712, 120, 255, 1, "", 52237, NULL), +(29473, 180773, 0, 0, 0, 1, 1, -8851.8330078125, 850.70489501953125, 108.8473587036132812, 5.410521507263183593, 0, 0, -0.42261791229248046, 0.906307935714721679, 120, 255, 1, "", 52237, NULL), +(29474, 180769, 0, 0, 0, 1, 1, -8841.236328125, 798.01739501953125, 101.209686279296875, 0.645771682262420654, 0, 0, 0.317304611206054687, 0.948323667049407958, 120, 255, 1, "", 47720, NULL), +(29475, 180757, 0, 0, 0, 1, 1, -8934.8720703125, 617.9815673828125, 102.706573486328125, 3.630291461944580078, 0, 0, -0.97029495239257812, 0.241925001144409179, 120, 255, 1, "", 47720, NULL), +(29476, 180770, 0, 0, 0, 1, 1, -8647.9912109375, 443.477447509765625, 109.0393829345703125, 2.251473426818847656, 0, 0, 0.902585029602050781, 0.430511653423309326, 120, 255, 1, "", 52237, NULL), +(29477, 180770, 0, 0, 0, 1, 1, -8802.42578125, 620.40277099609375, 101.4536514282226562, 2.251473426818847656, 0, 0, 0.902585029602050781, 0.430511653423309326, 120, 255, 1, "", 47720, NULL), +(29479, 180770, 0, 0, 0, 1, 1, -8466.46875, 494.298614501953125, 110.5261383056640625, 5.393068790435791015, 0, 0, -0.43051052093505859, 0.902585566043853759, 120, 255, 1, "", 52237, NULL), +(29480, 180769, 0, 0, 0, 1, 1, -8835.501953125, 604.100341796875, 98.3973388671875, 2.530723094940185546, 0, 0, 0.953716278076171875, 0.300707906484603881, 120, 255, 1, "", 47720, NULL), +(29482, 180773, 0, 0, 0, 1, 1, -8538.9580078125, 455.3336181640625, 113.5704116821289062, 2.234017848968505859, 0, 0, 0.898793220520019531, 0.438372820615768432, 120, 255, 1, "", 52237, NULL), +-- duplicate spawn +-- (29483, 180774, 0, 0, 0, 1, 1, -8854.5439453125, 662.6796875, 107.2023773193359375, 5.340708732604980468, 0, 0, -0.45398998260498046, 0.891006767749786376, 120, 255, 1, "", 47966, NULL), +(29486, 180769, 0, 0, 0, 1, 1, -8852.7392578125, 667.99481201171875, 100.2721023559570312, 5.35816192626953125, 0, 0, -0.446197509765625, 0.894934535026550292, 120, 255, 1, "", 47720, NULL), +(29487, 180770, 0, 0, 0, 1, 1, -8844.8642578125, 792.29522705078125, 101.0985794067382812, 2.164205789566040039, 0, 0, 0.882946968078613281, 0.469472706317901611, 120, 255, 1, "", 47720, NULL), +(29488, 180766, 0, 0, 0, 1, 1, -8769.564453125, 1069.18994140625, 90.78026580810546875, 6.265733242034912109, 0, 0, -0.00872611999511718, 0.999961912631988525, 120, 255, 1, "", 47720, NULL), +(29489, 180770, 0, 0, 0, 1, 1, -8860.5458984375, 575.90362548828125, 103.9402236938476562, 2.338739633560180664, 0, 0, 0.920504570007324218, 0.3907318115234375, 120, 255, 1, "", 47720, NULL), +(29492, 180769, 0, 0, 0, 1, 1, -4960.6767578125, -933.0205078125, 510.504058837890625, 2.234017848968505859, 0, 0, 0.898793220520019531, 0.438372820615768432, 120, 255, 1, "", 47720, NULL), +(29493, 180769, 0, 0, 0, 1, 1, -4971.41845703125, -1005.39239501953125, 520.1387939453125, 5.829400539398193359, 0, 0, -0.22495079040527343, 0.974370121955871582, 120, 255, 1, "", 52237, NULL), +(29495, 180769, 0, 0, 0, 1, 1, -4972.767578125, -1008.64239501953125, 520.15478515625, 5.89921426773071289, 0, 0, -0.19080829620361328, 0.981627285480499267, 120, 255, 1, "", 52237, NULL), +(29496, 180769, 0, 0, 0, 1, 1, -4952.3681640625, -926.1788330078125, 510.53948974609375, 2.251473426818847656, 0, 0, 0.902585029602050781, 0.430511653423309326, 120, 255, 1, "", 47720, NULL), +(29497, 180769, 0, 0, 0, 1, 1, -4806.919921875, -1179.826416015625, 516.32598876953125, 4.729844093322753906, 0, 0, -0.70090866088867187, 0.713251054286956787, 120, 255, 1, "", 52237, NULL), +(29499, 180769, 0, 0, 0, 1, 1, -4977.3212890625, -1019.036376953125, 520.13348388671875, 5.916667938232421875, 0, 0, -0.18223476409912109, 0.98325502872467041, 120, 255, 1, "", 52237, NULL), +(29500, 180878, 0, 0, 0, 1, 1, -4646.2421875, -952.04168701171875, 502.14642333984375, 2.967041015625, 0, 0, 0.996193885803222656, 0.087165042757987976, 120, 255, 1, "", 47720, NULL), +(29501, 180769, 0, 0, 0, 1, 1, -4975.6630859375, -1015.4271240234375, 520.06939697265625, 5.916667938232421875, 0, 0, -0.18223476409912109, 0.98325502872467041, 120, 255, 1, "", 52237, NULL), +-- duplicate spawn +-- (29502, 180774, 0, 0, 0, 1, 1, -5020.66357421875, -834.8433837890625, 515.46832275390625, 2.251473426818847656, 0, 0, 0.902585029602050781, 0.430511653423309326, 120, 255, 1, "", 52237, NULL), +(29503, 180769, 0, 0, 0, 1, 1, -4723.41455078125, -1101.906982421875, 520.96954345703125, 6.14356088638305664, 0, 0, -0.06975555419921875, 0.997564136981964111, 120, 255, 1, "", 52237, NULL), +(29504, 180769, 0, 0, 0, 1, 1, -4949.66748046875, -923.86749267578125, 510.668792724609375, 2.303830623626708984, 0, 0, 0.913544654846191406, 0.406738430261611938, 120, 255, 1, "", 47720, NULL), +(29505, 180769, 0, 0, 0, 1, 1, -4726.39892578125, -1121.2969970703125, 521.0274658203125, 6.14356088638305664, 0, 0, -0.06975555419921875, 0.997564136981964111, 120, 255, 1, "", 52237, NULL), +(29506, 180769, 0, 0, 0, 1, 1, -4676.533203125, -885.7274169921875, 520.2188720703125, 0.907570242881774902, 0, 0, 0.438370704650878906, 0.898794233798980712, 120, 255, 1, "", 47720, NULL), +(29507, 180769, 0, 0, 0, 1, 1, -4723.79052734375, -1105.02734375, 520.9151611328125, 6.161012649536132812, 0, 0, -0.06104850769042968, 0.998134791851043701, 120, 255, 1, "", 52237, NULL), +(29508, 180769, 0, 0, 0, 1, 1, -4939.38525390625, -915.25518798828125, 510.80084228515625, 2.251473426818847656, 0, 0, 0.902585029602050781, 0.430511653423309326, 120, 255, 1, "", 47720, NULL), +(29509, 180769, 0, 0, 0, 1, 1, -4726.95849609375, -1124.51220703125, 520.96685791015625, 6.108653545379638671, 0, 0, -0.08715534210205078, 0.996194720268249511, 120, 255, 1, "", 52237, NULL), +-- duplicate spawn +-- (29511, 180774, 0, 0, 0, 1, 1, -4898.0849609375, -969.86212158203125, 508.09564208984375, 2.199114561080932617, 0, 0, 0.8910064697265625, 0.453990638256072998, 120, 255, 1, "", 52237, NULL), +(29512, 180766, 0, 0, 0, 1, 1, -4669.05615234375, -970.063720703125, 502.1358642578125, 4.223697185516357421, 0, 0, -0.85716724395751953, 0.515038192272186279, 120, 255, 1, "", 47720, NULL), +-- duplicate spawn +-- (29515, 180774, 0, 0, 0, 1, 1, -8712.763671875, 465.376739501953125, 107.8306732177734375, 5.323255538940429687, 0, 0, -0.46174812316894531, 0.887011110782623291, 120, 255, 1, "", 52237, NULL), +(29516, 180770, 0, 0, 0, 1, 1, -8854.3525390625, 617.130126953125, 100.5960235595703125, 5.096362113952636718, 0, 0, -0.55919265747070312, 0.829037725925445556, 120, 255, 1, "", 47720, NULL), +(29517, 180770, 0, 0, 0, 1, 1, -8455.4931640625, 490.953125, 110.5626678466796875, 5.375615119934082031, 0, 0, -0.4383707046508789, 0.898794233798980712, 120, 255, 1, "", 52237, NULL), +(29518, 180757, 0, 0, 0, 1, 1, -8800.279296875, 670.98614501953125, 100.9956588745117187, 4.468043327331542968, 0, 0, -0.7880105972290039, 0.615661680698394775, 120, 255, 1, "", 47720, NULL), +(29519, 180769, 0, 0, 0, 1, 1, -8939.5517578125, 990.90850830078125, 136.77728271484375, 5.288348197937011718, 0, 0, -0.4771585464477539, 0.878817260265350341, 120, 255, 1, "", 52237, NULL), +(29520, 180769, 0, 0, 0, 1, 1, -8951.1806640625, 981.33282470703125, 137.118194580078125, 5.480334281921386718, 0, 0, -0.39073085784912109, 0.920504987239837646, 120, 255, 1, "", 52237, NULL), +(29522, 180770, 0, 0, 0, 1, 1, -9060.0517578125, 841.65692138671875, 119.3519668579101562, 3.543023586273193359, 0, 0, -0.97992420196533203, 0.199370384216308593, 120, 255, 1, "", 47966, NULL), +(29523, 180766, 0, 0, 0, 1, 1, -8760.6728515625, 1068.522216796875, 90.78026580810546875, 0, 0, 0, 0, 1, 120, 255, 1, "", 47720, NULL), +(29524, 180766, 0, 0, 0, 1, 1, -8731.943359375, 1060.68359375, 90.7473907470703125, 5.183629035949707031, 0, 0, -0.52249813079833984, 0.852640450000762939, 120, 255, 1, "", 47720, NULL), +(29525, 180769, 0, 0, 0, 1, 1, -8948.9736328125, 983.89019775390625, 136.9651641845703125, 5.393068790435791015, 0, 0, -0.43051052093505859, 0.902585566043853759, 120, 255, 1, "", 52237, NULL), +(29526, 180766, 0, 0, 0, 1, 1, -8734.7841796875, 1076.231201171875, 90.75266265869140625, 0.575957298278808593, 0, 0, 0.284014701843261718, 0.958819925785064697, 120, 255, 1, "", 47720, NULL), +(30356, 180770, 0, 0, 0, 1, 1, -8563.59765625, 604.25, 109.3567581176757812, 5.375615119934082031, 0, 0, -0.4383707046508789, 0.898794233798980712, 120, 255, 1, "", 52237, NULL), +(30802, 180770, 0, 0, 0, 1, 1, -9085.3173828125, 827.94622802734375, 119.3678665161132812, 0.383971005678176879, 0, 0, 0.190808296203613281, 0.981627285480499267, 120, 255, 1, "", 47966, NULL), +(30803, 180878, 0, 0, 0, 1, 1, -8738.9384765625, 1074.9361572265625, 90.7093505859375, 5.742135047912597656, 0, 0, -0.26723766326904296, 0.96363067626953125, 120, 255, 1, "", 47720, NULL), +(30806, 180766, 0, 0, 0, 1, 1, -8735.341796875, 1066.7115478515625, 90.4430694580078125, 5.183629035949707031, 0, 0, -0.52249813079833984, 0.852640450000762939, 120, 255, 1, "", 47720, NULL), +(30860, 180773, 0, 0, 0, 1, 1, -8885.669921875, 594.6055908203125, 93.583526611328125, 3.647741317749023437, 0, 0, -0.96814727783203125, 0.250381410121917724, 120, 255, 1, "", 47720, NULL), +(30861, 180770, 0, 0, 0, 1, 1, -4867.88720703125, -1144.3040771484375, 510.1231689453125, 0.453785061836242675, 0, 0, 0.224950790405273437, 0.974370121955871582, 120, 255, 1, "", 52237, NULL), +(30862, 180878, 0, 0, 0, 1, 1, -4645.455078125, -950.86944580078125, 501.913726806640625, 3.176533222198486328, 0, 0, -0.999847412109375, 0.017469281330704689, 120, 255, 1, "", 47720, NULL), +(30863, 180878, 0, 0, 0, 1, 1, -4643.13037109375, -954.62109375, 501.660919189453125, 3.385940074920654296, 0, 0, -0.99254608154296875, 0.121869951486587524, 120, 255, 1, "", 47720, NULL), +(30864, 180766, 0, 0, 0, 1, 1, -4655.96630859375, -941.48760986328125, 502.14593505859375, 1.274088263511657714, 0, 0, 0.594821929931640625, 0.80385744571685791, 120, 255, 1, "", 47720, NULL), +(30868, 180766, 0, 0, 0, 1, 1, -4677.8359375, -959.58660888671875, 502.14501953125, 0.24434557557106018, 0, 0, 0.121869087219238281, 0.9925462007522583, 120, 255, 1, "", 47720, NULL), +(30869, 180769, 0, 0, 0, 1, 1, -4867.3662109375, -881.1632080078125, 517.56805419921875, 1.832594871520996093, 0, 0, 0.793353080749511718, 0.608761727809906005, 120, 255, 1, "", 47720, NULL), +(31144, 180769, 0, 0, 0, 1, 1, -4725.3740234375, -1114.8397216796875, 520.90655517578125, 6.09120035171508789, 0, 0, -0.09584522247314453, 0.995396256446838378, 120, 255, 1, "", 52237, NULL), +(31146, 180770, 0, 0, 0, 1, 1, -4847.67333984375, -1163.0767822265625, 508.427154541015625, 0.837757468223571777, 0, 0, 0.406736373901367187, 0.913545548915863037, 120, 255, 1, "", 52237, NULL), +(31147, 180769, 0, 0, 0, 1, 1, -4810.58154296875, -1179.8712158203125, 516.28607177734375, 4.747295856475830078, 0, 0, -0.69465827941894531, 0.719339847564697265, 120, 255, 1, "", 52237, NULL), +(31148, 180769, 0, 0, 0, 1, 1, -4947.25, -921.7100830078125, 510.724395751953125, 2.356194972991943359, 0, 0, 0.923879623413085937, 0.382683247327804565, 120, 255, 1, "", 47720, NULL), +(31149, 180769, 0, 0, 0, 1, 1, -4724.77783203125, -1111.6007080078125, 520.82757568359375, 6.12610626220703125, 0, 0, -0.07845878601074218, 0.996917366981506347, 120, 255, 1, "", 52237, NULL), +(31150, 180770, 0, 0, 0, 1, 1, -4691.3388671875, -874.26153564453125, 520.23614501953125, 0.907570242881774902, 0, 0, 0.438370704650878906, 0.898794233798980712, 120, 255, 1, "", 47720, NULL), +(31151, 180769, 0, 0, 0, 1, 1, -4799.392578125, -1179.9375, 516.353515625, 4.694936752319335937, 0, 0, -0.71325016021728515, 0.700909554958343505, 120, 255, 1, "", 52237, NULL), +(31152, 180878, 0, 0, 0, 1, 1, -8737.9873046875, 1077.3504638671875, 90.78026580810546875, 0.645771682262420654, 0, 0, 0.317304611206054687, 0.948323667049407958, 120, 255, 1, "", 47720, NULL), +(31153, 180773, 0, 0, 0, 1, 1, -4637.8662109375, -934.6649169921875, 517.1827392578125, 3.839725255966186523, 0, 0, -0.93969249725341796, 0.34202045202255249, 120, 255, 1, "", 52237, NULL), +(31154, 180770, 0, 0, 0, 1, 1, -8663.1494140625, 503.359375, 105.884490966796875, 4.502951622009277343, 0, 0, -0.7771453857421875, 0.629321098327636718, 120, 255, 1, "", 52237, NULL), +(31156, 180769, 0, 0, 0, 1, 1, -8795.1162109375, 622.48956298828125, 101.7800521850585937, 0.715584874153137207, 0, 0, 0.350207328796386718, 0.936672210693359375, 120, 255, 1, "", 47720, NULL), +(31157, 180770, 0, 0, 0, 1, 1, -5019.259765625, -1046.804443359375, 522.747802734375, 6.073746204376220703, 0, 0, -0.10452842712402343, 0.994521915912628173, 120, 255, 1, "", 52237, NULL), +(31158, 180769, 0, 0, 0, 1, 1, -8946.23828125, 985.97247314453125, 137.0928497314453125, 5.393068790435791015, 0, 0, -0.43051052093505859, 0.902585566043853759, 120, 255, 1, "", 52237, NULL), +(31159, 180769, 0, 0, 0, 1, 1, -4725.93408203125, -1118.111083984375, 520.86895751953125, 6.073746204376220703, 0, 0, -0.10452842712402343, 0.994521915912628173, 120, 255, 1, "", 52237, NULL), +(31160, 180769, 0, 0, 0, 1, 1, -4803.0380859375, -1179.85595703125, 516.320556640625, 4.694936752319335937, 0, 0, -0.71325016021728515, 0.700909554958343505, 120, 255, 1, "", 52237, NULL), +(31163, 180769, 0, 0, 0, 1, 1, -4955.12841796875, -928.47222900390625, 510.47216796875, 2.234017848968505859, 0, 0, 0.898793220520019531, 0.438372820615768432, 120, 255, 1, "", 47720, NULL), +(31164, 180878, 0, 0, 0, 1, 1, -4645.779296875, -955.2208251953125, 502.146331787109375, 5.777040958404541015, 0, 0, -0.25037956237792968, 0.968147754669189453, 120, 255, 1, "", 47720, NULL), +(31165, 180770, 0, 0, 0, 1, 1, -8463.013671875, 509.90972900390625, 110.4709625244140625, 5.393068790435791015, 0, 0, -0.43051052093505859, 0.902585566043853759, 120, 255, 1, "", 52237, NULL), +-- duplicate spawn +-- (31167, 180774, 0, 0, 0, 1, 1, -8763.1982421875, 724.888916015625, 104.2291107177734375, 0.680676698684692382, 0, 0, 0.333806037902832031, 0.942641794681549072, 120, 255, 1, "", 47966, NULL), +(31168, 180878, 0, 0, 0, 1, 1, -8739.3310546875, 1077.0634765625, 90.78026580810546875, 5.602506637573242187, 0, 0, -0.33380699157714843, 0.942641437053680419, 120, 255, 1, "", 47720, NULL), +(31169, 180769, 0, 0, 0, 1, 1, -8806.0263671875, 613.984375, 101.8494873046875, 3.822272777557373046, 0, 0, -0.94264125823974609, 0.333807557821273803, 120, 255, 1, "", 47720, NULL), +(31171, 180769, 0, 0, 0, 1, 1, -8856.1767578125, 665.4617919921875, 100.2600784301757812, 5.270895957946777343, 0, 0, -0.48480892181396484, 0.87462007999420166, 120, 255, 1, "", 47720, NULL), +(31172, 180770, 0, 0, 0, 1, 1, -8472.4892578125, 502.2882080078125, 110.5087890625, 5.410521507263183593, 0, 0, -0.42261791229248046, 0.906307935714721679, 120, 255, 1, "", 52237, NULL), +(31174, 180773, 0, 0, 0, 1, 1, -8859.9287109375, 584.9310302734375, 93.38101959228515625, 4.014260292053222656, 0, 0, -0.90630722045898437, 0.422619491815567016, 120, 255, 1, "", 47800, NULL), +(31175, 180769, 0, 0, 0, 1, 1, -9057.16015625, 835.0966796875, 119.4120635986328125, 3.490667104721069335, 0, 0, -0.98480701446533203, 0.173652306199073791, 120, 255, 1, "", 47966, NULL), +(31177, 180769, 0, 0, 0, 1, 1, -8835.6298828125, 649.72918701171875, 100.7945632934570312, 3.717553615570068359, 0, 0, -0.95881938934326171, 0.284016460180282592, 120, 255, 1, "", 47720, NULL), +(31178, 180769, 0, 0, 0, 1, 1, -4974.15625, -1011.93048095703125, 520.0267333984375, 5.864306926727294921, 0, 0, -0.20791149139404296, 0.978147625923156738, 120, 255, 1, "", 52237, NULL), +(31180, 180878, 0, 0, 0, 1, 1, -4643.37158203125, -955.283447265625, 501.660797119140625, 2.844882726669311523, 0, 0, 0.989015579223632812, 0.147811368107795715, 120, 255, 1, "", 47720, NULL), +-- duplicate spawn +-- (31181, 180774, 0, 0, 0, 1, 1, -5007.46435546875, -1240.84765625, 518.63848876953125, 0.698131442070007324, 0, 0, 0.342020034790039062, 0.939692676067352294, 120, 255, 1, "", 52237, NULL), +(31182, 180770, 0, 0, 0, 1, 1, -4765.3291015625, -912.12969970703125, 507.817657470703125, 1.291541695594787597, 0, 0, 0.60181427001953125, 0.798636078834533691, 120, 255, 1, "", 47720, NULL), +(31184, 180770, 0, 0, 0, 1, 1, -4682.48388671875, -881.14801025390625, 520.2335205078125, 0.925023794174194335, 0, 0, 0.446197509765625, 0.894934535026550292, 120, 255, 1, "", 47720, NULL), +(31185, 180878, 0, 0, 0, 1, 1, -4645.9912109375, -953.58831787109375, 502.146392822265625, 0.733038187026977539, 0, 0, 0.358367919921875, 0.933580458164215087, 120, 255, 1, "", 47720, NULL), +(31187, 180878, 0, 0, 0, 1, 1, -4646.04541015625, -952.815673828125, 502.146392822265625, 5.84685373306274414, 0, 0, -0.21643924713134765, 0.976296067237854003, 120, 255, 1, "", 47720, NULL), +(31188, 180878, 0, 0, 0, 1, 1, -4645.03271484375, -954.70745849609375, 501.91357421875, 3.839725255966186523, 0, 0, -0.93969249725341796, 0.34202045202255249, 120, 255, 1, "", 47720, NULL), +(31189, 180878, 0, 0, 0, 1, 1, -4645.9423828125, -954.43890380859375, 502.146331787109375, 2.67034769058227539, 0, 0, 0.972369194030761718, 0.233448356389999389, 120, 255, 1, "", 47720, NULL), +(31190, 180878, 0, 0, 0, 1, 1, -8737.755859375, 1076.5692138671875, 90.77675628662109375, 0.087265998125076293, 0, 0, 0.043619155883789062, 0.999048233032226562, 120, 255, 1, "", 47720, NULL), +(31191, 180878, 0, 0, 0, 1, 1, -8736.5185546875, 1074.7296142578125, 90.71143341064453125, 3.071766138076782226, 0, 0, 0.999390602111816406, 0.034906134009361267, 120, 255, 1, "", 47720, NULL), +(31192, 180769, 0, 0, 0, 1, 1, -8862.8974609375, 617.22918701171875, 100.997222900390625, 3.560472726821899414, 0, 0, -0.97814750671386718, 0.207912087440490722, 120, 255, 1, "", 47720, NULL), +(31193, 180878, 0, 0, 0, 1, 1, -8739.8876953125, 1075.4716796875, 90.7259368896484375, 4.118979454040527343, 0, 0, -0.88294696807861328, 0.469472706317901611, 120, 255, 1, "", 47720, NULL), +(31194, 180770, 0, 0, 0, 1, 1, -5016.3369140625, -1125.1396484375, 509.606109619140625, 3.316144466400146484, 0, 0, -0.99619388580322265, 0.087165042757987976, 120, 255, 1, "", 52237, NULL), +(31195, 180769, 0, 0, 0, 1, 1, -4870.798828125, -882.01043701171875, 517.74261474609375, 1.780233979225158691, 0, 0, 0.7771453857421875, 0.629321098327636718, 120, 255, 1, "", 47720, NULL), +(31196, 180878, 0, 0, 0, 1, 1, -4643.845703125, -953.56768798828125, 502.598297119140625, 3.22885894775390625, 0, 0, -0.99904823303222656, 0.043619260191917419, 120, 255, 1, "", 47720, NULL), +(31198, 180766, 0, 0, 0, 1, 1, -4669.66357421875, -941.9884033203125, 502.144866943359375, 2.059488296508789062, 0, 0, 0.857167243957519531, 0.515038192272186279, 120, 255, 1, "", 47720, NULL), +(31199, 180878, 0, 0, 0, 1, 1, -4644.83544921875, -949.22137451171875, 501.66058349609375, 0.261798173189163208, 0, 0, 0.130525588989257812, 0.991444945335388183, 120, 255, 1, "", 47720, NULL), +(31202, 180769, 0, 0, 0, 1, 1, -8838.1318359375, 600.77606201171875, 98.2744140625, 2.44346022605895996, 0, 0, 0.939692497253417968, 0.34202045202255249, 120, 255, 1, "", 47720, NULL), +(31250, 180765, 1, 0, 0, 1, 1, 9640.306640625, 2620.290771484375, 1356.5782470703125, 1.85004889965057373, 0, 0, 0.798635482788085937, 0.60181504487991333, 120, 255, 1, "", 52237, NULL), +(31251, 180773, 1, 0, 0, 1, 1, 9940.3740234375, 2509.09375, 1327.0860595703125, 5.550147056579589843, 0, 0, -0.358367919921875, 0.933580458164215087, 120, 255, 1, "", 47720, NULL), +(31253, 180878, 1, 0, 0, 1, 1, 7593.7041015625, -2225.91015625, 469.256744384765625, 2.600535154342651367, 0, 0, 0.963629722595214843, 0.26724100112915039, 120, 255, 1, "", 47720, NULL), +(31255, 180768, 1, 0, 0, 1, 1, 7596.47900390625, -2260.560546875, 464.6484375, 6.108653545379638671, 0, 0, -0.08715534210205078, 0.996194720268249511, 120, 255, 1, "", 47720, NULL), +(31256, 180768, 1, 0, 0, 1, 1, 7567.658203125, -2234.9912109375, 470.03466796875, 5.113816738128662109, 0, 0, -0.55193614959716796, 0.833886384963989257, 120, 255, 1, "", 47720, NULL), +(31260, 180878, 1, 0, 0, 1, 1, 7595.8291015625, -2227.57177734375, 468.584136962890625, 5.323255538940429687, 0, 0, -0.46174812316894531, 0.887011110782623291, 120, 255, 1, "", 47720, NULL), +(31262, 180768, 1, 0, 0, 1, 1, 7804.6337890625, -2306.099365234375, 455.44183349609375, 2.408554315567016601, 0, 0, 0.933580398559570312, 0.358368009328842163, 120, 255, 1, "", 47720, NULL), +(31263, 180765, 1, 0, 0, 1, 1, 7789.0927734375, -2453.34716796875, 494.77301025390625, 5.532694816589355468, 0, 0, -0.3665008544921875, 0.93041771650314331, 120, 255, 1, "", 52237, NULL), +(31264, 180765, 1, 0, 0, 1, 1, 7844.05224609375, -2569.990234375, 505.267303466796875, 0.418878614902496337, 0, 0, 0.207911491394042968, 0.978147625923156738, 120, 255, 1, "", 47720, NULL), +(31265, 180765, 1, 0, 0, 1, 1, 8018.68310546875, -2687.18603515625, 521.24981689453125, 3.089183330535888671, 0, 0, 0.99965667724609375, 0.026201646775007247, 120, 255, 1, "", 47720, NULL), +(31266, 180765, 1, 0, 0, 1, 1, 7980.53466796875, -2436.577392578125, 496.33148193359375, 6.178466320037841796, 0, 0, -0.05233573913574218, 0.998629570007324218, 120, 255, 1, "", 47720, NULL), +(31268, 180765, 1, 0, 0, 1, 1, 9864.9228515625, 2496.113037109375, 1337.4749755859375, 0.890116631984710693, 0, 0, 0.430510520935058593, 0.902585566043853759, 120, 255, 1, "", 52237, NULL), +(31270, 180765, 1, 0, 0, 1, 1, 10153.6591796875, 2244.231201171875, 1335.2490234375, 2.687806606292724609, 0, 0, 0.974370002746582031, 0.224951311945915222, 120, 255, 1, "", 52237, NULL), +(31272, 180778, 1, 0, 0, 1, 1, 7608.04345703125, -2241.1318359375, 467.294830322265625, 2.652894020080566406, 0, 0, 0.970294952392578125, 0.241925001144409179, 120, 255, 1, "", 47720, NULL), +(31273, 180766, 1, 0, 0, 1, 1, 7577.0380859375, -2202.193603515625, 475.33013916015625, 5.480334281921386718, 0, 0, -0.39073085784912109, 0.920504987239837646, 120, 255, 1, "", 47720, NULL), +(31274, 180878, 1, 0, 0, 1, 1, 7594.09375, -2218.446044921875, 469.6158447265625, 5.288348197937011718, 0, 0, -0.4771585464477539, 0.878817260265350341, 120, 255, 1, "", 47720, NULL), +(31275, 180878, 1, 0, 0, 1, 1, 7593.462890625, -2220.960693359375, 469.408477783203125, 0.034906249493360519, 0, 0, 0.017452239990234375, 0.999847710132598876, 120, 255, 1, "", 47720, NULL), +(31276, 180878, 1, 0, 0, 1, 1, 7594.0146484375, -2217.77880859375, 469.815155029296875, 4.433136463165283203, 0, 0, -0.79863548278808593, 0.60181504487991333, 120, 255, 1, "", 47720, NULL), +(31277, 180766, 1, 0, 0, 1, 1, 7584.9306640625, -2210.227294921875, 473.766265869140625, 5.515241622924804687, 0, 0, -0.37460613250732421, 0.927184045314788818, 120, 255, 1, "", 47720, NULL), +(31278, 180778, 1, 0, 0, 1, 1, 7533.19189453125, -2189.474609375, 476.343475341796875, 3.368495941162109375, 0, 0, -0.99357128143310546, 0.113208353519439697, 120, 255, 1, "", 47720, NULL), +(31279, 180778, 1, 0, 0, 1, 1, 7533.15380859375, -2200.416259765625, 475.957183837890625, 6.12610626220703125, 0, 0, -0.07845878601074218, 0.996917366981506347, 120, 255, 1, "", 47720, NULL), +(31281, 180778, 1, 0, 0, 1, 1, 7597.28662109375, -2260.57568359375, 464.6719970703125, 4.555310726165771484, 0, 0, -0.76040554046630859, 0.649448513984680175, 120, 255, 1, "", 47720, NULL), +(31282, 180766, 1, 0, 0, 1, 1, 7586.3125, -2220.493408203125, 471.46240234375, 2.408554315567016601, 0, 0, 0.933580398559570312, 0.358368009328842163, 120, 255, 1, "", 47720, NULL), +(31284, 180768, 1, 0, 0, 1, 1, 7622.8271484375, -2235.06103515625, 465.44293212890625, 6.265733242034912109, 0, 0, -0.00872611999511718, 0.999961912631988525, 120, 255, 1, "", 47720, NULL), +(31286, 180768, 1, 0, 0, 1, 1, 7602.5390625, -2228.526123046875, 467.91595458984375, 5.393068790435791015, 0, 0, -0.43051052093505859, 0.902585566043853759, 120, 255, 1, "", 47720, NULL), +(31289, 180768, 1, 0, 0, 1, 1, 7697.64404296875, -2225.45556640625, 456.51123046875, 0.24434557557106018, 0, 0, 0.121869087219238281, 0.9925462007522583, 120, 255, 1, "", 47720, NULL), +(31290, 180765, 1, 0, 0, 1, 1, 7785.37060546875, -2587.576416015625, 497.62396240234375, 1.884953022003173828, 0, 0, 0.809016227722167968, 0.587786316871643066, 120, 255, 1, "", 47720, NULL), +(31291, 180769, 1, 0, 0, 1, 1, 7976.00439453125, -2424.463623046875, 497.054962158203125, 0.069811686873435974, 0, 0, 0.034898757934570312, 0.999390840530395507, 120, 255, 1, "", 47720, NULL), +(31292, 180768, 1, 0, 0, 1, 1, 7892.77783203125, -2315.49609375, 466.889495849609375, 2.809975385665893554, 0, 0, 0.986285209655761718, 0.165049895644187927, 120, 255, 1, "", 47720, NULL), +(31293, 180765, 1, 0, 0, 1, 1, 9936.6279296875, 2508.2685546875, 1324.6402587890625, 4.328419685363769531, 0, 0, -0.82903671264648437, 0.559194147586822509, 120, 255, 1, "", 47720, NULL), +(31294, 180765, 1, 0, 0, 1, 1, 9855.1484375, 2363.35205078125, 1337.1397705078125, 4.520402908325195312, 0, 0, -0.77162456512451171, 0.636078238487243652, 120, 255, 1, "", 52237, NULL), +(31296, 180758, 1, 0, 0, 1, 1, 10142.8759765625, 2209.26611328125, 1332.5137939453125, 2.164205789566040039, 0, 0, 0.882946968078613281, 0.469472706317901611, 120, 255, 1, "", 52237, NULL), +(31297, 180878, 1, 0, 0, 1, 1, 7594.9853515625, -2220.9853515625, 469.232421875, 2.338739633560180664, 0, 0, 0.920504570007324218, 0.3907318115234375, 120, 255, 1, "", 47720, NULL), +(31298, 180878, 1, 0, 0, 1, 1, 7595.52001953125, -2222.410400390625, 468.999725341796875, 3.420850038528442382, 0, 0, -0.99026775360107421, 0.139175355434417724, 120, 255, 1, "", 47720, NULL), +(31299, 180878, 1, 0, 0, 1, 1, 7594.1337890625, -2226.657958984375, 469.131988525390625, 3.665196180343627929, 0, 0, -0.96592521667480468, 0.258821308612823486, 120, 255, 1, "", 47720, NULL), +(33158, 180878, 1, 0, 0, 1, 1, 7594.97314453125, -2225.433837890625, 468.876251220703125, 5.986480236053466796, 0, 0, -0.14780902862548828, 0.989015936851501464, 120, 255, 1, "", 47720, NULL), +(33159, 180765, 1, 0, 0, 1, 1, 9746.5361328125, 2571.271484375, 1348.618408203125, 3.351046562194824218, 0, 0, -0.99452114105224609, 0.104535527527332305, 120, 255, 1, "", 52237, NULL), +(33161, 180878, 1, 0, 0, 1, 1, 7593.501953125, -2222.484375, 470.96392822265625, 3.385940074920654296, 0, 0, -0.99254608154296875, 0.121869951486587524, 120, 255, 1, "", 47720, NULL), +(33162, 180765, 1, 0, 0, 1, 1, 9862.2529296875, 2392.576171875, 1345.2239990234375, 2.478367090225219726, 0, 0, 0.94551849365234375, 0.325568377971649169, 120, 255, 1, "", 52237, NULL), +(33163, 180878, 1, 0, 0, 1, 1, 7593.455078125, -2218.18994140625, 469.722320556640625, 1.151916384696960449, 0, 0, 0.544638633728027343, 0.838670849800109863, 120, 255, 1, "", 47720, NULL), +(33164, 180765, 1, 0, 0, 1, 1, 9888.87109375, 2352.4013671875, 1326.3707275390625, 2.583080768585205078, 0, 0, 0.961260795593261718, 0.275640487670898437, 120, 255, 1, "", 52237, NULL), +(33165, 180765, 1, 0, 0, 1, 1, 9748.8154296875, 2482.107666015625, 1348.6822509765625, 1.466075778007507324, 0, 0, 0.669130325317382812, 0.74314504861831665, 120, 255, 1, "", 52237, NULL), +(43232, 180878, 1, 0, 0, 1, 1, 7595.61474609375, -2225.548095703125, 468.6796875, 1.692969322204589843, 0, 0, 0.748955726623535156, 0.662620067596435546, 120, 255, 1, "", 47720, NULL), +(43236, 180768, 1, 0, 0, 1, 1, 7704.1650390625, -2239.710693359375, 456.548248291015625, 3.001946926116943359, 0, 0, 0.997563362121582031, 0.069766148924827575, 120, 255, 1, "", 47720, NULL), +(43237, 180768, 1, 0, 0, 1, 1, 7644.640625, -2214.369873046875, 464.141815185546875, 5.811946868896484375, 0, 0, -0.2334451675415039, 0.972369968891143798, 120, 255, 1, "", 47720, NULL), +(43238, 180768, 1, 0, 0, 1, 1, 7711.921875, -2226.815673828125, 454.9150390625, 0.15707901120185852, 0, 0, 0.078458786010742187, 0.996917366981506347, 120, 255, 1, "", 47720, NULL), +(43239, 180765, 1, 0, 0, 1, 1, 7879.61279296875, -2478.378662109375, 498.8212890625, 4.241150379180908203, 0, 0, -0.85264015197753906, 0.522498607635498046, 120, 255, 1, "", 47720, NULL), +(43240, 180765, 1, 0, 0, 1, 1, 10154.861328125, 2510.7705078125, 1348.6934814453125, 5.148722648620605468, 0, 0, -0.53729915618896484, 0.843391716480255126, 120, 255, 1, "", 47720, NULL), +(43241, 180765, 1, 0, 0, 1, 1, 9645.1025390625, 2439.84423828125, 1356.5269775390625, 5.235987663269042968, 0, 0, -0.5, 0.866025388240814208, 120, 255, 1, "", 52237, NULL), +(43242, 180765, 1, 0, 0, 1, 1, 9878.228515625, 2481.73681640625, 1337.4749755859375, 2.426007747650146484, 0, 0, 0.936672210693359375, 0.350207358598709106, 120, 255, 1, "", 52237, NULL), +(43243, 180766, 1, 0, 0, 1, 1, 7591.0703125, -2215.048583984375, 471.042877197265625, 5.567600727081298828, 0, 0, -0.35020732879638671, 0.936672210693359375, 120, 255, 1, "", 47720, NULL), +(43244, 180778, 1, 0, 0, 1, 1, 7604.17041015625, -2204.446533203125, 473.183746337890625, 0.785396754741668701, 0, 0, 0.38268280029296875, 0.923879802227020263, 120, 255, 1, "", 47720, NULL), +(43245, 180768, 1, 0, 0, 1, 1, 7613.15087890625, -2234.594970703125, 467.0772705078125, 5.742135047912597656, 0, 0, -0.26723766326904296, 0.96363067626953125, 120, 255, 1, "", 47720, NULL), +(43246, 180878, 1, 0, 0, 1, 1, 7593.64697265625, -2218.996337890625, 469.53369140625, 2.652894020080566406, 0, 0, 0.970294952392578125, 0.241925001144409179, 120, 255, 1, "", 47720, NULL), +(43248, 180768, 1, 0, 0, 1, 1, 7581.205078125, -2248.315673828125, 467.3194580078125, 5.532694816589355468, 0, 0, -0.3665008544921875, 0.93041771650314331, 120, 255, 1, "", 47720, NULL), +(43249, 180878, 1, 0, 0, 1, 1, 7594.47412109375, -2225.946533203125, 469.0274658203125, 3.612837791442871093, 0, 0, -0.97236919403076171, 0.233448356389999389, 120, 255, 1, "", 47720, NULL), +(43250, 180768, 1, 0, 0, 1, 1, 7935.84130859375, -2310.791748046875, 474.185211181640625, 5.567600727081298828, 0, 0, -0.35020732879638671, 0.936672210693359375, 120, 255, 1, "", 47720, NULL), +(43251, 180768, 1, 0, 0, 1, 1, 7532.73779296875, -2139.89697265625, 483.88519287109375, 2.70525527000427246, 0, 0, 0.97629547119140625, 0.216442063450813293, 120, 255, 1, "", 47720, NULL), +(43252, 180768, 1, 0, 0, 1, 1, 7930.111328125, -2321.35107421875, 473.36077880859375, 2.932138919830322265, 0, 0, 0.994521141052246093, 0.104535527527332305, 120, 255, 1, "", 47720, NULL), +(43253, 180768, 1, 0, 0, 1, 1, 7598.20166015625, -2233.017578125, 467.86376953125, 2.426007747650146484, 0, 0, 0.936672210693359375, 0.350207358598709106, 120, 255, 1, "", 47720, NULL), +(43254, 180766, 1, 0, 0, 1, 1, 7587.8974609375, -2197.061279296875, 476.1669921875, 2.862335443496704101, 0, 0, 0.990267753601074218, 0.139175355434417724, 120, 255, 1, "", 47720, NULL), +(43255, 180778, 1, 0, 0, 1, 1, 7613.83251953125, -2233.686279296875, 467.286407470703125, 5.619962215423583984, 0, 0, -0.32556724548339843, 0.945518851280212402, 120, 255, 1, "", 47720, NULL), +(43256, 180878, 1, 0, 0, 1, 1, 7592.4931640625, -2222.166259765625, 469.499298095703125, 5.323255538940429687, 0, 0, -0.46174812316894531, 0.887011110782623291, 120, 255, 1, "", 47720, NULL), +(43259, 180878, 1, 0, 0, 1, 1, 7591.8349609375, -2218.63818359375, 469.93060302734375, 1.291541695594787597, 0, 0, 0.60181427001953125, 0.798636078834533691, 120, 255, 1, "", 47720, NULL), +(43260, 180778, 1, 0, 0, 1, 1, 7603.4130859375, -2227.890869140625, 468.2110595703125, 5.515241622924804687, 0, 0, -0.37460613250732421, 0.927184045314788818, 120, 255, 1, "", 47720, NULL), +(43261, 180770, 1, 0, 0, 1, 1, 7595.04345703125, -2218.2587890625, 474.4747314453125, 0.785396754741668701, 0, 0, 0.38268280029296875, 0.923879802227020263, 120, 255, 1, "", 47720, NULL), +(43262, 180768, 1, 0, 0, 1, 1, 7745.27685546875, -2264.59765625, 455.249725341796875, 2.565631866455078125, 0, 0, 0.958819389343261718, 0.284016460180282592, 120, 255, 1, "", 47720, NULL), +(43263, 180767, 1, 0, 0, 1, 1, 7860.251953125, -2568.447998046875, 501.588104248046875, 6.056293010711669921, 0, 0, -0.11320304870605468, 0.993571877479553222, 120, 255, 1, "", 47720, NULL), +(43264, 180767, 1, 0, 0, 1, 1, 7861.15185546875, -2519.1142578125, 496.651702880859375, 0.174532130360603332, 0, 0, 0.087155342102050781, 0.996194720268249511, 120, 255, 1, "", 47720, NULL), +(43265, 180765, 1, 0, 0, 1, 1, 7846.74658203125, -2595.48095703125, 494.174102783203125, 3.176533222198486328, 0, 0, -0.999847412109375, 0.017469281330704689, 120, 255, 1, "", 52237, NULL), +(43266, 180767, 1, 0, 0, 1, 1, 8022.0634765625, -2671.010986328125, 521.28167724609375, 2.495818138122558593, 0, 0, 0.948323249816894531, 0.317305892705917358, 120, 255, 1, "", 47720, NULL), +(43267, 180768, 1, 0, 0, 1, 1, 7692.51416015625, -2237.527587890625, 457.552581787109375, 3.054326534271240234, 0, 0, 0.999048233032226562, 0.043619260191917419, 120, 255, 1, "", 47720, NULL), +(43268, 180765, 1, 0, 0, 1, 1, 9732.6845703125, 2612.33544921875, 1362.8448486328125, 0.366517573595046997, 0, 0, 0.182234764099121093, 0.98325502872467041, 120, 255, 1, "", 52237, NULL), +(43270, 180765, 1, 0, 0, 1, 1, 9796.5537109375, 2483.214599609375, 1348.6416015625, 0.052358884364366531, 0, 0, 0.02617645263671875, 0.999657332897186279, 120, 255, 1, "", 52237, NULL), +(43272, 180765, 1, 0, 0, 1, 1, 9737.1767578125, 2440.220947265625, 1362.8597412109375, 0.226892471313476562, 0, 0, 0.113203048706054687, 0.993571877479553222, 120, 255, 1, "", 52237, NULL), +(43273, 180765, 1, 0, 0, 1, 1, 9867.7626953125, 2375.509033203125, 1345.2239990234375, 3.577930212020874023, 0, 0, -0.97629547119140625, 0.216442063450813293, 120, 255, 1, "", 52237, NULL), +(43274, 180758, 1, 0, 0, 1, 1, 9987.015625, 2308.417236328125, 1335.3905029296875, 1.448621988296508789, 0, 0, 0.662619590759277343, 0.748956084251403808, 120, 255, 1, "", 47720, NULL), +(43275, 180765, 1, 0, 0, 1, 1, 10217.40625, 2502.561767578125, 1366.01025390625, 3.700104713439941406, 0, 0, -0.96126079559326171, 0.275640487670898437, 120, 255, 1, "", 52237, NULL), +(43277, 180758, 1, 0, 0, 1, 1, 9867.8564453125, 2328.986083984375, 1325.4254150390625, 2.548179388046264648, 0, 0, 0.956304550170898437, 0.292372345924377441, 120, 255, 1, "", 52237, NULL), +(43278, 180758, 1, 0, 0, 1, 1, 9920.5390625, 2307.413330078125, 1335.3857421875, 1.745326757431030273, 0, 0, 0.766043663024902343, 0.642788589000701904, 120, 255, 1, "", 47720, NULL), +(43279, 180773, 1, 0, 0, 1, 1, 9952.4931640625, 2258.6494140625, 1349.288330078125, 4.729844093322753906, 0, 0, -0.70090866088867187, 0.713251054286956787, 120, 255, 1, "", 52237, NULL), +(43280, 180765, 1, 0, 0, 1, 1, 10213.64453125, 2498.30810546875, 1375.355224609375, 5.393068790435791015, 0, 0, -0.43051052093505859, 0.902585566043853759, 120, 255, 1, "", 52237, NULL), +(43281, 180768, 1, 0, 0, 1, 1, 7591.91162109375, -2223.405517578125, 469.710235595703125, 2.70525527000427246, 0, 0, 0.97629547119140625, 0.216442063450813293, 120, 255, 1, "", 47720, NULL), +(43283, 180878, 1, 0, 0, 1, 1, 7591.939453125, -2222.578125, 469.656585693359375, 0.418878614902496337, 0, 0, 0.207911491394042968, 0.978147625923156738, 120, 255, 1, "", 47720, NULL), +(43284, 180878, 1, 0, 0, 1, 1, 7594.3681640625, -2222.910888671875, 469.133514404296875, 1.972219824790954589, 0, 0, 0.83388519287109375, 0.55193793773651123, 120, 255, 1, "", 47720, NULL), +(43285, 180878, 1, 0, 0, 1, 1, 7593.369140625, -2219.572509765625, 469.5224609375, 5.811946868896484375, 0, 0, -0.2334451675415039, 0.972369968891143798, 120, 255, 1, "", 47720, NULL), +(43286, 180878, 1, 0, 0, 1, 1, 7591.345703125, -2218.072509765625, 470.12451171875, 2.548179388046264648, 0, 0, 0.956304550170898437, 0.292372345924377441, 120, 255, 1, "", 47720, NULL), +(43287, 180878, 1, 0, 0, 1, 1, 7595.8837890625, -2221.744873046875, 469.03900146484375, 6.108653545379638671, 0, 0, -0.08715534210205078, 0.996194720268249511, 120, 255, 1, "", 47720, NULL), +(43288, 180768, 1, 0, 0, 1, 1, 7608.7177734375, -2240.2802734375, 467.18109130859375, 2.600535154342651367, 0, 0, 0.963629722595214843, 0.26724100112915039, 120, 255, 1, "", 47720, NULL), +(43289, 180878, 1, 0, 0, 1, 1, 7593.025390625, -2224.009033203125, 469.454742431640625, 6.14356088638305664, 0, 0, -0.06975555419921875, 0.997564136981964111, 120, 255, 1, "", 47720, NULL), +(43292, 180768, 1, 0, 0, 1, 1, 7842.76318359375, -2302.04345703125, 458.26214599609375, 5.986480236053466796, 0, 0, -0.14780902862548828, 0.989015936851501464, 120, 255, 1, "", 47720, NULL), +(43293, 180770, 1, 0, 0, 1, 1, 7795.1005859375, -2575.12158203125, 496.78704833984375, 0.174532130360603332, 0, 0, 0.087155342102050781, 0.996194720268249511, 120, 255, 1, "", 47720, NULL), +(43294, 180778, 1, 0, 0, 1, 1, 7938.4375, -2375.484619140625, 488.52777099609375, 4.223697185516357421, 0, 0, -0.85716724395751953, 0.515038192272186279, 120, 255, 1, "", 47720, NULL), +(43295, 180765, 1, 0, 0, 1, 1, 7941.814453125, -2383.61669921875, 496.2965087890625, 0.191985160112380981, 0, 0, 0.095845222473144531, 0.995396256446838378, 120, 255, 1, "", 47720, NULL), +(43296, 180766, 1, 0, 0, 1, 1, 7610.66845703125, -2300.421142578125, 458.17913818359375, 4.014260292053222656, 0, 0, -0.90630722045898437, 0.422619491815567016, 120, 255, 1, "", 47720, NULL), +(43297, 180878, 1, 0, 0, 1, 1, 7594.18603515625, -2227.329345703125, 469.1070556640625, 3.508116960525512695, 0, 0, -0.98325443267822265, 0.182238012552261352, 120, 255, 1, "", 47720, NULL), +(43298, 180768, 1, 0, 0, 1, 1, 7604.77880859375, -2204.8525390625, 473.018463134765625, 2.460912704467773437, 0, 0, 0.942641258239746093, 0.333807557821273803, 120, 255, 1, "", 47720, NULL), +(43299, 180878, 1, 0, 0, 1, 1, 7591.9912109375, -2219.290283203125, 469.799041748046875, 0.715584874153137207, 0, 0, 0.350207328796386718, 0.936672210693359375, 120, 255, 1, "", 47720, NULL), +(43300, 180778, 1, 0, 0, 1, 1, 7597.4140625, -2233.827392578125, 467.9375, 2.391098499298095703, 0, 0, 0.930417060852050781, 0.366502493619918823, 120, 255, 1, "", 47720, NULL), +(43303, 180878, 1, 0, 0, 1, 1, 7592.5078125, -2218.870361328125, 469.763580322265625, 5.654868602752685546, 0, 0, -0.30901622772216796, 0.95105677843093872, 120, 255, 1, "", 47720, NULL), +(43304, 180770, 1, 0, 0, 1, 1, 7816.99462890625, -2572.12158203125, 497.041900634765625, 3.24634718894958496, 0, 0, -0.99862861633300781, 0.052353221923112869, 120, 255, 1, "", 47720, NULL), +(43305, 180767, 1, 0, 0, 1, 1, 7872.55029296875, -2478.9150390625, 498.779693603515625, 1.343901276588439941, 0, 0, 0.622513771057128906, 0.78260880708694458, 120, 255, 1, "", 47720, NULL), +(43306, 180767, 1, 0, 0, 1, 1, 7898.0234375, -2476.247314453125, 498.772735595703125, 1.361356139183044433, 0, 0, 0.629320144653320312, 0.77714616060256958, 120, 255, 1, "", 47720, NULL), +(43308, 180767, 1, 0, 0, 1, 1, 7827.3369140625, -2546.64306640625, 503.596832275390625, 1.047197580337524414, 0, 0, 0.5, 0.866025388240814208, 120, 255, 1, "", 47720, NULL), +(43309, 180778, 1, 0, 0, 1, 1, 7979.65087890625, -2518.6689453125, 487.484771728515625, 2.356194972991943359, 0, 0, 0.923879623413085937, 0.382683247327804565, 120, 255, 1, "", 47720, NULL), +(43310, 180765, 1, 0, 0, 1, 1, 9883.47265625, 2496.60498046875, 1337.4749755859375, 2.391098499298095703, 0, 0, 0.930417060852050781, 0.366502493619918823, 120, 255, 1, "", 47720, NULL), +(43311, 180765, 1, 0, 0, 1, 1, 9793.9140625, 2572.302001953125, 1348.677734375, 1.658061861991882324, 0, 0, 0.737277030944824218, 0.67559051513671875, 120, 255, 1, "", 52237, NULL), +(43312, 180765, 1, 0, 0, 1, 1, 9748.2080078125, 2523.5087890625, 1360.431396484375, 5.497788906097412109, 0, 0, -0.38268280029296875, 0.923879802227020263, 120, 255, 1, "", 52237, NULL), +(43313, 180765, 1, 0, 0, 1, 1, 9866.5830078125, 2322.45654296875, 1337.2119140625, 1.239183306694030761, 0, 0, 0.580702781677246093, 0.814115643501281738, 120, 255, 1, "", 52237, NULL), +(43314, 180878, 1, 0, 0, 1, 1, 7594.82373046875, -2222.37109375, 469.123870849609375, 0.174532130360603332, 0, 0, 0.087155342102050781, 0.996194720268249511, 120, 255, 1, "", 47720, NULL), +(43315, 180778, 1, 0, 0, 1, 1, 7622.8984375, -2233.944580078125, 465.877593994140625, 6.12610626220703125, 0, 0, -0.07845878601074218, 0.996917366981506347, 120, 255, 1, "", 47720, NULL), +(43317, 180766, 1, 0, 0, 1, 1, 7562.4208984375, -2870.490478515625, 458.33978271484375, 5.742135047912597656, 0, 0, -0.26723766326904296, 0.96363067626953125, 120, 255, 1, "", 47720, NULL), +(43318, 180878, 1, 0, 0, 1, 1, 7594.4384765625, -2221.372314453125, 469.267913818359375, 4.502951622009277343, 0, 0, -0.7771453857421875, 0.629321098327636718, 120, 255, 1, "", 47720, NULL), +(43320, 180765, 1, 0, 0, 1, 1, 7914.283203125, -2481.3427734375, 496.647247314453125, 5.201082706451416015, 0, 0, -0.51503753662109375, 0.857167601585388183, 120, 255, 1, "", 47720, NULL), +(43321, 180768, 1, 0, 0, 1, 1, 7549.2646484375, -2136.742919921875, 483.712677001953125, 5.84685373306274414, 0, 0, -0.21643924713134765, 0.976296067237854003, 120, 255, 1, "", 47720, NULL), +(43323, 180765, 1, 0, 0, 1, 1, 7972.67626953125, -2380.009521484375, 496.278656005859375, 5.480334281921386718, 0, 0, -0.39073085784912109, 0.920504987239837646, 120, 255, 1, "", 52237, NULL), +(43324, 180765, 1, 0, 0, 1, 1, 7948.68603515625, -2440.544921875, 496.29095458984375, 1.884953022003173828, 0, 0, 0.809016227722167968, 0.587786316871643066, 120, 255, 1, "", 47720, NULL), +(43325, 180878, 1, 0, 0, 1, 1, 7593.986328125, -2217.054443359375, 470.032135009765625, 2.408554315567016601, 0, 0, 0.933580398559570312, 0.358368009328842163, 120, 255, 1, "", 47720, NULL), +(43327, 180878, 1, 0, 0, 1, 1, 7594.28662109375, -2225.31005859375, 469.080291748046875, 5.6897735595703125, 0, 0, -0.29237174987792968, 0.956304728984832763, 120, 255, 1, "", 47720, NULL), +(43328, 180766, 1, 0, 0, 1, 1, 7571.87841796875, -2207.409423828125, 474.81256103515625, 2.356194972991943359, 0, 0, 0.923879623413085937, 0.382683247327804565, 120, 255, 1, "", 47720, NULL), +(43329, 180766, 1, 0, 0, 1, 1, 7580.40087890625, -2214.850830078125, 473.34423828125, 2.44346022605895996, 0, 0, 0.939692497253417968, 0.34202045202255249, 120, 255, 1, "", 47720, NULL), +(43330, 180878, 1, 0, 0, 1, 1, 7593.41162109375, -2217.432861328125, 469.94964599609375, 5.183629035949707031, 0, 0, -0.52249813079833984, 0.852640450000762939, 120, 255, 1, "", 47720, NULL), +(43331, 180878, 1, 0, 0, 1, 1, 7593.84716796875, -2223.0498046875, 470.924957275390625, 5.759587764739990234, 0, 0, -0.25881862640380859, 0.965925931930541992, 120, 255, 1, "", 47720, NULL), +(43332, 180769, 1, 0, 0, 1, 1, 7853.05908203125, -2569.35986328125, 497.708160400390625, 0.104719325900077819, 0, 0, 0.052335739135742187, 0.998629570007324218, 120, 255, 1, "", 47720, NULL), +(43334, 180770, 1, 0, 0, 1, 1, 7963.98974609375, -2438.75, 495.919830322265625, 1.675513744354248046, 0, 0, 0.743144035339355468, 0.669131457805633544, 120, 255, 1, "", 47720, NULL), +(43335, 180765, 1, 0, 0, 1, 1, 7939.9775390625, -2425.346923828125, 498.42132568359375, 3.700104713439941406, 0, 0, -0.96126079559326171, 0.275640487670898437, 120, 255, 1, "", 47720, NULL), +(43337, 180765, 1, 0, 0, 1, 1, 9887.4697265625, 2347.947265625, 1337.024658203125, 0.296705186367034912, 0, 0, 0.147809028625488281, 0.989015936851501464, 120, 255, 1, "", 52237, NULL), +(43338, 180770, 1, 0, 0, 1, 1, 7594.8447265625, -2228.784423828125, 473.12646484375, 0.628316879272460937, 0, 0, 0.309016227722167968, 0.95105677843093872, 120, 255, 1, "", 47720, NULL), +(43339, 180878, 1, 0, 0, 1, 1, 7592.6337890625, -2222.82275390625, 469.502593994140625, 0.471238493919372558, 0, 0, 0.233445167541503906, 0.972369968891143798, 120, 255, 1, "", 47720, NULL), +(43340, 180878, 1, 0, 0, 1, 1, 7593.15283203125, -2223.34912109375, 469.40728759765625, 4.398232460021972656, 0, 0, -0.80901622772216796, 0.587786316871643066, 120, 255, 1, "", 47720, NULL), +(43341, 180778, 1, 0, 0, 1, 1, 7567.48779296875, -2234.310302734375, 470.226348876953125, 0.541050612926483154, 0, 0, 0.267237663269042968, 0.96363067626953125, 120, 255, 1, "", 47720, NULL), +(43342, 180878, 1, 0, 0, 1, 1, 7594.88916015625, -2220.369384765625, 469.288787841796875, 4.433136463165283203, 0, 0, -0.79863548278808593, 0.60181504487991333, 120, 255, 1, "", 47720, NULL), +(43343, 180878, 1, 0, 0, 1, 1, 7594.18603515625, -2220.700439453125, 469.344635009765625, 3.508116960525512695, 0, 0, -0.98325443267822265, 0.182238012552261352, 120, 255, 1, "", 47720, NULL), +(43345, 180765, 1, 0, 0, 1, 1, 9866.505859375, 2324.537353515625, 1330.732421875, 3.403396368026733398, 0, 0, -0.99144458770751953, 0.130528271198272705, 120, 255, 1, "", 52237, NULL), +(43347, 180768, 1, 0, 0, 1, 1, 7564.6083984375, -2160.893310546875, 480.921295166015625, 2.408554315567016601, 0, 0, 0.933580398559570312, 0.358368009328842163, 120, 255, 1, "", 47720, NULL), +(43348, 180767, 1, 0, 0, 1, 1, 7783.375, -2563.994384765625, 497.555023193359375, 3.892086982727050781, 0, 0, -0.93041706085205078, 0.366502493619918823, 120, 255, 1, "", 47720, NULL), +(43349, 180767, 1, 0, 0, 1, 1, 7891.53564453125, -2477.243408203125, 498.728240966796875, 4.886923789978027343, 0, 0, -0.64278697967529296, 0.766044974327087402, 120, 255, 1, "", 47720, NULL), +(43350, 180768, 1, 0, 0, 1, 1, 7956.47509765625, -2342.95751953125, 484.342071533203125, 4.694936752319335937, 0, 0, -0.71325016021728515, 0.700909554958343505, 120, 255, 1, "", 47720, NULL), +(43352, 180765, 1, 0, 0, 1, 1, 10158.2861328125, 2522.732421875, 1350.4752197265625, 4.537858963012695312, 0, 0, -0.76604366302490234, 0.642788589000701904, 120, 255, 1, "", 47720, NULL), +(43355, 180765, 1, 0, 0, 1, 1, 9644.5888671875, 2452.30859375, 1356.428955078125, 3.298687219619750976, 0, 0, -0.99691677093505859, 0.078466430306434631, 120, 255, 1, "", 52237, NULL), +(43356, 180765, 1, 0, 0, 1, 1, 10204.052734375, 2494.780517578125, 1364.4786376953125, 5.253442287445068359, 0, 0, -0.49242305755615234, 0.870355963706970214, 120, 255, 1, "", 47720, NULL), +(43357, 180765, 1, 0, 0, 1, 1, 10129.4970703125, 2227.018798828125, 1334.799560546875, 2.408554315567016601, 0, 0, 0.933580398559570312, 0.358368009328842163, 120, 255, 1, "", 52237, NULL), +(43358, 180765, 1, 0, 0, 1, 1, 9640.84375, 2607.803466796875, 1356.5084228515625, 4.904376029968261718, 0, 0, -0.636077880859375, 0.771624863147735595, 120, 255, 1, "", 52237, NULL), +(43359, 180768, 1, 0, 0, 1, 1, 7516.90478515625, -2122.637939453125, 485.130706787109375, 6.161012649536132812, 0, 0, -0.06104850769042968, 0.998134791851043701, 120, 255, 1, "", 47720, NULL), +(43360, 180878, 1, 0, 0, 1, 1, 7592.015625, -2223.967041015625, 469.71685791015625, 5.864306926727294921, 0, 0, -0.20791149139404296, 0.978147625923156738, 120, 255, 1, "", 47720, NULL), +(43361, 180878, 1, 0, 0, 1, 1, 7595.11962890625, -2223.009033203125, 468.992462158203125, 5.724681377410888671, 0, 0, -0.27563667297363281, 0.961261868476867675, 120, 255, 1, "", 47720, NULL), +(43363, 180766, 1, 0, 0, 1, 1, 7619.31884765625, -2221.525634765625, 469.7265625, 2.391098499298095703, 0, 0, 0.930417060852050781, 0.366502493619918823, 120, 255, 1, "", 47720, NULL), +(43364, 180765, 1, 0, 0, 1, 1, 7927.9130859375, -2401.150634765625, 498.45318603515625, 0.034906249493360519, 0, 0, 0.017452239990234375, 0.999847710132598876, 120, 255, 1, "", 47720, NULL), +(43365, 180768, 1, 0, 0, 1, 1, 7754.5927734375, -2254.286865234375, 454.4696044921875, 5.811946868896484375, 0, 0, -0.2334451675415039, 0.972369968891143798, 120, 255, 1, "", 47720, NULL), +(43366, 180769, 1, 0, 0, 1, 1, 7872.8427734375, -2514.87158203125, 497.417327880859375, 4.817109584808349609, 0, 0, -0.66913032531738281, 0.74314504861831665, 120, 255, 1, "", 47720, NULL), +(43367, 180765, 1, 0, 0, 1, 1, 7833.26025390625, -2607.046875, 503.596832275390625, 2.495818138122558593, 0, 0, 0.948323249816894531, 0.317305892705917358, 120, 255, 1, "", 47720, NULL), +(43368, 180770, 1, 0, 0, 1, 1, 7959.392578125, -2575.677001953125, 500.478668212890625, 3.106652259826660156, 0, 0, 0.999847412109375, 0.017469281330704689, 120, 255, 1, "", 47720, NULL), +(43371, 180878, 1, 0, 0, 1, 1, 7594.84130859375, -2227.708984375, 468.894805908203125, 5.794494152069091796, 0, 0, -0.24192142486572265, 0.970295846462249755, 120, 255, 1, "", 47720, NULL), +(43372, 180878, 1, 0, 0, 1, 1, 7595.1796875, -2221.735107421875, 469.1435546875, 0.977383077144622802, 0, 0, 0.469470977783203125, 0.882947921752929687, 120, 255, 1, "", 47720, NULL), +(43374, 180878, 1, 0, 0, 1, 1, 7591.861328125, -2223.28759765625, 469.715728759765625, 3.385940074920654296, 0, 0, -0.99254608154296875, 0.121869951486587524, 120, 255, 1, "", 47720, NULL), +(43375, 180878, 1, 0, 0, 1, 1, 7594.76416015625, -2228.4423828125, 468.9117431640625, 4.991643905639648437, 0, 0, -0.60181427001953125, 0.798636078834533691, 120, 255, 1, "", 47720, NULL), +(43376, 180778, 1, 0, 0, 1, 1, 7972.109375, -2371.993896484375, 488.07476806640625, 1.919861555099487304, 0, 0, 0.819151878356933593, 0.573576688766479492, 120, 255, 1, "", 47720, NULL), +(43377, 180768, 1, 0, 0, 1, 1, 7809.60791015625, -2296.2568359375, 456.076995849609375, 6.073746204376220703, 0, 0, -0.10452842712402343, 0.994521915912628173, 120, 255, 1, "", 47720, NULL), +(43378, 180767, 1, 0, 0, 1, 1, 7917.49560546875, -2513.798095703125, 496.710601806640625, 4.817109584808349609, 0, 0, -0.66913032531738281, 0.74314504861831665, 120, 255, 1, "", 47720, NULL), +(43379, 180768, 1, 0, 0, 1, 1, 7894.48193359375, -2303.823974609375, 467.555328369140625, 0.174532130360603332, 0, 0, 0.087155342102050781, 0.996194720268249511, 120, 255, 1, "", 47720, NULL), +(43380, 180770, 1, 0, 0, 1, 1, 7915.63720703125, -2496.975830078125, 496.198638916015625, 0.15707901120185852, 0, 0, 0.078458786010742187, 0.996917366981506347, 120, 255, 1, "", 47720, NULL), +(43383, 180878, 1, 0, 0, 1, 1, 7595.6630859375, -2221.080810546875, 469.143707275390625, 1.448621988296508789, 0, 0, 0.662619590759277343, 0.748956084251403808, 120, 255, 1, "", 47720, NULL), +(43384, 180778, 1, 0, 0, 1, 1, 7580.775390625, -2247.5205078125, 467.56976318359375, 1.029743075370788574, 0, 0, 0.492423057556152343, 0.870355963706970214, 120, 255, 1, "", 47720, NULL), +(43385, 180878, 1, 0, 0, 1, 1, 7593.4521484375, -2226.5439453125, 469.3345947265625, 4.869470596313476562, 0, 0, -0.64944744110107421, 0.760406434535980224, 120, 255, 1, "", 47720, NULL), +(43386, 180768, 1, 0, 0, 1, 1, 7599.50244140625, -2222.728759765625, 469.648773193359375, 0.767943859100341796, 0, 0, 0.374606132507324218, 0.927184045314788818, 120, 255, 1, "", 47720, NULL), +(43387, 180770, 1, 0, 0, 1, 1, 7957.12060546875, -2382.029541015625, 495.735992431640625, 1.727874636650085449, 0, 0, 0.760405540466308593, 0.649448513984680175, 120, 255, 1, "", 47720, NULL), +(43388, 180769, 1, 0, 0, 1, 1, 7842.369140625, -2225.351806640625, 477.5909423828125, 3.996806621551513671, 0, 0, -0.90996074676513671, 0.414694398641586303, 120, 255, 1, "", 47720, NULL), +(43389, 180765, 1, 0, 0, 1, 1, 7857.6328125, -2486.78125, 496.6710205078125, 2.775068521499633789, 0, 0, 0.983254432678222656, 0.182238012552261352, 120, 255, 1, "", 47720, NULL), +(43390, 180768, 1, 0, 0, 1, 1, 7776.41845703125, -2271.939208984375, 455.441741943359375, 5.84685373306274414, 0, 0, -0.21643924713134765, 0.976296067237854003, 120, 255, 1, "", 47720, NULL), +(43391, 180778, 1, 0, 0, 1, 1, 7949.1181640625, -2473.904296875, 487.0250244140625, 6.03883981704711914, 0, 0, -0.12186908721923828, 0.9925462007522583, 120, 255, 1, "", 47720, NULL), +-- duplicate spawn +-- (43392, 180774, 1, 0, 0, 1, 1, 9710.0869140625, 2525.442626953125, 1343.0679931640625, 0.034906249493360519, 0, 0, 0.017452239990234375, 0.999847710132598876, 120, 255, 1, "", 52237, NULL), +(43393, 180765, 1, 0, 0, 1, 1, 10018.169921875, 2502.783447265625, 1353.9842529296875, 4.537858963012695312, 0, 0, -0.76604366302490234, 0.642788589000701904, 120, 255, 1, "", 47720, NULL), +(43395, 180765, 1, 0, 0, 1, 1, 10105.505859375, 2211.2353515625, 1335.2584228515625, 4.468043327331542968, 0, 0, -0.7880105972290039, 0.615661680698394775, 120, 255, 1, "", 47720, NULL), +(43396, 180765, 1, 0, 0, 1, 1, 9645.19140625, 2427.3232421875, 1356.573486328125, 2.199114561080932617, 0, 0, 0.8910064697265625, 0.453990638256072998, 120, 255, 1, "", 52237, NULL), +(43397, 180765, 1, 0, 0, 1, 1, 9745.9970703125, 2529.46435546875, 1360.47705078125, 5.410521507263183593, 0, 0, -0.42261791229248046, 0.906307935714721679, 120, 255, 1, "", 52237, NULL), +(43399, 180765, 1, 0, 0, 1, 1, 9796.3486328125, 2531.2568359375, 1360.334228515625, 4.520402908325195312, 0, 0, -0.77162456512451171, 0.636078238487243652, 120, 255, 1, "", 52237, NULL), +-- duplicate spawn +-- (43400, 180774, 1, 0, 0, 1, 1, 9935.6044921875, 2509.44970703125, 1326.9095458984375, 3.857182979583740234, 0, 0, -0.93667125701904296, 0.350209832191467285, 120, 255, 1, "", 47720, NULL), +(43401, 180765, 1, 0, 0, 1, 1, 10160.6240234375, 2492.12890625, 1351.2200927734375, 6.195919513702392578, 0, 0, -0.04361915588378906, 0.999048233032226562, 120, 255, 1, "", 47720, NULL), +(43402, 180773, 1, 0, 0, 1, 1, 9950.4228515625, 2339.038330078125, 1355.65625, 4.747295856475830078, 0, 0, -0.69465827941894531, 0.719339847564697265, 120, 255, 1, "", 47720, NULL), +(43403, 180765, 1, 0, 0, 1, 1, 9796.611328125, 2524.587890625, 1360.374755859375, 2.321286916732788085, 0, 0, 0.917059898376464843, 0.398749500513076782, 120, 255, 1, "", 52237, NULL), +(43404, 180758, 1, 0, 0, 1, 1, 9935.4677734375, 2516.37060546875, 1321.3277587890625, 5.829400539398193359, 0, 0, -0.22495079040527343, 0.974370121955871582, 120, 255, 1, "", 47720, NULL), +(43405, 180878, 1, 0, 0, 1, 1, 7593.75341796875, -2221.61181640625, 469.32958984375, 1.413715124130249023, 0, 0, 0.649447441101074218, 0.760406434535980224, 120, 255, 1, "", 47720, NULL), +(43406, 180878, 1, 0, 0, 1, 1, 7595.37841796875, -2228.134033203125, 468.7188720703125, 4.520402908325195312, 0, 0, -0.77162456512451171, 0.636078238487243652, 120, 255, 1, "", 47720, NULL), +(43407, 180878, 1, 0, 0, 1, 1, 7592.68408203125, -2219.46435546875, 469.63720703125, 3.490667104721069335, 0, 0, -0.98480701446533203, 0.173652306199073791, 120, 255, 1, "", 47720, NULL), +(43408, 180878, 1, 0, 0, 1, 1, 7594.18408203125, -2228.040771484375, 469.101959228515625, 3.839725255966186523, 0, 0, -0.93969249725341796, 0.34202045202255249, 120, 255, 1, "", 47720, NULL), +(43409, 180878, 1, 0, 0, 1, 1, 7594.2412109375, -2222.514892578125, 470.96923828125, 0.383971005678176879, 0, 0, 0.190808296203613281, 0.981627285480499267, 120, 255, 1, "", 47720, NULL), +(43410, 180778, 1, 0, 0, 1, 1, 7622.6787109375, -2243.350341796875, 464.331695556640625, 3.316144466400146484, 0, 0, -0.99619388580322265, 0.087165042757987976, 120, 255, 1, "", 47720, NULL), +(43411, 180768, 1, 0, 0, 1, 1, 7622.81884765625, -2242.0986328125, 464.280609130859375, 3.106652259826660156, 0, 0, 0.999847412109375, 0.017469281330704689, 120, 255, 1, "", 47720, NULL), +(43414, 180770, 1, 0, 0, 1, 1, 7830.8291015625, -2448.31005859375, 501.73199462890625, 1.588248729705810546, 0, 0, 0.713250160217285156, 0.700909554958343505, 120, 255, 1, "", 47720, NULL), +(43415, 180767, 1, 0, 0, 1, 1, 8003.72314453125, -2672.30615234375, 538.656494140625, 4.712389945983886718, 0, 0, -0.70710659027099609, 0.707106947898864746, 120, 255, 1, "", 52237, NULL), +(43419, 180878, 1, 0, 0, 1, 1, 7592.54150390625, -2223.4970703125, 469.563262939453125, 1.117009282112121582, 0, 0, 0.529918670654296875, 0.84804844856262207, 120, 255, 1, "", 47720, NULL), +(43421, 180878, 1, 0, 0, 1, 1, 7596.2177734375, -2225.9638671875, 468.526214599609375, 0.226892471313476562, 0, 0, 0.113203048706054687, 0.993571877479553222, 120, 255, 1, "", 47720, NULL), +(43422, 180767, 1, 0, 0, 1, 1, 7936.6162109375, -2400.23193359375, 498.442169189453125, 1.815141916275024414, 0, 0, 0.788010597229003906, 0.615661680698394775, 120, 255, 1, "", 47720, NULL), +(43423, 180765, 1, 0, 0, 1, 1, 7887.9072265625, -2501.87109375, 501.987457275390625, 4.97418975830078125, 0, 0, -0.60876083374023437, 0.793353796005249023, 120, 255, 1, "", 47720, NULL), +(43424, 180768, 1, 0, 0, 1, 1, 7845.0322265625, -2318.163818359375, 458.59619140625, 2.897245407104492187, 0, 0, 0.99254608154296875, 0.121869951486587524, 120, 255, 1, "", 47720, NULL), +(43425, 180765, 1, 0, 0, 1, 1, 7871.5791015625, -2470.440673828125, 498.78564453125, 0.226892471313476562, 0, 0, 0.113203048706054687, 0.993571877479553222, 120, 255, 1, "", 47720, NULL), +(43426, 180765, 1, 0, 0, 1, 1, 7931.38623046875, -2426.612548828125, 498.436859130859375, 0.680676698684692382, 0, 0, 0.333806037902832031, 0.942641794681549072, 120, 255, 1, "", 47720, NULL), +(43427, 180765, 1, 0, 0, 1, 1, 8013.81103515625, -2638.38232421875, 521.009033203125, 0.401424884796142578, 0, 0, 0.199367523193359375, 0.979924798011779785, 120, 255, 1, "", 47720, NULL), +(43428, 180768, 1, 0, 0, 1, 1, 7592.08349609375, -2190.99609375, 475.2554931640625, 2.809975385665893554, 0, 0, 0.986285209655761718, 0.165049895644187927, 120, 255, 1, "", 47720, NULL), +(43429, 180768, 1, 0, 0, 1, 1, 7766.8671875, -2281.903564453125, 455.66748046875, 2.408554315567016601, 0, 0, 0.933580398559570312, 0.358368009328842163, 120, 255, 1, "", 47720, NULL), +(43430, 180766, 1, 0, 0, 1, 1, 7951.32470703125, -2617.365478515625, 493.063262939453125, 4.607671737670898437, 0, 0, -0.74314403533935546, 0.669131457805633544, 120, 255, 1, "", 47720, NULL), +(43431, 180770, 1, 0, 0, 1, 1, 7859.38818359375, -2502.979248046875, 496.135101318359375, 3.281238555908203125, 0, 0, -0.99756336212158203, 0.069766148924827575, 120, 255, 1, "", 47720, NULL), +(43433, 180766, 1, 0, 0, 1, 1, 7579.470703125, -2330.606689453125, 457.67327880859375, 1.064649581909179687, 0, 0, 0.507537841796875, 0.861629426479339599, 120, 255, 1, "", 47720, NULL), +(43435, 180769, 1, 0, 0, 1, 1, 7971.7734375, -2392.21435546875, 496.749908447265625, 0.139624491333961486, 0, 0, 0.06975555419921875, 0.997564136981964111, 120, 255, 1, "", 47720, NULL), +(43436, 180766, 1, 0, 0, 1, 1, 7626.09375, -2252.974853515625, 460.85943603515625, 1.117009282112121582, 0, 0, 0.529918670654296875, 0.84804844856262207, 120, 255, 1, "", 47720, NULL), +(43438, 180766, 1, 0, 0, 1, 1, 7949.07275390625, -2627.794677734375, 493.04400634765625, 4.48549652099609375, 0, 0, -0.7826080322265625, 0.622514784336090087, 120, 255, 1, "", 47720, NULL), +(43439, 180770, 1, 0, 0, 1, 1, 7830.74853515625, -2474.5625, 501.845489501953125, 4.747295856475830078, 0, 0, -0.69465827941894531, 0.719339847564697265, 120, 255, 1, "", 47720, NULL), +(43440, 180768, 1, 0, 0, 1, 1, 7944.29541015625, -2346.669677734375, 482.910552978515625, 1.727874636650085449, 0, 0, 0.760405540466308593, 0.649448513984680175, 120, 255, 1, "", 47720, NULL), +(43441, 180768, 1, 0, 0, 1, 1, 7491.61572265625, -2129.403564453125, 489.297210693359375, 3.211419343948364257, 0, 0, -0.9993906021118164, 0.034906134009361267, 120, 255, 1, "", 47720, NULL), +(43442, 180765, 1, 0, 0, 1, 1, 7831.9541015625, -2594.871826171875, 503.596832275390625, 0.663223206996917724, 0, 0, 0.325567245483398437, 0.945518851280212402, 120, 255, 1, "", 47720, NULL), +(43443, 180769, 1, 0, 0, 1, 1, 7905.2880859375, -2511.538330078125, 497.396331787109375, 4.48549652099609375, 0, 0, -0.7826080322265625, 0.622514784336090087, 120, 255, 1, "", 47720, NULL), +(43444, 180758, 1, 0, 0, 1, 1, 7969.65185546875, -2388.297119140625, 493.36566162109375, 3.420850038528442382, 0, 0, -0.99026775360107421, 0.139175355434417724, 120, 255, 1, "", 47720, NULL), +(43445, 180761, 1, 0, 0, 1, 1, 7901.07373046875, -2511.068603515625, 493.828521728515625, 1.710421562194824218, 0, 0, 0.754709243774414062, 0.656059443950653076, 120, 255, 1, "", 47720, NULL), +(43446, 180765, 1, 0, 0, 1, 1, 7897.0322265625, -2467.569580078125, 498.766937255859375, 4.066620349884033203, 0, 0, -0.89493370056152343, 0.44619917869567871, 120, 255, 1, "", 47720, NULL), +(43447, 180765, 1, 0, 0, 1, 1, 7826.32373046875, -2535.32666015625, 503.596832275390625, 2.303830623626708984, 0, 0, 0.913544654846191406, 0.406738430261611938, 120, 255, 1, "", 52237, NULL), +(43448, 180778, 1, 0, 0, 1, 1, 7879.72216796875, -2588.08056640625, 486.89556884765625, 1.32644820213317871, 0, 0, 0.615660667419433593, 0.788011372089385986, 120, 255, 1, "", 47720, NULL), +(43452, 180767, 1, 0, 0, 1, 1, 7948.68603515625, -2440.544921875, 496.29095458984375, 1.884953022003173828, 0, 0, 0.809016227722167968, 0.587786316871643066, 120, 255, 1, "", 47720, NULL), +(43453, 180767, 1, 0, 0, 1, 1, 7792.21875, -2575.030029296875, 504.42974853515625, 3.78736734390258789, 0, 0, -0.94832324981689453, 0.317305892705917358, 120, 255, 1, "", 47720, NULL), +(7235, 180775, 571, 0, 0, 1, 1, 5862.43408203125, 606.05731201171875, 654.38897705078125, 2.827429771423339843, 0, 0, 0.987688064575195312, 0.156436234712600708, 120, 255, 1, "", 47720, NULL), +(79584, 180766, 571, 0, 0, 1, 1, 5827.36376953125, 638.95635986328125, 647.21160888671875, 1.082102894783020019, 0, 0, 0.51503753662109375, 0.857167601585388183, 120, 255, 1, "", 47720, NULL), +(79585, 180766, 571, 0, 0, 1, 1, 5827.50244140625, 645.6351318359375, 647.14166259765625, 1.937312245368957519, 0, 0, 0.824125289916992187, 0.566407561302185058, 120, 255, 1, "", 47720, NULL), +(79586, 180766, 571, 0, 0, 1, 1, 5821.810546875, 633.41143798828125, 647.1953125, 0, 0, 0, 0, 1, 120, 255, 1, "", 47720, NULL), +(79587, 180766, 571, 0, 0, 1, 1, 5822.48583984375, 652.9246826171875, 647.2120361328125, 3.071766138076782226, 0, 0, 0.999390602111816406, 0.034906134009361267, 120, 255, 1, "", 47720, NULL), +(79588, 180766, 571, 0, 0, 1, 1, 5815.52099609375, 643.16650390625, 647.19677734375, 4.642575740814208984, 0, 0, -0.731353759765625, 0.681998312473297119, 120, 255, 1, "", 47720, NULL), +(79589, 180766, 571, 0, 0, 1, 1, 5818.2900390625, 648.65863037109375, 647.17303466796875, 4.118979454040527343, 0, 0, -0.88294696807861328, 0.469472706317901611, 120, 255, 1, "", 47720, NULL), +(79590, 180766, 571, 0, 0, 1, 1, 5818.40576171875, 635.2548828125, 647.18548583984375, 5.515241622924804687, 0, 0, -0.37460613250732421, 0.927184045314788818, 120, 255, 1, "", 47720, NULL), +(79591, 180766, 571, 0, 0, 1, 1, 5816.46875, 638.81524658203125, 647.1978759765625, 5.113816738128662109, 0, 0, -0.55193614959716796, 0.833886384963989257, 120, 255, 1, "", 47720, NULL), +(79592, 180765, 571, 0, 0, 1, 1, 5862.578125, 608.978515625, 622.72503662109375, 3.52557229995727539, 0, 0, -0.98162651062011718, 0.190812408924102783, 120, 255, 1, "", 47720, NULL), +(79593, 180765, 571, 0, 0, 1, 1, 5818.55712890625, 689.67535400390625, 617.53765869140625, 5.811946868896484375, 0, 0, -0.2334451675415039, 0.972369968891143798, 120, 255, 1, "", 47720, NULL), +(79600, 180878, 571, 0, 0, 1, 1, 5831.14306640625, 655.094970703125, 647.12396240234375, 5.567600727081298828, 0, 0, -0.35020732879638671, 0.936672210693359375, 120, 255, 1, "", 47720, NULL), +(79601, 180878, 571, 0, 0, 1, 1, 5830.4267578125, 655.5618896484375, 647.19384765625, 2.687806606292724609, 0, 0, 0.974370002746582031, 0.224951311945915222, 120, 255, 1, "", 47720, NULL), +(79602, 180878, 571, 0, 0, 1, 1, 5829.47802734375, 652.81414794921875, 647.388916015625, 5.585053920745849609, 0, 0, -0.34202003479003906, 0.939692676067352294, 120, 255, 1, "", 47720, NULL), +(79603, 180878, 571, 0, 0, 1, 1, 5829.29296875, 656.30401611328125, 647.3472900390625, 2.129300594329833984, 0, 0, 0.874619483947753906, 0.484810054302215576, 120, 255, 1, "", 47720, NULL), +(79604, 180878, 571, 0, 0, 1, 1, 5830.0029296875, 656.1676025390625, 647.27935791015625, 3.543023586273193359, 0, 0, -0.97992420196533203, 0.199370384216308593, 120, 255, 1, "", 47720, NULL), +(79605, 180878, 571, 0, 0, 1, 1, 5829.67138671875, 655.49822998046875, 647.284423828125, 4.502951622009277343, 0, 0, -0.7771453857421875, 0.629321098327636718, 120, 255, 1, "", 47720, NULL), +(79606, 180878, 571, 0, 0, 1, 1, 5828.8681640625, 653.24737548828125, 647.4296875, 4.869470596313476562, 0, 0, -0.64944744110107421, 0.760406434535980224, 120, 255, 1, "", 47720, NULL), +(79744, 180879, 571, 0, 0, 1, 1, 5829.638671875, 654.44268798828125, 647.3204345703125, 5.6897735595703125, 0, 0, -0.29237174987792968, 0.956304728984832763, 120, 255, 1, "", 47720, NULL), +(79745, 180767, 571, 0, 0, 1, 1, 5867.94140625, 616.2357177734375, 622.7247314453125, 2.460912704467773437, 0, 0, 0.942641258239746093, 0.333807557821273803, 120, 255, 1, "", 47720, NULL), +(79748, 180767, 571, 0, 0, 1, 1, 5814.17431640625, 684.25469970703125, 617.58087158203125, 4.45059061050415039, 0, 0, -0.79335308074951171, 0.608761727809906005, 120, 255, 1, "", 47720, NULL), +(79753, 180880, 571, 0, 0, 1, 1, 5828.15625, 651.35687255859375, 647.5218505859375, 3.420850038528442382, 0, 0, -0.99026775360107421, 0.139175355434417724, 120, 255, 1, "", 47720, NULL), +(79754, 180881, 571, 0, 0, 1, 1, 5829.0966796875, 651.77496337890625, 647.44879150390625, 4.799657344818115234, 0, 0, -0.67558956146240234, 0.737277925014495849, 120, 255, 1, "", 47720, NULL), +(79755, 180882, 571, 0, 0, 1, 1, 5829.01708984375, 651.12408447265625, 647.47381591796875, 3.769911527633666992, 0, 0, -0.95105648040771484, 0.309017121791839599, 120, 255, 1, "", 47720, NULL), +(79756, 180883, 571, 0, 0, 1, 1, 5828.4619140625, 652.31475830078125, 647.46356201171875, 5.445427894592285156, 0, 0, -0.40673637390136718, 0.913545548915863037, 120, 255, 1, "", 47720, NULL), +(79757, 180883, 571, 0, 0, 1, 1, 5828.0126953125, 651.92218017578125, 647.506591796875, 5.811946868896484375, 0, 0, -0.2334451675415039, 0.972369968891143798, 120, 255, 1, "", 47720, NULL), +(79767, 180768, 530, 0, 0, 1, 1, -1813.065185546875, 5493.69140625, -12.4281415939331054, 4.433136463165283203, 0, 0, -0.79863548278808593, 0.60181504487991333, 120, 255, 1, "", 52237, NULL), +(79768, 180768, 530, 0, 0, 1, 1, -1810.5294189453125, 5502.1240234375, -12.4281387329101562, 3.560472726821899414, 0, 0, -0.97814750671386718, 0.207912087440490722, 120, 255, 1, "", 52237, NULL), +(79769, 180768, 530, 0, 0, 1, 1, -1797.3834228515625, 5484.87890625, -12.4281387329101562, 0.872663915157318115, 0, 0, 0.422617912292480468, 0.906307935714721679, 120, 255, 1, "", 52237, NULL), +(79770, 180768, 530, 0, 0, 1, 1, -1802.3717041015625, 5503.94384765625, -12.4281387329101562, 2.879789113998413085, 0, 0, 0.991444587707519531, 0.130528271198272705, 120, 255, 1, "", 52237, NULL), +(79771, 180768, 530, 0, 0, 1, 1, -1804.870361328125, 5483.97509765625, -12.428140640258789, 0.122172988951206207, 0, 0, 0.061048507690429687, 0.998134791851043701, 120, 255, 1, "", 52237, NULL), +(79772, 180768, 530, 0, 0, 1, 1, -1796.43896484375, 5505.65283203125, -12.428135871887207, 3.822272777557373046, 0, 0, -0.94264125823974609, 0.333807557821273803, 120, 255, 1, "", 52237, NULL), +(79773, 180768, 530, 0, 0, 1, 1, -1791.092041015625, 5498.2236328125, -12.4281387329101562, 0.628316879272460937, 0, 0, 0.309016227722167968, 0.95105677843093872, 120, 255, 1, "", 52237, NULL), +(79774, 180768, 530, 0, 0, 1, 1, -1793.7183837890625, 5492.51953125, -12.4281425476074218, 1.274088263511657714, 0, 0, 0.594821929931640625, 0.80385744571685791, 120, 255, 1, "", 52237, NULL), +(79775, 180768, 530, 0, 0, 1, 1, 9487.0166015625, -7295.94970703125, 14.34291744232177734, 1.274088263511657714, 0, 0, 0.594821929931640625, 0.80385744571685791, 120, 255, 1, "", 47720, NULL), +(79776, 180768, 530, 0, 0, 1, 1, 9484.23828125, -7301.35498046875, 14.382415771484375, 0.872663915157318115, 0, 0, 0.422617912292480468, 0.906307935714721679, 120, 255, 1, "", 47720, NULL), +(79777, 180768, 530, 0, 0, 1, 1, 9489.6083984375, -7291.33447265625, 14.31547355651855468, 0.628316879272460937, 0, 0, 0.309016227722167968, 0.95105677843093872, 120, 255, 1, "", 47720, NULL), +(79778, 180768, 530, 0, 0, 1, 1, 9477.1513671875, -7304.06787109375, 14.36638545989990234, 0.122172988951206207, 0, 0, 0.061048507690429687, 0.998134791851043701, 120, 255, 1, "", 47720, NULL), +(79779, 180768, 530, 0, 0, 1, 1, 9486.314453125, -7286.40966796875, 14.28697395324707031, 3.822272777557373046, 0, 0, -0.94264125823974609, 0.333807557821273803, 120, 255, 1, "", 47720, NULL), +(79780, 180768, 530, 0, 0, 1, 1, 9475.41015625, -7288.1484375, 14.25112724304199218, 3.560472726821899414, 0, 0, -0.97814750671386718, 0.207912087440490722, 120, 255, 1, "", 47720, NULL), +(79781, 180768, 530, 0, 0, 1, 1, 9481.2890625, -7287.1875, 14.26699542999267578, 2.879789113998413085, 0, 0, 0.991444587707519531, 0.130528271198272705, 120, 255, 1, "", 47720, NULL), +(79782, 180768, 530, 0, 0, 1, 1, 9470.736328125, -7293.92431640625, 14.30252742767333984, 4.433136463165283203, 0, 0, -0.79863548278808593, 0.60181504487991333, 120, 255, 1, "", 47720, NULL), +(79783, 180766, 530, 0, 0, 1, 1, -1784.918212890625, 5443.966796875, -12.428140640258789, 4.084071159362792968, 0, 0, -0.8910064697265625, 0.453990638256072998, 120, 255, 1, "", 47966, NULL), +(79784, 180766, 530, 0, 0, 1, 1, -1782.339599609375, 5432.16845703125, -12.4281415939331054, 5.864306926727294921, 0, 0, -0.20791149139404296, 0.978147625923156738, 120, 255, 1, "", 47966, NULL), +(79785, 180766, 530, 0, 0, 1, 1, -1779.8817138671875, 5450.220703125, -12.4281415939331054, 3.43830275535583496, 0, 0, -0.98901557922363281, 0.147811368107795715, 120, 255, 1, "", 47966, NULL), +(79786, 180766, 530, 0, 0, 1, 1, -1771.7847900390625, 5447.63525390625, -12.4281415939331054, 2.740161895751953125, 0, 0, 0.979924201965332031, 0.199370384216308593, 120, 255, 1, "", 47966, NULL), +(79787, 180766, 530, 0, 0, 1, 1, -1768.4993896484375, 5435.30029296875, -12.4281377792358398, 0.785396754741668701, 0, 0, 0.38268280029296875, 0.923879802227020263, 120, 255, 1, "", 47966, NULL), +(79788, 180766, 530, 0, 0, 1, 1, -1774.7735595703125, 5428.89794921875, -12.428140640258789, 0.226892471313476562, 0, 0, 0.113203048706054687, 0.993571877479553222, 120, 255, 1, "", 47966, NULL), +(79789, 180766, 530, 0, 0, 1, 1, -1764.9107666015625, 5447.4736328125, -12.4281415939331054, 3.420850038528442382, 0, 0, -0.99026775360107421, 0.139175355434417724, 120, 255, 1, "", 52237, NULL), +(79790, 180766, 530, 0, 0, 1, 1, -1762.984130859375, 5438.720703125, -12.4281415939331054, 0.15707901120185852, 0, 0, 0.078458786010742187, 0.996917366981506347, 120, 255, 1, "", 47966, NULL), +(79791, 180778, 530, 0, 0, 1, 1, -1807.913330078125, 5485.73681640625, -12.4281396865844726, 0.750490784645080566, 0, 0, 0.3665008544921875, 0.93041771650314331, 120, 255, 1, "", 52237, NULL), +(79792, 180778, 530, 0, 0, 1, 1, -1812.186279296875, 5490.322265625, -12.4281377792358398, 3.874631166458129882, 0, 0, -0.93358039855957031, 0.358368009328842163, 120, 255, 1, "", 52237, NULL), +(79793, 180778, 530, 0, 0, 1, 1, 9471.935546875, -7298.0556640625, 14.34921741485595703, 3.874631166458129882, 0, 0, -0.93358039855957031, 0.358368009328842163, 120, 255, 1, "", 47720, NULL), +(79794, 180778, 530, 0, 0, 1, 1, 9474.5595703125, -7301.3525390625, 14.37096500396728515, 0.750490784645080566, 0, 0, 0.3665008544921875, 0.93041771650314331, 120, 255, 1, "", 47720, NULL), +(79795, 180878, 530, 0, 0, 1, 1, -1790.337646484375, 5498.74365234375, -12.428140640258789, 3.857182979583740234, 0, 0, -0.93667125701904296, 0.350209832191467285, 120, 255, 1, "", 52237, NULL), +(79796, 180878, 530, 0, 0, 1, 1, -1790.2335205078125, 5496.28759765625, -12.4281425476074218, 4.014260292053222656, 0, 0, -0.90630722045898437, 0.422619491815567016, 120, 255, 1, "", 52237, NULL), +(79797, 180878, 530, 0, 0, 1, 1, -1790.90185546875, 5497.0107421875, -12.4281415939331054, 5.777040958404541015, 0, 0, -0.25037956237792968, 0.968147754669189453, 120, 255, 1, "", 52237, NULL), +(79798, 180878, 530, 0, 0, 1, 1, -1789.2340087890625, 5496.1396484375, -12.428140640258789, 6.003933906555175781, 0, 0, -0.13917255401611328, 0.990268170833587646, 120, 255, 1, "", 52237, NULL), +(79799, 180878, 530, 0, 0, 1, 1, -1789.1722412109375, 5498.91748046875, -12.4281444549560546, 0.104719325900077819, 0, 0, 0.052335739135742187, 0.998629570007324218, 120, 255, 1, "", 52237, NULL), +(79800, 180878, 530, 0, 0, 1, 1, -1788.4154052734375, 5496.59765625, -12.4281425476074218, 3.089183330535888671, 0, 0, 0.99965667724609375, 0.026201646775007247, 120, 255, 1, "", 52237, NULL), +(79801, 180878, 530, 0, 0, 1, 1, -1788.391845703125, 5498.38134765625, -12.4281444549560546, 4.241150379180908203, 0, 0, -0.85264015197753906, 0.522498607635498046, 120, 255, 1, "", 52237, NULL), +(79802, 180878, 530, 0, 0, 1, 1, -1788.1109619140625, 5497.560546875, -12.4281415939331054, 1.413715124130249023, 0, 0, 0.649447441101074218, 0.760406434535980224, 120, 255, 1, "", 52237, NULL), +(79803, 180878, 530, 0, 0, 1, 1, -1765.7216796875, 5449.93359375, -12.4281387329101562, 3.543023586273193359, 0, 0, -0.97992420196533203, 0.199370384216308593, 120, 255, 1, "", 52237, NULL), +(79804, 180878, 530, 0, 0, 1, 1, -1764.8065185546875, 5450.1806640625, -12.4281387329101562, 2.129300594329833984, 0, 0, 0.874619483947753906, 0.484810054302215576, 120, 255, 1, "", 52237, NULL), +(79805, 180878, 530, 0, 0, 1, 1, -1766.2261962890625, 5448.12548828125, -12.4281387329101562, 2.687806606292724609, 0, 0, 0.974370002746582031, 0.224951311945915222, 120, 255, 1, "", 52237, NULL), +(79806, 180878, 530, 0, 0, 1, 1, -1766.08837890625, 5449.02587890625, -12.4281387329101562, 4.502951622009277343, 0, 0, -0.7771453857421875, 0.629321098327636718, 120, 255, 1, "", 52237, NULL), +(79807, 180878, 530, 0, 0, 1, 1, -1765.540771484375, 5447.3076171875, -12.428140640258789, 5.567600727081298828, 0, 0, -0.35020732879638671, 0.936672210693359375, 120, 255, 1, "", 52237, NULL), +(79808, 180878, 530, 0, 0, 1, 1, -1763.9942626953125, 5449.7802734375, -12.428140640258789, 5.585053920745849609, 0, 0, -0.34202003479003906, 0.939692676067352294, 120, 255, 1, "", 52237, NULL), +(79809, 180878, 530, 0, 0, 1, 1, -1763.4022216796875, 5449.15234375, -12.428140640258789, 4.869470596313476562, 0, 0, -0.64944744110107421, 0.760406434535980224, 120, 255, 1, "", 52237, NULL), +(79810, 180878, 530, 0, 0, 1, 1, 9491.6845703125, -7292.4599609375, 14.32973575592041015, 0.104719325900077819, 0, 0, 0.052335739135742187, 0.998629570007324218, 120, 255, 1, "", 47720, NULL), +(79811, 180878, 530, 0, 0, 1, 1, 9490.6220703125, -7293.79443359375, 14.33647537231445312, 1.413715124130249023, 0, 0, 0.649447441101074218, 0.760406434535980224, 120, 255, 1, "", 47720, NULL), +(79812, 180878, 530, 0, 0, 1, 1, 9491.373046875, -7293.28466796875, 14.33489990234375, 4.241150379180908203, 0, 0, -0.85264015197753906, 0.522498607635498046, 120, 255, 1, "", 47720, NULL), +(79813, 180878, 530, 0, 0, 1, 1, 9489.7158203125, -7293.83251953125, 14.33414745330810546, 3.089183330535888671, 0, 0, 0.99965667724609375, 0.026201646775007247, 120, 255, 1, "", 47720, NULL), +(79814, 180878, 530, 0, 0, 1, 1, 9488.9580078125, -7293.3515625, 14.32842731475830078, 6.003933906555175781, 0, 0, -0.13917255401611328, 0.990268170833587646, 120, 255, 1, "", 47720, NULL), +(79815, 180878, 530, 0, 0, 1, 1, 9491.265625, -7291.5546875, 14.321868896484375, 3.857182979583740234, 0, 0, -0.93667125701904296, 0.350209832191467285, 120, 255, 1, "", 47720, NULL), +(79816, 180878, 530, 0, 0, 1, 1, 9488.6728515625, -7292.52001953125, 14.32149410247802734, 4.014260292053222656, 0, 0, -0.90630722045898437, 0.422619491815567016, 120, 255, 1, "", 47720, NULL), +(79817, 180878, 530, 0, 0, 1, 1, 9488.966796875, -7291.69384765625, 14.31626701354980468, 5.777040958404541015, 0, 0, -0.25037956237792968, 0.968147754669189453, 120, 255, 1, "", 47720, NULL), +(79826, 180879, 530, 0, 0, 1, 1, -1764.9112548828125, 5448.845703125, -12.428140640258789, 1.204277276992797851, 0, 0, 0.56640625, 0.824126183986663818, 120, 255, 1, "", 52237, NULL), +(79827, 180777, 530, 0, 0, 1, 1, -1784.935791015625, 5439.93701171875, -12.428140640258789, 3.351046562194824218, 0, 0, -0.99452114105224609, 0.104535527527332305, 120, 255, 1, "", 47966, NULL), +(79828, 180777, 530, 0, 0, 1, 1, -1784.0084228515625, 5435.99658203125, -12.428140640258789, 0.209439441561698913, 0, 0, 0.104528427124023437, 0.994521915912628173, 120, 255, 1, "", 47966, NULL), +(79829, 180880, 530, 0, 0, 1, 1, -1789.301025390625, 5498.0341796875, -11.7267522811889648, 2.740161895751953125, 0, 0, 0.979924201965332031, 0.199370384216308593, 120, 255, 1, "", 52237, NULL), +(79830, 180880, 530, 0, 0, 1, 1, -1789.677978515625, 5498.17041015625, -11.7128620147705078, 1.989672422409057617, 0, 0, 0.838669776916503906, 0.544640243053436279, 120, 255, 1, "", 52237, NULL), +(79831, 180880, 530, 0, 0, 1, 1, -1764.4932861328125, 5448.474609375, -10.5878629684448242, 3.420850038528442382, 0, 0, -0.99026775360107421, 0.139175355434417724, 120, 255, 1, "", 52237, NULL), +(79832, 180880, 530, 0, 0, 1, 1, 9490.5166015625, -7292.7490234375, 15.03819084167480468, 2.740161895751953125, 0, 0, 0.979924201965332031, 0.199370384216308593, 120, 255, 1, "", 47720, NULL), +(79833, 180880, 530, 0, 0, 1, 1, 9490.0908203125, -7292.48974609375, 15.04175281524658203, 1.989672422409057617, 0, 0, 0.838669776916503906, 0.544640243053436279, 120, 255, 1, "", 47720, NULL), +(79834, 180881, 530, 0, 0, 1, 1, -1789.489013671875, 5497.0986328125, -11.747589111328125, 6.14356088638305664, 0, 0, -0.06975555419921875, 0.997564136981964111, 120, 255, 1, "", 52237, NULL), +(79835, 180881, 530, 0, 0, 1, 1, -1790.061279296875, 5497.2509765625, -11.7406396865844726, 4.572763919830322265, 0, 0, -0.75470924377441406, 0.656059443950653076, 120, 255, 1, "", 52237, NULL), +(79836, 180881, 530, 0, 0, 1, 1, -1764.7899169921875, 5449.2021484375, -10.6156387329101562, 4.799657344818115234, 0, 0, -0.67558956146240234, 0.737277925014495849, 120, 255, 1, "", 52237, NULL), +(79837, 180881, 530, 0, 0, 1, 1, 9489.5791015625, -7292.59033203125, 15.02525138854980468, 4.572763919830322265, 0, 0, -0.75470924377441406, 0.656059443950653076, 120, 255, 1, "", 47720, NULL), +(79838, 180881, 530, 0, 0, 1, 1, 9489.869140625, -7292.06103515625, 15.01507759094238281, 6.14356088638305664, 0, 0, -0.06975555419921875, 0.997564136981964111, 120, 255, 1, "", 47720, NULL), +(79839, 180882, 530, 0, 0, 1, 1, -1789.6334228515625, 5497.66552734375, -11.7336950302124023, 3.647741317749023437, 0, 0, -0.96814727783203125, 0.250381410121917724, 120, 255, 1, "", 52237, NULL), +(79840, 180882, 530, 0, 0, 1, 1, -1790.077880859375, 5497.86181640625, -11.7336959838867187, 4.956737518310546875, 0, 0, -0.61566066741943359, 0.788011372089385986, 120, 255, 1, "", 52237, NULL), +(79841, 180882, 530, 0, 0, 1, 1, -1764.3111572265625, 5449.00634765625, -10.6086959838867187, 3.769911527633666992, 0, 0, -0.95105648040771484, 0.309017121791839599, 120, 255, 1, "", 52237, NULL), +(79842, 180882, 530, 0, 0, 1, 1, 9490.705078125, -7292.34375, 15.01930904388427734, 4.956737518310546875, 0, 0, -0.61566066741943359, 0.788011372089385986, 120, 255, 1, "", 47720, NULL), +(79843, 180882, 530, 0, 0, 1, 1, 9490.4697265625, -7292.03564453125, 15.02789020538330078, 3.647741317749023437, 0, 0, -0.96814727783203125, 0.250381410121917724, 120, 255, 1, "", 47720, NULL), +(79844, 180883, 530, 0, 0, 1, 1, -1789.0595703125, 5497.5205078125, -11.7337007522583007, 5.654868602752685546, 0, 0, -0.30901622772216796, 0.95105677843093872, 120, 255, 1, "", 52237, NULL), +(79845, 180883, 530, 0, 0, 1, 1, -1764.8839111328125, 5448.25244140625, -10.5878610610961914, 5.445427894592285156, 0, 0, -0.40673637390136718, 0.913545548915863037, 120, 255, 1, "", 52237, NULL), +(79846, 180883, 530, 0, 0, 1, 1, -1765.2747802734375, 5448.697265625, -10.6086969375610351, 5.811946868896484375, 0, 0, -0.2334451675415039, 0.972369968891143798, 120, 255, 1, "", 52237, NULL), +(79847, 180883, 530, 0, 0, 1, 1, 9490.1142578125, -7293.03564453125, 15.03140640258789062, 5.654868602752685546, 0, 0, -0.30901622772216796, 0.95105677843093872, 120, 255, 1, "", 47720, NULL), +(79848, 180888, 530, 0, 0, 1, 1, -1789.768310546875, 5497.439453125, -12.4281387329101562, 1.937312245368957519, 0, 0, 0.824125289916992187, 0.566407561302185058, 120, 255, 1, "", 52237, NULL), +(79849, 180888, 530, 0, 0, 1, 1, 9489.94921875, -7292.66943359375, 14.32626533508300781, 1.937312245368957519, 0, 0, 0.824125289916992187, 0.566407561302185058, 120, 255, 1, "", 47720, NULL), +(82948, 180879, 530, 0, 0, 1, 1, -4021.67138671875, -11847.31640625, 0.006293999962508678, 1.902408957481384277, 0, 0, 0.814115524291992187, 0.580702960491180419, 120, 255, 1, "", 52237, NULL), +(82949, 180777, 530, 0, 0, 1, 1, -4016.040283203125, -11831.6572265625, 0.122772000730037689, 1.605701684951782226, 0, 0, 0.719339370727539062, 0.694658815860748291, 120, 255, 1, "", 52237, NULL), +(82950, 180777, 530, 0, 0, 1, 1, -4019.716064453125, -11831.791015625, 0.095343001186847686, 4.694936752319335937, 0, 0, -0.71325016021728515, 0.700909554958343505, 120, 255, 1, "", 52237, NULL), +(82951, 180880, 530, 0, 0, 1, 1, -4021.57470703125, -11847.875, 1.865077018737792968, 3.420850038528442382, 0, 0, -0.99026775360107421, 0.139175355434417724, 120, 255, 1, "", 52237, NULL), +(82952, 180881, 530, 0, 0, 1, 1, -4021.983154296875, -11847.416015625, 1.80630505084991455, 4.799657344818115234, 0, 0, -0.67558956146240234, 0.737277925014495849, 120, 255, 1, "", 52237, NULL), +(82953, 180882, 530, 0, 0, 1, 1, -4021.177001953125, -11847.7314453125, 1.821341991424560546, 3.769911527633666992, 0, 0, -0.95105648040771484, 0.309017121791839599, 120, 255, 1, "", 52237, NULL), +(82954, 180883, 530, 0, 0, 1, 1, -4021.107177734375, -11847.263671875, 1.800922989845275878, 5.811946868896484375, 0, 0, -0.2334451675415039, 0.972369968891143798, 120, 255, 1, "", 52237, NULL), +(82955, 180883, 530, 0, 0, 1, 1, -4021.649658203125, -11846.94921875, 1.82935500144958496, 5.445427894592285156, 0, 0, -0.40673637390136718, 0.913545548915863037, 120, 255, 1, "", 52237, NULL), +(82958, 180766, 530, 0, 0, 1, 1, -4012.713134765625, -11842.396484375, 0.117444999516010284, 0.802850961685180664, 0, 0, 0.390730857849121093, 0.920504987239837646, 120, 255, 1, "", 52237, NULL), +(82959, 180766, 530, 0, 0, 1, 1, -4020.12548828125, -11847.205078125, 0.023653000593185424, 4.642575740814208984, 0, 0, -0.731353759765625, 0.681998312473297119, 120, 255, 1, "", 52237, NULL), +(82960, 180766, 530, 0, 0, 1, 1, -4014.77783203125, -11847.4443359375, 0.082152999937534332, 1.623155713081359863, 0, 0, 0.725374221801757812, 0.688354730606079101, 120, 255, 1, "", 52237, NULL), +(82961, 180766, 530, 0, 0, 1, 1, -4022.487060546875, -11842.517578125, 0.009147999808192253, 5.305802345275878906, 0, 0, -0.46947097778320312, 0.882947921752929687, 120, 255, 1, "", 52237, NULL), +(82962, 180766, 530, 0, 0, 1, 1, -4008.91748046875, -11837.8251953125, 0.170679003000259399, 1.361356139183044433, 0, 0, 0.629320144653320312, 0.77714616060256958, 120, 255, 1, "", 52237, NULL), +(82963, 180766, 530, 0, 0, 1, 1, -4012.803955078125, -11831.5703125, 0.146642997860908508, 2.146752834320068359, 0, 0, 0.878816604614257812, 0.477159708738327026, 120, 255, 1, "", 52237, NULL), +(82964, 180766, 530, 0, 0, 1, 1, -4025.327392578125, -11837.01953125, 0.008527999743819236, 4.677483558654785156, 0, 0, -0.71933937072753906, 0.694658815860748291, 120, 255, 1, "", 52237, NULL), +(82965, 180766, 530, 0, 0, 1, 1, -4023.502197265625, -11831.390625, 0.072734996676445007, 4.066620349884033203, 0, 0, -0.89493370056152343, 0.44619917869567871, 120, 255, 1, "", 52237, NULL), +(82966, 180878, 530, 0, 0, 1, 1, -4022.725341796875, -11846.5439453125, -0.00343600008636713, 4.502951622009277343, 0, 0, -0.7771453857421875, 0.629321098327636718, 120, 255, 1, "", 52237, NULL), +(82967, 180878, 530, 0, 0, 1, 1, -4023.05419921875, -11847.3349609375, -0.00903000030666589, 3.543023586273193359, 0, 0, -0.97992420196533203, 0.199370384216308593, 120, 255, 1, "", 52237, NULL), +(82968, 180878, 530, 0, 0, 1, 1, -4022.055908203125, -11846.015625, 0.005262000020593404, 2.687806606292724609, 0, 0, 0.974370002746582031, 0.224951311945915222, 120, 255, 1, "", 52237, NULL), +(82969, 180878, 530, 0, 0, 1, 1, -4021.266845703125, -11845.90234375, 0.014263000339269638, 5.567600727081298828, 0, 0, -0.35020732879638671, 0.936672210693359375, 120, 255, 1, "", 52237, NULL), +(82970, 180878, 530, 0, 0, 1, 1, -4021.342529296875, -11848.8466796875, 0.009881000034511089, 4.869470596313476562, 0, 0, -0.64944744110107421, 0.760406434535980224, 120, 255, 1, "", 52237, NULL), +(82971, 180878, 530, 0, 0, 1, 1, -4022.728759765625, -11848.0244140625, -0.00563899986445903, 2.129300594329833984, 0, 0, 0.874619483947753906, 0.484810054302215576, 120, 255, 1, "", 52237, NULL), +(82972, 180878, 530, 0, 0, 1, 1, -4022.063720703125, -11848.556640625, 0.00076000002445653, 5.585053920745849609, 0, 0, -0.34202003479003906, 0.939692676067352294, 120, 255, 1, "", 52237, NULL), +(82973, 180766, 1, 0, 0, 1, 1, 10147.0244140625, 2574.300048828125, 1320.71923828125, 1.186823248863220214, 0, 0, 0.559192657470703125, 0.829037725925445556, 120, 255, 1, "", 47720, NULL), +(82974, 180766, 1, 0, 0, 1, 1, 10149.5576171875, 2592.335205078125, 1330.617919921875, 0.191985160112380981, 0, 0, 0.095845222473144531, 0.995396256446838378, 120, 255, 1, "", 47720, NULL), +(82975, 180766, 1, 0, 0, 1, 1, 10154.5859375, 2593.354736328125, 1330.5478515625, 0.087265998125076293, 0, 0, 0.043619155883789062, 0.999048233032226562, 120, 255, 1, "", 47720, NULL), +(82976, 180766, 1, 0, 0, 1, 1, 10148.5166015625, 2610.37646484375, 1330.8250732421875, 4.939284324645996093, 0, 0, -0.6225137710571289, 0.78260880708694458, 120, 255, 1, "", 47720, NULL), +(82977, 180766, 1, 0, 0, 1, 1, 10159.9482421875, 2604.6064453125, 1330.8250732421875, 3.385940074920654296, 0, 0, -0.99254608154296875, 0.121869951486587524, 120, 255, 1, "", 47720, NULL), +(82978, 180766, 1, 0, 0, 1, 1, 10141.6845703125, 2600.14599609375, 1330.8250732421875, 0.24434557557106018, 0, 0, 0.121869087219238281, 0.9925462007522583, 120, 255, 1, "", 47720, NULL), +(82985, 180765, 1, 0, 0, 1, 1, 10156.580078125, 2582.2734375, 1345.4324951171875, 4.817109584808349609, 0, 0, -0.66913032531738281, 0.74314504861831665, 120, 255, 1, "", 47720, NULL), +(82994, 180878, 1, 0, 0, 1, 1, 10147.58203125, 2574.046630859375, 1320.63720703125, 2.129300594329833984, 0, 0, 0.874619483947753906, 0.484810054302215576, 120, 255, 1, "", 47720, NULL), +(82995, 180878, 1, 0, 0, 1, 1, 10145.037109375, 2573.8369140625, 1321.0274658203125, 5.567600727081298828, 0, 0, -0.35020732879638671, 0.936672210693359375, 120, 255, 1, "", 47720, NULL), +(82996, 180878, 1, 0, 0, 1, 1, 10146.9267578125, 2572.093505859375, 1320.7406005859375, 3.543023586273193359, 0, 0, -0.97992420196533203, 0.199370384216308593, 120, 255, 1, "", 47720, NULL), +(82997, 180878, 1, 0, 0, 1, 1, 10147.892578125, 2574.833251953125, 1320.5750732421875, 5.585053920745849609, 0, 0, -0.34202003479003906, 0.939692676067352294, 120, 255, 1, "", 47720, NULL), +(82998, 180878, 1, 0, 0, 1, 1, 10145.3046875, 2572.09619140625, 1320.9808349609375, 4.502951622009277343, 0, 0, -0.7771453857421875, 0.629321098327636718, 120, 255, 1, "", 47720, NULL), +(82999, 180878, 1, 0, 0, 1, 1, 10144.7626953125, 2572.7744140625, 1321.07421875, 2.687806606292724609, 0, 0, 0.974370002746582031, 0.224951311945915222, 120, 255, 1, "", 47720, NULL), +(83000, 180878, 1, 0, 0, 1, 1, 10148.345703125, 2574.1865234375, 1320.5164794921875, 4.869470596313476562, 0, 0, -0.64944744110107421, 0.760406434535980224, 120, 255, 1, "", 47720, NULL), +(83001, 180879, 1, 0, 0, 1, 1, 10146.29296875, 2573.104736328125, 1320.6748046875, 5.864306926727294921, 0, 0, -0.20791149139404296, 0.978147625923156738, 120, 255, 1, "", 47720, NULL), +(83002, 180777, 1, 0, 0, 1, 1, 10155.513671875, 2571.572998046875, 1320.5401611328125, 4.031712055206298828, 0, 0, -0.90258502960205078, 0.430511653423309326, 120, 255, 1, "", 47720, NULL), +(83003, 180777, 1, 0, 0, 1, 1, 10146.330078125, 2574.490966796875, 1320.8231201171875, 1.169368624687194824, 0, 0, 0.551936149597167968, 0.833886384963989257, 120, 255, 1, "", 47720, NULL), +(83004, 180777, 1, 0, 0, 1, 1, 10148.7431640625, 2592.296875, 1330.529541015625, 1.675513744354248046, 0, 0, 0.743144035339355468, 0.669131457805633544, 120, 255, 1, "", 47720, NULL), +(83005, 180777, 1, 0, 0, 1, 1, 10155.396484375, 2593.673828125, 1330.4324951171875, 4.852017402648925781, 0, 0, -0.65605831146240234, 0.754710197448730468, 120, 255, 1, "", 47720, NULL), +(83006, 180881, 1, 0, 0, 1, 1, 10146.3076171875, 2573.47265625, 1322.492431640625, 4.799657344818115234, 0, 0, -0.67558956146240234, 0.737277925014495849, 120, 255, 1, "", 47720, NULL), +(83007, 180882, 1, 0, 0, 1, 1, 10146.494140625, 2573.021728515625, 1322.4945068359375, 4.45059061050415039, 0, 0, -0.79335308074951171, 0.608761727809906005, 120, 255, 1, "", 47720, NULL), +(83008, 180883, 1, 0, 0, 1, 1, 10145.7236328125, 2573.4013671875, 1322.4788818359375, 5.445427894592285156, 0, 0, -0.40673637390136718, 0.913545548915863037, 120, 255, 1, "", 47720, NULL), +(83009, 180883, 1, 0, 0, 1, 1, 10145.8720703125, 2572.74658203125, 1322.489013671875, 5.811946868896484375, 0, 0, -0.2334451675415039, 0.972369968891143798, 120, 255, 1, "", 47720, NULL); + +-- disable guids from duplicate spawns +DELETE FROM `game_event_gameobject` WHERE (`eventEntry` = 7) +AND (`guid` IN (29454, 29457, 29471, 29483, 29502, 29511, 29515, 31167, 31181, 43392, 43400)); + +-- new spawns +DELETE FROM `gameobject` WHERE (`id` IN (180757, 180758, 180759, 180760, 180761, 180762, 180765, 180766, 180767, 180768, 180769, 180770, 180773, 180774, 180775, 180777, 180879, 180880, 180881, 180882, 180883, 180888)) +AND (`guid` BETWEEN 19446 AND 19836); +INSERT INTO `gameobject` (`guid`, `id`, `map`, `zoneId`, `areaId`, `spawnMask`, `phaseMask`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecs`, `animprogress`, `state`, `ScriptName`, `VerifiedBuild`, `Comment`) VALUES +(19446, 180757, 0, 0, 0, 1, 1, -8570.0263671875, 816.55645751953125, 110.386749267578125, 0.663223206996917724, 0, 0, 0.325567245483398437, 0.945518851280212402, 120, 255, 1, "", 52237, NULL), +(19447, 180757, 0, 0, 0, 1, 1, -8636.740234375, 418.08636474609375, 108.8900299072265625, 2.268925428390502929, 0, 0, 0.906307220458984375, 0.422619491815567016, 120, 255, 1, "", 52237, NULL), +(19448, 180757, 0, 0, 0, 1, 1, -9335.6455078125, 186.467010498046875, 64.32550811767578125, 4.136432647705078125, 0, 0, -0.87881660461425781, 0.477159708738327026, 120, 255, 1, "", 51943, NULL), +(19449, 180758, 1, 0, 0, 1, 1, 10055.2060546875, 2131.84716796875, 1330.3798828125, 2.844882726669311523, 0, 0, 0.989015579223632812, 0.147811368107795715, 120, 255, 1, "", 51943, NULL), +(19450, 180759, 1, 0, 0, 1, 1, 1184.2117919921875, -4470.56103515625, 21.98506927490234375, 1.675513744354248046, 0, 0, 0.743144035339355468, 0.669131457805633544, 120, 255, 1, "", 51943, NULL), +(19451, 180760, 0, 0, 0, 1, 1, 1297.8819580078125, 342.78125, -61.32818603515625, 1.32644820213317871, 0, 0, 0.615660667419433593, 0.788011372089385986, 120, 255, 1, "", 47966, NULL), +(19452, 180760, 0, 0, 0, 1, 1, 1777.1180419921875, 219.3489532470703125, 60.5294952392578125, 0.139624491333961486, 0, 0, 0.06975555419921875, 0.997564136981964111, 120, 255, 1, "", 51943, NULL), +(19453, 180760, 1, 0, 0, 1, 1, -991.0555419921875, 232.5746612548828125, 120.415283203125, 6.230826377868652343, 0, 0, -0.02617645263671875, 0.999657332897186279, 120, 255, 1, "", 47720, NULL), +(19454, 180760, 1, 0, 0, 1, 1, -994.65802001953125, 264.432281494140625, 120.6520309448242187, 1.117009282112121582, 0, 0, 0.529918670654296875, 0.84804844856262207, 120, 255, 1, "", 47720, NULL), +(19455, 180760, 1, 0, 0, 1, 1, -998.84027099609375, 244.1024322509765625, 121.9011764526367187, 0.925023794174194335, 0, 0, 0.446197509765625, 0.894934535026550292, 120, 255, 1, "", 47720, NULL), +(19456, 180761, 1, 0, 0, 1, 1, -1017.85162353515625, 236.701873779296875, 141.8155059814453125, 4.345870018005371093, 0, 0, -0.82412624359130859, 0.566406130790710449, 120, 255, 1, "", 47720, NULL), +(19457, 180761, 1, 0, 0, 1, 1, -1417.3408203125, -127.189666748046875, 166.3653411865234375, 0.366517573595046997, 0, 0, 0.182234764099121093, 0.98325502872467041, 120, 255, 1, "", 47720, NULL), +(19458, 180761, 1, 0, 0, 1, 1, -981.0867919921875, -79.579864501953125, 21.18675804138183593, 0.942476630210876464, 0, 0, 0.453989982604980468, 0.891006767749786376, 120, 255, 1, "", 46368, NULL), +(19459, 180762, 1, 0, 0, 1, 1, 1176.9097900390625, -4470.26416015625, 22.6003570556640625, 4.293513298034667968, 0, 0, -0.8386697769165039, 0.544640243053436279, 120, 255, 1, "", 51943, NULL), +(19460, 180762, 1, 0, 0, 1, 1, 1496.6475830078125, -4227.66650390625, 47.26941299438476562, 0.27925160527229309, 0, 0, 0.139172554016113281, 0.990268170833587646, 120, 255, 1, "", 47720, NULL), +(19461, 180765, 1, 0, 0, 1, 1, 10022.076171875, 1978.7491455078125, 1371.5069580078125, 3.45575571060180664, 0, 0, -0.98768806457519531, 0.156436234712600708, 120, 255, 1, "", 47720, NULL), +(19462, 180765, 1, 0, 0, 1, 1, 10022.177734375, 2020.394775390625, 1371.5494384765625, 3.996806621551513671, 0, 0, -0.90996074676513671, 0.414694398641586303, 120, 255, 1, "", 47720, NULL), +(19463, 180765, 1, 0, 0, 1, 1, 10024.7666015625, 1977.26953125, 1361.0245361328125, 5.777040958404541015, 0, 0, -0.25037956237792968, 0.968147754669189453, 120, 255, 1, "", 47720, NULL), +(19464, 180765, 1, 0, 0, 1, 1, 10025.2783203125, 2022.224853515625, 1361.009765625, 0.349065244197845458, 0, 0, 0.173647880554199218, 0.984807789325714111, 120, 255, 1, "", 47720, NULL), +(19465, 180765, 1, 0, 0, 1, 1, 10040.3701171875, 2478.4267578125, 1353.9842529296875, 4.694936752319335937, 0, 0, -0.71325016021728515, 0.700909554958343505, 120, 255, 1, "", 47720, NULL), +(19466, 180765, 1, 0, 0, 1, 1, 10050.6650390625, 2510.376220703125, 1353.9842529296875, 5.742135047912597656, 0, 0, -0.26723766326904296, 0.96363067626953125, 120, 255, 1, "", 47720, NULL), +(19467, 180765, 1, 0, 0, 1, 1, 10080.890625, 2586.8662109375, 1340.5086669921875, 5.201082706451416015, 0, 0, -0.51503753662109375, 0.857167601585388183, 120, 255, 1, "", 47720, NULL), +(19468, 180765, 1, 0, 0, 1, 1, 10088.9482421875, 2580.3515625, 1341.7447509765625, 2.199114561080932617, 0, 0, 0.8910064697265625, 0.453990638256072998, 120, 255, 1, "", 47720, NULL), +(19469, 180765, 1, 0, 0, 1, 1, 10106.8671875, 2600.882080078125, 1340.5501708984375, 2.967041015625, 0, 0, 0.996193885803222656, 0.087165042757987976, 120, 255, 1, "", 47720, NULL), +(19470, 180765, 1, 0, 0, 1, 1, 10107.6796875, 2590.669677734375, 1341.8626708984375, 1.500982880592346191, 0, 0, 0.681998252868652343, 0.731353819370269775, 120, 255, 1, "", 47720, NULL), +(19471, 180765, 1, 0, 0, 1, 1, 10162.8349609375, 2569.221435546875, 1366.499267578125, 1.256635904312133789, 0, 0, 0.587784767150878906, 0.809017360210418701, 120, 255, 1, "", 47720, NULL), +(19472, 180765, 1, 0, 0, 1, 1, 10163.06640625, 2568.720947265625, 1353.59619140625, 4.869470596313476562, 0, 0, -0.64944744110107421, 0.760406434535980224, 120, 255, 1, "", 47720, NULL), +(19473, 180765, 1, 0, 0, 1, 1, 10165.3525390625, 2580.4287109375, 1361.8843994140625, 2.234017848968505859, 0, 0, 0.898793220520019531, 0.438372820615768432, 120, 255, 1, "", 47720, NULL), +(19474, 180765, 1, 0, 0, 1, 1, 10170.1591796875, 2554.2412109375, 1344.72705078125, 5.84685373306274414, 0, 0, -0.21643924713134765, 0.976296067237854003, 120, 255, 1, "", 47720, NULL), +(19475, 180765, 1, 0, 0, 1, 1, 10170.9248046875, 2556.4951171875, 1366.2369384765625, 2.635444164276123046, 0, 0, 0.96814727783203125, 0.250381410121917724, 120, 255, 1, "", 47720, NULL), +(19476, 180765, 1, 0, 0, 1, 1, 10180.69140625, 2583.703857421875, 1364.724853515625, 3.700104713439941406, 0, 0, -0.96126079559326171, 0.275640487670898437, 120, 255, 1, "", 47720, NULL), +(19477, 180765, 1, 0, 0, 1, 1, 10185.5595703125, 2561.108154296875, 1366.71533203125, 1.082102894783020019, 0, 0, 0.51503753662109375, 0.857167601585388183, 120, 255, 1, "", 47720, NULL), +(19478, 180765, 1, 0, 0, 1, 1, 10185.7666015625, 2575.524658203125, 1366.34619140625, 4.886923789978027343, 0, 0, -0.64278697967529296, 0.766044974327087402, 120, 255, 1, "", 47720, NULL), +-- pooled entries +-- spawning one constellation for now +(19479, 180765, 1, 0, 0, 1, 1, 7472.892578125, -2651.32080078125, 455.138092041015625, 5.480334281921386718, 0, 0, -0.39073085784912109, 0.920504987239837646, 120, 255, 1, "", 52237, NULL), +(19480, 180765, 1, 0, 0, 1, 1, 7478.55908203125, -2652.30859375, 455.144866943359375, 3.822272777557373046, 0, 0, -0.94264125823974609, 0.333807557821273803, 120, 255, 1, "", 52237, NULL), +-- (19481, 180765, 1, 0, 0, 1, 1, 7526.86962890625, -2464.802978515625, 455.183013916015625, 0.087265998125076293, 0, 0, 0.043619155883789062, 0.999048233032226562, 120, 255, 1, "", 47720, NULL), +-- (19482, 180765, 1, 0, 0, 1, 1, 7532.15966796875, -2467.02197265625, 455.59124755859375, 0.855210542678833007, 0, 0, 0.414692878723144531, 0.909961462020874023, 120, 255, 1, "", 47720, NULL), +(19483, 180765, 1, 0, 0, 1, 1, 7547.994140625, -2399.727783203125, 456.72125244140625, 0.820303261280059814, 0, 0, 0.398748397827148437, 0.917060375213623046, 120, 255, 1, "", 47720, NULL), +(19484, 180765, 1, 0, 0, 1, 1, 7553.50341796875, -2401.662109375, 456.99365234375, 1.48352813720703125, 0, 0, 0.675589561462402343, 0.737277925014495849, 120, 255, 1, "", 47720, NULL), +(19485, 180765, 1, 0, 0, 1, 1, 7764.7587890625, -2444.3134765625, 495.587249755859375, 4.555310726165771484, 0, 0, -0.76040554046630859, 0.649448513984680175, 120, 255, 1, "", 52237, NULL), +-- (19486, 180765, 1, 0, 0, 1, 1, 7770.7822265625, -2420.889892578125, 495.4761962890625, 4.48549652099609375, 0, 0, -0.7826080322265625, 0.622514784336090087, 120, 255, 1, "", 47720, NULL), +-- (19487, 180765, 1, 0, 0, 1, 1, 7783.375, -2563.994384765625, 497.555023193359375, 3.892086982727050781, 0, 0, -0.93041706085205078, 0.366502493619918823, 120, 255, 1, "", 52237, NULL), +-- (19488, 180765, 1, 0, 0, 1, 1, 7792.21875, -2575.030029296875, 504.42974853515625, 3.78736734390258789, 0, 0, -0.94832324981689453, 0.317305892705917358, 120, 255, 1, "", 52237, NULL), +-- (19489, 180765, 1, 0, 0, 1, 1, 7827.3369140625, -2546.64306640625, 503.596832275390625, 1.047197580337524414, 0, 0, 0.5, 0.866025388240814208, 120, 255, 1, "", 52237, NULL), +-- (19490, 180765, 1, 0, 0, 1, 1, 7860.251953125, -2568.447998046875, 501.588104248046875, 6.056293010711669921, 0, 0, -0.11320304870605468, 0.993571877479553222, 120, 255, 1, "", 52237, NULL), +-- (19491, 180765, 1, 0, 0, 1, 1, 7861.15185546875, -2519.1142578125, 496.651702880859375, 0.174532130360603332, 0, 0, 0.087155342102050781, 0.996194720268249511, 120, 255, 1, "", 47720, NULL), +-- (19492, 180765, 1, 0, 0, 1, 1, 7872.55029296875, -2478.9150390625, 498.779693603515625, 1.343901276588439941, 0, 0, 0.622513771057128906, 0.78260880708694458, 120, 255, 1, "", 47720, NULL), +-- (19493, 180765, 1, 0, 0, 1, 1, 7891.53564453125, -2477.243408203125, 498.728240966796875, 4.886923789978027343, 0, 0, -0.64278697967529296, 0.766044974327087402, 120, 255, 1, "", 47720, NULL), +-- (19494, 180765, 1, 0, 0, 1, 1, 7898.0234375, -2476.247314453125, 498.772735595703125, 1.361356139183044433, 0, 0, 0.629320144653320312, 0.77714616060256958, 120, 255, 1, "", 52237, NULL), +-- (19495, 180765, 1, 0, 0, 1, 1, 7917.49560546875, -2513.798095703125, 496.710601806640625, 4.817109584808349609, 0, 0, -0.66913032531738281, 0.74314504861831665, 120, 255, 1, "", 47720, NULL), +-- (19496, 180765, 1, 0, 0, 1, 1, 7936.6162109375, -2400.23193359375, 498.442169189453125, 1.815141916275024414, 0, 0, 0.788010597229003906, 0.615661680698394775, 120, 255, 1, "", 47720, NULL), +(19497, 180765, 1, 0, 0, 1, 1, 7948.8056640625, -2575.666748046875, 516.4300537109375, 1.186823248863220214, 0, 0, 0.559192657470703125, 0.829037725925445556, 120, 255, 1, "", 52237, NULL), +-- (19498, 180765, 1, 0, 0, 1, 1, 8003.72314453125, -2672.30615234375, 538.656494140625, 4.712389945983886718, 0, 0, -0.70710659027099609, 0.707106947898864746, 120, 255, 1, "", 47720, NULL), +-- (19499, 180765, 1, 0, 0, 1, 1, 8022.0634765625, -2671.010986328125, 521.28167724609375, 2.495818138122558593, 0, 0, 0.948323249816894531, 0.317305892705917358, 120, 255, 1, "", 47720, NULL), +-- pooled end +(19500, 180765, 1, 0, 0, 1, 1, 9640.9296875, 2596.006103515625, 1356.52294921875, 3.281238555908203125, 0, 0, -0.99756336212158203, 0.069766148924827575, 120, 255, 1, "", 52237, NULL), +(19501, 180765, 1, 0, 0, 1, 1, 9847.23828125, 2377.09375, 1345.2239990234375, 4.293513298034667968, 0, 0, -0.8386697769165039, 0.544640243053436279, 120, 255, 1, "", 52237, NULL), +(19502, 180765, 1, 0, 0, 1, 1, 9849.5107421875, 2330.788330078125, 1337.10986328125, 0.785396754741668701, 0, 0, 0.38268280029296875, 0.923879802227020263, 120, 255, 1, "", 52237, NULL), +(19503, 180765, 1, 0, 0, 1, 1, 9850.0576171875, 2364.77587890625, 1330.8724365234375, 3.281238555908203125, 0, 0, -0.99756336212158203, 0.069766148924827575, 120, 255, 1, "", 52237, NULL), +(19504, 180765, 1, 0, 0, 1, 1, 9851.2080078125, 2332.406494140625, 1330.73046875, 5.619962215423583984, 0, 0, -0.32556724548339843, 0.945518851280212402, 120, 255, 1, "", 52237, NULL), +(19505, 180765, 1, 0, 0, 1, 1, 9948.0537109375, 2022.9625244140625, 1361.0029296875, 1.48352813720703125, 0, 0, 0.675589561462402343, 0.737277925014495849, 120, 255, 1, "", 47720, NULL), +(19506, 180765, 1, 0, 0, 1, 1, 9948.3720703125, 1978.558837890625, 1361.0804443359375, 1.361356139183044433, 0, 0, 0.629320144653320312, 0.77714616060256958, 120, 255, 1, "", 47720, NULL), +(19507, 180765, 1, 0, 0, 1, 1, 9950.7939453125, 1979.5279541015625, 1371.54150390625, 4.607671737670898437, 0, 0, -0.74314403533935546, 0.669131457805633544, 120, 255, 1, "", 47720, NULL), +(19508, 180765, 1, 0, 0, 1, 1, 9951.2294921875, 2021.142333984375, 1371.543212890625, 0.122172988951206207, 0, 0, 0.061048507690429687, 0.998134791851043701, 120, 255, 1, "", 47720, NULL), +(19509, 180765, 571, 0, 0, 1, 1, 5670.34228515625, 779.5948486328125, 669.5634765625, 5.550147056579589843, 0, 0, -0.358367919921875, 0.933580458164215087, 120, 255, 1, "", 47720, NULL), +(19510, 180765, 571, 0, 0, 1, 1, 5731.9140625, 677.97515869140625, 653.337646484375, 3.071766138076782226, 0, 0, 0.999390602111816406, 0.034906134009361267, 120, 255, 1, "", 47720, NULL), +(19511, 180765, 571, 0, 0, 1, 1, 5753.2939453125, 594.625244140625, 618.50567626953125, 5.35816192626953125, 0, 0, -0.446197509765625, 0.894934535026550292, 120, 255, 1, "", 47720, NULL), +(19512, 180765, 571, 0, 0, 1, 1, 5759.77197265625, 714.25347900390625, 653.22662353515625, 1.867502212524414062, 0, 0, 0.803856849670410156, 0.594822824001312255, 120, 255, 1, "", 47720, NULL), +(19513, 180765, 571, 0, 0, 1, 1, 5760.56103515625, 701.3275146484375, 623.34503173828125, 4.520402908325195312, 0, 0, -0.77162456512451171, 0.636078238487243652, 120, 255, 1, "", 47720, NULL), +(19514, 180765, 571, 0, 0, 1, 1, 5819.91650390625, 557.65740966796875, 655.49127197265625, 5.742135047912597656, 0, 0, -0.26723766326904296, 0.96363067626953125, 120, 255, 1, "", 47720, NULL), +(19515, 180766, 1, 0, 0, 1, 1, 7461.35595703125, -2813.8271484375, 462.374786376953125, 1.797688722610473632, 0, 0, 0.7826080322265625, 0.622514784336090087, 120, 255, 1, "", 47720, NULL), +(19516, 180766, 1, 0, 0, 1, 1, 7461.58349609375, -2802.853759765625, 462.13531494140625, 1.396261811256408691, 0, 0, 0.642786979675292968, 0.766044974327087402, 120, 255, 1, "", 47720, NULL), +(19517, 180766, 1, 0, 0, 1, 1, 7463.90087890625, -2741.921142578125, 459.29449462890625, 1.396261811256408691, 0, 0, 0.642786979675292968, 0.766044974327087402, 120, 255, 1, "", 47720, NULL), +(19518, 180766, 1, 0, 0, 1, 1, 7464.9375, -2691.611328125, 454.343597412109375, 1.396261811256408691, 0, 0, 0.642786979675292968, 0.766044974327087402, 120, 255, 1, "", 47720, NULL), +(19519, 180766, 1, 0, 0, 1, 1, 7474.328125, -2795.222412109375, 462.480316162109375, 4.625123500823974609, 0, 0, -0.73727703094482421, 0.67559051513671875, 120, 255, 1, "", 47720, NULL), +(19520, 180766, 1, 0, 0, 1, 1, 7475.02783203125, -2597.744384765625, 452.832183837890625, 1.239183306694030761, 0, 0, 0.580702781677246093, 0.814115643501281738, 120, 255, 1, "", 47720, NULL), +(19521, 180766, 1, 0, 0, 1, 1, 7475.494140625, -2750.214111328125, 460.29156494140625, 4.625123500823974609, 0, 0, -0.73727703094482421, 0.67559051513671875, 120, 255, 1, "", 47720, NULL), +(19522, 180766, 1, 0, 0, 1, 1, 7479.21875, -2479.520751953125, 461.84088134765625, 0.174532130360603332, 0, 0, 0.087155342102050781, 0.996194720268249511, 120, 255, 1, "", 47720, NULL), +(19523, 180766, 1, 0, 0, 1, 1, 7481.9228515625, -2829.69189453125, 461.2198486328125, 1.745326757431030273, 0, 0, 0.766043663024902343, 0.642788589000701904, 120, 255, 1, "", 47720, NULL), +(19524, 180766, 1, 0, 0, 1, 1, 7483.90966796875, -2632.36376953125, 453.864654541015625, 4.415683269500732421, 0, 0, -0.80385684967041015, 0.594822824001312255, 120, 255, 1, "", 47720, NULL), +-- lunar fireworks event spawns +-- (19525, 180766, 1, 0, 0, 1, 1, 7491.3818359375, -2633.52294921875, 450.940948486328125, 0.226892471313476562, 0, 0, 0.113203048706054687, 0.993571877479553222, 120, 255, 1, "", 52237, NULL), +(19526, 180766, 1, 0, 0, 1, 1, 7494.41259765625, -2822.019775390625, 461.34613037109375, 4.991643905639648437, 0, 0, -0.60181427001953125, 0.798636078834533691, 120, 255, 1, "", 47720, NULL), +(19527, 180766, 1, 0, 0, 1, 1, 7496.5244140625, -2532.186279296875, 452.831329345703125, 0.942476630210876464, 0, 0, 0.453989982604980468, 0.891006767749786376, 120, 255, 1, "", 47720, NULL), +(19528, 180766, 1, 0, 0, 1, 1, 7497.9287109375, -2564.247314453125, 454.282623291015625, 4.258606910705566406, 0, 0, -0.84804725646972656, 0.529920578002929687, 120, 255, 1, "", 47720, NULL), +(19529, 180766, 1, 0, 0, 1, 1, 7499.89697265625, -2487.68408203125, 457.292144775390625, 3.106652259826660156, 0, 0, 0.999847412109375, 0.017469281330704689, 120, 255, 1, "", 47720, NULL), +(19530, 180766, 1, 0, 0, 1, 1, 7520.41748046875, -2504.376953125, 454.129547119140625, 4.276057243347167968, 0, 0, -0.84339141845703125, 0.537299633026123046, 120, 255, 1, "", 47720, NULL), +-- (19531, 180766, 1, 0, 0, 1, 1, 7524.8603515625, -2600.5546875, 450.799957275390625, 5.93412017822265625, 0, 0, -0.17364788055419921, 0.984807789325714111, 120, 255, 1, "", 52237, NULL), +(19532, 180766, 1, 0, 0, 1, 1, 7528.66162109375, -2481.22216796875, 454.338714599609375, 4.328419685363769531, 0, 0, -0.82903671264648437, 0.559194147586822509, 120, 255, 1, "", 47720, NULL), +(19533, 180766, 1, 0, 0, 1, 1, 7533.19384765625, -2849.5556640625, 456.259002685546875, 5.585053920745849609, 0, 0, -0.34202003479003906, 0.939692676067352294, 120, 255, 1, "", 47720, NULL), +(19534, 180766, 1, 0, 0, 1, 1, 7535.119140625, -2436.779052734375, 453.77215576171875, 1.291541695594787597, 0, 0, 0.60181427001953125, 0.798636078834533691, 120, 255, 1, "", 47720, NULL), +-- (19535, 180766, 1, 0, 0, 1, 1, 7543.8271484375, -2567.7275390625, 450.712249755859375, 3.159062385559082031, 0, 0, -0.99996185302734375, 0.008734640665352344, 120, 255, 1, "", 52237, NULL), +-- (19536, 180766, 1, 0, 0, 1, 1, 7553.666015625, -2536.9658203125, 451.032379150390625, 5.881760597229003906, 0, 0, -0.19936752319335937, 0.979924798011779785, 120, 255, 1, "", 52237, NULL), +-- (19537, 180766, 1, 0, 0, 1, 1, 7559.12939453125, -2514.57763671875, 450.87542724609375, 2.600535154342651367, 0, 0, 0.963629722595214843, 0.26724100112915039, 120, 255, 1, "", 52237, NULL), +(19538, 180766, 1, 0, 0, 1, 1, 7560.0791015625, -2900.276611328125, 460.416717529296875, 2.949595451354980468, 0, 0, 0.995395660400390625, 0.095851235091686248, 120, 255, 1, "", 47720, NULL), +(19539, 180766, 1, 0, 0, 1, 1, 7562.2099609375, -2226.88720703125, 471.680023193359375, 5.131268978118896484, 0, 0, -0.54463863372802734, 0.838670849800109863, 120, 255, 1, "", 47720, NULL), +(19540, 180766, 1, 0, 0, 1, 1, 7572.345703125, -2366.0400390625, 454.733489990234375, 4.014260292053222656, 0, 0, -0.90630722045898437, 0.422619491815567016, 120, 255, 1, "", 47720, NULL), +(19541, 180766, 1, 0, 0, 1, 1, 7572.87841796875, -2900.664794921875, 460.201812744140625, 3.159062385559082031, 0, 0, -0.99996185302734375, 0.008734640665352344, 120, 255, 1, "", 47720, NULL), +-- (19542, 180766, 1, 0, 0, 1, 1, 7573.7734375, -2501.1494140625, 450.272796630859375, 0.890116631984710693, 0, 0, 0.430510520935058593, 0.902585566043853759, 120, 255, 1, "", 52237, NULL), +-- (19543, 180766, 1, 0, 0, 1, 1, 7581.15625, -2474.45654296875, 451.711822509765625, 4.59021615982055664, 0, 0, -0.74895572662353515, 0.662620067596435546, 120, 255, 1, "", 52237, NULL), +-- (19544, 180766, 1, 0, 0, 1, 1, 7594.10009765625, -2450.502197265625, 451.03778076171875, 3.822272777557373046, 0, 0, -0.94264125823974609, 0.333807557821273803, 120, 255, 1, "", 52237, NULL), +-- (19545, 180766, 1, 0, 0, 1, 1, 7608.71728515625, -2440.04541015625, 451.532135009765625, 4.084071159362792968, 0, 0, -0.8910064697265625, 0.453990638256072998, 120, 255, 1, "", 52237, NULL), +-- (19546, 180766, 1, 0, 0, 1, 1, 7641.80029296875, -2430.874267578125, 450.33746337890625, 3.630291461944580078, 0, 0, -0.97029495239257812, 0.241925001144409179, 120, 255, 1, "", 52237, NULL), +-- (19547, 180766, 1, 0, 0, 1, 1, 7665.78662109375, -2415.58544921875, 451.304412841796875, 5.654868602752685546, 0, 0, -0.30901622772216796, 0.95105677843093872, 120, 255, 1, "", 52237, NULL), +-- (19548, 180766, 1, 0, 0, 1, 1, 7669.5537109375, -2773.706298828125, 452.10809326171875, 5.235987663269042968, 0, 0, -0.5, 0.866025388240814208, 120, 255, 1, "", 52237, NULL), +-- (19549, 180766, 1, 0, 0, 1, 1, 7674.5947265625, -2401.744873046875, 450.91912841796875, 1.867502212524414062, 0, 0, 0.803856849670410156, 0.594822824001312255, 120, 255, 1, "", 52237, NULL), +-- (19550, 180766, 1, 0, 0, 1, 1, 7696.7109375, -2776.4970703125, 452.15313720703125, 4.293513298034667968, 0, 0, -0.8386697769165039, 0.544640243053436279, 120, 255, 1, "", 52237, NULL), +-- (19551, 180766, 1, 0, 0, 1, 1, 7708.88623046875, -2383.891845703125, 450.9805908203125, 1.570795774459838867, 0, 0, 0.707106590270996093, 0.707106947898864746, 120, 255, 1, "", 52237, NULL), +-- (19552, 180766, 1, 0, 0, 1, 1, 7715.853515625, -2786.946533203125, 451.679168701171875, 0.453785061836242675, 0, 0, 0.224950790405273437, 0.974370121955871582, 120, 255, 1, "", 52237, NULL), +-- (19553, 180766, 1, 0, 0, 1, 1, 7734.814453125, -2771.737060546875, 451.38482666015625, 4.258606910705566406, 0, 0, -0.84804725646972656, 0.529920578002929687, 120, 255, 1, "", 52237, NULL), +-- (19554, 180766, 1, 0, 0, 1, 1, 7739.3349609375, -2412.934814453125, 483.203887939453125, 4.834563255310058593, 0, 0, -0.66261959075927734, 0.748956084251403808, 120, 255, 1, "", 52237, NULL), +-- (19555, 180766, 1, 0, 0, 1, 1, 7744.6015625, -2424.31884765625, 483.6817626953125, 5.026549339294433593, 0, 0, -0.5877847671508789, 0.809017360210418701, 120, 255, 1, "", 52237, NULL), +-- (19556, 180766, 1, 0, 0, 1, 1, 7747.6787109375, -2437.37451171875, 481.160858154296875, 5.969027042388916015, 0, 0, -0.1564340591430664, 0.987688362598419189, 120, 255, 1, "", 52237, NULL), +-- (19557, 180766, 1, 0, 0, 1, 1, 7757.8984375, -2450.45654296875, 482.305389404296875, 2.042035102844238281, 0, 0, 0.852640151977539062, 0.522498607635498046, 120, 255, 1, "", 52237, NULL), +-- (19558, 180766, 1, 0, 0, 1, 1, 7758.6328125, -2558.444091796875, 474.78326416015625, 5.026549339294433593, 0, 0, -0.5877847671508789, 0.809017360210418701, 120, 255, 1, "", 52237, NULL), +-- (19559, 180766, 1, 0, 0, 1, 1, 7768.39306640625, -2589.85107421875, 455.68792724609375, 6.265733242034912109, 0, 0, -0.00872611999511718, 0.999961912631988525, 120, 255, 1, "", 52237, NULL), +-- (19560, 180766, 1, 0, 0, 1, 1, 7768.8115234375, -2468.573486328125, 475.610748291015625, 1.745326757431030273, 0, 0, 0.766043663024902343, 0.642788589000701904, 120, 255, 1, "", 52237, NULL), +-- (19561, 180766, 1, 0, 0, 1, 1, 7797.81884765625, -2529.20361328125, 476.85205078125, 3.333590030670166015, 0, 0, -0.99539566040039062, 0.095851235091686248, 120, 255, 1, "", 52237, NULL), +-- (19562, 180766, 1, 0, 0, 1, 1, 7798.89306640625, -2801.7861328125, 452.867095947265625, 5.6897735595703125, 0, 0, -0.29237174987792968, 0.956304728984832763, 120, 255, 1, "", 52237, NULL), +-- (19563, 180766, 1, 0, 0, 1, 1, 7800.9296875, -2508.494873046875, 483.080902099609375, 5.567600727081298828, 0, 0, -0.35020732879638671, 0.936672210693359375, 120, 255, 1, "", 52237, NULL), +-- (19564, 180766, 1, 0, 0, 1, 1, 7807.65966796875, -2641.603759765625, 461.6485595703125, 0.15707901120185852, 0, 0, 0.078458786010742187, 0.996917366981506347, 120, 255, 1, "", 52237, NULL), +-- (19565, 180766, 1, 0, 0, 1, 1, 7861.41259765625, -2753.021728515625, 471.12744140625, 5.619962215423583984, 0, 0, -0.32556724548339843, 0.945518851280212402, 120, 255, 1, "", 52237, NULL), +-- (19566, 180766, 1, 0, 0, 1, 1, 7889.63525390625, -2712.69482421875, 467.247344970703125, 5.829400539398193359, 0, 0, -0.22495079040527343, 0.974370121955871582, 120, 255, 1, "", 52237, NULL), +(19567, 180766, 530, 0, 0, 1, 1, -2907.525390625, 3972.318603515625, 0.090296998620033264, 3.124123096466064453, 0, 0, 0.99996185302734375, 0.008734640665352344, 120, 255, 1, "", 50664, NULL), +(19568, 180766, 530, 0, 0, 1, 1, -2908.5078125, 3989.01220703125, 0.261703014373779296, 0.191985160112380981, 0, 0, 0.095845222473144531, 0.995396256446838378, 120, 255, 1, "", 50664, NULL), +(19569, 180766, 530, 0, 0, 1, 1, -2940.097900390625, 4016.792236328125, -1.04020500183105468, 4.502951622009277343, 0, 0, -0.7771453857421875, 0.629321098327636718, 120, 255, 1, "", 50664, NULL), +(19570, 180766, 530, 0, 0, 1, 1, -2943.038330078125, 3907.9306640625, 2.621155977249145507, 4.328419685363769531, 0, 0, -0.82903671264648437, 0.559194147586822509, 120, 255, 1, "", 50664, NULL), +(19571, 180766, 530, 0, 0, 1, 1, -2952.28173828125, 4081.577392578125, 2.854387998580932617, 5.253442287445068359, 0, 0, -0.49242305755615234, 0.870355963706970214, 120, 255, 1, "", 50664, NULL), +(19572, 180766, 530, 0, 0, 1, 1, -2952.33544921875, 4019.533447265625, -0.25977900624275207, 1.274088263511657714, 0, 0, 0.594821929931640625, 0.80385744571685791, 120, 255, 1, "", 50664, NULL), +(19573, 180766, 530, 0, 0, 1, 1, -2955.7822265625, 3911.447509765625, 2.564055919647216796, 1.134462952613830566, 0, 0, 0.537299156188964843, 0.843391716480255126, 120, 255, 1, "", 50664, NULL), +(19574, 180766, 530, 0, 0, 1, 1, -2966.623291015625, 4073.059814453125, 2.941729068756103515, 2.076939344406127929, 0, 0, 0.861628532409667968, 0.50753939151763916, 120, 255, 1, "", 50664, NULL), +(19575, 180767, 1, 0, 0, 1, 1, -1425.19921875, -108.27490234375, 169.1382598876953125, 4.660029888153076171, 0, 0, -0.72537422180175781, 0.688354730606079101, 120, 255, 1, "", 47720, NULL), +-- pooled entries +-- spawning one constellation for now +-- (19576, 180767, 1, 0, 0, 1, 1, 7472.892578125, -2651.32080078125, 455.138092041015625, 5.480334281921386718, 0, 0, -0.39073085784912109, 0.920504987239837646, 120, 255, 1, "", 47720, NULL), +-- (19577, 180767, 1, 0, 0, 1, 1, 7478.55908203125, -2652.30859375, 455.144866943359375, 3.822272777557373046, 0, 0, -0.94264125823974609, 0.333807557821273803, 120, 255, 1, "", 47720, NULL), +(19578, 180767, 1, 0, 0, 1, 1, 7526.86962890625, -2464.802978515625, 455.183013916015625, 0.087265998125076293, 0, 0, 0.043619155883789062, 0.999048233032226562, 120, 255, 1, "", 47720, NULL), +(19579, 180767, 1, 0, 0, 1, 1, 7532.15966796875, -2467.02197265625, 455.59124755859375, 0.855210542678833007, 0, 0, 0.414692878723144531, 0.909961462020874023, 120, 255, 1, "", 52237, NULL), +-- (19580, 180767, 1, 0, 0, 1, 1, 7547.994140625, -2399.727783203125, 456.72125244140625, 0.820303261280059814, 0, 0, 0.398748397827148437, 0.917060375213623046, 120, 255, 1, "", 52237, NULL), +-- (19581, 180767, 1, 0, 0, 1, 1, 7553.50341796875, -2401.662109375, 456.99365234375, 1.48352813720703125, 0, 0, 0.675589561462402343, 0.737277925014495849, 120, 255, 1, "", 47720, NULL), +-- (19582, 180767, 1, 0, 0, 1, 1, 7764.7587890625, -2444.3134765625, 495.587249755859375, 4.555310726165771484, 0, 0, -0.76040554046630859, 0.649448513984680175, 120, 255, 1, "", 47720, NULL), +(19583, 180767, 1, 0, 0, 1, 1, 7770.7822265625, -2420.889892578125, 495.4761962890625, 4.48549652099609375, 0, 0, -0.7826080322265625, 0.622514784336090087, 120, 255, 1, "", 52237, NULL), +-- (19584, 180767, 1, 0, 0, 1, 1, 7785.37060546875, -2587.576416015625, 497.62396240234375, 1.884953022003173828, 0, 0, 0.809016227722167968, 0.587786316871643066, 120, 255, 1, "", 47720, NULL), +-- (19585, 180767, 1, 0, 0, 1, 1, 7789.0927734375, -2453.34716796875, 494.77301025390625, 5.532694816589355468, 0, 0, -0.3665008544921875, 0.93041771650314331, 120, 255, 1, "", 47720, NULL), +-- (19586, 180767, 1, 0, 0, 1, 1, 7826.32373046875, -2535.32666015625, 503.596832275390625, 2.303830623626708984, 0, 0, 0.913544654846191406, 0.406738430261611938, 120, 255, 1, "", 47720, NULL), +-- (19587, 180767, 1, 0, 0, 1, 1, 7831.9541015625, -2594.871826171875, 503.596832275390625, 0.663223206996917724, 0, 0, 0.325567245483398437, 0.945518851280212402, 120, 255, 1, "", 47720, NULL), +-- (19588, 180767, 1, 0, 0, 1, 1, 7833.26025390625, -2607.046875, 503.596832275390625, 2.495818138122558593, 0, 0, 0.948323249816894531, 0.317305892705917358, 120, 255, 1, "", 47720, NULL), +-- (19589, 180767, 1, 0, 0, 1, 1, 7844.05224609375, -2569.990234375, 505.267303466796875, 0.418878614902496337, 0, 0, 0.207911491394042968, 0.978147625923156738, 120, 255, 1, "", 52237, NULL), +-- (19590, 180767, 1, 0, 0, 1, 1, 7846.74658203125, -2595.48095703125, 494.174102783203125, 3.176533222198486328, 0, 0, -0.999847412109375, 0.017469281330704689, 120, 255, 1, "", 47720, NULL), +-- (19591, 180767, 1, 0, 0, 1, 1, 7857.6328125, -2486.78125, 496.6710205078125, 2.775068521499633789, 0, 0, 0.983254432678222656, 0.182238012552261352, 120, 255, 1, "", 52237, NULL), +-- (19592, 180767, 1, 0, 0, 1, 1, 7871.5791015625, -2470.440673828125, 498.78564453125, 0.226892471313476562, 0, 0, 0.113203048706054687, 0.993571877479553222, 120, 255, 1, "", 52237, NULL), +-- (19593, 180767, 1, 0, 0, 1, 1, 7879.61279296875, -2478.378662109375, 498.8212890625, 4.241150379180908203, 0, 0, -0.85264015197753906, 0.522498607635498046, 120, 255, 1, "", 47720, NULL), +-- (19594, 180767, 1, 0, 0, 1, 1, 7887.9072265625, -2501.87109375, 501.987457275390625, 4.97418975830078125, 0, 0, -0.60876083374023437, 0.793353796005249023, 120, 255, 1, "", 52237, NULL), +-- (19595, 180767, 1, 0, 0, 1, 1, 7897.0322265625, -2467.569580078125, 498.766937255859375, 4.066620349884033203, 0, 0, -0.89493370056152343, 0.44619917869567871, 120, 255, 1, "", 47720, NULL), +-- (19596, 180767, 1, 0, 0, 1, 1, 7914.283203125, -2481.3427734375, 496.647247314453125, 5.201082706451416015, 0, 0, -0.51503753662109375, 0.857167601585388183, 120, 255, 1, "", 47720, NULL), +-- (19597, 180767, 1, 0, 0, 1, 1, 7927.9130859375, -2401.150634765625, 498.45318603515625, 0.034906249493360519, 0, 0, 0.017452239990234375, 0.999847710132598876, 120, 255, 1, "", 47720, NULL), +-- (19598, 180767, 1, 0, 0, 1, 1, 7931.38623046875, -2426.612548828125, 498.436859130859375, 0.680676698684692382, 0, 0, 0.333806037902832031, 0.942641794681549072, 120, 255, 1, "", 47720, NULL), +-- (19599, 180767, 1, 0, 0, 1, 1, 7939.9775390625, -2425.346923828125, 498.42132568359375, 3.700104713439941406, 0, 0, -0.96126079559326171, 0.275640487670898437, 120, 255, 1, "", 47720, NULL), +-- (19600, 180767, 1, 0, 0, 1, 1, 7941.814453125, -2383.61669921875, 496.2965087890625, 0.191985160112380981, 0, 0, 0.095845222473144531, 0.995396256446838378, 120, 255, 1, "", 52237, NULL), +-- (19601, 180767, 1, 0, 0, 1, 1, 7948.8056640625, -2575.666748046875, 516.4300537109375, 1.186823248863220214, 0, 0, 0.559192657470703125, 0.829037725925445556, 120, 255, 1, "", 47720, NULL), +-- (19602, 180767, 1, 0, 0, 1, 1, 7972.67626953125, -2380.009521484375, 496.278656005859375, 5.480334281921386718, 0, 0, -0.39073085784912109, 0.920504987239837646, 120, 255, 1, "", 47720, NULL), +-- (19603, 180767, 1, 0, 0, 1, 1, 7980.53466796875, -2436.577392578125, 496.33148193359375, 6.178466320037841796, 0, 0, -0.05233573913574218, 0.998629570007324218, 120, 255, 1, "", 47720, NULL), +-- (19604, 180767, 1, 0, 0, 1, 1, 8013.81103515625, -2638.38232421875, 521.009033203125, 0.401424884796142578, 0, 0, 0.199367523193359375, 0.979924798011779785, 120, 255, 1, "", 52237, NULL), +-- (19605, 180767, 1, 0, 0, 1, 1, 8018.68310546875, -2687.18603515625, 521.24981689453125, 3.089183330535888671, 0, 0, 0.99965667724609375, 0.026201646775007247, 120, 255, 1, "", 52237, NULL), +-- pooled end +(19606, 180767, 571, 0, 0, 1, 1, 5770.01513671875, 581.1361083984375, 618.50830078125, 2.495818138122558593, 0, 0, 0.948323249816894531, 0.317305892705917358, 120, 255, 1, "", 47720, NULL), +(19607, 180767, 571, 0, 0, 1, 1, 5774.22900390625, 717.9036865234375, 623.3555908203125, 2.199114561080932617, 0, 0, 0.8910064697265625, 0.453990638256072998, 120, 255, 1, "", 47720, NULL), +(19608, 180767, 571, 0, 0, 1, 1, 5813.3076171875, 555.6400146484375, 655.50860595703125, 0.087265998125076293, 0, 0, 0.043619155883789062, 0.999048233032226562, 120, 255, 1, "", 47720, NULL), +(19609, 180767, 571, 0, 0, 1, 1, 5892.56787109375, 549.73272705078125, 648.2481689453125, 2.740161895751953125, 0, 0, 0.979924201965332031, 0.199370384216308593, 120, 255, 1, "", 47720, NULL), +(19610, 180767, 571, 0, 0, 1, 1, 5897.853515625, 555.55224609375, 648.3433837890625, 0.506144583225250244, 0, 0, 0.250379562377929687, 0.968147754669189453, 120, 255, 1, "", 47720, NULL), +(19611, 180768, 1, 0, 0, 1, 1, -1005.2410888671875, 303.381866455078125, 135.745941162109375, 3.839725255966186523, 0, 0, -0.93969249725341796, 0.34202045202255249, 120, 255, 1, "", 47720, NULL), +(19612, 180768, 1, 0, 0, 1, 1, -1008.8856201171875, 258.38348388671875, 135.745941162109375, 5.445427894592285156, 0, 0, -0.40673637390136718, 0.913545548915863037, 120, 255, 1, "", 47720, NULL), +(19613, 180768, 1, 0, 0, 1, 1, -1017.32861328125, 278.512420654296875, 135.745941162109375, 4.729844093322753906, 0, 0, -0.70090866088867187, 0.713251054286956787, 120, 255, 1, "", 47720, NULL), +(19614, 180768, 1, 0, 0, 1, 1, -956.791015625, 277.233367919921875, 135.745941162109375, 1.518436193466186523, 0, 0, 0.6883544921875, 0.725374460220336914, 120, 255, 1, "", 47720, NULL), +(19615, 180768, 1, 0, 0, 1, 1, -965.55255126953125, 300.288299560546875, 135.738250732421875, 2.199114561080932617, 0, 0, 0.8910064697265625, 0.453990638256072998, 120, 255, 1, "", 47720, NULL), +(19616, 180768, 1, 0, 0, 1, 1, -982.03472900390625, 309.225799560546875, 135.745941162109375, 3.054326534271240234, 0, 0, 0.999048233032226562, 0.043619260191917419, 120, 255, 1, "", 47720, NULL), +(19617, 180768, 1, 0, 0, 1, 1, -988.8809814453125, 249.1998748779296875, 135.745941162109375, 6.178466320037841796, 0, 0, -0.05233573913574218, 0.998629570007324218, 120, 255, 1, "", 47720, NULL), +-- (19618, 180768, 1, 0, 0, 1, 1, 7520.31494140625, -2617.538330078125, 450.19854736328125, 3.333590030670166015, 0, 0, -0.99539566040039062, 0.095851235091686248, 120, 255, 1, "", 52237, NULL), +-- (19619, 180768, 1, 0, 0, 1, 1, 7536.017578125, -2586.882080078125, 449.646392822265625, 5.986480236053466796, 0, 0, -0.14780902862548828, 0.989015936851501464, 120, 255, 1, "", 52237, NULL), +-- (19620, 180768, 1, 0, 0, 1, 1, 7550.1875, -2547.796142578125, 451.576385498046875, 1.85004889965057373, 0, 0, 0.798635482788085937, 0.60181504487991333, 120, 255, 1, "", 52237, NULL), +-- (19621, 180768, 1, 0, 0, 1, 1, 7554.98193359375, -2528.140625, 451.426666259765625, 4.084071159362792968, 0, 0, -0.8910064697265625, 0.453990638256072998, 120, 255, 1, "", 52237, NULL), +-- (19622, 180768, 1, 0, 0, 1, 1, 7563.55712890625, -2504.969970703125, 452.643829345703125, 3.577930212020874023, 0, 0, -0.97629547119140625, 0.216442063450813293, 120, 255, 1, "", 52237, NULL), +-- (19623, 180768, 1, 0, 0, 1, 1, 7563.90283203125, -2478.805419921875, 452.56805419921875, 4.677483558654785156, 0, 0, -0.71933937072753906, 0.694658815860748291, 120, 255, 1, "", 52237, NULL), +-- (19624, 180768, 1, 0, 0, 1, 1, 7584.67041015625, -2461.978759765625, 451.824127197265625, 1.204277276992797851, 0, 0, 0.56640625, 0.824126183986663818, 120, 255, 1, "", 52237, NULL), +-- (19625, 180768, 1, 0, 0, 1, 1, 7620.6474609375, -2441.090087890625, 451.07135009765625, 0.541050612926483154, 0, 0, 0.267237663269042968, 0.96363067626953125, 120, 255, 1, "", 52237, NULL), +-- (19626, 180768, 1, 0, 0, 1, 1, 7631.892578125, -2440.189208984375, 450.67779541015625, 2.932138919830322265, 0, 0, 0.994521141052246093, 0.104535527527332305, 120, 255, 1, "", 52237, NULL), +-- (19627, 180768, 1, 0, 0, 1, 1, 7648.09228515625, -2801.96533203125, 449.723175048828125, 0.471238493919372558, 0, 0, 0.233445167541503906, 0.972369968891143798, 120, 255, 1, "", 52237, NULL), +-- (19628, 180768, 1, 0, 0, 1, 1, 7656.5400390625, -2423.34765625, 451.3077392578125, 3.211419343948364257, 0, 0, -0.9993906021118164, 0.034906134009361267, 120, 255, 1, "", 52237, NULL), +-- (19629, 180768, 1, 0, 0, 1, 1, 7685.03369140625, -2772.595703125, 452.90008544921875, 1.553341388702392578, 0, 0, 0.700908660888671875, 0.713251054286956787, 120, 255, 1, "", 52237, NULL), +-- (19630, 180768, 1, 0, 0, 1, 1, 7694.71875, -2392.290771484375, 451.446929931640625, 0.715584874153137207, 0, 0, 0.350207328796386718, 0.936672210693359375, 120, 255, 1, "", 52237, NULL), +-- (19631, 180768, 1, 0, 0, 1, 1, 7725.265625, -2427.9140625, 458.97998046875, 4.97418975830078125, 0, 0, -0.60876083374023437, 0.793353796005249023, 120, 255, 1, "", 52237, NULL), +-- (19632, 180768, 1, 0, 0, 1, 1, 7735.74462890625, -2347.4580078125, 452.90191650390625, 3.595378875732421875, 0, 0, -0.97437000274658203, 0.224951311945915222, 120, 255, 1, "", 52237, NULL), +-- (19633, 180768, 1, 0, 0, 1, 1, 7738.6572265625, -2385.3330078125, 471.090728759765625, 6.230826377868652343, 0, 0, -0.02617645263671875, 0.999657332897186279, 120, 255, 1, "", 52237, NULL), +-- (19634, 180768, 1, 0, 0, 1, 1, 7739.564453125, -2460.68701171875, 463.761383056640625, 4.712389945983886718, 0, 0, -0.70710659027099609, 0.707106947898864746, 120, 255, 1, "", 52237, NULL), +-- (19635, 180768, 1, 0, 0, 1, 1, 7745.24853515625, -2566.802001953125, 462.147186279296875, 3.647741317749023437, 0, 0, -0.96814727783203125, 0.250381410121917724, 120, 255, 1, "", 52237, NULL), +-- (19636, 180768, 1, 0, 0, 1, 1, 7752.74658203125, -2764.292724609375, 450.983123779296875, 0.750490784645080566, 0, 0, 0.3665008544921875, 0.93041771650314331, 120, 255, 1, "", 52237, NULL), +-- (19637, 180768, 1, 0, 0, 1, 1, 7779.54931640625, -2786.561279296875, 452.141754150390625, 3.298687219619750976, 0, 0, -0.99691677093505859, 0.078466430306434631, 120, 255, 1, "", 52237, NULL), +-- (19638, 180768, 1, 0, 0, 1, 1, 7787.3505859375, -2497.639404296875, 478.4132080078125, 2.652894020080566406, 0, 0, 0.970294952392578125, 0.241925001144409179, 120, 255, 1, "", 52237, NULL), +-- (19639, 180768, 1, 0, 0, 1, 1, 7794.49462890625, -2468.432373046875, 481.132232666015625, 5.305802345275878906, 0, 0, -0.46947097778320312, 0.882947921752929687, 120, 255, 1, "", 52237, NULL), +-- (19640, 180768, 1, 0, 0, 1, 1, 7797.37255859375, -2634.2900390625, 461.192779541015625, 5.201082706451416015, 0, 0, -0.51503753662109375, 0.857167601585388183, 120, 255, 1, "", 52237, NULL), +-- (19641, 180768, 1, 0, 0, 1, 1, 7873.27197265625, -2765.1484375, 478.988128662109375, 3.630291461944580078, 0, 0, -0.97029495239257812, 0.241925001144409179, 120, 255, 1, "", 52237, NULL), +-- (19642, 180768, 1, 0, 0, 1, 1, 7877.12841796875, -2755.783447265625, 480.8331298828125, 4.869470596313476562, 0, 0, -0.64944744110107421, 0.760406434535980224, 120, 255, 1, "", 52237, NULL), +-- (19643, 180768, 1, 0, 0, 1, 1, 7877.1787109375, -2616.021728515625, 453.095458984375, 6.14356088638305664, 0, 0, -0.06975555419921875, 0.997564136981964111, 120, 255, 1, "", 52237, NULL), +-- (19644, 180768, 1, 0, 0, 1, 1, 7893.55322265625, -2691.899658203125, 454.543182373046875, 4.328419685363769531, 0, 0, -0.82903671264648437, 0.559194147586822509, 120, 255, 1, "", 52237, NULL), +(19645, 180768, 530, 0, 0, 1, 1, -2576.479736328125, 4424.43115234375, 38.57500076293945312, 5.70722818374633789, 0, 0, -0.28401470184326171, 0.958819925785064697, 120, 255, 1, "", 45704, NULL), +(19646, 180768, 530, 0, 0, 1, 1, -2578.249267578125, 4380.33837890625, 30.05036163330078125, 4.398232460021972656, 0, 0, -0.80901622772216796, 0.587786316871643066, 120, 255, 1, "", 45704, NULL), +(19647, 180768, 530, 0, 0, 1, 1, -2595.84228515625, 4374.36572265625, 29.80715370178222656, 2.565631866455078125, 0, 0, 0.958819389343261718, 0.284016460180282592, 120, 255, 1, "", 45704, NULL), +(19648, 180768, 530, 0, 0, 1, 1, -2617.74267578125, 4417.2744140625, 36.13049697875976562, 4.869470596313476562, 0, 0, -0.64944744110107421, 0.760406434535980224, 120, 255, 1, "", 45704, NULL), +(19649, 180768, 530, 0, 0, 1, 1, -2634.99609375, 4420.16162109375, 36.13532638549804687, 1.029743075370788574, 0, 0, 0.492423057556152343, 0.870355963706970214, 120, 255, 1, "", 45704, NULL), +(19650, 180768, 530, 0, 0, 1, 1, -2662.6962890625, 4401.04541015625, 36.85218429565429687, 3.054326534271240234, 0, 0, 0.999048233032226562, 0.043619260191917419, 120, 255, 1, "", 45704, NULL), +(19651, 180768, 530, 0, 0, 1, 1, -2669.31494140625, 4415.3447265625, 35.85213088989257812, 0.436331570148468017, 0, 0, 0.216439247131347656, 0.976296067237854003, 120, 255, 1, "", 45704, NULL), +(19652, 180769, 1, 0, 0, 1, 1, 7439.09912109375, -2809.767333984375, 473.928070068359375, 3.508116960525512695, 0, 0, -0.98325443267822265, 0.182238012552261352, 120, 255, 1, "", 47720, NULL), +(19653, 180769, 1, 0, 0, 1, 1, 7797.4833984375, -2417.39404296875, 497.05804443359375, 1.937312245368957519, 0, 0, 0.824125289916992187, 0.566407561302185058, 120, 255, 1, "", 47720, NULL), +(19654, 180769, 1, 0, 0, 1, 1, 7837.34130859375, -2197, 478.04388427734375, 2.548179388046264648, 0, 0, 0.956304550170898437, 0.292372345924377441, 120, 255, 1, "", 47720, NULL), +(19655, 180769, 1, 0, 0, 1, 1, 7868.9521484375, -2191.25341796875, 486.366546630859375, 0.907570242881774902, 0, 0, 0.438370704650878906, 0.898794233798980712, 120, 255, 1, "", 47720, NULL), +(19656, 180769, 1, 0, 0, 1, 1, 7879.0869140625, -2219.161376953125, 479.285308837890625, 5.6897735595703125, 0, 0, -0.29237174987792968, 0.956304728984832763, 120, 255, 1, "", 47720, NULL), +(19657, 180769, 571, 0, 0, 1, 1, 5671.9833984375, 646.46563720703125, 652.13043212890625, 0.296705186367034912, 0, 0, 0.147809028625488281, 0.989015936851501464, 120, 255, 1, "", 47720, NULL), +(19658, 180769, 571, 0, 0, 1, 1, 5675.1728515625, 631.322265625, 652.21002197265625, 0.523597896099090576, 0, 0, 0.258818626403808593, 0.965925931930541992, 120, 255, 1, "", 47720, NULL), +(19659, 180769, 571, 0, 0, 1, 1, 5687.78564453125, 619.97088623046875, 652.2066650390625, 0.575957298278808593, 0, 0, 0.284014701843261718, 0.958819925785064697, 120, 255, 1, "", 47720, NULL), +(19660, 180769, 571, 0, 0, 1, 1, 5730.58154296875, 607.2877197265625, 652.46209716796875, 0.890116631984710693, 0, 0, 0.430510520935058593, 0.902585566043853759, 120, 255, 1, "", 47720, NULL), +(19661, 180769, 571, 0, 0, 1, 1, 5750.35302734375, 646.97125244140625, 656.32904052734375, 2.478367090225219726, 0, 0, 0.94551849365234375, 0.325568377971649169, 120, 255, 1, "", 47720, NULL), +(19662, 180769, 571, 0, 0, 1, 1, 5753.37158203125, 616.36956787109375, 656.38848876953125, 4.049167633056640625, 0, 0, -0.89879322052001953, 0.438372820615768432, 120, 255, 1, "", 47720, NULL), +(19663, 180769, 571, 0, 0, 1, 1, 5768.03955078125, 709.34490966796875, 623.66021728515625, 5.585053920745849609, 0, 0, -0.34202003479003906, 0.939692676067352294, 120, 255, 1, "", 47720, NULL), +(19664, 180769, 571, 0, 0, 1, 1, 5768.86572265625, 732.3944091796875, 645.67999267578125, 5.777040958404541015, 0, 0, -0.25037956237792968, 0.968147754669189453, 120, 255, 1, "", 47720, NULL), +(19665, 180769, 571, 0, 0, 1, 1, 5769.89404296875, 668.66143798828125, 650.428466796875, 2.460912704467773437, 0, 0, 0.942641258239746093, 0.333807557821273803, 120, 255, 1, "", 47720, NULL), +(19666, 180769, 571, 0, 0, 1, 1, 5783.13134765625, 561.61285400390625, 655.83538818359375, 0.855210542678833007, 0, 0, 0.414692878723144531, 0.909961462020874023, 120, 255, 1, "", 47720, NULL), +(19667, 180769, 571, 0, 0, 1, 1, 5786.9423828125, 691.6104736328125, 653.31787109375, 2.426007747650146484, 0, 0, 0.936672210693359375, 0.350207358598709106, 120, 255, 1, "", 47720, NULL), +(19668, 180769, 571, 0, 0, 1, 1, 5788.4375, 653.51043701171875, 654.60968017578125, 5.602506637573242187, 0, 0, -0.33380699157714843, 0.942641437053680419, 120, 255, 1, "", 47720, NULL), +(19669, 180769, 571, 0, 0, 1, 1, 5809.2568359375, 575.9974365234375, 656.72222900390625, 4.834563255310058593, 0, 0, -0.66261959075927734, 0.748956084251403808, 120, 255, 1, "", 47720, NULL), +(19670, 180769, 571, 0, 0, 1, 1, 5817.3720703125, 694.9447021484375, 653.33856201171875, 0.890116631984710693, 0, 0, 0.430510520935058593, 0.902585566043853759, 120, 255, 1, "", 47720, NULL), +(19671, 180769, 571, 0, 0, 1, 1, 5835.0810546875, 719.89691162109375, 646.14447021484375, 4.014260292053222656, 0, 0, -0.90630722045898437, 0.422619491815567016, 120, 255, 1, "", 47720, NULL), +(19672, 180769, 571, 0, 0, 1, 1, 5844.0615234375, 569.6258544921875, 656.828857421875, 2.478367090225219726, 0, 0, 0.94551849365234375, 0.325568377971649169, 120, 255, 1, "", 47720, NULL), +(19673, 180769, 571, 0, 0, 1, 1, 5852.462890625, 690.136962890625, 614.82574462890625, 4.031712055206298828, 0, 0, -0.90258502960205078, 0.430511653423309326, 120, 255, 1, "", 47720, NULL), +(19674, 180769, 571, 0, 0, 1, 1, 5855.79638671875, 664.7435302734375, 653.76885986328125, 0.907570242881774902, 0, 0, 0.438370704650878906, 0.898794233798980712, 120, 255, 1, "", 47720, NULL), +(19675, 180769, 571, 0, 0, 1, 1, 5858.53466796875, 699.87677001953125, 647.41094970703125, 4.014260292053222656, 0, 0, -0.90630722045898437, 0.422619491815567016, 120, 255, 1, "", 47720, NULL), +(19676, 180769, 571, 0, 0, 1, 1, 5859.03759765625, 634.49761962890625, 653.8648681640625, 5.585053920745849609, 0, 0, -0.34202003479003906, 0.939692676067352294, 120, 255, 1, "", 47720, NULL), +(19677, 180769, 571, 0, 0, 1, 1, 5864.8759765625, 738.831298828125, 644.73956298828125, 5.113816738128662109, 0, 0, -0.55193614959716796, 0.833886384963989257, 120, 255, 1, "", 47720, NULL), +(19678, 180769, 571, 0, 0, 1, 1, 5873.1396484375, 725.078125, 647.27862548828125, 1.780233979225158691, 0, 0, 0.7771453857421875, 0.629321098327636718, 120, 255, 1, "", 47720, NULL), +(19679, 180769, 571, 0, 0, 1, 1, 5881.34228515625, 611.06597900390625, 654.6136474609375, 2.495818138122558593, 0, 0, 0.948323249816894531, 0.317305892705917358, 120, 255, 1, "", 47720, NULL), +(19680, 180769, 571, 0, 0, 1, 1, 5883.3779296875, 741.8603515625, 644.64208984375, 4.9218292236328125, 0, 0, -0.62932014465332031, 0.77714616060256958, 120, 255, 1, "", 47720, NULL), +(19681, 180769, 571, 0, 0, 1, 1, 5886.38720703125, 624.814697265625, 653.55303955078125, 2.460912704467773437, 0, 0, 0.942641258239746093, 0.333807557821273803, 120, 255, 1, "", 47720, NULL), +(19682, 180769, 571, 0, 0, 1, 1, 5901.17724609375, 684.357666015625, 647.64324951171875, 2.391098499298095703, 0, 0, 0.930417060852050781, 0.366502493619918823, 120, 255, 1, "", 47720, NULL), +(19683, 180769, 571, 0, 0, 1, 1, 5901.751953125, 746.1671142578125, 645.92572021484375, 4.502951622009277343, 0, 0, -0.7771453857421875, 0.629321098327636718, 120, 255, 1, "", 47720, NULL), +(19684, 180769, 571, 0, 0, 1, 1, 5909.36474609375, 661.76910400390625, 649.1790771484375, 3.9793548583984375, 0, 0, -0.9135446548461914, 0.406738430261611938, 120, 255, 1, "", 47720, NULL), +(19685, 180769, 571, 0, 0, 1, 1, 5913.595703125, 558.0538330078125, 615.16204833984375, 1.274088263511657714, 0, 0, 0.594821929931640625, 0.80385744571685791, 120, 255, 1, "", 47720, NULL), +(19686, 180769, 571, 0, 0, 1, 1, 5915.08056640625, 710.20660400390625, 646.71710205078125, 3.071766138076782226, 0, 0, 0.999390602111816406, 0.034906134009361267, 120, 255, 1, "", 47720, NULL), +(19687, 180769, 571, 0, 0, 1, 1, 5929.5625, 561.21875, 615.48876953125, 2.44346022605895996, 0, 0, 0.939692497253417968, 0.34202045202255249, 120, 255, 1, "", 47720, NULL), +(19688, 180769, 571, 0, 0, 1, 1, 5931.3427734375, 575.787841796875, 615.0650634765625, 3.857182979583740234, 0, 0, -0.93667125701904296, 0.350209832191467285, 120, 255, 1, "", 47720, NULL), +(19689, 180770, 0, 0, 0, 1, 1, -8608.75, 382.625, 113.878143310546875, 2.216565132141113281, 0, 0, 0.894933700561523437, 0.44619917869567871, 120, 255, 1, "", 52237, NULL), +(19690, 180770, 0, 0, 0, 1, 1, -8655.17578125, 670.12078857421875, 106.5109634399414062, 0.663223206996917724, 0, 0, 0.325567245483398437, 0.945518851280212402, 120, 255, 1, "", 47720, NULL), +(19691, 180770, 0, 0, 0, 1, 1, -8668.03515625, 396.92535400390625, 109.2929229736328125, 5.35816192626953125, 0, 0, -0.446197509765625, 0.894934535026550292, 120, 255, 1, "", 52237, NULL), +(19692, 180770, 0, 0, 0, 1, 1, -8705.734375, 851.331298828125, 103.491363525390625, 5.393068790435791015, 0, 0, -0.43051052093505859, 0.902585566043853759, 120, 255, 1, "", 47720, NULL), +(19693, 180770, 571, 0, 0, 1, 1, 5659.56884765625, 679.33795166015625, 662.2586669921875, 5.864306926727294921, 0, 0, -0.20791149139404296, 0.978147625923156738, 120, 255, 1, "", 47720, NULL), +(19694, 180770, 571, 0, 0, 1, 1, 5671.68896484375, 646.72802734375, 664.10369873046875, 0.296705186367034912, 0, 0, 0.147809028625488281, 0.989015936851501464, 120, 255, 1, "", 47720, NULL), +(19695, 180770, 571, 0, 0, 1, 1, 5728.3798828125, 609.73895263671875, 668.4720458984375, 0.890116631984710693, 0, 0, 0.430510520935058593, 0.902585566043853759, 120, 255, 1, "", 47720, NULL), +(19696, 180770, 571, 0, 0, 1, 1, 5783.65087890625, 561.3226318359375, 663.7340087890625, 0.890116631984710693, 0, 0, 0.430510520935058593, 0.902585566043853759, 120, 255, 1, "", 47720, NULL), +(19697, 180770, 571, 0, 0, 1, 1, 5834.69287109375, 718.49200439453125, 659.24774169921875, 4.066620349884033203, 0, 0, -0.89493370056152343, 0.44619917869567871, 120, 255, 1, "", 47720, NULL), +(19698, 180770, 571, 0, 0, 1, 1, 5885.1728515625, 625.671875, 667.67633056640625, 5.637413978576660156, 0, 0, -0.31730461120605468, 0.948323667049407958, 120, 255, 1, "", 47720, NULL), +(19699, 180770, 571, 0, 0, 1, 1, 5948.265625, 620.9393310546875, 660.90771484375, 2.792518377304077148, 0, 0, 0.984807014465332031, 0.173652306199073791, 120, 255, 1, "", 47720, NULL), +(19700, 180773, 0, 0, 0, 1, 1, -4898.0849609375, -969.86212158203125, 508.09564208984375, 2.199114561080932617, 0, 0, 0.8910064697265625, 0.453990638256072998, 120, 255, 1, "", 47720, NULL), +(19701, 180773, 0, 0, 0, 1, 1, -4909.1875, -877.80902099609375, 508.408538818359375, 5.096362113952636718, 0, 0, -0.55919265747070312, 0.829037725925445556, 120, 255, 1, "", 47720, NULL), +(19702, 180773, 0, 0, 0, 1, 1, -4911.4423828125, -980.86956787109375, 508.03363037109375, 2.303830623626708984, 0, 0, 0.913544654846191406, 0.406738430261611938, 120, 255, 1, "", 52237, NULL), +(19703, 180773, 0, 0, 0, 1, 1, -5007.46435546875, -1240.84765625, 518.63848876953125, 0.698131442070007324, 0, 0, 0.342020034790039062, 0.939692676067352294, 120, 255, 1, "", 52237, NULL), +(19704, 180773, 0, 0, 0, 1, 1, -5020.66357421875, -834.8433837890625, 515.46832275390625, 2.251473426818847656, 0, 0, 0.902585029602050781, 0.430511653423309326, 120, 255, 1, "", 47720, NULL), +(19705, 180773, 0, 0, 0, 1, 1, -8399.86328125, 677.2569580078125, 108.1270294189453125, 3.78736734390258789, 0, 0, -0.94832324981689453, 0.317305892705917358, 120, 255, 1, "", 52237, NULL), +(19706, 180773, 0, 0, 0, 1, 1, -8712.763671875, 465.376739501953125, 107.8306732177734375, 5.323255538940429687, 0, 0, -0.46174812316894531, 0.887011110782623291, 120, 255, 1, "", 52237, NULL), +(19707, 180773, 0, 0, 0, 1, 1, -8763.1982421875, 724.888916015625, 104.2291107177734375, 0.680676698684692382, 0, 0, 0.333806037902832031, 0.942641794681549072, 120, 255, 1, "", 47720, NULL), +(19708, 180773, 0, 0, 0, 1, 1, -8854.5439453125, 662.6796875, 107.2023773193359375, 5.340708732604980468, 0, 0, -0.45398998260498046, 0.891006767749786376, 120, 255, 1, "", 47720, NULL), +(19709, 180773, 0, 0, 0, 1, 1, -8942.748046875, 987.95489501953125, 135.160858154296875, 5.340708732604980468, 0, 0, -0.45398998260498046, 0.891006767749786376, 120, 255, 1, "", 52237, NULL), +(19710, 180773, 1, 0, 0, 1, 1, 7562.60400390625, -2903.484375, 462.901214599609375, 1.413715124130249023, 0, 0, 0.649447441101074218, 0.760406434535980224, 120, 255, 1, "", 47720, NULL), +(19711, 180773, 1, 0, 0, 1, 1, 7570.19873046875, -2903.755126953125, 462.81195068359375, 1.640606880187988281, 0, 0, 0.731352806091308593, 0.6819993257522583, 120, 255, 1, "", 47720, NULL), +(19712, 180773, 1, 0, 0, 1, 1, 9710.0869140625, 2525.442626953125, 1343.0679931640625, 0.034906249493360519, 0, 0, 0.017452239990234375, 0.999847710132598876, 120, 255, 1, "", 52237, NULL), +(19713, 180773, 1, 0, 0, 1, 1, 9935.6044921875, 2509.44970703125, 1326.9095458984375, 3.857182979583740234, 0, 0, -0.93667125701904296, 0.350209832191467285, 120, 255, 1, "", 52237, NULL), +(19714, 180773, 1, 0, 0, 1, 1, 9986.3056640625, 1978.732666015625, 1342.181640625, 4.729844093322753906, 0, 0, -0.70090866088867187, 0.713251054286956787, 120, 255, 1, "", 52237, NULL), +(19715, 180773, 1, 0, 0, 1, 1, 9986.775390625, 2022.328125, 1341.728271484375, 1.588248729705810546, 0, 0, 0.713250160217285156, 0.700909554958343505, 120, 255, 1, "", 52237, NULL), +(19716, 180773, 571, 0, 0, 1, 1, 5739.92724609375, 677.38018798828125, 648.57440185546875, 5.585053920745849609, 0, 0, -0.34202003479003906, 0.939692676067352294, 120, 255, 1, "", 47720, NULL), +(19717, 180773, 571, 0, 0, 1, 1, 5828.04345703125, 504.603515625, 663.94207763671875, 5.009094715118408203, 0, 0, -0.59482288360595703, 0.80385679006576538, 120, 255, 1, "", 47720, NULL), +-- duplicate spawn +-- (19718, 180774, 0, 0, 0, 1, 1, -4634.31591796875, -1026.5972900390625, 511.7818603515625, 1.815141916275024414, 0, 0, 0.788010597229003906, 0.615661680698394775, 120, 255, 1, "", 52237, NULL), +-- (19719, 180774, 0, 0, 0, 1, 1, -4637.8662109375, -934.6649169921875, 517.1827392578125, 3.839725255966186523, 0, 0, -0.93969249725341796, 0.34202045202255249, 120, 255, 1, "", 47720, NULL), +-- (19720, 180774, 0, 0, 0, 1, 1, -4640.94775390625, -1177.7257080078125, 511.82611083984375, 4.223697185516357421, 0, 0, -0.85716724395751953, 0.515038192272186279, 120, 255, 1, "", 52237, NULL), +-- (19721, 180774, 0, 0, 0, 1, 1, -4999.5625, -952.12152099609375, 508.382659912109375, 5.672322273254394531, 0, 0, -0.3007049560546875, 0.953717231750488281, 120, 255, 1, "", 47720, NULL), +-- (19722, 180774, 0, 0, 0, 1, 1, -8538.9580078125, 455.3336181640625, 113.5704116821289062, 2.234017848968505859, 0, 0, 0.898793220520019531, 0.438372820615768432, 120, 255, 1, "", 52237, NULL), +-- (19723, 180774, 0, 0, 0, 1, 1, -8851.8330078125, 850.70489501953125, 108.8473587036132812, 5.410521507263183593, 0, 0, -0.42261791229248046, 0.906307935714721679, 120, 255, 1, "", 47720, NULL), +-- (19724, 180774, 0, 0, 0, 1, 1, -8859.9287109375, 584.9310302734375, 93.38101959228515625, 4.014260292053222656, 0, 0, -0.90630722045898437, 0.422619491815567016, 120, 255, 1, "", 47720, NULL), +-- (19725, 180774, 0, 0, 0, 1, 1, -8885.669921875, 594.6055908203125, 93.583526611328125, 3.647741317749023437, 0, 0, -0.96814727783203125, 0.250381410121917724, 120, 255, 1, "", 52237, NULL), +-- (19726, 180774, 1, 0, 0, 1, 1, 9940.3740234375, 2509.09375, 1327.0860595703125, 5.550147056579589843, 0, 0, -0.358367919921875, 0.933580458164215087, 120, 255, 1, "", 52237, NULL), +-- (19727, 180774, 1, 0, 0, 1, 1, 9950.4228515625, 2339.038330078125, 1355.65625, 4.747295856475830078, 0, 0, -0.69465827941894531, 0.719339847564697265, 120, 255, 1, "", 52237, NULL), +-- (19728, 180774, 1, 0, 0, 1, 1, 9952.4931640625, 2258.6494140625, 1349.288330078125, 4.729844093322753906, 0, 0, -0.70090866088867187, 0.713251054286956787, 120, 255, 1, "", 47720, NULL), +-- (19729, 180774, 1, 0, 0, 1, 1, 9986.3056640625, 1978.732666015625, 1342.181640625, 4.729844093322753906, 0, 0, -0.70090866088867187, 0.713251054286956787, 120, 255, 1, "", 47720, NULL), +-- (19730, 180774, 1, 0, 0, 1, 1, 9986.775390625, 2022.328125, 1341.728271484375, 1.588248729705810546, 0, 0, 0.713250160217285156, 0.700909554958343505, 120, 255, 1, "", 47720, NULL), +(19731, 180775, 0, 0, 0, 1, 1, 1582.49609375, 227.3899688720703125, -45.8039360046386718, 4.014260292053222656, 0, 0, -0.90630722045898437, 0.422619491815567016, 120, 255, 1, "", 47720, NULL), +(19732, 180775, 0, 0, 0, 1, 1, 1582.64453125, 253.4781951904296875, -45.6256942749023437, 2.408554315567016601, 0, 0, 0.933580398559570312, 0.358368009328842163, 120, 255, 1, "", 47720, NULL), +(19733, 180775, 0, 0, 0, 1, 1, 1608.5423583984375, 227.2740325927734375, -46.2984237670898437, 5.480334281921386718, 0, 0, -0.39073085784912109, 0.920504987239837646, 120, 255, 1, "", 47966, NULL), +(19734, 180775, 1, 0, 0, 1, 1, -1124.170166015625, 64.28125, 146.7425079345703125, 4.48549652099609375, 0, 0, -0.7826080322265625, 0.622514784336090087, 120, 255, 1, "", 47720, NULL), +(19735, 180775, 1, 0, 0, 1, 1, -1420.32470703125, -111.116317749023437, 173.949981689453125, 5.672322273254394531, 0, 0, -0.3007049560546875, 0.953717231750488281, 120, 255, 1, "", 47720, NULL), +(19736, 180775, 1, 0, 0, 1, 1, 1386.3038330078125, -4382.35791015625, 38.70106124877929687, 3.263772249221801757, 0, 0, -0.99813461303710937, 0.061051756143569946, 120, 255, 1, "", 47720, NULL), +(19737, 180775, 571, 0, 0, 1, 1, 5837.24365234375, 507.428009033203125, 663.80596923828125, 5.044002056121826171, 0, 0, -0.58070278167724609, 0.814115643501281738, 120, 255, 1, "", 47720, NULL), +(19738, 180775, 571, 0, 0, 1, 1, 5847.90869140625, 588.421875, 654.30731201171875, 2.007128477096557617, 0, 0, 0.84339141845703125, 0.537299633026123046, 120, 255, 1, "", 47720, NULL), +(19739, 180775, 571, 0, 0, 1, 1, 5879.287109375, 527.8228759765625, 644.27728271484375, 1.762782454490661621, 0, 0, 0.771624565124511718, 0.636078238487243652, 120, 255, 1, "", 47720, NULL), +(19740, 180775, 571, 0, 0, 1, 1, 5888.6943359375, 530.01910400390625, 644.23553466796875, 1.832594871520996093, 0, 0, 0.793353080749511718, 0.608761727809906005, 120, 255, 1, "", 47720, NULL), +(19741, 180777, 0, 0, 0, 1, 1, -4647.05615234375, -954.090087890625, 502.146392822265625, 3.24634718894958496, 0, 0, -0.99862861633300781, 0.052353221923112869, 120, 255, 1, "", 47720, NULL), +(19742, 180777, 0, 0, 0, 1, 1, -4657.755859375, -940.89898681640625, 502.145721435546875, 1.291541695594787597, 0, 0, 0.60181427001953125, 0.798636078834533691, 120, 255, 1, "", 47720, NULL), +(19743, 180777, 0, 0, 0, 1, 1, -4657.8505859375, -970.8358154296875, 502.143463134765625, 1.780233979225158691, 0, 0, 0.7771453857421875, 0.629321098327636718, 120, 255, 1, "", 47720, NULL), +(19744, 180777, 0, 0, 0, 1, 1, -4676.447265625, -948.09820556640625, 502.14495849609375, 5.6897735595703125, 0, 0, -0.29237174987792968, 0.956304728984832763, 120, 255, 1, "", 47720, NULL), +(19745, 180777, 0, 0, 0, 1, 1, -8736.921875, 1075.32666015625, 90.73262786865234375, 4.45059061050415039, 0, 0, -0.79335308074951171, 0.608761727809906005, 120, 255, 1, "", 47720, NULL), +(19746, 180777, 0, 0, 0, 1, 1, -8744.134765625, 1009.6397705078125, 96.1605987548828125, 4.223697185516357421, 0, 0, -0.85716724395751953, 0.515038192272186279, 120, 255, 1, "", 47720, NULL), +(19747, 180777, 0, 0, 0, 1, 1, -8758.1220703125, 1068.5181884765625, 90.641632080078125, 2.740161895751953125, 0, 0, 0.979924201965332031, 0.199370384216308593, 120, 255, 1, "", 47720, NULL), +(19748, 180777, 0, 0, 0, 1, 1, -8798.6240234375, 938.709228515625, 101.5633163452148437, 0.785396754741668701, 0, 0, 0.38268280029296875, 0.923879802227020263, 120, 255, 1, "", 47720, NULL), +(19749, 180777, 0, 0, 0, 1, 1, -8805.7099609375, 947.6453857421875, 101.5633087158203125, 3.90954136848449707, 0, 0, -0.92718315124511718, 0.37460830807685852, 120, 255, 1, "", 47720, NULL), +(19750, 180777, 0, 0, 0, 1, 1, -8818.0048828125, 817.32281494140625, 99.18840789794921875, 1.658061861991882324, 0, 0, 0.737277030944824218, 0.67559051513671875, 120, 255, 1, "", 47720, NULL), +(19751, 180777, 0, 0, 0, 1, 1, -8818.8779296875, 684.4285888671875, 98.29520416259765625, 3.717553615570068359, 0, 0, -0.95881938934326171, 0.284016460180282592, 120, 255, 1, "", 47720, NULL), +(19752, 180777, 0, 0, 0, 1, 1, -8826.4892578125, 845.2611083984375, 99.518829345703125, 5.096362113952636718, 0, 0, -0.55919265747070312, 0.829037725925445556, 120, 255, 1, "", 47720, NULL), +(19753, 180777, 0, 0, 0, 1, 1, -8831.8603515625, 678.216796875, 98.31241607666015625, 3.682650327682495117, 0, 0, -0.96362972259521484, 0.26724100112915039, 120, 255, 1, "", 47720, NULL), +(19754, 180777, 0, 0, 0, 1, 1, -8834.6015625, 894.18292236328125, 97.85538482666015625, 5.288348197937011718, 0, 0, -0.4771585464477539, 0.878817260265350341, 120, 255, 1, "", 47720, NULL), +(19755, 180777, 0, 0, 0, 1, 1, -8834.625, 796.4873046875, 96.7004547119140625, 4.869470596313476562, 0, 0, -0.64944744110107421, 0.760406434535980224, 120, 255, 1, "", 47720, NULL), +(19756, 180777, 0, 0, 0, 1, 1, -8842.263671875, 726.89434814453125, 97.08579254150390625, 2.129300594329833984, 0, 0, 0.874619483947753906, 0.484810054302215576, 120, 255, 1, "", 47720, NULL), +(19757, 180777, 0, 0, 0, 1, 1, -8846.701171875, 926.5528564453125, 101.9738235473632812, 0.593410074710845947, 0, 0, 0.292370796203613281, 0.95630502700805664, 120, 255, 1, "", 47720, NULL), +(19758, 180777, 0, 0, 0, 1, 1, -8851.84375, 934.48028564453125, 102.2765579223632812, 3.735006093978881835, 0, 0, -0.95630455017089843, 0.292372345924377441, 120, 255, 1, "", 47720, NULL), +(19759, 180777, 0, 0, 0, 1, 1, -8852.9638671875, 722.76397705078125, 97.05820465087890625, 5.235987663269042968, 0, 0, -0.5, 0.866025388240814208, 120, 255, 1, "", 47720, NULL), +(19760, 180777, 1, 0, 0, 1, 1, 7497.84130859375, -2203.225341796875, 480.22015380859375, 6.248279094696044921, 0, 0, -0.01745223999023437, 0.999847710132598876, 120, 255, 1, "", 47720, NULL), +(19761, 180777, 1, 0, 0, 1, 1, 7499.09814453125, -2191.630126953125, 480.451995849609375, 3.054326534271240234, 0, 0, 0.999048233032226562, 0.043619260191917419, 120, 255, 1, "", 47720, NULL), +(19762, 180777, 1, 0, 0, 1, 1, 7530.31005859375, -2850.197509765625, 458.60400390625, 2.513273954391479492, 0, 0, 0.951056480407714843, 0.309017121791839599, 120, 255, 1, "", 47720, NULL), +(19763, 180777, 1, 0, 0, 1, 1, 7532.81787109375, -2852.513427734375, 458.174957275390625, 2.321286916732788085, 0, 0, 0.917059898376464843, 0.398749500513076782, 120, 255, 1, "", 47720, NULL), +(19764, 180777, 1, 0, 0, 1, 1, 7559.9072265625, -2871.457763671875, 460.619415283203125, 2.583080768585205078, 0, 0, 0.961260795593261718, 0.275640487670898437, 120, 255, 1, "", 47720, NULL), +(19765, 180777, 1, 0, 0, 1, 1, 7562.45166015625, -2873.018310546875, 460.910980224609375, 2.530723094940185546, 0, 0, 0.953716278076171875, 0.300707906484603881, 120, 255, 1, "", 47720, NULL), +(19766, 180777, 1, 0, 0, 1, 1, 7562.486328125, -2227.1787109375, 471.629547119140625, 3.595378875732421875, 0, 0, -0.97437000274658203, 0.224951311945915222, 120, 255, 1, "", 47720, NULL), +(19767, 180777, 1, 0, 0, 1, 1, 7571.57275390625, -2207.698486328125, 474.834686279296875, 2.321286916732788085, 0, 0, 0.917059898376464843, 0.398749500513076782, 120, 255, 1, "", 47720, NULL), +(19768, 180777, 1, 0, 0, 1, 1, 7577.5068359375, -2201.813232421875, 475.4521484375, 5.532694816589355468, 0, 0, -0.3665008544921875, 0.93041771650314331, 120, 255, 1, "", 47720, NULL), +(19769, 180777, 1, 0, 0, 1, 1, 7580.08251953125, -2215.165771484375, 473.398223876953125, 2.391098499298095703, 0, 0, 0.930417060852050781, 0.366502493619918823, 120, 255, 1, "", 47720, NULL), +(19770, 180777, 1, 0, 0, 1, 1, 7585.20068359375, -2209.9462890625, 473.86236572265625, 5.532694816589355468, 0, 0, -0.3665008544921875, 0.93041771650314331, 120, 255, 1, "", 47720, NULL), +(19771, 180777, 1, 0, 0, 1, 1, 7586.01806640625, -2220.791015625, 471.576446533203125, 2.408554315567016601, 0, 0, 0.933580398559570312, 0.358368009328842163, 120, 255, 1, "", 47720, NULL), +(19772, 180777, 1, 0, 0, 1, 1, 7587.34716796875, -2196.991943359375, 476.20404052734375, 1.343901276588439941, 0, 0, 0.622513771057128906, 0.78260880708694458, 120, 255, 1, "", 47720, NULL), +(19773, 180777, 1, 0, 0, 1, 1, 7591.07666015625, -2214.272705078125, 471.405914306640625, 5.6897735595703125, 0, 0, -0.29237174987792968, 0.956304728984832763, 120, 255, 1, "", 47720, NULL), +(19774, 180777, 1, 0, 0, 1, 1, 7619.00537109375, -2221.212158203125, 469.807037353515625, 0.837757468223571777, 0, 0, 0.406736373901367187, 0.913545548915863037, 120, 255, 1, "", 47720, NULL), +(19775, 180777, 1, 0, 0, 1, 1, 7925.33251953125, -2550.147216796875, 486.068634033203125, 4.101525306701660156, 0, 0, -0.88701057434082031, 0.461749136447906494, 120, 255, 1, "", 47720, NULL), +(19776, 180777, 1, 0, 0, 1, 1, 7937.65966796875, -2362.064208984375, 488.5504150390625, 4.642575740814208984, 0, 0, -0.731353759765625, 0.681998312473297119, 120, 255, 1, "", 47720, NULL), +(19777, 180777, 1, 0, 0, 1, 1, 7948.85498046875, -2629.29736328125, 493.1260986328125, 1.361356139183044433, 0, 0, 0.629320144653320312, 0.77714616060256958, 120, 255, 1, "", 47720, NULL), +(19778, 180777, 1, 0, 0, 1, 1, 7951.52783203125, -2615.86669921875, 492.922637939453125, 1.710421562194824218, 0, 0, 0.754709243774414062, 0.656059443950653076, 120, 255, 1, "", 47720, NULL), +(19779, 180777, 1, 0, 0, 1, 1, 7960.4541015625, -2515.815673828125, 485.955413818359375, 5.340708732604980468, 0, 0, -0.45398998260498046, 0.891006767749786376, 120, 255, 1, "", 47720, NULL), +(19780, 180777, 1, 0, 0, 1, 1, 7971.509765625, -2352.850341796875, 488.270904541015625, 1.727874636650085449, 0, 0, 0.760405540466308593, 0.649448513984680175, 120, 255, 1, "", 47720, NULL), +(19781, 180777, 1, 0, 0, 1, 1, 7993.1337890625, -2468.05859375, 489.50836181640625, 3.124123096466064453, 0, 0, 0.99996185302734375, 0.008734640665352344, 120, 255, 1, "", 47720, NULL), +(19782, 180879, 0, 0, 0, 1, 1, -8738.732421875, 1076.04345703125, 90.43314361572265625, 2.757613182067871093, 0, 0, 0.981626510620117187, 0.190812408924102783, 120, 255, 1, "", 47720, NULL), +(19783, 180879, 1, 0, 0, 1, 1, 7592.4599609375, -2218.00341796875, 469.643280029296875, 2.199114561080932617, 0, 0, 0.8910064697265625, 0.453990638256072998, 120, 255, 1, "", 47720, NULL), +(19784, 180879, 1, 0, 0, 1, 1, 7593.80712890625, -2222.592041015625, 469.157562255859375, 3.804818391799926757, 0, 0, -0.94551849365234375, 0.325568377971649169, 120, 255, 1, "", 47720, NULL), +(19785, 180879, 1, 0, 0, 1, 1, 7595.4599609375, -2226.798095703125, 468.384918212890625, 4.764749526977539062, 0, 0, -0.6883544921875, 0.725374460220336914, 120, 255, 1, "", 47720, NULL), +(19786, 180879, 1, 0, 0, 1, 1, 7946.62158203125, -2621.15625, 492.354156494140625, 1.85004889965057373, 0, 0, 0.798635482788085937, 0.60181504487991333, 120, 255, 1, "", 47720, NULL), +(19787, 180880, 0, 0, 0, 1, 1, -4643.90087890625, -952.42218017578125, 502.605316162109375, 1.675513744354248046, 0, 0, 0.743144035339355468, 0.669131457805633544, 120, 255, 1, "", 47720, NULL), +(19788, 180880, 0, 0, 0, 1, 1, -4644.11572265625, -952.0615234375, 502.61224365234375, 6.021387100219726562, 0, 0, -0.13052558898925781, 0.991444945335388183, 120, 255, 1, "", 47720, NULL), +(19789, 180880, 0, 0, 0, 1, 1, -8738.7744140625, 1075.6944580078125, 92.25988006591796875, 3.24634718894958496, 0, 0, -0.99862861633300781, 0.052353221923112869, 120, 255, 1, "", 47720, NULL), +(19790, 180880, 0, 0, 0, 1, 1, 1647.6561279296875, 234.4007110595703125, 63.72351837158203125, 5.323255538940429687, 0, 0, -0.46174812316894531, 0.887011110782623291, 120, 255, 1, "", 47720, NULL), +(19791, 180880, 0, 0, 0, 1, 1, 1648.06884765625, 234.2220001220703125, 63.71657180786132812, 1.361356139183044433, 0, 0, 0.629320144653320312, 0.77714616060256958, 120, 255, 1, "", 47720, NULL), +(19792, 180880, 1, 0, 0, 1, 1, -1044.06591796875, -217.742889404296875, 160.28411865234375, 1.274088263511657714, 0, 0, 0.594821929931640625, 0.80385744571685791, 120, 255, 1, "", 47720, NULL), +(19793, 180880, 1, 0, 0, 1, 1, 10146.447265625, 2572.517333984375, 1322.500732421875, 3.420850038528442382, 0, 0, -0.99026775360107421, 0.139175355434417724, 120, 255, 1, "", 47720, NULL), +(19794, 180880, 1, 0, 0, 1, 1, 1969.0885009765625, -4258.66845703125, 33.10462188720703125, 1.989672422409057617, 0, 0, 0.838669776916503906, 0.544640243053436279, 120, 255, 1, "", 47720, NULL), +(19795, 180880, 1, 0, 0, 1, 1, 1969.454833984375, -4258.7880859375, 33.10087203979492187, 2.740161895751953125, 0, 0, 0.979924201965332031, 0.199370384216308593, 120, 255, 1, "", 47720, NULL), +(19796, 180880, 1, 0, 0, 1, 1, 7591.9755859375, -2217.979736328125, 471.4844970703125, 1.466075778007507324, 0, 0, 0.669130325317382812, 0.74314504861831665, 120, 255, 1, "", 47720, NULL), +(19797, 180880, 1, 0, 0, 1, 1, 7593.197265625, -2221.986083984375, 470.99212646484375, 2.321286916732788085, 0, 0, 0.917059898376464843, 0.398749500513076782, 120, 255, 1, "", 47720, NULL), +(19798, 180880, 1, 0, 0, 1, 1, 7593.20947265625, -2218.23779296875, 471.467926025390625, 4.45059061050415039, 0, 0, -0.79335308074951171, 0.608761727809906005, 120, 255, 1, "", 47720, NULL), +(19799, 180880, 1, 0, 0, 1, 1, 7596.009765625, -2226.954833984375, 470.2149658203125, 4.782202720642089843, 0, 0, -0.68199825286865234, 0.731353819370269775, 120, 255, 1, "", 47720, NULL), +(19800, 180881, 0, 0, 0, 1, 1, -4644.55859375, -952.65008544921875, 502.59130859375, 0.104719325900077819, 0, 0, 0.052335739135742187, 0.998629570007324218, 120, 255, 1, "", 47720, NULL), +(19801, 180881, 0, 0, 0, 1, 1, -4644.697265625, -951.6541748046875, 502.587310791015625, 4.014260292053222656, 0, 0, -0.90630722045898437, 0.422619491815567016, 120, 255, 1, "", 47720, NULL), +(19802, 180881, 0, 0, 0, 1, 1, -8738.26953125, 1076.298583984375, 92.25734710693359375, 1.431168079376220703, 0, 0, 0.656058311462402343, 0.754710197448730468, 120, 255, 1, "", 47720, NULL), +(19803, 180881, 0, 0, 0, 1, 1, 1648.172119140625, 233.6341705322265625, 63.70268630981445312, 1.431168079376220703, 0, 0, 0.656058311462402343, 0.754710197448730468, 120, 255, 1, "", 47720, NULL), +(19804, 180881, 1, 0, 0, 1, 1, -1043.50244140625, -218.552688598632812, 160.2694854736328125, 0.209439441561698913, 0, 0, 0.104528427124023437, 0.994521915912628173, 120, 255, 1, "", 47720, NULL), +(19805, 180881, 1, 0, 0, 1, 1, 1969.625, -4257.75341796875, 33.0820770263671875, 4.572763919830322265, 0, 0, -0.75470924377441406, 0.656059443950653076, 120, 255, 1, "", 47720, NULL), +(19806, 180881, 1, 0, 0, 1, 1, 1970.2882080078125, -4258.60791015625, 33.08863449096679687, 6.14356088638305664, 0, 0, -0.06975555419921875, 0.997564136981964111, 120, 255, 1, "", 47720, NULL), +(19807, 180881, 1, 0, 0, 1, 1, 7592.4453125, -2217.558837890625, 471.4581298828125, 0.733038187026977539, 0, 0, 0.358367919921875, 0.933580458164215087, 120, 255, 1, "", 47720, NULL), +(19808, 180881, 1, 0, 0, 1, 1, 7592.76416015625, -2218.324462890625, 471.471954345703125, 5.393068790435791015, 0, 0, -0.43051052093505859, 0.902585566043853759, 120, 255, 1, "", 47720, NULL), +(19809, 180881, 1, 0, 0, 1, 1, 7594.0625, -2222.04052734375, 470.986328125, 3.595378875732421875, 0, 0, -0.97437000274658203, 0.224951311945915222, 120, 255, 1, "", 47720, NULL), +(19810, 180881, 1, 0, 0, 1, 1, 7595.16259765625, -2227.191650390625, 470.1959228515625, 4.136432647705078125, 0, 0, -0.87881660461425781, 0.477159708738327026, 120, 255, 1, "", 47720, NULL), +(19811, 180881, 1, 0, 0, 1, 1, 7595.4755859375, -2226.666259765625, 470.208160400390625, 2.024578809738159179, 0, 0, 0.848047256469726562, 0.529920578002929687, 120, 255, 1, "", 47720, NULL), +(19812, 180882, 0, 0, 0, 1, 1, -4643.59716796875, -952.0538330078125, 502.58453369140625, 3.926995515823364257, 0, 0, -0.92387866973876953, 0.38268551230430603, 120, 255, 1, "", 47720, NULL), +(19813, 180882, 0, 0, 0, 1, 1, -4643.97314453125, -951.591796875, 502.591461181640625, 5.061456203460693359, 0, 0, -0.57357597351074218, 0.819152355194091796, 120, 255, 1, "", 47720, NULL), +(19814, 180882, 0, 0, 0, 1, 1, -8738.388671875, 1075.7413330078125, 92.249420166015625, 0.209439441561698913, 0, 0, 0.104528427124023437, 0.994521915912628173, 120, 255, 1, "", 47720, NULL), +(19815, 180882, 0, 0, 0, 1, 1, -8739.15625, 1075.7742919921875, 92.25446319580078125, 5.550147056579589843, 0, 0, -0.358367919921875, 0.933580458164215087, 120, 255, 1, "", 47720, NULL), +(19816, 180882, 0, 0, 0, 1, 1, 1647.689208984375, 233.98785400390625, 63.70268630981445312, 3.577930212020874023, 0, 0, -0.97629547119140625, 0.216442063450813293, 120, 255, 1, "", 47720, NULL), +(19817, 180882, 1, 0, 0, 1, 1, -1043.98876953125, -218.14703369140625, 160.267852783203125, 1.919861555099487304, 0, 0, 0.819151878356933593, 0.573576688766479492, 120, 255, 1, "", 47720, NULL), +(19818, 180882, 1, 0, 0, 1, 1, -1043.9993896484375, -218.598358154296875, 160.260986328125, 0.872663915157318115, 0, 0, 0.422617912292480468, 0.906307935714721679, 120, 255, 1, "", 47720, NULL), +(19819, 180882, 1, 0, 0, 1, 1, 1969.73095703125, -4258.3125, 33.08308792114257812, 4.956737518310546875, 0, 0, -0.61566066741943359, 0.788011372089385986, 120, 255, 1, "", 47720, NULL), +(19820, 180882, 1, 0, 0, 1, 1, 1969.8489990234375, -4258.85595703125, 33.09189224243164062, 3.647741317749023437, 0, 0, -0.96814727783203125, 0.250381410121917724, 120, 255, 1, "", 47720, NULL), +(19821, 180882, 1, 0, 0, 1, 1, 7592.15087890625, -2218.3037109375, 471.45562744140625, 2.181660413742065429, 0, 0, 0.887010574340820312, 0.461749136447906494, 120, 255, 1, "", 47720, NULL), +(19822, 180882, 1, 0, 0, 1, 1, 7592.40087890625, -2218.572998046875, 471.441619873046875, 2.914689540863037109, 0, 0, 0.993571281433105468, 0.113208353519439697, 120, 255, 1, "", 47720, NULL), +(19823, 180882, 1, 0, 0, 1, 1, 7593.6181640625, -2221.82568359375, 470.968963623046875, 6.108653545379638671, 0, 0, -0.08715534210205078, 0.996194720268249511, 120, 255, 1, "", 47720, NULL), +(19824, 180882, 1, 0, 0, 1, 1, 7595.61962890625, -2227.267333984375, 470.2169189453125, 3.961898565292358398, 0, 0, -0.91705989837646484, 0.398749500513076782, 120, 255, 1, "", 47720, NULL), +(19825, 180882, 1, 0, 0, 1, 1, 7595.93408203125, -2226.4208984375, 470.189117431640625, 1.710421562194824218, 0, 0, 0.754709243774414062, 0.656059443950653076, 120, 255, 1, "", 47720, NULL), +(19826, 180883, 0, 0, 0, 1, 1, -4643.86181640625, -952.81622314453125, 502.5914306640625, 0.104719325900077819, 0, 0, 0.052335739135742187, 0.998629570007324218, 120, 255, 1, "", 47720, NULL), +(19827, 180883, 0, 0, 0, 1, 1, -4644.57275390625, -952.23114013671875, 502.59130859375, 0.104719325900077819, 0, 0, 0.052335739135742187, 0.998629570007324218, 120, 255, 1, "", 47720, NULL), +(19828, 180883, 0, 0, 0, 1, 1, -8738.8330078125, 1076.392333984375, 92.24471282958984375, 4.520402908325195312, 0, 0, -0.77162456512451171, 0.636078238487243652, 120, 255, 1, "", 47720, NULL), +(19829, 180883, 0, 0, 0, 1, 1, 1647.146484375, 233.796600341796875, 63.70268630981445312, 0.767943859100341796, 0, 0, 0.374606132507324218, 0.927184045314788818, 120, 255, 1, "", 47720, NULL), +(19830, 180883, 1, 0, 0, 1, 1, -1043.544189453125, -217.953994750976562, 160.263214111328125, 5.35816192626953125, 0, 0, -0.446197509765625, 0.894934535026550292, 120, 255, 1, "", 47720, NULL), +(19831, 180883, 1, 0, 0, 1, 1, 1969.1336669921875, -4258.16650390625, 33.08469772338867187, 5.654868602752685546, 0, 0, -0.30901622772216796, 0.95105677843093872, 120, 255, 1, "", 47720, NULL), +(19832, 180883, 1, 0, 0, 1, 1, 7593.01220703125, -2217.75, 471.46685791015625, 3.124123096466064453, 0, 0, 0.99996185302734375, 0.008734640665352344, 120, 255, 1, "", 47720, NULL), +(19833, 180883, 1, 0, 0, 1, 1, 7594.8212890625, -2226.713623046875, 470.199371337890625, 0.27925160527229309, 0, 0, 0.139172554016113281, 0.990268170833587646, 120, 255, 1, "", 47720, NULL), +(19834, 180883, 1, 0, 0, 1, 1, 7595.267578125, -2226.15625, 470.204803466796875, 3.24634718894958496, 0, 0, -0.99862861633300781, 0.052353221923112869, 120, 255, 1, "", 47720, NULL), +(19835, 180888, 1, 0, 0, 1, 1, -1043.4896240234375, -217.670135498046875, 159.5638885498046875, 5.986480236053466796, 0, 0, -0.14780902862548828, 0.989015936851501464, 120, 255, 1, "", 47720, NULL), +-- too low in the ground - probably needs manual z adjustment +(19836, 180888, 1, 0, 0, 1, 1, 1969.9249267578125, -4258.18603515625, 32.15699005126953125, 5.270895957946777343, 0, 0, -0.48480892181396484, 0.87462007999420166, 120, 255, 1, "", 47720, NULL); + +-- enable all spawns for eventEntry 7 +DELETE FROM `game_event_gameobject` WHERE (`eventEntry` = 7) +AND (`guid` IN (SELECT `guid` FROM `gameobject` WHERE `id` IN (180757, 180758, 180759, 180760, 180761, 180762, 180765, 180766, 180767, 180768, 180769, 180770, 180773, 180774, 180775, 180777, 180778, 180878, 180879, 180880, 180881, 180882, 180883, 180888))); +INSERT INTO `game_event_gameobject` (SELECT 7, `guid` FROM `gameobject` WHERE `id` IN (180757, 180758, 180759, 180760, 180761, 180762, 180765, 180766, 180767, 180768, 180769, 180770, 180773, 180774, 180775, 180777, 180778, 180878, 180879, 180880, 180881, 180882, 180883, 180888)); diff --git a/data/sql/updates/db_world/2024_11_30_03.sql b/data/sql/updates/db_world/2024_11_30_03.sql new file mode 100644 index 000000000..dbd1dd472 --- /dev/null +++ b/data/sql/updates/db_world/2024_11_30_03.sql @@ -0,0 +1,25 @@ +-- DB update 2024_11_30_02 -> 2024_11_30_03 +-- Update gameobject 'Dwarf Hero / Gnome Hero' with sniffed values +-- new spawns +DELETE FROM `gameobject` WHERE (`id` IN (180755, 180756)) +AND (`guid` BETWEEN 900 AND 913); +INSERT INTO `gameobject` (`guid`, `id`, `map`, `zoneId`, `areaId`, `spawnMask`, `phaseMask`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecs`, `animprogress`, `state`, `ScriptName`, `VerifiedBuild`, `Comment`) VALUES +(900, 180755, 0, 0, 0, 1, 1, -4633.953125, -932.1756591796875, 507.62445068359375, 3.839725255966186523, 0, 0, -0.93969249725341796, 0.34202045202255249, 120, 255, 1, "", 47720, NULL), +(901, 180755, 0, 0, 0, 1, 1, -4834.15283203125, -861.96600341796875, 505.34283447265625, 3.24634718894958496, 0, 0, -0.99862861633300781, 0.052353221923112869, 120, 255, 1, "", 47720, NULL), +(902, 180755, 0, 0, 0, 1, 1, -4866.29052734375, -1148.2222900390625, 504.770294189453125, 0.471238493919372558, 0, 0, 0.233445167541503906, 0.972369968891143798, 120, 255, 1, "", 52237, NULL), +(903, 180755, 0, 0, 0, 1, 1, -4896.44384765625, -980.9735107421875, 506.79931640625, 2.268925428390502929, 0, 0, 0.906307220458984375, 0.422619491815567016, 120, 255, 1, "", 47720, NULL), +(904, 180755, 0, 0, 0, 1, 1, -5001.94775390625, -1242.0035400390625, 511.2802734375, 0.680676698684692382, 0, 0, 0.333806037902832031, 0.942641794681549072, 120, 255, 1, "", 52237, NULL), +(905, 180755, 0, 0, 0, 1, 1, -5162.0400390625, -884.55035400390625, 507.917205810546875, 1.413715124130249023, 0, 0, 0.649447441101074218, 0.760406434535980224, 120, 255, 1, "", 51943, NULL), +(906, 180755, 0, 0, 0, 1, 1, -8439.107421875, 625.29766845703125, 97.348419189453125, 5.724681377410888671, 0, 0, -0.27563667297363281, 0.961261868476867675, 120, 255, 1, "", 52237, NULL), +(907, 180755, 0, 0, 0, 1, 1, -8483.7900390625, 526.233154296875, 105.7811508178710937, 2.216565132141113281, 0, 0, 0.894933700561523437, 0.44619917869567871, 120, 255, 1, "", 52237, NULL), +(908, 180756, 0, 0, 0, 1, 1, -4633.861328125, -932.0946044921875, 506.45074462890625, 3.839725255966186523, 0, 0, -0.93969249725341796, 0.34202045202255249, 120, 255, 1, "", 47720, NULL), +(909, 180756, 0, 0, 0, 1, 1, -4802.892578125, -1180.2821044921875, 504.93218994140625, 1.570795774459838867, 0, 0, 0.707106590270996093, 0.707106947898864746, 120, 255, 1, "", 52237, NULL), +(910, 180756, 0, 0, 0, 1, 1, -4825.68408203125, -1289.34375, 504.256744384765625, 1.48352813720703125, 0, 0, 0.675589561462402343, 0.737277925014495849, 120, 255, 1, "", 52237, NULL), +(911, 180756, 0, 0, 0, 1, 1, -4900.81591796875, -984.625, 506.778472900390625, 2.251473426818847656, 0, 0, 0.902585029602050781, 0.430511653423309326, 120, 255, 1, "", 47720, NULL), +(912, 180756, 0, 0, 0, 1, 1, -5007.57275390625, -1235.19775390625, 511.25433349609375, 0.680676698684692382, 0, 0, 0.333806037902832031, 0.942641794681549072, 120, 255, 1, "", 52237, NULL), +(913, 180756, 0, 0, 0, 1, 1, -5166.14599609375, -883.52081298828125, 508.024810791015625, 1.256635904312133789, 0, 0, 0.587784767150878906, 0.809017360210418701, 120, 255, 1, "", 51943, NULL); + +-- enable all spawns for eventEntry 7 +DELETE FROM `game_event_gameobject` WHERE (`eventEntry` = 7) +AND (`guid` IN (SELECT `guid` FROM `gameobject` WHERE `id` IN (180755, 180756))); +INSERT INTO `game_event_gameobject` (SELECT 7, `guid` FROM `gameobject` WHERE `id` IN (180755, 180756)); diff --git a/data/sql/updates/db_world/2024_11_30_04.sql b/data/sql/updates/db_world/2024_11_30_04.sql new file mode 100644 index 000000000..c0aec0a4f --- /dev/null +++ b/data/sql/updates/db_world/2024_11_30_04.sql @@ -0,0 +1,13 @@ +-- DB update 2024_11_30_03 -> 2024_11_30_04 +-- +DELETE FROM `creature_formations` WHERE `leaderGUID` = 89358; +INSERT INTO `creature_formations` (`leaderGUID`, `memberGUID`, `dist`, `angle`, `groupAI`) VALUES +(89358, 89358, 0, 0, 27), +(89358, 12923, 0, 0, 27), +(89358, 12924, 0, 0, 27), +(89358, 9252, 0, 0, 27), +(89358, 4915, 0, 0, 27), +(89358, 12922, 0, 0, 27), +(89358, 12404, 0, 0, 27), +(89358, 11906, 0, 0, 27), +(89358, 10560, 0, 0, 27); diff --git a/data/sql/updates/db_world/2024_12_01_00.sql b/data/sql/updates/db_world/2024_12_01_00.sql new file mode 100644 index 000000000..e6e921eea --- /dev/null +++ b/data/sql/updates/db_world/2024_12_01_00.sql @@ -0,0 +1,90 @@ +-- DB update 2024_11_30_04 -> 2024_12_01_00 + +-- Delete Wrong npc (not found on official servers) + +DELETE FROM `creature` WHERE (`id1` = 28609) AND (`guid` IN (129280)); +DELETE FROM `creature_addon` WHERE (`guid` IN (129280)); + + +-- Update spawn points + +UPDATE `creature` SET `position_x` = 2143.90, `position_y` = -5675.58, `position_z` = 109.95, `orientation` = 0.3333 WHERE `guid` = 129270 AND `id1` = 28609; +UPDATE `creature` SET `position_x` = 2154.62, `position_y` = -5689.39, `position_z` = 105.75, `orientation` = 0.6432 WHERE `guid` = 129271 AND `id1` = 28609; +UPDATE `creature` SET `position_x` = 2221.08, `position_y` = -5885.01, `position_z` = 100.68, `orientation` = 3.1306 WHERE `guid` = 129282 AND `id1` = 28609; +UPDATE `creature` SET `position_x` = 2353.2, `position_y` = -5844.39, `position_z` = 101.593, `orientation` = 5.6188 WHERE `guid` = 129283 AND `id1` = 28609; +UPDATE `creature` SET `position_x` = 2392.12, `position_y` = -5844.45, `position_z` = 108.994, `orientation` = 3.0858 WHERE `guid` = 129284 AND `id1` = 28609; + + + +-- Waypoints + +DELETE FROM `waypoint_data` WHERE `id` IN (12927200, 12928200, 12928300, 12928400); +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`, `action`, `action_chance`, `wpguid`) VALUES +(12927200, 1, 2226.18, -5731.67, 102.017, NULL, 0, 0, 0, 100, 0), +(12927200, 2, 2234.35, -5738.26, 102.214, NULL, 0, 0, 0, 100, 0), +(12927200, 3, 2242.78, -5744.52, 102.309, NULL, 0, 0, 0, 100, 0), +(12927200, 4, 2250.79, -5752.1, 101.528, NULL, 0, 0, 0, 100, 0), +(12927200, 5, 2257.7, -5760, 101.073, NULL, 0, 0, 0, 100, 0), +(12927200, 6, 2266.39, -5770.03, 100.979, NULL, 0, 0, 0, 100, 0), +(12927200, 7, 2257.7, -5760, 101.073, NULL, 0, 0, 0, 100, 0), +(12927200, 8, 2250.79, -5752.1, 101.528, NULL, 0, 0, 0, 100, 0), +(12927200, 9, 2242.78, -5744.52, 102.309, NULL, 0, 0, 0, 100, 0), +(12927200, 10, 2234.35, -5738.26, 102.214, NULL, 0, 0, 0, 100, 0), +(12927200, 11, 2226.18, -5731.67, 102.017, NULL, 0, 0, 0, 100, 0), +(12927200, 12, 2219.23, -5726.22, 101.816, NULL, 0, 0, 0, 100, 0), + +(12928200, 1, 2214.83, -5884.92, 100.855, NULL, 0, 0, 0, 100, 0), +(12928200, 2, 2209.52, -5885, 101.008, NULL, 0, 0, 0, 100, 0), +(12928200, 3, 2204.1, -5883.88, 101.159, NULL, 0, 0, 0, 100, 0), +(12928200, 4, 2195.65, -5882.51, 101.208, NULL, 0, 0, 0, 100, 0), +(12928200, 5, 2187.06, -5880.64, 101.065, NULL, 0, 0, 0, 100, 0), +(12928200, 6, 2195.65, -5882.51, 101.208, NULL, 0, 0, 0, 100, 0), +(12928200, 7, 2204.1, -5883.88, 101.159, NULL, 0, 0, 0, 100, 0), +(12928200, 8, 2209.52, -5885, 101.008, NULL, 0, 0, 0, 100, 0), +(12928200, 9, 2214.83, -5884.92, 100.855, NULL, 0, 0, 0, 100, 0), +(12928200, 10, 2221.08, -5885.01, 100.68, NULL, 0, 0, 0, 100, 0), + +(12928300, 1, 2358.94, -5843.76, 103.624, NULL, 0, 0, 0, 100, 0), +(12928300, 2, 2367.94, -5842.23, 106.039, NULL, 0, 0, 0, 100, 0), +(12928300, 3, 2376.98, -5841.91, 108.059, NULL, 0, 0, 0, 100, 0), +(12928300, 4, 2385.39, -5843.93, 108.588, NULL, 0, 0, 0, 100, 0), +(12928300, 5, 2392.12, -5844.45, 108.994, NULL, 0, 0, 0, 100, 0), +(12928300, 6, 2385.39, -5843.93, 108.588, NULL, 0, 0, 0, 100, 0), +(12928300, 7, 2376.98, -5841.91, 108.059, NULL, 0, 0, 0, 100, 0), +(12928300, 8, 2367.94, -5842.23, 106.039, NULL, 0, 0, 0, 100, 0), +(12928300, 9, 2358.94, -5843.76, 103.624, NULL, 0, 0, 0, 100, 0), +(12928300, 10, 2353.2, -5844.39, 101.593, NULL, 0, 0, 0, 100, 0), + +(12928400, 1, 2385.39, -5843.93, 108.588, NULL, 0, 0, 0, 100, 0), +(12928400, 2, 2376.98, -5841.91, 108.059, NULL, 0, 0, 0, 100, 0), +(12928400, 3, 2367.94, -5842.23, 106.039, NULL, 0, 0, 0, 100, 0), +(12928400, 4, 2358.94, -5843.76, 103.624, NULL, 0, 0, 0, 100, 0), +(12928400, 5, 2353.2, -5844.39, 101.593, NULL, 0, 0, 0, 100, 0), +(12928400, 6, 2358.94, -5843.76, 103.624, NULL, 0, 0, 0, 100, 0), +(12928400, 7, 2367.94, -5842.23, 106.039, NULL, 0, 0, 0, 100, 0), +(12928400, 8, 2376.98, -5841.91, 108.059, NULL, 0, 0, 0, 100, 0), +(12928400, 9, 2385.39, -5843.93, 108.588, NULL, 0, 0, 0, 100, 0), +(12928400, 10, 2392.12, -5844.45, 108.994, NULL, 0, 0, 0, 100, 0); + + +-- Change movement type and wander distance + +UPDATE `creature` SET `wander_distance` = 0, `MovementType` = 2 WHERE `guid` IN (129272, 129282, 129283, 129284) AND `id1` = 28609; + + +-- Set path id + +UPDATE `creature_addon` SET `path_id` = 12927200 WHERE (`guid` IN (129272)); +UPDATE `creature_addon` SET `path_id` = 12928200 WHERE (`guid` IN (129282)); +UPDATE `creature_addon` SET `path_id` = 12928300 WHERE (`guid` IN (129283)); +UPDATE `creature_addon` SET `path_id` = 12928400 WHERE (`guid` IN (129284)); + + +-- Set bytes1 to 0 + +UPDATE `creature_addon` SET `bytes1` = 0 WHERE (`guid` IN (129272, 129282, 129283, 129284)); + + +-- Set Aura + +UPDATE `creature_addon` SET `auras` = 52103 WHERE (`guid` IN (129272, 129282, 129283, 129284)); diff --git a/data/sql/updates/db_world/2024_12_01_01.sql b/data/sql/updates/db_world/2024_12_01_01.sql new file mode 100644 index 000000000..2052afe3e --- /dev/null +++ b/data/sql/updates/db_world/2024_12_01_01.sql @@ -0,0 +1,29 @@ +-- DB update 2024_12_01_00 -> 2024_12_01_01 +-- +DELETE FROM `spelldifficulty_dbc` WHERE `ID` IN (58693, 58690, 58688, 54481, 54479, 54237, 54241, 54312, 54235, 54282, 54249, 54442, 54438, 54202, 54226, 54160, 54524, 54361); +INSERT INTO `spelldifficulty_dbc` (`ID`, `DifficultySpellID_1`, `DifficultySpellID_2`, `DifficultySpellID_3`, `DifficultySpellID_4`) VALUES +-- Cyanigosa +(58693, 58693, 59369, 0, 0), +(58690, 58690, 59283, 0, 0), +(58688, 58688, 59281, 0, 0), +-- Erekem +(54481, 54481, 59473, 0, 0), +(54479, 54479, 59471, 0, 0), +-- Ichoron +(54237, 54237, 59520, 0, 0), +(54241, 54241, 59521, 0, 0), +(54312, 54312, 59522, 0, 0), +-- Lavanthor +(54235, 54235, 59468, 0, 0), +(54282, 54282, 59469, 0, 0), +(54249, 54249, 59594, 0, 0), +-- Moragg +(54442, 54442, 59524, 0, 0), +(54438, 54438, 59523, 0, 0), +-- Xevozz +(54202, 54202, 59483, 0, 0), +(54226, 54226, 59485, 0, 0), +(54160, 54160, 59474, 0, 0), +-- Zuramat +(54524, 54524, 59745, 0, 0), +(54361, 54361, 59743, 0, 0); diff --git a/data/sql/updates/db_world/2024_12_01_02.sql b/data/sql/updates/db_world/2024_12_01_02.sql new file mode 100644 index 000000000..3a57c693a --- /dev/null +++ b/data/sql/updates/db_world/2024_12_01_02.sql @@ -0,0 +1,56 @@ +-- DB update 2024_12_01_01 -> 2024_12_01_02 +-- +-- lookout +-- spawn coords, hp 58682 from 75449 +DELETE FROM `creature` WHERE (`id1` = 24175) AND (`guid` = 89281); +INSERT INTO `creature` (`guid`, `id1`, `id2`, `id3`, `map`, `zoneId`, `areaId`, `spawnMask`, `phaseMask`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `wander_distance`, `currentwaypoint`, `curhealth`, `curmana`, `MovementType`, `npcflag`, `unit_flags`, `dynamicflags`, `ScriptName`, `VerifiedBuild`) VALUES +(89281, 24175, 0, 0, 568, 0, 0, 1, 1, 1, 206.92128, 1473.4196, 26.000067, 3.9619, 7200, 0, 0, 58682, 0, 0, 0, 0, 0, '', 0); + +UPDATE `creature_template` SET `unit_flags` = `unit_flags` | (64 | 32768) WHERE (`entry` = 24175); + +UPDATE `creature_template_model` SET `VerifiedBuild` = 53788 WHERE (`CreatureID` = 24175) AND `Idx` = 0; + +DELETE FROM `waypoint_data` WHERE `id` = 2417500; +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `move_type`) VALUES +(2417500, 1, 226.08507, 1461.7535, 25.916739, NULL, 1), +(2417500, 2, 228.17633, 1433.8473, 27.119087, NULL, 1), +(2417500, 3, 227.73102, 1412.5535, 34.49932, NULL, 1), +(2417500, 4, 228.17111, 1388.2885, 42.451878, NULL, 1), +(2417500, 5, 232.54265, 1374.3815, 47.329865, NULL, 1), +(2417500, 6, 263.18665, 1376.4918, 49.32171, NULL, 1), +(2417500, 7, 281.35666, 1378.9646, 49.32171, NULL, 1), +(2417500, 8, 312.53738, 1389.2349, 57.287518, NULL, 1), +(2417500, 9, 330.47836, 1394.2004, 71.362785, NULL, 1); + +-- summon amani eagle at Akil'zon +DELETE FROM `conditions` WHERE (`SourceTypeOrReferenceId` = 13) AND (`SourceGroup` = 1) AND (`SourceEntry` = 43487); +INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES +(13, 1, 43487, 0, 0, 31, 0, 3, 23574, 0, 0, 0, 0, '', 'Summon Amani Eagle target Akil\'zon'); + +-- summon amani warrior at Eagle Troll Spawn Target +DELETE FROM `conditions` WHERE (`SourceTypeOrReferenceId` = 13) AND (`SourceGroup` = 1) AND (`SourceEntry` = 43486); +INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES +(13, 1, 43486, 0, 0, 31, 0, 3, 24325, 0, 0, 0, 0, '', 'Summon Amani Eagle target Eagle Troll Spawn Target'); + +DELETE FROM `creature_text` WHERE (`CreatureID` = 24175) AND (`GroupID` = 0); +INSERT INTO `creature_text` (`CreatureID`, `GroupID`, `ID`, `Text`, `Type`, `Language`, `Probability`, `Emote`, `Duration`, `Sound`, `BroadcastTextId`, `TextRange`, `comment`) VALUES +(24175, 0, 0, 'Akil\'zon, the invaders approach!', 14, 0, 100, 5, 0, 0, 22971, 0, 'Amani\'shi Lookout'); + +UPDATE `creature_template` SET `ScriptName` = 'npc_amanishi_lookout' WHERE (`entry` = 24175); +UPDATE `creature_template` SET `ScriptName` = 'npc_eagle_trash_aggro_trigger' WHERE (`entry` = 24223); +UPDATE `creature_template` SET `ScriptName` = 'npc_amanishi_tempest' WHERE (`entry` = 24549); + +-- add missing wind walker and protector spawns +SET @GUID:= 93762; +SET @VERIFIED_BUILD:=0; +DELETE FROM `creature` WHERE (`id1` = 24179) AND (`guid` BETWEEN @GUID+0 AND @GUID+3); +DELETE FROM `creature` WHERE (`id1` = 24180) AND (`guid` BETWEEN @GUID+4 AND @GUID+7); +INSERT INTO `creature` (`guid`, `id1`, `id2`, `id3`, `map`, `zoneId`, `areaId`, `spawnMask`, `phaseMask`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `wander_distance`, `currentwaypoint`, `curhealth`, `curmana`, `MovementType`, `npcflag`, `unit_flags`, `dynamicflags`, `ScriptName`, `VerifiedBuild`) VALUES +(@GUID+0, 24179, 0, 0, 568, 0, 0, 1, 1, 1, 284.0440, 1372.3200, 49.4050, 2.77507, 1800, 0, 0, @VERIFIED_BUILD, 0, 0, 0, 0, 0, '', 0), +(@GUID+1, 24179, 0, 0, 568, 0, 0, 1, 1, 1, 231.7970, 1393.4200, 40.5887, 1.69297, 1800, 0, 0, @VERIFIED_BUILD, 0, 0, 0, 0, 0, '', 0), +(@GUID+2, 24179, 0, 0, 568, 0, 0, 1, 1, 1, 244.8070, 1367.6600, 48.9498, 2.61799, 1800, 0, 0, @VERIFIED_BUILD, 0, 0, 0, 0, 0, '', 0), +(@GUID+3, 24179, 0, 0, 568, 0, 0, 1, 1, 1, 232.7490, 1428.7000, 28.8242, 1.83260, 1800, 0, 0, @VERIFIED_BUILD, 0, 0, 0, 0, 0, '', 0), +(@GUID+4, 24180, 0, 0, 568, 0, 0, 1, 1, 1, 274.3580, 1385.1600, 49.4050, 3.75246, 1800, 0, 0, @VERIFIED_BUILD, 0, 0, 0, 0, 0, '', 0), +(@GUID+5, 24180, 0, 0, 568, 0, 0, 1, 1, 1, 223.8010, 1424.9400, 29.4699, 1.16937, 1800, 0, 0, @VERIFIED_BUILD, 0, 0, 0, 0, 0, '', 0), +(@GUID+6, 24180, 0, 0, 568, 0, 0, 1, 1, 1, 224.0690, 1394.2600, 40.1985, 1.30900, 1800, 0, 0, @VERIFIED_BUILD, 0, 0, 0, 0, 0, '', 0), +(@GUID+7, 24180, 0, 0, 568, 0, 0, 1, 1, 1, 246.9080, 1375.1500, 49.4050, 2.89725, 1800, 0, 0, @VERIFIED_BUILD, 0, 0, 0, 0, 0, '', 0); diff --git a/data/sql/updates/db_world/2024_12_01_03.sql b/data/sql/updates/db_world/2024_12_01_03.sql new file mode 100644 index 000000000..3b8786e4b --- /dev/null +++ b/data/sql/updates/db_world/2024_12_01_03.sql @@ -0,0 +1,7 @@ +-- DB update 2024_12_01_02 -> 2024_12_01_03 +-- +DELETE FROM `creature_queststarter` WHERE `id` IN (4485, 10540) AND `quest` = 1361; +-- Adds NPCs Vol'jin and Belgrom Rockmaul as Quest Starters for Regthar Deathgate +INSERT INTO `creature_queststarter` (`id`, `quest`) VALUES +(4485, 1361), +(10540, 1361); diff --git a/data/sql/updates/db_world/2024_12_02_00.sql b/data/sql/updates/db_world/2024_12_02_00.sql new file mode 100644 index 000000000..ac93827e5 --- /dev/null +++ b/data/sql/updates/db_world/2024_12_02_00.sql @@ -0,0 +1,14 @@ +-- DB update 2024_12_01_03 -> 2024_12_02_00 +-- Update gameobject 'Log Pile' with sniffed values +-- new spawns +DELETE FROM `gameobject` WHERE (`id` IN (194393)) +AND (`guid` BETWEEN 447 AND 454); +INSERT INTO `gameobject` (`guid`, `id`, `map`, `zoneId`, `areaId`, `spawnMask`, `phaseMask`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecs`, `animprogress`, `state`, `ScriptName`, `VerifiedBuild`, `Comment`) VALUES +(447, 194393, 571, 0, 0, 1, 1, 5395.54931640625, 376.720916748046875, 171.0152587890625, 0, 0, 0, 0, 1, 120, 255, 1, "", 46158, NULL), +(448, 194393, 571, 0, 0, 1, 1, 5408.78369140625, 369.265045166015625, 167.706939697265625, 0, 0, 0, 0, 1, 120, 255, 1, "", 46158, NULL), +(449, 194393, 571, 0, 0, 1, 1, 5412.72265625, 353.712310791015625, 165.7215118408203125, 0, 0, 0, 0, 1, 120, 255, 1, "", 46158, NULL), +(450, 194393, 571, 0, 0, 1, 1, 5415.166015625, 439.096954345703125, 170.508514404296875, 0, 0, 0, 0, 1, 120, 255, 1, "", 46158, NULL), +(451, 194393, 571, 0, 0, 1, 1, 5426.10205078125, 441.95147705078125, 169.2211456298828125, 5.235987663269042968, 0, 0, -0.5, 0.866025388240814208, 120, 255, 1, "", 46158, NULL), +(452, 194393, 571, 0, 0, 1, 1, 5427.91064453125, 359.82086181640625, 163.087860107421875, 0, 0, 0, 0, 1, 120, 255, 1, "", 46158, NULL), +(453, 194393, 571, 0, 0, 1, 1, 5459.66748046875, 424.607940673828125, 163.53369140625, 0, 0, 0, 0, 1, 120, 255, 1, "", 46158, NULL), +(454, 194393, 571, 0, 0, 1, 1, 5468.80615234375, 373.03546142578125, 158.4355926513671875, 0, 0, 0, 0, 1, 120, 255, 1, "", 46158, NULL); diff --git a/data/sql/updates/db_world/2024_12_02_01.sql b/data/sql/updates/db_world/2024_12_02_01.sql new file mode 100644 index 000000000..5640d3bcb --- /dev/null +++ b/data/sql/updates/db_world/2024_12_02_01.sql @@ -0,0 +1,4 @@ +-- DB update 2024_12_02_00 -> 2024_12_02_01 +-- +-- The Crown of Will (1/5) requirement removed from The Crown of Will (2/5) +UPDATE `quest_template_addon` SET `PrevQuestID` = 0 WHERE (`ID` = 518); diff --git a/data/sql/updates/db_world/2024_12_02_02.sql b/data/sql/updates/db_world/2024_12_02_02.sql new file mode 100644 index 000000000..5af96019d --- /dev/null +++ b/data/sql/updates/db_world/2024_12_02_02.sql @@ -0,0 +1,7 @@ +-- DB update 2024_12_02_01 -> 2024_12_02_02 +-- Critter: 883, 890, 2098, 2620, 1933, 4166, 721, 2442, 10780, 12298, 5951, 17467, 12296, 17467 +-- Human Royal Guard... : 1756 loot probably incorrect as well, I assume it came from the transformed guards for the Onyxia quest + +UPDATE `creature_template` SET `skinloot` = 0 WHERE `entry` IN (883, 890, 2098, 2620, 1933, 4166, 721, 2442, 10780, 12298, 5951, 17467, 12296, 17467, 1756); + +DELETE FROM `skinning_loot_template` WHERE `entry` IN (883, 890, 2098, 2620, 1933, 4166, 721, 2442, 10780, 12298, 5951, 17467, 12296, 17467, 1756); diff --git a/data/sql/updates/db_world/2024_12_02_03.sql b/data/sql/updates/db_world/2024_12_02_03.sql new file mode 100644 index 000000000..f0dbcf39f --- /dev/null +++ b/data/sql/updates/db_world/2024_12_02_03.sql @@ -0,0 +1,4 @@ +-- DB update 2024_12_02_02 -> 2024_12_02_03 +-- +-- Corrected Z-axis of Eydis Darkbane (to match Fjola Lightbane's Z-axis). +UPDATE `creature` SET `position_z` = 558.16 WHERE `guid` = 85120 AND `id1` = 36066; diff --git a/data/sql/updates/db_world/2024_12_02_04.sql b/data/sql/updates/db_world/2024_12_02_04.sql new file mode 100644 index 000000000..d9a3179d6 --- /dev/null +++ b/data/sql/updates/db_world/2024_12_02_04.sql @@ -0,0 +1,10 @@ +-- DB update 2024_12_02_03 -> 2024_12_02_04 +-- + +UPDATE `creature_template` SET `AIName` = 'SmartAI' WHERE `entry` = 27499; + +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 27499); +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`, `event_param5`, `event_param6`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(27499, 0, 0, 1, 19, 0, 100, 0, 12308, 0, 0, 0, 0, 0, 86, 48710, 0, 19, 24042, 0, 0, 19, 24042, 20, 0, 0, 0, 0, 0, 0, 'Caged Prisoner - On Quest \'Escape from Silverbrook\' Taken - Cast \'Summon Freed Alliance Scout\''), +(27499, 0, 1, 2, 61, 0, 100, 512, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 15, 188706, 10, 0, 0, 0, 0, 0, 0, 'Caged Prisoner - On Quest \'Escape from Silverbrook\' Taken - Activate Gameobject'), +(27499, 0, 2, 0, 61, 0, 100, 512, 0, 0, 0, 0, 0, 0, 41, 500, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Caged Prisoner - On Quest \'Escape from Silverbrook\' Taken - Despawn In 500 ms'); diff --git a/data/sql/updates/db_world/2024_12_02_05.sql b/data/sql/updates/db_world/2024_12_02_05.sql new file mode 100644 index 000000000..82c935988 --- /dev/null +++ b/data/sql/updates/db_world/2024_12_02_05.sql @@ -0,0 +1,5 @@ +-- DB update 2024_12_02_04 -> 2024_12_02_05 +-- +UPDATE `creature_template` SET `skinloot` = 0 WHERE `entry` IN (18094, 18093, 18092); + +DELETE FROM `skinning_loot_template` WHERE `entry` IN (18094, 18093, 18092); diff --git a/data/sql/updates/db_world/2024_12_03_00.sql b/data/sql/updates/db_world/2024_12_03_00.sql new file mode 100644 index 000000000..bf48e53da --- /dev/null +++ b/data/sql/updates/db_world/2024_12_03_00.sql @@ -0,0 +1,50 @@ +-- DB update 2024_12_02_05 -> 2024_12_03_00 +DELETE FROM `spell_script_names` WHERE `spell_id`=51000; +INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES (51000, 'spell_hos_dark_matter_size'); + +DELETE FROM `spell_script_names` WHERE `spell_id`=51001; +INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES (51001, 'spell_hos_dark_matter'); + +DELETE FROM `script_waypoint` WHERE `entry` IN (28070); +INSERT INTO `script_waypoint` (`entry`, `pointid`, `location_x`, `location_y`, `location_z`, `waittime`, `point_comment`) +VALUES +(28070, 1, 1064.12, 474.883, 207.721, 0, 'Brann Bronzebeard - Halls of Stone'), +(28070, 2, 1045.25, 471.345, 208.611, 0, 'Brann Bronzebeard - Halls of Stone'), +(28070, 3, 1022.27, 458.81, 207.72, 0, 'Brann Bronzebeard - Halls of Stone'), +(28070, 4, 995.493, 432.994, 207.413, 0, 'Brann Bronzebeard - Halls of Stone'), +(28070, 5, 982.247, 421.768, 205.994, 0, 'Brann Bronzebeard - Halls of Stone'), +(28070, 6, 977.403, 420.578, 205.994, 0, 'Brann Bronzebeard - Halls of Stone'), +(28070, 7, 968.479, 421.992, 205.994, 0, 'Brann Bronzebeard - Halls of Stone'), +(28070, 8, 959.337, 420.403, 205.994, 0, 'Brann Bronzebeard - Halls of Stone'), +(28070, 9, 949.226, 413.964, 205.994, 0, 'Brann Bronzebeard - Halls of Stone'), +(28070, 10, 944.901, 401.561, 205.994, 0, 'Brann Bronzebeard - Halls of Stone'), +(28070, 11, 943.739, 394.289, 205.994, 0, 'Brann Bronzebeard - Halls of Stone'), +(28070, 12, 943.949, 383.505, 206.696, 0, 'Brann Bronzebeard - Halls of Stone'), +(28070, 13, 942.623, 378.852, 207.423, 0, 'Brann Bronzebeard - Halls of Stone'), +(28070, 14, 937.271, 373.627, 207.422, 0, 'Brann Bronzebeard - Halls of Stone'), +(28070, 15, 926.094, 362.071, 203.706, 0, 'Brann Bronzebeard - Halls of Stone'), +(28070, 16, 897.082, 332.612, 203.706, 0, 'Brann Bronzebeard - Halls of Stone'), +(28070, 17, 916.701, 352.318, 203.706, 0, 'Brann Bronzebeard - Halls of Stone'), +(28070, 18, 946.597, 383.533, 205.994, 2000, 'Brann Bronzebeard - Halls of Stone'), +(28070, 19, 973.525, 379.987, 205.994, 0, 'Brann Bronzebeard - Halls of Stone'), +(28070, 20, 982.317, 390.587, 205.994, 0, 'Brann Bronzebeard - Halls of Stone'), +(28070, 21, 984.925, 406.454, 205.994, 0, 'Brann Bronzebeard - Halls of Stone'), +(28070, 22, 999.096, 433.512, 207.412, 0, 'Brann Bronzebeard - Halls of Stone'), +(28070, 23, 1023.27, 457.194, 207.719, 0, 'Brann Bronzebeard - Halls of Stone'), +(28070, 24, 1046.27, 479.728, 207.748, 0, 'Brann Bronzebeard - Halls of Stone'), +(28070, 25, 1064.12, 474.883, 207.721, 0, 'Brann Bronzebeard - Halls of Stone'), +(28070, 26, 1047.91, 521.103, 207.719, 0, 'Brann Bronzebeard - Halls of Stone'), +(28070, 27, 1048.57, 622.492, 207.719, 0, 'Brann Bronzebeard - Halls of Stone'), +(28070, 28, 1048.86, 662.867, 201.672, 0, 'Brann Bronzebeard - Halls of Stone'), +(28070, 29, 1105.7, 662.475, 202.871, 0, 'Brann Bronzebeard - Halls of Stone'), +(28070, 30, 1121.44, 662.366, 196.235, 0, 'Brann Bronzebeard - Halls of Stone'), +(28070, 31, 1138.58, 632.499, 196.235, 0, 'Brann Bronzebeard - Halls of Stone'), +(28070, 32, 1164.78, 637.113, 196.294, 0, 'Brann Bronzebeard - Halls of Stone'), +(28070, 33, 1199.88, 667.139, 196.242, 2000, 'Brann Bronzebeard - Halls of Stone'), +(28070, 34, 1202.49, 667.226, 196.243, 2000, 'Brann Bronzebeard - Halls of Stone'), +(28070, 35, 1230.13, 666.967, 189.607, 0, 'Brann Bronzebeard - Halls of Stone'), +(28070, 36, 1256.34, 666.921, 189.611, 0, 'Brann Bronzebeard - Halls of Stone'), +(28070, 37, 1282.12, 666.744, 189.607, 0, 'Brann Bronzebeard - Halls of Stone'), +(28070, 38, 1307.56, 666.938, 189.607, 0, 'Brann Bronzebeard - Halls of Stone'), +(28070, 39, 1306.05, 666.85, 189.607, 0, 'Brann Bronzebeard - Halls of Stone'), +(28070, 40, 1307.56, 666.938, 189.607, 0, 'Brann Bronzebeard - Halls of Stone'); diff --git a/data/sql/updates/db_world/2024_12_03_01.sql b/data/sql/updates/db_world/2024_12_03_01.sql new file mode 100644 index 000000000..5cac7db01 --- /dev/null +++ b/data/sql/updates/db_world/2024_12_03_01.sql @@ -0,0 +1,8 @@ +-- DB update 2024_12_03_00 -> 2024_12_03_01 +-- Marking a tower for Zeth'Gor Must Burn! +DELETE FROM `conditions` WHERE (`SourceTypeOrReferenceId` = 17) AND (`SourceGroup` = 0) AND (`SourceEntry` = 36325); +INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES +(17, 0, 36325, 0, 0, 29, 0, 21182, 25, 0, 0, 0, 0, '', 'Cast \' They Must Burn Bomb Drop (DND)\' only if within 25 of dummy target'), +(17, 0, 36325, 0, 1, 29, 0, 22401, 25, 0, 0, 0, 0, '', 'Cast \' They Must Burn Bomb Drop (DND)\' only if within 25 of dummy target'), +(17, 0, 36325, 0, 2, 29, 0, 22402, 25, 0, 0, 0, 0, '', 'Cast \' They Must Burn Bomb Drop (DND)\' only if within 25 of dummy target'), +(17, 0, 36325, 0, 3, 29, 0, 22403, 25, 0, 0, 0, 0, '', 'Cast \' They Must Burn Bomb Drop (DND)\' only if within 25 of dummy target'); diff --git a/data/sql/updates/db_world/2024_12_03_02.sql b/data/sql/updates/db_world/2024_12_03_02.sql new file mode 100644 index 000000000..957607c52 --- /dev/null +++ b/data/sql/updates/db_world/2024_12_03_02.sql @@ -0,0 +1,11 @@ +-- DB update 2024_12_03_01 -> 2024_12_03_02 +-- +-- delete unused waypoint_data for swiftmane +DELETE FROM `waypoint_data` WHERE `id` = 204330; +-- set idle movement +UPDATE `creature_template` SET `MovementType` = 0 WHERE (`entry` = 5831); +UPDATE `creature` SET `MovementType` = 0 WHERE `guid` = 20433 AND `id1` = 5831; +-- defensive reactstate +DELETE FROM `smart_scripts` WHERE (`entryorguid` = 5831) AND (`source_type` = 0) AND (`id` = 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`, `event_param5`, `event_param6`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(5831, 0, 1, 0, 25, 0, 100, 512, 0, 0, 0, 0, 0, 0, 53, 1, 5831, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Swiftmane - On Reset - Start Patrol Path 5831'); diff --git a/src/common/Collision/Models/ModelInstance.cpp b/src/common/Collision/Models/ModelInstance.cpp index 4a540a785..a18d5d4f9 100644 --- a/src/common/Collision/Models/ModelInstance.cpp +++ b/src/common/Collision/Models/ModelInstance.cpp @@ -150,8 +150,7 @@ namespace VMAP if (info.hitModel->GetLiquidLevel(pModel, zDist)) { // calculate world height (zDist in model coords): - // assume WMO not tilted (wouldn't make much sense anyway) - liqHeight = zDist * iScale + iPos.z; + liqHeight = (Vector3(pModel.x, pModel.y, zDist) * iInvRot * iScale + iPos).z; return true; } return false; diff --git a/src/server/apps/worldserver/Main.cpp b/src/server/apps/worldserver/Main.cpp index ddca1a45f..b9abfccd0 100644 --- a/src/server/apps/worldserver/Main.cpp +++ b/src/server/apps/worldserver/Main.cpp @@ -473,7 +473,10 @@ bool StartDB() ClearOnlineAccounts(); ///- Insert version info into DB - WorldDatabase.Execute("UPDATE version SET core_version = '{}', core_revision = '{}'", GitRevision::GetFullVersion(), GitRevision::GetHash()); // One-time query + WorldDatabasePreparedStatement* stmt = WorldDatabase.GetPreparedStatement(WORLD_UPD_VERSION); + stmt->SetData(0, GitRevision::GetFullVersion()); + stmt->SetData(1, GitRevision::GetHash()); + WorldDatabase.Execute(stmt); sWorld->LoadDBVersion(); diff --git a/src/server/database/Database/Implementation/LoginDatabase.cpp b/src/server/database/Database/Implementation/LoginDatabase.cpp index 43729bebb..938e09f68 100644 --- a/src/server/database/Database/Implementation/LoginDatabase.cpp +++ b/src/server/database/Database/Implementation/LoginDatabase.cpp @@ -140,6 +140,8 @@ void LoginDatabaseConnection::DoPrepareStatements() PrepareStatement(LOGIN_SEL_ACCOUNT_TOTP_SECRET, "SELECT totp_secret FROM account WHERE id = ?", CONNECTION_SYNCH); PrepareStatement(LOGIN_UPD_ACCOUNT_TOTP_SECRET, "UPDATE account SET totp_secret = ? WHERE id = ?", CONNECTION_ASYNC); + + PrepareStatement(LOGIN_INS_UPTIME, "INSERT INTO uptime (realmid, starttime, uptime, revision) VALUES (?, ?, 0, ?)", CONNECTION_ASYNC); } LoginDatabaseConnection::LoginDatabaseConnection(MySQLConnectionInfo& connInfo) : MySQLConnection(connInfo) diff --git a/src/server/database/Database/Implementation/LoginDatabase.h b/src/server/database/Database/Implementation/LoginDatabase.h index 1555210ff..825db53e5 100644 --- a/src/server/database/Database/Implementation/LoginDatabase.h +++ b/src/server/database/Database/Implementation/LoginDatabase.h @@ -120,6 +120,8 @@ enum LoginDatabaseStatements : uint32 LOGIN_SEL_ACCOUNT_TOTP_SECRET, LOGIN_UPD_ACCOUNT_TOTP_SECRET, + LOGIN_INS_UPTIME, + MAX_LOGINDATABASE_STATEMENTS }; diff --git a/src/server/database/Database/Implementation/WorldDatabase.cpp b/src/server/database/Database/Implementation/WorldDatabase.cpp index c6e1c5d05..323f4ccbd 100644 --- a/src/server/database/Database/Implementation/WorldDatabase.cpp +++ b/src/server/database/Database/Implementation/WorldDatabase.cpp @@ -95,6 +95,7 @@ void WorldDatabaseConnection::DoPrepareStatements() PrepareStatement(WORLD_INS_GAMEOBJECT_ADDON, "INSERT INTO gameobject_addon (guid, invisibilityType, invisibilityValue) VALUES (?, 0, 0)", CONNECTION_ASYNC); // 0: uint8 PrepareStatement(WORLD_SEL_REQ_XP, "SELECT Experience FROM player_xp_for_level WHERE Level = ?", CONNECTION_SYNCH); + PrepareStatement(WORLD_UPD_VERSION, "UPDATE version SET core_version = ?, core_revision = ?", CONNECTION_ASYNC); } WorldDatabaseConnection::WorldDatabaseConnection(MySQLConnectionInfo& connInfo) : MySQLConnection(connInfo) diff --git a/src/server/database/Database/Implementation/WorldDatabase.h b/src/server/database/Database/Implementation/WorldDatabase.h index 527d74764..ebfdcfe07 100644 --- a/src/server/database/Database/Implementation/WorldDatabase.h +++ b/src/server/database/Database/Implementation/WorldDatabase.h @@ -100,6 +100,7 @@ enum WorldDatabaseStatements : uint32 WORLD_UPD_GAMEOBJECT_ZONE_AREA_DATA, WORLD_SEL_REQ_XP, WORLD_INS_GAMEOBJECT_ADDON, + WORLD_UPD_VERSION, MAX_WORLDDATABASE_STATEMENTS }; diff --git a/src/server/game/AI/CoreAI/PetAI.cpp b/src/server/game/AI/CoreAI/PetAI.cpp index 4047ba8e1..33fff5f74 100644 --- a/src/server/game/AI/CoreAI/PetAI.cpp +++ b/src/server/game/AI/CoreAI/PetAI.cpp @@ -484,7 +484,7 @@ Unit* PetAI::SelectNextTarget(bool allowAutoSelect) const return myAttacker; // Check pet's attackers first to prevent dragging mobs back to owner - if (me->HasAuraType(SPELL_AURA_MOD_TAUNT)) + if (me->HasTauntAura()) { const Unit::AuraEffectList& tauntAuras = me->GetAuraEffectsByType(SPELL_AURA_MOD_TAUNT); if (!tauntAuras.empty()) diff --git a/src/server/game/AI/ScriptedAI/ScriptedCreature.cpp b/src/server/game/AI/ScriptedAI/ScriptedCreature.cpp index 50a7f8a8b..64678db31 100644 --- a/src/server/game/AI/ScriptedAI/ScriptedCreature.cpp +++ b/src/server/game/AI/ScriptedAI/ScriptedCreature.cpp @@ -195,6 +195,7 @@ ScriptedAI::ScriptedAI(Creature* creature) : CreatureAI(creature), _isHeroic = me->GetMap()->IsHeroic(); _difficulty = Difficulty(me->GetMap()->GetSpawnMode()); _invincible = false; + _canAutoAttack = true; } void ScriptedAI::AttackStartNoMove(Unit* who) @@ -220,7 +221,8 @@ void ScriptedAI::UpdateAI(uint32 /*diff*/) if (!UpdateVictim()) return; - DoMeleeAttackIfReady(); + if (IsAutoAttackAllowed()) + DoMeleeAttackIfReady(); } void ScriptedAI::DamageTaken(Unit* /*attacker*/, uint32& damage, DamageEffectType /*damagetype*/, SpellSchoolMask /*damageSchoolMask*/) @@ -739,7 +741,8 @@ void BossAI::UpdateAI(uint32 diff) } } - DoMeleeAttackIfReady(); + if (IsAutoAttackAllowed()) + DoMeleeAttackIfReady(); } void BossAI::DamageTaken(Unit* attacker, uint32& damage, DamageEffectType damagetype, SpellSchoolMask damageSchoolMask) diff --git a/src/server/game/AI/ScriptedAI/ScriptedCreature.h b/src/server/game/AI/ScriptedAI/ScriptedCreature.h index 0fd1c861b..d5f7f729f 100644 --- a/src/server/game/AI/ScriptedAI/ScriptedCreature.h +++ b/src/server/game/AI/ScriptedAI/ScriptedCreature.h @@ -442,10 +442,15 @@ struct ScriptedAI : public CreatureAI void SetInvincibility(bool apply) { _invincible = apply; }; [[nodiscard]] bool IsInvincible() const { return _invincible; }; + // Disables creature auto attacks. + void SetAutoAttackAllowed(bool allow) { _canAutoAttack = allow; }; + [[nodiscard]] bool IsAutoAttackAllowed() const { return _canAutoAttack; }; + private: Difficulty _difficulty; bool _isHeroic; bool _invincible; + bool _canAutoAttack; std::unordered_set _uniqueTimedEvents; }; diff --git a/src/server/game/AI/SmartScripts/SmartScript.cpp b/src/server/game/AI/SmartScripts/SmartScript.cpp index 122c640d0..7f4b8e996 100644 --- a/src/server/game/AI/SmartScripts/SmartScript.cpp +++ b/src/server/game/AI/SmartScripts/SmartScript.cpp @@ -3511,8 +3511,15 @@ void SmartScript::GetTargets(ObjectVector& targets, SmartScriptHolder const& e, { for (GroupReference* groupRef = group->GetFirstMember(); groupRef != nullptr; groupRef = groupRef->next()) if (Player* member = groupRef->GetSource()) + { if (member->IsInMap(player)) targets.push_back(member); + + if (e.target.invokerParty.includePets) + if (Creature* pet = ObjectAccessor::GetCreatureOrPetOrVehicle(*member, member->GetPetGUID())) + if (pet->IsPet() && pet->IsInMap(player)) + targets.push_back(pet); + } } // We still add the player to the list if there is no group. If we do // this even if there is a group (thus the else-check), it will add the diff --git a/src/server/game/AI/SmartScripts/SmartScriptMgr.cpp b/src/server/game/AI/SmartScripts/SmartScriptMgr.cpp index 4d4a35416..4544f73c8 100644 --- a/src/server/game/AI/SmartScripts/SmartScriptMgr.cpp +++ b/src/server/game/AI/SmartScripts/SmartScriptMgr.cpp @@ -908,7 +908,7 @@ bool SmartAIMgr::CheckUnusedTargetParams(SmartScriptHolder const& e) case SMART_TARGET_GAMEOBJECT_RANGE: return sizeof(SmartTarget::goRange); case SMART_TARGET_GAMEOBJECT_GUID: return sizeof(SmartTarget::goGUID); case SMART_TARGET_GAMEOBJECT_DISTANCE: return sizeof(SmartTarget::goDistance); - case SMART_TARGET_INVOKER_PARTY: return NO_PARAMS; + case SMART_TARGET_INVOKER_PARTY: return sizeof(SmartTarget::invokerParty); case SMART_TARGET_PLAYER_RANGE: return sizeof(SmartTarget::playerRange); case SMART_TARGET_PLAYER_DISTANCE: return sizeof(SmartTarget::playerDistance); case SMART_TARGET_CLOSEST_CREATURE: return sizeof(SmartTarget::unitClosest); diff --git a/src/server/game/AI/SmartScripts/SmartScriptMgr.h b/src/server/game/AI/SmartScripts/SmartScriptMgr.h index bf414f532..3a31acbcf 100644 --- a/src/server/game/AI/SmartScripts/SmartScriptMgr.h +++ b/src/server/game/AI/SmartScripts/SmartScriptMgr.h @@ -1533,7 +1533,7 @@ enum SMARTAI_TARGETS SMART_TARGET_GAMEOBJECT_RANGE = 13, // entry(0any), min, max SMART_TARGET_GAMEOBJECT_GUID = 14, // guid, entry SMART_TARGET_GAMEOBJECT_DISTANCE = 15, // entry(0any), maxDist - SMART_TARGET_INVOKER_PARTY = 16, // invoker's party members + SMART_TARGET_INVOKER_PARTY = 16, // includePets(0 - false, 1 - true) SMART_TARGET_PLAYER_RANGE = 17, // min, max, maxCount (maxCount by pussywizard), set target.o to 1 if u want to search for all in range if min, max fails SMART_TARGET_PLAYER_DISTANCE = 18, // maxDist SMART_TARGET_CLOSEST_CREATURE = 19, // CreatureEntry(0any), maxDist, dead? @@ -1736,6 +1736,11 @@ struct SmartTarget uint32 index; uint32 type; } instanceStorage; + + struct + { + SAIBool includePets; + } invokerParty; }; }; diff --git a/src/server/game/Battlegrounds/Battleground.cpp b/src/server/game/Battlegrounds/Battleground.cpp index 792e54342..454bb3e4f 100644 --- a/src/server/game/Battlegrounds/Battleground.cpp +++ b/src/server/game/Battlegrounds/Battleground.cpp @@ -844,7 +844,7 @@ void Battleground::EndBattleground(PvPTeamId winnerTeamId) TeamId bgTeamId = player->GetBgTeamId(); // should remove spirit of redemption - if (player->HasAuraType(SPELL_AURA_SPIRIT_OF_REDEMPTION)) + if (player->HasSpiritOfRedemptionAura()) player->RemoveAurasByType(SPELL_AURA_MOD_SHAPESHIFT); if (!player->IsAlive()) @@ -1008,7 +1008,7 @@ void Battleground::RemovePlayerAtLeave(Player* player) RemovePlayer(player); // should remove spirit of redemption - if (player->HasAuraType(SPELL_AURA_SPIRIT_OF_REDEMPTION)) + if (player->HasSpiritOfRedemptionAura()) player->RemoveAurasByType(SPELL_AURA_MOD_SHAPESHIFT); // if the player was a match participant diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundSA.cpp b/src/server/game/Battlegrounds/Zones/BattlegroundSA.cpp index 9d0a32522..443a8a46c 100644 --- a/src/server/game/Battlegrounds/Zones/BattlegroundSA.cpp +++ b/src/server/game/Battlegrounds/Zones/BattlegroundSA.cpp @@ -534,7 +534,7 @@ void BattlegroundSA::TeleportPlayers() if (Player* player = itr->second) { // should remove spirit of redemption - if (player->HasAuraType(SPELL_AURA_SPIRIT_OF_REDEMPTION)) + if (player->HasSpiritOfRedemptionAura()) player->RemoveAurasByType(SPELL_AURA_MOD_SHAPESHIFT); if (!player->IsAlive()) diff --git a/src/server/game/Entities/Creature/Creature.cpp b/src/server/game/Entities/Creature/Creature.cpp index 92cd6fee3..25d7756b7 100644 --- a/src/server/game/Entities/Creature/Creature.cpp +++ b/src/server/game/Entities/Creature/Creature.cpp @@ -1058,7 +1058,7 @@ void Creature::DoFleeToGetAssistance() if (!GetVictim()) return; - if (HasAuraType(SPELL_AURA_PREVENTS_FLEEING)) + if (HasPreventsFleeingAura()) return; float radius = sWorld->getFloatConfig(CONFIG_CREATURE_FAMILY_FLEE_ASSISTANCE_RADIUS); @@ -1201,8 +1201,10 @@ bool Creature::Create(ObjectGuid::LowType guidlow, Map* map, uint32 phaseMask, u m_serverSideVisibilityDetect.SetValue(SERVERSIDE_VISIBILITY_GHOST, GHOST_VISIBILITY_GHOST); } else if (cinfo->type_flags & CREATURE_TYPE_FLAG_VISIBLE_TO_GHOSTS) // Xinef: Add ghost visibility for ghost units + { m_serverSideVisibility.SetValue(SERVERSIDE_VISIBILITY_GHOST, GHOST_VISIBILITY_ALIVE | GHOST_VISIBILITY_GHOST); - + m_serverSideVisibilityDetect.SetValue(SERVERSIDE_VISIBILITY_GHOST, GHOST_VISIBILITY_ALIVE | GHOST_VISIBILITY_GHOST); + } if (Entry == VISUAL_WAYPOINT) SetVisible(false); @@ -2668,7 +2670,7 @@ bool Creature::CanCreatureAttack(Unit const* victim, bool skipDistCheck) const // pussywizard: don't check distance to home position if recently damaged (allow kiting away from spawnpoint!) // xinef: this should include taunt auras - if (!isWorldBoss() && (GetLastLeashExtensionTime() + 12 > GameTime::GetGameTime().count() || HasAuraType(SPELL_AURA_MOD_TAUNT))) + if (!isWorldBoss() && (GetLastLeashExtensionTime() + 12 > GameTime::GetGameTime().count() || HasTauntAura())) return true; } @@ -3458,14 +3460,14 @@ void Creature::UpdateMovementFlags() else SetDisableGravity(true); - if (!HasAuraType(SPELL_AURA_HOVER)) + if (!HasHoverAura()) SetHover(false); } else { SetCanFly(false); SetDisableGravity(false); - if (IsAlive() && (CanHover() || HasAuraType(SPELL_AURA_HOVER))) + if (IsAlive() && (CanHover() || HasHoverAura())) SetHover(true); } diff --git a/src/server/game/Entities/Object/Object.cpp b/src/server/game/Entities/Object/Object.cpp index 8dc14fde3..b37efedca 100644 --- a/src/server/game/Entities/Object/Object.cpp +++ b/src/server/game/Entities/Object/Object.cpp @@ -3128,7 +3128,7 @@ float WorldObject::GetMapHeight(float x, float y, float z, bool vmap/* = true*/, float WorldObject::GetMapWaterOrGroundLevel(float x, float y, float z, float* ground/* = nullptr*/) const { return GetMap()->GetWaterOrGroundLevel(GetPhaseMask(), x, y, z, ground, - IsUnit() ? !static_cast(this)->HasAuraType(SPELL_AURA_WATER_WALK) : false, + IsUnit() ? !static_cast(this)->HasWaterWalkAura() : false, std::max(GetCollisionHeight(), Z_OFFSET_FIND_HEIGHT)); } diff --git a/src/server/game/Entities/Pet/Pet.cpp b/src/server/game/Entities/Pet/Pet.cpp index 141eab881..5f4d3057a 100644 --- a/src/server/game/Entities/Pet/Pet.cpp +++ b/src/server/game/Entities/Pet/Pet.cpp @@ -306,12 +306,6 @@ bool Pet::LoadPetFromDB(Player* owner, uint32 petEntry, uint32 petnumber, bool c { case SUMMON_PET: petlevel = owner->GetLevel(); - - if (IsPetGhoul()) - SetUInt32Value(UNIT_FIELD_BYTES_0, 0x400); // class = rogue - else - SetUInt32Value(UNIT_FIELD_BYTES_0, 0x800); // class = mage - ReplaceAllUnitFlags(UNIT_FLAG_PLAYER_CONTROLLED); // this enables popup window (pet dismiss, cancel) break; case HUNTER_PET: diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 047947b1c..7837e1d68 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -813,7 +813,7 @@ int32 Player::getMaxTimer(MirrorTimerType timer) return MINUTE * IN_MILLISECONDS; case BREATH_TIMER: { - if (!IsAlive() || HasAuraType(SPELL_AURA_WATER_BREATHING) || GetSession()->GetSecurity() >= AccountTypes(sWorld->getIntConfig(CONFIG_DISABLE_BREATHING))) + if (!IsAlive() || HasWaterBreathingAura() || GetSession()->GetSecurity() >= AccountTypes(sWorld->getIntConfig(CONFIG_DISABLE_BREATHING))) return DISABLED_MIRROR_TIMER; int32 UnderWaterTime = sWorld->getIntConfig(CONFIG_WATER_BREATH_TIMER); AuraEffectList const& mModWaterBreathing = GetAuraEffectsByType(SPELL_AURA_MOD_WATER_BREATHING); @@ -1787,8 +1787,8 @@ void Player::RegenerateAll() { // Not in combat or they have regeneration if (!IsInCombat() || IsPolymorphed() || m_baseHealthRegen || - HasAuraType(SPELL_AURA_MOD_REGEN_DURING_COMBAT) || - HasAuraType(SPELL_AURA_MOD_HEALTH_REGEN_IN_COMBAT)) + HasRegenDuringCombatAura() || + HasHealthRegenInCombatAura()) { RegenerateHealth(); } @@ -1882,7 +1882,7 @@ void Player::Regenerate(Powers power) break; case POWER_RAGE: // Regenerate rage { - if (!IsInCombat() && !HasAuraType(SPELL_AURA_INTERRUPT_REGEN)) + if (!IsInCombat() && !HasInterruptRegenAura()) { float RageDecreaseRate = sWorld->getRate(RATE_POWER_RAGE_LOSS); addvalue += -20 * RageDecreaseRate; // 2 rage by tick (= 2 seconds => 1 rage/sec) @@ -1894,7 +1894,7 @@ void Player::Regenerate(Powers power) break; case POWER_RUNIC_POWER: { - if (!IsInCombat() && !HasAuraType(SPELL_AURA_INTERRUPT_REGEN)) + if (!IsInCombat() && !HasInterruptRegenAura()) { float RunicPowerDecreaseRate = sWorld->getRate(RATE_POWER_RUNICPOWER_LOSS); addvalue += -30 * RunicPowerDecreaseRate; // 3 RunicPower by tick @@ -2000,7 +2000,7 @@ void Player::RegenerateHealth() if (IsPolymorphed()) addvalue = (float)GetMaxHealth() / 3; // normal regen case (maybe partly in combat case) - else if (!IsInCombat() || HasAuraType(SPELL_AURA_MOD_REGEN_DURING_COMBAT)) + else if (!IsInCombat() || HasRegenDuringCombatAura()) { addvalue = OCTRegenHPPerSpirit() * HealthIncreaseRate; @@ -2019,7 +2019,7 @@ void Player::RegenerateHealth() { addvalue += GetTotalAuraModifier(SPELL_AURA_MOD_REGEN) * 2 * IN_MILLISECONDS / (5 * IN_MILLISECONDS); } - else if (HasAuraType(SPELL_AURA_MOD_REGEN_DURING_COMBAT)) + else if (HasRegenDuringCombatAura()) { ApplyPct(addvalue, GetTotalAuraModifier(SPELL_AURA_MOD_REGEN_DURING_COMBAT)); } @@ -2507,14 +2507,17 @@ void Player::GiveLevel(uint8 level) _ApplyAllLevelScaleItemMods(true); - // set current level health and mana/energy to maximum after applying all mods. - SetFullHealth(); - SetPower(POWER_MANA, GetMaxPower(POWER_MANA)); - SetPower(POWER_ENERGY, GetMaxPower(POWER_ENERGY)); - if (GetPower(POWER_RAGE) > GetMaxPower(POWER_RAGE)) - SetPower(POWER_RAGE, GetMaxPower(POWER_RAGE)); - SetPower(POWER_FOCUS, 0); - SetPower(POWER_HAPPINESS, 0); + if (!isDead()) + { + // set current level health and mana/energy to maximum after applying all mods. + SetFullHealth(); + SetPower(POWER_MANA, GetMaxPower(POWER_MANA)); + SetPower(POWER_ENERGY, GetMaxPower(POWER_ENERGY)); + if (GetPower(POWER_RAGE) > GetMaxPower(POWER_RAGE)) + SetPower(POWER_RAGE, GetMaxPower(POWER_RAGE)); + SetPower(POWER_FOCUS, 0); + SetPower(POWER_HAPPINESS, 0); + } // update level to hunter/summon pet if (Pet* pet = GetPet()) @@ -4556,7 +4559,7 @@ void Player::KillPlayer() //SetUnitFlag(UNIT_FLAG_NOT_IN_PVP); ReplaceAllDynamicFlags(UNIT_DYNFLAG_NONE); - ApplyModFlag(PLAYER_FIELD_BYTES, PLAYER_FIELD_BYTE_RELEASE_TIMER, !sMapStore.LookupEntry(GetMapId())->Instanceable() && !HasAuraType(SPELL_AURA_PREVENT_RESURRECTION)); + ApplyModFlag(PLAYER_FIELD_BYTES, PLAYER_FIELD_BYTE_RELEASE_TIMER, !sMapStore.LookupEntry(GetMapId())->Instanceable() && !HasPreventResurectionAura()); // 6 minutes until repop at graveyard m_deathTimer = 6 * MINUTE * IN_MILLISECONDS; @@ -4781,10 +4784,8 @@ void Player::DurabilityPointsLossAll(int32 points, bool inventory) void Player::DurabilityPointsLoss(Item* item, int32 points) { - if (HasAuraType(SPELL_AURA_PREVENT_DURABILITY_LOSS)) - { + if (HasPreventDurabilityLossAura()) return; - } int32 pMaxDurability = item->GetUInt32Value(ITEM_FIELD_MAXDURABILITY); int32 pOldDurability = item->GetUInt32Value(ITEM_FIELD_DURABILITY); @@ -6121,7 +6122,7 @@ bool Player::RewardHonor(Unit* uVictim, uint32 groupsize, int32 honor, bool awar if (honor_f <= 0) { - if (!uVictim || uVictim == this || uVictim->HasAuraType(SPELL_AURA_NO_PVP_CREDIT)) + if (!uVictim || uVictim == this || uVictim->HasNoPVPCreditAura()) return false; victim_guid = uVictim->GetGUID(); @@ -6234,7 +6235,7 @@ bool Player::RewardHonor(Unit* uVictim, uint32 groupsize, int32 honor, bool awar if (sWorld->getBoolConfig(CONFIG_PVP_TOKEN_ENABLE)) { - if (!uVictim || uVictim == this || uVictim->HasAuraType(SPELL_AURA_NO_PVP_CREDIT)) + if (!uVictim || uVictim == this || uVictim->HasNoPVPCreditAura()) return true; if (uVictim->IsPlayer()) @@ -9029,7 +9030,6 @@ Pet* Player::SummonPet(uint32 entry, float x, float y, float z, float ang, PetTy pet->GetCharmInfo()->SetPetNumber(pet_number, false); } - pet->SetUInt32Value(UNIT_FIELD_BYTES_0, 2048); pet->SetUInt32Value(UNIT_FIELD_PETEXPERIENCE, 0); pet->SetUInt32Value(UNIT_FIELD_PETNEXTLEVELEXP, 1000); pet->SetFullHealth(); @@ -11677,7 +11677,7 @@ void Player::SendInitialPacketsAfterAddToMap() // Fix mount, update block gets messed somewhere { - if (!isBeingLoaded() && GetMountBlockId() && !HasAuraType(SPELL_AURA_MOUNTED)) + if (!isBeingLoaded() && GetMountBlockId() && !HasMountedAura()) { AddAura(GetMountBlockId(), this); SetMountBlockId(0); @@ -11689,11 +11689,11 @@ void Player::SendInitialPacketsAfterAddToMap() GetZoneAndAreaId(newzone, newarea); UpdateZone(newzone, newarea); // also call SendInitWorldStates(); - if (HasAuraType(SPELL_AURA_MOD_STUN)) + if (HasStunAura()) SetMovement(MOVE_ROOT); // manual send package (have code in HandleEffect(this, AURA_EFFECT_HANDLE_SEND_FOR_CLIENT, true); that must not be re-applied. - if (HasAuraType(SPELL_AURA_MOD_ROOT)) + if (HasRootAura()) { WorldPacket data2(SMSG_FORCE_MOVE_ROOT, 10); data2 << GetPackGUID(); @@ -12083,13 +12083,13 @@ void Player::GetAurasForTarget(Unit* target, bool force /*= false*/) /*! Blizz sends certain movement packets sometimes even before CreateObject These movement packets are usually found in SMSG_COMPRESSED_MOVES */ - if (target->HasAuraType(SPELL_AURA_FEATHER_FALL)) + if (target->HasFeatherFallAura()) target->SendMovementFeatherFall(this); - if (target->HasAuraType(SPELL_AURA_WATER_WALK)) + if (target->HasWaterWalkAura()) target->SendMovementWaterWalking(this); - if (target->HasAuraType(SPELL_AURA_HOVER)) + if (target->HasHoverAura()) target->SendMovementHover(this); WorldPacket data(SMSG_AURA_UPDATE_ALL); @@ -13874,8 +13874,8 @@ void Player::HandleFall(MovementInfo const& movementInfo) //Players with low fall distance, Feather Fall or physical immunity (charges used) are ignored // 14.57 can be calculated by resolving damageperc formula below to 0 if (z_diff >= 14.57f && !isDead() && !IsGameMaster() && !GetCommandStatus(CHEAT_GOD) && - !HasAuraType(SPELL_AURA_HOVER) && !HasAuraType(SPELL_AURA_FEATHER_FALL) && - !HasAuraType(SPELL_AURA_FLY)) + !HasHoverAura() && !HasFeatherFallAura() && + !HasFlyAura()) { //Safe fall, fall height reduction int32 safe_fall = GetTotalAuraModifier(SPELL_AURA_SAFE_FALL); diff --git a/src/server/game/Entities/Player/PlayerStorage.cpp b/src/server/game/Entities/Player/PlayerStorage.cpp index 66b6c142d..8c7b9da6f 100644 --- a/src/server/game/Entities/Player/PlayerStorage.cpp +++ b/src/server/game/Entities/Player/PlayerStorage.cpp @@ -5132,7 +5132,7 @@ bool Player::LoadFromDB(ObjectGuid playerGuid, CharacterDatabaseQueryHolder cons { // xinef: resurrect player, cant log in dead without corpse { - if (HasAuraType(SPELL_AURA_SPIRIT_OF_REDEMPTION)) + if (HasSpiritOfRedemptionAura()) RemoveAurasByType(SPELL_AURA_MOD_SHAPESHIFT); if (!IsAlive()) ResurrectPlayer(1.0f); diff --git a/src/server/game/Entities/Player/PlayerUpdates.cpp b/src/server/game/Entities/Player/PlayerUpdates.cpp index 8f5fbfeff..aef35b3e8 100644 --- a/src/server/game/Entities/Player/PlayerUpdates.cpp +++ b/src/server/game/Entities/Player/PlayerUpdates.cpp @@ -356,7 +356,7 @@ void Player::Update(uint32 p_time) // not auto-free ghost from body in instances if (m_deathTimer > 0 && !GetMap()->Instanceable() && - !HasAuraType(SPELL_AURA_PREVENT_RESURRECTION)) + !HasPreventResurectionAura()) { if (p_time >= m_deathTimer) { @@ -1716,7 +1716,7 @@ void Player::UpdateTriggerVisibility() // Update fields of triggers, transformed units or unselectable // units (values dependent on GM state) if (!creature || (!creature->IsTrigger() && - !creature->HasAuraType(SPELL_AURA_TRANSFORM) && + !creature->HasTransformAura() && !creature->HasUnitFlag(UNIT_FLAG_NOT_SELECTABLE))) continue; diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index 778642c00..f674ff9ff 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -2836,7 +2836,7 @@ MeleeHitOutcome Unit::RollMeleeOutcomeAgainst(Unit const* victim, WeaponAttackTy // Dodge chance // only players can't dodge if attacker is behind - if (victim->IsPlayer() && !victim->HasInArc(M_PI, this) && !victim->HasAuraType(SPELL_AURA_IGNORE_HIT_DIRECTION)) + if (victim->IsPlayer() && !victim->HasInArc(M_PI, this) && !victim->HasIgnoreHitDirectionAura()) { //LOG_DEBUG("entities.unit", "RollMeleeOutcomeAgainst: attack came from behind and victim was a player."); } @@ -2871,7 +2871,7 @@ MeleeHitOutcome Unit::RollMeleeOutcomeAgainst(Unit const* victim, WeaponAttackTy // parry & block chances // check if attack comes from behind, nobody can parry or block if attacker is behind - if (!victim->HasInArc(M_PI, this) && !victim->HasAuraType(SPELL_AURA_IGNORE_HIT_DIRECTION)) + if (!victim->HasInArc(M_PI, this) && !victim->HasIgnoreHitDirectionAura()) { LOG_DEBUG("entities.unit", "RollMeleeOutcomeAgainst: attack came from behind."); } @@ -3103,7 +3103,7 @@ bool Unit::isSpellBlocked(Unit* victim, SpellInfo const* spellProto, WeaponAttac if (spellProto && spellProto->HasAttribute(SPELL_ATTR0_NO_ACTIVE_DEFENSE)) return false; - if (victim->HasAuraType(SPELL_AURA_IGNORE_HIT_DIRECTION) || victim->HasInArc(M_PI, this)) + if (victim->HasIgnoreHitDirectionAura() || victim->HasInArc(M_PI, this)) { // Check creatures flags_extra for disable block if (victim->IsCreature() && @@ -3201,7 +3201,7 @@ SpellMissInfo Unit::MeleeSpellHitResult(Unit* victim, SpellInfo const* spellInfo if (attType == RANGED_ATTACK) { // only if in front - if (!victim->HasUnitState(UNIT_STATE_STUNNED) && (victim->HasInArc(M_PI, this) || victim->HasAuraType(SPELL_AURA_IGNORE_HIT_DIRECTION))) + if (!victim->HasUnitState(UNIT_STATE_STUNNED) && (victim->HasInArc(M_PI, this) || victim->HasIgnoreHitDirectionAura())) { int32 deflect_chance = victim->GetTotalAuraModifier(SPELL_AURA_DEFLECT_SPELLS) * 100; tmp += deflect_chance; @@ -3217,7 +3217,7 @@ SpellMissInfo Unit::MeleeSpellHitResult(Unit* victim, SpellInfo const* spellInfo // xinef: if from behind or spell requires cast from behind if (!victim->HasInArc(M_PI, this)) { - if (!victim->HasAuraType(SPELL_AURA_IGNORE_HIT_DIRECTION) || spellInfo->HasAttribute(SPELL_ATTR0_CU_REQ_CASTER_BEHIND_TARGET)) + if (!victim->HasIgnoreHitDirectionAura() || spellInfo->HasAttribute(SPELL_ATTR0_CU_REQ_CASTER_BEHIND_TARGET)) { // Can`t dodge from behind in PvP (but its possible in PvE) if (victim->IsPlayer()) @@ -3448,7 +3448,7 @@ SpellMissInfo Unit::MagicSpellHitResult(Unit* victim, SpellInfo const* spellInfo return SPELL_MISS_RESIST; // cast by caster in front of victim - if (!victim->HasUnitState(UNIT_STATE_STUNNED) && (victim->HasInArc(M_PI, this) || victim->HasAuraType(SPELL_AURA_IGNORE_HIT_DIRECTION))) + if (!victim->HasUnitState(UNIT_STATE_STUNNED) && (victim->HasInArc(M_PI, this) || victim->HasIgnoreHitDirectionAura())) { int32 deflect_chance = victim->GetTotalAuraModifier(SPELL_AURA_DEFLECT_SPELLS) * 100; tmp += deflect_chance; @@ -9028,7 +9028,7 @@ bool Unit::HandleProcTriggerSpell(Unit* victim, uint32 damage, AuraEffect* trigg if (!victim) return false; - if (Creature* cr = ObjectAccessor::GetCreature(*this, m_SummonSlot[SUMMON_SLOT_MINIPET])) + if (Creature* cr = GetCompanionPet()) cr->CastSpell(victim, 50101, true); return false; @@ -10332,11 +10332,11 @@ bool Unit::Attack(Unit* victim, bool meleeAttack) } // Unit with SPELL_AURA_SPIRIT_OF_REDEMPTION can not attack - if (HasAuraType(SPELL_AURA_SPIRIT_OF_REDEMPTION)) + if (HasSpiritOfRedemptionAura()) return false; // remove SPELL_AURA_MOD_UNATTACKABLE at attack (in case non-interruptible spells stun aura applied also that not let attack) - if (HasAuraType(SPELL_AURA_MOD_UNATTACKABLE)) + if (HasUnattackableAura()) RemoveAurasByType(SPELL_AURA_MOD_UNATTACKABLE); if (m_attacking) @@ -10680,6 +10680,11 @@ Guardian* Unit::GetGuardianPet() const return nullptr; } +Creature* Unit::GetCompanionPet() const +{ + return ObjectAccessor::GetCreature(*this, m_SummonSlot[SUMMON_SLOT_MINIPET]); +} + Unit* Unit::GetCharm() const { if (ObjectGuid charm_guid = GetCharmGUID()) @@ -11013,7 +11018,7 @@ bool RedirectSpellEvent::Execute(uint64 /*e_time*/, uint32 /*p_time*/) if (Unit* auraOwner = ObjectAccessor::GetUnit(_self, _auraOwnerGUID)) { // Xinef: already removed - if (!auraOwner->HasAuraType(SPELL_AURA_SPELL_MAGNET)) + if (!auraOwner->HasSpellMagnetAura()) return true; Unit::AuraEffectList const& magnetAuras = auraOwner->GetAuraEffectsByType(SPELL_AURA_SPELL_MAGNET); @@ -11890,7 +11895,7 @@ uint32 Unit::SpellDamageBonusTaken(Unit* caster, SpellInfo const* spellProto, ui } // xinef: sanctified wrath talent - if (caster && TakenTotalMod < 1.0f && caster->HasAuraType(SPELL_AURA_MOD_IGNORE_TARGET_RESIST)) + if (caster && TakenTotalMod < 1.0f && caster->HasIgnoreTargetResistAura()) { float ignoreModifier = 1.0f - TakenTotalMod; bool addModifier = false; @@ -12097,7 +12102,7 @@ float Unit::SpellTakenCritChance(Unit const* caster, SpellInfo const* spellProto { // Modify critical chance by victim SPELL_AURA_MOD_ATTACKER_SPELL_CRIT_CHANCE // xinef: apply max and min only - if (HasAuraType(SPELL_AURA_MOD_ATTACKER_SPELL_CRIT_CHANCE)) + if (HasAttackerSpellCritChanceAura()) { crit_chance += GetMaxNegativeAuraModifierByMiscMask(SPELL_AURA_MOD_ATTACKER_SPELL_CRIT_CHANCE, schoolMask); crit_chance += GetMaxPositiveAuraModifierByMiscMask(SPELL_AURA_MOD_ATTACKER_SPELL_CRIT_CHANCE, schoolMask); @@ -12779,7 +12784,7 @@ bool Unit::IsImmunedToDamage(SpellInfo const* spellInfo) const return false; } - if (spellInfo->HasAttribute(SPELL_ATTR0_NO_IMMUNITIES) && !HasAuraType(SPELL_AURA_SPIRIT_OF_REDEMPTION)) + if (spellInfo->HasAttribute(SPELL_ATTR0_NO_IMMUNITIES) && !HasSpiritOfRedemptionAura()) { return false; } @@ -12812,7 +12817,7 @@ bool Unit::IsImmunedToDamage(Spell const* spell) const return false; } - if (spellInfo->HasAttribute(SPELL_ATTR0_NO_IMMUNITIES) && !HasAuraType(SPELL_AURA_SPIRIT_OF_REDEMPTION)) + if (spellInfo->HasAttribute(SPELL_ATTR0_NO_IMMUNITIES) && !HasSpiritOfRedemptionAura()) { return false; } @@ -12859,7 +12864,7 @@ bool Unit::IsImmunedToSchool(SpellSchoolMask meleeSchoolMask) const bool Unit::IsImmunedToSchool(SpellInfo const* spellInfo) const { - if (spellInfo->HasAttribute(SPELL_ATTR0_NO_IMMUNITIES) && !HasAuraType(SPELL_AURA_SPIRIT_OF_REDEMPTION)) + if (spellInfo->HasAttribute(SPELL_ATTR0_NO_IMMUNITIES) && !HasSpiritOfRedemptionAura()) return false; uint32 schoolMask = spellInfo->GetSchoolMask(); @@ -12883,7 +12888,7 @@ bool Unit::IsImmunedToSchool(SpellInfo const* spellInfo) const bool Unit::IsImmunedToSchool(Spell const* spell) const { SpellInfo const* spellInfo = spell->GetSpellInfo(); - if (spellInfo->HasAttribute(SPELL_ATTR0_NO_IMMUNITIES) && !HasAuraType(SPELL_AURA_SPIRIT_OF_REDEMPTION)) + if (spellInfo->HasAttribute(SPELL_ATTR0_NO_IMMUNITIES) && !HasSpiritOfRedemptionAura()) { return false; } @@ -12946,7 +12951,7 @@ bool Unit::IsImmunedToSpell(SpellInfo const* spellInfo, Spell const* spell) return true; } - if (spellInfo->HasAttribute(SPELL_ATTR0_NO_IMMUNITIES) && !HasAuraType(SPELL_AURA_SPIRIT_OF_REDEMPTION)) + if (spellInfo->HasAttribute(SPELL_ATTR0_NO_IMMUNITIES) && !HasSpiritOfRedemptionAura()) return false; if (spellInfo->Dispel) @@ -13024,7 +13029,7 @@ bool Unit::IsImmunedToSpellEffect(SpellInfo const* spellInfo, uint32 index) cons if (spellInfo->HasAttribute(SPELL_ATTR4_OWNER_POWER_SCALING)) return false; - if (spellInfo->HasAttribute(SPELL_ATTR0_NO_IMMUNITIES) && !HasAuraType(SPELL_AURA_SPIRIT_OF_REDEMPTION)) + if (spellInfo->HasAttribute(SPELL_ATTR0_NO_IMMUNITIES) && !HasSpiritOfRedemptionAura()) return false; //If m_immuneToEffect type contain this effect type, IMMUNE effect. @@ -13366,7 +13371,7 @@ uint32 Unit::MeleeDamageBonusTaken(Unit* attacker, uint32 pdamage, WeaponAttackT } // xinef: sanctified wrath talent - if (TakenTotalMod < 1.0f && attacker->HasAuraType(SPELL_AURA_MOD_IGNORE_TARGET_RESIST)) + if (TakenTotalMod < 1.0f && attacker->HasIgnoreTargetResistAura()) { float ignoreModifier = 1.0f - TakenTotalMod; bool addModifier = false; @@ -14652,7 +14657,7 @@ bool Unit::CanHaveThreatList(bool skipAliveCheck) const float Unit::ApplyTotalThreatModifier(float fThreat, SpellSchoolMask schoolMask) { - if (!HasAuraType(SPELL_AURA_MOD_THREAT) || fThreat < 0) + if (!HasThreatAura() || fThreat < 0) return fThreat; SpellSchools school = GetFirstSchoolInMask(schoolMask); @@ -17855,7 +17860,7 @@ void Unit::Kill(Unit* killer, Unit* victim, bool durabilityLoss, WeaponAttackTyp if (AuraEffect* aurEff = victim->GetAuraEffectDummy(20711)) { // Xinef: aura_spirit_of_redemption is triggered by 27827 shapeshift - if (victim->HasAuraType(SPELL_AURA_SPIRIT_OF_REDEMPTION) || victim->HasAura(27827)) + if (victim->HasSpiritOfRedemptionAura() || victim->HasAura(27827)) { /*LOG_INFO("misc", "Player ({}) died with spirit of redemption. Killer (Entry: {}, Name: {}), Map: {}, x: {}, y: {}, z: {}", victim->GetGUID().ToString(), killer ? killer->GetEntry() : 1, killer ? killer->GetName() : "", victim->GetMapId(), victim->GetPositionX(), @@ -18101,7 +18106,7 @@ void Unit::SetControlled(bool apply, UnitState state, Unit* source /*= nullptr*/ switch (state) { case UNIT_STATE_STUNNED: - if (HasAuraType(SPELL_AURA_MOD_STUN)) + if (HasStunAura()) return; ClearUnitState(state); SetStunned(false); @@ -18116,19 +18121,19 @@ void Unit::SetControlled(bool apply, UnitState state, Unit* source /*= nullptr*/ } } - if (HasAuraType(SPELL_AURA_MOD_ROOT) || GetVehicle()) + if (HasRootAura() || GetVehicle()) return; ClearUnitState(state); SetRooted(false); break; case UNIT_STATE_CONFUSED: - if (HasAuraType(SPELL_AURA_MOD_CONFUSE)) + if (HasConfuseAura()) return; ClearUnitState(state); SetConfused(false); break; case UNIT_STATE_FLEEING: - if (HasAuraType(SPELL_AURA_MOD_FEAR)) + if (HasFearAura()) return; ClearUnitState(state); SetFeared(false); @@ -18139,19 +18144,19 @@ void Unit::SetControlled(bool apply, UnitState state, Unit* source /*= nullptr*/ //ClearUnitState(state); - if (HasUnitState(UNIT_STATE_STUNNED) || HasAuraType(SPELL_AURA_MOD_STUN)) + if (HasUnitState(UNIT_STATE_STUNNED) || HasStunAura()) SetStunned(true); else { - if (HasUnitState(UNIT_STATE_ROOT) || HasAuraType(SPELL_AURA_MOD_ROOT)) + if (HasUnitState(UNIT_STATE_ROOT) || HasRootAura()) SetRooted(true); - if (HasUnitState(UNIT_STATE_CONFUSED) || HasAuraType(SPELL_AURA_MOD_CONFUSE)) + if (HasUnitState(UNIT_STATE_CONFUSED) || HasConfuseAura()) SetConfused(true); - else if (HasUnitState(UNIT_STATE_FLEEING) || HasAuraType(SPELL_AURA_MOD_FEAR)) + else if (HasUnitState(UNIT_STATE_FLEEING) || HasFearAura()) { bool isFear = false; - if (HasAuraType(SPELL_AURA_MOD_FEAR)) + if (HasFearAura()) { isFear = true; source = ObjectAccessor::GetUnit(*this, GetAuraEffectsByType(SPELL_AURA_MOD_FEAR).front()->GetCasterGUID()); @@ -19199,7 +19204,7 @@ void Unit::KnockbackFrom(float x, float y, float speedXY, float speedZ) player->GetSession()->SendPacket(&data); - if (player->HasAuraType(SPELL_AURA_MOD_INCREASE_MOUNTED_FLIGHT_SPEED) || player->HasAuraType(SPELL_AURA_FLY)) + if (player->HasIncreaseMountedFlightSpeedAura() || player->HasFlyAura()) player->SetCanFly(true, true); player->SetCanKnockback(true); diff --git a/src/server/game/Entities/Unit/Unit.h b/src/server/game/Entities/Unit/Unit.h index be9009550..5962775b0 100644 --- a/src/server/game/Entities/Unit/Unit.h +++ b/src/server/game/Entities/Unit/Unit.h @@ -1567,8 +1567,6 @@ public: /*********************************************************/ /*** METHODS RELATED TO MOVEMENTS ***/ /*********************************************************/ - [[nodiscard]] bool isFeared() const { return HasAuraType(SPELL_AURA_MOD_FEAR); } - [[nodiscard]] bool isInRoots() const { return HasAuraType(SPELL_AURA_MOD_ROOT); } [[nodiscard]] bool IsPolymorphed() const; [[nodiscard]] bool isFrozen() const; [[nodiscard]] bool IsInFlight() const { return HasUnitState(UNIT_STATE_IN_FLIGHT); } @@ -1639,8 +1637,6 @@ public: // SheathState [[nodiscard]] SheathState GetSheath() const { return SheathState(GetByteValue(UNIT_FIELD_BYTES_2, 0)); } virtual void SetSheath(SheathState sheathed) { SetByteValue(UNIT_FIELD_BYTES_2, 0, sheathed); } - [[nodiscard]] bool HasStealthAura() const { return HasAuraType(SPELL_AURA_MOD_STEALTH); } - [[nodiscard]] bool HasInvisibilityAura() const { return HasAuraType(SPELL_AURA_MOD_INVISIBILITY); } // StandState [[nodiscard]] uint8 getStandState() const { return GetByteValue(UNIT_FIELD_BYTES_1, 0); } @@ -1659,6 +1655,55 @@ public: [[nodiscard]] bool isDying() const { return (m_deathState == DeathState::JustDied); }; [[nodiscard]] bool isDead() const { return (m_deathState == DeathState::Dead || m_deathState == DeathState::Corpse); }; + // Spell Aura helpers + [[nodiscard]] bool HasGhostAura() const { return HasAuraType(SPELL_AURA_GHOST); }; + [[nodiscard]] bool HasMountedAura() const { return HasAuraType(SPELL_AURA_MOUNTED); }; + [[nodiscard]] bool HasWaterWalkAura() const { return HasAuraType(SPELL_AURA_WATER_WALK); }; + [[nodiscard]] bool HasFeatherFallAura() const { return HasAuraType(SPELL_AURA_FEATHER_FALL); }; + [[nodiscard]] bool HasHoverAura() const { return HasAuraType(SPELL_AURA_HOVER); }; + [[nodiscard]] bool HasFlyAura() const { return HasAuraType(SPELL_AURA_FLY); }; + [[nodiscard]] bool HasSpiritOfRedemptionAura() const { return HasAuraType(SPELL_AURA_SPIRIT_OF_REDEMPTION); }; + [[nodiscard]] bool HasPreventsFleeingAura() const { return HasAuraType(SPELL_AURA_PREVENTS_FLEEING); }; + [[nodiscard]] bool HasPreventDurabilityLossAura() const { return HasAuraType(SPELL_AURA_PREVENT_DURABILITY_LOSS); }; + [[nodiscard]] bool HasPreventResurectionAura() const { return HasAuraType(SPELL_AURA_PREVENT_RESURRECTION); }; + [[nodiscard]] bool HasTransformAura() const { return HasAuraType(SPELL_AURA_TRANSFORM); }; + [[nodiscard]] bool HasInterruptRegenAura() const { return HasAuraType(SPELL_AURA_INTERRUPT_REGEN); }; + [[nodiscard]] bool HasNoPVPCreditAura() const { return HasAuraType(SPELL_AURA_NO_PVP_CREDIT); }; + [[nodiscard]] bool HasWaterBreathingAura() const { return HasAuraType(SPELL_AURA_WATER_BREATHING); }; + [[nodiscard]] bool HasIgnoreHitDirectionAura() const { return HasAuraType(SPELL_AURA_IGNORE_HIT_DIRECTION); }; + [[nodiscard]] bool HasSpellMagnetAura() const { return HasAuraType(SPELL_AURA_SPELL_MAGNET); }; + [[nodiscard]] bool HasOpenStableAura() const { return HasAuraType(SPELL_AURA_OPEN_STABLE); }; + [[nodiscard]] bool HasCloneCasterAura() const { return HasAuraType(SPELL_AURA_CLONE_CASTER); }; + [[nodiscard]] bool HasReflectSpellsAura() const { return HasAuraType(SPELL_AURA_REFLECT_SPELLS); }; + [[nodiscard]] bool HasDetectAmoreAura() const { return HasAuraType(SPELL_AURA_DETECT_AMORE); }; + [[nodiscard]] bool HasAllowOnlyAbilityAura() const { return HasAuraType(SPELL_AURA_ALLOW_ONLY_ABILITY); }; + [[nodiscard]] bool HasPeriodicDummyAura() const { return HasAuraType(SPELL_AURA_PERIODIC_DUMMY); }; + [[nodiscard]] bool HasControlVehicleAura() const { return HasAuraType(SPELL_AURA_CONTROL_VEHICLE); }; + [[nodiscard]] bool HasAOECharmAura() const { return HasAuraType(SPELL_AURA_AOE_CHARM); }; + [[nodiscard]] bool HasDetectSpellsAura() const { return HasAuraType(SPELL_AURA_DEFLECT_SPELLS); }; + [[nodiscard]] bool HasPacifySilenceAura() const { return HasAuraType(SPELL_AURA_MOD_PACIFY_SILENCE); } + [[nodiscard]] bool HasSilenceAura() const { return HasAuraType(SPELL_AURA_MOD_SILENCE); } + [[nodiscard]] bool HasShapeshiftAura() const { return HasAuraType(SPELL_AURA_MOD_SHAPESHIFT); } + [[nodiscard]] bool HasDecreaseSpeedAura() const { return HasAuraType(SPELL_AURA_MOD_DECREASE_SPEED); } + [[nodiscard]] bool HasPacifyAura() const { return HasAuraType(SPELL_AURA_MOD_PACIFY); } + [[nodiscard]] bool HasIgnoreTargetResistAura() const { return HasAuraType(SPELL_AURA_MOD_IGNORE_TARGET_RESIST); } + [[nodiscard]] bool HasIncreaseMountedSpeedAura() const { return HasAuraType(SPELL_AURA_MOD_INCREASE_MOUNTED_SPEED); } + [[nodiscard]] bool HasIncreaseMountedFlightSpeedAura() const { return HasAuraType(SPELL_AURA_MOD_INCREASE_MOUNTED_FLIGHT_SPEED); } + [[nodiscard]] bool HasThreatAura() const { return HasAuraType(SPELL_AURA_MOD_THREAT); } + [[nodiscard]] bool HasAttackerSpellCritChanceAura() const { return HasAuraType(SPELL_AURA_MOD_ATTACKER_SPELL_CRIT_CHANCE); } + [[nodiscard]] bool HasUnattackableAura() const { return HasAuraType(SPELL_AURA_MOD_UNATTACKABLE); } + [[nodiscard]] bool HasHealthRegenInCombatAura() const { return HasAuraType(SPELL_AURA_MOD_HEALTH_REGEN_IN_COMBAT); } + [[nodiscard]] bool HasRegenDuringCombatAura() const { return HasAuraType(SPELL_AURA_MOD_REGEN_DURING_COMBAT); } + [[nodiscard]] bool HasFearAura() const { return HasAuraType(SPELL_AURA_MOD_FEAR); } + [[nodiscard]] bool HasConfuseAura() const { return HasAuraType(SPELL_AURA_MOD_CONFUSE); } + [[nodiscard]] bool HasRootAura() const { return HasAuraType(SPELL_AURA_MOD_ROOT); } + [[nodiscard]] bool HasStunAura() const { return HasAuraType(SPELL_AURA_MOD_STUN); } + [[nodiscard]] bool HasTauntAura() const { return HasAuraType(SPELL_AURA_MOD_TAUNT); } + [[nodiscard]] bool HasStealthAura() const { return HasAuraType(SPELL_AURA_MOD_STEALTH); } + [[nodiscard]] bool HasStealthDetectAura() const { return HasAuraType(SPELL_AURA_MOD_STEALTH_DETECT); } + [[nodiscard]] bool HasInvisibilityAura() const { return HasAuraType(SPELL_AURA_MOD_INVISIBILITY); } + [[nodiscard]] bool HasInvisibilityDetectAura() const { return HasAuraType(SPELL_AURA_MOD_INVISIBILITY_DETECT); } + // React methods bool IsHostileTo(Unit const* unit) const; [[nodiscard]] bool IsHostileToPlayers() const; @@ -1714,6 +1759,7 @@ public: // Pets, guardians, minions... [[nodiscard]] Guardian* GetGuardianPet() const; [[nodiscard]] Minion* GetFirstMinion() const; + [[nodiscard]] Creature* GetCompanionPet() const; Pet* CreateTamedPetFrom(Creature* creatureTarget, uint32 spell_id = 0); Pet* CreateTamedPetFrom(uint32 creatureEntry, uint32 spell_id = 0); diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp index a92668803..95f931439 100644 --- a/src/server/game/Globals/ObjectMgr.cpp +++ b/src/server/game/Globals/ObjectMgr.cpp @@ -8945,7 +8945,7 @@ void ObjectMgr::LoadGameTele() LOG_INFO("server.loading", " "); } -GameTele const* ObjectMgr::GetGameTele(std::string_view name) const +GameTele const* ObjectMgr::GetGameTele(std::string_view name, bool exactSearch) const { // explicit name case std::wstring wname; @@ -8961,7 +8961,7 @@ GameTele const* ObjectMgr::GetGameTele(std::string_view name) const { if (itr->second.wnameLow == wname) return &itr->second; - else if (!alt && itr->second.wnameLow.find(wname) != std::wstring::npos) + else if (!exactSearch && !alt && itr->second.wnameLow.find(wname) != std::wstring::npos) alt = &itr->second; } diff --git a/src/server/game/Globals/ObjectMgr.h b/src/server/game/Globals/ObjectMgr.h index adb7c60e2..c9d799610 100644 --- a/src/server/game/Globals/ObjectMgr.h +++ b/src/server/game/Globals/ObjectMgr.h @@ -1348,7 +1348,7 @@ public: if (itr == _gameTeleStore.end()) return nullptr; return &itr->second; } - [[nodiscard]] GameTele const* GetGameTele(std::string_view name) const; + [[nodiscard]] GameTele const* GetGameTele(std::string_view name, bool exactSearch = false) const; [[nodiscard]] GameTeleContainer const& GetGameTeleMap() const { return _gameTeleStore; } bool AddGameTele(GameTele& data); bool DeleteGameTele(std::string_view name); diff --git a/src/server/game/Grids/Notifiers/GridNotifiers.cpp b/src/server/game/Grids/Notifiers/GridNotifiers.cpp index 23b130b2a..586e1336b 100644 --- a/src/server/game/Grids/Notifiers/GridNotifiers.cpp +++ b/src/server/game/Grids/Notifiers/GridNotifiers.cpp @@ -369,7 +369,7 @@ void ObjectUpdater::Visit(GridRefMgr& m) bool AnyDeadUnitObjectInRangeCheck::operator()(Player* u) { - return !u->IsAlive() && !u->HasAuraType(SPELL_AURA_GHOST) && i_searchObj->IsWithinDistInMap(u, i_range); + return !u->IsAlive() && !u->HasGhostAura() && i_searchObj->IsWithinDistInMap(u, i_range); } bool AnyDeadUnitObjectInRangeCheck::operator()(Corpse* u) diff --git a/src/server/game/Grids/Notifiers/GridNotifiers.h b/src/server/game/Grids/Notifiers/GridNotifiers.h index 58a1069a4..42f657f9b 100644 --- a/src/server/game/Grids/Notifiers/GridNotifiers.h +++ b/src/server/game/Grids/Notifiers/GridNotifiers.h @@ -821,7 +821,7 @@ namespace Acore bool operator()(Unit* u) { if (u->IsAlive() && u->IsInCombat() && !i_obj->IsHostileTo(u) && i_obj->IsWithinDistInMap(u, i_range) && - (u->isFeared() || u->IsCharmed() || u->isFrozen() || u->HasUnitState(UNIT_STATE_STUNNED) || u->HasUnitState(UNIT_STATE_CONFUSED))) + (u->HasFearAura() || u->IsCharmed() || u->isFrozen() || u->HasUnitState(UNIT_STATE_STUNNED) || u->HasUnitState(UNIT_STATE_CONFUSED))) { return true; } diff --git a/src/server/game/Handlers/CharacterHandler.cpp b/src/server/game/Handlers/CharacterHandler.cpp index 0fa470eb3..8bb279320 100644 --- a/src/server/game/Handlers/CharacterHandler.cpp +++ b/src/server/game/Handlers/CharacterHandler.cpp @@ -1063,7 +1063,7 @@ void WorldSession::HandlePlayerLoginFromDB(LoginQueryHolder const& holder) // Xinef: fix vendors falling of player vehicle, due to isBeingLoaded checks if (pCurrChar->IsInWorld()) { - if (pCurrChar->GetMountBlockId() && !pCurrChar->HasAuraType(SPELL_AURA_MOUNTED)) + if (pCurrChar->GetMountBlockId() && !pCurrChar->HasMountedAura()) { pCurrChar->CastSpell(pCurrChar, pCurrChar->GetMountBlockId(), true); pCurrChar->SetMountBlockId(0); diff --git a/src/server/game/Handlers/MiscHandler.cpp b/src/server/game/Handlers/MiscHandler.cpp index 9d0cfbe65..b2f4647e4 100644 --- a/src/server/game/Handlers/MiscHandler.cpp +++ b/src/server/game/Handlers/MiscHandler.cpp @@ -63,7 +63,7 @@ void WorldSession::HandleRepopRequestOpcode(WorldPacket& recv_data) if (GetPlayer()->IsAlive() || GetPlayer()->HasPlayerFlag(PLAYER_FLAGS_GHOST)) return; - if (GetPlayer()->HasAuraType(SPELL_AURA_PREVENT_RESURRECTION)) + if (GetPlayer()->HasPreventResurectionAura()) return; // silently return, client should display the error by itself // the world update order is sessions, players, creatures @@ -674,7 +674,7 @@ void WorldSession::HandleResurrectResponseOpcode(WorldPacket& recv_data) recv_data >> status; // Xinef: Prevent resurrect with prevent resurrection aura - if (GetPlayer()->IsAlive() || GetPlayer()->HasAuraType(SPELL_AURA_PREVENT_RESURRECTION)) + if (GetPlayer()->IsAlive() || GetPlayer()->HasPreventResurectionAura()) return; if (status == 0) diff --git a/src/server/game/Handlers/PetHandler.cpp b/src/server/game/Handlers/PetHandler.cpp index 31bbfd07e..d7cf92181 100644 --- a/src/server/game/Handlers/PetHandler.cpp +++ b/src/server/game/Handlers/PetHandler.cpp @@ -209,7 +209,7 @@ void WorldSession::HandlePetActionHelper(Unit* pet, ObjectGuid guid1, uint32 spe case COMMAND_ATTACK: //spellId=1792 //ATTACK { // Can't attack if owner is pacified - if (_player->HasAuraType(SPELL_AURA_MOD_PACIFY)) + if (_player->HasPacifyAura()) { //pet->SendPetCastFail(spellId, SPELL_FAILED_PACIFIED); //TODO: Send proper error message to client @@ -467,7 +467,7 @@ void WorldSession::HandlePetActionHelper(Unit* pet, ObjectGuid guid1, uint32 spe spell->finish(false); delete spell; - if (_player->HasAuraType(SPELL_AURA_MOD_PACIFY)) + if (_player->HasPacifyAura()) return; bool tempspellIsPositive = false; @@ -653,7 +653,7 @@ bool WorldSession::CheckStableMaster(ObjectGuid guid) // spell case or GM if (guid == GetPlayer()->GetGUID()) { - if (!GetPlayer()->IsGameMaster() && !GetPlayer()->HasAuraType(SPELL_AURA_OPEN_STABLE)) + if (!GetPlayer()->IsGameMaster() && !GetPlayer()->HasOpenStableAura()) { LOG_DEBUG("network.opcode", "Player ({}) attempt open stable in cheating way.", guid.ToString()); return false; diff --git a/src/server/game/Handlers/SpellHandler.cpp b/src/server/game/Handlers/SpellHandler.cpp index bfeb29179..3bf376688 100644 --- a/src/server/game/Handlers/SpellHandler.cpp +++ b/src/server/game/Handlers/SpellHandler.cpp @@ -633,7 +633,7 @@ void WorldSession::HandleSelfResOpcode(WorldPacket& /*recvData*/) if (SpellInfo const* spell = sSpellMgr->GetSpellInfo(_player->GetUInt32Value(PLAYER_SELF_RES_SPELL))) { - if (_player->HasAuraType(SPELL_AURA_PREVENT_RESURRECTION) && !spell->HasAttribute(SPELL_ATTR7_BYPASS_NO_RESURRECTION_AURA)) + if (_player->HasPreventResurectionAura() && !spell->HasAttribute(SPELL_ATTR7_BYPASS_NO_RESURRECTION_AURA)) { return; // silent return, client should display error by itself and not send this opcode } @@ -672,7 +672,7 @@ void WorldSession::HandleMirrorImageDataRequest(WorldPacket& recvData) if (!unit) return; - if (!unit->HasAuraType(SPELL_AURA_CLONE_CASTER)) + if (!unit->HasCloneCasterAura()) return; // Get creator of the unit (SPELL_AURA_CLONE_CASTER does not stack) diff --git a/src/server/game/Loot/LootMgr.cpp b/src/server/game/Loot/LootMgr.cpp index e4215ff1d..2f0dd99d9 100644 --- a/src/server/game/Loot/LootMgr.cpp +++ b/src/server/game/Loot/LootMgr.cpp @@ -107,7 +107,7 @@ public: void Verify(LootStore const& lootstore, uint32 id, uint8 group_id) const; void CollectLootIds(LootIdSet& set) const; - void CheckLootRefs(LootTemplateMap const& store, LootIdSet* ref_set) const; + void CheckLootRefs(LootStore const& lootstore, uint32 Id, LootIdSet* ref_set) const; LootStoreItemList* GetExplicitlyChancedItemList() { return &ExplicitlyChanced; } LootStoreItemList* GetEqualChancedItemList() { return &EqualChanced; } void CopyConditions(ConditionList conditions); @@ -277,7 +277,7 @@ uint32 LootStore::LoadAndCollectLootIds(LootIdSet& lootIdSet) void LootStore::CheckLootRefs(LootIdSet* ref_set) const { for (LootTemplateMap::const_iterator ltItr = m_LootTemplates.begin(); ltItr != m_LootTemplates.end(); ++ltItr) - ltItr->second->CheckLootRefs(m_LootTemplates, ref_set); + ltItr->second->CheckLootRefs(*this, ltItr->first, ref_set); } void LootStore::ReportUnusedIds(LootIdSet const& lootIdSet) const @@ -297,6 +297,11 @@ void LootStore::ReportNonExistingId(uint32 lootId, const char* ownerType, uint32 LOG_ERROR("sql.sql", "Table '{}' Entry {} does not exist but it is used by {} {}", GetName(), lootId, ownerType, ownerId); } +void LootStore::ReportInvalidCount(uint32 lootId, const char* ownerType, uint32 ownerId, uint32 itemId, uint8 minCount, uint8 maxCount) const +{ + LOG_ERROR("sql.sql", "Table '{}' Entry {} used by {} entry {} item {} has minCount ( {} ) != maxCount ( {} ) which is not supported for this loot type.", GetName(), lootId, ownerType, ownerId, itemId, minCount, maxCount); +} + // // --------- LootStoreItem --------- // @@ -1502,21 +1507,20 @@ void LootTemplate::LootGroup::Verify(LootStore const& lootstore, uint32 id, uint } } -void LootTemplate::LootGroup::CheckLootRefs(LootTemplateMap const& /*store*/, LootIdSet* ref_set) const +void LootTemplate::LootGroup::CheckLootRefs(LootStore const& lootstore, uint32 Id, LootIdSet* ref_set) const { for (LootStoreItemList::const_iterator ieItr = ExplicitlyChanced.begin(); ieItr != ExplicitlyChanced.end(); ++ieItr) { LootStoreItem* item = *ieItr; if (item->reference) { + if (item->mincount != item->maxcount) + LootTemplates_Reference.ReportInvalidCount(std::abs(item->reference), lootstore.GetName(), Id, item->itemid, item->mincount, item->maxcount); + if (!LootTemplates_Reference.GetLootFor(std::abs(item->reference))) - { - LootTemplates_Reference.ReportNonExistingId(std::abs(item->reference), "Reference", item->itemid); - } + LootTemplates_Reference.ReportNonExistingId(std::abs(item->reference), lootstore.GetName(), item->itemid); else if (ref_set) - { ref_set->erase(std::abs(item->reference)); - } } } @@ -1525,14 +1529,13 @@ void LootTemplate::LootGroup::CheckLootRefs(LootTemplateMap const& /*store*/, Lo LootStoreItem* item = *ieItr; if (item->reference) { + if (item->mincount != item->maxcount) + LootTemplates_Reference.ReportInvalidCount(std::abs(item->reference), lootstore.GetName(), Id, item->itemid, item->mincount, item->maxcount); + if (!LootTemplates_Reference.GetLootFor(std::abs(item->reference))) - { - LootTemplates_Reference.ReportNonExistingId(std::abs(item->reference), "Reference", item->itemid); - } + LootTemplates_Reference.ReportNonExistingId(std::abs(item->reference), lootstore.GetName(), item->itemid); else if (ref_set) - { ref_set->erase(std::abs(item->reference)); - } } } } @@ -1864,27 +1867,26 @@ void LootTemplate::Verify(LootStore const& lootstore, uint32 id) const /// @todo: References validity checks } -void LootTemplate::CheckLootRefs(LootTemplateMap const& store, LootIdSet* ref_set) const +void LootTemplate::CheckLootRefs(LootStore const& lootstore, uint32 Id, LootIdSet* ref_set) const { for (LootStoreItemList::const_iterator ieItr = Entries.begin(); ieItr != Entries.end(); ++ieItr) { LootStoreItem* item = *ieItr; if (item->reference) { + if (item->mincount != item->maxcount) + LootTemplates_Reference.ReportInvalidCount(std::abs(item->reference), lootstore.GetName(), Id, item->itemid, item->mincount, item->maxcount); + if (!LootTemplates_Reference.GetLootFor(std::abs(item->reference))) - { - LootTemplates_Reference.ReportNonExistingId(std::abs(item->reference), "Reference", item->itemid); - } + LootTemplates_Reference.ReportNonExistingId(std::abs(item->reference), lootstore.GetName(), item->itemid); else if (ref_set) - { ref_set->erase(std::abs(item->reference)); - } } } for (LootGroups::const_iterator grItr = Groups.begin(); grItr != Groups.end(); ++grItr) if (LootGroup* group = *grItr) - group->CheckLootRefs(store, ref_set); + group->CheckLootRefs(lootstore, Id, ref_set); } bool LootTemplate::addConditionItem(Condition* cond) diff --git a/src/server/game/Loot/LootMgr.h b/src/server/game/Loot/LootMgr.h index 0ba375960..ebdfc2d3d 100644 --- a/src/server/game/Loot/LootMgr.h +++ b/src/server/game/Loot/LootMgr.h @@ -219,6 +219,7 @@ public: void ReportUnusedIds(LootIdSet const& ids_set) const; void ReportNonExistingId(uint32 lootId) const; void ReportNonExistingId(uint32 lootId, const char* ownerType, uint32 ownerId) const; + void ReportInvalidCount(uint32 lootId, const char* ownerType, uint32 ownerId, uint32 itemId, uint8 minCount, uint8 maxCount) const; [[nodiscard]] bool HaveLootFor(uint32 loot_id) const { return m_LootTemplates.find(loot_id) != m_LootTemplates.end(); } [[nodiscard]] bool HaveQuestLootFor(uint32 loot_id) const; @@ -263,7 +264,7 @@ public: // Checks integrity of the template void Verify(LootStore const& store, uint32 Id) const; - void CheckLootRefs(LootTemplateMap const& store, LootIdSet* ref_set) const; + void CheckLootRefs(LootStore const& lootstore, uint32 Id, LootIdSet* ref_set) const; bool addConditionItem(Condition* cond); [[nodiscard]] bool isReference(uint32 id) const; diff --git a/src/server/game/Server/WorldSession.cpp b/src/server/game/Server/WorldSession.cpp index 458f38c9d..d57a6c3fc 100644 --- a/src/server/game/Server/WorldSession.cpp +++ b/src/server/game/Server/WorldSession.cpp @@ -619,7 +619,7 @@ void WorldSession::LogoutPlayer(bool save) _player->BuildPlayerRepop(); _player->RepopAtGraveyard(); } - else if (_player->HasAuraType(SPELL_AURA_SPIRIT_OF_REDEMPTION)) + else if (_player->HasSpiritOfRedemptionAura()) { // this will kill character by SPELL_AURA_SPIRIT_OF_REDEMPTION _player->RemoveAurasByType(SPELL_AURA_MOD_SHAPESHIFT); @@ -1047,7 +1047,7 @@ void WorldSession::ReadMovementInfo(WorldPacket& data, MovementInfo* mi) MOVEMENTFLAG_ROOT); //! Cannot hover without SPELL_AURA_HOVER - REMOVE_VIOLATING_FLAGS(mi->HasMovementFlag(MOVEMENTFLAG_HOVER) && !GetPlayer()->HasAuraType(SPELL_AURA_HOVER), + REMOVE_VIOLATING_FLAGS(mi->HasMovementFlag(MOVEMENTFLAG_HOVER) && !GetPlayer()->HasHoverAura(), MOVEMENTFLAG_HOVER); //! Cannot ascend and descend at the same time @@ -1072,12 +1072,12 @@ void WorldSession::ReadMovementInfo(WorldPacket& data, MovementInfo* mi) //! Cannot walk on water without SPELL_AURA_WATER_WALK REMOVE_VIOLATING_FLAGS(mi->HasMovementFlag(MOVEMENTFLAG_WATERWALKING) && - !GetPlayer()->HasAuraType(SPELL_AURA_WATER_WALK) && - !GetPlayer()->HasAuraType(SPELL_AURA_GHOST), + !GetPlayer()->HasWaterWalkAura() && + !GetPlayer()->HasGhostAura(), MOVEMENTFLAG_WATERWALKING); //! Cannot feather fall without SPELL_AURA_FEATHER_FALL - REMOVE_VIOLATING_FLAGS(mi->HasMovementFlag(MOVEMENTFLAG_FALLING_SLOW) && !GetPlayer()->HasAuraType(SPELL_AURA_FEATHER_FALL), + REMOVE_VIOLATING_FLAGS(mi->HasMovementFlag(MOVEMENTFLAG_FALLING_SLOW) && !GetPlayer()->HasFeatherFallAura(), MOVEMENTFLAG_FALLING_SLOW); /*! Cannot fly if no fly auras present. Exception is being a GM. @@ -1086,7 +1086,7 @@ void WorldSession::ReadMovementInfo(WorldPacket& data, MovementInfo* mi) e.g. aerial combat. */ - REMOVE_VIOLATING_FLAGS(mi->HasMovementFlag(MOVEMENTFLAG_FLYING | MOVEMENTFLAG_CAN_FLY) && GetSecurity() == SEC_PLAYER && !GetPlayer()->m_mover->HasAuraType(SPELL_AURA_FLY) && !GetPlayer()->m_mover->HasAuraType(SPELL_AURA_MOD_INCREASE_MOUNTED_FLIGHT_SPEED), + REMOVE_VIOLATING_FLAGS(mi->HasMovementFlag(MOVEMENTFLAG_FLYING | MOVEMENTFLAG_CAN_FLY) && GetSecurity() == SEC_PLAYER && !GetPlayer()->m_mover->HasFlyAura() && !GetPlayer()->m_mover->HasIncreaseMountedFlightSpeedAura(), MOVEMENTFLAG_FLYING | MOVEMENTFLAG_CAN_FLY); //! Cannot fly and fall at the same time diff --git a/src/server/game/Spells/Auras/SpellAuraEffects.cpp b/src/server/game/Spells/Auras/SpellAuraEffects.cpp index b25ddd08b..8297d7ca5 100644 --- a/src/server/game/Spells/Auras/SpellAuraEffects.cpp +++ b/src/server/game/Spells/Auras/SpellAuraEffects.cpp @@ -1536,7 +1536,7 @@ void AuraEffect::HandleModInvisibilityDetect(AuraApplication const* aurApp, uint } else { - if (!target->HasAuraType(SPELL_AURA_MOD_INVISIBILITY_DETECT)) + if (!target->HasInvisibilityDetectAura()) target->m_invisibilityDetect.DelFlag(type); target->m_invisibilityDetect.AddValue(type, -GetAmount()); @@ -1565,7 +1565,7 @@ void AuraEffect::HandleModInvisibility(AuraApplication const* aurApp, uint8 mode } else { - if (!target->HasAuraType(SPELL_AURA_MOD_INVISIBILITY)) + if (!target->HasInvisibilityAura()) { // if not have different invisibility auras. // always remove glow vision @@ -1628,7 +1628,7 @@ void AuraEffect::HandleModStealthDetect(AuraApplication const* aurApp, uint8 mod } else { - if (!target->HasAuraType(SPELL_AURA_MOD_STEALTH_DETECT)) + if (!target->HasStealthDetectAura()) target->m_stealthDetect.DelFlag(type); target->m_stealthDetect.AddValue(type, -GetAmount()); @@ -1666,7 +1666,7 @@ void AuraEffect::HandleModStealth(AuraApplication const* aurApp, uint8 mode, boo { target->m_stealth.AddValue(type, -GetAmount()); - if (!target->HasAuraType(SPELL_AURA_MOD_STEALTH)) // if last SPELL_AURA_MOD_STEALTH + if (!target->HasStealthAura()) // if last SPELL_AURA_MOD_STEALTH { target->m_stealth.DelFlag(type); @@ -1723,7 +1723,7 @@ void AuraEffect::HandleDetectAmore(AuraApplication const* aurApp, uint8 mode, bo } else { - if (target->HasAuraType(SPELL_AURA_DETECT_AMORE)) + if (target->HasDetectAmoreAura()) { Unit::AuraEffectList const& amoreAuras = target->GetAuraEffectsByType(SPELL_AURA_DETECT_AMORE); for (AuraEffect const* aurEff : amoreAuras) @@ -1790,7 +1790,7 @@ void AuraEffect::HandleAuraGhost(AuraApplication const* aurApp, uint8 mode, bool } else { - if (target->HasAuraType(SPELL_AURA_GHOST)) + if (target->HasGhostAura()) return; target->ToPlayer()->RemovePlayerFlag(PLAYER_FLAGS_GHOST); @@ -2025,7 +2025,7 @@ void AuraEffect::HandleAuraModShapeshift(AuraApplication const* aurApp, uint8 mo { // reset model id if no other auras present // may happen when aura is applied on linked event on aura removal - if (!target->HasAuraType(SPELL_AURA_MOD_SHAPESHIFT)) + if (!target->HasShapeshiftAura()) { target->SetShapeshiftForm(FORM_NONE); if (target->IsClass(CLASS_DRUID, CLASS_CONTEXT_ABILITY)) @@ -2933,7 +2933,7 @@ void AuraEffect::HandleModUnattackable(AuraApplication const* aurApp, uint8 mode Unit* target = aurApp->GetTarget(); // do not remove unit flag if there are more than this auraEffect of that kind on unit on unit - if (!apply && target->HasAuraType(SPELL_AURA_MOD_UNATTACKABLE)) + if (!apply && target->HasUnattackableAura()) return; target->ApplyModFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE, apply); @@ -3035,7 +3035,7 @@ void AuraEffect::HandleAuraModSilence(AuraApplication const* aurApp, uint8 mode, else { // do not remove unit flag if there are more than this auraEffect of that kind on unit on unit - if (target->HasAuraType(SPELL_AURA_MOD_SILENCE) || target->HasAuraType(SPELL_AURA_MOD_PACIFY_SILENCE)) + if (target->HasSilenceAura() || target->HasPacifySilenceAura()) return; target->RemoveUnitFlag(UNIT_FLAG_SILENCED); @@ -3057,7 +3057,7 @@ void AuraEffect::HandleAuraModPacify(AuraApplication const* aurApp, uint8 mode, else { // do not remove unit flag if there are more than this auraEffect of that kind on unit on unit - if (target->HasAuraType(SPELL_AURA_MOD_PACIFY) || target->HasAuraType(SPELL_AURA_MOD_PACIFY_SILENCE)) + if (target->HasPacifyAura() || target->HasPacifySilenceAura()) return; target->RemoveUnitFlag(UNIT_FLAG_PACIFIED); } @@ -3073,7 +3073,7 @@ void AuraEffect::HandleAuraModPacifyAndSilence(AuraApplication const* aurApp, ui if (!(apply)) { // do not remove unit flag if there are more than this auraEffect of that kind on unit on unit - if (target->HasAuraType(SPELL_AURA_MOD_PACIFY_SILENCE)) + if (target->HasPacifySilenceAura()) return; } HandleAuraModPacify(aurApp, mode, apply); @@ -3094,7 +3094,7 @@ void AuraEffect::HandleAuraAllowOnlyAbility(AuraApplication const* aurApp, uint8 else { // do not remove unit flag if there are more than this auraEffect of that kind on unit on unit - if (target->HasAuraType(SPELL_AURA_ALLOW_ONLY_ABILITY)) + if (target->HasAllowOnlyAbilityAura()) return; target->ToPlayer()->RemovePlayerFlag(PLAYER_ALLOW_ONLY_ABILITY); } @@ -3312,7 +3312,7 @@ void AuraEffect::HandleAuraAllowFlight(AuraApplication const* aurApp, uint8 mode if (!apply) { // do not remove unit flag if there are more than this auraEffect of that kind on unit on unit - if (target->HasAuraType(GetAuraType()) || target->HasAuraType(SPELL_AURA_MOD_INCREASE_MOUNTED_FLIGHT_SPEED)) + if (target->HasAuraType(GetAuraType()) || target->HasIncreaseMountedFlightSpeedAura()) return; } @@ -3526,7 +3526,7 @@ void AuraEffect::HandlePreventFleeing(AuraApplication const* aurApp, uint8 mode, Unit* target = aurApp->GetTarget(); // Since patch 3.0.2 this mechanic no longer affects fear effects. It will ONLY prevent humanoids from fleeing due to low health. - if (target->IsPlayer() || !apply || target->HasAuraType(SPELL_AURA_MOD_FEAR)) + if (target->IsPlayer() || !apply || target->HasFearAura()) return; /// @todo: find a way to cancel fleeing for assistance. /// Currently this will only stop creatures fleeing due to low health that could not find nearby allies to flee towards. @@ -3721,7 +3721,7 @@ void AuraEffect::HandleAuraModIncreaseFlightSpeed(AuraApplication const* aurApp, if (GetAuraType() == SPELL_AURA_MOD_INCREASE_MOUNTED_FLIGHT_SPEED) { // do not remove unit flag if there are more than this auraEffect of that kind on unit on unit - if (mode & AURA_EFFECT_HANDLE_SEND_FOR_CLIENT_MASK && (apply || (!target->HasAuraType(SPELL_AURA_MOD_INCREASE_MOUNTED_FLIGHT_SPEED) && !target->HasAuraType(SPELL_AURA_FLY)))) + if (mode & AURA_EFFECT_HANDLE_SEND_FOR_CLIENT_MASK && (apply || (!target->HasIncreaseMountedFlightSpeedAura() && !target->HasFlyAura()))) { target->SetCanFly(apply); @@ -5767,12 +5767,12 @@ void AuraEffect::HandleAuraDummy(AuraApplication const* aurApp, uint8 mode, bool } break; case 62061: // Festive Holiday Mount - if (target->HasAuraType(SPELL_AURA_MOUNTED)) + if (target->HasMountedAura()) { uint32 creatureEntry = 0; if (apply) { - if (target->HasAuraType(SPELL_AURA_MOD_INCREASE_MOUNTED_FLIGHT_SPEED)) + if (target->HasIncreaseMountedFlightSpeedAura()) creatureEntry = 24906; else creatureEntry = 15665; @@ -5790,7 +5790,7 @@ void AuraEffect::HandleAuraDummy(AuraApplication const* aurApp, uint8 mode, bool } break; case FRESH_BREWFEST_HOPS: // Festive Brewfest Mount - if (target->HasAuraType(SPELL_AURA_MOUNTED) && !target->HasAuraType(SPELL_AURA_MOD_INCREASE_MOUNTED_FLIGHT_SPEED)) + if (target->HasMountedAura() && !target->HasIncreaseMountedFlightSpeedAura()) { uint32 creatureEntry = 0; diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp index 220512047..5f2141b91 100644 --- a/src/server/game/Spells/Spell.cpp +++ b/src/server/game/Spells/Spell.cpp @@ -556,7 +556,11 @@ void SpellCastTargets::OutDebug() const SpellValue::SpellValue(SpellInfo const* proto) { for (uint32 i = 0; i < MAX_SPELL_EFFECTS; ++i) + { EffectBasePoints[i] = proto->Effects[i].BasePoints; + MiscVal[i] = 0; + } + MaxAffectedTargets = proto->MaxAffectedTargets; RadiusMod = 1.0f; AuraStackAmount = 1; @@ -3101,7 +3105,7 @@ SpellMissInfo Spell::DoSpellHitOnUnit(Unit* unit, uint32 effectMask, bool scaleA // Xinef: Do not increase diminishing level for self cast m_diminishGroup = GetDiminishingReturnsGroupForSpell(m_spellInfo, m_triggeredByAuraSpell.spellInfo); // xinef: do not increase diminish level for bosses (eg. Void Reaver silence is never diminished) - if (((m_spellFlags & SPELL_FLAG_REFLECTED) && !(unit->HasAuraType(SPELL_AURA_REFLECT_SPELLS))) || (aura_effmask && m_diminishGroup && unit != m_caster && (!m_caster->IsCreature() || !m_caster->ToCreature()->isWorldBoss()))) + if (((m_spellFlags & SPELL_FLAG_REFLECTED) && !(unit->HasReflectSpellsAura())) || (aura_effmask && m_diminishGroup && unit != m_caster && (!m_caster->IsCreature() || !m_caster->ToCreature()->isWorldBoss()))) { m_diminishLevel = unit->GetDiminishing(m_diminishGroup); DiminishingReturnsType type = GetDiminishingReturnsGroupType(m_diminishGroup); @@ -8458,6 +8462,15 @@ void Spell::SetSpellValue(SpellValueMod mod, int32 value) case SPELLVALUE_FORCED_CRIT_RESULT: m_spellValue->ForcedCritResult = (bool)value; break; + case SPELLVALUE_MISCVALUE0: + m_spellValue->MiscVal[0] = value; + break; + case SPELLVALUE_MISCVALUE1: + m_spellValue->MiscVal[1] = value; + break; + case SPELLVALUE_MISCVALUE2: + m_spellValue->MiscVal[2] = value; + break; } } diff --git a/src/server/game/Spells/Spell.h b/src/server/game/Spells/Spell.h index 45ae57194..4d44af2e4 100644 --- a/src/server/game/Spells/Spell.h +++ b/src/server/game/Spells/Spell.h @@ -218,6 +218,7 @@ struct SpellValue uint8 AuraStackAmount; int32 AuraDuration; bool ForcedCritResult; + uint32 MiscVal[MAX_SPELL_EFFECTS]; }; enum SpellState diff --git a/src/server/game/Spells/SpellDefines.h b/src/server/game/Spells/SpellDefines.h index 4da855467..22caee957 100644 --- a/src/server/game/Spells/SpellDefines.h +++ b/src/server/game/Spells/SpellDefines.h @@ -117,7 +117,10 @@ enum SpellValueMod SPELLVALUE_MAX_TARGETS, SPELLVALUE_AURA_STACK, SPELLVALUE_AURA_DURATION, - SPELLVALUE_FORCED_CRIT_RESULT + SPELLVALUE_FORCED_CRIT_RESULT, + SPELLVALUE_MISCVALUE0, + SPELLVALUE_MISCVALUE1, + SPELLVALUE_MISCVALUE2, }; enum SpellFacingFlags diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp index ace8a1b51..e34918ac1 100644 --- a/src/server/game/Spells/SpellEffects.cpp +++ b/src/server/game/Spells/SpellEffects.cpp @@ -2332,6 +2332,10 @@ void Spell::EffectSummonType(SpellEffIndex effIndex) return; uint32 entry = m_spellInfo->Effects[effIndex].MiscValue; + + if (m_spellValue->MiscVal[effIndex]) + entry = m_spellValue->MiscVal[effIndex]; + if (!entry) return; @@ -3494,7 +3498,7 @@ void Spell::EffectWeaponDmg(SpellEffIndex effIndex) // Glyph of Blood Strike if (m_caster->GetAuraEffect(59332, EFFECT_0)) - if (unitTarget->HasAuraType(SPELL_AURA_MOD_DECREASE_SPEED)) + if (unitTarget->HasDecreaseSpeedAura()) AddPct(totalDamagePercentMod, 20.0f); break; } @@ -4195,7 +4199,7 @@ void Spell::EffectStuck(SpellEffIndex /*effIndex*/) // xinef: if player is dead - teleport to graveyard if (!target->IsAlive()) { - if (target->HasAuraType(SPELL_AURA_PREVENT_RESURRECTION)) + if (target->HasPreventResurectionAura()) return; // xinef: player is in corpse diff --git a/src/server/game/Spells/SpellInfo.cpp b/src/server/game/Spells/SpellInfo.cpp index 2615535ec..9716102a5 100644 --- a/src/server/game/Spells/SpellInfo.cpp +++ b/src/server/game/Spells/SpellInfo.cpp @@ -1775,11 +1775,11 @@ SpellCastResult SpellInfo::CheckTarget(Unit const* caster, WorldObject const* ta return SPELL_FAILED_TARGET_AFFECTING_COMBAT; // only spells with SPELL_ATTR3_ONLY_ON_GHOSTS can target ghosts - if (((IsRequiringDeadTarget() != 0) != unitTarget->HasAuraType(SPELL_AURA_GHOST)) && !(IsDeathPersistent() && IsAllowingDeadTarget())) + if (IsRequiringDeadTarget()) { - if (AttributesEx3 & SPELL_ATTR3_ONLY_ON_GHOSTS) + if (!unitTarget->HasGhostAura()) return SPELL_FAILED_TARGET_NOT_GHOST; - else + if (!IsDeathPersistent() && !IsAllowingDeadTarget()) return SPELL_FAILED_BAD_TARGETS; } @@ -1923,7 +1923,7 @@ SpellCastResult SpellInfo::CheckTarget(Unit const* caster, WorldObject const* ta if (ExcludeTargetAuraSpell && unitTarget->HasAura(sSpellMgr->GetSpellIdForDifficulty(ExcludeTargetAuraSpell, caster))) return SPELL_FAILED_TARGET_AURASTATE; - if (unitTarget->HasAuraType(SPELL_AURA_PREVENT_RESURRECTION) && !HasAttribute(SPELL_ATTR7_BYPASS_NO_RESURRECTION_AURA)) + if (unitTarget->HasPreventResurectionAura() && !HasAttribute(SPELL_ATTR7_BYPASS_NO_RESURRECTION_AURA)) if (HasEffect(SPELL_EFFECT_SELF_RESURRECT) || HasEffect(SPELL_EFFECT_RESURRECT) || HasEffect(SPELL_EFFECT_RESURRECT_NEW)) return SPELL_FAILED_TARGET_CANNOT_BE_RESURRECTED; diff --git a/src/server/game/Spells/SpellInfoCorrections.cpp b/src/server/game/Spells/SpellInfoCorrections.cpp index 36015f5cf..5896ee978 100644 --- a/src/server/game/Spells/SpellInfoCorrections.cpp +++ b/src/server/game/Spells/SpellInfoCorrections.cpp @@ -4856,6 +4856,12 @@ void SpellMgr::LoadSpellInfoCorrections() spellInfo->AuraInterruptFlags &= ~(AURA_INTERRUPT_FLAG_CHANGE_MAP | AURA_INTERRUPT_FLAG_TELEPORTED); }); + // Summon Cyclone + ApplySpellFix({ 43112 }, [](SpellInfo* spellInfo) + { + spellInfo->RequiresSpellFocus = 0; + }); + for (uint32 i = 0; i < GetSpellInfoStoreSize(); ++i) { SpellInfo* spellInfo = mSpellInfoMap[i]; diff --git a/src/server/game/Spells/SpellMgr.cpp b/src/server/game/Spells/SpellMgr.cpp index 7548c552f..781976ccf 100644 --- a/src/server/game/Spells/SpellMgr.cpp +++ b/src/server/game/Spells/SpellMgr.cpp @@ -1111,10 +1111,10 @@ bool SpellArea::IsFitToRequirements(Player const* player, uint32 newZone, uint32 AreaTableEntry const* pArea = sAreaTableStore.LookupEntry(player->GetAreaId()); if (!(pArea && pArea->flags & AREA_FLAG_NO_FLY_ZONE)) return false; - if (!player->HasAuraType(SPELL_AURA_MOD_INCREASE_MOUNTED_FLIGHT_SPEED) && !player->HasAuraType(SPELL_AURA_FLY)) + if (!player->HasIncreaseMountedFlightSpeedAura() && !player->HasFlyAura()) return false; // Xinef: Underbelly elixir - if (player->GetPositionZ() < 637.0f && player->HasAuraType(SPELL_AURA_TRANSFORM)) + if (player->GetPositionZ() < 637.0f && player->HasTransformAura()) return false; break; } @@ -1124,7 +1124,7 @@ bool SpellArea::IsFitToRequirements(Player const* player, uint32 newZone, uint32 return false; Battlefield* Bf = sBattlefieldMgr->GetBattlefieldToZoneId(player->GetZoneId()); - if (!Bf || Bf->CanFlyIn() || (!player->HasAuraType(SPELL_AURA_MOD_INCREASE_MOUNTED_FLIGHT_SPEED) && !player->HasAuraType(SPELL_AURA_FLY))) + if (!Bf || Bf->CanFlyIn() || (!player->HasIncreaseMountedFlightSpeedAura() && !player->HasFlyAura())) return false; break; } diff --git a/src/server/game/World/World.cpp b/src/server/game/World/World.cpp index 3a5e64418..b182abe65 100644 --- a/src/server/game/World/World.cpp +++ b/src/server/game/World/World.cpp @@ -2060,8 +2060,11 @@ void World::SetInitialWorldSettings() LOG_INFO("server.loading", "Initialize Game Time and Timers"); LOG_INFO("server.loading", " "); - LoginDatabase.Execute("INSERT INTO uptime (realmid, starttime, uptime, revision) VALUES ({}, {}, 0, '{}')", - realm.Id.Realm, uint32(GameTime::GetStartTime().count()), GitRevision::GetFullVersion()); // One-time query + LoginDatabasePreparedStatement* stmt = LoginDatabase.GetPreparedStatement(LOGIN_INS_UPTIME); + stmt->SetData(0, realm.Id.Realm); + stmt->SetData(1, uint32(GameTime::GetStartTime().count())); + stmt->SetData(2, GitRevision::GetFullVersion()); + LoginDatabase.Execute(stmt); _timers[WUPDATE_WEATHERS].SetInterval(1 * IN_MILLISECONDS); _timers[WUPDATE_AUCTIONS].SetInterval(MINUTE * IN_MILLISECONDS); diff --git a/src/server/scripts/Commands/cs_reset.cpp b/src/server/scripts/Commands/cs_reset.cpp index 646f8a793..e90da5af4 100644 --- a/src/server/scripts/Commands/cs_reset.cpp +++ b/src/server/scripts/Commands/cs_reset.cpp @@ -117,7 +117,7 @@ public: uint8 powerType = classEntry->powerType; // reset m_form if no aura - if (!player->HasAuraType(SPELL_AURA_MOD_SHAPESHIFT)) + if (!player->HasShapeshiftAura()) player->SetShapeshiftForm(FORM_NONE); player->SetFactionForRace(player->getRace()); diff --git a/src/server/scripts/Commands/cs_server.cpp b/src/server/scripts/Commands/cs_server.cpp index da1daf0d2..c0195d658 100644 --- a/src/server/scripts/Commands/cs_server.cpp +++ b/src/server/scripts/Commands/cs_server.cpp @@ -137,7 +137,7 @@ public: handler->PSendSysMessage("Compiled on: {}", GitRevision::GetHostOSVersion()); - handler->PSendSysMessage("Worldserver listening connections on port %" PRIu16, worldPort); + handler->PSendSysMessage("Worldserver listening connections on port {}", worldPort); handler->PSendSysMessage("{}", dbPortOutput); bool vmapIndoorCheck = sWorld->getBoolConfig(CONFIG_VMAP_INDOOR_CHECK); diff --git a/src/server/scripts/Commands/cs_tele.cpp b/src/server/scripts/Commands/cs_tele.cpp index 259fd89ad..59ce640ea 100644 --- a/src/server/scripts/Commands/cs_tele.cpp +++ b/src/server/scripts/Commands/cs_tele.cpp @@ -72,7 +72,7 @@ public: if (!player) return false; - if (sObjectMgr->GetGameTele(name)) + if (sObjectMgr->GetGameTele(name, true)) { handler->SendErrorMessage(LANG_COMMAND_TP_ALREADYEXIST); return false; diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_broodlord_lashlayer.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_broodlord_lashlayer.cpp index a103a521c..b0164e2cf 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_broodlord_lashlayer.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_broodlord_lashlayer.cpp @@ -259,7 +259,7 @@ class spell_suppression_aura : public SpellScript targets.remove_if([&](WorldObject* target) -> bool { Unit* unit = target->ToUnit(); - return !unit || unit->HasAuraType(SPELL_AURA_MOD_STEALTH); + return !unit || unit->HasStealthAura(); }); } diff --git a/src/server/scripts/EasternKingdoms/Karazhan/instance_karazhan.cpp b/src/server/scripts/EasternKingdoms/Karazhan/instance_karazhan.cpp index 95d0ccd44..ddc653f32 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/instance_karazhan.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/instance_karazhan.cpp @@ -97,15 +97,6 @@ public: { switch (creature->GetEntry()) { - case NPC_KILREK: - m_uiKilrekGUID = creature->GetGUID(); - break; - case NPC_TERESTIAN_ILLHOOF: - m_uiTerestianGUID = creature->GetGUID(); - break; - case NPC_MOROES: - m_uiMoroesGUID = creature->GetGUID(); - break; case NPC_NIGHTBANE: m_uiNightBaneGUID = creature->GetGUID(); break; @@ -369,9 +360,6 @@ public: else go->RemoveGameObjectFlag(GO_FLAG_LOCKED); break; - case GO_GAMESMAN_HALL_DOOR: - m_uiGamesmansDoor = go->GetGUID(); - break; case GO_GAMESMAN_HALL_EXIT_DOOR: m_uiGamesmansExitDoor = go->GetGUID(); break; @@ -464,12 +452,6 @@ public: { switch (data) { - case DATA_KILREK: - return m_uiKilrekGUID; - case DATA_TERESTIAN: - return m_uiTerestianGUID; - case DATA_MOROES: - return m_uiMoroesGUID; case DATA_GO_STAGEDOORLEFT: return m_uiStageDoorLeftGUID; case DATA_GO_STAGEDOORRIGHT: @@ -480,10 +462,6 @@ public: return m_uiLibraryDoor; case DATA_GO_MASSIVE_DOOR: return m_uiMassiveDoor; - case DATA_GO_GAME_DOOR: - return m_uiGamesmansDoor; - case DATA_GO_GAME_EXIT_DOOR: - return m_uiGamesmansExitDoor; case DATA_IMAGE_OF_MEDIVH: return ImageGUID; case DATA_NIGHTBANE: @@ -508,13 +486,9 @@ public: ObjectGuid m_uiCurtainGUID; ObjectGuid m_uiStageDoorLeftGUID; ObjectGuid m_uiStageDoorRightGUID; - ObjectGuid m_uiKilrekGUID; - ObjectGuid m_uiTerestianGUID; - ObjectGuid m_uiMoroesGUID; ObjectGuid m_uiNightBaneGUID; ObjectGuid m_uiLibraryDoor; // Door at Shade of Aran ObjectGuid m_uiMassiveDoor; // Door at Netherspite - ObjectGuid m_uiGamesmansDoor; // Door before Chess ObjectGuid m_uiGamesmansExitDoor; // Door after Chess ObjectGuid ImageGUID; ObjectGuid DustCoveredChest; diff --git a/src/server/scripts/EasternKingdoms/ZulAman/boss_akilzon.cpp b/src/server/scripts/EasternKingdoms/ZulAman/boss_akilzon.cpp index bab5e2602..65c6112b0 100644 --- a/src/server/scripts/EasternKingdoms/ZulAman/boss_akilzon.cpp +++ b/src/server/scripts/EasternKingdoms/ZulAman/boss_akilzon.cpp @@ -53,7 +53,8 @@ enum Says enum Misc { ACTION_STORM_EXPIRE = 1, - GROUP_ELECTRICAL_STORM = 1 + GROUP_ELECTRICAL_STORM = 1, + GROUP_STATIC_DISRUPTION = 2 }; constexpr auto NPC_SOARING_EAGLE = 24858; @@ -79,7 +80,8 @@ struct boss_akilzon : public BossAI { _JustEngagedWith(); - ScheduleTimedEvent(10s, 20s, [&] { + scheduler.Schedule(10s, 20s, GROUP_STATIC_DISRUPTION, [this](TaskContext context) + { Unit* target = SelectTarget(SelectTargetMethod::Random, 1); if (!target) target = me->GetVictim(); @@ -89,7 +91,9 @@ struct boss_akilzon : public BossAI DoCast(target, SPELL_STATIC_DISRUPTION, false); me->SetInFront(me->GetVictim()); } - }, 10s, 18s); + + context.Repeat(10s, 18s); + }); ScheduleTimedEvent(20s, 30s, [&] { if (scheduler.GetNextGroupOcurrence(GROUP_ELECTRICAL_STORM) > 5s) @@ -175,6 +179,7 @@ struct boss_akilzon : public BossAI { if (actionId == ACTION_STORM_EXPIRE) { + scheduler.DelayGroup(GROUP_STATIC_DISRUPTION, 3s); me->m_Events.AddEventAtOffset([&] { SummonEagles(); }, 5s); diff --git a/src/server/scripts/EasternKingdoms/ZulAman/boss_halazzi.cpp b/src/server/scripts/EasternKingdoms/ZulAman/boss_halazzi.cpp index fc15e1e38..436691010 100644 --- a/src/server/scripts/EasternKingdoms/ZulAman/boss_halazzi.cpp +++ b/src/server/scripts/EasternKingdoms/ZulAman/boss_halazzi.cpp @@ -189,15 +189,15 @@ struct boss_halazzi : public BossAI } scheduler.CancelGroup(GROUP_MERGE); - scheduler.Schedule(16s, GROUP_LYNX, [this](TaskContext context) - { - DoCastSelf(SPELL_FRENZY); - context.Repeat(10s, 15s); - }).Schedule(20s, GROUP_LYNX, [this](TaskContext context) + scheduler.Schedule(5s, 15s, GROUP_LYNX, [this](TaskContext context) { Talk(SAY_SABER); DoCastVictim(SPELL_SABER_LASH, true); - context.Repeat(30s); + context.Repeat(); + }).Schedule(20s, 35s, GROUP_LYNX, [this](TaskContext context) + { + DoCastSelf(SPELL_FRENZY); + context.Repeat(); }); break; } diff --git a/src/server/scripts/EasternKingdoms/ZulAman/boss_hexlord.cpp b/src/server/scripts/EasternKingdoms/ZulAman/boss_hexlord.cpp index 6d281274d..ec5ca7e77 100644 --- a/src/server/scripts/EasternKingdoms/ZulAman/boss_hexlord.cpp +++ b/src/server/scripts/EasternKingdoms/ZulAman/boss_hexlord.cpp @@ -134,7 +134,8 @@ enum Misc { MAX_ADD_COUNT = 4, ADDITIONAL_CLASS_SPRIEST = 11, - AURA_SHADOW_FORM = 15473 + AURA_SHADOW_FORM = 15473, + GROUP_CLASS_ABILITY = 1 }; enum AbilityTarget @@ -236,6 +237,12 @@ struct boss_hexlord_malacrass : public BossAI _currentClass = CLASS_NONE; _classAbilityTimer = 10000ms; SpawnAdds(); + ScheduleHealthCheckEvent(80, [&] { + ScheduleTimedEvent(0s, [&] { + DoCastSelf(SPELL_DRAIN_POWER, true); + Talk(SAY_DRAIN_POWER); + }, 30s, 30s); + }); } void SpawnAdds() @@ -257,11 +264,8 @@ struct boss_hexlord_malacrass : public BossAI add->SetInCombatWithZone(); }); - ScheduleTimedEvent(60s, [&]{ - DoCastSelf(SPELL_DRAIN_POWER, true); - Talk(SAY_DRAIN_POWER); - }, 40s, 55s); ScheduleTimedEvent(30s, [&]{ + scheduler.CancelGroup(GROUP_CLASS_ABILITY); DoCastSelf(SPELL_SPIRIT_BOLTS); scheduler.Schedule(10s, [this](TaskContext) { @@ -272,17 +276,15 @@ struct boss_hexlord_malacrass : public BossAI siphonTrigger->SetDisplayId(11686); siphonTrigger->SetUnitFlag(UNIT_FLAG_NOT_SELECTABLE); siphonTrigger->AI()->DoCast(target, SPELL_SIPHON_SOUL, true); - siphonTrigger->GetMotionMaster()->MoveChase(me); + siphonTrigger->GetMotionMaster()->MoveFollow(me, 0.0f, 0.0f); if (Player* player = target->ToPlayer()) _currentClass = player->HasAura(AURA_SHADOW_FORM) ? uint8(ADDITIONAL_CLASS_SPRIEST) : player->getClass(); + + ScheduleClassAbility(); } } }); }, 40s); - ScheduleTimedEvent(_classAbilityTimer, [&]{ - if (_currentClass) - UseAbility(); - }, _classAbilityTimer); } void UseAbility() @@ -317,6 +319,15 @@ struct boss_hexlord_malacrass : public BossAI _classAbilityTimer = PlayerAbility[_currentClass][random].cooldown; } + void ScheduleClassAbility() + { + scheduler.Schedule(_classAbilityTimer, GROUP_CLASS_ABILITY, [this](TaskContext context) + { + UseAbility(); + context.Repeat(_classAbilityTimer); + }); + } + void KilledUnit(Unit* victim) override { BossAI::KilledUnit(victim); diff --git a/src/server/scripts/EasternKingdoms/ZulAman/boss_zuljin.cpp b/src/server/scripts/EasternKingdoms/ZulAman/boss_zuljin.cpp index 852b5ae45..0f6bdb587 100644 --- a/src/server/scripts/EasternKingdoms/ZulAman/boss_zuljin.cpp +++ b/src/server/scripts/EasternKingdoms/ZulAman/boss_zuljin.cpp @@ -15,12 +15,6 @@ * with this program. If not, see . */ -/* ScriptData -SDName: Boss_ZulJin -SD%Complete: 85% -SDComment: -EndScriptData */ - #include "CreatureScript.h" #include "Player.h" #include "ScriptedCreature.h" @@ -184,11 +178,9 @@ struct boss_zuljin : public BossAI }, 20s); ScheduleTimedEvent(1s, [&] { - if (!me->HasSpellCooldown(SPELL_OVERPOWER)) - { - if (me->GetVictim() && me->GetComboPoints()) - DoCastVictim(SPELL_OVERPOWER); - } + if (!me->HasSpellCooldown(SPELL_OVERPOWER) && me->GetVictim() && me->GetComboPoints()) + if (DoCastVictim(SPELL_OVERPOWER) == SPELL_CAST_OK) + me->AddSpellCooldown(SPELL_OVERPOWER, 0, 5000); }, 1s); }); @@ -307,27 +299,19 @@ struct boss_zuljin : public BossAI Talk(Transform[_nextPhase].text); me->m_Events.AddEventAtOffset([&] { - me->SetReactState(REACT_AGGRESSIVE); DoCastSelf(Transform[_nextPhase].spell); + DoResetThreatList(); if (_nextPhase == PHASE_EAGLE) { me->SetCombatMovement(false); DoCastSelf(SPELL_ENERGY_STORM, true); // enemy aura - for (uint8 i = 0; i < 4; ++i) - { - if (Creature* vortex = DoSpawnCreature(CREATURE_FEATHER_VORTEX, 0, 0, 0, 0, TEMPSUMMON_CORPSE_DESPAWN, 0)) - { - vortex->CastSpell(vortex, SPELL_CYCLONE_PASSIVE, true); - vortex->CastSpell(vortex, SPELL_CYCLONE_VISUAL, true); - vortex->SetUnitFlag(UNIT_FLAG_NOT_SELECTABLE); - vortex->SetSpeed(MOVE_RUN, 1.0f); - DoZoneInCombat(vortex); - } - } + DoCastAOE(SPELL_SUMMON_CYCLONE, true); + me->SetFacingTo(me->GetHomePosition().GetOrientation()); } else { + me->SetReactState(REACT_AGGRESSIVE); me->SetCombatMovement(true); me->ResumeChasingVictim(); } @@ -341,7 +325,6 @@ struct boss_zuljin : public BossAI me->SetReactState(REACT_PASSIVE); DoStopAttack(); me->GetMotionMaster()->Clear(); - DoResetThreatList(); me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID, 0); me->RemoveAurasDueToSpell(Transform[NextPhase].unaura); @@ -362,9 +345,18 @@ struct npc_zuljin_vortex : public ScriptedAI { npc_zuljin_vortex(Creature* creature) : ScriptedAI(creature) { } - void Reset() override { } + void Reset() override + { + if (WorldObject* summoner = GetSummoner()) + if (Creature* zuljin = summoner->ToCreature()) + me->SetLevel(zuljin->GetLevel()); - void JustEngagedWith(Unit* /*target*/) override { } + DoCastSelf(SPELL_CYCLONE_PASSIVE, true); + DoCastSelf(SPELL_CYCLONE_VISUAL, true); + me->SetSpeed(MOVE_RUN, 1.0f); + me->SetUnitFlag(UNIT_FLAG_NOT_SELECTABLE); + DoZoneInCombat(); + } void SpellHit(Unit* caster, SpellInfo const* spell) override { @@ -374,6 +366,8 @@ struct npc_zuljin_vortex : public ScriptedAI void UpdateAI(uint32 /*diff*/) override { + UpdateVictim(); + //if the vortex reach the target, it change his target to another player if (me->IsWithinMeleeRange(me->GetVictim())) AttackStart(SelectTarget(SelectTargetMethod::Random, 0)); diff --git a/src/server/scripts/EasternKingdoms/ZulAman/instance_zulaman.cpp b/src/server/scripts/EasternKingdoms/ZulAman/instance_zulaman.cpp index 6d5663877..bfc5ddf2f 100644 --- a/src/server/scripts/EasternKingdoms/ZulAman/instance_zulaman.cpp +++ b/src/server/scripts/EasternKingdoms/ZulAman/instance_zulaman.cpp @@ -59,10 +59,11 @@ DoorData const doorData[] = ObjectData const creatureData[] = { - { NPC_JANALAI, DATA_JANALAI }, - { NPC_SPIRIT_LYNX, DATA_SPIRIT_LYNX }, - { NPC_HARRISON_JONES, DATA_HARRISON_JONES }, - { 0, 0 } + { NPC_JANALAI, DATA_JANALAI }, + { NPC_SPIRIT_LYNX, DATA_SPIRIT_LYNX }, + { NPC_HARRISON_JONES, DATA_HARRISON_JONES }, + { NPC_AMINISHI_LOOKOUT, DATA_LOOKOUT }, + { 0, 0 } }; ObjectData const gameObjectData[] = @@ -113,6 +114,29 @@ public: DoAction(ACTION_START_TIMED_RUN); } + void OnCreatureCreate(Creature* creature) override + { + switch (creature->GetEntry()) + { + // Akil'zon gauntlet + case NPC_AMINISHI_TEMPEST: + if (creature->GetPositionZ() >= 50.0f) // excludes Tempest in Hexlord Malacrass' trash + AkilzonTrash.insert(creature->GetGUID()); + break; + case NPC_AMINISHI_LOOKOUT: + case NPC_AMINISHI_PROTECTOR: + case NPC_EAGLE_TRASH_AGGRO_TRIGGER: + AkilzonTrash.insert(creature->GetGUID()); + break; + case NPC_AMANISHI_WIND_WALKER: + if (creature->GetPositionZ() >= 26.0f) // excludes Wind Walker in first patrol + AkilzonTrash.insert(creature->GetGUID()); + break; + } + + InstanceScript::OnCreatureCreate(creature); + } + void OnGameObjectCreate(GameObject* go) override { if (go->GetEntry() == GO_GATE_HEXLORD) @@ -167,6 +191,61 @@ public: RandVendor[0] = data; else if (type == TYPE_RAND_VENDOR_2) RandVendor[1] = data; + else if (type == TYPE_AKILZON_GAUNTLET) + { + if (data == IN_PROGRESS) + StartAkilzonGauntlet(); + else if (data == NOT_STARTED) + ResetAkilzonGauntlet(); + else if (data == DONE) + _akilzonGauntlet = DONE; + } + } + + void StartAkilzonGauntlet() + { + _akilzonGauntlet = IN_PROGRESS; + for (ObjectGuid const& guid : AkilzonTrash) + if (Creature* creature = instance->GetCreature(guid)) + switch (creature->GetEntry()) + { + case NPC_EAGLE_TRASH_AGGRO_TRIGGER: + creature->DisappearAndDie(); + break; + case NPC_AMINISHI_LOOKOUT: + case NPC_AMINISHI_TEMPEST: + creature->AI()->DoAction(ACTION_START_AKILZON_GAUNTLET); + break; + default: + break; + } + } + + void ResetAkilzonGauntlet() + { + _akilzonGauntlet = NOT_STARTED; + for (ObjectGuid guid : AkilzonTrash) + if (Creature* creature = instance->GetCreature(guid)) + if (!creature->IsAlive()) + creature->Respawn(); + if (Creature* creature = GetCreature(DATA_LOOKOUT)) + if (creature->isMoving()) + creature->Respawn(true); + } + + void OnCreatureEvade(Creature* creature) override + { + switch (creature->GetEntry()) + { + case NPC_AMINISHI_TEMPEST: + case NPC_AMINISHI_PROTECTOR: + case NPC_AMANISHI_WIND_WALKER: + if (AkilzonTrash.contains(creature->GetGUID())) + ResetAkilzonGauntlet(); + break; + default: + break; + } } bool SetBossState(uint32 type, EncounterState state) override @@ -234,6 +313,8 @@ public: return RandVendor[0]; else if (type == TYPE_RAND_VENDOR_2) return RandVendor[1]; + else if (type == TYPE_AKILZON_GAUNTLET) + return _akilzonGauntlet; return 0; } @@ -245,6 +326,8 @@ public: private: uint32 RandVendor[RAND_VENDOR]; + GuidSet AkilzonTrash; + EncounterState _akilzonGauntlet = NOT_STARTED; }; InstanceScript* GetInstanceScript(InstanceMap* map) const override diff --git a/src/server/scripts/EasternKingdoms/ZulAman/zulaman.cpp b/src/server/scripts/EasternKingdoms/ZulAman/zulaman.cpp index da714fb7b..ddb9bc6fd 100644 --- a/src/server/scripts/EasternKingdoms/ZulAman/zulaman.cpp +++ b/src/server/scripts/EasternKingdoms/ZulAman/zulaman.cpp @@ -15,14 +15,15 @@ * with this program. If not, see . */ -#include "zulaman.h" #include "CreatureScript.h" +#include "PassiveAI.h" #include "Player.h" #include "ScriptedCreature.h" #include "ScriptedGossip.h" #include "SpellInfo.h" #include "SpellScript.h" #include "SpellScriptLoader.h" +#include "zulaman.h" /*###### ## npc_forest_frog @@ -530,10 +531,167 @@ class spell_ritual_of_power : public SpellScript } }; +enum AmanishiLookout +{ + PATH_LOOKOUT = 2417500, + SAY_INVADERS = 0, +}; + +struct npc_amanishi_lookout : public NullCreatureAI +{ + npc_amanishi_lookout(Creature* creature) : NullCreatureAI(creature), _instance(creature->GetInstanceScript()) {} + + void Reset() override + { + me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC); + me->RemoveUnitFlag(UNIT_FLAG_RENAME); + } + + void MoveInLineOfSight(Unit* who) override + { + if (!me->IsWithinDist(who, 25.0f, false)) // distance not confirmed + return; + + Player* player = who->GetCharmerOrOwnerPlayerOrPlayerItself(); + if (!player || player->IsGameMaster()) + return; + + if (!who->IsWithinLOSInMap(me)) + return; + + if (_instance->GetData(TYPE_AKILZON_GAUNTLET) == NOT_STARTED) + _instance->SetData(TYPE_AKILZON_GAUNTLET, IN_PROGRESS); + } + + void DoAction(int32 action) override + { + if (action == ACTION_START_AKILZON_GAUNTLET) + { + Talk(SAY_INVADERS); + me->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_PC); + me->SetUnitFlag(UNIT_FLAG_RENAME); + me->GetMotionMaster()->MovePath(PATH_LOOKOUT, false); + } + } + + void MovementInform(uint32 type, uint32 id) override + { + // at boss + if (type == WAYPOINT_MOTION_TYPE && id == 8) // should despawn with waypoint script + me->DespawnOrUnsummon(0s, 0s); + } +private: + InstanceScript* _instance; +}; + +enum AmanishiTempest +{ + ACTION_START_GAUNTLET = 1, + GROUP_AKILZON_GAUNTLET = 1, + SPELL_SUMMON_EAGLE = 43487, + SPELL_SUMMON_WARRIOR = 43486, + SPELL_THUNDERCLAP = 44033, +}; + +struct npc_amanishi_tempest : public ScriptedAI +{ + npc_amanishi_tempest(Creature* creature) : ScriptedAI(creature), _instance(creature->GetInstanceScript()), _summons(creature) { } + + void Reset() override + { + _summons.DespawnAll(); + scheduler.CancelAll(); + scheduler.Schedule(9s, 11s, [this](TaskContext context) + { + DoCastVictim(SPELL_THUNDERCLAP); + context.Repeat(); + }); + } + + void JustSummoned(Creature* summon) override + { + _summons.Summon(summon); + summon->SetNoCallAssistance(true); // prevent eagles from pulling boss + summon->SetInCombatWithZone(); + } + + void JustDied(Unit* killer) override + { + ScriptedAI::JustDied(killer); + _instance->SetData(TYPE_AKILZON_GAUNTLET, DONE); + } + + void DoAction(int32 action) override + { + if (action == ACTION_START_GAUNTLET) + ScheduleEvents(); + } + + void EnterEvadeMode(EvadeReason why) override + { + ScriptedAI::EnterEvadeMode(why); + scheduler.CancelAll(); + } + + void ScheduleEvents() + { + me->SetInCombatWithZone(); + scheduler.Schedule(29s, 53s, GROUP_AKILZON_GAUNTLET, [this](TaskContext context) + { + for (uint8 i = 0; i < 5; ++i) + DoCastAOE(SPELL_SUMMON_EAGLE, true); + context.Repeat(); + }).Schedule(40s, GROUP_AKILZON_GAUNTLET, [this](TaskContext context) + { + for (uint8 i = 0; i < 2; ++i) + DoCastAOE(SPELL_SUMMON_WARRIOR, true); + context.Repeat(); + }); + } + + void UpdateAI(uint32 diff) override + { + scheduler.Update(diff); + if (!me->IsEngaged()) + return; + Unit* victim = me->SelectVictim(); + if (!victim || me->GetExactDist(victim) > me->GetAggroRange(victim)) + return; + ScriptedAI::UpdateAI(diff); + } + +private: + InstanceScript* _instance; + SummonList _summons; +}; + +struct npc_eagle_trash_aggro_trigger : public ScriptedAI +{ + npc_eagle_trash_aggro_trigger(Creature* creature) : ScriptedAI(creature), _instance(creature->GetInstanceScript()) {} + + void MoveInLineOfSight(Unit* who) override + { + if (!me->IsWithinDist(who, 10.0f, false)) // distance not confirmed + return; + + Player* player = who->GetCharmerOrOwnerPlayerOrPlayerItself(); + if (!player || player->IsGameMaster()) + return; + + if (_instance->GetData(TYPE_AKILZON_GAUNTLET) == NOT_STARTED) + _instance->SetData(TYPE_AKILZON_GAUNTLET, IN_PROGRESS); + } +private: + InstanceScript* _instance; +}; + void AddSC_zulaman() { RegisterZulAmanCreatureAI(npc_forest_frog); new npc_zulaman_hostage(); RegisterZulAmanCreatureAI(npc_harrison_jones); RegisterSpellScript(spell_ritual_of_power); + RegisterZulAmanCreatureAI(npc_amanishi_lookout); + RegisterZulAmanCreatureAI(npc_amanishi_tempest); + RegisterZulAmanCreatureAI(npc_eagle_trash_aggro_trigger); } diff --git a/src/server/scripts/EasternKingdoms/ZulAman/zulaman.h b/src/server/scripts/EasternKingdoms/ZulAman/zulaman.h index 247c458bd..f0f86ad0b 100644 --- a/src/server/scripts/EasternKingdoms/ZulAman/zulaman.h +++ b/src/server/scripts/EasternKingdoms/ZulAman/zulaman.h @@ -38,7 +38,9 @@ enum DataTypes DATA_STRANGE_GONG = 10, DATA_MASSIVE_GATE = 11, DATA_HEXLORD_GATE = 12, - DATA_HARRISON_JONES = 13 + DATA_HARRISON_JONES = 13, + TYPE_AKILZON_GAUNTLET = 14, + DATA_LOOKOUT = 15, }; enum CreatureIds @@ -54,7 +56,13 @@ enum CreatureIds NPC_AMANISHI_TRIBESMAN = 23582, NPC_AMANISHI_MEDICINE_MAN = 23581, NPC_AMANISHI_AXE_THROWER = 23542, - NPC_AMANI_HATCHLING = 23598 // 42493 + NPC_AMANI_HATCHLING = 23598, // 42493 + // Akil'zon gauntlet + NPC_AMANISHI_WIND_WALKER = 24179, + NPC_AMINISHI_LOOKOUT = 24175, + NPC_AMINISHI_PROTECTOR = 24180, + NPC_AMINISHI_TEMPEST = 24549, + NPC_EAGLE_TRASH_AGGRO_TRIGGER = 24223 }; enum GameobjectIds @@ -77,6 +85,7 @@ enum MiscIds { DATA_TIMED_RUN = 0, ACTION_START_TIMED_RUN = 0, + ACTION_START_AKILZON_GAUNTLET = 1, GROUP_TIMED_RUN = 1 }; diff --git a/src/server/scripts/Events/hallows_end.cpp b/src/server/scripts/Events/hallows_end.cpp index 15e10a2e2..40af13934 100644 --- a/src/server/scripts/Events/hallows_end.cpp +++ b/src/server/scripts/Events/hallows_end.cpp @@ -725,7 +725,7 @@ struct npc_hallows_end_soh : public ScriptedAI bool checkBurningTriggers = false; for (ObjectGuid const& guid : unitList) if (Unit* c = ObjectAccessor::GetUnit(*me, guid)) - if (c->HasAuraType(SPELL_AURA_PERIODIC_DUMMY)) + if (c->HasPeriodicDummyAura()) { checkBurningTriggers = true; break; @@ -743,7 +743,7 @@ struct npc_hallows_end_soh : public ScriptedAI bool failed = false; for (ObjectGuid const& guid : unitList) if (Unit* c = ObjectAccessor::GetUnit(*me, guid)) - if (c->HasAuraType(SPELL_AURA_PERIODIC_DUMMY)) + if (c->HasPeriodicDummyAura()) { failed = true; break; @@ -791,7 +791,7 @@ struct npc_hallows_end_soh : public ScriptedAI { if (Unit* c = ObjectAccessor::GetUnit(*me, guid)) { - if (!c->HasAuraType(SPELL_AURA_PERIODIC_DUMMY)) + if (!c->HasPeriodicDummyAura()) { tmpList.push_back(c); } diff --git a/src/server/scripts/Events/winter_veil.cpp b/src/server/scripts/Events/winter_veil.cpp index ddd027e1a..6a66ed29e 100644 --- a/src/server/scripts/Events/winter_veil.cpp +++ b/src/server/scripts/Events/winter_veil.cpp @@ -82,7 +82,7 @@ class spell_winter_wondervolt_trap : public SpellScript if (Player* target = GetHitPlayer()) { // check presence - if (target->HasAuraType(SPELL_AURA_TRANSFORM)) + if (target->HasTransformAura()) return; uint32 spellId = 0; diff --git a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp index a63f52bda..64a6de9a3 100644 --- a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp +++ b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp @@ -268,7 +268,7 @@ public: Map::PlayerList const& playerList = me->GetMap()->GetPlayers(); for(Map::PlayerList::const_iterator itr = playerList.begin(); itr != playerList.end(); ++itr) if (Player* player = itr->GetSource()) - if (!player->IsGameMaster() && player->IsAlive() && me->GetHomePosition().GetExactDist2d(player) < 52.0f && me->IsWithinLOSInMap(player) && !player->HasAuraType(SPELL_AURA_MOD_INVISIBILITY) && !player->HasAuraType(SPELL_AURA_MOD_STEALTH) && !player->HasAuraType(SPELL_AURA_MOD_UNATTACKABLE)) + if (!player->IsGameMaster() && player->IsAlive() && me->GetHomePosition().GetExactDist2d(player) < 52.0f && me->IsWithinLOSInMap(player) && !player->HasInvisibilityAura() && !player->HasStealthAura() && !player->HasUnattackableAura()) return true; return false; } 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 936b11db2..0a44e0f9d 100644 --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp @@ -146,7 +146,7 @@ struct boss_faction_championsAI : public ScriptedAI { // check for stun, fear, etc. // for casting, silence, disarm check individually in the ai - if (me->isFeared() || me->isFrozen() || me->HasUnitState(UNIT_STATE_STUNNED) || me->HasUnitState(UNIT_STATE_CONFUSED)) + if (me->HasFearAura() || me->isFrozen() || me->HasUnitState(UNIT_STATE_STUNNED) || me->HasUnitState(UNIT_STATE_CONFUSED)) { if (!IsHeroic()) return true; 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 fb1025276..372081fe0 100644 --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp @@ -831,7 +831,7 @@ class spell_valkyr_touch_aura : public AuraScript Map::PlayerList const& pl = caster->GetMap()->GetPlayers(); for( Map::PlayerList::const_iterator itr = pl.begin(); itr != pl.end(); ++itr ) if (Player* plr = itr->GetSource()) - if (plr->IsAlive() && !plr->HasAura(excludedID) && !plr->HasAuraType(SPELL_AURA_SPIRIT_OF_REDEMPTION)) + if (plr->IsAlive() && !plr->HasAura(excludedID) && !plr->HasSpiritOfRedemptionAura()) { uint32 absorb = 0; uint32 resist = 0; diff --git a/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.cpp b/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.cpp index 6af907e2d..c4b0bdcc7 100644 --- a/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.cpp +++ b/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.cpp @@ -957,7 +957,7 @@ public: events.Update(diff); - if (me->HasUnitState(UNIT_STATE_CASTING) || me->isFeared() || me->IsCharmed() || me->isFrozen() || me->HasUnitState(UNIT_STATE_STUNNED) || me->HasUnitState(UNIT_STATE_CONFUSED)) + if (me->HasUnitState(UNIT_STATE_CASTING) || me->HasFearAura() || me->IsCharmed() || me->isFrozen() || me->HasUnitState(UNIT_STATE_STUNNED) || me->HasUnitState(UNIT_STATE_CONFUSED)) return; switch (events.ExecuteEvent()) @@ -1065,7 +1065,7 @@ public: events.Update(diff); - if (me->HasUnitState(UNIT_STATE_CASTING) || me->isFeared() || me->IsCharmed() || me->isFrozen() || me->HasUnitState(UNIT_STATE_STUNNED) || me->HasUnitState(UNIT_STATE_CONFUSED)) + if (me->HasUnitState(UNIT_STATE_CASTING) || me->HasFearAura() || me->IsCharmed() || me->isFrozen() || me->HasUnitState(UNIT_STATE_STUNNED) || me->HasUnitState(UNIT_STATE_CONFUSED)) return; switch (events.ExecuteEvent()) @@ -1219,7 +1219,7 @@ public: events.Update(diff); - if (me->HasUnitState(UNIT_STATE_CASTING) || me->isFeared() || me->IsCharmed() || me->isFrozen() || me->HasUnitState(UNIT_STATE_STUNNED) || me->HasUnitState(UNIT_STATE_CONFUSED)) + if (me->HasUnitState(UNIT_STATE_CASTING) || me->HasFearAura() || me->IsCharmed() || me->isFrozen() || me->HasUnitState(UNIT_STATE_STUNNED) || me->HasUnitState(UNIT_STATE_CONFUSED)) return; switch (events.ExecuteEvent()) @@ -1324,7 +1324,7 @@ public: events.Update(diff); - if (me->HasUnitState(UNIT_STATE_CASTING) || me->isFeared() || me->IsCharmed() || me->isFrozen() || me->HasUnitState(UNIT_STATE_STUNNED) || me->HasUnitState(UNIT_STATE_CONFUSED)) + if (me->HasUnitState(UNIT_STATE_CASTING) || me->HasFearAura() || me->IsCharmed() || me->isFrozen() || me->HasUnitState(UNIT_STATE_STUNNED) || me->HasUnitState(UNIT_STATE_CONFUSED)) return; switch (events.ExecuteEvent()) @@ -1418,7 +1418,7 @@ public: events.Update(diff); - if (me->HasUnitState(UNIT_STATE_CASTING) || me->isFeared() || me->IsCharmed() || me->isFrozen() || me->HasUnitState(UNIT_STATE_STUNNED) || me->HasUnitState(UNIT_STATE_CONFUSED)) + if (me->HasUnitState(UNIT_STATE_CASTING) || me->HasFearAura() || me->IsCharmed() || me->isFrozen() || me->HasUnitState(UNIT_STATE_STUNNED) || me->HasUnitState(UNIT_STATE_CONFUSED)) return; switch (events.ExecuteEvent()) @@ -2152,7 +2152,7 @@ public: if (!UpdateVictim()) return; - if (me->HasUnitState(UNIT_STATE_CASTING) || me->isFeared() || me->IsCharmed() || me->isFrozen() || me->HasUnitState(UNIT_STATE_STUNNED) || me->HasUnitState(UNIT_STATE_CONFUSED)) + if (me->HasUnitState(UNIT_STATE_CASTING) || me->HasFearAura() || me->IsCharmed() || me->isFrozen() || me->HasUnitState(UNIT_STATE_STUNNED) || me->HasUnitState(UNIT_STATE_CONFUSED)) return; if (!leaped) @@ -2211,7 +2211,7 @@ public: events.Update(diff); - if (me->HasUnitState(UNIT_STATE_CASTING) || me->isFeared() || me->IsCharmed() || me->isFrozen() || me->HasUnitState(UNIT_STATE_STUNNED) || me->HasUnitState(UNIT_STATE_CONFUSED)) + if (me->HasUnitState(UNIT_STATE_CASTING) || me->HasFearAura() || me->IsCharmed() || me->isFrozen() || me->HasUnitState(UNIT_STATE_STUNNED) || me->HasUnitState(UNIT_STATE_CONFUSED)) return; switch (events.ExecuteEvent()) @@ -2280,7 +2280,7 @@ public: events.Update(diff); - if (me->HasUnitState(UNIT_STATE_CASTING) || me->isFeared() || me->IsCharmed() || me->isFrozen() || me->HasUnitState(UNIT_STATE_STUNNED) || me->HasUnitState(UNIT_STATE_CONFUSED)) + if (me->HasUnitState(UNIT_STATE_CASTING) || me->HasFearAura() || me->IsCharmed() || me->isFrozen() || me->HasUnitState(UNIT_STATE_STUNNED) || me->HasUnitState(UNIT_STATE_CONFUSED)) return; switch (events.ExecuteEvent()) diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_lord_marrowgar.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_lord_marrowgar.cpp index f67ad6333..1f26e1b79 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_lord_marrowgar.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_lord_marrowgar.cpp @@ -443,7 +443,7 @@ public: { if (Unit* trapped = summ->GetSummonerUnit()) { - if (!trapped->IsOnVehicle(me) || !trapped->IsAlive() || !me->GetInstanceScript() || me->GetInstanceScript()->GetBossState(DATA_LORD_MARROWGAR) != IN_PROGRESS || trapped->HasAuraType(SPELL_AURA_SPIRIT_OF_REDEMPTION)) + if (!trapped->IsOnVehicle(me) || !trapped->IsAlive() || !me->GetInstanceScript() || me->GetInstanceScript()->GetBossState(DATA_LORD_MARROWGAR) != IN_PROGRESS || trapped->HasSpiritOfRedemptionAura()) { DoAction(-1337); return; diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp index 1bda7c69e..d5107bdbc 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp @@ -260,7 +260,7 @@ public: if (target->HasAura(SPELL_FROST_IMBUED_BLADE)) return false; - if (target->IsImmunedToDamageOrSchool(SPELL_SCHOOL_MASK_ALL) || target->HasAura(SPELL_ICE_TOMB_UNTARGETABLE) || target->HasAura(SPELL_ICE_TOMB_DAMAGE) || target->HasAura(SPELL_TANK_MARKER_AURA) || target->HasAuraType(SPELL_AURA_SPIRIT_OF_REDEMPTION)) + if (target->IsImmunedToDamageOrSchool(SPELL_SCHOOL_MASK_ALL) || target->HasAura(SPELL_ICE_TOMB_UNTARGETABLE) || target->HasAura(SPELL_ICE_TOMB_DAMAGE) || target->HasAura(SPELL_TANK_MARKER_AURA) || target->HasSpiritOfRedemptionAura()) return false; return target != _source->GetVictim(); diff --git a/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.cpp b/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.cpp index 385150c17..fbc510668 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.cpp @@ -1684,7 +1684,7 @@ public: events.Update(diff); - if (me->HasUnitState(UNIT_STATE_CASTING) || me->isFeared() || me->isFrozen() || me->HasUnitState(UNIT_STATE_STUNNED) || me->HasUnitState(UNIT_STATE_CONFUSED) || ((me->GetEntry() == NPC_YMIRJAR_DEATHBRINGER || me->GetEntry() == NPC_YMIRJAR_FROSTBINDER) && me->HasUnitFlag(UNIT_FLAG_SILENCED))) + if (me->HasUnitState(UNIT_STATE_CASTING) || me->HasFearAura() || me->isFrozen() || me->HasUnitState(UNIT_STATE_STUNNED) || me->HasUnitState(UNIT_STATE_CONFUSED) || ((me->GetEntry() == NPC_YMIRJAR_DEATHBRINGER || me->GetEntry() == NPC_YMIRJAR_FROSTBINDER) && me->HasUnitFlag(UNIT_FLAG_SILENCED))) return; switch (events.ExecuteEvent()) diff --git a/src/server/scripts/Northrend/Nexus/Nexus/boss_commander_stoutbeard_kolurg.cpp b/src/server/scripts/Northrend/Nexus/Nexus/boss_commander_stoutbeard_kolurg.cpp index 3e73dda8e..6f7559285 100644 --- a/src/server/scripts/Northrend/Nexus/Nexus/boss_commander_stoutbeard_kolurg.cpp +++ b/src/server/scripts/Northrend/Nexus/Nexus/boss_commander_stoutbeard_kolurg.cpp @@ -27,15 +27,6 @@ enum Spells SPELL_WHIRLWIND = 38618 }; -enum Events -{ - EVENT_BATTLE_SHOUT = 1, - EVENT_FRIGHTENING_SHOUT = 2, - EVENT_WHIRLWIND = 3, - EVENT_COMMANDER_CHARGE = 4, - EVENT_KILL_TALK = 5 -}; - enum Says { SAY_AGGRO = 0, @@ -45,32 +36,40 @@ enum Says struct boss_commander_stoutbeard : public BossAI { - boss_commander_stoutbeard(Creature* creature) : BossAI(creature, DATA_COMMANDER_EVENT) {} - - void Reset() override - { - BossAI::Reset(); - } + boss_commander_stoutbeard(Creature* creature) : BossAI(creature, DATA_COMMANDER_EVENT) { } void JustEngagedWith(Unit* who) override { BossAI::JustEngagedWith(who); Talk(SAY_AGGRO); - events.ScheduleEvent(EVENT_BATTLE_SHOUT, 0ms); - events.ScheduleEvent(EVENT_FRIGHTENING_SHOUT, 10s); - events.ScheduleEvent(EVENT_WHIRLWIND, 15s); - events.ScheduleEvent(EVENT_COMMANDER_CHARGE, 1s); me->RemoveAllAuras(); + + ScheduleTimedEvent(1s, [&] + { + DoCastSelf(SPELL_BATTLE_SHOUT, true); + }, 2min); + + ScheduleTimedEvent(10s, [&] + { + DoCastVictim(SPELL_FRIGHTENING_SHOUT); + }, 15s, 20s); + + ScheduleTimedEvent(15s, [&] + { + DoCastAOE(SPELL_WHIRLWIND); + }, 16s); + + ScheduleTimedEvent(1s, [&] + { + if (Unit* target = SelectTarget(SelectTargetMethod::MinDistance, 0, 25.0f)) + DoCast(target, SPELL_CHARGE); + }, 20s); } void KilledUnit(Unit*) override { - if (events.GetNextEventTime(EVENT_KILL_TALK) == 0) - { - Talk(SAY_KILL); - events.ScheduleEvent(EVENT_KILL_TALK, 6s); - } + Talk(SAY_KILL); } void JustDied(Unit* killer) override @@ -78,39 +77,6 @@ struct boss_commander_stoutbeard : public BossAI BossAI::JustDied(killer); Talk(SAY_DEATH); } - - void UpdateAI(uint32 diff) override - { - if (!UpdateVictim()) - return; - - events.Update(diff); - if (me->HasUnitState(UNIT_STATE_CASTING)) - return; - - switch (events.ExecuteEvent()) - { - case EVENT_BATTLE_SHOUT: - me->CastSpell(me, SPELL_BATTLE_SHOUT, true); - events.ScheduleEvent(EVENT_BATTLE_SHOUT, 2min); - break; - case EVENT_FRIGHTENING_SHOUT: - me->CastSpell(me->GetVictim(), SPELL_FRIGHTENING_SHOUT, false); - events.ScheduleEvent(EVENT_FRIGHTENING_SHOUT, 15s, 20s); - break; - case EVENT_WHIRLWIND: - me->CastSpell(me, SPELL_WHIRLWIND, false); - events.ScheduleEvent(EVENT_WHIRLWIND, 16s); - break; - case EVENT_COMMANDER_CHARGE: - if (Unit* target = SelectTarget(SelectTargetMethod::MinDistance, 0, 25.0f)) - me->CastSpell(target, SPELL_CHARGE, false); - events.ScheduleEvent(EVENT_COMMANDER_CHARGE, 20s); - break; - } - - DoMeleeAttackIfReady(); - } }; void AddSC_boss_commander_stoutbeard() diff --git a/src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_sjonnir.cpp b/src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_sjonnir.cpp index da0e324ca..d51461f6a 100644 --- a/src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_sjonnir.cpp +++ b/src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_sjonnir.cpp @@ -145,8 +145,6 @@ public: if (pInstance->GetData(BOSS_TRIBUNAL_OF_AGES) == DONE) { me->RemoveUnitFlag(UNIT_FLAG_NOT_SELECTABLE); - if (GameObject* doors = me->GetMap()->GetGameObject(pInstance->GetGuidData(GO_SJONNIR_DOOR))) - doors->SetGoState(GO_STATE_ACTIVE); if (GameObject* console = me->GetMap()->GetGameObject( pInstance->GetGuidData(GO_SJONNIR_CONSOLE))) console->SetGoState(GO_STATE_READY); @@ -155,7 +153,7 @@ public: { brann->setDeathState(DeathState::JustDied); brann->Respawn(); - brann->AI()->DoAction(5); + brann->AI()->DoAction(ACTION_SJONNIR_WIPE_START); } } } @@ -183,7 +181,7 @@ public: if (pInstance->GetData(BOSS_TRIBUNAL_OF_AGES) == DONE) if (Creature* brann = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(NPC_BRANN))) - brann->AI()->DoAction(3); + brann->AI()->DoAction(ACTION_START_SJONNIR_FIGHT); } } @@ -220,8 +218,7 @@ public: if (pInstance) if (Creature* brann = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(NPC_BRANN))) { - brann->Yell("What in the name o' Madoran did THAT do? Oh! Wait: I just about got it...", LANG_UNIVERSAL); - brann->PlayDirectSound(14276); + brann->AI()->Talk(SAY_BRANN_SPAWN_OOZE); } } @@ -229,8 +226,7 @@ public: { if (Creature* brann = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(NPC_BRANN))) { - brann->Yell("Ha, that did it! Help's a-comin'! Take this, ya glowin' iron brute!", LANG_UNIVERSAL); - brann->PlayDirectSound(14277); + brann->AI()->Talk(SAY_BRANN_SPAWN_EARTHEN); } SummonPhase = PHASE_SUMMON_FRIENDLY_DWARFES; me->CastSpell(me, SPELL_FRENZY, false); @@ -276,8 +272,7 @@ public: { if (Creature* brann = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(NPC_BRANN))) { - brann->Yell("This is a wee bit trickier that before... Oh, bloody--incomin'!", LANG_UNIVERSAL); - brann->PlayDirectSound(14275); + brann->AI()->Talk(SAY_BRANN_SPAWN_TROGG); } break; @@ -331,7 +326,7 @@ public: sd->SetGoState(GO_STATE_ACTIVE); if (Creature* brann = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(NPC_BRANN))) - brann->AI()->DoAction(4); + brann->AI()->DoAction(ACTION_SJONNIR_DEAD); } } diff --git a/src/server/scripts/Northrend/Ulduar/HallsOfStone/brann_bronzebeard.cpp b/src/server/scripts/Northrend/Ulduar/HallsOfStone/brann_bronzebeard.cpp index 83da96853..8202f673a 100644 --- a/src/server/scripts/Northrend/Ulduar/HallsOfStone/brann_bronzebeard.cpp +++ b/src/server/scripts/Northrend/Ulduar/HallsOfStone/brann_bronzebeard.cpp @@ -28,14 +28,19 @@ #define GOSSIP_ITEM_2 "Let's move Brann, enough of the history lessons!" #define GOSSIP_ITEM_3 "There will be plenty of time for this later Brann, we need to get moving!" #define GOSSIP_ITEM_4 "We're with you Brann! Open it!" -#define TEXT_ID_START 13100 +#define TEXT_ID_START 13100 +#define TEXT_ID_TRIBUNAL_START 13101 +#define TEXT_ID_TRIBUNAL_END 14176 +#define TEXT_ID_SJONNIR_DOOR 13883 +#define TEXT_ID_SJONNIR_END 13308 enum NPCs { NPC_DARK_RUNE_PROTECTOR = 27983, NPC_DARK_RUNE_STORMCALLER = 27984, NPC_IRON_GOLEM_CUSTODIAN = 27985, - NPC_DARK_MATTER_TRIGGER = 28237, + NPC_DARK_MATTER = 28235, + NPC_DARK_MATTER_TARGET = 28237, NPC_SEARING_GAZE_TRIGGER = 28265, }; @@ -44,7 +49,8 @@ enum Misc // BRANN EVENT SPELL_GLARE_OF_THE_TRIBUNAL = 50988, SPELL_GLARE_OF_THE_TRIBUNAL_H = 59870, - SPELL_DARK_MATTER_VISUAL = 51001, + SPELL_DARK_MATTER_VISUAL = 51000, + SPELL_DARK_MATTER_VISUAL_CHANNEL= 51001, SPELL_DARK_MATTER = 51012, SPELL_DARK_MATTER_H = 59868, SPELL_SEARING_GAZE = 51136, @@ -65,46 +71,49 @@ enum Misc SPELL_IGC_GROUND_SMASH = 12734, SPELL_IGC_GROUND_SMASH_H = 59865, - // ACTIONS - ACTION_START_EVENT = 0, - ACTION_START_TRIBUNAL = 1, - ACTION_GO_TO_SJONNIR = 2, - ACTION_START_SJONNIR_FIGHT = 3, - ACTION_SJONNIR_DEAD = 4, - ACTION_ENTEREVADEMODE = 5, - ACTION_WIPE_START = 6, - ACTION_OPEN_DOOR = 7, - // QUESTS QUEST_HALLS_OF_STONE = 13207, }; enum events { - // BRANN - EVENT_KADDRAK_HEAD = 1, - EVENT_MARNAK_HEAD = 2, - EVENT_ABEDNEUM_HEAD = 3, - EVENT_SUMMON_MONSTERS = 4, - EVENT_TRIBUNAL_END = 5, - EVENT_GO_TO_SJONNIR = 6, - EVENT_END = 7, - EVENT_KADDRAK_VISUAL = 8, - EVENT_MARNAK_VISUAL = 9, - EVENT_ABEDNEUM_VISUAL = 10, - EVENT_KADDRAK_SWITCH_EYE = 11, + // BRANN AND TRIBUNAL + EVENT_ABEDNEUM_VISUAL = 1, + EVENT_KADDRAK_VISUAL = 2, + EVENT_MARNAK_VISUAL = 3, + EVENT_ABEDNEUM_HEAD = 4, + EVENT_KADDRAK_HEAD = 5, + EVENT_MARNAK_HEAD = 6, + EVENT_KADDRAK_SWITCH_EYE = 7, + EVENT_SUMMON_MONSTERS = 8, + EVENT_SUMMON_STORMCALLER = 9, + EVENT_SUMMON_CUSTODIAN = 10, + EVENT_DARK_MATTER_START = 11, + EVENT_DARK_MATTER_END = 12, // DARK RUNE PROTECTOR - EVENT_DRP_CHARGE = 15, - EVENT_DRP_CLEAVE = 16, + EVENT_DRP_CHARGE = 13, + EVENT_DRP_CLEAVE = 14, // DARK RUNE STORMCALLER - EVENT_DRS_LIGHTNING_BOLD = 20, - EVENT_DRS_SHADOW_WORD_PAIN = 21, + EVENT_DRS_LIGHTNING_BOLD = 15, + EVENT_DRS_SHADOW_WORD_PAIN = 16, // IRON GOLEM CUSTODIAN - EVENT_IGC_CRUSH = 30, - EVENT_IGC_GROUND_SMASH = 31, + EVENT_IGC_CRUSH = 17, + EVENT_IGC_GROUND_SMASH = 18, + + EVENT_TRIBUNAL_END = 19, + EVENT_BREEN_WAITING = 20, + EVENT_TALK_FACE_CHANGE = 21, + EVENT_SKY_ROOM_FLOOR_CHANGE = 22, + + //BRANN AND SJONNIR + EVENT_GO_TO_SJONNIR = 23, + EVENT_DOOR_OPEN = 24, + EVENT_RESUME_ESCORT = 25, + EVENT_SJONNIR_END_BRANN_YELL = 26, + EVENT_SJONNIR_END_BRANN_LAST_YELL = 27, }; struct Yells @@ -116,46 +125,45 @@ struct Yells static Yells Conversation[] = { - {14259, "Time to get some answers! Let's get this show on the road!", NPC_BRANN, 0}, - {14247, "Take a moment and relish this with me. Soon... all will be revealed. Okay then, let's do this!", NPC_BRANN, 5000}, - {14248, "Now keep an eye out! I'll have this licked in two shakes of a--", NPC_BRANN, 17000}, - {13765, "Warning: life form pattern not recognized. Archival processing terminated. Continued interference will result in targeted response.", NPC_ABEDNEUM, 20500}, - {14249, "Oh, that doesn't sound good. We might have a complication or two...", NPC_BRANN, 32000}, - {13756, "Security breach in progress. Analysis of historical archives transferred to lower-priority queue. Countermeasures engaged.", NPC_KADDRAK, 37000}, - {14250, "Ah, you want to play hardball, eh? That's just my game!", NPC_BRANN, 49000}, - {14251, "Couple more minutes and I'll--", NPC_BRANN, 100000}, + {14248, "Now keep an eye out! I'll have this licked in two shakes of a--", NPC_BRANN, 8000}, + {13765, "Warning: life form pattern not recognized. Archival processing terminated. Continued interference will result in targeted response.", NPC_ABEDNEUM, 13000}, + {14249, "Oh, that doesn't sound good. We might have a complication or two...", NPC_BRANN, 24000}, + {13756, "Security breach in progress. Analysis of historical archives transferred to lower-priority queue. Countermeasures engaged.", NPC_KADDRAK, 30500}, + {14250, "Ah, you want to play hardball, eh? That's just my game!", NPC_BRANN, 42000}, + {14251, "Couple more minutes and I'll--", NPC_BRANN, 102000}, {13761, "Threat index threshold exceeded. Celestial archive aborted. Security level heightened.", NPC_MARNAK, 105000}, - {14252, "Heightened? What's the good news?", NPC_BRANN, 116000}, - {14253, "So that was the problem? Now I'm makin' progress...", NPC_BRANN, 195000}, - {13767, "Critical threat index. Void analysis diverted. Initiating sanitization protocol.", NPC_ABEDNEUM, 205000}, - {14254, "Hang on! Nobody's gonna' be sanitized as long as I have a say in it!", NPC_BRANN, 215000}, - {14255, "Ha! The old magic fingers finally won through! Now let's get down to--", NPC_BRANN, 295000}, - {13768, "Alert: security fail-safes deactivated. Beginning memory purge and... ", NPC_ABEDNEUM, 303000}, - //The fight is completed at this point. - {14256, "Purge? No no no no no.. where did I-- Aha, this should do the trick...", NPC_BRANN, 310000}, - {13769, "System online. Life form pattern recognized. Welcome, Branbronzan. Query?", NPC_ABEDNEUM, 321000}, - {14263, "Query? What do you think I'm here for, tea and biscuits? Spill the beans already!", NPC_BRANN, 329000}, + {14252, "Heightened? What's the good news?", NPC_BRANN, 113000}, + {14253, "So that was the problem? Now I'm makin' progress...", NPC_BRANN, 201000}, + {13767, "Critical threat index. Void analysis diverted. Initiating sanitization protocol.", NPC_ABEDNEUM, 207500 }, + {14254, "Hang on! Nobody's gonna' be sanitized as long as I have a say in it!", NPC_BRANN, 214000}, + {14255, "Ha! The old magic fingers finally won through! Now let's get down to--", NPC_BRANN, 305000}, + {13768, "Alert: security fail-safes deactivated. Beginning memory purge and... ", NPC_ABEDNEUM, 310000}, + //The fight is completed at this point.d + {14256, "Purge? No no no no no.. where did I-- Aha, this should do the trick...", NPC_BRANN, 316000}, + {13769, "System online. Life form pattern recognized. Welcome, Branbronzan. Query?", NPC_ABEDNEUM, 322000}, + {14263, "Query? What do you think I'm here for, tea and biscuits? Spill the beans already!", NPC_BRANN, 330000}, {14264, "Tell me how the dwarves came to be, and start at the beginning!", NPC_BRANN, 336000}, - {13770, "Accessing prehistoric data... retrieved. In the beginning the earthen were created to--", NPC_ABEDNEUM, 342000}, + {13770, "Accessing prehistoric data... retrieved. In the beginning the earthen were created to--", NPC_ABEDNEUM, 341000}, {14265, "Right, right... I know the earthen were made from stone to shape the deep regions o' the world. But what about the anomalies? Matrix non-stabilizin' and what-not?", NPC_BRANN, 348000}, {13771, "Accessing... In the early stages of it's development cycle, Azeroth suffered infection by parasitic necrophotic symbiotes.", NPC_ABEDNEUM, 360000}, - {14266, "Necrowhatinthe-- Speak bloody Common, will ye?", NPC_BRANN, 373500}, - {13772, "Designation: Old Gods. Old Gods rendered all systems, including earthen, defenseless in order to facilitate assimilation. This matrix destabilization has been termed the Curse of Flesh. Effects of destabilization increased over time.", NPC_ABEDNEUM, 380000}, - {14267, "Old Gods, huh? So they zapped the earthen with this Curse of Flesh... and then what?", NPC_BRANN, 399500}, - {13757, "Accessing... Creators arrived to extirpate symbiotic infection. Assessment revealed that Old God infestation had grown malignant. Excising parasites would result in loss of host--", NPC_KADDRAK, 406000}, + {14266, "Necrowhatinthe-- Speak bloody Common, will ye?", NPC_BRANN, 372000}, + {13772, "Designation: Old Gods. Old Gods rendered all systems, including earthen, defenseless in order to facilitate assimilation. This matrix destabilization has been termed the Curse of Flesh. Effects of destabilization increased over time.", NPC_ABEDNEUM, 377000}, + {14267, "Old Gods, huh? So they zapped the earthen with this Curse of Flesh... and then what?", NPC_BRANN, 400000}, + {13757, "Accessing... Creators arrived to extirpate symbiotic infection. Assessment revealed that Old God infestation had grown malignant. Excising parasites would result in loss of host--", NPC_KADDRAK, 407500}, {14268, "If they killed the Old Gods, Azeroth would've been destroyed...", NPC_BRANN, 424000}, - {13758, "Correct. Creators neutralized parasitic threat and contained it within the host. Forge of Wills and other systems were instituted to create new earthen. Safeguards were implemented, and protectors were appointed.", NPC_KADDRAK, 429000}, - {14269, "What protectors?", NPC_BRANN, 449000}, - {13759, "Designations: Aesir and Vanir. Or in the common nomenclature, storm and earth giants. Sentinel Loken designated supreme. Dragon Aspects appointed to monitor evolution on Azeroth.", NPC_KADDRAK, 452000}, - {14270, "Aesir and Vanir... Okay, so the Forge o' Wills started makin' new earthen... but what happened to the old ones?", NPC_BRANN, 471000}, - {13762, "Additional background is relevant to your query: following global combat between Aesir and Vanir--", NPC_MARNAK, 482000}, + {13758, "Correct. Creators neutralized parasitic threat and contained it within the host. Forge of Wills and other systems were instituted to create new earthen. Safeguards were implemented, and protectors were appointed.", NPC_KADDRAK, 431000}, + {14269, "What protectors?", NPC_BRANN, 450000}, + {13759, "Designations: Aesir and Vanir. Or in the common nomenclature, storm and earth giants. Sentinel Loken designated supreme. Dragon Aspects appointed to monitor evolution on Azeroth.", NPC_KADDRAK, 453000}, + {14270, "Aesir and Vanir... Okay, so the Forge o' Wills started makin' new earthen... but what happened to the old ones?", NPC_BRANN, 472000}, + {13762, "Additional background is relevant to your query: following global combat between Aesir and Vanir--", NPC_MARNAK, 483000}, {14271, "Hold everything! The Aesir and Vanir went to war? Why?", NPC_BRANN, 489000}, - {13763, "Unknown. Data suggests that impetus for global combat originated with prime designate Loken, who neutralized all remaining Aesir and Vanir, affecting termination of conflict. Prime designate Loken then initiated stasis of several seed races, including earthen, giants and vrykul, at designated holding facilities.", NPC_MARNAK, 494000}, + {13763, "Unknown. Data suggests that impetus for global combat originated with prime designate Loken, who neutralized all remaining Aesir and Vanir, affecting termination of conflict. Prime designate Loken then initiated stasis of several seed races, including earthen, giants and vrykul, at designated holding facilities.", NPC_MARNAK, 495000}, {14272, "This Loken sounds like a nasty character. Glad we don't have to worry about the likes o' him anymore. So... if I'm understandin' ye right, the original earthen eventually woke up from this stasis, and by that time the destabili-whatever had turned 'em into proper dwarves. Or at least... dwarf ancestors.", NPC_BRANN, 519000}, {13764, "Essentially that is correct.", NPC_MARNAK, 543000}, - {14273, "Well, now... that's a lot to digest. I'm gonna need some time to take all this in. Thank ye.", NPC_BRANN, 549000}, - {13773, "Acknowledged, Branbronzan. Session terminated.", NPC_ABEDNEUM, 559000}, - {0, "I think it's time to see what's behind the door near the entrance. I'm going to sneak over there, nice and quiet. Meet me at the door and I'll get us in.", NPC_BRANN, 574000}, + {14273, "Well, now... that's a lot to digest. I'm gonna need some time to take all this in. Thank ye.", NPC_BRANN, 546000}, + {13773, "Acknowledged, Branbronzan. Session terminated.", NPC_ABEDNEUM, 554000}, + //Go to Sjonnir's door + {0, "I think it's time to see what's behind the door near the entrance. I'm going to sneak over there, nice and quiet. Meet me at the door and I'll get us in.", NPC_BRANN, 561000}, }; class brann_bronzebeard : public CreatureScript @@ -176,24 +184,27 @@ public: { case 1: AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1); + SendGossipMenuFor(player, TEXT_ID_START, creature->GetGUID()); break; case 2: AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2); + SendGossipMenuFor(player, TEXT_ID_TRIBUNAL_START, creature->GetGUID()); break; case 3: AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_3, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3); + SendGossipMenuFor(player, TEXT_ID_TRIBUNAL_END, creature->GetGUID()); break; case 4: - AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_3, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 4); + AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_4, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 4); + SendGossipMenuFor(player, TEXT_ID_SJONNIR_DOOR, creature->GetGUID()); break; case 5: - AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_4, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 5); + SendGossipMenuFor(player, TEXT_ID_SJONNIR_END, creature->GetGUID()); break; default: break; } } - SendGossipMenuFor(player, TEXT_ID_START, creature->GetGUID()); return true; } @@ -204,7 +215,7 @@ public: switch (action) { case GOSSIP_ACTION_INFO_DEF+1: - creature->AI()->DoAction(ACTION_START_EVENT); + creature->AI()->DoAction(ACTION_START_ESCORT_EVENT); CloseGossipMenuFor(player); break; case GOSSIP_ACTION_INFO_DEF+2: @@ -216,10 +227,6 @@ public: CloseGossipMenuFor(player); break; case GOSSIP_ACTION_INFO_DEF+4: - creature->AI()->DoAction(ACTION_WIPE_START); - CloseGossipMenuFor(player); - break; - case GOSSIP_ACTION_INFO_DEF+5: creature->AI()->DoAction(ACTION_OPEN_DOOR); CloseGossipMenuFor(player); break; @@ -246,10 +253,13 @@ public: ObjectGuid AbedneumGUID; ObjectGuid MarnakGUID; ObjectGuid KaddrakGUID; + ObjectGuid darkMatterTargetGUID; + uint8 WaveNum; bool TalkEvent; uint32 SpeechCount, SpeechPause; + bool canExecuteEvents = true; void DespawnHeads() { @@ -257,6 +267,7 @@ public: if ((cr = GetAbedneum())) cr->DespawnOrUnsummon(); if ((cr = GetMarnak())) cr->DespawnOrUnsummon(); if ((cr = GetKaddrak())) cr->DespawnOrUnsummon(); + SwitchHeadVisaul(0x7, false); } @@ -268,15 +279,46 @@ public: GameObject* go = nullptr; if (headMask & 0x1) // Kaddrak if ((go = me->GetMap()->GetGameObject(pInstance->GetGuidData(GO_KADDRAK)))) - activate ? go->SendCustomAnim(0) : go->SetGoState(GO_STATE_READY); - + { + if (activate) + { + go->SendCustomAnim(0); + } + else + { + go->SendCustomAnim(1); + if (go->GetGoState() == GO_STATE_ACTIVE) + go->SetGoState(GO_STATE_READY); + } + } if (headMask & 0x2) // Marnak if ((go = me->GetMap()->GetGameObject(pInstance->GetGuidData(GO_MARNAK)))) - activate ? go->SendCustomAnim(0) : go->SetGoState(GO_STATE_READY); - + { + if (activate) + { + go->SendCustomAnim(0); + } + else + { + go->SendCustomAnim(1); + if (go->GetGoState() == GO_STATE_ACTIVE) + go->SetGoState(GO_STATE_READY); + } + } if (headMask & 0x4) // Abedneum if ((go = me->GetMap()->GetGameObject(pInstance->GetGuidData(GO_ABEDNEUM)))) - activate ? go->SendCustomAnim(0) : go->SetGoState(GO_STATE_READY); + { + if (activate) + { + go->SendCustomAnim(0); + } + else + { + go->SendCustomAnim(1); + if (go->GetGoState() == GO_STATE_ACTIVE) + go->SetGoState(GO_STATE_READY); + } + } } void ResetEvent() @@ -284,6 +326,9 @@ public: if (GameObject* tribunal = ObjectAccessor::GetGameObject(*me, pInstance->GetGuidData(GO_TRIBUNAL_CONSOLE))) tribunal->SetGoState(GO_STATE_READY); + if (GameObject* tribunalSkyFloor = ObjectAccessor::GetGameObject(*me, pInstance->GetGuidData(GO_SKY_FLOOR))) + tribunalSkyFloor->SetGoState(GO_STATE_READY); + events.Reset(); summons.DespawnAll(); DespawnHeads(); @@ -301,7 +346,8 @@ public: Creature* GetMarnak() { return ObjectAccessor::GetCreature(*me, MarnakGUID); } Creature* GetKaddrak() { return ObjectAccessor::GetCreature(*me, KaddrakGUID); } - void MoveInLineOfSight(Unit* /*pWho*/) override { } + bool leftEye = true; + void DamageTaken(Unit*, uint32& damage, DamageEffectType, SpellSchoolMask) override { if (damage && pInstance) @@ -325,7 +371,18 @@ public: pInstance->SetData(DATA_BRANN_ACHIEVEMENT, true); if (pInstance->GetData(BOSS_TRIBUNAL_OF_AGES) == DONE) - pInstance->SetData(BRANN_BRONZEBEARD, (pInstance->GetData(BOSS_SJONNIR) == DONE) ? 5 : 4); + { + pInstance->SetData(BRANN_BRONZEBEARD, 4); + if (GameObject* door = ObjectAccessor::GetGameObject(*me, pInstance->GetGuidData(GO_TRIBUNAL_ACCESS_DOOR))) + door->SetGoState(GO_STATE_ACTIVE); + } + + if (pInstance->GetData(BOSS_SJONNIR) == DONE) + { + pInstance->SetData(BRANN_BRONZEBEARD, 5); + if (GameObject* door = ObjectAccessor::GetGameObject(*me, pInstance->GetGuidData(GO_SJONNIR_DOOR))) + door->SetGoState(GO_STATE_ACTIVE); + } } } @@ -333,58 +390,79 @@ public: { switch (action) { - case ACTION_START_EVENT: + case ACTION_START_ESCORT_EVENT: Start(false, true, ObjectGuid::Empty, 0, true, false); + Talk(SAY_BRANN_ESCORT_START); + me->SetFaction(FACTION_ESCORTEE_N_NEUTRAL_PASSIVE); + me->SetReactState(REACT_AGGRESSIVE); + me->SetRegeneratingHealth(false); break; case ACTION_START_TRIBUNAL: - { - Map::PlayerList const& PlayerList = me->GetMap()->GetPlayers(); - if (!PlayerList.IsEmpty()) - for (Map::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i) - { - me->SetFaction(i->GetSource()->GetFaction()); - break; - } + { + me->SetReactState(REACT_PASSIVE); + Map::PlayerList const& PlayerList = me->GetMap()->GetPlayers(); + if (!PlayerList.IsEmpty()) + for (Map::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i) + { + me->SetFaction(i->GetSource()->GetFaction()); + break; + } - SetEscortPaused(false); - InitializeEvent(); - me->ReplaceAllNpcFlags(UNIT_NPC_FLAG_NONE); - break; - } - case ACTION_GO_TO_SJONNIR: + SetEscortPaused(false); + InitializeEvent(); + me->ReplaceAllNpcFlags(UNIT_NPC_FLAG_NONE); + break; + } + case ACTION_TRIBUNAL_WIPE_START: + SetNextWaypoint(1, false); SetEscortPaused(false); ResetEvent(); me->ReplaceAllNpcFlags(UNIT_NPC_FLAG_NONE); break; + case ACTION_GO_TO_SJONNIR: + Talk(SAY_BRANN_ENTRANCE_MEET); + me->SetFaction(FACTION_FRIENDLY); + me->SetReactState(REACT_PASSIVE); + me->SetRegeneratingHealth(true); + SetEscortPaused(false); + ResetEvent(); + me->ReplaceAllNpcFlags(UNIT_NPC_FLAG_NONE); + DoCast(me, 58506, false); + me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_READY_UNARMED); + me->SendMovementFlagUpdate(); + break; case ACTION_START_SJONNIR_FIGHT: me->SetFaction(FACTION_FRIENDLY); - me->Yell("Don't worry! Ol' Brann's got yer back! Keep that metal monstrosity busy, and I'll see if I can't sweet talk this machine into helping ye!", LANG_UNIVERSAL); - me->PlayDirectSound(14274); SetEscortPaused(false); break; case ACTION_SJONNIR_DEAD: - me->Yell("Loken? That's downright bothersome... We might've neutralized the iron dwarves, but I'd lay odds there's another machine somewhere else churnin' out a whole mess o' these iron vrykul!", LANG_UNIVERSAL); - me->PlayDirectSound(14278); - events.ScheduleEvent(EVENT_END, 14000); + if (pInstance) + pInstance->SetData(BRANN_BRONZEBEARD, 5); + SetEscortPaused(false); + me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_STAND); + me->ReplaceAllNpcFlags(UNIT_NPC_FLAG_GOSSIP | UNIT_NPC_FLAG_QUESTGIVER); + me->SetOrientation(3.132660f); + me->SendMovementFlagUpdate(); + events.ScheduleEvent(EVENT_SJONNIR_END_BRANN_YELL, 10000ms); + events.ScheduleEvent(EVENT_SJONNIR_END_BRANN_LAST_YELL, 22000ms); break; - case ACTION_ENTEREVADEMODE: - RemoveEscortState(0x7); // all states - me->SetHomePosition(1077.41f, 474.16f, 207.8f, 2.70526f); - me->UpdatePosition(1077.41f, 474.16f, 207.9f, 2.70526f, true); - me->StopMovingOnCurrentPos(); + case ACTION_SJONNIR_WIPE_START: Reset(); - break; - case ACTION_WIPE_START: - Start(false, true, ObjectGuid::Empty, 0, true, false); - SetNextWaypoint(20, false); - ResetEvent(); - me->ReplaceAllNpcFlags(UNIT_NPC_FLAG_NONE); + SetNextWaypoint(33, true); + me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_READY_UNARMED); + me->StopMovingOnCurrentPos(); + DoCast(me, 58506, false); + if (GameObject* door = ObjectAccessor::GetGameObject(*me, pInstance->GetGuidData(GO_SJONNIR_DOOR))) + door->SetGoState(GO_STATE_READY); break; case ACTION_OPEN_DOOR: - if (GameObject* door = ObjectAccessor::GetGameObject(*me, pInstance->GetGuidData(GO_SJONNIR_DOOR))) - door->SetGoState(GO_STATE_ACTIVE); + Start(false, true, ObjectGuid::Empty, 0, true, false); + SetNextWaypoint(34, false); SetEscortPaused(false); me->RemoveAura(58506); + me->ReplaceAllNpcFlags(UNIT_NPC_FLAG_NONE); + me->SetWalk(true); + me->SetSpeed(MOVE_WALK, 1.0f); break; } } @@ -400,68 +478,130 @@ public: void UpdateEscortAI(uint32 diff) override { events.Update(diff); - switch (events.ExecuteEvent()) + + if (uint32 eventId = events.ExecuteEvent()) { - case EVENT_KADDRAK_VISUAL: + switch (eventId) + { + case EVENT_KADDRAK_VISUAL: { SwitchHeadVisaul(0x1, true); break; } - case EVENT_MARNAK_VISUAL: + case EVENT_MARNAK_VISUAL: { SwitchHeadVisaul(0x2, true); break; } - case EVENT_ABEDNEUM_VISUAL: + case EVENT_ABEDNEUM_VISUAL: { SwitchHeadVisaul(0x4, true); break; } - case EVENT_KADDRAK_HEAD: // First + case EVENT_KADDRAK_HEAD: // Phase 1 { + if (!canExecuteEvents) + return; if (Creature* kaddrak = GetKaddrak()) { if (Player* plr = SelectTargetFromPlayerList(100.0f)) kaddrak->CastSpell(plr, DUNGEON_MODE(SPELL_GLARE_OF_THE_TRIBUNAL, SPELL_GLARE_OF_THE_TRIBUNAL_H), true); } - events.RescheduleEvent(EVENT_KADDRAK_SWITCH_EYE, 1500ms); - events.Repeat(2s, 4s); + events.RescheduleEvent(EVENT_KADDRAK_SWITCH_EYE, 1000ms); + events.Repeat(1500ms); break; } - case EVENT_KADDRAK_SWITCH_EYE: + case EVENT_KADDRAK_SWITCH_EYE: { + if (!canExecuteEvents) + return; if (Creature* kaddrak = GetKaddrak()) { - if (urand(0, 1)) + if (leftEye) kaddrak->UpdatePosition(927.9f, 330.9f, 219.4f, 2.4f, true); else kaddrak->UpdatePosition(923.7f, 326.9f, 219.5f, 2.1f, true); + leftEye = !leftEye; kaddrak->StopMovingOnCurrentPos(); } break; } - case EVENT_MARNAK_HEAD: // Second + case EVENT_MARNAK_HEAD: // Phase 2 { + if (!canExecuteEvents) + return; + if (Creature* marnak = GetMarnak()) { - if (Creature* cr = me->SummonCreature(NPC_DARK_MATTER_TRIGGER, marnak->GetPositionX(), marnak->GetPositionY(), marnak->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN, 7000)) + if (Creature* cr = me->SummonCreature(NPC_DARK_MATTER_TARGET, 899.843f, 355.271f, 214.301f, 0, TEMPSUMMON_TIMED_DESPAWN, 10000)) { - cr->CastSpell(cr, SPELL_DARK_MATTER_VISUAL, true); - if (Player* plr = SelectTargetFromPlayerList(100.0f)) + cr->SetCanFly(true); + + //right eye + if (Creature* cra = me->SummonCreature(NPC_DARK_MATTER, marnak->GetPositionX(), marnak->GetPositionY(), marnak->GetPositionZ(), 0.0f, TEMPSUMMON_TIMED_DESPAWN, 5000)) + cra->CastSpell(cra, SPELL_DARK_MATTER_VISUAL_CHANNEL, false); + + //left eye + if (Creature* crb = me->SummonCreature(NPC_DARK_MATTER, 891.543f, 359.5252f, 219.338f, 0.0f, TEMPSUMMON_TIMED_DESPAWN, 5000)) + crb->CastSpell(crb, SPELL_DARK_MATTER_VISUAL_CHANNEL, false); + + darkMatterTargetGUID = cr->GetGUID(); + + events.RescheduleEvent(EVENT_DARK_MATTER_START, 5000ms); + } + } + events.Repeat(30s); + break; + } + case EVENT_DARK_MATTER_START: + { + if (Creature* darkMatterTarget = ObjectAccessor::GetCreature(*me, darkMatterTargetGUID)) + { + darkMatterTarget->CastSpell(darkMatterTarget, SPELL_DARK_MATTER_VISUAL, false); + if (Player* plr = SelectTargetFromPlayerList(100.0f)) + { + if (!plr) + return; //no target + + float speed = 10.0f; + float tooFarAwaySpeed = me->GetDistance(plr->GetPositionX(), plr->GetPositionY(), plr->GetPositionZ()) / (5000.0f * 0.001f); + if (speed < tooFarAwaySpeed) + speed = tooFarAwaySpeed; + + darkMatterTarget->MonsterMoveWithSpeed(plr->GetPositionX(), plr->GetPositionY(), plr->GetPositionZ(), speed); + + if (darkMatterTarget->GetDistance(plr) < 15.0f) { - float speed = me->GetDistance(plr->GetPositionX(), plr->GetPositionY(), plr->GetPositionZ()) / (4000.0f * 0.001f); - cr->MonsterMoveWithSpeed(plr->GetPositionX(), plr->GetPositionY(), plr->GetPositionZ(), speed); + events.RescheduleEvent(EVENT_DARK_MATTER_END, 3000ms); + } + else if (darkMatterTarget->GetDistance(plr) < 30.0f) + { + events.RescheduleEvent(EVENT_DARK_MATTER_END, 3500ms); + } + else + { + events.RescheduleEvent(EVENT_DARK_MATTER_END, 4500ms); } } } - events.Repeat(20s); break; } - case EVENT_ABEDNEUM_HEAD: // Third + case EVENT_DARK_MATTER_END: { + if (Creature* darkMatterTarget = ObjectAccessor::GetCreature(*me, darkMatterTargetGUID)) + { + darkMatterTarget->CastSpell(darkMatterTarget, darkMatterTarget->GetMap()->IsHeroic() ? SPELL_DARK_MATTER_H : SPELL_DARK_MATTER, true); + darkMatterTarget->DespawnOrUnsummon(500); + } + break; + } + case EVENT_ABEDNEUM_HEAD: // Phase 3 + { + if (!canExecuteEvents) + return; if (GetAbedneum()) { Player* plr = SelectTargetFromPlayerList(100.0f); @@ -475,38 +615,50 @@ public: cr->CastSpell(cr, DUNGEON_MODE(SPELL_SEARING_GAZE, SPELL_SEARING_GAZE_H), true); } } - events.Repeat(30s); + events.Repeat(15s); break; } - case EVENT_SUMMON_MONSTERS: + case EVENT_SUMMON_MONSTERS: { - uint32 Time = 45000 - (2500 * WaveNum); - SummonCreatures(NPC_DARK_RUNE_PROTECTOR, 3); + if (!canExecuteEvents) + return; + uint32 Time = 40000 - (2500 * WaveNum); + SummonCreatures(NPC_DARK_RUNE_PROTECTOR, 3, 0); if (WaveNum > 2) - SummonCreatures(NPC_DARK_RUNE_STORMCALLER, 2); + events.ScheduleEvent(EVENT_SUMMON_STORMCALLER, urand(10 - WaveNum, 15 - WaveNum) * 1000); if (WaveNum > 5) - SummonCreatures(NPC_IRON_GOLEM_CUSTODIAN, 1); + events.ScheduleEvent(EVENT_SUMMON_CUSTODIAN, urand(10 - WaveNum, 15 - WaveNum) * 1000); WaveNum++; events.RepeatEvent(Time); break; } - case EVENT_TRIBUNAL_END: + case EVENT_SUMMON_STORMCALLER: { + if (!canExecuteEvents) + return; + + SummonCreatures(NPC_DARK_RUNE_STORMCALLER, 2, 1); + + break; + } + case EVENT_SUMMON_CUSTODIAN: + { + if (!canExecuteEvents) + return; + + SummonCreatures(NPC_IRON_GOLEM_CUSTODIAN, 1, 1); + + break; + } + case EVENT_TRIBUNAL_END: + { + canExecuteEvents = false; // Has to be here! events.Reset(); //DespawnHeads(); summons.DespawnAll(); - if (pInstance) - { - pInstance->SetData(BOSS_TRIBUNAL_OF_AGES, DONE); - pInstance->SetData(BRANN_BRONZEBEARD, 3); - me->CastSpell(me, 59046, true); // credit - } - - me->ReplaceAllNpcFlags(UNIT_NPC_FLAG_GOSSIP | UNIT_NPC_FLAG_QUESTGIVER); - // Spawn Chest and quest credit if (Player* plr = SelectTargetFromPlayerList(200.0f)) { @@ -520,31 +672,89 @@ public: plr->GroupEventHappens(QUEST_HALLS_OF_STONE, me); } - events.ScheduleEvent(EVENT_GO_TO_SJONNIR, 279s); + events.ScheduleEvent(EVENT_BREEN_WAITING, 11s); + events.ScheduleEvent(EVENT_SKY_ROOM_FLOOR_CHANGE, 92s); + events.ScheduleEvent(EVENT_TALK_FACE_CHANGE, 97s); //kaddrak speaks + events.ScheduleEvent(EVENT_SKY_ROOM_FLOOR_CHANGE, 168s); + events.ScheduleEvent(EVENT_TALK_FACE_CHANGE, 173s); //marnak speaks + events.ScheduleEvent(EVENT_SKY_ROOM_FLOOR_CHANGE, 239s); + events.ScheduleEvent(EVENT_TALK_FACE_CHANGE, 244s); //abedneum speaks + events.ScheduleEvent(EVENT_GO_TO_SJONNIR, 251s); + events.ScheduleEvent(EVENT_SKY_ROOM_FLOOR_CHANGE, 253s); break; } - case EVENT_GO_TO_SJONNIR: + case EVENT_BREEN_WAITING: { - if (GameObject* door = ObjectAccessor::GetGameObject(*me, pInstance->GetGuidData(GO_SJONNIR_DOOR))) - door->SetGoState(GO_STATE_ACTIVE); SetEscortPaused(false); - ResetEvent(); - me->ReplaceAllNpcFlags(UNIT_NPC_FLAG_NONE); - break; - } - case EVENT_END: - { - events.Reset(); if (pInstance) - pInstance->SetData(BRANN_BRONZEBEARD, 6); + { + pInstance->SetData(BOSS_TRIBUNAL_OF_AGES, DONE); + pInstance->SetData(BRANN_BRONZEBEARD, 3); + me->CastSpell(me, 59046, true); // credit + } me->ReplaceAllNpcFlags(UNIT_NPC_FLAG_GOSSIP | UNIT_NPC_FLAG_QUESTGIVER); - me->Yell("I'll use the forge to make batches o' earthen to stand guard... But our greatest challenge still remains: find and stop Loken!", LANG_UNIVERSAL); - me->PlayDirectSound(14279); + me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_STAND); + me->SendMovementFlagUpdate(); + break; } + case EVENT_TALK_FACE_CHANGE: + { + if (pInstance) + pInstance->SetData(BOSS_TRIBUNAL_OF_AGES, DONE); + break; + } + case EVENT_SKY_ROOM_FLOOR_CHANGE: + { + if (pInstance) + pInstance->SetData(BOSS_TRIBUNAL_OF_AGES, SPECIAL); + break; + } + case EVENT_GO_TO_SJONNIR: + { + me->AI()->DoAction(ACTION_GO_TO_SJONNIR); + break; + } + case EVENT_DOOR_OPEN: + { + me->ReplaceAllNpcFlags(UNIT_NPC_FLAG_NONE); + me->AddUnitMovementFlag(MOVEMENTFLAG_NONE); + + if (pInstance) + { + if (GameObject* door = ObjectAccessor::GetGameObject(*me, pInstance->GetGuidData(GO_SJONNIR_DOOR))) + { + door->SetGoState(GO_STATE_ACTIVE); + me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_READY_UNARMED); + me->SendMovementFlagUpdate(); + } + } + + break; + } + case EVENT_RESUME_ESCORT: + { + SetEscortPaused(false); + break; + } + case EVENT_SJONNIR_END_BRANN_YELL: + { + Talk(SAY_BRANN_VICTORY_SJONNIR_1); + break; + } + case EVENT_SJONNIR_END_BRANN_LAST_YELL: + { + events.Reset(); + SetEscortPaused(false); + Talk(SAY_BRANN_VICTORY_SJONNIR_2); + break; + } + } } + npc_escortAI::UpdateEscortAI(diff); + if (TalkEvent) { SpeechPause += diff; @@ -581,11 +791,16 @@ public: } } - void SummonCreatures(uint32 entry, uint8 count) + void SummonCreatures(uint32 entry, uint8 count, uint8 pos) { + Creature* cr; for (int i = 0; i < count; ++i) { - Creature* cr = me->SummonCreature(entry, 946.5971f + urand(0, 6), 383.5330f + urand(0, 6), 205.9943f, 0, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 20000); + if (pos == 0) + cr = me->SummonCreature(entry, 943.088f + urand(0, 5), 401.378f + urand(0, 5), 206.078f, 3.8f, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 20000); //left + else + cr = me->SummonCreature(entry, 964.302f + urand(0, 4), 378.942f + urand(0, 4), 206.078f, 3.85f, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 20000); //right + if (cr) { cr->AI()->AttackStart(me); @@ -602,9 +817,18 @@ public: { if (Creature* brann = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(NPC_BRANN))) { + brann->HandleEmoteCommand(EMOTE_STATE_DEAD); brann->setDeathState(DeathState::JustDied); brann->Respawn(); - brann->AI()->DoAction(5); + if (pInstance->GetData(BOSS_TRIBUNAL_OF_AGES) != DONE) + { + brann->AI()->DoAction(ACTION_TRIBUNAL_WIPE_START); + pInstance->SetData(BOSS_TRIBUNAL_OF_AGES, FAIL); + } + if (pInstance->GetData(BOSS_TRIBUNAL_OF_AGES) == DONE) + { + brann->AI()->DoAction(ACTION_SJONNIR_WIPE_START); + } } if (pInstance->GetData(BOSS_TRIBUNAL_OF_AGES) != DONE) pInstance->SetData(BOSS_TRIBUNAL_OF_AGES, NOT_STARTED); @@ -635,16 +859,18 @@ void brann_bronzebeard::brann_bronzebeardAI::InitializeEvent() TalkEvent = true; events.Reset(); - events.ScheduleEvent(EVENT_SUMMON_MONSTERS, 21s); - events.ScheduleEvent(EVENT_KADDRAK_HEAD, 20s); - events.ScheduleEvent(EVENT_MARNAK_HEAD, 105s); - events.ScheduleEvent(EVENT_ABEDNEUM_HEAD, 205s); - events.ScheduleEvent(EVENT_TRIBUNAL_END, 315s); // Viusals - events.ScheduleEvent(EVENT_KADDRAK_VISUAL, 20s); + events.ScheduleEvent(EVENT_KADDRAK_VISUAL, 30s); events.ScheduleEvent(EVENT_MARNAK_VISUAL, 105s); - events.ScheduleEvent(EVENT_ABEDNEUM_VISUAL, 205s); + events.ScheduleEvent(EVENT_ABEDNEUM_VISUAL, 207s); + + // Fight + events.ScheduleEvent(EVENT_SUMMON_MONSTERS, 47s); + events.ScheduleEvent(EVENT_KADDRAK_HEAD, 47s); + events.ScheduleEvent(EVENT_MARNAK_HEAD, 115s); + events.ScheduleEvent(EVENT_ABEDNEUM_HEAD, 217s); + events.ScheduleEvent(EVENT_TRIBUNAL_END, 310s); } void brann_bronzebeard::brann_bronzebeardAI::WaypointReached(uint32 id) @@ -652,46 +878,89 @@ void brann_bronzebeard::brann_bronzebeardAI::WaypointReached(uint32 id) switch (id) { // Stop before stairs and ask to start - case 9: + case 14: SetEscortPaused(true); - me->ReplaceAllNpcFlags(UNIT_NPC_FLAG_GOSSIP | UNIT_NPC_FLAG_QUESTGIVER); if (pInstance) + { + me->HandleEmoteCommand(EMOTE_ONESHOT_CHEER); + Talk(SAY_BRANN_EVENT_INTRO_1); + me->ReplaceAllNpcFlags(UNIT_NPC_FLAG_GOSSIP | UNIT_NPC_FLAG_QUESTGIVER); pInstance->SetData(BRANN_BRONZEBEARD, 2); - + } break; // In front of Console - case 11: + case 16: SetEscortPaused(true); if (pInstance) { pInstance->SetData(BOSS_TRIBUNAL_OF_AGES, IN_PROGRESS); + me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_USE_STANDING); if (GameObject* tribunal = ObjectAccessor::GetGameObject(*me, pInstance->GetGuidData(GO_TRIBUNAL_CONSOLE))) tribunal->SetGoState(GO_STATE_ACTIVE); } break; - // Before Sjonnir's door - case 27: + //Tribunal end, stand in the middle of the sky room + case 17: SetEscortPaused(true); + me->SetOrientation(3.91672f); + me->SendMovementFlagUpdate(); + break; + //Run to the skyroom door and then teleport before Sjonnir's door + case 18: + SetEscortPaused(true); + SetNextWaypoint(33, false); if (pInstance) { - pInstance->SetData(BRANN_BRONZEBEARD, 5); + pInstance->SetData(BRANN_BRONZEBEARD, 4); me->ReplaceAllNpcFlags(UNIT_NPC_FLAG_GOSSIP | UNIT_NPC_FLAG_QUESTGIVER); if (Creature* cr = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(NPC_SJONNIR))) cr->RemoveUnitFlag(UNIT_FLAG_NOT_SELECTABLE); me->SetOrientation(3.132660f); DoCast(me, 58506, false); + me->SendMovementFlagUpdate(); + me->SetHomePosition(1199.8f, 667.138f, 196.242f, 3.12967f); + me->Relocate(1199.8f, 667.138f, 196.242f, 3.12967f); } break; - case 28: + // Before Sjonnir's door + case 33: SetEscortPaused(true); break; - case 29: + //Walk to the door, run after opening it + case 34: + SetEscortPaused(true); + me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_USE_STANDING); + me->SendMovementFlagUpdate(); + events.ScheduleEvent(EVENT_DOOR_OPEN, 1500); + me->SetWalk(false); + me->SetSpeed(MOVE_RUN, 1.0f, false); + events.ScheduleEvent(EVENT_RESUME_ESCORT, 3500); + break; + //Brann stops in front of Sjonnir and awaits the start of the battle. + case 36: + SetEscortPaused(true); + me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_READY_UNARMED); + me->SendMovementFlagUpdate(); + Talk(SAY_BRANN_FRONT_OF_SJONNIR); + break; + //Brann steps back and uses the Sjonnir console. + case 38: SetEscortPaused(true); me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_USE_STANDING); if (pInstance) + { if (GameObject* console = ObjectAccessor::GetGameObject(*me, pInstance->GetGuidData(GO_SJONNIR_CONSOLE))) console->SetGoState(GO_STATE_ACTIVE); - + } + break; + //After Sjonnir's death, Brann steps away from the console and talk. + case 39: + SetEscortPaused(true); + break; + //Brann steps back and uses the Sjonnir console. + case 40: + SetEscortPaused(true); + me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_USE_STANDING); break; } } @@ -864,9 +1133,9 @@ public: }; }; -class spell_hos_dark_matter_aura : public AuraScript +class spell_hos_dark_matter : public AuraScript { - PrepareAuraScript(spell_hos_dark_matter_aura); + PrepareAuraScript(spell_hos_dark_matter); bool Validate(SpellInfo const* /*spellInfo*/) override { @@ -881,7 +1150,23 @@ class spell_hos_dark_matter_aura : public AuraScript void Register() override { - OnEffectRemove += AuraEffectRemoveFn(spell_hos_dark_matter_aura::HandleEffectRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL); + OnEffectRemove += AuraEffectRemoveFn(spell_hos_dark_matter::HandleEffectRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL); + } +}; + +class spell_hos_dark_matter_size : public SpellScript +{ + PrepareSpellScript(spell_hos_dark_matter_size); + + void HandleApplyTouch() + { + if (Unit* target = GetHitUnit()) + target->SetObjectScale(0.35f); + } + + void Register() override + { + AfterHit += SpellHitFn(spell_hos_dark_matter_size::HandleApplyTouch); } }; @@ -891,5 +1176,6 @@ void AddSC_brann_bronzebeard() new dark_rune_protectors(); new dark_rune_stormcaller(); new iron_golem_custodian(); - RegisterSpellScript(spell_hos_dark_matter_aura); + RegisterSpellScript(spell_hos_dark_matter); + RegisterSpellScript(spell_hos_dark_matter_size); } 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 f027fa014..c9188b35e 100644 --- a/src/server/scripts/Northrend/Ulduar/HallsOfStone/halls_of_stone.h +++ b/src/server/scripts/Northrend/Ulduar/HallsOfStone/halls_of_stone.h @@ -24,6 +24,23 @@ #define HallsOfStoneScriptName "instance_halls_of_stone" +enum Texts +{ + SAY_BRANN_KILL = 0, + SAY_BRANN_LOW_HEALTH = 1, + SAY_BRANN_DEATH = 2, + SAY_BRANN_PLAYER_DEATH = 3, + SAY_BRANN_ESCORT_START = 4, + SAY_BRANN_FRONT_OF_SJONNIR = 5, + SAY_BRANN_SPAWN_TROGG = 6, + SAY_BRANN_SPAWN_OOZE = 7, + SAY_BRANN_SPAWN_EARTHEN = 8, + SAY_BRANN_EVENT_INTRO_1 = 9, + SAY_BRANN_VICTORY_SJONNIR_1 = 30, + SAY_BRANN_VICTORY_SJONNIR_2 = 31, + SAY_BRANN_ENTRANCE_MEET = 32, +}; + enum Encounter { BOSS_KRYSTALLUS = 0, @@ -61,6 +78,15 @@ enum npcs NPC_ABEDNEUM = 30899, NPC_SJONNIR = 27978, NPC_BRANN = 28070, + + ACTION_START_ESCORT_EVENT = 0, + ACTION_START_TRIBUNAL = 1, + ACTION_TRIBUNAL_WIPE_START = 2, + ACTION_GO_TO_SJONNIR = 3, + ACTION_OPEN_DOOR = 4, + ACTION_START_SJONNIR_FIGHT = 5, + ACTION_SJONNIR_DEAD = 6, + ACTION_SJONNIR_WIPE_START = 7, }; template 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 619d5e724..968d95126 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 @@ -157,6 +157,8 @@ public: return goMarnakGUID; case GO_ABEDNEUM: return goAbedneumGUID; + case GO_SKY_FLOOR: + return goSkyRoomFloorGUID; case NPC_SJONNIR: return SjonnirGUID; @@ -210,23 +212,91 @@ public: if (GameObject* tribunalDoor = instance->GetGameObject(goTribunalDoorGUID)) tribunalDoor->SetGoState(GO_STATE_ACTIVE); + if (type == BOSS_TRIBUNAL_OF_AGES && data == SPECIAL) + { + if (GameObject* pSkyRoomFloor = instance->GetGameObject(goSkyRoomFloorGUID)) + pSkyRoomFloor->SetGoState(GO_STATE_READY); + } + if (type == BOSS_TRIBUNAL_OF_AGES && data == DONE) { - if (GameObject* pA = instance->GetGameObject(goAbedneumGUID)) - pA->SetGoState(GO_STATE_ACTIVE); - if (GameObject* pF = instance->GetGameObject(goSkyRoomFloorGUID)) - pF->SetGoState(GO_STATE_ACTIVE); + GameObject* pAbedneum = instance->GetGameObject(goAbedneumGUID); + GameObject* pKaddrak = instance->GetGameObject(goKaddrakGUID); + GameObject* pMarnak = instance->GetGameObject(goMarnakGUID); + + GameObject* pSkyRoomFloor = instance->GetGameObject(goSkyRoomFloorGUID); + bool skyRoomDown = false; + + if (pAbedneum && pKaddrak && pMarnak && pSkyRoomFloor) + { + if (pAbedneum->GetGoState() != GO_STATE_ACTIVE) + { + if (pKaddrak->GetGoState() != GO_STATE_ACTIVE && pMarnak->GetGoState() != GO_STATE_ACTIVE) + { + //Abedneum first talk + pAbedneum->SetGoState(GO_STATE_ACTIVE); + } + else if (pMarnak->GetGoState() == GO_STATE_ACTIVE) + { + //Abedneum second talk + pAbedneum->SetGoState(GO_STATE_ACTIVE); + pMarnak->SetGoState(GO_STATE_READY); + pSkyRoomFloor->SetGoState(GO_STATE_READY); + skyRoomDown = true; + } + else + { + //Marnak talk + if (pKaddrak->GetGoState() == GO_STATE_ACTIVE) + { + pMarnak->SetGoState(GO_STATE_ACTIVE); + pKaddrak->SetGoState(GO_STATE_READY); + pSkyRoomFloor->SetGoState(GO_STATE_READY); + } + } + } + else + { + //Kaddrak talk + if (pKaddrak->GetGoState() != GO_STATE_ACTIVE) + { + pAbedneum->SetGoState(GO_STATE_READY); + pKaddrak->SetGoState(GO_STATE_ACTIVE); + pSkyRoomFloor->SetGoState(GO_STATE_READY); + } + } + + if (!skyRoomDown) + pSkyRoomFloor->SetGoState(GO_STATE_ACTIVE); + } // Make sjonnir attackable - if (Creature* cr = instance->GetCreature(SjonnirGUID)) - cr->RemoveUnitFlag(UNIT_FLAG_NOT_SELECTABLE); + if (Creature* cSjonnir = instance->GetCreature(SjonnirGUID)) + cSjonnir->RemoveUnitFlag(UNIT_FLAG_NOT_SELECTABLE); } + if (type == BOSS_TRIBUNAL_OF_AGES && data == NOT_STARTED) { - if (GameObject* pA = instance->GetGameObject(goAbedneumGUID)) - pA->SetGoState(GO_STATE_READY); - if (GameObject* pF = instance->GetGameObject(goSkyRoomFloorGUID)) - pF->SetGoState(GO_STATE_READY); + if (GameObject* pAbedneum = instance->GetGameObject(goAbedneumGUID)) + pAbedneum->SetGoState(GO_STATE_READY); + if (GameObject* pKaddrak = instance->GetGameObject(goKaddrakGUID)) + pKaddrak->SetGoState(GO_STATE_READY); + if (GameObject* pMarnak = instance->GetGameObject(goMarnakGUID)) + pMarnak->SetGoState(GO_STATE_READY); + if (GameObject* pSkyRoomFloor = instance->GetGameObject(goSkyRoomFloorGUID)) + pSkyRoomFloor->SetGoState(GO_STATE_READY); + } + + if (type == BOSS_TRIBUNAL_OF_AGES && data == FAIL) + { + if (GameObject* pAbedneum = instance->GetGameObject(goAbedneumGUID)) + pAbedneum->SetGoState(GO_STATE_ACTIVE); + if (GameObject* pKaddrak = instance->GetGameObject(goKaddrakGUID)) + pKaddrak->SetGoState(GO_STATE_ACTIVE); + if (GameObject* pMarnak = instance->GetGameObject(goMarnakGUID)) + pMarnak->SetGoState(GO_STATE_ACTIVE); + if (GameObject* pSkyRoomFloor = instance->GetGameObject(goSkyRoomFloorGUID)) + pSkyRoomFloor->SetGoState(GO_STATE_READY); } if (type == DATA_BRANN_ACHIEVEMENT) diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_mimiron.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_mimiron.cpp index d30605387..26f94defe 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_mimiron.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_mimiron.cpp @@ -1129,7 +1129,7 @@ public: DoMeleeAttackIfReady(); Unit* cannon = GetS3(); - if (!cannon || cannon->HasUnitState(UNIT_STATE_CASTING) || me->HasUnitState(UNIT_STATE_CASTING) || me->HasAuraType(SPELL_AURA_MOD_SILENCE)) + if (!cannon || cannon->HasUnitState(UNIT_STATE_CASTING) || me->HasUnitState(UNIT_STATE_CASTING) || me->HasSilenceAura()) return; switch (events.ExecuteEvent()) diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_yoggsaron.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_yoggsaron.cpp index 68702d313..e2c684870 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_yoggsaron.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_yoggsaron.cpp @@ -2603,7 +2603,7 @@ class spell_yogg_saron_insane_periodic_trigger : public SpellScript { std::list tmplist; for (std::list::iterator itr = targets.begin(); itr != targets.end(); ++itr) - if ((*itr)->IsPlayer() && !(*itr)->ToPlayer()->HasAuraType(SPELL_AURA_AOE_CHARM) && !(*itr)->ToPlayer()->HasAura(SPELL_SANITY)) + if ((*itr)->IsPlayer() && !(*itr)->ToPlayer()->HasAOECharmAura() && !(*itr)->ToPlayer()->HasAura(SPELL_SANITY)) tmplist.push_back(*itr); targets.clear(); diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_ingvar_the_plunderer.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_ingvar_the_plunderer.cpp index 7b44e22c6..6d80f9216 100644 --- a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_ingvar_the_plunderer.cpp +++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_ingvar_the_plunderer.cpp @@ -99,299 +99,288 @@ enum eEvents EVENT_AXE_PICKUP, }; -class boss_ingvar_the_plunderer : public CreatureScript +struct boss_ingvar_the_plunderer : public ScriptedAI { -public: - boss_ingvar_the_plunderer() : CreatureScript("boss_ingvar_the_plunderer") { } - - CreatureAI* GetAI(Creature* pCreature) const override + boss_ingvar_the_plunderer(Creature* c) : ScriptedAI(c), summons(me) { - return GetUtgardeKeepAI(pCreature); + pInstance = c->GetInstanceScript(); } - struct boss_ingvar_the_plundererAI : public ScriptedAI + InstanceScript* pInstance; + EventMap events; + SummonList summons; + ObjectGuid ValkyrGUID; + ObjectGuid ThrowGUID; + + void Reset() override { - boss_ingvar_the_plundererAI(Creature* c) : ScriptedAI(c), summons(me) - { - pInstance = c->GetInstanceScript(); - } + ValkyrGUID.Clear(); + ThrowGUID.Clear(); + events.Reset(); + summons.DespawnAll(); + me->SetDisplayId(DISPLAYID_DEFAULT); + me->LoadEquipment(1); + FeignDeath(false); + me->RemoveUnitFlag(UNIT_FLAG_NOT_SELECTABLE); + me->SetControlled(false, UNIT_STATE_ROOT); + me->DisableRotate(false); - InstanceScript* pInstance; - EventMap events; - SummonList summons; - ObjectGuid ValkyrGUID; - ObjectGuid ThrowGUID; + if (pInstance) + pInstance->SetData(DATA_INGVAR, NOT_STARTED); + } - void Reset() override + void DamageTaken(Unit*, uint32& damage, DamageEffectType, SpellSchoolMask) override + { + if (me->GetDisplayId() == DISPLAYID_DEFAULT && damage >= me->GetHealth()) { - ValkyrGUID.Clear(); - ThrowGUID.Clear(); - events.Reset(); - summons.DespawnAll(); - me->SetDisplayId(DISPLAYID_DEFAULT); - me->LoadEquipment(1); - FeignDeath(false); - me->RemoveUnitFlag(UNIT_FLAG_NOT_SELECTABLE); + damage = 0; + me->InterruptNonMeleeSpells(true); + me->RemoveAllAuras(); + me->SetUnitFlag(UNIT_FLAG_NOT_SELECTABLE); me->SetControlled(false, UNIT_STATE_ROOT); me->DisableRotate(false); - - if (pInstance) - pInstance->SetData(DATA_INGVAR, NOT_STARTED); - } - - void DamageTaken(Unit*, uint32& damage, DamageEffectType, SpellSchoolMask) override - { - if (me->GetDisplayId() == DISPLAYID_DEFAULT && damage >= me->GetHealth()) - { - damage = 0; - me->InterruptNonMeleeSpells(true); - me->RemoveAllAuras(); - me->SetUnitFlag(UNIT_FLAG_NOT_SELECTABLE); - me->SetControlled(false, UNIT_STATE_ROOT); - me->DisableRotate(false); - me->GetMotionMaster()->MovementExpired(); - me->GetMotionMaster()->MoveIdle(); - me->StopMoving(); - FeignDeath(true); - events.Reset(); - events.RescheduleEvent(EVENT_START_RESURRECTION, 1s); - events.RescheduleEvent(EVENT_YELL_DEAD_1, 0ms); - } - } - - void JustEngagedWith(Unit* /*who*/) override - { + me->GetMotionMaster()->MovementExpired(); + me->GetMotionMaster()->MoveIdle(); + me->StopMoving(); + FeignDeath(true); events.Reset(); - // schedule Phase 1 abilities + events.RescheduleEvent(EVENT_START_RESURRECTION, 1s); + events.RescheduleEvent(EVENT_YELL_DEAD_1, 0ms); + } + } + + void JustEngagedWith(Unit* /*who*/) override + { + events.Reset(); + // schedule Phase 1 abilities + events.RescheduleEvent(EVENT_SPELL_ROAR, 15s); + events.RescheduleEvent(EVENT_SPELL_CLEAVE_OR_WOE_STRIKE, 2s); + events.RescheduleEvent(EVENT_SPELL_SMASH, 5s); + events.RescheduleEvent(EVENT_SPELL_ENRAGE_OR_SHADOW_AXE, 10s); + + Talk(YELL_AGGRO_1); + me->LowerPlayerDamageReq(me->GetMaxHealth()); + + if (pInstance) + pInstance->SetData(DATA_INGVAR, IN_PROGRESS); + } + + void JustSummoned(Creature* s) override + { + summons.Summon(s); + if (s->GetEntry() == NPC_ANNHYLDE) + { + ValkyrGUID = s->GetGUID(); + s->SetCanFly(true); + s->SetDisableGravity(true); + s->SetPosition(s->GetPositionX(), s->GetPositionY(), s->GetPositionZ() + 35.0f, s->GetOrientation()); + s->SetFacingTo(s->GetOrientation()); + } + else if (s->GetEntry() == NPC_THROW) + { + ThrowGUID = s->GetGUID(); + if (Unit* t = SelectTarget(SelectTargetMethod::Random, 0, 70.0f, true)) + s->GetMotionMaster()->MovePoint(0, t->GetPositionX(), t->GetPositionY(), t->GetPositionZ()); + } + } + + void KilledUnit(Unit* /*who*/) override + { + if (me->GetDisplayId() == DISPLAYID_DEFAULT) + Talk(YELL_KILL_2); + else + Talk(YELL_KILL_1); + } + + void FeignDeath(bool apply) + { + if (apply) + { + me->SetStandState(UNIT_STAND_STATE_DEAD); + me->SetUnitFlag(UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT); + me->SetUnitFlag2(UNIT_FLAG2_FEIGN_DEATH); + me->SetDynamicFlag(UNIT_DYNFLAG_DEAD); + } + else + { + me->SetStandState(UNIT_STAND_STATE_STAND); + me->RemoveUnitFlag(UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT); + me->RemoveUnitFlag2(UNIT_FLAG2_FEIGN_DEATH); + me->RemoveDynamicFlag(UNIT_DYNFLAG_DEAD); + } + } + + void JustDied(Unit* /*killer*/) override + { + events.Reset(); + summons.DespawnAll(); + Talk(YELL_DEAD_2); + if (pInstance) + { + pInstance->DoUpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_KILL_CREATURE, NPC_INGVAR_UNDEAD, 1); // undead entry needed for achievements + pInstance->SetData(DATA_INGVAR, DONE); + } + } + + void EnterEvadeMode(EvadeReason why) override + { + me->SetControlled(false, UNIT_STATE_ROOT); + me->DisableRotate(false); + ScriptedAI::EnterEvadeMode(why); + } + + void UpdateAI(uint32 diff) override + { + if (!UpdateVictim()) + return; + + events.Update(diff); + + if (me->HasUnitState(UNIT_STATE_CASTING)) + return; + + switch (events.ExecuteEvent()) + { + case 0: + break; + case EVENT_YELL_DEAD_1: + Talk(YELL_DEAD_1); + break; + case EVENT_START_RESURRECTION: + me->CastSpell(me, SPELL_SUMMON_VALKYR, true); + events.RescheduleEvent(EVENT_VALKYR_BEAM, 7s); + events.RescheduleEvent(EVENT_VALKYR_MOVE, 1ms); + events.RescheduleEvent(EVENT_ANNHYLDE_YELL, 3s); + break; + case EVENT_VALKYR_MOVE: + if (Creature* s = ObjectAccessor::GetCreature(*me, ValkyrGUID)) + s->GetMotionMaster()->MovePoint(1, s->GetPositionX(), s->GetPositionY(), s->GetPositionZ() - 15.0f); + break; + case EVENT_ANNHYLDE_YELL: + if (Creature* s = ObjectAccessor::GetCreature(*me, ValkyrGUID)) + s->AI()->Talk(YELL_ANHYLDE_2); + break; + case EVENT_VALKYR_BEAM: + me->RemoveAura(SPELL_SUMMON_VALKYR); + if (Creature* c = ObjectAccessor::GetCreature(*me, ValkyrGUID)) + c->CastSpell(me, SPELL_RESURRECTION_BEAM, false); + events.RescheduleEvent(EVENT_RESURRECTION_BALL, 4s); + break; + case EVENT_RESURRECTION_BALL: + me->CastSpell(me, SPELL_RESURRECTION_BALL, true); + events.RescheduleEvent(EVENT_RESURRECTION_HEAL, 4s); + break; + case EVENT_RESURRECTION_HEAL: + me->RemoveAura(SPELL_RESURRECTION_BALL); + me->CastSpell(me, SPELL_RESURRECTION_HEAL, true); + FeignDeath(false); + events.RescheduleEvent(EVENT_MORPH_TO_UNDEAD, 3s); + break; + case EVENT_MORPH_TO_UNDEAD: + me->CastSpell(me, SPELL_INGVAR_TRANSFORM, true); + events.RescheduleEvent(EVENT_START_PHASE_2, 1s); + break; + case EVENT_START_PHASE_2: + if (Creature* c = ObjectAccessor::GetCreature(*me, ValkyrGUID)) + { + c->DespawnOrUnsummon(); + summons.DespawnAll(); + } + me->RemoveUnitFlag(UNIT_FLAG_NOT_SELECTABLE); + AttackStart(me->GetVictim()); + me->GetMotionMaster()->MoveChase(me->GetVictim()); + Talk(YELL_AGGRO_2); + + // schedule Phase 2 abilities events.RescheduleEvent(EVENT_SPELL_ROAR, 15s); events.RescheduleEvent(EVENT_SPELL_CLEAVE_OR_WOE_STRIKE, 2s); events.RescheduleEvent(EVENT_SPELL_SMASH, 5s); events.RescheduleEvent(EVENT_SPELL_ENRAGE_OR_SHADOW_AXE, 10s); - Talk(YELL_AGGRO_1); - me->LowerPlayerDamageReq(me->GetMaxHealth()); + break; - if (pInstance) - pInstance->SetData(DATA_INGVAR, IN_PROGRESS); - } - - void JustSummoned(Creature* s) override - { - summons.Summon(s); - if (s->GetEntry() == NPC_ANNHYLDE) - { - ValkyrGUID = s->GetGUID(); - s->SetCanFly(true); - s->SetDisableGravity(true); - s->SetPosition(s->GetPositionX(), s->GetPositionY(), s->GetPositionZ() + 35.0f, s->GetOrientation()); - s->SetFacingTo(s->GetOrientation()); - } - else if (s->GetEntry() == NPC_THROW) - { - ThrowGUID = s->GetGUID(); - if (Unit* t = SelectTarget(SelectTargetMethod::Random, 0, 70.0f, true)) - s->GetMotionMaster()->MovePoint(0, t->GetPositionX(), t->GetPositionY(), t->GetPositionZ()); - } - } - - void KilledUnit(Unit* /*who*/) override - { - if (me->GetDisplayId() == DISPLAYID_DEFAULT) - Talk(YELL_KILL_2); - else - Talk(YELL_KILL_1); - } - - void FeignDeath(bool apply) - { - if (apply) - { - me->SetStandState(UNIT_STAND_STATE_DEAD); - me->SetUnitFlag(UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT); - me->SetUnitFlag2(UNIT_FLAG2_FEIGN_DEATH); - me->SetDynamicFlag(UNIT_DYNFLAG_DEAD); - } - else - { - me->SetStandState(UNIT_STAND_STATE_STAND); - me->RemoveUnitFlag(UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT); - me->RemoveUnitFlag2(UNIT_FLAG2_FEIGN_DEATH); - me->RemoveDynamicFlag(UNIT_DYNFLAG_DEAD); - } - } - - void JustDied(Unit* /*killer*/) override - { - events.Reset(); - summons.DespawnAll(); - Talk(YELL_DEAD_2); - if (pInstance) - { - pInstance->DoUpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_KILL_CREATURE, NPC_INGVAR_UNDEAD, 1); // undead entry needed for achievements - pInstance->SetData(DATA_INGVAR, DONE); - } - } - - void EnterEvadeMode(EvadeReason why) override - { + // ABILITIES HERE: + case EVENT_UNROOT: me->SetControlled(false, UNIT_STATE_ROOT); me->DisableRotate(false); - ScriptedAI::EnterEvadeMode(why); - } + break; + case EVENT_SPELL_ROAR: + Talk(EMOTE_ROAR); - void UpdateAI(uint32 diff) override - { - if (!UpdateVictim()) - return; + me->_AddCreatureSpellCooldown(SPELL_STAGGERING_ROAR, 0, 0); + me->_AddCreatureSpellCooldown(SPELL_DREADFUL_ROAR, 0, 0); - events.Update(diff); - - if (me->HasUnitState(UNIT_STATE_CASTING)) - return; - - switch (events.ExecuteEvent()) + if (me->GetDisplayId() == DISPLAYID_DEFAULT) + me->CastSpell((Unit*)nullptr, SPELL_STAGGERING_ROAR, false); + else + me->CastSpell((Unit*)nullptr, SPELL_DREADFUL_ROAR, false); + events.Repeat(15s, 20s); + break; + case EVENT_SPELL_CLEAVE_OR_WOE_STRIKE: + if (me->GetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID) == 0) { - case 0: - break; - case EVENT_YELL_DEAD_1: - Talk(YELL_DEAD_1); - break; - case EVENT_START_RESURRECTION: - me->CastSpell(me, SPELL_SUMMON_VALKYR, true); - events.RescheduleEvent(EVENT_VALKYR_BEAM, 7s); - events.RescheduleEvent(EVENT_VALKYR_MOVE, 1ms); - events.RescheduleEvent(EVENT_ANNHYLDE_YELL, 3s); - break; - case EVENT_VALKYR_MOVE: - if (Creature* s = ObjectAccessor::GetCreature(*me, ValkyrGUID)) - s->GetMotionMaster()->MovePoint(1, s->GetPositionX(), s->GetPositionY(), s->GetPositionZ() - 15.0f); - break; - case EVENT_ANNHYLDE_YELL: - if (Creature* s = ObjectAccessor::GetCreature(*me, ValkyrGUID)) - s->AI()->Talk(YELL_ANHYLDE_2); - break; - case EVENT_VALKYR_BEAM: - me->RemoveAura(SPELL_SUMMON_VALKYR); - if (Creature* c = ObjectAccessor::GetCreature(*me, ValkyrGUID)) - c->CastSpell(me, SPELL_RESURRECTION_BEAM, false); - events.RescheduleEvent(EVENT_RESURRECTION_BALL, 4s); - break; - case EVENT_RESURRECTION_BALL: - me->CastSpell(me, SPELL_RESURRECTION_BALL, true); - events.RescheduleEvent(EVENT_RESURRECTION_HEAL, 4s); - break; - case EVENT_RESURRECTION_HEAL: - me->RemoveAura(SPELL_RESURRECTION_BALL); - me->CastSpell(me, SPELL_RESURRECTION_HEAL, true); - FeignDeath(false); - events.RescheduleEvent(EVENT_MORPH_TO_UNDEAD, 3s); - break; - case EVENT_MORPH_TO_UNDEAD: - me->CastSpell(me, SPELL_INGVAR_TRANSFORM, true); - events.RescheduleEvent(EVENT_START_PHASE_2, 1s); - break; - case EVENT_START_PHASE_2: - if (Creature* c = ObjectAccessor::GetCreature(*me, ValkyrGUID)) - { - c->DespawnOrUnsummon(); - summons.DespawnAll(); - } - me->RemoveUnitFlag(UNIT_FLAG_NOT_SELECTABLE); - AttackStart(me->GetVictim()); - me->GetMotionMaster()->MoveChase(me->GetVictim()); - Talk(YELL_AGGRO_2); - - // schedule Phase 2 abilities - events.RescheduleEvent(EVENT_SPELL_ROAR, 15s); - events.RescheduleEvent(EVENT_SPELL_CLEAVE_OR_WOE_STRIKE, 2s); - events.RescheduleEvent(EVENT_SPELL_SMASH, 5s); - events.RescheduleEvent(EVENT_SPELL_ENRAGE_OR_SHADOW_AXE, 10s); - - break; - - // ABILITIES HERE: - case EVENT_UNROOT: - me->SetControlled(false, UNIT_STATE_ROOT); - me->DisableRotate(false); - break; - case EVENT_SPELL_ROAR: - Talk(EMOTE_ROAR); - - me->_AddCreatureSpellCooldown(SPELL_STAGGERING_ROAR, 0, 0); - me->_AddCreatureSpellCooldown(SPELL_DREADFUL_ROAR, 0, 0); - - if (me->GetDisplayId() == DISPLAYID_DEFAULT) - me->CastSpell((Unit*)nullptr, SPELL_STAGGERING_ROAR, false); - else - me->CastSpell((Unit*)nullptr, SPELL_DREADFUL_ROAR, false); - events.Repeat(15s, 20s); - break; - case EVENT_SPELL_CLEAVE_OR_WOE_STRIKE: - if (me->GetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID) == 0 ) - { - events.Repeat(3s); - break; - } - if (me->GetDisplayId() == DISPLAYID_DEFAULT) - me->CastSpell(me->GetVictim(), SPELL_CLEAVE, false); - else - me->CastSpell(me->GetVictim(), SPELL_WOE_STRIKE, false); - events.Repeat(3s, 7s); - break; - case EVENT_SPELL_SMASH: - if (me->GetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID) == 0 ) - { - events.Repeat(3s); - break; - } - me->SetControlled(true, UNIT_STATE_ROOT); - me->DisableRotate(true); - me->SendMovementFlagUpdate(); - if (me->GetDisplayId() == DISPLAYID_DEFAULT) - me->CastSpell((Unit*)nullptr, SPELL_SMASH, false); - else - me->CastSpell((Unit*)nullptr, SPELL_DARK_SMASH, false); - events.Repeat(9s, 11s); - events.RescheduleEvent(EVENT_UNROOT, 3750ms); - break; - case EVENT_SPELL_ENRAGE_OR_SHADOW_AXE: - if (me->GetDisplayId() == DISPLAYID_DEFAULT) - { - me->CastSpell(me, SPELL_ENRAGE, false); - events.Repeat(10s); - } - else - { - me->CastSpell((Unit*)nullptr, SPELL_SHADOW_AXE, true); - SetEquipmentSlots(false, EQUIP_UNEQUIP, EQUIP_NO_CHANGE, EQUIP_NO_CHANGE); - events.Repeat(35s); - events.RescheduleEvent(EVENT_AXE_RETURN, 10s); - } - break; - case EVENT_AXE_RETURN: - if (Creature* c = ObjectAccessor::GetCreature(*me, ThrowGUID)) - c->GetMotionMaster()->MoveCharge(me->GetPositionX(), me->GetPositionY(), me->GetPositionZ()); - events.RescheduleEvent(EVENT_AXE_PICKUP, 1500ms); - break; - case EVENT_AXE_PICKUP: - if (Creature* c = ObjectAccessor::GetCreature(*me, ThrowGUID)) - { - c->DestroyForNearbyPlayers(); - c->DespawnOrUnsummon(); - summons.DespawnAll(); - } - ThrowGUID.Clear(); - SetEquipmentSlots(true); - break; + events.Repeat(3s); + break; } - - if (!me->HasUnitFlag(UNIT_FLAG_NOT_SELECTABLE)) - DoMeleeAttackIfReady(); + if (me->GetDisplayId() == DISPLAYID_DEFAULT) + me->CastSpell(me->GetVictim(), SPELL_CLEAVE, false); + else + me->CastSpell(me->GetVictim(), SPELL_WOE_STRIKE, false); + events.Repeat(3s, 7s); + break; + case EVENT_SPELL_SMASH: + if (me->GetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID) == 0) + { + events.Repeat(3s); + break; + } + me->SetControlled(true, UNIT_STATE_ROOT); + me->DisableRotate(true); + me->SendMovementFlagUpdate(); + if (me->GetDisplayId() == DISPLAYID_DEFAULT) + me->CastSpell((Unit*)nullptr, SPELL_SMASH, false); + else + me->CastSpell((Unit*)nullptr, SPELL_DARK_SMASH, false); + events.Repeat(9s, 11s); + events.RescheduleEvent(EVENT_UNROOT, 3750ms); + break; + case EVENT_SPELL_ENRAGE_OR_SHADOW_AXE: + if (me->GetDisplayId() == DISPLAYID_DEFAULT) + { + me->CastSpell(me, SPELL_ENRAGE, false); + events.Repeat(10s); + } + else + { + me->CastSpell((Unit*)nullptr, SPELL_SHADOW_AXE, true); + SetEquipmentSlots(false, EQUIP_UNEQUIP, EQUIP_NO_CHANGE, EQUIP_NO_CHANGE); + events.Repeat(35s); + events.RescheduleEvent(EVENT_AXE_RETURN, 10s); + } + break; + case EVENT_AXE_RETURN: + if (Creature* c = ObjectAccessor::GetCreature(*me, ThrowGUID)) + c->GetMotionMaster()->MoveCharge(me->GetPositionX(), me->GetPositionY(), me->GetPositionZ()); + events.RescheduleEvent(EVENT_AXE_PICKUP, 1500ms); + break; + case EVENT_AXE_PICKUP: + if (Creature* c = ObjectAccessor::GetCreature(*me, ThrowGUID)) + { + c->DestroyForNearbyPlayers(); + c->DespawnOrUnsummon(); + summons.DespawnAll(); + } + ThrowGUID.Clear(); + SetEquipmentSlots(true); + break; } - }; + + if (!me->HasUnitFlag(UNIT_FLAG_NOT_SELECTABLE)) + DoMeleeAttackIfReady(); + } }; void AddSC_boss_ingvar_the_plunderer() { - new boss_ingvar_the_plunderer(); + RegisterUtgardeKeepCreatureAI(boss_ingvar_the_plunderer); } diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_keleseth.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_keleseth.cpp index e03daa35b..a3d0626fa 100644 --- a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_keleseth.cpp +++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_keleseth.cpp @@ -51,183 +51,105 @@ enum eSpells #define SPELL_SHADOWBOLT DUNGEON_MODE(SPELL_SHADOWBOLT_N, SPELL_SHADOWBOLT_H) -enum eEvents +struct npc_frost_tomb : public NullCreatureAI { - EVENT_SPELL_SHADOWBOLT = 1, - EVENT_FROST_TOMB, - EVENT_SUMMON_SKELETONS, -}; - -class npc_frost_tomb : public CreatureScript -{ -public: - npc_frost_tomb() : CreatureScript("npc_frost_tomb") { } - - CreatureAI* GetAI(Creature* pCreature) const override + npc_frost_tomb(Creature* c) : NullCreatureAI(c) { - return GetUtgardeKeepAI(pCreature); - } - - struct npc_frost_tombAI : public NullCreatureAI - { - npc_frost_tombAI(Creature* c) : NullCreatureAI(c) - { - if (TempSummon* t = c->ToTempSummon()) - if (Unit* s = t->GetSummonerUnit()) - { - PrisonerGUID = s->GetGUID(); - if (me->GetInstanceScript() && me->GetInstanceScript()->instance->IsHeroic()) - { - const int32 dmg = 2000; - c->CastCustomSpell(s, SPELL_FROST_TOMB_AURA, nullptr, &dmg, nullptr, true); - } - else - c->CastSpell(s, SPELL_FROST_TOMB_AURA, true); - } - } - ObjectGuid PrisonerGUID; - - void JustDied(Unit* killer) override - { - if (killer && killer->GetGUID() != me->GetGUID()) - if (InstanceScript* pInstance = me->GetInstanceScript()) - pInstance->SetData(DATA_ON_THE_ROCKS_ACHIEV, 0); - - if (PrisonerGUID) - if (Unit* p = ObjectAccessor::GetUnit(*me, PrisonerGUID)) - p->RemoveAurasDueToSpell(SPELL_FROST_TOMB_AURA); - me->DespawnOrUnsummon(5000); - } - - void UpdateAI(uint32 /*diff*/) override - { - if (PrisonerGUID) + if (WorldObject* summoner = GetSummoner()) + if (Unit* summonerUnit = summoner->ToUnit()) { - if (Unit* p = ObjectAccessor::GetUnit(*me, PrisonerGUID)) + PrisonerGUID = summonerUnit->GetGUID(); + if (me->GetInstanceScript() && me->GetInstanceScript()->instance->IsHeroic()) { - if (!p->HasAura(SPELL_FROST_TOMB_AURA)) - me->KillSelf(); + const int32 dmg = 2000; + c->CastCustomSpell(summonerUnit, SPELL_FROST_TOMB_AURA, nullptr, &dmg, nullptr, true); } else - me->KillSelf(); + c->CastSpell(summonerUnit, SPELL_FROST_TOMB_AURA, true); } - } - }; -}; - -class boss_keleseth : public CreatureScript -{ -public: - boss_keleseth() : CreatureScript("boss_keleseth") { } - - CreatureAI* GetAI(Creature* pCreature) const override - { - return GetUtgardeKeepAI(pCreature); } - struct boss_kelesethAI : public ScriptedAI + ObjectGuid PrisonerGUID; + + void JustDied(Unit* killer) override { - boss_kelesethAI(Creature* c) : ScriptedAI(c) - { - pInstance = c->GetInstanceScript(); - } + if (killer && killer->GetGUID() != me->GetGUID()) + if (InstanceScript* pInstance = me->GetInstanceScript()) + pInstance->SetData(DATA_ON_THE_ROCKS_ACHIEV, 0); - InstanceScript* pInstance; - EventMap events; + if (PrisonerGUID) + if (Unit* p = ObjectAccessor::GetUnit(*me, PrisonerGUID)) + p->RemoveAurasDueToSpell(SPELL_FROST_TOMB_AURA); + me->DespawnOrUnsummon(5000); + } - void Reset() override + void UpdateAI(uint32 /*diff*/) override + { + if (PrisonerGUID) { - events.Reset(); - if (pInstance) - pInstance->SetData(DATA_KELESETH, NOT_STARTED); - } - - void KilledUnit(Unit* victim) override - { - if (victim->IsPlayer()) + if (Unit* p = ObjectAccessor::GetUnit(*me, PrisonerGUID)) { - Talk(SAY_KILL); + if (!p->HasAura(SPELL_FROST_TOMB_AURA)) + me->KillSelf(); } + else + me->KillSelf(); } + } +}; - void JustDied(Unit* /*killer*/) override - { - Talk(SAY_DEATH); - if (pInstance) - pInstance->SetData(DATA_KELESETH, DONE); - } +struct boss_keleseth : public BossAI +{ + boss_keleseth(Creature* creature) : BossAI(creature, DATA_KELESETH) { } - void JustEngagedWith(Unit* /*who*/) override - { - events.Reset(); - events.RescheduleEvent(EVENT_SPELL_SHADOWBOLT, 0ms); - events.RescheduleEvent(EVENT_FROST_TOMB, 28s); - events.RescheduleEvent(EVENT_SUMMON_SKELETONS, 4s); + void KilledUnit(Unit* victim) override + { + if (victim->IsPlayer()) + Talk(SAY_KILL); + } - Talk(SAY_START_COMBAT); - DoZoneInCombat(); + void JustDied(Unit* /*killer*/) override + { + _JustDied(); + Talk(SAY_DEATH); + } - if (pInstance) - pInstance->SetData(DATA_KELESETH, IN_PROGRESS); - } + void JustEngagedWith(Unit* /*who*/) override + { + _JustEngagedWith(); + Talk(SAY_START_COMBAT); - void AttackStart(Unit* who) override - { - if (!who) - return; + ScheduleTimedEvent(1s, [&] { + DoCastVictim(SPELL_SHADOWBOLT); + }, 4s, 5s); - UnitAI::AttackStartCaster(who, 12.0f); - } - - void UpdateAI(uint32 diff) override - { - if (!UpdateVictim()) - return; - - events.Update(diff); - - if (me->HasUnitState(UNIT_STATE_CASTING)) - return; - - switch (events.ExecuteEvent()) + ScheduleTimedEvent(28s, [&] { + if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 0.0f, true, true, -SPELL_FROST_TOMB_AURA)) { - case 0: - break; - case EVENT_SPELL_SHADOWBOLT: - me->CastSpell(me->GetVictim(), SPELL_SHADOWBOLT, false); - events.Repeat(4s, 5s); - break; - case EVENT_FROST_TOMB: - if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 0.0f, true, true)) - if (!target->HasAura(SPELL_FROST_TOMB_AURA)) - { - Talk(SAY_FROST_TOMB_EMOTE, target); - Talk(SAY_FROST_TOMB); - me->CastSpell(target, SPELL_FROST_TOMB, false); - events.Repeat(15s); - break; - } - events.Repeat(1s); - break; - case EVENT_SUMMON_SKELETONS: - Talk(SAY_SUMMON_SKELETONS); - for (uint8 i = 0; i < 5; ++i) - { - float dist = rand_norm() * 4 + 3.0f; - float angle = rand_norm() * 2 * M_PI; - if (Creature* c = me->SummonCreature(NPC_SKELETON, 156.2f + cos(angle) * dist, 259.1f + std::sin(angle) * dist, 42.9f, 0, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 20000)) - if (Unit* target = c->SelectNearestTarget(250.0f)) - { - c->AddThreat(target, 5.0f); - DoZoneInCombat(c); - } - } - break; + Talk(SAY_FROST_TOMB_EMOTE, target); + Talk(SAY_FROST_TOMB); + DoCast(target, SPELL_FROST_TOMB); } + }, 15s); - DoMeleeAttackIfReady(); - } - }; + me->m_Events.AddEventAtOffset([this]() { + Talk(SAY_SUMMON_SKELETONS); + for (uint8 i = 0; i < 5; ++i) + { + float dist = rand_norm() * 4 + 3.0f; + float angle = rand_norm() * 2 * M_PI; + me->SummonCreature(NPC_SKELETON, 156.2f + cos(angle) * dist, 259.1f + std::sin(angle) * dist, 42.9f, 0, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 20000); + } + }, 4s); + } + + void AttackStart(Unit* who) override + { + if (!who) + return; + + UnitAI::AttackStartCaster(who, 12.0f); + } }; enum eSkeletonEnum @@ -242,105 +164,94 @@ enum eSkeletonEnum EVENT_RESURRECT_2, }; -class npc_vrykul_skeleton : public CreatureScript +struct npc_vrykul_skeleton : public ScriptedAI { -public: - npc_vrykul_skeleton() : CreatureScript("npc_vrykul_skeleton") { } - - CreatureAI* GetAI(Creature* pCreature) const override + npc_vrykul_skeleton(Creature* c) : ScriptedAI(c) { - return GetUtgardeKeepAI(pCreature); + pInstance = c->GetInstanceScript(); } - struct npc_vrykul_skeletonAI : public ScriptedAI + InstanceScript* pInstance; + EventMap events; + + void Reset() override { - npc_vrykul_skeletonAI(Creature* c) : ScriptedAI(c) + events.Reset(); + events.RescheduleEvent(EVENT_SPELL_DECREPIFY, 10s, 20s); + if (IsHeroic()) + events.RescheduleEvent(EVENT_SPELL_BONE_ARMOR, 25s, 120s); + } + + void DamageTaken(Unit*, uint32& damage, DamageEffectType, SpellSchoolMask) override + { + if (damage >= me->GetHealth()) { - pInstance = c->GetInstanceScript(); + damage = 0; + me->InterruptNonMeleeSpells(true); + me->RemoveAllAuras(); + me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); + me->SetControlled(true, UNIT_STATE_ROOT); + me->GetMotionMaster()->MovementExpired(); + me->GetMotionMaster()->MoveIdle(); + me->StopMoving(); + me->SetStandState(UNIT_STAND_STATE_DEAD); + me->SetUnitFlag(UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT); + me->SetUnitFlag2(UNIT_FLAG2_FEIGN_DEATH); + me->SetDynamicFlag(UNIT_DYNFLAG_DEAD); + events.RescheduleEvent(EVENT_RESURRECT, 12s); + } + } + + void UpdateAI(uint32 diff) override + { + if (pInstance && pInstance->GetBossState(DATA_KELESETH) != IN_PROGRESS) + { + if (me->IsAlive()) + me->KillSelf(); + return; } - InstanceScript* pInstance; - EventMap events; + if (!UpdateVictim()) + return; - void Reset() override + events.Update(diff); + + if (me->HasUnitState(UNIT_STATE_CASTING)) + return; + + switch (events.ExecuteEvent()) { - events.Reset(); - events.RescheduleEvent(EVENT_SPELL_DECREPIFY, 10s, 20s); - if (IsHeroic()) - events.RescheduleEvent(EVENT_SPELL_BONE_ARMOR, 25s, 120s); - } - - void DamageTaken(Unit*, uint32& damage, DamageEffectType, SpellSchoolMask) override - { - if (damage >= me->GetHealth()) - { - damage = 0; - me->InterruptNonMeleeSpells(true); - me->RemoveAllAuras(); - me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); - me->SetControlled(true, UNIT_STATE_ROOT); - me->GetMotionMaster()->MovementExpired(); - me->GetMotionMaster()->MoveIdle(); - me->StopMoving(); - me->SetStandState(UNIT_STAND_STATE_DEAD); - me->SetUnitFlag(UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT); - me->SetUnitFlag2(UNIT_FLAG2_FEIGN_DEATH); - me->SetDynamicFlag(UNIT_DYNFLAG_DEAD); - events.RescheduleEvent(EVENT_RESURRECT, 12s); - } - } - - void UpdateAI(uint32 diff) override - { - if (pInstance && pInstance->GetData(DATA_KELESETH) != IN_PROGRESS ) - { - if (me->IsAlive()) - me->KillSelf(); - return; - } - - if (!UpdateVictim()) - return; - - events.Update(diff); - - if (me->HasUnitState(UNIT_STATE_CASTING)) - return; - - switch (events.ExecuteEvent()) - { - case 0: - break; - case EVENT_SPELL_DECREPIFY: - if (!me->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE)) - me->CastSpell(me->GetVictim(), SPELL_DECREPIFY, false); - events.Repeat(15s, 25s); - break; - case EVENT_SPELL_BONE_ARMOR: - if (!me->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE)) - me->CastSpell((Unit*)nullptr, SPELL_BONE_ARMOR, false); - events.Repeat(40s, 120s); - break; - case EVENT_RESURRECT: - events.DelayEvents(3500ms); - DoCast(me, SPELL_SCOURGE_RESURRECTION, true); - me->SetStandState(UNIT_STAND_STATE_STAND); - me->RemoveUnitFlag(UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT); - me->RemoveUnitFlag2(UNIT_FLAG2_FEIGN_DEATH); - me->RemoveDynamicFlag(UNIT_DYNFLAG_DEAD); - events.RescheduleEvent(EVENT_RESURRECT_2, 3s); - break; - case EVENT_RESURRECT_2: - me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE); - me->SetControlled(false, UNIT_STATE_ROOT); - me->GetMotionMaster()->MoveChase(me->GetVictim()); - break; - } - + case 0: + break; + case EVENT_SPELL_DECREPIFY: if (!me->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE)) - DoMeleeAttackIfReady(); + me->CastSpell(me->GetVictim(), SPELL_DECREPIFY, false); + events.Repeat(15s, 25s); + break; + case EVENT_SPELL_BONE_ARMOR: + if (!me->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE)) + me->CastSpell((Unit*)nullptr, SPELL_BONE_ARMOR, false); + events.Repeat(40s, 120s); + break; + case EVENT_RESURRECT: + events.DelayEvents(3500ms); + DoCast(me, SPELL_SCOURGE_RESURRECTION, true); + me->SetStandState(UNIT_STAND_STATE_STAND); + me->RemoveUnitFlag(UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT); + me->RemoveUnitFlag2(UNIT_FLAG2_FEIGN_DEATH); + me->RemoveDynamicFlag(UNIT_DYNFLAG_DEAD); + events.RescheduleEvent(EVENT_RESURRECT_2, 3s); + break; + case EVENT_RESURRECT_2: + me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE); + me->SetControlled(false, UNIT_STATE_ROOT); + me->GetMotionMaster()->MoveChase(me->GetVictim()); + break; } - }; + + if (!me->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE)) + DoMeleeAttackIfReady(); + } }; class spell_frost_tomb_aura : public AuraScript @@ -368,8 +279,8 @@ class spell_frost_tomb_aura : public AuraScript void AddSC_boss_keleseth() { - new boss_keleseth(); - new npc_frost_tomb(); - new npc_vrykul_skeleton(); + RegisterUtgardeKeepCreatureAI(boss_keleseth); + RegisterUtgardeKeepCreatureAI(npc_frost_tomb); + RegisterUtgardeKeepCreatureAI(npc_vrykul_skeleton); RegisterSpellScript(spell_frost_tomb_aura); } diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_skarvald_dalronn.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_skarvald_dalronn.cpp index 4acb81dbd..6e3ea7f52 100644 --- a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_skarvald_dalronn.cpp +++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_skarvald_dalronn.cpp @@ -66,182 +66,161 @@ enum eEvents EVENT_MATE_DIED }; -class boss_skarvald_the_constructor : public CreatureScript +struct boss_skarvald_the_constructor : public ScriptedAI { -public: - boss_skarvald_the_constructor() : CreatureScript("boss_skarvald_the_constructor") { } - - CreatureAI* GetAI(Creature* pCreature) const override + boss_skarvald_the_constructor(Creature* c) : ScriptedAI(c) { - return GetUtgardeKeepAI(pCreature); + pInstance = c->GetInstanceScript(); } - struct boss_skarvald_the_constructorAI : public ScriptedAI + InstanceScript* pInstance; + EventMap events; + + void Reset() override { - boss_skarvald_the_constructorAI(Creature* c) : ScriptedAI(c) + me->SetLootMode(0); + events.Reset(); + if (me->GetEntry() == NPC_SKARVALD) { - pInstance = c->GetInstanceScript(); - } - - InstanceScript* pInstance; - EventMap events; - - void Reset() override - { - me->SetLootMode(0); - events.Reset(); - if (me->GetEntry() == NPC_SKARVALD) - { - if (pInstance) - { - pInstance->SetData(DATA_DALRONN_AND_SKARVALD, NOT_STARTED); - } - } - else // NPC_SKARVALD_GHOST - { - if (Unit* target = me->SelectNearestTarget(50.0f)) - { - me->AddThreat(target, 0.0f); - AttackStart(target); - } - } - } - - void DoAction(int32 param) override - { - switch (param) - { - case 1: - events.RescheduleEvent(EVENT_MATE_DIED, 3500ms); - break; - } - } - - void JustEngagedWith(Unit* who) override - { - events.Reset(); - events.RescheduleEvent(EVENT_SHARVALD_CHARGE, 5s); - events.RescheduleEvent(EVENT_STONE_STRIKE, 10s); - if (me->GetEntry() == NPC_SKARVALD) - { - Talk(YELL_SKARVALD_AGGRO); - if (IsHeroic()) - { - events.ScheduleEvent(EVENT_ENRAGE, 1s); - } - } if (pInstance) { - pInstance->SetData(DATA_DALRONN_AND_SKARVALD, IN_PROGRESS); - if (Creature* dalronn = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_DALRONN))) + pInstance->SetData(DATA_DALRONN_AND_SKARVALD, NOT_STARTED); + } + } + else // NPC_SKARVALD_GHOST + { + if (Unit* target = me->SelectNearestTarget(50.0f)) + { + me->AddThreat(target, 0.0f); + AttackStart(target); + } + } + } + + void DoAction(int32 param) override + { + switch (param) + { + case 1: + events.RescheduleEvent(EVENT_MATE_DIED, 3500ms); + break; + } + } + + void JustEngagedWith(Unit* who) override + { + events.Reset(); + events.RescheduleEvent(EVENT_SHARVALD_CHARGE, 5s); + events.RescheduleEvent(EVENT_STONE_STRIKE, 10s); + if (me->GetEntry() == NPC_SKARVALD) + { + Talk(YELL_SKARVALD_AGGRO); + if (IsHeroic()) + { + events.ScheduleEvent(EVENT_ENRAGE, 1s); + } + } + if (pInstance) + { + pInstance->SetData(DATA_DALRONN_AND_SKARVALD, IN_PROGRESS); + if (Creature* dalronn = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_DALRONN))) + { + if (!dalronn->IsInCombat() && who) { - if (!dalronn->IsInCombat() && who) - { - dalronn->AddThreat(who, 0.0f); - dalronn->AI()->AttackStart(who); - } + dalronn->AddThreat(who, 0.0f); + dalronn->AI()->AttackStart(who); } } } + } - void KilledUnit(Unit* /*victim*/) override + void KilledUnit(Unit* /*victim*/) override + { + if (me->GetEntry() == NPC_SKARVALD) { - if (me->GetEntry() == NPC_SKARVALD) - { - Talk(YELL_SKARVALD_KILL); - } + Talk(YELL_SKARVALD_KILL); } + } - void JustDied(Unit* /*Killer*/) override + void JustDied(Unit* /*Killer*/) override + { + if (me->GetEntry() != NPC_SKARVALD) + return; + + if (pInstance) { - if (me->GetEntry() != NPC_SKARVALD) - return; - - if (pInstance) + if (Creature* dalronn = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_DALRONN))) { - if (Creature* dalronn = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_DALRONN))) + if (dalronn->isDead()) { - if (dalronn->isDead()) - { - Talk(YELL_SKARVALD_SKA_DIEDFIRST); - pInstance->SetData(DATA_DALRONN_AND_SKARVALD, DONE); - pInstance->SetData(DATA_UNLOCK_SKARVALD_LOOT, 0); - return; - } - else - { - Talk(YELL_SKARVALD_DAL_DIED); - dalronn->AI()->DoAction(1); - } + Talk(YELL_SKARVALD_SKA_DIEDFIRST); + pInstance->SetData(DATA_DALRONN_AND_SKARVALD, DONE); + pInstance->SetData(DATA_UNLOCK_SKARVALD_LOOT, 0); + return; + } + else + { + Talk(YELL_SKARVALD_DAL_DIED); + dalronn->AI()->DoAction(1); } } - me->CastSpell((Unit*)nullptr, SPELL_SUMMON_SKARVALD_GHOST, true); } + me->CastSpell((Unit*)nullptr, SPELL_SUMMON_SKARVALD_GHOST, true); + } - void UpdateAI(uint32 diff) override + void UpdateAI(uint32 diff) override + { + if (!UpdateVictim()) + return; + + events.Update(diff); + + if (me->HasUnitState(UNIT_STATE_CASTING)) + return; + + switch (events.ExecuteEvent()) { - if (!UpdateVictim()) - return; - - events.Update(diff); - - if (me->HasUnitState(UNIT_STATE_CASTING)) - return; - - switch (events.ExecuteEvent()) + case 0: + break; + case EVENT_MATE_DIED: + Talk(YELL_SKARVALD_DAL_DIEDFIRST); + break; + case EVENT_SHARVALD_CHARGE: + if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, (IsHeroic() ? 100.0f : 30.0f), true)) { - case 0: - break; - case EVENT_MATE_DIED: - Talk(YELL_SKARVALD_DAL_DIEDFIRST); - break; - case EVENT_SHARVALD_CHARGE: - if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, (IsHeroic() ? 100.0f : 30.0f), true)) - { - DoResetThreatList(); - me->AddThreat(target, 10000.0f); - me->CastSpell(target, SPELL_CHARGE, false); - } - events.Repeat(5s, 10s); - break; - case EVENT_STONE_STRIKE: - if (me->GetVictim() && me->IsWithinMeleeRange(me->GetVictim())) - { - me->CastSpell(me->GetVictim(), SPELL_STONE_STRIKE, false); - events.Repeat(5s, 10s); - } - else - { - events.Repeat(3s); - } - break; - case EVENT_ENRAGE: - if (me->GetHealthPct() <= 60) - { - me->CastSpell(me, SPELL_ENRAGE, true); - break; - } - events.Repeat(1s); - break; + DoResetThreatList(); + me->AddThreat(target, 10000.0f); + me->CastSpell(target, SPELL_CHARGE, false); } - DoMeleeAttackIfReady(); + events.Repeat(5s, 10s); + break; + case EVENT_STONE_STRIKE: + if (me->GetVictim() && me->IsWithinMeleeRange(me->GetVictim())) + { + me->CastSpell(me->GetVictim(), SPELL_STONE_STRIKE, false); + events.Repeat(5s, 10s); + } + else + { + events.Repeat(3s); + } + break; + case EVENT_ENRAGE: + if (me->GetHealthPct() <= 60) + { + me->CastSpell(me, SPELL_ENRAGE, true); + break; + } + events.Repeat(1s); + break; } - }; + DoMeleeAttackIfReady(); + } }; -class boss_dalronn_the_controller : public CreatureScript -{ -public: - boss_dalronn_the_controller() : CreatureScript("boss_dalronn_the_controller") { } - - CreatureAI* GetAI(Creature* pCreature) const override +struct boss_dalronn_the_controller : public ScriptedAI { - return GetUtgardeKeepAI(pCreature); - } - - struct boss_dalronn_the_controllerAI : public ScriptedAI - { - boss_dalronn_the_controllerAI(Creature* c) : ScriptedAI(c), summons(me) + boss_dalronn_the_controller(Creature* c) : ScriptedAI(c), summons(me) { pInstance = c->GetInstanceScript(); } @@ -397,10 +376,9 @@ public: DoMeleeAttackIfReady(); } }; -}; void AddSC_boss_skarvald_dalronn() { - new boss_skarvald_the_constructor(); - new boss_dalronn_the_controller(); + RegisterUtgardeKeepCreatureAI(boss_skarvald_the_constructor); + RegisterUtgardeKeepCreatureAI(boss_dalronn_the_controller); } 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 475fa0c2e..6425e7360 100644 --- a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/instance_utgarde_keep.cpp +++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/instance_utgarde_keep.cpp @@ -44,6 +44,8 @@ public: { instance_utgarde_keep_InstanceMapScript(Map* pMap) : InstanceScript(pMap) { + SetHeaders(DataHeader); + SetBossNumber(EncounterCount); LoadObjectData(creatureData, nullptr); } @@ -69,12 +71,26 @@ public: bool IsEncounterInProgress() const override { + if (InstanceScript::IsEncounterInProgress()) + return true; + for (uint8 i = 0; i < MAX_ENCOUNTER; ++i) if (m_auiEncounter[i] == IN_PROGRESS) return true; return false; } + bool SetBossState(uint32 type, EncounterState state) override + { + if (!InstanceScript::SetBossState(type, state)) + return false; + + if (type == DATA_KELESETH && state == NOT_STARTED) + bRocksAchiev = true; + + return true; + } + void OnPlayerEnter(Player* plr) override { if (Creature* c = GetCreature(DATA_DARK_RANGER_MARRAH)) @@ -160,11 +176,6 @@ public: { switch (type) { - case DATA_KELESETH: - m_auiEncounter[0] = data; - if (data == NOT_STARTED) - bRocksAchiev = true; - break; case DATA_ON_THE_ROCKS_ACHIEV: bRocksAchiev = false; break; diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/utgarde_keep.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/utgarde_keep.cpp index b85a73f23..62263725b 100644 --- a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/utgarde_keep.cpp +++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/utgarde_keep.cpp @@ -23,72 +23,61 @@ #include "SpellScriptLoader.h" #include "Vehicle.h" -class npc_dragonflayer_forge_master : public CreatureScript +struct npc_dragonflayer_forge_master : public ScriptedAI { -public: - npc_dragonflayer_forge_master() : CreatureScript("npc_dragonflayer_forge_master") { } - - CreatureAI* GetAI(Creature* pCreature) const override + npc_dragonflayer_forge_master(Creature* c) : ScriptedAI(c) { - return GetUtgardeKeepAI(pCreature); + pInstance = c->GetInstanceScript(); + + float x = me->GetHomePosition().GetPositionX(); + float y = me->GetHomePosition().GetPositionY(); + if (x > 344.0f && x < 357.0f && y < -35.0f && y > -44.0f) + { + dataId = DATA_FORGE_1; + prevDataId = 0; + } + else if (x > 380.0f && x < 389.0f && y < -12.0f && y > -21.0f) + { + dataId = DATA_FORGE_2; + prevDataId = DATA_FORGE_1; + } + else + { + dataId = DATA_FORGE_3; + prevDataId = DATA_FORGE_2; + } } - struct npc_dragonflayer_forge_masterAI : public ScriptedAI + InstanceScript* pInstance; + uint32 dataId; + uint32 prevDataId; + + void Reset() override { - npc_dragonflayer_forge_masterAI(Creature* c) : ScriptedAI(c) + if (pInstance) + pInstance->SetData(dataId, NOT_STARTED); + } + + void JustDied(Unit* /*killer*/) override + { + if (pInstance) + pInstance->SetData(dataId, DONE); + me->SaveRespawnTime(); + } + + void JustEngagedWith(Unit* /*who*/) override + { + if (pInstance) { - pInstance = c->GetInstanceScript(); - - float x = me->GetHomePosition().GetPositionX(); - float y = me->GetHomePosition().GetPositionY(); - if (x > 344.0f && x < 357.0f && y < -35.0f && y > -44.0f) + if (prevDataId && !pInstance->GetData(prevDataId)) { - dataId = DATA_FORGE_1; - prevDataId = 0; - } - else if (x > 380.0f && x < 389.0f && y < -12.0f && y > -21.0f) - { - dataId = DATA_FORGE_2; - prevDataId = DATA_FORGE_1; - } - else - { - dataId = DATA_FORGE_3; - prevDataId = DATA_FORGE_2; + EnterEvadeMode(); + return; } + pInstance->SetData(dataId, IN_PROGRESS); } - - InstanceScript* pInstance; - uint32 dataId; - uint32 prevDataId; - - void Reset() override - { - if (pInstance) - pInstance->SetData(dataId, NOT_STARTED); - } - - void JustDied(Unit* /*killer*/) override - { - if (pInstance) - pInstance->SetData(dataId, DONE); - me->SaveRespawnTime(); - } - - void JustEngagedWith(Unit* /*who*/) override - { - if (pInstance) - { - if (prevDataId && !pInstance->GetData(prevDataId)) - { - EnterEvadeMode(); - return; - } - pInstance->SetData(dataId, IN_PROGRESS); - } - me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE); - } - }; + me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE); + } }; enum EnslavedProtoDrake @@ -111,97 +100,86 @@ enum EnslavedProtoDrake const Position protodrakeCheckPos = {206.24f, -190.28f, 200.11f, 0.f}; -class npc_enslaved_proto_drake : public CreatureScript +struct npc_enslaved_proto_drake : public ScriptedAI { -public: - npc_enslaved_proto_drake() : CreatureScript("npc_enslaved_proto_drake") { } - - struct npc_enslaved_proto_drakeAI : public ScriptedAI + npc_enslaved_proto_drake(Creature* creature) : ScriptedAI(creature) { - npc_enslaved_proto_drakeAI(Creature* creature) : ScriptedAI(creature) - { - _setData = false; - } - - void Reset() override - { - _events.Reset(); - _events.ScheduleEvent(EVENT_REND, 2s, 3s); - _events.ScheduleEvent(EVENT_FLAME_BREATH, 5500ms, 7000ms); - _events.ScheduleEvent(EVENT_KNOCKAWAY, 3500ms, 6000ms); - } - - void MovementInform(uint32 type, uint32 id) override - { - if (type == WAYPOINT_MOTION_TYPE && id == POINT_LAST) - { - me->SetHomePosition(me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), 0.25f); - if (Vehicle* v = me->GetVehicleKit()) - if (Unit* p = v->GetPassenger(0)) - if (Creature* rider = p->ToCreature()) - rider->SetHomePosition(me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), 0.25f); - - me->SetCanFly(false); - me->SetDisableGravity(false); - me->SetFacingTo(0.25f); - me->SetImmuneToAll(false); - } - } - - void SetData(uint32 type, uint32 data) override - { - if (type == TYPE_PROTODRAKE_AT && data == DATA_PROTODRAKE_MOVE && !_setData && me->IsAlive() && me->GetDistance(protodrakeCheckPos) < 10.0f) - { - _setData = true; - me->SetCanFly(true); - me->SetDisableGravity(true); - me->GetMotionMaster()->MovePath(PATH_PROTODRAKE, false); - } - } - - void UpdateAI(uint32 diff) override - { - if (!UpdateVictim()) - return; - - _events.Update(diff); - - if (me->HasUnitState(UNIT_STATE_CASTING)) - return; - - while (uint32 eventid = _events.ExecuteEvent()) - { - switch (eventid) - { - case EVENT_REND: - DoCast(SPELL_REND); - _events.ScheduleEvent(EVENT_REND, 15s, 20s); - break; - case EVENT_FLAME_BREATH: - DoCast(SPELL_FLAME_BREATH); - _events.ScheduleEvent(EVENT_FLAME_BREATH, 11s, 12s); - break; - case EVENT_KNOCKAWAY: - DoCast(SPELL_KNOCK_AWAY); - _events.ScheduleEvent(EVENT_KNOCKAWAY, 7000ms, 8500ms); - break; - default: - break; - } - } - - DoMeleeAttackIfReady(); - } - - private: - bool _setData; - EventMap _events; - }; - - CreatureAI* GetAI(Creature* creature) const override - { - return GetUtgardeKeepAI(creature); + _setData = false; } + + void Reset() override + { + _events.Reset(); + _events.ScheduleEvent(EVENT_REND, 2s, 3s); + _events.ScheduleEvent(EVENT_FLAME_BREATH, 5500ms, 7000ms); + _events.ScheduleEvent(EVENT_KNOCKAWAY, 3500ms, 6000ms); + } + + void MovementInform(uint32 type, uint32 id) override + { + if (type == WAYPOINT_MOTION_TYPE && id == POINT_LAST) + { + me->SetHomePosition(me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), 0.25f); + if (Vehicle* v = me->GetVehicleKit()) + if (Unit* p = v->GetPassenger(0)) + if (Creature* rider = p->ToCreature()) + rider->SetHomePosition(me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), 0.25f); + + me->SetCanFly(false); + me->SetDisableGravity(false); + me->SetFacingTo(0.25f); + me->SetImmuneToAll(false); + } + } + + void SetData(uint32 type, uint32 data) override + { + if (type == TYPE_PROTODRAKE_AT && data == DATA_PROTODRAKE_MOVE && !_setData && me->IsAlive() && me->GetDistance(protodrakeCheckPos) < 10.0f) + { + _setData = true; + me->SetCanFly(true); + me->SetDisableGravity(true); + me->GetMotionMaster()->MovePath(PATH_PROTODRAKE, false); + } + } + + void UpdateAI(uint32 diff) override + { + if (!UpdateVictim()) + return; + + _events.Update(diff); + + if (me->HasUnitState(UNIT_STATE_CASTING)) + return; + + while (uint32 eventid = _events.ExecuteEvent()) + { + switch (eventid) + { + case EVENT_REND: + DoCast(SPELL_REND); + _events.ScheduleEvent(EVENT_REND, 15s, 20s); + break; + case EVENT_FLAME_BREATH: + DoCast(SPELL_FLAME_BREATH); + _events.ScheduleEvent(EVENT_FLAME_BREATH, 11s, 12s); + break; + case EVENT_KNOCKAWAY: + DoCast(SPELL_KNOCK_AWAY); + _events.ScheduleEvent(EVENT_KNOCKAWAY, 7000ms, 8500ms); + break; + default: + break; + } + } + + DoMeleeAttackIfReady(); + } + +private: + bool _setData; + EventMap _events; }; enum TickingTimeBomb @@ -234,8 +212,8 @@ class spell_ticking_time_bomb_aura : public AuraScript void AddSC_utgarde_keep() { - new npc_dragonflayer_forge_master(); - new npc_enslaved_proto_drake(); + RegisterUtgardeKeepCreatureAI(npc_dragonflayer_forge_master); + RegisterUtgardeKeepCreatureAI(npc_enslaved_proto_drake); RegisterSpellScript(spell_ticking_time_bomb_aura); } diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/utgarde_keep.h b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/utgarde_keep.h index 23f3bddb1..9ba762751 100644 --- a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/utgarde_keep.h +++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/utgarde_keep.h @@ -22,6 +22,10 @@ #define UtgardeKeepScriptName "instance_utgarde_keep" +#define DataHeader "UK" + +uint32 const EncounterCount = 3; + enum eData { DATA_KELESETH, @@ -83,4 +87,6 @@ inline AI* GetUtgardeKeepAI(T* obj) return GetInstanceAI(obj, UtgardeKeepScriptName); } +#define RegisterUtgardeKeepCreatureAI(ai_name) RegisterCreatureAIWithFactory(ai_name, GetUtgardeKeepAI) + #endif diff --git a/src/server/scripts/Northrend/VioletHold/boss_cyanigosa.cpp b/src/server/scripts/Northrend/VioletHold/boss_cyanigosa.cpp index da6771871..1475b9a3e 100644 --- a/src/server/scripts/Northrend/VioletHold/boss_cyanigosa.cpp +++ b/src/server/scripts/Northrend/VioletHold/boss_cyanigosa.cpp @@ -34,19 +34,12 @@ enum Yells enum eSpells { SPELL_ARCANE_VACUUM = 58694, - SPELL_BLIZZARD_N = 58693, - SPELL_BLIZZARD_H = 59369, + SPELL_BLIZZARD = 58693, SPELL_MANA_DESTRUCTION = 59374, - SPELL_TAIL_SWEEP_N = 58690, - SPELL_TAIL_SWEEP_H = 59283, - SPELL_UNCONTROLLABLE_ENERGY_N = 58688, - SPELL_UNCONTROLLABLE_ENERGY_H = 59281, + SPELL_TAIL_SWEEP = 58690, + SPELL_UNCONTROLLABLE_ENERGY = 58688 }; -#define SPELL_BLIZZARD DUNGEON_MODE(SPELL_BLIZZARD_N, SPELL_BLIZZARD_H) -#define SPELL_TAIL_SWEEP DUNGEON_MODE(SPELL_TAIL_SWEEP_N, SPELL_TAIL_SWEEP_H) -#define SPELL_UNCONTROLLABLE_ENERGY DUNGEON_MODE(SPELL_UNCONTROLLABLE_ENERGY_N, SPELL_UNCONTROLLABLE_ENERGY_H) - enum eEvents { EVENT_SPELL_ARCANE_VACUUM = 1, diff --git a/src/server/scripts/Northrend/VioletHold/boss_erekem.cpp b/src/server/scripts/Northrend/VioletHold/boss_erekem.cpp index 2d3402791..24b352a9a 100644 --- a/src/server/scripts/Northrend/VioletHold/boss_erekem.cpp +++ b/src/server/scripts/Northrend/VioletHold/boss_erekem.cpp @@ -23,10 +23,8 @@ enum eSpells { SPELL_BLOODLUST = 54516, SPELL_BREAK_BONDS = 59463, - SPELL_CHAIN_HEAL_N = 54481, - SPELL_CHAIN_HEAL_H = 59473, - SPELL_EARTH_SHIELD_N = 54479, - SPELL_EARTH_SHIELD_H = 59471, + SPELL_CHAIN_HEAL = 54481, + SPELL_EARTH_SHIELD = 54479, //SPELL_EARTH_SHIELD_TRIGGERED_N = 54480, //SPELL_EARTH_SHIELD_TRIGGERED_H = 59472, SPELL_EARTH_SHOCK = 54511, @@ -34,9 +32,6 @@ enum eSpells SPELL_STORMSTRIKE = 51876, }; -#define SPELL_CHAIN_HEAL DUNGEON_MODE(SPELL_CHAIN_HEAL_N, SPELL_CHAIN_HEAL_H) -#define SPELL_EARTH_SHIELD DUNGEON_MODE(SPELL_EARTH_SHIELD_N, SPELL_EARTH_SHIELD_H) - enum Yells { SAY_AGGRO = 0, diff --git a/src/server/scripts/Northrend/VioletHold/boss_ichoron.cpp b/src/server/scripts/Northrend/VioletHold/boss_ichoron.cpp index affe37877..6ac9bdbf3 100644 --- a/src/server/scripts/Northrend/VioletHold/boss_ichoron.cpp +++ b/src/server/scripts/Northrend/VioletHold/boss_ichoron.cpp @@ -53,23 +53,16 @@ enum eCreatures enum eSpells { SPELL_DRAINED = 59820, - SPELL_FRENZY_N = 54312, - SPELL_FRENZY_H = 59522, + SPELL_FRENZY = 54312, SPELL_PROTECTIVE_BUBBLE = 54306, - SPELL_WATER_BLAST_N = 54237, - SPELL_WATER_BLAST_H = 59520, - SPELL_WATER_BOLT_VOLLEY_N = 54241, - SPELL_WATER_BOLT_VOLLEY_H = 59521, + SPELL_WATER_BLAST = 54237, + SPELL_WATER_BOLT_VOLLEY = 54241, SPELL_SPLASH = 59516, // casted by globule upon death SPELL_WATER_GLOBULE = 54268, // casted when hit by visual SPELL_CREATE_GLOBULE_VISUAL = 54260, // tar 25 }; -#define SPELL_WATER_BLAST DUNGEON_MODE(SPELL_WATER_BLAST_N, SPELL_WATER_BLAST_H) -#define SPELL_WATER_BOLT_VOLLEY DUNGEON_MODE(SPELL_WATER_BOLT_VOLLEY_N, SPELL_WATER_BOLT_VOLLEY_H) -#define SPELL_FRENZY DUNGEON_MODE(SPELL_FRENZY_N, SPELL_FRENZY_H) - class boss_ichoron : public CreatureScript { public: diff --git a/src/server/scripts/Northrend/VioletHold/boss_lavanthor.cpp b/src/server/scripts/Northrend/VioletHold/boss_lavanthor.cpp index a16341ced..d3082aa82 100644 --- a/src/server/scripts/Northrend/VioletHold/boss_lavanthor.cpp +++ b/src/server/scripts/Northrend/VioletHold/boss_lavanthor.cpp @@ -22,18 +22,11 @@ enum eSpells { SPELL_CAUTERIZING_FLAMES = 59466, - SPELL_FIREBOLT_N = 54235, - SPELL_FIREBOLT_H = 59468, - SPELL_FLAME_BREATH_N = 54282, - SPELL_FLAME_BREATH_H = 59469, - SPELL_LAVA_BURN_N = 54249, - SPELL_LAVA_BURN_H = 59594, + SPELL_FIREBOLT = 54235, + SPELL_FLAME_BREATH = 54282, + SPELL_LAVA_BURN = 54249 }; -#define SPELL_FIREBOLT DUNGEON_MODE(SPELL_FIREBOLT_N, SPELL_FIREBOLT_H) -#define SPELL_FLAME_BREATH DUNGEON_MODE(SPELL_FLAME_BREATH_N, SPELL_FLAME_BREATH_H) -#define SPELL_LAVA_BURN DUNGEON_MODE(SPELL_LAVA_BURN_N, SPELL_LAVA_BURN_H) - enum eEvents { EVENT_SPELL_FIREBOLT = 1, diff --git a/src/server/scripts/Northrend/VioletHold/boss_moragg.cpp b/src/server/scripts/Northrend/VioletHold/boss_moragg.cpp index 0b517c0c2..0fc29dab3 100644 --- a/src/server/scripts/Northrend/VioletHold/boss_moragg.cpp +++ b/src/server/scripts/Northrend/VioletHold/boss_moragg.cpp @@ -24,12 +24,10 @@ enum eSpells { - SPELL_RAY_OF_SUFFERING_N = 54442, - SPELL_RAY_OF_SUFFERING_H = 59524, + SPELL_RAY_OF_SUFFERING = 54442, //SPELL_RAY_OF_SUFFERING_TRIGGERED = 54417, - SPELL_RAY_OF_PAIN_N = 54438, - SPELL_RAY_OF_PAIN_H = 59523, + SPELL_RAY_OF_PAIN = 54438, //SPELL_RAY_OF_PAIN_TRIGGERED_N = 54416, //SPELL_RAY_OF_PAIN_TRIGGERED_H = 59525, @@ -37,9 +35,6 @@ enum eSpells SPELL_OPTIC_LINK = 54396, }; -#define SPELL_RAY_OF_SUFFERING DUNGEON_MODE(SPELL_RAY_OF_SUFFERING_N, SPELL_RAY_OF_SUFFERING_H) -#define SPELL_RAY_OF_PAIN DUNGEON_MODE(SPELL_RAY_OF_PAIN_N, SPELL_RAY_OF_PAIN_H) - enum eEvents { EVENT_SPELL_CORROSIVE_SALIVA = 1, diff --git a/src/server/scripts/Northrend/VioletHold/boss_xevozz.cpp b/src/server/scripts/Northrend/VioletHold/boss_xevozz.cpp index 69eb1b7be..27b354bee 100644 --- a/src/server/scripts/Northrend/VioletHold/boss_xevozz.cpp +++ b/src/server/scripts/Northrend/VioletHold/boss_xevozz.cpp @@ -32,24 +32,17 @@ enum Yells enum eSpells { - SPELL_ARCANE_BARRAGE_VOLLEY_N = 54202, - SPELL_ARCANE_BARRAGE_VOLLEY_H = 59483, - SPELL_ARCANE_BUFFET_N = 54226, - SPELL_ARCANE_BUFFET_H = 59485, + SPELL_ARCANE_BARRAGE_VOLLEY = 54202, + SPELL_ARCANE_BUFFET = 54226, SPELL_SUMMON_ETHEREAL_SPHERE_1 = 54102, SPELL_SUMMON_ETHEREAL_SPHERE_2 = 54137, SPELL_SUMMON_ETHEREAL_SPHERE_3 = 54138, - SPELL_ARCANE_POWER_N = 54160, - SPELL_ARCANE_POWER_H = 59474, + SPELL_ARCANE_POWER = 54160 //SPELL_SUMMON_PLAYERS = 54164, // not used //SPELL_POWER_BALL_VISUAL = 54141, }; -#define SPELL_ARCANE_BARRAGE_VOLLEY DUNGEON_MODE(SPELL_ARCANE_BARRAGE_VOLLEY_N, SPELL_ARCANE_BARRAGE_VOLLEY_H) -#define SPELL_ARCANE_BUFFET DUNGEON_MODE(SPELL_ARCANE_BUFFET_N, SPELL_ARCANE_BUFFET_H) -#define SPELL_ARCANE_POWER DUNGEON_MODE(SPELL_ARCANE_POWER_N, SPELL_ARCANE_POWER_H) - enum eEvents { EVENT_SPELL_ARCANE_BARRAGE_VOLLEY = 1, diff --git a/src/server/scripts/Northrend/VioletHold/boss_zuramat.cpp b/src/server/scripts/Northrend/VioletHold/boss_zuramat.cpp index 96eed54b9..f7ec86e1b 100644 --- a/src/server/scripts/Northrend/VioletHold/boss_zuramat.cpp +++ b/src/server/scripts/Northrend/VioletHold/boss_zuramat.cpp @@ -32,10 +32,8 @@ enum Yells enum eSpells { - SPELL_SHROUD_OF_DARKNESS_N = 54524, - SPELL_SHROUD_OF_DARKNESS_H = 59745, - SPELL_VOID_SHIFT_N = 54361, - SPELL_VOID_SHIFT_H = 59743, + SPELL_SHROUD_OF_DARKNESS = 54524, + SPELL_VOID_SHIFT = 54361, SPELL_SUMMON_VOID_SENTRY = 54369, SPELL_SUMMON_VOID_SENTRY_BALL = 58650, @@ -44,8 +42,6 @@ enum eSpells }; #define NPC_VOID_SENTRY_BALL 29365 -#define SPELL_SHROUD_OF_DARKNESS DUNGEON_MODE(SPELL_SHROUD_OF_DARKNESS_N, SPELL_SHROUD_OF_DARKNESS_H) -#define SPELL_VOID_SHIFT DUNGEON_MODE(SPELL_VOID_SHIFT_N, SPELL_VOID_SHIFT_H) enum eEvents { diff --git a/src/server/scripts/Northrend/zone_storm_peaks.cpp b/src/server/scripts/Northrend/zone_storm_peaks.cpp index df5621f74..b3317b9df 100644 --- a/src/server/scripts/Northrend/zone_storm_peaks.cpp +++ b/src/server/scripts/Northrend/zone_storm_peaks.cpp @@ -350,7 +350,7 @@ public: void EnterEvadeMode(EvadeReason why) override { - if (switching || me->HasAuraType(SPELL_AURA_CONTROL_VEHICLE)) + if (switching || me->HasControlVehicleAura()) return; ScriptedAI::EnterEvadeMode(why); } diff --git a/src/server/scripts/Pet/pet_generic.cpp b/src/server/scripts/Pet/pet_generic.cpp index 539b29bc1..6e91d2a19 100644 --- a/src/server/scripts/Pet/pet_generic.cpp +++ b/src/server/scripts/Pet/pet_generic.cpp @@ -597,7 +597,7 @@ struct npc_pet_gen_wind_rider_cub : public NullCreatureAI checkTimer2 = 0; if (Unit* owner = me->GetOwner()) { - if (owner->HasAuraType(SPELL_AURA_MOD_INCREASE_MOUNTED_FLIGHT_SPEED) || owner->HasAuraType(SPELL_AURA_MOD_INCREASE_MOUNTED_SPEED)) + if (owner->HasIncreaseMountedFlightSpeedAura() || owner->HasIncreaseMountedSpeedAura()) { isFlying = true; me->SetCanFly(true); diff --git a/src/server/scripts/Spells/spell_dk.cpp b/src/server/scripts/Spells/spell_dk.cpp index b16a931ef..0ec9a5fcd 100644 --- a/src/server/scripts/Spells/spell_dk.cpp +++ b/src/server/scripts/Spells/spell_dk.cpp @@ -1373,7 +1373,7 @@ class spell_dk_death_grip : public SpellScript float casterZ = GetCaster()->GetPositionZ(); // for Ring of Valor WorldLocation gripPos = *GetExplTargetDest(); if (Unit* target = GetHitUnit()) - if (!target->HasAuraType(SPELL_AURA_DEFLECT_SPELLS) || target->HasUnitState(UNIT_STATE_STUNNED)) // Deterrence + if (!target->HasDetectSpellsAura() || target->HasUnitState(UNIT_STATE_STUNNED)) // Deterrence { if (target != GetCaster()) { diff --git a/src/server/scripts/Spells/spell_generic.cpp b/src/server/scripts/Spells/spell_generic.cpp index 04986c8c6..b29818522 100644 --- a/src/server/scripts/Spells/spell_generic.cpp +++ b/src/server/scripts/Spells/spell_generic.cpp @@ -517,7 +517,7 @@ class spell_gen_grow_flower_patch : public SpellScript SpellCastResult CheckCast() { - if (GetCaster()->HasAuraType(SPELL_AURA_MOD_STEALTH) || GetCaster()->HasAuraType(SPELL_AURA_MOD_INVISIBILITY)) + if (GetCaster()->HasStealthAura() || GetCaster()->HasInvisibilityAura()) return SPELL_FAILED_DONT_REPORT; return SPELL_CAST_OK; diff --git a/src/server/scripts/Spells/spell_item.cpp b/src/server/scripts/Spells/spell_item.cpp index 6441d7726..c5d16318c 100644 --- a/src/server/scripts/Spells/spell_item.cpp +++ b/src/server/scripts/Spells/spell_item.cpp @@ -2881,7 +2881,7 @@ class spell_item_reindeer_transformation : public SpellScript void HandleDummy(SpellEffIndex /* effIndex */) { Unit* caster = GetCaster(); - if (caster->HasAuraType(SPELL_AURA_MOUNTED)) + if (caster->HasMountedAura()) { float flyspeed = caster->GetSpeedRate(MOVE_FLIGHT); float speed = caster->GetSpeedRate(MOVE_RUN); @@ -3172,7 +3172,7 @@ class spell_item_brewfest_mount_transformation : public SpellScript return; } - if (caster->HasAuraType(SPELL_AURA_MOUNTED)) + if (caster->HasMountedAura()) { caster->RemoveAurasByType(SPELL_AURA_MOUNTED); uint32 spell_id; diff --git a/src/server/scripts/Spells/spell_quest.cpp b/src/server/scripts/Spells/spell_quest.cpp index c0a18506b..02f5105f0 100644 --- a/src/server/scripts/Spells/spell_quest.cpp +++ b/src/server/scripts/Spells/spell_quest.cpp @@ -1830,7 +1830,7 @@ class spell_q11010_q11102_q11023_aggro_check : public SpellScript { if (Player* playerTarget = GetHitPlayer()) // Check if found player target is on fly mount or using flying form - if (playerTarget->HasAuraType(SPELL_AURA_FLY) || playerTarget->HasAuraType(SPELL_AURA_MOD_INCREASE_MOUNTED_FLIGHT_SPEED)) + if (playerTarget->HasFlyAura() || playerTarget->HasIncreaseMountedFlightSpeedAura()) playerTarget->CastSpell(playerTarget, SPELL_FLAK_CANNON_TRIGGER, TRIGGERED_FULL_MASK); } @@ -1873,7 +1873,7 @@ class spell_q11010_q11102_q11023_choose_loc : public SpellScript Cell::VisitWorldObjects(caster, searcher, 65.0f); for (std::list::const_iterator itr = playerList.begin(); itr != playerList.end(); ++itr) // Check if found player target is on fly mount or using flying form - if ((*itr)->HasAuraType(SPELL_AURA_FLY) || (*itr)->HasAuraType(SPELL_AURA_MOD_INCREASE_MOUNTED_FLIGHT_SPEED)) + if ((*itr)->HasFlyAura() || (*itr)->HasIncreaseMountedFlightSpeedAura()) // Summom Fel Cannon (bunny version) at found player caster->SummonCreature(NPC_FEL_CANNON2, (*itr)->GetPositionX(), (*itr)->GetPositionY(), (*itr)->GetPositionZ()); } @@ -1894,7 +1894,7 @@ class spell_q11010_q11102_q11023_q11008_check_fly_mount : public SpellScript { Unit* caster = GetCaster(); // This spell will be cast only if caster has one of these auras - if (!(caster->HasAuraType(SPELL_AURA_FLY) || caster->HasAuraType(SPELL_AURA_MOD_INCREASE_MOUNTED_FLIGHT_SPEED))) + if (!(caster->HasFlyAura() || caster->HasIncreaseMountedFlightSpeedAura())) return SPELL_FAILED_CANT_DO_THAT_RIGHT_NOW; return SPELL_CAST_OK; } diff --git a/src/tools/map_extractor/System.cpp b/src/tools/map_extractor/System.cpp index 6f9806e34..0b0f744f4 100644 --- a/src/tools/map_extractor/System.cpp +++ b/src/tools/map_extractor/System.cpp @@ -1144,7 +1144,7 @@ void LoadLocaleMPQFiles(int const locale) sprintf(filename, "%s/Data/%s/locale-%s.MPQ", input_path, langs[locale], langs[locale]); new MPQArchive(filename); - for (int i = 1; i < 5; ++i) + for (int i = 1; i <= 9; ++i) { char ext[3] = ""; if (i > 1)