Merge branch 'master' into Playerbot

This commit is contained in:
Yunfan Li
2024-06-07 22:28:03 +08:00
23 changed files with 18805 additions and 250 deletions

38
.github/labeler.yml vendored
View File

@@ -1,54 +1,54 @@
file-cpp:
- changed-files:
- any-glob-to-any-file:
- src/**/*.cpp
- src/**/*.h
- deps/**/*.cpp
- deps/**/*.h
- 'src/**/*.cpp'
- 'src/**/*.h'
- 'deps/**/*.cpp'
- 'deps/**/*.h'
DB:
- changed-files:
- any-glob-to-any-file: data/**/*.sql
- any-glob-to-any-file: 'data/**/*.sql'
CORE:
- all:
- changed-files:
- any-glob-to-any-file: 'src/**/*'
- all-globs-to-all-files:
- '!src/server/scripts/*'
- '!src/tests/*'
- '!src/server/scripts/**/*'
- '!src/test/**/*'
Script:
- changed-files:
- any-glob-to-any-file:
- src/server/scripts/**/*.cpp
- src/server/scripts/**/*.h
- 'src/server/scripts/**/*.cpp'
- 'src/server/scripts/**/*.h'
UnitTests:
- changed-files:
- any-glob-to-any-file: src/test/**/*
- any-glob-to-any-file: 'src/test/**/*'
Documentation:
- changed-files:
- any-glob-to-any-file: ./*.md
- any-glob-to-any-file: '*.md'
Bash:
- changed-files:
- any-glob-to-any-file:
- ./*.sh
- apps/**/*.sh
- conf/**/*.sh
- deps/**/*.sh
- modules/**/*.sh
- '*.sh'
- 'apps/**/*.sh'
- 'conf/**/*.sh'
- 'deps/**/*.sh'
- 'modules/**/*.sh'
CMake:
- changed-files:
- any-glob-to-any-file: ./*.cmake
- any-glob-to-any-file: '*.cmake'
Workflow:
- changed-files:
- any-glob-to-any-file: .github/workflows/*
- any-glob-to-any-file: '.github/workflows/*'
Batch:
- changed-files:
- any-glob-to-any-file: apps/**/*.bat
- any-glob-to-any-file: 'apps/**/*.bat'

View File

@@ -19,22 +19,6 @@ jobs:
fail-fast: false
matrix:
include:
- os: ubuntu-20.04
compiler:
CC: gcc-10
CXX: g++-10
- os: ubuntu-20.04
compiler:
CC: clang-12
CXX: clang++-12
- os: ubuntu-22.04
compiler:
CC: clang-15
CXX: clang++-15
- os: ubuntu-22.04
compiler:
CC: gcc-12
CXX: g++-12
- os: ubuntu-24.04
compiler:
CC: clang-18

View File

@@ -16,30 +16,10 @@ jobs:
fail-fast: false
matrix:
include:
- os: ubuntu-20.04
compiler:
CC: gcc-10
CXX: g++-10
- os: ubuntu-20.04
compiler:
CC: clang-12
CXX: clang++-12
- os: ubuntu-22.04
compiler:
CC: clang-15
CXX: clang++-15
- os: ubuntu-22.04
compiler:
CC: gcc-12
CXX: g++-12
- os: ubuntu-24.04
compiler:
CC: clang-18
CXX: clang++-18
- os: ubuntu-24.04
compiler:
CC: gcc-14
CXX: g++-14
runs-on: ${{ matrix.os }}
name: ${{ matrix.os }}-${{ matrix.compiler }}-pch
env:

View File

@@ -8,7 +8,7 @@ jobs:
import-pending:
strategy:
fail-fast: false
runs-on: ubuntu-20.04
runs-on: ubuntu-24.04
permissions: write-all
if: github.repository == 'azerothcore/azerothcore-wotlk' && !github.event.pull_request.draft
steps:

View File

@@ -4,7 +4,7 @@ on:
jobs:
triage:
runs-on: ubuntu-20.04
runs-on: ubuntu-24.04
permissions: write-all
if: github.repository == 'azerothcore/azerothcore-wotlk'
steps:

View File

@@ -15,7 +15,7 @@ jobs:
fail-fast: false
matrix:
# the result of the matrix will be the combination of all attributes, so we get os*compiler builds
os: [ubuntu-20.04]
os: [ubuntu-24.04]
compiler: [clang]
runs-on: ${{ matrix.os }}
name: ${{ matrix.os }}-${{ matrix.compiler }}

View File

