Jump to content
Forumu Destekleyenlere Katılın ×
Paticik Forumları
2000 lerden beri faal olan, çok şukela bir paylaşım platformuyuz. Hoşgeldiniz.

Vendor Script Sorunsalı 56b


micha

Öne çıkan mesajlar

//Minax Vendor System//


Vendor Script

[function vendorfix]
if ()
if !(strmatch('.id>','c_pv'))
region.tag.vendor1
endif
if !(strmatch('.id>','c_pv'))
region.tag.vendor2
endif
if !(strmatch('.id>','c_pv'))
region.tag.vendor3
endif
if (0 = 3)
if !(0) || !(0) || !(0)
region.tag.vendors 2
endif
endif
endif

[function vendorfix]
if ()
if !(strmatch('.id>','c_pv'))
region.tag.vendor1
endif
if !(strmatch('.id>','c_pv'))
region.tag.vendor2
endif
if !(strmatch('.id>','c_pv'))
region.tag.vendor3
endif
if (0 = 3)
if !(0) || !(0) || !(0)
region.tag.vendors 2
endif
endif
endif

[function nevarburada]
message sada >

[ITEMDEF i_deed_pv]
name house vendor deed
id i_deed
type t_script
value 100000

On=@Create
color color_o_mytheril
attr 04

On=@DClick
var.smsgx 0481
if ()
src.message @1153 Evde vendor calistirabilmeniz icin evin sahibi veya ortagi olmalisiniz.
elseif !( == )
src.message @1153 Bunu kullanabilmeniz icin cantanizda olmalidir.
elseif (0) // && (0) && (0)
src.message @1153 Bu yapiya daha fazla vendor yerlestiremezsiniz.
elseif (strmatch('.id>','c_pv'))
try var.vhomeowner .region.tag.name>
try var.vhomeowner .name>
if !(strmatch('',''))
src.message @1153 isimli sahsin evinde zaten size ait bir vendor bulunuyor.
else
src.message @1153 Evinizde zaten size ait bir vendor bulunuyor.
endif
elseif ( == +r_house_system)
src.message @1153 Evde degilsiniz yada cantanizde 2500gp yok.
else
src.consume 2500 i_gold
src.newnpc c_pv
src.act.p
src.act.tag.p
src.act.tag.px
src.act.tag.py
src.act.tag.pz
src.act.findid.i_pv.link
src.act.tag.owner
src.act.findlayer(29).more1 2500
src.act.memorydel
src.act.newitem i_memory
src.act.act.attr 04
src.act.act.more1 04
src.act.act.more2
src.act.act.morep
src.act.act.color memory_ipet
src.act.act.timer -1
src.act.act.link
src.act.act.cont
src.act.flags &statf_pet
src.act.update
src.message @1153 Vendor kuruldu.
src.message @1153 Komutlar icin ' yardim' yazabilirsiniz.
src.tag.vendor
src.region.tag.vendors + 1)>
if !(01)
src.region.tag.vendor 1
elseif !(0)
src.region.tag.vendor 2
else
src.region.tag.vendor 3
endif
remove
endif
else
message @0 Vendor kurabilmek icin evde olmalisiniz.
endif
return 1

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

tspeech pv_spch
tevents e_pv

On=@GetHit
action -1
return 1

ON=@attack
action -1
return 1

On=@Create
str 9500
dex 25
int 25
hits 32000
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_pv
itemnewbie i_pv_rem

// *******
// ITEMLAR
// *******

[itemdef i_pv_rem]
id i_memory
name vendor silici
type t_eq_script

On=@UnEquip
cont.memoryfindtype.memory_ipet.link.tag.vendor
if !( == 3)
cont.findid.i_pv.link.region.tag.vendors - 1)>
if ( == )
cont.findid.i_pv.link.region.tag.vendor1 0
elseif ( == )
cont.findid.i_pv.link.region.tag.vendor2 0
elseif ( == )
cont.findid.i_pv.link.region.tag.vendor3 0
endif
endif
cont.remove

On=@Timer
attr attr_decay
remove
return 1
[itemdef i_pv]
id i_memory
name vendor ana kontroller
type t_eq_script

On=@TargOn_Char
if ( == )
cont.findlayer(21).open
target
endif
return 1

