Merhaba Arkadşalar Elimde Bir duello Sistemi war Bi Kaç Sorun Dışında Çok Güzel Çalışıor... sorunlar ;
1 Duelloya Baslandıgında Playerlerin Hareket Etmesini Enelleyen Duvarlar Cikmior...
2 Duello Bitince Playerler duello Alaninda KAlior... Bi Bakarsanız SEvinirm

Script;


[chardef c_cpvp_duello]
name #NAMES_HUMANMALE
id c_man
can mt_equip|mt_nonmover

On=@Create
str 9500
dex 25
int 25
color colors_skin
speechcolor 0481
food 990
npc 1
itemnewbie random_male_hair
color colors_hair
itemnewbie random_facial_hair
color match_hair
itemnewbie i_blackrock_chainmail_tunic
itemnewbie i_blackrock_chainmail_leggings
itemnewbie i_blackrock_chainmail_coif
itemnewbie i_boots_calf
color 1

on=@gethit
return 1

on=@spelleffect
return 1

on=@death
hits 100
return 1

on=@attack
return 1

on=@hit
return 1

on=@click
messageua 0481,6,6,enu [Duello Hakemi]
messageua 0481,6,6,enu <name>
return 1

on=@dclick
if (<src.isevent.e_cpvp_duello>)
src.syshata duellodasınız.
return 1
endif

if (<src.findid.i_duellocu>)
src.findid.i_duellocu.remove
endif
if (<eval <src.tag.s1>> == 1)
sdialog d_cpvp_duello
return 1
endif
if (<src.account.plevel>==7) && (<src.isgm>)
sdialog d_cpvp_duello_ayar
elif (<src.account.plevel>==1) || (<src.account.plevel>==7)
if (<distance> >3)
src.sysmessage @38,,1 yetişemiyorsunuz...
return 1
endif
sdialog d_cpvp_duello
endif
return 1

//-----------------------------------------------------------------------------------------
// Dialogs

[dialog d_cpvp_duello_ayar]
0,0
resizepic 100 100 3500 300 200

dhtmlgump 190 120 300 20 0 0 Dark Pvp Duello Sistemi

button 120 150 210 211 1 0 1
button 120 175 210 211 1 0 2
button 120 200 210 211 1 0 3
button 120 225 210 211 1 0 4
button 120 250 210 211 1 0 5
dhtmlgump 142 150 400 20 0 0 Normal Koordinati: <tag0.koordinat1>
dhtmlgump 142 175 400 20 0 0 Gerisayim Koordinati: <tag0.koordinat2>
dhtmlgump 142 200 400 20 0 0 Pvp'deki Koordinati: <tag0.koordinat3>
dhtmlgump 142 225 400 20 0 0 1.Player: <tag0.koordinat4>
dhtmlgump 142 250 400 20 0 0 2.Player: <tag0.koordinat5>

[dialog d_cpvp_duello_ayar button]
onbutton 1
var.hakemuid <uid>
targetfg hakemkoordinat 1
onbutton 2
var.hakemuid <uid>
targetfg hakemkoordinat 2
onbutton 3
var.hakemuid <uid>
targetfg hakemkoordinat 3
onbutton 4
var.hakemuid <uid>
targetfg hakemkoordinat 4
onbutton 5
var.hakemuid <uid>
targetfg hakemkoordinat 5

[dialog d_cpvp_duello]
0,0
resizepic 100 100 3500 300 272

dhtmlgump 245 120 300 20 0 0 <var.font2>>Duello

dhtmlgump 120 150 50 20 0 0 <var.font2>>Bahis
dtextentry 160 148 100 20 0 1 0

checkbox 120 180 210 211 0 1
checkbox 120 205 210 211 0 2
checkbox 120 230 210 211 0 3
dhtmlgump 143 182 300 20 0 0 Silaha poison var
dhtmlgump 143 207 300 20 0 0 Loot var
dhtmlgump 143 232 300 20 0 0 Magical var

