Arkadaşlar Pazar Vendorundan sahibi Dahil Çantasına Koyduu Bir İtemi Geri Alamiyor Ben Çözemedim Bir De Siz Bakarmısınız.
Can Not Pick Up Diyor.

//pazar vendor
//30 ocak 2008

[itemdef i_pazar_tabela]
name Vendor Kirala
id 0bcf
weight 5000
type t_eq_Script

On=@Create
color 0799

on=@click
message @1153 Vendor Kiralama Sistemi
return 1

on=@pickup_ground
return 1

on=@timer
return 1

on=@dclick
if (<more1> = 0)
if (0<src.tag.vendor>)
src.sysmessage @55 Zaten Pazar Vendorunuz Bulunmaktadir.
else 
dialog d_kira
endif
else
src.sysmessage @55 Bir Hata Olusmus Olabilir.Lutfen Yetkililere Haber Veriniz.
endif
return 1

[dialog d_vendor_hasilat]
300,300

resizepic 0 0 5120 200 75
resizepic 5 10 2620 190 35
textentry 15 16 600 20 1152 1 0
button 165 50 4005 4006 1 0 1

[dialog d_vendor_hasilat text]
<eval (<findlayer(29).more1> - 2500)>

[dialog d_vendor_hasilat button]
On=1
if (<eval <argtxt[1]>> <= 0)
src.sysmessage Bir miktar belirleyin..
elseif (<eval <argtxt[1]>> > <eval <findlayer(29).more1>>)
src.sysmessage Bu miktar kasada bulunmuyor.
elseif (<eval (<findlayer(29).more1> - <argtxt[1]>)> < 2500)
src.sysmessage Bu miktari alamazsiniz, en az 2500 altin kalmali.
elseif (<eval <argtxt[1]>> >= 65000)
vend_collect <eval <argtxt[1]>>
src.sysmessage <argtxt[1]> altin bankaniza aktarildi.
else
findlayer(29).more1 <eval (<findlayer(29).more1> - <argtxt[1]>)>
src.newitem i_gold
src.act.amount <eval <argtxt[1]>>
src.act.cont <src.findlayer(29).uid>
src.sysmessage <argtxt[1]> altin bankaniza aktarildi.
endif
src.fix

[dialog d_vendor_buy]
300,300

resizepic 0 0 5120 270 105
htmlgump 10 15 250 60 0 1 0
button 200 80 1153 1155 1 0 1
button 233 80 1150 1152 1 0 0

[dialog d_vendor_buy text]
<name>, fiyati: <eval <tag.price>> altin. Bunu satin almak istediginize emin misiniz?

[dialog d_vendor_buy button]
On=1
src.pay <eval <tag.price>>
if (<var.enough>) 
if !(<src.targ.topobj.uid> = <src.tag.pvendor_fix>)
src.sysmessage @55 Bu esya vendorun cantasinda degil yada satilmis.
return 1
else
topobj.findlayer(29).more1 (<topobj.findlayer(29).more1> + <eval <tag.price>>)
src.targ.cont <src.findlayer(21).uid>
src.targ.tag.price
src.targ.update
endif
if ((<src.targ.baseid> == i_spellbook) || (<src.targ.baseid> == i_runebook) || (<src.targ.baseid> == i_regs_lesser) || (<src.targ.baseid> == i_regs_normal) || (<src.targ.baseid> == i_regs_greater) || (<src.targ.baseid> == i_dye_fur) || (<src.targ.baseid> == i_alet_cantasi) || (<src.targ.dispid> == i_deed))
attr <attr>|attr_newbie
endif
endif

[dialog d_kira_uzat]
300,300

resizepic 0 0 3500 200 75
dhtmlgump 50 20 100 20 0 0 1 hafta uzat (50k)
dhtmlgump 50 40 100 20 0 0 iptal
button 20 20 56 55 1 0 1
button 20 40 56 55 1 0 2

[dialog d_kira_uzat text]

[dialog d_kira_uzat button]
on=1
src.pay 50000
if (<var.enough>)
timer <eval <timer> + 604800> //1 hafta uzat
cont.say Sizinle calisma sureme 7 gun eklendi. Tesekkur ederim.
endif

[dialog d_kira]
300,300

resizepic 0 0 3500 200 75
dhtmlgump 50 20 150 20 0 0 2 hafta kirala (100k)
dhtmlgump 50 40 100 20 0 0 iptal
button 20 20 56 55 1 0 1
button 20 40 56 55 1 0 2

[dialog d_kira text]

