Arkadaşlar dialogda
dtext 130 53 57 Adet?
BURAYA
button 19 69 5601 5605 1 0 1
Altına yazdığı rakam kadar alması için ne yazacağım?
tam anlamadım ama bundan bahsediyorsun sanırım

dtextentry 100 100 90 20 990 1 5000
button 100 80 4006 4007 1 0 1
işlem yaptırırken ise


on=1
if !(<isnum <argtxt[1]>>)
src.hata Sadece rakam kullanabilirsiniz.
src.targ.sdialog d_XXXXXXXXXXX  ------> yukarıdaki dialog ismi
elseif (<eval <argtxt[1]>> < 1)
src.hata Hatalı bir rakam girdiniz.
src.targ.sdialog XXXXXXXXXXX  ------> yukarıdaki dialog ismi
else
src.newitem i_XXXXXXX,<eval <argtxt[1]>> 
new.bounce
return 1
endif
endif

böyle olcağını düşünüyorum. yanlış olma ihtimali yüksek ama :)
dw4yne : tam anlamadım ama bundan bahsediyorsun sanırım

dtextentry 100 100 90 20 990 1 5000
button 100 80 4006 4007 1 0 1
işlem yaptırırken ise


on=1
if !(<isnum <argtxt[1]>>)
src.hata Sadece rakam kullanabilirsiniz.
src.targ.sdialog d_XXXXXXXXXXX  ------> yukarıdaki dialog ismi
elseif (<eval <argtxt[1]>> < 1)
src.hata Hatalı bir rakam girdiniz.
src.targ.sdialog XXXXXXXXXXX  ------> yukarıdaki dialog ismi
else
src.newitem i_XXXXXXX,<eval <argtxt[1]>> 
new.bounce
return 1
endif
endif

böyle olcağını düşünüyorum. yanlış olma ihtimali yüksek ama :)
Malesef olmadı.
Bak dialog böle
[dialog d_mama]
0,0
nomove
noclose
resizepic 2 2 5170 430 210
dtext 40 4 47 Sayin <src.name>
dtext 40 30 0481 Bineklerinizi iyi besleyin!
tilepic 38 65 <serv.itemdef.i_hay_sheaf.id>
tilepic 38 140 <serv.itemdef.i_fruit_carrot.id>
dtext 218 69 058 Eger almak istediginiz
dtext 218 98 058 binek ise "binek alacam"
dtext 218 127 058 komutunu kullanabilirsiniz.
dtext 130 53 57 Adet?
dtextentry 134 69 90 20 990 1 5000
button 19 69 5601 5605 1 0 1
button 19 144 5601 5605 1 0 2
button 273 151 5004 5006 1 0 3

[dialog d_mama_button]
on=1
if !(<isnum <argtxt[1]>>)
src.hata Sadece rakam kullanabilirsiniz.
src.targ.sdialog d_mama
elseif (<eval <argtxt[1]>> < 1)
src.hata Hatalı bir rakam girdiniz.
src.targ.sdialog d_mama
else
src.newitem i_hay_sheaf,<eval <argtxt[1]>> 
new.bounce
return 1
endif
endif
Tamam " dtextentry 134 69 90 20 990 1 5000 " 5000 yazıyor ama button 1e " button 19 69 5601 5605 1 0 1 " tıkladığım zaman işlevini
gerçekleştirmiyor..
[dialog d_mama_button]
burası
[dialog d_mama button]
olacak.
Dostum gözümden kaçmış :D
Dediğin gibi yaptım fakat kaç yazarsan yaz 1 tane veriyor :)

[dialog d_mama button]
on=1
if !(<isnum <argtxt[1]>>)
src.sysmessage @33,,1 Sadece rakam kullanabilirsiniz.
src.targ.sdialog d_mama
elseif (<eval <argtxt[1]>> < 1)
src.sysmessage @33,,1 Hatalı bir rakam girdiniz.
src.targ.sdialog d_mama
else
src.newitem i_hay_sheaf,<eval <argtxt[1]>> 
new.bounce
return 1
endif
endif
src.newitem i_hay_sheaf,<eval <argtxt[1]>> 
şu bölümde virgülden sonrasında sıkıntı var tam olarak bilmiyorum argtxt'i malesef
src.newitem i_hay_sheaf,<eval <argtxt[1]>>,<src.findlayer(layer_pack).uid> bu sekilde dene olmuyorsa olayın basiti var. Bunu yapıyorsan ama new.bounce kullanma.

