azerothcore / azerothcore-wotlk

Complete Open Source and Modular solution for MMO
http://www.azerothcore.org
GNU Affero General Public License v3.0
6.63k stars 2.64k forks source link

Prince Malchezaar #17517

Open FentusGames opened 1 year ago

FentusGames commented 1 year ago

Current Behaviour

Prince Malchezaar Enfeebles 5 random players.

Expected Blizzlike Behaviour

Prince Malchezaar Enfeebles 5 random players, excluding the current target.

Source

https://wowwiki-archive.fandom.com/wiki/Enfeeble

Steps to reproduce the problem

Fight prince till he uses Enfeeble

.go creature 135477

Extra Notes

This is not the same as bug reports about overlap of unfortunate transitions.

AC rev. hash/commit

AzerothCore rev. d1d46074a6d9+ 2023-10-15 12:56:31 +0000 (master branch) (Win64, Debug, Static) Connected players: 1. Characters in world: 1. Connection peak: 1. Server uptime: 26 minute(s) 51 second(s) Update time diff: 22ms, average: 27ms. Using SSL version: OpenSSL 3.1.2 1 Aug 2023 (library: OpenSSL 3.1.2 1 Aug 2023) Using Boost version: 1.81.0 Using CMake version: 3.27.3 Using MySQL version: 80034 Found MySQL Executable: C:/Program Files/MySQL/MySQL Server 8.0/bin/mysql.exe Compiled on: Windows 10.0.22621 Worldserver listening connections on port 8085 Realmlist (Realm Id: 1) configured in port 8085 VMAPs status: Enabled. LineOfSight: 1, getHeight: 1, indoorCheck: 1 MMAPs status: Enabled maps directory located in data/maps. Total size: 291014951 bytes vmaps directory located in data/vmaps. Total size: 658130721 bytes mmaps directory located in data/mmaps. Total size: 2192910844 bytes Default DBC locale: enUS. All available DBC locales: enUS frFR deDE esES esMX ruRU Using World DB: ACDB 335.10-dev Latest LoginDatabase update: 2023_04_24_00.sql Latest CharacterDatabase update: 2023_09_16_00.sql Latest WorldDatabase update: rewards_vendor.sql LoginDatabase queue size: 0 CharacterDatabase queue size: 0 WorldDatabase queue size: 0

Operating system

Windows 11 x64

Custom changes or Modules

List enable modules:

Nyeriah commented 1 year ago

Could you better describe the issue?

FentusGames commented 1 year ago

Prince Malchezaar's Enfeeble is not excluding the current target, if you solo tank him he still Enfeebles you, This it not due to overlap of unfortunate transitions aka his axe ability. This makes this fight impossible solo when normally it is possible.

.go creature 135477

FentusGames commented 1 year ago

I believe the issue code is in this file. src\server\scripts\EasternKingdoms\Karazhan\boss_prince_malchezaar.cpp

This might be the issue code, but 'looks' correct.


class spell_malchezaar_enfeeble : public SpellScript
{
    PrepareSpellScript(spell_malchezaar_enfeeble);

    bool Load() override
    {
        return GetCaster()->ToCreature();
    }

    void FilterTargets(std::list<WorldObject*>& targets)
    {
        uint8 maxSize = 5;
        Unit* caster = GetCaster();

        targets.remove_if([caster](WorldObject const* target) -> bool
        {
            // Should not target current victim.
            return caster->GetVictim() == target;
        });

        if (targets.size() > maxSize)
        {
            Acore::Containers::RandomResize(targets, maxSize);
        }
    }

    void Register() override
    {
        OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_malchezaar_enfeeble::FilterTargets, EFFECT_ALL, TARGET_UNIT_SRC_AREA_ENEMY);
    }
};
FentusGames commented 1 year ago

Might have something to do with this commit

https://github.com/azerothcore/azerothcore-wotlk/commit/ca95b4a12965c25f74712d9e9f50ea83bc0e2106

Nyeriah commented 1 year ago

It doesn't target me on https://github.com/azerothcore/azerothcore-wotlk/commit/c4dc20a814451a27aef8113e829809a2b6587e3b

FentusGames commented 1 year ago

I reverted to the commit https://github.com/azerothcore/azerothcore-wotlk/commit/ca95b4a12965c25f74712d9e9f50ea83bc0e2106 and still have the issue. I reverted back one more commit and everything seems to work.