Duello sırasında berabere kalması icin ne yapmam lazım.
duelloya başladıklarında item verdirt,eğer biri ölürse falan itemi sildir,ölmezlerse belli süre sonra on=@timer altından işlem yaptırırsın
try uid.<var.adam1>.go xx

var.adam1 , ile uid ver girerken fakat 2 tane olucak bu 2 sini yollaması için ok..

try uid.<var.adam1>.go xx
try uid.<var.adam2>.go xx

gerisini sen yaparsın bu kdr.
Novice
11.9
try uid.<cont.tag.player1>.go xx
try uid.<cont.tag.player2>.go xx

Burada player1, player2 yi attım kafadan duelloda ne olarak alıyorsa öyledir. Ama genelde player1, player2 kullanılır dene bakalım.
Veya itemi her iki playera'da verdirtiyorsan direk cont.go kullan olsun bitsin.
Novice
11.9
cont.paraver <eval <obg.tag.bahis>>
Novice
11.9
cont.'yu sil sadece paraver <eval <obg.tag.bahis>> de bakalım
Gene hata veriyor :S
21:08:ERROR:(duello.scp,551)Can't resolve <obg.tag.bahis>
21:08:ERROR:(duello.scp,526)Can't resolve <src.findlayer(29).uid>
21:08:ERROR:(duello.scp,526)Invalid container 00
21:08:ERROR:(duello.scp,551)Can't resolve <obg.tag.bahis>
21:08:ERROR:(duello.scp,526)Can't resolve <src.findlayer(29).uid>
21:08:ERROR:(duello.scp,526)Invalid container 00
Şöle bir sorun var bu i_berabere'yi 1kişiye veriyor 2tane.
src.go <link.tag.koordinat4>
src.newitem i_berabere
src.act.link <uid>
src.act.morep <morep>
src.act.equip
pvpkur2
src.food 15
src.tag.cpvp_duello_rakip <cont.uid>
src.tag.cpvp_duello_karma <src.karma>
src.tag.cpvp_duello_kills <src.kills>
src.tag.cpvp_duello_fame <src.fame>
src.events +e_cpvp_duello
cont.go <link.tag.koordinat5>
cont.newitem i_berabere
cont.act.link <uid>
cont.act.morep <morep>
cont.act.equip
pvpkur1
cont.food 15
cont.tag.cpvp_duello_rakip <src.uid>
cont.tag.cpvp_duello_karma <cont.karma>
cont.tag.cpvp_duello_kills <cont.kills>
cont.tag.cpvp_duello_fame <cont.fame>
cont.events +e_cpvp_duello
link.tag.pvpdeyim 1
serv.newitem i_cpvp_duello_gerisayim
new.timer 1
new.morex 5
new.cont <link.uid>
link.go <link.tag.koordinat2>
link.tag.player1 <src.uid>
link.tag.player2 <cont.uid>
işte burda
ayptır sorması obg nedir :D obj olmasın ?
Novice
11.9
Pardoon :utangac1 İnsanlık hali :utangac2
aşağıdaki duello sistemini deneyebilirsin bir süre önce kodlamıştım en son kontrol ettiğimde sorun yoktu ama kodun en güncel halimi emin değilim genede bir dene istersen



//////////////////////
//-duello system    //
//coded by alcholic //
//////////////////////

[defname duello_ayar]
kordinat_1 = 5803,1107 
kordinat_2 = 5798,1107 
kordinat_3 = 5808,1107

[chardef c_hakem]
name = #names_humanmale
id = C_man
CAN = mt_nonmover|mt_usehands|mt_equip

ON=@create
str = 100
color colors_skin
var.hakem =<uid>

karma = 10000
fame = 0

ITEM=i_blackrock_platemail_arms
item i_blackrock_platemail_gorget
item i_blackrocK_platemail_leggings
item i_blackrock_platemail
item i_blackrock_plate_helm
item i_blackrock_platemail_gauntlets

item=i_Hair_long
color = 07a1

item = i_Tunic
color =07a1

item = i_lantern

ON=@attack
return 1

ON=@gethit
return 1

ON=@death
remove
return 1

ON=@dclick
var.hakem = <uid>
src.sdialog D_duello

[dialog D_duello]
0,0
page 0
resizepic 100 100 83 300 200

