diff --git a/AUTHORS b/AUTHORS index 8c5e802ab..63425cea7 100644 --- a/AUTHORS +++ b/AUTHORS @@ -34,3 +34,22 @@ The third-party libraries have their own way of addressing authorship, and the a a third-party library reflects who did the importing instead of who wrote the code within the commit. The Authors of third-party libraries are not explicitly mentioned, and usually is possible to obtain from the files belonging to the third-party libraries. + +## Cross-project collaboration + +At AzerothCore, we actively promote collaboration with other MaNGOS-based open-source projects that are actively maintained. This also includes cherry-picking commits from relevant projects such as: + +* TrinityCore: https://github.com/trinitycore +* CMaNGOS: https://github.com/cmangos/ +* vMaNGOS: https://github.com/vmangos +* and others + +It is strictly required for any contributor importing code to credit the original author by: +- linking the original PR (or commit) +- adding a [Co-authored-by](https://docs.github.com/en/pull-requests/committing-changes-to-your-project/creating-and-editing-commits/creating-a-commit-with-multiple-authors) line in the PR description + +This will automatically include the original author in our list of [Contributors](https://github.com/azerothcore/azerothcore-wotlk/graphs/contributors). + +If you notice a violation of the above, please report it to the Staff immediately. + +We encourage other projects to adopt similar practices to promote healthy cross-project collaboration and proper attribution. diff --git a/data/sql/updates/db_world/2025_05_18_00.sql b/data/sql/updates/db_world/2025_05_18_00.sql new file mode 100644 index 000000000..698230119 --- /dev/null +++ b/data/sql/updates/db_world/2025_05_18_00.sql @@ -0,0 +1,3 @@ +-- DB update 2025_05_15_00 -> 2025_05_18_00 +-- Sets the SAI Link to 0 from 1 for Ziggurat Defender (has only 1 cast, nothing to link to) +UPDATE `smart_scripts` SET `link` = 0 WHERE (`source_type` = 0 AND `entryorguid` = 26202 AND `id` = 0); diff --git a/data/sql/updates/db_world/2025_05_19_00.sql b/data/sql/updates/db_world/2025_05_19_00.sql new file mode 100644 index 000000000..87dd9b4e5 --- /dev/null +++ b/data/sql/updates/db_world/2025_05_19_00.sql @@ -0,0 +1,17 @@ +-- DB update 2025_05_18_00 -> 2025_05_19_00 +-- Deletes `Dalaran Wizard's Robe` (5110) from References: `World Drop - White World Drop - NPC Levels` 14-15 (1011415), 15-15 (1011515), 15-16 (1011516), 16-16 (1011616) +DELETE FROM `reference_loot_template` WHERE `Item` = 5110; + +DELETE FROM `creature_loot_template` WHERE `Item` = 5110; +INSERT INTO `creature_loot_template` (`Entry`, `Item`, `Reference`, `Chance`, `QuestRequired`, `LootMode`, `GroupId`, `MinCount`, `MaxCount`, `Comment`) VALUES +(1867, 5110, 0, 3, 0, 1, 0, 1, 1, 'Dalaran Apprentice - Dalaran Wizard\'s Robe'), +(1888, 5110, 0, 4, 0, 1, 0, 1, 1, 'Dalaran Watcher - Dalaran Wizard\'s Robe'), +(1889, 5110, 0, 4, 0, 1, 0, 1, 1, 'Dalaran Wizard - Dalaran Wizard\'s Robe'), +(1912, 5110, 0, 3, 0, 1, 0, 1, 1, 'Dalaran Protector - Dalaran Wizard\'s Robe'), +(1913, 5110, 0, 4, 0, 1, 0, 1, 1, 'Dalaran Warder - Dalaran Wizard\'s Robe'), +(1914, 5110, 0, 3, 0, 1, 0, 1, 1, 'Dalaran Mage - Dalaran Wizard\'s Robe'), +(1915, 5110, 0, 4, 0, 1, 0, 1, 1, 'Dalaran Conjuror - Dalaran Wizard\'s Robe'), +(1920, 5110, 0, 1.6, 0, 1, 0, 1, 1, 'Dalaran Spellscribe - Dalaran Wizard\'s Robe'), +(2120, 5110, 0, 1.8, 0, 1, 0, 1, 1, 'Archmage Ataeric - Dalaran Wizard\'s Robe'), +(3577, 5110, 0, 4, 0, 1, 0, 1, 1, 'Dalaran Brewmaster - Dalaran Wizard\'s Robe'), +(3578, 5110, 0, 3, 0, 1, 0, 1, 1, 'Dalaran Miner - Dalaran Wizard\'s Robe'); diff --git a/data/sql/updates/db_world/2025_05_20_00.sql b/data/sql/updates/db_world/2025_05_20_00.sql new file mode 100644 index 000000000..c5e78933a --- /dev/null +++ b/data/sql/updates/db_world/2025_05_20_00.sql @@ -0,0 +1,2 @@ +-- DB update 2025_05_19_00 -> 2025_05_20_00 +UPDATE `creature_loot_template` SET `Chance` = 6 WHERE `Item` = 34334 AND `Entry` = 25315; diff --git a/data/sql/updates/db_world/2025_05_21_00.sql b/data/sql/updates/db_world/2025_05_21_00.sql new file mode 100644 index 000000000..87e82b445 --- /dev/null +++ b/data/sql/updates/db_world/2025_05_21_00.sql @@ -0,0 +1,4 @@ +-- DB update 2025_05_20_00 -> 2025_05_21_00 +-- +DELETE FROM `spell_custom_attr` WHERE `spell_id`=45770; +INSERT INTO `spell_custom_attr` (`spell_id`, `attributes`) VALUES (45770, 4194304); diff --git a/data/sql/updates/db_world/2025_05_21_01.sql b/data/sql/updates/db_world/2025_05_21_01.sql new file mode 100644 index 000000000..569408217 --- /dev/null +++ b/data/sql/updates/db_world/2025_05_21_01.sql @@ -0,0 +1,2 @@ +-- DB update 2025_05_21_00 -> 2025_05_21_01 +UPDATE `smart_scripts` SET `action_param1` = 9053 WHERE `source_type` = 0 AND `entryorguid` IN (21382, 21637) AND `id` IN (1, 2) AND `action_type` = 11; diff --git a/data/sql/updates/db_world/2025_05_22_00.sql b/data/sql/updates/db_world/2025_05_22_00.sql new file mode 100644 index 000000000..74413781b --- /dev/null +++ b/data/sql/updates/db_world/2025_05_22_00.sql @@ -0,0 +1,51 @@ +-- DB update 2025_05_21_01 -> 2025_05_22_00 + +-- Set Attack Delay on spawn and update comments. +UPDATE `creature_template` SET `AIName` = 'SmartAI' WHERE `entry` = 25708; + +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 25708); +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 +(25708, 0, 0, 1, 54, 0, 100, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Sinister Reflection - On Just Summoned - Set Reactstate Passive'), +(25708, 0, 1, 0, 61, 0, 100, 512, 0, 0, 0, 0, 0, 0, 134, 45785, 2, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Sinister Reflection - On Just Summoned - Invoker Cast \'Sinister Reflection Clone\''), +(25708, 0, 2, 3, 60, 0, 100, 1, 3000, 3000, 0, 0, 0, 0, 8, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Sinister Reflection - On Update - Set Reactstate Aggressive (No Repeat)'), +(25708, 0, 3, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 49, 0, 0, 0, 0, 0, 0, 21, 50, 0, 0, 0, 0, 0, 0, 0, 'Sinister Reflection - On Update - Start Attacking (No Repeat)'), +(25708, 0, 4, 0, 6, 0, 100, 512, 0, 0, 0, 0, 0, 0, 41, 2000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Sinister Reflection - On Just Died - Despawn In 2000 ms'), +(25708, 0, 5, 0, 38, 0, 100, 512, 1, 1, 0, 0, 0, 0, 22, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Sinister Reflection - On Data Set 1 1 - Set Event Phase 1'), +(25708, 0, 6, 0, 38, 0, 100, 512, 1, 2, 0, 0, 0, 0, 22, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Sinister Reflection - On Data Set 1 2 - Set Event Phase 2'), +(25708, 0, 7, 0, 38, 0, 100, 512, 1, 3, 0, 0, 0, 0, 22, 3, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Sinister Reflection - On Data Set 1 3 - Set Event Phase 3'), +(25708, 0, 8, 0, 38, 0, 100, 512, 1, 4, 0, 0, 0, 0, 22, 4, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Sinister Reflection - On Data Set 1 4 - Set Event Phase 4'), +(25708, 0, 9, 0, 38, 0, 100, 512, 1, 5, 0, 0, 0, 0, 22, 5, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Sinister Reflection - On Data Set 1 5 - Set Event Phase 5'), +(25708, 0, 10, 0, 38, 0, 100, 512, 1, 6, 0, 0, 0, 0, 22, 6, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Sinister Reflection - On Data Set 1 6 - Set Event Phase 6'), +(25708, 0, 11, 0, 38, 0, 100, 512, 1, 7, 0, 0, 0, 0, 22, 7, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Sinister Reflection - On Data Set 1 7 - Set Event Phase 7'), +(25708, 0, 12, 0, 38, 0, 100, 512, 1, 8, 0, 0, 0, 0, 22, 8, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Sinister Reflection - On Data Set 1 8 - Set Event Phase 8'), +(25708, 0, 13, 0, 38, 0, 100, 512, 1, 9, 0, 0, 0, 0, 22, 9, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Sinister Reflection - On Data Set 1 9 - Set Event Phase 9'), +(25708, 0, 14, 0, 38, 0, 100, 512, 1, 11, 0, 0, 0, 0, 22, 11, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Sinister Reflection - On Data Set 1 11 - Set Event Phase 11'), +(25708, 0, 15, 0, 0, 1, 100, 1, 0, 0, 0, 0, 0, 0, 11, 42459, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Sinister Reflection - In Combat - Cast \'Dual Wield\' (Phase 1) (No Repeat)'), +(25708, 0, 16, 0, 0, 1, 100, 0, 1000, 5000, 9000, 13000, 0, 0, 11, 17207, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Sinister Reflection - In Combat - Cast \'Whirlwind\' (Phase 1)'), +(25708, 0, 17, 0, 0, 2, 100, 0, 1000, 5000, 5000, 8000, 0, 0, 11, 38921, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Sinister Reflection - In Combat - Cast \'Holy Shock\' (Phase 2)'), +(25708, 0, 18, 0, 0, 2, 100, 0, 3000, 10000, 15000, 25000, 0, 0, 11, 37369, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Sinister Reflection - In Combat - Cast \'Hammer of Justice\' (Phase 2)'), +(25708, 0, 19, 0, 9, 4, 100, 0, 0, 0, 2000, 2000, 5, 30, 11, 16496, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Sinister Reflection - Within 5-30 Range - Cast \'Shoot\' (Phase 3)'), +(25708, 0, 20, 0, 9, 4, 100, 0, 0, 0, 10000, 15000, 5, 30, 11, 48098, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Sinister Reflection - Within 5-30 Range - Cast \'Multi-Shot\' (Phase 3)'), +(25708, 0, 21, 0, 9, 4, 100, 0, 0, 0, 15000, 25000, 0, 5, 11, 40652, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Sinister Reflection - Within 0-5 Range - Cast \'Wing Clip\' (Phase 3)'), +(25708, 0, 22, 0, 9, 4, 100, 512, 0, 0, 0, 0, 0, 20, 21, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Sinister Reflection - Within 0-20 Range - Disable Combat Movement (Phase 3)'), +(25708, 0, 23, 0, 9, 4, 100, 512, 0, 0, 0, 0, 25, 100, 21, 1, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Sinister Reflection - Within 25-100 Range - Enable Combat Movement (Phase 3)'), +(25708, 0, 24, 0, 0, 8, 100, 1, 0, 0, 0, 0, 0, 0, 11, 42459, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Sinister Reflection - In Combat - Cast \'Dual Wield\' (Phase 4) (No Repeat)'), +(25708, 0, 25, 0, 0, 8, 100, 0, 1000, 3000, 4000, 6000, 0, 0, 11, 45897, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Sinister Reflection - In Combat - Cast \'Hemorrhage\' (Phase 4)'), +(25708, 0, 26, 0, 0, 16, 100, 0, 1000, 4000, 4000, 5000, 0, 0, 11, 47077, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Sinister Reflection - In Combat - Cast \'Holy Smite\' (Phase 5)'), +(25708, 0, 27, 0, 14, 16, 100, 0, 10000, 40, 10000, 15000, 0, 0, 11, 47079, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Sinister Reflection - Friendly At 10000 Health - Cast \'Renew\' (Phase 5)'), +(25708, 0, 28, 0, 9, 16, 100, 512, 0, 0, 0, 0, 0, 20, 21, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Sinister Reflection - Within 0-20 Range - Disable Combat Movement (Phase 5)'), +(25708, 0, 29, 0, 9, 16, 100, 512, 0, 0, 0, 0, 25, 100, 21, 1, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Sinister Reflection - Within 25-100 Range - Enable Combat Movement (Phase 5)'), +(25708, 0, 30, 0, 0, 32, 100, 1, 0, 0, 0, 0, 0, 0, 11, 42459, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Sinister Reflection - In Combat - Cast \'Dual Wield\' (Phase 6) (No Repeat)'), +(25708, 0, 31, 0, 0, 32, 100, 0, 1000, 5000, 4000, 6000, 0, 0, 11, 58843, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Sinister Reflection - In Combat - Cast \'Plague Strike\' (Phase 6)'), +(25708, 0, 32, 0, 0, 64, 100, 1, 0, 0, 0, 0, 0, 0, 11, 42459, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Sinister Reflection - In Combat - Cast \'Dual Wield\' (Phase 7) (No Repeat)'), +(25708, 0, 33, 0, 0, 64, 100, 0, 1000, 5000, 6000, 10000, 0, 0, 11, 47071, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Sinister Reflection - In Combat - Cast \'Earth Shock\' (Phase 7)'), +(25708, 0, 34, 0, 0, 128, 100, 0, 1000, 2000, 2000, 3000, 0, 0, 11, 47074, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Sinister Reflection - In Combat - Cast \'Fireball\' (Phase 8)'), +(25708, 0, 35, 0, 9, 128, 100, 512, 0, 0, 0, 0, 0, 20, 21, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Sinister Reflection - Within 0-20 Range - Disable Combat Movement (Phase 8)'), +(25708, 0, 36, 0, 9, 128, 100, 512, 0, 0, 0, 0, 25, 100, 21, 1, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Sinister Reflection - Within 25-100 Range - Enable Combat Movement (Phase 8)'), +(25708, 0, 37, 0, 0, 256, 100, 0, 1000, 1500, 1500, 2500, 0, 0, 11, 47076, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Sinister Reflection - In Combat - Cast \'Shadow Bolt\' (Phase 9)'), +(25708, 0, 38, 0, 0, 256, 100, 0, 4000, 5000, 10000, 12000, 0, 0, 11, 46190, 0, 0, 0, 0, 0, 5, 30, 0, 0, 0, 0, 0, 0, 0, 'Sinister Reflection - In Combat - Cast \'Curse of Agony\' (Phase 9)'), +(25708, 0, 39, 0, 9, 256, 100, 512, 0, 0, 0, 0, 0, 20, 21, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Sinister Reflection - Within 0-20 Range - Disable Combat Movement (Phase 9)'), +(25708, 0, 40, 0, 9, 256, 100, 512, 0, 0, 0, 0, 25, 100, 21, 1, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Sinister Reflection - Within 25-100 Range - Enable Combat Movement (Phase 9)'), +(25708, 0, 41, 0, 0, 1024, 100, 0, 1000, 2000, 2000, 3000, 0, 0, 11, 47072, 0, 0, 0, 0, 0, 5, 30, 0, 0, 0, 0, 0, 0, 0, 'Sinister Reflection - In Combat - Cast \'Moonfire\' (Phase 11)'), +(25708, 0, 42, 0, 9, 1024, 100, 512, 0, 0, 0, 0, 0, 20, 21, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Sinister Reflection - Within 0-20 Range - Disable Combat Movement (Phase 11)'), +(25708, 0, 43, 0, 9, 1024, 100, 512, 0, 0, 0, 0, 25, 100, 21, 1, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Sinister Reflection - Within 25-100 Range - Enable Combat Movement (Phase 11)'); diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index aeaa17da9..9712c77c7 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -7136,37 +7136,26 @@ void Player::ApplyItemEquipSpell(Item* item, bool apply, bool form_change) if (!proto) return; - for (uint8 i = 0; i < MAX_ITEM_PROTO_SPELLS; ++i) + for (auto const& spellData : proto->Spells) { - _Spell const& spellData = proto->Spells[i]; - - // no spell + // no spell if (!spellData.SpellId) continue; - // Spells that should stay on the caster after removing the item. - constexpr std::array spellExceptions = - { - 11826, //Electromagnetic Gigaflux Reactivator - 17490 //Book of the Dead - Summon Skeleton - }; - const auto found = std::find(std::begin(spellExceptions), std::end(spellExceptions), spellData.SpellId); - // wrong triggering type if (apply) { + // Only apply "On Equip" spells if (spellData.SpellTrigger != ITEM_SPELLTRIGGER_ON_EQUIP) - { continue; - } } else { - // If the spell is an exception do not remove it. - if (found != std::end(spellExceptions)) - { + // Do not remove "Use" spells in these special cases: + // 1. During form changes (e.g., druid shapeshifting) + // 2. When the spell comes from an item with negative charges, which means its effect should persist after the item is consumed or removed. + if (spellData.SpellTrigger == ITEM_SPELLTRIGGER_ON_USE && (form_change || spellData.SpellCharges < 0)) continue; - } } // check if it is valid spell @@ -7215,18 +7204,6 @@ void Player::ApplyEquipSpell(SpellInfo const* spellInfo, Item* item, bool apply, RemoveAurasDueToItemSpell(spellInfo->Id, item->GetGUID()); // un-apply all spells, not only at-equipped else RemoveAurasDueToSpell(spellInfo->Id); // un-apply spell (item set case) - - // Xinef: Remove Proc Spells and Summons - for (uint8 i = EFFECT_0; i < MAX_SPELL_EFFECTS; ++i) - { - // Xinef: Remove procs - if (spellInfo->Effects[i].TriggerSpell) - RemoveAurasDueToSpell(spellInfo->Effects[i].TriggerSpell); - - // Xinef: remove minions summoned by item - if (spellInfo->Effects[i].Effect == SPELL_EFFECT_SUMMON) - RemoveAllMinionsByEntry(spellInfo->Effects[i].MiscValue); - } } } diff --git a/src/server/game/Spells/SpellInfoCorrections.cpp b/src/server/game/Spells/SpellInfoCorrections.cpp index 3c3c89609..2f7b918a6 100644 --- a/src/server/game/Spells/SpellInfoCorrections.cpp +++ b/src/server/game/Spells/SpellInfoCorrections.cpp @@ -4897,8 +4897,10 @@ void SpellMgr::LoadSpellInfoCorrections() spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_70_YARDS); }); - // Encapsulate - ApplySpellFix({ 45662 }, [](SpellInfo* spellInfo) + ApplySpellFix({ + 45662, // Encapsulate + 45642 // Fire Bloom + }, [](SpellInfo* spellInfo) { spellInfo->AttributesEx7 |= SPELL_ATTR7_TREAT_AS_NPC_AOE; }); diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp index ab5bf805f..534e5de3c 100644 --- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp +++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp @@ -141,6 +141,7 @@ struct npc_kiljaeden_controller : public NullCreatureAI void Reset() override { + scheduler.CancelAll(); instance->SetBossState(DATA_KILJAEDEN, NOT_STARTED); summons.DespawnAll(); ResetOrbs(); diff --git a/src/server/scripts/Outland/zone_blades_edge_mountains.cpp b/src/server/scripts/Outland/zone_blades_edge_mountains.cpp index 638c2bbce..e57bd3602 100644 --- a/src/server/scripts/Outland/zone_blades_edge_mountains.cpp +++ b/src/server/scripts/Outland/zone_blades_edge_mountains.cpp @@ -122,9 +122,9 @@ public: if (Player* player = ObjectAccessor::GetPlayer(*me, PlayerGUID)) { if (GetClosestCreatureWithEntry(me, NPC_SOUTH_GATE, 200.0f)) - player->KilledMonsterCredit(NPC_SOUTH_GATE_CREDIT); + player->RewardPlayerAndGroupAtEvent(NPC_SOUTH_GATE_CREDIT, player); else if (GetClosestCreatureWithEntry(me, NPC_NORTH_GATE, 200.0f)) - player->KilledMonsterCredit(NPC_NORTH_GATE_CREDIT); + player->RewardPlayerAndGroupAtEvent(NPC_NORTH_GATE_CREDIT, player); // complete quest part if (Creature* bunny = GetClosestCreatureWithEntry(me, NPC_EXPLOSION_BUNNY, 200.0f)) bunny->CastSpell(nullptr, SPELL_EXPLOSION, TRIGGERED_NONE);