|
|
| Yazar | Mesaj |
herakmos
Nereden: Turkey Ankara |
#254609
2007-10-08 00:40 GMT
Kod: [ITEMDEF i_vendor_kira] ID=i_grave_stone NAME=Kiralik Vendor TYPE=t_script DESCRIPTION=Kiralik Vendor ON=@CREATE COLOR=0455 TAG.kiralik=0 TAG.sahip=0 ATTR attr_decay ON=@CLICK message <name> if (<eval <tag.kiralik>> == 1) message @0493,1,1 [Kiralanmis] else message @0493,1,1 [Kiralanmamis] endif return 1 ON=@DCLICK IF ( <DISTANCE> > 1 ) SRC.sysMESSAGE Yeterince yakin degilsiniz! RETURN 1 ENDIF SRC.ACT=<UID> IF !(<eval <SRC.ACT.TAG.kiralik>>) SRC.DIALOG d_vendor_intro src.tag.dist <src.act.uid> RETURN 1 ELSE IF (<SRC.ACT.LINK.TAG.sahip>==<SRC.UID>)||(<SRC.ISGM>) VAR.LEASE=<eval <SRC.ACT.TIMER>/500000> VAR.LEASE=<eval <VAR.LEASE>/500000> SRC.MENU m_vendor_admin RETURN 1 ELSE SRC.SYSMESSAGE @0712,1,1 Bu dukkan ve vendor kiralanmis. RETURN 1 ENDIF ENDIF RETURN 1 ON=@TIMER LINK.REMOVE LINK=04fffffff TAG.kiralik=0 TAG.sahip=0 COLOR=0455 RETURN 1 [DIALOG d_vendor_intro] 100, 100 PAGE 0 resizepic 81 93 3500 305 126 text 170 103 1153 0 text 131 134 1153 1 button 107 169 2151 2152 1 0 1 text 141 171 1152 2 [DIALOG d_vendor_intro TEXT] Synix Vendor Kiralama (Kiralamak icin 500k gereklidir). Bir haftaligina vendoru Kirala.. [DIALOG d_vendor_intro BUTTON] on=0 src.tag.dist on=1 IF (<uid.<src.tag.dist>.DISTANCE> > 1 ) SRC.sysMESSAGE Yeterince yakin degilsiniz! else if (<src.restest 500000 i_gold>) src.tag.dist VAR.SIGN=<SRC.ACT> SRC.ACT.TAG.kiralik=1 SRC.ACT.COLOR=0455 SRC.ACT.TAG.sahip=<SRC.UID> SRC.ACT.TIMER=60*60*24*7 src.consume 500000 i_gold VAR.SIGN=<SRC.ACT> src.newnpc c_pv src.act.p <p> src.act.tag.p <p> src.act.tag.px <p.x> src.act.tag.py <p.y> src.act.tag.pz <p.z> src.act.tag.owner <src.uid> VAR.VEND=<SRC.ACT.UID> src.act.findlayer(29).more1 2500 SRC.ACT.TAG.sahip=<SRC.UID> SRC.ACT=<VAR.SIGN> SRC.ACT.LINK=<VAR.VEND> SRC.ACT=<VAR.VEND> src.act.newitem i_memory SRC.act.ACT.LINK=<SRC.UID> 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.act.CONT=<VAR.VEND> src.act.flags <src.act.flags>&statf_pet src.tag.vendor <src.act.uid> SRC.ACT=<VAR.SIGN> src.act.update ELSE SRC.SYSMESSAGE @0712,1,1 Kiralamak icin 500k cantanizda olmali. src.tag.dist ENDIF endif return 1 // ************** // VENDOR CHARDEF // ************** [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 //tevents vendorfix 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 item i_Tc_r attr attr_static color 01 item i_lantern_lit morey -1 itemnewbie i_backpack itemnewbie i_bankbox color 0455 timer 900 attr 014 itemnewbie i_pv // ******* // ITEMLAR // ******* [itemdef i_pv] id i_memory name vendor ana kontroller type t_eq_script On=@TargOn_Char if (<src.targ.uid> == <cont.uid>) cont.findlayer(21).open target endif return 1 On=@TargOn_Item if (<more1> == 1) // dinamik fiyatlandirma if !(<src.uid> == <cont.tag.owner>) cont.sayu <src.name>, siz benim isverenim degilsiniz. elseif !(<src.targ.topobj.uid> == <cont.uid>) cont.sayu Bu esya cantamda degil. elseif (strmatch('<src.targ.price>','')) cont.sayu Bu satilabilecek bir esya degil. elseif (<eval <more2>> <= 0) src.targ.price 0 cont.sayu <src.targ.name>: 'satilik degil' olarak isaretlendi. else src.targ.price <eval <more2>> more2 0 cont.sayu <src.targ.name>: <src.targ.price> altin. endif elseif (<more1> == 2) // satis if !(<src.targ.topobj.uid> == <cont.uid>) cont.sayu Bu esya cantamda degil. elseif (strmatch('<src.targ.price>','')) cont.sayu Bu esya satilik degil. elseif (<src.targ.price> <= 0) cont.sayu Bu esya satilik degil. elseif (<src.gp> < <src.targ.price>) cont.sayu Bankanizin en ust kisminda <src.targ.price> altininiz bulunmuyor. else src.targ.dialog d_pv_buy endif elseif (<more1> == 3) // para aktarma if !(<src.uid> == <cont.tag.owner>) cont.sayu <src.name>, siz benim isverenim degilsiniz. elseif !(<src.targ.topobj.uid> == <src.uid>) cont.sayu Gosterdiginiz nesne sizin uzerinizde degil. elseif !(<src.targ.baseid> == i_gold) cont.sayu Bu gosterdiginiz altin degil. else cont.findlayer(29).more1 <eval (<cont.findlayer(29).more1> + <src.targ.amount>)> if (<eval (<src.targ.amount> / <cont.hiredaywage>)> > 0) cont.sayu <src.targ.amount> altin calisma suremi <eval (<src.targ.amount> / <cont.hiredaywage>)> gun uzatti, tesekkur ederim. else cont.sayu <src.targ.amount> altin kasama eklendi, tesekkur ederim. endif src.targ.remove endif endif return 1 On=@Timer return 1 // ********* // DIALOGLAR // ********* [MENU m_vendor_admin] Kiralik vendor yonetimi. ON=0 Bir hafta daha kirala. (Kalan sure: <eval <VAR.LEASE>> saat) IF (<src.restest 500000 i_gold>) SRC.CONSUME 500000 i_gold SRC.UPDATE SRC.TAG.vendtimer <SRC.ACT.TIMER> SRC.ACT.TIMER= <eval <SRC.ACT.TIMER>> + 604800 src.act.link.message @90 Calisma suremi 1 hafta daha uzattiniz. Tesekkurler. ELSE SRC.SYSMESSAGE @38 Bir hafta daha calismam icin yeterli paraniz yok!(10.000gp) ENDIF ON=0 Vendoru terket. SRC.ACT.TIMER 1 ON=0 Banka SRC.BANKSELF [dialog d_pv_cash] 300,300 resizepic 0 0 5054 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] <eval (<findlayer(29).more1> - 2500)> [dialog d_pv_cash button] On=1 if (<eval <argtxt[1]>> <= 0) sayu Hmm.. Sanirim tam anlayamadim? elseif (<eval <argtxt[1]>> > <eval <findlayer(29).more1>>) sayu Bu miktar kasamda bulunmuyor. elseif (<eval (<findlayer(29).more1> - <argtxt[1]>)> < 2500) sayu Bu miktari veremeyecegim, kasamda en az 2500 altin kalmali. elseif (<eval <argtxt[1]>> >= 500000) vend_collect <eval <argtxt[1]>> sayu <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> sayu <argtxt[1]> altin bankaniza aktarildi. endif [dialog d_pv_buy] 300,300 resizepic 0 0 5054 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_buy text] <name>, fiyati: <price> altin. Bunu satin almak istediginize emin misiniz? [dialog d_pv_buy button] On=1 if (strmatch('<price>','')) src.sysmessage Bu esya satilik degil. elseif (<price> <= 0) src.sysmessage Bu esya satilik degil. elseif (<src.gp> >= <price>) src.gpconsume <price> topobj.findlayer(29).more1 (<topobj.findlayer(29).more1> + <price>) cont <src.findlayer(21).uid> price update if ((<baseid> == i_spellbook) || (<baseid> == i_runebook) || (<baseid> == i_magic_reg30) || (<baseid> == i_magic_reg60) || (<baseid> == i_magic_reg90) || (<baseid> == i_necro_reg20) || (<baseid> == i_necro_reg40) || (<baseid> == i_taxi_kit) || (<baseid> == i_dye_tub_furny) || (<dispid> == i_deed)) attr <attr>|attr_newbie endif else topobj.sayu Bankanizin en ust kisminda bunu alacak kadar altininiz yok. endif // ****** // SPEECH // ****** [speech pv_spch] On=bilgi On=yardim if (<src.uid> == <tag.owner>) sayu Kullanabileceginiz komutlar: durum, kasa, hasilat, fiyat. sayu Belirli bir komut hakkinda bilgi icin 'Komut ?' yazmaniz yeterlidir. else sayu Uzerime cift tiklayarak veya 'alisveris' komutuyla cantami acabilir, cantamdaki kutu veya torbalara cift tiklayarak iclerine bakabilir, 'buy' veya 'satin al' komutuyla satilik esyalari satin alabilirsiniz. endif return 1 On=durum* if ((<src.uid> == <tag.owner>) || (<src.isgm>)) if (strmatch('<args>','DURUM ?')) sayu Kasamdaki para miktarini ve kasamdaki parayla calisacagim gun sayisini (reel gun) ogrenmek icin kullancaginiz komuttur. else sayu Kasamdaki <eval <findlayer(29).more1>> altin ile <eval (<findlayer(29).more1> / (<hiredaywage> * 24))> gun daha sizin icin calisacagim. endif endif return 1 On=kasa* if (<src.uid> == <tag.owner>) if (strmatch('<args>','KASA ?')) sayu Satis olmamasi ve kasamdaki paranin azalmasi durumunda kasama yaninizda getireceginiz altini eklemek icin kullanacaginiz komuttur. else findid.i_pv.more1 3 findid.i_pv.target sayu Kasama yatirmak istediginiz parayi seciniz. endif endif return 1 On=hasilat* if (<src.uid> == <tag.owner>) if (strmatch('<args>','HASILA ?')) sayu Kasamdaki parayi banka hesabiniza aktarmakta kullanacaginiz komuttur. Kasamdaki son 2500 altini aktarmaniz mumkun degildir. else if (<eval <findlayer(29).more1>> < 2501) sayu Kasamda 2500 veya daha az altin var, su durumda size nakit veremem. else dialog d_pv_cash endif endif endif return 1 On=fiyat * if (<src.uid> == <tag.owner>) if (strmatch('<args>','FIYAT ?')) sayu Cantama yerlestirdiginiz esyalari fiyatlandirmakta kullanacaginiz komuttur. Kullanilisi, X'in yerine bir sayi gelecek bicimde 'Fiyat X' seklindedir. sayu Satilamaz ibareli esyalari asla fiyatlandiramazsiniz. Satilik haldeki bir esyayi 'satilik degil' hale getirmek icin 0 fiyat vermeniz gereklidir. else if !(<findlayer(21).findcont(0)>) sayu Cantamda fiyatlandirilacak mal bulunmuyor. else try <args> endif endif endif return 1 On=alisveris if ((<canseelos>) && (<distance> < 4)) face if (<src.uid> == <tag.owner>) sayu Satilacak esyalari buraya koyabilirsiniz. pack elseif !(<findlayer(21).findcont(0)>) sayu Su an satilik malim yok, lutfen daha sonra tekrar geliniz. else pack endif else src.sysmessage Vendor'a ulasamiyorsunuz. endif return 1 On=buy On=satin al if (<src.uid> == <tag.owner>) sayu Isverenim oldugunuz icin istediginizi alabilirsiniz, para vermenize gerek yok. elseif !(<findlayer(21).findcont(0)>) sayu Su an satilik malim yok uzgunum. elseif (<isgm>) sayu Benden birsey satin alamazsiniz. else findid.i_pv.more1 2 findid.i_pv.target endif return 1 On=* return 1 // ***** // EVENT // ***** [events e_pv] On=@GetHit if !(<src.npc>) src.newitem i_killer src.act.equip else src.leave 20 endif return 1 On=@Hit return 1 On=@HitTry return 1 On=@Death hits <str> return 1 On=@SpellEffect if (<src.npc>) src.leave 20 endif return 1 On=@ItemEquip if ((<act.layer> == 1) || (<act.layer> == 2)) findid.i_torch.equip findid.i_torch.dclick return 1 endif on=@skillstart if (<action>==skill_stealing) src.sysmessage @38 Stealing yeteneginizi player vendorlari uzerinde kullanamazsiniz. src.action=-1 return 1 endif On=@Click if !(strmatch('<eval 0<tag.px>>','<eval <p.x>>')) || !(strmatch('<eval 0<tag.py>>','<eval <p.y>>')) || !(strmatch('<eval 0<tag.pz>>','<eval <p.z>>')) p <tag.p> update return 1 endif message @09c1 <memoryfindtype.memory_ipet.link.name> return 1 On=@DClick if !(strmatch('<eval 0<tag.px>>','<eval <p.x>>')) || !(strmatch('<eval 0<tag.py>>','<eval <p.y>>')) || !(strmatch('<eval 0<tag.pz>>','<eval <p.z>>')) p <tag.p> update return 1 endif 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.owner> act.cont <uid> flags <flags>&statf_pet endif if (<src.uid> == <tag.owner>) src.tag.vendor <uid> endif if (<src.isgm>) pack elseif (<src.flags>&statf_dead) src.sysmessage Su anki durumuzda bu islemi gerceklestiremezsiniz. elseif ((<canseelos>) && (<distance> < 4)) face if (<src.uid> == <tag.owner>) sayu Satilacak esyalari buraya koyabilirsiniz. pack elseif !(<findlayer(21).findcont(0)>) sayu Su an satilik malim yok, lutfen daha sonra tekrar geliniz. else pack endif else src.sysmessage Vendor'a ulasamiyorsunuz. endif return 1 On=@EnvironChange if (<flags>&statf_war) flags <flags>&~statf_war update endif food 990 p <tag.p> tag.p <p> tag.px <p.x> tag.py <p.y> tag.pz <p.z> // ********************* // ALTINSAL FONKSIYONLAR // ********************* [function fiyat] if (<eval <argn>> > 2000000) sayu Tek bir mali 2 milyon altinin uzerinde fiyatla satmam yasalara aykiridir. else findid.i_pv.more1 1 findid.i_pv.more2 <eval <argn>> findid.i_pv.target endif [function vend_collect] var.vendorcash <eval (<argn> - 500000)> findlayer(29).more1 <eval (<findlayer(29).more1> - 500000)> src.newitem i_gold src.act.amount 500000 src.act.cont <src.findlayer(29).uid> if (<eval <var.vendorcash>> >= 500000) 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 [function packo] // (special thx to laroux below this line) try src.tag.<uid> <rescount> packo_loop <args> [function packo_loop] if (<eval <src.tag.<uid>>> > 0) try src.tag.<uid> <eval (<src.tag.<uid>> - 1)> //if (strmatch('<findcont.<eval <src.tag.<uid>>>.type>','t_container')) // try findcont.<eval <src.tag.<uid>>>.packo <args> //else try findcont.<eval <src.tag.<uid>>>.<args> //endif packo_loop <args> else try src.tag.<uid> endif [function gp] var.gp 0 //findlayer(21).packo gp_ctrl findlayer(29).packo gp_ctrl return <eval <var.gp>> [function gp_ctrl] if (strmatch('<baseid>','i_gold')) var.gp <eval (<var.gp> + <amount>)> endif [function gpconsume] var.gp <argn> //findlayer(21).packo gpconsume_ctrl <argn> findlayer(29).packo gpconsume_ctrl <argn> return 1 [function gpconsume_ctrl] if ((<var.gp> > 0) && (strmatch('<baseid>','i_gold'))) if (<amount> > <eval (<var.gp>)>) amount <eval (<amount> - <var.gp>)> var.gp 0 else var.gp <eval (<var.gp> - <amount>)> remove endif endif [function evl] sysmessage Evaluating [0<args>]: <eval 0<args>>. return <valstr 0<args>> [events e_vendclick] On=@itemclick if (<act.topobj.id> == c_pv1) if !((<act.type> == t_spellbook) || (<act.type> == t_reagent)) act.message [satilamaz] elseif (<act.price> <= 0) act.message [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 [<act.price> gp] [%<eval (100 - ((<act.more1l> * 100) / <act.more1h>))> eski] else act.message [<act.price> gp] endif else act.message [<act.price> gp] endif endif endif [eof] burda vendor normalde 60k'dan kıralanıyordu ben onu 500k yapmaya calıstım ama 50kya dustu nerde hata yaptım bulamadım bı yardımcı olursanız ![]() ![]() cok komık bır durum bılıyorum ama lutfen bı sunu halledelım..
|
Nixdorf
Nereden: Israel tekirdag |
#254619
2007-10-08 01:25 GMT
consume yerine gpconsume fonksiyonu kullan.
|
herakmos
Nereden: Turkey Ankara |
#254640
2007-10-08 10:29 GMT
yaptim olmadi gene ayni 50k ya kıralıoo
|
TheRaskol |
#254641
2007-10-08 11:44 GMT
Alt alta bir çok .consume yaptır.
Bir kerede 60000'den fazla aldıramazsın.
|
Slothere
Nereden: Turkey Izmir |
#254647
2007-10-08 12:09 GMT
Veya ;
Kod: for 1 10
src.consume 50000 i_gold endfor
|
herakmos
Nereden: Turkey Ankara |
#254673
2007-10-08 17:16 GMT
yaptım 2sınıde olmadı !!
|
TheRaskol |
#254676
2007-10-08 17:19 GMT
imkansız!
|
herakmos
Nereden: Turkey Ankara |
kardeş su en ustte koydugum scpsı sen neler duzeltımesı gerekıosa duzeltıp koyabılır mısın 2 gunumu aldı ya
cok güzel olur + imza kısmında reklam ucretlı mı
|






nerde hata yaptım bulamadım bı yardımcı olursanız



cok güzel olur + imza kısmında reklam ucretlı mı