dorigin 110 100
dtext +40 +10 38 <serv.servname> Duello Sistemi
dtext +10 +30 038 Bahis : 
dtextentry +70 +30 100 25 1153 1 ??
dtext +10 +50 038 Poison :
checkbox +70 +50 210 211 0 1
dtext +10 +70 038 Loot :
checkbox +70 +70 210 211 0 2
dtext +10 +90 038 Potion Sayısı :
dtextentry +130 +90 100 25 1153 2 3

dtext +10 +110 038 Bandaj Sayısı :
dtextentry +130 +110 100 25 1153 3 5

dtext +10 +130 0455 Duello esnasında yukarıdaki kurallar
dtext +10 +150 0455 geçerli olucaktır.

button +150 +70 4005 4007 1 0 1
dtext +185 +70 0455 Tamam.

[dialog d_duello button]
ON=1
if !(<isnum <ARGTXT[1]>>) || !(<isnum <ARGTXT[2]>>) || !(<isnum <ARGTXT[3]>>)
src.sysh_trk Yanlış karakter girdiniz (bahis,potion sayısı,bandaj sayısı rakam olmak zorunda).
elseif (<region.tag0.duello>)
src.sysh_trk Şuanda başka bir duello var onun bitmesini bekleyiniz.
elseif (<src.isevent.e_duello>)
src.sysh_trk Siz zaten duellodasınız.
else

region.tag.duello_poison = <argchk[1]>
region.tag.duello_loot = <argchk[2]>
region.tag.duello_bahis = <argtxt[1]>
region.tag.duello_bandage = <argtxt[2]>
region.tag.duello_potion = <argtxt[3]>

src.targetf rakipsec
src.sys_trk rakibinizi seçin ?

[function rakipsec]
ref1=<argo>
ref2=<src>
if !(<ref1.isplayer>)
	ref2.sysh_trk Sadece oyuncularla duello yapabilirsiniz.
elseif (<ref1.gold> < <region.tag0.duello_bahis>)
	ref2.sysh_trk Rakibiniz <bolukayir <region.dtag0.duello_Bahis>> altını yok.
elseif (<ref1.isevent.e_duello>) || (<ref2.isevent.e_duello>)
	ref2.sysh_trk Rakibiniz yada siz zaten duellodasınız.
elseif (<region.tag0.duello>)
	ref2.sysh_trk Duello alanında başkaları var.
elseif (<ref2.uid> == <ref1.uid>)
	ref1.sysh_trk Kendinizi seçemezsiniz.
else
	trysrc <ref1.uid> src.sdialog D_duello_rakip,0,<ref2.uid>
	ref2.sys_trk Teklif yapıldı , cevap bekleniyor.
	ref1.sys_trk <ref2.name> size duello teklif ediyor.
endif
[events e_duello]
ON=@itemequip
if (<act.isweapon>) && (<region.tag0.poison>) && (<act.morez>)
act.morex = 0
src.sys_Trk silahınızdaki poison silinmiştir.
endif

ON=@death
ref1=<uid>
ref2=<act.uid>
ref3=<var.hakem>

ref3.invis 0
ref1.say_trk Tebrikler <ref2.name>.
ref2.newgold =<eval <region.tag0.duello_bahis>*2>

if (<ref2.findid.i_rune_poison>)
ref2.findid.i_rune_poison.remove
endif

if (<region.tag0.duello_loot>)
	ref3.face <ref1.uid>
	ref1.timerf 2,go 5812,1106
	ref3.face = <ref1.uid>
	ref1.timerf 2,resurrect
	ref3.face = <ref2.uid>
	ref1.events -e_duello
	ref3.say_trk Loot için 30 saniyen var.
	ref3.invis 1
	ref3.timerf 29,invis 0
	ref3.timerf 30,face <ref2.uid>
	ref2.timerf 31,go 5812,1106
	ref2.timerf 31,events -e_duello
else
	ref1.go 5812,1106
	ref2.p 5812,1106
	ref2.move e
	ref1.events -e_duello	
	ref2.events -e_duello
	ref1.spelleffect s_resurrection,100
	ref1.hits = 100
	ref2.hits = 100
	return 1
endif
duello_update

[dialog d_duello_rakip]
0,0
page 0
resizepic 100 100 83 300 200
ctag0.teklifeden = <args>
ref1=<args>
dorigin 110 100
dtext +40 +10 38 <ref1.name> size duello teklif ediyor.
dtext +10 +30 038 Bahis : 
dtext +70 +30 0455 <region.dtag0.duello_bahis>
dtext +10 +50 038 Poison :
dtext +70 +50 0455 <qval (<region.tag0.duello_poison>)?Serbest:Yasak>
dtext +10 +70 038 Loot :
dtext +70 +70 0455 <qval (<region.tag0.duello_loot>)?Var:Yok>
dtext +10 +90 038 Potion Sayısı :
dtext +130 +90 0455 <region.dtag0.duello_potion>

