// * yazan: Chernobel --- uoscripts.net
// * son güncelleme: 15:32 25.01.2007
// Emulator uyumu : Sphere 55r - 56b - 57 - +
//Genelde her serverda bulunan düello sistemi.Lootlu lootsuz,magical,poison,max potion bandage seçenekleri vardır.
//Uzun bir araştırma sonucunda scripti buldum ve sizlerle paylaşıyorum
//bycomrade
// -------------------------------------------------------------------------------------------------
// Binekle girilmez.
// Pvp sirasinda shrinkten animal çikartma fixlendi.
// 25 kare yakinda binegi varsa pvpye giremiyor.
// Pvp sirasini bekleyen kisi oyundan çikarsa diskalifiye olmaz. Pvpsi baslayana kadar girerse sorun yok. Girmezse atilir.
// Pvp yaparken oyundan çikan kisi yenilmis kabul edilir.
// Pvpden çikista, karma,fame,kill,crim eski haline döner.
// Pvp sirasinda poisonlu silah kullanilmaz. (çantada durur ama ele alinmaz)
// Pvp sirasinda runebook açilmaz.
// Pvpde mark,recall,gate travel büyüleri kullanilamaz.
// Playerlar bekleme yerinde 10 farkli koordinatta dizilir. Yani hepsi üst üste olmaz..
// Seyirci olayi yapildi.
// Pvp'ye nerde girildiyse çikista oraya atiyor.
// Loot süresi eklendi.
// .profilim eklendi.
// -------------------------------------------------------------------------------------------------
// Order ordera - chaos chaos a dalmasi için fix.scp veya guild.scp de ayarlamalar yapmak gerekir.
// ...::: AYARLAR :::... \\
[defname cpvp_ayarlar]
cpvp_p1 5571,1117 // Pvp npcsinin duracagi koordinat.
cpvp_p2_1 5565,1109,5 // Playerlarin bekleyecekleri yer.
cpvp_p2_2 5566,1109,5 // Playerlarin bekleyecekleri yer.
cpvp_p2_3 5567,1109,5 // Playerlarin bekleyecekleri yer.
cpvp_p2_4 5568,1109,5 // Playerlarin bekleyecekleri yer.
cpvp_p2_5 5569,1109,5 // Playerlarin bekleyecekleri yer.
cpvp_p2_6 5570,1109,5 // Playerlarin bekleyecekleri yer.
cpvp_p2_7 5571,1109,5 // Playerlarin bekleyecekleri yer.
cpvp_p2_8 5572,1109,5 // Playerlarin bekleyecekleri yer.
cpvp_p2_9 5573,1109,5 // Playerlarin bekleyecekleri yer.
cpvp_p2_10 5574,1109,5 // Playerlarin bekleyecekleri yer.
cpvp_p3 5566,1117 // Pvp yapicak 1. playerin duracagi yer.
cpvp_p4 5576,1117 // Pvp yapicak 2. playerin duracagi yer.
cpvp_p5 5570,1125,5 // Seyircilerin duracagi yer.
cpvp_pgate1 5944,1977,5 // Pvp'ye girmek için gatein açilacagi yer.
cpvp_gateseyirci 5929,1977,5 // Seyircilerin geçecegi gate'in koordinati.
cpvp_pbitis 5937,1977 // Pvp Bittiginde seyircinin gidecegi yer.
cpvp_periyot 12 // Kaç saatte bir pvp düzenlenecegi.
cpvp_gatesuresi 10 // Pvpye katilmak için gatelerin açik kalacagi süre. (dakika)
cpvp_pvpbasliyor 20 // 2 kisi alana atildiginda geri sayim saniyesi.
cpvp_lootsuresi 25 // Loot için beklenecek süre.(saniye)
cpvp_girisparasi 10000 // Katilmak için gereken altin.
cpvp_seyirciparasi 3000 // Seyircilerin verecegi para.
//-----------------------------------------------------------------------------------------
//Npcs
[chardef c_cpvpci]
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_halberd_vanq
on=@gethit
return 1
on=@spelleffect
return 1
on=@death
hits 100
return 1
on=@attack
return 1
on=@hit
return 1
on=@dclick
return 1
on=@click
if !(strmatch(<eval <p>>,<eval <def.cpvp_p1>>)
go <def.cpvp_p1>
endif
if !(<findid.i_cpvpci>)
serv.newitem i_cpvpci
new.cont <uid>
endif
if (<findid.i_cpvpci.timer>==-1)
findid.i_cpvpci.timer <eval <def.cpvp_periyot>*3600>
endif
messageua 0481,6,6,enu [Pvp Organizator]
messageua 0481,6,6,enu <name>
return 1
// Items
[itemdef i_cpvpci]
id i_memory
type t_eq_script
name pvpci
on=@create
attr 04
on=@timer
cont.tag.player
cont.tag.gold
timer <eval <def.cpvp_periyot>*36000>
cpvp_gate <cont.uid>
serv.newitem i_cpvpyapici
new.timer 60*<eval <def.cpvp_gatesuresi>>
new.link <cont.uid>
new.cont <cont.uid>
serv.allclients sysmessage @47,,1 Auto Pvp Turnuvasi icin pazara gate acilmisitir. Katilmak isteyenler <eval <def.cpvp_gatesuresi>> dakika icinde gateden gecebilirler.
serv.allclients sysmessage @54,,1 Izleyici olarak katilmak isteyenlerde Pazar'daki gateden alana gidebilirler.
return 1
[itemdef i_cpvpgate]
id i_moongate_blue
type t_script
name Pvp Gate
on=@create
attr 010
on=@click
if (<timer> <60)
messageua 035,6,6,enu [Toplam : <eval <link.tag.player>> oyuncu]
messageua 035,6,6,enu [<timer> saniye]
else
messageua 035,6,6,enu [Toplam : <eval <link.tag.player>> oyuncu]
messageua 035,6,6,enu [<eval <timer>/60> dakika]
endif
messageua 035,6,6,enu Pvp Gate
return 1
on=@dclick
sdialog d_cpvp_katil
return 1
on=@step
sdialog d_cpvp_katil
return 1
on=@timer
remove
return 1
[itemdef i_cpvpgateseyirci]
id i_moongate_blue
type t_script
name Pvp Gate
on=@create
attr 010
on=@click
messageua 035,6,6,enu [<eval <def.cpvp_seyirciparasi>> gp]
messageua 035,6,6,enu Pvp Seyirci Gate
return 1
on=@dclick
sdialog d_cpvp_katil 2
return 1
on=@step
sdialog d_cpvp_katil 2
return 1
on=@timer
if (<morex> < <eval <def.cpvp_gatesuresi>-1>)
morex <morex> +1
timer 60
serv.allclients sysmessage @47,,1 Pazardaki gatelerin kalkip, Turnuvanin baslamasina <eval <def.cpvp_gatesuresi>-<eval <morex>>> dakika kaldi
else
remove
endif
return 1
[itemdef i_cpvpyapici]
id i_memory
type t_eq_script
name pvp yapici
on=@timer
if (<morex>==0)
cont.cpvpplayer
endif
remove
return 1
[itemdef i_cpvpbasliyor]
id i_memory
type t_eq_script
name pvp baslatici
on=@timer
morex -=1
timer 1
if (<morex> >1)
link.say ~~
link.say ~~
link.say ~~
link.say <eval <morex>-1>
endif
if (<morex>==1)
link.say ~~
link.say ~~
link.say ~~
link.say BASLA!
endif
if (<morex> <1)
link.invis 1
remove
endif
return 1
[itemdef i_cpvp_oldumgonder]
id i_memory
type t_eq_script
name oldum gonder
on=@timer
cont.go <cont.tag.cpvp_katildim>
remove
return 1
[itemdef i_cpvp_lootbekle]
id i_memory
type t_eq_script
name loot bekle
on=@timer
dorand 10
cont.go <def.cpvp_p2_1>
cont.go <def.cpvp_p2_2>
cont.go <def.cpvp_p2_3>
cont.go <def.cpvp_p2_4>
cont.go <def.cpvp_p2_5>
cont.go <def.cpvp_p2_6>
cont.go <def.cpvp_p2_7>
cont.go <def.cpvp_p2_8>
cont.go <def.cpvp_p2_9>
cont.go <def.cpvp_p2_10>
enddo
cont.stone 1
link.cpvpplayer
remove
return 1
//Functions
[function cpvp_gate] // Gate açici
for 1 1
serv.newitem i_cpvpgate
new.timer 60*<eval <def.cpvp_gatesuresi>>
new.link <args>
new.p <def.cpvp_pgate<eval <local._for>>>
endfor
serv.newitem i_cpvpgateseyirci
new.timer 60
new.link <args>
new.p <def.cpvp_gateseyirci>
[function cpvpplayer]
invis 0
foritems 50
if (<type>==t_corpse
remove
endif
endfor
if (<eval <tag.player>>==1)
obj <tag.player1>
obj.events -e_cpvp
obj.tag.pvpci
obj.cekverpvp <eval <tag.gold>>
obj.sysmessage @55,,1 Tebrikler. Turnuvada 1. oldunuz.
serv.allclients sysmessage @0481 Pvp turnuvasini <obj.name> kazandi
obj.tag.cpvp_win <eval <obj.tag.cpvp_win>> +1
obj.go pazar
obj.fame <eval <obj.tag.fame>>
obj.karma <eval <obj.tag.karma>>
obj.kills <eval <obj.tag.kills>>
if (<obj.memoryfindtype.memory_sawcrime>)
obj.memoryfindtype.memory_sawcrime.remove
endif
obj.stone 0
for 1 <eval <tag.seyirci>>
try uid.<tag.seyirci<eval <local._for>>>.stone 0
try uid.<tag.seyirci<eval <local._for>>>.go <def.cpvp_pbitis>
endfor
return 1
elif (<eval <tag.player>> > 1)
if !(<uid.<tag.player1>.isonline>)
playerat 1
cpvpplayer
return 1
endif
if !(<uid.<tag.player2>.isonline>)
playerat 2
cpvpplayer
return 1
endif
try uid.<tag.player1>.go <def.cpvp_p3>
try uid.<tag.player1>.tag.cpvprakip <uid.<tag.player2>.uid>
try uid.<tag.player1>.stone 0
try uid.<tag.player1>.findlayer.1.cont <uid.<tag.player1>.findlayer.21>
try uid.<tag.player1>.findlayer.2.cont <uid.<tag.player1>.findlayer.21>
if (<uid.<tag.player1>.findid.i_cpvpbasliyor>)
try uid.<tag.player1>.findid.i_cpvpbasliyor.remove
endif
serv.newitem i_cpvpbasliyor
new.morex <eval <def.cpvp_pvpbasliyor>>
new.timer 1
new.link <uid>
new.cont <uid.<tag.player1>.uid>
try uid.<tag.player2>.go <def.cpvp_p4>
try uid.<tag.player2>.tag.cpvprakip <uid.<tag.player1>.uid>
try uid.<tag.player2>.stone 0
try uid.<tag.player2>.findlayer.1.cont <uid.<tag.player2>.findlayer.21>
try uid.<tag.player2>.findlayer.2.cont <uid.<tag.player2>.findlayer.21>
if (<uid.<tag.player2>.findid.i_cpvpbasliyor>)
try uid.<tag.player2>.findid.i_cpvpbasliyor.remove
endif
serv.newitem i_cpvpbasliyor
new.morex <eval <def.cpvp_pvpbasliyor>>
new.timer 1
new.link <uid>
new.cont <uid.<tag.player2>.uid>
2playerat
tag.player <eval <tag.player>> -2
endif
[function playerat]
obj <tag.player<argn1>>
obj.events -e_cpvp
obj.tag.pvpci
obj.stone 0
obj.go <obj.tag.cpvp_katildim>
for <argn1> <eval <tag.player>>
try tag.player<eval <local._for>> <tag.player<eval <local._for>+1>>
endfor
tag.player <eval <tag.player>> -1
[function 2playerat]
for 1 <eval <tag.player>>
try tag.player<eval <local._for>> <tag.player<eval <local._for>+2>>
endfor
[plevel 1]
profilim
[function profilim]
src.sysmessageua 0481,6,6,enu <eval <src.tag.cpvp_win>> turnuva kazandiniz. <eval <src.tag.cpvp_kills>> kez oldurdunuz. <eval <src.tag.cpvp_deaths>> kez oldunuz.
//Events
[events e_cpvp]
on=@attack
if (<findid.i_cpvpbasliyor>)
sysmessage @55,,1 Pvp henuz baslamadi
return 1
endif
on=@hit
if (<findid.i_cpvpbasliyor>)
sysmessage @55,,1 Pvp henuz baslamadi
return 1
endif
on=@spellcast
if (<src.findid.i_cpvpbasliyor>) && !(<src.uid>==<act.uid>)
src.sysmessage @55,,1 Pvp henuz baslamadi
return 1
endif
if (<argn>==45) || (<argn>==32) || (<argn>==52)
src.sysmessage @55,,1 Pvpde bu buyuleri kullanamazsiniz
f_fizzle
skill fail
return 1
endif
on=@itemdclick
if (<act.baseid>==i_deed_animal)
src.sysmessage @55,,1 Duelloda bunu yapamazsin
return 1
endif
if (<act.baseid>==i_runebook)
src.sysmessage @55,,1 Pvp'de runebook kullanamazsiniz
return 1
endif
[function f_cpvp_death]
act <tag.cpvprakip>
obj <tag.pvpci>
act.tag.cpvp_kills <eval <act.tag.cpvp_kills>> +1
tag.cpvp_deaths <eval <act.tag.cpvp_deaths>> +1
serv.newitem i_cpvp_oldumgonder
new.timer 1
new.cont <uid>
serv.newitem i_cpvp_lootbekle
new.timer <eval <def.cpvp_lootsuresi>>
new.link <obj>
new.cont <act.uid>
act.tag.cpvprakip
act.sysmessage @55,,1 Tebrikler Kazandiniz
obj.tag.player <eval <obj.tag.player>> +1
act.tag.pvpsirasi <eval <obj.tag.player>>
try uid.<obj.uid>.tag.player<eval <obj.tag.player>> <tag.cpvprakip>
tag.pvpsirasi
tag.pvpci
tag.cpvprakip
events -e_cpvp
[function f_cpvp_logout]
if !(<src.flags>&statf_stone)
act <tag.cpvprakip>
obj <tag.pvpci>
act.tag.cpvprakip
dorand 10
act.go <def.cpvp_p2_1>
act.go <def.cpvp_p2_2>
act.go <def.cpvp_p2_3>
act.go <def.cpvp_p2_4>
act.go <def.cpvp_p2_5>
act.go <def.cpvp_p2_6>
act.go <def.cpvp_p2_7>
act.go <def.cpvp_p2_8>
act.go <def.cpvp_p2_9>
act.go <def.cpvp_p2_10>
enddo
act.stone 1
act.sysmessage @0481 Rakibiniz ciktigi icin hukmen kazandiniz
obj.tag.player <eval <obj.tag.player>> +1
act.tag.pvpsirasi <eval <obj.tag.player>>
try uid.<obj.uid>.tag.player<eval <obj.tag.player>> <tag.cpvprakip>
tag.pvpsirasi
tag.pvpci
tag.cpvprakip
go <tag.cpvp_katildim>
events -e_cpvp
obj.cpvpplayer
hits <str>
return 1
endif
// Dialogs
[dialog d_cpvp_katil]
0,0
page 1
resizepic 200 100 5120 250 200
resizepic 210 110 9350 230 180
dhtmlgump 253 250 200 20 0 0 Turnuvaya katilmak istiyorum
button 220 250 4023 4025 1 0 1
dhtmlgump 220 120 230 120 0 0 KURALLAR<def.br>Loot Serbesttir.<def.br>Poisonlu silah serbesttir.<def.br>Pvp sirasinda logout olan diskalifiye olur.<def.br>Pvp alaninda banka acamazsiniz.
page 2
dhtmlgump 253 250 200 20 0 0 Seyirci olarak katilmak istiyorum
button 220 230 4023 4025 1 0 2
[dialog d_cpvp_katil button]
onbutton 1
if (<src.flags>&statf_dead)
return 1
endif
if (<src.findlayer.25>)
src.sysmessage @55,,1 Binekle giremezsiniz
return 1
endif
forchars 25
if (<memoryfindtype.memory_ipet>)
if (<memoryfindtype.memory_ipet.link>==<src.uid>)
src.sysmessage @55,,1 Etrafta binegin varken pvpye giremezsin
return 1
endif
endif
endfor
if (<src.restest <eval <def.cpvp_girisparasi>> i_gold>)
src.tag.cpvp_katildim <src.p>
src.food 15
dorand 10
src.go <def.cpvp_p2_1>
src.go <def.cpvp_p2_2>
src.go <def.cpvp_p2_3>
src.go <def.cpvp_p2_4>
src.go <def.cpvp_p2_5>
src.go <def.cpvp_p2_6>
src.go <def.cpvp_p2_7>
src.go <def.cpvp_p2_8>
src.go <def.cpvp_p2_9>
src.go <def.cpvp_p2_10>
enddo
src.consume <eval <def.cpvp_girisparasi>> i_gold
src.stone 1
src.tag.karma <src.karma>
src.tag.fame <src.fame>
src.tag.kills <src.kills>
src.events +e_cpvp
src.tag.pvpci <link>
link.tag.player <eval <link.tag.player>> +1
src.tag.pvpsirasi <eval <link.tag.player>>
link.tag.gold <eval <link.tag.gold>> + <eval <def.cpvp_girisparasi>>
try link.tag.player<eval <link.tag.player>> <src.uid>
else
src.sysmessage @55,,1 Yaninizda <eval <def.cpvp_girisparasi>> altin yok
endif
onbutton 2
if (<src.flags>&statf_dead)
return 1
endif
if (<src.restest <eval <def.cpvp_seyirciparasi>> i_gold>)
src.go <def.cpvp_p5>
src.consume <eval <def.cpvp_seyirciparasi>> i_gold
src.stone 1
link.tag.seyirci <eval <link.tag.seyirci>> +1
try link.tag.seyirci<eval <link.tag.seyirci>> <src.uid>
link.tag.gold <eval <link.tag.gold>> + <eval <def.cpvp_seyirciparasi>>
else
src.sysmessage @55,,1 Yaninizda <eval <def.cpvp_seyirciparasi>> altin yok
endif
[eof]
Total votes: 0
Ultima Online 10 saat önce
Ultima Online 2 gün önce
Duyurular 1 hafta önce
Sunucular 1 hafta önce
Ultima Online 2 hafta önce
Ultima Online 2 hafta önce
Ultima Online 3 hafta önce
Ultima Online 3 hafta önce
Sunucular 3 hafta önce
Sunucular 3 hafta önce
Sunucular 1 ay önce
Ultima Online 1 ay önce
2024-10-31 22:47
2024-10-14 17:45
2024-09-26 14:21
2024-07-08 22:50
2024-07-08 22:34
2024-06-19 22:05
2024-06-01 02:19
2024-05-31 21:17
Yorumlar (0)