[dialog d_kira button]
on=1
src.pay 100000
if (<var.enough>) 
src.newnpc c_player_vendor
src.act.p <p>
src.act.tag.sahip <src.uid>
src.act.findlayer(29).more1 2500
src.act.memorydel <src.uid>
src.tag.vendor <src.act.uid>
src.act.newitem i_memory
src.act.act.attr 04
src.act.act.more1 04
src.act.act.more2 <serv.time>
src.act.act.morep <src.act.p>
src.act.act.color memory_ipet
src.act.act.timer -1
src.act.act.link <src.uid>
src.act.act.cont <src.act.uid>
src.act.flags <src.act.flags>&statf_pet
src.act.update
src.sysmessage Vendorunuz kuruldu, komutlar icin '<src.act.name> bilgi' yaziniz.
remove
endif

[chardef c_player_vendor]
defname c_player_vendor
name #names_humanmale the Player Vendor
id c_man
can mt_equip|mt_nonmover
hiredaywage 52
desires i_gold

tspeech player_vendor

On=@Create
events +e_player_vendor
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
item i_robe
color colors_all
item i_torch_lit
morey -1
itemnewbie i_backpack
itemnewbie i_bankbox
color 0384
timer 900
attr 014
itemnewbie i_player_vendor

On=@Spelleffect
return 1

On=@Gethit
return 1

On=@Death
hits <str>
return 1

[speech player_vendor]
on=*bilgi*
on=*help*
on=*yard*
if (<src.uid> == <tag.sahip>)
say Kullanabileceginiz komutlar; durum, fiyat, hasilat, kira.
endif
return 1

on=*durum*
if (<src.uid> == <tag.sahip>)
findid.i_player_vendor.morex (<findid.i_player_vendor.timer> / 60) //dakika
findid.i_player_vendor.morey (<findid.i_player_vendor.morex> / 60) //saat
findid.i_player_vendor.morez (<findid.i_player_vendor.morey> / 24) //gün

if (<findid.i_player_vendor.morez> < 1)
if (<findid.i_player_vendor.morey> < 1)
say Sizinle <findid.i_player_vendor.morex> dakika daha calisabilirim
else
say Sizinle <findid.i_player_vendor.morey> saat daha calisabilirim
endif
else
say Sizinle <findid.i_player_vendor.morez> gun daha calisabilirim
endif
endif
return 1

on=fiyat *
if (<src.uid> == <tag.sahip>)
if !(<findlayer(21).findcont(0)>)
src.sysmessage Vendorun cantasinda fiyatlandirilacak mal bulunmuyor.
else
try <args>
endif
endif
return 1

on=hasila*
if (<src.uid> == <tag.sahip>)
if (<eval <findlayer(29).more1>> < 1)
say Suan size verecek hic param yok
else
dialog d_vendor_hasilat
endif
endif
return 1

on=*kira*
if (<src.uid> == <tag.sahip>)
findid.i_player_vendor.morex (<findid.i_player_vendor.timer> / 60) //dakika
findid.i_player_vendor.morey (<findid.i_player_vendor.morex> / 60) //saat
findid.i_player_vendor.morez (<findid.i_player_vendor.morey> / 24) //gün
if (<findid.i_player_vendor.morez> > 2)
say Kira Sadece Calisma Suremin Bitmesine Son 2 Gun Kala Uzatilabilir. Sizinle daha <findid.i_player_vendor.morez> gun calisabilirim
else
findid.i_player_vendor.dialog d_kira_uzat
endif
endif
return 1

on=*buy*
if (<src.uid> == <tag.sahip>)
say Siz Benim Isverenim Oldugunuz Icin Ucretsiz Olarak Alabilirsiniz.
elseif !(<findlayer(21).findcont(0)>)
src.sysmessage @55 Su An Satilik Malim Yok.
else
findid.i_player_vendor.more1 2
findid.i_player_vendor.target
endif
return 1

on=*
say
return 1

[function fiyat]
if (<eval <argn>> > 5000000)
src.sysmessage @55 Yasalara Gore En Fazla 5m Degerinde Item Satabilirsiniz.
else
findid.i_player_vendor.more1 1
findid.i_player_vendor.more2 <eval <argn>>
findid.i_player_vendor.target
endif

[function vend_collect]
var.vendorcash <eval (<argn> - 65000)>
findlayer(29).more1 <eval (<findlayer(29).more1> - 65000)>
src.newitem i_gold
src.act.amount 65000
src.act.cont <src.findlayer(29).uid>
if (<eval <var.vendorcash>> >= 65000)
vend_collect <eval <var.vendorcash>>
elseif (<eval <var.vendorcash>> > 0)
findlayer(29).more1 <eval (<findlayer(29).more1> - <var.vendorcash>)>
src.newitem i_gold
src.act.amount <eval <var.vendorcash>>
src.act.cont <src.findlayer(29).uid>
var.vendorcash
else
var.vendorcash
endif

