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...ells.cpp#L1048
Code:
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;
}
}