Hesabına erişemeyen eski üyeler Discord üzerinden yardım alabilir.
Members
14.4
Şuan açık olan bi sunucunun forumlarını takip ederken bir playerın yaptığı yorumdan fikir uyandırdı.

Daha önceden yapıldımı bilmiyorum.


https://prntscr.com/90tc5q

https://prntscr.com/90tbrj

https://prntscr.com/90tbka

https://prntscr.com/90tb9i


[plevel 01]
istekyap

[function istek_kur]
db.connect
if <db.connected>
	db.execute "CREATE TABLE IF NOT EXISTS `istek` (`id` INT NULL AUTO_INCREMENT PRIMARY KEY, `istekUID` text, `istekNAME` text, `istekesya` text, `istekesyaNAME` text, `deger` int, `adet` int)";
endif

[function istek_yap]
db.connect
local.para <eval (<dargv1>*<dargv2>)>
if (<src.gold> >= <dlocal.para>)
if <db.connected>
	db.execute "insert into istek (istekUID,istekNAME,istekesya,istekesyaNAME,deger,adet) values ("<src>","<src.name>","<argv0>","<serv.itemdef.<argv0>.name>","<argv1>","<argv2>")";
	src.gold -=<dlocal.para>
	src.sysmessage @0481,,1 İsteğiniz eklendi (<dlocal.para>) bankanızdan çekildi.
endif
else
src.sysmessage @0481,,1 Yeteri kadar paranız yok. Miktar (<dlocal.para>) gereklidir.
endif

[function istekyap]
	sdialog d_istekyap

[dialog d_istekyap]
50,50

bozobag 10,10,500,300
if !<src.ctag0.istek_esya>
dtext 60 15 63 İsim
dtext 160 15 63 Eşya
dtext 260 15 63 Birim değer
dtext 360 15 63 Kalan adet
resizepic 40 35 9300 440 3
dtext 180 280 0481 İstek yap
button 150 280 4005 4007 1 0 10002

button 40 280 4005 4007 1 0 10000

if !<src.ctag0.isteklerim>
dtext 70 280 0455 İsteklerim
db.query "select id,istekuid,istekname,istekesya,istekesyaNAME,deger,adet from istek";
else
db.query "select id,istekuid,istekname,istekesya,istekesyaNAME,deger,adet from istek where istekuid = "<uid>"";
dtext 70 280 0455 Hepsi
endif
endif 
dorigin 0 25
local.page = 1
local.bildiri = 0

PAGE 1
while <db.row.<dlocal._while>.id>
IF (<dlocal.bildiri> > 10)
local.bildiri = 0
dorigin 0 25
button 460 280 015e1 015e5 0 <eval (<dlocal.page>)+1> 1
local.page += 1
PAGE <dlocal.page>
button 440 280 015e3 015e7 0 <eval (<dlocal.page>)-1> 1
ENDIF
local.bildiri +=1
	dtext 60 *20 0481 <db.row.<dlocal._while>.istekname>
	dtext 160 *0 0481 <kacdene 15,<db.row.<dlocal._while>.istekesyaname>>
	dtext 260 *0 0481 <f_bolukayir <db.row.<dlocal._while>.deger>>
	dtext 360 *0 0481 <f_bolukayir <db.row.<dlocal._while>.adet>>
	button 30 *0 4005 4007 1 0 <db.row.<dlocal._while>.id>
	resizepic 60 +20 9300 420 3
endwhile

page 10000
db.query "select id,istekuid,istekname,istekesya,istekesyaNAME,deger,adet from istek where id = "<dsrc.ctag0.istek_select>"";
dtext 60 40 0481 <db.row.0.istekname>
dtext 160 40 0481 <db.row.0.istekesyaname>
dtext 260 40 0481 <db.row.0.deger>
dtextentrylimited 360 40 40 25 0481 1 4 <db.row.0.adet>
button 30 40 4005 4007 1 0 10001
if (STRMATCH("<db.row.0.istekuid>","<src>"))
dtext 60 60 33 Bu eşya size ait olduğu için buttona tıkladığınız da listeden kaldırır.
endif

page 10001

if <src.ctag0.istek_esya>
ref1=<src.ctag0.istek_esya>
dtext 60 60 0481 <ref1.name>
dtext 60 80 0481 Adet:
dtextentrylimited 100 80 40 25 0481 2 4 ?
dtext 60 100 0481 Değer:
dtextentrylimited 100 100 100 25 0481 3 20 ?
dtext 90 120 0481 Onayla
button 60 120 4005 4007 1 0 10003
endif

[dialog d_istekyap button]
on 0
if <src.ctag0.istek_esya>
src.ctag0.istek_esya
	sdialog d_istekyap
endif
if <src.ctag0.istek_select>
	src.ctag0.istek_select
		sdialog d_istekyap
