Compare commits

...

48 Commits

Author SHA1 Message Date
EricksOliveira
55a1e66fac
Merge 3e5ecc37be795711849adfa0f7b4864428636c27 into 3ad79541f6d0e425bed473d0bd37962d6afdb5ba 2025-11-10 04:40:31 +08:00
github-actions[bot]
3ad79541f6 chore(DB): import pending files
Referenced commit(s): be58898d061b940c13f2039695b270a242591de0
2025-11-09 18:05:21 +00:00
sogladev
be58898d06
fix(DB/SmartAI): Howling Fjord quest vehicle Iron Rune Construct (#23063)
Co-authored-by: Killyana <morphone1@gmail.com>
2025-11-09 15:04:17 -03:00
github-actions[bot]
611a85529d chore(DB): import pending files
Referenced commit(s): 040e7a0a4d690532a0bd240a515f0519173d9e4a
2025-11-09 13:15:20 +00:00
Andrew
040e7a0a4d
fix(DB/Creature): Despawn all instances of Superior Healing Ward (#23584) 2025-11-09 10:14:19 -03:00
github-actions[bot]
d4cd580ddc chore(DB): import pending files
Referenced commit(s): 37833c66e69733c68c4244c2a2070b5c2421f0a8
2025-11-09 08:50:22 +00:00
Andrew
37833c66e6
fix(DB/Creature): Remove xp from Reclamation mobs (#23579) 2025-11-09 05:49:21 -03:00
github-actions[bot]
ec274182a2 chore(DB): import pending files
Referenced commit(s): d9b2e775e3266f4b592ca09eefd99b6f212d1861
2025-11-09 07:58:11 +00:00
Andrew
d9b2e775e3
fix(DB/Creature): Fix Sorlof visibility distance (#23573) 2025-11-09 04:57:04 -03:00
killerwife
c85c86b285
Remove double unroot in Unit::_ExitVehicle (#23545) 2025-11-08 19:40:30 -03:00
sogladev
125e1aec9d
fix(Scripts/AzjolNerub): update Azjol-Nerub's Anub'arak (#23570) 2025-11-08 17:27:56 -03:00
Andrew
fca2e12056
fix(Scripts/DTK): Fix a couple of Prophet Tharon'ja issues (#23568) 2025-11-08 20:01:55 +01:00
github-actions[bot]
c9aedce67f chore(DB): import pending files
Referenced commit(s): e1d28ae712d077b9f4de445417ed4a4e2b89c8bf
2025-11-08 17:15:22 +00:00
Benjamin Jackson
e1d28ae712
fix(DB/Creature): Adjust experience modifiers for Wrath instance bosses. (#23567) 2025-11-08 14:14:21 -03:00
github-actions[bot]
983557345e chore(DB): import pending files
Referenced commit(s): 743a764c3cb22a013a49338edf250b1b643ebd8e
2025-11-08 17:09:19 +00:00
Andrew
743a764c3c
fix(DB/Conditions): Malister's Frost Wand should require Proto-Drake (#23569) 2025-11-08 14:08:15 -03:00
github-actions[bot]
dab83dd19e chore(DB): import pending files
Referenced commit(s): af779202e623986de4f00fb0f82f61c40dddcc43
2025-11-08 07:04:47 +00:00
Benjamin Jackson
af779202e6
fix(Core): Move and adjust experience modifiers for instanced elite creatures. (#23563) 2025-11-08 02:03:43 -05:00
Andrew
09e0343491
fix(Scripts/Ahnkahet): Clean up Herald Volazj insanity casting and ph… (#23549) 2025-11-07 19:37:42 -03:00
github-actions[bot]
433be02111 chore(DB): import pending files
Referenced commit(s): 494326656def0b998da319e109a51503d719dd22
2025-11-07 18:21:09 +00:00
Rocco Silipo
494326656d
fix(DB/Script): Add various corrections to Massacre At Light's Point event. (#23558) 2025-11-07 19:20:04 +01:00
github-actions[bot]
6b66ae22e3 chore(DB): import pending files
Referenced commit(s): dea8cd64df2d0eb6850bf042506b8ef478ef4feb
2025-11-07 15:57:19 +00:00
sogladev
fb96e65696
fix(DB/Creature): add chains to Blightblood Troll (#23561) 2025-11-07 16:56:26 +01:00
killerwife
dea8cd64df
Movement: Fix flying in dalaran after disconnect (#23559) 2025-11-07 16:56:12 +01:00
sogladev
7ac7228315
fix(Core/Player): simultaneously swap melee and ranged weapon in combat (#23557) 2025-11-07 12:07:57 +01:00
github-actions[bot]
24ca7efb73 chore(DB): import pending files
Referenced commit(s): 0bdf7a6b0fc3da39469e7083e4069d111950f64e
2025-11-07 06:48:18 +00:00
Nicolas Lebacq
0bdf7a6b0f
fix(DB/Creature): Deleted Wendigo entity spawning under the ground… (#23555) 2025-11-07 07:47:12 +01:00
github-actions[bot]
639ee028fd chore(DB): import pending files
Referenced commit(s): 6ef3383b121855d3de1bcc02a00d9420901775a5
2025-11-06 15:03:07 +00:00
Rocco Silipo
6ef3383b12
Fix(DB/Creature): Remove accessory from Enslaved Proto-drake. (#23550) 2025-11-06 16:02:02 +01:00
github-actions[bot]
695448a7b4 chore(DB): import pending files
Referenced commit(s): 1dc05a5254bca833cae73dc2e6a155fd9fa46d66
2025-11-06 06:50:48 +00:00
Rocco Silipo
1dc05a5254
fix(DB/SAI): Solved a couple of issue with the quest Into the realm of shadow. (#23547) 2025-11-06 07:47:33 +01:00
Luca Folloni
b272f503ff
fix(Core): Change client data downloader version to v18.0 (#23546) 2025-11-05 13:18:17 -03:00
Luca Folloni
ee955e74ab
fix(Core): Update client data downloader version to v18 (#23544) 2025-11-05 12:09:47 -03:00
github-actions[bot]
f909e9b6eb chore(DB): import pending files
Referenced commit(s): f13b557b4e15eb9fb207a325d4b20356c3adae39
2025-11-05 12:26:20 +00:00
Rocco Silipo
f13b557b4e
fix(DB/SAI): Solve Astor Hadren waypoint issue. (#23436) 2025-11-05 13:25:17 +01:00
Anton Popovichenko
422ccc8e44
fix(mmaps): [REQUIRES_REGENERATION] Fix baseUnitDim division to resolve pathing edge cases (#23480)
Co-authored-by: Rocco Silipo <108557877+Rorschach91@users.noreply.github.com>
2025-11-05 06:27:13 -03:00
killerwife
7d2b86d7be
fix(Core/Unit): Make players turn to their target during charm automatically (#23534) 2025-11-04 09:46:49 +01:00
github-actions[bot]
9bada17dfa chore(DB): import pending files
Referenced commit(s): c9f17c51c66851baac897ea76a81961f4f2d1140
2025-11-04 05:13:25 +00:00
sudlud
c663cb50bb
fix(DB/Gameobject): fix z position of some 195164 'Pumpkin' spawns (#23530) 2025-11-04 06:12:51 +01:00
sudlud
c9f17c51c6
fix(DB/creature_addon): add missing Winter Reveler costume auras (#23519) 2025-11-04 06:12:20 +01:00
EricksOliveira
3e5ecc37be Fix comment and big name 2025-09-14 18:37:47 -03:00
EricksOliveira
596a8e48f0 Core/Spells: Fixes display of ranks in Trainer (Horn of Winter and similar)
Implements proper sending of the SMSG_SEND_UNLEARN_SPELLS packet to correct the display of spell ranks on NPC Trainers.

Before this change, when training the second rank of Horn of Winter, the first rank remained listed in the Trainer until the window was closed and reopened, causing visual inconsistency.

The changes introduce:

Player::SendUnlearnSpells to send to the client spells that should no longer be displayed.

Player::IsUnlearnSpellsPacketNeededForSpell to check if a given spell is part of a rank chain and needs to be handled in the packet.

This means the Trainer now correctly hides previous ranks after learning a new one, ensuring expected behavior for chained spells.
2025-09-13 09:22:21 -03:00
EricksOliveira
d968b5e1cd Fix comment 2025-09-06 00:03:12 -03:00
EricksOliveira
ea6fb330bd Fix 2025-09-05 23:51:38 -03:00
EricksOliveira
ab97511b8e fix 2025-09-02 00:23:47 -03:00
EricksOliveira
8aa7a41af1
Merge branch 'master' into patch-9 2025-08-14 09:39:53 -03:00
EricksOliveira
2611e5ac04
Possible fix 2025-08-13 11:01:03 -03:00
EricksOliveira
54a50c5580
fix(Core/Player): Fixes visual bug in Death Knight trainer and other classes for spells with multiple ranks
The fix was implemented generically in the Player::GetTrainerSpellState() function, ensuring that, for any spell that is part of a rank chain, the trainer correctly recognizes whether the player already knows any higher rank and marks the spell as "already learned" (TRAINER_SPELL_GRAY).

This improvement prevents the visual bug not only for Death Knights, but for any class with spells at multiple ranks, aligning the behavior with what's expected in the official client.
2025-08-12 10:08:32 -03:00
30 changed files with 3322 additions and 425 deletions

View File

@ -155,7 +155,7 @@ function inst_simple_restarter {
function inst_download_client_data {
# change the following version when needed
local VERSION=v17
local VERSION=v18.0
echo "#######################"
echo "Client data downloader"

View File

@ -0,0 +1,106 @@
-- DB update 2025_11_03_01 -> 2025_11_04_00
-- fix appearances of newly added 'Winter Reveler's
-- assign correct model to creature 15792 `Troll Male Winter Reveler` used by spell 26252 `Winter Reveler - Troll Male`
UPDATE `creature_template_model` SET `CreatureDisplayID` = 18809, `VerifiedBuild` = 0 WHERE (`CreatureID` = 15792) AND (`Idx` = 0);
-- assign costume auras
DELETE FROM `creature_addon` WHERE (`guid` BETWEEN 66801 AND 66898);
INSERT INTO `creature_addon` (`guid`, `path_id`, `mount`, `bytes1`, `bytes2`, `emote`, `visibilityDistanceType`, `auras`) VALUES
(66801, 0, 0, 0, 1, 0, 0, '26247'), -- Orc Female
(66802, 0, 0, 0, 1, 0, 0, '26248'), -- Orc Male
(66803, 0, 0, 0, 1, 0, 0, '26247'), -- Orc Female
(66804, 0, 0, 0, 1, 0, 0, '26248'), -- Orc Male
(66805, 0, 0, 0, 1, 0, 0, '26239'), -- Human Male
(66806, 0, 0, 0, 1, 0, 0, '26240'), -- Human Female
(66807, 0, 0, 0, 1, 0, 0, '26239'), -- Human Male
(66808, 0, 0, 0, 1, 0, 0, '26240'), -- Human Female
(66809, 0, 0, 0, 1, 0, 0, '26251'), -- Troll Female
(66810, 0, 0, 0, 1, 0, 0, '26252'), -- Troll Male
(66811, 0, 0, 0, 1, 0, 0, '26249'), -- Tauren Female
(66812, 0, 0, 0, 1, 0, 0, '26250'), -- Tauren Male
(66813, 0, 0, 0, 1, 0, 0, '26241'), -- Dwarf Male
(66814, 0, 0, 0, 1, 0, 0, '26242'), -- Dwarf Female
(66815, 0, 0, 0, 1, 0, 0, '26253'), -- Undead Female
(66816, 0, 0, 0, 1, 0, 0, '26254'), -- Undead Male
(66817, 0, 0, 0, 1, 0, 0, '26243'), -- Goblin Female
(66818, 0, 0, 0, 1, 0, 0, '26244'), -- Goblin Male
(66819, 0, 0, 0, 1, 0, 0, '26249'), -- Tauren Female
(66820, 0, 0, 0, 1, 0, 0, '26250'), -- Tauren Male
(66821, 0, 0, 0, 1, 0, 0, '26249'), -- Tauren Female
(66822, 0, 0, 0, 1, 0, 0, '26250'), -- Tauren Male
(66823, 0, 0, 0, 1, 0, 0, '26239'), -- Human Male
(66824, 0, 0, 0, 1, 0, 0, '26240'), -- Human Female
(66825, 0, 0, 0, 1, 0, 0, '26245'), -- Night Elf Female
(66826, 0, 0, 0, 1, 0, 0, '26246'), -- Night Elf Male
(66827, 0, 0, 0, 1, 0, 0, '26249'), -- Tauren Female
(66828, 0, 0, 0, 1, 0, 0, '26250'), -- Tauren Male
(66829, 0, 0, 0, 1, 0, 0, '26249'), -- Tauren Female
(66830, 0, 0, 0, 1, 0, 0, '26250'), -- Tauren Male
(66831, 0, 0, 0, 1, 0, 0, '39860'), -- Blood Elf Female
(66832, 0, 0, 0, 1, 0, 0, '39861'), -- Blood Elf Male
(66833, 0, 0, 0, 1, 0, 0, '26243'), -- Goblin Female
(66834, 0, 0, 0, 1, 0, 0, '26244'), -- Goblin Male
(66835, 0, 0, 0, 1, 0, 0, '26245'), -- Night Elf Female
(66836, 0, 0, 0, 1, 0, 0, '26246'), -- Night Elf Male
(66837, 0, 0, 0, 1, 0, 0, '26247'), -- Orc Female
(66838, 0, 0, 0, 1, 0, 0, '26248'), -- Orc Male
(66839, 0, 0, 0, 1, 0, 0, '26245'), -- Night Elf Female
(66840, 0, 0, 0, 1, 0, 0, '26246'), -- Night Elf Male
(66841, 0, 0, 0, 1, 0, 0, '26245'), -- Night Elf Female
(66842, 0, 0, 0, 1, 0, 0, '26246'), -- Night Elf Male
(66843, 0, 0, 0, 1, 0, 0, '26245'), -- Night Elf Female
(66844, 0, 0, 0, 1, 0, 0, '26246'), -- Night Elf Male
(66845, 0, 0, 0, 1, 0, 0, '26243'), -- Goblin Female
(66846, 0, 0, 0, 1, 0, 0, '26244'), -- Goblin Male
(66847, 0, 0, 0, 1, 0, 0, '26247'), -- Orc Female
(66848, 0, 0, 0, 1, 0, 0, '26248'), -- Orc Male
(66849, 0, 0, 0, 1, 0, 0, '39858'), -- Draenei Female
(66850, 0, 0, 0, 1, 0, 0, '39859'), -- Draenei Male
(66851, 0, 0, 0, 1, 0, 0, '39860'), -- Blood Elf Female
(66852, 0, 0, 0, 1, 0, 0, '39861'), -- Blood Elf Male
(66853, 0, 0, 0, 1, 0, 0, '26247'), -- Orc Female
(66854, 0, 0, 0, 1, 0, 0, '26248'), -- Orc Male
(66855, 0, 0, 0, 1, 0, 0, '39860'), -- Blood Elf Female
(66856, 0, 0, 0, 1, 0, 0, '39861'), -- Blood Elf Male
(66857, 0, 0, 0, 1, 0, 0, '26247'), -- Orc Female
(66858, 0, 0, 0, 1, 0, 0, '26248'), -- Orc Male
(66859, 0, 0, 0, 1, 0, 0, '39858'), -- Draenei Female
(66860, 0, 0, 0, 1, 0, 0, '39859'), -- Draenei Male
(66861, 0, 0, 0, 1, 0, 0, '39858'), -- Draenei Female
(66862, 0, 0, 0, 1, 0, 0, '39859'), -- Draenei Male
(66863, 0, 0, 0, 1, 0, 0, '26241'), -- Dwarf Male
(66864, 0, 0, 0, 1, 0, 0, '26242'), -- Dwarf Female
(66865, 0, 0, 0, 1, 0, 0, '39860'), -- Blood Elf Female
(66866, 0, 0, 0, 1, 0, 0, '39861'), -- Blood Elf Male
(66867, 0, 0, 0, 1, 0, 0, '39860'), -- Blood Elf Female
(66868, 0, 0, 0, 1, 0, 0, '39861'), -- Blood Elf Male
(66869, 0, 0, 0, 1, 0, 0, '26239'), -- Human Male
(66870, 0, 0, 0, 1, 0, 0, '26240'), -- Human Female
(66871, 0, 0, 0, 1, 0, 0, '39858'), -- Draenei Female
(66872, 0, 0, 0, 1, 0, 0, '39859'), -- Draenei Male
(66873, 0, 0, 0, 1, 0, 0, '26253'), -- Undead Female
(66874, 0, 0, 0, 1, 0, 0, '26254'), -- Undead Male
(66875, 0, 0, 0, 1, 0, 0, '39876'), -- Gnome Female
(66876, 0, 0, 0, 1, 0, 0, '39877'), -- Gnome Male
(66877, 0, 0, 0, 1, 0, 0, '26245'), -- Night Elf Female
(66878, 0, 0, 0, 1, 0, 0, '26246'), -- Night Elf Male
(66879, 0, 0, 0, 1, 0, 0, '26251'), -- Troll Female
(66880, 0, 0, 0, 1, 0, 0, '26252'), -- Troll Male
(66881, 0, 0, 0, 1, 0, 0, '39858'), -- Draenei Female
(66882, 0, 0, 0, 1, 0, 0, '39859'), -- Draenei Male
(66883, 0, 0, 0, 1, 0, 0, '26247'), -- Orc Female
(66884, 0, 0, 0, 1, 0, 0, '26248'), -- Orc Male
(66885, 0, 0, 0, 1, 0, 0, '39858'), -- Draenei Female
(66886, 0, 0, 0, 1, 0, 0, '39859'), -- Draenei Male
(66887, 0, 0, 0, 1, 0, 0, '39860'), -- Blood Elf Female
(66888, 0, 0, 0, 1, 0, 0, '39861'), -- Blood Elf Male
(66889, 0, 0, 0, 1, 0, 0, '26243'), -- Goblin Female
(66890, 0, 0, 0, 1, 0, 0, '26244'), -- Goblin Male
(66891, 0, 0, 0, 1, 0, 0, '39860'), -- Blood Elf Female
(66892, 0, 0, 0, 1, 0, 0, '39861'), -- Blood Elf Male
(66893, 0, 0, 0, 1, 0, 0, '39860'), -- Blood Elf Female
(66894, 0, 0, 0, 1, 0, 0, '39861'), -- Blood Elf Male
(66895, 0, 0, 0, 1, 0, 0, '26239'), -- Human Male
(66896, 0, 0, 0, 1, 0, 0, '26240'), -- Human Female
(66897, 0, 0, 0, 1, 0, 0, '39860'), -- Blood Elf Female
(66898, 0, 0, 0, 1, 0, 0, '39861'); -- Blood Elf Male

View File

@ -0,0 +1,3 @@
-- DB update 2025_11_04_00 -> 2025_11_04_01
-- fix z position of some 195164 'Pumpkin' spawns
UPDATE `gameobject` SET `position_z` = (`position_z` + 0.7), `VerifiedBuild` = 0 WHERE (`id` = 195164) AND (`guid` IN (18978, 18979, 18980, 18981, 18982, 18983, 18984, 18985, 18986, 18987, 19018, 19019, 19020, 19021, 19022, 19023, 19024, 19025, 19026, 19027, 19115, 19116, 19117, 19118, 19119, 19120, 19121, 19122, 19123, 19124, 19151, 19152, 19153, 19154, 19155, 19156, 19157, 19158, 19159, 19160, 19304, 19305, 19306, 19307, 19308, 19309, 19310, 19311, 19312, 19313));

View File

@ -0,0 +1,183 @@
-- DB update 2025_11_04_01 -> 2025_11_05_00
-- Change Spawn Point
UPDATE `creature` SET `position_x` = 532.0706, `position_y` = 1473.9459, `position_z` = 109.76107, `orientation` = 5.4972 WHERE (`id1` = 6497) AND (`guid` IN (44738));
-- Delete old waypoint and create a new one in waypoint_data (sniffed wp)
DELETE FROM `waypoints` WHERE (`entry` IN (6497));
DELETE FROM `waypoint_data` WHERE `id` = 649700;
INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`, `action`, `action_chance`, `wpguid`) VALUES
(649700, 1, 550.32355, 1453.3601, 102.83995, NULL, 0, 0, 0, 100, 0),
(649700, 2, 560.8089, 1444.4222, 100.17067, NULL, 0, 0, 0, 100, 0),
(649700, 3, 579.13367, 1414.7158, 95.58017, NULL, 0, 0, 0, 100, 0),
(649700, 4, 593.57294, 1391.2076, 90.5457, NULL, 0, 0, 0, 100, 0),
(649700, 5, 605.4873, 1365.1119, 86.89633, NULL, 0, 0, 0, 100, 0),
(649700, 6, 615.50714, 1349.1395, 85.748085, NULL, 0, 0, 0, 100, 0),
(649700, 7, 633.94946, 1310.1539, 84.25693, NULL, 0, 0, 0, 100, 0),
(649700, 8, 643.6682, 1301.1842, 85.17119, NULL, 0, 0, 0, 100, 0),
(649700, 9, 661.93774, 1305.103, 83.19177, NULL, 0, 0, 0, 100, 0),
(649700, 10, 679.4544, 1316.6484, 81.121284, NULL, 0, 0, 0, 100, 0),
(649700, 11, 701.6529, 1333.9889, 77.97731, NULL, 0, 0, 0, 100, 0),
(649700, 12, 716.3771, 1350.1677, 76.052864, NULL, 0, 0, 0, 100, 0),
(649700, 13, 735.5919, 1359.9868, 74.7311, NULL, 0, 0, 0, 100, 0),
(649700, 14, 759.6556, 1362.045, 71.884674, NULL, 0, 0, 0, 100, 0),
(649700, 15, 788.24805, 1362.3418, 67.00611, NULL, 0, 0, 0, 100, 0),
(649700, 16, 817.2476, 1361.4927, 60.508972, NULL, 0, 0, 0, 100, 0),
(649700, 17, 838.4114, 1360.8605, 56.570217, NULL, 0, 0, 0, 100, 0),
(649700, 18, 866.9464, 1361.3516, 51.768867, NULL, 0, 0, 0, 100, 0),
(649700, 19, 888.2806, 1355.868, 48.78437, NULL, 0, 0, 0, 100, 0),
(649700, 20, 917.56415, 1347.1743, 45.49018, NULL, 0, 0, 0, 100, 0),
(649700, 21, 942.1607, 1334.9868, 45.564545, NULL, 0, 0, 0, 100, 0),
(649700, 22, 976.56726, 1310.7413, 46.00013, NULL, 0, 0, 0, 100, 0),
(649700, 23, 1005.0521, 1289.1754, 45.481735, NULL, 0, 0, 0, 100, 0),
(649700, 24, 1033.7482, 1272.1211, 46.23719, NULL, 0, 0, 0, 100, 0),
(649700, 25, 1055.1008, 1253.4108, 45.855003, NULL, 0, 0, 0, 100, 0),
(649700, 26, 1080.6647, 1228.3652, 45.75068, NULL, 0, 0, 0, 100, 0),
(649700, 27, 1106.6715, 1205.8969, 46.48162, NULL, 0, 0, 0, 100, 0),
(649700, 28, 1126.8285, 1195.9891, 47.394684, NULL, 0, 0, 0, 100, 0),
(649700, 29, 1154.6526, 1177.5419, 48.430305, NULL, 0, 0, 0, 100, 0),
(649700, 30, 1187.787, 1155.515, 46.71021, NULL, 0, 0, 0, 100, 0),
(649700, 31, 1214.3774, 1137.9454, 47.540554, NULL, 0, 0, 0, 100, 0),
(649700, 32, 1245.4918, 1111.4078, 50.944595, NULL, 0, 0, 0, 100, 0),
(649700, 33, 1259.9783, 1096.3925, 52.763363, NULL, 0, 0, 0, 100, 0),
(649700, 34, 1281.7661, 1077.2633, 54.107376, NULL, 0, 0, 0, 100, 0),
(649700, 35, 1305.2642, 1048.9967, 54.54281, NULL, 0, 0, 0, 100, 0),
(649700, 36, 1318.6704, 1023.2604, 54.663284, NULL, 0, 0, 0, 100, 0),
(649700, 37, 1332.5304, 990.83575, 54.651577, NULL, 0, 0, 0, 100, 0),
(649700, 38, 1339.3923, 960.9286, 54.73848, NULL, 0, 0, 0, 100, 0),
(649700, 39, 1345.629, 924.2967, 53.814915, NULL, 0, 0, 0, 100, 0),
(649700, 40, 1357.6875, 883.0408, 52.67861, NULL, 0, 0, 0, 100, 0),
(649700, 41, 1374.4548, 840.12335, 50.35277, NULL, 0, 0, 0, 100, 0),
(649700, 42, 1390.0712, 800.3881, 48.731716, NULL, 0, 0, 0, 100, 0),
(649700, 43, 1407.2906, 766.57434, 46.998886, NULL, 0, 0, 0, 100, 0),
(649700, 44, 1421.0477, 732.81036, 45.700684, NULL, 0, 0, 0, 100, 0),
(649700, 45, 1438.3928, 700.6654, 44.742863, NULL, 0, 0, 0, 100, 0),
(649700, 46, 1462.6694, 666.44934, 46.350983, NULL, 0, 0, 0, 100, 0),
(649700, 47, 1493.479, 632.8775, 46.6881, NULL, 0, 0, 0, 100, 0),
(649700, 48, 1527.412, 601.90704, 46.683678, NULL, 0, 0, 0, 100, 0),
(649700, 49, 1569.2615, 578.867, 41.605648, NULL, 0, 0, 0, 100, 0),
(649700, 50, 1599.7749, 566.5255, 37.452827, NULL, 0, 0, 0, 100, 0),
(649700, 51, 1633.1173, 557.6922, 33.72048, NULL, 0, 0, 0, 100, 0),
(649700, 52, 1666.5055, 548.7752, 33.39571, NULL, 0, 0, 0, 100, 0),
(649700, 53, 1699.4762, 543.5129, 33.418396, NULL, 0, 0, 0, 100, 0),
(649700, 54, 1733.0693, 534.8109, 33.39686, NULL, 0, 0, 0, 100, 0),
(649700, 55, 1766.3834, 526.622, 33.396313, NULL, 0, 0, 0, 100, 0),
(649700, 56, 1799.5571, 518.5047, 33.451973, NULL, 0, 0, 0, 100, 0),
(649700, 57, 1833.5399, 506.51108, 34.09343, NULL, 0, 0, 0, 100, 0),
(649700, 58, 1846.7709, 500.30872, 34.65273, NULL, 0, 0, 0, 100, 0),
(649700, 59, 1866.7739, 482.8489, 34.661674, NULL, 0, 0, 0, 100, 0),
(649700, 60, 1876.65, 467.884, 34.267147, NULL, 0, 0, 0, 100, 0),
(649700, 61, 1890.4196, 433.71887, 33.8925, NULL, 0, 0, 0, 100, 0),
(649700, 62, 1899.9106, 400.08536, 34.257324, NULL, 0, 0, 0, 100, 0),
(649700, 63, 1911.1168, 366.9929, 33.98939, NULL, 0, 0, 0, 100, 0),
(649700, 64, 1929.4626, 333.79535, 35.294994, NULL, 0, 0, 0, 100, 0),
(649700, 65, 1946.6372, 299.84537, 38.30006, NULL, 0, 0, 0, 100, 0),
(649700, 66, 1967.2408, 265.27518, 37.96951, NULL, 0, 0, 0, 100, 0),
(649700, 67, 1984.9171, 233.64508, 36.106697, NULL, 0, 0, 0, 100, 0),
(649700, 68, 2000.3663, 214.46593, 34.19722, NULL, 0, 0, 0, 100, 0),
(649700, 69, 2008.7366, 199.68561, 33.87147, NULL, 0, 0, 0, 100, 0),
(649700, 70, 2033.007, 168.96138, 33.986916, NULL, 0, 0, 0, 100, 0),
(649700, 71, 2066.642, 154.05067, 33.89913, NULL, 0, 0, 0, 100, 0),
(649700, 72, 2100.0747, 154.13618, 35.464554, NULL, 0, 0, 0, 100, 0),
(649700, 73, 2133.1018, 165.71138, 37.972244, NULL, 0, 0, 0, 100, 0),
(649700, 74, 2159.929, 180.03609, 41.871323, NULL, 0, 0, 0, 100, 0),
(649700, 75, 2162.2976, 200.29182, 42.721146, NULL, 0, 0, 0, 100, 0),
(649700, 76, 2164.7114, 218.72179, 40.85692, NULL, 0, 0, 0, 100, 0),
(649700, 77, 2181.5547, 232.85938, 36.67536, NULL, 0, 0, 0, 100, 0),
(649700, 78, 2200.375, 243.88374, 34.444607, NULL, 0, 0, 0, 100, 0),
(649700, 79, 2218.8154, 249.37343, 33.94611, NULL, 0, 0, 0, 100, 0),
(649700, 80, 2229.708, 247.84766, 33.11627, NULL, 0, 0, 0, 100, 0),
(649700, 81, 2235.1897, 251.33485, 33.6035, NULL, 2000, 0, 0, 100, 0),
(649700, 82, 2229.708, 247.84766, 33.11627, NULL, 0, 0, 0, 100, 0),
(649700, 83, 2218.8154, 249.37343, 33.94611, NULL, 0, 0, 0, 100, 0),
(649700, 84, 2200.375, 243.88374, 34.444607, NULL, 0, 0, 0, 100, 0),
(649700, 85, 2181.5547, 232.85938, 36.67536, NULL, 0, 0, 0, 100, 0),
(649700, 86, 2164.7114, 218.72179, 40.85692, NULL, 0, 0, 0, 100, 0),
(649700, 87, 2162.2976, 200.29182, 42.721146, NULL, 0, 0, 0, 100, 0),
(649700, 88, 2159.929, 180.03609, 41.871323, NULL, 0, 0, 0, 100, 0),
(649700, 89, 2133.1018, 165.71138, 37.972244, NULL, 0, 0, 0, 100, 0),
(649700, 90, 2100.0747, 154.13618, 35.464554, NULL, 0, 0, 0, 100, 0),
(649700, 91, 2066.642, 154.05067, 33.89913, NULL, 0, 0, 0, 100, 0),
(649700, 92, 2033.007, 168.96138, 33.986916, NULL, 0, 0, 0, 100, 0),
(649700, 93, 2008.7366, 199.68561, 33.87147, NULL, 0, 0, 0, 100, 0),
(649700, 94, 2000.3663, 214.46593, 34.19722, NULL, 0, 0, 0, 100, 0),
(649700, 95, 1984.9171, 233.64508, 36.106697, NULL, 0, 0, 0, 100, 0),
(649700, 96, 1967.2408, 265.27518, 37.96951, NULL, 0, 0, 0, 100, 0),
(649700, 97, 1946.6372, 299.84537, 38.30006, NULL, 0, 0, 0, 100, 0),
(649700, 98, 1929.4626, 333.79535, 35.294994, NULL, 0, 0, 0, 100, 0),
(649700, 99, 1911.1168, 366.9929, 33.98939, NULL, 0, 0, 0, 100, 0),
(649700, 100, 1899.9106, 400.08536, 34.257324, NULL, 0, 0, 0, 100, 0),
(649700, 101, 1890.4196, 433.71887, 33.8925, NULL, 0, 0, 0, 100, 0),
(649700, 102, 1876.65, 467.884, 34.267147, NULL, 0, 0, 0, 100, 0),
(649700, 103, 1866.7739, 482.8489, 34.661674, NULL, 0, 0, 0, 100, 0),
(649700, 104, 1846.7709, 500.30872, 34.65273, NULL, 0, 0, 0, 100, 0),
(649700, 105, 1833.5399, 506.51108, 34.09343, NULL, 0, 0, 0, 100, 0),
(649700, 106, 1799.5571, 518.5047, 33.451973, NULL, 0, 0, 0, 100, 0),
(649700, 107, 1766.3834, 526.622, 33.396313, NULL, 0, 0, 0, 100, 0),
(649700, 108, 1733.0693, 534.8109, 33.39686, NULL, 0, 0, 0, 100, 0),
(649700, 109, 1699.4762, 543.5129, 33.418396, NULL, 0, 0, 0, 100, 0),
(649700, 110, 1666.5055, 548.7752, 33.39571, NULL, 0, 0, 0, 100, 0),
(649700, 111, 1633.1173, 557.6922, 33.72048, NULL, 0, 0, 0, 100, 0),
(649700, 112, 1599.7749, 566.5255, 37.452827, NULL, 0, 0, 0, 100, 0),
(649700, 113, 1569.2615, 578.867, 41.605648, NULL, 0, 0, 0, 100, 0),
(649700, 114, 1527.412, 601.90704, 46.683678, NULL, 0, 0, 0, 100, 0),
(649700, 115, 1493.479, 632.8775, 46.6881, NULL, 0, 0, 0, 100, 0),
(649700, 116, 1462.6694, 666.44934, 46.350983, NULL, 0, 0, 0, 100, 0),
(649700, 117, 1438.3928, 700.6654, 44.742863, NULL, 0, 0, 0, 100, 0),
(649700, 118, 1421.0477, 732.81036, 45.700684, NULL, 0, 0, 0, 100, 0),
(649700, 119, 1407.2906, 766.57434, 46.998886, NULL, 0, 0, 0, 100, 0),
(649700, 120, 1390.0712, 800.3881, 48.731716, NULL, 0, 0, 0, 100, 0),
(649700, 121, 1374.4548, 840.12335, 50.35277, NULL, 0, 0, 0, 100, 0),
(649700, 122, 1357.6875, 883.0408, 52.67861, NULL, 0, 0, 0, 100, 0),
(649700, 123, 1345.629, 924.2967, 53.814915, NULL, 0, 0, 0, 100, 0),
(649700, 124, 1339.3923, 960.9286, 54.73848, NULL, 0, 0, 0, 100, 0),
(649700, 125, 1332.5304, 990.83575, 54.651577, NULL, 0, 0, 0, 100, 0),
(649700, 126, 1318.6704, 1023.2604, 54.663284, NULL, 0, 0, 0, 100, 0),
(649700, 127, 1305.2642, 1048.9967, 54.54281, NULL, 0, 0, 0, 100, 0),
(649700, 128, 1281.7661, 1077.2633, 54.107376, NULL, 0, 0, 0, 100, 0),
(649700, 129, 1259.9783, 1096.3925, 52.763363, NULL, 0, 0, 0, 100, 0),
(649700, 130, 1245.4918, 1111.4078, 50.944595, NULL, 0, 0, 0, 100, 0),
(649700, 131, 1214.3774, 1137.9454, 47.540554, NULL, 0, 0, 0, 100, 0),
(649700, 132, 1187.787, 1155.515, 46.71021, NULL, 0, 0, 0, 100, 0),
(649700, 133, 1154.6526, 1177.5419, 48.430305, NULL, 0, 0, 0, 100, 0),
(649700, 134, 1126.8285, 1195.9891, 47.394684, NULL, 0, 0, 0, 100, 0),
(649700, 135, 1106.6715, 1205.8969, 46.48162, NULL, 0, 0, 0, 100, 0),
(649700, 136, 1080.6647, 1228.3652, 45.75068, NULL, 0, 0, 0, 100, 0),
(649700, 137, 1055.1008, 1253.4108, 45.855003, NULL, 0, 0, 0, 100, 0),
(649700, 138, 1033.7482, 1272.1211, 46.23719, NULL, 0, 0, 0, 100, 0),
(649700, 139, 1005.0521, 1289.1754, 45.481735, NULL, 0, 0, 0, 100, 0),
(649700, 140, 976.56726, 1310.7413, 46.00013, NULL, 0, 0, 0, 100, 0),
(649700, 141, 942.1607, 1334.9868, 45.564545, NULL, 0, 0, 0, 100, 0),
(649700, 142, 917.56415, 1347.1743, 45.49018, NULL, 0, 0, 0, 100, 0),
(649700, 143, 888.2806, 1355.868, 48.78437, NULL, 0, 0, 0, 100, 0),
(649700, 144, 866.9464, 1361.3516, 51.768867, NULL, 0, 0, 0, 100, 0),
(649700, 145, 838.4114, 1360.8605, 56.570217, NULL, 0, 0, 0, 100, 0),
(649700, 146, 817.2476, 1361.4927, 60.508972, NULL, 0, 0, 0, 100, 0),
(649700, 147, 788.24805, 1362.3418, 67.00611, NULL, 0, 0, 0, 100, 0),
(649700, 148, 759.6556, 1362.045, 71.884674, NULL, 0, 0, 0, 100, 0),
(649700, 149, 735.5919, 1359.9868, 74.7311, NULL, 0, 0, 0, 100, 0),
(649700, 150, 716.3771, 1350.1677, 76.052864, NULL, 0, 0, 0, 100, 0),
(649700, 151, 701.6529, 1333.9889, 77.97731, NULL, 0, 0, 0, 100, 0),
(649700, 152, 679.4544, 1316.6484, 81.121284, NULL, 0, 0, 0, 100, 0),
(649700, 153, 661.93774, 1305.103, 83.19177, NULL, 0, 0, 0, 100, 0),
(649700, 154, 643.6682, 1301.1842, 85.17119, NULL, 0, 0, 0, 100, 0),
(649700, 155, 633.94946, 1310.1539, 84.25693, NULL, 0, 0, 0, 100, 0),
(649700, 156, 615.50714, 1349.1395, 85.748085, NULL, 0, 0, 0, 100, 0),
(649700, 157, 605.4873, 1365.1119, 86.89633, NULL, 0, 0, 0, 100, 0),
(649700, 158, 593.57294, 1391.2076, 90.5457, NULL, 0, 0, 0, 100, 0),
(649700, 159, 579.13367, 1414.7158, 95.58017, NULL, 0, 0, 0, 100, 0),
(649700, 160, 560.8089, 1444.4222, 100.17067, NULL, 0, 0, 0, 100, 0),
(649700, 161, 550.32355, 1453.3601, 102.83995, NULL, 0, 0, 0, 100, 0),
(649700, 162, 532.0706, 1473.9459, 109.76107, NULL, 2000, 0, 0, 100, 0);
-- Edit SmartAI
UPDATE `creature_template` SET `AIName` = 'SmartAI' WHERE `entry` = 6497;
DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 6497);
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
(6497, 0, 0, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 8, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Astor Hadren - On Reset - Set Reactstate Defensive'),
(6497, 0, 1, 0, 11, 0, 100, 512, 0, 0, 0, 0, 0, 0, 232, 649700, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Astor Hadren - On Respawn - Start Path 649700'),
(6497, 0, 2, 3, 62, 0, 100, 512, 125, 0, 0, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Astor Hadren - On Gossip Option 0 Selected - Close Gossip'),
(6497, 0, 3, 4, 61, 0, 100, 512, 0, 0, 0, 0, 0, 0, 2, 14, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Astor Hadren - On Gossip Option 0 Selected - Set Faction 14'),
(6497, 0, 4, 0, 61, 0, 100, 512, 0, 0, 0, 0, 0, 0, 49, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Astor Hadren - On Gossip Option 0 Selected - Start Attacking'),
(6497, 0, 5, 0, 7, 0, 100, 512, 0, 0, 0, 0, 0, 0, 2, 68, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Astor Hadren - On Evade - Set Faction 68');

View File

@ -0,0 +1,33 @@
-- DB update 2025_11_05_00 -> 2025_11_06_00
-- Remove NPC Flag, Unit Flag and set RegenHealth
UPDATE `creature_template` SET `npcflag` = `npcflag` &~ 16777216, `unit_flags` = `unit_flags` &~ 2, `RegenHealth` = 1 WHERE (`entry` = 28782);
-- Update SmartAI (Acherus Deathcharger and Dark Rider of Acherus)
UPDATE `creature_template` SET `AIName` = 'SmartAI' WHERE (`entry` IN (28768, 28782));
DELETE FROM `smart_scripts` WHERE (`source_type` = 0) AND (`entryorguid` IN (28768, 28782));
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param6`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
(28782, 0, 0, 1, 28, 0, 100, 0, 0, 0, 0, 0, 0, 0, 101, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Acherus Deathcharger - On Passenger Removed - Set Home Position'),
(28782, 0, 1, 2, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 2, 2082, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Acherus Deathcharger - On Passenger Removed - Set Faction 2082'),
(28782, 0, 2, 3, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 82, 16777216, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Acherus Deathcharger - On Passenger Removed - Add Npc Flags Spellclick'),
(28782, 0, 3, 4, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 19, 33554432, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Acherus Deathcharger - On Passenger Removed - Remove Flags Not Selectable'),
(28782, 0, 4, 5, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Acherus Deathcharger - On Passenger Removed - Say Line 0'),
(28782, 0, 5, 6, 61, 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, 'Acherus Deathcharger - On Passenger Removed - Evade'),
(28782, 0, 6, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Acherus Deathcharger - On Passenger Removed - Set Rooted On'),
(28782, 0, 7, 8, 28, 0, 100, 0, 0, 0, 0, 0, 0, 0, 5, 377, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Acherus Deathcharger - On Passenger Removed - Play Emote 377'),
(28782, 0, 8, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 3000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Acherus Deathcharger - On Passenger Removed - Despawn In 3000 ms'),
(28782, 0, 9, 10, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 18, 33554432, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Acherus Deathcharger - On Respawn - Set Flags Not Selectable'),
(28782, 0, 10, 11, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 83, 16777216, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Acherus Deathcharger - On Respawn - Remove Npc Flags Spellclick'),
(28782, 0, 11, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 2, 16, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Acherus Deathcharger - On Respawn - Set Faction 16'),
(28782, 0, 12, 0, 27, 0, 100, 512, 0, 0, 0, 0, 0, 0, 103, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Acherus Deathcharger - On Passenger Boarded - Set Rooted Off'),
(28768, 0, 0, 0, 0, 0, 100, 0, 1000, 1000, 6000, 6000, 0, 0, 11, 52372, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Dark Rider of Acherus - In Combat - Cast \'Icy Touch\''),
(28768, 0, 1, 0, 0, 0, 100, 0, 3000, 3000, 6000, 6000, 0, 0, 11, 52374, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Dark Rider of Acherus - In Combat - Cast \'Blood Strike\''),
(28768, 0, 2, 0, 0, 0, 100, 0, 5000, 5000, 6000, 6000, 0, 0, 11, 50688, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Dark Rider of Acherus - In Combat - Cast \'Plague Strike\''),
(28768, 0, 3, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 203, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Dark Rider of Acherus - On Just Died - Exit vehicle');
-- Set Conditions
DELETE FROM `conditions` WHERE (`SourceTypeOrReferenceId` = 22) AND (`SourceGroup` IN (1, 3, 8)) AND (`SourceEntry` = 28782) AND (`SourceId` = 0) AND (`ElseGroup` = 0) AND (`ConditionTypeOrReference` = 32) AND (`ConditionTarget` = 0) AND (`ConditionValue1` IN (8, 16)) 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, 8, 28782, 0, 0, 32, 0, 16, 0, 0, 0, 0, 0, '', 'Only despawn Archerus Deathcharger if dismounting unit is player'),
(22, 1, 28782, 0, 0, 32, 0, 8, 0, 0, 0, 0, 0, '', 'Event only occurs when Passenger is an NPC');

View File

@ -0,0 +1,2 @@
-- DB update 2025_11_06_00 -> 2025_11_06_01
DELETE FROM `vehicle_template_accessory` WHERE `entry` = 24083;

View File

@ -0,0 +1,3 @@
-- DB update 2025_11_06_01 -> 2025_11_07_00
--
DELETE FROM `creature` WHERE `guid` = 3564 AND `id1` = 1135;

View File

@ -0,0 +1,43 @@
-- DB update 2025_11_07_00 -> 2025_11_07_01
--
-- v11_2_5_63906
SET @VBUILD := 63906;
UPDATE `creature_template` SET `AIName` = 'SmartAI' WHERE `entry` = 28932;
UPDATE `creature_template_addon` SET `bytes2` = 1 WHERE (`entry` = 28932);
DELETE FROM `creature` WHERE (`id1` = 28932) AND `guid` IN (96663, 96664, 96671, 96798, 96800, 96865, 96870, 96871);
INSERT INTO `creature` (`guid`, `id1`, `id2`, `id3`, `map`, `zoneId`, `areaId`, `spawnMask`, `phaseMask`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `wander_distance`, `currentwaypoint`, `curhealth`, `curmana`, `MovementType`, `npcflag`, `unit_flags`, `dynamicflags`, `ScriptName`, `VerifiedBuild`, `CreateObject`, `Comment`) VALUES
(96663, 28932, 0, 0, 571, 0, 0, 1, 1, 0, 6146.6094, -1971.1476, 481.92764, 5.305801, 300, 5, 0, 4979, 0, 1, 0, 0, 0, '', @VBUILD, 0, NULL),
(96664, 28932, 0, 0, 571, 0, 0, 1, 1, 0, 6143.005, -1973.7048, 482.06653, 4.520403, 300, 5, 0, 4979, 0, 1, 0, 0, 0, '', @VBUILD, 0, NULL),
(96671, 28932, 0, 0, 571, 0, 0, 1, 1, 0, 6218.721, -1985.6326, 482.0804, 4.3982296, 300, 5, 0, 4979, 0, 1, 0, 0, 0, '', @VBUILD, 0, NULL),
(96798, 28932, 0, 0, 571, 0, 0, 1, 1, 0, 6221.371, -1989.2194, 482.06653, 1.5009831, 300, 5, 0, 4979, 0, 1, 0, 0, 0, '', @VBUILD, 0, NULL),
(96800, 28932, 0, 0, 571, 0, 0, 1, 1, 0, 6128.758, -2046.2726, 482.0735, 2.7052603, 300, 5, 0, 4979, 0, 1, 0, 0, 0, '', @VBUILD, 0, NULL),
(96865, 28932, 0, 0, 571, 0, 0, 1, 1, 0, 6131.65, -2049.7249, 482.03876, 0.6806784, 300, 5, 0, 4979, 0, 1, 0, 0, 0, '', @VBUILD, 0, NULL),
(96870, 28932, 0, 0, 571, 0, 0, 1, 1, 0, 6203.877, -2064.1401, 482.06653, 0.06981317, 300, 5, 0, 4979, 0, 1, 0, 0, 0, '', @VBUILD, 0, NULL),
(96871, 28932, 0, 0, 571, 0, 0, 1, 1, 0, 6207.528, -2061.5386, 482.02487, 4.08407, 300, 5, 0, 4979, 0, 1, 0, 0, 0, '', @VBUILD, 0, NULL);
DELETE FROM `smart_scripts` WHERE (`entryorguid` IN (-96663, -96798, -96800, -96870, -96664, -96671, -96865, -96871)) AND (`source_type` = 0) AND (`id` IN (0));
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param6`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
(-96663, 0, 0, 0, 60, 0, 100, 0, 0, 0, 0, 0, 0, 0, 11, 52686, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Blight Effect Bunny - On Update - Cast \'Voltarus Blight Beam LH\''),
(-96798, 0, 0, 0, 60, 0, 100, 0, 0, 0, 0, 0, 0, 0, 11, 52686, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Blight Effect Bunny - On Update - Cast \'Voltarus Blight Beam LH\''),
(-96800, 0, 0, 0, 60, 0, 100, 0, 0, 0, 0, 0, 0, 0, 11, 52686, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Blight Effect Bunny - On Update - Cast \'Voltarus Blight Beam LH\''),
(-96870, 0, 0, 0, 60, 0, 100, 0, 0, 0, 0, 0, 0, 0, 11, 52686, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Blight Effect Bunny - On Update - Cast \'Voltarus Blight Beam LH\''),
(-96664, 0, 0, 0, 60, 0, 100, 0, 0, 0, 0, 0, 0, 0, 11, 52681, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Blight Effect Bunny - On Update - Cast \'Voltarus Blight Beam RH\''),
(-96671, 0, 0, 0, 60, 0, 100, 0, 0, 0, 0, 0, 0, 0, 11, 52681, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Blight Effect Bunny - On Update - Cast \'Voltarus Blight Beam RH\''),
(-96865, 0, 0, 0, 60, 0, 100, 0, 0, 0, 0, 0, 0, 0, 11, 52681, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Blight Effect Bunny - On Update - Cast \'Voltarus Blight Beam RH\''),
(-96871, 0, 0, 0, 60, 0, 100, 0, 0, 0, 0, 0, 0, 0, 11, 52681, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Blight Effect Bunny - On Update - Cast \'Voltarus Blight Beam RH\'');
-- Set `unitflag` to IMMUNE_TO_PC, verify spawns, add missing spawn
DELETE FROM `creature` WHERE (`id1` = 28931) and `guid` IN (96497, 96498, 96499, 96545);
INSERT INTO `creature` (`guid`, `id1`, `id2`, `id3`, `map`, `zoneId`, `areaId`, `spawnMask`, `phaseMask`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `wander_distance`, `currentwaypoint`, `curhealth`, `curmana`, `MovementType`, `npcflag`, `unit_flags`, `dynamicflags`, `ScriptName`, `Comment`, `VerifiedBuild`) VALUES
(96497, 28931, 0, 0, 571, 0, 0, 1, 1, 0, 6144.44, -1971.41, 461.385, 5.16617, 300, 0, 0, 200000, 0, 0, 0, 256, 0, '', NULL, @VBUILD),
(96498, 28931, 0, 0, 571, 0, 0, 1, 1, 0, 6206.33, -2063.48, 461.385, 2.14675, 300, 0, 0, 200000, 0, 0, 0, 256, 0, '', NULL, @VBUILD),
(96499, 28931, 0, 0, 571, 0, 0, 1, 1, 0, 6129.33, -2047.82, 461.385, 0.506145, 300, 0, 0, 200000, 0, 0, 0, 256, 0, '', NULL, @VBUILD),
(96545, 28931, 0, 0, 571, 0, 0, 1, 1, 0, 6221.2, -1986.5, 461.385, 3.78736, 300, 0, 0, 200000, 0, 0, 0, 256, 0, '', NULL, @VBUILD);
-- Voltarus Blight Beam LH, RH
DELETE FROM `conditions` WHERE (`SourceTypeOrReferenceId` = 13) AND (`SourceGroup` = 1) AND (`SourceEntry` IN (52686, 52681)) AND (`SourceId` = 0) AND (`ElseGroup` = 0) AND (`ConditionTypeOrReference` = 31) AND (`ConditionTarget` = 0) AND (`ConditionValue1` = 3) AND (`ConditionValue2` = 28931) AND (`ConditionValue3` = 0);
INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
(13, 1, 52686, 0, 0, 31, 0, 3, 28931, 0, 0, 0, 0, '', 'target Blightblood Troll'),
(13, 1, 52681, 0, 0, 31, 0, 3, 28931, 0, 0, 0, 0, '', 'target Blightblood Troll');

View File

@ -0,0 +1,108 @@
-- DB update 2025_11_07_01 -> 2025_11_07_02
-- Add Waypoints (Scarlet Miner)
DELETE FROM `waypoint_data` WHERE (`id` IN (2884100, 2884101));
INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`, `action`, `action_chance`, `wpguid`) VALUES
(2884100, 1, 2376.9087, -5906.2495, 108.593, NULL, 0, 1, 0, 100, 0),
(2884100, 2, 2340.1587, -5903.4995, 102.593, NULL, 0, 1, 0, 100, 0),
(2884100, 3, 2306.4087, -5904.7495, 90.593, NULL, 0, 1, 0, 100, 0),
(2884100, 4, 2292.6587, -5917.4995, 82.343, NULL, 0, 1, 0, 100, 0),
(2884100, 5, 2285.6587, -5943.4995, 64.093, NULL, 0, 1, 0, 100, 0),
(2884100, 6, 2271.9087, -5968.4995, 49.843, NULL, 0, 1, 0, 100, 0),
(2884100, 7, 2248.1587, -5978.4995, 36.843, NULL, 0, 1, 0, 100, 0),
(2884100, 8, 2234.6587, -5996.9995, 25.842999, NULL, 0, 1, 0, 100, 0),
(2884100, 9, 2223.4087, -6014.9995, 11.5929985, NULL, 0, 1, 0, 100, 0),
(2884100, 10, 2216.1587, -6035.9995, 7.3429985, NULL, 0, 1, 0, 100, 0),
(2884100, 11, 2195.4087, -6061.2495, 6.3429985, NULL, 0, 1, 0, 100, 0),
(2884100, 12, 2184.4087, -6091.9995, 2.0929985, NULL, 0, 1, 0, 100, 0),
(2884100, 13, 2179.6587, -6120.2495, 1.5929985, NULL, 0, 1, 0, 100, 0),
(2884100, 14, 2175.4087, -6142.9995, 1.5929985, NULL, 0, 1, 0, 100, 0),
(2884100, 15, 2167.9087, -6159.4995, 1.8429985, NULL, 0, 1, 0, 100, 0),
(2884100, 16, 2149.4087, -6161.4995, 1.5929985, NULL, 0, 1, 0, 100, 0),
(2884100, 17, 2134.9087, -6166.2495, 0.8429985, NULL, 0, 1, 0, 100, 0),
(2884100, 18, 2130.9087, -6173.2495, 4.3429985, NULL, 0, 1, 0, 100, 0),
(2884100, 19, 2125.9087, -6180.7495, 10.0929985, NULL, 0, 1, 0, 100, 0),
(2884100, 20, 2123.4087, -6184.7495, 14.0929985, NULL, 0, 1, 0, 100, 0),
(2884100, 21, 2115.9087, -6196.2495, 13.8429985, NULL, 0, 1, 0, 100, 0),
(2884100, 22, 2119.1106, -6191.905, 13.275559, NULL, 0, 1, 0, 100, 0),
(2884101, 1, 2376.855, -5906.1553, 108.57493, NULL, 0, 1, 0, 100, 0),
(2884101, 2, 2340.105, -5903.4053, 102.57493, NULL, 0, 1, 0, 100, 0),
(2884101, 3, 2306.855, -5904.9053, 90.57493, NULL, 0, 1, 0, 100, 0),
(2884101, 4, 2292.855, -5917.6553, 82.32493, NULL, 0, 1, 0, 100, 0),
(2884101, 5, 2285.855, -5943.4053, 64.07493, NULL, 0, 1, 0, 100, 0),
(2884101, 6, 2272.105, -5968.4053, 49.82493, NULL, 0, 1, 0, 100, 0),
(2884101, 7, 2248.355, -5978.4053, 36.82493, NULL, 0, 1, 0, 100, 0),
(2884101, 8, 2234.605, -5996.9053, 25.824928, NULL, 0, 1, 0, 100, 0),
(2884101, 9, 2223.605, -6015.1553, 11.574928, NULL, 0, 1, 0, 100, 0),
(2884101, 10, 2216.105, -6035.9053, 7.3249283, NULL, 0, 1, 0, 100, 0),
(2884101, 11, 2195.105, -6059.4053, 6.3249283, NULL, 0, 1, 0, 100, 0),
(2884101, 12, 2184.855, -6087.1553, 3.0749283, NULL, 0, 1, 0, 100, 0),
(2884101, 13, 2180.605, -6119.4053, 1.5749283, NULL, 0, 1, 0, 100, 0),
(2884101, 14, 2177.605, -6149.4053, 1.8249283, NULL, 0, 1, 0, 100, 0),
(2884101, 15, 2188.855, -6170.4053, 1.3249283, NULL, 0, 1, 0, 100, 0),
(2884101, 16, 2213.105, -6165.4053, 1.0749283, NULL, 0, 1, 0, 100, 0),
(2884101, 17, 2241.855, -6160.4053, 2.0749283, NULL, 0, 1, 0, 100, 0),
(2884101, 18, 2269.105, -6163.4053, 2.3249283, NULL, 0, 1, 0, 100, 0),
(2884101, 19, 2269.605, -6168.9053, 2.3249283, NULL, 0, 1, 0, 100, 0),
(2884101, 20, 2270.105, -6174.6553, 5.8249283, NULL, 0, 1, 0, 100, 0),
(2884101, 21, 2270.605, -6180.9053, 9.824928, NULL, 0, 1, 0, 100, 0),
(2884101, 22, 2271.105, -6186.1553, 14.074928, NULL, 0, 1, 0, 100, 0),
(2884101, 23, 2273.855, -6196.4053, 13.824928, NULL, 0, 1, 0, 100, 0),
(2884101, 24, 2273.0032, -6191.717, 13.239414, NULL, 0, 1, 0, 100, 0);
-- Remove Script Names.
UPDATE `creature_template` SET `ScriptName` = '' WHERE (`entry` IN (28817, 28833, 28841));
UPDATE `gameobject_template` SET `ScriptName` = '' WHERE (`entry` = 190767);
-- Set spell target position for Mine Car spawn.
UPDATE `spell_target_position` SET `PositionX` = 2389.58, `PositionY` = -5901.18, `PositionZ` = 109.02134, `Orientation` = 0 WHERE `ID` = 52462;
-- Set Unit Flag for Mine Car (immune_to_npc)
UPDATE `creature_template` SET `unit_flags` = `unit_flags` |512 WHERE (`entry` = 28817);
-- Set SmartAI (Mine Car)
UPDATE `creature_template` SET `AIName` = 'SmartAI' WHERE `entry` = 28817;
DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 28817);
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
(28817, 0, 0, 1, 54, 0, 100, 0, 0, 0, 0, 0, 0, 0, 3, 0, 25703, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Mine Car - On Just Summoned - Morph To Model 25703'),
(28817, 0, 1, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 12, 28841, 8, 0, 0, 0, 0, 8, 0, 0, 0, 0, 2382.171, -5899.672, 107.74545, 0, 'Mine Car - On Just Summoned - Summon Creature \'Scarlet Miner\''),
(28817, 0, 2, 0, 8, 0, 100, 0, 52465, 0, 0, 0, 0, 0, 29, 3, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Mine Car - On Spellhit \'Drag Mine Cart\' - Start Follow Invoker');
-- Set SmartAI (Scarlet Miner)
UPDATE `creature_template` SET `AIName` = 'SmartAI' WHERE `entry` = 28841;
DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 28841);
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
(28841, 0, 0, 0, 54, 0, 100, 0, 0, 0, 0, 0, 0, 0, 80, 2884100, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Scarlet Miner - On Just Summoned - Run Script'),
(28841, 0, 1, 0, 109, 0, 100, 0, 0, 0, 0, 0, 0, 0, 80, 2884101, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Scarlet Miner - On Path 0 Finished - Run Script');
-- Set Scarlet Miner Action List
DELETE FROM `smart_scripts` WHERE (`source_type` = 9) AND (`entryorguid` IN (2884100, 2884101));
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
(2884100, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 59, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Scarlet Miner - Actionlist - Set Run Off'),
(2884100, 9, 1, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 69, 0, 0, 0, 1, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 'Scarlet Miner - Actionlist - Move To Owner Or Summoner'),
(2884100, 9, 2, 0, 0, 0, 100, 0, 3000, 3000, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Scarlet Miner - Actionlist - Say Line 0'),
(2884100, 9, 3, 0, 0, 0, 100, 0, 3000, 3000, 0, 0, 0, 0, 11, 52465, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 'Scarlet Miner - Actionlist - Cast \'Drag Mine Cart\''),
(2884100, 9, 4, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 59, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Scarlet Miner - Actionlist - Set Run On'),
(2884100, 9, 5, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 233, 2884100, 2884101, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Scarlet Miner - Actionlist - Start Random Path 2884100-2884101'),
(2884101, 9, 0, 0, 0, 0, 100, 0, 1000, 1000, 0, 0, 0, 0, 66, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 'Scarlet Miner - Actionlist - Set Orientation Owner Or Summoner'),
(2884101, 9, 1, 0, 0, 0, 100, 0, 1000, 1000, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Scarlet Miner - Actionlist - Say Line 1'),
(2884101, 9, 2, 0, 0, 0, 100, 0, 3000, 3000, 0, 0, 0, 0, 28, 52465, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 'Scarlet Miner - Actionlist - Remove Aura \'Drag Mine Cart\''),
(2884101, 9, 3, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 'Scarlet Miner - Actionlist - Despawn Instant'),
(2884101, 9, 4, 0, 0, 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, 'Scarlet Miner - Actionlist - Despawn Instant');
-- Set SmartAI (Scarlet Fleet Defender)
UPDATE `creature_template` SET `AIName` = 'SmartAI' WHERE `entry` = 28834;
DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 28834);
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
(28834, 0, 0, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 3000, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Scarlet Fleet Defender - On Just Died - Despawn In 3000 ms'),
(28834, 0, 1, 0, 0, 0, 100, 0, 1000, 5000, 5000, 8000, 0, 0, 11, 52566, 64, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Scarlet Fleet Defender - In Combat - Cast \'Shoot\'');
-- Update SmartAI (Scarlet Cannon)
UPDATE `creature_template` SET `AIName` = 'SmartAI' WHERE `entry` = 28850;
DELETE FROM `smart_scripts` WHERE (`entryorguid` = 28850) AND (`source_type` = 0) AND (`id` IN (2));
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
(28850, 0, 2, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 3000, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Scarlet Land Cannon - On Just Died - Despawn In 3000 ms');

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,5 @@
-- DB update 2025_11_08_00 -> 2025_11_08_01
--
DELETE FROM `conditions` WHERE (`SourceTypeOrReferenceId` = 17) AND (`SourceGroup` = 0) AND (`SourceEntry` = 40969) AND (`SourceId` = 0) AND (`ElseGroup` = 0) AND (`ConditionTypeOrReference` = 31) AND (`ConditionTarget` = 1) AND (`ConditionValue1` = 3) AND (`ConditionValue2` = 23689) AND (`ConditionValue3` = 0);
INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
(17, 0, 40969, 0, 0, 31, 1, 3, 23689, 0, 0, 0, 0, '', 'Malister Frost Wand require Proto-Drake');

View File

@ -0,0 +1,172 @@
-- DB update 2025_11_08_01 -> 2025_11_08_02
SET @BossXPMod = 7.5,
@FinalBossXPMod = 10;
UPDATE `creature_template` SET `ExperienceModifier` = @BossXPMod WHERE `entry` IN (
-- Utgarde Keep
23953, -- Prince Keleseth
30748,
24200, -- Skarvald the Constructor
31679,
24201, -- Dalronn the Controller
31656,
-- Azjol-Nerub
28684, -- Krik'thir the Gatewatcher
31612,
28921, -- Hadronox
31611,
-- Ahn'kahet: The Old Kingdom
29309, -- Elder Nadox
31456,
29308, -- Prince Taldaram
31469,
29310, -- Jedoga Shadowseeker
31465,
30258, -- Amanitar
31463,
-- The Nexus
26731, -- Grand Magus Telestra
30510,
26763, -- Anomalus
30529,
26794, -- Ormorok the Tree-Shaper
30532,
26796, -- Commander Stoutbeard
30398,
26798, -- Commander Kolurg
30397,
-- Drak'Tharon Keep
26630, -- Trollgore
31362,
26631, -- Novos the Summoner
31350,
-- 27483, -- King Dred, observed to not give as much experience as this
-- 31349,
-- The Violet Hold
29315, -- Erekem
31507,
29316, -- Moragg
31510,
29313, -- Ichoron
31508,
29266, -- Xevozz
31511,
29312, -- Lavanthor
31509,
29314, -- Zuramat the Obliterator
31512,
-- Gundrak
29304, -- Slad'ran
31370,
-- 29573, -- Drakkari Elemental, observed to not give as much experience as this
-- 31367,
29305, -- Moorabi
30530,
29932, -- Eck the Ferocious
-- Halls of Stone
27975, -- Maiden of Grief
31384,
27977, -- Krystallus
31381,
-- Halls of Lightning
28586, -- General Bjarngrim
31533,
28587, -- Volkhan
31536,
28546, -- Ionar
31537,
-- The Oculus
27654, -- Drakos the Interrogator
31558,
27447, -- Varos Cloudstrider
31559,
27655, -- Mage-Lord Urom
31560,
-- Utgarde Pinnacle
26668, -- Svala Sorrowgrave
30810,
26687, -- Gortok Palehoof
30774,
26693, -- Skadi the Ruthless
30807,
-- The Culling of Stratholme
26529, -- Meathook
31211,
26530, -- Salramm the Fleshcrafter
31212,
26532, -- Chrono-Lord Epoch
31215,
32273, -- Infinite Corruptor
32313,
-- Trial of the Champion
34705, -- Marshal Jacob Alerius
36088,
34702, -- Ambrose Boltspark
36082,
34701, -- Colosos
36083,
34657, -- Jaelyne Evensong
36086,
34703, -- Lana Stouthammer
36087,
35572, -- Mokra the Skullcrusher
36089,
35569, -- Eressea Dawnsinger
36085,
35571, -- Runok Wildmane
36090,
35570, -- Zul'tore
36091,
35617, -- Deathstalker Visceri
36084,
35119, -- Eadric the Pure
35518,
34928, -- Argent Confessor Paletress
35517,
-- The Forge of Souls
36497, -- Bronjahm
36498,
-- Pit of Saron
36494, -- Forgemaster Garfrost
37613,
36476, -- Ick
37627,
-- Halls of Reflection
38112, -- Falric
38599,
38113, -- Marwyn
38603
);
UPDATE `creature_template` SET `ExperienceModifier` = @FinalBossXPMod WHERE `entry` IN (
23954, -- Ingvar the Plunderer, Utgarde Keep
31673,
29120, -- Anub'arak, Azjol-Nerub
31610,
29311, -- Herald Volazj,
31464,
26723, -- Keristrasza
30540,
26632, -- The Prophet Tharon'ja
31360,
31134, -- Cyanigosa
31506,
29306, -- Gal'darah
31368,
27978, -- Sjonnir The Ironshaper
31386,
28923, -- Loken
31538,
27656, -- Ley-Guardian Eregos
31561,
26861, -- King Ymiron
30788,
26533, -- Mal'Ganis
31217,
35451, -- The Black Knight, Trial of the Champion
35490,
36502, -- Devourer of Souls, Forge of Souls
37677,
36658, -- Scourgelord Tyrannus, Pit of Saron
36938
);

View File

@ -0,0 +1,3 @@
-- DB update 2025_11_08_02 -> 2025_11_09_00
--
UPDATE `creature_addon` SET `visibilityDistanceType` = 3 WHERE `guid` = 103278;

View File

@ -0,0 +1,3 @@
-- DB update 2025_11_09_00 -> 2025_11_09_01
--
UPDATE `creature_template` SET `flags_extra` = `flags_extra`|64 WHERE `entry` IN (28220, 28218, 28242, 28103, 28212, 28207, 28170);

View File

@ -0,0 +1,3 @@
-- DB update 2025_11_09_01 -> 2025_11_09_02
--
DELETE FROM `creature` WHERE `id1` = 10218;

View File

@ -0,0 +1,67 @@
-- DB update 2025_11_09_02 -> 2025_11_09_03
--
-- Fixes "Bluff", Set `allowOverride` of action list
UPDATE `smart_scripts` SET `action_param3` = 1 WHERE (`entryorguid` IN (23672, 23673, 23675, 24271)) AND (`source_type` = 0) AND (`event_type` = 8) AND (`event_param1` = 44609);
-- Removes double spawns
DELETE FROM `gameobject` WHERE `id` = 186959 AND `guid` IN (264459, 264460, 264461, 264462, 264463, 264464, 264465);
-- Add missing aura. Usage is unknown
DELETE FROM `creature_template_addon` WHERE (`entry` = 24825);
INSERT INTO `creature_template_addon` (`entry`, `path_id`, `mount`, `bytes1`, `bytes2`, `emote`, `visibilityDistanceType`, `auras`) VALUES
(24825, 0, 0, 0, 0, 0, 0, '44652');
-- Disable flying vehicle, but causes camera stuttering on rocket jump
UPDATE `creature_template_movement` SET `Flight` = 0 WHERE (`CreatureId` = 24825);
DELETE FROM `creature_text` WHERE (`CreatureID` = 24825) AND (`GroupID` = 1);
INSERT INTO `creature_text` (`CreatureID`, `GroupID`, `ID`, `Text`, `Type`, `Language`, `Probability`, `Emote`, `Duration`, `Sound`, `BroadcastTextId`, `TextRange`, `comment`) VALUES
(24825, 1, 0, 'Launching.', 12, 0, 100, 0, 0, 0, 23860, 0, 'Iron Rune Construct');
DELETE FROM `smart_scripts` WHERE (`entryorguid` = 24825) AND (`source_type` = 0) AND (`id` IN (15, 16));
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
(24825, 0, 15, 0, 31, 0, 100, 512, 44609, 0, 3000, 3000, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Iron Rune Construct - On Spellhit \'Bluff\' - Say Line 0'),
(24825, 0, 16, 0, 8, 0, 100, 512, 44626, 0, 5000, 5000, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Iron Rune Construct - On Spellhit \'Rocket Jump\' - Say Line 1');
-- Remove unused 'Say Line 0' in actionscripts
DELETE FROM `smart_scripts` WHERE (`entryorguid` IN (2367201, 2367301, 2367501, 2427101)) AND `source_type` = 9 AND `id` = 1 AND `target_type` = 19 AND `target_param1` = 24825 AND `action_type` = 1 AND `target_param2` = 20;
DELETE FROM `conditions` WHERE (`SourceTypeOrReferenceId` = 13) AND (`SourceGroup` IN (2, 4)) AND (`SourceEntry` = 44608) AND (`SourceId` = 0) AND (`ConditionTypeOrReference` = 31);
INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
(13, 4, 44608, 0, 0, 31, 0, 3, 24826, 0, 0, 0, 0, '', 'Rocket Jump'),
(13, 4, 44608, 0, 1, 31, 0, 3, 24827, 0, 0, 0, 0, '', 'Rocket Jump'),
(13, 4, 44608, 0, 2, 31, 0, 3, 24828, 0, 0, 0, 0, '', 'Rocket Jump'),
(13, 4, 44608, 0, 3, 31, 0, 3, 24829, 0, 0, 0, 0, '', 'Rocket Jump'),
(13, 4, 44608, 0, 4, 31, 0, 3, 24831, 0, 0, 0, 0, '', 'Rocket Jump'),
(13, 4, 44608, 0, 5, 31, 0, 3, 24832, 0, 0, 0, 0, '', 'Rocket Jump'),
(13, 2, 44608, 0, 0, 31, 0, 5, 186953, 0, 0, 0, 0, '', 'Rocket Jump'),
(13, 2, 44608, 0, 1, 31, 0, 5, 186960, 0, 0, 0, 0, '', 'Rocket Jump'),
(13, 2, 44608, 0, 2, 31, 0, 5, 186961, 0, 0, 0, 0, '', 'Rocket Jump'),
(13, 2, 44608, 0, 3, 31, 0, 5, 186963, 0, 0, 0, 0, '', 'Rocket Jump'),
(13, 2, 44608, 0, 4, 31, 0, 5, 186962, 0, 0, 0, 0, '', 'Rocket Jump'),
(13, 2, 44608, 0, 5, 31, 0, 5, 186964, 0, 0, 0, 0, '', 'Rocket Jump');
DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 24825);
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
(24825, 0, 0, 0, 54, 0, 100, 512, 0, 0, 0, 0, 0, 0, 75, 44643, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 'Iron Rune Construct - On Just Summoned - Add Aura \'Reputation and Language\''),
(24825, 0, 1, 0, 28, 0, 100, 512, 0, 0, 0, 0, 0, 0, 28, 44643, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 'Iron Rune Construct - On Passenger Removed - Remove Aura \'Reputation and Language\''),
(24825, 0, 2, 0, 38, 0, 100, 512, 0, 1, 0, 0, 0, 0, 53, 2, 24826, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Iron Rune Construct - On Data Set 0 1 - Start Waypoint Path 24826'),
(24825, 0, 3, 0, 38, 0, 100, 512, 0, 2, 0, 0, 0, 0, 53, 2, 24827, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Iron Rune Construct - On Data Set 0 2 - Start Waypoint Path 24827'),
(24825, 0, 4, 0, 38, 0, 100, 512, 0, 3, 0, 0, 0, 0, 53, 2, 24828, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Iron Rune Construct - On Data Set 0 3 - Start Waypoint Path 24828'),
(24825, 0, 5, 0, 38, 0, 100, 512, 0, 4, 0, 0, 0, 0, 53, 2, 24831, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Iron Rune Construct - On Data Set 0 4 - Start Waypoint Path 24831'),
(24825, 0, 6, 0, 38, 0, 100, 512, 0, 5, 0, 0, 0, 0, 53, 2, 24829, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Iron Rune Construct - On Data Set 0 5 - Start Waypoint Path 24829'),
(24825, 0, 7, 0, 38, 0, 100, 512, 0, 6, 0, 0, 0, 0, 53, 2, 24832, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Iron Rune Construct - On Data Set 0 6 - Start Waypoint Path 24832'),
(24825, 0, 8, 0, 58, 0, 100, 512, 0, 0, 0, 0, 0, 0, 28, 44626, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Iron Rune Construct - On Path 0 Finished - Remove Aura \'Rocket Jump\''),
(24825, 0, 9, 0, 31, 0, 100, 512, 44609, 0, 3000, 3000, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Iron Rune Construct - On Target Spellhit \'Bluff\' - Say Line 0'),
(24825, 0, 10, 0, 8, 0, 100, 512, 44626, 0, 5000, 5000, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Iron Rune Construct - On Spellhit \'Rocket Jump\' - Say Line 1');
--
UPDATE `creature_template` SET `AIName` = 'SmartAI' WHERE (`entry` IN (24826, 24827, 24828, 24829, 24831, 24832));
DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` IN (24826, 24827, 24828, 24829, 24831, 24832));
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
(24826, 0, 0, 0, 8, 0, 100, 0, 44608, 0, 0, 0, 0, 0, 45, 0, 1, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'On Spellhit \'Rocket Jump\' - Set Data 0 1'),
(24827, 0, 0, 0, 8, 0, 100, 0, 44608, 0, 0, 0, 0, 0, 45, 0, 2, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'On Spellhit \'Rocket Jump\' - Set Data 0 2'),
(24828, 0, 0, 0, 8, 0, 100, 0, 44608, 0, 0, 0, 0, 0, 45, 0, 3, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'On Spellhit \'Rocket Jump\' - Set Data 0 3'),
(24831, 0, 0, 0, 8, 0, 100, 0, 44608, 0, 0, 0, 0, 0, 45, 0, 4, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'On Spellhit \'Rocket Jump\' - Set Data 0 4'),
(24829, 0, 0, 0, 8, 0, 100, 0, 44608, 0, 0, 0, 0, 0, 45, 0, 5, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'On Spellhit \'Rocket Jump\' - Set Data 0 5'),
(24832, 0, 0, 0, 8, 0, 100, 0, 44608, 0, 0, 0, 0, 0, 45, 0, 6, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'On Spellhit \'Rocket Jump\' - Set Data 0 6');
DELETE FROM `smart_scripts` WHERE `source_type` = 9 AND `entryorguid` IN (2482600, 2482700, 2482800, 2482900, 2483100, 2483200);

View File

@ -26,7 +26,7 @@
#define SIZE_OF_GRIDS 533.3333f
#define MMAP_MAGIC 0x4d4d4150 // 'MMAP'
#define MMAP_VERSION 17
#define MMAP_VERSION 18
struct MmapTileRecastConfig
{

View File

@ -2844,6 +2844,49 @@ void Player::SendInitialSpells()
SendDirectMessage(&data);
}
void Player::SendUnlearnSpells()
{
WorldPacket data(SMSG_SEND_UNLEARN_SPELLS, 4 + 4 * m_spells.size());
uint32 spellCount = 0;
size_t countPos = data.wpos();
data << uint32(spellCount);
for (auto const& itr : m_spells)
{
if (itr.second->State == PLAYERSPELL_REMOVED || itr.second->Active)
continue;
auto skillLineAbilities = sSpellMgr->GetSkillLineAbilityMapBounds(itr.first);
if (skillLineAbilities.first == skillLineAbilities.second)
continue;
uint32 nextRank = sSpellMgr->GetNextSpellInChain(itr.first);
if (!nextRank || !HasSpell(nextRank))
continue;
data << uint32(itr.first);
++spellCount;
}
data.put<uint32>(countPos, spellCount);
SendDirectMessage(&data);
}
bool Player::IsUnlearnNeededForSpell(uint32 spellId)
{
SpellInfo const* spellInfo = sSpellMgr->AssertSpellInfo(spellId);
if (spellInfo->IsRanked() && !spellInfo->IsStackableWithRanks())
{
auto skillLineAbilities = sSpellMgr->GetSkillLineAbilityMapBounds(spellId);
if (skillLineAbilities.first != skillLineAbilities.second)
{
return true;
}
}
return false;
}
void Player::RemoveMail(uint32 id)
{
for (PlayerMails::iterator itr = m_mail.begin(); itr != m_mail.end(); ++itr)

View File

@ -1638,6 +1638,9 @@ public:
void UpdateNextMailTimeAndUnreads();
void AddNewMailDeliverTime(time_t deliver_time);
void SendUnlearnSpells();
static bool IsUnlearnNeededForSpell(uint32 spellId);
void RemoveMail(uint32 id);
void AddMail(Mail* mail) { m_mail.push_front(mail); }// for call from WorldSession::SendMailTo

View File

@ -1848,8 +1848,13 @@ InventoryResult Player::CanEquipItem(uint8 slot, uint16& dest, Item* pItem, bool
return EQUIP_ERR_NOT_DURING_ARENA_MATCH;
}
if (IsInCombat() && (pProto->Class == ITEM_CLASS_WEAPON || pProto->InventoryType == INVTYPE_RELIC) && m_weaponChangeTimer != 0)
return EQUIP_ERR_CANT_DO_RIGHT_NOW; // maybe exist better err
if (IsInCombat() && (pProto->Class == ITEM_CLASS_WEAPON || pProto->InventoryType == INVTYPE_RELIC))
{
uint32 cooldownSpell = IsClass(CLASS_ROGUE, CLASS_CONTEXT_WEAPON_SWAP) ? 6123 : 6119;
uint32 startRecoveryTime = sSpellMgr->GetSpellInfo(cooldownSpell)->StartRecoveryTime;
if (m_weaponChangeTimer != 0 && m_weaponChangeTimer != startRecoveryTime)
return EQUIP_ERR_CANT_DO_RIGHT_NOW; // maybe exist better err
}
if (IsNonMeleeSpellCast(false))
return EQUIP_ERR_CANT_DO_RIGHT_NOW;

View File

@ -1968,10 +1968,7 @@ void Player::UpdateCharmedAI()
Unit* target = GetVictim();
if (target)
{
SetInFront(target);
SendMovementFlagUpdate(true);
}
if (HasUnitState(UNIT_STATE_CASTING))
return;

View File

@ -10963,7 +10963,11 @@ void Unit::SetCharm(Unit* charm, bool apply)
charm->SetUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED);
}
else
{
charm->m_ControlledByPlayer = false;
if (!HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED))
charm->RemoveUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED);
}
// PvP, FFAPvP
charm->SetByteValue(UNIT_FIELD_BYTES_2, 1, GetByteValue(UNIT_FIELD_BYTES_2, 1));
@ -19582,12 +19586,6 @@ void Unit::_ExitVehicle(Position const* exitPosition)
sScriptMgr->AnticheatSetUnderACKmount(player);
}
else if (HasUnitMovementFlag(MOVEMENTFLAG_ROOT))
{
WorldPacket data(SMSG_SPLINE_MOVE_UNROOT, 8);
data << GetPackGUID();
SendMessageToSet(&data, false);
}
// xinef: hack for flameleviathan seat vehicle
VehicleEntry const* vehicleInfo = vehicle->GetVehicleInfo();

View File

@ -1170,6 +1170,12 @@ void WorldSession::HandlePlayerLoginToCharInWorld(Player* pCurrChar)
pCurrChar->RemoveUnitFlag(UNIT_FLAG_STUNNED);
}
if (pCurrChar->GetPendingFlightChange() <= pCurrChar->GetMapChangeOrderCounter())
{
if (!pCurrChar->HasIncreaseMountedFlightSpeedAura() && !pCurrChar->HasFlyAura())
pCurrChar->m_movementInfo.RemoveMovementFlag(MOVEMENTFLAG_CAN_FLY);
}
pCurrChar->SendInitialPacketsBeforeAddToMap();
// necessary actions from AddPlayerToMap:

View File

@ -264,6 +264,9 @@ void WorldSession::HandleTrainerBuySpellOpcode(WorldPacket& recvData)
else
_player->learnSpell(spellId);
if (Player::IsUnlearnNeededForSpell(spellId))
_player->SendUnlearnSpells();
WorldPacket data(SMSG_TRAINER_BUY_SUCCEEDED, 12);
data << guid;
data << uint32(spellId); // should be same as in packet from client

View File

@ -84,14 +84,9 @@ uint32 Acore::XP::Gain(Player* player, Unit* unit, bool isBattleGround /*= false
if (gain && creature)
{
if (creature->isElite())
{
// Elites in instances have a 2.75x XP bonus instead of the regular 2x world bonus.
if (unit->GetMap() && unit->GetMap()->IsDungeon())
xpMod *= 2.75f;
else
xpMod *= 2.0f;
}
xpMod *= 2.0f;
// Instanced mobs (particularly bosses) oftentimes have higher bonuses, especially in later content levels
xpMod *= creature->GetCreatureTemplate()->ModExperience;
}

View File

@ -502,49 +502,6 @@ public:
};
};
class npc_scarlet_cannon : public CreatureScript
{
public:
npc_scarlet_cannon() : CreatureScript("npc_scarlet_cannon") { }
CreatureAI* GetAI(Creature* creature) const override
{
return new npc_scarlet_cannonAI(creature);
}
struct npc_scarlet_cannonAI : public VehicleAI
{
npc_scarlet_cannonAI(Creature* creature) : VehicleAI(creature) { summonAttackers = 0; }
uint32 summonAttackers;
void PassengerBoarded(Unit* /*passenger*/, int8 /*seatId*/, bool apply) override
{
summonAttackers = apply ? 8000 : 0;
}
void UpdateAI(uint32 diff) override
{
VehicleAI::UpdateAI(diff);
if (summonAttackers)
{
summonAttackers += diff;
if (summonAttackers >= 15000)
{
for (uint8 i = 0; i < 15; ++i)
if (Creature* summon = me->SummonCreature(28834 /*NPC_SCARLET_FLEET_DEFENDER*/, 2192.56f + irand(-10, 10), -6147.90f + irand(-10, 10), 5.2f, 4.7f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 45000))
{
summon->SetHomePosition(me->GetHomePosition());
summon->AI()->AttackStart(me);
}
summonAttackers = 1;
}
}
}
};
};
/*######
##Quest 12848
######*/
@ -835,253 +792,6 @@ public:
}
};
/*####
## npc_scarlet_miner_cart
####*/
enum Spells_SM
{
SPELL_CART_CHECK = 54173,
SPELL_CART_DRAG = 52465
};
class npc_scarlet_miner_cart : public CreatureScript
{
public:
npc_scarlet_miner_cart() : CreatureScript("npc_scarlet_miner_cart") { }
CreatureAI* GetAI(Creature* creature) const override
{
return new npc_scarlet_miner_cartAI(creature);
}
struct npc_scarlet_miner_cartAI : public PassiveAI
{
npc_scarlet_miner_cartAI(Creature* creature) : PassiveAI(creature)
{
me->SetImmuneToAll(true);
me->SetFaction(FACTION_FRIENDLY);
me->SetDisplayFromModel(0); // Modelid2 is a horse.
}
ObjectGuid minerGUID;
void SetGUID(ObjectGuid const& guid, int32 /*id*/) override
{
minerGUID = guid;
}
void DoAction(int32 /*param*/) override
{
if (Creature* miner = ObjectAccessor::GetCreature(*me, minerGUID))
{
me->SetWalk(false);
//Not 100% correct, but movement is smooth. Sometimes miner walks faster
//than normal, this speed is fast enough to keep up at those times.
me->SetSpeed(MOVE_RUN, 1.25f);
me->GetMotionMaster()->MoveFollow(miner, 1.0f, 0);
me->ReplaceAllUnitFlags(UNIT_FLAG_NON_ATTACKABLE);
me->SetImmuneToAll(true);
me->SetFaction(FACTION_FRIENDLY);
}
}
void PassengerBoarded(Unit* who, int8 /*seatId*/, bool apply) override
{
who->SetVisible(!apply);
if (!apply)
if (Creature* miner = ObjectAccessor::GetCreature(*me, minerGUID))
miner->DisappearAndDie();
}
};
};
/*####
## npc_scarlet_miner
####*/
enum Says_SM
{
SAY_SCARLET_MINER_0 = 0,
SAY_SCARLET_MINER_1 = 1
};
class npc_scarlet_miner : public CreatureScript
{
public:
npc_scarlet_miner() : CreatureScript("npc_scarlet_miner") { }
CreatureAI* GetAI(Creature* creature) const override
{
return new npc_scarlet_minerAI(creature);
}
struct npc_scarlet_minerAI : public npc_escortAI
{
npc_scarlet_minerAI(Creature* creature) : npc_escortAI(creature)
{
me->SetReactState(REACT_PASSIVE);
}
uint32 IntroTimer;
uint32 IntroPhase;
ObjectGuid carGUID;
void Reset() override
{
carGUID.Clear();
IntroTimer = 0;
IntroPhase = 0;
}
void InitWaypoint()
{
AddWaypoint(1, 2389.03f, -5902.74f, 109.014f, 5000);
AddWaypoint(2, 2341.812012f, -5900.484863f, 102.619743f);
AddWaypoint(3, 2308.34f, -5904.2f, 91.1099f);
AddWaypoint(4, 2300.69f, -5912.99f, 86.1572f);
AddWaypoint(5, 2294.142090f, -5927.274414f, 75.316849f);
AddWaypoint(6, 2286.984375f, -5944.955566f, 63.714966f);
AddWaypoint(7, 2280.001709f, -5961.186035f, 54.228283f);
AddWaypoint(8, 2259.389648f, -5974.197754f, 42.359348f);
AddWaypoint(9, 2242.882812f, -5984.642578f, 32.827850f);
AddWaypoint(10, 2239.79f, -5989.31f, 30.4453f);
AddWaypoint(11, 2236.52f, -5994.28f, 27.4829f);
AddWaypoint(12, 2232.61f, -6000.23f, 23.1281f);
AddWaypoint(13, 2228.69f, -6006.46f, 17.6638f);
AddWaypoint(14, 2225.2f, -6012.39f, 12.9487f);
AddWaypoint(15, 2217.265625f, -6028.959473f, 7.675705f);
AddWaypoint(16, 2202.595947f, -6061.325684f, 5.882018f);
AddWaypoint(17, 2188.974609f, -6080.866699f, 3.370027f);
if (urand(0, 1))
{
AddWaypoint(18, 2176.483887f, -6110.407227f, 1.855181f);
AddWaypoint(19, 2172.516602f, -6146.752441f, 1.074235f);
AddWaypoint(20, 2138.918457f, -6158.920898f, 1.342926f);
AddWaypoint(21, 2129.866699f, -6174.107910f, 4.380779f);
AddWaypoint(22, 2125.250001f, -6181.230001f, 9.91997f);
AddWaypoint(23, 2117.709473f, -6193.830078f, 13.3542f, 10000);
}
else
{
AddWaypoint(18, 2184.190186f, -6166.447266f, 0.968877f);
AddWaypoint(19, 2234.265625f, -6163.741211f, 0.916021f);
AddWaypoint(20, 2268.071777f, -6158.750977f, 1.822252f);
AddWaypoint(21, 2270.028320f, -6176.505859f, 6.340538f);
AddWaypoint(22, 2270.350001f, -6182.410001f, 10.42431f);
AddWaypoint(23, 2271.739014f, -6195.401855f, 13.3542f, 10000);
}
}
void InitCartQuest(Player* who)
{
carGUID = who->GetVehicleBase()->GetGUID();
InitWaypoint();
me->SetWalk(true);
Start(false, who->GetGUID());
SetDespawnAtFar(false);
}
void WaypointReached(uint32 waypointId) override
{
switch (waypointId)
{
case 1:
if (Unit* car = ObjectAccessor::GetCreature(*me, carGUID))
{
me->SetFacingToObject(car);
// xinef: add some flags
car->ReplaceAllUnitFlags(UNIT_FLAG_NON_ATTACKABLE);
car->SetImmuneToAll(true);
car->SetFaction(FACTION_FRIENDLY);
}
Talk(SAY_SCARLET_MINER_0);
me->SetWalk(false);
IntroTimer = 4000;
IntroPhase = 1;
break;
case 23:
if (Creature* car = ObjectAccessor::GetCreature(*me, carGUID))
{
car->SetPosition(car->GetPositionX(), car->GetPositionY(), me->GetPositionZ() + 1, car->GetOrientation());
car->StopMovingOnCurrentPos();
me->SetFacingToObject(car);
car->RemoveAura(SPELL_CART_DRAG);
}
Talk(SAY_SCARLET_MINER_1);
break;
default:
break;
}
}
void UpdateAI(uint32 diff) override
{
if (IntroPhase)
{
if (IntroTimer <= diff)
{
if (IntroPhase == 1)
{
if (Creature* car = ObjectAccessor::GetCreature(*me, carGUID))
DoCast(car, SPELL_CART_DRAG);
IntroTimer = 800;
IntroPhase = 2;
}
else
{
if (Creature* car = ObjectAccessor::GetCreature(*me, carGUID))
car->AI()->DoAction(0);
IntroPhase = 0;
}
}
else IntroTimer -= diff;
}
npc_escortAI::UpdateAI(diff);
}
};
};
/*######
## go_inconspicuous_mine_car
######*/
enum Spells_Cart
{
SPELL_CART_SUMM = 52463
};
class go_inconspicuous_mine_car : public GameObjectScript
{
public:
go_inconspicuous_mine_car() : GameObjectScript("go_inconspicuous_mine_car") { }
bool OnGossipHello(Player* player, GameObject* /*go*/) override
{
if (player->GetQuestStatus(12701) == QUEST_STATUS_INCOMPLETE)
{
// Hack Why Trinity Dont Support Custom Summon Location
if (Creature* miner = player->SummonCreature(28841, 2383.869629f, -5900.312500f, 107.996086f, player->GetOrientation(), TEMPSUMMON_DEAD_DESPAWN, 1))
{
player->CastSpell(player, SPELL_CART_SUMM, true);
if (Creature* car = player->GetVehicleCreatureBase())
{
if (car->GetEntry() == 28817)
{
car->AI()->SetGUID(miner->GetGUID());
CAST_AI(npc_scarlet_miner::npc_scarlet_minerAI, miner->AI())->InitCartQuest(player);
}
}
}
}
return true;
}
};
class spell_death_knight_initiate_visual : public SpellScript
{
PrepareSpellScript(spell_death_knight_initiate_visual);
@ -1219,13 +929,9 @@ void AddSC_the_scarlet_enclave_c1()
RegisterSpellScript(spell_q12698_the_gift_that_keeps_on_giving);
new npc_scarlet_ghoul();
new npc_dkc1_gothik();
new npc_scarlet_cannon();
new npc_unworthy_initiate();
new npc_unworthy_initiate_anchor();
new go_acherus_soul_prison();
new npc_scarlet_miner();
new npc_scarlet_miner_cart();
new go_inconspicuous_mine_car();
RegisterSpellScript(spell_death_knight_initiate_visual);
RegisterSpellScript(spell_lich_king_whisper);
RegisterSpellScript(spell_lich_king_vo_blocker);

View File

@ -133,13 +133,13 @@ struct boss_anub_arak : public BossAI
DoCastSelf(SPELL_IMPALE_PERIODIC, true);
++_submergePhase;
events.Reset();
ScheduleSubmerged();
}
}
void ScheduleEmerged()
{
events.Reset();
events.SetPhase(PHASE_EMERGED);
events.ScheduleEvent(EVENT_CARRION_BEETLES, 6500ms, 0, PHASE_EMERGED);
events.ScheduleEvent(EVENT_LEECHING_SWARM, 20s, 0, PHASE_EMERGED);
@ -148,7 +148,6 @@ struct boss_anub_arak : public BossAI
void ScheduleSubmerged()
{
events.Reset();
events.SetPhase(PHASE_SUBMERGED);
events.ScheduleEvent(EVENT_EMERGE, 60s, 0, PHASE_SUBMERGED);
@ -209,14 +208,13 @@ struct boss_anub_arak : public BossAI
}
}
void JustEngagedWith(Unit* who) override
void JustEngagedWith(Unit* /*who*/) override
{
BossAI::JustEngagedWith(who);
Talk(SAY_AGGRO);
instance->DoStartTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, ACHIEV_TIMED_START_EVENT);
events.SetPhase(PHASE_EMERGED);
events.ScheduleEvent(EVENT_CLOSE_DOORS, 5s);
events.ScheduleEvent(EVENT_CLOSE_DOORS, 5s, 0, PHASE_EMERGED);
ScheduleEmerged();
// set up world triggers
@ -288,7 +286,8 @@ struct boss_anub_arak : public BossAI
if (_remainingLargeSummonsBeforeEmerge == 0)
{
events.Reset();
events.ScheduleEvent(EVENT_EMERGE, 5s);
events.SetPhase(PHASE_SUBMERGED);
events.ScheduleEvent(EVENT_EMERGE, 5s, 0, PHASE_SUBMERGED);
}
break;
}
@ -333,10 +332,10 @@ struct boss_anub_arak : public BossAI
DoCastSelf(SPELL_SELF_ROOT, true);
me->DisableRotate(true);
me->SendMovementFlagUpdate();
events.ScheduleEvent(EVENT_ENABLE_ROTATE, 3300ms);
events.ScheduleEvent(EVENT_ENABLE_ROTATE, 3300ms, 0, PHASE_EMERGED);
DoCast(target, SPELL_POUND);
}
events.ScheduleEvent(EVENT_POUND, 18s);
events.ScheduleEvent(EVENT_POUND, 18s, 0, PHASE_EMERGED);
break;
case EVENT_ENABLE_ROTATE:
me->RemoveAurasDueToSpell(SPELL_SELF_ROOT);

View File

@ -77,51 +77,52 @@ enum Misc
DATA_SET_INSANITY_PHASE = 1,
};
enum Events
{
EVENT_HERALD_MIND_FLAY = 1,
EVENT_HERALD_SHADOW,
EVENT_HERALD_SHIVER,
};
const std::array<uint32, MAX_INSANITY_TARGETS> InsanitySpells = { SPELL_INSANITY_PHASING_1, SPELL_INSANITY_PHASING_2, SPELL_INSANITY_PHASING_3, SPELL_INSANITY_PHASING_4, SPELL_INSANITY_PHASING_5 };
struct boss_volazj : public BossAI
{
boss_volazj(Creature* pCreature) : BossAI(pCreature, DATA_HERALD_VOLAZJ),
insanityTimes(0),
insanityPhase(false)
{ }
void InitializeAI() override
{
BossAI::InitializeAI();
// Visible for all players in insanity
me->SetPhaseMask((1 | 16 | 32 | 64 | 128 | 256), true);
}
void Reset() override
{
_Reset();
insanityTimes = 0;
insanityPhase = false;
me->RemoveUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
me->SetControlled(false, UNIT_STATE_STUNNED);
ResetPlayersPhaseMask();
instance->DoStopTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, ACHIEV_QUICK_DEMISE_START_EVENT);
me->SetPhaseMask((1 | 16 | 32 | 64 | 128 | 256), true);
ScheduleHealthCheckEvent({ 66, 33 }, [&]{
scheduler.CancelAll();
DoCastSelf(SPELL_INSANITY);
}, false);
}
void ScheduleTasks() override
{
ScheduleTimedEvent(8s, [&] {
DoCastVictim(SPELL_MIND_FLAY);
}, 20s);
ScheduleTimedEvent(5s, [&] {
DoCastVictim(SPELL_SHADOW_BOLT_VOLLEY);
}, 5s);
ScheduleTimedEvent(15s, [&] {
DoCastRandomTarget(SPELL_SHIVER);
}, 15s);
}
void JustEngagedWith(Unit* /*who*/) override
{
_JustEngagedWith();
events.ScheduleEvent(EVENT_HERALD_MIND_FLAY, 8s);
events.ScheduleEvent(EVENT_HERALD_SHADOW, 5s);
events.ScheduleEvent(EVENT_HERALD_SHIVER, 15s);
Talk(SAY_AGGRO);
DoCastSelf(SPELL_WHISPER_AGGRO);
instance->DoStartTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, ACHIEV_QUICK_DEMISE_START_EVENT);
me->SetInCombatWithZone();
}
void JustDied(Unit* /*killer*/) override
@ -184,36 +185,13 @@ struct boss_volazj : public BossAI
}
}
void DamageTaken(Unit* /*attacker*/, uint32& damage, DamageEffectType /*damagetype*/, SpellSchoolMask /*damageSchoolMask*/) override
{
// Do not perform insanity recast if boss is casting Insanity already
if (me->FindCurrentSpellBySpellId(SPELL_INSANITY))
{
return;
}
// First insanity
if (insanityTimes == 0 && me->HealthBelowPctDamaged(66, damage))
{
DoCastSelf(SPELL_INSANITY, false);
++insanityTimes;
}
// Second insanity
else if (insanityTimes == 1 && me->HealthBelowPctDamaged(33, damage))
{
me->InterruptNonMeleeSpells(false);
DoCastSelf(SPELL_INSANITY, false);
++insanityTimes;
}
}
void UpdateAI(uint32 diff) override
{
//Return since we have no target
if (!UpdateVictim())
{
return;
}
scheduler.Update(diff);
if (insanityPhase)
{
@ -226,53 +204,13 @@ struct boss_volazj : public BossAI
me->RemoveUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
me->SetControlled(false, UNIT_STATE_STUNNED);
me->RemoveAurasDueToSpell(INSANITY_VISUAL);
}
events.Update(diff);
if (me->HasUnitState(UNIT_STATE_CASTING))
{
return;
}
while (uint32 const eventId = events.ExecuteEvent())
{
switch (eventId)
{
case EVENT_HERALD_MIND_FLAY:
{
DoCastVictim(SPELL_MIND_FLAY, false);
events.Repeat(20s);
break;
}
case EVENT_HERALD_SHADOW:
{
DoCastVictim(SPELL_SHADOW_BOLT_VOLLEY, false);
events.Repeat(5s);
break;
}
case EVENT_HERALD_SHIVER:
{
if (Unit* pTarget = SelectTarget(SelectTargetMethod::Random, 0, 0.0f, true))
{
DoCast(pTarget, SPELL_SHIVER, false);
}
events.Repeat(15s);
break;
}
}
if (me->HasUnitState(UNIT_STATE_CASTING))
{
return;
}
ScheduleTasks();
}
DoMeleeAttackIfReady();
}
private:
uint8 insanityTimes;
bool insanityPhase; // Indicates if boss enter to insanity phase
uint32 GetPlrInsanityAuraId(uint32 phaseMask) const
@ -312,6 +250,7 @@ private:
bool CheckPhaseMinions()
{
summons.RemoveNotExisting();
if (summons.empty())
{
ResetPlayersPhaseMask();

View File

@ -33,7 +33,6 @@ enum Yells
enum Spells
{
SPELL_CURSE_OF_LIFE = 49527,
SPELL_RAIN_OF_FIRE = 49518,
SPELL_SHADOW_VOLLEY = 49528,
// flesh spells
@ -56,7 +55,6 @@ enum Misc
ACTION_TURN_BONES = 1,
EVENT_SPELL_CURSE_OF_LIFE = 1,
EVENT_SPELL_RAIN_OF_FIRE = 2,
EVENT_SPELL_SHADOW_VOLLEY = 3,
EVENT_SPELL_EYE_BEAM = 4,
EVENT_SPELL_LIGHTNING_BREATH = 5,
@ -97,7 +95,6 @@ public:
Talk(SAY_AGGRO);
BossAI::JustEngagedWith(who);
events.ScheduleEvent(EVENT_SPELL_CURSE_OF_LIFE, 5s);
events.ScheduleEvent(EVENT_SPELL_RAIN_OF_FIRE, 14s, 18s);
events.ScheduleEvent(EVENT_SPELL_SHADOW_VOLLEY, 8s, 10s);
events.ScheduleEvent(EVENT_SPELL_TURN_FLESH, 1s);
}
@ -146,17 +143,11 @@ public:
switch (events.ExecuteEvent())
{
case EVENT_SPELL_CURSE_OF_LIFE:
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 30.0f, true))
me->CastSpell(target, SPELL_CURSE_OF_LIFE, false);
DoCastRandomTarget(SPELL_CURSE_OF_LIFE, 0, 30.0f, false);
events.ScheduleEvent(EVENT_SPELL_CURSE_OF_LIFE, 13s);
break;
case EVENT_SPELL_RAIN_OF_FIRE:
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 30.0f, true))
me->CastSpell(target, SPELL_RAIN_OF_FIRE, false);
events.ScheduleEvent(EVENT_SPELL_RAIN_OF_FIRE, 16s);
break;
case EVENT_SPELL_SHADOW_VOLLEY:
me->CastSpell(me, SPELL_SHADOW_VOLLEY, false);
DoCastAOE(SPELL_SHADOW_VOLLEY);
events.ScheduleEvent(EVENT_SPELL_SHADOW_VOLLEY, 9s);
break;
case EVENT_SPELL_TURN_FLESH:
@ -173,9 +164,8 @@ public:
events.ScheduleEvent(EVENT_SPELL_TURN_FLESH, 1s);
break;
case EVENT_TURN_FLESH_REAL:
me->CastSpell(me, SPELL_DUMMY, true);
me->GetMotionMaster()->MoveChase(me->GetVictim());
DoCastSelf(SPELL_DUMMY, true);
me->ResumeChasingVictim();
events.ScheduleEvent(EVENT_SPELL_EYE_BEAM, 11s);
events.ScheduleEvent(EVENT_SPELL_LIGHTNING_BREATH, 3s);
events.ScheduleEvent(EVENT_SPELL_POISON_CLOUD, 6s);
@ -199,7 +189,6 @@ public:
me->CastSpell(me, SPELL_CLEAR_GIFT, true);
events.Reset();
events.ScheduleEvent(EVENT_SPELL_CURSE_OF_LIFE, 1s);
events.ScheduleEvent(EVENT_SPELL_RAIN_OF_FIRE, 12s, 14s);
events.ScheduleEvent(EVENT_SPELL_SHADOW_VOLLEY, 8s, 10s);
break;
}
@ -249,7 +238,6 @@ class spell_tharon_ja_dummy_aura : public AuraScript
{
PreventDefaultAction();
GetUnitOwner()->GetThreatMgr().ResetAllThreat();
GetUnitOwner()->GetMotionMaster()->Clear();
GetUnitOwner()->CastSpell((Unit*)nullptr, SPELL_TURN_BONES, false);
GetUnitOwner()->GetAI()->DoAction(ACTION_TURN_BONES);
}

View File

@ -25,7 +25,7 @@ namespace MMAP
{
float ComputeBaseUnitDim(int vertexPerMapEdge)
{
return GRID_SIZE / static_cast<float>(vertexPerMapEdge - 1);
return GRID_SIZE / static_cast<float>(vertexPerMapEdge);
}
std::pair<uint32, uint32> MakeTileKey(uint32 x, uint32 y)