Merhaba ;

Herkeze iyi çalışmalar diliyorum. Bir iki sorunum var yardımcı olabilecek arkadaşlara teşekkur ederim şimdiden.

1.sorunum : Açık arttırma sistemim herşey normal fakat. İhale kazanıldığında kazananın yatırdığı gold silinmiyor. Sadece yüksek teklif verince kazanıyor. Goldu gitmiyor yani.

Açıkarttırma scp'ti:

[itemdef i_acikarttirma]
id i_grave_stone
name acik arttirma

on=@create
color 49

on=@dclick
if (<var.acikarttirmabasla> = 1 )
sdialog d_acikarttirma
return 1
else
src.sysmessage Acik arttirma su an icin baslamamis.
endif
return 1


[dialog d_acikarttirma]
50,50
nomove
resizepic 0 0 5170 380 250

dtext 40 60 1152 <var.ihaleesyasi>
dtext 40 80 1152 En yuksek teklif : <eval <var.enyuksek>>
dtext 40 100 1152 En yuksek teklifi yapan : <var.enyuksekyapan>
dtextentry 50 152 90 20 990 1 <eval <var.enyuksek> +5000>
dtext 40 120 1152 Ihale bitis zamani : 
button 150 150 4005 4006 1 0 1
dtext 190 150 1152 Teklif Yap
dtext 200 250 00 Uo Shard


[dialog d_acikarttirma button]
on=0
src.sysmessage @07a1 Acik arttirmaya katilmaktan vazgectiniz.
return 1


on=1
if !(<isnum <argtxt[1]>>)
src.sysmessage @0481,,1 Sadece rakam kullanabilirsiniz.
elseif (<eval <argtxt[1]>> < 1)
src.sysmessage @0481,,1 Hatali bir rakam girdiniz.
elseif (<eval <argtxt[1]>> < <eval <var.enyuksek>+5000> )
src.sysmessage @0481,,1 En yuksek tekliften en az 5 k daha fazla teklif etmelisiniz
elseif (<eval <argtxt[1]>> > <src.bankbalance>)
src.sysmessage @020 Bankanizda <eval <argtxt[1]>> kadar altin bulunmuyor.
else
var.enyuksekyapan <src.name>
var.enyuksek <eval <argtxt[1]>>
var.enyuksekyapanuid <src.uid>
serv.allclients sysmessage @49 <serv.name> Acik Arttirma Duyuru:
serv.allclients sysmessage @49 <var.enyuksekyapan> , <var.ihaleesyasi> icin <eval <var.enyuksek>> teklifi yapti.
f_ihale_bittimi <eval <argtxt[1]>>
endif
endif

