I noticed that casters where not getting interupted taking damage, and found the following in code attack.cpp Mob::CommonDamage line 2180:
if(spell_id != SPELL_UNKNOWN) {
this should be changed to:
if(spell_id == SPELL_UNKNOWN) {
interupts happen from melee damage and not spell damanage. Breaking root at 20% probably should only happen for melee damage. I remember breaking root with a damage spell has a much high probability. I added the following right under the if statement.
Code:
else
{
if (IsRooted()) { // neotoyko: only spells cancel root
if (MakeRandomInt(0, 99) < 60) {
mlog(COMBAT__HITS, "Spell attack broke root! 60percent chance");
BuffFadeByEffect(SE_Root, buffslot); // buff slot is passed through so a root w/ dam doesnt cancel itself
} else {
mlog(COMBAT__HITS, "Spell attack did not break root. 60 percent chance");
}
}
60 percent is a random guess at what it should actually be for spells. All I know is it is higher. If anyone has a better concept of what it should be please let me know.