Arkadaşlar U-S forumlarında bulduğum bir duello scriptini test ediyordum ama birşey farkettim. Duello yapan kişiler crim oluyor bu sorunu nasıl çözebilirim. Aslında olmaması gerekiyor içinde kod var fakat yinede oluyor. Yardımcı olursanız sevinirim.

[itemdef i_duello_gate]
id i_moongate_red
name Duello Alanina Gider
type t_script
weight 500

on=@create
color 0808
attr 010
var.duelloyeri = 5730,869//kendi alaninin koordinatlari

on=@click
message @1153 Duello Alani
var.duelloyeri = 5730,869//kendi alaninin koordinatlari
return 1

ON=@Step
if (<src.isgm>)
src.go <var.duelloyeri>
else
if (<src.findlayer(25)>)
src.sysmessage @1153 Binek ile katilamazsiniz...
return 1
endif

if (<src.skilltotal> < 5000)
src.sysmessage @1153 Duello alanina gidebilmek en az 500.0 yetenek puanina sahip olmalisin
return 1
endif

if (<src.hits> >= <src.str>
src.message
elseif (<src.hits> == 00)
src.message Olu haldeyken gecemezsin
return 1
else
src.sysmessage @1153 Yarali iken gateden gecemezsin
return 1
endif

if (<SRC.FLAGS> & 0800000)
src.sysmessage @1153 Invis iken gecemezsiniz...
return 1
else
src.go <var.duelloyeri>
if (0<src.account.plevel> < 2)
src.events +e_duelloda
endif
endif

on=@dclick
if (<src.isgm>)
src.go <var.duelloyeri>
else
if (<src.findlayer(25)>
src.sysmessage @1153 Binek ile katilamazsiniz...
return 1
endif

if (<src.skilltotal> < 5000)
src.sysmessage @1153 Duello alanina gidebilmek en az 500.0 yetenek puanina sahip olmalisin
return 1
endif

if (<SRC.FLAGS> & 0800000)
src.sysmessage @1153 Invis iken gecemezsiniz...
return 1
endif

if (<src.hits> >= <src.str>
src.message
elseif (<src.hits> == 00)
src.message Olu haldeyken gecemezsin
return 1
else
src.sysmessage @1153 Yarali iken gateden gecemezsin
return 1
endif

if !(<src.flags>&statf_stone)
if (<distance> > 2)
src.sysmessage @1153 Gate'e ulasamiyorsunuz.
return 1
else
src.go <var.duelloyeri>
if (0<src.account.plevel> < 2)
src.events +e_duelloda
endif
src.message @1153 Duello Alanina Hosgeldiniz
return 1
endif


[itemdef i_duello_cikis]
id i_moongate_red
name Duello Alanindan Cikis
type t_telepad
weight 500

on=@create
color 07a0
attr 010

on=@click
message @1153 Duello Alanindan Cikis
return 1

on=@step
if (<src.isevent.e_duello_pvp>)
src.lynx Siz $u anda duellodasiniz...
return 1
endif
if ( <src.kills> < 7 )
src.go britain
src.events -e_duelloda
else
src.go delucia
src.events -e_duelloda


on=@dclick
if (<src.isevent.e_duello_pvp>)
src.lynx Siz $u anda duellodasiniz...
return 1
endif
if ( <src.kills> < 7 )
src.go britain
src.events -e_duelloda
else
src.go delucia
src.events -e_duelloda




[events e_duelloda]
on=@click
message @1153 [Duello Alaninda]

on=@attack
skill fail
sysmessage @1153 Sadece duelloda olanlar savasabilir...
return 1

on=@spellcast
if !((<argn> == 6) || (<argn> == 7) || (<argn> == 4) || (<argn> == 9) || (<argn> == 10) || (<argn> == 15) || (<argn> == 16) || (<argn> == 17) || (<argn> == 19) || (<argn> == 29) || (<argn> == 36))
skill fail
ekranitemizle
sysmessage @1153 Savas buyulerini kullanamazsiniz...
return 1
endif

on=@skillstart
if !((<action> == id(skill_magery)) || (<action> == skill_magery) || (<action> == id(skill_meditation)) || (<action> == skill_meditation) || (<action> == id(skill_alchemy)) || (<action> == skill_alchemy))
skill fail
skill fail
ekranitemizle
sysmessage @1153 Stat ve armor buyuleri disinda herhengi bir buyu yada skill kullanamazsiniz...
return 1
endif

on=@itemPickup_Pack
if (<act.type> == t_potion)
sysmessage @1153 Sadece Duello esnasinda kullanabilirsin...
return 1
endif


On=@ItemDClick
if (<act.baseid> == i_deed_shrink)
sysmessage @1153 Bu alanda binek kullanamazsiniz...
return 1
endif

if (<act.type> == t_scroll)
sysmessage @1153 Duello alaninda bunu kullanamazsin
return 1
elseif (<act.type> == t_potion)
sysmessage @1153 Sadece Duello esnasinda kullanabilirsin...
return 1
endif

if (<act.baseid> == i_frunebook)
sysmessage @1153 Duello alaninda runebook kullanamazsin...
return 1
endif


[chardef c_hakem]
name #names_humanmale
id c_man
can mt_equip|mt_nonmover

On=@Create
str 9500
dex 9500
int 9500
color 0418
speechcolor 0481
food 990
npc 1

itemnewbie i_hair_long
color 044e
itemnewbie i_beard_vandyke
color 044e
itemnewbie i_backpack
itemnewbie i_bankbox
color 0384
timer 900
attr 014
itemnewbie i_duello_ticket
itemnewbie i_blackrock_platemail
itemnewbie i_blackrock_platemail_leggings
itemnewbie i_blackrock_platemail_arms
itemnewbie i_blackrock_platemail_gorget
itemnewbie i_blackrock_platemail_gauntlets

// 02ff 02fe 02fd

on=@click
message @1153 Duello Gozetmeni
message @035 <name>
return 1


on=@dclick
if (strmatch('<src.account.plevel>','1')
if !(<src.isevent.e_duelloda>
src.events e_duelloda
say Bir daha dene savasci
return 1
endif
endif

if (<src.findlayer(25)>
src.sysmessage @38,1,1 Atli olarak duelloya katilamazsiniz.
return 1
endif
if (<distance> < 3) && (<canseelos> && !(<src.findid(i_duellolink)>
if (<findid(i_duello_ticket).timer> == -1)
findid.i_duello_ticket.dialog d_bahis_price
face
else
src.sysmessage @38,1,1 Duello alani suanda kullaniliyor.
endif
endif
return 1

on=@gethit
return 1

on=@spelleffect
return 1

on=@death
hits 9999
return 1

[itemdef i_duello_ticket]
name duello ticket
id i_gold
type t_eq_script
layer layer_special

on=@targon_char
if (<src.targ.uid> == <src.uid>)
src.sysmessage @38,1,1 Kendi boyunda biriyle ugras dediysek seni kastetmedik :) // aklima daa güzel bisi gelmedi :P
return 1
endif
if (<src.gm>
src.say <cont.distance>
endif
if (<link> == <src.uid>
if (<src.findid(i_duellolink)>
src.sysmessage @38,1,1 Suan duelloya katilamazsiniz.
morey 0
morez 0
morex 0
link -1
tag.rakip -1
timer -1
elseif (<src.targ.findid(i_duellolink)>
src.targ.sysmessage @38,1,1 Suan duelloya katilamazsiniz.
morey 0
morez 0
morex 0
link -1
tag.rakip -1
timer -1
elseif (<src.targ.findlayer(25)>
src.targ.sysmessage @38,1,1 Atli olarak duelloya katilamazsiniz.
src.sysmessage @38,1,1 Rakibiniz atin uzerindeyken duelloya katilamaz.
morey 0
morez 0
morex 0
link -1
tag.rakip -1
timer -1
elseif !(<src.targ.canseelos> || (<src.targ.distance> > 3)
src.sysmessage @38,1,1 Duello teklifi icin rakibinize yaklasmalisiniz.
morey 0
morez 0
morex 0
link -1
tag.rakip -1
timer -1
elseif (<src.targ.uid> == <src.uid> || (<src.targ.npc>
morey 0
morez 0
morex 0
link -1
tag.rakip -1
timer -1
elseif (<src.targ.bankbalance> < <eval <more2>>
src.sysmessage @38,1,1 Rakibinizin bankasinda yeterli miktarda altin bulunmuyor.
morey 0
morez 0
morex 0
link -1
tag.rakip -1
timer -1
else
trysrc <src.targ.uid> f_pvp_teklif <uid>
tag.rakip <src.targ.uid>
endif
endif
return 1

on=@Targon_Cancel
src.sysmessage @38,1,1 Hata.
morey 0
morez 0
morex 0
link -1
tag.rakip -1
timer -1
return 1

on=@targon_item
morey 0
morez 0
morex 0
link -1
tag.rakip -1
timer -1
return 1

on=@timer
if (<morez> == 1)
morey 0
morez 0
morex 0
link.sysmessage @38,1,1 Duello teklifiniz rededildi.
if (<uid.<tag.rakip>.isplayer>
trysrc <tag.rakip> src.sysmessage @38,1,1 Duello teklifini reddettiniz.
trysrc <tag.rakip> src.dialogclose d_teklif_pvp
endif
link -1
tag.rakip -1
timer -1
cont.f_return_to_base
return 1
endif
if (<morex> > 0)
if (<morex> < 4)
cont.say <morex>
endif
morex <morex>-1
timer 1
elseif (<morex> == 00) && (<morey> == 00)
cont.say Basla!
timer 4
morey 24
elseif (<morey> > 1)
timer 5
morey -= 1
elseif (<morey> == 1)
morey 0
morex 0
f_pvp_giveprize
cont.p <eval <cont.tag.morex>>,<eval <cont.tag.morey>>,<eval <cont.tag.morez>>
cont.fix
cont.say Berabere.
link.go <eval <cont.p.x>-1>,<cont.p.y>
link.criminal 0
link.findid(i_duellolink).link.criminal 0
link.events -e_Duello_pvp
link.events +e_duelloda
link.findid(i_duellolink).link.events -e_duello_pvp
link.findid(i_duellolink).link.events +e_duelloda
link.findid(i_duellolink).link.go <eval <cont.p.x>+1>,<cont.p.y>
link.findid(i_duellolink).link.findid.(i_duellolink).remove
link.findid(i_duellolink).remove
link -1
endif
return 1

[events e_duello_pvp]
On=@SpellCast
if ((<argn> == 24) || (<argn> == 33) || (<argn> == 39) || (<argn> == 40) || (<argn> == 44) || (<argn> == 46) || (<argn> == 47) || (<argn> == 49) || (<argn> == 50) || (<argn> >= 55) || (<argn> >= 45))
src.sysmessage @38 Duello sirasinda bu buyuyu kullanamazsiniz.
f_fizzle
return 1
endif

on=@gethit
//say <eval <hits>-<argn1>>
if (<eval <hits>-<argn1>> < 5)
if (<src.findid(i_duellolink).link.uid> == <uid>
if (<src.findid(i_duellolink)>
try uid.<src.findid(i_duellolink).tag.ticket>.morey 0
try uid.<src.findid(i_duellolink).tag.ticket>.morex 0
try uid.<src.findid(i_duellolink).tag.ticket>.timer -1
trysrc <uid.<src.findid(i_duellolink).tag.ticket>.cont.uid> src.f_return_to_base
try uid.<src.findid(i_duellolink).tag.ticket>.cont.fix
src.p <uid.<src.findid(i_duellolink).tag.ticket>.cont.p>
src.move -1
p <uid.<src.findid(i_duellolink).tag.ticket>.cont.p>
move 1
src.say Ben kazandim!
src.tag0.kazanilanduel +=1
say Tebrikler beni yendin
tag0.kaybedilenduel +=1
src.events -e_duello_pvp
src.events +e_duelloda
events -e_duello_pvp
events +e_duelloda
if (<src.findid.i_bleeding>
src.findid.i_bleeding.remove
src.findid.i_bleeding2.remove
src.sysmessage @1153 Bleeding etkisi gecti
endif
if (<findid.i_bleeding>
findid.i_bleeding.remove
findid.i_bleeding2.remove
sysmessage @1153 Bleeding etkisi gecti
endif
src.hits <src.str>
hits <str>
try uid.<src.findid(i_duellolink).tag.ticket>.link -1
trysrc <src.uid> f_pvp_wonprize <eval <uid.<src.findid(i_duellolink).tag.ticket>.more1>*2>
//try uid.<uid.<src.findid(i_duellolink).tag.ticket>.cont.uid>.message @990,1,1 <src.name> yendi.
try uid.<uid.<src.findid(i_duellolink).tag.ticket>.cont.uid>.serv.allclients sysmessage @1153 <src.name> ile <name> arasindaki duelloyu <src.name> kazandi. Tebrikler!
if (<src.flags>&statf_war)
src.flags <src.flags>&~statf_war
src.update
endif
if (<flags>&statf_war)
flags <flags>&~statf_war
update
endif
findid.(i_duellolink).remove
src.findid(i_duellolink).remove
if (<findid(i_rune_poison)>
src.findid.i_rune_poison.remove
spelleffect s_cure,2000
fix
endif
if (<src.findid(i_rune_poison)>
src.findid.i_rune_poison.remove
src.spelleffect s_cure,2000
src.fix
endif
endif
endif
return 1
endif

[dialog d_bahis_price]
200,200
resizepic 0 0 5054 275 150
//resizepic 10 10 3000 255 130
resizepic 25 59 3000 190 35
textentry 40 67 600 20 1152 1 0
button 220 65 4005 4006 1 0 1
text 40 30 1153 1

[dialog d_bahis_price text]
5000
Duello bahis ucreti:

[dialog d_bahis_price button]
On=1
if !(<isnum <argtxt[1]>>
src.sysmessage @38,1,1 Hatali karakter kullanimi.
return 1
endif
if (<eval <argtxt[1]>> < 5000)
src.sysmessage @38,1,1 Bahis en az 5000 altin olabilir.
elseif (<eval <argtxt[1]>> > 1000000)
src.sysmessage @38,1,1 Bahis en fazla 1000000 altin olabilir.
elseif (<eval <argtxt[1]>> > <src.bankbalance>
src.sysmessage @38,1,1 Bankanizda bu kadar altin bulunmuyor.
elseif !(<link> == 04fffffff) && (<morez> > 0)
src.sysmessage @38,1,1 Duelloya girmek uzere teklifte bulunmus kisiler var.
else
more2 <eval <argtxt[1]>>
timer 10
morez 1
more1 0

link <src.uid>
target @68,1,1 Duelloda rakibiniz kim olacak?
endif
[dialog d_teklif_pvp]
0,0
noclose
nomove
resizepic 190 165 5054 275 200
//resizepic 200 175 3000 255 180
htmlgump 215 190 220 60 0 1 1
text 270 260 68 3
text 290 295 68 1
text 290 315 68 2
button 255 295 4006 4007 1 0 1
button 255 315 4018 4019 1 0 0

[dialog d_teklif_pvp text]
<link.name> tarafindan duello teklifi aldiniz. Cevabiniz nedir?
Kabul ediyorum
Kabul etmiyorum
Bahis: <eval <more2>> gp

[dialog d_teklif_pvp button]
on=1
if !(strmatch('<cont.p.x>x<cont.p.y>','<eval <cont.tag.morex>>x<eval <cont.tag.morey>>')
cont.say @38,1,1 Duello alani suan dolu.
return 1
endif
if (<eval <more2>> > <src.bankbalance>
src.sysmessage @38,1,1 Bankanizda yeterli altin bulunmuyor.
elseif (<src.findid(i_duellolink)>
src.sysmessage @38,1,1 Suan duelloya katilamazsiniz.
elseif (<link.findid(i_duellolink)>
link.sysmessage @38,1,1 Suan duelloya katilamazsiniz.
elseif (<src.findid(i_morpher)>
src.sysmessage @38,1,1 Polymorph buyusu etkisindeyken duelloya katilamazsiniz.
elseif (<link.findid(i_morpher)>
src.sysmessage @38,1,1 Rakibiniz polymorph buyusu etkisinde, bu durumda duelloya katilamaz.
elseif (<src.findlayer(25)>
src.sysmessage @38,1,1 At uzerindeyken duelloya katilamazsiniz.
elseif (<link.findlayer(25)>
link.sysmessage @38,1,1 At uzerindeyken duelloya katilamazsiniz.
elseif !(<tag.rakip> == <src.uid>
src.sysmessage @38,1,1 Teklifi reddetiniz.
else
f_turnuvaconsume
cont.dir 4
cont.move 0 -10
src.p <cont.p>
src.move -4
link.p <cont.p>
link.move 3 7
link.criminal 1
link.events +e_Duello_pvp
link.events -e_duelloda
src.criminal 1
src.events +e_duello_pvp
src.events -e_duelloda
src.newitem i_duellotasi
src.act.p <link.p>
src.act.move -1
src.newitem i_duellotasi
src.act.p <link.p>
src.act.move -1 -1
src.newitem i_duellotasi
src.act.p <link.p>
src.act.move 0 -1
src.newitem i_duellotasi
src.act.p <src.p>
src.act.move 1 0
src.newitem i_duellotasi
src.act.p <src.p>
src.act.move 1 1
src.newitem i_duellotasi
src.act.p <src.p>
src.act.move 0 1
src.newitem i_duellolink
src.act.cont <src.uid>
src.act.tag.ticket <uid>
src.act.link <link.uid>
src.newitem i_duellolink
src.act.cont <link.uid>
src.act.tag.ticket <uid>
src.act.link <src.uid>
morez 0
timer 3
morex 5
endif

[itemdef i_duellolink]
name Duelloda
id i_gold
type t_eq_script

on=@create
timer 150

on=@unequip
if (<src.isevent.e_duello_pvp>
src.events -e_duello_pvp
src.events +e_duelloda
src.go duelloa
endif

on=@timer
remove
return 1

[itemdef i_duellotasi]
id 02ff
on=@create
name invisible stone
attr 090
timer 10

on=@timer
remove
return 1

[function pvpkur]
src.newnpc c_hakem
src.act.p <src.p>
src.act.tag.morex <src.p.x>
src.act.tag.morey <src.p.y>
src.act.tag.morez <src.p.z>
src.newitem 02fe
src.act.p <src.p>
src.act.move -4 -2
src.newitem 02fe
src.act.p <src.p>
src.act.move -3 -2
src.newitem 02fe
src.act.p <src.p>
src.act.move -2 -2
src.newitem 02fe
src.act.p <src.p>
src.act.move -1 -2
src.newitem 02fe
src.act.p <src.p>
src.act.move 0 -2
src.newitem 02fe
src.act.p <src.p>
src.act.move 1 -2
src.newitem 02fe
src.act.p <src.p>
src.act.move 2 -2
src.newitem 02fe
src.act.p <src.p>
src.act.move 3 -2
src.newitem 02fe
src.act.p <src.p>
src.act.move -4 -11
src.newitem 02fe
src.act.p <src.p>
src.act.move -3 -11
src.newitem 02fe
src.act.p <src.p>
src.act.move -2 -11
src.newitem 02fe
src.act.p <src.p>
src.act.move -1 -11
src.newitem 02fe
src.act.p <src.p>
src.act.move 0 -11
src.newitem 02fe
src.act.p <src.p>
src.act.move 1 -11
src.newitem 02fe
src.act.p <src.p>
src.act.move 2 -11
src.newitem 02fe
src.act.p <src.p>
src.act.move 3 -11
src.newitem 02fe
src.act.p <src.p>
src.act.move 4 -11
src.newitem 0300
src.act.p <src.p>
src.act.move -5 -11
src.newitem 02ff
src.act.p <src.p>
src.act.move -5 -10
src.newitem 02ff
src.act.p <src.p>
src.act.move -5 -9
src.newitem 02ff
src.act.p <src.p>
src.act.move -5 -8
src.newitem 02ff
src.act.p <src.p>
src.act.move -5 -7
src.newitem 02ff
src.act.p <src.p>
src.act.move -5 -6
src.newitem 02ff
src.act.p <src.p>
src.act.move -5 -5
src.newitem 02ff
src.act.p <src.p>
src.act.move -5 -4
src.newitem 02ff
src.act.p <src.p>
src.act.move -5 -3
src.newitem 02ff
src.act.p <src.p>
src.act.move -5 -2
src.newitem 02ff
src.act.p <src.p>
src.act.move 4 -10
src.newitem 02ff
src.act.p <src.p>
src.act.move 4 -9
src.newitem 02ff
src.act.p <src.p>
src.act.move 4 -8
src.newitem 02ff
src.act.p <src.p>
src.act.move 4 -7
src.newitem 02ff
src.act.p <src.p>
src.act.move 4 -6
src.newitem 02ff
src.act.p <src.p>
src.act.move 4 -5
src.newitem 02ff
src.act.p <src.p>
src.act.move 4 -4
src.newitem 02ff
src.act.p <src.p>
src.act.move 4 -3
src.newitem 02fd
src.act.p <src.p>
src.act.move 4 -2

[function f_return_to_base]
p <eval <tag.morex>>,<eval <tag.morey>>,<eval <tag.morez>>
fix

[function f_pvp_giveprize]
if (<eval <more1>> > 65000)
cont.newitem i_check_rbrt
new.more1 <eval <more1>>
new.cont <link.findlayer(21).uid>
cont.newitem i_check_rbrt
new.more1 <eval <more1>>
new.cont <link.findid(i_duellolink).link.findlayer(21).uid>
else
cont.newitem i_gold
new.amount <eval <more1>>
new.cont <link.findlayer(29).uid>
cont.newitem i_gold
new.amount <eval <more1>>
new.cont <link.findid(i_duellolink).link.findlayer(29).uid>
endif

[function f_pvp_wonprize]
if (<isnum <args>>
if (<args> > 65000)
src.newitem i_check_rbrt
new.more1 <eval <args>>
new.cont <src.findlayer(21).uid>
else
src.newitem i_gold
new.amount <eval <args>>
new.cont <src.findlayer(29).uid>
endif
endif

[function f_pvp_teklif]
dialog d_teklif_pvp


[function f_turnuvaconsume]
if !(<more2> == <more1>
if (<eval <more2>-<more1>> < 65001)
src.consumebank <eval <more2>-<more1>>
trysrc <link.uid> src.consumebank <eval <more2>-<more1>>
more1 += <eval <more2>-<more1>>
else
src.consumebank 65000
trysrc <link.uid> src.consumebank 65000
more1 += 65000
f_turnuvaconsume
endif
endif

[FUNCTION consumebank] //alinti
act=<SRC.FINDLAYER(layer_bankbox).uid>
act.layer=layer_pack
act.type=t_container
act.equip
src.consume <args> i_gold
act.layer=layer_bankbox
act.type=t_eq_bank_box
act.equip

[function duels]
src.sysmessage @0187 Bugune kadar <eval <tag0.kazanilanduel>> duello kazandiniz, <eval <tag0.kaybedilenduel>> duello kaybettiniz...

[itemdef i_duellogirisfix]
id i_teleporter
name Safeye Giris

on=@create
attr attr_invis | 08
timer -1

on=@timer
timer 10
return 1

on=@step
if (<src.id> = c_man) || (<src.id> = c_woman)
return 1
else
src.remove// binekle gelirlerse binek siliniyor :D
return 1
sokarken crim yap sonra fameini karmasını bitince geri ver
Mantiken doğru fakat pratikte yapamadım zaten :S
else
src.go <var.duelloyeri>
if (0<src.account.plevel> < 2)
src.tag.fame <src.fame>
src.tag.karma <src.karma>
src.karma (krim olması gereken karma)
src.events +e_duelloda
endif
endif

if ( <src.kills> < 7 )
src.go britain
src.events -e_duelloda
src.fame <src.tag.fame>
src.karma <src.tag.karma>
else
src.go delucia
src.fame <src.tag.fame>
src.karma <src.tag.karma>
src.events -e_duelloda
Yardımın için teşekkür ederim oldu.
her zaman
Arkadaşlar bu kod hata veriyor işe yaramıyor başka bir çözüm yolu bulabilecek varmı?

Duelloda crim oluyorlar karma fameleri düşüyor bunun olmasını istemiyorum ben
ne hatası veriyo yazarmısın
Çalışmıyor yani tag olarak kaydetmiyor sanırım tester player charı ile deniyorum duello alanına girdiğinde mesela fame 2000 karma 2000
Duellonun içinde karma 1000 fame 1000 yapıyorum çıkartıyorum duellodan yine karma 1000 fame 1000 duruyor
ozmn şey yap src.karma +=1000 yap çıkışta

Üye Ol veya Giriş Yap

Bu forum başlığına mesaj atmak istiyorsanız hemen üye olun veya giriş yapın.