Hesabına erişemeyen eski üyeler Discord üzerinden yardım alabilir.
Silindi
// -------------------------------------------------------------------------------------------------
// 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 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

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.name> 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.name> 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.name> 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 (<src.memoryfindtype.memory_town>) && (<cont.memoryfindtype.memory_town>)
  if (<src.memoryfindtype.memory_town.link>==<cont.memoryfindtype.memory_town.link>)
  src.sysmessage @021 Ayni factiondakiler birbirleriyle duello yapamazlar
  cont.sysmessage @021 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.sysmessage @021 Ayni guiddekiler birbirleriyle duello yapamazlar
  cont.sysmessage @021 Ayni guilddekiler birbirleriyle duello yapamazlar
  endif
endif

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.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

if (<src.findlayer.25>) || (<cont.findlayer.25>)
src.sysmessage @021 Binekle duello yapamazsiniz
cont.sysmessage @021 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>.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>
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.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_runebook)
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

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


Arkadaşlar Teklifi Atıyorum Ama Karşı Tarafa Teklif Gitmiyor Bi Yardım Ederseniz Sevinirim
targetlerde bir sorun var gibi gözüküyor targetlere bakmak gerek.
Targette Sorun Olması Lazım
bu scriptin alıntı olduğu belli adam kendi serverına göre yazmış.
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

Sorun Burda olabilir şuan bulunduğum bilgisayarda uo yok d_cpvp_duello_teklif de hata olabilir ona bak dialog açılıyormu açılmıyosa sorun orda

Bu konu xenox tarafından düzenlendi(2009-01-12 01:28, 15 yıl önce)

Üye Ol veya Giriş Yap

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