On=@TargOn_Item
if ( == 1) // dinamik fiyatlandirma
if !( == )
elseif !( == )
elseif (strmatch('',''))
cont.say Bu esyayi satamam.
elseif (> <= 0)
src.targ.price 0
cont.say satilmayacaklar arasina alindi.
else
src.targ.price >
more2 0
cont.say , degeri gp olarak belirlendi.
endif
elseif ( == 2) // satis
var.smsgx 0481
if !( == )
elseif (strmatch('',''))
cont.say Bu esya satilik degil.
elseif ( <= 0)
cont.say Bu esya satilik degil.
elseif ( < )
cont.say Uzgunum, bankanda bunu karsilayacak kadar para bulunmuyor.
src.smsgx bankanizin en ust kisminda bulunamadi.
else
src.targ.dialog d_pv_buy
endif
elseif ( == 3) // para aktarma
if !( == )
// cont.say , siz benim isverenim degilsiniz.
elseif !( == )
// cont.say Gosterdiginiz nesne sizin uzerinizde degil.
elseif !( == i_gold)
cont.say Altin harici bir nesne kabul etmem.
else
cont.findlayer(29).more1 + )>
if ( / )> > 0)
cont.say altin calisma suremi / )> gun uzatti, tesekkur ederim.
else
cont.say altin kasama eklendi, tesekkur ederim.
endif
src.targ.remove
endif
endif
return 1

On=@Timer
return 1

// *********
// DIALOGLAR
// *********

[dialog d_pv_cash]
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_pv_cash text]
- 2500)>

[dialog d_pv_cash button]
On=1
if (>> <= 0)
// say Hmm.. Sanirim tam anlayamadim?
elseif (>> > >)
say Bu kadar param yok.
elseif ( - >)> < 2500)
say Bu kadarini veremem, kasamda en az 2500 gp kalmali.
elseif (>> >= 65000)
vend_collect >>
say > gp bankaniza aktarildi.
else
findlayer(29).more1 - >)>
src.newitem i_gold
src.act.amount >>
src.act.cont
say > gp bankaniza aktarildi.
endif

[dialog d_pv_buy]
300,300

resizepic 0 0 5120 270 105
button 200 70 1153 1155 1 0 1
button 230 70 1150 1152 1 0 0

htmlgump 10 10 250 60 0 1 0

[dialog d_pv_buy text]
, fiyati: gp. Bunu satin almak istiyormusunuz?

[dialog d_pv_buy button]
On=1
if (strmatch('',''))
src.sysmessage Bu esya satilik degil.
elseif ( <= 0)
src.sysmessage Bu esya satilik degil.
elseif ( >= )
src.gold -=
topobj.findlayer(29).more1 ( + )
cont
price
update
if (( == i_spellbook) || ( == i_runebook) || ( == i_deed))
attr |attr_newbie
endif
else
var.smsgx 0481
topobj.say Uzgunum, bankanda bunu karsilayacak kadar para bulunmuyor.
src.sysmessage @38,1,1 bankanizin en ust kisminda bulunamadi.
endif

[dialog d_pv_dismiss]
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_pv_dismiss text]
Vendorunuzda esya ve > altin bulunuyor. Devam ederseniz hepsi silinecek. Devam ediyor musunuz?

[dialog d_pv_dismiss button]
On=1
if ( < 0)
if ( == 1)
say Kendinize iyi bakin.
bow
findid.i_pv_rem.timer 2
src.newitem i_deed_pv
src.act.bounce
elseif ( == 2)
say Kendinize iyi bakin.
salute
findid.i_pv_rem.timer 2
src.newitem i_deed_pv
src.act.cont
endif
endif

// ******
// SPEECH
// ******

[speech pv_spch]
On=bilgi*
On=yardim*
var.smsgx 0481
if ( == )
src.sysmessage @54,1,1 Vendor komutlari:
src.sysmessage @1153,1,1 durum, kasa, hasila, fiyat, lokasyon, kontrat
src.sysmessage @1153,1,1 Herhangi bir komut hakkinda bilgi almak icin 'Komut nedir' yazabilirsiniz. (ornek: 'kasa nedir')
else
src.sysmessage @1153,1,1 Vendora cift tiklayarak cantasini acabilir, 'buy' komutuyla esyalari satin alabilirsiniz.
endif
return 1

On=durum*
var.smsgx 0481
if (( == ) || ())
if (strmatch('','DURUM NEDIR'))
src.sysmessage @1153,1,1 Kasamdaki para miktarini ogrenmek icin kullancaginiz komuttur.
else
say Kasamdaki > gp ile / ( * 24))> gun daha calisabilirim.
endif
endif
return 1

on=soyun*
var.smsgx 0481
if (( == ) || ())
if (strmatch('','SOYUN NEDIR'))
src.sysmessage @1153,1,1 Bu komutu kullandiginizda uzerimdeki tum esyalari cikarip size veririm.
else
findlayer(1).cont
findlayer(2).cont
findlayer(3).cont
findlayer(4).cont
findlayer(5).cont
findlayer(6).cont
findlayer(7).cont
findlayer(8).cont
findlayer(10).cont
findlayer(12).cont
findlayer(13).cont
findlayer(14).cont
findlayer(17).cont
findlayer(18).cont
findlayer(19).cont
findlayer(20).cont
findlayer(22).cont
findlayer(23).cont
findlayer(24).cont
endif
endif
return 1

