Kod:
[Spell 29]
DEFNAME=s_greater_heal
NAME=Greater Heal
SOUND=snd_SPELL_GREATER_HEAL
RUNES=IVM
CAST_TIME=2.0
//RESOURCES=i_reag_garlic,i_reag_ginseng,i_reag_mandrake_root,i_reag_spider_silk
RUNE_ITEM=i_rune_GREATER_HEAL
SCROLL_ITEM=i_scroll_GREATER_HEAL
FLAGS=SPELLFLAG_GOOD
EFFECT_ID=i_fx_HEAL_EFFECT
EFFECT=80,140
DURATION=0.0
MANAUSE=50
SKILLREQ=MAGERY 120.0
INTERRUPT=100.0,100.0
On=@Effect
IF (<SRC.ISINPARTY>)
FOR 0 <EVAL <SRC.PARTY.MEMBERS> - 1>
REF1=<SRC.PARTY.MEMBER.<dLOCAL._for>>
IF (<SRC.DISTANCE <REF1>> < 25)
IF !(<REF1.FINDID.i_rune_poison>) && !(<REF1.FINDID.i_rune_poison_field>) && (<REF1.HITS> < <REF1.STR>) && (<REF1> != <SRC>)
REF1.EFFECT 3,i_fx_heal_effect,3,25,1
REF1.EMOTE Healed by <SRC.NAME>
LOCAL.RMIN=<EVAL 30 + (<SRC.MAGERY> / 200)>
LOCAL.RMAX=<EVAL 50 + (<SRC.MAGERY> / 50)>
LOCAL.HEAL=<R<dLOCAL.RMIN>,<dLOCAL.RMAX>>
IF (<REF1.FINDLAYER.layer_robe.BASEID> == i_robe_mage_new)
LOCAL.HEAL +=120
ENDIF
REF1.HITS += <dLOCAL.HEAL>
ENDIF
ENDIF
ENDFOR
ENDIF
IF !(<src.findid.i_rune_poison>) && !(<src.findid.i_rune_poison_field>) && (<SRC.HITS> < <SRC.STR>)
SRC.EFFECT 3,i_fx_heal_effect,3,25,1
SRC.EMOTE Healed Himself
LOCAL.RMIN=<EVAL 30 + (<SRC.MAGERY> / 200)>
LOCAL.RMAX=<EVAL 50 + (<SRC.MAGERY> / 50)>
LOCAL.HEAL=<R<dLOCAL.RMIN>,<dLOCAL.RMAX>>
IF (<SRC.FINDLAYER.layer_robe.BASEID> == i_robe_mage_new)
LOCAL.HEAL +=120
ENDIF
SRC.HITS += <R<dLOCAL.RMIN>,<dLOCAL.RMAX>>
ENDIF
RETURN 1
Bir zamanlar bir sunucu için yazmıştım, kendine göre uyarlamak için örnek alabilirsin, ek olarak dediğim gibi bunu sadece örnek olarak almanı öneririm, çünkü normal şartlara göre fazla can basıyor ve hits maxhitsi geçince maxhits e geri dönmüyor, yani hata değil bilerek böyle yapılmış şeyler o nedenle sunucuna göre uyarlayacaksan örnek olarak kullan diye yolluyorum sadece.
Diğer yandan 4s3d3'ün verdiği kod üzerinden de geliştirme yapabilirsin, yani tam olarak nasıl yapmak istediğin sana kalmış.