Yapılan alanları tanıtmayı unutmayın.
[AREADEF a_pvp_bekleme]
NAME=Bekleme Salonu(PvP)
EVENTS=r_default,r_default_rock,r_default_water,r_default_tree,r_default_grass
FLAGS=region_flag_nobuilding|region_flag_safe|region_antimagic_all
GROUP=pvp alani 1
P=1829,1817,-5
RECT=1860,1812,1811,1819
[AREADEF a_alan_pvp_1]
NAME=pvp alani 1
EVENTS=r_default,r_default_rock,r_default_water,r_default_tree,r_default_grass
GROUP=pvp alani 2
P=1813,1853,-5
RECT=1821,1845,1804,1860
TAG.PLAYER_1_P = 1820,1853,-5
TAG.PLAYER_2_P = 1806,1853,-5
[AREADEF a_alan_pvp_2]
NAME=pvp alani 2
EVENTS=r_default,r_default_rock,r_default_water,r_default_tree,r_default_grass
GROUP=pvp alani 3
P=1813,1833,-5
RECT=1804,1840,1821,1825
TAG.PLAYER_1_P = 1820,1833,-5
TAG.PLAYER_2_P = 1806,1833,-5
[AREADEF a_alan_pvp_3]
NAME=pvp alani 3
EVENTS=r_default,r_default_rock,r_default_water,r_default_tree,r_default_grass
GROUP=pvp alani 4
P=1835,1853,-5
RECT=1826,1860,1843,1845
TAG.PLAYER_1_P = 1842,1853,-5
TAG.PLAYER_2_P = 1828,1853,-5
[AREADEF a_alan_pvp_4]
NAME=pvp alani 4
EVENTS=r_default,r_default_rock,r_default_water,r_default_tree,r_default_grass
GROUP=pvp alani 5
P=1835,1833,-5
RECT=1826,1840,1843,1825
TAG.PLAYER_1_P = 1842,1833,-5
TAG.PLAYER_2_P = 1828,1833,-5
[AREADEF a_alan_pvp_5]
NAME=pvp alani 5
EVENTS=r_default,r_default_rock,r_default_water,r_default_tree,r_default_grass
GROUP=pvp alani
P=1857,1853,-5
RECT=1848,1860,1865,1845
TAG.PLAYER_1_P = 1864,1853,-5
TAG.PLAYER_2_P = 1850,1853,-5
[AREADEF a_alan_pvp_6]
NAME=pvp alani 6
EVENTS=r_default,r_default_rock,r_default_water,r_default_tree,r_default_grass
GROUP=pvp alani 6
P=1857,1833,-5
RECT=1848,1840,1865,1825
TAG.PLAYER_1_P = 1864,1833,-5
TAG.PLAYER_2_P = 1850,1833,-5
6 farklı alan ve her birinin ortasında i_oto_pvp_alan_kontrol // iteminin bulunması
[defname oto_pvp]
pvp_max_katilim 50
pvp_min_katilim 20
etkinlik_gate_timer 63
etkinlik_duyuru_tekrar_zamani 0,20,40,60
etkinlik_gate_koord britain,moonglow,delucia,pazar
etkinlik_cikis etkinlik cikisi // ortak etkinlik cikis alani.
[function f_baslat_pvp]
for 4
timerf <getargvx <dlocal._for>,<def.etkinlik_duyuru_tekrar_zamani>>,serv.b @34,,1 etkinlik: [pvp turnuvasi] başlamıştır. katılmak isteyenler şehir bankalarında bulunan etkinlik noktasındaki kapıdan geçiş yapabilirler.
serv.newitem = i_gate_pvp
new.p = <getargvx <dlocal._for>,<def.etknilik_gate_koord>>
new.timer = <eval <ddef.etkinlik_gate_timer>-<dlocal._for>>
endfor
[itemdef i_gate_pvp]
id = i_moongate_blue
on=@click
message @030,,1 Etkinlik: PVP
message @050,,1 Katılım Sayısı: <dserv.list.oto_pvp.count>/<ddef.pvp_max_katilim>
message @060,,1 Kalan Süre: <f_zamangoster <timer>>
return 1
on=@create
attr=attr_move_never|attr_decay
color = 0481
on=@step
dclick
return 1
on=@dclick
if <distance <src>> < 5
src.go 18<r1,5><r1,8>,181<r2,9>,-5 // oyuncuların bekleme salonunda üst üste düşmemeleri için, bi nevi los önlemi.
src.events +e_oto_pvp
serv.list.oto_pvp.add = <src>
src.f_no_horse // binek yok komutu size ait olanı ekleyin.
else
src.sysmessage @34,,1 Uzaksınız.
return 1
endif
if (<dserv.list.oto_pvp.count> == <ddef.pvp_max_katilim>)
serv.b @044,,1 Pvp turnuvası etkinliği maximum katılım sayısına ulaştığı için kapılar kapatılmıştır, tüm yarışmacılara başarılar.
f_pvp_basladi
f_pvp_gate_sil
endif
on=@timer
f_gate_pvp_sil
if (<dserv.list.oto_pvp.count> >= <ddef.pvp_min_katilim>)
serv.b @044,,1 Pvp turnuvası kapı süresi dolduğu için kapılar kapanmıştır, tüm yarışmacılara başarılar.
f_pvp_basladi
else
serv.b @044,,1 PvP turnuvası etkinliği yetersiz oyuncu durumundan dolayı iptal edilmiştir.
for 0 <eval <dserv.list.oto_pvp.count>-1>
ref1 = <serv.list.oto_pvp.<dlocal._for>>
ref1.events -e_oto_pvp
ref1.go = <def.etkinlik_cikis>
serv.list.oto_pvp.<dlocal._for>.remove
endfor
endif
return 1
[events e_oto_pvp]
on=@death
local._asd = <serv.list.oto_pvp.findelem <src>> // kaybedenin uidini listede arar.
ref1 = <serv.list.oto_pvp.<dlocal._asd>> // kaybedeni ref1'e bağlar.
ref1.resurrect = 1
ref1.go = <def.etkinlik_cikisi>
ref1.message @05e Elendiniz!
ref1.events -e_oto_pvp
serv.list.oto_pvp.<dlocal._asd>.remove
act.region.player_count = // alandaki player sayısı her seferinde 0 lanmalı.
act.go = bekleme salonu(pvp) // turu atlayan için hits,mana,stam yenilemesi ve poi, bleed etkilerinin kaldırılması
act.hits = <act.maxhits>
act.mana = <act.maxmana>
act.stam = <act.maxstam>
act.findid.i_bleeding.remove
act.findid.i_rune_poison.remove
if (<dserv.list.oto_pvp.count> == 1) // kazanan için işlemler
ref1 = <serv.list.oto_pvp.0>
ref1.say @,,1 Kazandın :)
serv.b @044,,1 PVP turnuvası etkinliğinin kazananı <ref1.name> olmuştur, kendisini tebrik ediyoruz.
ref1.go <def.etkinlik_cikisi>
ref1.events -e_oto_pvp
serv.newitem = i_gold_pvp,<ddef.oto_pvp_gold>,<ref1> // kazananın ödülü.
serv.list.oto_pvp.clear
else
act.timerf 2,f_oto_pvp_eslemesmeler // 1.nci yoksa 2 saniye sonra tekrar dan eşleşme
endif
[itemdef i_oto_pvp_alan_kontrol]
id = i_gold
on=@create
attr=attr_move_never|attr_invis|attr_decay
on=@destroy // silinemez
message @34,,1 silinemez!
return 1
[function f_oto_pvp_eslemesmeler]
if !(<f_oto_pvp_bekleme_salonu_sayisi> < 1)
forinstances i_oto_pvp_alan_kontrol
ref1 = <uid>
if (<ref1.region.dtag0.player_count> != 2)
for 0 <eval <dserv.list.oto_pvp.count>-1>
ref2 = <serv.list.oto_pvp.<dlocal._for>>
if (<ref2.dtag0.pvp> != 1)
local._asd ++
ref2.tag.pvp = 1
ref1.region.tag.player_count = 2
if (<dlocal._asd> == 1)
ref2.go = <ref1.region.tag0.player_1_p>
elif (<dlocal._asd> == 2)
ref2.go = <ref1.region.tag0.player_2_p>
return 1
endif
endif
endfor
endif
endfor
endif
[function f_oto_pvp_bekleme_salonu_sayisi]
for 0 <eval (<dserv.list.oto_pvp.count>-1>)
ref1 = <serv.list.oto_pvp.<dlocal._for>>
if (<ref1.dtag0.pvp> !=1)
local._asd ++
endif
endfor
return <dlocal._asd>
[function f_pvp_basladi]
for 6
f_oto_pvp_eslesmeler
endfor
[function f_pvp_gate_sil]
forinstances i_gate_pvp
remove
endfor
[function getargvx]
if <argv[0]> == 1
return <eval <argv>-1>
else
return <argv[<argv[0]>]>
endif
[EOF]
Not: Test Edilmedi! Çok büyük sorunlar çıkartacağını sanmıyorum gözden kaçan ufak tefek bir şeyler olabilir.
Yazarsanız düzeltilir. Olmadı ben test ettikçe kendim düzenlerim.
Total votes: 0
Ultima Online 3 hafta önce
Sphere Scripting 4 hafta önce
Sunucular 1 ay önce
Sunucular 2 ay önce
Sphere Scripting 2 ay önce
CS 1.6 3 ay önce
Sunucular 4 ay önce
Sunucular 4 ay önce
Sunucular 4 ay önce
Sunucular 4 ay önce
Sunucular 4 ay önce
Ultima Online 4 ay önce
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
2024-04-09 16:53
2024-04-06 18:20
2024-04-06 17:43
Yorumlar (0)