On=kasa*
var.smsgx 0481
if ( == )
if (strmatch('','KASA NEDIR'))
src.sysmessage @1153,1,1 Kasamdaki para miktarinin azalmasi durumunda kasama para eklemek icin kullanacaginiz komuttur.
else
findid.i_pv.more1 3
findid.i_pv.target
say Kasama eklemek istediginiz parayi seciniz.
endif
endif
return 1

On=hasila*
if !() //hasila bug-fix
memorydel
newitem i_memory
act.attr 04
act.more1 04
act.more2
act.morep
act.color memory_ipet
act.timer -1
act.link
act.cont
flags &statf_pet
endif
var.smsgx 0481
if ( == )
if (strmatch('','HASILA NEDIR'))
src.sysmessage @1153,1,1 Kasamdaki parayi banka hesabiniza aktarmakta kullanacaginiz komuttur. Kasamdaki son 2500 altini aktarmaniz mumkun degildir.
else
if (> < 2501)
say Su an size verebilecek kadar param yok.
else
dialog d_pv_cash
endif
endif
endif
return 1

On=fiyat *
var.smsgx 0481
if ( == )
if (strmatch('','FIYAT NEDIR'))
src.sysmessage @1153,1,1 Cantama yerlestirdiginiz esyalari fiyatlandirmakta kullanacaginiz komuttur. Ornek kullanim: fiyat 3000
src.sysmessage @1153,1,1 Satilamaz ibareli esyalari fiyatlandiramazsiniz.
else
if !()
say Cantamda satabilecegim bir mal yok.
elseif (>>==0)
src.sysh_trk Sadece rakam kullanabilirsiniz.
return 1
else
try
endif
endif
endif
return 1

On=lokasyon*
var.smsgx 0481
if (( == ) || ( == ) || ())
if (strmatch('','lokasyon NEDIR'))
src.sysmessage @1153,1,1 Ev icinde durmami istediginiz konuma gidip bu komutu kullanabilirsiniz.
else
if ( == )
tag.p
tag.px
tag.py
tag.pz
go
else
say Orada calisamam.
endif
endif
endif
return 1

On=kontrat*
var.smsgx 0481
if (( == ) || () || ( == ))
if (strmatch('','KONTRAT NEDIR'))
if ( == )
if ( == )
src.sysmessage @1153,1,1 Bu komutu sadece siz kullanabilirsiniz. Komutu kullandiginizda cantamdaki esya sayisini ve kasamdaki para miktarini gosteren bir ekran cikacaktir. Onaylanmasi isten cikmama ve kontratimin sahibimin cantasina dusmesine neden olacaktir.
else
src.sysmessage @1153,1,1 Bu komutu sadece siz ve evin sahibi kullanabilir. Komutu kullandiginizda cantamdaki esya sayisini ve kasamdaki para miktarini gosteren bir ekran cikacaktir. Onaylanmasi isten cikmama ve kontratimin sahibimin cantasina dusmesine neden olacaktir.
endif
elseif ( == )
src.sysmessage @1153,1,1 Bu komutu sadece siz ve sahibim kullanabilir. Komutu kullandiginizda cantamdaki esya sayisini ve kasamdaki para miktarini gosteren bir ekran cikacaktir. Onaylanmasi isten cikmama ve kontratimin sahibimin cantasina dusmesine neden olacaktir.
endif
elseif ( == )
if ( < 0)
findid.i_pv_rem.more2 1
dialog d_pv_dismiss
endif
else
if ( < 0)
findid.i_pv_rem.more2 2
dialog d_pv_dismiss
endif
endif
endif
return 1

On=alisveris
if ()
pack
return 1
elseif (() && ( < 3)) && ()
face
if ( == )
pack
elseif !()
say Su an satilik malim yok.
else
pack
endif
return 1
endif

On=buy
On=satin al
if ( == )
say , sizin para vermenize gerek yok.
elseif !()
say Su an satilik malim yok.
else
findid.i_pv.more1 2
findid.i_pv.target
endif
return 1


// *****
// EVENT
// *****

[events e_pv]
On=@GetHit
return 1

On=@Hit
return 1

On=@HitTry
return 1

On=@Death
str 1000
hits
return 1

On=@SpellEffect
return 1

On=@ItemEquip
if (( == 1) || ( == 2))
findid.i_lantern.equip
findid.i_lantern.dclick
return 1
endif