[itemdef i_player_vendor]
id i_memory
name player vendor kontrol
type t_eq_script

on=@create
timer 60*60*24*14

on=@timer
cont.newitem i_pazar_tabela
cont.act.p <cont.p>
cont.findlayer(21).color 033
cont.findlayer(21).attr 00
cont.findlayer(21).cont <uid.<cont.tag.sahip>.findlayer(29).uid>
try uid.<cont.tag.sahip>.tag.vendor
cont.remove
return 1

on=@targon_item
if (<more1> == 1) //fiyat belirmele
if !(<src.uid> == <cont.tag.sahip>)
src.sysmessage @55 Siz Bu Vendorun Isvereni Degilsiniz.
elseif !(<src.targ.topobj.uid> == <cont.uid>)
src.sysmessage @55 Bu Esya Vendorun Cantasinda Degil.
elseif (<eval <more2>> <= 0)
src.targ.tag.price 0
src.sysmessage @55 <src.targ.name>: 'satilik degil' olarak isaretlendi.
else
src.targ.tag.price <eval <more2>>
more2 0
src.sysmessage @55 <src.targ.name>: <eval <src.targ.tag.price>> altin.
endif
elseif (<more1> == 2) //buy
src.pay <eval <src.targ.tag.price>>
if (<var.enough>)
if !(<src.targ.topobj.uid> == <cont.uid>)
src.sysmessage @55 Bu Esya Vendorun Cantasinda Degil.
elseif (strmatch('<src.targ.tag.price>',''))
src.sysmessage @55 Bu Esya Satilik Degil
elseif (<src.targ.tag.price> <= 0)
src.sysmessage @55 Bu Esya Satilik Degil
else
src.targ.dialog d_vendor_buy
src.tag.pvendor_fix <cont.uid>
endif
endif
endif
return 1

[events e_player_vendor]
On=@Click
message * <memoryfindtype.memory_ipet.link.name> *
message <name>
return 1

On=@DClick
if !(<memoryfindtype.memory_ipet>)
memorydel <src.uid>
newitem i_memory
act.attr 04
act.more1 04
act.more2 <serv.time>
act.morep <link.p>
act.color memory_ipet
act.timer -1
act.link <tag.sahip>
act.cont <uid>
flags <flags>&statf_pet
endif

if (<src.uid> == <tag.sahip>)
src.tag.vendor <uid>
endif

if (<src.isgm>)
pack
elseif (<src.flags>&statf_dead)
src.sysmessage @55 Su anki durumuzda bu islemi gerceklestiremezsiniz.
elseif ((<canseelos>) && (<distance> < 4))
if (<src.uid> == <tag.sahip>)
say Satilacak esyalari buraya koyabilirsiniz.
pack
elseif !(<findlayer(21).findcont(0)>)
say Su an satilik mal yok.
else
pack
endif
else
src.sysmessage @55 Vendor'a ulasamiyorsunuz.
endif
src.events +e_vendor_player
return 1

On=@EnvironChange
if (<flags>&statf_war)
flags <flags>&~statf_war
update
endif
food 990

[events e_vendor_player]
on=@Spellcast
if (<act.id> == c_player_vendor) || (<act.topobj.id> == c_player_vendor))
skill fail
return 1
endif

On=@Attack
If (<src.id> == c_player_vendor)
return 1
endif

On=@SkillStart
if ((<action> == id(skill_herding)) || (<action> == skill_herding))
if (<targ.id> == c_player_vendor)
skill fail
return 1
endif
elseif ((<action> == id(skill_stealing)) || (<action> == skill_stealing))
if (<targ.topobj.id> == c_player_vendor)
src.sysmessage @55 Player vendorlardan herhangi birsey calamazsiniz.
skill fail
return 1
endif

On=@ItemDClick
if (<targ.topobj.id> == c_player_vendor)
if (<targ.type> == t_container)
targ.open
endif
return 1
endif

On=@ItemClick
if (<act.topobj.id> == c_player_vendor)
if (0<act.tag.price> < 1)
act.message @33 [satilik degil]
else
if ((<act.type> == t_armor) || (<act.type> == t_armor_leather) || (<act.type> == t_shield) || (<act.type> == t_clothing) || (<act.type> == t_weapon_sword) || (<act.type> == t_weapon_fence) || (<act.type> == t_weapon_mace_staff) || (<act.type> == t_weapon_mace_smith) || (<act.type> == t_weapon_mace_pick) || (<act.type> == t_weapon_bow) || (<act.type> == t_weapon_xbow))
if !(<eval ((<act.more1l> * 100) / <act.more1h>)> == 100)
act.message @55 [<eval <act.tag.price>> gp] [%<eval (100 - ((<act.more1l> * 100) / <act.more1h>))> Eski]
else
act.message @55 [<eval <act.tag.price>> gp] [Yeni]
endif
else
act.message @55 [<eval <act.tag.price>> gp]
endif
endif
endif