dtext +10 +110 038 Bandaj Sayısı :
dtext +130 +110 0455 <region.dtag0.duello_bandage>

dtext +10 +130 0455 Duello esnasında yukarıdaki kurallar
dtext +10 +150 0455 geçerli olucaktır.

button +150 +70 4005 4007 1 0 1
dtext +185 +70 0455 Kabul ediyorum.
[dialog d_duello_rakip button]
ON=1
ref1=<ctag0.teklifeden>
if (<region.tag0.duello>)
	src.sysh_trk Şuanda başka bir duello var onun bitmesini bekleyiniz.
elseif (<src.isevent.e_duello>)
	src.sysh_trk Siz zaten duellodasınız.
elseif (<src.gold> < <region.dtag0.duello_bahis>)
	src.sysh_trk Bahsi <region.dtag0.duello_bahis>>gp olarak kabul edemezsiniz.
	ref1.sysh_trk <src.name>'in yeterli parası yok.
elseif (<ref1.gold> < <region.tag0.duello_bahis>)
	src.sysH_trk <ref1.name>'in yeterli parası yok.
	ref1.sysh_trk Yeterli paranız olmadığı için duello gerçekleşmiyor.
else
ref1.go = <def.kordinat_2>
src.go <def.kordinat_3>

serv.newitem 079
new.attr attr_invis
new.p = <src.p>
new.move n
new.timerf 11,remove
serv.newitem 079
new.attr attr_invis
new.p = <src.p>
new.move s
new.timerf 11,remove
serv.newitem 079
new.attr attr_invis
new.p = <src.p>
new.move w
new.timerf 11,remove
serv.newitem 079
new.attr attr_invis
new.p = <ref1.p>
new.move e
new.timerf 11,remove
serv.newitem 079
new.attr attr_invis
new.p = <ref1.p>
new.move n
new.timerf 11,remove
serv.newitem 079
new.attr attr_invis
new.p = <ref1.p>
new.move s
new.timerf 11,remove

ref1.events +e_duello
src.events +e_duello
ref2= <uid.<var.hakem>>
ref2.go = <def.kordinat_1>
ref2.duello_Baslat

[function duello_baslat]
serv.newitem i_Timer_duello,1,<uid>,1

[itemdef i_Timer_duello]
name duello timer
id i_memory
type = t_eq_script
weight 0

ON=@create
attr attr_invis
morex = 10
timer 1

ON=@timer
if <morex>
topobj.say_trk <morex>
topobj.anim 32
morex -=1
timer 1
else
topobj.say_trk Başla !
topobj.anim 22
topobj.timerf 1,invis 1
remove
endif
return 1

[AREADEF a_duello]
EVENTS=r_default,r_default_rock,r_default_water,r_default_tree,r_default_grass
NAME=Duello Alanı
GROUP=Special Area
FLAGS=region_antimagic_gate|region_flag_nobuilding|
p=5803,1106
RECT=5795,1121,5817,1092

[function duello_update]
if !(<db.connected>)
	db.connect
endif
db.execute "CREATE TABLE duello_sys (DuelId INT NOT NULL AUTO_INCREMENT PRIMARY KEY, Playeruid_1 VARCHAR(20) NOT NULL, Playeruid_2 VARCHAR(25), bahis INT, poison tinyINT, loot tinyint, date DATETIME)";
db.execute "INSERT INTO duello_sys Values(Null,'<ref1.uid>','<ref2.uid>','<region.dtag0.duello_bahis>','<region.dtag0.duello_poison>','<region.dtag0.duello_loot>',NOW())
db.close

/// potion kontrolunü bitirmemiştim ama aşağıdaki gibi bir mantık oluşturmuşum aşağıdaki mantık ile siz tamamlayabilirsiniz.
On=@spelleffect
if (<argn> == s_greater_heal) || (<argn> == s_cure) || (<argn> == s_Agility) || (<argn> == s_strength)
	if !(<act.isplayer>)
		if (<tag0.potion_<argn>> < <region.tag0.duell_potion>)
			tag0.potion_<argn> ++
		else
			sysh_trk Bu iksirden daha fazla içmenize yarışma kuralları izin vermiyor.
			return 1
		endif
	endif
endif

Üye Ol veya Giriş Yap

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