src.newitem i_hay_sheaf
new.amount <eval <argtxt[1]> // amount'a ekle ?
new.bounce

Bu konu ApachiStyle tarafından düzenlendi(2013-11-19 10:56, 10 yıl önce)
ApachiStyle : src.newitem i_hay_sheaf,<eval <argtxt[1]>>,<src.uid> bu sekilde dene olmuyorsa olayın basiti var. Bunu yapıyorsan ama new.bounce kullanma.

src.newitem i_hay_sheaf
new.amount <eval <argtxt[1]> // amount'a ekle ?
new.bounce
Dostum malesef dediğin gibi olmuyor!
Ben böle yaptım fakat çoklu vermiyor..
src.newitem  i_hay_sheaf,<argtxt[1]>,<src.findlayer(layer_pack)>

Havuç alırsan havuçta sıkıntı yok!,Istediğim gibi
Novice
12.5
serv.newitem  i_hay_sheaf,<argtxt[1]>
Mortal yukarıda verdiğim resmin aynısı oluyor,Acaba sphere sürümümdemi hata var?
Ve ben oyunda hiç bir npc'ye atak veremiyorum,Düşüncemle sürüm hatalı?

Novice
12.5
Resmi yeni gördüm öyle çıkarması normaldir.

serv.newitem i_x,2 buradaki 2 amount değerini verir.

[function newitem_x]
local.sayi = <argv[1]>
local.item = <argv[0]>
if !(<dlocal.sayi> == 0) && (<dlocal.sayi> == 1)
serv.newitem <local.item>
new.bounce
else
for 1 <dlocal.sayi>
serv.newitem <local.item>
new.bounce
endfor
endif

Bu şekilde kullanabilirsin; newitem_x i_hay_sheaf

Eğer yetkili bir karakter ile npc'ye saldırmaya çalışıyorsan invul'u kapa o şekilde dene.

Bu konu Mortal tarafından düzenlendi(2013-11-19 18:37, 10 yıl önce)
Mortal valla kusura bakma yapamadım.
Buraya scriptsi yazmamda fayda var sanırım..,Çünkü ben bu işlemi spk'de kullanıyorum.:
[SPEECH jobAnimal]
ON=BUY
	if (<distance> > 4)
			RETURN 1
		else
	src.dialog d_mama
ON=SELL
	MESSAGE @0481,,1 <src.sex Bay\Bayan> <src.name>
	SRC.SYSMESSAGE @058,,1 Vendorlara satis yapmazniz icin iletisime gecmeniz gereken " Tuccar " Dir.
	SRC.SYSMESSAGE @0481,,1 Benim komutum " binek alacam "

ON=*binek alacam*
	if (<distance> > 4)
			RETURN 1
		else
			DORAND 3
				src.sysmessage @0481,,1 Size nasıl yardımcı olabilirim?
				message @47 Merhaba <src.name>
				message @57,,1 Kaliteli binekler yok! :)
			ENDDO
				src.sysmessage @0481,,1 Bir defada en fazla 1 Binek alabilirsiniz.
				src.dialog d_binekvendor

[dialog d_mama]
0,0
nomove
noclose
resizepic 2 2 5170 430 270
dtext 40 4 47 Sayin <src.name>
dtext 40 30 0481 Bineklerinizi iyi besleyin!
tilepic 38 65 <serv.itemdef.i_hay_sheaf.id>
tilepic 38 120 <serv.itemdef.i_fruit_carrot.id>
tilepic 38 162 <serv.itemdef.i_deed_animal.id>
tilepic 38 205 <serv.itemdef.i_box_wood.id>
dtext 218 69 058 Eger almak istediginiz
dtext 218 98 058 binek ise "binek alacam"
dtext 218 127 058 komutunu kullanabilirsiniz.
dtextentry 134 123 90 20 990 2 ?
dtextentry 134 69 90 20 990 1 ?
dtextentry 134 165 90 20 990 3 ?
dtextentry 134 208 90 20 990 4 ?
button 19 69 5601 5605 1 0 1
button 19 123 5601 5605 1 0 2
button 19 165 5601 5605 1 0 3
button 19 208 5601 5605 1 0 4
button 273 160 5549 5550 1 0 5