@@ -0,0 +1,198 @@
-- DB update 2024_06_02_00 -> 2024_06_06_00
--
UPDATE `conditions` SET `Comment`='Target Non-Combat Pet - Ancona Chicken' WHERE `SourceTypeOrReferenceId`=13 AND `SourceGroup`=1 AND `SourceEntry`=48649 AND `ConditionValue2`=7394;
UPDATE `conditions` SET `Comment`='Target Non-Combat Pet - Azure Whelpling' WHERE `SourceTypeOrReferenceId`=13 AND `SourceGroup`=1 AND `SourceEntry`=48649 AND `ConditionValue2`=7547;
UPDATE `conditions` SET `Comment`='Target Non-Combat Pet - Black Kingsnake' WHERE `SourceTypeOrReferenceId`=13 AND `SourceGroup`=1 AND `SourceEntry`=48649 AND `ConditionValue2`=7565;
UPDATE `conditions` SET `Comment`='Target Non-Combat Pet - Black Tabby Cat' WHERE `SourceTypeOrReferenceId`=13 AND `SourceGroup`=1 AND `SourceEntry`=48649 AND `ConditionValue2`=7383;
UPDATE `conditions` SET `Comment`='Target Non-Combat Pet - Blue Dragonhawk Hatchling' WHERE `SourceTypeOrReferenceId`=13 AND `SourceGroup`=1 AND `SourceEntry`=48649 AND `ConditionValue2`=21056;
UPDATE `conditions` SET `Comment`='Target Non-Combat Pet - Blue Moth' WHERE `SourceTypeOrReferenceId`=13 AND `SourceGroup`=1 AND `SourceEntry`=48649 AND `ConditionValue2`=21010;
UPDATE `conditions` SET `Comment`='Target Non-Combat Pet - Bombay Cat' WHERE `SourceTypeOrReferenceId`=13 AND `SourceGroup`=1 AND `SourceEntry`=48649 AND `ConditionValue2`=7385;
UPDATE `conditions` SET `Comment`='Target Non-Combat Pet - Brown Prairie Dog' WHERE `SourceTypeOrReferenceId`=13 AND `SourceGroup`=1 AND `SourceEntry`=48649 AND `ConditionValue2`=14421;
UPDATE `conditions` SET `Comment`='Target Non-Combat Pet - Brown Rabbit' WHERE `SourceTypeOrReferenceId`=13 AND `SourceGroup`=1 AND `SourceEntry`=48649 AND `ConditionValue2`=20472;
UPDATE `conditions` SET `Comment`='Target Non-Combat Pet - Brown Snake' WHERE `SourceTypeOrReferenceId`=13 AND `SourceGroup`=1 AND `SourceEntry`=48649 AND `ConditionValue2`=7562;
UPDATE `conditions` SET `Comment`='Target Non-Combat Pet - Cobra Hatchling' WHERE `SourceTypeOrReferenceId`=13 AND `SourceGroup`=1 AND `SourceEntry`=48649 AND `ConditionValue2`=32591;
UPDATE `conditions` SET `Comment`='Target Non-Combat Pet - Cockroach' WHERE `SourceTypeOrReferenceId`=13 AND `SourceGroup`=1 AND `SourceEntry`=48649 AND `ConditionValue2`=7395;
UPDATE `conditions` SET `Comment`='Target Non-Combat Pet - Cornish Rex Cat' WHERE `SourceTypeOrReferenceId`=13 AND `SourceGroup`=1 AND `SourceEntry`=48649 AND `ConditionValue2`=7384;
UPDATE `conditions` SET `Comment`='Target Non-Combat Pet - Crimson Snake' WHERE `SourceTypeOrReferenceId`=13 AND `SourceGroup`=1 AND `SourceEntry`=48649 AND `ConditionValue2`=7567;
UPDATE `conditions` SET `Comment`='Target Non-Combat Pet - Crimson Whelpling' WHERE `SourceTypeOrReferenceId`=13 AND `SourceGroup`=1 AND `SourceEntry`=48649 AND `ConditionValue2`=7544;
UPDATE `conditions` SET `Comment`='Target Non-Combat Pet - Dark Whelpling' WHERE `SourceTypeOrReferenceId`=13 AND `SourceGroup`=1 AND `SourceEntry`=48649 AND `ConditionValue2`=7543;
UPDATE `conditions` SET `Comment`='Target Non-Combat Pet - Egbert' WHERE `SourceTypeOrReferenceId`=13 AND `SourceGroup`=1 AND `SourceEntry`=48649 AND `ConditionValue2`=23258;
UPDATE `conditions` SET `Comment`='Target Non-Combat Pet - Emerald Whelpling' WHERE `SourceTypeOrReferenceId`=13 AND `SourceGroup`=1 AND `SourceEntry`=48649 AND `ConditionValue2`=7545;
UPDATE `conditions` SET `Comment`='Target Non-Combat Pet - Frosty' WHERE `SourceTypeOrReferenceId`=13 AND `SourceGroup`=1 AND `SourceEntry`=48649 AND `ConditionValue2`=28883;
UPDATE `conditions` SET `Comment`='Target Non-Combat Pet - Ghostly Skull' WHERE `SourceTypeOrReferenceId`=13 AND `SourceGroup`=1 AND `SourceEntry`=48649 AND `ConditionValue2`=29147;
UPDATE `conditions` SET `Comment`='Target Non-Combat Pet - Golden Dragonhawk Hatchling' WHERE `SourceTypeOrReferenceId`=13 AND `SourceGroup`=1 AND `SourceEntry`=48649 AND `ConditionValue2`=21055;
UPDATE `conditions` SET `Comment`='Target Non-Combat Pet - Great Horned Owl' WHERE `SourceTypeOrReferenceId`=13 AND `SourceGroup`=1 AND `SourceEntry`=48649 AND `ConditionValue2`=7553;
UPDATE `conditions` SET `Comment`='Target Non-Combat Pet - Green Wing Macaw' WHERE `SourceTypeOrReferenceId`=13 AND `SourceGroup`=1 AND `SourceEntry`=48649 AND `ConditionValue2`=7387;
UPDATE `conditions` SET `Comment`='Target Non-Combat Pet - Hawk Owl' WHERE `SourceTypeOrReferenceId`=13 AND `SourceGroup`=1 AND `SourceEntry`=48649 AND `ConditionValue2`=7555;
UPDATE `conditions` SET `Comment`='Target Non-Combat Pet - Hyacinth Macaw' WHERE `SourceTypeOrReferenceId`=13 AND `SourceGroup`=1 AND `SourceEntry`=48649 AND `ConditionValue2`=7391;
UPDATE `conditions` SET `Comment`='Target Non-Combat Pet - Jubling' WHERE `SourceTypeOrReferenceId`=13 AND `SourceGroup`=1 AND `SourceEntry`=48649 AND `ConditionValue2`=14878;
UPDATE `conditions` SET `Comment`='Target Non-Combat Pet - Lifelike Toad' WHERE `SourceTypeOrReferenceId`=13 AND `SourceGroup`=1 AND `SourceEntry`=48649 AND `ConditionValue2`=12419;
UPDATE `conditions` SET `Comment`='Target Non-Combat Pet - Magical Crawdad' WHERE `SourceTypeOrReferenceId`=13 AND `SourceGroup`=1 AND `SourceEntry`=48649 AND `ConditionValue2`=18839;
UPDATE `conditions` SET `Comment`='Target Non-Combat Pet - Mana Wyrmling' WHERE `SourceTypeOrReferenceId`=13 AND `SourceGroup`=1 AND `SourceEntry`=48649 AND `ConditionValue2`=20408;
UPDATE `conditions` SET `Comment`='Target Non-Combat Pet - Mechanical Chicken' WHERE `SourceTypeOrReferenceId`=13 AND `SourceGroup`=1 AND `SourceEntry`=48649 AND `ConditionValue2`=8376;
UPDATE `conditions` SET `Comment`='Target Non-Combat Pet - Mechanical Squirrel' WHERE `SourceTypeOrReferenceId`=13 AND `SourceGroup`=1 AND `SourceEntry`=48649 AND `ConditionValue2`=2671;
UPDATE `conditions` SET `Comment`='Target Non-Combat Pet - Miniwing' WHERE `SourceTypeOrReferenceId`=13 AND `SourceGroup`=1 AND `SourceEntry`=48649 AND `ConditionValue2`=22445;
UPDATE `conditions` SET `Comment`='Target Non-Combat Pet - Orange Tabby Cat' WHERE `SourceTypeOrReferenceId`=13 AND `SourceGroup`=1 AND `SourceEntry`=48649 AND `ConditionValue2`=7382;
UPDATE `conditions` SET `Comment`='Target Non-Combat Pet - Peddlefeet' WHERE `SourceTypeOrReferenceId`=13 AND `SourceGroup`=1 AND `SourceEntry`=48649 AND `ConditionValue2`=16085;
UPDATE `conditions` SET `Comment`='Target Non-Combat Pet - Pengu' WHERE `SourceTypeOrReferenceId`=13 AND `SourceGroup`=1 AND `SourceEntry`=48649 AND `ConditionValue2`=32595;
UPDATE `conditions` SET `Comment`='Target Non-Combat Pet - Proto-Drake Whelp' WHERE `SourceTypeOrReferenceId`=13 AND `SourceGroup`=1 AND `SourceEntry`=48649 AND `ConditionValue2`=32592;
UPDATE `conditions` SET `Comment`='Target Non-Combat Pet - Red Dragonhawk Hatchling' WHERE `SourceTypeOrReferenceId`=13 AND `SourceGroup`=1 AND `SourceEntry`=48649 AND `ConditionValue2`=21064;
UPDATE `conditions` SET `Comment`='Target Non-Combat Pet - Red Moth' WHERE `SourceTypeOrReferenceId`=13 AND `SourceGroup`=1 AND `SourceEntry`=48649 AND `ConditionValue2`=21009;
UPDATE `conditions` SET `Comment`='Target Non-Combat Pet - Senegal' WHERE `SourceTypeOrReferenceId`=13 AND `SourceGroup`=1 AND `SourceEntry`=48649 AND `ConditionValue2`=7389;
UPDATE `conditions` SET `Comment`='Target Non-Combat Pet - Siamese Cat' WHERE `SourceTypeOrReferenceId`=13 AND `SourceGroup`=1 AND `SourceEntry`=48649 AND `ConditionValue2`=7380;
UPDATE `conditions` SET `Comment`='Target Non-Combat Pet - Silver Dragonhawk Hatchling' WHERE `SourceTypeOrReferenceId`=13 AND `SourceGroup`=1 AND `SourceEntry`=48649 AND `ConditionValue2`=21063;
UPDATE `conditions` SET `Comment`='Target Non-Combat Pet - Silver Tabby Cat' WHERE `SourceTypeOrReferenceId`=13 AND `SourceGroup`=1 AND `SourceEntry`=48649 AND `ConditionValue2`=7381;
UPDATE `conditions` SET `Comment`='Target Non-Combat Pet - Sinister Squashling' WHERE `SourceTypeOrReferenceId`=13 AND `SourceGroup`=1 AND `SourceEntry`=48649 AND `ConditionValue2`=23909;
UPDATE `conditions` SET `Comment`='Target Non-Combat Pet - Smolderweb Hatchling' WHERE `SourceTypeOrReferenceId`=13 AND `SourceGroup`=1 AND `SourceEntry`=48649 AND `ConditionValue2`=10598;
UPDATE `conditions` SET `Comment`='Target Non-Combat Pet - Snowshoe Rabbit' WHERE `SourceTypeOrReferenceId`=13 AND `SourceGroup`=1 AND `SourceEntry`=48649 AND `ConditionValue2`=7560;
UPDATE `conditions` SET `Comment`='Target Non-Combat Pet - Speedy' WHERE `SourceTypeOrReferenceId`=13 AND `SourceGroup`=1 AND `SourceEntry`=48649 AND `ConditionValue2`=16547;
UPDATE `conditions` SET `Comment`='Target Non-Combat Pet - Spirit of Summer' WHERE `SourceTypeOrReferenceId`=13 AND `SourceGroup`=1 AND `SourceEntry`=48649 AND `ConditionValue2`=16701;
UPDATE `conditions` SET `Comment`='Target Non-Combat Pet - Sprite Darter Hatchling' WHERE `SourceTypeOrReferenceId`=13 AND `SourceGroup`=1 AND `SourceEntry`=48649 AND `ConditionValue2`=9662;
UPDATE `conditions` SET `Comment`='Target Non-Combat Pet - Stinker' WHERE `SourceTypeOrReferenceId`=13 AND `SourceGroup`=1 AND `SourceEntry`=48649 AND `ConditionValue2`=23274;
UPDATE `conditions` SET `Comment`='Target Non-Combat Pet - Tickbird Hatchling' WHERE `SourceTypeOrReferenceId`=13 AND `SourceGroup`=1 AND `SourceEntry`=48649 AND `ConditionValue2`=32589;
UPDATE `conditions` SET `Comment`='Target Non-Combat Pet - Tree Frog' WHERE `SourceTypeOrReferenceId`=13 AND `SourceGroup`=1 AND `SourceEntry`=48649 AND `ConditionValue2`=7549;
UPDATE `conditions` SET `Comment`='Target Non-Combat Pet - Westfall Chicken' WHERE `SourceTypeOrReferenceId`=13 AND `SourceGroup`=1 AND `SourceEntry`=48649 AND `ConditionValue2`=30379;
UPDATE `conditions` SET `Comment`='Target Non-Combat Pet - Whiskers the Rat' WHERE `SourceTypeOrReferenceId`=13 AND `SourceGroup`=1 AND `SourceEntry`=48649 AND `ConditionValue2`=16549;
UPDATE `conditions` SET `Comment`='Target Non-Combat Pet - White Kitten' WHERE `SourceTypeOrReferenceId`=13 AND `SourceGroup`=1 AND `SourceEntry`=48649 AND `ConditionValue2`=7386;
UPDATE `conditions` SET `Comment`='Target Non-Combat Pet - White Moth' WHERE `SourceTypeOrReferenceId`=13 AND `SourceGroup`=1 AND `SourceEntry`=48649 AND `ConditionValue2`=21018;
UPDATE `conditions` SET `Comment`='Target Non-Combat Pet - White Tickbird Hatchling' WHERE `SourceTypeOrReferenceId`=13 AND `SourceGroup`=1 AND `SourceEntry`=48649 AND `ConditionValue2`=32590;
UPDATE `conditions` SET `Comment`='Target Non-Combat Pet - Wood Frog' WHERE `SourceTypeOrReferenceId`=13 AND `SourceGroup`=1 AND `SourceEntry`=48649 AND `ConditionValue2`=7550;
UPDATE `conditions` SET `Comment`='Target Non-Combat Pet - Worg Pup' WHERE `SourceTypeOrReferenceId`=13 AND `SourceGroup`=1 AND `SourceEntry`=48649 AND `ConditionValue2`=10259;
UPDATE `conditions` SET `Comment`='Target Non-Combat Pet - Yellow Moth' WHERE `SourceTypeOrReferenceId`=13 AND `SourceGroup`=1 AND `SourceEntry`=48649 AND `ConditionValue2`=21008;
DELETE FROM `conditions` WHERE (`SourceTypeOrReferenceId` = 13) AND (`SourceGroup` = 1) AND (`SourceEntry` = 48649)
AND (`ConditionValue2` IN (14633,33205,14143,32841,18152,15661,23234,11236,15356,7563,7546,34364,40624,31128,26056,7390,32591,7388,36871,7558,28267,33530,33529,35396,7551,35395,15429,33194,33198,7570,33200,27346,27914,7548,9256,21076,40198,31575,25146,15360,7569,34694,36908,35400,16069,14632,17255,7552,35156,34930,32643,35387,36979,9657,40703,32939,23114,23198,15358,34770,35155,11326,42078,29089,24480,29726,16548,24389,33219,15361,33578,40721,15186,28470,18381,35399,35468,36607,11325,36911,27849,23266,37865,9656,29482,26119,15359,24753,27865,32818,16456,7392,15357,21266,35397,35398,35394,7568,25109,34531,15944,7566,25706,33810,34724,25147,26050,7554,36511,27217,7559,32791,33226,33188,16445,27196,27197,14755,35157,14756,25062,33197,15699,24388,38374,28513,7393,17254,23231,36909,15706,22943,36910));
INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
(13, 1, 48649, 0, 59, 31, 0, 3, 14633, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Albino Snapjaw'),
(13, 1, 48649, 0, 60, 31, 0, 3, 33205, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Ammen Vale Lashling'),
(13, 1, 48649, 0, 61, 31, 0, 3, 14143, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Ar\'lia'),
(13, 1, 48649, 0, 62, 31, 0, 3, 32841, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Baby Blizzard Bear'),
(13, 1, 48649, 0, 63, 31, 0, 3, 18152, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Baby Murloc'),
(13, 1, 48649, 0, 64, 31, 0, 3, 15661, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Baby shark'),
(13, 1, 48649, 0, 65, 31, 0, 3, 23234, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Bananas'),
(13, 1, 48649, 0, 66, 31, 0, 3, 11236, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Blood Parrot'),
(13, 1, 48649, 0, 67, 31, 0, 3, 15356, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Blue Baby Murloc'),
(13, 1, 48649, 0, 68, 31, 0, 3, 7563, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Blue Racer'),
(13, 1, 48649, 0, 69, 31, 0, 3, 7546, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Bronze Whelpling'),
(13, 1, 48649, 0, 70, 31, 0, 3, 34364, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Calico Cat'),
(13, 1, 48649, 0, 71, 31, 0, 3, 40624, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Celestial Dragon'),
(13, 1, 48649, 0, 72, 31, 0, 3, 31128, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Chilly'),
(13, 1, 48649, 0, 73, 31, 0, 3, 26056, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Chuck'),
(13, 1, 48649, 0, 74, 31, 0, 3, 7390, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Cockatiel'),
(13, 1, 48649, 0, 75, 31, 0, 3, 32591, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Cobra Hatchling'),
(13, 1, 48649, 0, 76, 31, 0, 3, 7388, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Cockatoo'),
(13, 1, 48649, 0, 77, 31, 0, 3, 36871, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Core Hound Pup'),
(13, 1, 48649, 0, 78, 31, 0, 3, 7558, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Cottontail Rabbit'),
(13, 1, 48649, 0, 79, 31, 0, 3, 28267, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Coyote Spirit'),
(13, 1, 48649, 0, 80, 31, 0, 3, 33530, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Curious Oracle Hatchling'),
(13, 1, 48649, 0, 81, 31, 0, 3, 33529, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Curious Wolvar Pup'),
(13, 1, 48649, 0, 82, 31, 0, 3, 35396, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Darting Hatchling'),
(13, 1, 48649, 0, 83, 31, 0, 3, 7551, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Dart Frog'),
(13, 1, 48649, 0, 84, 31, 0, 3, 35395, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Deviate Hatchling'),
(13, 1, 48649, 0, 85, 31, 0, 3, 15429, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Disgusting Oozeling'),
(13, 1, 48649, 0, 86, 31, 0, 3, 33194, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Dun Morogh Cub'),
(13, 1, 48649, 0, 87, 31, 0, 3, 33198, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Durotar Scorpion'),
(13, 1, 48649, 0, 88, 31, 0, 3, 7570, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Elven Wisp'),
(13, 1, 48649, 0, 89, 31, 0, 3, 33200, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Elwynn Lamb'),
(13, 1, 48649, 0, 90, 31, 0, 3, 27346, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Essence of Competition'),
(13, 1, 48649, 0, 91, 31, 0, 3, 27914, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Ethereal Soul-Trader'),
(13, 1, 48649, 0, 92, 31, 0, 3, 7548, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Faeling'),
(13, 1, 48649, 0, 93, 31, 0, 3, 9256, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Farm Chicken'),
(13, 1, 48649, 0, 94, 31, 0, 3, 21076, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Firefly'),
(13, 1, 48649, 0, 95, 31, 0, 3, 40198, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Frigid Frostling'),
(13, 1, 48649, 0, 96, 31, 0, 3, 31575, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Giant Sewer Rat'),
(13, 1, 48649, 0, 97, 31, 0, 3, 25146, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Golden Pig'),
(13, 1, 48649, 0, 98, 31, 0, 3, 15360, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Green Baby Murloc'),
(13, 1, 48649, 0, 99, 31, 0, 3, 7569, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Green Water snake'),
(13, 1, 48649, 0, 100, 31, 0, 3, 34694, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Grunty'),
(13, 1, 48649, 0, 101, 31, 0, 3, 36908, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Gryphon Hatchling'),
(13, 1, 48649, 0, 102, 31, 0, 3, 35400, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Gundrak Hatchling'),
(13, 1, 48649, 0, 103, 31, 0, 3, 16069, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Gurky'),
(13, 1, 48649, 0, 104, 31, 0, 3, 14632, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Hawksbill Snapjaw'),
(13, 1, 48649, 0, 105, 31, 0, 3, 17255, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Hippogryph Hatchling'),
(13, 1, 48649, 0, 106, 31, 0, 3, 7552, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Island Frog'),
(13, 1, 48649, 0, 107, 31, 0, 3, 35156, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Jade Panda'),
(13, 1, 48649, 0, 108, 31, 0, 3, 34930, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Jade Tiger'),
(13, 1, 48649, 0, 109, 31, 0, 3, 32643, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Kirin Tor Familiar'),
(13, 1, 48649, 0, 110, 31, 0, 3, 35387, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Leaping Hatchling'),
(13, 1, 48649, 0, 111, 31, 0, 3, 36979, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Lil\' K.T.'),
(13, 1, 48649, 0, 112, 31, 0, 3, 9657, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Lil\' Smoky'),
(13, 1, 48649, 0, 113, 31, 0, 3, 40703, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Lil\' XT'),
(13, 1, 48649, 0, 114, 31, 0, 3, 32939, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Little Fawn'),
(13, 1, 48649, 0, 115, 31, 0, 3, 23114, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Lucky'),
(13, 1, 48649, 0, 116, 31, 0, 3, 23198, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Lucky'),
(13, 1, 48649, 0, 117, 31, 0, 3, 15358, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Lucky'),
(13, 1, 48649, 0, 118, 31, 0, 3, 34770, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Macabre Marionette'),
(13, 1, 48649, 0, 119, 31, 0, 3, 35155, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Mana Spirit'),
(13, 1, 48649, 0, 120, 31, 0, 3, 11326, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Mini Diablo'),
(13, 1, 48649, 0, 121, 31, 0, 3, 42078, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Mini Thor'),
(13, 1, 48649, 0, 122, 31, 0, 3, 29089, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Mini Tyrael'),
(13, 1, 48649, 0, 123, 31, 0, 3, 24480, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Mojo'),
(13, 1, 48649, 0, 124, 31, 0, 3, 29726, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Mr. Chilly'),
(13, 1, 48649, 0, 125, 31, 0, 3, 16548, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Mr. Wiggles'),
(13, 1, 48649, 0, 126, 31, 0, 3, 24389, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Muckbreath'),
(13, 1, 48649, 0, 127, 31, 0, 3, 33219, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Mulgore Hatchling'),
(13, 1, 48649, 0, 128, 31, 0, 3, 15361, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Murki'),
(13, 1, 48649, 0, 129, 31, 0, 3, 33578, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Murkimus the Gladiator'),
(13, 1, 48649, 0, 130, 31, 0, 3, 40721, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Murkimus the Gladiator'),
(13, 1, 48649, 0, 131, 31, 0, 3, 15186, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Murky'),
(13, 1, 48649, 0, 132, 31, 0, 3, 28470, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Nether Ray Fry'),
(13, 1, 48649, 0, 133, 31, 0, 3, 18381, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Netherwhelp'),
(13, 1, 48649, 0, 134, 31, 0, 3, 35399, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Obsidian Hatchling'),
(13, 1, 48649, 0, 135, 31, 0, 3, 35468, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Onyx Panther'),
(13, 1, 48649, 0, 136, 31, 0, 3, 36607, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Onyxian Whelpling'),
(13, 1, 48649, 0, 137, 31, 0, 3, 11325, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Panda Cub'),
(13, 1, 48649, 0, 138, 31, 0, 3, 36911, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Pandaren Monk'),
(13, 1, 48649, 0, 139, 31, 0, 3, 27849, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Patchy'),
(13, 1, 48649, 0, 140, 31, 0, 3, 23266, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Peanut'),
(13, 1, 48649, 0, 141, 31, 0, 3, 37865, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Perky Pug'),
(13, 1, 48649, 0, 142, 31, 0, 3, 9656, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Pet Bombling'),
(13, 1, 48649, 0, 143, 31, 0, 3, 29482, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Pet Skunk'),
(13, 1, 48649, 0, 144, 31, 0, 3, 26119, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Phoenix Hatchling'),
(13, 1, 48649, 0, 145, 31, 0, 3, 15359, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Pink Baby Murloc'),
(13, 1, 48649, 0, 146, 31, 0, 3, 24753, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Pint-Sized Pink Pachyderm'),
(13, 1, 48649, 0, 147, 31, 0, 3, 27865, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Plagued pet'),
(13, 1, 48649, 0, 148, 31, 0, 3, 32818, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Plump Turkey'),
(13, 1, 48649, 0, 149, 31, 0, 3, 16456, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Poley'),
(13, 1, 48649, 0, 150, 31, 0, 3, 7392, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Prairie Chicken'),
(13, 1, 48649, 0, 151, 31, 0, 3, 15357, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Purple Baby Murloc'),
(13, 1, 48649, 0, 152, 31, 0, 3, 21266, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Ravager Hatchling'),
(13, 1, 48649, 0, 153, 31, 0, 3, 35397, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Ravasaur Hatchling'),
(13, 1, 48649, 0, 154, 31, 0, 3, 35398, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Razormaw Hatchling'),
(13, 1, 48649, 0, 155, 31, 0, 3, 35394, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Razzashi Hatchling'),
(13, 1, 48649, 0, 156, 31, 0, 3, 7568, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Ribbon Snake'),
(13, 1, 48649, 0, 157, 31, 0, 3, 25109, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Rocket Chicken'),
(13, 1, 48649, 0, 158, 31, 0, 3, 34531, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Roo'),
(13, 1, 48649, 0, 159, 31, 0, 3, 15944, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Ruby Serpent'),
(13, 1, 48649, 0, 160, 31, 0, 3, 7566, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Scarlet Snake'),
(13, 1, 48649, 0, 161, 31, 0, 3, 25706, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Scorchling'),
(13, 1, 48649, 0, 162, 31, 0, 3, 33810, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Sen\'jin Fetish'),
(13, 1, 48649, 0, 163, 31, 0, 3, 34724, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Shimmering Wyrmling'),
(13, 1, 48649, 0, 164, 31, 0, 3, 25147, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Silver Pig'),
(13, 1, 48649, 0, 165, 31, 0, 3, 26050, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Snarly'),
(13, 1, 48649, 0, 166, 31, 0, 3, 7554, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Snowy Owl'),
(13, 1, 48649, 0, 167, 31, 0, 3, 36511, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Spectral Tiger Cub'),
(13, 1, 48649, 0, 168, 31, 0, 3, 27217, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Spirit of Competition'),
(13, 1, 48649, 0, 169, 31, 0, 3, 7559, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Spotted Rabbit'),
(13, 1, 48649, 0, 170, 31, 0, 3, 32791, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Spring Rabbit'),
(13, 1, 48649, 0, 171, 31, 0, 3, 33226, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Strand Scrawler'),
(13, 1, 48649, 0, 172, 31, 0, 3, 33188, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Teldrassil Sproutling'),
(13, 1, 48649, 0, 173, 31, 0, 3, 16445, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Terky'),
(13, 1, 48649, 0, 174, 31, 0, 3, 27196, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Tiny Blue Dragon'),
(13, 1, 48649, 0, 175, 31, 0, 3, 27197, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Tiny Gold Dragon'),
(13, 1, 48649, 0, 176, 31, 0, 3, 14755, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Tiny Green Dragon'),
(13, 1, 48649, 0, 177, 31, 0, 3, 35157, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Tiny Jade Dragon'),
(13, 1, 48649, 0, 178, 31, 0, 3, 14756, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Tiny Red Dragon'),
(13, 1, 48649, 0, 179, 31, 0, 3, 25062, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Tiny Sporebat'),
(13, 1, 48649, 0, 180, 31, 0, 3, 33197, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Tirisfal Batling'),
(13, 1, 48649, 0, 181, 31, 0, 3, 15699, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Tranquil Mechanical Yeti'),
(13, 1, 48649, 0, 182, 31, 0, 3, 24388, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Toothy'),
(13, 1, 48649, 0, 183, 31, 0, 3, 38374, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Toxic Wasteling'),
(13, 1, 48649, 0, 184, 31, 0, 3, 28513, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Vampiric Batling'),
(13, 1, 48649, 0, 185, 31, 0, 3, 7393, 0, 0, 0, 0, '', 'Target Non-Combat Pet - White Plymouth Rock'),
(13, 1, 48649, 0, 186, 31, 0, 3, 17254, 0, 0, 0, 0, '', 'Target Non-Combat Pet - White Tiger Cub'),
(13, 1, 48649, 0, 187, 31, 0, 3, 23231, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Willy'),
(13, 1, 48649, 0, 188, 31, 0, 3, 36909, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Wind Riber Cub'),
(13, 1, 48649, 0, 189, 31, 0, 3, 15706, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Winter Reindeer'),
(13, 1, 48649, 0, 190, 31, 0, 3, 22943, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Wolpertinger'),
(13, 1, 48649, 0, 191, 31, 0, 3, 36910, 0, 0, 0, 0, '', 'Target Non-Combat Pet - Zipao Tiger');

View File

@@ -0,0 +1,128 @@
-- DB update 2024_06_06_00 -> 2024_06_07_00
DELETE FROM `waypoints` WHERE `entry`=104350;
INSERT INTO `waypoints` VALUES
(104350, 1, 3684.35, -3605.47, 137.872, NULL, 0, NULL),
(104350, 2, 3700.3, -3604.13, 139.578, NULL, 0, NULL),
(104350, 3, 3723.08, -3600.48, 142.359, NULL, 0, NULL),
(104350, 4, 3723.08, -3600.48, 142.359, NULL, 0, NULL);
UPDATE `creature_template` SET `AIName` = 'SmartAI' WHERE `entry` = 10435;
DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 10435);
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
(10435, 0, 0, 0, 0, 0, 100, 0, 3000, 5000, 2000, 6000, 0, 0, 11, 16791, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Magistrate Barthilas - In Combat - Cast \'Furious Anger\''),
(10435, 0, 1, 0, 0, 0, 100, 0, 6000, 10000, 12000, 21000, 0, 0, 11, 10887, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Magistrate Barthilas - In Combat - Cast \'Crowd Pummel\''),
(10435, 0, 2, 0, 0, 0, 100, 0, 11000, 12000, 15000, 15000, 0, 0, 11, 14099, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Magistrate Barthilas - In Combat - Cast \'Mighty Blow\''),
(10435, 0, 3, 0, 0, 0, 100, 0, 4000, 4000, 12000, 15000, 0, 0, 11, 16793, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Magistrate Barthilas - In Combat - Cast \'Draining Blow\''),
(10435, 0, 4, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 11, 16794, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Magistrate Barthilas - On Just Died - Cast \'Transformation\''),
(10435, 0, 5, 0, 37, 0, 100, 0, 0, 0, 0, 0, 0, 0, 11, 16794, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Magistrate Barthilas - On Initialize - Cast \'Transformation\''),
(10435, 0, 6, 7, 4, 0, 100, 512, 0, 0, 0, 0, 0, 0, 118, 1, 0, 0, 0, 0, 0, 20, 175377, 70, 0, 0, 0, 0, 0, 0, 'Magistrate Barthilas - On aggro - Set Closest gameobject (175377) to GO_STATE_READY'),
(10435, 0, 7, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 118, 1, 0, 0, 0, 0, 0, 20, 175372, 90, 0, 0, 0, 0, 0, 0, 'Magistrate Barthilas - On aggro - Set Closest gameobject (175372) to GO_STATE_READY'),
(10435, 0, 8, 9, 6, 0, 100, 512, 0, 0, 0, 0, 0, 0, 118, 2, 0, 0, 0, 0, 0, 20, 175377, 70, 0, 0, 0, 0, 0, 0, 'Magistrate Barthilas - On death - Set Closest gameobject (175377) to GO_STATE_ACTIVE_ALTERNATIVE'),
(10435, 0, 9, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 118, 2, 0, 0, 0, 0, 0, 20, 175372, 90, 0, 0, 0, 0, 0, 0, 'Magistrate Barthilas - On death - Set Closest gameobject (175372) to GO_STATE_ACTIVE_ALTERNATIVE'),
(10435, 0, 10, 11, 25, 0, 100, 512, 0, 0, 0, 0, 0, 0, 118, 2, 0, 0, 0, 0, 0, 20, 175377, 70, 0, 0, 0, 0, 0, 0, 'Magistrate Barthilas - On reset - Set Closest gameobject (175377) to GO_STATE_ACTIVE_ALTERNATIVE'),
(10435, 0, 11, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 118, 2, 0, 0, 0, 0, 0, 20, 175372, 90, 0, 0, 0, 0, 0, 0, 'Magistrate Barthilas - On reset - Set Closest gameobject (175372) to GO_STATE_ACTIVE_ALTERNATIVE'),
(10435, 0, 12, 13, 38, 0, 100, 0, 0, 1, 0, 0, 0, 0, 53, 1, 104350, 0, 0, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'On data[0] set to 1 - Self: Start path #104350, run, do not repeat, Aggressive'),
(10435, 0, 13, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'On data[0] set to 1 - Self: Talk 0 to invoker'),
(10435, 0, 14, 0, 40, 0, 100, 0, 2, 104350, 0, 0, 0, 0, 54, 1000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'On wapoint 2 of path 104350 reached - Self: Pause path for 1000 ms'),
(10435, 0, 15, 0, 58, 0, 100, 0, 0, 104350, 0, 0, 0, 0, 67, 1, 100, 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'On any waypoint of path 104350 ended - Trigger timed event timedEvent[1] in 100 - 100 ms // -meta_wait'),
(10435, 0, 16, 0, 59, 0, 100, 0, 1, 0, 0, 0, 0, 0, 34, 6, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'On timed event timedEvent[1] triggered - Set instance data #6 to 3'),
(10435, 0, 17, 18, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 62, 329, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 4068.74, -3535.97, 122.825, 2.47837, 'On respawn - Self: Teleport to (4068.74, -3535.97, 122.825, 2.47837) on map stratholme (329)'),
(10435, 0, 18, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 101, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'On respawn - Self: Set home position to current position');
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` = 22 AND `SourceEntry` = 10435 AND `SourceId` = 0;
INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `Comment`) VALUES
(22, 6, 10435, 0, 0, 36, 0, 0, 0, 0, 1, 'Action invoker is dead'),
(22, 13, 10435, 0, 0, 21, 1, 16384, 0, 0, 1, 'Object doesn\'t have unit state UNIT_STATE_ATTACK_PLAYER'),
(22, 18, 10435, 0, 0, 13, 1, 6, 3, 0, 0, 'instance data 6 equals 3');
-- Service Entrance Gate smart ai
SET @ENTRY := -6851;
UPDATE `gameobject_template` SET `AIName` = 'SmartGameObjectAI' WHERE `entry` = @ENTRY;
DELETE FROM `smart_scripts` WHERE `source_type` = 1 AND `entryOrGuid` = @ENTRY;
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
(@ENTRY, 1, 0, 1, 64, 0, 100, 0, 1, 0, 0, 0, 45, 0, 1, 0, 0, 0, 0, 10, 54237, 10435, 0, 0, 0, 0, 0, 'On player opened gossip - Creature Magistrate Barthilas (10435) with guid 54237 (fetching): Set creature data #0 to 1'),
(@ENTRY, 1, 1, 0, 61, 0, 100, 0, 0, 0, 0, 0, 34, 6, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'On player opened gossip - Set instance data #6 to 1');
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` = 22 AND `SourceEntry` = -6851 AND `SourceId` = 1;
INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `Comment`) VALUES
(22, 1, -6851, 1, 0, 13, 0, 6, 0, 0, 0, 'instance data 6 equals 0');
-- Aurius
-- Added Combat AI ready to fix the Aurius event to help players kill the baron Rivendare
UPDATE `creature_template` SET `AIName` = 'SmartAI' WHERE `entry` = 10917;
DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 10917);
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`, `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
(10917, 0, 0, 0, 9, 0, 100, 0, 0, 5, 6000, 9000, 0, 11, 14517, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Aurius - Cast Crusader Strike'),
(10917, 0, 1, 0, 0, 0, 100, 0, 6000, 14000, 8000, 11000, 0, 11, 17149, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 'Aurius - Cast Exorcism'),
(10917, 0, 2, 0, 14, 0, 100, 0, 3000, 40, 12000, 16000, 0, 11, 13952, 0, 0, 0, 0, 0, 26, 40, 0, 0, 0, 0, 0, 0, 0, 'Aurius - Cast Holy Light on Friendly Missing HP'),
(10917, 0, 3, 0, 2, 0, 100, 0, 0, 50, 21000, 28000, 0, 11, 13874, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Aurius - Cast Divine Shield at 50% HP'),
-- Entering the dungeon near Aurius he will stand up - turn around - salute
(10917, 0, 4, 0, 101, 0, 100, 1, 1, 15, 0, 500, 500, 80, 1091700, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Aurius -Play_Emote - Emot Event');
DELETE FROM `smart_scripts` WHERE (`source_type` = 9 AND `entryorguid` = 1091700);
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`, `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
(1091700, 9, 0, 0, 0, 0, 100, 512, 0, 0, 0, 0, 0, 91, 8, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Aurius - UNIT_STAND_STATE_STAND'),
(1091700, 9, 1, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Aurius - SHEATH_STATE_UNARMED'),
(1091700, 9, 2, 0, 0, 0, 100, 0, 1500, 1500, 0, 0, 0, 66, 14, 0, 0, 0, 0, 0, 21, 14, 0, 0, 0, 0, 0, 0, 0, 'Aurius - SetFacing To Player'),
(1091700, 9, 3, 0, 0, 0, 100, 0, 1000, 1000, 0, 0, 0, 5, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Aurius - EMOTE_ONESHOT_BOW'),
(1091700, 9, 4, 0, 0, 0, 100, 0, 2000, 2000, 0, 0, 0, 40, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Aurius - SHEATH_STATE_MELEE');
-- say --
-- Crimson Gallant
DELETE FROM `creature_text` WHERE `CreatureID`=10424;
INSERT INTO `creature_text` (`CreatureID`, `GroupID`, `ID`, `Text`, `Type`, `Language`, `Probability`, `Emote`, `Duration`, `Sound`, `BroadcastTextId`, `TextRange`, `comment`) VALUES
(10424, 0, 0, 'They have broken into the Hall of Lights! We must stop the intruders!', 14, 7, 100, 0, 0, 0, 6379, 0, 'Crimson Gallant'),
(10424, 1, 0, 'The Scourge have broken through in all wings! May the light defeat these foul creatures! We shall fight to the last!', 14, 7, 100, 0, 0, 0, 6439, 0, 'Crimson Gallant');
-- Crimson Monk
DELETE FROM `creature_text` WHERE `CreatureID` = 11043;
INSERT INTO `creature_text` (`CreatureID`, `GroupID`, `ID`, `Text`, `Type`, `Language`, `Probability`, `Emote`, `Duration`, `Sound`, `BroadcastTextId`, `TextRange`, `comment`) VALUES
(11043, 0, 0, 'You carry the taint of the Scourge. Prepare to enter the Twisting Nether.', 12, 7, 100, 0, 0, 0, 2625, 0, 'Crimson Monk'),
(11043, 0, 1, 'There is no escape for you. The Crusade shall destroy all who carry the Scourge\'s taint.', 12, 7, 100, 0, 0, 0, 2626, 0, 'Crimson Monk'),
(11043, 0, 2, 'The Light condemns all who harbor evil. Now you will die!', 12, 7, 100, 0, 0, 0, 2627, 0, 'Crimson Monk'),
(11043, 0, 3, 'The Scarlet Crusade shall smite the wicked and drive evil from these lands!', 12, 7, 100, 0, 0, 0, 2628, 0, 'Crimson Monk'),
(11043, 1, 0, 'This will not be the end of the Scarlet Crusade! You will not break our line!', 14, 7, 100, 0, 0, 0, 6380, 0, 'Crimson Monk');
-- Grand Crusader Dathrohan
DELETE FROM `creature_text` WHERE `CreatureID`=10812;
INSERT INTO `creature_text` (`CreatureID`, `GroupID`, `ID`, `Text`, `Type`, `Language`, `Probability`, `Emote`, `Duration`, `Sound`, `BroadcastTextId`, `TextRange`, `comment`) VALUES
(10812, 0, 0, 'Today you have unmade what took me years to create! For this you shall all die by my hand!', 14, 0, 100, 0, 0, 0, 6441, 0, 'Grand Crusader Dathrohan'),
-- This text must be inserted, otherwise the server will start with an error
(10812, 1, 0, 'You fools think you can defeat me so easily? Face the true might of the Nathrezim!', 14, 0, 100, 0, 0, 0, 6447, 0, 'Grand Crusader Dathrohan'),
(10812, 2, 0, 'Damn you mortals! All my plans of revenge, all my hate...I will be avenged...', 12, 0, 100, 0, 0, 0, 6442, 0, 'Grand Crusader Dathrohan');
DELETE FROM `creature_text` WHERE `CreatureID`=10813;
INSERT INTO `creature_text` (`CreatureID`, `GroupID`, `ID`, `Text`, `Type`, `Language`, `Probability`, `Emote`, `Duration`, `Sound`, `BroadcastTextId`, `TextRange`, `comment`) VALUES
(10813, 1, 0, 'You fools think you can defeat me so easily? Face the true might of the Nathrezim!', 14, 0, 100, 0, 0, 0, 6447, 0, 'Grand Crusader Dathrohan'),
(10813, 2, 0, 'Damn you mortals! All my plans of revenge, all my hate...I will be avenged...', 12, 0, 100, 0, 0, 0, 6442, 0, 'Grand Crusader Dathrohan');
UPDATE `creature_template` SET `AIName` = 'SmartAI' WHERE `entry` = 10812;
DELETE FROM `smart_scripts` WHERE (`entryorguid` = 10812) AND (`source_type` = 0) AND (`id` IN (9,15));
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
(10812, 0, 9, 0, 0, 2, 100, 1, 1000, 1000, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Grand Crusader Dathrohan - In Combat - Balnazzar Say Line 0'),
(10812, 0, 15, 16, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Grand Crusader Dathrohan - On Death - Say Line 1');
-- Baron Rivendare add Broadcast*TextId
UPDATE `creature_text` SET `BroadcastTextId`=11812 WHERE `CreatureID`=10440 AND `GroupID`=0 AND `ID`=0;
UPDATE `creature_text` SET `BroadcastTextId`=6289 WHERE `CreatureID`=10440 AND `GroupID`=1 AND `ID`=0;
UPDATE `creature_text` SET `BroadcastTextId`=11813 WHERE `CreatureID`=10440 AND `GroupID`=2 AND `ID`=0;
UPDATE `creature_text` SET `BroadcastTextId`=11815 WHERE `CreatureID`=10440 AND `GroupID`=3 AND `ID`=0;
UPDATE `creature_text` SET `BroadcastTextId`=11814 WHERE `CreatureID`=10440 AND `GroupID`=4 AND `ID`=0;
UPDATE `creature_text` SET `BroadcastTextId`=6398 WHERE `CreatureID`=10440 AND `GroupID`=5 AND `ID`=0;
UPDATE `creature_text` SET `BroadcastTextId`=6401 WHERE `CreatureID`=10440 AND `GroupID`=6 AND `ID`=0;
UPDATE `creature_text` SET `BroadcastTextId`=6511 WHERE `CreatureID`=10440 AND `GroupID`=7 AND `ID`=0;
UPDATE `creature_text` SET `BroadcastTextId`=6512 WHERE `CreatureID`=10440 AND `GroupID`=8 AND `ID`=0;
-- Bile Spewer
DELETE FROM `creature_text` WHERE `CreatureID`=10416 AND `GroupID`=0 AND `ID`=0;
INSERT INTO `creature_text` VALUES (10416, 0, 0, '%s belches out a disgusting Bile Slime!', 16, 0, 100, 0, 0, 0, 6258, 0, 'Bile Spewer');
-- Ysida Harmon What is the same text content as GroupID 0 and 1?
UPDATE `creature_text` SET `BroadcastTextId`=11931 WHERE `CreatureID`=16031 AND `GroupID`=1 AND `ID`=0;
-- Crimson Gallant
DELETE FROM `creature_text` WHERE `CreatureID`=10424;
INSERT INTO `creature_text` (`CreatureID`, `GroupID`, `ID`, `Text`, `Type`, `Language`, `Probability`, `Emote`, `Duration`, `Sound`, `BroadcastTextId`, `TextRange`, `comment`) VALUES
(10424, 0, 0, 'They have broken into the Hall of Lights! We must stop the intruders!', 14, 7, 100, 0, 0, 0, 6379, 0, 'Crimson Gallant'),
(10424, 1, 0, 'The Scourge have broken through in all wings! May the light defeat these foul creatures! We shall fight to the last!', 14, 7, 100, 0, 0, 0, 6439, 0, 'Crimson Gallant');

View File

@@ -0,0 +1,3 @@
-- DB update 2024_06_07_00 -> 2024_06_07_01
--
UPDATE `achievement_reward` SET `Subject`='Heroic: Glory of the Ulduar Raider' WHERE `ID`=2958;

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,3 @@
-- DB update 2024_06_07_02 -> 2024_06_07_03
--
UPDATE `item_template` SET `HolidayId` = 181 WHERE `entry` = 45067;

View File

@@ -36,7 +36,7 @@ enum BG_EY_Timers
BG_EY_FLAG_RESPAWN_TIME = 10 * IN_MILLISECONDS,
BG_EY_FLAG_ON_GROUND_TIME = 10 * IN_MILLISECONDS,
BG_EY_FPOINTS_CHECK_TIME = 2 * IN_MILLISECONDS,
BG_EY_FPOINTS_TICK_TIME = 1 * IN_MILLISECONDS
BG_EY_FPOINTS_TICK_TIME = 2 * IN_MILLISECONDS
};
enum BG_EY_WorldStates

View File

@@ -3984,8 +3984,8 @@ void Player::DeleteFromDB(ObjectGuid::LowType lowGuid, uint32 accountId, bool up
sTicketMgr->CloseTicket(ticket->GetId(), playerGuid);
// remove from group
if (uint32 groupId = sCharacterCache->GetCharacterGuildIdByGuid(playerGuid))
if (Group* group = sGroupMgr->GetGroupByGUID(groupId))
if (ObjectGuid groupId = sCharacterCache->GetCharacterGroupGuidByGuid(playerGuid))
if (Group* group = sGroupMgr->GetGroupByGUID(groupId.GetCounter()))
RemoveFromGroup(group, playerGuid);
// Remove signs from petitions (also remove petitions if owner);

View File

@@ -892,7 +892,7 @@ void Player::FailQuest(uint32 questId)
{
QuestStatus qStatus = GetQuestStatus(questId);
// xinef: if quest is marked as failed, dont do it again
if (qStatus != QUEST_STATUS_INCOMPLETE)
if ((qStatus != QUEST_STATUS_INCOMPLETE) && (!quest->HasSpecialFlag(QUEST_SPECIAL_FLAGS_TIMED)))
return;
SetQuestStatus(questId, QUEST_STATUS_FAILED);

View File

@@ -50,6 +50,10 @@ static const Position aGateTrap[] =
{3919.88f, -3547.34f, 134.269f, 2.94961f} // Undead side
};
Position const MindlessUndeadPos = { 3941.75f, -3393.06f, 119.70f, 0.0f };
Position const BarthilasPos = { 4068.74f, -3535.97f, 122.825f, 2.478367567062377929f };
Position const SlaughterPos = { 4032.20f, -3378.06f, 119.75f, 4.67f };
// uint32 m_uiGateTrapTimers[2][3] = { {0,0,0}, {0,0,0} };
class instance_stratholme : public InstanceMapScript
@@ -86,6 +90,8 @@ public:
if (_baronRunTime > 0)
if (Aura* aura = player->AddAura(SPELL_BARON_ULTIMATUM, player))
aura->SetDuration(_baronRunTime * MINUTE * IN_MILLISECONDS);
if (_barthilasrunProgress == DONE)
instance->LoadGrid(3663.229980f, -3619.139893f);
}
void OnCreatureCreate(Creature* creature) override
@@ -112,6 +118,11 @@ public:
if (_slaughterProgress == 3)
++_slaughterNPCs;
break;
case NPC_BARTHILAS:
_barthilasGUID = creature->GetGUID();
break;
default:
break;
}
}
@@ -122,8 +133,7 @@ public:
if (Creature* baron = instance->GetCreature(_baronRivendareGUID))
baron->AI()->Talk(SAY_BRAON_SUMMON_RAMSTEIN);
Position pos = {4032.20f, -3378.06f, 119.75f, 4.67f};
instance->SummonCreature(NPC_RAMSTEIN_THE_GORGER, pos);
instance->SummonCreature(NPC_RAMSTEIN_THE_GORGER, SlaughterPos);
}
if (_slaughterProgress == 2)
{
@@ -243,6 +253,8 @@ public:
go->AllowSaveToDB(true);
_trapGatesGUIDs[3] = go->GetGUID();
break;
default:
break;
}
}
@@ -282,65 +294,79 @@ public:
switch (type)
{
case TYPE_BARON_RUN:
{
if (_baronRunProgress == DATA_BARON_RUN_NONE)
{
if (_baronRunProgress == DATA_BARON_RUN_NONE)
{
_baronRunProgress = DATA_BARON_RUN_GATE;
_baronRunTime = 45;
DoCastSpellOnPlayers(SPELL_BARON_ULTIMATUM);
events.ScheduleEvent(EVENT_BARON_TIME, 60000);
_baronRunProgress = DATA_BARON_RUN_GATE;
_baronRunTime = 45;
DoCastSpellOnPlayers(SPELL_BARON_ULTIMATUM);
events.ScheduleEvent(EVENT_BARON_TIME, 60000);
instance->LoadGrid(4035.83f, -3336.31f);
if (Creature* baron = instance->GetCreature(_baronRivendareGUID))
baron->AI()->Talk(SAY_BARON_INIT_YELL);
}
break;
instance->LoadGrid(4035.83f, -3336.31f);
if (Creature* baron = instance->GetCreature(_baronRivendareGUID))
baron->AI()->Talk(SAY_BARON_INIT_YELL);
}
break;
}
case TYPE_ZIGGURAT1:
{
if (data == _zigguratState1 + 1)
++_zigguratState1;
{
if (data == _zigguratState1 + 1)
++_zigguratState1;
if (_zigguratState1 == 1)
if (GameObject* ziggurat = instance->GetGameObject(_zigguratDoorsGUID1))
ziggurat->SetGoState(GO_STATE_ACTIVE);
if (_zigguratState1 == 1)
if (GameObject* ziggurat = instance->GetGameObject(_zigguratDoorsGUID1))
ziggurat->SetGoState(GO_STATE_ACTIVE);
CheckZiggurats();
break;
}
CheckZiggurats();
break;
}
case TYPE_ZIGGURAT2:
{
if (data == _zigguratState2 + 1)
++_zigguratState2;
{
if (data == _zigguratState2 + 1)
++_zigguratState2;
if (_zigguratState2 == 1)
if (GameObject* ziggurat = instance->GetGameObject(_zigguratDoorsGUID2))
ziggurat->SetGoState(GO_STATE_ACTIVE);
if (_zigguratState2 == 1)
if (GameObject* ziggurat = instance->GetGameObject(_zigguratDoorsGUID2))
ziggurat->SetGoState(GO_STATE_ACTIVE);
CheckZiggurats();
break;
}
CheckZiggurats();
break;
}
case TYPE_ZIGGURAT3:
{
if (data == _zigguratState3 + 1)
++_zigguratState3;
{
if (data == _zigguratState3 + 1)
++_zigguratState3;
if (_zigguratState3 == 1)
if (GameObject* ziggurat = instance->GetGameObject(_zigguratDoorsGUID3))
ziggurat->SetGoState(GO_STATE_ACTIVE);
if (_zigguratState3 == 1)
if (GameObject* ziggurat = instance->GetGameObject(_zigguratDoorsGUID3))
ziggurat->SetGoState(GO_STATE_ACTIVE);
CheckZiggurats();
break;
}
CheckZiggurats();
break;
}
case TYPE_BARON_FIGHT:
{
if (GameObject* gate = instance->GetGameObject(_zigguratDoorsGUID5))
gate->SetGoState(data == IN_PROGRESS ? GO_STATE_READY : GO_STATE_ACTIVE);
return;
}
{
if (GameObject* gate = instance->GetGameObject(_zigguratDoorsGUID5))
gate->SetGoState(data == IN_PROGRESS ? GO_STATE_READY : GO_STATE_ACTIVE);
return;
}
case TYPE_MALLOW:
++_postboxesOpened;
break;
case TYPE_BARTHILAS_RUN:
if (data == DONE)
{
if (Creature* barthilas = instance->GetCreature(_barthilasGUID))
{
if (barthilas->IsAlive())
{
barthilas->NearTeleportTo(BarthilasPos.GetPositionX(), BarthilasPos.GetPositionY(), BarthilasPos.GetPositionZ(), BarthilasPos.GetOrientation());
barthilas->SetHomePosition(BarthilasPos);
}
}
}
_barthilasrunProgress = data;
break;
}
SaveToDB();
@@ -355,7 +381,7 @@ public:
data >> _zigguratState3;
data >> _slaughterProgress;
data >> _postboxesOpened;
data >> _barthilasrunProgress;
if (_baronRunTime)
{
events.ScheduleEvent(EVENT_BARON_TIME, 60000);
@@ -375,7 +401,8 @@ public:
<< _zigguratState2 << ' '
<< _zigguratState3 << ' '
<< _slaughterProgress << ' '
<< _postboxesOpened;
<< _postboxesOpened << ' '
<< _barthilasrunProgress;
}
uint32 GetData(uint32 type) const override
@@ -390,6 +417,8 @@ public:
return _zigguratState3;
case TYPE_MALLOW:
return _postboxesOpened;
case TYPE_BARTHILAS_RUN:
return _barthilasrunProgress;
}
return 0;
}
@@ -475,91 +504,92 @@ public:
gate_critter_delay(GATE2);
break;
case EVENT_BARON_TIME:
{
--_baronRunTime;
instance->LoadGrid(4035.83f, -3336.31f);
Creature* baron = instance->GetCreature(_baronRivendareGUID);
if (baron && !baron->IsInCombat())
{
--_baronRunTime;
instance->LoadGrid(4035.83f, -3336.31f);
Creature* baron = instance->GetCreature(_baronRivendareGUID);
if (baron && !baron->IsInCombat())
switch (_baronRunTime)
{
switch (_baronRunTime)
{
case 10:
baron->AI()->Talk(SAY_BARON_10M);
break;
case 5:
baron->AI()->Talk(SAY_BARON_5M);
if (Creature* ysida = baron->FindNearestCreature(NPC_YSIDA, 50.0f))
ysida->AI()->SetData(1, 1);
break;
case 0:
baron->AI()->Talk(SAY_BARON_0M);
DoRemoveAurasDueToSpellOnPlayers(SPELL_BARON_ULTIMATUM);
break;
}
}
if (_baronRunTime > 0)
events.ScheduleEvent(EVENT_BARON_TIME, 60s);
else
events.ScheduleEvent(EVENT_EXECUTE_PRISONER, 0ms);
SaveToDB();
break;
}
case EVENT_EXECUTE_PRISONER:
{
instance->LoadGrid(4035.83f, -3336.31f);
Creature* baron = instance->GetCreature(_baronRivendareGUID);
if (baron && baron->IsAlive())
{
if (!baron->IsInCombat())
{
baron->HandleEmoteCommand(EMOTE_ONESHOT_ATTACK1H);
case 10:
baron->AI()->Talk(SAY_BARON_10M);
break;
case 5:
baron->AI()->Talk(SAY_BARON_5M);
if (Creature* ysida = baron->FindNearestCreature(NPC_YSIDA, 50.0f))
Unit::Kill(baron, ysida);
}
else
events.ScheduleEvent(EVENT_EXECUTE_PRISONER, 1s);
ysida->AI()->SetData(1, 1);
break;
case 0:
baron->AI()->Talk(SAY_BARON_0M);
DoRemoveAurasDueToSpellOnPlayers(SPELL_BARON_ULTIMATUM);
break;
}
break;
}
if (_baronRunTime > 0)
events.ScheduleEvent(EVENT_BARON_TIME, 60s);
else
events.ScheduleEvent(EVENT_EXECUTE_PRISONER, 0ms);
SaveToDB();
break;
}
case EVENT_EXECUTE_PRISONER:
{
instance->LoadGrid(4035.83f, -3336.31f);
Creature* baron = instance->GetCreature(_baronRivendareGUID);
if (baron && baron->IsAlive())
{
if (!baron->IsInCombat())
{
baron->HandleEmoteCommand(EMOTE_ONESHOT_ATTACK1H);
if (Creature* ysida = baron->FindNearestCreature(NPC_YSIDA, 50.0f))
Unit::Kill(baron, ysida);
}
else
events.ScheduleEvent(EVENT_EXECUTE_PRISONER, 1s);
}
break;
}
case EVENT_SPAWN_MINDLESS:
{
Position pos = {3941.75f, -3393.06f, 119.70f, 0.0f};
instance->SummonCreature(NPC_MINDLESS_UNDEAD, pos);
break;
}
{
instance->SummonCreature(NPC_MINDLESS_UNDEAD, MindlessUndeadPos);
break;
}
case EVENT_FORCE_SLAUGHTER_EVENT:
{
Map::PlayerList const& PlayerList = instance->GetPlayers();
if (!PlayerList.IsEmpty())
for (Map::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i)
if (Player* player = i->GetSource())
if (player->GetDistance2d(4034.97f, -3402.13f) < 50.0f)
{
ProcessSlaughterEvent();
return;
}
{
Map::PlayerList const& PlayerList = instance->GetPlayers();
if (!PlayerList.IsEmpty())
for (Map::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i)
if (Player* player = i->GetSource())
if (player->GetDistance2d(4034.97f, -3402.13f) < 50.0f)
{
ProcessSlaughterEvent();
return;
}
events.ScheduleEvent(EVENT_FORCE_SLAUGHTER_EVENT, 3s);
break;
}
events.ScheduleEvent(EVENT_FORCE_SLAUGHTER_EVENT, 3s);
break;
}
case EVENT_SPAWN_BLACK_GUARD:
{
for (uint8 i = 0; i < 5; ++i)
if (Creature* guard = instance->SummonCreature(NPC_BLACK_GUARD, BlackGuardPos[i]))
{
guard->SetWalk(true);
guard->GetMotionMaster()->MovePoint(0, BlackGuardPos[i + 5]);
guard->SetHomePosition(BlackGuardPos[i + 5]);
if (i == 0 && guard->AI())
guard->AI()->Talk(SAY_BLACK_GUARD_INIT);
}
{
for (uint8 i = 0; i < 5; ++i)
if (Creature* guard = instance->SummonCreature(NPC_BLACK_GUARD, BlackGuardPos[i]))
{
guard->SetWalk(true);
guard->GetMotionMaster()->MovePoint(0, BlackGuardPos[i + 5]);
guard->SetHomePosition(BlackGuardPos[i + 5]);
if (i == 0 && guard->AI())
guard->AI()->Talk(SAY_BLACK_GUARD_INIT);
}
if (GameObject* gate = instance->GetGameObject(_zigguratDoorsGUID4))
gate->SetGoState(GO_STATE_ACTIVE);
break;
}
if (GameObject* gate = instance->GetGameObject(_zigguratDoorsGUID4))
gate->SetGoState(GO_STATE_ACTIVE);
break;
}
default:
break;
}
}
@@ -571,6 +601,7 @@ public:
uint32 _zigguratState3;
uint32 _slaughterProgress;
uint32 _slaughterNPCs;
uint32 _barthilasrunProgress{};
uint32 _postboxesOpened;
EventMap events;
@@ -582,6 +613,7 @@ public:
ObjectGuid _slaughterGateGUID;
ObjectGuid _gauntletGateGUID;
ObjectGuid _baronRivendareGUID;
ObjectGuid _barthilasGUID;
bool _gateTrapsCooldown[2];
ObjectGuid _trappedPlayerGUID;

View File

@@ -31,6 +31,7 @@ enum DataTypes
TYPE_ZIGGURAT3 = 3,
TYPE_BARON_FIGHT = 4,
TYPE_MALLOW = 5,
TYPE_BARTHILAS_RUN = 6,
DATA_BARON_RUN_NONE = 0,
DATA_BARON_RUN_GATE = 1,
@@ -40,6 +41,7 @@ enum DataTypes
enum CreatureIds
{
NPC_BARTHILAS = 10435,
NPC_BARON_RIVENDARE = 10440,
NPC_BILE_SPEWER = 10416,
NPC_VENOM_BELCHER = 10417,

View File

@@ -60,7 +60,7 @@ public:
scheduler.Schedule(20s, 28s, [this](TaskContext context)
{
if (DoCastRandomTarget(SPELL_CARRION_SWARM, 0, 60.f) == SPELL_CAST_OK)
if (DoCastRandomTarget(SPELL_CARRION_SWARM, 0, 60.f, false) == SPELL_CAST_OK)
Talk(SAY_SWARM);
context.Repeat(10s, 15s);
}).Schedule(25s, 32s, [this](TaskContext context)

View File

@@ -342,6 +342,10 @@ struct boss_archimonde : public BossAI
DoCastRandomTarget(SPELL_FINGER_OF_DEATH);
}
}, 3500ms);
ScheduleTimedEvent(10min, [&]
{
DoCastRandomTarget(SPELL_FINGER_OF_DEATH);
}, 3500ms);
instance->SetData(DATA_SPAWN_WAVES, 1);
}
@@ -360,22 +364,22 @@ struct boss_archimonde : public BossAI
{
switch (player->getClass())
{
case CLASS_PRIEST:
case CLASS_PALADIN:
case CLASS_PRIEST:
case CLASS_WARLOCK:
player->CastSpell(me, SPELL_SOUL_CHARGE_RED, true);
break;
case CLASS_DEATH_KNIGHT:
case CLASS_MAGE:
case CLASS_ROGUE:
case CLASS_WARRIOR:
player->CastSpell(me, SPELL_SOUL_CHARGE_YELLOW, true);
break;
case CLASS_DRUID:
case CLASS_SHAMAN:
case CLASS_HUNTER:
case CLASS_SHAMAN:
player->CastSpell(me, SPELL_SOUL_CHARGE_GREEN, true);
break;
case CLASS_DEATH_KNIGHT:
case CLASS_NONE:
default:
break;

View File

@@ -70,7 +70,7 @@ public:
context.Repeat(18s, 20s);
}).Schedule(45s, 55s, [this](TaskContext context)
{
DoCastRandomTarget(SPELL_DOOM, 1, 100.f, true, false, false);
DoCastAOE(SPELL_DOOM);
Talk(SAY_DOOM);
context.Repeat();
}).Schedule(10min, [this](TaskContext context)
@@ -118,9 +118,27 @@ private:
bool _recentlySpoken;
};
class spell_azgalor_doom : public AuraScript
class spell_azgalor_doom : public SpellScript
{
PrepareAuraScript(spell_azgalor_doom);
PrepareSpellScript(spell_azgalor_doom);
void FilterTargets(std::list<WorldObject*>& targets)
{
if (Unit* victim = GetCaster()->GetVictim())
{
targets.remove_if(Acore::ObjectGUIDCheck(victim->GetGUID(), true));
}
}
void Register() override
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_azgalor_doom::FilterTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ENEMY);
}
};
class spell_azgalor_doom_aura : public AuraScript
{
PrepareAuraScript(spell_azgalor_doom_aura);
void OnRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
{
@@ -133,12 +151,12 @@ class spell_azgalor_doom : public AuraScript
void Register() override
{
OnEffectRemove += AuraEffectRemoveFn(spell_azgalor_doom::OnRemove, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL, AURA_EFFECT_HANDLE_REAL);
OnEffectRemove += AuraEffectRemoveFn(spell_azgalor_doom_aura::OnRemove, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL, AURA_EFFECT_HANDLE_REAL);
}
};
void AddSC_boss_azgalor()
{
RegisterHyjalAI(boss_azgalor);
RegisterSpellScript(spell_azgalor_doom);
RegisterSpellAndAuraScriptPair(spell_azgalor_doom, spell_azgalor_doom_aura);
}

View File

@@ -220,41 +220,41 @@ public:
{
switch (creature->GetEntry())
{
case NPC_NECRO:
case NPC_ABOMI:
case NPC_GHOUL:
case NPC_BANSH:
case NPC_CRYPT:
case NPC_GARGO:
case NPC_FROST:
case NPC_INFER:
case NPC_STALK:
if (unit->ToCreature()->IsSummon())
{
if (_bossWave)
case NPC_NECRO:
case NPC_ABOMI:
case NPC_GHOUL:
case NPC_BANSH:
case NPC_CRYPT:
case NPC_GARGO:
case NPC_FROST:
case NPC_INFER:
case NPC_STALK:
if (creature->IsSummon())
{
DoUpdateWorldState(WORLD_STATE_ENEMYCOUNT, --trash); // Update the instance wave count on new trash death
_encounterNPCs.erase(unit->ToCreature()->GetGUID()); // Used for despawning on wipe
if (_bossWave)
{
DoUpdateWorldState(WORLD_STATE_ENEMYCOUNT, --trash); // Update the instance wave count on new trash death
_encounterNPCs.erase(creature->GetGUID()); // Used for despawning on wipe
if (trash == 0) // It can reach negatives if trash spawned after a retreat are killed, it shouldn't affect anything. Also happens on retail
SetData(DATA_SPAWN_WAVES, 1);
if (trash == 0) // It can reach negatives if trash spawned after a retreat are killed, it shouldn't affect anything. Also happens on retail
SetData(DATA_SPAWN_WAVES, 1);
}
}
}
break;
case NPC_TOWERING_INFERNAL:
case NPC_LESSER_DOOMGUARD:
_summonedNPCs.erase(unit->ToCreature()->GetGUID());
break;
case NPC_WINTERCHILL:
case NPC_ANETHERON:
case NPC_KAZROGAL:
case NPC_AZGALOR:
if (Creature* jaina = GetCreature(DATA_JAINA))
jaina->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
if (Creature* thrall = GetCreature(DATA_THRALL))
thrall->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
SetData(DATA_RESET_WAVES, 1);
break;
break;
case NPC_TOWERING_INFERNAL:
case NPC_LESSER_DOOMGUARD:
_summonedNPCs.erase(creature->GetGUID());
break;
case NPC_WINTERCHILL:
case NPC_ANETHERON:
case NPC_KAZROGAL:
case NPC_AZGALOR:
if (Creature* jaina = GetCreature(DATA_JAINA))
jaina->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
if (Creature* thrall = GetCreature(DATA_THRALL))
thrall->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
SetData(DATA_RESET_WAVES, 1);
break;
}
}
}
@@ -268,19 +268,23 @@ public:
_retreat = DATA_ALLIANCE_RETREAT;
// Spawn Ancient Gems
for (ObjectGuid const& guid : _ancientGemAlliance)
instance->GetGameObject(guid)->Respawn();
if (GameObject* gem = instance->GetGameObject(guid))
gem->Respawn();
// Move all alliance NPCs near Jaina (only happens in this base, not Horde's)
if (Creature* jaina = GetCreature(DATA_JAINA))
{
for (ObjectGuid const& guid : _baseAlliance)
{
if (instance->GetCreature(guid) && instance->GetCreature(guid)->IsAlive())
if (Creature* creature = instance->GetCreature(guid))
{
float x, y, z;
jaina->GetNearPoint(instance->GetCreature(guid), x, y, z, 10.f, 0, jaina->GetAngle(instance->GetCreature(guid)));
instance->GetCreature(guid)->SetWalk(true);
instance->GetCreature(guid)->GetMotionMaster()->MovePoint(1, x, y, z);
if (creature->IsAlive())
{
float x, y, z;
jaina->GetNearPoint(creature, x, y, z, 10.f, 0, jaina->GetAngle(creature));
creature->SetWalk(true);
creature->GetMotionMaster()->MovePoint(1, x, y, z);
}
}
}
}
@@ -296,7 +300,10 @@ public:
_scheduler.Schedule(30s, [this](TaskContext)
{
for (ObjectGuid const& guid : _roaringFlameAlliance)
instance->GetGameObject(guid)->Respawn();
{
if (GameObject* flame = instance->GetGameObject(guid))
flame->Respawn();
}
});
});
@@ -309,18 +316,24 @@ public:
_bossWave = 0;
_retreat = DATA_HORDE_RETREAT;
for (ObjectGuid const& guid : _ancientGemHorde)
instance->GetGameObject(guid)->Respawn();
{
if (GameObject* gem = instance->GetGameObject(guid))
gem->Respawn();
}
if (Creature* jaina = GetCreature(DATA_JAINA))
{
for (ObjectGuid const& guid : _baseHorde)
{
if (instance->GetCreature(guid) && instance->GetCreature(guid)->IsAlive())
if (Creature* creature = instance->GetCreature(guid))
{
float x, y, z;
jaina->GetNearPoint(instance->GetCreature(guid), x, y, z, 10.f, 0, jaina->GetAngle(instance->GetCreature(guid)));
instance->GetCreature(guid)->SetWalk(true);
instance->GetCreature(guid)->GetMotionMaster()->MovePoint(1, x, y, z);
if (creature->IsAlive())
{
float x, y, z;
jaina->GetNearPoint(creature, x, y, z, 10.f, 0, jaina->GetAngle(creature));
creature->SetWalk(true);
creature->GetMotionMaster()->MovePoint(1, x, y, z);
}
}
}
}
@@ -334,7 +347,8 @@ public:
_scheduler.Schedule(30s, [this](TaskContext)
{
for (ObjectGuid const& guid : _roaringFlameHorde)
instance->GetGameObject(guid)->Respawn();
if (GameObject* flame = instance->GetGameObject(guid))
flame->Respawn();
});
});
@@ -466,7 +480,8 @@ public:
if (Creature* creature = instance->GetCreature(guid))
creature->DespawnOrUnsummon();
GetCreature(DATA_ARCHIMONDE)->DespawnOrUnsummon();
if (Creature* archimonde = GetCreature(DATA_ARCHIMONDE))
archimonde->DespawnOrUnsummon();
_scheduler.Schedule(300s, [this](TaskContext)
{

View File

@@ -26,7 +26,7 @@
#define GOSSIP_ITEM_1 "Brann, it would be our honor!"
#define GOSSIP_ITEM_2 "Let's move Brann, enough of the history lessons!"
#define GOSSIP_ITEM_3 "We dont have time for this right now, we have to keep going."
#define GOSSIP_ITEM_3 "There will be plenty of time for this later Brann, we need to get moving!"
#define GOSSIP_ITEM_4 "We're with you Brann! Open it!"
#define TEXT_ID_START 13100

View File

@@ -718,11 +718,15 @@ struct npc_pet_gen_toxic_wasteling : public PassiveAI
}
};
enum FetchBall
{
SPELL_PET_TOY_FETCH_BALL_COME_HERE = 48649,
SPELL_PET_TOY_FETCH_BALL_HAS_BALL = 48708
};
struct npc_pet_gen_fetch_ball : public NullCreatureAI
{
npc_pet_gen_fetch_ball(Creature* c) : NullCreatureAI(c)
{
}
npc_pet_gen_fetch_ball(Creature* c) : NullCreatureAI(c) { }
uint32 checkTimer;
ObjectGuid targetGUID;
@@ -735,12 +739,12 @@ struct npc_pet_gen_fetch_ball : public NullCreatureAI
me->SetOwnerGUID(summoner->GetGUID());
checkTimer = 0;
targetGUID.Clear();
me->CastSpell(me, 48649 /*SPELL_PET_TOY_FETCH_BALL_COME_HERE*/, true);
me->CastSpell(me, SPELL_PET_TOY_FETCH_BALL_COME_HERE, true);
}
void SpellHitTarget(Unit* target, SpellInfo const* spellInfo) override
{
if (spellInfo->Id == 48649 /*SPELL_PET_TOY_FETCH_BALL_COME_HERE*/)
if (spellInfo->Id == SPELL_PET_TOY_FETCH_BALL_COME_HERE)
{
target->GetMotionMaster()->MovePoint(50, me->GetHomePosition());
targetGUID = target->GetGUID();
@@ -757,8 +761,8 @@ struct npc_pet_gen_fetch_ball : public NullCreatureAI
if (me->GetDistance2d(target) < 2.0f)
{
target->AI()->EnterEvadeMode();
target->CastSpell(target, 48708 /*SPELL_PET_TOY_FETCH_BALL_HAS_BALL*/, true);
me->DespawnOrUnsummon(1);
target->CastSpell(target, SPELL_PET_TOY_FETCH_BALL_HAS_BALL, true);
me->DespawnOrUnsummon();
}
}
}

View File

@@ -173,8 +173,8 @@ protected:
}
}
for (int removeIndex : newSocketsToRemoveIndexes)
_newSockets.erase(_newSockets.begin() + removeIndex);
for (auto it = newSocketsToRemoveIndexes.rbegin(); it != newSocketsToRemoveIndexes.rend(); ++it)
_newSockets.erase(_newSockets.begin() + *it);
}
void Run()