Код

[EVENTS e_resisting_spell]
ON=@SPELLEFFECT
//magic reflection fix
IF (<FLAGS>&statf_reflection) && !(<SRC.UID>==<UID>)
    IF (<SERV.SPELL.<ARGN1>.FLAGS>&spellflag_harm) || (<ARGN1>==41) //dispel
FLAGS &= ~statf_reflection
FINDID.i_rune_magic_reflection.REMOVE
EFFECT 3 i_fx_bless_effect, 16, 16
IF (<SRC.FLAGS>&statf_reflection) //double reflection
     SRC.FLAGS &= ~statf_reflection
     SRC.FINDID.i_rune_magic_reflection.REMOVE
     SRC.EFFECT 3 i_fx_bless_effect, 16, 16
ELSE
     SRC.SPELLEFFECT <ARGN1>, <ARGN2>
ENDIF
RETURN 1
    ENDIF
ENDIF

//the actual resist check
IF (<SERV.SPELL.<ARGN1>.FLAGS>&spellflag_resist)
    LOCAL.RESIST=<EVAL <MAGICRESISTANCE>-((<SRC.EVALUATINGINTEL>*<SpellCircle <ARGN1>>)/20)>
    IF (<LOCAL.RESIST>>RAND(1000))
SYSMESSAGE You feel yourself resisting magical energy.
SRC.SYSMESSAGE <NAME> resists the spell.
ARGN3 -= RAND(<MAGICRESISTANCE>/6,<MAGICRESISTANCE>/4)
    ELSE
ARGN3 -= RAND(0,<MAGICRESISTANCE>/7)
    ENDIF
ENDIF
RETURN 2

[FUNCTION spellcircle] //argn1=spell number
IF (<ARGN1>>=1) && (<ARGN1><=64) //only with default (mage) spells
    RETURN <EVAL ((<ARGN1>-1)/8)+1>
ELSE
    RETURN 1
endif


скрипт взят со сферысервер