The Mage pet Monster Summoning casts 2 spells, Bull Rush and Prism Strike. Prism Strike has a recourse of Prism Skin. This spell crashes the zone. I just started having this issue. I usually run with 54 bots and 4 mages among those, who cast Monster Summoning a lot. I haven't had this issue before the last month's updates or so.
The issue is that the spell Prism Skin has a buffdurationformula of 11. It also has a buffduration of 0. In Mob::SpellEffect, it checks the buff duration here:
Code:
if((CalcBuffDuration(caster,this,spell_id)-1) > 0){
Because the duration if Prism Skin is 0 (formula 11 just uses the duration), it fails that check, which drops it down to:
Code:
} else {
buffslot = -2; //represents not a buff I guess
}
But, in the spell effect for prism skin, it checks the effect here:
Code:
case SE_NegateAttacks:
{
#ifdef SPELL_EFFECT_SPAM
snprintf(effect_desc, _EDLEN, "Melee Negate Attack Rune: %+i", effect_value);
#endif
buffs[buffslot].numhits = effect_value;
break;
}
With a buffslot = -2, this causes a crash.
One potential fix is to check within case SE_NegateAttacks for a valid buffslot, but there may be other potential spell effects that would have the same issue. The following spells have a buffdurationformula = 11 and a buffduration = 0, which could cause this issue:
id 4663, 'Aura of the Hunter'
id 5127, 'Prism Skin'
id 5148, 'Massive Explosion'
id 5997, 'Pyrilen Ember'
id 6006, 'Gelidran Sleet'
id 6256, 'Seething Frenzy'
id 11936, 'Prism Skin'
Pyrilen Ember, Gelidran Sleet, and Seething Frenzy's spell effects are handled in bonuses or somewhere other than SpellEffect where this crash can occur.
I couldn't find any place where Aura of the Hunter is used. No NPCs cast, no NPC proc, no Items proc, no items click effect. Same with Massive Explosion.
Both Prism Skins are recourses of spells.
Prism Strike, Spirit of Oroshar Strike, Spirit of Lairn Strike, Spirit of Laxztn Strike, Iceflame Strike, and Iceflame Assault.
I'm not sure how to fix this, but I wanted to give as much information as possible. Adding the buffslot check I mentioned earlier will only prevent the crash from happening, as I assume the spell would not take affect. The SE_NegateAttacks effect is the only one affected by these spells, but there may be the possibility of custom spells with this issue. Maybe in the CalcBuffDuration_formula, the duration could be checked and add one if the duration is 0, but I assume the spell Prism Skin is supposed to have a duration of > 1 tick, but I don't know. I never used Monster Summoning on Live.