On=@ItemPickUp_Pack
if (<act.topobj.id> == c_player_vendor)
if !(<uid> == <act.topobj.tag.sahip>)
return 1
endif
endif

On=@ItemTargOn_Item
if ((<targ.topobj.id> == c_player_vendor) && (<act.cont.uid> != <targ.topobj.uid>))
return 1
endif

[function pay] 
if !(<args>) //empty command line? 
var.enough=1 
return 1 //then do nothing 
endif 
if (<src.isgm>) 
if (<src.account.plevel> < 7)
src.sysmessage @55 Yetkililer bu islemi gercekletiremez.
var.enough=0
return 1 
else
//src.sysmessage @55 Owner Bey Size Bedava Hizmet Veririm.
var.enough=1 
return 1
endif 
endif
var.enough=0 //if not enough gold, var.enough will be '0' 
var.totalgold=<findlayer.21.rescount i_gold> + <bankbalance> 
if (<eval <args>> > <var.totalgold>) //the amount to pay is more then you own?? 
src.sysmessage @55 Bankanizda <eval <args>> gp yok.//refuse transaction 
else //you have enough to pay 
var.enough=1 //allow you to check transaction later 
if (<argn> > <src.findlayer.21.rescount i_gold>) 
goldtopack <eval <argn>-<src.findlayer.21.rescount i_gold>> //put the needed money in the backpack 
endif 
payamount <args> //pay the needed amount 
endif 

[function goldtopack] //move enough gold so that we can pay 
//argn- amount of gold left to move 
var.found=(<argn> - <src.findlayer.29.findid.i_gold.amount>) //amount found 
if (<var.found> > 0) //pile is not big enough, so move it all 
src.findlayer.29.findid.i_gold.cont=<src.findlayer.21.uid> // transfer to backpack 
goldtopack <var.found> //get the next pile of gold 
else //not entire pile needed 
var.left=(0 - <var.found>) // get the amount of money left in this pile 
if (<var.left>) 
src.findlayer.29.findid.i_gold.amount <var.left> //set this amount 
else 
src.findlayer.29.findid.i_gold.remove 
endif 
src.newitem i_gold //create a new pile of gold 
src.act.amount <args> //the needed amount 
src.act.cont=<src.findlayer.21.uid> //place in backpack 
endif //done 

[function payamount] 
var.counter=<eval <args>> //amount left to pay 
if (<var.counter> > 65000) // more then 65000 left to pay?? 
src.consume 65000 i_gold //consume 65000 first 
var.counter=(<var.counter> - 65000) 
payamount <var.counter> //then get the rest 
else 
src.consume <args> i_gold //consume the rest of the needed amount 
endif // we are finished 

[function novendor]
tag.vendor 0

[EOF]
if (<more1> = 0)
if (0<src.tag.vendor>)
src.sysmessage @55 Zaten Pazar Vendorunuz Bulunmaktadir.
else
dialog d_kira
endif
else
src.sysmessage @55 Bir Hata Olusmus Olabilir.Lutfen Yetkililere Haber Veriniz.
endif
return 1

bu ne yaw 2 tane else koymuşsun

if (<src.isgm>)
pack
elseif (<src.flags>&statf_dead)
src.sysmessage @55 Su anki durumuzda bu islemi gerceklestiremezsiniz.
elseif ((<canseelos>) && (<distance> < 4))
if (<src.uid> == <tag.sahip>)
say Satilacak esyalari buraya koyabilirsiniz.
pack
elseif !(<findlayer(21).findcont(0)>)
say Su an satilik mal yok.
else
pack
endif
else
src.sysmessage @55 Vendor'a ulasamiyorsunuz.
endif
src.events +e_vendor_player
return 1

her yerde böyle var else'nin anlamı olmazsa(değilse)

if(src.account.plevel) > 1)
src.newitem i_katana
new.bounce
else
sysmessage Playerlar alamaz..
return 1
endif
Sorun o deil vendor script'i çalışıyor tamamen. sorun şu vendor kiralıyorsun diyelim içine studded set koyuyorsun satmak için geri almak istediğinde can not pick up diyor sahibine çantaya koyduğun hiç bir itemi alamıyorsun.
Vendorun sahibi itemi çekcek adam olmalı yani taglarla değil memoryle de sahibi yapıcaksın
adam açtığında memorysini alması lazım vendorun...

Üye Ol veya Giriş Yap

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