Код
[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
скрипт взят со сферысервер