Merhaba arkadaşlar duello.scpde karmaşık bir durum var önceden çalışan paraverme olayı bozuldu bu konuda yardımcı olurmusunuz.
on=@death
f_cpvp_duello_death
if (<src.findid i_berabere>)
src.findid.i_berabere.remove
if (<act.findid i_berabere>)
act.findid.i_berabere.remove
endif
endif
return 1
Bu events'deki death
[function f_cpvp_duello_death]
local.oldobj <obj>
act <tag.cpvp_duello_rakip>
if (<findid.i_duellocu>)
obj <findid.i_duellocu.uid>
else
obj <act.findid.i_duellocu.uid>
endif

local.oldobj <obj>
if (<findid.i_berabere>)
obj <findid.i_berabere.uid>
else
obj <act.findid.i_berabere.uid>
endif
obj <local.oldobj>

obj.link.go <obj.link.tag.koordinat1>
obj.link.tag.pvpdeyim
obj.link.tag.player1
obj.link.tag.player2
go <obj.link.tag.koordinat1>
if (<memoryfindtype.memory_sawcrime>)
memoryfindtype.memory_sawcrime.remove
endif
tag.cpvp_duello_fame <eval <tag.cpvp_duello_fame>>
tag.cpvp_duello_karma <eval <tag.cpvp_duello_karma>>
tag.cpvp_duello_kills <eval <tag.cpvp_duello_kills>>
tag.cpvp_duello_rakip
act.go <obj.link.tag.koordinat1>
if (<act.memoryfindtype.memory_sawcrime>)
act.memoryfindtype.memory_sawcrime.remove
endif
act.tag.cpvp_duello_fame <eval <act.tag.cpvp_duello_fame>>
act.tag.cpvp_duello_karma <eval <act.tag.cpvp_duello_karma>>
act.tag.cpvp_duello_kills <eval <act.tag.cpvp_duello_kills>>
act.tag.cpvp_duello_rakip

sysmessage @021,,1 Düelloyu kaybettiniz.
act.sysmessage @0481,,1 Tebrikler. Düelloyu kazandınız !
serv.allclients sysmessage @50,,1 <name> ile <act.name> arasındaki düelloyu <act.name> kazanmıştır.


obj.remove

resurrect
hits 100
obj <local.oldobj>

if (<eval <obj.tag.bahis>> >0)
trysrc <act> paraver <eval <obj.tag.bahis>*2>
act.sysmessage @0481,,1 <eval <obj.tag.bahis>*2> silver bankanıza aktarıldı.
endif
if (<eval <obj.tag.loot>>==1)
findlayer.1.cont <findlayer.21>
findlayer.2.cont <findlayer.21>
findlayer.3.cont <findlayer.21>
findlayer.4.cont <findlayer.21>
findlayer.5.cont <findlayer.21>
findlayer.6.cont <findlayer.21>
findlayer.7.cont <findlayer.21>
findlayer.8.cont <findlayer.21>
findlayer.10.cont <findlayer.21>
findlayer.12.cont <findlayer.21>
findlayer.13.cont <findlayer.21>
findlayer.17.cont <findlayer.21>
findlayer.18.cont <findlayer.21>
findlayer.19.cont <findlayer.21>
findlayer.20.cont <findlayer.21>
findlayer.22.cont <findlayer.21>
findlayer.23.cont <findlayer.21>
findlayer.24.cont <findlayer.21>
trysrc <act> cpvp_duello_loot <findlayer.21>
endif

if (strmatch(*pvp*,<act.region.name>))
act.events +e_cpvp_area
endif
act.events -e_cpvp_duello
if (strmatch(*pvp*,<region.name>))
events +e_cpvp_area
endif
events -e_cpvp_duello
Buda ölünce devreye giren fuction
[function paraver]
if (<isnum <args>>
if (<args> > 65000)
src.newitem i_check
new.more1 <eval <args>>
new.cont <src.findlayer(21).uid>
else
src.newitem i_fctn_silver
new.amount <eval <args>>
new.cont <src.findlayer(29).uid>
endif
endif
ve para verme fuctionu
trysrc <act> paraver <eval <obj.tag.bahis>*2>

buranın altına act.say <eval <obj.tag.bahis>*2> eklesene bi rakamda mı sıkıntı var onu bi görelim.Rakamda sıkıntı yoksa paraver functionunun altına bi src.say <args> ekle bakalım çıkacak mı. O rakamda çıkarsa paraver functionunu düzeltiriz.
Oldu şuan parayı veriyor sagol. Peki berabere kalınca paraları geri verme olayını nasıl yapıcam.
Birşey değiştirmedik ki =) Sıkıntı yokmuş demek ki zaten :)

Berabere kalınca tetiklenen function hangisi onu koy buraya düzenleyelim.
Verdigim item
[itemdef i_berabere]
name moongater
id i_handr_1
type t_eq_script
weight 0
layer layer_special

On=@Create
attr attr_invis|attr_can_decay

On=@Equip
timer 30


On=@Timer
f_cpvp_duello_death
remove
return 1
Buda fctn
[function f_cpvp_duello_berabere]
act <tag.cpvp_duello_rakip>
if (<findid.i_duellocu>)
obj <findid.i_duellocu.uid>
else
obj <act.findid.i_duellocu.uid>
endif

local.oldobj <obj>
if (<findid.i_berabere>)
obj <findid.i_berabere.uid>
else
obj <act.findid.i_berabere.uid>
endif
obj <local.oldbj>

obj.link.go <obj.link.tag.koordinat1>
obj.link.tag.pvpdeyim
obj.link.tag.player1
obj.link.tag.player2
go <obj.link.tag.koordinat1>
if (<memoryfindtype.memory_sawcrime>)
memoryfindtype.memory_sawcrime.remove
endif
tag.cpvp_duello_fame <eval <tag.cpvp_duello_fame>>
tag.cpvp_duello_karma <eval <tag.cpvp_duello_karma>>
tag.cpvp_duello_kills <eval <tag.cpvp_duello_kills>>
tag.cpvp_duello_rakip
act.go <obj.link.tag.koordinat1>
if (<act.memoryfindtype.memory_sawcrime>)
act.memoryfindtype.memory_sawcrime.remove
endif
act.tag.cpvp_duello_fame <eval <act.tag.cpvp_duello_fame>>
act.tag.cpvp_duello_karma <eval <act.tag.cpvp_duello_karma>>
act.tag.cpvp_duello_kills <eval <act.tag.cpvp_duello_kills>>
act.tag.cpvp_duello_rakip

sysmessage @021,,1 Düelloyu kaybettiniz.
act.sysmessage @0481,,1 Tebrikler, düelloyu kazandınız !
serv.allclients sysmessage @50,,1 <name> ile <act.name> arasındaki düello <act.name> Berabere bitmistir.

obj.remove


resurrect
hits 100


return 1
Verdiğin function ölüm functionu. Yani kazananı ve kaybedeni belirtiyor. Berabere olunduğunda kullanılan func lazım bana. i_berabere itemide death functionunu f_cpvp_duello_death tetikliyor.

Üye Ol veya Giriş Yap

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