Uocucocuk - 15-06-2012 20:31 GMT -
arkadaslar script asagıda tek sıkıntı var duello basladıgında safe veya actıonda daha once duello yapmıs kişileri yapılan duello sonunda o adamlar ile birlikde herkezi safe atıyor sorunu bulamadım yardımcı olursanız sevnırım
arkadaslar script asagıda tek sıkıntı var duello basladıgında safe veya actıonda daha once duello yapmıs kişileri yapılan duello sonunda o adamlar ile birlikde herkezi safe atıyor sorunu bulamadım yardımcı olursanız sevnırım
Kod:
// Duello Sistemi
[function duelloduzelt]
var.dialogacik 0
var.dialogacik2 0
var.duellodolu 0
var.duellodolu2 0
[defname duello_ayar]
kordinat_1 = 5990,2189
kordinat_2 = 5983,2189
kordinat_3 = 5997,2189
[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>
events +fix
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
if (<src.findlayer.25.uid>)
src.sysmessage @0481 Binek ile basvuramazsiniz.
return 1
endif
var.hakem = <uid>
if (<var.dialogacik> == 0)
src.sdialog D_duello
var.dialogacik 1
timerf 15,var.dialogacik 0
timerf 15,src.dialogclose d_duello
else
src.sysmessage @07a1,,1 Suan biri tarafindan duello teklifi yapilmis
return 1
endif
if (<var.teklifyapildi> == 1)
src.sysmessage @07a1,,1 Suan biri tarafindan duello teklifi yapilmis
return 1
endif
ON=@click
message @60 [Hakem]
message @07a1,,1 Duello Gardiyani
return 1
[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 Loot :
checkbox +70 +50 210 211 0 2
dtext +10 +70 038 Potion Sayisi : 3
dtext +10 +90 038 Bandaj Sayisi : 5
dtext +10 +130 0455 Duello esnasinda yukaridaki kurallar
dtext +10 +150 0455 geçerli olucaktir.
button +150 +70 4005 4007 1 0 1
dtext +185 +70 0455 Teklif Gönder
[dialog d_duello button]
ON=1
if !(<isnum <ARGTXT[1]>>)
src.sysmessage Yanlis karakter girdiniz.
var.dialogacik 0
var.teklifyapildi 0
elseif (<src.isevent.e_duello>)
src.sysmessage Siz zaten duellodasiniz.
var.dialogacik 0
var.teklifyapildi 0
else
region.tag.duello_poison = <argchk[1]>
uid.<var.arenaduzen>.tag.duello_loot = <argchk[2]>
src.targetf rakipsec
src.sysmessage rakibinizi seçin ?
if (<src.findlayer.25.uid>)
src.sysmessage @0481 Binek ile basvuramazsiniz.
var.dialogacik 0
return 1
endif
on=0
var.dialogacik 0
[function rakipsec]
ref1=<argo>
ref2=<src>
if (<ref1.findlayer.25.uid>)
ref1.sysmessage @0481 Binek ile basvuramazsiniz.
return 1
var.dialogacik 0
endif
if (<ref2.findlayer.25.uid>)
ref2.sysmessage @0481 Binek ile basvuramazsiniz.
return 1
var.dialogacik 0
endif
if !(<ref1.isplayer>)
ref2.sysmessage Sadece oyuncularla duello yapabilirsiniz.
var.dialogacik 0
elseif (<ref1.gold> < <uid.<var.arenaduzen>.tag0.duello_bahis>)
var.dialogacik 0
ref2.sysmessage Rakibinizin <eval <uid.<var.arenaduzen>.dtag0.duello_Bahis>> altini yok.
elseif (<ref1.isevent.e_duello>) || (<ref2.isevent.e_duello>)
ref2.sysmessage Rakibiniz yada siz zaten duellodasiniz.
var.dialogacik 0
elseif (<region.tag0.duello>)
ref2.sysmessage Duello alaninda baskalari var.
var.dialogacik 0
elseif (<ref2.uid> == <ref1.uid>)
ref1.sysmessage Kendinizi seçemezsiniz.
var.dialogacik 0
else
trysrc <ref1.uid> src.sdialog D_duello_rakip,0,<ref2.uid>
ref2.sysmessage Teklif yapildi , cevap bekleniyor.
ref1.sysmessage <ref2.name> size duello teklif ediyor.
var.teklifyapildi 1
endif
[events e_duello]
ON=@itemequip
if (<eval <obj.tag.poison>>==0) && (strmatch(*t_weapon*,<act.type>)) && (<eval <act.morez>> >0)
src.sysmessage @021 Poisonlu silah kullanamazsiniz
act.unequip
endif
On=@ItemTargOn_Item
if (<src.targ.type> == t_corpse)
sysmessage @38,,1 Bu alanda Cesetlere bu islemi yapamazsiniz.
return 1
endif
on=@click
message @0bb2,,1 [Galibiyet : <eval <tag0.duellokazandi>>]
if (<uid.<var.arenaduzen>.tag0.duello_loot>)
message @07a1,,1 [Lootlu]
else
message @07a1,,1 [Lootsuz]
endif
ON=@death
ref1=<uid>
ref2=<act.uid>
ref3=<var.hakem>
ref1.tag.duellokaybetti +=1
ref2.tag.duellokazandi +=1
serv.allclients sysmessage @0713,,1 <ref2.name>, <ref1.name> adli oyuncuyu duelloda yenerek <eval <ref2.tag.duellokazandi>> kere duello kazandi.
ref1.say @07a1,,1 Tebrikler <ref2.name>.
timerf 1,trysrv F_duello10PLAYER_CHECK <ref2.UID>
if (<uid.<var.arenaduzen>.tag0.duello_loot>)
ref2.tag.gorev6 +=1
ref1.findtype.t_potion.remove
ref1.findtype.t_potion.remove
ref1.findtype.t_potion.remove
ref1.findtype.t_potion.remove
ref1.findtype.t_potion.remove
ref1.findtype.t_potion.remove
ref1.findtype.t_bandage.remove
ref2.findtype.t_potion.remove
ref2.findtype.t_potion.remove
ref2.findtype.t_potion.remove
ref2.findtype.t_potion.remove
ref2.findtype.t_potion.remove
ref3.findid.i_Timer_duello.remove
ref3.findid.i_Timer_duello.remove
ref3.findid.i_Timer_duello_3.remove
ref3.findid.i_Timer_duello_3.remove
ref3.timerf 31,invis 0
ref2.findtype.t_bandage.remove
ref2.findid.i_arrow_fire.remove
ref1.findid.i_arrow_fire.remove
ref2.findid.i_rune_poison.remove
ref1.findid.i_rune_poison.remove
ref1.timerf 2,go safe
ref1.timerf 3,resurrect 1
ref1.sysmessage @07a1,,1 Loot yapabilmeniz için 30 saniye süreniz var.
ref3.timerf 27,cesetisil
ref3.timerf 31,invis 0
ref3.timerf 25,go safe
ref2.timerf 31,events -e_duello
ref3.timerf 35,go 4359,2130,-5
ref3.timerf 35,invis 0
ref3.timerf 36,say @07a1,,1 Tekrar teklif atabilirsiniz.
var.dialogacik 0
var.duellodolu 0
else
ref2.tag.gorev6 +=1
region.allclients events -e_duello
region.allclients go safe
ref1.findtype.t_potion.remove
ref1.findtype.t_potion.remove
ref1.findtype.t_potion.remove
ref1.findtype.t_bandage.remove
ref3.findid.i_Timer_duello.remove
ref3.findid.i_Timer_duello_3.remove
ref3.findid.i_Timer_duello_3.remove
ref3.findid.i_Timer_duello.remove
ref3.timerf 33,invis 0
ref2.findtype.t_potion.remove
ref2.findtype.t_potion.remove
ref2.findtype.t_bandage.remove
ref1.spelleffect s_resurrection,100
ref1.hits = 100
ref2.hits = 100
ref3.go 6015,970
ref3.timerf 3,say @07a1,,1 Tekrar teklif atabilirsiniz.
ref3.invis 0
var.duellodolu 0
var.dialogacik 0
return 1
endif
ON=@LOGOUT
TRIGGER=@DEATH
RETURN 0
[dialog d_duello_rakip]
0,0
page 0
resizepic 100 100 83 300 200
ctag0.teklifeden = <args>
ref1=<args>
src.tag.lootvarmi <uid.<var.arenaduzen>.tag0.duello_loot>
dorigin 110 100
dtext +40 +10 38 <ref1.name> size duello teklif ediyor.
dtext +10 +30 038 Bahis :
dtext +70 +30 0455 <uid.<var.arenaduzen>.dtag0.duello_bahis>
dtext +10 +50 038 Poison :
dtext +70 +50 0455 YASAK
dtext +10 +70 038 Loot :
dtext +70 +70 0455 <qval (<uid.<var.arenaduzen>.tag0.duello_loot>)?VAR:YOK>
dtext +10 +90 038 Potion Sayisi :
dtext +130 +90 0455 3
dtext +10 +110 038 Bandaj Sayisi :
dtext +130 +110 0455 5
dtext +10 +130 0455 Duello esnasinda yukaridaki kurallar
dtext +10 +150 0455 geçerli olucaktir.
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 (<src.isevent.e_duello>) || (<ref1.isevent.e_duello>) || (<src.isevent.e_duello_arena2>) || (<ref1.isevent.e_duello_arena2>)
src.sysmessage Siz veya rakibiniz zaten duelloda.
var.teklifyapildi 0
return 1
endif
if !(<src.isonline>) || !(<ref1.isonline>)
return 1
endif
if (<src.findlayer.25.uid>)
src.sysmessage @0481 Binek ile basvuramazsiniz.
var.dialogacik 0
var.teklifyapildi 0
return 1
endif
if (<ref1.findlayer.25.uid>)
ref1.sysmessage @0481 Binek ile basvuramazsiniz.
return 1
var.dialogacik 0
var.teklifyapildi 0
endif
if (<var.duellodolu> == 1)
src.sysmessage Duello oldugu icin alinamiyorsunuz
return 1
var.dialogacik 0
var.teklifyapildi 0
endif
if (<region.tag0.duello>)
src.sysmessage Suanda baska bir duello var onun bitmesini bekleyiniz.
var.dialogacik 0
var.teklifyapildi 0
elseif (<src.isevent.e_duello>)
src.sysmessage Siz zaten duellodasiniz.
var.dialogacik 0
var.teklifyapildi 0
elseif (<src.gold> < <uid.<var.arenaduzen>.dtag0.duello_bahis>)
src.sysmessage Bahsi <uid.<var.arenaduzen>.dtag0.duello_bahis>>gp olarak kabul edemezsiniz.
var.dialogacik 0
var.teklifyapildi 0
ref1.sysmessage <src.name>'in yeterli parasi yok.
elseif (<ref1.gold> < <uid.<var.arenaduzen>.tag0.duello_bahis>)
var.dialogacik 0
var.teklifyapildi 0
src.sysmessage <ref1.name>'in yeterli parasi yok.
ref1.sysmessage Yeterli paraniz olmadigi için duello gerçeklesmiyor.
else
uid.<var.arenaduzen>.tag.duello_loot <src.tag.lootvarmi>
ref1.dialogclose d_duello2_rakip
src.dialogclose d_duello2_rakip
var.dialogacik 1
var.duellodolu 1
var.teklifyapildi 1
ref1.go = <def.kordinat_2>
src.go <def.kordinat_3>
src.duelloitemver
ref1.duelloitemver3
serv.newitem 079
new.p = <src.p>
new.move n
new.timerf 31,remove
serv.newitem 079
new.p = <src.p>
new.move s
new.timerf 31,remove
serv.newitem 079
new.p = <src.p>
new.move w
new.timerf 31,remove
serv.newitem 079
new.p = <ref1.p>
new.move e
new.timerf 31,remove
serv.newitem 079
new.p = <ref1.p>
new.move n
new.timerf 31,remove
serv.newitem 079
new.p = <ref1.p>
new.move s
new.timerf 31,remove
ref1.events +e_duello
src.events +e_duello
ref2= <uid.<var.hakem>>
ref2.go = <def.kordinat_1>
ref2.duello_Baslat
on=0
var.dialogacik 0
[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 = 30
timer 1
ON=@timer
if <morex>
topobj.say @07a1,,1 <morex> saniye sonra basliyor
topobj.anim 32
morex -=1
timer 1
else
topobj.say @07a1,,1 Basla !
topobj.anim 22
topobj.timerf 1,invis 1
remove
endif
return 1
[function duello_update]
if !(<db.connected>)
db.connect
endif
db.execute "CREATE TABLE IF NOT EXISTS 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>','<uid.<var.arenaduzen>.dtag0.duello_bahis>','<region.dtag0.duello_poison>','<region.dtag0.duello_loot>',NOW())
db.close
[function duelloitemver]
for 10
src.findtype.t_potion.remove
src.findid.i_box_wood.remove
src.findtype.t_eq_trade_window.remove
src.findtype.t_bandage.remove
src.findtype.t_reagent.remove
endfor
src.sysmessage @07a1,,1 Çantaniz temizlendi ve duello için esyalariniz yerlestirildi.
serv.newitem i_potion_healgreat,3,<src>,1
serv.newitem i_potion_refreshtotal,3,<src>,1
serv.newitem i_potion_curegreat,3,<src>,1
serv.newitem i_potion_bleed,3,<src>,1
serv.newitem i_potion_agilitygreat,3,<src>,1
serv.newitem i_bandage,5,<src>,1
if (<src.magery> < 300)
serv.newitem i_arrow,30,<src>,1
endif
src.findlayer(1).morez 0
src.findlayer(2).morez 0
src.findid.i_spear_vanq.morez 0
src.findid.i_katana_vanq.morez 0
src.findid.i_sword_broad_vanq.morez 0
src.findid.i_kryss_vanq.morez 0
[function duelloitemver3]
for 10
findtype.t_eq_trade_window.remove
findtype.t_potion.remove
findtype.t_bandage.remove
findtype.t_reagent.remove
findid.i_box_wood.remove
endfor
sysmessage @07a1,,1 Çantaniz temizlendi ve duello için esyalariniz yerlestirildi.
if (<magery> < 300)
serv.newitem i_arrow,30
new.cont <uid>
endif
serv.newitem i_potion_healgreat,3,<uid>,1
serv.newitem i_potion_refreshtotal,3,<uid>,1
serv.newitem i_potion_curegreat,3,<uid>,1
serv.newitem i_potion_bleed,3,<uid>,1
serv.newitem i_potion_agilitygreat,3,<uid>,1
serv.newitem i_bandage,5,<uid>,1
findlayer(1).morez 0
findlayer(2).morez 0
findid.i_spear_vanq.morez 0
findid.i_katana_vanq.morez 0
findid.i_sword_broad_vanq.morez 0
findid.i_kryss_vanq.morez 0
[itemdef i_duello_duzen]
name duello Duzen
id i_gravestone
type = t_eq_script
weight 0
ON=@create
attr attr_invis
morex = 30
var.arenaduzen <uid>
[function cesetisil]
foritems 10
if (<baseid>==i_corpse)
remove
endif
endfor
[itemdef i_duello_zamancii]
name duello Duzen
id i_gravestone
type = t_eq_script
weight 0
ON=@create
attr attr_invis
timer = 12000
on=@timer
uid.<var.hakem>.remove
remove
return 1
[itemdef i_acc_ac]
name duello Duzen
id i_gravestone
type = t_eq_script
weight 0
ON=@create
attr attr_invis
timer = 300
on=@timer
serv.account update
timer 300
return 1
Demonaz - 15-06-2012 21:35 GMT -
Event sorgulattır ve bununla birlikte duello alanında olup olmadıgını sorgulatır.
Event sorgulattır ve bununla birlikte duello alanında olup olmadıgını sorgulatır.
Rowall - 15-06-2012 21:56 GMT -
region.allclients komutu kullanılmış çünkü. Ya Duello alanı diye bi alan yaratıcaksın map dosyasından yada region.allclients yerine ref1, ref2 kullanacaksın.
region.allclients komutu kullanılmış çünkü. Ya Duello alanı diye bi alan yaratıcaksın map dosyasından yada region.allclients yerine ref1, ref2 kullanacaksın.
Uocucocuk - 15-06-2012 22:32 GMT -
Sorunu Cözdüm Yanlız Şimdide Duello Alanı İcerisinde İnvul Göruyor Rakipleri Sorun Ne Olabilir arkadaşlar ?
Son güncelleme: Uocucocuk tarafından 15-06-2012 22:55 GMT tarihinde, önce.
Sorunu Cözdüm Yanlız Şimdide Duello Alanı İcerisinde İnvul Göruyor Rakipleri Sorun Ne Olabilir arkadaşlar ?
Son güncelleme: Uocucocuk tarafından 15-06-2012 22:55 GMT tarihinde, önce.
Alcholic - 16-06-2012 02:27 GMT -
duello alanı eklemişsin sanırım region.safe 0 komutunu kullan.
duello alanı eklemişsin sanırım region.safe 0 komutunu kullan.
Uocucocuk - 16-06-2012 03:15 GMT -
teşekkürler Cözdüm Sorunsuz Calışıyor
teşekkürler Cözdüm Sorunsuz Calışıyor