45 Commits

Author SHA1 Message Date
bashermens
2d2a5223cb Merge pull request #155 from hermensbas/fix/fix_bots_cant_use_game_objects
[BUG FIX] Bots can't use game objects
2026-01-16 21:38:41 +01:00
bashermens
756d502d8c Update ChatHandler.cpp 2026-01-16 21:37:25 +01:00
bash
1589861810 fix 2026-01-16 21:35:16 +01:00
bashermens
8f1ba2a484 Merge pull request #153 from hermensbas/fix/reverse_movement_point_movement
[BUG FIX] Reverse walking
2026-01-16 02:26:37 +01:00
bash
d21c3ec106 fix 2026-01-15 19:36:28 +01:00
bashermens
bd3fae16a6 Merge pull request #152 from azerothcore/master
Update
2026-01-15 00:22:28 +01:00
github-actions[bot]
5ed3e533f1 chore(DB): import pending files
Referenced commit(s): 45c8f242c2
2026-01-14 12:53:06 +00:00
sogladev
45c8f242c2 fix(Core/ObjectMgr): warn trainer creature with no gossip_menu_option (#24336) 2026-01-14 09:52:01 -03:00
github-actions[bot]
e1685a23f5 chore(DB): import pending files
Referenced commit(s): 76dc129839
2026-01-14 06:09:50 +00:00
Gultask
76dc129839 fix(DB/Quest): Add missing Meet Lieutenant Icehammer... flight scene (#24409)
Co-authored-by: Eridium <6587064+Killyana@users.noreply.github.com>
2026-01-14 07:08:45 +01:00
Andrew
2bac143eb8 feat(Scripts/Commands): Allow using packetlog command from console (#24406) 2026-01-12 23:16:52 -03:00
github-actions[bot]
87a3be1dc2 chore(DB): import pending files
Referenced commit(s): df98dc87a3
2026-01-13 02:05:04 +00:00
Gultask
aa3a27c430 fix(DB/Quest): Improve Artruis the Heartless event reset (#24353) 2026-01-12 23:04:34 -03:00
Gultask
df98dc87a3 fix(DB/SAI): Improve 'Rampage' reset and quest progression Scripts (#24379) 2026-01-12 23:03:59 -03:00
github-actions[bot]
4ef9b00b01 chore(DB): import pending files
Referenced commit(s): fded8c48af
2026-01-13 01:40:02 +00:00
Gultask
fded8c48af fix(DB/SAI): Set flags to Valduran to stop quest event script being broken (#24348) 2026-01-12 22:38:53 -03:00
github-actions[bot]
86b411ea99 chore(DB): import pending files
Referenced commit(s): 67f9b7254f
2026-01-13 01:36:46 +00:00
blinkysc
67f9b7254f fix(DB/Conditions): Restrict holiday items to their events (#24405)
Co-authored-by: blinkysc <blinkysc@users.noreply.github.com>
2026-01-12 22:35:41 -03:00
bashermens
d1e9496fa4 Merge pull request #148 from azerothcore/master
update
2026-01-13 00:50:29 +01:00
Gultask
15f596c9d8 fix(Scripts/HoS): Set Boss Boundaries for Sjonnir (#24370) 2026-01-12 13:09:14 -03:00
github-actions[bot]
4b9c6ae55f chore(DB): import pending files
Referenced commit(s): 9e6493ff26
2026-01-12 13:32:16 +00:00
blinkysc
9e6493ff26 fix(Core/SmartAI): Skip positive spells when determining attack distance (#24381)
Co-authored-by: blinkysc <blinkysc@users.noreply.github.com>
2026-01-12 10:31:13 -03:00
Andrew
7ffef7b5fa fix(Scripts/CoS): Move chest spawn handling to Mal'Ganis script (#24382) 2026-01-12 08:30:33 -03:00
github-actions[bot]
088b86052d chore(DB): import pending files
Referenced commit(s): db2dafec95
2026-01-12 02:27:48 +00:00
Gultask
db2dafec95 fix(Scripts/Spells): Implement Blade Barrier Script (#24154)
Co-authored-by: Ariel Silva <ariel-@users.noreply.github.com>
2026-01-11 23:26:41 -03:00
Victor Godoy
6bdc48c7d4 fix(Scripts/RubySanctum): Halion Corporeality not updating (#24383)
Co-authored-by: victor <vngodoyr@unap.cl>
2026-01-11 18:26:35 -03:00
bashermens
b37d504c99 Merge pull request #145 from hermensbas/fixes/delta_cleanup_correction
[HOT FIX] Cleanup corrections (mistakes make during cleanup)
2026-01-11 21:23:51 +01:00
Benjamin Jackson
36560a4ff3 fix(Core/Entities): Don't reward quest reputation for factions that are hostile to your player's team. (#24100)
Co-authored-by: Kitzunu <24550914+Kitzunu@users.noreply.github.com>
2026-01-11 20:57:04 +01:00
bash
d81355460f corrections 2026-01-11 20:49:54 +01:00
sudlud
0b9472b7cd fix(apps/installer): update mysql installation for Debain 13 (#24368)
Co-authored-by: Degen <61268368+aradep@users.noreply.github.com>
2026-01-11 20:45:34 +01:00
Thelsen
1b35971f00 refactor(CMake): Improve ARM target detection, deprecate powerpc (#24329)
Co-authored-by: Shauren <shauren.trinity@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-01-11 20:43:41 +01:00
Gultask
71cc99f1a9 fix(Scripts/Nexus): Don't update Telestra's event timers while she's affected by Ice Nova (#24354) 2026-01-11 12:31:48 -03:00
github-actions[bot]
838e49f007 chore(DB): import pending files
Referenced commit(s): a4c2476957
2026-01-10 21:14:47 +00:00
Gultask
a4c2476957 fix(DB/Conditions): Don't allow players to steal other players' horses during Mounting Up (#24374) 2026-01-10 18:13:43 -03:00
Dan
beae2ba6d6 fix(Scripts/Naxxramas): further modernise Anub'Rekhan (#24225)
Co-authored-by: sogladev <sogladev@gmail.com>
2026-01-10 11:45:57 -03:00
Andrew
226591a02e fix(Scripts/AN): Ensure only the watchers minions start the event (#24371) 2026-01-10 10:36:35 -03:00
Dan
1f270d0fd1 fix(Scripts/Naxxramas): make sure mobs attack live side EVEN if nobody was on dead side for the whole fight (#24344) 2026-01-10 11:39:22 +01:00
Benjamin Jackson
e12f739dc9 chore(Core/Entities): Define deprecated resting states for players. (#24367) 2026-01-09 22:51:46 -03:00
github-actions[bot]
01488006ff chore(DB): import pending files
Referenced commit(s): cb69e65716
2026-01-09 13:10:29 +00:00
Gultask
a98971a5be fix(DB/Quest): Implement Event for Killing Two Scourge With One Skeleton and phasing for following quests (#24357)
Co-authored-by: sudlud <sudlud@users.noreply.github.com>
2026-01-09 10:09:36 -03:00
Gultask
cb69e65716 fix(DB/Creature): Vrykul near Lieutenant Icehammer should appear dead (#24356)
Co-authored-by: sudlud <sudlud@users.noreply.github.com>
Co-authored-by: Benjamin Jackson <38561765+heyitsbench@users.noreply.github.com>
2026-01-09 10:09:22 -03:00
bashermens
43f496d372 Merge pull request #143 from azerothcore/master
Update (crashfix movement generator)
2026-01-09 07:43:25 +01:00
bashermens
b6124e2727 Merge pull request #142 from mod-playerbots/hermensbas-removed-dead-code
Legacy/dead code
2026-01-09 07:42:16 +01:00
sudlud
8785a9a726 fix(Conf): remove unused config option Logger.ahbot (#24355) 2026-01-09 07:37:44 +01:00
Localhost
a43dda6444 fix(Core/Movement): Crash FlightPathMovementGenerator (#24347) 2026-01-09 07:37:29 +01:00
40 changed files with 801 additions and 192 deletions

View File

@@ -31,8 +31,16 @@ $SUDO apt-get install -y gdbserver gdb unzip curl \
VAR_PATH="$CURRENT_PATH/../../../../var" VAR_PATH="$CURRENT_PATH/../../../../var"
# run noninteractive install for MYSQL 8.4 LTS # run noninteractive install for MYSQL
wget https://dev.mysql.com/get/mysql-apt-config_0.8.35-1_all.deb -P "$VAR_PATH" # Version
DEBIAN_FRONTEND="noninteractive" $SUDO dpkg -i "$VAR_PATH/mysql-apt-config_0.8.35-1_all.deb" MYSQL_APT_CONFIG_VERSION=0.8.36-1
$SUDO apt-get update # # # # #
DEBIAN_FRONTEND="noninteractive" $SUDO apt-get install -y mysql-server libmysqlclient-dev mkdir -p "$VAR_PATH/mysqlpackages" && cd "$VAR_PATH/mysqlpackages"
# Download
wget "https://dev.mysql.com/get/mysql-apt-config_${MYSQL_APT_CONFIG_VERSION}_all.deb"
# Install
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i ./mysql-apt-config_${MYSQL_APT_CONFIG_VERSION}_all.deb
sudo apt update
sudo DEBIAN_FRONTEND="noninteractive" apt install -y mysql-server libmysqlclient-dev
# Cleanup
rm -v mysql-apt-config_${MYSQL_APT_CONFIG_VERSION}_all* && unset MYSQL_APT_CONFIG_VERSION

View File

@@ -0,0 +1,17 @@
-- DB update 2026_01_08_00 -> 2026_01_09_00
--
DELETE FROM `creature` WHERE `guid` IN (106509, 106879, 106611, 106612, 106613) AND `id1` IN (23666, 23667, 23670);
INSERT INTO `creature` (`guid`, `id1`, `id2`, `id3`, `map`, `zoneId`, `areaId`, `spawnMask`, `phaseMask`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `unit_flags`, `CreateObject`, `VerifiedBuild`) VALUES
(106509, 23666, 23667, 23670, 571, 495, 3980, 1, 1, 1, 1212.23486328125, -5282.193359375, 178.7692413330078125, 6.091198921203613281, 120, 33554432, 1, 53788),
(106879, 23666, 23667, 23670, 571, 495, 3980, 1, 1, 1, 1226.8583984375, -5312.6591796875, 179.46478271484375, 3.96189737319946289, 120, 33554432, 1, 53788),
(106611, 23666, 23667, 23670, 571, 495, 3980, 1, 1, 1, 1247.4696044921875, -5301.1455078125, 178.558868408203125, 2.897246599197387695, 120, 33554432, 1, 53788),
(106612, 23666, 23667, 23670, 571, 495, 3980, 1, 1, 1, 1241.3194580078125, -5319.017578125, 177.4776763916015625, 0.890117883682250976, 120, 33554432, 1, 53788),
(106613, 23666, 23667, 23670, 571, 495, 3980, 1, 1, 1, 1252.26025390625, -5307.59375, 177.487030029296875, 0.837758064270019531, 120, 33554432, 1, 53788);
DELETE FROM `creature_addon` WHERE (`guid` IN (106509, 106879, 106611, 106612, 106613));
INSERT INTO `creature_addon` (`guid`, `bytes2`, `auras`) VALUES
(106509, 1, '29266'),
(106879, 1, '29266'),
(106611, 1, '29266'),
(106612, 1, '29266'),
(106613, 1, '29266');

View File

@@ -0,0 +1,67 @@
-- DB update 2026_01_09_00 -> 2026_01_09_01
--
DELETE FROM `spell_area` WHERE `spell` = 58139 AND `area` = 4588 AND `quest_start` = 13144;
INSERT INTO `spell_area` (`spell`, `area`, `quest_start`, `quest_end`, `aura_spell`, `racemask`, `gender`, `autocast`, `quest_start_status`, `quest_end_status`) VALUES
(58139, 4588, 13144, 13220, 0, 0, 2, 1, 64, 9);
UPDATE `creature` SET `phaseMask` = `phaseMask`|64 WHERE `id1` = 30631 AND `guid` = 123657;
UPDATE `creature_template` SET `AIName` = 'SmartAI' WHERE `entry` = 30631;
DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 30631);
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
(30631, 0, 0, 0, 20, 0, 100, 0, 13144, 30000, 30000, 0, 0, 0, 80, 3063100, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Darkrider Arly - On Quest \'Killing Two Scourge With One Skeleton\' Finished - Run Script');
DELETE FROM `smart_scripts` WHERE (`source_type` = 9 AND `entryorguid` = 3063100);
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
(3063100, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 12, 31428, 8, 0, 0, 0, 0, 8, 0, 0, 0, 0, 6648.76, 3217.7263, 810.50073, 1.6057028770446777, 'Darkrider Arly - Actionlist - Summon Creature \'Crusader Olakin Sainrith\''),
(3063100, 9, 1, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 12, 31432, 8, 0, 0, 0, 0, 8, 0, 0, 0, 0, 6588.4272, 3278.2026, 818.2033, 5.044001579284668, 'Darkrider Arly - Actionlist - Summon Creature \'Ghostwing\'');
DELETE FROM `conditions` WHERE (`SourceTypeOrReferenceId` = 22) AND (`SourceGroup` = 1) AND (`SourceEntry` = 31428) AND (`SourceId` = 0) AND (`ElseGroup` = 0) AND (`ConditionTypeOrReference` = 23) AND (`ConditionTarget` = 1) AND (`ConditionValue1` = 4530) AND (`ConditionValue2` = 0) AND (`ConditionValue3` = 0);
INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
(22, 1, 31428, 0, 0, 23, 1, 4530, 0, 0, 0, 0, 0, '', 'Only run script if summon occurs in Sanctum of Reanimation (4530)');
DELETE FROM `conditions` WHERE (`SourceTypeOrReferenceId` = 22) AND (`SourceGroup` = 6) AND (`SourceEntry` = 31428) AND (`SourceId` = 0) AND (`ElseGroup` = 0) AND (`ConditionTypeOrReference` = 23) AND (`ConditionTarget` = 1) AND (`ConditionValue1` = 4588) AND (`ConditionValue2` = 0) AND (`ConditionValue3` = 0);
INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
(22, 6, 31428, 0, 0, 23, 1, 4588, 0, 0, 0, 0, 0, '', 'Only run script if summon occurs in Blackwatch (4588)');
DELETE FROM `conditions` WHERE (`SourceTypeOrReferenceId` = 13) AND (`SourceGroup` = 1) AND (`SourceEntry` = 59091) AND (`SourceId` = 0) AND (`ElseGroup` = 0) AND (`ConditionTypeOrReference` = 31) AND (`ConditionTarget` = 0) AND (`ConditionValue1` = 3) AND (`ConditionValue2` = 31432) AND (`ConditionValue3` = 0);
INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
(13, 1, 59091, 0, 0, 31, 0, 3, 31432, 0, 0, 0, 0, '', 'Ride Ghostwing (59091) Only Targets Ghostwing (31432)');
UPDATE `creature_template_addon` SET `mount` = 0 WHERE (`entry` = 31428);
DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 31428);
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
(31428, 0, 0, 1, 54, 0, 100, 0, 0, 0, 0, 0, 0, 0, 2, 1770, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Crusader Olakin Sainrith - On Just Summoned, Condition: Only in Sanctum of Reanimation - Set Faction 1770'),
(31428, 0, 1, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 80, 3142800, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Crusader Olakin Sainrith - On Just Summoned - Run Script'),
(31428, 0, 2, 3, 38, 0, 100, 0, 1, 1, 0, 0, 0, 0, 22, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Crusader Olakin Sainrith - On Data Set 1 1 - Set Event Phase 1'),
(31428, 0, 3, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 49, 0, 0, 0, 0, 0, 0, 10, 74956, 30698, 0, 0, 0, 0, 0, 0, 'Crusader Olakin Sainrith - On Data Set 1 1 - Start Attacking'),
(31428, 0, 4, 0, 7, 1, 100, 0, 0, 0, 0, 0, 0, 0, 41, 8000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Crusader Olakin Sainrith - On Evade - Despawn In 8000 ms (Phase 1)'),
(31428, 0, 5, 0, 54, 0, 100, 0, 0, 0, 0, 0, 0, 0, 80, 3142801, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Crusader Olakin Sainrith - On Just Summoned, Condition: Only in Blackwatch - Run Script');
DELETE FROM `smart_scripts` WHERE (`source_type` = 9 AND `entryorguid` = 3142801);
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
(3142801, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 44, 64, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Crusader Olakin Sainrith - Actionlist - Set PhaseMask 64'),
(3142801, 9, 1, 0, 0, 0, 100, 0, 1300, 1300, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Crusader Olakin Sainrith - Actionlist - Say Line 1');
UPDATE `creature_template` SET `AIName` = 'SmartAI', `unit_flags` = 768 WHERE `entry` = 31432;
UPDATE `creature_template_movement` SET `Flight` = 2 WHERE (`CreatureId` = 31432);
DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 31432);
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
(31432, 0, 0, 0, 54, 0, 100, 0, 0, 0, 0, 0, 0, 0, 80, 3143200, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Ghostwing - On Just Summoned - Run Script'),
(31432, 0, 1, 0, 34, 0, 100, 0, 8, 1, 0, 0, 0, 0, 80, 3143201, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Ghostwing - On Reached Point Blackwatch - Run Script'),
(31432, 0, 2, 3, 34, 0, 100, 0, 8, 2, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 19, 31428, 40, 0, 0, 0, 0, 0, 0, 'Ghostwing - On Reached Despawn Point - Despawn Olakin'),
(31432, 0, 3, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Ghostwing - On Reached Despawn Point - Despawn Self');
DELETE FROM `smart_scripts` WHERE (`source_type` = 9 AND `entryorguid` = 3143200);
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
(3143200, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 44, 64, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Ghostwing - Actionlist - Set PhaseMask 64'),
(3143200, 9, 1, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 239, 3, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Ghostwing - Actionlist - Set AnimTier Flying'),
(3143200, 9, 2, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 69, 1, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 6644.4297, 3222.9124, 823.0705, 0, 'Ghostwing - Actionlist - Move To Position');
DELETE FROM `smart_scripts` WHERE (`source_type` = 9 AND `entryorguid` = 3143201);
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
(3143201, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 5, 460, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Ghostwing - Actionlist - Play Emote 460 (OneShotFlyDragonSpit)'),
(3143201, 9, 1, 0, 0, 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, 'Ghostwing - Actionlist - Say Line 0'),
(3143201, 9, 2, 0, 0, 0, 100, 0, 6470, 6470, 0, 0, 0, 0, 5, 452, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Ghostwing - Actionlist - Play Emote 452 (OneShotFlyGrab)'),
(3143201, 9, 3, 0, 0, 0, 100, 0, 400, 400, 0, 0, 0, 0, 86, 59091, 2, 19, 31428, 40, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Ghostwing - Actionlist - Cross Cast \'Ride Ghostwing\''),
(3143201, 9, 4, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 64, 1, 0, 0, 0, 0, 0, 19, 30631, 40, 0, 0, 0, 0, 0, 0, 'Ghostwing - Actionlist - Store Arly as Target'),
(3143201, 9, 5, 0, 0, 0, 100, 0, 2840, 2840, 0, 0, 0, 0, 69, 2, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 6690.6504, 3177.2793, 860.5705, 0, 'Ghostwing - Actionlist - Move To Position'),
(3143201, 9, 6, 0, 0, 0, 100, 0, 1200, 1200, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 12, 1, 0, 0, 0, 0, 0, 0, 0, 'Ghostwing - Actionlist - Arly Say Line 0');

View File

@@ -0,0 +1,5 @@
-- DB update 2026_01_09_01 -> 2026_01_10_00
--
DELETE FROM `conditions` WHERE (`SourceTypeOrReferenceId` = 17) AND (`SourceGroup` = 0) AND (`SourceEntry` = 49266) AND (`SourceId` = 0) AND (`ElseGroup` = 0) AND (`ConditionTypeOrReference` = 1) AND (`ConditionTarget` = 1) AND (`ConditionValue1` = 49282) AND (`ConditionValue2` = 0) AND (`ConditionValue3` = 0);
INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
(17, 0, 49266, 0, 0, 1, 1, 49282, 0, 0, 1, 0, 0, '', 'Mounting Up (12414): Dangle Wild Carrot (49266) cannot be cast on a horse that is already mounted with Ride Highland Mustang (49282)');

View File

@@ -0,0 +1,5 @@
-- DB update 2026_01_10_00 -> 2026_01_12_00
-- bb
DELETE FROM `spell_script_names` WHERE `spell_id` = -49182;
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
(-49182, 'spell_dk_blade_barrier');

View File

@@ -0,0 +1,9 @@
-- DB update 2026_01_12_00 -> 2026_01_12_01
--
DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 314 AND `id` = 1);
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param6`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
(314, 0, 1, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 11, 20819, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 'Eliza - In Combat - Cast Frostbolt');
DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 5354 AND `id` = 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
(5354, 0, 0, 0, 4, 0, 100, 0, 0, 0, 0, 0, 0, 0, 11, 11922, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Gnarl Leafbrother - On Aggro - Cast Entangling Roots');

View File

@@ -0,0 +1,14 @@
-- DB update 2026_01_12_01 -> 2026_01_13_00
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` = 1 AND `SourceEntry` = 20400 AND `ConditionTypeOrReference` = 12;
INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
(1, 27830, 20400, 0, 0, 12, 0, 12, 0, 0, 0, 0, 0, '', 'Pumpkin Bag - Venture Co. Evacuee - Requires Hallow''s End'),
(1, 29330, 20400, 0, 0, 12, 0, 12, 0, 0, 0, 0, 0, '', 'Pumpkin Bag - Onslaught Harbor Guard - Requires Hallow''s End'),
(1, 29722, 20400, 0, 0, 12, 0, 12, 0, 0, 0, 0, 0, '', 'Pumpkin Bag - Rabid Cannibal - Requires Hallow''s End'),
(1, 30243, 20400, 0, 0, 12, 0, 12, 0, 0, 0, 0, 0, '', 'Pumpkin Bag - Njorndar Spear-Sister - Requires Hallow''s End'),
(1, 30687, 20400, 0, 0, 12, 0, 12, 0, 0, 0, 0, 0, '', 'Pumpkin Bag - Skeletal Constructor - Requires Hallow''s End'),
(1, 31738, 20400, 0, 0, 12, 0, 12, 0, 0, 0, 0, 0, '', 'Pumpkin Bag - Cultist Corrupter - Requires Hallow''s End'),
(1, 32259, 20400, 0, 0, 12, 0, 12, 0, 0, 0, 0, 0, '', 'Pumpkin Bag - Void Summoner - Requires Hallow''s End');
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` = 1 AND `SourceEntry` = 21235 AND `ConditionTypeOrReference` = 12;
INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
(1, 11459, 21235, 0, 0, 12, 0, 2, 0, 0, 0, 0, 0, '', 'Winter Veil Roast - Ironbark Protector - Requires Winter Veil');

View File

@@ -0,0 +1,28 @@
-- DB update 2026_01_13_00 -> 2026_01_13_01
--
DELETE FROM `smart_scripts` WHERE (`source_type` = 9 AND `entryorguid` = 2936800);
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
(2936800, 9, 0 , 0, 0, 0, 100, 0, 1000, 1000, 0, 0, 0, 0, 12, 29801, 4, 40000, 0, 0, 0, 8, 0, 0, 0, 0, 7725, 105, 1010.64, 1.6, 'Valduran the Stormborn - Actionlist - Summon Creature \'Bouldercrag the Rockshaper\''),
(2936800, 9, 1 , 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Valduran the Stormborn - Actionlist - Set Fly Off'),
(2936800, 9, 2 , 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 12, 30152, 4, 40000, 0, 0, 0, 8, 0, 0, 0, 0, 7734, 113, 1010.64, 3, 'Valduran the Stormborn - Actionlist - Summon Creature \'Bruor Ironbane\''),
(2936800, 9, 3 , 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 81, 0, 0, 0, 0, 0, 0, 11, 0, 30, 0, 0, 0, 0, 0, 0, 'Valduran the Stormborn - Actionlist - Set Npc Flag '),
(2936800, 9, 4 , 0, 0, 0, 100, 0, 2000, 2000, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 19, 29801, 30, 0, 0, 0, 0, 0, 0, 'Valduran the Stormborn - Actionlist - Say Line 0'),
(2936800, 9, 5 , 0, 0, 0, 100, 0, 5000, 5000, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 19, 30152, 30, 0, 0, 0, 0, 0, 0, 'Valduran the Stormborn - Actionlist - Say Line 0'),
(2936800, 9, 6 , 0, 0, 0, 100, 0, 6000, 6000, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 19, 30152, 30, 0, 0, 0, 0, 0, 0, 'Valduran the Stormborn - Actionlist - Say Line 1'),
(2936800, 9, 7 , 0, 0, 0, 100, 0, 5000, 5000, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Valduran the Stormborn - Actionlist - Say Line 0'),
(2936800, 9, 8 , 0, 0, 0, 100, 0, 8000, 8000, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Valduran the Stormborn - Actionlist - Say Line 1'),
(2936800, 9, 9, 0, 0, 0, 100, 0, 3000, 3000, 0, 0, 0, 0, 19, 768, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Valduran the Stormborn - Actionlist - Remove Flags Immune To Players & Immune To NPC\'s'),
(2936800, 9, 10, 0, 0, 0, 100, 0, 1000, 1000, 0, 0, 0, 0, 49, 0, 0, 0, 0, 0, 0, 21, 30, 0, 0, 0, 0, 0, 0, 0, 'Valduran the Stormborn - Actionlist - Start Attacking');
DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 29368);
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
(29368, 0, 1, 0, 25, 0, 100, 512, 0, 0, 0, 0, 0, 0, 11, 56220, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Valduran the Stormborn - On Reset - Cast \'Valduran`s Channel\''),
(29368, 0, 2, 3, 8, 0, 100, 513, 56189, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Valduran the Stormborn - On Spellhit \'Sound War Horn\' - Remove Auras (No Repeat)'),
(29368, 0, 3, 0, 61, 0, 100, 513, 0, 0, 0, 0, 0, 0, 80, 2936800, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Valduran the Stormborn - On Spellhit \'Sound War Horn\' - Run Script (No Repeat)'),
(29368, 0, 5, 0, 0, 0, 100, 0, 2000, 4000, 15000, 17000, 0, 0, 11, 56319, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Valduran the Stormborn - In Combat - Cast \'Ball Lightning\''),
(29368, 0, 6, 0, 0, 0, 100, 0, 5000, 7000, 8000, 10000, 0, 0, 11, 56326, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Valduran the Stormborn - In Combat - Cast \'Lightning Bolt\''),
(29368, 0, 7, 0, 0, 0, 100, 0, 11000, 13000, 25000, 30000, 0, 0, 11, 56322, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Valduran the Stormborn - In Combat - Cast \'Spark Frenzy\''),
(29368, 0, 8, 9, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 19, 29801, 30, 0, 0, 0, 0, 0, 0, 'Valduran the Stormborn - On Just Died - Say Line 1'),
(29368, 0, 9, 10, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 0, 0, 19, 30152, 30, 0, 0, 0, 0, 0, 0, 'Valduran the Stormborn - On Just Died - Say Line 2'),
(29368, 0, 10, 0, 61, 0, 100, 512, 0, 0, 0, 0, 0, 0, 33, 29368, 0, 0, 0, 0, 0, 18, 30, 0, 0, 0, 0, 0, 0, 0, 'Valduran the Stormborn - On Just Died - Quest Credit'),
(29368, 0, 11, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 18, 768, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Valduran the Stormborn - On Reset - Set Flags Immune To Players & Immune To NPC\'s');

View File

@@ -0,0 +1,40 @@
-- DB update 2026_01_13_01 -> 2026_01_13_02
--
DELETE FROM `creature` WHERE `guid` IN (202969, 202970) AND `id1` IN (28667, 28668);
DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 28659);
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
(28659, 0, 0, 1, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 12, 28667, 8, 0, 0, 0, 0, 8, 0, 0, 0, 0, 5616.92, 3772.68, -94.258, 1.78024, 'Artruis the Heartless - On Respawn - Summon Creature \'Jaloot\''),
(28659, 0, 1, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 12, 28668, 8, 0, 0, 0, 0, 8, 0, 0, 0, 0, 5631.63, 3794.36, -92.236, 3.45575, 'Artruis the Heartless - On Respawn - Summon Creature \'Zepik the Gorloc Hunter\''),
(28659, 0, 2, 0, 0, 0, 100, 0, 7000, 11000, 11000, 15000, 0, 0, 11, 54261, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 'Artruis the Heartless - In Combat - Cast \'Ice Lance\''),
(28659, 0, 3, 0, 0, 0, 100, 0, 3000, 5000, 3000, 5000, 0, 0, 11, 15530, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 'Artruis the Heartless - In Combat - Cast \'Frostbolt\''),
(28659, 0, 4, 0, 0, 0, 100, 0, 9000, 13000, 25000, 35000, 0, 0, 11, 54792, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Artruis the Heartless - In Combat - Cast \'Icy Veins\''),
(28659, 0, 5, 0, 9, 0, 100, 0, 7000, 9000, 14000, 18000, 0, 10, 11, 11831, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Artruis the Heartless - Within 0-10 Range - Cast \'Frost Nova\''),
(28659, 0, 6, 7, 2, 0, 100, 0, 0, 30, 0, 0, 0, 0, 11, 52185, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Artruis the Heartless - Between 0-30% Health - Cast \'Bindings of Submission\''),
(28659, 0, 7, 8, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 45, 1, 1, 0, 0, 0, 0, 12, 1, 0, 0, 0, 0, 0, 0, 0, 'Artruis the Heartless - Between 0-30% Health - Set Data 1 1 for Jaloot'),
(28659, 0, 8, 9, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 45, 1, 1, 0, 0, 0, 0, 12, 2, 0, 0, 0, 0, 0, 0, 0, 'Artruis the Heartless - Between 0-30% Health - Set Data 1 1 for Zepik the Gorloc Hunter'),
(28659, 0, 9, 10, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 1, 3, 10000, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Artruis the Heartless - Between 0-30% Health - Say Line 3'),
(28659, 0, 10, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 1, 4, 10000, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Artruis the Heartless - Between 0-30% Health - Say Line 4'),
(28659, 0, 11, 12, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 45, 1, 2, 0, 0, 0, 0, 12, 1, 0, 0, 0, 0, 0, 0, 0, 'Artruis the Heartless - On Reset - Set Data 1 2 for Jaloot'),
(28659, 0, 12, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 45, 1, 2, 0, 0, 0, 0, 12, 2, 0, 0, 0, 0, 0, 0, 0, 'Artruis the Heartless - On Reset - Set Data 1 2 for Zepik the Gorloc Hunter'),
(28659, 0, 13, 0, 2, 0, 100, 0, 0, 75, 0, 0, 0, 0, 1, 1, 10000, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Artruis the Heartless - Between 0-75% Health - Say Line 1'),
(28659, 0, 14, 0, 2, 0, 100, 0, 0, 50, 0, 0, 0, 0, 1, 2, 10000, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Artruis the Heartless - Between 0-50% Health - Say Line 2'),
(28659, 0, 17, 0, 4, 0, 100, 0, 0, 0, 0, 0, 0, 0, 1, 0, 10000, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Artruis the Heartless - On Aggro - Say Line 0'),
(28659, 0, 18, 19, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 11, 52518, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Artruis the Heartless - On Just Died - Cast \'Summon Artruis Quest Complete\''),
(28659, 0, 19, 20, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 45, 1, 3, 0, 0, 0, 0, 12, 1, 0, 0, 0, 0, 0, 0, 0, 'Artruis the Heartless - On Just Died - Set Data 1 3 for Jaloot'),
(28659, 0, 20, 21, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 45, 1, 3, 0, 0, 0, 0, 12, 2, 0, 0, 0, 0, 0, 0, 0, 'Artruis the Heartless - On Just Died - Set Data 1 3 for Zepik the Gorloc Hunter'),
(28659, 0, 21, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 1, 5, 10000, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Artruis the Heartless - On Just Died - Say Line 5'),
(28659, 0, 22, 23, 38, 0, 100, 0, 1, 1, 0, 0, 0, 0, 45, 1, 4, 0, 0, 0, 0, 12, 2, 0, 0, 0, 0, 0, 0, 0, 'Artruis the Heartless - On Data Set 1 1 - Set Data 1 4 for Zepik the Gorloc Hunter'),
(28659, 0, 23, 24, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 28, 52185, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Artruis the Heartless - On Data Set 1 1 - Remove Aura \'Bindings of Submission\''),
(28659, 0, 24, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 45, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Artruis the Heartless - On Data Set 1 1 - Set Data 1 0 for self'),
(28659, 0, 25, 26, 38, 0, 100, 0, 1, 2, 0, 0, 0, 0, 45, 1, 4, 0, 0, 0, 0, 12, 1, 0, 0, 0, 0, 0, 0, 0, 'Artruis the Heartless - On Data Set 1 2 - Set Data 1 4 for Jaloot'),
(28659, 0, 26, 27, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 28, 52185, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Artruis the Heartless - On Data Set 1 2 - Remove Aura \'Bindings of Submission\''),
(28659, 0, 27, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 45, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Artruis the Heartless - On Data Set 1 2 - Set Data 1 0'),
(28659, 0, 28, 0, 0, 0, 100, 0, 1000, 1000, 1000, 1000, 0, 0, 11, 53163, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Artruis the Heartless - In Combat - Cast \'Dessawn Retainer\''),
(28659, 0, 29, 0, 17, 0, 100, 0, 28667, 0, 0, 0, 0, 0, 64, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Artruis the Heartless - On Summoned Unit - Store Targetlist 1 (Jaloot)'),
(28659, 0, 30, 0, 17, 0, 100, 0, 28668, 0, 0, 0, 0, 0, 64, 2, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Artruis the Heartless - On Summoned Unit - Store Targetlist 2 (Zepik)'),
(28659, 0, 31, 32, 7, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 0, 30, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Artruis the Heartless - On Evade - Despawn Instant'),
(28659, 0, 32, 33, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 12, 1, 0, 0, 0, 0, 0, 0, 0, 'Artruis the Heartless - On Evade - Despawn Summons'),
(28659, 0, 33, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 12, 2, 0, 0, 0, 0, 0, 0, 0, 'Artruis the Heartless - On Evade - Despawn Summons'),
(28659, 0, 34, 0, 107, 0, 100, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Artruis the Heartless - On Summoned Unit Evade - Evade'),
(28659, 0, 35, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 30000, 0, 0, 0, 0, 0, 12, 1, 0, 0, 0, 0, 0, 0, 0, 'Artruis the Heartless - On Just Died - Despawn Summons In 30s'),
(28659, 0, 36, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 30000, 0, 0, 0, 0, 0, 12, 2, 0, 0, 0, 0, 0, 0, 0, 'Artruis the Heartless - On Just Died - Despawn Summons In 30s');

View File

@@ -0,0 +1,124 @@
-- DB update 2026_01_13_02 -> 2026_01_13_03
-- Implicit Targets
DELETE FROM `conditions` WHERE (`SourceTypeOrReferenceId` = 13) AND (`SourceGroup` = 1) AND (`SourceEntry` IN (52833, 52834, 52837, 52838)) AND (`SourceId` = 0) AND (`ElseGroup` = 0) AND (`ConditionTypeOrReference` = 31) AND (`ConditionValue1` = 3) AND (`ConditionValue2` = 26298);
INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
(13, 1, 52834, 0, 0, 31, 0, 3, 26298, 113551, 0, 0, 0, '', 'Rampage: Akali\'s Chains can only target specific paws'),
(13, 1, 52833, 0, 0, 31, 0, 3, 26298, 113550, 0, 0, 0, '', 'Rampage: Akali\'s Chains can only target specific paws'),
(13, 1, 52837, 0, 0, 31, 0, 3, 26298, 113478, 0, 0, 0, '', 'Rampage: Akali\'s Chains can only target specific paws'),
(13, 1, 52838, 0, 0, 31, 0, 3, 26298, 113479, 0, 0, 0, '', 'Rampage: Akali\'s Chains can only target specific paws');
-- Right Front Paw
DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = -113549);
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
(-113549, 0, 0, 1, 72, 0, 100, 0, 10, 0, 0, 0, 0, 0, 11, 52834, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'ELM General Purpose Bunny (scale x0.01) Large - On Action 10 Received: Reset \'Rampage\' Status - Cast \'Rampage: Akali`s Chains - Right Front Paw\''),
(-113549, 0, 1, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 22, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'ELM General Purpose Bunny (scale x0.01) Large - On Action 10 Received: Reset \'Rampage\' Status - Set Event Phase 1'),
(-113549, 0, 2, 3, 8, 1, 100, 0, 52816, 0, 0, 0, 0, 0, 28, 52834, 0, 0, 0, 0, 0, 10, 113551, 26298, 0, 0, 0, 0, 0, 0, 'ELM General Purpose Bunny (scale x0.01) Large - On Spellhit \'Rampage: Akali Chain Anchor On Disturb\' - Remove Aura \'Rampage: Akali`s Chains - Right Front Paw\' (Phase 1)'),
(-113549, 0, 3, 4, 61, 1, 100, 0, 0, 0, 0, 0, 0, 0, 223, 11, 0, 0, 0, 0, 0, 10, 98159, 28952, 0, 0, 0, 0, 0, 0, 'ELM General Purpose Bunny (scale x0.01) Large - On Spellhit \'Rampage: Akali Chain Anchor On Disturb\' - Do Action ID 11 On Akali: Right Front Paw Freed (Phase 1)'),
(-113549, 0, 4, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'ELM General Purpose Bunny (scale x0.01) Large - On Spellhit \'Rampage: Akali Chain Anchor On Disturb\' - Set Event Phase 0 (Phase 1)');
DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = -100336);
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
(-100336, 0, 0, 0, 8, 0, 100, 512, 52816, 0, 0, 0, 0, 0, 28, 52855, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'ELM General Purpose Bunny Large - On Spellhit \'Rampage: Akali Chain Anchor On Disturb\' - Remove Aura \'Cosmetic - Low Poly Fire (with Sound)\' on Self'),
(-100336, 0, 1, 0, 72, 0, 100, 0, 10, 0, 0, 0, 0, 0, 11, 52855, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'ELM General Purpose Bunny Large - On Action 10 Received: Reset \'Rampage\' Status - Cast \'Cosmetic - Low Poly Fire (with Sound)\' on Self');
-- Left Front Paw
DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = -113548);
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
(-113548, 0, 0, 1, 72, 0, 100, 0, 10, 0, 0, 0, 0, 0, 11, 52833, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'ELM General Purpose Bunny (scale x0.01) Large - On Action 10 Received: Reset \'Rampage\' Status - Cast \'Rampage: Akali`s Chains - Left Front Paw\''),
(-113548, 0, 1, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 22, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'ELM General Purpose Bunny (scale x0.01) Large - On Action 10 Received: Reset \'Rampage\' Status - Set Event Phase 1'),
(-113548, 0, 2, 3, 8, 1, 100, 0, 52816, 0, 0, 0, 0, 0, 28, 52833, 0, 0, 0, 0, 0, 10, 113550, 26298, 0, 0, 0, 0, 0, 0, 'ELM General Purpose Bunny (scale x0.01) Large - On Spellhit \'Rampage: Akali Chain Anchor On Disturb\' - Remove Aura \'Rampage: Akali`s Chains - Left Front Paw\' (Phase 1)'),
(-113548, 0, 3, 4, 61, 1, 100, 0, 0, 0, 0, 0, 0, 0, 223, 11, 0, 0, 0, 0, 0, 10, 98159, 28952, 0, 0, 0, 0, 0, 0, 'ELM General Purpose Bunny (scale x0.01) Large - On Spellhit \'Rampage: Akali Chain Anchor On Disturb\' - Do Action ID 11 On Akali: Left Front Paw Freed (Phase 1)'),
(-113548, 0, 4, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'ELM General Purpose Bunny (scale x0.01) Large - On Spellhit \'Rampage: Akali Chain Anchor On Disturb\' - Set Event Phase 0 (Phase 1)');
DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = -100333);
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
(-100333, 0, 0, 0, 8, 0, 100, 512, 52816, 0, 0, 0, 0, 0, 28, 52855, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'ELM General Purpose Bunny Large - On Spellhit \'Rampage: Akali Chain Anchor On Disturb\' - Remove Aura \'Cosmetic - Low Poly Fire (with Sound)\' on Self'),
(-100333, 0, 1, 0, 72, 0, 100, 0, 10, 0, 0, 0, 0, 0, 11, 52855, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'ELM General Purpose Bunny Large - On Action 10 Received: Reset \'Rampage\' Status - Cast \'Cosmetic - Low Poly Fire (with Sound)\' on Self');
-- Right Rear Paw
DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = -61994);
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
(-61994, 0, 0, 1, 72, 0, 100, 0, 10, 0, 0, 0, 0, 0, 11, 52837, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'ELM General Purpose Bunny (scale x0.01) Large - On Action 10 Received: Reset \'Rampage\' Status - Cast \'Rampage: Akali`s Chains - Right Rear Paw\''),
(-61994, 0, 1, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 22, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'ELM General Purpose Bunny (scale x0.01) Large - On Action 10 Received: Reset \'Rampage\' Status - Set Event Phase 1'),
(-61994, 0, 2, 3, 8, 1, 100, 0, 52816, 0, 0, 0, 0, 0, 28, 52837, 0, 0, 0, 0, 0, 10, 113478, 26298, 0, 0, 0, 0, 0, 0, 'ELM General Purpose Bunny (scale x0.01) Large - On Spellhit \'Rampage: Akali Chain Anchor On Disturb\' - Remove Aura \'Rampage: Akali`s Chains - Right Rear Paw\' (Phase 1)'),
(-61994, 0, 3, 4, 61, 1, 100, 0, 0, 0, 0, 0, 0, 0, 223, 11, 0, 0, 0, 0, 0, 10, 98159, 28952, 0, 0, 0, 0, 0, 0, 'ELM General Purpose Bunny (scale x0.01) Large - On Spellhit \'Rampage: Akali Chain Anchor On Disturb\' - Do Action ID 11 On Akali: Right Rear Paw Freed (Phase 1)'),
(-61994, 0, 4, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'ELM General Purpose Bunny (scale x0.01) Large - On Spellhit \'Rampage: Akali Chain Anchor On Disturb\' - Set Event Phase 0 (Phase 1)');
DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = -100335);
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
(-100335, 0, 0, 0, 8, 0, 100, 512, 52816, 0, 0, 0, 0, 0, 28, 52855, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'ELM General Purpose Bunny Large - On Spellhit \'Rampage: Akali Chain Anchor On Disturb\' - Remove Aura \'Cosmetic - Low Poly Fire (with Sound)\' on Self'),
(-100335, 0, 1, 0, 72, 0, 100, 0, 10, 0, 0, 0, 0, 0, 11, 52855, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'ELM General Purpose Bunny Large - On Action 10 Received: Reset \'Rampage\' Status - Cast \'Cosmetic - Low Poly Fire (with Sound)\' on Self');
-- Left Rear Paw
DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = -61995);
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
(-61995, 0, 0, 1, 72, 0, 100, 0, 10, 0, 0, 0, 0, 0, 11, 52838, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'ELM General Purpose Bunny (scale x0.01) Large - On Action 10 Received: Reset \'Rampage\' Status - Cast \'Rampage: Akali`s Chains - Left Rear Paw\''),
(-61995, 0, 1, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 22, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'ELM General Purpose Bunny (scale x0.01) Large - On Action 10 Received: Reset \'Rampage\' Status - Set Event Phase 1'),
(-61995, 0, 2, 3, 8, 1, 100, 0, 52816, 0, 0, 0, 0, 0, 28, 52838, 0, 0, 0, 0, 0, 10, 113479, 26298, 0, 0, 0, 0, 0, 0, 'ELM General Purpose Bunny (scale x0.01) Large - On Spellhit \'Rampage: Akali Chain Anchor On Disturb\' - Remove Aura \'Rampage: Akali`s Chains - Left Rear Paw\' (Phase 1)'),
(-61995, 0, 3, 4, 61, 1, 100, 0, 0, 0, 0, 0, 0, 0, 223, 11, 0, 0, 0, 0, 0, 10, 98159, 28952, 0, 0, 0, 0, 0, 0, 'ELM General Purpose Bunny (scale x0.01) Large - On Spellhit \'Rampage: Akali Chain Anchor On Disturb\' - Do Action ID 11 On Akali: Left Rear Paw Freed (Phase 1)'),
(-61995, 0, 4, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'ELM General Purpose Bunny (scale x0.01) Large - On Spellhit \'Rampage: Akali Chain Anchor On Disturb\' - Set Event Phase 0 (Phase 1)');
DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = -100334);
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
(-100334, 0, 0, 0, 8, 0, 100, 512, 52816, 0, 0, 0, 0, 0, 28, 52855, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'ELM General Purpose Bunny Large - On Spellhit \'Rampage: Akali Chain Anchor On Disturb\' - Remove Aura \'Cosmetic - Low Poly Fire (with Sound)\' on Self'),
(-100334, 0, 1, 0, 72, 0, 100, 0, 10, 0, 0, 0, 0, 0, 11, 52855, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'ELM General Purpose Bunny Large - On Action 10 Received: Reset \'Rampage\' Status - Cast \'Cosmetic - Low Poly Fire (with Sound)\' on Self');
-- Center
DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = -61996);
-- Akali
DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 28952);
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
(28952, 0, 0, 0, 77, 0, 100, 512, 1, 4, 0, 0, 0, 0, 80, 2895200, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Akali - On 4 Chains Broken - Run Quest Success Script'),
(28952, 0, 1, 2, 8, 0, 100, 512, 52859, 0, 0, 0, 0, 0, 102, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Akali - On Spellhit \'Submission\' - Set Health Regeneration Off'),
(28952, 0, 2, 3, 61, 0, 100, 512, 0, 0, 0, 0, 0, 0, 18, 768, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Akali - On Spellhit \'Submission\' - Set Flags Immune To Players & Immune To NPC\'s'),
(28952, 0, 3, 0, 61, 0, 100, 512, 0, 0, 0, 0, 0, 0, 69, 1, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 6829.59, -4525.52, 442.068, 0, 'Akali - On Spellhit \'Submission\' - Move To Position'),
(28952, 0, 4, 0, 34, 0, 100, 512, 0, 1, 0, 0, 0, 0, 80, 2895201, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Akali - On Reached Point 1 - Run Quest End Script'),
(28952, 0, 5, 0, 9, 0, 100, 0, 0, 0, 10000, 10000, 0, 80, 11, 52856, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 'Akali - Within 0-80 Range - Cast \'Charge\''),
(28952, 0, 6, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 80, 2895202, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Akali - On Respawn - Run Quest Reset Script'),
(28952, 0, 7, 0, 72, 0, 100, 0, 11, 0, 0, 0, 0, 0, 63, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Akali - On Action 11 Done: Paw Freed - Add 1 to Broken Chains Counter');
DELETE FROM `smart_scripts` WHERE (`source_type` = 9 AND `entryorguid` = 2895200);
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
(2895200, 9, 0, 0, 0, 0, 100, 0, 2000, 2000, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Akali - Quest Success Script - Say Line 0'),
(2895200, 9, 1, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 15, 12721, 0, 0, 0, 0, 0, 18, 60, 0, 0, 0, 0, 0, 0, 0, 'Akali - Quest Success Script - Quest Credit \'Rampage\''),
(2895200, 9, 2, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 107, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Akali - Quest Success Script - Summon Creature Group 1'),
(2895200, 9, 3, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 92, 0, 45579, 0, 0, 0, 0, 9, 28988, 0, 100, 0, 0, 0, 0, 0, 'Akali - Actionlist - Interrupt Spell \'Fire Channeling\''),
(2895200, 9, 4, 0, 0, 0, 100, 0, 4600, 4600, 0, 0, 0, 0, 19, 768, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Akali - Quest Success Script - Remove Flag Immune To NPC\'s'),
(2895200, 9, 5, 0, 0, 0, 100, 0, 55000, 55000, 0, 0, 0, 0, 12, 28996, 8, 0, 0, 0, 0, 8, 0, 0, 0, 0, 6882.03, -4571, 442.312, 2.37365, 'Akali - Quest Success Script - Summon Creature \'Prophet of Akali\'');
DELETE FROM `smart_scripts` WHERE (`source_type` = 9 AND `entryorguid` = 2895201);
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
(2895201, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 2, 35, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Akali - Quest End Script - Set Faction 35'),
(2895201, 9, 1, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Akali - Quest End Script - Evade'),
(2895201, 9, 2, 0, 0, 0, 100, 0, 200, 200, 0, 0, 0, 0, 66, 0, 0, 0, 0, 0, 0, 19, 28996, 100, 0, 0, 0, 0, 0, 0, 'Akali - Quest End Script - Set Orientation Closest Creature \'Prophet of Akali\''),
(2895201, 9, 3, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 45, 0, 1, 0, 0, 0, 0, 19, 28996, 100, 0, 0, 0, 0, 0, 0, 'Akali - Quest End Script - Set Data 0 1');
DELETE FROM `smart_scripts` WHERE (`source_type` = 9 AND `entryorguid` = 2895202);
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
(2895202, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 18, 768, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Akali - Reset Script - Set Flags Immune To Players & Immune To NPC\'s'),
(2895202, 9, 1, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 2, 1770, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Akali - Reset Script - Set Faction 1770'),
(2895202, 9, 2, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 223, 10, 0, 0, 0, 0, 0, 9, 0, 0, 100, 0, 0, 0, 0, 0, 'Akali - Reset Script - Do Action ID 28952: Relay Reset \'Rampage\' to All Creatures'),
(2895202, 9, 3, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 102, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Akali - Actionlist - Set Health Regeneration Off'),
(2895202, 9, 4, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 63, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Akali - Actionlist - Reset Counter');
DELETE FROM `creature_addon` WHERE (`guid` IN (100333, 100334, 100335, 100336));
UPDATE `creature_template` SET `flags_extra` = `flags_extra`|134217728 WHERE (`entry` = 28988);
DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` IN (-101661,-101662,-101663,-101665,-101666,-101667,-101668,-101669,-203572,-203573,-203574,-203575,-203576,-203577));
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
(-101661, 0, 1000, 0, 72, 0, 100, 0, 10, 0, 0, 0, 0, 0, 11, 45579, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Akali Subduer - On Action 10 Done - Cast \'Fire Channeling\''),
(-101662, 0, 1000, 0, 72, 0, 100, 0, 10, 0, 0, 0, 0, 0, 11, 45579, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Akali Subduer - On Action 10 Done - Cast \'Fire Channeling\''),
(-101663, 0, 1000, 0, 72, 0, 100, 0, 10, 0, 0, 0, 0, 0, 11, 45579, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Akali Subduer - On Action 10 Done - Cast \'Fire Channeling\''),
(-101665, 0, 1000, 0, 72, 0, 100, 0, 10, 0, 0, 0, 0, 0, 11, 45579, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Akali Subduer - On Action 10 Done - Cast \'Fire Channeling\''),
(-101666, 0, 1000, 0, 72, 0, 100, 0, 10, 0, 0, 0, 0, 0, 11, 45579, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Akali Subduer - On Action 10 Done - Cast \'Fire Channeling\''),
(-101667, 0, 1000, 0, 72, 0, 100, 0, 10, 0, 0, 0, 0, 0, 11, 45579, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Akali Subduer - On Action 10 Done - Cast \'Fire Channeling\''),
(-101668, 0, 1000, 0, 72, 0, 100, 0, 10, 0, 0, 0, 0, 0, 11, 45579, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Akali Subduer - On Action 10 Done - Cast \'Fire Channeling\''),
(-101669, 0, 1000, 0, 72, 0, 100, 0, 10, 0, 0, 0, 0, 0, 11, 45579, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Akali Subduer - On Action 10 Done - Cast \'Fire Channeling\''),
(-203572, 0, 1000, 0, 72, 0, 100, 0, 10, 0, 0, 0, 0, 0, 11, 45579, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Akali Subduer - On Action 10 Done - Cast \'Fire Channeling\''),
(-203573, 0, 1000, 0, 72, 0, 100, 0, 10, 0, 0, 0, 0, 0, 11, 45579, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Akali Subduer - On Action 10 Done - Cast \'Fire Channeling\''),
(-203574, 0, 1000, 0, 72, 0, 100, 0, 10, 0, 0, 0, 0, 0, 11, 45579, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Akali Subduer - On Action 10 Done - Cast \'Fire Channeling\''),
(-203575, 0, 1000, 0, 72, 0, 100, 0, 10, 0, 0, 0, 0, 0, 11, 45579, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Akali Subduer - On Action 10 Done - Cast \'Fire Channeling\''),
(-203576, 0, 1000, 0, 72, 0, 100, 0, 10, 0, 0, 0, 0, 0, 11, 45579, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Akali Subduer - On Action 10 Done - Cast \'Fire Channeling\''),
(-203577, 0, 1000, 0, 72, 0, 100, 0, 10, 0, 0, 0, 0, 0, 11, 45579, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Akali Subduer - On Action 10 Done - Cast \'Fire Channeling\'');

View File

@@ -0,0 +1,61 @@
-- DB update 2026_01_13_03 -> 2026_01_14_00
-- Gryphon
UPDATE `creature_template` SET `AIName` = 'SmartAI' WHERE `entry` = 27886;
DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 27886);
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
(27886, 0, 0, 0, 27, 0, 100, 0, 0, 0, 0, 0, 0, 0, 80, 2788600, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Valgarde Gryphon - On Passenger Boarded - Run Script'),
(27886, 0, 1, 0, 108, 0, 100, 0, 15, 278861, 0, 0, 0, 0, 80, 2788601, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Valgarde Gryphon - On Point 15 of Path 278861 Reached - Run Script');
DELETE FROM `smart_scripts` WHERE (`source_type` = 9 AND `entryorguid` = 2788600);
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
(2788600, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 'Valgarde Gryphon - Actionlist - Say Line 0'),
(2788600, 9, 1, 0, 0, 0, 100, 0, 1200, 1200, 0, 0, 0, 0, 11, 49303, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Valgarde Gryphon - Actionlist - Cast \'Flight + Speed\''),
(2788600, 9, 2, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 232, 278861, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Valgarde Gryphon - Actionlist - Start Path 278861');
DELETE FROM `smart_scripts` WHERE (`source_type` = 9 AND `entryorguid` = 2788601);
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
(2788601, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 11, 45472, 2, 0, 0, 0, 0, 29, 1, 0, 0, 0, 0, 0, 0, 0, 'Valgarde Gryphon - Actionlist - Cast \'Parachute\''),
(2788601, 9, 1, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 11, 62539, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Valgarde Gryphon - Actionlist - Cast \'Eject Passenger 2\''),
(2788601, 9, 2, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 'Valgarde Gryphon - Actionlist - Say Line 1'),
(2788601, 9, 3, 0, 0, 0, 100, 0, 5000, 5000, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Valgarde Gryphon - Actionlist - Despawn Instant');
DELETE FROM `vehicle_template_accessory` WHERE `entry`=27886 AND `seat_id`=0;
INSERT INTO `vehicle_template_accessory` (`entry`, `accessory_entry`, `seat_id`, `minion`, `description`, `summontype`, `summontimer`) VALUES (27886, 27887, 0, 1, 'Valgarde Gryphon', 5, 0);
DELETE FROM `npc_spellclick_spells` WHERE `npc_entry`=27886 AND `spell_id`=48365;
INSERT INTO `npc_spellclick_spells` (`npc_entry`, `spell_id`, `cast_flags`, `user_type`) VALUES (27886, 48365, 1, 1);
DELETE FROM `waypoint_data` WHERE `id` = 278861;
INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`) VALUES
(278861, 1, 611.694, -5049.68, 24.2361, NULL, 0, 2),
(278861, 2, 645.473, -5088.02, 30.9664, NULL, 0, 2),
(278861, 3, 712.811, -5091.94, 35.1508, NULL, 0, 2),
(278861, 4, 943.165, -5001.23, 51.6465, NULL, 0, 2),
(278861, 5, 1043.21, -4975.55, 42.5367, NULL, 0, 2),
(278861, 6, 1105.99, -4981.37, 44.6164, NULL, 0, 2),
(278861, 7, 1168.69, -4956.15, 43.58, NULL, 0, 2),
(278861, 8, 1188.28, -4949.07, 43.8891, NULL, 0, 2),
(278861, 9, 1224.69, -5034.33, 45.4934, NULL, 0, 2),
(278861, 10, 1284.04, -5064.89, 70.9363, NULL, 0, 2),
(278861, 11, 1299.86, -5123.96, 92.313, NULL, 0, 2),
(278861, 12, 1268.89, -5172.31, 125.225, NULL, 0, 2),
(278861, 13, 1204.63, -5202.03, 162.438, NULL, 0, 2),
(278861, 14, 1264.15, -5293.07, 194.687, NULL, 0, 2),
(278861, 15, 1250.92, -5318.65, 202.334, NULL, 0, 2),
(278861, 16, 1100.08, -5329.92, 227.263, NULL, 0, 2);
-- Zorek
DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 23728);
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
(23728, 0, 0, 0, 10, 0, 100, 512, 1, 50, 120000, 300000, 0, 0, 80, 2372800, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Guard Captain Zorek - Within 1-50 Range Out of Combat LoS - Run Script'),
(23728, 0, 1, 0, 19, 0, 100, 0, 11427, 0, 0, 0, 0, 0, 134, 49845, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Guard Captain Zorek - On Quest \'Meet Lieutenant Icehammer...\' Taken - Invoker Cast \'Call Valgarde Gryphon\'');
DELETE FROM `spell_target_position` WHERE `ID` = 49845;
INSERT INTO `spell_target_position` (`ID`, `EffectIndex`, `MapID`, `PositionX`, `PositionY`, `PositionZ`, `Orientation`, `VerifiedBuild`) VALUES
(49845, 0, 571, 603.603, -5034.4, 1.1338, 0.694764, 0);
-- Rider
DELETE FROM `creature_text` WHERE `CreatureID` = 27887;
INSERT INTO `creature_text` (`CreatureID`, `GroupID`, `ID`, `Text`, `Type`, `Language`, `Probability`, `Emote`, `Duration`, `Sound`, `BroadcastTextId`, `TextRange`, `comment`) VALUES
(27887, 0, 0, 'Off we go!', 12, 7, 100, 0, 0, 0, 27225, 0, 'Valgarde Gryphon Rider'),
(27887, 1, 0, 'Here ya go, friend! Icehammer is right inside that vrykul building! Give \'em hell!', 12, 7, 100, 0, 0, 0, 27228, 0, 'Valgarde Gryphon Rider');

View File

@@ -0,0 +1,66 @@
-- DB update 2026_01_14_00 -> 2026_01_14_01
--
DELETE FROM `gossip_menu_option` WHERE (`MenuID` IN (1041, 1042, 1465, 1467, 1468, 1469, 2741, 2743, 2749, 2784, 3202, 3203, 4110, 4111, 4117, 4128, 4129, 4134, 4135, 4136, 4138, 4151, 4156, 4160, 4164, 4165, 4169, 4170, 4171, 4184, 4186, 4208, 4211, 4241, 4242, 4244, 4263, 4351, 4356, 4748, 4842, 4843, 7455, 7459, 7512, 7809, 7815, 7820, 7833, 8308, 8460, 8522, 8760, 8863, 9084, 9131, 9132, 10363, 10437, 10568, 21222, 61025));
INSERT INTO `gossip_menu_option` (`MenuID`, `OptionID`, `OptionIcon`, `OptionText`, `OptionBroadcastTextID`, `OptionType`, `OptionNpcFlag`, `ActionMenuID`, `ActionPoiID`, `BoxCoded`, `BoxMoney`, `BoxText`, `BoxBroadcastTextID`, `VerifiedBuild`) VALUES
(1041, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
(1042, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
(1465, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
(1467, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
(1468, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
(1469, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
(2741, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
(2743, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
(2749, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
(2784, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
(3202, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
(3203, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
(4110, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
(4111, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
(4117, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
(4128, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
(4129, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
(4134, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
(4135, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
(4136, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
(4138, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
(4151, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
(4156, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
(4160, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
(4164, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
(4165, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
(4169, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
(4170, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
(4171, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
(4184, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
(4186, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
(4208, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
(4211, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
(4241, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
(4242, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
(4244, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
(4263, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
(4351, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
(4356, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
(4748, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
(4842, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
(4843, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
(7455, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
(7459, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
(7512, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
(7809, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
(7815, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
(7820, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
(7833, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
(8308, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
(8460, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
(8522, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
(8760, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
(8863, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
(9084, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
(9131, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
(9132, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
(10363, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
(10437, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
(10568, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
(21222, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
(61025, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0);

View File

@@ -40,39 +40,39 @@ target_include_directories(sfmt
target_compile_definitions(sfmt PUBLIC -DSFMT_MEXP=19937) target_compile_definitions(sfmt PUBLIC -DSFMT_MEXP=19937)
# enable SIMD instructions if available # enable SIMD instructions if available
include(CheckCCompilerFlag) include(CheckCXXCompilerFlag)
if (CMAKE_SYSTEM_PROCESSOR MATCHES "(powerpc|ppc)64|(powerpc|ppc)64le")
check_c_compiler_flag("-maltivec" HAVE_ALTIVEC)
if (HAVE_ALTIVEC)
target_compile_options(sfmt PRIVATE -mabi=altivec -maltivec)
target_compile_definitions(sfmt PUBLIC -DHAVE_ALTIVEC)
else ()
message(WARNING "Altivec not available - performance will be poor!")
endif ()
elseif (CMAKE_SYSTEM_PROCESSOR MATCHES "arm|ARM")
check_c_compiler_flag(-mfpu=neon HAVE_NEON)
if (HAVE_NEON)
target_compile_options(sfmt PRIVATE -mfpu=neon -ftree-vectorize)
target_compile_definitions(sfmt PUBLIC -DHAVE_NEON)
else ()
message(WARNING "Neon not available - performance will be poor!")
endif ()
elseif (CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64|AARCH64")
check_c_compiler_flag(-march=armv8-a+simd HAVE_NEON)
if (HAVE_NEON)
target_compile_options(sfmt PRIVATE -ftree-vectorize)
target_compile_definitions(sfmt PUBLIC -DHAVE_NEON)
else ()
message(WARNING "Neon not available - performance will be poor!")
endif ()
elseif (CMAKE_SYSTEM_PROCESSOR MATCHES "i686|amd64|x86_64|AMD64")
#SSE2 is always available
set(HAVE_SSE2 1)
if (NOT CMAKE_C_COMPILER_ID MATCHES "MSVC") # MSVC does not have any flags to check
if (CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
if (ACORE_SYSTEM_PROCESSOR MATCHES "^arm")
set(HAVE_NEON 1)
else ()
set(HAVE_SSE2 1)
endif ()
else ()
if (ACORE_SYSTEM_PROCESSOR STREQUAL "arm")
check_cxx_compiler_flag(-mfpu=neon HAVE_NEON)
if (HAVE_NEON)
target_compile_options(sfmt PRIVATE -mfpu=neon -ftree-vectorize)
endif()
elseif (ACORE_SYSTEM_PROCESSOR STREQUAL "arm64")
check_cxx_compiler_flag(-march=armv8-a+simd HAVE_NEON)
if (HAVE_NEON)
target_compile_options(sfmt PRIVATE -ftree-vectorize)
endif ()
elseif (ACORE_SYSTEM_PROCESSOR MATCHES "x86|amd64")
#SSE2 is always available
set(HAVE_SSE2 1)
target_compile_options(sfmt PRIVATE -msse2) target_compile_options(sfmt PRIVATE -msse2)
endif () endif ()
target_compile_definitions(sfmt PUBLIC -DHAVE_SSE2) endif ()
if (HAVE_NEON)
target_compile_definitions(sfmt PUBLIC HAVE_NEON)
endif ()
if (HAVE_SSE2)
target_compile_definitions(sfmt PUBLIC HAVE_SSE2)
endif () endif ()
set_target_properties(sfmt PROPERTIES LINKER_LANGUAGE CXX) set_target_properties(sfmt PROPERTIES LINKER_LANGUAGE CXX)

View File

@@ -12,12 +12,12 @@
file(GLOB_RECURSE sources *.c) file(GLOB_RECURSE sources *.c)
if(CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64") if(ACORE_SYSTEM_PROCESSOR MATCHES "x86|amd64")
list(REMOVE_ITEM sources
${CMAKE_CURRENT_SOURCE_DIR}/argon2/opt.c)
else()
list(REMOVE_ITEM sources list(REMOVE_ITEM sources
${CMAKE_CURRENT_SOURCE_DIR}/argon2/ref.c) ${CMAKE_CURRENT_SOURCE_DIR}/argon2/ref.c)
else()
list(REMOVE_ITEM sources
${CMAKE_CURRENT_SOURCE_DIR}/argon2/opt.c)
endif() endif()
add_library(argon2 STATIC add_library(argon2 STATIC

View File

@@ -30,7 +30,7 @@ if(CMAKE_SYSTEM_NAME MATCHES "Linux" AND NOT NOJEM)
set(JEM_MADFREE_DEF "#undef") set(JEM_MADFREE_DEF "#undef")
endif() endif()
if(CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64") if(ACORE_SYSTEM_PROCESSOR MATCHES "arm")
set(JEM_CPU_SPINWAIT "") set(JEM_CPU_SPINWAIT "")
set(JEM_HAVE_CPU_SPINWAIT 0) set(JEM_HAVE_CPU_SPINWAIT 0)
else() else()

View File

@@ -31,11 +31,14 @@ if(PLATFORM EQUAL 32)
-mfpmath=sse) -mfpmath=sse)
endif() endif()
target_compile_definitions(acore-compile-option-interface if(ACORE_SYSTEM_PROCESSOR MATCHES "x86|amd64")
INTERFACE target_compile_definitions(acore-compile-option-interface
-DHAVE_SSE2 INTERFACE
-D__SSE2__) -DHAVE_SSE2
message(STATUS "GCC: SFMT enabled, SSE2 flags forced") -D__SSE2__)
message(STATUS "GCC: SFMT enabled, SSE2 flags forced")
endif()
if( WITH_WARNINGS ) if( WITH_WARNINGS )
target_compile_options(acore-warning-interface target_compile_options(acore-warning-interface

View File

@@ -21,6 +21,30 @@ endif()
include("${CMAKE_SOURCE_DIR}/src/cmake/platform/settings.cmake") include("${CMAKE_SOURCE_DIR}/src/cmake/platform/settings.cmake")
if(CMAKE_SYSTEM_PROCESSOR MATCHES "amd64|x86_64|AMD64")
set(ACORE_SYSTEM_PROCESSOR "amd64")
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^(arm|ARM|aarch|AARCH)64$")
set(ACORE_SYSTEM_PROCESSOR "arm64")
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^(arm|ARM|aarch|AARCH)$")
set(ACORE_SYSTEM_PROCESSOR "arm")
else()
set(ACORE_SYSTEM_PROCESSOR "x86")
endif()
# detect MSVC special case of using cmake -A switch (which doesn't set any cross compiling variables)
if(CMAKE_GENERATOR_PLATFORM STREQUAL "Win32")
set(ACORE_SYSTEM_PROCESSOR "x86")
elseif(CMAKE_GENERATOR_PLATFORM STREQUAL "x64")
set(ACORE_SYSTEM_PROCESSOR "amd64")
elseif(CMAKE_GENERATOR_PLATFORM STREQUAL "ARM")
set(ACORE_SYSTEM_PROCESSOR "arm")
elseif(CMAKE_GENERATOR_PLATFORM STREQUAL "ARM64")
set(ACORE_SYSTEM_PROCESSOR "arm64")
endif()
message(STATUS "Detected ${ACORE_SYSTEM_PROCESSOR} processor architecture")
if(WIN32) if(WIN32)
include("${CMAKE_SOURCE_DIR}/src/cmake/platform/win/settings.cmake") include("${CMAKE_SOURCE_DIR}/src/cmake/platform/win/settings.cmake")
elseif(UNIX) elseif(UNIX)

View File

@@ -227,7 +227,7 @@ elseif (MSVC)
set(_OPENSSL_MSI_INSTALL_GUIDS "") set(_OPENSSL_MSI_INSTALL_GUIDS "")
if("${CMAKE_SIZEOF_VOID_P}" STREQUAL "8") if("${CMAKE_SIZEOF_VOID_P}" STREQUAL "8")
if(CMAKE_SYSTEM_PROCESSOR MATCHES "ARM64") if(ACORE_SYSTEM_PROCESSOR STREQUAL "arm64")
set(_arch "Win64-ARM") set(_arch "Win64-ARM")
set(_OPENSSL_MSI_INSTALL_GUIDS "99C28AFA-6419-40B1-B88D-32B810BB4234") set(_OPENSSL_MSI_INSTALL_GUIDS "99C28AFA-6419-40B1-B88D-32B810BB4234")
else() else()
@@ -319,7 +319,7 @@ if(WIN32 AND NOT CYGWIN)
# Since OpenSSL 1.1, lib names are like libcrypto32MTd.lib and libssl32MTd.lib # Since OpenSSL 1.1, lib names are like libcrypto32MTd.lib and libssl32MTd.lib
if( "${CMAKE_SIZEOF_VOID_P}" STREQUAL "8" ) if( "${CMAKE_SIZEOF_VOID_P}" STREQUAL "8" )
set(_OPENSSL_MSVC_ARCH_SUFFIX "64") set(_OPENSSL_MSVC_ARCH_SUFFIX "64")
if(CMAKE_SYSTEM_PROCESSOR MATCHES "ARM64") if(ACORE_SYSTEM_PROCESSOR STREQUAL "arm64")
set(_OPENSSL_MSVC_ARCH_DIRECTORY "arm64") set(_OPENSSL_MSVC_ARCH_DIRECTORY "arm64")
else() else()
set(_OPENSSL_MSVC_ARCH_DIRECTORY "x64") set(_OPENSSL_MSVC_ARCH_DIRECTORY "x64")

View File

@@ -718,7 +718,6 @@ Logger.spells.scripts=2,Console Errors
Logger.playerbots=5,Console Playerbots Logger.playerbots=5,Console Playerbots
#Logger.achievement=4,Console Server #Logger.achievement=4,Console Server
#Logger.addon=4,Console Server #Logger.addon=4,Console Server
#Logger.ahbot=4,Console Server
#Logger.auctionHouse=4,Console Server #Logger.auctionHouse=4,Console Server
#Logger.autobroadcast=4, Console Server #Logger.autobroadcast=4, Console Server
#Logger.bg.arena=4,Console Server #Logger.bg.arena=4,Console Server

View File

@@ -951,6 +951,14 @@ void SmartAI::InitializeAI()
if (!(event.action.cast.castFlags & SMARTCAST_MAIN_SPELL)) if (!(event.action.cast.castFlags & SMARTCAST_MAIN_SPELL))
continue; continue;
SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(event.action.cast.spell);
if (spellInfo && spellInfo->IsPositive())
{
LOG_WARN("scripts.ai", "SmartAI: Creature {} has SMARTCAST_MAIN_SPELL on positive spell {} - positive spells should not be used as main spell",
me->GetEntry(), event.action.cast.spell);
continue;
}
SetMainSpell(event.action.cast.spell); SetMainSpell(event.action.cast.spell);
break; break;
} }
@@ -966,6 +974,11 @@ void SmartAI::InitializeAI()
if (!(event.action.cast.castFlags & SMARTCAST_COMBAT_MOVE)) if (!(event.action.cast.castFlags & SMARTCAST_COMBAT_MOVE))
continue; continue;
// Don't use positive (healing/buff) spells to determine attack distance
SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(event.action.cast.spell);
if (spellInfo && spellInfo->IsPositive())
continue;
SetMainSpell(event.action.cast.spell); SetMainSpell(event.action.cast.spell);
break; break;
} }

View File

@@ -6002,6 +6002,19 @@ void Player::RewardReputation(Unit* victim)
} }
} }
FactionTemplateEntry const* GetAnyFactionTemplateForFaction(uint32 factionId)
{
for (uint32 i = 0; i < sFactionTemplateStore.GetNumRows(); ++i)
{
if (FactionTemplateEntry const* factionTemplate = sFactionTemplateStore.LookupEntry(i))
{
if (factionTemplate->faction == factionId)
return factionTemplate;
}
}
return nullptr;
}
// Calculate how many reputation points player gain with the quest // Calculate how many reputation points player gain with the quest
void Player::RewardReputation(Quest const* quest) void Player::RewardReputation(Quest const* quest)
{ {
@@ -6055,10 +6068,24 @@ void Player::RewardReputation(Quest const* quest)
sScriptMgr->OnPlayerGiveReputation(this, quest->RewardFactionId[i], rep, REPUTATION_SOURCE_QUEST); sScriptMgr->OnPlayerGiveReputation(this, quest->RewardFactionId[i], rep, REPUTATION_SOURCE_QUEST);
} }
if (FactionEntry const* factionEntry = sFactionStore.LookupEntry(quest->RewardFactionId[i])) FactionEntry const* factionEntry = sFactionStore.LookupEntry(quest->RewardFactionId[i]);
if (!factionEntry)
continue;
FactionTemplateEntry const* templateEntry = GetAnyFactionTemplateForFaction(factionEntry->ID);
if (templateEntry)
{ {
GetReputationMgr().ModifyReputation(factionEntry, rep, quest->HasSpecialFlag(QUEST_SPECIAL_FLAGS_NO_REP_SPILLOVER)); bool hostile = (GetTeamId() == TEAM_ALLIANCE) ? templateEntry->IsHostileToAlliancePlayers()
: templateEntry->IsHostileToHordePlayers();
if (hostile)
{
LOG_DEBUG("sql.sql", "RewardReputation: {} is hostile with player ({}), skipping!", templateEntry->ID, GetGUID().ToString());
continue;
}
} }
GetReputationMgr().ModifyReputation(factionEntry, rep, quest->HasSpecialFlag(QUEST_SPECIAL_FLAGS_NO_REP_SPILLOVER));
} }
} }

View File

@@ -970,6 +970,9 @@ enum PlayerRestState
{ {
REST_STATE_RESTED = 0x01, REST_STATE_RESTED = 0x01,
REST_STATE_NOT_RAF_LINKED = 0x02, REST_STATE_NOT_RAF_LINKED = 0x02,
REST_STATE_TIRED = 0x03,
REST_STATE_TIRED_XP_REDUCED = 0x04, // 50% XP
REST_STATE_EXHAUSTED = 0x05, // 25% XP
REST_STATE_RAF_LINKED = 0x06 REST_STATE_RAF_LINKED = 0x06
}; };

View File

@@ -9629,6 +9629,28 @@ void ObjectMgr::LoadGossipMenuItems()
_gossipMenuItemsStore.insert(GossipMenuItemsContainer::value_type(gMenuItem.MenuID, gMenuItem)); _gossipMenuItemsStore.insert(GossipMenuItemsContainer::value_type(gMenuItem.MenuID, gMenuItem));
} while (result->NextRow()); } while (result->NextRow());
// Warn if any trainer creature templates reference a GossipMenuId that has no gossip_menu_option entries
// This will cause the gossip menu to fallback to MenuID 0 at runtime which will display: "I wish to unlearn my talents."
std::set<uint32> checkedMenuIds;
for (auto const& [entry, tmpl] : _creatureTemplateStore)
{
uint32 menuId = tmpl.GossipMenuId;
if (!menuId)
continue;
if (!(tmpl.npcflag & UNIT_NPC_FLAG_TRAINER))
continue;
if (checkedMenuIds.contains(menuId))
continue;
checkedMenuIds.insert(menuId);
auto [first, second] = _gossipMenuItemsStore.equal_range(menuId);
if (first == second)
LOG_WARN("server.loading", "Trainer creature template references GossipMenuId {} has no `gossip_menu_option` entries. This will fallback to MenuID 0.", menuId);
}
LOG_INFO("server.loading", ">> Loaded {} gossip_menu_option entries in {} ms", uint32(_gossipMenuItemsStore.size()), GetMSTimeDiffToNow(oldMSTime)); LOG_INFO("server.loading", ">> Loaded {} gossip_menu_option entries in {} ms", uint32(_gossipMenuItemsStore.size()), GetMSTimeDiffToNow(oldMSTime));
LOG_INFO("server.loading", " "); LOG_INFO("server.loading", " ");
} }

View File

@@ -335,10 +335,13 @@ void WorldSession::HandleMessagechatOpcode(WorldPacket& recvData)
msg.erase(end, msg.end()); msg.erase(end, msg.end());
} }
// Validate hyperlinks // mod_playerbots: skip validation for playerbots module
if (!ValidateHyperlinksAndMaybeKick(msg)) auto playerbotsHyperlink = msg.find("Hfound:") != std::string::npos;
if (!playerbotsHyperlink)
{ {
return; // Validate hyperlinks
if (!ValidateHyperlinksAndMaybeKick(msg))
return;
} }
} }

View File

@@ -482,6 +482,8 @@ void WorldSession::HandlePetitionSignOpcode(WorldPacket& recvData)
break; break;
} }
sScriptMgr->OnPlayerbotCheckPetitionAccount(_player, found);
if (found) if (found)
{ {
WorldPacket data(SMSG_PETITION_SIGN_RESULTS, (8 + 8 + 4)); WorldPacket data(SMSG_PETITION_SIGN_RESULTS, (8 + 8 + 4));

View File

@@ -1722,6 +1722,13 @@ void Map::SendObjectUpdates()
WorldPacket packet; // here we allocate a std::vector with a size of 0x10000 WorldPacket packet; // here we allocate a std::vector with a size of 0x10000
for (UpdateDataMapType::iterator iter = update_players.begin(); iter != update_players.end(); ++iter) for (UpdateDataMapType::iterator iter = update_players.begin(); iter != update_players.end(); ++iter)
{ {
if (!sScriptMgr->OnPlayerbotCheckUpdatesToSend(iter->first))
{
iter->second.Clear();
continue;
}
iter->second.BuildPacket(packet); iter->second.BuildPacket(packet);
iter->first->SendDirectMessage(&packet); iter->first->SendDirectMessage(&packet);
packet.clear(); // clean the string packet.clear(); // clean the string

View File

@@ -47,6 +47,11 @@ void PointMovementGenerator<T>::DoInitialize(T* unit)
i_recalculateSpeed = false; i_recalculateSpeed = false;
Movement::MoveSplineInit init(unit); Movement::MoveSplineInit init(unit);
// mod-playerbots
if (_reverseOrientation)
init.SetOrientationInversed();
if (m_precomputedPath.size() > 2) // pussywizard: for charge if (m_precomputedPath.size() > 2) // pussywizard: for charge
init.MovebyPath(m_precomputedPath); init.MovebyPath(m_precomputedPath);
else if (_generatePath) else if (_generatePath)

View File

@@ -389,10 +389,10 @@ void FlightPathMovementGenerator::LoadPath(Player* player)
LOG_ERROR("movement.flightpath", "Failed to build correct path for player: {}. Current node: {}, max nodes: {}. Paths: {}. Player pos: {}.", player->GetGUID().ToString(), GetCurrentNode(), i_path.size(), paths, player->GetPosition().ToString()); LOG_ERROR("movement.flightpath", "Failed to build correct path for player: {}. Current node: {}, max nodes: {}. Paths: {}. Player pos: {}.", player->GetGUID().ToString(), GetCurrentNode(), i_path.size(), paths, player->GetPosition().ToString());
// Lets choose the second last element so that a player would still have some flight. // Lets choose the second last element so that a player would still have some flight.
if (int(i_path.size()) - 2 >= 0) if (i_path.size() >= 2)
i_currentNode = uint32(i_path.size() - 2); i_currentNode = uint32(i_path.size() - 2);
else else
i_currentNode = uint32(i_path.size() - 1); i_currentNode = 0;
} }
} }

View File

@@ -195,7 +195,7 @@ public:
{ "string", HandleStringCommand, SEC_GAMEMASTER, Console::No }, { "string", HandleStringCommand, SEC_GAMEMASTER, Console::No },
{ "opendoor", HandleOpenDoorCommand, SEC_GAMEMASTER, Console::No }, { "opendoor", HandleOpenDoorCommand, SEC_GAMEMASTER, Console::No },
{ "bm", HandleBMCommand, SEC_GAMEMASTER, Console::No }, { "bm", HandleBMCommand, SEC_GAMEMASTER, Console::No },
{ "packetlog", HandlePacketLog, SEC_GAMEMASTER, Console::No } { "packetlog", HandlePacketLog, SEC_GAMEMASTER, Console::Yes }
}; };
return commandTable; return commandTable;
@@ -3109,9 +3109,19 @@ public:
return false; return false;
} }
static bool HandlePacketLog(ChatHandler* handler, Optional<bool> enableArg) static bool HandlePacketLog(ChatHandler* handler, Optional<PlayerIdentifier> target, Optional<bool> enableArg)
{ {
WorldSession* session = handler->GetSession(); if (!target)
target = PlayerIdentifier::FromTargetOrSelf(handler);
if (!target || !target->IsConnected())
{
handler->SendErrorMessage(LANG_PLAYER_NOT_FOUND);
return false;
}
Player* playerTarget = target->GetConnectedPlayer();
WorldSession* session = playerTarget->GetSession();
if (!session) if (!session)
return false; return false;
@@ -3121,13 +3131,13 @@ public:
if (*enableArg) if (*enableArg)
{ {
session->SetPacketLogging(true); session->SetPacketLogging(true);
handler->SendNotification(LANG_ON); handler->PSendSysMessage("Packet logging enabled for {}.", playerTarget->GetName());
return true; return true;
} }
else else
{ {
session->SetPacketLogging(false); session->SetPacketLogging(false);
handler->SendNotification(LANG_OFF); handler->PSendSysMessage("Packet logging disabled for {}.", playerTarget->GetName());
return true; return true;
} }
} }

View File

@@ -112,13 +112,14 @@ public:
me->SetImmuneToAll(true); me->SetImmuneToAll(true);
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
me->SetReactState(REACT_PASSIVE); me->SetReactState(REACT_PASSIVE);
if (InstanceScript* pInstance = me->GetInstanceScript()) if (InstanceScript* instance = me->GetInstanceScript())
{ {
if (Creature* cr = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(DATA_ARTHAS))) if (Creature* cr = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_ARTHAS)))
cr->AI()->DoAction(ACTION_KILLED_MALGANIS); cr->AI()->DoAction(ACTION_KILLED_MALGANIS);
// give credit to players // give credit to players
me->CastSpell(me, 58630, true); me->CastSpell(me, 58630, true);
instance->instance->SummonGameObject(DUNGEON_MODE(GO_MALGANIS_CHEST_N, GO_MALGANIS_CHEST_H), 2288.35f, 1498.73f, 128.414f, -0.994837f, 0, 0, 0, 0, 7 * DAY * IN_MILLISECONDS);
} }
// quest completion // quest completion

View File

@@ -1153,8 +1153,6 @@ public:
pInstance->SetData(DATA_ARTHAS_EVENT, COS_PROGRESS_FINISHED); pInstance->SetData(DATA_ARTHAS_EVENT, COS_PROGRESS_FINISHED);
if (GameObject* go = pInstance->instance->GetGameObject(pInstance->GetGuidData(DATA_EXIT_GATE))) if (GameObject* go = pInstance->instance->GetGameObject(pInstance->GetGuidData(DATA_EXIT_GATE)))
go->SetGoState(GO_STATE_ACTIVE); go->SetGoState(GO_STATE_ACTIVE);
pInstance->instance->SummonGameObject(DUNGEON_MODE(GO_MALGANIS_CHEST_N, GO_MALGANIS_CHEST_H), 2288.35f, 1498.73f, 128.414f, -0.994837f, 0, 0, 0, 0, 7 * DAY * IN_MILLISECONDS);
} }
ScheduleNextEvent(currentEvent, 10s); ScheduleNextEvent(currentEvent, 10s);
break; break;

View File

@@ -118,22 +118,41 @@ public:
void OnUnitDeath(Unit* unit) override void OnUnitDeath(Unit* unit) override
{ {
if (unit->EntryEquals(NPC_WATCHER_GASHRA, NPC_WATCHER_NARJIL, NPC_WATCHER_SILTHIK, NPC_ANUBAR_SHADOWCASTER, NPC_ANUBAR_SKIRMISHER, NPC_ANUBAR_WARRIOR)) if (!unit->EntryEquals(NPC_WATCHER_GASHRA, NPC_WATCHER_NARJIL, NPC_WATCHER_SILTHIK, NPC_ANUBAR_SHADOWCASTER, NPC_ANUBAR_SKIRMISHER, NPC_ANUBAR_WARRIOR))
return;
Creature* creature = unit->ToCreature();
if (!creature)
return;
// For trash mobs, ensure their leader is a Watcher
if (unit->EntryEquals(NPC_ANUBAR_SHADOWCASTER, NPC_ANUBAR_SKIRMISHER, NPC_ANUBAR_WARRIOR))
{ {
if (Creature* creature = unit->ToCreature()) CreatureGroup* formation = creature->GetFormation();
{ if (!formation)
ObjectGuid creatureGuid = creature->GetGUID(); return;
scheduler.CancelAll();
scheduler.Schedule(1s, [this, creatureGuid](TaskContext /*context*/) Creature* leader = formation->GetLeader();
{ if (!leader || !leader->EntryEquals(NPC_WATCHER_GASHRA, NPC_WATCHER_NARJIL, NPC_WATCHER_SILTHIK))
if (Creature* creature = instance->GetCreature(creatureGuid)) return;
if (CreatureGroup* formation = creature->GetFormation())
if (!formation->IsAnyMemberAlive())
if (Creature* krikthir = GetCreature(DATA_KRIKTHIR))
krikthir->AI()->DoAction(ACTION_MINION_DIED);
});
}
} }
ObjectGuid creatureGuid = creature->GetGUID();
scheduler.CancelAll();
scheduler.Schedule(1s, [this, creatureGuid](TaskContext /*context*/)
{
Creature* creature = instance->GetCreature(creatureGuid);
if (!creature)
return;
CreatureGroup* formation = creature->GetFormation();
if (!formation || formation->IsAnyMemberAlive())
return;
if (Creature* krikthir = GetCreature(DATA_KRIKTHIR))
krikthir->AI()->DoAction(ACTION_MINION_DIED);
});
} }
}; };

View File

@@ -598,7 +598,7 @@ public:
void SetData(uint32 id, uint32 value) override void SetData(uint32 id, uint32 value) override
{ {
if (!events.HasTimeUntilEvent(EVENT_CHECK_CORPOREALITY)) if (!_events.HasTimeUntilEvent(EVENT_CHECK_CORPOREALITY))
return; return;
if (id == DATA_MATERIAL_DAMAGE_TAKEN) if (id == DATA_MATERIAL_DAMAGE_TAKEN)

View File

@@ -37,141 +37,126 @@ enum Spells
{ {
SPELL_IMPALE = 28783, SPELL_IMPALE = 28783,
SPELL_LOCUST_SWARM = 28785, SPELL_LOCUST_SWARM = 28785,
SPELL_SUMMON_CORPSE_SCRABS_5 = 29105, SPELL_SUMMON_CORPSE_SCARABS_5 = 29105,
SPELL_SUMMON_CORPSE_SCRABS_10 = 28864, SPELL_SUMMON_CORPSE_SCARABS_10 = 28864,
SPELL_BERSERK = 26662 SPELL_BERSERK = 26662
}; };
enum Misc enum Misc
{ {
NPC_CORPSE_SCARAB = 16698, ACHIEV_TIMED_START_EVENT = 9891,
NPC_CRYPT_GUARD = 16573, EVENT_SPAWN_CRYPT_GUARDS_1 = 0,
EVENT_BERSERK = 1,
ACHIEV_TIMED_START_EVENT = 9891 EVENT_SPAWN_CRYPT_GUARDS_EXTRA = 2,
}; };
class boss_anubrekhan : public CreatureScript Position const cryptguardPositions[] = {
{ { 3299.732f, -3502.489f, 287.077f, 2.378f },
public: { 3299.086f, -3450.929f, 287.077f, 3.999f },
boss_anubrekhan() : CreatureScript("boss_anubrekhan") { } { 3331.217f, -3476.607f, 287.074f, 3.269f }
};
CreatureAI* GetAI(Creature* pCreature) const override struct boss_anubrekhan : public BossAI
{
boss_anubrekhan(Creature* creature) : BossAI(creature, BOSS_ANUB) { }
void SummonCryptGuards()
{ {
return GetNaxxramasAI<boss_anubrekhanAI>(pCreature); if (Is25ManRaid())
{
me->SummonCreature(NPC_CRYPT_GUARD, cryptguardPositions[0], TEMPSUMMON_CORPSE_TIMED_DESPAWN, 60000);
me->SummonCreature(NPC_CRYPT_GUARD, cryptguardPositions[1], TEMPSUMMON_CORPSE_TIMED_DESPAWN, 60000);
}
} }
struct boss_anubrekhanAI : public BossAI void Reset() override
{ {
boss_anubrekhanAI(Creature* c) : BossAI(c, BOSS_ANUB) BossAI::Reset();
{ SummonCryptGuards();
sayGreet = false; }
}
void SummonCryptGuards() void JustSummoned(Creature* cr) override
{ {
if (Is25ManRaid()) if (me->IsInCombat())
{
me->SummonCreature(NPC_CRYPT_GUARD, 3299.732f, -3502.489f, 287.077f, 2.378f, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 60000);
me->SummonCreature(NPC_CRYPT_GUARD, 3299.086f, -3450.929f, 287.077f, 3.999f, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 60000);
}
}
void Reset() override
{
BossAI::Reset();
SummonCryptGuards();
me->m_Events.KillAllEvents(false);
}
void JustSummoned(Creature* cr) override
{
if (me->IsInCombat())
{
cr->SetInCombatWithZone();
if (cr->GetEntry() == NPC_CRYPT_GUARD)
cr->AI()->Talk(EMOTE_SPAWN, me);
}
summons.Summon(cr);
}
void SummonedCreatureDies(Creature* cr, Unit*) override
{ {
cr->SetInCombatWithZone();
if (cr->GetEntry() == NPC_CRYPT_GUARD) if (cr->GetEntry() == NPC_CRYPT_GUARD)
{ cr->AI()->Talk(EMOTE_SPAWN, me);
cr->CastSpell(cr, SPELL_SUMMON_CORPSE_SCRABS_10, true, nullptr, nullptr, me->GetGUID());
cr->AI()->Talk(EMOTE_SCARAB);
}
} }
summons.Summon(cr);
}
void JustDied(Unit* killer) override void SummonedCreatureDies(Creature* summon, Unit* /*killer*/) override
{
if (summon->GetEntry() == NPC_CRYPT_GUARD)
{ {
BossAI::JustDied(killer); summon->CastSpell(summon, SPELL_SUMMON_CORPSE_SCARABS_10, true, nullptr, nullptr, me->GetGUID());
instance->DoStartTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, ACHIEV_TIMED_START_EVENT); summon->AI()->Talk(EMOTE_SCARAB);
} }
}
void KilledUnit(Unit* victim) override void JustDied(Unit* killer) override
{
BossAI::JustDied(killer);
instance->DoStartTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, ACHIEV_TIMED_START_EVENT);
}
void KilledUnit(Unit* victim) override
{
if (!victim->IsPlayer())
return;
Talk(SAY_SLAY);
victim->CastSpell(victim, SPELL_SUMMON_CORPSE_SCARABS_5, true, nullptr, nullptr, me->GetGUID());
instance->StorePersistentData(PERSISTENT_DATA_IMMORTAL_FAIL, 1);
}
void JustEngagedWith(Unit* who) override
{
BossAI::JustEngagedWith(who);
me->CallForHelp(30.0f);
Talk(SAY_AGGRO);
if (!summons.HasEntry(NPC_CRYPT_GUARD))
SummonCryptGuards();
if (!Is25ManRaid())
{ {
if (!victim->IsPlayer()) ScheduleUniqueTimedEvent(17500ms, [&] {
return; me->SummonCreature(NPC_CRYPT_GUARD, cryptguardPositions[2], TEMPSUMMON_CORPSE_TIMED_DESPAWN, 60000);
}, EVENT_SPAWN_CRYPT_GUARDS_1);
Talk(SAY_SLAY);
victim->CastSpell(victim, SPELL_SUMMON_CORPSE_SCRABS_5, true, nullptr, nullptr, me->GetGUID());
instance->StorePersistentData(PERSISTENT_DATA_IMMORTAL_FAIL, 1);
} }
void JustEngagedWith(Unit* who) override ScheduleTimedEvent(15s, [&] {
DoCastRandomTarget(SPELL_IMPALE);
}, 20s);
ScheduleTimedEvent(70s, 2min, [&] {
Talk(EMOTE_LOCUST);
DoCastSelf(SPELL_LOCUST_SWARM);
scheduler.Schedule(3s, [this](TaskContext /*context*/) {
me->SummonCreature(NPC_CRYPT_GUARD, cryptguardPositions[2], TEMPSUMMON_CORPSE_TIMED_DESPAWN, 60000);
});
}, 90s);
ScheduleEnrageTimer(SPELL_BERSERK, 10min);
}
void MoveInLineOfSight(Unit* who) override
{
if (!_sayGreet && who->IsPlayer())
{ {
BossAI::JustEngagedWith(who); Talk(SAY_GREET);
me->CallForHelp(30.0f); _sayGreet = true;
Talk(SAY_AGGRO);
if (!summons.HasEntry(NPC_CRYPT_GUARD))
SummonCryptGuards();
if (!Is25ManRaid())
{
me->m_Events.AddEventAtOffset([&]
{
me->SummonCreature(NPC_CRYPT_GUARD, 3331.217f, -3476.607f, 287.074f, 3.269f, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 60000);
}, Milliseconds(urand(15000, 20000)));
}
ScheduleTimedEvent(15s, [&] {
DoCastRandomTarget(SPELL_IMPALE);
}, 20s);
ScheduleTimedEvent(70s, 2min, [&] {
Talk(EMOTE_LOCUST);
DoCastSelf(SPELL_LOCUST_SWARM);
me->m_Events.AddEventAtOffset([&]
{
me->SummonCreature(NPC_CRYPT_GUARD, 3331.217f, -3476.607f, 287.074f, 3.269f, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 60000);
}, 3s);
}, 90s);
me->m_Events.AddEventAtOffset([&]
{
DoCastSelf(SPELL_BERSERK, true);
}, 10min);
} }
BossAI::MoveInLineOfSight(who);
}
void MoveInLineOfSight(Unit* who) override private:
{ bool _sayGreet{false};
if (!sayGreet && who->IsPlayer())
{
Talk(SAY_GREET);
sayGreet = true;
}
ScriptedAI::MoveInLineOfSight(who);
}
private:
bool sayGreet;
};
}; };
void AddSC_boss_anubrekhan() void AddSC_boss_anubrekhan()
{ {
new boss_anubrekhan(); RegisterNaxxramasCreatureAI(boss_anubrekhan);
} }

View File

@@ -464,6 +464,19 @@ public:
go->SetGoState(GO_STATE_ACTIVE); go->SetGoState(GO_STATE_ACTIVE);
gateOpened = true; gateOpened = true;
summons.DoForAllSummons([&](WorldObject* summon)
{
if (Creature* gothikMinion = summon->ToCreature())
if (gothikMinion->IsAlive())
{
if (Unit* target = SelectTarget(SelectTargetMethod::MinDistance, 0, 200.0f))
{
gothikMinion->AI()->AttackStart(target);
gothikMinion->SetReactState(REACT_AGGRESSIVE);
gothikMinion->SetInCombatWithZone();
}
}
});
Talk(EMOTE_GATE_OPENED); Talk(EMOTE_GATE_OPENED);
} }
break; break;

View File

@@ -146,6 +146,9 @@ enum NaxxramasGameObjectsDisplayId
enum NaxxramasCreatureId enum NaxxramasCreatureId
{ {
// Anub'Rekhan
NPC_CRYPT_GUARD = 16573,
// Patchwerk // Patchwerk
NPC_PATCHWERK = 16028, NPC_PATCHWERK = 16028,
NPC_PATCHWORK_GOLEM = 16017, NPC_PATCHWORK_GOLEM = 16017,

View File

@@ -41,6 +41,7 @@ enum Spells
SPELL_ARCANE_MAGUS_SUMMON = 47708, SPELL_ARCANE_MAGUS_SUMMON = 47708,
SPELL_FIRE_MAGUS_DEATH = 47711, SPELL_FIRE_MAGUS_DEATH = 47711,
SPELL_FROST_MAGUS_DEATH = 47712,
SPELL_ARCANE_MAGUS_DEATH = 47713, SPELL_ARCANE_MAGUS_DEATH = 47713,
SPELL_WEAR_CHRISTMAS_HAT = 61400 SPELL_WEAR_CHRISTMAS_HAT = 61400
@@ -83,13 +84,11 @@ struct boss_magus_telestra : public BossAI
{ {
boss_magus_telestra(Creature* creature) : BossAI(creature, DATA_MAGUS_TELESTRA_EVENT) { } boss_magus_telestra(Creature* creature) : BossAI(creature, DATA_MAGUS_TELESTRA_EVENT) { }
uint8 copiesDied;
bool achievement; bool achievement;
void Reset() override void Reset() override
{ {
BossAI::Reset(); BossAI::Reset();
copiesDied = 0;
achievement = true; achievement = true;
if (IsHeroic() && sGameEventMgr->IsActiveEvent(GAME_EVENT_WINTER_VEIL) && !me->HasAura(SPELL_WEAR_CHRISTMAS_HAT)) if (IsHeroic() && sGameEventMgr->IsActiveEvent(GAME_EVENT_WINTER_VEIL) && !me->HasAura(SPELL_WEAR_CHRISTMAS_HAT))
@@ -152,9 +151,8 @@ struct boss_magus_telestra : public BossAI
events.ScheduleEvent(EVENT_MAGUS_FAIL_ACHIEVEMENT, 5s); events.ScheduleEvent(EVENT_MAGUS_FAIL_ACHIEVEMENT, 5s);
caster->ToCreature()->DespawnOrUnsummon(1s); caster->ToCreature()->DespawnOrUnsummon(1s);
if (++copiesDied >= 3) if (me->HasAura(SPELL_FIRE_MAGUS_DEATH) && me->HasAura(SPELL_FROST_MAGUS_DEATH) && me->HasAura(SPELL_ARCANE_MAGUS_DEATH))
{ {
copiesDied = 0;
events.CancelEvent(EVENT_MAGUS_FAIL_ACHIEVEMENT); events.CancelEvent(EVENT_MAGUS_FAIL_ACHIEVEMENT);
events.ScheduleEvent(EVENT_MAGUS_MERGED, 5s); events.ScheduleEvent(EVENT_MAGUS_MERGED, 5s);
me->CastSpell(me, SPELL_BURNING_WINDS, true); me->CastSpell(me, SPELL_BURNING_WINDS, true);
@@ -168,13 +166,14 @@ struct boss_magus_telestra : public BossAI
return; return;
events.Update(diff); events.Update(diff);
if (me->HasUnitState(UNIT_STATE_CASTING)) if (me->HasUnitState(UNIT_STATE_CASTING) ||
(me->HasUnitState(UNIT_STATE_STUNNED) && !me->HasAura(SPELL_START_SUMMON_CLONES))) // Reflected Ice Nova can stun her as its mechanic bypasses immunities
return; return;
switch (events.ExecuteEvent()) switch (events.ExecuteEvent())
{ {
case EVENT_MAGUS_HEALTH1: case EVENT_MAGUS_HEALTH1:
if (me->HealthBelowPct(51)) if (me->HealthBelowPct(51) && me->HealthAbovePct(11))
{ {
me->CastSpell(me, SPELL_START_SUMMON_CLONES, false); me->CastSpell(me, SPELL_START_SUMMON_CLONES, false);
events.ScheduleEvent(EVENT_MAGUS_RELOCATE, 3500ms); events.ScheduleEvent(EVENT_MAGUS_RELOCATE, 3500ms);

View File

@@ -32,6 +32,11 @@ ObjectData const creatureData[] =
{ 0, 0 } { 0, 0 }
}; };
BossBoundaryData const boundaries =
{
{ BOSS_SJONNIR, new RectangleBoundary(1206.56f, 1341.4185f, 579.9434f, 753.9599f) }
};
class instance_halls_of_stone : public InstanceMapScript class instance_halls_of_stone : public InstanceMapScript
{ {
public: public:
@@ -72,6 +77,7 @@ public:
SetBossNumber(MAX_ENCOUNTER); SetBossNumber(MAX_ENCOUNTER);
LoadObjectData(creatureData, nullptr); LoadObjectData(creatureData, nullptr);
LoadSummonData(summonData); LoadSummonData(summonData);
LoadBossBoundaries(boundaries);
memset(&Encounter, 0, sizeof(Encounter)); memset(&Encounter, 0, sizeof(Encounter));
brannAchievement = false; brannAchievement = false;

View File

@@ -2314,6 +2314,26 @@ class spell_dk_army_of_the_dead_passive : public AuraScript
} }
}; };
// -49182 Blade Barrier
class spell_dk_blade_barrier : public AuraScript
{
PrepareAuraScript(spell_dk_blade_barrier);
bool CheckProc(ProcEventInfo& /*eventInfo*/)
{
if (Player* player = GetCaster()->ToPlayer())
if (player->getClass() == CLASS_DEATH_KNIGHT && player->IsBaseRuneSlotsOnCooldown(RUNE_BLOOD))
return true;
return false;
}
void Register() override
{
DoCheckProc += AuraCheckProcFn(spell_dk_blade_barrier::CheckProc);
}
};
void AddSC_deathknight_spell_scripts() void AddSC_deathknight_spell_scripts()
{ {
RegisterSpellScript(spell_dk_wandering_plague); RegisterSpellScript(spell_dk_wandering_plague);
@@ -2362,4 +2382,5 @@ void AddSC_deathknight_spell_scripts()
RegisterSpellScript(spell_dk_will_of_the_necropolis); RegisterSpellScript(spell_dk_will_of_the_necropolis);
RegisterSpellScript(spell_dk_ghoul_thrash); RegisterSpellScript(spell_dk_ghoul_thrash);
RegisterSpellScript(spell_dk_army_of_the_dead_passive); RegisterSpellScript(spell_dk_army_of_the_dead_passive);
RegisterSpellScript(spell_dk_blade_barrier);
} }

View File

@@ -1015,6 +1015,8 @@ struct FactionTemplateEntry
return (hostileMask & entry.ourMask) != 0; return (hostileMask & entry.ourMask) != 0;
} }
[[nodiscard]] bool IsHostileToPlayers() const { return (hostileMask & FACTION_MASK_PLAYER) != 0; } [[nodiscard]] bool IsHostileToPlayers() const { return (hostileMask & FACTION_MASK_PLAYER) != 0; }
[[nodiscard]] bool IsHostileToAlliancePlayers() const { return (hostileMask & FACTION_MASK_ALLIANCE) != 0; }
[[nodiscard]] bool IsHostileToHordePlayers() const { return (hostileMask & FACTION_MASK_HORDE) != 0; }
[[nodiscard]] bool IsNeutralToAll() const [[nodiscard]] bool IsNeutralToAll() const
{ {
for (unsigned int i : enemyFaction) for (unsigned int i : enemyFaction)