Merhaba,
alttaki linkte referanslar mevcut. çok fazla referans olduğu için hepsnin içinde çalışma durumlarını farklı farklı anlatıyor.
Genelde hepsinde verdiği ortak mantık şu : src,act,argo,i gibi ve return 1 yapınca neler olduğunu belirtiyor.
https://wiki.spherecommunity.....ory:Reference_Compendium
Şimdi bahsettiğin örneklere gelirsek.
distance iki objenin arasındaki mesafeyi sorgulamada kullanılıyor. genel mantık bu
@dclick , @mount , @npcseenewplayer , @resurrect sorgulamalarındada bu mantık aynı, yine mesafeyi ölçüyorsun.
Burada sadece src kullanırsan, src.distance diyelim.
örn : src.distance
@dclick //tıklayan kişi ? //tıklayan kişinin mesafesi
@mount // binmeye çalışan kişi. // binmeye çalışan kişinin mesafesi.
@npcseenewplayer // görülen oyuncu. // görülen oyuncunun mesafesi. ( burada çünkü bu işlemi başlatan npc, oyuncu değil ters mantık gibi geliyor ilk bakışta)
@resurrect // dirilen kişi // dirilecek oyuncunun mesafesi. ( bu kendin de olabilirsin yada başkası )
Yinede mesafe farklı farklı çalışmadı, sadece kullandığın referanstaki kullanım mantığı ile sorgulamalar değişti. anlam aynı : mesafe
Gelelim tag0'a ; Taglar aslında sabit diyebiliriz. verdiğin tagdaki yazıyı sorgulamanda yarıyor.
diyelimki oyuncuda tag.deneme = 3 var.
@resurrect
Kod:
if (<eval <src.tag0.deneme>> == 3) // diyelim bu tag varsa oyuncu reslenmesin. ( 3 e eşitse )
src.sysmessage @38,,1 Senin tagın var abi reslenemezsin.
return 1
endif
@dclick
Kod:
if !(<eval <src.tag0.deneme>> == 3) // diyelim bu tag varsa ve 3'e eşitse tıklasın. burada sorguyu eşit değilse yaptım.
src.sysmessage @38,,1 Senin tagın yok tıklayamazsın. // diyelimki vip stone yaptın sadece vipler açacak :)
return 1
endif
@npcseenewplayer
Kod:
if (<src.tag0.deneme>) // mesela tag değerinin bir değeri yok diyelim. sadece oyuncuda tag.deneme var. tag.deneme = 1 , tag.deneme = 3 , tag.deneme = tagı var abi veya tag.deneme = nioble hiç önemli değil.
sysmessage @,,1 Seni görüyorum <src.name> çünkü tagın var.
return 0
endif
return 1 // görmesin diğerlerini
@mount
Kod:
if (<src.tag0.deneme>)
sysmessage @,,1 <src.name> senin tagın var bu bineğe binmen yasak kardeşim :D.
return 1
endif
Consume olayıda yine bu referanslarda sorgu olarak değilde yapıldığı zaman kullanılır.
reslendin 500 odunun gitti veya bineğe binmek için 500 odun lazım gibi.
bunun sorgusunuda (<src.findid.i_odun.amount> >= 500 )şeklinde yaptırabilirsin.
bkz:
Kod:
on=@mount
if (<src.findid.i_odun.amount> >= 500 )
src.consume 500 i_odun
else
src.sysmessage @38,,1 Binebilmek için 500 odununuz yok.
return 1
endif.