Merge branch 'master' into Playerbot

This commit is contained in:
Yunfan Li
2024-10-21 11:43:19 +08:00
92 changed files with 7381 additions and 667 deletions
+7 -5
View File
@@ -7,11 +7,13 @@
## Build Status
[![nopch-build](https://github.com/azerothcore/azerothcore-wotlk/actions/workflows/core-build-nopch.yml/badge.svg?branch=master)](https://github.com/azerothcore/azerothcore-wotlk/actions/workflows/core-build-nopch.yml)
[![core-modules-build](https://github.com/azerothcore/azerothcore-wotlk/workflows/core-modules-build/badge.svg?branch=master&event=push)](https://github.com/azerothcore/azerothcore-wotlk/actions?query=workflow%3Acore-modules-build+branch%3Amaster+event%3Apush)
[![windows-build](https://github.com/azerothcore/azerothcore-wotlk/workflows/windows-build/badge.svg?branch=master&event=push)](https://github.com/azerothcore/azerothcore-wotlk/actions?query=workflow%3Awindows-build+branch%3Amaster+event%3Apush)
[![macos-build](https://github.com/azerothcore/azerothcore-wotlk/workflows/macos-build/badge.svg?branch=master&event=push)](https://github.com/azerothcore/azerothcore-wotlk/actions?query=workflow%3Amacos-build+branch%3Amaster+event%3Apush)
[![docker-build](https://github.com/azerothcore/azerothcore-wotlk/workflows/docker-build/badge.svg?branch=master&event=push)](https://github.com/azerothcore/azerothcore-wotlk/actions?query=workflow%3Adocker-build+branch%3Amaster+event%3Apush)
[![nopch-build](https://github.com/azerothcore/azerothcore-wotlk/actions/workflows/core-build-nopch.yml/badge.svg?branch=master)](https://github.com/azerothcore/azerothcore-wotlk/actions/workflows/core-build-nopch.yml?query=branch%3Amaster)
[![pch-build](https://github.com/azerothcore/azerothcore-wotlk/actions/workflows/core-build-pch.yml/badge.svg?branch=master)](https://github.com/azerothcore/azerothcore-wotlk/actions/workflows/core-build-pch.yml?query=branch%3Amaster)
[![core-modules-build](https://github.com/azerothcore/azerothcore-wotlk/actions/workflows/core_modules_build.yml/badge.svg?branch=master)](https://github.com/azerothcore/azerothcore-wotlk/actions/workflows/core_modules_build.yml?query=branch%3Amaster)
[![windows-build](https://github.com/azerothcore/azerothcore-wotlk/actions/workflows/windows_build.yml/badge.svg?branch=master)](https://github.com/azerothcore/azerothcore-wotlk/actions/workflows/windows_build.yml?query=branch%3Amaster)
[![macos-build](https://github.com/azerothcore/azerothcore-wotlk/actions/workflows/macos_build.yml/badge.svg?branch=master)](https://github.com/azerothcore/azerothcore-wotlk/actions/workflows/macos_build.yml?query=branch%3Amaster)
[![docker-build](https://github.com/azerothcore/azerothcore-wotlk/actions/workflows/docker_build.yml/badge.svg?branch=master)](https://github.com/azerothcore/azerothcore-wotlk/actions/workflows/docker_build.yml?query=branch%3Amaster)
[![tools-build](https://github.com/azerothcore/azerothcore-wotlk/actions/workflows/tools_build.yml/badge.svg?branch=master)](https://github.com/azerothcore/azerothcore-wotlk/actions/workflows/tools_build.yml?query=branch%3Amaster)
## Introduction
+42 -59
View File
@@ -1,77 +1,60 @@
#!/usr/bin/env bash
set -euo pipefail
CURRENT_PATH="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
source "$CURRENT_PATH/../bash_shared/includes.sh"
UPDATES_PATH="$AC_PATH_ROOT/data/sql/updates/"
UPDATES_PATH="$AC_PATH_ROOT/data/sql/updates"
COMMIT_HASH=
function import() {
db=$1
folder="db_"$db
pendingPath="$AC_PATH_ROOT/data/sql/updates/pending_$folder"
updPath="$UPDATES_PATH/$folder"
archivedPath="$AC_PATH_ROOT/data/sql/archive/$folder/6.x"
latestUpd=$(ls -1 $updPath/ | tail -n 1)
if [ -z $latestUpd ]; then
latestUpd=$(ls -1 $archivedPath/ | tail -n 1)
echo "> Last update file for db $db is missing! Using archived file" $latestUpd
# get_next_index "data/sql/updates/db_world/2024_10_14_22.sql"
# => 23
# get_next_index ""
# => 00
function get_next_index() {
if [[ -n "$1" ]]; then
PREV_COUNT="$(basename "$1" | cut -f4 -d_ | cut -f1 -d\.)"
printf '%02d' "$((PREV_COUNT + 1))"
else
echo "00"
fi
}
dateToday=$(date +%Y_%m_%d)
counter=0
# lists all SQL files in the appropriate data/sql/updates/db_$1, and then moves them to a standard format, ordered by date and how many imports have happened that day. The name should be in this format:
#
# /path/to/data/sql/updates/db_NAME/YYYY_MM_DD_INDEX.sql
#
# Where INDEX is a number with a minimum with a minimum width (0-padded) of 2
#
# for example, "data/sql/updates/db_world/2024_10_01_03.sql" translates to "the third update in the world database from October 01, 2024"
dateLast=$latestUpd
tmp=${dateLast#*_*_*_}
oldCnt=${tmp%.sql}
oldDate=${dateLast%_$tmp}
TODAY="$(date +%Y_%m_%d)"
function import() {
PENDING_PATH="$AC_PATH_ROOT/data/sql/updates/pending_db_$1"
UPDATES_DIR="$UPDATES_PATH/db_$1"
if [ "$oldDate" = "$dateToday" ]; then
((counter=10#$oldCnt+1)) # 10 # is needed to explictly add to a base 10 number
fi;
# Get the most recent SQL file applied to this database. Used for the header comment
LATEST_UPDATE="$(find "$UPDATES_DIR" -iname "*.sql" | sort -h | tail -n 1)"
# Get latest SQL file applied to this database, today. This could be empty.
LATEST_UPDATE_TODAY="$(find "$UPDATES_DIR" -iname "$TODAY*.sql" | sort -h | tail -n 1)"
for entry in "$pendingPath"/*.sql
for entry in "$PENDING_PATH"/*.sql
do
if [[ -e $entry ]]; then
oldVer=$oldDate"_"$oldCnt
if [[ -f "$entry" ]]; then
INDEX="$(get_next_index "$LATEST_UPDATE_TODAY")"
OUTPUT_FILE="${UPDATES_DIR}/${TODAY}_${INDEX}.sql"
cnt=$(printf -v counter "%02d" $counter ; echo $counter)
newVer=$dateToday"_"$cnt
newFile="$updPath/"$dateToday"_"$cnt".sql"
oldFile=$(basename "$entry")
prefix=${oldFile%_*.sql}
suffix=${oldFile#rev_}
rev=${suffix%.sql}
isRev=0
if [[ $prefix = "rev" && $rev =~ ^-?[0-9]+$ ]]; then
isRev=1
fi
echo "-- DB update $oldVer -> $newVer" > "$newFile";
cat $entry >> "$newFile";
currentHash="$(git log --diff-filter=A "$entry" | grep "^commit " | sed -e 's/commit //')"
if [[ "$COMMIT_HASH" != *"$currentHash"* ]]
then
COMMIT_HASH="$COMMIT_HASH $currentHash"
fi
rm $entry;
oldDate=$dateToday
oldCnt=$cnt
((counter+=1))
# ensure a note is added as a header comment
echo "-- DB update $(basename "$LATEST_UPDATE" .sql) -> $(basename "$OUTPUT_FILE" .sql)" > "$OUTPUT_FILE"
# fill in the SQL contents under that
cat "$entry" >> "$OUTPUT_FILE"
# remove the unneeded file
rm -f "$entry"
# set the newest file to the file we just moved
LATEST_UPDATE_TODAY="$OUTPUT_FILE"
LATEST_UPDATE="$OUTPUT_FILE"
fi
done
@@ -0,0 +1,5 @@
-- DB update 2024_10_09_00 -> 2024_10_10_00
DELETE FROM `creature_template_model` WHERE `CreatureID` = 23369;
INSERT INTO `creature_template_model` (`CreatureID`, `Idx`, `CreatureDisplayID`, `DisplayScale`, `Probability`, `VerifiedBuild`) VALUES
(23369, 0, 1126, 1, 0, 51831),
(23369, 1, 16946, 1, 1, 51831);
@@ -0,0 +1,48 @@
-- DB update 2024_10_10_00 -> 2024_10_11_00
--
DROP TABLE IF EXISTS `vehicle_seat_addon`;
CREATE TABLE `vehicle_seat_addon` (
`SeatEntry` INT(4) UNSIGNED NOT NULL COMMENT 'VehicleSeatEntry.dbc identifier',
`SeatOrientation` FLOAT(6) DEFAULT 0 COMMENT 'Seat Orientation override value',
`ExitParamX` FLOAT(10) DEFAULT 0,
`ExitParamY` FLOAT(10) DEFAULT 0,
`ExitParamZ` FLOAT(10) DEFAULT 0,
`ExitParamO` FLOAT(10) DEFAULT 0,
`ExitParamValue` TINYINT(1) DEFAULT 0,
PRIMARY KEY (`SeatEntry`)
);
DELETE FROM `vehicle_seat_addon` WHERE `SeatEntry` IN (2726, 2727, 2728, 2729, 2730, 1472, 1473, 1474, 1475, 1476, 2764, 2765, 2767, 2768, 6446, 6447, 7326, 7327, 7328, 7329, 861, 862, 1682, 2097, 2172, 2178, 2179, 2180, 3690, 3691, 3692, 3129, 2772, 2771);
INSERT INTO `vehicle_seat_addon` (`SeatEntry`, `SeatOrientation`, `ExitParamX`, `ExitParamY`, `ExitParamZ`, `ExitParamO`, `ExitParamValue`) VALUES
(2764, 0.0, -2.0, 2.0, 0.0, 0.0, 1), -- 312 Traveler's Tundra Mammoth
(2765, 0.0, -2.0, -2.0, 0.0, 0.0, 1), -- 312
(2767, 0.0, -2.0, 2.0, 0.0, 0.0, 1), -- 313 Traveler's Tundra Mammoth
(2768, 0.0, -2.0, -2.0, 0.0, 0.0, 1),-- 313
(6446, 0.0, -1.0, 4.0, 3.0, 0.0, 1), -- 548 Stormwind Love Boat
(6447, 0.0, 1.0, 4.0, 3.0, 0.0, 1), -- 548
(7326, 0.0, -1.0, 4.0, 3.0, 0.0, 1), -- 615 Darnassus Love Boat
(7327, 0.0, 1.0, 4.0, 3.0, 0.0, 1), -- 615
(7328, 0.0, -1.0, 4.0, 3.0, 0.0, 1), -- 616 Undercity Love Boat
(7329, 0.0, 1.0, 4.0, 3.0, 0.0, 1), -- 616
(861, 0.0, -2.0, 2.0, 0.0, 0.0, 1), -- 51 Ducal's Horse
(862, 0.0, -2.0, 3.0, 0.0, 0.0, 1), -- 51
-- cmangos exclusive
(1682, 0.0, 6708.17, 5130.74, -19.388, 4.83608, 2), -- 118 Zeptek the Destroyer
(2097, 0.0, 12.0, 0.0, 4.0, 0.0, 1), -- 191 Gal'darah
(2172, 0.0, 40.0, 0.0, 0.0, 0.0, 1), -- 205 Gymer
(2178, 0.0, -3.3, 5.0, 0.0, 3.1326, 1), -- 209 Drakkari Rhino
(2179, 0.0, -5.9, -4.9, 0.0, 3.1326, 1), -- 209
(2180, 0.0, -7.9, 0.02, 0.0, 3.1326, 1), -- 209
-- acore exclusive
(3690, 0.0, 1776.0, -24.0, 448.75, 0.0, 2), -- 380 Kologarn right arm
(3691, 0.0, 1776.0, -24.0, 448.75, 0.0, 2), -- 380
(3692, 0.0, 1776.0, -24.0, 448.75, 0.0, 2), -- 380
(3129, 0.0, 0.0, -2.0, 0.0, 0.0, 1), -- 349 AT Mounts, dismount to the right
(2772, 0.0, -2.0, 2.0, 0.0, 0.0, 1), -- 315 Grand Ice Mammoth, Grand Black War Mammoth
(2771, 0.0, -2.0, -2.0, 0.0, 0.0, 1), -- 315
-- Helmsman's coords are different on acore
(1472, 0.0, 2802.18, 7054.91, -0.6, 4.67, 2), -- 91 The Helmsman's Ship
(1473, 0.0, 2802.18, 7054.91, -0.6, 4.67, 2), -- 91
(1474, 0.0, 2802.18, 7054.91, -0.6, 4.67, 2), -- 91
(1475, 0.0, 2802.18, 7054.91, -0.6, 4.67, 2), -- 91
(1476, 0.0, 2802.18, 7054.91, -0.6, 4.67, 2);
@@ -0,0 +1,3 @@
-- DB update 2024_10_11_00 -> 2024_10_11_01
--
UPDATE `smart_scripts` SET `target_type`=12, `target_param1`=1 WHERE `entryorguid`=1436800 AND `source_type`=9 AND `id` IN (2, 4);
@@ -0,0 +1,86 @@
-- DB update 2024_10_11_01 -> 2024_10_11_02
-- Update creature 'Monstrous Kaliri Egg Trigger' with sniffed values
-- updated spawns
DELETE FROM `creature` WHERE (`id1` IN (22991))
AND (`guid` IN (12767, 132937, 132938, 132939, 21055, 51854, 55414, 59471, 63504, 63518, 63519, 63520, 63521, 63522, 66971, 67863, 68450, 68451, 68452, 68453, 68454, 68455, 68501, 68502, 68503, 68504, 68505, 68506, 68507, 68508, 68509, 68510, 68511, 68512, 68513, 68514, 68515, 68516, 68517, 68518, 68519, 68520, 68521, 68522, 68539, 68540, 68541, 68542, 68554, 68555, 68556, 68557, 68572, 68573, 68574, 68575, 68576, 68728, 68737, 68837, 68932, 68933, 68934, 68935));
INSERT INTO `creature` (`guid`, `id1`, `map`, `spawnMask`, `phaseMask`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `wander_distance`, `MovementType`, `npcflag`, `unit_flags`, `dynamicflags`, `ScriptName`, `VerifiedBuild`, `CreateObject`, `Comment`) VALUES
(12767, 22991, 530, 1, 1, 0, -3857.694091796875, 3426.247314453125, 363.733001708984375, 6.195918560028076171, 120, 0, 0, 0, 0, 0, "", 48632, 1, NULL),
(132937, 22991, 530, 1, 1, 0, -3800.80126953125, 3789.62060546875, 314.00048828125, 6.091198921203613281, 120, 0, 0, 0, 0, 0, "", 45854, 1, NULL),
(132938, 22991, 530, 1, 1, 0, -3799.0244140625, 3788.060791015625, 314.157958984375, 3.193952560424804687, 120, 0, 0, 0, 0, 0, "", 45854, 1, NULL),
(132939, 22991, 530, 1, 1, 0, -3798.912353515625, 3790.612548828125, 313.851715087890625, 3.630284786224365234, 120, 0, 0, 0, 0, 0, "", 45854, 1, NULL),
(21055, 22991, 530, 1, 1, 0, -3845.15576171875, 3332.204833984375, 338.589630126953125, 2.914699792861938476, 120, 0, 0, 0, 0, 0, "", 45854, 1, NULL),
(51854, 22991, 530, 1, 1, 0, -3965.16357421875, 3232.70068359375, 347.552154541015625, 6.161012172698974609, 120, 0, 0, 0, 0, 0, "", 45854, 1, NULL),
(55414, 22991, 530, 1, 1, 0, -3955.860595703125, 3222.162353515625, 347.5025634765625, 0.244346097111701965, 120, 0, 0, 0, 0, 0, "", 45854, 1, NULL),
(59471, 22991, 530, 1, 1, 0, -3953.295654296875, 3227.942626953125, 347.56353759765625, 6.038839340209960937, 120, 0, 0, 0, 0, 0, "", 45854, 1, NULL),
(63504, 22991, 530, 1, 1, 0, -4044.66064453125, 3287.294189453125, 348.3623046875, 0.349065840244293212, 120, 0, 0, 0, 0, 0, "", 45854, 1, NULL),
(63518, 22991, 530, 1, 1, 0, -4041.39453125, 3271.002685546875, 346.641632080078125, 4.188790321350097656, 120, 0, 0, 0, 0, 0, "", 45854, 1, NULL),
(63519, 22991, 530, 1, 1, 0, -4049.30810546875, 3285.90087890625, 348.33465576171875, 1.431169986724853515, 120, 0, 0, 0, 0, 0, "", 45854, 1, NULL),
(63520, 22991, 530, 1, 1, 0, -4076.98828125, 3415.220458984375, 334.008453369140625, 3.944444179534912109, 120, 0, 0, 0, 0, 0, "", 45854, 1, NULL),
(63521, 22991, 530, 1, 1, 0, -4076.791748046875, 3412.9072265625, 334.61688232421875, 5.201081275939941406, 120, 0, 0, 0, 0, 0, "", 45854, 1, NULL),
(63522, 22991, 530, 1, 1, 0, -4077.916748046875, 3412.569091796875, 334.76837158203125, 5.550147056579589843, 120, 0, 0, 0, 0, 0, "", 45854, 1, NULL),
(66971, 22991, 530, 1, 1, 0, -4107.9287109375, 3121.496826171875, 357.427215576171875, 1.01229095458984375, 120, 0, 0, 0, 0, 0, "", 45942, 1, NULL),
(67863, 22991, 530, 1, 1, 0, -4108.30712890625, 3123.6572265625, 357.632537841796875, 5.602506637573242187, 120, 0, 0, 0, 0, 0, "", 45942, 1, NULL),
(68450, 22991, 530, 1, 1, 0, -4110.18603515625, 3122.642822265625, 358.08258056640625, 6.248278617858886718, 120, 0, 0, 0, 0, 0, "", 45942, 1, NULL),
(68451, 22991, 530, 1, 1, 0, -3996.8876953125, 3142.12158203125, 372.728851318359375, 3.054326057434082031, 120, 0, 0, 0, 0, 0, "", 45854, 1, NULL),
(68452, 22991, 530, 1, 1, 0, -4109.0615234375, 3019.10498046875, 352.239715576171875, 0.261799395084381103, 120, 0, 0, 0, 0, 0, "", 45942, 1, NULL),
(68453, 22991, 530, 1, 1, 0, -4018.354248046875, 3076.700439453125, 375.290008544921875, 5.550147056579589843, 120, 0, 0, 0, 0, 0, "", 45942, 1, NULL),
(68454, 22991, 530, 1, 1, 0, -4184.98388671875, 3044.709228515625, 352.39404296875, 1.815142393112182617, 120, 0, 0, 0, 0, 0, "", 45942, 1, NULL),
(68455, 22991, 530, 1, 1, 0, -4187.515625, 3040.38671875, 352.0712890625, 6.2657318115234375, 120, 0, 0, 0, 0, 0, "", 45942, 1, NULL),
(68501, 22991, 530, 1, 1, 0, -4189.6689453125, 3039.9013671875, 352.247161865234375, 5.497786998748779296, 120, 0, 0, 0, 0, 0, "", 45854, 1, NULL),
(68502, 22991, 530, 1, 1, 0, -4192.6064453125, 3045.103271484375, 352.095703125, 3.141592741012573242, 120, 0, 0, 0, 0, 0, "", 45942, 1, NULL),
(68503, 22991, 530, 1, 1, 0, -4192.015625, 3046.909423828125, 352.297119140625, 2.460914134979248046, 120, 0, 0, 0, 0, 0, "", 45942, 1, NULL),
(68504, 22991, 530, 1, 1, 0, -4186.47119140625, 3047.19189453125, 352.315643310546875, 2.600540637969970703, 120, 0, 0, 0, 0, 0, "", 45942, 1, NULL),
(68505, 22991, 530, 1, 1, 0, -3915.66748046875, 2983.3974609375, 396.95733642578125, 4.363323211669921875, 120, 0, 0, 0, 0, 0, "", 45854, 1, NULL),
(68506, 22991, 530, 1, 1, 0, -3883.212646484375, 3004.10546875, 399.737762451171875, 4.642575740814208984, 120, 0, 0, 0, 0, 0, "", 45854, 1, NULL),
(68507, 22991, 530, 1, 1, 0, -3883.263427734375, 3001.55419921875, 399.43084716796875, 3.892084121704101562, 120, 0, 0, 0, 0, 0, "", 45854, 1, NULL),
(68508, 22991, 530, 1, 1, 0, -3884.28564453125, 3003.296630859375, 400.062744140625, 4.398229598999023437, 120, 0, 0, 0, 0, 0, "", 45854, 1, NULL),
(68509, 22991, 530, 1, 1, 0, -3903.024658203125, 3095.84716796875, 383.782958984375, 3.996803998947143554, 120, 0, 0, 0, 0, 0, "", 45854, 1, NULL),
(68510, 22991, 530, 1, 1, 0, -3898.453125, 3093.0634765625, 383.6673583984375, 2.530727386474609375, 120, 0, 0, 0, 0, 0, "", 45854, 1, NULL),
(68511, 22991, 530, 1, 1, 0, -3900.75341796875, 3100.7548828125, 383.795074462890625, 5.846852779388427734, 120, 0, 0, 0, 0, 0, "", 45854, 1, NULL),
(68512, 22991, 530, 1, 1, 0, -4107.8134765625, 3023.421875, 352.142364501953125, 1.064650893211364746, 120, 0, 0, 0, 0, 0, "", 45942, 1, NULL),
(68513, 22991, 530, 1, 1, 0, -4113.5771484375, 3022.400146484375, 352.157379150390625, 5.637413501739501953, 120, 0, 0, 0, 0, 0, "", 45942, 1, NULL),
(68514, 22991, 530, 1, 1, 0, -3893.091552734375, 3677.1728515625, 374.516082763671875, 5.044001579284667968, 120, 0, 0, 0, 0, 0, "", 49936, 1, NULL),
(68515, 22991, 530, 1, 1, 0, -3892.46533203125, 3673.997314453125, 374.4775390625, 4.136430263519287109, 120, 0, 0, 0, 0, 0, "", 49936, 1, NULL),
(68516, 22991, 530, 1, 1, 0, -4198.52783203125, 3168.909423828125, 355.8470458984375, 5.899212837219238281, 120, 0, 0, 0, 0, 0, "", 45942, 1, NULL),
(68517, 22991, 530, 1, 1, 0, -4197.01318359375, 3170.04296875, 356.116851806640625, 5.131268024444580078, 120, 0, 0, 0, 0, 0, "", 45942, 1, NULL),
(68518, 22991, 530, 1, 1, 0, -4196.54345703125, 3167.68701171875, 356.34814453125, 5.742133140563964843, 120, 0, 0, 0, 0, 0, "", 45942, 1, NULL),
(68519, 22991, 530, 1, 1, 0, -4020.065673828125, 3077.837890625, 374.39129638671875, 1.535889744758605957, 120, 0, 0, 0, 0, 0, "", 45942, 1, NULL),
(68520, 22991, 530, 1, 1, 0, -4019.323486328125, 3079.74267578125, 375.108642578125, 5.026548385620117187, 120, 0, 0, 0, 0, 0, "", 45942, 1, NULL),
(68521, 22991, 530, 1, 1, 0, -3917.205322265625, 2981.6201171875, 396.483428955078125, 0.733038306236267089, 120, 0, 0, 0, 0, 0, "", 45854, 1, NULL),
(68522, 22991, 530, 1, 1, 0, -3918.451416015625, 2982.4384765625, 397.2398681640625, 4.555309295654296875, 120, 0, 0, 0, 0, 0, "", 45854, 1, NULL),
(68539, 22991, 530, 1, 1, 0, -3839.34716796875, 3344.850830078125, 337.83392333984375, 2.757620096206665039, 120, 0, 0, 0, 0, 0, "", 45854, 1, NULL),
(68540, 22991, 530, 1, 1, 0, -3835.296875, 3344.7734375, 338.154937744140625, 5.515240192413330078, 120, 0, 0, 0, 0, 0, "", 45854, 1, NULL),
(68541, 22991, 530, 1, 1, 0, -3846.4345703125, 3430.294189453125, 363.728759765625, 0.48869219422340393, 120, 0, 0, 0, 0, 0, "", 48632, 1, NULL),
(68542, 22991, 530, 1, 1, 0, -3864.132080078125, 3439.06298828125, 363.67913818359375, 6.230825424194335937, 120, 0, 0, 0, 0, 0, "", 48632, 1, NULL),
(68554, 22991, 530, 1, 1, 0, -3863.23876953125, 3440.424560546875, 363.655487060546875, 0.349065840244293212, 120, 0, 0, 0, 0, 0, "", 48632, 1, NULL),
(68555, 22991, 530, 1, 1, 0, -3846.345458984375, 3439.34326171875, 363.62847900390625, 6.161012172698974609, 120, 0, 0, 0, 0, 0, "", 48632, 1, NULL),
(68556, 22991, 530, 1, 1, 0, -3847.319091796875, 3441.39208984375, 363.648040771484375, 0.453785598278045654, 120, 0, 0, 0, 0, 0, "", 48632, 1, NULL),
(68557, 22991, 530, 1, 1, 0, -3686.20751953125, 3301.002685546875, 320.51287841796875, 0.837758064270019531, 120, 0, 0, 0, 0, 0, "", 45854, 1, NULL),
(68572, 22991, 530, 1, 1, 0, -3687.771728515625, 3299.846923828125, 320.30743408203125, 2.757620096206665039, 120, 0, 0, 0, 0, 0, "", 45854, 1, NULL),
(68573, 22991, 530, 1, 1, 0, -3692.64111328125, 3302.067626953125, 320.395904541015625, 6.056292533874511718, 120, 0, 0, 0, 0, 0, "", 45854, 1, NULL),
(68574, 22991, 530, 1, 1, 0, -3661.9111328125, 3379.150390625, 320.37713623046875, 0.890117883682250976, 120, 0, 0, 0, 0, 0, "", 45854, 1, NULL),
(68575, 22991, 530, 1, 1, 0, -3660.646240234375, 3381.8974609375, 320.18194580078125, 1.186823844909667968, 120, 0, 0, 0, 0, 0, "", 45854, 1, NULL),
(68576, 22991, 530, 1, 1, 0, -3665.4814453125, 3380.114501953125, 320.36468505859375, 5.811946392059326171, 120, 0, 0, 0, 0, 0, "", 45854, 1, NULL),
(68728, 22991, 530, 1, 1, 0, -3685.069580078125, 3305.966064453125, 320.19818115234375, 3.40339207649230957, 120, 0, 0, 0, 0, 0, "", 45854, 1, NULL),
(68737, 22991, 530, 1, 1, 0, -3688.302978515625, 3308.930908203125, 320.337493896484375, 1.65806281566619873, 120, 0, 0, 0, 0, 0, "", 45854, 1, NULL),
(68837, 22991, 530, 1, 1, 0, -3690.650634765625, 3306.765869140625, 320.429901123046875, 3.490658521652221679, 120, 0, 0, 0, 0, 0, "", 45854, 1, NULL),
(68932, 22991, 530, 1, 1, 0, -3879.369384765625, 3665.221923828125, 374.39324951171875, 3.979350566864013671, 120, 0, 0, 0, 0, 0, "", 45854, 1, NULL),
(68933, 22991, 530, 1, 1, 0, -3990.417236328125, 3139.132080078125, 372.87841796875, 3.665191411972045898, 120, 0, 0, 0, 0, 0, "", 45854, 1, NULL),
(68934, 22991, 530, 1, 1, 0, -3991.58544921875, 3134.32568359375, 372.70263671875, 6.2657318115234375, 120, 0, 0, 0, 0, 0, "", 45854, 1, NULL),
(68935, 22991, 530, 1, 1, 0, -3884.892333984375, 3684.9765625, 374.491546630859375, 3.752457857131958007, 120, 0, 0, 0, 0, 0, "", 45854, 1, NULL);
-- new spawns
DELETE FROM `creature` WHERE (`id1` IN (22991))
AND (`guid` BETWEEN 12720 AND 12730);
INSERT INTO `creature` (`guid`, `id1`, `map`, `spawnMask`, `phaseMask`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `wander_distance`, `MovementType`, `npcflag`, `unit_flags`, `dynamicflags`, `ScriptName`, `VerifiedBuild`, `CreateObject`, `Comment`) VALUES
(12720, 22991, 530, 1, 1, 0, -3639.384521484375, 3754.923583984375, 310.362457275390625, 3.106686115264892578, 120, 0, 0, 0, 0, 0, "", 48632, 1, NULL),
(12721, 22991, 530, 1, 1, 0, -3643.5390625, 3760.85595703125, 310.3238525390625, 4.764749050140380859, 120, 0, 0, 0, 0, 0, "", 45854, 1, NULL),
(12722, 22991, 530, 1, 1, 0, -3645.2470703125, 3757.53857421875, 310.43548583984375, 5.759586334228515625, 120, 0, 0, 0, 0, 0, "", 48632, 1, NULL),
(12723, 22991, 530, 1, 1, 0, -3712.20263671875, 3792.4306640625, 310.27117919921875, 0.366519153118133544, 120, 0, 0, 0, 0, 0, "", 45854, 1, NULL),
(12724, 22991, 530, 1, 1, 0, -3713.665771484375, 3797.59423828125, 310.0748291015625, 4.101523876190185546, 120, 0, 0, 0, 0, 0, "", 45854, 1, NULL),
(12725, 22991, 530, 1, 1, 0, -3717.185791015625, 3796.4189453125, 310.219635009765625, 4.485496044158935546, 120, 0, 0, 0, 0, 0, "", 45854, 1, NULL),
(12726, 22991, 530, 1, 1, 0, -3869.424072265625, 3778.604736328125, 348.780792236328125, 0.541052043437957763, 120, 0, 0, 0, 0, 0, "", 49936, 1, NULL),
(12727, 22991, 530, 1, 1, 0, -3872.444580078125, 3675.3837890625, 374.499786376953125, 3.996803998947143554, 120, 0, 0, 0, 0, 0, "", 45854, 1, NULL),
(12728, 22991, 530, 1, 1, 0, -3874.33935546875, 3779.94970703125, 348.308990478515625, 2.30383467674255371, 120, 0, 0, 0, 0, 0, "", 49936, 1, NULL),
(12729, 22991, 530, 1, 1, 0, -3877.2578125, 3667.89111328125, 374.45245361328125, 2.984513044357299804, 120, 0, 0, 0, 0, 0, "", 45854, 1, NULL),
(12730, 22991, 530, 1, 1, 0, -3877.272705078125, 3766.555908203125, 348.47967529296875, 2.164208173751831054, 120, 0, 0, 0, 0, 0, "", 45854, 1, NULL);
@@ -0,0 +1,3 @@
-- DB update 2024_10_11_02 -> 2024_10_11_03
DELETE FROM `spell_script_names` WHERE `spell_id` = 40354;
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES (40354, 'spell_najentus_remove_spines');
@@ -0,0 +1,5 @@
-- DB update 2024_10_11_03 -> 2024_10_11_04
DELETE FROM `creature_template_model` WHERE `CreatureID` = 22871;
INSERT INTO `creature_template_model` (`CreatureID`, `Idx`, `CreatureDisplayID`, `DisplayScale`, `Probability`, `VerifiedBuild`) VALUES
(22871, 0, 21254, 1, 0, 51831),
(22871, 1, 21262, 1, 1, 51831);
@@ -0,0 +1,22 @@
-- DB update 2024_10_11_04 -> 2024_10_12_00
UPDATE `creature_template` SET `unit_flags` = 33587202 WHERE (`entry` = 28782);
DELETE FROM `creature_text` WHERE (`CreatureID` = 28782) AND (`GroupID` = 0) AND (`ID` IN (0));
INSERT INTO `creature_text` (`CreatureID`, `GroupID`, `ID`, `Text`, `Type`, `Language`, `Probability`, `Emote`, `Duration`, `Sound`, `BroadcastTextId`, `TextRange`, `comment`)
VALUES(28782, 0, 0, '%s rears up, beckoning you to ride it.', 16, 0, 100.0, 0, 0, 0, 29069, 0, 'Archerus Deathcharger');
UPDATE `creature_template` SET `AIName` = 'SmartAI' WHERE `entry` = 28768;
DELETE FROM `smart_scripts` WHERE (`entryorguid` = 28768) AND (`source_type` = 0) AND (`id` IN (6, 8, 9, 10, 11));
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
(28768, 0, 6, 8, 61, 0, 100, 512, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 19, 28782, 5, 0, 0, 0, 0, 0, 0, 'Dark Rider of Acherus - On Death - Enter Evade Mode'),
(28768, 0, 8, 9, 61, 0, 100, 512, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 19, 28782, 5, 0, 0, 0, 0, 0, 0, 'Dark Rider of Acherus - On Death - Root In Place'),
(28768, 0, 9, 10, 61, 0, 100, 512, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 19, 28782, 5, 0, 0, 0, 0, 0, 0, 'Dark Rider of Acherus - On Death - Emote Message'),
(28768, 0, 10, 11, 61, 0, 100, 512, 0, 0, 0, 0, 0, 0, 19, 33554432, 0, 0, 0, 0, 0, 19, 28782, 5, 0, 0, 0, 0, 0, 0, 'Dark Rider of Acherus - On Death - Remove Not Selectable Unit Flag'),
(28768, 0, 11, 0, 61, 0, 100, 512, 0, 0, 0, 0, 0, 0, 142, 100, 0, 0, 0, 0, 0, 19, 28782, 5, 0, 0, 0, 0, 0, 0, 'Dark Rider of Acherus - On Death - Ensure Health Is Full When Revealed To Player');
UPDATE `creature_template` SET `AIName` = 'SmartAI' WHERE `entry` = 28782;
DELETE FROM `smart_scripts` WHERE (`entryorguid` = 28782) AND (`source_type` = 0) AND (`id` IN (1));
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param6`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
(28782, 0, 0, 0, 27, 0, 100, 512, 0, 0, 0, 0, 0, 0, 103, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Archerus DeathCharger - On Mount - Remove Root Effect');
@@ -0,0 +1,28 @@
-- DB update 2024_10_12_00 -> 2024_10_12_01
DELETE FROM `creature_text`
WHERE (`CreatureID`, `GroupID`, `ID`) IN ((28936, 1, 0), (28936, 1, 1), (28936, 1, 2), (28936, 1, 3), (28936, 1, 4), (28936, 1, 5), (28936, 2, 0), (28936, 3, 0), (28936, 4, 0), (28936, 5, 0), (28936, 6, 0), (28936, 7, 0), (28936, 8, 0), (28936, 8, 1), (28936, 8, 2), (28936, 8, 3), (28936, 8, 4), (28936, 8, 5), (28936, 8, 6));
INSERT INTO `creature_text`
(`CreatureID`, `GroupID`, `ID`, `Text`, `Type`, `Language`, `Probability`, `Emote`, `Duration`, `Sound`, `BroadcastTextId`, `TextRange`, `comment`)
VALUES(28936, 1, 0, 'You''ll be hanging in the gallows shortly, Scourge fiend!', 12, 0, 100.0, 0, 0, 0, 29160, 0, 'crusader SAY_CURSADER1'),
(28936, 1, 1, 'You''ll have to kill me, monster. I will tell you NOTHING!', 12, 0, 100.0, 0, 0, 0, 29142, 0, 'crusader SAY_CURSADER2'),
(28936, 1, 2, 'You hit like a girl. Honestly. Is that the best you can do?', 12, 0, 100.0, 0, 0, 0, 29146, 0, 'crusader SAY_CURSADER3'),
(28936, 1, 3, 'ARGH! You burned my last good tabard!', 12, 0, 100.0, 0, 0, 0, 29162, 0, 'crusader SAY_CURSADER4'),
(28936, 1, 4, 'Argh... The pain... The pain is almost as unbearable as the lashings I received in grammar school when I was but a child.', 12, 0, 100.0, 0, 0, 0, 29143, 0, 'crusader SAY_CURSADER5'),
(28936, 1, 5, 'I used to work for Grand Inquisitor Isillien! Your idea of pain is a normal mid-afternoon for me!', 12, 0, 100.0, 0, 0, 0, 29161, 0, 'crusader SAY_CURSADER6'),
(28936, 2, 0, 'I''ll tell you everything! STOP! PLEASE!', 12, 0, 100.0, 0, 0, 0, 29149, 0, 'break crusader SAY_PERSUADED1'),
(28936, 3, 0, 'We... We have only been told that the "Crimson Dawn" is an awakening. You... You see, the Light speaks to the High General. It is the Light...', 12, 0, 100.0, 0, 0, 0, 29150, 0, 'break crusader SAY_PERSUADED2'),
(28936, 4, 0, 'The Light that guides us. This movement was set in motion before you came... We... We do as we are told. It is what must be done.', 12, 0, 100.0, 0, 0, 0, 29151, 0, 'break crusader SAY_PERSUADED3'),
(28936, 5, 0, 'I know very litte else... The High General chooses who may go and who must stay behind. There''s nothing else... You must believe me!', 12, 0, 100.0, 0, 0, 0, 29152, 0, 'break crusader SAY_PERSUADED4'),
(28936, 6, 0, 'LIES! The pain you are about to endure will be talked about for years to come!', 12, 0, 100.0, 0, 0, 0, 29163, 0, 'break crusader SAY_PERSUADED5'),
(28936, 7, 0, 'NO! PLEASE! There is one more thing that I forgot to mention... A courier comes soon... From Hearthglen. It...', 12, 0, 100.0, 0, 0, 0, 29153, 0, 'break crusader SAY_PERSUADED6'),
(28936, 8, 0, 'I''ll tear the secrets from your soul! Tell me about the "Crimson Dawn" and your life may be spared!', 12, 0, 100.0, 0, 0, 0, 29138, 0, 'player SAY_PERSUADE1'),
(28936, 8, 1, 'Tell me what you know about "Crimson Dawn" or the beatings will continue!', 12, 0, 100.0, 0, 0, 0, 29134, 0, 'player SAY_PERSUADE2'),
(28936, 8, 2, 'I''m through being courteous with your kind, human! What is the "Crimson Dawn?"', 12, 0, 100.0, 0, 0, 0, 29135, 0, 'player SAY_PERSUADE3'),
(28936, 8, 3, 'Is your life worth so little? Just tell me what I need to know about "Crimson Dawn" and I''ll end your suffering quickly.', 12, 0, 100.0, 0, 0, 0, 29139, 0, 'player SAY_PERSUADE4'),
(28936, 8, 4, 'I can keep this up for a very long time, Scarlet dog! Tell me about the "Crimson Dawn!"', 12, 0, 100.0, 0, 0, 0, 29137, 0, 'player SAY_PERSUADE'),
(28936, 8, 5, 'What is the "Crimson Dawn?"', 12, 0, 100.0, 0, 0, 0, 29133, 0, 'player SAY_PERSUADE6'),
(28936, 8, 6, '"Crimson Dawn!" What is it! Speak!', 12, 0, 100.0, 0, 0, 0, 29136, 0, 'player SAY_PERSUADE7');
UPDATE `creature_template` SET `ScriptName` = 'npc_crusade_persuaded' WHERE (`entry` = 28940);
UPDATE `item_template` SET `spellppmRate_1` = 8 WHERE (`entry` = 39371);
@@ -0,0 +1,9 @@
-- DB update 2024_10_12_01 -> 2024_10_13_00
--
DELETE FROM `game_event_creature_quest` WHERE `quest` IN (13931, 13932);
DELETE FROM `creature_queststarter` WHERE `quest`=13932 AND `id`=24468;
DELETE FROM `creature_queststarter` WHERE `quest`=13931 AND `id`=24510;
INSERT INTO `creature_queststarter` (`id`, `quest`) VALUES
(24468, 13932),
(24510, 13931);
@@ -0,0 +1,46 @@
-- DB update 2024_10_13_00 -> 2024_10_13_01
--
UPDATE `creature_template` SET `AIName` = 'SmartAI', `ScriptName`= '' WHERE `entry` = 24247;
DELETE FROM `smart_scripts` WHERE (`entryorguid` = 24247) AND (`source_type` = 0) AND (`id` IN (0, 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
(24247, 0, 0, 0, 0, 0, 100, 0, 10000, 10000, 12000, 12000, 0, 0, 11, 43592, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Koragg - In Combat - Cast \'Mighty Blow\''),
(24247, 0, 1, 0, 0, 0, 100, 0, 15000, 15000, 12000, 12000, 0, 0, 11, 43593, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 'Koragg - In Combat - Cast \'Cold Stare\'');
UPDATE `creature_template` SET `AIName` = 'SmartAI', `ScriptName`= '' WHERE `entry` = 24246;
DELETE FROM `smart_scripts` WHERE (`entryorguid` = 24246) AND (`source_type` = 0) AND (`id` IN (0));
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `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
(24246, 0, 0, 0, 0, 0, 100, 0, 8000, 8000, 12000, 12000, 0, 0, 11, 43590, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Darkheart - In Combat - Cast \'Psychic Wail\'');
UPDATE `creature_template` SET `AIName` = 'SmartAI', `ScriptName`= '' WHERE `entry` = 24244;
DELETE FROM `smart_scripts` WHERE (`entryorguid` = 24244) AND (`source_type` = 0) AND (`id` IN (0));
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `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
(24244, 0, 0, 0, 0, 0, 100, 0, 2000, 2000, 1000, 1000, 0, 0, 11, 43584, 64, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Gazakroth - In Combat - Cast \'Firebolt\'');
UPDATE `creature_template` SET `AIName` = 'SmartAI', `ScriptName`= '' WHERE `entry` = 24245;
DELETE FROM `smart_scripts` WHERE (`entryorguid` = 24245) AND (`source_type` = 0) AND (`id` IN (0));
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `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
(24245, 0, 0, 0, 0, 0, 100, 0, 15000, 15000, 12000, 12000, 0, 0, 11, 43586, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Fenstalker - In Combat - Cast \'Volatile Infection\'');
UPDATE `creature_template` SET `AIName` = 'SmartAI', `ScriptName`= '' WHERE `entry` = 24242;
DELETE FROM `smart_scripts` WHERE (`entryorguid` = 24242) AND (`source_type` = 0) AND (`id` IN (0));
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `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
(24242, 0, 0, 0, 0, 0, 100, 0, 5000, 5000, 2500, 2500, 0, 0, 11, 43579, 64, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 'Slither - In Combat - Cast \'Venom Spit\'');
UPDATE `creature_template` SET `AIName` = 'SmartAI', `ScriptName`= '' WHERE `entry` = 24243;
DELETE FROM `smart_scripts` WHERE (`entryorguid` = 24243) AND (`source_type` = 0) AND (`id` IN (0, 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
(24243, 0, 0, 0, 0, 0, 100, 0, 13000, 13000, 12000, 12000, 0, 0, 11, 43583, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Lord Raadan - In Combat - Cast \'Thunderclap\''),
(24243, 0, 1, 0, 0, 0, 100, 0, 8000, 8000, 12000, 12000, 0, 0, 11, 43582, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Lord Raadan - In Combat - Cast \'Flame Breath\'');
UPDATE `creature_template` SET `AIName` = 'SmartAI', `ScriptName`= '' WHERE `entry` = 24241;
DELETE FROM `smart_scripts` WHERE (`entryorguid` = 24241) AND (`source_type` = 0) AND (`id` IN (0, 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
(24241, 0, 0, 0, 16, 0, 100, 0, 43578, 100, 12000, 15000, 1, 0, 11, 43578, 32, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Thurg - On Friendly Unit Missing Buff \'Bloodlust\' - Cast \'Bloodlust\''),
(24241, 0, 1, 0, 14, 0, 100, 0, 10000, 10000, 12000, 12000, 0, 0, 11, 15496, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Thurg - In Combat - Cast \'Cleave\'');
+146
View File
@@ -0,0 +1,146 @@
-- DB update 2024_10_13_01 -> 2024_10_13_02
UPDATE creature SET `phaseMask`=`phaseMask`& ~1 WHERE (id1 = 28660) AND (guid IN (129474, 129475, 129476, 129477, 129478, 129479));
UPDATE creature SET `phaseMask`=`phaseMask`|2 WHERE (id1 = 28660) AND (guid IN (129474, 129475, 129476, 129477, 129478, 129479));
UPDATE creature SET `phaseMask`=`phaseMask`& ~1 WHERE (`id1` = 28560) AND (`guid` IN (128800, 128801, 128802));
UPDATE creature SET `phaseMask`=`phaseMask`|2 WHERE (`id1` = 28560) AND (`guid` IN (128800, 128801, 128802));
UPDATE creature SET `phaseMask`=`phaseMask`& ~1 WHERE (`id1` = 28559) AND (`guid` IN (128797, 128798, 128799));
UPDATE creature SET `phaseMask`=`phaseMask`|2 WHERE (`id1` = 28559) AND (`guid` IN (128797, 128798, 128799));
UPDATE creature SET `phaseMask`=`phaseMask`& ~1 WHERE (`id1` = 28662) AND (`guid` IN (129483, 129484, 129485, 129486, 129487, 129488, 129489, 129490, 129491));
UPDATE creature SET `phaseMask`=`phaseMask`|2 WHERE (`id1` = 28662) AND (`guid` IN (129483, 129484, 129485, 129486, 129487, 129488, 129489, 129490, 129491));
UPDATE creature SET `phaseMask`=`phaseMask`& ~1 WHERE (`id1` = 28548) AND (`guid` IN (128752));
UPDATE creature SET `phaseMask`=`phaseMask`|2 WHERE (`id1` = 28548) AND (`guid` IN (128752));
UPDATE creature SET `phaseMask`=`phaseMask`& ~1 WHERE (`id1` = 28558) AND (`guid` IN (128796));
UPDATE creature SET `phaseMask`=`phaseMask`|2 WHERE (`id1` = 28558) AND (`guid` IN (128796));
UPDATE creature SET `phaseMask`=`phaseMask`& ~1 WHERE (`id1` = 28529) AND (`guid` IN (128627, 128628, 128629, 128630, 128631, 128632, 128633, 128634, 128635, 128636, 128637, 128638, 128639, 128640, 128642, 128643, 128644, 128645, 128646, 128647, 128648, 128649, 128650, 128651, 128652, 128653, 128654, 128655, 128656, 128657, 128658, 128659, 128660, 128661, 128662, 128663, 128664, 128665, 128666, 128667, 128668, 128669, 128670, 128671, 128672, 128673, 128674, 128675, 128676, 128677, 128678, 128679, 128680, 128681, 128682, 128683, 128684, 128685, 128686, 128687, 128688, 128689, 128690, 128691, 128692, 128693, 128694, 128695, 128696, 128698, 128699, 128700, 128701, 128702, 128703, 128704, 128705, 128706, 128707, 128708, 128709, 128710, 128711, 128712, 128713, 128714, 128715, 128716, 128717, 128718, 128719, 128720, 128721, 128722, 128723, 128724, 128725, 128726, 128727, 128728, 128729, 128730, 128731, 128732, 128733, 128734));
UPDATE creature SET `phaseMask`=`phaseMask`|2 WHERE (`id1` = 28529) AND (`guid` IN (128627, 128628, 128629, 128630, 128631, 128632, 128633, 128634, 128635, 128636, 128637, 128638, 128639, 128640, 128642, 128643, 128644, 128645, 128646, 128647, 128648, 128649, 128650, 128651, 128652, 128653, 128654, 128655, 128656, 128657, 128658, 128659, 128660, 128661, 128662, 128663, 128664, 128665, 128666, 128667, 128668, 128669, 128670, 128671, 128672, 128673, 128674, 128675, 128676, 128677, 128678, 128679, 128680, 128681, 128682, 128683, 128684, 128685, 128686, 128687, 128688, 128689, 128690, 128691, 128692, 128693, 128694, 128695, 128696, 128698, 128699, 128700, 128701, 128702, 128703, 128704, 128705, 128706, 128707, 128708, 128709, 128710, 128711, 128712, 128713, 128714, 128715, 128716, 128717, 128718, 128719, 128720, 128721, 128722, 128723, 128724, 128725, 128726, 128727, 128728, 128729, 128730, 128731, 128732, 128733, 128734));
UPDATE creature SET `phaseMask`=`phaseMask`& ~1 WHERE (`id1` = 28530) AND (`guid` IN (128735, 128736, 128737));
UPDATE creature SET `phaseMask`=`phaseMask`|2 WHERE (`id1` = 28530) AND (`guid` IN (128735, 128736, 128737));
UPDATE creature SET `phaseMask`=`phaseMask`& ~1 WHERE (`id1` = 28594) AND (`guid` IN (129165, 129168, 129169, 129170, 129171));
UPDATE creature SET `phaseMask`=`phaseMask`|2 WHERE (`id1` = 28594) AND (`guid` IN (129165, 129168, 129169, 129170, 129171));
UPDATE creature SET `phaseMask`=`phaseMask`|2 WHERE (`id1` = 28683) AND (`guid` IN (128455));
UPDATE creature SET `phaseMask`=`phaseMask`|2 WHERE (`id1` = 28605) AND (`guid` IN (129202, 129203, 129204, 129205, 129206, 129207, 129208, 129210, 129211, 129212, 129213, 129214, 129215, 129216, 129217));
UPDATE creature SET `phaseMask`=`phaseMask`|2 WHERE (`id1` = 28606) AND (`guid` IN (129220, 129221, 129222, 129223, 129224, 129225, 129226, 129227, 129228, 129229, 129230, 129231, 129232, 129233, 129234, 129235, 129236, 129237));
UPDATE creature SET `phaseMask`=`phaseMask`|2 WHERE (`id1` = 28607) AND (`guid` IN (129238, 129239, 129240, 129241, 129242, 129243, 129244, 129245, 129246, 129247, 129248, 129249, 129250, 129251, 129252));
UPDATE creature SET `phaseMask`=`phaseMask`|2 WHERE (`id1` = 28766) AND (`guid` IN (128583, 128584, 128585, 128586, 128587, 128588, 128589));
UPDATE creature SET `phaseMask`=`phaseMask`|2 WHERE (`id1` = 29501) AND (`guid` IN (128509, 128510));
UPDATE creature SET `phaseMask`=`phaseMask`|2 WHERE (`id1` = 28614) AND (`guid` IN (129308, 129309));
UPDATE creature SET `phaseMask`=`phaseMask` |2 WHERE (`id1` = 25462) AND (`guid` IN (128738));
UPDATE creature SET `phaseMask`=`phaseMask` |2 WHERE (`id1` = 28487) AND (`guid` IN (128515, 128516));
UPDATE creature SET `phaseMask`=`phaseMask` |2 WHERE (`id1` = 29488) AND (`guid` IN (128500, 128501));
UPDATE creature SET `phaseMask`=`phaseMask` |2 WHERE (`id1` = 28510) AND (`guid` IN (128582));
UPDATE creature SET `phaseMask`=`phaseMask` |2 WHERE (`id1` = 27928) AND (`guid` IN (128460));
UPDATE creature SET `phaseMask`=`phaseMask` |2 WHERE (`id1` = 28486) AND (`guid` IN (128514));
UPDATE creature SET `phaseMask`=`phaseMask` |2 WHERE (`id1` = 28447) AND (`guid` IN (128481));
UPDATE creature SET `phaseMask`=`phaseMask` |2 WHERE (`id1` = 28448) AND (`guid` IN (128482));
UPDATE creature SET `phaseMask`=`phaseMask` |2 WHERE (`id1` = 28449) AND (`guid` IN (128483));
UPDATE creature SET `phaseMask`=`phaseMask` |2 WHERE (`id1` = 28444) AND (`guid` IN (128470));
UPDATE creature SET `phaseMask`=`phaseMask` |2 WHERE (`id1` = 28445) AND (`guid` IN (128475));
UPDATE creature SET `phaseMask`=`phaseMask` |2 WHERE (`id1` = 28356) AND (`guid` IN (129306));
UPDATE creature SET `phaseMask`=`phaseMask` |2 WHERE (`id1` = 28474) AND (`guid` IN (128507));
UPDATE creature SET `phaseMask`=`phaseMask` |2 WHERE (`id1` = 28488) AND (`guid` IN (128522, 128523, 128525, 128526));
UPDATE creature SET `phaseMask`=`phaseMask` |2 WHERE (`id1` = 28472) AND (`guid` IN (128506));
UPDATE creature SET `phaseMask`=`phaseMask` |2 WHERE (`id1` = 28471) AND (`guid` IN (128505));
UPDATE creature SET `phaseMask`=`phaseMask` |2 WHERE (`id1` = 28489) AND (`guid` IN (128527, 128528, 128529, 128530, 128531, 128532, 128533, 128534));
UPDATE creature SET `phaseMask`=`phaseMask` |2 WHERE (`id1` = 28490) AND (`guid` IN (128535, 128536, 128537, 128538, 128539, 128540, 128541, 128542, 128543));
UPDATE creature SET `phaseMask`=`phaseMask` |2 WHERE (`id1` = 28491) AND (`guid` IN (128545, 128546, 128547, 128548, 128549, 128550, 128551, 128552, 128553));
UPDATE creature SET `phaseMask`=`phaseMask` |2 WHERE (`id1` = 29203) AND (`guid` IN (128456));
UPDATE creature SET `phaseMask`=`phaseMask` |2 WHERE (`id1` = 29207) AND (`guid` IN (128458));
UPDATE creature SET `phaseMask`=`phaseMask` |2 WHERE (`id1` = 29208) AND (`guid` IN (128459));
UPDATE creature SET `phaseMask`=`phaseMask` |2 WHERE (`id1` = 29205) AND (`guid` IN (128457));
UPDATE creature SET `phaseMask`=`phaseMask` |2 WHERE (`id1` = 29212) AND (`guid` IN (128465));
UPDATE creature SET `phaseMask`=`phaseMask` |2 WHERE (`id1` = 28506) AND (`guid` IN (128580));
UPDATE creature SET `phaseMask`=`phaseMask` |2 WHERE (`id1` = 28500) AND (`guid` IN (128577));
UPDATE creature SET `phaseMask`=`phaseMask` |2 WHERE (`id1` = 28505) AND (`guid` IN (128579));
UPDATE creature SET `phaseMask`=`phaseMask` |2 WHERE (`id1` = 28357) AND (`guid` IN (129307));
UPDATE creature SET `phaseMask`=`phaseMask` |2 WHERE (`id1` = 28383) AND (`guid` IN (129388, 129389, 129390, 129391));
UPDATE gameobject SET `phaseMask`=`phaseMask` |2 WHERE (`id` = 191609) AND (`guid` IN (65961, 65962));
UPDATE gameobject SET `phaseMask`=`phaseMask` |2 WHERE (`id` = 191612) AND (`guid` IN (65963, 65964));
UPDATE gameobject SET `phaseMask`=`phaseMask` |2 WHERE (`id` = 191613) AND (`guid` IN (65965, 65966));
UPDATE gameobject SET `phaseMask`=`phaseMask` |2 WHERE (`id` = 191577) AND (`guid` IN (65915));
UPDATE gameobject SET `phaseMask`=`phaseMask` |2 WHERE (`id` = 191580) AND (`guid` IN (65916));
UPDATE gameobject SET `phaseMask`=`phaseMask` |2 WHERE (`id` = 191581) AND (`guid` IN (65920));
UPDATE gameobject SET `phaseMask`=`phaseMask` |2 WHERE (`id` = 191582) AND (`guid` IN (65921));
UPDATE gameobject SET `phaseMask`=`phaseMask` |2 WHERE (`id` = 191583) AND (`guid` IN (65923));
UPDATE gameobject SET `phaseMask`=`phaseMask` |2 WHERE (`id` = 191584) AND (`guid` IN (65925));
UPDATE gameobject SET `phaseMask`=`phaseMask` |2 WHERE (`id` = 191585) AND (`guid` IN (65926));
UPDATE gameobject SET `phaseMask`=`phaseMask` |2 WHERE (`id` = 191586) AND (`guid` IN (65927));
UPDATE gameobject SET `phaseMask`=`phaseMask` |2 WHERE (`id` = 191587) AND (`guid` IN (65928));
UPDATE gameobject SET `phaseMask`=`phaseMask` |2 WHERE (`id` = 191588) AND (`guid` IN (65929));
UPDATE gameobject SET `phaseMask`=`phaseMask` |2 WHERE (`id` = 191589) AND (`guid` IN (65930));
UPDATE gameobject SET `phaseMask`=`phaseMask` |2 WHERE (`id` = 191590) AND (`guid` IN (65931));
UPDATE creature SET `phaseMask`=`phaseMask` |2 WHERE (`id1` = 29519) AND (`guid` IN (128557, 128558, 128559));
UPDATE creature SET `phaseMask`=`phaseMask` |2 WHERE (`id1` = 29520) AND (`guid` IN (128561, 128563));
UPDATE creature SET `phaseMask`=`phaseMask` |2 WHERE (`id1` = 29565) AND (`guid` IN (128740));
UPDATE creature SET `phaseMask`=`phaseMask` |2 WHERE (`id1` = 29566) AND (`guid` IN (128742, 128743, 128744));
UPDATE creature SET `phaseMask`=`phaseMask` |2 WHERE (`id1` = 29567) AND (`guid` IN (128747, 128748, 128749));
UPDATE creature SET `phaseMask`=`phaseMask` |2 WHERE (`id1` = 29521) AND (`guid` IN (128565, 128566, 128567, 128568, 128569, 128570, 128571, 128572, 128573, 128574, 128575, 128576));
UPDATE creature SET `phaseMask`=`phaseMask` |2 WHERE (`id1` = 28385) AND (`guid` IN (129392, 129393, 129395));
UPDATE creature SET `phaseMask`=`phaseMask` |2 WHERE (`id1` = 28386) AND (`guid` IN (129401, 129402, 129404));
@@ -0,0 +1,21 @@
-- DB update 2024_10_13_02 -> 2024_10_13_03
-- Update creature 'Venture Co. Gemologist' with sniffed values
-- updated spawns
DELETE FROM `creature` WHERE (`id1` IN (17279))
AND (`guid` IN (62061, 62062, 62063));
INSERT INTO `creature` (`guid`, `id1`, `map`, `spawnMask`, `phaseMask`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `wander_distance`, `MovementType`, `npcflag`, `unit_flags`, `dynamicflags`, `ScriptName`, `VerifiedBuild`, `CreateObject`, `Comment`) VALUES
(62061, 17279, 530, 1, 1, 1, -4627.05712890625, -12929.3251953125, 7.633514404296875, 5.131268024444580078, 300, 0, 0, 0, 0, 0, "", 45942, 1, NULL),
(62062, 17279, 530, 1, 1, 1, -4599.86083984375, -12879.29296875, 6.824597358703613281, 3.420845270156860351, 300, 0, 0, 0, 0, 0, "", 45942, 1, NULL),
(62063, 17279, 530, 1, 1, 1, -4583.64501953125, -12864.466796875, 6.161464691162109375, 4.310963153839111328, 300, 0, 0, 0, 0, 0, "", 45942, 1, NULL);
-- new spawns
DELETE FROM `creature` WHERE (`id1` IN (17279))
AND (`guid` IN (1559, 1560));
INSERT INTO `creature` (`guid`, `id1`, `map`, `spawnMask`, `phaseMask`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `wander_distance`, `MovementType`, `npcflag`, `unit_flags`, `dynamicflags`, `ScriptName`, `VerifiedBuild`, `CreateObject`, `Comment`) VALUES
(1559, 17279, 530, 1, 1, 1, -4587.087890625, -12868.81640625, 5.791094303131103515, 0.767944872379302978, 300, 0, 0, 0, 0, 0, "", 45942, 1, NULL),
(1560, 17279, 530, 1, 1, 1, -4641.50244140625, -12940.6015625, 8.814029693603515625, 0.855211317539215087, 300, 0, 0, 0, 0, 0, "", 45435, 1, NULL);
-- disable emote for one of the new spawns
DELETE FROM `creature_addon` WHERE (`guid` IN (1560));
INSERT INTO `creature_addon` (`guid`, `path_id`, `mount`, `bytes1`, `bytes2`, `emote`, `visibilityDistanceType`, `auras`) VALUES
(1560, 0, 0, 0, 1, 0, 0, NULL);
@@ -0,0 +1,28 @@
-- DB update 2024_10_13_03 -> 2024_10_13_04
DELETE FROM `creature_text`
WHERE `CreatureID` = 36856
AND `GroupID` IN (0, 1, 2, 3, 4, 5, 6, 7, 8, 9);
INSERT INTO `creature_text`(`CreatureID`,`GroupID`,`ID`,`Text`,`Type`,`Language`,`Probability`,`Emote`,`Duration`,`Sound`,`BroadcastTextId`,`TextRange`,`comment`) VALUES
(36856,0,0,'You\'re in luck. I\'ve got just what you need in the load I\'m about to wash.',12,0,100,0,0,0,36761,0,'Shandy Glossgleam'),
(36856,1,0,'Well done!',12,0,16,4,0,0,3287,0,'Shandy say 2'),
(36856,1,1,'Aquanos can hardly keep up!',12,0,14,4,0,0,37988,0,'Shandy say 2'),
(36856,1,2,'Nice. I don\'t want to know what that stain was.',12,0,14,4,0,0,37987,0,'Shandy say 2'),
(36856,1,3,'I should keep you around.',12,0,14,0,0,0,37989,0,'Shandy Glossgleam'),
(36856,1,4,'That\'s how it\'s done!',12,0,14,0,0,0,37986,0,'Shandy Glossgleam'),
(36856,1,5,'Clean and tidy!',12,0,14,0,0,0,37985,0,'Shandy Glossgleam'),
(36856,1,6,'Nice. I don\'t want to know what that stain was.',12,0,14,0,0,0,37987,0,'Shandy Glossgleam'),
(36856,1,7,'Aquanos can hardly keep up!',12,0,14,0,0,0,37988,0,'Shandy Glossgleam'),
(36856,2,0,'See the piles of laundry and the bucket of water? I\'ll call out what I need next, and you put it in the tub. Ready?',12,0,100,0,0,0,36762,0,'Shandy Glossgleam'),
(36856,3,0,'The tub needs more water!',12,0,100,25,0,0,36790,0,'Shandy Glossgleam'),
(36856,4,0,'Quick, add some shirts to the laundry!',12,0,100,0,0,0,36788,0,'Shandy Glossgleam'),
(36856,5,0,'Toss some pants in to the tub!',12,0,100,25,0,0,36787,0,'Shandy Glossgleam'),
(36856,6,0,'Add the unmentionables... uh, I mean, the \'delicates\'!',12,0,100,25,0,0,36789,0,'Shandy Glossgleam'),
(36856,7,0,'Aquanos, stop sending the clothes so high! You didn\'t have to see the look on Aethas Sunreaver\'s face when he found his pants in the fountain!',12,0,100,0,0,0,36817,0,'Shandy Glossgleam'),
(36856,8,0,'See how easy that was with everyone working together? Just take what you need from the clean laundry here, but don\'t forget to return it when you\'re finished.',12,0,100,0,0,0,36791,0,'Shandy Glossgleam'),
(36856,9,0,'Oh, no! That wasn\'t right. Now I\'ll have to go get more detergent so we can start over!',12,0,100,0,0,0,36763,0,'Shandy Glossgleam');
UPDATE `gossip_menu_option`
SET `BoxBroadcastTextID` = 0
WHERE `menuid` = 10854 AND `OptionBroadcastTextID` IN (37552, 36760);
@@ -0,0 +1,3 @@
-- DB update 2024_10_13_04 -> 2024_10_14_00
--
UPDATE `creature_template` SET `flags_extra` = `flags_extra` |2097152 WHERE `entry` IN (22949, 22950, 22951, 22952);
@@ -0,0 +1,8 @@
-- DB update 2024_10_14_00 -> 2024_10_14_01
--
DELETE FROM `gameobject` WHERE `guid` IN (99829, 99830, 99831);
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
(99829, 188019, 571, 0, 0, 1, 1, 3391, 5137, 13, 1.8, 0, 0, 0, 0, 25, 0, 1, "", 0, NULL),
(99830, 188019, 571, 0, 0, 1, 1, 3739, 5047, -0.77, 2.18, 0, 0, 0, 0, 25, 0, 1, "", 0, NULL),
(99831, 188019, 571, 0, 0, 1, 1, 3517, 5016, -1, 2.25, 0, 0, 0, 0, 25, 0, 1, "", 0, NULL);
@@ -0,0 +1,11 @@
-- DB update 2024_10_14_01 -> 2024_10_14_02
-- Update creature 'Raging Soul' with sniffed values
-- new spawns
DELETE FROM `creature` WHERE (`id1` IN (18506))
AND (`guid` IN (12707, 12708, 12709, 12710));
INSERT INTO `creature` (`guid`, `id1`, `map`, `spawnMask`, `phaseMask`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `wander_distance`, `MovementType`, `npcflag`, `unit_flags`, `dynamicflags`, `ScriptName`, `VerifiedBuild`, `CreateObject`, `Comment`) VALUES
(12707, 18506, 558, 3, 1, 0, 48.44750595092773437, -170.952972412109375, 15.11065673828125, 6.016101837158203125, 7200, 0, 0, 0, 0, 0, "", 46368, 1, NULL),
(12708, 18506, 558, 3, 1, 0, 60.22912216186523437, -165.152603149414062, 15.32995414733886718, 3.326717376708984375, 7200, 0, 0, 0, 0, 0, "", 46368, 1, NULL),
(12709, 18506, 558, 3, 1, 0, 67.13529205322265625, -160.446762084960937, 15.37751579284667968, 0.466603010892868041, 7200, 0, 0, 0, 0, 0, "", 52237, 1, NULL),
(12710, 18506, 558, 3, 1, 0, 69.42613983154296875, -157.7301025390625, 15.39217567443847656, 3.025804519653320312, 7200, 10, 1, 0, 0, 0, "", 52237, 1, NULL);
@@ -0,0 +1 @@
-- DB update 2024_10_14_02 -> 2024_10_14_03
@@ -0,0 +1,22 @@
-- DB update 2024_10_14_03 -> 2024_10_14_04
-- Update gameobject 'Draenethyst Mine Crystal' with sniffed values
-- updated spawns
DELETE FROM `gameobject` WHERE (`id` IN (184689))
AND (`guid` IN (25510, 25511, 25512, 25513));
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
(25510, 184689, 530, 0, 0, 1, 1, 1388.2451171875, 6547.3505859375, 11.69665908813476562, 5.93412017822265625, 0, 0, -0.17364788055419921, 0.984807789325714111, 181, 255, 1, "", 45704, NULL),
(25511, 184689, 530, 0, 0, 1, 1, 1361.4273681640625, 6612.55615234375, -12.2869329452514648, 1.32644820213317871, 0, 0, 0.615660667419433593, 0.788011372089385986, 181, 255, 1, "", 45942, NULL),
(25512, 184689, 530, 0, 0, 1, 1, 1343.68603515625, 6540.97900390625, 6.092723846435546875, 2.44346022605895996, 0, 0, 0.939692497253417968, 0.34202045202255249, 181, 255, 1, "", 45942, NULL),
(25513, 184689, 530, 0, 0, 1, 1, 1351.0885009765625, 6585.18603515625, -7.47749614715576171, 4.241150379180908203, 0, 0, -0.85264015197753906, 0.522498607635498046, 181, 255, 1, "", 45942, NULL);
-- new spawns
DELETE FROM `gameobject` WHERE (`id` IN (184689))
AND (`guid` IN (286, 287, 288, 289, 290, 291, 292));
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
(286, 184689, 530, 0, 0, 1, 1, 1303.167236328125, 6605.68017578125, -7.54029703140258789, 1.710421562194824218, 0, 0, 0.754709243774414062, 0.656059443950653076, 181, 255, 1, "", 45942, NULL),
(287, 184689, 530, 0, 0, 1, 1, 1310.228271484375, 6705.1630859375, -18.4085350036621093, 6.265733242034912109, 0, 0, -0.00872611999511718, 0.999961912631988525, 181, 255, 1, "", 45942, NULL),
(288, 184689, 530, 0, 0, 1, 1, 1319.365478515625, 6628.2421875, -8.98430633544921875, 3.769911527633666992, 0, 0, -0.95105648040771484, 0.309017121791839599, 181, 255, 1, "", 45942, NULL),
(289, 184689, 530, 0, 0, 1, 1, 1319.4683837890625, 6672.37890625, -19.1232185363769531, 4.799657344818115234, 0, 0, -0.67558956146240234, 0.737277925014495849, 181, 255, 1, "", 45942, NULL),
(290, 184689, 530, 0, 0, 1, 1, 1368.6573486328125, 6687.1484375, -21.0584907531738281, 5.340708732604980468, 0, 0, -0.45398998260498046, 0.891006767749786376, 181, 255, 1, "", 45942, NULL),
(291, 184689, 530, 0, 0, 1, 1, 1392.392333984375, 6637.54931640625, -15.6357831954956054, 1.553341388702392578, 0, 0, 0.700908660888671875, 0.713251054286956787, 181, 255, 1, "", 45942, NULL),
(292, 184689, 530, 0, 0, 1, 1, 1395.9932861328125, 6693.228515625, -18.150156021118164, 0.122172988951206207, 0, 0, 0.061048507690429687, 0.998134791851043701, 181, 255, 1, "", 45942, NULL);
@@ -0,0 +1 @@
-- DB update 2024_10_14_04 -> 2024_10_14_05
@@ -0,0 +1 @@
-- DB update 2024_10_14_05 -> 2024_10_14_06
@@ -0,0 +1 @@
-- DB update 2024_10_14_06 -> 2024_10_14_07
@@ -0,0 +1 @@
-- DB update 2024_10_14_07 -> 2024_10_14_08
@@ -0,0 +1 @@
-- DB update 2024_10_14_08 -> 2024_10_14_09
@@ -0,0 +1 @@
-- DB update 2024_10_14_09 -> 2024_10_14_10
@@ -0,0 +1 @@
-- DB update 2024_10_14_10 -> 2024_10_14_11
@@ -0,0 +1 @@
-- DB update 2024_10_14_11 -> 2024_10_14_12
@@ -0,0 +1 @@
-- DB update 2024_10_14_12 -> 2024_10_14_13
@@ -0,0 +1 @@
-- DB update 2024_10_14_13 -> 2024_10_14_14
@@ -0,0 +1 @@
-- DB update 2024_10_14_14 -> 2024_10_14_15
@@ -0,0 +1 @@
-- DB update 2024_10_14_15 -> 2024_10_14_16
@@ -0,0 +1 @@
-- DB update 2024_10_14_16 -> 2024_10_14_17
@@ -0,0 +1 @@
-- DB update 2024_10_14_17 -> 2024_10_14_18
@@ -0,0 +1 @@
-- DB update 2024_10_14_18 -> 2024_10_14_19
@@ -0,0 +1 @@
-- DB update 2024_10_14_19 -> 2024_10_14_20
@@ -0,0 +1 @@
-- DB update 2024_10_14_20 -> 2024_10_14_21
@@ -0,0 +1 @@
-- DB update 2024_10_14_21 -> 2024_10_14_22
@@ -0,0 +1 @@
-- DB update 2024_10_14_22 -> 2024_10_14_23
@@ -0,0 +1 @@
-- DB update 2024_10_14_23 -> 2024_10_14_24
@@ -0,0 +1 @@
-- DB update 2024_10_14_24 -> 2024_10_14_25
@@ -0,0 +1 @@
-- DB update 2024_10_14_25 -> 2024_10_14_26
@@ -0,0 +1 @@
-- DB update 2024_10_14_26 -> 2024_10_14_27
@@ -0,0 +1 @@
-- DB update 2024_10_14_27 -> 2024_10_14_28
@@ -0,0 +1,23 @@
-- DB update 2024_10_14_28 -> 2024_10_14_29
--
DELETE FROM `waypoint_data` WHERE `id` = 12845500;
INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`, `action`, `action_chance`, `wpguid`) VALUES
(12845500, 1, 2214.827, -5863.48, 101.417465, NULL, 0, 0, 0, 100, 0),
(12845500, 2, 2227.322, -5851.402, 101.436295, NULL, 0, 0, 0, 100, 0),
(12845500, 3, 2225.669, -5834.608, 101.33587, NULL, 0, 0, 0, 100, 0),
(12845500, 4, 2215.862, -5817.638, 101.59648, NULL, 0, 0, 0, 100, 0),
(12845500, 5, 2202.8013, -5819.025, 101.31645, NULL, 0, 0, 0, 100, 0),
(12845500, 6, 2177.9443, -5827.26, 101.35007, NULL, 0, 0, 0, 100, 0),
(12845500, 7, 2178.7808, -5839.8413, 101.35327, NULL, 0, 0, 0, 100, 0),
(12845500, 8, 2188.918, -5859.777, 101.32753, NULL, 0, 0, 0, 100, 0),
(12845500, 9, 2209.019, -5849.5127, 101.38912, NULL, 0, 0, 0, 100, 0),
(12845500, 10, 2239.316, -5853.1245, 101.253586, NULL, 0, 0, 0, 100, 0),
(12845500, 11, 2246.9602, -5834.0312, 101.29634, NULL, 0, 0, 0, 100, 0),
(12845500, 12, 2220.9856, -5817.607, 101.5587, NULL, 0, 0, 0, 100, 0),
(12845500, 13, 2208.4644, -5800.1553, 101.36618, NULL, 0, 0, 0, 100, 0),
(12845500, 14, 2176.558, -5812.266, 101.339, NULL, 0, 0, 0, 100, 0),
(12845500, 15, 2189.4963, -5833.0923, 101.458275, NULL, 0, 0, 0, 100, 0),
(12845500, 16, 2190.612, -5838.978, 101.348434, NULL, 0, 0, 0, 100, 0),
(12845500, 17, 2197.681, -5858.3774, 101.3591, NULL, 0, 0, 0, 100, 0);
UPDATE `creature` SET `position_x` = 2182.4385, `position_y` = -5821.7393, `position_z` = 101.48733, `orientation` = 5.26792764663696289, `VerifiedBuild` = 56713, `CreateObject` = 1 WHERE `guid` = 128455 AND `id1` = 28683;
UPDATE `creature_template` SET `MovementType`= 2, `movementId`= 12845500 WHERE `entry` = 28683;
@@ -0,0 +1,8 @@
-- DB update 2024_10_14_29 -> 2024_10_15_30
UPDATE `creature_template` SET `MovementType`= 0, `movementId`= 0 WHERE (`entry` = 28683);
UPDATE `creature` SET `MovementType`= 2 WHERE `guid` = 128455 AND `id1` = 28683;
DELETE FROM `creature_addon` WHERE (`guid` IN (128455));
INSERT INTO `creature_addon` (`guid`, `path_id`, `mount`, `bytes1`, `bytes2`, `emote`, `visibilityDistanceType`, `auras`) VALUES
(128455, 12845500, 2409, 0, 1, 0, 0, NULL);
@@ -0,0 +1,92 @@
-- DB update 2024_10_15_30 -> 2024_10_15_31
DELETE FROM `waypoint_data` WHERE `id` = 12916500;
INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`, `action`, `action_chance`, `wpguid`) VALUES
(12916500, 1, 1477.94, -5793.97, 131.225, NULL, 0, 0, 0, 100, 0),
(12916500, 2, 1446.45, -5754.95, 131.211, NULL, 0, 0, 0, 100, 0),
(12916500, 3, 1425.85, -5745.6, 131.211, NULL, 0, 0, 0, 100, 0),
(12916500, 4, 1417.13, -5750.33, 131.232, NULL, 0, 0, 0, 100, 0),
(12916500, 5, 1411.11, -5759.36, 131.448, NULL, 0, 0, 0, 100, 0),
(12916500, 6, 1405.98, -5776.95, 131.33, NULL, 0, 0, 0, 100, 0),
(12916500, 7, 1399.51, -5791.66, 131.216, NULL, 0, 0, 0, 100, 0),
(12916500, 8, 1397.36, -5804.95, 131.243, NULL, 0, 0, 0, 100, 0),
(12916500, 9, 1403.88, -5815.38, 131.213, NULL, 0, 0, 0, 100, 0),
(12916500, 10, 1409.91, -5822.05, 131.211, NULL, 0, 0, 0, 100, 0),
(12916500, 11, 1417.92, -5831.07, 131.2, NULL, 0, 0, 0, 100, 0),
(12916500, 12, 1440.18, -5855.69, 131.21, NULL, 0, 0, 0, 100, 0),
(12916500, 13, 1457.1, -5856.7, 131.215, NULL, 0, 0, 0, 100, 0),
(12916500, 14, 1481.76, -5856.09, 131.223, NULL, 0, 0, 0, 100, 0),
(12916500, 15, 1494.29, -5855.59, 131.214, NULL, 0, 0, 0, 100, 0),
(12916500, 16, 1491.22, -5835.8, 131.211, NULL, 0, 0, 0, 100, 0),
(12916500, 17, 1488.49, -5813.67, 131.211, NULL, 0, 0, 0, 100, 0);
DELETE FROM `waypoint_data` WHERE `id` = 12916800;
INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`, `action`, `action_chance`, `wpguid`) VALUES
(12916800, 1, 1406.73, -5811.67, 131.209, NULL, 0, 0, 0, 100, 0),
(12916800, 2, 1401.88, -5802.59, 131.219, NULL, 0, 0, 0, 100, 0),
(12916800, 3, 1418.88, -5757.21, 131.243, NULL, 0, 0, 0, 100, 0),
(12916800, 4, 1424.36, -5752.7, 131.211, NULL, 0, 0, 0, 100, 0),
(12916800, 5, 1438.09, -5755.48, 131.211, NULL, 0, 0, 0, 100, 0),
(12916800, 6, 1456.97, -5776.86, 131.216, NULL, 0, 0, 0, 100, 0),
(12916800, 7, 1478.54, -5802.62, 131.211, NULL, 0, 0, 0, 100, 0),
(12916800, 8, 1485.12, -5821.35, 131.214, NULL, 0, 0, 0, 100, 0),
(12916800, 9, 1488.73, -5846.62, 131.214, NULL, 0, 0, 0, 100, 0),
(12916800, 10, 1487.73, -5851.07, 131.214, NULL, 0, 0, 0, 100, 0),
(12916800, 11, 1460.82, -5851.64, 131.226, NULL, 0, 0, 0, 100, 0),
(12916800, 12, 1444.73, -5851.89, 131.223, NULL, 0, 0, 0, 100, 0),
(12916800, 13, 1433.97, -5842.2, 131.213, NULL, 0, 0, 0, 100, 0);
DELETE FROM `waypoint_data` WHERE `id` = 12917000;
INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`, `action`, `action_chance`, `wpguid`) VALUES
(12917000, 1, 1377.73, -5695.92, 137.968, NULL, 0, 0, 0, 100, 0),
(12917000, 2, 1385.88, -5701.9, 137.997, NULL, 0, 0, 0, 100, 0),
(12917000, 3, 1387.87, -5703.37, 137.173, NULL, 0, 0, 0, 100, 0),
(12917000, 4, 1389.8, -5704.65, 136.087, NULL, 0, 0, 0, 100, 0),
(12917000, 5, 1397.4, -5711.28, 135.041, NULL, 0, 0, 0, 100, 0),
(12917000, 6, 1406.94, -5723.55, 132.408, NULL, 0, 0, 0, 100, 0),
(12917000, 7, 1412.76, -5732.12, 131.701, NULL, 0, 0, 0, 100, 0),
(12917000, 8, 1418.01, -5739.84, 131.22, NULL, 0, 0, 0, 100, 0),
(12917000, 9, 1422.96, -5747.23, 131.208, NULL, 0, 0, 0, 100, 0),
(12917000, 10, 1416.89, -5737.62, 131.321, NULL, 0, 0, 0, 100, 0),
(12917000, 11, 1410.12, -5727, 131.99, NULL, 0, 0, 0, 100, 0),
(12917000, 12, 1403.86, -5716.92, 133.217, NULL, 0, 0, 0, 100, 0),
(12917000, 13, 1396.99, -5710.09, 135.191, NULL, 0, 0, 0, 100, 0),
(12917000, 14, 1389.82, -5704.98, 136.077, NULL, 0, 0, 0, 100, 0),
(12917000, 15, 1385.97, -5702.27, 138.001, NULL, 0, 0, 0, 100, 0),
(12917000, 16, 1376.98, -5695.79, 137.968, NULL, 0, 0, 0, 100, 0),
(12917000, 17, 1367.02, -5688.62, 137.968, NULL, 0, 0, 0, 100, 0);
DELETE FROM `waypoint_data` WHERE `id` = 12917100;
INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`, `action`, `action_chance`, `wpguid`) VALUES
(12917100, 1, 1397.56, -5710.58, 135.075, NULL, 0, 0, 0, 100, 0),
(12917100, 2, 1406.09, -5721.5, 132.634, NULL, 0, 0, 0, 100, 0),
(12917100, 3, 1415.09, -5735.3, 131.516, NULL, 0, 0, 0, 100, 0),
(12917100, 4, 1421.83, -5746.68, 131.207, NULL, 0, 0, 0, 100, 0),
(12917100, 5, 1414.7, -5734.86, 131.553, NULL, 0, 0, 0, 100, 0),
(12917100, 6, 1406.42, -5721.23, 132.611, NULL, 0, 0, 0, 100, 0),
(12917100, 7, 1397.92, -5711.19, 134.959, NULL, 0, 0, 0, 100, 0),
(12917100, 8, 1390.23, -5705.32, 136.028, NULL, 0, 0, 0, 100, 0),
(12917100, 9, 1386.07, -5702.3, 138.003, NULL, 0, 0, 0, 100, 0),
(12917100, 10, 1375.49, -5694.62, 137.967, NULL, 0, 0, 0, 100, 0),
(12917100, 11, 1367.02, -5688.56, 137.967, NULL, 0, 0, 0, 100, 0),
(12917100, 12, 1377.48, -5695.92, 137.967, NULL, 0, 0, 0, 100, 0),
(12917100, 13, 1385.91, -5701.93, 137.997, NULL, 0, 0, 0, 100, 0),
(12917100, 14, 1389.99, -5705.07, 136.058, NULL, 0, 0, 0, 100, 0);
UPDATE `creature` SET `position_x` = 1389.9873, `position_y` = -5705.0527, `position_z` = 136.05995 WHERE `guid` = 129171 AND `id1` = 28594;
UPDATE `creature` SET `MovementType`= 2 WHERE `guid` = 129165 AND `id1` = 28594;
UPDATE `creature` SET `MovementType`= 2 WHERE `guid` = 129168 AND `id1` = 28594;
UPDATE `creature` SET `MovementType`= 2 WHERE `guid` = 129170 AND `id1` = 28594;
UPDATE `creature` SET `MovementType`= 2 WHERE `guid` = 129171 AND `id1` = 28594;
DELETE FROM `creature_addon` WHERE (`guid` IN (129165, 129168, 129170, 129171));
INSERT INTO `creature_addon` (`guid`, `path_id`, `mount`, `bytes1`, `bytes2`, `emote`, `visibilityDistanceType`, `auras`) VALUES
(129165, 12916500, 0, 0, 0, 0, 0, NULL),
(129168, 12916800, 0, 0, 0, 0, 0, NULL),
(129170, 12917000, 0, 0, 0, 0, 0, NULL),
(129171, 12917100, 0, 0, 0, 0, 0, NULL);
@@ -0,0 +1,92 @@
-- DB update 2024_10_15_31 -> 2024_10_15_32
UPDATE `creature_template` SET `speed_walk` = 1, `speed_run` = 0.7143, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 2110;
UPDATE `creature_template` SET `speed_walk` = 1, `speed_run` = 1.1429, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 19871;
UPDATE `creature_template` SET `speed_walk` = 1, `speed_run` = 0.9920628411429268972857, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 22515;
UPDATE `creature_template` SET `speed_walk` = 1, `speed_run` = 0.9920628411429268972857, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 23472;
UPDATE `creature_template` SET `speed_walk` = 2, `speed_run` = 1.7143, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 24850;
UPDATE `creature_template` SET `speed_walk` = 2.8, `speed_run` = 2.8571, `BaseAttackTime` = 1000, `RangeAttackTime` = 1000 WHERE `entry` = 24882;
UPDATE `creature_template` SET `speed_walk` = 2, `speed_run` = 2.8571, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 24895;
UPDATE `creature_template` SET `speed_walk` = 1, `speed_run` = 1.1429, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 24928;
UPDATE `creature_template` SET `speed_walk` = 2, `speed_run` = 2.8571, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 25038;
UPDATE `creature_template` SET `speed_walk` = 2, `speed_run` = 1.7143, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 25165;
UPDATE `creature_template` SET `speed_walk` = 2, `speed_run` = 1.7143, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 25166;
UPDATE `creature_template` SET `speed_walk` = 1, `speed_run` = 0.9920628411429268972857, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 25357;
UPDATE `creature_template` SET `speed_walk` = 1, `speed_run` = 0.9920628411429268972857, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 25358;
UPDATE `creature_template` SET `speed_walk` = 1, `speed_run` = 1.4286, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 25363;
UPDATE `creature_template` SET `speed_walk` = 1, `speed_run` = 1.4286, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 25367;
UPDATE `creature_template` SET `speed_walk` = 1, `speed_run` = 1.4286, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 25368;
UPDATE `creature_template` SET `speed_walk` = 1, `speed_run` = 1.4286, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 25369;
UPDATE `creature_template` SET `speed_walk` = 1, `speed_run` = 1.4286, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 25370;
UPDATE `creature_template` SET `speed_walk` = 1, `speed_run` = 1.4286, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 25371;
UPDATE `creature_template` SET `speed_walk` = 1, `speed_run` = 1.4286, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 25372;
UPDATE `creature_template` SET `speed_walk` = 0.888887977600097656, `speed_run` = 2.8571, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 25373;
UPDATE `creature_template` SET `speed_walk` = 0.888887977600097656, `speed_run` = 2.7143, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 25483;
UPDATE `creature_template` SET `speed_walk` = 3.2, `speed_run` = 2.7143, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 25484;
UPDATE `creature_template` SET `speed_walk` = 0.888887977600097656, `speed_run` = 2.8571, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 25486;
UPDATE `creature_template` SET `speed_walk` = 0.888887977600097656, `speed_run` = 2.7143, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 25506;
UPDATE `creature_template` SET `speed_walk` = 2, `speed_run` = 1.4286, `BaseAttackTime` = 1500, `RangeAttackTime` = 1500 WHERE `entry` = 25507;
UPDATE `creature_template` SET `speed_walk` = 2, `speed_run` = 1.4286, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 25508;
UPDATE `creature_template` SET `speed_walk` = 2.4, `speed_run` = 1.7143, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 25509;
UPDATE `creature_template` SET `speed_walk` = 2.4, `speed_run` = 1.4286, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 25591;
UPDATE `creature_template` SET `speed_walk` = 2.4, `speed_run` = 1.4286, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 25592;
UPDATE `creature_template` SET `speed_walk` = 2.4, `speed_run` = 1.4286, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 25593;
UPDATE `creature_template` SET `speed_walk` = 2.4, `speed_run` = 1.4286, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 25595;
UPDATE `creature_template` SET `speed_walk` = 2.4, `speed_run` = 1.4286, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 25597;
UPDATE `creature_template` SET `speed_walk` = 2.4, `speed_run` = 1.4286, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 25599;
UPDATE `creature_template` SET `speed_walk` = 1, `speed_run` = 1.1429, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 25608;
UPDATE `creature_template` SET `speed_walk` = 1, `speed_run` = 1.1429, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 25632;
UPDATE `creature_template` SET `speed_walk` = 1, `speed_run` = 1.1429, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 25638;
UPDATE `creature_template` SET `speed_walk` = 1, `speed_run` = 1.1429, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 25639;
UPDATE `creature_template` SET `speed_walk` = 1, `speed_run` = 1.1429, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 25644;
UPDATE `creature_template` SET `speed_walk` = 1, `speed_run` = 1.1429, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 25661;
UPDATE `creature_template` SET `speed_walk` = 1, `speed_run` = 1, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 25741;
UPDATE `creature_template` SET `speed_walk` = 1, `speed_run` = 1.1429, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 25770;
UPDATE `creature_template` SET `speed_walk` = 1, `speed_run` = 1.1429, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 25795;
UPDATE `creature_template` SET `speed_walk` = 1, `speed_run` = 1.1429, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 25796;
UPDATE `creature_template` SET `speed_walk` = 0.888887977600097656, `speed_run` = 1.4286, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 25837;
UPDATE `creature_template` SET `speed_walk` = 1, `speed_run` = 1.1429, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 25848;
UPDATE `creature_template` SET `speed_walk` = 2.4, `speed_run` = 1.4286, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 25851;
UPDATE `creature_template` SET `speed_walk` = 1.6, `speed_run` = 1.4286, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 25867;
UPDATE `creature_template` SET `speed_walk` = 1, `speed_run` = 1.1429, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 25953;
UPDATE `creature_model_info` SET `BoundingRadius` = 1, `CombatReach` = 1 WHERE `DisplayID` = 1141;
UPDATE `creature_model_info` SET `BoundingRadius` = 0.5, `CombatReach` = 1 WHERE `DisplayID` = 11686;
UPDATE `creature_model_info` SET `BoundingRadius` = 1.049999952316284179, `CombatReach` = 12 WHERE `DisplayID` = 14173;
UPDATE `creature_model_info` SET `BoundingRadius` = 0.5, `CombatReach` = 1 WHERE `DisplayID` = 16925;
UPDATE `creature_model_info` SET `BoundingRadius` = 0.125, `CombatReach` = 0.25 WHERE `DisplayID` = 17188;
UPDATE `creature_model_info` SET `BoundingRadius` = 1, `CombatReach` = 10 WHERE `DisplayID` = 17205;
UPDATE `creature_model_info` SET `BoundingRadius` = 1.5, `CombatReach` = 3 WHERE `DisplayID` = 18139;
UPDATE `creature_model_info` SET `BoundingRadius` = 0.225000008940696716, `CombatReach` = 1.125 WHERE `DisplayID` = 19663;
UPDATE `creature_model_info` SET `BoundingRadius` = 0.75, `CombatReach` = 1.5 WHERE `DisplayID` = 20577;
UPDATE `creature_model_info` SET `BoundingRadius` = 3, `CombatReach` = 3.60000014305114746 WHERE `DisplayID` = 20919;
UPDATE `creature_model_info` SET `BoundingRadius` = 0.60000002384185791, `CombatReach` = 2 WHERE `DisplayID` = 21455;
UPDATE `creature_model_info` SET `BoundingRadius` = 6, `CombatReach` = 18 WHERE `DisplayID` = 22711;
UPDATE `creature_model_info` SET `BoundingRadius` = 0.75, `CombatReach` = 2.5 WHERE `DisplayID` = 22811;
UPDATE `creature_model_info` SET `BoundingRadius` = 1.75, `CombatReach` = 17.5 WHERE `DisplayID` = 22965;
UPDATE `creature_model_info` SET `BoundingRadius` = 0.517049968242645263, `CombatReach` = 2.02500009536743164 WHERE `DisplayID` = 23158;
UPDATE `creature_model_info` SET `BoundingRadius` = 0.517049968242645263, `CombatReach` = 2.02500009536743164 WHERE `DisplayID` = 23159;
UPDATE `creature_model_info` SET `BoundingRadius` = 0.889300048351287841, `CombatReach` = 2.5 WHERE `DisplayID` = 23177;
UPDATE `creature_model_info` SET `BoundingRadius` = 1.007500052452087402, `CombatReach` = 3.25 WHERE `DisplayID` = 23240;
UPDATE `creature_model_info` SET `BoundingRadius` = 3.75, `CombatReach` = 2.75 WHERE `DisplayID` = 23266;
UPDATE `creature_model_info` SET `BoundingRadius` = 0.91666799783706665, `CombatReach` = 3 WHERE `DisplayID` = 23267;
UPDATE `creature_model_info` SET `BoundingRadius` = 0.875, `CombatReach` = 1.75 WHERE `DisplayID` = 23269;
UPDATE `creature_model_info` SET `BoundingRadius` = 0.497899949550628662, `CombatReach` = 1.949999928474426269 WHERE `DisplayID` = 23293;
UPDATE `creature_model_info` SET `BoundingRadius` = 1.20000004768371582, `CombatReach` = 1.80000007152557373 WHERE `DisplayID` = 23295;
UPDATE `creature_model_info` SET `BoundingRadius` = 1.20000004768371582, `CombatReach` = 1.80000007152557373 WHERE `DisplayID` = 23297;
UPDATE `creature_model_info` SET `BoundingRadius` = 0.889300048351287841, `CombatReach` = 2.5 WHERE `DisplayID` = 23334;
UPDATE `creature_model_info` SET `BoundingRadius` = 1.75, `CombatReach` = 10.5 WHERE `DisplayID` = 23345;
UPDATE `creature_model_info` SET `BoundingRadius` = 1.5, `CombatReach` = 3 WHERE `DisplayID` = 23377;
UPDATE `creature_model_info` SET `BoundingRadius` = 0.610000014305114746, `CombatReach` = 6 WHERE `DisplayID` = 23404;
UPDATE `creature_model_info` SET `BoundingRadius` = 0.75, `CombatReach` = 3.75 WHERE `DisplayID` = 23473;
UPDATE `creature_model_info` SET `BoundingRadius` = 0.60000002384185791, `CombatReach` = 3 WHERE `DisplayID` = 23474;
UPDATE `creature_model_info` SET `BoundingRadius` = 0.60000002384185791, `CombatReach` = 3 WHERE `DisplayID` = 23476;
UPDATE `creature_model_info` SET `BoundingRadius` = 0.60000002384185791, `CombatReach` = 3 WHERE `DisplayID` = 23477;
UPDATE `creature_model_info` SET `BoundingRadius` = 0.60000002384185791, `CombatReach` = 3 WHERE `DisplayID` = 23478;
UPDATE `creature_model_info` SET `BoundingRadius` = 0.754675984382629394, `CombatReach` = 3 WHERE `DisplayID` = 23479;
UPDATE `creature_model_info` SET `BoundingRadius` = 1.299999952316284179, `CombatReach` = 1.949999928474426269 WHERE `DisplayID` = 23525;
UPDATE `creature_model_info` SET `BoundingRadius` = 0.517049968242645263, `CombatReach` = 2.02500009536743164 WHERE `DisplayID` = 23526;
UPDATE `creature_model_info` SET `BoundingRadius` = 0.517049968242645263, `CombatReach` = 2.02500009536743164 WHERE `DisplayID` = 23531;
UPDATE `creature_model_info` SET `BoundingRadius` = 0.517049968242645263, `CombatReach` = 2.02500009536743164 WHERE `DisplayID` = 23533;
UPDATE `creature_model_info` SET `BoundingRadius` = 0.517049968242645263, `CombatReach` = 2.02500009536743164 WHERE `DisplayID` = 23538;
UPDATE `creature_model_info` SET `BoundingRadius` = 0.517049968242645263, `CombatReach` = 2.02500009536743164 WHERE `DisplayID` = 23539;
UPDATE `creature_model_info` SET `BoundingRadius` = 0.382999986410140991, `CombatReach` = 1.5 WHERE `DisplayID` = 23590;
UPDATE `creature_model_info` SET `BoundingRadius` = 0.800000011920928955, `CombatReach` = 1.60000002384185791 WHERE `DisplayID` = 23830;
@@ -0,0 +1,8 @@
-- DB update 2024_10_15_32 -> 2024_10_16_00
-- Update creature 'Oomailiq' with sniffed values
-- new spawns
DELETE FROM `creature` WHERE (`id1` IN (31806))
AND (`guid` IN (308));
INSERT INTO `creature` (`guid`, `id1`, `map`, `spawnMask`, `phaseMask`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `wander_distance`, `MovementType`, `npcflag`, `unit_flags`, `dynamicflags`, `ScriptName`, `VerifiedBuild`, `CreateObject`, `Comment`) VALUES
(308, 31806, 621, 1, 1, 0, -19.990936279296875, 0.077455997467041015, 17.6105804443359375, 3.071779489517211914, 120, 0, 0, 0, 0, 0, "", 45942, 1, NULL);
@@ -0,0 +1,67 @@
-- DB update 2024_10_16_00 -> 2024_10_16_01
UPDATE `creature` SET `position_x` = 1415.4373, `position_y` = -5752.8945, `position_z` = 131.30084, `orientation` = 3.839396476745605468, `wander_distance` = 0, `MovementType` = 2, `CreateObject` = 1, `VerifiedBuild` = 56713 WHERE `id1` = 28594 AND `guid` = 129165;
UPDATE `creature` SET `position_x` = 1418.6387, `position_y` = -5758.492, `position_z` = 131.24905, `orientation` = 1.177735805511474609, `wander_distance` = 0, `MovementType` = 2, `CreateObject` = 1, `VerifiedBuild` = 56713 WHERE `id1` = 28594 AND `guid` = 129168;
UPDATE `creature` SET `position_x` = 1360.4492, `position_y` = -5683.808, `position_z` = 138.74478, `orientation` = 5.676506996154785156, `CreateObject` = 1, `VerifiedBuild` = 56713 WHERE `id1` = 28594 AND `guid` = 129169;
UPDATE `creature` SET `position_x` = 1406.4192, `position_y` = -5723.9375, `position_z` = 132.38057, `orientation` = 5.36331796646118164, `wander_distance` = 0, `MovementType` = 0, `CreateObject` = 1, `VerifiedBuild` = 56713 WHERE `id1` = 28594 AND `guid` = 129170;
UPDATE `creature` SET `position_x` = 1412.2305, `position_y` = -5731.557, `position_z` = 131.75316, `orientation` = 5.366878509521484375, `wander_distance` = 0, `MovementType` = 2, `CreateObject` = 1, `VerifiedBuild` = 56713 WHERE `id1` = 28594 AND `guid` = 129171;
DELETE FROM `waypoint_data` WHERE `id` = 12916500;
INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`, `action`, `action_chance`, `wpguid`) VALUES
(12916500, 1, 1410.3698, -5762.8335, 131.43745, NULL, 0, 0, 0, 100, 0),
(12916500, 2, 1407.5739, -5774.8276, 131.33566, NULL, 0, 0, 0, 100, 0),
(12916500, 3, 1400.0348, -5789.2324, 131.22272, NULL, 0, 0, 0, 100, 0),
(12916500, 4, 1397.7992, -5801.5757, 131.2285, NULL, 0, 0, 0, 100, 0),
(12916500, 5, 1402.9713, -5814.936, 131.2145, NULL, 0, 0, 0, 100, 0),
(12916500, 6, 1419.8129, -5832.764, 131.1969, NULL, 0, 0, 0, 100, 0),
(12916500, 7, 1433.2709, -5847.9785, 131.21193, NULL, 0, 0, 0, 100, 0),
(12916500, 8, 1441.0192, -5854.522, 131.21257, NULL, 0, 0, 0, 100, 0),
(12916500, 9, 1453.899, -5856.497, 131.2154, NULL, 0, 0, 0, 100, 0),
(12916500, 10, 1480.6685, -5854.989, 131.22208, NULL, 0, 0, 0, 100, 0),
(12916500, 11, 1492.9026, -5854.279, 131.21404, NULL, 0, 0, 0, 100, 0),
(12916500, 12, 1492.9155, -5843.5674, 131.21198, NULL, 0, 0, 0, 100, 0),
(12916500, 13, 1488.3405, -5813.3306, 131.21085, NULL, 0, 0, 0, 100, 0),
(12916500, 14, 1478.0803, -5793.954, 131.22769, NULL, 0, 0, 0, 100, 0),
(12916500, 15, 1465.781, -5777.6206, 131.27104, NULL, 0, 0, 0, 100, 0),
(12916500, 16, 1445.4419, -5754.9077, 131.21011, NULL, 0, 0, 0, 100, 0),
(12916500, 17, 1424.6149, -5745.1987, 131.20967, NULL, 0, 0, 0, 100, 0);
DELETE FROM `waypoint_data` WHERE `id` = 12916800;
INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`, `action`, `action_chance`, `wpguid`) VALUES
(12916800, 1, 1423.784, -5753.6196, 131.21034, NULL, 0, 0, 0, 100, 0),
(12916800, 2, 1438.4303, -5755.653, 131.21004, NULL, 0, 0, 0, 100, 0),
(12916800, 3, 1453.449, -5772.697, 131.21564, NULL, 0, 0, 0, 100, 0),
(12916800, 4, 1472.0319, -5793.676, 131.21124, NULL, 0, 0, 0, 100, 0),
(12916800, 5, 1480.9645, -5806.4946, 131.21095, NULL, 0, 0, 0, 100, 0),
(12916800, 6, 1487.4835, -5827.0117, 131.21222, NULL, 0, 0, 0, 100, 0),
(12916800, 7, 1487.8892, -5848.086, 131.2139, NULL, 0, 0, 0, 100, 0),
(12916800, 8, 1484.236, -5850.959, 131.21649, NULL, 0, 0, 0, 100, 0),
(12916800, 9, 1461.8696, -5851.4355, 131.23096, NULL, 0, 0, 0, 100, 0),
(12916800, 10, 1441.8431, -5850.792, 131.2129, NULL, 0, 0, 0, 100, 0),
(12916800, 11, 1423.0482, -5831.1094, 131.20496, NULL, 0, 0, 0, 100, 0),
(12916800, 12, 1406.6604, -5813.7505, 131.21092, NULL, 0, 0, 0, 100, 0),
(12916800, 13, 1400.523, -5801.3213, 131.21956, NULL, 0, 0, 0, 100, 0),
(12916800, 14, 1404.7975, -5791.418, 131.21114, NULL, 0, 0, 0, 100, 0),
(12916800, 15, 1413.1937, -5771.624, 131.27168, NULL, 0, 0, 0, 100, 0),
(12916800, 16, 1418.6387, -5758.492, 131.24905, NULL, 0, 0, 0, 100, 0);
DELETE FROM `waypoint_data` WHERE `id` = 12917100;
INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`, `action`, `action_chance`, `wpguid`) VALUES
(12917100, 1, 1422.7795, -5747.4033, 131.20946, NULL, 0, 0, 0, 100, 0),
(12917100, 2, 1412.2305, -5731.557, 131.75316, NULL, 0, 0, 0, 100, 0),
(12917100, 3, 1394.4702, -5708.2007, 135.60547, NULL, 0, 0, 0, 100, 0),
(12917100, 4, 1385.6752, -5701.634, 138.07877, NULL, 0, 0, 0, 100, 0),
(12917100, 5, 1369.9221, -5690.5527, 138.07875, NULL, 0, 0, 0, 100, 0),
(12917100, 6, 1385.6752, -5701.634, 138.07877, NULL, 0, 0, 0, 100, 0),
(12917100, 7, 1394.4702, -5708.2007, 135.60547, NULL, 0, 0, 0, 100, 0);
DELETE FROM `creature_formations` WHERE `leaderGUID` = 129171 AND `memberGUID` = 129170;
INSERT INTO `creature_formations` (`leaderGUID`, `memberGUID`, `dist`, `angle`, `groupAI`, `point_1`, `point_2`) VALUES
(129171, 129171, 0, 0, 0, 0, 0),
(129171, 129170, 10, 180, 512, 0, 0);
DELETE FROM `creature_addon` WHERE `guid` IN (129165, 129168, 129171);
INSERT INTO `creature_addon` (`guid`, `path_id`, `mount`, `bytes1`, `bytes2`, `emote`, `visibilityDistanceType`, `auras`) VALUES
(129165, 12916500, 0, 0, 0, 0, 0, NULL),
(129168, 12916800, 0, 0, 0, 0, 0, NULL),
(129171, 12917100, 0, 0, 0, 0, 0, NULL);
@@ -0,0 +1,86 @@
-- DB update 2024_10_16_01 -> 2024_10_16_02
UPDATE `creature_template` SET `speed_walk` = 1, `speed_run` = 0.8571, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 1412;
UPDATE `creature_template` SET `speed_walk` = 1, `speed_run` = 0.8571, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 14881;
UPDATE `creature_template` SET `speed_walk` = 1, `speed_run` = 1.1429, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 21252;
UPDATE `creature_template` SET `speed_walk` = 1, `speed_run` = 0.9920628411429268972857, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 22515;
UPDATE `creature_template` SET `speed_walk` = 1, `speed_run` = 0.9920628411429268972857, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 22517;
UPDATE `creature_template` SET `speed_walk` = 1, `speed_run` = 1.4286, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 23542;
UPDATE `creature_template` SET `speed_walk` = 1.6, `speed_run` = 2.1429, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 23574;
UPDATE `creature_template` SET `speed_walk` = 2, `speed_run` = 2.1429, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 23576;
UPDATE `creature_template` SET `speed_walk` = 4, `speed_run` = 2.1429, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 23577;
UPDATE `creature_template` SET `speed_walk` = 1, `speed_run` = 2.1429, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 23578;
UPDATE `creature_template` SET `speed_walk` = 1, `speed_run` = 1.4286, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 23580;
UPDATE `creature_template` SET `speed_walk` = 1, `speed_run` = 1.4286, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 23581;
UPDATE `creature_template` SET `speed_walk` = 1, `speed_run` = 1.4286, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 23582;
UPDATE `creature_template` SET `speed_walk` = 1, `speed_run` = 1.4286, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 23584;
UPDATE `creature_template` SET `speed_walk` = 1, `speed_run` = 1.1429, `BaseAttackTime` = 1600, `RangeAttackTime` = 1600 WHERE `entry` = 23586;
UPDATE `creature_template` SET `speed_walk` = 1, `speed_run` = 2, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 23596;
UPDATE `creature_template` SET `speed_walk` = 1, `speed_run` = 2, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 23597;
UPDATE `creature_template` SET `speed_walk` = 1, `speed_run` = 1.1429, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 23746;
UPDATE `creature_template` SET `speed_walk` = 1, `speed_run` = 1.4286, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 23774;
UPDATE `creature_template` SET `speed_walk` = 1, `speed_run` = 1.1429, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 23790;
UPDATE `creature_template` SET `speed_walk` = 1, `speed_run` = 1.1429, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 23807;
UPDATE `creature_template` SET `speed_walk` = 1, `speed_run` = 1.1429, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 23813;
UPDATE `creature_template` SET `speed_walk` = 1, `speed_run` = 1.1429, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 23814;
UPDATE `creature_template` SET `speed_walk` = 1, `speed_run` = 1.1429, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 23817;
UPDATE `creature_template` SET `speed_walk` = 1, `speed_run` = 1.4286, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 23834;
UPDATE `creature_template` SET `speed_walk` = 2.4, `speed_run` = 2.1429, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 23863;
UPDATE `creature_template` SET `speed_walk` = 1, `speed_run` = 1.4286, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 23889;
UPDATE `creature_template` SET `speed_walk` = 1, `speed_run` = 1.1429, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 23897;
UPDATE `creature_template` SET `speed_walk` = 1, `speed_run` = 2, `BaseAttackTime` = 1800, `RangeAttackTime` = 1800 WHERE `entry` = 24043;
UPDATE `creature_template` SET `speed_walk` = 1, `speed_run` = 1.4286, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 24047;
UPDATE `creature_template` SET `speed_walk` = 1, `speed_run` = 2, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 24059;
UPDATE `creature_template` SET `speed_walk` = 1, `speed_run` = 2, `BaseAttackTime` = 1600, `RangeAttackTime` = 1600 WHERE `entry` = 24064;
UPDATE `creature_template` SET `speed_walk` = 1, `speed_run` = 2, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 24065;
UPDATE `creature_template` SET `speed_walk` = 1, `speed_run` = 2, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 24138;
UPDATE `creature_template` SET `speed_walk` = 1, `speed_run` = 1.1429, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 24175;
UPDATE `creature_template` SET `speed_walk` = 1, `speed_run` = 1.4286, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 24179;
UPDATE `creature_template` SET `speed_walk` = 1, `speed_run` = 1.4286, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 24180;
UPDATE `creature_template` SET `speed_walk` = 1, `speed_run` = 1.4286, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 24217;
UPDATE `creature_template` SET `speed_walk` = 2, `speed_run` = 2.1429, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 24239;
UPDATE `creature_template` SET `speed_walk` = 1, `speed_run` = 1.1429, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 24312;
UPDATE `creature_template` SET `speed_walk` = 1, `speed_run` = 1.1429, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 24325;
UPDATE `creature_template` SET `speed_walk` = 1, `speed_run` = 1.1429, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 24363;
UPDATE `creature_template` SET `speed_walk` = 0.6666679859161376952, `speed_run` = 1.4286, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 24374;
UPDATE `creature_template` SET `speed_walk` = 1, `speed_run` = 1.1429, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 24396;
UPDATE `creature_template` SET `speed_walk` = 1, `speed_run` = 2, `BaseAttackTime` = 1800, `RangeAttackTime` = 1800 WHERE `entry` = 24530;
UPDATE `creature_template` SET `speed_walk` = 1, `speed_run` = 1.4286, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 24549;
UPDATE `creature_template` SET `speed_walk` = 1, `speed_run` = 1.1429, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 25173;
UPDATE `creature_model_info` SET `BoundingRadius` = 1.299999952316284179, `CombatReach` = 1.949999928474426269 WHERE `DisplayID` = 134;
UPDATE `creature_model_info` SET `BoundingRadius` = 1.250100016593933105, `CombatReach` = 2.25 WHERE `DisplayID` = 834;
UPDATE `creature_model_info` SET `BoundingRadius` = 0.200000002980232238, `CombatReach` = 1 WHERE `DisplayID` = 901;
UPDATE `creature_model_info` SET `BoundingRadius` = 1.3890000581741333, `CombatReach` = 2.5 WHERE `DisplayID` = 1038;
UPDATE `creature_model_info` SET `BoundingRadius` = 0.75, `CombatReach` = 2.5 WHERE `DisplayID` = 10056;
UPDATE `creature_model_info` SET `BoundingRadius` = 0.5, `CombatReach` = 1 WHERE `DisplayID` = 11686;
UPDATE `creature_model_info` SET `BoundingRadius` = 0.187000006437301635, `CombatReach` = 0.150000005960464477 WHERE `DisplayID` = 14952;
UPDATE `creature_model_info` SET `BoundingRadius` = 0.5, `CombatReach` = 1 WHERE `DisplayID` = 16925;
UPDATE `creature_model_info` SET `BoundingRadius` = 0.125, `CombatReach` = 0.25 WHERE `DisplayID` = 17188;
UPDATE `creature_model_info` SET `BoundingRadius` = 0.255000025033950805, `CombatReach` = 1.27500009536743164 WHERE `DisplayID` = 17547;
UPDATE `creature_model_info` SET `BoundingRadius` = 0.620000004768371582, `CombatReach` = 0 WHERE `DisplayID` = 19705;
UPDATE `creature_model_info` SET `BoundingRadius` = 0.400000005960464477, `CombatReach` = 0.800000011920928955 WHERE `DisplayID` = 19595;
UPDATE `creature_model_info` SET `BoundingRadius` = 0.900000035762786865, `CombatReach` = 3 WHERE `DisplayID` = 21630;
UPDATE `creature_model_info` SET `BoundingRadius` = 0.900000035762786865, `CombatReach` = 3 WHERE `DisplayID` = 21631;
UPDATE `creature_model_info` SET `BoundingRadius` = 0.900000035762786865, `CombatReach` = 3 WHERE `DisplayID` = 21632;
UPDATE `creature_model_info` SET `BoundingRadius` = 0.900000035762786865, `CombatReach` = 3 WHERE `DisplayID` = 21633;
UPDATE `creature_model_info` SET `BoundingRadius` = 0.305999994277954101, `CombatReach` = 1.5 WHERE `DisplayID` = 21767;
UPDATE `creature_model_info` SET `BoundingRadius` = 0.305999994277954101, `CombatReach` = 1.5 WHERE `DisplayID` = 21893;
UPDATE `creature_model_info` SET `BoundingRadius` = 1.565999984741210937, `CombatReach` = 3.60000014305114746 WHERE `DisplayID` = 21899;
UPDATE `creature_model_info` SET `BoundingRadius` = 0.434027493000030517, `CombatReach` = 1.875 WHERE `DisplayID` = 22161;
UPDATE `creature_model_info` SET `BoundingRadius` = 0.434027493000030517, `CombatReach` = 1.875 WHERE `DisplayID` = 22262;
UPDATE `creature_model_info` SET `BoundingRadius` = 0.45138859748840332, `CombatReach` = 1.949999928474426269 WHERE `DisplayID` = 22263;
UPDATE `creature_model_info` SET `BoundingRadius` = 0.45138859748840332, `CombatReach` = 1.949999928474426269 WHERE `DisplayID` = 22272;
UPDATE `creature_model_info` SET `BoundingRadius` = 0.45138859748840332, `CombatReach` = 1.949999928474426269 WHERE `DisplayID` = 22273;
UPDATE `creature_model_info` SET `BoundingRadius` = 0.434027493000030517, `CombatReach` = 1.875 WHERE `DisplayID` = 22276;
UPDATE `creature_model_info` SET `BoundingRadius` = 0.45138859748840332, `CombatReach` = 1.949999928474426269 WHERE `DisplayID` = 22278;
UPDATE `creature_model_info` SET `BoundingRadius` = 0.434027493000030517, `CombatReach` = 1.875 WHERE `DisplayID` = 22301;
UPDATE `creature_model_info` SET `BoundingRadius` = 0.434027493000030517, `CombatReach` = 1.875 WHERE `DisplayID` = 22304;
UPDATE `creature_model_info` SET `BoundingRadius` = 0.434027493000030517, `CombatReach` = 1.875 WHERE `DisplayID` = 22308;
UPDATE `creature_model_info` SET `BoundingRadius` = 0.45138859748840332, `CombatReach` = 1.949999928474426269 WHERE `DisplayID` = 22310;
UPDATE `creature_model_info` SET `BoundingRadius` = 0.45138859748840332, `CombatReach` = 1.949999928474426269 WHERE `DisplayID` = 22313;
UPDATE `creature_model_info` SET `BoundingRadius` = 0.347222000360488891, `CombatReach` = 1.5 WHERE `DisplayID` = 22324;
UPDATE `creature_model_info` SET `BoundingRadius` = 0.972221612930297851, `CombatReach` = 4.199999809265136718 WHERE `DisplayID` = 22332;
UPDATE `creature_model_info` SET `BoundingRadius` = 3, `CombatReach` = 3 WHERE `DisplayID` = 22353;
UPDATE `creature_model_info` SET `BoundingRadius` = 1.5, `CombatReach` = 0 WHERE `DisplayID` = 22467;
UPDATE `creature_model_info` SET `BoundingRadius` = 0.874500036239624023, `CombatReach` = 1.65000009536743164 WHERE `DisplayID` = 22517;
UPDATE `creature_model_info` SET `BoundingRadius` = 0.590277433395385742, `CombatReach` = 2.550000190734863281 WHERE `DisplayID` = 22538;
UPDATE `creature_model_info` SET `BoundingRadius` = 0.382499992847442626, `CombatReach` = 1.875 WHERE `DisplayID` = 22983;
@@ -0,0 +1,60 @@
-- DB update 2024_10_16_02 -> 2024_10_16_03
UPDATE `creature_template` SET `speed_walk` = 1, `speed_run` = 0.8571, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 1412;
UPDATE `creature_template` SET `speed_walk` = 1, `speed_run` = 0.9920628411429268972857, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 22515;
UPDATE `creature_template` SET `speed_walk` = 1, `speed_run` = 1.1429, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 24560;
UPDATE `creature_template` SET `speed_walk` = 1.2, `speed_run` = 1.4286, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 24664;
UPDATE `creature_template` SET `speed_walk` = 1, `speed_run` = 1.1429, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 24683;
UPDATE `creature_template` SET `speed_walk` = 1, `speed_run` = 1.1429, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 24684;
UPDATE `creature_template` SET `speed_walk` = 1, `speed_run` = 1.1429, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 24685;
UPDATE `creature_template` SET `speed_walk` = 1, `speed_run` = 1.1429, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 24686;
UPDATE `creature_template` SET `speed_walk` = 1, `speed_run` = 1.1429, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 24687;
UPDATE `creature_template` SET `speed_walk` = 1, `speed_run` = 1.1429, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 24688;
UPDATE `creature_template` SET `speed_walk` = 1, `speed_run` = 1.1429, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 24689;
UPDATE `creature_template` SET `speed_walk` = 1, `speed_run` = 1.1429, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 24690;
UPDATE `creature_template` SET `speed_walk` = 1, `speed_run` = 1, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 24696;
UPDATE `creature_template` SET `speed_walk` = 1, `speed_run` = 1.1429, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 24697;
UPDATE `creature_template` SET `speed_walk` = 1, `speed_run` = 1.1429, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 24698;
UPDATE `creature_template` SET `speed_walk` = 0.888887977600097656, `speed_run` = 1.4286, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 24723;
UPDATE `creature_template` SET `speed_walk` = 1, `speed_run` = 1.1429, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 24744;
UPDATE `creature_template` SET `speed_walk` = 1, `speed_run` = 0.8571, `BaseAttackTime` = 1200, `RangeAttackTime` = 1200 WHERE `entry` = 24761;
UPDATE `creature_template` SET `speed_walk` = 2, `speed_run` = 1.4286, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 24777;
UPDATE `creature_template` SET `speed_walk` = 2, `speed_run` = 1.4286, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 24808;
UPDATE `creature_template` SET `speed_walk` = 1, `speed_run` = 1.1429, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 24822;
UPDATE `creature_template` SET `speed_walk` = 2, `speed_run` = 1.4286, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 25954;
UPDATE `creature_template` SET `speed_walk` = 1.6, `speed_run` = 1.7143, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 25955;
UPDATE `creature_template` SET `speed_walk` = 2.4, `speed_run` = 1.4286, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 25956;
UPDATE `creature_template` SET `speed_walk` = 2.4, `speed_run` = 1.4286, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 25957;
UPDATE `creature_template` SET `speed_walk` = 2.4, `speed_run` = 1.4286, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 25958;
UPDATE `creature_template` SET `speed_walk` = 2.4, `speed_run` = 1.4286, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 25959;
UPDATE `creature_template` SET `speed_walk` = 1, `speed_run` = 1, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 25960;
UPDATE `creature_template` SET `speed_walk` = 1, `speed_run` = 1.1429, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 26057;
UPDATE `creature_template` SET `speed_walk` = 1.6, `speed_run` = 1.7143, `BaseAttackTime` = 2000, `RangeAttackTime` = 2000 WHERE `entry` = 26579;
UPDATE `creature_model_info` SET `BoundingRadius` = 1.299999952316284179, `CombatReach` = 1.949999928474426269 WHERE `DisplayID` = 134;
UPDATE `creature_model_info` SET `BoundingRadius` = 0.523899972438812255, `CombatReach` = 1.949999928474426269 WHERE `DisplayID` = 10927;
UPDATE `creature_model_info` SET `BoundingRadius` = 0.5, `CombatReach` = 1 WHERE `DisplayID` = 11686;
UPDATE `creature_model_info` SET `BoundingRadius` = 1.049999952316284179, `CombatReach` = 12 WHERE `DisplayID` = 14173;
UPDATE `creature_model_info` SET `BoundingRadius` = 0.800000011920928955, `CombatReach` = 1.60000002384185791 WHERE `DisplayID` = 16217;
UPDATE `creature_model_info` SET `BoundingRadius` = 0.5, `CombatReach` = 1 WHERE `DisplayID` = 16925;
UPDATE `creature_model_info` SET `BoundingRadius` = 1, `CombatReach` = 10 WHERE `DisplayID` = 17205;
UPDATE `creature_model_info` SET `BoundingRadius` = 0.763890027999877929, `CombatReach` = 2.5 WHERE `DisplayID` = 19294;
UPDATE `creature_model_info` SET `BoundingRadius` = 1, `CombatReach` = 2 WHERE `DisplayID` = 19611;
UPDATE `creature_model_info` SET `BoundingRadius` = 0.375, `CombatReach` = 1.25 WHERE `DisplayID` = 20419;
UPDATE `creature_model_info` SET `BoundingRadius` = 3, `CombatReach` = 3.60000014305114746 WHERE `DisplayID` = 20919;
UPDATE `creature_model_info` SET `BoundingRadius` = 0.459600001573562622, `CombatReach` = 1.80000007152557373 WHERE `DisplayID` = 22580;
UPDATE `creature_model_info` SET `BoundingRadius` = 0.459600001573562622, `CombatReach` = 1.80000007152557373 WHERE `DisplayID` = 22583;
UPDATE `creature_model_info` SET `BoundingRadius` = 0.459600001573562622, `CombatReach` = 1.80000007152557373 WHERE `DisplayID` = 22584;
UPDATE `creature_model_info` SET `BoundingRadius` = 0.459600001573562622, `CombatReach` = 1.80000007152557373 WHERE `DisplayID` = 22585;
UPDATE `creature_model_info` SET `BoundingRadius` = 0.459600001573562622, `CombatReach` = 1.80000007152557373 WHERE `DisplayID` = 22586;
UPDATE `creature_model_info` SET `BoundingRadius` = 1.20000004768371582, `CombatReach` = 1.20000004768371582 WHERE `DisplayID` = 22590;
UPDATE `creature_model_info` SET `BoundingRadius` = 0.270000010728836059, `CombatReach` = 0.899999976158142089 WHERE `DisplayID` = 22596;
UPDATE `creature_model_info` SET `BoundingRadius` = 0.566007018089294433, `CombatReach` = 2.25 WHERE `DisplayID` = 22642;
UPDATE `creature_model_info` SET `BoundingRadius` = 1.5, `CombatReach` = 3 WHERE `DisplayID` = 22646;
UPDATE `creature_model_info` SET `BoundingRadius` = 1.549999952316284179, `CombatReach` = 5 WHERE `DisplayID` = 22731;
UPDATE `creature_model_info` SET `BoundingRadius` = 0.930000007152557373, `CombatReach` = 3 WHERE `DisplayID` = 22733;
UPDATE `creature_model_info` SET `BoundingRadius` = 0.550000011920928955, `CombatReach` = 1.65000009536743164 WHERE `DisplayID` = 22843;
UPDATE `creature_model_info` SET `BoundingRadius` = 0.550000011920928955, `CombatReach` = 1.65000009536743164 WHERE `DisplayID` = 22844;
UPDATE `creature_model_info` SET `BoundingRadius` = 0.550000011920928955, `CombatReach` = 1.65000009536743164 WHERE `DisplayID` = 22845;
UPDATE `creature_model_info` SET `BoundingRadius` = 0.779999971389770507, `CombatReach` = 2 WHERE `DisplayID` = 22906;
UPDATE `creature_model_info` SET `BoundingRadius` = 0.610000014305114746, `CombatReach` = 6 WHERE `DisplayID` = 23404;
UPDATE `creature_model_info` SET `BoundingRadius` = 3.75, `CombatReach` = 2.75 WHERE `DisplayID` = 23266;
UPDATE `creature_model_info` SET `BoundingRadius` = 0.416000008583068847, `CombatReach` = 3 WHERE `DisplayID` = 23503;
@@ -0,0 +1,75 @@
-- DB update 2024_10_16_03 -> 2024_10_17_00
DELETE FROM `creature_formations` WHERE `leaderGUID` = 128736;
INSERT INTO `creature_formations` (`leaderGUID`, `memberGUID`, `dist`, `angle`, `groupAI`, `point_1`, `point_2`) VALUES
(128736, 128736, 0, 0, 515, 0, 0),
(128736, 128705, 4, 90, 515, 0, 0),
(128736, 128706, 4, 180, 515, 0, 0),
(128736, 128707, 4, 270, 515, 0, 0),
(128736, 128708, 4, 112.5, 515, 0, 0),
(128736, 128709, 4, 135, 515, 0, 0),
(128736, 128710, 4, 157.5, 515, 0, 0),
(128736, 128711, 4, 202.5, 515, 0, 0),
(128736, 128712, 4, 225, 515, 0, 0),
(128736, 128713, 4, 247.5, 515, 0, 0);
DELETE FROM `waypoint_data` WHERE `id` IN (12873500, 12873600, 12873700);
INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`, `action`, `action_chance`, `wpguid`) VALUES
(12873500, 1, 1773.9238, -5832.1016, 116.31873, NULL, 0, 0, 0, 100, 0),
(12873500, 2, 1756.1492, -5834.704, 116.430405, NULL, 0, 0, 0, 100, 0),
(12873600, 1, 1544.7605, -5794.4155, 121.35939, NULL, 0, 0, 0, 100, 0),
(12873600, 2, 1522.0105, -5794.6655, 130.10939, NULL, 0, 0, 0, 100, 0),
(12873600, 3, 1483.8894, -5808.3174, 131.46725, NULL, 0, 0, 0, 100, 0),
(12873600, 4, 1490.5504, -5842.88, 131.21179, NULL, 0, 0, 0, 100, 0),
(12873600, 5, 1498.3062, -5872.787, 131.46884, NULL, 0, 0, 0, 100, 0),
(12873600, 6, 1526.3062, -5889.537, 130.46884, NULL, 0, 0, 0, 100, 0),
(12873600, 7, 1565.4106, -5898.202, 123.41411, NULL, 0, 0, 0, 100, 0),
(12873600, 8, 1597.665, -5910.0913, 117.03056, NULL, 0, 0, 0, 100, 0),
(12873600, 9, 1640.1057, -5913.2236, 116.76511, NULL, 0, 0, 0, 100, 0),
(12873600, 10, 1650.8269, -5909.0635, 116.513336, NULL, 0, 0, 0, 100, 0),
(12873600, 11, 1651.6499, -5906.6963, 116.3445, NULL, 0, 0, 0, 100, 0),
(12873600, 12, 1694.4623, -5881.8564, 116.388885, NULL, 0, 0, 0, 100, 0),
(12873600, 13, 1759.6191, -5917.8066, 116.370026, NULL, 0, 0, 0, 100, 0),
(12873600, 14, 1802.8691, -5932.0566, 115.870026, NULL, 0, 0, 0, 100, 0),
(12873600, 15, 1830.799, -5924.8765, 110.66665, NULL, 0, 0, 0, 100, 0),
(12873600, 16, 1854.385, -5917.6543, 105.36636, NULL, 0, 0, 0, 100, 0),
(12873600, 17, 1879.385, -5910.9043, 104.36636, NULL, 0, 0, 0, 100, 0),
(12873600, 18, 1892.6726, -5878.4365, 102.14807, NULL, 0, 0, 0, 100, 0),
(12873600, 19, 1895.06, -5870.6045, 101.355835, NULL, 0, 0, 0, 100, 0),
(12873600, 20, 1869.4382, -5830.621, 101.2023, NULL, 0, 0, 0, 100, 0),
(12873600, 21, 1859.1882, -5824.871, 100.4523, NULL, 0, 0, 0, 100, 0),
(12873600, 22, 1827.7502, -5818.669, 102.35595, NULL, 0, 0, 0, 100, 0),
(12873600, 23, 1803.9004, -5818.6045, 108.628815, NULL, 0, 0, 0, 100, 0),
(12873600, 24, 1780.1504, -5819.3545, 114.878815, NULL, 0, 0, 0, 100, 0),
(12873600, 25, 1765.6228, -5819.961, 116.274826, NULL, 0, 0, 0, 100, 0),
(12873600, 26, 1731.1609, -5821.838, 116.368195, NULL, 0, 0, 0, 100, 0),
(12873600, 27, 1722.1609, -5811.088, 116.868195, NULL, 0, 0, 0, 100, 0),
(12873600, 28, 1716.4109, -5804.338, 116.618195, NULL, 0, 0, 0, 100, 0),
(12873600, 29, 1700.1221, -5785.6084, 114.60457, NULL, 0, 0, 0, 100, 0),
(12873600, 30, 1671.1221, -5779.1084, 116.10457, NULL, 0, 0, 0, 100, 0),
(12873600, 31, 1602.1147, -5781.56, 116.68636, NULL, 0, 0, 0, 100, 0),
(12873600, 32, 1576.719, -5785.6636, 119.117615, NULL, 0, 0, 0, 100, 0),
(12873700, 1, 1783.6888, -5806.3467, 114.37271, NULL, 0, 0, 0, 100, 0),
(12873700, 2, 1765.1584, -5808.4717, 116.48846, NULL, 0, 0, 0, 100, 0);
UPDATE `creature` SET `MovementType`= 2 WHERE `guid` = 128736 AND `id1` = 28530;
UPDATE `creature` SET `MovementType`= 0, `wander_distance` = 0 WHERE `guid` = 128705 AND `id1` = 28529;
UPDATE `creature` SET `MovementType`= 0, `wander_distance` = 0 WHERE `guid` = 128706 AND `id1` = 28529;
UPDATE `creature` SET `MovementType`= 0, `wander_distance` = 0 WHERE `guid` = 128707 AND `id1` = 28529;
UPDATE `creature` SET `MovementType`= 0, `wander_distance` = 0 WHERE `guid` = 128708 AND `id1` = 28529;
UPDATE `creature` SET `MovementType`= 0, `wander_distance` = 0 WHERE `guid` = 128709 AND `id1` = 28529;
UPDATE `creature` SET `MovementType`= 0, `wander_distance` = 0 WHERE `guid` = 128710 AND `id1` = 28529;
UPDATE `creature` SET `MovementType`= 0, `wander_distance` = 0 WHERE `guid` = 128711 AND `id1` = 28529;
UPDATE `creature` SET `MovementType`= 0, `wander_distance` = 0 WHERE `guid` = 128712 AND `id1` = 28529;
UPDATE `creature` SET `MovementType`= 0, `wander_distance` = 0 WHERE `guid` = 128713 AND `id1` = 28529;
UPDATE `creature` SET `MovementType`= 2, `position_x`= 1756.1492, `position_y`= -5834.704, `position_z`= 116.430405 WHERE `guid` = 128735 AND `id1` = 28530;
UPDATE `creature` SET `MovementType`= 2, `position_x`= 1765.1584, `position_y`= -5808.4717, `position_z`= 116.48846 WHERE `guid` = 128737 AND `id1` = 28530;
DELETE FROM `creature_addon` WHERE (`guid` IN (128735, 128736, 128737));
INSERT INTO `creature_addon` (`guid`, `path_id`, `mount`, `bytes1`, `bytes2`, `emote`, `visibilityDistanceType`, `auras`) VALUES
(128735, 12873500, 2404, 0, 0, 0, 0, NULL),
(128736, 12873600, 2404, 0, 0, 0, 0, NULL),
(128737, 12873700, 2404, 0, 0, 0, 0, NULL);
@@ -0,0 +1,35 @@
-- DB update 2024_10_17_00 -> 2024_10_19_00
-- Update gameobject 'Burning Blade Pyre' with sniffed values
-- updated spawns
DELETE FROM `gameobject` WHERE (`id` IN (182261, 182262, 182264, 182263))
AND (`guid` IN (22716, 22717, 22719, 268913));
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
(22716, 182261, 530, 0, 0, 1, 1, -2532.9775390625, 6307.27001953125, 14.02033710479736328, 2.95832991600036621, 0, 0, 0.995804786682128906, 0.091503240168094635, 181, 255, 1, "", 45704, NULL),
(22717, 182262, 530, 0, 0, 1, 1, -2475.288330078125, 6106.3974609375, 91.98321533203125, 1.980946660041809082, 0, 0, 0.836285591125488281, 0.5482940673828125, 181, 255, 1, "", 45704, NULL),
(22719, 182264, 530, 0, 0, 1, 1, -2533.192626953125, 6168.60791015625, 59.93909454345703125, 2.818698406219482421, 0, 0, 0.986995697021484375, 0.160746723413467407, 181, 255, 1, "", 45704, NULL),
(268913, 182263, 530, 0, 0, 1, 1, -2532.986083984375, 6306.90087890625, 14.0279855728149414, 2.818698406219482421, 0, 0, 0.986995697021484375, 0.160746723413467407, 181, 255, 1, "", 45704, NULL);
-- remove duplicate spawns
DELETE FROM `gameobject` WHERE (`id` IN (182263))
AND (`guid` IN (268914, 268915));
DELETE FROM `gameobject_addon` WHERE (`guid` IN (268914, 268915));
DELETE FROM `game_event_gameobject` WHERE (`eventEntry` = 0) AND (`guid` IN (268914, 268915));
-- Update creature 'Burning Blade Pyre' with sniffed values
-- updated spawns
DELETE FROM `creature` WHERE (`id1` IN (18305, 18306, 18307, 18308))
AND (`guid` IN (65640, 65641, 65642, 65643));
INSERT INTO `creature` (`guid`, `id1`, `map`, `spawnMask`, `phaseMask`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `wander_distance`, `MovementType`, `npcflag`, `unit_flags`, `dynamicflags`, `ScriptName`, `VerifiedBuild`, `CreateObject`, `Comment`) VALUES
(65640, 18305, 530, 1, 1, 0, -2533.66455078125, 6306.66748046875, 18.541839599609375, 0.977384388446807861, 300, 0, 0, 0, 0, 0, "", 45704, 1, NULL),
(65641, 18306, 530, 1, 1, 0, -2533.37890625, 6168.4443359375, 60.02236557006835937, 2.076941728591918945, 300, 0, 0, 0, 0, 0, "", 45704, 1, NULL),
(65642, 18307, 530, 1, 1, 0, -2475.478759765625, 6106.6171875, 92.0659027099609375, 0.750491559505462646, 300, 0, 0, 0, 0, 0, "", 45704, 1, NULL),
(65643, 18308, 530, 1, 1, 0, -2331.2587890625, 6179.38916015625, 51.05326080322265625, 3.96189737319946289, 300, 0, 0, 0, 0, 0, "", 45704, 1, NULL);
-- add 184642 gameobjects for Spell Focus 1393
DELETE FROM `gameobject` WHERE (`id` IN (184642))
AND (`guid` IN (87, 88));
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
-- same spawn position as guid 22717
(87, 184642, 530, 0, 0, 1, 1, -2475.288330078125, 6106.3974609375, 91.98321533203125, 1.980946660041809082, 0, 0, 0.836285591125488281, 0.5482940673828125, 181, 255, 1, "", 0, NULL),
-- same spawn position as guid 22719
(88, 184642, 530, 0, 0, 1, 1, -2533.192626953125, 6168.60791015625, 59.93909454345703125, 2.818698406219482421, 0, 0, 0.986995697021484375, 0.160746723413467407, 181, 255, 1, "", 0, NULL);
@@ -0,0 +1,95 @@
-- DB update 2024_10_19_00 -> 2024_10_20_00
-- Update gameobject 'G_Witch*' with sniffed values
-- updated spawns
DELETE FROM `gameobject` WHERE (`id` IN (180429, 180428, 180408))
AND (`guid` IN (77347, 77354, 77604, 77615, 77619, 77660, 77700, 77839, 78008, 78009, 78011, 78022));
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
(77347, 180429, 571, 0, 0, 1, 1, 5890.736328125, 547.4892578125, 649.31097412109375, 3.159062385559082031, 0, 0, -0.99996185302734375, 0.008734640665352344, 120, 255, 1, "", 46158, NULL),
(77354, 180429, 571, 0, 0, 1, 1, 5900.8876953125, 555.5230712890625, 649.302978515625, 3.94444584846496582, 0, 0, -0.92050457000732421, 0.3907318115234375, 120, 255, 1, "", 46158, NULL),
(77604, 180429, 571, 0, 0, 1, 1, 5820.36279296875, 685.091064453125, 651.8358154296875, 4.031712055206298828, 0, 0, -0.90258502960205078, 0.430511653423309326, 120, 255, 1, "", 46158, NULL),
(77615, 180428, 571, 0, 0, 1, 1, 5770.15380859375, 735.52691650390625, 641.4876708984375, 2.583080768585205078, 0, 0, 0.961260795593261718, 0.275640487670898437, 120, 255, 1, "", 46158, NULL),
(77619, 180408, 571, 0, 0, 1, 1, 5771.54541015625, 737.50347900390625, 643.094482421875, 1.274088263511657714, 0, 0, 0.594821929931640625, 0.80385744571685791, 120, 255, 1, "", 46158, NULL),
(77660, 180429, 571, 0, 0, 1, 1, 5951.9052734375, 675.3125, 656.62823486328125, 5.89921426773071289, 0, 0, -0.19080829620361328, 0.981627285480499267, 120, 255, 1, "", 46158, NULL),
(77700, 180408, 530, 0, 0, 1, 1, -1827.2923583984375, 5290.85546875, -12.4281368255615234, 2.548179388046264648, 0, 0, 0.956304550170898437, 0.292372345924377441, 120, 255, 1, "", 45942, NULL),
(77839, 180429, 530, 0, 0, 1, 1, -1707.31689453125, 5645.84912109375, 130.3365325927734375, 5.305802345275878906, 0, 0, -0.46947097778320312, 0.882947921752929687, 120, 255, 1, "", 45942, NULL),
(78008, 180429, 530, 0, 0, 1, 1, -1897.1927490234375, 5764.77197265625, 132.3860626220703125, 0.872663915157318115, 0, 0, 0.422617912292480468, 0.906307935714721679, 120, 255, 1, "", 45942, NULL),
(78009, 180429, 530, 0, 0, 1, 1, -1754.1265869140625, 5644.798828125, 130.0098724365234375, 1.064649581909179687, 0, 0, 0.507537841796875, 0.861629426479339599, 120, 255, 1, "", 45942, NULL),
(78011, 180429, 530, 0, 0, 1, 1, -1759.2471923828125, 5830.71533203125, 151.030029296875, 2.513273954391479492, 0, 0, 0.951056480407714843, 0.309017121791839599, 120, 255, 1, "", 45942, NULL),
(78022, 180429, 530, 0, 0, 1, 1, -1647.701416015625, 5660.49951171875, 134.030609130859375, 0.471238493919372558, 0, 0, 0.233445167541503906, 0.972369968891143798, 120, 255, 1, "", 45942, NULL);
-- new spawns
DELETE FROM `gameobject` WHERE (`id` IN (180408, 180409, 180428, 180429))
AND (`guid` BETWEEN 2255 AND 2321);
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
(2255, 180408, 0, 0, 0, 1, 1, -8304.3251953125, 1362.921630859375, 8.523809432983398437, 2.216565132141113281, 0, 0, 0.894933700561523437, 0.44619917869567871, 120, 255, 1, "", 51943, NULL),
(2256, 180408, 0, 0, 0, 1, 1, -8349.453125, 1107.082763671875, 58.55839157104492187, 0.925023794174194335, 0, 0, 0.446197509765625, 0.894934535026550292, 120, 255, 1, "", 51943, NULL),
(2257, 180408, 0, 0, 0, 1, 1, -8368.4677734375, 1299.6090087890625, 8.521785736083984375, 4.747295856475830078, 0, 0, -0.69465827941894531, 0.719339847564697265, 120, 255, 1, "", 51943, NULL),
(2258, 180408, 0, 0, 0, 1, 1, -8395.583984375, 1302.3131103515625, 8.515392303466796875, 1.692969322204589843, 0, 0, 0.748955726623535156, 0.662620067596435546, 120, 255, 1, "", 51943, NULL),
(2259, 180408, 0, 0, 0, 1, 1, -8410.7236328125, 1039.740478515625, 80.86557769775390625, 3.822272777557373046, 0, 0, -0.94264125823974609, 0.333807557821273803, 120, 255, 1, "", 51943, NULL),
(2260, 180408, 0, 0, 0, 1, 1, -8421.5380859375, 1119.6893310546875, 25.32225608825683593, 3.106652259826660156, 0, 0, 0.999847412109375, 0.017469281330704689, 120, 255, 1, "", 51943, NULL),
(2261, 180408, 0, 0, 0, 1, 1, -8461.0078125, 1298.739990234375, 8.524527549743652343, 5.253442287445068359, 0, 0, -0.49242305755615234, 0.870355963706970214, 120, 255, 1, "", 51943, NULL),
(2262, 180408, 0, 0, 0, 1, 1, -8509.837890625, 1039.12109375, 79.19519805908203125, 3.054326534271240234, 0, 0, 0.999048233032226562, 0.043619260191917419, 120, 255, 1, "", 51943, NULL),
(2263, 180408, 0, 0, 0, 1, 1, 1643.61767578125, 223.363037109375, -38.3810615539550781, 3.735006093978881835, 0, 0, -0.95630455017089843, 0.292372345924377441, 120, 255, 1, "", 45942, NULL),
(2264, 180408, 530, 0, 0, 1, 1, -2559.494140625, 4419.9501953125, 42.29123687744140625, 6.108653545379638671, 0, 0, -0.08715534210205078, 0.996194720268249511, 120, 255, 1, "", 45942, NULL),
(2265, 180408, 530, 0, 0, 1, 1, -2565.350341796875, 4418.80224609375, 42.29236984252929687, 6.108653545379638671, 0, 0, -0.08715534210205078, 0.996194720268249511, 120, 255, 1, "", 45942, NULL),
(2266, 180408, 530, 0, 0, 1, 1, -2571.732666015625, 4418.60693359375, 41.83348846435546875, 6.003933906555175781, 0, 0, -0.13917255401611328, 0.990268170833587646, 120, 255, 1, "", 45942, NULL),
(2267, 180408, 530, 0, 0, 1, 1, -2573.02392578125, 4423.5087890625, 42.16131210327148437, 4.380776405334472656, 0, 0, -0.81411552429199218, 0.580702960491180419, 120, 255, 1, "", 45942, NULL),
(2268, 180408, 530, 0, 0, 1, 1, -2903.03466796875, 3972.208740234375, 9.813815116882324218, 2.967041015625, 0, 0, 0.996193885803222656, 0.087165042757987976, 120, 255, 1, "", 45942, NULL),
(2269, 180408, 530, 0, 0, 1, 1, -2904.217041015625, 3987.651611328125, 10.21193885803222656, 5.881760597229003906, 0, 0, -0.19936752319335937, 0.979924798011779785, 120, 255, 1, "", 45942, NULL),
(2270, 180408, 530, 0, 0, 1, 1, -2988.06689453125, 3993.822998046875, 4.166106224060058593, 2.583080768585205078, 0, 0, 0.961260795593261718, 0.275640487670898437, 120, 255, 1, "", 45942, NULL),
(2271, 180408, 530, 0, 0, 1, 1, -3021.18310546875, 2550.076904296875, 85.5597076416015625, 2.094393253326416015, 0, 0, 0.866024971008300781, 0.50000077486038208, 120, 255, 1, "", 45942, NULL),
(2272, 180408, 530, 0, 0, 1, 1, -3024.235595703125, 2555.88427734375, 86.31472015380859375, 2.338739633560180664, 0, 0, 0.920504570007324218, 0.3907318115234375, 120, 255, 1, "", 45942, NULL),
(2273, 180408, 530, 0, 0, 1, 1, -3950.779052734375, 2104.76171875, 102.7866134643554687, 2.583080768585205078, 0, 0, 0.961260795593261718, 0.275640487670898437, 120, 255, 1, "", 51943, NULL),
(2274, 180408, 530, 0, 0, 1, 1, 2425.00146484375, 5960.23095703125, 154.0964202880859375, 5.497788906097412109, 0, 0, -0.38268280029296875, 0.923879802227020263, 120, 255, 1, "", 45942, NULL),
(2275, 180408, 571, 0, 0, 1, 1, 2923.913330078125, 6238.71728515625, 208.8952484130859375, 3.508116960525512695, 0, 0, -0.98325443267822265, 0.182238012552261352, 120, 255, 1, "", 46158, NULL),
(2276, 180408, 571, 0, 0, 1, 1, 2925.91748046875, 6235.0947265625, 216.3796234130859375, 3.94444584846496582, 0, 0, -0.92050457000732421, 0.3907318115234375, 120, 255, 1, "", 46158, NULL),
(2277, 180408, 571, 0, 0, 1, 1, 2927.372314453125, 6251.384765625, 216.4442291259765625, 5.515241622924804687, 0, 0, -0.37460613250732421, 0.927184045314788818, 120, 255, 1, "", 46158, NULL),
(2278, 180408, 571, 0, 0, 1, 1, 3256.490478515625, -2269.6533203125, 114.1506118774414062, 2.844882726669311523, 0, 0, 0.989015579223632812, 0.147811368107795715, 120, 255, 1, "", 46158, NULL),
(2279, 180408, 571, 0, 0, 1, 1, 3517.159912109375, 2000.1688232421875, 64.8623504638671875, 2.44346022605895996, 0, 0, 0.939692497253417968, 0.34202045202255249, 120, 255, 1, "", 46158, NULL),
(2280, 180408, 571, 0, 0, 1, 1, 3839.223876953125, -4546.8037109375, 217.410003662109375, 2.356194972991943359, 0, 0, 0.923879623413085937, 0.382683247327804565, 120, 255, 1, "", 46158, NULL),
(2281, 180408, 571, 0, 0, 1, 1, 3874.0791015625, -4498.49267578125, 223.858062744140625, 5.270895957946777343, 0, 0, -0.48480892181396484, 0.87462007999420166, 120, 255, 1, "", 46158, NULL),
(2282, 180408, 571, 0, 0, 1, 1, 3874.124267578125, -4526.17724609375, 220.103179931640625, 3.054326534271240234, 0, 0, 0.999048233032226562, 0.043619260191917419, 120, 255, 1, "", 46158, NULL),
(2283, 180408, 571, 0, 0, 1, 1, 4119.86279296875, 5304.66162109375, 33.65726470947265625, 3.961898565292358398, 0, 0, -0.91705989837646484, 0.398749500513076782, 120, 255, 1, "", 46158, NULL),
(2284, 180408, 571, 0, 0, 1, 1, 4136.22900390625, 5321.447265625, 33.53544998168945312, 3.682650327682495117, 0, 0, -0.96362972259521484, 0.26724100112915039, 120, 255, 1, "", 46158, NULL),
(2285, 180408, 571, 0, 0, 1, 1, 4146.88916015625, 5330.11279296875, 33.63814544677734375, 3.90954136848449707, 0, 0, -0.92718315124511718, 0.37460830807685852, 120, 255, 1, "", 46158, NULL),
(2286, 180408, 571, 0, 0, 1, 1, 4154.6103515625, 5340.5390625, 33.98043441772460937, 3.926995515823364257, 0, 0, -0.92387866973876953, 0.38268551230430603, 120, 255, 1, "", 46158, NULL),
(2287, 180408, 571, 0, 0, 1, 1, 4248.60400390625, 5256.0009765625, 76.13831329345703125, 4.031712055206298828, 0, 0, -0.90258502960205078, 0.430511653423309326, 120, 255, 1, "", 51739, NULL),
(2288, 180408, 571, 0, 0, 1, 1, 5547.18212890625, 5734.34423828125, -70.3775253295898437, 3.892086982727050781, 0, 0, -0.93041706085205078, 0.366502493619918823, 120, 255, 1, "", 46158, NULL),
(2289, 180408, 571, 0, 0, 1, 1, 5570.32275390625, 5767.2021484375, -65.552093505859375, 1.466075778007507324, 0, 0, 0.669130325317382812, 0.74314504861831665, 120, 255, 1, "", 46158, NULL),
(2290, 180408, 571, 0, 0, 1, 1, 5590.96728515625, 5749.4775390625, -66.4042587280273437, 4.904376029968261718, 0, 0, -0.636077880859375, 0.771624863147735595, 120, 255, 1, "", 46158, NULL),
(2291, 180408, 571, 0, 0, 1, 1, 5764.4189453125, -3572.029296875, 400.467742919921875, 2.967041015625, 0, 0, 0.996193885803222656, 0.087165042757987976, 120, 255, 1, "", 46158, NULL),
(2292, 180408, 571, 0, 0, 1, 1, 5796.509765625, -3596.129150390625, 396.39996337890625, 4.537858963012695312, 0, 0, -0.76604366302490234, 0.642788589000701904, 120, 255, 1, "", 46158, NULL),
(2293, 180408, 571, 0, 0, 1, 1, 8478.7763671875, -335.013275146484375, 907.49053955078125, 4.502951622009277343, 0, 0, -0.7771453857421875, 0.629321098327636718, 120, 255, 1, "", 46158, NULL),
(2294, 180409, 0, 0, 0, 1, 1, 1640.760009765625, 223.3173065185546875, -43.1032600402832031, 6.161012649536132812, 0, 0, -0.06104850769042968, 0.998134791851043701, 120, 255, 1, "", 45942, NULL),
(2295, 180409, 530, 0, 0, 1, 1, -2559.0126953125, 4425.88037109375, 39.49637985229492187, 5.550147056579589843, 0, 0, -0.358367919921875, 0.933580458164215087, 120, 255, 1, "", 45942, NULL),
(2296, 180409, 530, 0, 0, 1, 1, -2561.61181640625, 4430.6484375, 38.817901611328125, 5.480334281921386718, 0, 0, -0.39073085784912109, 0.920504987239837646, 120, 255, 1, "", 45942, NULL),
(2297, 180409, 530, 0, 0, 1, 1, -3007.308837890625, 2547.42919921875, 78.31081390380859375, 0.820303261280059814, 0, 0, 0.398748397827148437, 0.917060375213623046, 120, 255, 1, "", 45942, NULL),
(2298, 180409, 530, 0, 0, 1, 1, -3015.0859375, 2544.400634765625, 79.00568389892578125, 0.506144583225250244, 0, 0, 0.250379562377929687, 0.968147754669189453, 120, 255, 1, "", 45942, NULL),
(2299, 180409, 530, 0, 0, 1, 1, -3028.776611328125, 2568.69384765625, 79.1988677978515625, 1.012289404869079589, 0, 0, 0.484808921813964843, 0.87462007999420166, 120, 255, 1, "", 45942, NULL),
(2300, 180428, 0, 0, 0, 1, 1, -8872.4501953125, 676.86187744140625, 97.90305328369140625, 1.989672422409057617, 0, 0, 0.838669776916503906, 0.544640243053436279, 120, 255, 1, "", 46158, NULL),
(2301, 180428, 0, 0, 0, 1, 1, -9.84445571899414062, -907.1767578125, 57.54604721069335937, 5.061456203460693359, 0, 0, -0.57357597351074218, 0.819152355194091796, 120, 255, 1, "", 45942, NULL),
(2302, 180428, 0, 0, 0, 1, 1, -9477.029296875, 34.60725784301757812, 56.96610641479492187, 0.139624491333961486, 0, 0, 0.06975555419921875, 0.997564136981964111, 120, 255, 1, "", 46158, NULL),
(2303, 180428, 0, 0, 0, 1, 1, 2250.75048828125, 248.6014251708984375, 34.26037979125976562, 2.356194972991943359, 0, 0, 0.923879623413085937, 0.382683247327804565, 120, 255, 1, "", 45942, NULL),
(2304, 180428, 530, 0, 0, 1, 1, -627.74847412109375, 4148.1953125, 64.28204345703125, 3.368495941162109375, 0, 0, -0.99357128143310546, 0.113208353519439697, 120, 255, 1, "", 45942, NULL),
(2305, 180428, 530, 0, 0, 1, 1, -701.30609130859375, 2721.625, 93.73525238037109375, 3.106652259826660156, 0, 0, 0.999847412109375, 0.017469281330704689, 120, 255, 1, "", 51739, NULL),
(2306, 180428, 530, 0, 0, 1, 1, 177.840118408203125, 2615.923095703125, 87.11685943603515625, 4.712389945983886718, 0, 0, -0.70710659027099609, 0.707106947898864746, 120, 255, 1, "", 45942, NULL),
(2307, 180428, 530, 0, 0, 1, 1, 2011.2684326171875, 6882.884765625, 179.013641357421875, 5.515241622924804687, 0, 0, -0.37460613250732421, 0.927184045314788818, 120, 255, 1, "", 51943, NULL),
(2308, 180428, 530, 0, 0, 1, 1, 213.8534088134765625, 4360.46337890625, 120.4301605224609375, 2.234017848968505859, 0, 0, 0.898793220520019531, 0.438372820615768432, 120, 255, 1, "", 51943, NULL),
(2309, 180428, 530, 0, 0, 1, 1, 2428.251220703125, 5959.75634765625, 152.4853057861328125, 1.239183306694030761, 0, 0, 0.580702781677246093, 0.814115643501281738, 120, 255, 1, "", 45942, NULL),
(2310, 180428, 571, 0, 0, 1, 1, 2280.373291015625, 5188.88037109375, 12.49332523345947265, 1.448621988296508789, 0, 0, 0.662619590759277343, 0.748956084251403808, 120, 255, 1, "", 51739, NULL),
(2311, 180428, 571, 0, 0, 1, 1, 2284.56689453125, 5211.0478515625, 12.4884195327758789, 5.462882041931152343, 0, 0, -0.39874839782714843, 0.917060375213623046, 120, 255, 1, "", 51739, NULL),
(2312, 180429, 0, 0, 0, 1, 1, -10524.1884765625, -1159.0728759765625, 28.2194061279296875, 5.969027042388916015, 0, 0, -0.1564340591430664, 0.987688362598419189, 120, 255, 1, "", 46158, NULL),
(2313, 180429, 0, 0, 0, 1, 1, -8873.5283203125, 680.03472900390625, 98.63916778564453125, 2.460912704467773437, 0, 0, 0.942641258239746093, 0.333807557821273803, 120, 255, 1, "", 46158, NULL),
(2314, 180429, 0, 0, 0, 1, 1, -9473.25390625, 35.55826950073242187, 57.69527053833007812, 6.021387100219726562, 0, 0, -0.13052558898925781, 0.991444945335388183, 120, 255, 1, "", 46158, NULL),
(2315, 180429, 0, 0, 0, 1, 1, 2254.93408203125, 234.1684112548828125, 34.1852874755859375, 2.042035102844238281, 0, 0, 0.852640151977539062, 0.522498607635498046, 120, 255, 1, "", 45942, NULL),
(2316, 180429, 530, 0, 0, 1, 1, -630.75225830078125, 4146.2880859375, 64.64714813232421875, 2.687806606292724609, 0, 0, 0.974370002746582031, 0.224951311945915222, 120, 255, 1, "", 45942, NULL),
(2317, 180429, 530, 0, 0, 1, 1, -699.79461669921875, 2720.859375, 94.11025238037109375, 2.321286916732788085, 0, 0, 0.917059898376464843, 0.398749500513076782, 120, 255, 1, "", 51739, NULL),
(2318, 180429, 530, 0, 0, 1, 1, 180.1083526611328125, 2615.590576171875, 87.28353118896484375, 5.6897735595703125, 0, 0, -0.29237174987792968, 0.956304728984832763, 120, 255, 1, "", 45942, NULL),
(2319, 180429, 530, 0, 0, 1, 1, 2008.32080078125, 6879.81103515625, 178.9918212890625, 0.174532130360603332, 0, 0, 0.087155342102050781, 0.996194720268249511, 120, 255, 1, "", 51943, NULL),
(2320, 180429, 530, 0, 0, 1, 1, 215.0826873779296875, 4358.1171875, 120.3986663818359375, 0.174532130360603332, 0, 0, 0.087155342102050781, 0.996194720268249511, 120, 255, 1, "", 51943, NULL),
(2321, 180429, 571, 0, 0, 1, 1, 5592.13037109375, 5742.2861328125, -70.1109542846679687, 4.607671737670898437, 0, 0, -0.74314403533935546, 0.669131457805633544, 120, 255, 1, "", 46158, NULL);
-- enable all spawns for eventEntry 12
DELETE FROM `game_event_gameobject` WHERE (`eventEntry` = 12)
AND (`guid` IN (SELECT `guid` FROM `gameobject` WHERE `id` IN (180408, 180409, 180428, 180429)));
INSERT INTO `game_event_gameobject` (SELECT 12, `guid` FROM `gameobject` WHERE `id` IN (180408, 180409, 180428, 180429));
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1998,7 +1998,7 @@ bool CollisionDetection::isPointInsideTriangle(
break;
default:
// This case is here to supress a warning on Linux
// This case is here to suppress a warning on Linux
i = j = 0;
debugAssertM(false, "Should not get here.");
break;
+3 -3
View File
@@ -277,7 +277,7 @@ void PetAI::UpdateAI(uint32 diff)
{
if (CanAttack(target) && spell->CanAutoCast(target))
{
targetSpellStore.push_back(std::make_pair(target, spell));
targetSpellStore.emplace_back(target, spell);
spellUsed = true;
}
}
@@ -295,7 +295,7 @@ void PetAI::UpdateAI(uint32 diff)
if (spell->CanAutoCast(ally))
{
targetSpellStore.push_back(std::make_pair(ally, spell));
targetSpellStore.emplace_back(ally, spell);
spellUsed = true;
break;
}
@@ -310,7 +310,7 @@ void PetAI::UpdateAI(uint32 diff)
{
Spell* spell = new Spell(me, spellInfo, TRIGGERED_NONE);
if (spell->CanAutoCast(me->GetVictim()))
targetSpellStore.push_back(std::make_pair(me->GetVictim(), spell));
targetSpellStore.emplace_back(me->GetVictim(), spell);
else
delete spell;
}
+8 -11
View File
@@ -56,7 +56,7 @@ namespace AddonMgr
std::string name = fields[0].Get<std::string>();
uint32 crc = fields[1].Get<uint32>();
m_knownAddons.push_back(SavedAddon(name, crc));
m_knownAddons.emplace_back(name, crc);
++count;
} while (result->NextRow());
@@ -76,13 +76,12 @@ namespace AddonMgr
{
Field* fields = result->Fetch();
BannedAddon addon{};
addon.Id = fields[0].Get<uint32>() + offset;
addon.Timestamp = uint32(fields[3].Get<uint64>());
addon.NameMD5 = Acore::Crypto::MD5::GetDigestOf(fields[1].Get<std::string>());
addon.VersionMD5 = Acore::Crypto::MD5::GetDigestOf(fields[2].Get<std::string>());
uint32 Id = fields[0].Get<uint32>() + offset;
std::array<uint8, 16> NameMD5 = Acore::Crypto::MD5::GetDigestOf(fields[1].Get<std::string>());
std::array<uint8, 16> VersionMD5 = Acore::Crypto::MD5::GetDigestOf(fields[2].Get<std::string>());
uint32 Timestamp = uint32(fields[3].Get<uint64>());
m_bannedAddons.emplace_back(addon);
m_bannedAddons.emplace_back(Id, NameMD5, VersionMD5, Timestamp);
++count2;
} while (result->NextRow());
@@ -94,16 +93,14 @@ namespace AddonMgr
void SaveAddon(AddonInfo const& addon)
{
std::string name = addon.Name;
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_ADDON);
stmt->SetData(0, name);
stmt->SetData(0, addon.Name);
stmt->SetData(1, addon.CRC);
CharacterDatabase.Execute(stmt);
m_knownAddons.push_back(SavedAddon(addon.Name, addon.CRC));
m_knownAddons.emplace_back(addon.Name, addon.CRC);
}
SavedAddon const* GetAddonInfo(const std::string& name)
+4 -4
View File
@@ -38,10 +38,7 @@ struct AddonInfo
struct SavedAddon
{
SavedAddon(std::string name, uint32 crc) : Name(std::move(name))
{
CRC = crc;
}
SavedAddon(std::string name, uint32 crc) : Name(std::move(name)), CRC(crc) {}
std::string Name;
uint32 CRC;
@@ -49,6 +46,9 @@ struct SavedAddon
struct BannedAddon
{
BannedAddon(uint32 id, std::array<uint8, 16> const& nameMD5, std::array<uint8, 16> const& versionMD5, uint32 timestamp)
: Id(id), NameMD5(nameMD5), VersionMD5(versionMD5), Timestamp(timestamp) {}
uint32 Id;
std::array<uint8, 16> NameMD5;
std::array<uint8, 16> VersionMD5;
+2 -2
View File
@@ -74,7 +74,7 @@ void ChannelMgr::LoadChannels()
if (!Utf8toWStr(channelName, channelWName))
{
LOG_ERROR("server.loading", "Failed to load channel '{}' from database - invalid utf8 sequence? Deleted.", channelName);
toDelete.push_back({ channelName, team });
toDelete.emplace_back(channelName, team);
continue;
}
@@ -82,7 +82,7 @@ void ChannelMgr::LoadChannels()
if (!mgr)
{
LOG_ERROR("server.loading", "Failed to load custom chat channel '{}' from database - invalid team {}. Deleted.", channelName, team);
toDelete.push_back({ channelName, team });
toDelete.emplace_back(channelName, team);
continue;
}
+8 -16
View File
@@ -78,21 +78,7 @@ void CharmInfo::InitPossessCreateSpells()
{
if (_unit->IsCreature())
{
// Adding switch until better way is found. Malcrom
// Adding entrys to this switch will prevent COMMAND_ATTACK being added to pet bar.
switch (_unit->GetEntry())
{
case 23575: // Mindless Abomination
case 24783: // Trained Rock Falcon
case 27664: // Crashin' Thrashin' Racer
case 40281: // Crashin' Thrashin' Racer
case 23109: // Vengeful Spirit
case 25653: // Power of the Blue Flight
break;
default:
InitEmptyActionBar();
break;
}
InitEmptyActionBar(false);
for (uint32 i = 0; i < MAX_CREATURE_SPELLS; ++i)
{
@@ -160,11 +146,14 @@ bool CharmInfo::AddSpellToActionBar(SpellInfo const* spellInfo, ActiveStates new
{
uint32 spell_id = 0;
uint32 first_id = 0;
bool autocastable = false;
if (spellInfo)
{
spell_id = spellInfo->Id;
first_id = spellInfo->GetFirstRankSpell()->Id;
if (spellInfo->IsAutocastable())
autocastable = true;
}
// new spell rank can be already listed
@@ -188,7 +177,10 @@ bool CharmInfo::AddSpellToActionBar(SpellInfo const* spellInfo, ActiveStates new
if (i != index && index <= MAX_UNIT_ACTION_BAR_INDEX)
continue;
SetActionBar(i, spell_id, newstate == ACT_DECIDE ? spellInfo->IsAutocastable() ? ACT_DISABLED : ACT_PASSIVE : newstate);
if (!spell_id && index == ACTION_BAR_INDEX_START)
SetActionBar(ACTION_BAR_INDEX_START, COMMAND_ATTACK, ACT_COMMAND);
else
SetActionBar(i, spell_id, newstate == ACT_DECIDE ? autocastable ? ACT_DISABLED : ACT_PASSIVE : newstate);
if (_unit->GetCharmer() && _unit->GetCharmer()->IsPlayer())
{
+28 -35
View File
@@ -1062,7 +1062,7 @@ uint32 Unit::DealDamage(Unit* attacker, Unit* victim, uint32 damage, CleanDamage
{
if (spellProto && victim->CanHaveThreatList() && !victim->HasUnitState(UNIT_STATE_EVADE) && !victim->IsInCombatWith(attacker))
{
victim->CombatStart(attacker, !(spellProto->AttributesEx3 & SPELL_ATTR3_SUPRESS_TARGET_PROCS));
victim->CombatStart(attacker, !(spellProto->AttributesEx3 & SPELL_ATTR3_SUPPRESS_TARGET_PROCS));
}
victim->AddThreat(attacker, float(damage), damageSchoolMask, spellProto);
@@ -4076,9 +4076,11 @@ void Unit::InterruptSpell(CurrentSpellTypes spellType, bool withDelayed, bool wi
if (spell->getState() != SPELL_STATE_FINISHED)
spell->cancel(bySelf);
m_currentSpells[spellType] = nullptr;
spell->SetReferencedFromCurrent(false);
else
{
m_currentSpells[spellType] = nullptr;
spell->SetReferencedFromCurrent(false);
}
}
}
@@ -5093,10 +5095,13 @@ void Unit::RemoveAurasDueToItemSpell(uint32 spellId, ObjectGuid castItemGuid)
++iter;
}
for (AuraMap::iterator iter = m_ownedAuras.begin(); iter != m_ownedAuras.end();)
for (AuraMap::iterator iter = m_ownedAuras.lower_bound(spellId); iter != m_ownedAuras.upper_bound(spellId);)
{
if (iter->second->GetCastItemGUID() == castItemGuid)
RemoveOwnedAura(iter, AURA_REMOVE_BY_DEFAULT);
{
RemoveOwnedAura(iter, AURA_REMOVE_BY_DEFAULT);
iter = m_ownedAuras.lower_bound(spellId);
}
else
++iter;
}
@@ -19787,6 +19792,8 @@ void Unit::_ExitVehicle(Position const* exitPosition)
if (!m_vehicle)
return;
// This should be done before dismiss, because there may be some aura removal
VehicleSeatAddon const* seatAddon = m_vehicle->GetSeatAddonForSeatOfPassenger(this);
m_vehicle->RemovePassenger(this);
Player* player = ToPlayer();
@@ -19795,7 +19802,6 @@ void Unit::_ExitVehicle(Position const* exitPosition)
if (player && player->duel && player->duel->IsMounted)
player->DuelComplete(DUEL_FLED);
// This should be done before dismiss, because there may be some aura removal
Vehicle* vehicle = m_vehicle;
Unit* vehicleBase = m_vehicle->GetBase();
m_vehicle = nullptr;
@@ -19806,33 +19812,22 @@ void Unit::_ExitVehicle(Position const* exitPosition)
SetControlled(false, UNIT_STATE_ROOT); // SMSG_MOVE_FORCE_UNROOT, ~MOVEMENTFLAG_ROOT
Position pos;
if (!exitPosition) // Exit position not specified
pos = vehicleBase->GetPosition(); // This should use passenger's current position, leaving it as it is now
// because we calculate positions incorrect (sometimes under map)
else
// If we ask for a specific exit position, use that one. Otherwise allow scripts to modify it
if (exitPosition)
pos = *exitPosition;
// HACK
VehicleEntry const* vehicleInfo = vehicle->GetVehicleInfo();
if (vehicleInfo)
else
{
if (vehicleInfo->m_ID == 380) // Kologarn right arm
// Set exit position to vehicle position and use the current orientation
pos = vehicleBase->GetPosition(); // This should use passenger's current position, leaving it as it is now
pos.SetOrientation(vehicleBase->GetOrientation());
// Change exit position based on seat entry addon data
if (seatAddon)
{
pos.Relocate(1776.0f, -24.0f, 448.75f, 0.0f);
}
else if (vehicleInfo->m_ID == 91) // Helsman's Ship
{
pos.Relocate(2802.18f, 7054.91f, -0.6f, 4.67f);
}
else if (vehicleInfo->m_ID == 349) // AT Mounts, dismount to the right
{
float x = pos.GetPositionX() + 2.0f * cos(pos.GetOrientation() - M_PI / 2.0f);
float y = pos.GetPositionY() + 2.0f * std::sin(pos.GetOrientation() - M_PI / 2.0f);
float z = GetMapHeight(x, y, pos.GetPositionZ());
if (z > INVALID_HEIGHT)
{
pos.Relocate(x, y, z);
}
if (seatAddon->ExitParameter == VehicleExitParameters::VehicleExitParamOffset)
pos.RelocateOffset({ seatAddon->ExitParameterX, seatAddon->ExitParameterY, seatAddon->ExitParameterZ, seatAddon->ExitParameterO });
else if (seatAddon->ExitParameter == VehicleExitParameters::VehicleExitParamDest)
pos.Relocate({ seatAddon->ExitParameterX, seatAddon->ExitParameterY, seatAddon->ExitParameterZ, seatAddon->ExitParameterO });
}
}
@@ -19852,11 +19847,12 @@ void Unit::_ExitVehicle(Position const* exitPosition)
}
// xinef: hack for flameleviathan seat vehicle
VehicleEntry const* vehicleInfo = vehicle->GetVehicleInfo();
if (!vehicleInfo || vehicleInfo->m_ID != 341)
{
Movement::MoveSplineInit init(this);
init.MoveTo(pos.GetPositionX(), pos.GetPositionY(), pos.GetPositionZ());
init.SetFacing(GetOrientation());
init.SetFacing(vehicleBase->GetOrientation());
init.SetTransportExit();
init.Launch();
}
@@ -19909,10 +19905,7 @@ void Unit::_ExitVehicle(Position const* exitPosition)
setDeathState(DeathState::JustDied);
// If for other reason we as minion are exiting the vehicle (ejected, master dismounted) - unsummon
else
{
SetVisible(false);
ToTempSummon()->UnSummon(2000); // Approximation
}
}
if (player)
+31 -14
View File
@@ -34,15 +34,18 @@ Vehicle::Vehicle(Unit* unit, VehicleEntry const* vehInfo, uint32 creatureEntry)
if (uint32 seatId = _vehicleInfo->m_seatID[i])
if (VehicleSeatEntry const* veSeat = sVehicleSeatStore.LookupEntry(seatId))
{
Seats.insert(std::make_pair(i, VehicleSeat(veSeat)));
VehicleSeatAddon const* addon = sObjectMgr->GetVehicleSeatAddon(seatId);
Seats.insert(std::make_pair(i, VehicleSeat(veSeat, addon)));
if (veSeat->CanEnterOrExit())
++_usableSeatNum;
}
}
// Ulduar demolisher
if (vehInfo->m_ID == 338)
++_usableSeatNum;
// Set or remove correct flags based on available seats. Will overwrite db data (if wrong).
if (_usableSeatNum)
_me->SetNpcFlag((_me->IsPlayer() ? UNIT_NPC_FLAG_PLAYER_VEHICLE : UNIT_NPC_FLAG_SPELLCLICK));
else
_me->RemoveNpcFlag((_me->IsPlayer() ? UNIT_NPC_FLAG_PLAYER_VEHICLE : UNIT_NPC_FLAG_SPELLCLICK));
InitMovementInfoForBase();
}
@@ -230,6 +233,15 @@ Unit* Vehicle::GetPassenger(int8 seatId) const
return ObjectAccessor::GetUnit(*GetBase(), seat->second.Passenger.Guid);
}
VehicleSeatAddon const* Vehicle::GetSeatAddonForSeatOfPassenger(Unit const* passenger) const
{
for (SeatMap::const_iterator itr = Seats.begin(); itr != Seats.end(); itr++)
if (!itr->second.IsEmpty() && itr->second.Passenger.Guid == passenger->GetGUID())
return itr->second.SeatAddon;
return nullptr;
}
int8 Vehicle::GetNextEmptySeat(int8 seatId, bool next) const
{
SeatMap::const_iterator seat = Seats.find(seatId);
@@ -356,12 +368,9 @@ bool Vehicle::AddPassenger(Unit* unit, int8 seatId)
ASSERT(_usableSeatNum);
--_usableSeatNum;
if (!_usableSeatNum)
{
if (_me->IsPlayer())
_me->RemoveNpcFlag(UNIT_NPC_FLAG_PLAYER_VEHICLE);
else
_me->RemoveNpcFlag(UNIT_NPC_FLAG_SPELLCLICK);
}
_me->RemoveNpcFlag(_me->IsPlayer() ? UNIT_NPC_FLAG_PLAYER_VEHICLE : UNIT_NPC_FLAG_SPELLCLICK);
else
_me->SetNpcFlag(_me->IsPlayer() ? UNIT_NPC_FLAG_PLAYER_VEHICLE : UNIT_NPC_FLAG_SPELLCLICK);
}
if (!_me || !_me->IsInWorld() || _me->IsDuringRemoveFromWorld())
@@ -376,7 +385,14 @@ bool Vehicle::AddPassenger(Unit* unit, int8 seatId)
unit->AddUnitMovementFlag(MOVEMENTFLAG_ONTRANSPORT);
VehicleSeatEntry const* veSeat = seat->second.SeatInfo;
unit->m_movementInfo.transport.pos.Relocate(veSeat->m_attachmentOffsetX, veSeat->m_attachmentOffsetY, veSeat->m_attachmentOffsetZ);
VehicleSeatAddon const* veSeatAddon = seat->second.SeatAddon;
float o = veSeatAddon ? veSeatAddon->SeatOrientationOffset : 0.f;
float x = veSeat->m_attachmentOffsetX;
float y = veSeat->m_attachmentOffsetY;
float z = veSeat->m_attachmentOffsetZ;
unit->m_movementInfo.transport.pos.Relocate(x, y, z, o);
unit->m_movementInfo.transport.time = 0;
unit->m_movementInfo.transport.seat = seat->first;
unit->m_movementInfo.transport.guid = _me->GetGUID();
@@ -410,16 +426,17 @@ bool Vehicle::AddPassenger(Unit* unit, int8 seatId)
// also adds MOVEMENTFLAG_ROOT
Movement::MoveSplineInit init(unit);
init.DisableTransportPathTransformations();
init.MoveTo(veSeat->m_attachmentOffsetX, veSeat->m_attachmentOffsetY, veSeat->m_attachmentOffsetZ);
init.MoveTo(x, y, z, false, true);
// Xinef: did not found anything unique in dbc, maybe missed something
if (veSeat->m_ID == 3566 || veSeat->m_ID == 3567 || veSeat->m_ID == 3568 || veSeat->m_ID == 3570)
{
float x = veSeat->m_attachmentOffsetX, y = veSeat->m_attachmentOffsetY, z = veSeat->m_attachmentOffsetZ, o;
CalculatePassengerPosition(x, y, z, &o);
init.SetFacing(_me->GetAngle(x, y));
}
else
init.SetFacing(0.0f);
{
init.SetFacing(o);
}
init.SetTransportEnter();
init.Launch();
@@ -41,6 +41,7 @@ public:
bool HasEmptySeat(int8 seatId) const;
Unit* GetPassenger(int8 seatId) const;
int8 GetNextEmptySeat(int8 seatId, bool next) const;
VehicleSeatAddon const* GetSeatAddonForSeatOfPassenger(Unit const* passenger) const;
uint8 GetAvailableSeatCount() const;
bool AddPassenger(Unit* passenger, int8 seatId = -1);
@@ -57,6 +57,14 @@ enum VehicleSpells
VEHICLE_SPELL_SHADE_CONTROL_END = 58664
};
enum class VehicleExitParameters
{
VehicleExitParamNone = 0, // provided parameters will be ignored
VehicleExitParamOffset = 1, // provided parameters will be used as offset values
VehicleExitParamDest = 2, // provided parameters will be used as absolute destination
VehicleExitParamMax
};
enum VehicleNPCs
{
NPC_EIDOLON_WATCHER = 31110,
@@ -75,9 +83,24 @@ struct PassengerInfo
}
};
struct VehicleSeatAddon
{
VehicleSeatAddon() { }
VehicleSeatAddon(float orientatonOffset, float exitX, float exitY, float exitZ, float exitO, uint8 param) :
SeatOrientationOffset(orientatonOffset), ExitParameterX(exitX), ExitParameterY(exitY), ExitParameterZ(exitZ),
ExitParameterO(exitO), ExitParameter(VehicleExitParameters(param)) { }
float SeatOrientationOffset = 0.f;
float ExitParameterX = 0.f;
float ExitParameterY = 0.f;
float ExitParameterZ = 0.f;
float ExitParameterO = 0.f;
VehicleExitParameters ExitParameter = VehicleExitParameters::VehicleExitParamNone;
};
struct VehicleSeat
{
explicit VehicleSeat(VehicleSeatEntry const* seatInfo) : SeatInfo(seatInfo)
explicit VehicleSeat(VehicleSeatEntry const* seatInfo, VehicleSeatAddon const* seatAddon) : SeatInfo(seatInfo), SeatAddon(seatAddon)
{
Passenger.Reset();
}
@@ -85,6 +108,7 @@ struct VehicleSeat
[[nodiscard]] bool IsEmpty() const { return !Passenger.Guid; }
VehicleSeatEntry const* SeatInfo;
VehicleSeatAddon const* SeatAddon;
PassengerInfo Passenger;
};
+56
View File
@@ -3483,6 +3483,62 @@ void ObjectMgr::LoadVehicleAccessories()
LOG_INFO("server.loading", " ");
}
void ObjectMgr::LoadVehicleSeatAddon()
{
uint32 oldMSTime = getMSTime();
_vehicleSeatAddonStore.clear(); // needed for reload case
uint32 count = 0;
// 0 1 2 3 4 5 6
QueryResult result = WorldDatabase.Query("SELECT `SeatEntry`, `SeatOrientation`, `ExitParamX`, `ExitParamY`, `ExitParamZ`, `ExitParamO`, `ExitParamValue` FROM `vehicle_seat_addon`");
if (!result)
{
LOG_ERROR("server.loading", ">> Loaded 0 vehicle seat addons. DB table `vehicle_seat_addon` is empty.");
return;
}
do
{
Field* fields = result->Fetch();
uint32 seatID = fields[0].Get<uint32>();
float orientation = fields[1].Get<float>();
float exitX = fields[2].Get<float>();
float exitY = fields[3].Get<float>();
float exitZ = fields[4].Get<float>();
float exitO = fields[5].Get<float>();
uint8 exitParam = fields[6].Get<uint8>();
if (!sVehicleSeatStore.LookupEntry(seatID))
{
LOG_ERROR("sql.sql", "Table `vehicle_seat_addon`: SeatID: %u does not exist in VehicleSeat.dbc. Skipping entry.", seatID);
continue;
}
// Sanitizing values
if (orientation > float(M_PI * 2))
{
LOG_ERROR("sql.sql", "Table `vehicle_seat_addon`: SeatID: %u is using invalid angle offset value (%f). Set Value to 0.", seatID, orientation);
orientation = 0.0f;
}
if (exitParam >= AsUnderlyingType(VehicleExitParameters::VehicleExitParamMax))
{
LOG_ERROR("sql.sql", "Table `vehicle_seat_addon`: SeatID: %u is using invalid exit parameter value (%u). Setting to 0 (none).", seatID, exitParam);
continue;
}
_vehicleSeatAddonStore[seatID] = VehicleSeatAddon(orientation, exitX, exitY, exitZ, exitO, exitParam);
++count;
} while (result->NextRow());
LOG_INFO("server.loading", ">> Loaded %u Vehicle Seat Addon entries in %u ms", count, GetMSTimeDiffToNow(oldMSTime));
}
void ObjectMgr::LoadPetLevelInfo()
{
uint32 oldMSTime = getMSTime();
+12
View File
@@ -518,6 +518,7 @@ typedef std::map<std::pair<std::string, uint32>, ModuleString> ModuleStringConta
typedef std::unordered_map<int32, AcoreString> AcoreStringContainer;
typedef std::unordered_map<uint32, GossipMenuItemsLocale> GossipMenuItemsLocaleContainer;
typedef std::unordered_map<uint32, PointOfInterestLocale> PointOfInterestLocaleContainer;
typedef std::unordered_map<uint32, VehicleSeatAddon> VehicleSeatAddonContainer;
typedef std::multimap<uint32, uint32> QuestRelations;
typedef std::pair<QuestRelations::const_iterator, QuestRelations::const_iterator> QuestRelationBounds;
@@ -1053,6 +1054,7 @@ public:
void LoadMailServerTemplates();
void LoadVehicleTemplateAccessories();
void LoadVehicleAccessories();
void LoadVehicleSeatAddon();
void LoadGossipText();
@@ -1430,6 +1432,15 @@ public:
[[nodiscard]] bool IsTransportMap(uint32 mapId) const { return _transportMaps.count(mapId) != 0; }
VehicleSeatAddon const* GetVehicleSeatAddon(uint32 seatId) const
{
VehicleSeatAddonContainer::const_iterator itr = _vehicleSeatAddonStore.find(seatId);
if (itr == _vehicleSeatAddonStore.end())
return nullptr;
return &itr->second;
}
[[nodiscard]] uint32 GetQuestMoneyReward(uint8 level, uint32 questMoneyDifficulty) const;
void SendServerMail(Player* player, uint32 id, uint32 reqLevel, uint32 reqPlayTime, uint32 rewardMoneyA, uint32 rewardMoneyH, uint32 rewardItemA, uint32 rewardItemCountA, uint32 rewardItemH, uint32 rewardItemCountH, std::string subject, std::string body, uint8 active) const;
private:
@@ -1507,6 +1518,7 @@ private:
VehicleAccessoryContainer _vehicleTemplateAccessoryStore;
VehicleAccessoryContainer _vehicleAccessoryStore;
VehicleSeatAddonContainer _vehicleSeatAddonStore;
LocaleConstant DBCLocaleIndex;
@@ -986,9 +986,6 @@ void WorldSession::HandleMoveRootAck(WorldPacket& recvData)
mover->m_movementInfo = movementInfo;
mover->UpdatePosition(movementInfo.pos);
WorldPacket data(MSG_MOVE_ROOT, 64);
WriteMovementInfo(&data, &movementInfo);
mover->SendMessageToSet(&data, _player);
}
void WorldSession::HandleMoveUnRootAck(WorldPacket& recvData)
@@ -1031,7 +1028,4 @@ void WorldSession::HandleMoveUnRootAck(WorldPacket& recvData)
mover->m_movementInfo = movementInfo;
mover->UpdatePosition(movementInfo.pos);
WorldPacket data(MSG_MOVE_UNROOT, 64);
WriteMovementInfo(&data, &movementInfo);
mover->SendMessageToSet(&data, _player);
}
+15 -19
View File
@@ -38,14 +38,8 @@ void WorldSession::HandleQuestgiverStatusQueryOpcode(WorldPacket& recvData)
recvData >> guid;
uint32 questStatus = DIALOG_STATUS_NONE;
GossipMenu& gossipMenu = _player->PlayerTalkClass->GetGossipMenu();
// Did we already get a gossip menu with that NPC? if so no need to status query
if (gossipMenu.GetSenderGUID() == guid)
{
return;
}
Object* questGiver = ObjectAccessor::GetObjectByTypeMask(*_player, guid, TYPEMASK_UNIT | TYPEMASK_GAMEOBJECT);
if (!questGiver)
{
LOG_DEBUG("network.opcode", "Error in CMSG_QUESTGIVER_STATUS_QUERY, called for not found questgiver ({})", guid.ToString());
@@ -55,21 +49,23 @@ void WorldSession::HandleQuestgiverStatusQueryOpcode(WorldPacket& recvData)
switch (questGiver->GetTypeId())
{
case TYPEID_UNIT:
{
LOG_DEBUG("network", "WORLD: Received CMSG_QUESTGIVER_STATUS_QUERY for npc {}", guid.ToString());
if (!questGiver->ToCreature()->IsHostileTo(_player)) // do not show quest status to enemies
questStatus = _player->GetQuestDialogStatus(questGiver);
break;
}
{
LOG_DEBUG("network", "WORLD: Received CMSG_QUESTGIVER_STATUS_QUERY for npc {}", guid.ToString());
if (!questGiver->ToCreature()->IsHostileTo(_player)) // do not show quest status to enemies
questStatus = _player->GetQuestDialogStatus(questGiver);
break;
}
case TYPEID_GAMEOBJECT:
{
LOG_DEBUG("network", "WORLD: Received CMSG_QUESTGIVER_STATUS_QUERY for GameObject {}", guid.ToString());
if (sWorld->getBoolConfig(CONFIG_OBJECT_QUEST_MARKERS))
{
LOG_DEBUG("network", "WORLD: Received CMSG_QUESTGIVER_STATUS_QUERY for GameObject {}", guid.ToString());
if (sWorld->getBoolConfig(CONFIG_OBJECT_QUEST_MARKERS))
{
questStatus = _player->GetQuestDialogStatus(questGiver);
}
break;
questStatus = _player->GetQuestDialogStatus(questGiver);
}
break;
}
default:
LOG_ERROR("network.opcode", "QuestGiver called for unexpected type {}", questGiver->GetTypeId());
break;
+5 -5
View File
@@ -54,8 +54,8 @@ void LootItemStorage::LoadStorageFromDB()
Field* fields = result->Fetch();
StoredLootItemList& itemList = lootItemStore[ObjectGuid::Create<HighGuid::Item>(fields[0].Get<uint32>())];
itemList.push_back(StoredLootItem(fields[1].Get<uint32>(), fields[2].Get<uint32>(), fields[3].Get<uint32>(), fields[4].Get<int32>(), fields[5].Get<uint32>(), fields[6].Get<bool>(),
fields[7].Get<bool>(), fields[8].Get<bool>(), fields[9].Get<bool>(), fields[10].Get<bool>(), fields[11].Get<bool>(), fields[12].Get<uint32>()));
itemList.emplace_back(fields[1].Get<uint32>(), fields[2].Get<uint32>(), fields[3].Get<uint32>(), fields[4].Get<int32>(), fields[5].Get<uint32>(), fields[6].Get<bool>(),
fields[7].Get<bool>(), fields[8].Get<bool>(), fields[9].Get<bool>(), fields[10].Get<bool>(), fields[11].Get<bool>(), fields[12].Get<uint32>());
++count;
} while (result->NextRow());
@@ -94,7 +94,7 @@ void LootItemStorage::AddNewStoredLoot(Loot* loot, Player* /*player*/)
// Gold at first
if (loot->gold)
{
itemList.push_back(StoredLootItem(0, 0, loot->gold, 0, 0, false, false, false, false, false, false, 0));
itemList.emplace_back(0, 0, loot->gold, 0, 0, false, false, false, false, false, false, 0);
uint8 index = 0;
stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_ITEMCONTAINER_SINGLE_ITEM);
@@ -134,8 +134,8 @@ void LootItemStorage::AddNewStoredLoot(Loot* loot, Player* /*player*/)
conditionLootId = li->conditions.front()->SourceGroup;
}
itemList.push_back(StoredLootItem(li->itemid, li->itemIndex, li->count, li->randomPropertyId, li->randomSuffix, li->follow_loot_rules, li->freeforall, li->is_blocked, li->is_counted,
li->is_underthreshold, li->needs_quest, conditionLootId));
itemList.emplace_back(li->itemid, li->itemIndex, li->count, li->randomPropertyId, li->randomSuffix, li->follow_loot_rules, li->freeforall, li->is_blocked, li->is_counted,
li->is_underthreshold, li->needs_quest, conditionLootId);
uint8 index = 0;
stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_ITEMCONTAINER_SINGLE_ITEM);
+2 -2
View File
@@ -109,7 +109,7 @@ void LoadSkillDiscoveryTable()
continue;
}
SkillDiscoveryStore[reqSkillOrSpell].push_back(SkillDiscoveryEntry(spellId, reqSkillValue, chance));
SkillDiscoveryStore[reqSkillOrSpell].emplace_back(spellId, reqSkillValue, chance);
}
else if (reqSkillOrSpell == 0) // skill case
{
@@ -122,7 +122,7 @@ void LoadSkillDiscoveryTable()
}
for (SkillLineAbilityMap::const_iterator _spell_idx = bounds.first; _spell_idx != bounds.second; ++_spell_idx)
SkillDiscoveryStore[-int32(_spell_idx->second->SkillLine)].push_back(SkillDiscoveryEntry(spellId, reqSkillValue, chance));
SkillDiscoveryStore[-int32(_spell_idx->second->SkillLine)].emplace_back(spellId, reqSkillValue, chance);
}
else
{
+16 -14
View File
@@ -2677,7 +2677,7 @@ void Spell::DoAllEffectOnTarget(TargetInfo* target)
CallScriptBeforeHitHandlers(missInfo);
//Spells with this flag cannot trigger if effect is casted on self
bool canEffectTrigger = !m_spellInfo->HasAttribute(SPELL_ATTR3_SUPRESS_CASTER_PROCS) && unitTarget->CanProc() && (CanExecuteTriggersOnHit(mask) || missInfo == SPELL_MISS_IMMUNE2);
bool canEffectTrigger = !m_spellInfo->HasAttribute(SPELL_ATTR3_SUPPRESS_CASTER_PROCS) && unitTarget->CanProc() && (CanExecuteTriggersOnHit(mask) || missInfo == SPELL_MISS_IMMUNE2);
bool reflectedSpell = missInfo == SPELL_MISS_REFLECT;
Unit* spellHitTarget = nullptr;
@@ -2890,7 +2890,7 @@ void Spell::DoAllEffectOnTarget(TargetInfo* target)
m_triggeredByAuraSpell.effectIndex, this, &dmgInfo);
if (caster->IsPlayer() && m_spellInfo->HasAttribute(SPELL_ATTR0_CANCELS_AUTO_ATTACK_COMBAT) == 0 &&
m_spellInfo->HasAttribute(SPELL_ATTR4_SUPRESS_WEAPON_PROCS) == 0 && (m_spellInfo->DmgClass == SPELL_DAMAGE_CLASS_MELEE || m_spellInfo->DmgClass == SPELL_DAMAGE_CLASS_RANGED))
m_spellInfo->HasAttribute(SPELL_ATTR4_SUPPRESS_WEAPON_PROCS) == 0 && (m_spellInfo->DmgClass == SPELL_DAMAGE_CLASS_MELEE || m_spellInfo->DmgClass == SPELL_DAMAGE_CLASS_RANGED))
caster->ToPlayer()->CastItemCombatSpell(unitTarget, m_attackType, procVictim, procEx);
}
@@ -2912,7 +2912,7 @@ void Spell::DoAllEffectOnTarget(TargetInfo* target)
// Xinef: eg. rogue poisons can proc off cheap shot, etc. so this block should be here also
// Xinef: ofc count only spells that HIT the target, little hack used to fool the system
if ((procEx & PROC_EX_NORMAL_HIT || procEx & PROC_EX_CRITICAL_HIT) && caster->IsPlayer() && m_spellInfo->HasAttribute(SPELL_ATTR0_CANCELS_AUTO_ATTACK_COMBAT) == 0 &&
m_spellInfo->HasAttribute(SPELL_ATTR4_SUPRESS_WEAPON_PROCS) == 0 && (m_spellInfo->DmgClass == SPELL_DAMAGE_CLASS_MELEE || m_spellInfo->DmgClass == SPELL_DAMAGE_CLASS_RANGED))
m_spellInfo->HasAttribute(SPELL_ATTR4_SUPPRESS_WEAPON_PROCS) == 0 && (m_spellInfo->DmgClass == SPELL_DAMAGE_CLASS_MELEE || m_spellInfo->DmgClass == SPELL_DAMAGE_CLASS_RANGED))
caster->ToPlayer()->CastItemCombatSpell(unitTarget, m_attackType, procVictim | PROC_FLAG_TAKEN_DAMAGE, procEx);
}
@@ -2930,7 +2930,7 @@ void Spell::DoAllEffectOnTarget(TargetInfo* target)
if (missInfo != SPELL_MISS_EVADE && !m_caster->IsFriendlyTo(effectUnit) && (!m_spellInfo->IsPositive() || m_spellInfo->HasEffect(SPELL_EFFECT_DISPEL)))
{
if (!m_triggeredByAuraSpell.spellInfo || m_damage || (!(m_triggeredByAuraSpell.spellInfo->Effects[m_triggeredByAuraSpell.effectIndex].TriggerSpell == m_spellInfo->Id) && !(m_triggeredByAuraSpell.spellInfo->IsAuraEffectEqual(m_spellInfo))))
m_caster->CombatStart(effectUnit, !(m_spellInfo->AttributesEx3 & SPELL_ATTR3_SUPRESS_TARGET_PROCS));
m_caster->CombatStart(effectUnit, !(m_spellInfo->AttributesEx3 & SPELL_ATTR3_SUPPRESS_TARGET_PROCS));
// Patch 3.0.8: All player spells which cause a creature to become aggressive to you will now also immediately cause the creature to be tapped.
if (effectUnit->IsInCombatWith(m_caster))
@@ -3079,7 +3079,7 @@ SpellMissInfo Spell::DoSpellHitOnUnit(Unit* unit, uint32 effectMask, bool scaleA
}
// xinef: triggered spells should not prolong combat
if (unit->IsInCombat() && !m_spellInfo->HasAttribute(SPELL_ATTR3_SUPRESS_TARGET_PROCS) && !m_triggeredByAuraSpell)
if (unit->IsInCombat() && !m_spellInfo->HasAttribute(SPELL_ATTR3_SUPPRESS_TARGET_PROCS) && !m_triggeredByAuraSpell)
{
m_caster->SetInCombatState(unit->GetCombatTimer() > 0, unit);
unit->getHostileRefMgr().threatAssist(m_caster, 0.0f);
@@ -3840,8 +3840,8 @@ void Spell::_cast(bool skipCheck)
// As of 3.0.2 pets begin attacking their owner's target immediately
// Let any pets know we've attacked something. Check DmgClass for harmful spells only
// This prevents spells such as Hunter's Mark from triggering pet attack
// xinef: take into account SPELL_ATTR3_SUPRESS_TARGET_PROCS
if ((m_targets.GetTargetMask() & TARGET_FLAG_UNIT) && GetSpellInfo()->DmgClass != SPELL_DAMAGE_CLASS_NONE && !GetSpellInfo()->HasAttribute(SPELL_ATTR3_SUPRESS_TARGET_PROCS))
// xinef: take into account SPELL_ATTR3_SUPPRESS_TARGET_PROCS
if ((m_targets.GetTargetMask() & TARGET_FLAG_UNIT) && GetSpellInfo()->DmgClass != SPELL_DAMAGE_CLASS_NONE && !GetSpellInfo()->HasAttribute(SPELL_ATTR3_SUPPRESS_TARGET_PROCS))
if (!playerCaster->m_Controlled.empty())
for (Unit::ControlSet::iterator itr = playerCaster->m_Controlled.begin(); itr != playerCaster->m_Controlled.end(); ++itr)
if (Unit* pet = *itr)
@@ -4081,13 +4081,15 @@ void Spell::_cast(bool skipCheck)
if (modOwner)
modOwner->SetSpellModTakingSpell(this, false);
if (const std::vector<int32>* spell_triggered = sSpellMgr->GetSpellLinked(m_spellInfo->Id))
if (std::vector<int32> const* spell_triggered = sSpellMgr->GetSpellLinked(m_spellInfo->Id))
{
for (std::vector<int32>::const_iterator i = spell_triggered->begin(); i != spell_triggered->end(); ++i)
if (*i < 0)
m_caster->RemoveAurasDueToSpell(-(*i));
for (int32 id : *spell_triggered)
{
if (id < 0)
m_caster->RemoveAurasDueToSpell(-id);
else
m_caster->CastSpell(m_targets.GetUnitTarget() ? m_targets.GetUnitTarget() : m_caster, *i, true);
m_caster->CastSpell(m_targets.GetUnitTarget() ? m_targets.GetUnitTarget() : m_caster, id, true);
}
}
// Interrupt Spell casting
@@ -4101,7 +4103,7 @@ void Spell::_cast(bool skipCheck)
if (Unit* target = m_targets.GetUnitTarget())
if (m_caster->IsPlayer() || (m_caster->IsPet() && m_caster->IsControlledByPlayer()))
if (GetDelayMoment() > 0 && !m_caster->IsFriendlyTo(target) && !m_spellInfo->HasAura(SPELL_AURA_BIND_SIGHT) && (!m_spellInfo->IsPositive() || m_spellInfo->HasEffect(SPELL_EFFECT_DISPEL)))
m_caster->CombatStartOnCast(target, !m_spellInfo->HasAttribute(SPELL_ATTR3_SUPRESS_TARGET_PROCS), GetDelayMoment() + 500); // xinef: increase this time so we dont leave and enter combat in a moment
m_caster->CombatStartOnCast(target, !m_spellInfo->HasAttribute(SPELL_ATTR3_SUPPRESS_TARGET_PROCS), GetDelayMoment() + 500); // xinef: increase this time so we dont leave and enter combat in a moment
if (m_caster->IsPlayer())
if (m_caster->ToPlayer()->GetCommandStatus(CHEAT_COOLDOWN))
@@ -5580,7 +5582,7 @@ void Spell::HandleThreatSpells()
if (m_UniqueTargetInfo.empty())
return;
if (m_spellInfo->HasAttribute(SPELL_ATTR1_NO_THREAT) || m_spellInfo->HasAttribute(SPELL_ATTR3_SUPRESS_TARGET_PROCS))
if (m_spellInfo->HasAttribute(SPELL_ATTR1_NO_THREAT) || m_spellInfo->HasAttribute(SPELL_ATTR3_SUPPRESS_TARGET_PROCS))
return;
float threat = 0.0f;
+40 -38
View File
@@ -304,12 +304,6 @@ void SpellMgr::LoadSpellInfoCorrections()
spellInfo->ProcCharges = 6;
});
// The Eye of Acherus (no spawn in phase 2 in db)
ApplySpellFix({ 51852 }, [](SpellInfo* spellInfo)
{
spellInfo->Effects[EFFECT_0].MiscValue |= 1;
});
// Crafty's Ultra-Advanced Proto-Typical Shortening Blaster
ApplySpellFix({ 51912 }, [](SpellInfo* spellInfo)
{
@@ -589,7 +583,7 @@ void SpellMgr::LoadSpellInfoCorrections()
{
// hack for seal of light and few spells, judgement consists of few single casts and each of them can proc
// some spell, base one has disabled proc flag but those dont have this flag
spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPRESS_CASTER_PROCS;
spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPPRESS_CASTER_PROCS;
});
// Blessing of sanctuary stats
@@ -611,7 +605,13 @@ void SpellMgr::LoadSpellInfoCorrections()
// Seal of Command trigger
ApplySpellFix({ 20424 }, [](SpellInfo* spellInfo)
{
spellInfo->AttributesEx3 &= ~SPELL_ATTR3_SUPRESS_CASTER_PROCS;
spellInfo->AttributesEx3 &= ~SPELL_ATTR3_SUPPRESS_CASTER_PROCS;
});
// Arcane Missiles
ApplySpellFix({ 5143, 5144, 5145, 8416, 8417, 10211, 10212, 25345, 27075, 38699, 38704, 42843, 42846 }, [](SpellInfo* spellInfo)
{
spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPPRESS_TARGET_PROCS;
});
ApplySpellFix({
@@ -637,7 +637,7 @@ void SpellMgr::LoadSpellInfoCorrections()
ApplySpellFix({ 3411 }, [](SpellInfo* spellInfo)
{
spellInfo->Attributes |= SPELL_ATTR0_CANCELS_AUTO_ATTACK_COMBAT;
spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPRESS_TARGET_PROCS;
spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPPRESS_TARGET_PROCS;
});
// Roar of Sacrifice
@@ -742,7 +742,7 @@ void SpellMgr::LoadSpellInfoCorrections()
6774 // Slice and Dice
}, [](SpellInfo* spellInfo)
{
spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPRESS_TARGET_PROCS;
spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPPRESS_TARGET_PROCS;
});
// Envenom
@@ -817,7 +817,7 @@ void SpellMgr::LoadSpellInfoCorrections()
ApplySpellFix({ 50526 }, [](SpellInfo* spellInfo)
{
spellInfo->AttributesEx3 |= SPELL_ATTR3_IGNORE_CASTER_MODIFIERS;
spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPRESS_TARGET_PROCS;
spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPPRESS_TARGET_PROCS;
});
// Dancing Rune Weapon
@@ -856,13 +856,13 @@ void SpellMgr::LoadSpellInfoCorrections()
// Scourge Strike trigger
ApplySpellFix({ 70890 }, [](SpellInfo* spellInfo)
{
spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPRESS_CASTER_PROCS;
spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPPRESS_CASTER_PROCS;
});
// Blood-caked Blade - Blood-caked Strike trigger
ApplySpellFix({ 50463 }, [](SpellInfo* spellInfo)
{
spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPRESS_CASTER_PROCS;
spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPPRESS_CASTER_PROCS;
});
// Blood Gorged
@@ -1080,7 +1080,7 @@ void SpellMgr::LoadSpellInfoCorrections()
// Living Bomb
ApplySpellFix({ 44461, 55361, 55362 }, [](SpellInfo* spellInfo)
{
spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPRESS_TARGET_PROCS;
spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPPRESS_TARGET_PROCS;
spellInfo->AttributesEx4 |= SPELL_ATTR4_REACTIVE_DAMAGE_PROC;
});
@@ -1294,13 +1294,13 @@ void SpellMgr::LoadSpellInfoCorrections()
ApplySpellFix({ 49376 }, [](SpellInfo* spellInfo)
{
spellInfo->Effects[EFFECT_1].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_3_YARDS); // 3yd
spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPRESS_TARGET_PROCS;
spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPPRESS_TARGET_PROCS;
});
// Feral Charge - Cat
ApplySpellFix({ 61138, 61132, 50259 }, [](SpellInfo* spellInfo)
{
spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPRESS_TARGET_PROCS;
spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPPRESS_TARGET_PROCS;
});
// Glyph of Barkskin
@@ -2190,7 +2190,7 @@ void SpellMgr::LoadSpellInfoCorrections()
// Oculus, Drake spell Stop Time
ApplySpellFix({ 49838 }, [](SpellInfo* spellInfo)
{
spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPRESS_TARGET_PROCS;
spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPPRESS_TARGET_PROCS;
spellInfo->ExcludeTargetAuraSpell = 51162; // exclude planar shift
spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_150_YARDS);
});
@@ -2277,7 +2277,7 @@ void SpellMgr::LoadSpellInfoCorrections()
{
spellInfo->Attributes |= SPELL_ATTR0_CANCELS_AUTO_ATTACK_COMBAT;
spellInfo->AttributesEx |= SPELL_ATTR1_NO_THREAT;
spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPRESS_TARGET_PROCS;
spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPPRESS_TARGET_PROCS;
});
// Trial of the Crusader, Lich King Intro spell
@@ -2313,7 +2313,7 @@ void SpellMgr::LoadSpellInfoCorrections()
{
spellInfo->Attributes |= SPELL_ATTR0_CANCELS_AUTO_ATTACK_COMBAT;
spellInfo->AttributesEx |= SPELL_ATTR1_NO_THREAT;
spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPRESS_TARGET_PROCS;
spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPPRESS_TARGET_PROCS;
});
ApplySpellFix({ 66318 }, [](SpellInfo* spellInfo)
@@ -2323,7 +2323,7 @@ void SpellMgr::LoadSpellInfoCorrections()
spellInfo->Speed = 14.0f;
spellInfo->Attributes |= SPELL_ATTR0_CANCELS_AUTO_ATTACK_COMBAT;
spellInfo->AttributesEx |= SPELL_ATTR1_NO_THREAT;
spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPRESS_TARGET_PROCS;
spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPPRESS_TARGET_PROCS;
});
ApplySpellFix({ 66320, 67472, 67473, 67475 }, [](SpellInfo* spellInfo)
@@ -2907,7 +2907,7 @@ void SpellMgr::LoadSpellInfoCorrections()
// Lock Players and Tap Chest
ApplySpellFix({ 72347 }, [](SpellInfo* spellInfo)
{
spellInfo->AttributesEx3 &= ~SPELL_ATTR3_SUPRESS_TARGET_PROCS;
spellInfo->AttributesEx3 &= ~SPELL_ATTR3_SUPPRESS_TARGET_PROCS;
});
// Award Reputation - Boss Kill
@@ -2940,7 +2940,7 @@ void SpellMgr::LoadSpellInfoCorrections()
{
// Patch 3.3.2 (2010-01-02): Deathbringer Saurfang will no longer gain blood power from Mark of the Fallen Champion.
// prevented in script, effect needed for Prayer of Mending
spellInfo->AttributesEx3 &= ~SPELL_ATTR3_SUPRESS_CASTER_PROCS;
spellInfo->AttributesEx3 &= ~SPELL_ATTR3_SUPPRESS_CASTER_PROCS;
});
// Coldflame Jets (Traps after Saurfang)
@@ -3463,7 +3463,7 @@ void SpellMgr::LoadSpellInfoCorrections()
// A Tangled Skein
ApplySpellFix({ 51165, 51173 }, [](SpellInfo* spellInfo)
{
spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPRESS_TARGET_PROCS;
spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPPRESS_TARGET_PROCS;
});
ApplySpellFix({
@@ -3657,13 +3657,13 @@ void SpellMgr::LoadSpellInfoCorrections()
// Frankly, It Makes No Sense... (10672)
ApplySpellFix({ 37851 }, [](SpellInfo* spellInfo)
{
spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPRESS_TARGET_PROCS;
spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPPRESS_TARGET_PROCS;
});
// Honor Challenge (12939)
ApplySpellFix({ 21855 }, [](SpellInfo* spellInfo)
{
spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPRESS_TARGET_PROCS;
spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPPRESS_TARGET_PROCS;
});
// Convocation at Zol'Heb (12730)
@@ -4088,7 +4088,7 @@ void SpellMgr::LoadSpellInfoCorrections()
53725 // Judgement of the Martyr
}, [](SpellInfo* spellInfo)
{
spellInfo->AttributesEx3 &= ~SPELL_ATTR3_SUPRESS_TARGET_PROCS;
spellInfo->AttributesEx3 &= ~SPELL_ATTR3_SUPPRESS_TARGET_PROCS;
});
// Chaos Bolt Passive
@@ -4188,7 +4188,7 @@ void SpellMgr::LoadSpellInfoCorrections()
// Brood Power : Bronze
ApplySpellFix({ 22311 }, [](SpellInfo* spellInfo)
{
spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPRESS_CASTER_PROCS;
spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPPRESS_CASTER_PROCS;
});
// Rapture
@@ -4196,7 +4196,7 @@ void SpellMgr::LoadSpellInfoCorrections()
{
spellInfo->AttributesEx |= SPELL_ATTR1_NO_THREAT;
spellInfo->AttributesEx2 |= SPELL_ATTR2_IGNORE_LINE_OF_SIGHT;
spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPRESS_TARGET_PROCS;
spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPPRESS_TARGET_PROCS;
});
// Everlasting Affliction
@@ -4306,7 +4306,7 @@ void SpellMgr::LoadSpellInfoCorrections()
// Death's Respite
ApplySpellFix({ 67731, 68305 }, [](SpellInfo* spellInfo)
{
spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPRESS_TARGET_PROCS;
spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPPRESS_TARGET_PROCS;
});
// Wyvern Sting DoT
@@ -4367,7 +4367,7 @@ void SpellMgr::LoadSpellInfoCorrections()
// Uppercut
ApplySpellFix({ 26007 }, [](SpellInfo* spellInfo)
{
spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPRESS_CASTER_PROCS;
spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPPRESS_CASTER_PROCS;
});
// Digestive Acid (Temporary)
@@ -4388,7 +4388,7 @@ void SpellMgr::LoadSpellInfoCorrections()
ApplySpellFix({ 6754 }, [](SpellInfo* spellInfo)
{
spellInfo->AttributesEx |= SPELL_ATTR1_NO_THREAT;
spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPRESS_TARGET_PROCS;
spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPPRESS_TARGET_PROCS;
});
// Summon Cauldron Stuff
@@ -4749,8 +4749,8 @@ void SpellMgr::LoadSpellInfoCorrections()
// Gor'drek's Ointment
ApplySpellFix({ 32578 }, [](SpellInfo* spellInfo)
{
spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPRESS_CASTER_PROCS;
spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPRESS_TARGET_PROCS;
spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPPRESS_CASTER_PROCS;
spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPPRESS_TARGET_PROCS;
});
// Shadow Grasp
@@ -4813,7 +4813,7 @@ void SpellMgr::LoadSpellInfoCorrections()
7376 // Defensive Stance Passive
}, [](SpellInfo* spellInfo)
{
spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPRESS_CASTER_PROCS;
spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPPRESS_CASTER_PROCS;
});
// Conjure Refreshment Table (Rank 1, Rank 2)
@@ -4850,6 +4850,12 @@ void SpellMgr::LoadSpellInfoCorrections()
spellInfo->RangeEntry = sSpellRangeStore.LookupEntry(7);
});
// Siphon Life (heal)
ApplySpellFix({ 63106 }, [](SpellInfo* spellInfo)
{
spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPPRESS_CASTER_PROCS;
});
for (uint32 i = 0; i < GetSpellInfoStoreSize(); ++i)
{
SpellInfo* spellInfo = mSpellInfoMap[i];
@@ -4986,10 +4992,6 @@ void SpellMgr::LoadSpellInfoCorrections()
vse->m_flags &= ~VEHICLE_SEAT_FLAG_PASSENGER_NOT_SELECTABLE;
vse = const_cast<VehicleSeatEntry*>(sVehicleSeatStore.LookupEntry(4693)); // Siege Engine, Accessory
vse->m_flags &= ~VEHICLE_SEAT_FLAG_PASSENGER_NOT_SELECTABLE;
vse = const_cast<VehicleSeatEntry*>(sVehicleSeatStore.LookupEntry(3011)); // Salvaged Demolisher, Ulduar - not allow to change seats
vse->m_flags &= ~VEHICLE_SEAT_FLAG_CAN_SWITCH;
vse = const_cast<VehicleSeatEntry*>(sVehicleSeatStore.LookupEntry(3077)); // Salvaged Demolisher Seat, Ulduar - not allow to change seats
vse->m_flags &= ~VEHICLE_SEAT_FLAG_CAN_SWITCH;
// pussywizard: fix z offset for some vehicles:
vse = const_cast<VehicleSeatEntry*>(sVehicleSeatStore.LookupEntry(6206)); // Marrowgar - Bone Spike
+3
View File
@@ -1818,6 +1818,9 @@ void World::SetInitialWorldSettings()
LOG_INFO("server.loading", "Loading Vehicle Accessories...");
sObjectMgr->LoadVehicleAccessories(); // must be after LoadCreatureTemplates() and LoadNPCSpellClickSpells()
LOG_INFO("server.loading", "Loading Vehicle Seat Addon Data...");
sObjectMgr->LoadVehicleSeatAddon(); // must be after loading DBC
LOG_INFO("server.loading", "Loading SpellArea Data..."); // must be after quest load
sSpellMgr->LoadSpellAreas();
+3 -3
View File
@@ -362,7 +362,7 @@ public:
continue;
}
questItems.push_back(std::pair(id, count));
questItems.emplace_back(id, count);
}
if (!questItems.empty())
@@ -585,7 +585,7 @@ public:
for (uint32 const& itemId : quest->RewardChoiceItemId)
{
uint8 index = 0;
questRewardItems.push_back(std::pair(itemId, quest->RewardChoiceItemCount[index++]));
questRewardItems.emplace_back(itemId, quest->RewardChoiceItemCount[index++]);
}
}
@@ -594,7 +594,7 @@ public:
for (uint32 const& itemId : quest->RewardItemId)
{
uint8 index = 0;
questRewardItems.push_back(std::pair(itemId, quest->RewardItemIdCount[index++]));
questRewardItems.emplace_back(itemId, quest->RewardItemIdCount[index++]);
}
}
@@ -56,14 +56,22 @@ public:
{
npc_crusade_persuadedAI(Creature* creature) : CombatAI(creature) { }
const uint32 SAY_AGGRO_CHANCE = 33;
const uint32 PERSUADE_SUCCESS_CHANCE = 3; // 30% chance
const uint32 SPEECH_TIMER_DEFAULT = 1000;
const uint32 SPEECH_TIMER_FOR_ROLEPLAY = 8000;
const uint32 SPEECH_COUNTER_PREVENT_SUCCESS_ROLEPLAY = 0;
const uint32 SPEECH_COUNTER_START_SUCCESS_ROLEPLAY = 1;
uint32 speechTimer;
uint32 speechCounter;
ObjectGuid playerGUID;
bool persuaded;
void Reset() override
{
speechTimer = 0;
speechCounter = 0;
speechCounter = SPEECH_COUNTER_PREVENT_SUCCESS_ROLEPLAY;
playerGUID.Clear();
me->SetReactState(REACT_AGGRESSIVE);
me->RestoreFaction();
@@ -71,7 +79,7 @@ public:
void JustEngagedWith(Unit*) override
{
if (roll_chance_i(33))
if (roll_chance_i(SAY_AGGRO_CHANCE))
Talk(SAY_AGGRO);
}
@@ -81,20 +89,23 @@ public:
{
if (Player* player = caster->ToPlayer())
{
if (player->GetQuestStatus(QUEST_HOW_TO_WIN_FRIENDS) == QUEST_STATUS_INCOMPLETE)
playerGUID = player->GetGUID();
speechTimer = SPEECH_TIMER_DEFAULT;
speechCounter = SPEECH_COUNTER_START_SUCCESS_ROLEPLAY;
uint32 persuadeRoll = urand(1, 10);
sCreatureTextMgr->SendChat(me, SAY_PERSUADE_RAND, nullptr, CHAT_MSG_ADDON, LANG_ADDON, TEXT_RANGE_NORMAL, 0, TEAM_NEUTRAL, false, player);
if (persuadeRoll <= PERSUADE_SUCCESS_CHANCE && player->GetQuestStatus(QUEST_HOW_TO_WIN_FRIENDS) == QUEST_STATUS_INCOMPLETE)
{
playerGUID = player->GetGUID();
speechTimer = 1000;
speechCounter = 1;
persuaded = true;
me->SetFaction(player->GetFaction());
me->CombatStop(true);
me->GetMotionMaster()->MoveIdle();
me->SetReactState(REACT_PASSIVE);
DoCastAOE(SPELL_THREAT_PULSE, true);
sCreatureTextMgr->SendChat(me, SAY_PERSUADE_RAND, nullptr, CHAT_MSG_ADDON, LANG_ADDON, TEXT_RANGE_NORMAL, 0, TEAM_NEUTRAL, false, player);
Talk(SAY_CRUSADER);
}
else
persuaded = false;
}
}
}
@@ -112,46 +123,53 @@ public:
return;
}
switch (speechCounter)
if (persuaded)
{
switch (speechCounter)
{
case 1:
Talk(SAY_PERSUADED1);
speechTimer = 8000;
speechTimer = SPEECH_TIMER_FOR_ROLEPLAY;
break;
case 2:
Talk(SAY_PERSUADED2);
speechTimer = 8000;
speechTimer = SPEECH_TIMER_FOR_ROLEPLAY;
break;
case 3:
Talk(SAY_PERSUADED3);
speechTimer = 8000;
speechTimer = SPEECH_TIMER_FOR_ROLEPLAY;
break;
case 4:
Talk(SAY_PERSUADED4);
speechTimer = 8000;
speechTimer = SPEECH_TIMER_FOR_ROLEPLAY;
break;
case 5:
sCreatureTextMgr->SendChat(me, SAY_PERSUADED5, nullptr, CHAT_MSG_ADDON, LANG_ADDON, TEXT_RANGE_NORMAL, 0, TEAM_NEUTRAL, false, player);
speechTimer = 8000;
speechTimer = SPEECH_TIMER_FOR_ROLEPLAY;
break;
case 6:
Talk(SAY_PERSUADED6);
Unit::Kill(player, me);
speechCounter = 0;
speechCounter = SPEECH_COUNTER_PREVENT_SUCCESS_ROLEPLAY;
player->GroupEventHappens(QUEST_HOW_TO_WIN_FRIENDS, me);
return;
}
}
++speechCounter;
DoCastAOE(SPELL_THREAT_PULSE, true);
++speechCounter;
}
else
{
Talk(SAY_CRUSADER);
speechCounter = SPEECH_COUNTER_PREVENT_SUCCESS_ROLEPLAY;
}
}
else
speechTimer -= diff;
speechTimer = (speechTimer > diff) ? (speechTimer - diff) : 0;
return;
}
@@ -623,7 +641,8 @@ public:
ExecuteSpeech_Counter = 0;
PlayerGUID.Clear();
me->SetImmuneToPC(false);
me->SetReactState(REACT_PASSIVE);
me->SetImmuneToPC(true);
}
bool MeetQuestCondition(Player* player)
@@ -734,6 +753,7 @@ public:
case 9:
Talk(SAY_EXEC_TIME, player);
me->SetStandState(UNIT_STAND_STATE_KNEEL);
me->SetReactState(REACT_PASSIVE);
me->SetImmuneToPC(false);
break;
case 10:
@@ -509,63 +509,6 @@ public:
}
};
class boss_thurg : public CreatureScript
{
public:
boss_thurg()
: CreatureScript("boss_thurg")
{
}
struct boss_thurgAI : public boss_hexlord_addAI
{
boss_thurgAI(Creature* creature) : boss_hexlord_addAI(creature) { }
uint32 bloodlust_timer;
uint32 cleave_timer;
void Reset() override
{
bloodlust_timer = 15000;
cleave_timer = 10000;
boss_hexlord_addAI::Reset();
}
void UpdateAI(uint32 diff) override
{
if (!UpdateVictim())
return;
if (bloodlust_timer <= diff)
{
std::list<Creature*> templist = DoFindFriendlyMissingBuff(50, SPELL_BLOODLUST);
if (!templist.empty())
{
if (Unit* target = *(templist.begin()))
DoCast(target, SPELL_BLOODLUST, false);
}
bloodlust_timer = 12000;
}
else bloodlust_timer -= diff;
if (cleave_timer <= diff)
{
DoCastVictim(SPELL_CLEAVE, false);
cleave_timer = 12000; //3 sec cast
}
else cleave_timer -= diff;
boss_hexlord_addAI::UpdateAI(diff);
}
};
CreatureAI* GetAI(Creature* creature) const override
{
return GetZulAmanAI<boss_thurgAI>(creature);
}
};
class boss_alyson_antille : public CreatureScript
{
public:
@@ -668,331 +611,30 @@ public:
}
};
struct boss_gazakrothAI : public boss_hexlord_addAI
class spell_hexlord_unstable_affliction : public AuraScript
{
boss_gazakrothAI(Creature* creature) : boss_hexlord_addAI(creature) { }
PrepareAuraScript(spell_hexlord_unstable_affliction);
uint32 firebolt_timer;
void Reset() override
bool Validate(SpellInfo const* /*spell*/) override
{
firebolt_timer = 2000;
boss_hexlord_addAI::Reset();
return ValidateSpellInfo({ SPELL_WL_UNSTABLE_AFFL_DISPEL });
}
void AttackStart(Unit* who) override
void HandleDispel(DispelInfo* dispelInfo)
{
if (!who)
return;
if (who->isTargetableForAttack())
{
if (me->Attack(who, false))
{
me->GetMotionMaster()->MoveChase(who, 20);
me->AddThreat(who, 0.0f);
}
}
if (Unit* caster = GetCaster())
caster->CastSpell(dispelInfo->GetDispeller(), SPELL_WL_UNSTABLE_AFFL_DISPEL, true, nullptr, GetEffect(EFFECT_0));
}
void UpdateAI(uint32 diff) override
void Register() override
{
if (!UpdateVictim())
return;
if (firebolt_timer <= diff)
{
DoCastVictim(SPELL_FIREBOLT, false);
firebolt_timer = 700;
}
else firebolt_timer -= diff;
boss_hexlord_addAI::UpdateAI(diff);
}
};
class boss_lord_raadan : public CreatureScript
{
public:
boss_lord_raadan()
: CreatureScript("boss_lord_raadan")
{
}
struct boss_lord_raadanAI : public boss_hexlord_addAI
{
boss_lord_raadanAI(Creature* creature) : boss_hexlord_addAI(creature) { }
uint32 flamebreath_timer;
uint32 thunderclap_timer;
void Reset() override
{
flamebreath_timer = 8000;
thunderclap_timer = 13000;
boss_hexlord_addAI::Reset();
}
void UpdateAI(uint32 diff) override
{
if (!UpdateVictim())
return;
if (thunderclap_timer <= diff)
{
DoCastVictim(SPELL_THUNDERCLAP, false);
thunderclap_timer = 12000;
}
else thunderclap_timer -= diff;
if (flamebreath_timer <= diff)
{
DoCastVictim(SPELL_FLAME_BREATH, false);
flamebreath_timer = 12000;
}
else flamebreath_timer -= diff;
boss_hexlord_addAI::UpdateAI(diff);
}
};
CreatureAI* GetAI(Creature* creature) const override
{
return GetZulAmanAI<boss_lord_raadanAI>(creature);
}
};
class boss_darkheart : public CreatureScript
{
public:
boss_darkheart()
: CreatureScript("boss_darkheart")
{
}
struct boss_darkheartAI : public boss_hexlord_addAI
{
boss_darkheartAI(Creature* creature) : boss_hexlord_addAI(creature) { }
uint32 psychicwail_timer;
void Reset() override
{
psychicwail_timer = 8000;
boss_hexlord_addAI::Reset();
}
void UpdateAI(uint32 diff) override
{
if (!UpdateVictim())
return;
if (psychicwail_timer <= diff)
{
DoCastVictim(SPELL_PSYCHIC_WAIL, false);
psychicwail_timer = 12000;
}
else psychicwail_timer -= diff;
boss_hexlord_addAI::UpdateAI(diff);
}
};
CreatureAI* GetAI(Creature* creature) const override
{
return GetZulAmanAI<boss_darkheartAI>(creature);
}
};
class boss_slither : public CreatureScript
{
public:
boss_slither()
: CreatureScript("boss_slither")
{
}
struct boss_slitherAI : public boss_hexlord_addAI
{
boss_slitherAI(Creature* creature) : boss_hexlord_addAI(creature) { }
uint32 venomspit_timer;
void Reset() override
{
venomspit_timer = 5000;
boss_hexlord_addAI::Reset();
}
void AttackStart(Unit* who) override
{
if (!who)
return;
if (who->isTargetableForAttack())
{
if (me->Attack(who, false))
{
me->GetMotionMaster()->MoveChase(who, 20);
me->AddThreat(who, 0.0f);
}
}
}
void UpdateAI(uint32 diff) override
{
if (!UpdateVictim())
return;
if (venomspit_timer <= diff)
{
if (Unit* victim = SelectTarget(SelectTargetMethod::Random, 0, 100, true))
DoCast(victim, SPELL_VENOM_SPIT, false);
venomspit_timer = 2500;
}
else venomspit_timer -= diff;
boss_hexlord_addAI::UpdateAI(diff);
}
};
CreatureAI* GetAI(Creature* creature) const override
{
return GetZulAmanAI<boss_slitherAI>(creature);
}
};
class boss_fenstalker : public CreatureScript
{
public:
boss_fenstalker()
: CreatureScript("boss_fenstalker")
{
}
struct boss_fenstalkerAI : public boss_hexlord_addAI
{
boss_fenstalkerAI(Creature* creature) : boss_hexlord_addAI(creature) { }
uint32 volatileinf_timer;
void Reset() override
{
volatileinf_timer = 15000;
boss_hexlord_addAI::Reset();
}
void UpdateAI(uint32 diff) override
{
if (!UpdateVictim())
return;
if (volatileinf_timer <= diff)
{
// core bug
me->GetVictim()->CastSpell(me->GetVictim(), SPELL_VOLATILE_INFECTION, false);
volatileinf_timer = 12000;
}
else volatileinf_timer -= diff;
boss_hexlord_addAI::UpdateAI(diff);
}
};
CreatureAI* GetAI(Creature* creature) const override
{
return GetZulAmanAI<boss_fenstalkerAI>(creature);
}
};
class boss_koragg : public CreatureScript
{
public:
boss_koragg()
: CreatureScript("boss_koragg")
{
}
struct boss_koraggAI : public boss_hexlord_addAI
{
boss_koraggAI(Creature* creature) : boss_hexlord_addAI(creature) { }
uint32 coldstare_timer;
uint32 mightyblow_timer;
void Reset() override
{
coldstare_timer = 15000;
mightyblow_timer = 10000;
boss_hexlord_addAI::Reset();
}
void UpdateAI(uint32 diff) override
{
if (!UpdateVictim())
return;
if (mightyblow_timer <= diff)
{
DoCastVictim(SPELL_MIGHTY_BLOW, false);
mightyblow_timer = 12000;
}
if (coldstare_timer <= diff)
{
if (Unit* victim = SelectTarget(SelectTargetMethod::Random, 0, 100, true))
DoCast(victim, SPELL_COLD_STARE, false);
coldstare_timer = 12000;
}
boss_hexlord_addAI::UpdateAI(diff);
}
};
CreatureAI* GetAI(Creature* creature) const override
{
return GetZulAmanAI<boss_koraggAI>(creature);
}
};
class spell_hexlord_unstable_affliction : public SpellScriptLoader
{
public:
spell_hexlord_unstable_affliction() : SpellScriptLoader("spell_hexlord_unstable_affliction") { }
class spell_hexlord_unstable_affliction_AuraScript : public AuraScript
{
PrepareAuraScript(spell_hexlord_unstable_affliction_AuraScript);
bool Validate(SpellInfo const* /*spell*/) override
{
return ValidateSpellInfo({ SPELL_WL_UNSTABLE_AFFL_DISPEL });
}
void HandleDispel(DispelInfo* dispelInfo)
{
if (Unit* caster = GetCaster())
caster->CastSpell(dispelInfo->GetDispeller(), SPELL_WL_UNSTABLE_AFFL_DISPEL, true, nullptr, GetEffect(EFFECT_0));
}
void Register() override
{
AfterDispel += AuraDispelFn(spell_hexlord_unstable_affliction_AuraScript::HandleDispel);
}
};
AuraScript* GetAuraScript() const override
{
return new spell_hexlord_unstable_affliction_AuraScript();
AfterDispel += AuraDispelFn(spell_hexlord_unstable_affliction::HandleDispel);
}
};
void AddSC_boss_hex_lord_malacrass()
{
new boss_hexlord_malacrass();
new boss_thurg();
// new boss_gazakroth();
new boss_lord_raadan();
new boss_darkheart();
new boss_slither();
new boss_fenstalker();
new boss_koragg();
new boss_alyson_antille();
new spell_hexlord_unstable_affliction();
RegisterSpellScript(spell_hexlord_unstable_affliction);
}
@@ -346,6 +346,14 @@ struct boss_nalorakk : public BossAI
}
return true;
}
void JustDied(Unit* killer) override
{
BossAI::JustDied(killer);
Talk(SAY_DEATH);
instance->SetData(DATA_NALORAKKEVENT, DONE);
}
private:
uint8 _phase;
bool _ranIntro;
@@ -70,17 +70,17 @@ struct boss_murmur : public BossAI
_Reset();
me->SetHealth(me->CountPctFromMaxHealth(40));
me->ResetPlayerDamageReq();
CastSupressionOOC();
CastSuppressionOOC();
}
void CastSupressionOOC()
void CastSuppressionOOC()
{
me->m_Events.CancelEventGroup(GROUP_OOC_CAST);
me->m_Events.AddEventAtOffset([this] {
if (me->FindNearestCreature(NPC_CABAL_SPELLBINDER, 35.0f))
{
me->CastCustomSpell(SPELL_SUPPRESSION, SPELLVALUE_MAX_TARGETS, 5, (Unit*)nullptr, false);
CastSupressionOOC();
CastSuppressionOOC();
}
}, 3600ms, 10900ms, GROUP_OOC_CAST);
}
@@ -175,6 +175,25 @@ Position illidanTakeoffPoint = { 727.6356f, 305.62753, 359.1486f };
Position illidanLand = { 676.648f, 304.76074f, 354.18906f, 6.230825424194335937f };
Position roomCenter = { 676.021f, 305.455f, 353.582f, 3.82227f };
Position const BladesPositions[2] =
{
{ 676.226013f, 325.230988f },
{ 678.059998f, 285.220001f }
};
class ChargeTargetSelector
{
public:
ChargeTargetSelector() { }
bool operator()(Unit* unit) const
{
return unit->IsPlayer()
&& unit->GetDistance2d(BladesPositions[0].GetPositionX(), BladesPositions[0].GetPositionY()) > 25.0f
&& unit->GetDistance2d(BladesPositions[1].GetPositionX(), BladesPositions[1].GetPositionY()) > 25.0f;
}
};
struct boss_illidan_stormrage : public BossAI
{
boss_illidan_stormrage(Creature* creature) : BossAI(creature, DATA_ILLIDAN_STORMRAGE), _canTalk(true), _dying(false), _inCutscene(false), beamPosId(0) { }
@@ -196,6 +215,7 @@ struct boss_illidan_stormrage : public BossAI
me->LoadEquipment(EQUIPMENT_GLAIVES, true);
me->SetStandState(UNIT_STAND_STATE_KNEEL);
me->SetSheath(SHEATH_STATE_UNARMED);
me->SetControlled(false, UNIT_STATE_ROOT);
ScheduleHealthCheckEvent(90, [&] {
// Call for minions
@@ -604,6 +624,10 @@ struct boss_illidan_stormrage : public BossAI
BossAI::EnterEvadeMode(why);
me->DespawnOnEvade();
me->m_Events.CancelEventGroup(GROUP_BERSERK);
me->m_Events.CancelEventGroup(GROUP_PHASE_FLYING);
me->m_Events.CancelEventGroup(GROUP_DEMON_FORM);
}
void JustSummoned(Creature* summon) override
@@ -733,7 +757,7 @@ struct npc_akama_illidan : public ScriptedAI
void Reset() override
{
scheduler.CancelAll();
me->m_Events.KillAllEvents(true);
me->m_Events.KillAllEvents(false);
me->SetReactState(REACT_AGGRESSIVE);
if (instance->GetBossState(DATA_ILLIDAN_STORMRAGE) == DONE)
me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP);
@@ -1316,26 +1340,16 @@ struct npc_flame_of_azzinoth : public ScriptedAI
void JustEngagedWith(Unit* /*who*/) override
{
ScheduleTimedEvent(10s, [&] {
if (Creature* _blade = ObjectAccessor::GetCreature(*me, _bladeGUID))
{
Unit* offTank = nullptr;
if (Creature* secondBlaze = me->FindNearestCreature(NPC_BLAZE, 100.0f, true))
offTank = secondBlaze->GetVictim();
if (Unit* target = _blade->AI()->SelectTarget(SelectTargetMethod::Random, 0, -40.0f, true))
{
if (!offTank || offTank != target)
DoCast(target, SPELL_CHARGE);
}
}
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, ChargeTargetSelector()))
DoCast(target, SPELL_CHARGE);
}, 5s, 20s);
ScheduleTimedEvent(10s, 20s, [&] {
DoCastVictim(SPELL_FLAME_BLAST);
me->m_Events.AddEventAtOffset([&] {
DoCastVictim(SPELL_BLAZE);
if (Unit* victim = me->GetVictim())
victim->CastSpell(victim, SPELL_BLAZE, true);
}, 1s);
}, 15s, 20s);
}
@@ -177,6 +177,7 @@ struct boss_illidari_council : public BossAI
else if (param == ACTION_END_ENCOUNTER)
{
me->setActive(false);
me->GetMap()->UpdateEncounterState(ENCOUNTER_CREDIT_KILL_CREATURE, me->GetEntry(), me);
for (uint8 i = DATA_GATHIOS_THE_SHATTERER; i <= DATA_VERAS_DARKSHADOW; ++i)
if (Creature* member = instance->GetCreature(i))
if (member->IsAlive())
@@ -339,7 +340,7 @@ struct boss_gathios_the_shatterer : public boss_illidari_council_memberAI
if (roll_chance_i(50))
Talk(SAY_COUNCIL_SPECIAL);
DoCastSelf(SPELL_CONSECRATION);
events.ScheduleEvent(EVENT_SPELL_AURA, 30s);
events.ScheduleEvent(EVENT_SPELL_CONSECRATION, 30s);
break;
case EVENT_SPELL_HAMMER_OF_JUSTICE:
if (Unit* target = me->GetVictim())
@@ -127,6 +127,7 @@ struct boss_mother_shahraz : public BossAI
void JustDied(Unit* killer) override
{
BossAI::JustDied(killer);
me->m_Events.CancelEventGroup(GROUP_ENRAGE);
Talk(SAY_DEATH);
}
@@ -139,7 +139,8 @@ struct boss_supremus : public BossAI
DoResetThreatList();
me->AddThreat(target, 5000000.0f);
Talk(EMOTE_NEW_TARGET);
DoCastVictim(SPELL_CHARGE);
if (target->IsWithinDist(me, 40))
DoCast(target, SPELL_CHARGE);
}
context.Repeat(10s);
@@ -19,6 +19,7 @@
#include "ScriptedCreature.h"
#include "SpellScriptLoader.h"
#include "black_temple.h"
#include "Player.h"
#include "SpellScript.h"
enum Yells
@@ -39,7 +40,8 @@ enum Spells
SPELL_TIDAL_SHIELD = 39872,
SPELL_IMPALING_SPINE = 39837,
SPELL_SUMMON_IMPALING_SPINE = 39929,
SPELL_BERSERK = 26662
SPELL_BERSERK = 26662,
SPELL_REMOVE_SPINES = 40354
};
enum Events
@@ -48,6 +50,11 @@ enum Events
EVENT_ENRAGE = 2
};
enum Misc
{
ITEM_NAJENTUS_SPINE = 32408
};
struct boss_najentus : public BossAI
{
boss_najentus(Creature* creature) : BossAI(creature, DATA_HIGH_WARLORD_NAJENTUS), _canTalk(true) { }
@@ -56,6 +63,7 @@ struct boss_najentus : public BossAI
{
_Reset();
me->m_Events.CancelEventGroup(EVENT_ENRAGE);
DoCastSelf(SPELL_REMOVE_SPINES);
}
void JustEngagedWith(Unit* who) override
@@ -64,6 +72,7 @@ struct boss_najentus : public BossAI
BossAI::JustEngagedWith(who);
Talk(SAY_AGGRO);
DoCastSelf(SPELL_REMOVE_SPINES);
me->m_Events.AddEventAtOffset([this] {
Talk(SAY_ENRAGE);
@@ -113,6 +122,7 @@ struct boss_najentus : public BossAI
void JustDied(Unit* killer) override
{
BossAI::JustDied(killer);
me->m_Events.CancelEventGroup(EVENT_ENRAGE);
Talk(SAY_DEATH);
}
@@ -156,9 +166,31 @@ class spell_najentus_hurl_spine : public SpellScript
}
};
class spell_najentus_remove_spines : public SpellScript
{
PrepareSpellScript(spell_najentus_remove_spines);
void RemoveSpines()
{
if (Unit* caster = GetCaster())
{
caster->GetMap()->DoForAllPlayers([&](Player* player)
{
player->DestroyItemCount(ITEM_NAJENTUS_SPINE, 5, true);
});
}
}
void Register() override
{
OnCast += SpellCastFn(spell_najentus_remove_spines::RemoveSpines);
}
};
void AddSC_boss_najentus()
{
RegisterBlackTempleCreatureAI(boss_najentus);
RegisterSpellScript(spell_najentus_needle_spine);
RegisterSpellScript(spell_najentus_hurl_spine);
RegisterSpellScript(spell_najentus_remove_spines);
}
+1 -1
View File
@@ -936,7 +936,7 @@ class spell_dru_starfall_dummy : public SpellScript
return;
}
// Any effect which causes you to lose control of your character will supress the starfall effect.
// Any effect which causes you to lose control of your character will suppress the starfall effect.
if (caster->HasUnitState(UNIT_STATE_CONTROLLED))
return;
+3 -3
View File
@@ -506,8 +506,8 @@ enum SpellAttr3 : uint32
SPELL_ATTR3_HIDE_CHANNEL_BAR = 0x00002000, // TITLE Do not display channel bar (client only)
SPELL_ATTR3_HIDE_IN_RAID_FILTER = 0x00004000, // TITLE Honorless Target
SPELL_ATTR3_NORMAL_RANGED_ATTACK = 0x00008000, // TITLE Unknown attribute 15@Attr3 DESCRIPTION Auto Shoot, Shoot, Throw - ranged normal attack attribute?
SPELL_ATTR3_SUPRESS_CASTER_PROCS = 0x00010000, // TITLE Cannot trigger procs
SPELL_ATTR3_SUPRESS_TARGET_PROCS = 0x00020000, // TITLE No initial aggro
SPELL_ATTR3_SUPPRESS_CASTER_PROCS = 0x00010000, // TITLE Cannot trigger procs
SPELL_ATTR3_SUPPRESS_TARGET_PROCS = 0x00020000, // TITLE No initial aggro
SPELL_ATTR3_ALWAYS_HIT = 0x00040000, // TITLE Ignore hit result DESCRIPTION Spell cannot miss, or be dodged/parried/blocked
SPELL_ATTR3_INSTANT_TARGET_PROCS = 0x00080000, // TITLE Cannot trigger spells during aura proc
SPELL_ATTR3_ALLOW_AURA_WHILE_DEAD = 0x00100000, // TITLE Persists through death
@@ -550,7 +550,7 @@ enum SpellAttr4 : uint32
SPELL_ATTR4_AURA_NEVER_BOUNCES = 0x00100000, // TITLE Allow self-cast to override stronger aura (client only)
SPELL_ATTR4_ALLOW_ENETRING_ARENA = 0x00200000, // TITLE Keep when entering arena
SPELL_ATTR4_PROC_SUPPRESS_SWING_ANIM = 0x00400000, // TITLE Unknown attribute 22@Attr4 DESCRIPTION Seal of Command (42058,57770) and Gymer's Smash 55426
SPELL_ATTR4_SUPRESS_WEAPON_PROCS = 0x00800000, // TITLE Cannot trigger item spells
SPELL_ATTR4_SUPPRESS_WEAPON_PROCS = 0x00800000, // TITLE Cannot trigger item spells
SPELL_ATTR4_AUTO_RANGED_COMBAT = 0x01000000, // TITLE Unknown attribute 24@Attr4 DESCRIPTION Shoot-type spell?
SPELL_ATTR4_OWNER_POWER_SCALING = 0x02000000, // TITLE Pet Scaling aura
SPELL_ATTR4_ONLY_FLYING_AREAS = 0x04000000, // TITLE Only in Outland/Northrend
+9 -9
View File
@@ -560,8 +560,8 @@ AC_API_EXPORT EnumText EnumUtils<SpellAttr3>::ToString(SpellAttr3 value)
case SPELL_ATTR3_HIDE_CHANNEL_BAR: return { "SPELL_ATTR3_HIDE_CHANNEL_BAR", "Do not display channel bar (client only)", "" };
case SPELL_ATTR3_HIDE_IN_RAID_FILTER: return { "SPELL_ATTR3_HIDE_IN_RAID_FILTER", "Honorless Target", "" };
case SPELL_ATTR3_NORMAL_RANGED_ATTACK: return { "SPELL_ATTR3_NORMAL_RANGED_ATTACK", "Unknown attribute 15@Attr3", "Auto Shoot, Shoot, Throw - ranged normal attack attribute?" };
case SPELL_ATTR3_SUPRESS_CASTER_PROCS: return { "SPELL_ATTR3_SUPRESS_CASTER_PROCS", "Cannot trigger procs", "" };
case SPELL_ATTR3_SUPRESS_TARGET_PROCS: return { "SPELL_ATTR3_SUPRESS_TARGET_PROCS", "No initial aggro", "" };
case SPELL_ATTR3_SUPPRESS_CASTER_PROCS: return { "SPELL_ATTR3_SUPPRESS_CASTER_PROCS", "Cannot trigger procs", "" };
case SPELL_ATTR3_SUPPRESS_TARGET_PROCS: return { "SPELL_ATTR3_SUPPRESS_TARGET_PROCS", "No initial aggro", "" };
case SPELL_ATTR3_ALWAYS_HIT: return { "SPELL_ATTR3_ALWAYS_HIT", "Ignore hit result", "Spell cannot miss, or be dodged/parried/blocked" };
case SPELL_ATTR3_INSTANT_TARGET_PROCS: return { "SPELL_ATTR3_INSTANT_TARGET_PROCS", "Cannot trigger spells during aura proc", "" };
case SPELL_ATTR3_ALLOW_AURA_WHILE_DEAD: return { "SPELL_ATTR3_ALLOW_AURA_WHILE_DEAD", "Persists through death", "" };
@@ -604,8 +604,8 @@ AC_API_EXPORT SpellAttr3 EnumUtils<SpellAttr3>::FromIndex(std::size_t index)
case 13: return SPELL_ATTR3_HIDE_CHANNEL_BAR;
case 14: return SPELL_ATTR3_HIDE_IN_RAID_FILTER;
case 15: return SPELL_ATTR3_NORMAL_RANGED_ATTACK;
case 16: return SPELL_ATTR3_SUPRESS_CASTER_PROCS;
case 17: return SPELL_ATTR3_SUPRESS_TARGET_PROCS;
case 16: return SPELL_ATTR3_SUPPRESS_CASTER_PROCS;
case 17: return SPELL_ATTR3_SUPPRESS_TARGET_PROCS;
case 18: return SPELL_ATTR3_ALWAYS_HIT;
case 19: return SPELL_ATTR3_INSTANT_TARGET_PROCS;
case 20: return SPELL_ATTR3_ALLOW_AURA_WHILE_DEAD;
@@ -645,8 +645,8 @@ AC_API_EXPORT std::size_t EnumUtils<SpellAttr3>::ToIndex(SpellAttr3 value)
case SPELL_ATTR3_HIDE_CHANNEL_BAR: return 13;
case SPELL_ATTR3_HIDE_IN_RAID_FILTER: return 14;
case SPELL_ATTR3_NORMAL_RANGED_ATTACK: return 15;
case SPELL_ATTR3_SUPRESS_CASTER_PROCS: return 16;
case SPELL_ATTR3_SUPRESS_TARGET_PROCS: return 17;
case SPELL_ATTR3_SUPPRESS_CASTER_PROCS: return 16;
case SPELL_ATTR3_SUPPRESS_TARGET_PROCS: return 17;
case SPELL_ATTR3_ALWAYS_HIT: return 18;
case SPELL_ATTR3_INSTANT_TARGET_PROCS: return 19;
case SPELL_ATTR3_ALLOW_AURA_WHILE_DEAD: return 20;
@@ -696,7 +696,7 @@ AC_API_EXPORT EnumText EnumUtils<SpellAttr4>::ToString(SpellAttr4 value)
case SPELL_ATTR4_AURA_NEVER_BOUNCES: return { "SPELL_ATTR4_AURA_NEVER_BOUNCES", "Allow self-cast to override stronger aura (client only)", "" };
case SPELL_ATTR4_ALLOW_ENETRING_ARENA: return { "SPELL_ATTR4_ALLOW_ENETRING_ARENA", "Keep when entering arena", "" };
case SPELL_ATTR4_PROC_SUPPRESS_SWING_ANIM: return { "SPELL_ATTR4_PROC_SUPPRESS_SWING_ANIM", "Unknown attribute 22@Attr4", "Seal of Command (42058,57770) and Gymer's Smash 55426" };
case SPELL_ATTR4_SUPRESS_WEAPON_PROCS: return { "SPELL_ATTR4_SUPRESS_WEAPON_PROCS", "Cannot trigger item spells", "" };
case SPELL_ATTR4_SUPPRESS_WEAPON_PROCS: return { "SPELL_ATTR4_SUPPRESS_WEAPON_PROCS", "Cannot trigger item spells", "" };
case SPELL_ATTR4_AUTO_RANGED_COMBAT: return { "SPELL_ATTR4_AUTO_RANGED_COMBAT", "Unknown attribute 24@Attr4", "Shoot-type spell?" };
case SPELL_ATTR4_OWNER_POWER_SCALING: return { "SPELL_ATTR4_OWNER_POWER_SCALING", "Pet Scaling aura", "" };
case SPELL_ATTR4_ONLY_FLYING_AREAS: return { "SPELL_ATTR4_ONLY_FLYING_AREAS", "Only in Outland/Northrend", "" };
@@ -740,7 +740,7 @@ AC_API_EXPORT SpellAttr4 EnumUtils<SpellAttr4>::FromIndex(std::size_t index)
case 20: return SPELL_ATTR4_AURA_NEVER_BOUNCES;
case 21: return SPELL_ATTR4_ALLOW_ENETRING_ARENA;
case 22: return SPELL_ATTR4_PROC_SUPPRESS_SWING_ANIM;
case 23: return SPELL_ATTR4_SUPRESS_WEAPON_PROCS;
case 23: return SPELL_ATTR4_SUPPRESS_WEAPON_PROCS;
case 24: return SPELL_ATTR4_AUTO_RANGED_COMBAT;
case 25: return SPELL_ATTR4_OWNER_POWER_SCALING;
case 26: return SPELL_ATTR4_ONLY_FLYING_AREAS;
@@ -781,7 +781,7 @@ AC_API_EXPORT std::size_t EnumUtils<SpellAttr4>::ToIndex(SpellAttr4 value)
case SPELL_ATTR4_AURA_NEVER_BOUNCES: return 20;
case SPELL_ATTR4_ALLOW_ENETRING_ARENA: return 21;
case SPELL_ATTR4_PROC_SUPPRESS_SWING_ANIM: return 22;
case SPELL_ATTR4_SUPRESS_WEAPON_PROCS: return 23;
case SPELL_ATTR4_SUPPRESS_WEAPON_PROCS: return 23;
case SPELL_ATTR4_AUTO_RANGED_COMBAT: return 24;
case SPELL_ATTR4_OWNER_POWER_SCALING: return 25;
case SPELL_ATTR4_ONLY_FLYING_AREAS: return 26;
+3 -3
View File
@@ -112,7 +112,7 @@ namespace MMAP
mapID = uint32(atoi(file.substr(0, file.size() - 8).c_str()));
if (std::find(m_tiles.begin(), m_tiles.end(), mapID) == m_tiles.end())
{
m_tiles.emplace_back(MapTiles(mapID, new std::set<uint32>));
m_tiles.emplace_back(mapID, new std::set<uint32>);
count++;
}
}
@@ -124,7 +124,7 @@ namespace MMAP
mapID = uint32(atoi(file.substr(0, file.size() - 7).c_str()));
if (std::find(m_tiles.begin(), m_tiles.end(), mapID) == m_tiles.end())
{
m_tiles.emplace_back(MapTiles(mapID, new std::set<uint32>));
m_tiles.emplace_back(mapID, new std::set<uint32>);
count++;
}
}
@@ -199,7 +199,7 @@ namespace MMAP
return (*itr).m_tiles;
std::set<uint32>* tiles = new std::set<uint32>();
m_tiles.emplace_back(MapTiles(mapID, tiles));
m_tiles.emplace_back(mapID, tiles);
return tiles;
}
+1 -1
View File
@@ -47,7 +47,7 @@ namespace MMAP
uint32 m_mapId;
std::set<uint32>* m_tiles{nullptr};
bool operator==(uint32 id)
bool operator==(uint32 id) const
{
return m_mapId == id;
}
+1 -1
View File
@@ -90,7 +90,7 @@ namespace MMAP
do
{
if ((findFileInfo.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) == 0)
fileList.push_back(std::string(findFileInfo.cFileName));
fileList.emplace_back(findFileInfo.cFileName);
} while (FindNextFile(hFind, &findFileInfo));
FindClose(hFind);