On=@Click
if !(strmatch('>','>')) || !(strmatch('>','>')) || !(strmatch('>','>'))
p
update
return 1
endif
message @68 []
message @1153,1,1 The Player Vendor
return 1

On=@DClick
if !(strmatch('>','>')) || !(strmatch('>','>')) || !(strmatch('>','>'))
p
update
return 1
endif

if !()
memorydel
newitem i_memory
act.attr 04
act.more1 04
act.more2
act.morep
act.color memory_ipet
act.timer -1
act.link
act.cont
flags &statf_pet
endif

if ( == )
src.tag.vendor
endif

if ()
pack
dialog d_komutlar
return 1
elseif (() && ( < 3)) // && ()
face
if ( == )
// say * Satılacak eşyaları koyabilirsiniz *
pack
dialog d_komutlar
elseif !()
say Su an satilik malim yok.
else
pack
endif
return 1
endif

On=@EnvironChange
if (&statf_war)
flags &~statf_war
update
endif
food 990
//p
tag.p


tag.px
tag.py
tag.pz
if (> < 1)
if ( < 0)
if ()
say Bedavaya calisamam, gule gule...
salute
findid.i_pv_rem.timer 3
var.smsgx 0481
memoryfindtype.memory_ipet.link.sysmessage @1153,1,1 Vendorunuz maas alamadigi icin istifa etti.
else
findid.i_pv_rem.more1 1
go
endif
endif
elseif !( == t_multi)
if ( < 0)
say Ev olmadan calismam!
salute
findid.i_pv_rem.timer 3
findid.i_pv_rem.more2 3
var.smsgx 0481
memoryfindtype.memory_ipet.link.sysmessage @1153,1,1 Vendorunuz bagli oldugu ev yikildigi icin istifa etti.
endif
endif
findid.i_lantern.equip
findid.i_lantern.dclick


On=*
return 1

On=*all go*
return 1

On=*go*
return 1

// *********************
// ALTINSAL FONKSIYONLAR
// *********************

[function fiyat]
if (> > 1000000)
say Tek bir mali 1m'den fazlaya satamam.
else
findid.i_pv.more1 1
findid.i_pv.more2 >
findid.i_pv.target
endif

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

[function evl]
sysmessage Evaluating [0]: >.
return >


[DIALOG d_komutlar]
200,100
PAGE 0
nomove
resizepic 0 0 5120 530 350
resizepic 10 10 3000 510 330
text 150 11 48 0
gumppic 250 350 9000
htmlgump 30 270 490 250 7 0 0
htmlgump 30 30 490 250 6 0 0
htmlgump 30 80 490 250 5 0 0
htmlgump 30 110 490 250 4 0 0
htmlgump 30 140 490 250 3 0 0
htmlgump 30 190 490 250 2 0 0
htmlgump 30 240 490 250 1 0 0

[DIALOG d_komutlar TEXT]
Vendor Komutları
>Lokasyon : Vendorun evinizde durmasını istediğiniz yere giderek kullanabilirsiniz..
>Fiyat : Cantama yerlestirdiginiz esyalari fiyatlandirmakta kullanacaginiz komuttur. Ornek kullanim: fiyat 3000
>Hasila: Vendorun kasasındaki parayı hesabınıza aktarmak için kullanabilirsiniz,Son 2500 gp'yi alamazsınız..
>Kasa : Vendorun kasasına para yatırmak için kullanabilirsiniz..
>Durum : Vendorun kasasındaki para miktarı için kullanabilirsiniz..
>Durum, Kasa, Hasila, Fiyat, Lokasyon, Kontrat : Herhangi bir komut hakkinda bilgi almak icin 'Komut nedir' yazabilirsiniz. (örnek: 'kasa nedir')
>Kontrat : Bu komutu sadece vendorun sahibi kullana bilir,komutu yazdığınızda vendorun çantasındaki item'larla ve paralarla ilgili bir menü gelecektir. Onayladığınız taktirde vendordaki itemlar silinip vendor deed halinde çantanıza düşecektir..

[DIALOG d_komutlar BUTTON]


[eof]




Arkadaşlar script ile ilgili sorunumuz şu ; 1.si Vendor lokasyon desek bile evin içerisinde istediğimiz yere gitmiyor.İlk kurulumda nereye açtıysak orada duruyor.
Bir diğer konu ise vendora koyulan Çanta,Kasa vs. bu tarz itemlerin içersinde item koyup satmak isteyen kişiler var. Satın almak isteyen kişiler çantaya tıkladığında snooping uyarısı alıyor.

Teşekkürler.
Link to comment
Sosyal ağlarda paylaş

×
×
  • Yeni Oluştur...