View Single Post
  #12  
Old 03-01-2013, 06:18 AM
trevius's Avatar
trevius
Developer
 
Join Date: Aug 2006
Location: USA
Posts: 5,946
Default

Yes, it appears so:

Code:
	if
(
IsEffectInSpell(spell_id, SE_Root) ||
IsEffectInSpell(spell_id, SE_MovementSpeed)
)
{
if(SpecAttacks[UNSNAREABLE]) {
mlog(SPELLS__RESISTS, "We are immune to Snare spells.");
caster->Message_StringID(MT_Shout, IMMUNE_MOVEMENT);
int32 aggro = CheckAggroAmount(spell_id);
if(aggro > 0) {
AddToHateList(caster, aggro);
} else {
AddToHateList(caster, 1);
}
return true;
}
}
I wouldn't be surprised if this same issue applies to other special attacks as well.

I think the easiest fix would be to add an IsDetrimentalSpell(spell_id) check in SpellOnTarget() before the IsImmuneToSpell() check here in spells.cpp:

Code:
	// check immunities
	if(spelltar->IsImmuneToSpell(spell_id, this))
	{
		//the above call does the message to the client if needed
		mlog(SPELLS__RESISTS, "Spell %d can't take hold due to immunity %s -> %s", spell_id, GetName(), spelltar->GetName());
		safe_delete(action_packet);
		return false;
	}
Maybe I am missing something though, but this is my best guess for the cause of the NPC vs NPC attacking issue.

Not really sure why this seems to be a new issue all of the sudden. I am not aware of any recent changes to how this works offhand, but I didn't really look into it much.
__________________
Trevazar/Trevius Owner of: Storm Haven
Everquest Emulator FAQ (Frequently Asked Questions) - Read It!
Reply With Quote