[function f_ihale_bittimi]
if (<eval <args>> >= <eval <var.bitisfiyati>>
src.sysmessage Acik arttirmayi kazandiniz.
f_ihalebitti
serv.allclients sysmessage @49 <serv.name> Acik arttirma Duyuru:
serv.allclients sysmessage @49 <var.enyuksekyapan> acik arttirmayi kazandi..
endif

[function ayarihale]
if (<account.plevel> < 6)
src.sysmessage @0481,,1 Sadece admin ve ownerlar kullanabilir.
else
sdialog d_ihaleayar
endif
endif

[dialog d_ihaleayar]
50,50
nomove
resizepic 0 0 5170 550 300
dtext 150 20 1152 Acik Arttirma Ayar menusu
dtext 40 50 1152 binegin idsi:
dtextentry 120 50 90 20 49 1 c_m_unicorn
dtext 40 70 1152 binegin ismi:
dtextentry 120 70 90 20 49 2 Unicorn
dtext 40 90 1152 baslangic fiyati:
dtextentry 150 90 150 20 49 3 2500
dtext 40 110 1152 bitis fiyati:
dtextentry 150 110 150 20 49 4 7000000

button 100 210 2473 2474 1 0 1
dtext 150 250 00 Uo Shard
dtext 140 213 1153 Ihaleyi baslat!


[dialog d_ihaleayar button]
on=1
var.binek <argtxt[1]>
var.ihaleesyasi <argtxt[2]>
var.enyuksek <argtxt[3]>
var.bitisfiyati <argtxt[4]>
acikal <var.bitisfiyati>
var.acikarttirmabasla 1
serv.allclients sysmessage @49 <serv.name> Acik arttirma Duyuru:
serv.allclients sysmessage @49 Acik arttirma baslamistir.Satilan binek:<var.ihaleesyasi>.Baslangic fiyati <eval <var.enyuksek>>tir.
return 1

[function f_ihalebitti]
serv.newitem i_deed_ihalebinek
new.tag.binekid <var.binek>
new.cont <var.enyuksekyapanuid>
var.acikarttirmabasla 0
var.enyuksekyapan
var.enyuksekuid
var.enyuksek


[ITEMDEF i_deed_ihalebinek]
DEFNAME=i_deed_ihalebinek
NAME=Binek Deed
ID=i_deed
WEIGHT=5.0
TYPE=t_script

On=@Create
color 0fb4
attr 04

on=@Dclick
if !(<topobj.uid> = <src.uid>)
src.sysmessage @55 Hata : Bunu kullanabilmeniz icin cantanizda olmali.
return 1
else
src.newnpc <tag.binekid>
link <src.act.uid>
link.oskin <link.color>
link.newitem i_memory
link.act.attr 04
link.act.more1 04
link.act.more2 <serv.time>
link.act.morep <link.p>
link.act.color memory_ipet
link.act.timer -1
link.act.link <src.uid>
link.act.cont <link.uid>
link.flags <link.flags>&statf_pet
link.update
link.anim 5
link.bark 3
remove
return 1
endif

on=@click
message @07a1 <serv.name>
message @07a1 Acik Arttirma Binegi
return 1




[FUNCTION acikal]
IF (<bankbalance> < <ARGN1>)
RETURN 1
ENDIF
LOCAL.AMOUNT=<ARGN1>
WHILE (<LOCAL.AMOUNT>)
IF (0<FINDLAYER.21.FINDID.i_gold>)
LOCAL.GOLD=<FINDLAYER.21.FINDID.i_gold.amount>
IF (<EVAL <LOCAL.AMOUNT>-<LOCAL.GOLD>> < 0)
FINDLAYER.21.FINDID.i_gold.AMOUNT -= <LOCAL.AMOUNT>
LOCAL.AMOUNT=0
ELSE
FINDLAYER.21.FINDID.i_gold.remove
LOCAL.AMOUNT -= <LOCAL.GOLD>
ENDIF
ELIF (0<FINDLAYER.29.FINDID.i_gold>)
LOCAL.GOLD=<FINDLAYER.29.FINDID.i_gold.amount>
IF (<EVAL <LOCAL.AMOUNT>-<LOCAL.GOLD>> < 0)
FINDLAYER.29.FINDID.i_gold.AMOUNT -= <LOCAL.AMOUNT>
LOCAL.AMOUNT=0
ELSE
FINDLAYER.29.FINDID.i_gold.remove
LOCAL.AMOUNT -= <LOCAL.GOLD>
ENDIF
ENDIF
ENDWHILE
UPDATE


2.sorunum : Gatelerden geçince veya oyundan logout olduğunuzda yere tutarsızca saçma sapan itemler düşüyor. ( Örn: gold , reg , sp )
Ve bazende büyüler düşüyor. İcon halinde ( resim halinde newbified bir şekilde playerin altına düşüyor spell resimleri )

Örnek : ( Ayrıca bahsettiğim gibi diğer düşen itemlerde bunun gibi hatalar veriyor. 'i_gold' (UID=40004573)? ) gibi.

01:11:ERROR:Timer expired without DECAY flag 'Reactive Armor' (UID=40004463)?

3.sorunum : Serverimden goldu kaldırıp bilet aktif etmek istiyorum. Mesela <bankbalance> ve <totalgold> gold üzerinden değilde sp üzerinden çalışşsın istiyorum.

Bu sorunlarıma yardımcı olabilecek veya yardım etmeye çalışan herkeze teşekkur ederim. Lütfen bu konuda aydınlatın beni.

İyi forumlar dilerim.

Bu konu Closed tarafından düzenlendi(2009-05-05 00:57, 14 yıl önce)

Üye Ol veya Giriş Yap

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