Aura Stuck #11644

Open
L30m4nc3r opened this Issue Feb 24, 2014 · 13 comments

Comments

Projects
None yet
8 participants

By simultaneously pressing two used trinkets and replacing them with other trinkets, buff them not disappear. In the original buff from the thing that is not on the character should not be (buff should disappear in a moment of change trinket).

4k+ spd and unreal DPS.

http://4put.ru/pictures/max/862/2648718.jpg <- 2 trinkets (use)
http://4put.ru/pictures/max/862/2648722.jpg <- change trinket and 4 auras.

/use Maghia's Misguided Quill
/equipslot 14 Charred Twilight Scale

/use Talisman of Resurgence
/equipslot 13 Phylactery of the Nameless Lich

Need skill to use 2 trinket before the fight at the together, without training can use only one of them because of GCD.

rev: f7bc86a

Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

Aokromes added the Comp-Core label Mar 6, 2014

Frytiks commented Feb 15, 2015

Confirmed !

is n't any idea about this problem ?

Member

Keader commented Jun 22, 2015

Still Bugged on 170ba68

Contributor

D4R4 commented Jun 22, 2015

as I said in my own report of the issue it is most likely due to this function not doing it's job correctly: Player::ApplyEquipSpell()

part of it's job is to remove auras related to items when they get unequiped

EDIT: just as an fyi, is there a way to block certain Macro commands from client to server? like /use or /run,

Contributor

sirikfoll commented Jul 25, 2015

use/change or use/unequip, by macro or manually(if pretty fast),
makes the same call on the function Player::ApplyEquipSpell() but the aura gets stuck.

Member

Keader commented Sep 6, 2015

Problem occurring with trinkets "active" and "passive": https://youtu.be/vJIb3rkxCKA

Macros:

/cast Maghia's Misguided Quill
/equip Shard of the Crystal Heart

/cast Feign Death
/equip Deathbringer's Will

Contributor

sirikfoll commented Sep 6, 2015

The Aura get stuck exactly in this piece of the code, this line

for (AuraApplicationMap::iterator iter = m_appliedAuras.lower_bound(spellId); iter != m_appliedAuras.upper_bound(spellId);) (https://github.com/TrinityCore/TrinityCore/blob/3.3.5/src/server/game/Entities/Unit/Unit.cpp#L3864)

isn't executed.

void Unit::RemoveAurasDueToItemSpell(uint32 spellId, ObjectGuid castItemGuid)
{
    for (AuraApplicationMap::iterator iter = m_appliedAuras.lower_bound(spellId); iter != m_appliedAuras.upper_bound(spellId);)

Edit: Still bugged in 4a36850

Member

Keader commented Sep 6, 2015

@jackpoz Please have to check this? Quite old and 'abusable' it

Member

Shauren commented Jan 5, 2016

@L30m4nc3r why are you suggesting changes that are in TC codebase for almost two years? c431f46 added that.
You using some custom hidden fork that is several years old does not help anyone at all.

Member

Keader commented Jan 7, 2016

@L30m4nc3r you tested your code in current TC Rev?!

Contributor

sirikfoll commented Jan 11, 2016

A little more info on that,
This is the order in which some key functions get called when you reproduce the bug

1. Player::CastItemUseSpell
2. Spell::CheckItems() (check if we have the item equipped, we still have. All ok, continue)
3. Unit::RemoveAurasDueToItemSpell (this one is responsible for removing the aura, checking for it 
 in m_appliedAuras, and will FAIL because the aura isn't registered in m_appliedAuras yet)
4. Spell::cast
5. Spell::handle_immediate
6. Spell::DoAllEffectOnTarget
7. Spell::DoSpellHitOnUnit
8. Unit::_CreateAuraApplication (here we register the aura in m_appliedAuras)

Basicly the core start the cast of the spell, perform the check if we have the item equipped to allow the cast,
then handle the remove of the item, tried to remove the aura, which is still in process to be added to the player,
I have absolutely no idea on how to fix that :/

@Shauren not intending to be annoing, but could you take a look at this? looks like the kind of problem that only you can solve '-'

still bugged .

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment