Hesabına erişemeyen eski üyeler Discord üzerinden yardım alabilir.
Ya Ben Hiç Urasmamıs Oldugum Bi Konuda Daha yeniyim İlk kez duello sistemiyle urasıyorum hani nevarki diycek belki bilenler ama ben bi arakdaşımdan istemiştim bugsuz varsa verirmisin hani urasmıym die aldım pack scpsi işte attm herzamangi gibi sorunlu cıktı xD Şimdi bu scpte 1. Savaşcının etrafına başlama sürensinde İnviz duvar gelmio 2. savaşcıda ise geliyo ama 2 tane geliyo yani bu seferde silinmiyo nedemek istedimi anladınız ben bunları kafes yapayım die düşündüm baska bi duello sistemine baktım ama o scpteki kafes yerini bendeki duelloya Ekliyemedim eğer yapabilirseniz yardımlarınızı bekliyorum yada bana nasıl yapıcagmı söylerseniz ...!


// Emulator uyumu : Sphere 55r - 56b - 57 - +

// -------------------------------------------------------------------------------------------------
// Pvp sirasinda shrinkten animal çikartma fixlendi.
// 25 kare yakinda katilimcilardan birisinin binegi varsa düello baslamiyor.
// Pvp sirasinda runebook açilmaz.
// Pvpde mark,recall,gate travel büyüleri kullanilamaz.
// Pvpden çikista, karma,fame,kill eski haline döner. Criminallik olmaz.
// -------------------------------------------------------------------------------------------------

// Order ordera - chaos chaos a dalmasi için fix.scp veya guild.scp de ayarlamalar yapmak gerekir.


//-----------------------------------------------------------------------------------------
// Npcs

[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 i_hair_long
color 044e
itemnewbie i_beard_vandyke
color 044e
itemnewbie i_blackrock_platemail
itemnewbie i_blackrock_platemail_leggings
itemnewbie i_blackrock_platemail_arms
itemnewbie i_blackrock_platemail_gorget
itemnewbie i_blackrock_platemail_gauntlets

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.findid.i_duellocu>)
src.findid.i_duellocu.remove
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 @021 yetisemiyorsunuz...
return 1
endif
sdialog d_cpvp_duello
endif
return 1



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

[dialog d_cpvp_duello_ayar]
0,0
resizepic 100 100 5120 300 200
resizepic 110 110 9350 280 180
dhtmlgump 170 120 300 20 0 0 <serv.servname> 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 5120 300 270
resizepic 110 110 9350 280 250
dhtmlgump 170 120 300 20 0 0 <serv.servname> Duello Sistemi

dhtmlgump 120 150 50 20 0 0 Bahis:
dtextentry 160 150 100 20 910 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 180 300 20 0 0 Silaha poison var
dhtmlgump 143 205 300 20 0 0 Loot var
dhtmlgump 143 230 300 20 0 0 Magical var

dcroppedtext 120 260 120 20 0 Max Bandage:            [0:sinirsiz]
dtextentry 250 260 70 20 910 2 0
dcroppedtext 120 280 120 20 0 Max Potion :            [0:sinirsiz]
dtextentry 250 280 70 20 910 3 0

button 220 310 4023 4025 1 0 1

[dialog d_cpvp_duello button]
onbutton 1
if !(<isnum <argtxt[1]>>) || !(<isnum <argtxt[2]>>) || !(<isnum <argtxt[3]>>)
src.sysmessage @021 Sadece sayi yazabilirsiniz.
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
resizepic 100 100 5120 300 280
resizepic 110 110 9350 280 260
dtext 170 120 0 <serv.servname> Duello Sistemi

dtext 120 150 0 <cont.name> 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.sysmessage @021 <src.name> teklifi kabul etmedi
remove

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

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

if (<src.restest <eval <tag.bahis>> i_gold>) && (<cont.restest <eval <tag.bahis>> i_gold>)
cont.consume <eval <tag.bahis>> i_gold
src.consume <eval <tag.bahis>> i_gold
else
src.sysmessage @021 <cont.name> veya sizde <eval <tag.bahis>> altin eksik
cont.sysmessage @021 <src.name> veya sizde <eval <tag.bahis>> altin eksik
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>.sysmessage @021 Sizin veya rakibinizin binekleri etrafta oldugu surece duello baslamayacaktir.
try uid.<var.uid2>.sysmessage @021 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>
cont.newitem 02ff
cont.new.attr attr_invis
cont.new.drop
cont.new.move 1
cont.newitem 02ff
cont.new.attr attr_invis
cont.new.drop
cont.new.move -1
cont.newitem 02ff
cont.new.attr attr_invis
cont.new.drop
cont.new.move 0,1
cont.newitem 02ff
cont.new.attr attr_invis
cont.new.drop
cont.new.move 0,-1
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.newitem 02ff
cont.new.attr attr_invis
cont.new.drop
cont.new.move 1
cont.newitem 02ff
cont.new.attr attr_invis
cont.new.drop
cont.new.move -1
cont.newitem 02ff
cont.new.attr attr_invis
cont.new.drop
cont.new.move 0,1
cont.newitem 02ff
cont.new.attr attr_invis
cont.new.drop
cont.new.move 0,-1
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.sysmessage @021 Sadece playerlarla duello yapabilirsiniz
return 1
elif (<src.targ.isevent.e_cpvp_duello>)
src.sysmessage @021 <src.targ.name> zaten duello yapiyor.
return 1
elif (<src.isevent.e_cpvp_duello>)
src.sysmessage @021 Zaten pvp yapiyorsunuz
return 1
elif (<src.uid>==<src.targ.uid>)
src.sysmessage @021 Kendinizle duello yapamazsiniz
return 1
endif
trysrc <src.targ.uid> sdialog d_cpvp_duello_teklif
src.sysmessage @0481 Teklif yapildi. Bekleyiniz.
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=@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.sysmessage @021 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_rune_book)
src.sysmessage @021 Pvp'de runebook kullanamazsiniz
return 1
endif
if (<act.baseid>==i_deed_animal)
src.sysmessage @021 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.sysmessage @021 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.sysmessage @021 Poisonlu silah kullanamazsiniz
act.unequip
endif
if (<eval <obj.tag.magical>>==0) && (strmatch(*t_weapon*,<act.type>)) && (<act.attr>&attr_magic)
src.sysmessage @021 Magical silah kullanamazsiniz
act.unequip
endif

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