dhtmlgump 120 260 120 20 0 0 <var.font2>>Max. Bandage
dhtmlgump 120 280 120 20 0 0 <var.font2>>Max. Potion
dtextentry 250 260 70 20 0 2 0
dtextentry 250 280 70 20 0 3 0

button 230 330 4023 4025 1 0 1

[dialog d_cpvp_duello button]
onbutton 1
if !(<isnum <argtxt[1]>>) || !(<isnum <argtxt[2]>>) || !(<isnum <argtxt[3]>>)
src.syshata Sadece sayi yazabilirsiniz.
return 1
elseif (strmatch('<argtxt[1]>','0')
src.syshata Bahis ücretini boş bırakamazsınız.
return 1
endif
serv.newitem i_duellocu
src.new.link <uid>
src.new.tag.bahis <argtxt[1]>
src.new.tag.maxbandage <argtxt[2]>
src.new.tag.maxpotion <argtxt[3]>
src.new.tag.poison <argchk[1]>
src.new.tag.loot <argchk[2]>
src.new.tag.magical <argchk[3]>
src.new.timer 45
src.new.equip

[dialog d_cpvp_duello_teklif]
0,0
nomove
resizepic 100 100 3500 300 280
dtext 170 120 0 Dark Pvp Shard Duello Sistemi

dtext 120 150 0 Dark Pvp Shard duello teklifinde bulundu

resizepic 123 187 5100 5 5
resizepic 123 209 5100 5 5
resizepic 123 231 5100 5 5
resizepic 123 253 5100 5 5
resizepic 123 275 5100 5 5
resizepic 123 297 5100 5 5
dtext 130 180 0 Bahis: <eval <tag.bahis>> gp
dtext 130 202 0 Silaha poison <qval (<tag0.poison>) ? var:yok>
dtext 130 224 0 Loot <qval (<tag0.loot>) ? var:yok>
dtext 130 246 0 Magical silah <qval (<tag0.magical>) ? var:yok>
dtext 130 268 0 Max Bandage: <eval <tag.maxbandage>>
dtext 130 290 0 Max Potion: <eval <tag.maxpotion>>

button 123 320 4023 4025 1 0 1
dtext 156 320 0 Kabul Ediyorum

[dialog d_cpvp_duello_teklif button]
onbutton 0
cont.syshata <src.name> teklifi kabul etmedi
remove

onbutton 1
if (<src.memoryfindtype.memory_town>) && (<cont.memoryfindtype.memory_town>)
  if (<src.memoryfindtype.memory_town.link>==<cont.memoryfindtype.memory_town.link>)
  src.syshata Ayni factiondakiler birbirleriyle duello yapamazlar
  cont.syshata Ayni factiondakiler birbirleriyle duello yapamazlar
  endif
elif (<src.memoryfindtype.memory_guild>) && (<cont.memoryfindtype.memory_guild>)
  if (<src.memoryfindtype.memory_guild.link>==<cont.memoryfindtype.memory_guild.link>)
  src.syshata Ayni guiddekiler birbirleriyle duello yapamazlar
  cont.syshata Ayni guilddekiler birbirleriyle duello yapamazlar
  endif
endif

if (<eval <link.tag.pvpdeyim>>==1)
src.syshata Duello alani su anda dolu.
cont.syshata <src.name> teklifi kabul etti, ancak duello alani su anda dolu
return 1
endif

if (<src.restest <eval <tag.bahis>> i_silver_piece>) && (<cont.restest <eval <tag.bahis>> i_silver_piece>)
cont.consume <eval <tag.bahis>> i_silver_piece
src.consume <eval <tag.bahis>> i_silver_piece
else
src.syshata <cont.name> veya sizde <eval <tag.bahis>> Puan eksik
cont.syshata <src.name> veya sizde <eval <tag.bahis>> Puan eksik
return 1
endif

if (<src.findlayer.25>) || (<cont.findlayer.25>)
src.syshata Binekle duello yapamazsiniz
cont.syshata Binekle duello yapamazsiniz
return 1
endif

var.uid1 <src.uid>
var.uid2 <cont.uid>
forchars 25
if (<memoryfindtype.memory_ipet>)
if (<memoryfindtype.memory_ipet.link>==<var.uid1>) || (<memoryfindtype.memory_ipet.link>==<var.uid2>)
try uid.<var.uid1>.syshata Sizin veya rakibinizin binekleri etrafta oldugu surece duello baslamayacaktir.
try uid.<var.uid2>.syshata Sizin veya rakibinizin binekleri etrafta oldugu surece duello baslamayacaktir.
return 1
endif
endif
endfor
var.uid1
var.uid2

timer -1
src.go <link.tag.koordinat4>
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>
cont.go <link.tag.koordinat5>
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>
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>


//-----------------------------------------------------------------------------------------
// Functions

[function hakemkoordinat]
try uid.<var.hakemuid>.tag.koordinat<args> <src.targp>
src.sysmessage @0481 Yeni koordinat ayarlandi : <src.targp>

[function cpvp_duello_loot]
serv.newitem i_bag
src.new.cont <src.findlayer.29>
local.bag <src.new>
var.lfor 
for <uid.<args>.rescount>
if (<uid.<args>.findcont.<eval <var.lfor>>.attr>&attr_newbie)
var.lfor <eval <var.lfor>> +1
else
try uid.<args>.findcont.<eval <var.lfor>>.cont <uid.<local.bag>>
endif
endfor


//-----------------------------------------------------------------------------------------
// Items

[itemdef i_duellocu]
id i_memory
type t_eq_script
name duellocu

on=@equip
target @0481 Kiminle duello yapacaksin?

on=@targon_cancel
remove

on=@timer
remove
return 1

on=@targon_char
if !(<src.targ.isplayer>)
src.syshata Sadece playerlarla duello yapabilirsiniz
return 1
elif (<src.targ.isevent.e_cpvp_duello>)
src.syshata <src.targ.name> zaten duello yapiyor.
return 1
elif (<src.isevent.e_cpvp_duello>)
src.syshata Zaten pvp yapiyorsunuz
return 1
elif (<src.uid>==<src.targ.uid>)
src.syshata Kendinizle duello yapamazsiniz
return 1
endif
trysrc <src.targ.uid> sdialog d_cpvp_duello_teklif
src.sysmessage @0481 Teklif yapildi. Bekleyiniz.
src.targ.tag.koor1 <src.targ.p>
src.tag.koor1 <src.p>
src.tag.u1 <src.targ.uid>
src.targ.tag.u1 <src.uid>
timer 45
return 1

[itemdef i_cpvp_duello_gerisayim]
id i_memory
type t_eq_script
name gerisayim

on=@timer
if (<morex>==0)
cont.say BASLA
cont.go <cont.tag.koordinat3>
try uid.<cont.tag.player1>.events e_cpvp_duello
try uid.<cont.tag.player2>.events e_cpvp_duello
try uid.<cont.tag.player1>.findlayer.1.bounce
try uid.<cont.tag.player1>.events -e_cpvp_area
try uid.<cont.tag.player2>.events -e_cpvp_area
try uid.<cont.tag.player2>.findlayer.1.bounce
remove
else
timer 1
morex -=1
cont.say <morex>
endif
return 1


//-----------------------------------------------------------------------------------------
// Events

[events e_cpvp_duello]
ON=@click
message @0481 [Duello]
return 0

on=@itemtargon_char
if (<findid.i_duellocu>)
obj <findid.i_duellocu.uid>
else
obj <uid.<tag.cpvp_duello_rakip>.findid.i_duellocu.uid>
endif
if !(<eval <obj.tag.maxbandage>>==0) && (<act.baseid>==i_bandage) 
if (<eval <src.tag.bandagekullandim>> > <eval <obj.tag.maxbandage>-1>)
src.syshata Daha fazla bandage kullanamazsiniz
return 1
else
src.tag.bandagekullandim <eval <src.tag.bandagekullandim>>+1
src.sysmessage @035 <eval <eval <obj.tag.maxbandage>> - <eval <src.tag.bandagekullandim>>> bandage kullanma hakkiniz kaldi
endif
endif

on=@itemdclick
if (<act.baseid>==i_runebook)
src.syshata Pvp'de runebook kullanamazsiniz
return 1
endif
if (<act.baseid>==i_deed_animal)
src.syshata Duelloda bunu yapamazsin
return 1
endif

if (<findid.i_duellocu>)
obj <findid.i_duellocu.uid>
else
obj <uid.<tag.cpvp_duello_rakip>.findid.i_duellocu.uid>
endif
if !(<eval <obj.tag.maxpotion>>==0) && (strmatch(*t_potion*,<act.type>))
if (<eval <src.tag.potionkullandim>> > <eval <obj.tag.maxpotion>-1>)
src.syshata Daha fazla potion kullanamazsiniz
return 1
else
src.tag.potionkullandim <eval <src.tag.potionkullandim>>+1
src.sysmessage @035 <eval <eval <obj.tag.maxpotion>> - <eval <src.tag.potionkullandim>>> potion kullanma hakkiniz kaldi
endif
endif

on=@itemequip
if (<findid.i_duellocu>)
obj <findid.i_duellocu.uid>
else
obj <uid.<tag.cpvp_duello_rakip>.findid.i_duellocu.uid>
endif
if (<eval <obj.tag.poison>>==0) && (strmatch(*t_weapon*,<act.type>)) && (<eval <act.morez>> >0)
src.syshata Poisonlu silah kullanamazsiniz
act.unequip
endif
if (<eval <obj.tag.magical>>==0) && (strmatch(*t_weapon*,<act.type>)) && (<act.attr>&attr_magic)
src.syshata Magical silah kullanamazsiniz
act.unequip
endif

on=@spellcast
if (<argn>==45) || (<argn>==32) || (<argn>==52)
src.syshata Pvpde bu buyuleri kullanamazsiniz
f_fizzle
skill fail
return 1
endif

ON=@Death
hits <str>
f_cpvp_duello_death
return 1

[function f_cpvp_duello_death]
if (<findid.i_duellocu>)
obj <findid.i_duellocu.uid>
else
obj <act.findid.i_duellocu.uid>
endif

obj.link.go <obj.link.tag.koordinat1>
obj.link.tag.pvpdeyim 
obj.link.tag.player1
obj.link.tag.player2
go <eval <tag.koor1>>
uid.<eval <tag.u1>>.go <eval <tag.koor1>>
obj.link.go <eval <obj.link.tag.koor1>>
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
syshata Duelloyu kaybettiniz...
var.kazanan <act.name>
act.sysmessage @0481 Tebrikler, Duello Sizin!
act.tag0.duelwin +=1
serv.allclients sysmessage @0481 [Duello] <name> ile <act.name> arasindaki duelloyu <var.kazanan> kazandi..
obj.remove

hits <str>

if (<eval <obj.tag.bahis>> >0)
trysrc <act> paraver <eval <obj.tag.bahis>*2>
act.sysmessage @0481 <eval <obj.tag.bahis>*2> Puan bankaniza aktarildi
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
return 1

[events e_cpvp_area]
on=@attack
return 1

on=@hit
return 1

on=@gethit
return 1

on=@spellcast
if !(<src.uid>==<act.uid>)
f_fizzle
return 1
endif

on=@skillgain
return 1

[eof]
on=@death Altına src.go xxx Yaz Dene Olmassa Baska Bisey Söliyim

Üye Ol veya Giriş Yap

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