endif

on 1 9999
src.ctag0.istek_select <dargn>
	sdialog d_istekyap,10000
on 10000
if <src.ctag0.isteklerim>
src.ctag0.isteklerim 0
src.sysmessage @0481,,1 Bütün istekler sıralandı.
else
src.sysmessage @0481,,1 Sadece sizin istekleriniz.
src.ctag0.isteklerim 1
endif
	sdialog d_istekyap

on 10001
db.query "select id,istekuid,istekname,istekesya,istekesyaNAME,deger,adet from istek where id = "<dsrc.ctag0.istek_select>""
ref1=<db.row.0.istekuid>
if (STRMATCH("<db.row.0.istekuid>","<src>"))
db.execute "delete from istek where id = "<dsrc.ctag0.istek_select>"";
local.iade <eval (<db.row.0.deger>*<db.row.0.adet>)>
src.gold +=<dlocal.iade>
src.sysmessage @,,1 İsteğiniz kaldırıldı. Paranız geri iade edildi.(<dlocal.iade>)
	sdialog d_istekyap
return 1
endif
if !(<isnum <argtxt1>>)
src.sysmessage @0481,,1 Sadece rakam girebilirsiniz.
return 1
endif
if (<src.restest <dargtxt1> <db.row.0.istekesya>>)
local.para <eval (<db.row.0.deger>*<dargtxt1>)>
serv.newitem <db.row.0.istekesya>,<dargtxt1>,<ref1.findlayer.21.uid>
src.consume <dargtxt1> <db.row.0.istekesya>
src.gold +=<dlocal.para>
local.adet <eval <db.row.0.adet>-<dargtxt1>>
	if (<dlocal.adet> < 1)
	db.execute "delete from istek where id = "<dsrc.ctag0.istek_select>"";
	src.sysmessage @0481,,1 <ref1.name> isteği tamamlandı.
	else
	db.execute "update istek set adet="<dlocal.adet>" where id = "<dsrc.ctag0.istek_select>"";
	src.sysmessage @0481,,1 <ref1.name> istek listesi güncellendi.
	endif
else
src.sysmessage @0481,,1 Çantanızda <dargtxt1> adet <db.row.0.istekesyaname> yok
endif

on 10002
src.targetf f_istekyap

on 10003
local.para <eval (<dargtxt2>*<dargtxt3>)>
if !(<isnum <argtxt2>>)
src.sysmessage @0481,,1 Sadece rakam girebilirsiniz.
elif !(<isnum <argtxt3>>)
src.sysmessage @0481,,1 Sadece rakam girebilirsiniz.
elif (<isempty <dargtxt2> || <dargtxt3>)>
src.sysmessage @,,1 Boş bırakamazsınız.
elif (<src.gold> <= <dlocal.para>)
src.sysmessage @,,1 Yeteri kadar bakiyeniz yok. (<f_bolukayir <dlocal.para>>) gereklidir.
else
ref1=<src.ctag0.istek_esya>

src.istek_yap <ref1.baseid>,<argtxt3>,<argtxt2>

src.sysmessage @,,1 İsteğiniz eklendi.
endif
src.ctag0.istek_esya
	sdialog d_istekyap

[function f_istekyap]
if <argo.isitem>
	if (<argo.topobj> == <src>)
		src.ctag0.istek_esya <argo>
		sdialog d_istekyap,10001
		src.sysmessage @,,1 İstek eşyanız seçildi.
	else
	src.sysmessage @,,1 <argo.name> çantanızda değil.
	endif
else
src.sysmessage @,,1 <argo.name> bir eşya değil
endif


[FUNCTION f_bolukayir] 
IF (<EVAL STRLEN(<ARGS>)> > 3)
LOCAL.STRLEN=<EVAL STRLEN(<ARGS>)>
LOCAL.CURRENTDIGIT=<EVAL STRLEN(<ARGS>)>
WHILE (<LOCAL.CURRENTDIGIT> > 3)
ARGS=<STRSUB 0 <EVAL (<LOCAL.CURRENTDIGIT> - 3)> <ARGS>>.<STRSUB <EVAL (<LOCAL.CURRENTDIGIT> - 3)> 50 <ARGS>>
LOCAL.CURRENTDIGIT -= 3
ENDWHILE
ENDIF
RETURN <ARGS>

[function kacdene]
if ((strlen(<argv1>)) > <dargv0>)
return <strsub 0 <argv0> <argv1>>...
else
return <argv1>
endif
Expert
34.0001
bunu player vendora entegre etmek lazım, isteyen gelip satsın.
Members
14.4
güzel fikir.
World of UO'da .market şeklinde çalışan bi sistemdi sanırım , sphere'de alternatif olması iyi olmuş.

Üye Ol veya Giriş Yap

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