on=@death
src.f_cpvp_duello_death

[function f_cpvp_duello_death]
act <tag.cpvp_duello_rakip>
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 <obj.link.tag.koordinat1>
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

sysmessage @021 Duelloyu kaybettiniz...
act.sysmessage @0481 Tebrikler ! Duelloyu kazandiniz !

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> altin 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]

Bu Duello Sistemim
BUda Kafes Olan Komut

[Function PvPbasla]
Var.old_act <act>

newitem i_kafes_timer
act.equip
Kafesle_duel

Newitem i_kafes_timer
act.cont <uid.<var.teklifeden_uid>.serial>
act.timer 1
Try uid.<var.teklifeden_uid>.kafesle_duel

act <var.old_act>

events +e_pvp
try uid.<var.teklifeden_uid>.events +e_pvp



[Function Kafesle_duel]
NEWITEM=0822
ACT.TYPE=t_normal 
ACT.COLOR=0b4d
ACT.P=<P> 
ACT.MOVE 1,1 
ACT.ATTR=00002 
ACT.TIMER=10

NEWITEM=0821
ACT.TYPE=t_normal 
ACT.COLOR=0b4d
ACT.P=<P> 
ACT.MOVE 1,0
ACT.ATTR=00002 
ACT.TIMER=10

NEWITEM=0821
ACT.TYPE=t_normal 
ACT.COLOR=0b4d
ACT.P=<P> 
ACT.MOVE -1,0
ACT.ATTR=00002 
ACT.TIMER=10

NEWITEM=0821
ACT.TYPE=t_normal 
ACT.COLOR=0b4d
ACT.P=<P> 
ACT.MOVE -1,1
ACT.ATTR=00002 
ACT.TIMER=10


NEWITEM=0823
ACT.TYPE=t_normal 
ACT.COLOR=0b4d
ACT.P=<P> 
ACT.MOVE 0,1
ACT.ATTR=00002 
ACT.TIMER=10

NEWITEM=0823
ACT.TYPE=t_normal 
ACT.COLOR=0b4d
ACT.P=<P> 
ACT.MOVE 0,1
ACT.ATTR=00002 
ACT.TIMER=10

NEWITEM=0823
ACT.TYPE=t_normal 
ACT.COLOR=0b4d
ACT.P=<P> 
ACT.MOVE 0,-1
ACT.ATTR=00002 
ACT.TIMER=10

NEWITEM=0823
ACT.TYPE=t_normal 
ACT.COLOR=0b4d
ACT.P=<P> 
ACT.MOVE 1,-1
ACT.ATTR=00002 
ACT.TIMER=10





[Itemdef i_Kafes_timer]
Name Osman
Id i_handr_1
type t_eq_script

ON=@Create
ATTR attr_decay
MORE1=9
COLOR=0480

ON=@Equip
TIMER=1

ON=@Timer
if ( <cont> )
if ( <more1> )
cont.sysmessage <VALSTR(<more1>)>
more1=<more1>-1
TIMER=1
return 1
endif
endif
cont.sayua 920,6,6,0 * Basla *
Remove
RETURN 1
Şimdiden saolun arkadaşlar
Scriptti Bir Aldim Kendime.Yapmaya Calisacagim...

Galiba Stone Diye Yaptiklarin İnvis + Yanlis Yerlere Ayarlamissin Ayarlamaya Calisacam Onu.

Bu konu axuare tarafından düzenlendi(2008-08-29 11:47, 15 yıl önce)
ya ben hiç yapmadım bi arkadaştan rica etttim attı işte sorunu fark ettim baktım baktım hatanın nerde oldugnu buldumda nasıl düzeltcemi bilemedim xD
Scpti Düzeltcek Olan Varsa Yardım etsin Pliz xD

Üye Ol veya Giriş Yap

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