View Single Post
  #2  
Old 01-23-2018, 07:28 AM
image
Demi-God
 
Join Date: Jan 2002
Posts: 1,290
Default

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;
			}
		}
__________________
www.eq2emu.com
EQ2Emu Developer
Former EQEMu Developer / GuildWars / Zek Seasons Servers
Member of the "I hate devn00b" club.
Reply With Quote