Description: if spam change form , stop cooldown and can't back form.
must logout for back form .
Current behaviour: (Tell us what happens.) stop cooldown for spam form before 1.5 sec
Expected behaviour: (Tell us what should happen instead.) 1.5 sec time coold down.
Branch(es): 3.3.5 / master (Tell us which branch(es) this issue affects.)
TC rev. hash/commit: 697147a596515c82817a161e7a9a5f07cdf9a8f3
TDB version: 62
Operating system: win 10
teank you ariel- test code ,
no again lock form :( for spam form
Confirm
Steps to reproduce the problem:
I test other spell like [Lesser Heal], [Heal], [Greater Heal] no problem found, just when using [Flash Heal].
Ok, tagging @mik1893 since he did the initial fix.
As I told Mik, that commit doesn't fix the problem... only makes it occur less often.
And doesn't fix MD... still stops working if MD target is out of range.
Same thing still happens with the Raise Ghoul Death Knight spell, albeit very rarely. Haven't found a reliable way to reproduce that yet.
Confirm.
While in combat and try 2 or 3 time use Shadowform - will be Lock.
Confirmed in latest 335, looking into it.
This is a hack and I am not sure if it will break anything else, needs proper testing.
diff --git src/server/game/Spells/Spell.cpp src/server/game/Spells/Spell.cpp
index 03d45aa223..6efafeff21 100644
--- src/server/game/Spells/Spell.cpp
+++ src/server/game/Spells/Spell.cpp
@@ -4909,8 +4909,10 @@ SpellCastResult Spell::CheckCast(bool strict, uint32* param1 /*= nullptr*/, uint
{
if (m_triggeredByAuraSpell)
return SPELL_FAILED_DONT_REPORT;
- else
+ else if (m_castItemEntry)
return SPELL_FAILED_NOT_READY;
+ else
+ return SPELL_FAILED_DONT_REPORT;
}
}
here is spell id for future reference:
https://classicdb.ch/?spell=15473
@Langerz82 Pr it.
Confirm
Steps to reproduce the problem:
- Cast [Flash Heal]
- Before cast finish spam Shadowform
Try 2 or 3 time Shadowform will be Lock.
I use this hacky fixI test other spell like [Lesser Heal], [Heal], [Greater Heal] no problem found, just when using [Flash Heal].
That's the way to go about it really, just use IsCooldownStartedOnEvent() instead of ID checking
edit: or check for attribute - disabled while active