diff --git a/.github/workflows/core_modules_build.yml b/.github/workflows/core_modules_build.yml index 090ceae92092f7..a0381601dc41b9 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 == 'azerothcore/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 == 'azerothcore/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 91dd7c4dccdd3b..875a99417c0737 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 adf648243f301a..0df3df27af7fd9 100644 --- a/.gitignore +++ b/.gitignore @@ -29,6 +29,9 @@ !.gitkeep +# default build directory if not specified by CMAKE configuration +/out/* + # #Generic # @@ -63,6 +66,7 @@ nbproject/ .idea cmake-build-*/* coverage-report/ +.vs # # Eclipse diff --git a/apps/startup-scripts/gdb.conf b/apps/startup-scripts/gdb.conf index 34c1829fd4960a..d6802a56b6e06d 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 d1768667e67c32..47bbedce752b14 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_30_00.sql b/data/sql/updates/db_world/2024_11_30_00.sql new file mode 100644 index 00000000000000..5afb60cd67dd74 --- /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 00000000000000..28b75f3c72b12d --- /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 00000000000000..69e2e0a6904b44 --- /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 00000000000000..dbd1dd472c46e5 --- /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 00000000000000..c0aec0a4f44472 --- /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 00000000000000..e6e921eea037bd --- /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 00000000000000..2052afe3eceb53 --- /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 00000000000000..3a57c693aeec02 --- /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 00000000000000..3b8786e4bdbe13 --- /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 00000000000000..ac93827e52465d --- /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 00000000000000..5640d3bcb60629 --- /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 00000000000000..5af96019d01a9a --- /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 00000000000000..f0dbcf39fd376a --- /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 00000000000000..d9a3179d685e42 --- /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 00000000000000..82c93598883d19 --- /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 00000000000000..bf48e53da9563e --- /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 00000000000000..5cac7db01e918b --- /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 00000000000000..957607c5251c34 --- /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/data/sql/updates/db_world/2024_12_05_00.sql b/data/sql/updates/db_world/2024_12_05_00.sql new file mode 100644 index 00000000000000..323a7ac3d2edc6 --- /dev/null +++ b/data/sql/updates/db_world/2024_12_05_00.sql @@ -0,0 +1,5 @@ +-- DB update 2024_12_03_02 -> 2024_12_05_00 +-- +DELETE FROM `spell_script_names` WHERE `spell_id` = 43657; +INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES +(43657, 'spell_electrical_storm_proc'); diff --git a/src/common/Collision/Models/ModelInstance.cpp b/src/common/Collision/Models/ModelInstance.cpp index 4a540a7857d1a6..a18d5d4f9f70c0 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 68fb037e839ca5..01d182623dedb5 100644 --- a/src/server/apps/worldserver/Main.cpp +++ b/src/server/apps/worldserver/Main.cpp @@ -467,7 +467,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 5b20d86930c5d6..79559524fdebe7 100644 --- a/src/server/database/Database/Implementation/LoginDatabase.cpp +++ b/src/server/database/Database/Implementation/LoginDatabase.cpp @@ -139,6 +139,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 36509991352eef..713dc3b07c1062 100644 --- a/src/server/database/Database/Implementation/LoginDatabase.h +++ b/src/server/database/Database/Implementation/LoginDatabase.h @@ -119,6 +119,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 c6e1c5d0553b3d..323f4ccbd8d204 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 527d74764b9f32..ebfdcfe0705bf2 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 4047ba8e194017..33fff5f7464b17 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/NpcBots/bot_GridNotifiers.h b/src/server/game/AI/NpcBots/bot_GridNotifiers.h index d814189c018da6..6b7c926325a75c 100644 --- a/src/server/game/AI/NpcBots/bot_GridNotifiers.h +++ b/src/server/game/AI/NpcBots/bot_GridNotifiers.h @@ -360,7 +360,7 @@ class PolyUnitCheck return false; if (u->IsPolymorphed() || u->isFrozen() || - u->isInRoots() || + u->HasRootAura() || u->HasAuraType(SPELL_AURA_PERIODIC_DAMAGE) || u->HasAuraType(SPELL_AURA_MOD_PACIFY) || u->HasAuraType(SPELL_AURA_MOD_PACIFY_SILENCE) || @@ -396,7 +396,7 @@ class FearUnitCheck return false; if (u->HasUnitState(UNIT_STATE_CONFUSED | UNIT_STATE_STUNNED | UNIT_STATE_FLEEING | UNIT_STATE_DISTRACTED | UNIT_STATE_CONFUSED_MOVE | UNIT_STATE_FLEEING_MOVE)) return false; - if (u->isFeared()) + if (u->HasFearAura()) return false; if (u->HasAuraType(SPELL_AURA_MOD_PACIFY) || u->HasAuraType(SPELL_AURA_MOD_PACIFY_SILENCE)) return false; @@ -597,7 +597,7 @@ class RootUnitCheck return false; if (!u->isTargetableForAttack(false)) return false; - if (u->isFrozen() || u->isInRoots()) + if (u->isFrozen() || u->HasRootAura()) return false; if (!u->getAttackers().empty()) return false; diff --git a/src/server/game/AI/NpcBots/bot_ai.cpp b/src/server/game/AI/NpcBots/bot_ai.cpp index 01c259020b0c6a..73c0c06548a69b 100644 --- a/src/server/game/AI/NpcBots/bot_ai.cpp +++ b/src/server/game/AI/NpcBots/bot_ai.cpp @@ -14894,7 +14894,7 @@ bool bot_ai::IsOffTank(Unit const* unit) const bool bot_ai::CCed(Unit const* target, bool root) { - return target ? target->HasUnitState(UNIT_STATE_CONFUSED | UNIT_STATE_STUNNED | UNIT_STATE_FLEEING | UNIT_STATE_DISTRACTED | UNIT_STATE_CONFUSED_MOVE | UNIT_STATE_FLEEING_MOVE) || (root && (target->HasUnitState(UNIT_STATE_ROOT) || target->isFrozen() || target->isInRoots())) : true; + return target ? target->HasUnitState(UNIT_STATE_CONFUSED | UNIT_STATE_STUNNED | UNIT_STATE_FLEEING | UNIT_STATE_DISTRACTED | UNIT_STATE_CONFUSED_MOVE | UNIT_STATE_FLEEING_MOVE) || (root && (target->HasUnitState(UNIT_STATE_ROOT) || target->isFrozen() || target->HasRootAura())) : true; } //AI initialization common //Called at ai reset, level change (spawned = true) diff --git a/src/server/game/AI/ScriptedAI/ScriptedCreature.cpp b/src/server/game/AI/ScriptedAI/ScriptedCreature.cpp index 50a7f8a8b4d101..64678db31ee65c 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 0fd1c861b3783a..d5f7f729f7ca1d 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 8f134f27d2ea39..6ef82aea48a233 100644 --- a/src/server/game/AI/SmartScripts/SmartScript.cpp +++ b/src/server/game/AI/SmartScripts/SmartScript.cpp @@ -3514,8 +3514,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 4d4a3541639348..4544f73c876a4e 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 bf414f532c0122..3a31acbcf7ecf7 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 8e33138b16203f..2b93a7545f5275 100644 --- a/src/server/game/Battlegrounds/Battleground.cpp +++ b/src/server/game/Battlegrounds/Battleground.cpp @@ -951,7 +951,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()) @@ -1124,7 +1124,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 9d0a325220c7ba..443a8a46cff8a9 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 0867ec9a7b5530..14a676961dfc7e 100644 --- a/src/server/game/Entities/Creature/Creature.cpp +++ b/src/server/game/Entities/Creature/Creature.cpp @@ -1126,7 +1126,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); @@ -1274,8 +1274,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); @@ -2831,7 +2833,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; } @@ -3669,14 +3671,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 73f055b31fe175..bdbf4905090351 100644 --- a/src/server/game/Entities/Object/Object.cpp +++ b/src/server/game/Entities/Object/Object.cpp @@ -3186,7 +3186,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 141eab8813a1e3..5f4d3057a586b9 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 ed237cf71a0b5a..bea652533bc280 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -826,7 +826,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); @@ -1824,8 +1824,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(); } @@ -1919,7 +1919,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) @@ -1931,7 +1931,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 @@ -2037,7 +2037,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; @@ -2056,7 +2056,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)); } @@ -2602,14 +2602,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()) @@ -4659,7 +4662,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; @@ -4884,10 +4887,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); @@ -6215,7 +6216,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(); @@ -6371,7 +6372,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()) @@ -9174,7 +9175,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(); @@ -11834,7 +11834,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); @@ -11846,11 +11846,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(); @@ -12240,13 +12240,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); @@ -14036,8 +14036,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 d83e15f3c8dbee..b0fd075f944967 100644 --- a/src/server/game/Entities/Player/PlayerStorage.cpp +++ b/src/server/game/Entities/Player/PlayerStorage.cpp @@ -5137,7 +5137,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 dbbe8f2222d687..2c966019d5f60c 100644 --- a/src/server/game/Entities/Player/PlayerUpdates.cpp +++ b/src/server/game/Entities/Player/PlayerUpdates.cpp @@ -360,7 +360,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) { @@ -1728,7 +1728,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 31713503a881ae..82a39656097e51 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -3054,7 +3054,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."); } @@ -3102,7 +3102,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."); } @@ -3362,7 +3362,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() && @@ -3460,7 +3460,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; @@ -3476,7 +3476,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()) @@ -3726,7 +3726,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; @@ -9573,7 +9573,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; @@ -10956,11 +10956,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) @@ -11336,6 +11336,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()) @@ -11678,7 +11683,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); @@ -12586,7 +12591,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; @@ -12801,7 +12806,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); @@ -13498,7 +13503,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; } @@ -13531,7 +13536,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; } @@ -13578,7 +13583,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(); @@ -13602,7 +13607,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; } @@ -13668,7 +13673,7 @@ const 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) @@ -13746,7 +13751,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. @@ -14093,7 +14098,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; @@ -15627,7 +15632,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); @@ -19042,7 +19047,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(), @@ -19304,7 +19309,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); @@ -19319,19 +19324,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); @@ -19342,19 +19347,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()); @@ -20475,7 +20480,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 d49a7177ed2fb4..2d9375c4b82b54 100644 --- a/src/server/game/Entities/Unit/Unit.h +++ b/src/server/game/Entities/Unit/Unit.h @@ -1609,8 +1609,6 @@ class Unit : public WorldObject /*********************************************************/ /*** 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); } @@ -1686,8 +1684,6 @@ class Unit : public WorldObject // 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); } @@ -1711,6 +1707,55 @@ class Unit : public WorldObject [[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; @@ -1765,6 +1810,7 @@ class Unit : public WorldObject // 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 f6f7fecb3f887a..f37cf5d3a99713 100644 --- a/src/server/game/Globals/ObjectMgr.cpp +++ b/src/server/game/Globals/ObjectMgr.cpp @@ -9029,7 +9029,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; @@ -9045,7 +9045,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 3453237c4ebdf4..52ae0d0c2e5c99 100644 --- a/src/server/game/Globals/ObjectMgr.h +++ b/src/server/game/Globals/ObjectMgr.h @@ -1364,7 +1364,7 @@ class ObjectMgr 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 cf6dd56ecc2a0b..371957dbb64719 100644 --- a/src/server/game/Grids/Notifiers/GridNotifiers.cpp +++ b/src/server/game/Grids/Notifiers/GridNotifiers.cpp @@ -374,7 +374,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 3d383a84724b28..faf8c725c3591b 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 ba650b87103cac..b7e809e9c80f3e 100644 --- a/src/server/game/Handlers/CharacterHandler.cpp +++ b/src/server/game/Handlers/CharacterHandler.cpp @@ -1068,7 +1068,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 9d0cfbe65f21ad..b2f4647e464b54 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 31bbfd07ed1150..d7cf92181e74f5 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 3c40f291b6250d..f5d40575525120 100644 --- a/src/server/game/Handlers/SpellHandler.cpp +++ b/src/server/game/Handlers/SpellHandler.cpp @@ -639,7 +639,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 } @@ -781,7 +781,7 @@ void WorldSession::HandleMirrorImageDataRequest(WorldPacket& recvData) } //end npcbot - 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 e4215ff1d13f21..2f0dd99d920d1d 100644 --- a/src/server/game/Loot/LootMgr.cpp +++ b/src/server/game/Loot/LootMgr.cpp @@ -107,7 +107,7 @@ class LootTemplate::LootGroup // A set of loot def 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 0ba37596011534..ebdfc2d3dc8fc2 100644 --- a/src/server/game/Loot/LootMgr.h +++ b/src/server/game/Loot/LootMgr.h @@ -219,6 +219,7 @@ class LootStore 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 @@ class LootTemplate // 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 335c9de391238d..3f8e891382037c 100644 --- a/src/server/game/Server/WorldSession.cpp +++ b/src/server/game/Server/WorldSession.cpp @@ -605,7 +605,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); @@ -1029,7 +1029,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 @@ -1054,12 +1054,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. @@ -1068,7 +1068,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 df2dce00963f5c..ea25f9a85e108c 100644 --- a/src/server/game/Spells/Auras/SpellAuraEffects.cpp +++ b/src/server/game/Spells/Auras/SpellAuraEffects.cpp @@ -498,28 +498,33 @@ int32 AuraEffect::CalculateAmount(Unit* caster) case SPELL_AURA_MOD_STUN: case SPELL_AURA_MOD_ROOT: case SPELL_AURA_TRANSFORM: + { m_canBeRecalculated = false; if (!m_spellInfo->ProcFlags || m_spellInfo->HasAura(SPELL_AURA_PROC_TRIGGER_SPELL)) // xinef: skip auras with proctriggerspell, they must have procflags... break; - amount = int32(GetBase()->GetUnitOwner()->CountPctFromMaxHealth(10)); - if (caster) + if (!caster) + break; + // not impacted by gear + // not impacted by target level + // not impacted by rank + // asumption - depends on caster level + amount = sObjectMgr->GetCreatureBaseStats(caster->GetLevel(), Classes::CLASS_WARRIOR)->BaseHealth[EXPANSION_WRATH_OF_THE_LICH_KING] / 4.75f; + // Glyphs increasing damage cap + Unit::AuraEffectList const& overrideClassScripts = caster->GetAuraEffectsByType(SPELL_AURA_OVERRIDE_CLASS_SCRIPTS); + for (Unit::AuraEffectList::const_iterator itr = overrideClassScripts.begin(); itr != overrideClassScripts.end(); ++itr) { - // Glyphs increasing damage cap - Unit::AuraEffectList const& overrideClassScripts = caster->GetAuraEffectsByType(SPELL_AURA_OVERRIDE_CLASS_SCRIPTS); - for (Unit::AuraEffectList::const_iterator itr = overrideClassScripts.begin(); itr != overrideClassScripts.end(); ++itr) + if ((*itr)->IsAffectedOnSpell(m_spellInfo)) { - if ((*itr)->IsAffectedOnSpell(m_spellInfo)) + // Glyph of Fear, Glyph of Frost nova and similar auras + if ((*itr)->GetMiscValue() == 7801) { - // Glyph of Fear, Glyph of Frost nova and similar auras - if ((*itr)->GetMiscValue() == 7801) - { - AddPct(amount, (*itr)->GetAmount()); - break; - } + AddPct(amount, (*itr)->GetAmount()); + break; } } } break; + } case SPELL_AURA_SCHOOL_ABSORB: case SPELL_AURA_MANA_SHIELD: m_canBeRecalculated = false; @@ -1578,7 +1583,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()); @@ -1607,7 +1612,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 @@ -1670,7 +1675,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()); @@ -1711,7 +1716,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); @@ -1768,7 +1773,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) @@ -1835,7 +1840,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); @@ -2070,7 +2075,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)) @@ -2992,7 +2997,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); @@ -3094,7 +3099,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); @@ -3116,7 +3121,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); } @@ -3132,7 +3137,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); @@ -3153,7 +3158,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); } @@ -3371,7 +3376,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; } @@ -3595,7 +3600,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. @@ -3790,7 +3795,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); @@ -5847,12 +5852,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; @@ -5870,7 +5875,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 70cf44579f96bd..6655ff81f72870 100644 --- a/src/server/game/Spells/Spell.cpp +++ b/src/server/game/Spells/Spell.cpp @@ -3167,7 +3167,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); diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp index ce35bb7bd02fa3..fd1900309c31ad 100644 --- a/src/server/game/Spells/SpellEffects.cpp +++ b/src/server/game/Spells/SpellEffects.cpp @@ -3726,7 +3726,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; } @@ -4435,7 +4435,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 e10196c9668b25..4271557de1c15b 100644 --- a/src/server/game/Spells/SpellInfo.cpp +++ b/src/server/game/Spells/SpellInfo.cpp @@ -1822,11 +1822,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; } @@ -1973,7 +1973,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 f6a8362b4298c1..6ba092621ee2b6 100644 --- a/src/server/game/Spells/SpellInfoCorrections.cpp +++ b/src/server/game/Spells/SpellInfoCorrections.cpp @@ -4918,6 +4918,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 7548c552ff7779..781976ccfaf2b6 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 fb910444ec49ba..5955ec6b5133a3 100644 --- a/src/server/game/World/World.cpp +++ b/src/server/game/World/World.cpp @@ -2059,8 +2059,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 646f8a79352f93..e90da5af4a2439 100644 --- a/src/server/scripts/Commands/cs_reset.cpp +++ b/src/server/scripts/Commands/cs_reset.cpp @@ -117,7 +117,7 @@ class reset_commandscript : public CommandScript 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 39d2fd8a90b119..795734d6fcfbbd 100644 --- a/src/server/scripts/Commands/cs_server.cpp +++ b/src/server/scripts/Commands/cs_server.cpp @@ -137,7 +137,7 @@ class server_commandscript : public CommandScript 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 259fd89ad71a3d..59ce640ea583cb 100644 --- a/src/server/scripts/Commands/cs_tele.cpp +++ b/src/server/scripts/Commands/cs_tele.cpp @@ -72,7 +72,7 @@ class tele_commandscript : public CommandScript 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 a103a521c99376..b0164e2cf7c7d0 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/boss_nightbane.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_nightbane.cpp index 000d7088d721dc..1dc1995f4fb831 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/boss_nightbane.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_nightbane.cpp @@ -124,7 +124,7 @@ struct boss_nightbane : public BossAI _triggerCountTakeOffWhileFlying = 0; _airPhasesCompleted = 0; - me->SetSpeed(MOVE_RUN, me->GetCreatureTemplate()->speed_run); + me->SetSpeed(MOVE_RUN, 2.0f); me->SetCanFly(true); me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); me->SetReactState(REACT_PASSIVE); @@ -300,7 +300,6 @@ struct boss_nightbane : public BossAI { me->ClearUnitState(UNIT_STATE_IGNORE_PATHFINDING); me->GetMotionMaster()->MovePoint(POINT_INTRO_LAND, introLandPos); - me->SetSpeed(MOVE_RUN, 2.0f); }).Schedule(3s, [this](TaskContext /*context*/) { me->SetDisableGravity(false); diff --git a/src/server/scripts/EasternKingdoms/Karazhan/instance_karazhan.cpp b/src/server/scripts/EasternKingdoms/Karazhan/instance_karazhan.cpp index 95d0ccd44d4b45..ddc653f32d928c 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/instance_karazhan.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/instance_karazhan.cpp @@ -97,15 +97,6 @@ class instance_karazhan : public InstanceMapScript { 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 @@ class instance_karazhan : public InstanceMapScript 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 @@ class instance_karazhan : public InstanceMapScript { 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 @@ class instance_karazhan : public InstanceMapScript 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 @@ class instance_karazhan : public InstanceMapScript 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 bab5e26021b4f0..7a8fc0ac251494 100644 --- a/src/server/scripts/EasternKingdoms/ZulAman/boss_akilzon.cpp +++ b/src/server/scripts/EasternKingdoms/ZulAman/boss_akilzon.cpp @@ -20,6 +20,8 @@ #include "GridNotifiers.h" #include "GridNotifiersImpl.h" #include "ScriptedCreature.h" +#include "SpellAuras.h" +#include "SpellAuraEffects.h" #include "SpellScript.h" #include "SpellScriptLoader.h" #include "Weather.h" @@ -53,7 +55,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 +82,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 +93,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 +181,7 @@ struct boss_akilzon : public BossAI { if (actionId == ACTION_STORM_EXPIRE) { + scheduler.DelayGroup(GROUP_STATIC_DISRUPTION, 3s); me->m_Events.AddEventAtOffset([&] { SummonEagles(); }, 5s); @@ -316,9 +323,30 @@ class spell_electrial_storm : public AuraScript } }; +// 43657 - Electrical Storm +class spell_electrical_storm_proc : public SpellScript +{ + PrepareSpellScript(spell_electrical_storm_proc); + + void HandleDamageCalc(SpellEffIndex /*effIndex*/) + { + if (Aura* aura = GetCaster()->GetAura(SPELL_ELECTRICAL_STORM)) + { + uint8 multiplier = aura->GetEffect(EFFECT_1)->GetTickNumber(); + SetHitDamage(GetHitDamage() * multiplier); + } + } + + void Register() override + { + OnEffectHitTarget += SpellEffectFn(spell_electrical_storm_proc::HandleDamageCalc, EFFECT_0, SPELL_EFFECT_SCHOOL_DAMAGE); + } +}; + void AddSC_boss_akilzon() { RegisterZulAmanCreatureAI(boss_akilzon); RegisterZulAmanCreatureAI(npc_akilzon_eagle); RegisterSpellScript(spell_electrial_storm); + RegisterSpellScript(spell_electrical_storm_proc); } diff --git a/src/server/scripts/EasternKingdoms/ZulAman/boss_hexlord.cpp b/src/server/scripts/EasternKingdoms/ZulAman/boss_hexlord.cpp index 390df838feb1c0..ec5ca7e773fe00 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 @@ -264,6 +265,7 @@ struct boss_hexlord_malacrass : public BossAI }); ScheduleTimedEvent(30s, [&]{ + scheduler.CancelGroup(GROUP_CLASS_ABILITY); DoCastSelf(SPELL_SPIRIT_BOLTS); scheduler.Schedule(10s, [this](TaskContext) { @@ -277,14 +279,12 @@ struct boss_hexlord_malacrass : public BossAI 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() @@ -319,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 852b5ae45eb905..0f6bdb587de04d 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 JustEngagedWith(Unit* /*target*/) override { } + void Reset() override + { + if (WorldObject* summoner = GetSummoner()) + if (Creature* zuljin = summoner->ToCreature()) + me->SetLevel(zuljin->GetLevel()); + + 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 6d56638772cd6a..f86186b4031c7e 100644 --- a/src/server/scripts/EasternKingdoms/ZulAman/instance_zulaman.cpp +++ b/src/server/scripts/EasternKingdoms/ZulAman/instance_zulaman.cpp @@ -53,16 +53,16 @@ DoorData const doorData[] = { GO_DOOR_HALAZZI, DATA_HALAZZI, DOOR_TYPE_PASSAGE }, { GO_LYNX_TEMPLE_ENTRANCE, DATA_HALAZZI, DOOR_TYPE_ROOM }, { GO_DOOR_AKILZON, DATA_AKILZON, DOOR_TYPE_ROOM }, - { GO_GATE_ZULJIN, DATA_HEXLORD, DOOR_TYPE_PASSAGE }, { 0, 0, DOOR_TYPE_ROOM } // END }; 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[] = @@ -70,6 +70,7 @@ ObjectData const gameObjectData[] = { GO_STRANGE_GONG, DATA_STRANGE_GONG }, { GO_MASSIVE_GATE, DATA_MASSIVE_GATE }, { GO_GATE_HEXLORD, DATA_HEXLORD_GATE }, + { GO_GATE_ZULJIN, DATA_ZULJIN_GATE }, { 0, 0 } }; @@ -113,6 +114,29 @@ class instance_zulaman : public InstanceMapScript 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 @@ class instance_zulaman : public InstanceMapScript 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 @@ -211,6 +290,11 @@ class instance_zulaman : public InstanceMapScript HandleGameObject(ObjectGuid::Empty, false, GetGameObject(DATA_HEXLORD_GATE)); else if (state == NOT_STARTED) CheckInstanceStatus(); + else if (state == DONE) + { + if (GameObject* zuljinGate = GetGameObject(DATA_ZULJIN_GATE)) + zuljinGate->RemoveGameObjectFlag(GO_FLAG_LOCKED); + } break; } @@ -234,6 +318,8 @@ class instance_zulaman : public InstanceMapScript 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 +331,8 @@ class instance_zulaman : public InstanceMapScript 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 da714fb7b5ec35..ddb9bc6fd33938 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 247c458bddab94..8ed6eb1310893f 100644 --- a/src/server/scripts/EasternKingdoms/ZulAman/zulaman.h +++ b/src/server/scripts/EasternKingdoms/ZulAman/zulaman.h @@ -38,7 +38,10 @@ 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, + DATA_ZULJIN_GATE = 16 }; enum CreatureIds @@ -54,7 +57,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 +86,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 15e10a2e213504..40af139344a0f1 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 ddd027e1a13559..6a66ed29e67dc9 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 a63f52bdaa3489..64a6de9a39c339 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 @@ class boss_halion : public CreatureScript 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 936b11db22bcdc..0a44e0f9d1454a 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 fb1025276e18ce..372081fe049815 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 6af907e2d452b2..c4b0bdcc7dea29 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 @@ class npc_ghostly_priest : public CreatureScript 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 @@ class npc_phantom_mage : public CreatureScript 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 @@ class npc_shadowy_mercenary : public CreatureScript 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 @@ class npc_spectral_footman : public CreatureScript 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 @@ class npc_tortured_rifleman : public CreatureScript 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 @@ class npc_hor_raging_ghoul : public CreatureScript 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 @@ class npc_hor_risen_witch_doctor : public CreatureScript 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 @@ class npc_hor_lumbering_abomination : public CreatureScript 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 f67ad63330bc8c..1f26e1b7955c9b 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 @@ class npc_bone_spike : public CreatureScript { 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 7588c78cd4d124..aa309fd4ddb366 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp @@ -260,7 +260,7 @@ struct LastPhaseIceTombTargetSelector 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 385150c1708fde..fbc510668bed58 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.cpp @@ -1684,7 +1684,7 @@ class npc_frostwing_vrykul : public CreatureScript 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 3e73dda8e4027d..6f7559285466f9 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 da0e324cac4775..d51461f6a6da0b 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 @@ class boss_sjonnir : public CreatureScript 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 @@ class boss_sjonnir : public CreatureScript { brann->setDeathState(DeathState::JustDied); brann->Respawn(); - brann->AI()->DoAction(5); + brann->AI()->DoAction(ACTION_SJONNIR_WIPE_START); } } } @@ -183,7 +181,7 @@ class boss_sjonnir : public CreatureScript 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 @@ class boss_sjonnir : public CreatureScript 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 @@ class boss_sjonnir : public CreatureScript { 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 @@ class boss_sjonnir : public CreatureScript { 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 @@ class boss_sjonnir : public CreatureScript 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 83da968533f121..8202f673a7fae0 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 @@ class brann_bronzebeard : public CreatureScript { 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 @@ class brann_bronzebeard : public CreatureScript 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 @@ class brann_bronzebeard : public CreatureScript 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 @@ class brann_bronzebeard : public CreatureScript ObjectGuid AbedneumGUID; ObjectGuid MarnakGUID; ObjectGuid KaddrakGUID; + ObjectGuid darkMatterTargetGUID; + uint8 WaveNum; bool TalkEvent; uint32 SpeechCount, SpeechPause; + bool canExecuteEvents = true; void DespawnHeads() { @@ -257,6 +267,7 @@ class brann_bronzebeard : public CreatureScript if ((cr = GetAbedneum())) cr->DespawnOrUnsummon(); if ((cr = GetMarnak())) cr->DespawnOrUnsummon(); if ((cr = GetKaddrak())) cr->DespawnOrUnsummon(); + SwitchHeadVisaul(0x7, false); } @@ -268,15 +279,46 @@ class brann_bronzebeard : public CreatureScript 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 @@ class brann_bronzebeard : public CreatureScript 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 @@ class brann_bronzebeard : public CreatureScript 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 @@ class brann_bronzebeard : public CreatureScript 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 @@ class brann_bronzebeard : public CreatureScript { 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; - } + 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 @@ class brann_bronzebeard : public CreatureScript 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->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)) { - cr->CastSpell(cr, SPELL_DARK_MATTER_VISUAL, true); - 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) + { + events.RescheduleEvent(EVENT_DARK_MATTER_END, 3000ms); + } + else if (darkMatterTarget->GetDistance(plr) < 30.0f) + { + events.RescheduleEvent(EVENT_DARK_MATTER_END, 3500ms); + } + else { - 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, 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 @@ class brann_bronzebeard : public CreatureScript 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 @@ class brann_bronzebeard : public CreatureScript 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); + 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); + me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_STAND); + me->SendMovementFlagUpdate(); + break; } - case EVENT_END: + case EVENT_TALK_FACE_CHANGE: { - events.Reset(); if (pInstance) - pInstance->SetData(BRANN_BRONZEBEARD, 6); + 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(); + } + } - 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); 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 @@ class brann_bronzebeard : public CreatureScript } } - 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 @@ class brann_bronzebeard : public CreatureScript { 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; + //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; - case 29: + //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 @@ class iron_golem_custodian : public CreatureScript }; }; -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 f027fa0146822c..c9188b35e2c425 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 619d5e724e54b5..968d95126168c5 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 @@ class instance_halls_of_stone : public InstanceMapScript return goMarnakGUID; case GO_ABEDNEUM: return goAbedneumGUID; + case GO_SKY_FLOOR: + return goSkyRoomFloorGUID; case NPC_SJONNIR: return SjonnirGUID; @@ -210,23 +212,91 @@ class instance_halls_of_stone : public InstanceMapScript 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 d306053870f965..26f94defe68dad 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 @@ class npc_ulduar_leviathan_mkii : public CreatureScript 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 68702d31384e4b..e2c684870c6fde 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 7b44e22c6327a9..6d80f9216b1f09 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") { } + boss_ingvar_the_plunderer(Creature* c) : ScriptedAI(c), summons(me) + { + pInstance = c->GetInstanceScript(); + } + + InstanceScript* pInstance; + EventMap events; + SummonList summons; + ObjectGuid ValkyrGUID; + ObjectGuid ThrowGUID; - CreatureAI* GetAI(Creature* pCreature) const override + void Reset() override { - return GetUtgardeKeepAI(pCreature); + 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); + + if (pInstance) + pInstance->SetData(DATA_INGVAR, NOT_STARTED); } - struct boss_ingvar_the_plundererAI : public ScriptedAI + void DamageTaken(Unit*, uint32& damage, DamageEffectType, SpellSchoolMask) override { - boss_ingvar_the_plundererAI(Creature* c) : ScriptedAI(c), summons(me) + if (me->GetDisplayId() == DISPLAYID_DEFAULT && damage >= me->GetHealth()) { - pInstance = c->GetInstanceScript(); + 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); } + } - InstanceScript* pInstance; - EventMap events; - SummonList summons; - ObjectGuid ValkyrGUID; - ObjectGuid ThrowGUID; + 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 Reset() override + void JustSummoned(Creature* s) override + { + summons.Summon(s); + if (s->GetEntry() == NPC_ANNHYLDE) { - 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); + 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()); + } + } - if (pInstance) - pInstance->SetData(DATA_INGVAR, NOT_STARTED); + 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 DamageTaken(Unit*, uint32& damage, DamageEffectType, SpellSchoolMask) override + void JustDied(Unit* /*killer*/) override + { + events.Reset(); + summons.DespawnAll(); + Talk(YELL_DEAD_2); + if (pInstance) { - 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); - } + 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 JustEngagedWith(Unit* /*who*/) override + void UpdateAI(uint32 diff) override + { + if (!UpdateVictim()) + return; + + events.Update(diff); + + if (me->HasUnitState(UNIT_STATE_CASTING)) + return; + + switch (events.ExecuteEvent()) { - events.Reset(); - // schedule Phase 1 abilities + 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); - } + // ABILITIES HERE: + case EVENT_UNROOT: + me->SetControlled(false, UNIT_STATE_ROOT); + me->DisableRotate(false); + break; + case EVENT_SPELL_ROAR: + Talk(EMOTE_ROAR); - void JustSummoned(Creature* s) override - { - summons.Summon(s); - if (s->GetEntry() == NPC_ANNHYLDE) + 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) { - 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()); + events.Repeat(3s); + break; } - else if (s->GetEntry() == NPC_THROW) + 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) { - ThrowGUID = s->GetGUID(); - if (Unit* t = SelectTarget(SelectTargetMethod::Random, 0, 70.0f, true)) - s->GetMotionMaster()->MovePoint(0, t->GetPositionX(), t->GetPositionY(), t->GetPositionZ()); + events.Repeat(3s); + break; } - } - - void KilledUnit(Unit* /*who*/) override - { + me->SetControlled(true, UNIT_STATE_ROOT); + me->DisableRotate(true); + me->SendMovementFlagUpdate(); if (me->GetDisplayId() == DISPLAYID_DEFAULT) - Talk(YELL_KILL_2); + me->CastSpell((Unit*)nullptr, SPELL_SMASH, false); else - Talk(YELL_KILL_1); - } - - void FeignDeath(bool apply) - { - if (apply) + 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->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); + me->CastSpell(me, SPELL_ENRAGE, false); + events.Repeat(10s); } 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); + 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); } - } - - void JustDied(Unit* /*killer*/) override - { - events.Reset(); - summons.DespawnAll(); - Talk(YELL_DEAD_2); - if (pInstance) + 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)) { - pInstance->DoUpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_KILL_CREATURE, NPC_INGVAR_UNDEAD, 1); // undead entry needed for achievements - pInstance->SetData(DATA_INGVAR, DONE); + c->DestroyForNearbyPlayers(); + c->DespawnOrUnsummon(); + summons.DespawnAll(); } + ThrowGUID.Clear(); + SetEquipmentSlots(true); + break; } - 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); - - 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; - } - - if (!me->HasUnitFlag(UNIT_FLAG_NOT_SELECTABLE)) - DoMeleeAttackIfReady(); - } - }; + 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 e03daa35b0bf7a..a3d0626fa1ad88 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, -}; + npc_frost_tomb(Creature* c) : NullCreatureAI(c) + { + if (WorldObject* summoner = GetSummoner()) + if (Unit* summonerUnit = summoner->ToUnit()) + { + PrisonerGUID = summonerUnit->GetGUID(); + if (me->GetInstanceScript() && me->GetInstanceScript()->instance->IsHeroic()) + { + const int32 dmg = 2000; + c->CastCustomSpell(summonerUnit, SPELL_FROST_TOMB_AURA, nullptr, &dmg, nullptr, true); + } + else + c->CastSpell(summonerUnit, SPELL_FROST_TOMB_AURA, true); + } + } -class npc_frost_tomb : public CreatureScript -{ -public: - npc_frost_tomb() : CreatureScript("npc_frost_tomb") { } + ObjectGuid PrisonerGUID; - CreatureAI* GetAI(Creature* pCreature) const override + void JustDied(Unit* killer) override { - return GetUtgardeKeepAI(pCreature); + 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); } - struct npc_frost_tombAI : public NullCreatureAI + void UpdateAI(uint32 /*diff*/) override { - npc_frost_tombAI(Creature* c) : NullCreatureAI(c) + if (PrisonerGUID) { - 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 (Unit* p = ObjectAccessor::GetUnit(*me, PrisonerGUID)) { - if (Unit* p = ObjectAccessor::GetUnit(*me, PrisonerGUID)) - { - if (!p->HasAura(SPELL_FROST_TOMB_AURA)) - me->KillSelf(); - } - else + if (!p->HasAura(SPELL_FROST_TOMB_AURA)) me->KillSelf(); } + else + me->KillSelf(); } - }; + } }; -class boss_keleseth : public CreatureScript +struct boss_keleseth : public BossAI { -public: - boss_keleseth() : CreatureScript("boss_keleseth") { } + boss_keleseth(Creature* creature) : BossAI(creature, DATA_KELESETH) { } - CreatureAI* GetAI(Creature* pCreature) const override + void KilledUnit(Unit* victim) override { - return GetUtgardeKeepAI(pCreature); + if (victim->IsPlayer()) + Talk(SAY_KILL); } - struct boss_kelesethAI : public ScriptedAI + void JustDied(Unit* /*killer*/) override { - boss_kelesethAI(Creature* c) : ScriptedAI(c) - { - pInstance = c->GetInstanceScript(); - } + _JustDied(); + Talk(SAY_DEATH); + } - InstanceScript* pInstance; - EventMap events; + void JustEngagedWith(Unit* /*who*/) override + { + _JustEngagedWith(); + Talk(SAY_START_COMBAT); - void Reset() override - { - events.Reset(); - if (pInstance) - pInstance->SetData(DATA_KELESETH, NOT_STARTED); - } + ScheduleTimedEvent(1s, [&] { + DoCastVictim(SPELL_SHADOWBOLT); + }, 4s, 5s); - void KilledUnit(Unit* victim) override - { - if (victim->IsPlayer()) + ScheduleTimedEvent(28s, [&] { + if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 0.0f, true, true, -SPELL_FROST_TOMB_AURA)) { - Talk(SAY_KILL); + Talk(SAY_FROST_TOMB_EMOTE, target); + Talk(SAY_FROST_TOMB); + DoCast(target, SPELL_FROST_TOMB); } - } + }, 15s); - void JustDied(Unit* /*killer*/) override - { - Talk(SAY_DEATH); - if (pInstance) - pInstance->SetData(DATA_KELESETH, DONE); - } - - 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); - - Talk(SAY_START_COMBAT); - DoZoneInCombat(); - - if (pInstance) - pInstance->SetData(DATA_KELESETH, IN_PROGRESS); - } - - void AttackStart(Unit* who) override - { - if (!who) - return; - - 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()) + me->m_Events.AddEventAtOffset([this]() { + Talk(SAY_SUMMON_SKELETONS); + for (uint8 i = 0; i < 5; ++i) { - 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; + 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); + } - DoMeleeAttackIfReady(); - } - }; + 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 - { - npc_vrykul_skeletonAI(Creature* c) : ScriptedAI(c) - { - pInstance = c->GetInstanceScript(); - } + InstanceScript* pInstance; + EventMap events; - InstanceScript* pInstance; - EventMap events; + void Reset() override + { + events.Reset(); + events.RescheduleEvent(EVENT_SPELL_DECREPIFY, 10s, 20s); + if (IsHeroic()) + events.RescheduleEvent(EVENT_SPELL_BONE_ARMOR, 25s, 120s); + } - void Reset() override + void DamageTaken(Unit*, uint32& damage, DamageEffectType, SpellSchoolMask) override + { + if (damage >= me->GetHealth()) { - events.Reset(); - events.RescheduleEvent(EVENT_SPELL_DECREPIFY, 10s, 20s); - if (IsHeroic()) - events.RescheduleEvent(EVENT_SPELL_BONE_ARMOR, 25s, 120s); + 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 DamageTaken(Unit*, uint32& damage, DamageEffectType, SpellSchoolMask) override + void UpdateAI(uint32 diff) override + { + if (pInstance && pInstance->GetBossState(DATA_KELESETH) != IN_PROGRESS) { - 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); - } + if (me->IsAlive()) + me->KillSelf(); + return; } - void UpdateAI(uint32 diff) override - { - if (pInstance && pInstance->GetData(DATA_KELESETH) != IN_PROGRESS ) - { - if (me->IsAlive()) - me->KillSelf(); - return; - } - - if (!UpdateVictim()) - return; + if (!UpdateVictim()) + return; - events.Update(diff); + 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; - } + if (me->HasUnitState(UNIT_STATE_CASTING)) + return; + switch (events.ExecuteEvent()) + { + 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 4acb81dbd96390..6e3ea7f52f9856 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 - { - boss_skarvald_the_constructorAI(Creature* c) : ScriptedAI(c) - { - pInstance = c->GetInstanceScript(); - } - - InstanceScript* pInstance; - EventMap events; + InstanceScript* pInstance; + EventMap events; - void Reset() override + void Reset() override + { + me->SetLootMode(0); + events.Reset(); + if (me->GetEntry() == NPC_SKARVALD) { - me->SetLootMode(0); - events.Reset(); - if (me->GetEntry() == NPC_SKARVALD) + if (pInstance) { - if (pInstance) - { - pInstance->SetData(DATA_DALRONN_AND_SKARVALD, NOT_STARTED); - } + pInstance->SetData(DATA_DALRONN_AND_SKARVALD, NOT_STARTED); } - else // NPC_SKARVALD_GHOST + } + else // NPC_SKARVALD_GHOST + { + if (Unit* target = me->SelectNearestTarget(50.0f)) { - if (Unit* target = me->SelectNearestTarget(50.0f)) - { - me->AddThreat(target, 0.0f); - AttackStart(target); - } + me->AddThreat(target, 0.0f); + AttackStart(target); } } + } - void DoAction(int32 param) override + void DoAction(int32 param) override + { + switch (param) { - switch (param) - { - case 1: - events.RescheduleEvent(EVENT_MATE_DIED, 3500ms); - break; - } + case 1: + events.RescheduleEvent(EVENT_MATE_DIED, 3500ms); + break; } + } - void JustEngagedWith(Unit* who) override + void JustEngagedWith(Unit* who) override + { + events.Reset(); + events.RescheduleEvent(EVENT_SHARVALD_CHARGE, 5s); + events.RescheduleEvent(EVENT_STONE_STRIKE, 10s); + if (me->GetEntry() == NPC_SKARVALD) { - 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()) { - Talk(YELL_SKARVALD_AGGRO); - if (IsHeroic()) - { - events.ScheduleEvent(EVENT_ENRAGE, 1s); - } + events.ScheduleEvent(EVENT_ENRAGE, 1s); } - if (pInstance) + } + 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, 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 - { - if (me->GetEntry() != NPC_SKARVALD) - return; + void JustDied(Unit* /*Killer*/) override + { + if (me->GetEntry() != NPC_SKARVALD) + return; - if (pInstance) + 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 - { - if (!UpdateVictim()) - return; + void UpdateAI(uint32 diff) override + { + if (!UpdateVictim()) + return; - events.Update(diff); + events.Update(diff); - if (me->HasUnitState(UNIT_STATE_CASTING)) - return; + if (me->HasUnitState(UNIT_STATE_CASTING)) + return; - switch (events.ExecuteEvent()) + 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; } - }; -}; - -class boss_dalronn_the_controller : public CreatureScript -{ -public: - boss_dalronn_the_controller() : CreatureScript("boss_dalronn_the_controller") { } - - CreatureAI* GetAI(Creature* pCreature) const override - { - return GetUtgardeKeepAI(pCreature); + DoMeleeAttackIfReady(); } +}; - struct boss_dalronn_the_controllerAI : public ScriptedAI +struct boss_dalronn_the_controller : 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 @@ class boss_dalronn_the_controller : public CreatureScript 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 475fa0c2e9100f..6425e73608d3ba 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 @@ class instance_utgarde_keep : public InstanceMapScript { instance_utgarde_keep_InstanceMapScript(Map* pMap) : InstanceScript(pMap) { + SetHeaders(DataHeader); + SetBossNumber(EncounterCount); LoadObjectData(creatureData, nullptr); } @@ -69,12 +71,26 @@ class instance_utgarde_keep : public InstanceMapScript 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 @@ class instance_utgarde_keep : public InstanceMapScript { 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 b85a73f23a9ead..62263725b5149a 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(); - struct npc_dragonflayer_forge_masterAI : public ScriptedAI - { - npc_dragonflayer_forge_masterAI(Creature* c) : ScriptedAI(c) + float x = me->GetHomePosition().GetPositionX(); + float y = me->GetHomePosition().GetPositionY(); + if (x > 344.0f && x < 357.0f && y < -35.0f && y > -44.0f) { - 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; - } + dataId = DATA_FORGE_1; + prevDataId = 0; } - - InstanceScript* pInstance; - uint32 dataId; - uint32 prevDataId; - - void Reset() override + else if (x > 380.0f && x < 389.0f && y < -12.0f && y > -21.0f) { - if (pInstance) - pInstance->SetData(dataId, NOT_STARTED); + dataId = DATA_FORGE_2; + prevDataId = DATA_FORGE_1; } - - void JustDied(Unit* /*killer*/) override + else { - if (pInstance) - pInstance->SetData(dataId, DONE); - me->SaveRespawnTime(); + dataId = DATA_FORGE_3; + prevDataId = DATA_FORGE_2; } + } + + 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 + void JustEngagedWith(Unit* /*who*/) override + { + if (pInstance) { - if (pInstance) + if (prevDataId && !pInstance->GetData(prevDataId)) { - if (prevDataId && !pInstance->GetData(prevDataId)) - { - EnterEvadeMode(); - return; - } - pInstance->SetData(dataId, IN_PROGRESS); + EnterEvadeMode(); + return; } - me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE); + pInstance->SetData(dataId, IN_PROGRESS); } - }; + 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; - } + _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 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 + void MovementInform(uint32 type, uint32 id) override + { + if (type == WAYPOINT_MOTION_TYPE && id == POINT_LAST) { - 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); - } + 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 + void SetData(uint32 type, uint32 data) override + { + if (type == TYPE_PROTODRAKE_AT && data == DATA_PROTODRAKE_MOVE && !_setData && me->IsAlive() && me->GetDistance(protodrakeCheckPos) < 10.0f) { - 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); - } + _setData = true; + me->SetCanFly(true); + me->SetDisableGravity(true); + me->GetMotionMaster()->MovePath(PATH_PROTODRAKE, false); } + } - void UpdateAI(uint32 diff) override - { - if (!UpdateVictim()) - return; + void UpdateAI(uint32 diff) override + { + if (!UpdateVictim()) + return; - _events.Update(diff); + _events.Update(diff); - if (me->HasUnitState(UNIT_STATE_CASTING)) - return; + if (me->HasUnitState(UNIT_STATE_CASTING)) + return; - while (uint32 eventid = _events.ExecuteEvent()) + while (uint32 eventid = _events.ExecuteEvent()) + { + switch (eventid) { - 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; - } + 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); + 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 23f3bddb14f49f..9ba762751242db 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 da67718717f32d..1475b9a3e3a0e0 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 2d34027916773d..24b352a9a9f1a5 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 affe37877cf49b..6ac9bdbf37c0eb 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 a16341ced376cf..d3082aa82ef27e 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 0b517c0c23c8e9..0fc29dab34c30e 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 69eb1b7be46428..27b354bee4439e 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 96eed54b9f59a1..f7ec86e1b86a8a 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 df5621f74bac4e..b3317b9df26a8b 100644 --- a/src/server/scripts/Northrend/zone_storm_peaks.cpp +++ b/src/server/scripts/Northrend/zone_storm_peaks.cpp @@ -350,7 +350,7 @@ class npc_wild_wyrm : public CreatureScript 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 539b29bc159d15..6e91d2a19ae94e 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 71dd55da9e3572..e3c0d302809795 100644 --- a/src/server/scripts/Spells/spell_dk.cpp +++ b/src/server/scripts/Spells/spell_dk.cpp @@ -1437,7 +1437,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 3feef3880d1ac5..318e9d622d2b05 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 872681daf3cfb3..0cfa0911aa9c6f 100644 --- a/src/server/scripts/Spells/spell_item.cpp +++ b/src/server/scripts/Spells/spell_item.cpp @@ -2886,7 +2886,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); @@ -3177,7 +3177,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 c0a18506b4b5db..02f5105f0d9c99 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 6f9806e3476f25..0b0f744f419686 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)