[dialog d_mama button]
on=1
if !(<isnum <argtxt[1]>>)
src.sysmessage @33,,1 Sadece rakam kullanabilirsiniz.
esleif ((strlen(<argtxt[1]>)) > 3)  || ((strlen(<argtxt[1]>)) < 1)
src.sysmessage @33,,1 En az 1 En çok 3 haneli rakam yazabilirsiniz!
return 1
else
serv.newitem  i_hay_sheaf,<eval <argtxt[1]>>
new.bounce
return 1
endif
endif
On 2
if !(<isnum <argtxt[2]>>)
src.sysmessage @33,,1 Sadece rakam kullanabilirsiniz.
return 1
else
src.newitem i_fruit_carrot,<argtxt[2]>,<src.findlayer(layer_pack)>
new.bounce
return 1
endif
endif
On 3
if !(<isnum <argtxt[3]>>)
src.sysmessage @33,,1 Sadece rakam kullanabilirsiniz.
return 1
else
src.newitem i_deed_animal,<argtxt[3]>,<src.findlayer(layer_pack)>
new.bounce
return 1
endif
endif
on 4
if !(<isnum <argtxt[4]>>)
src.sysmessage @33,,1 Sadece rakam kullanabilirsiniz.
return 1
else
src.newitem i_box_wood,<argtxt[4]>,<src.findlayer(layer_pack)>
new.bounce
return 1
endif
endif
on 5
src.dialog d_binekvendor
Novice
12.5
dialog d_mama button]
on=1
if !(<isnum <argtxt[1]>>)
src.sysmessage @33,,1 Sadece rakam kullanabilirsiniz.
esleif ((strlen(<argtxt[1]>)) > 3)  || ((strlen(<argtxt[1]>)) < 1)
src.sysmessage @33,,1 En az 1 En çok 3 haneli rakam yazabilirsiniz!
return 1
else
src.newitem_x  i_hay_sheaf,<eval <argtxt[1]>>
return 1
endif
On 2
if !(<isnum <argtxt[2]>>)
src.sysmessage @33,,1 Sadece rakam kullanabilirsiniz.
return 1
else
src.newitem i_fruit_carrot,<argtxt[2]>,<src.findlayer(layer_pack)>
new.bounce
return 1
endif
On 3
if !(<isnum <argtxt[3]>>)
src.sysmessage @33,,1 Sadece rakam kullanabilirsiniz.
return 1
else
src.newitem_x i_deed_animal,<argtxt[3]>
return 1
endif
on 4
if !(<isnum <argtxt[4]>>)
src.sysmessage @33,,1 Sadece rakam kullanabilirsiniz.
return 1
else
src.newitem_x i_box_wood,<argtxt[4]>
new.bounce
return 1
endif
on 5
src.dialog d_binekvendor

[function newitem_x]
local.sayi = <argv[1]>
local.item = <argv[0]>
if !(<dlocal.sayi> == 0) && (<dlocal.sayi> == 1)
serv.newitem <local.item>
new.bounce
else
for 1 <dlocal.sayi>
serv.newitem <local.item>,<dlocal.sayi>
new.bounce
endfor
endif
Mortal çok teşekkürler..
Mesela başka bir vendorda böle kullanacak olursam
function newitem_x
'den farklı bişeymi yazmam lazım?
Mesela
function newitem_y
Yani diğer yazacağım scp ile karışırmı ?
Novice
12.5
hayır karışmaz. newitem_x <id>,<amount> şeklinde olacak yine.

Üye Ol veya Giriş Yap

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