Anladığım kadarıyla dialog üzerinden direkt oyuncunun kendisine bandaj atmasını sağlamaya çalışıyorsunuz, target çıkartmadan.
EVET o şekilde birşey yapmaya çalışıyorum ve atıyor ama sorun hatalar benim anladığım kadarı ile ; attıgımda hiç bir hata vermiyor bandajı canı full ikende hata almıyorum hata aldıgım yerler bandaj attıgı anda tekrar bandaja basmam o arada şunu diyor Beklemelisniz.... o ksımda sphere eror veriyor. Birde çantamda bandaj yokken o butona bastıgımda çantanızda bandaj yoktur diyip tekrar spherede hatalar oluşuyor
Tetiklendiği Buton
Kod:
on=1
if !( <src.findid.i_heal_delay> )
src.bandaj
src.self
endif
sdialog D_potmenu
Bandaj scriptim;
Kod:
[ITEMDEF 0ee9]
DUPEITEM=0e21
NAME=Bandage%s
[ITEMDEF 0e21]
DEFNAME=i_bandage
NAME=Bandage%s
RESOURCES=i_cloth
TYPE=T_BANDAGE
WEIGHT=0.0
DUPELIST=0ee9
value=1
ON=@CREATE
ATTR=0
on=@dclick
ATTR=0
IF !(<src.isinpack <uid>>)
src.sys_kirmizi <def.unpackmsg>
return 1
endif
if (<src.tag0.heal_tekrar> > 0)
src.sys_kirmizi Bandajları şu an kullanamazsınız.
return 1
endif
if (<src.flags>&statf_freeze)
src.sys_kirmizi Bu durumda bandajları kullanamazsınız.
return 1
endif
IF (<SRC.ACTION>==SKILL_MAGERY) || (<SRC.ACTION>==ID(SKILL_MAGERY))
src.sys_kirmizi Büyü uygularken bandaj kullanamazsınız.
return 1
endif
if (<src.findid.i_heal_delay>)
src.sys_kirmizi Bandajları tekrar kullanmak için <kalansure <src.findid.i_heal_delay.timer>> beklemelisiniz.
return 1
endif
src.tag0.heal_tekrar=0
src.events -e_heal
src.tag0.heal_bozuldu=
src.sys_beyaz Kimi tedavi etmek istiyorsunuz ?
targetf f_heal
return 1
[function f_heal]
if !(<src.restest 1 i_bandage>)
src.sys_kirmizi Bandajınız yok.
return 1
endif
if !(<argo.ischar>)
src.sys_kirmizi Bunu eşyalar üzerinde kullanamazsın.
src.sys_beyaz Kimi tedavi etmek istiyorsunuz ?
targetf f_heal
RETURN 1
ENDIF
if (<src.isdeath>)
src.sys_kirmizi Ölüyken bandaj kullanamazsınız.
return 1
endif
IF (<ARGO.DISTANCE> > 6) || !(<ARGO.CANSEELOS>)
src.sys_kirmizi Hedefe ulaşamıyorsun.
return 1
endif
if !((<argo.isplayer>) || (<argo.isanimals>) || (STRMATCH(*Dummy*,'<ARGO.ID>')))
src.sys_kirmizi Bunu sadece oyuncular, hayvanlar ve Dummyler üzerinde kullanabilirsiniz.
return 1
endif
if (<eval <src.p.z>+8> < <argo.p.z>) || (<eval <src.p.z>-8> > <argo.p.z>)
src.sys_kirmizi <src.targ.name> ile aynı seviyede değilsiniz.
return 1
endif
if (<argo.ismonsters>) && !(<argo.isplayer>) && !(<argo.isanimals>)
src.sys_kirmizi Bunu iyileştiremezsiniz.
return 1
endif
if (<argo.hits> >= <argo.maxhits>)
if !(<argo.isdeath>)
if !(<argo.findid.i_rune_poison>)
if !(<argo.findid.i_bleeding>)
argo.hits <argo.str>
src.sys_kirmizi <argo.name> tedaviye ihtiyaç duymuyor.
return 1
endif
endif
endif
endif
if (<argo.isdeath>)
IF (<ARGO.IsInHouse>)
IF !(<ARGO.TAG0.HOUSE_RESURRECT>)
SRC.SYS_KIRMIZI Ev içindeki oyuncuları hayata döndüremezsiniz.
RETURN 1
ENDIF
ENDIF
//src.anim 17
src.spd 2
src.face <argo>
src.consume 5 i_bandage
src.effect 3,0376a,2,10,1
serv.newitem i_heal_delay
new.equip
if (<argo.ispk>) || (<argo.iscriminal>)
src.criminal 1
endif
if (<argo.isplayer>)
argo.resurrect 1
argo.effect 3,0376a,2,10,1
argo.sayua 048,0,0,6 * <src.name> Tarafından Dirilir *
else
src.sys_kirmizi Hatalı seçim.
endif
return 1
endif
SRC.TAG0.HEAL_TEKRAR 1
src.spd 1
SRC.FACE <argo>
SRC.F_HEAL_X <argo.uid>
src.sys_beyaz Tedavi süreci basladi !
return 1
[function f_heal_x]
ref1 <args>
src.events +e_heal
if (<ref1.hits> > <ref1.str>)
ref1.hits <ref1.str>
endif
if (<src.tag0.heal_bozuldu> == 1)
src.sayua 38,0,0,6 * Bandajları Yırtılır *
src.sys_kirmizi Bandaj uygulama işleminiz başarısız oldu.
src.tag0.heal_tekrar=0
src.events -e_heal
src.tag0.heal_bozuldu=
src.consume 1 i_bandage
return 1
endif
if !(<src.restest 1 i_bandage>)
src.sys_kirmizi Bandajınız yok.
src.tag0.heal_tekrar=0
src.events -e_heal
src.tag0.heal_bozuldu=
return 1
endif
if (<ref1.hits> == <ref1.str>) && !(<ref1.hits> == 0) && !(<ref1.findid.i_rune_poison>) && !(<ref1.findid.i_bleeding>)
src.sys_kirmizi <qval (<src.uid> == <ref1.uid>)?Tedaviye ihtiyaç duymuyorsun.:<ref1.name> tedaviye ihtiyaç duymuyor.>
src.tag0.heal_tekrar=0
events -e_heal
src.tag0.heal_bozuldu=
return 1
endif
if (<ref1.isdeath>)
src.sys_kirmizi <ref1.name> isimli oyuncu hayatını kaybetti.
src.tag0.heal_tekrar=0
src.events -e_heal
src.tag0.heal_bozuldu=
return 1
endif
if !(<eval <src.tag0.heal_tekrar>> >= 4)
src.face <ref1>
src.tag0.heal_tekrar +=1
src.TIMERF 1,src.f_heal_x <ref1> // bunu elleme 1 saniyede bir düşüo
else
src.f_heal_finish <ref1>
src.tag0.heal_tekrar=0
src.events -e_heal
return 1
endif
[function f_heal_finish]
ref1 <args>
if !(<src.restest 1 i_bandage>)
src.sys_kirmizi Bandajınız yok.
src.tag0.heal_tekrar=0
src.events -e_heal
src.tag0.heal_bozuldu=
return 1
endif
if (<ref1.isdeath>)
src.sys_kirmizi <ref1.name> isimli oyuncu tedavi süresinde hayatını kaybetti.
src.tag0.heal_tekrar=0
src.events -e_heal
src.tag0.heal_bozuldu=
return 1
endif
if (<ref1.hits> > <ref1.str>)
ref1.hits <ref1.str>
endif
if (<ref1.hits> == <ref1.str>) && !(<ref1.hits> == 0) && !(<ref1.findid.i_rune_poison>)
src.sys_kirmizi <qval (<ref1.uid> == <src.uid>)?Tedaviye ihtiyaç duymuyorsun.:<ref1.name> tedaviye ihtiyaç duymuyor.>
src.tag0.heal_tekrar=0
src.events -e_heal
src.tag0.heal_bozuldu=
return 1
endif
//////// kendini ve başkasını yara
if (<ref1.findid.i_bleeding>)
if !(<ref1.uid> == <src.uid>)
if (<ref1.ispk>) || (<ref1.iscriminal>)
src.criminal 1
endif
endif
ref1.sayua 048,0,0,6 <qval (<ref1.uid> == <src.uid>)?* Yarasını İyileştirir *:* <src.name> Tarafından Yarası İyileştirilir *>
ref1.findid.i_bleeding.remove
if (<ref1.hits> >= <ref1.str>)
ref1.hits <ref1.str>
endif
ref1.effect 3,0376a,2,10,1
src.consume 1 i_bandage
serv.newitem i_heal_delay
new.equip
return 1
endif
//////// başkasının ve kendini zehir tedavi
if (<ref1.findid.i_rune_poison>)
if !(rand(10) == 1)
ref1.sayua 048,0,0,6 <qval (<ref1.uid> == <src.uid>)?* Zehiri Tedavi Eder *:* <src.name> Tarafından Zehiri Tedavi Edilir *>
ref1.findid.i_rune_poison.remove
ref1.effect 3,0376a,2,10,1
if !(<ref1.uid> == <src.uid>)
if (<ref1.ispk>) || (<ref1.iscriminal>)
src.criminal 1
endif
endif
else
ref1.effect 3,i_fx_curse,2,10,1
ref1.sayua 38,0,0,6 <qval (<ref1.uid> == <src.uid>)?* Zehiri Tedavi Edemez *:* <src.name> Tarafından Zehiri Tedavi Edemez *>
endif
if (<ref1.hits> >= <ref1.str>)
ref1.hits <ref1.str>
endif
src.consume 1 i_bandage
serv.newitem i_heal_delay
new.equip
return 1
endif
//// veteriner
if (<ref1.isanimals>)
if (<ref1.hits> < <ref1.str>)
ref1.sayua 0bb2,0,0,0 * <src.name> Tarafından Tedavi Edilir *
LOCAL.MINHEAL = <EVAL (<SRC.VETERINARY> / 70) + (<SRC.ANIMALLORE> / 60) + 3>
LOCAL.MAXHEAL = <EVAL (<SRC.VETERINARY> / 70) + (<SRC.ANIMALLORE> / 60) + 10>
LOCAL.HEAL = <EVAL {<LOCAL.MINHEAL>,<LOCAL.MAXHEAL>}>
IF (<LOCAL.HEAL> <= 0)
LOCAL.HEAL = 1
ENDIF
REF1.HITS += <dLOCAL.HEAL>
if (<ref1.hits> >= <ref1.str>)
ref1.hits <ref1.str>
endif
ref1.effect 3,0376a,2,10,1
src.consume 1 i_bandage
serv.newitem i_heal_delay
new.equip
return 1
endif
endif
//////// kendini ve başkasını tedavi///
if (<ref1.hits> < <ref1.str>)
ref1.sayua 048,0,0,6 <qval (<ref1.uid> == <src.uid>)?* Kendini Tedavi Eder *:* <src.name> Tarafından Tedavi Edilir *>
LOCAL.MINHEAL = <EVAL (<SRC.ANATOMY> / 70) + (<SRC.HEALING> / 60) + 3>
LOCAL.MAXHEAL = <EVAL (<SRC.ANATOMY> / 70) + (<SRC.HEALING> / 60) + 10>
LOCAL.HEAL = <EVAL {<LOCAL.MINHEAL>,<LOCAL.MAXHEAL>}>
IF (<LOCAL.HEAL> <= 0)
LOCAL.HEAL = 1
ENDIF
REF1.HITS += <dLOCAL.HEAL>
src.sys_beyaz +<dLOCAL.HEAL> Hits
if !(<ref1.uid> == <src.uid>)
src.<qval (<ref1.ispk>)?criminal 1:sysmessage>
src.<qval (<ref1.iscriminal>)?criminal 1:sysmessage>
endif
if (<ref1.hits> >= <ref1.str>)
ref1.hits <ref1.str>
endif
ref1.effect 3,0376a,2,10,1
src.consume 1 i_bandage
serv.newitem i_heal_delay
new.equip
return 1
endif
[itemdef i_heal_delay]
name Healing Delay
id 0186a
type t_eq_script
weight 0
layer layer_special
On=@Create
attr attr_invis|attr_newbie
On=@Equip
timer 6
On=@Timer
//cont.sys_beyaz Bandaj uygulaması yapabilirsiniz.
remove
return 1
[events e_heal]
on=@gethit
IF (RAND(5) == 1)
tag0.heal_bozuldu 1
endif
on=@death
tag0.heal_bozuldu 1
targetkapat
on=@logout
src.tag0.heal_bozuldu 1
[EOF]