PDA

View Full Version : Entire spell list stuck on cool down after any spell failure.


Bogreaper
01-23-2018, 07:12 AM
Good Morning.

We are experiencing an issue where, any time there is a spell failure, the entire spell bar goes on cool down (shaded out and unusable) for an extremely long time (over 2 minutes) any time there is a spell failure. Examples of these failures are, target moves out of sight, target goes out of range, target resists the spell, etc.

One trick we have found to un-freeze/lock the spell list is to use a clicky to cast a spell, this works maybe 80% of the time.

My un-educated guess is that a variable is not getting reset, maybe a function is not being called when the time for cool down is up?

Has anyone seen this issue before, or know of a way to fix it or where to look?

The closest thing I have found to it on other servers is a fizzle at extremely low levels, but at least that spell list cool down does not go on for the length of time this does.

Thanks.

ps. this is a non mq2 server so we can rule that part out of the problem.

image
01-23-2018, 07:28 AM
It means there are areas in the code that need to call either InterruptSpell or CastToClient()->SendSpellBarEnable(spell_id);

not really something you can fix without C++ experience.

One example this can happen and I don't think eqemu base has the code to fix it: player 1 starts casting a spell on player 2, player 2 zones out before player 1's spell completes. This can lock up the spell bar.


I had put a fix below this line:
https://github.com/EQEmu/Server/blob/master/zone/spells.cpp#L1048

if ( IsDetrimentalSpell(spell_id) )
{
if ( spell_target == NULL && target_id > 0 && target_id != GetID() )
{
mlog(SPELLS__CASTING_ERR, "Lost target for spell %i", spell_id);
Message_StringID(13,TARGET_NOT_FOUND);
InterruptSpell();
return;
}
}

Bogreaper
01-23-2018, 07:47 AM
Thanks I will try that and let you know.