öncelikle mrb,

şimdi bir komutla 3 ayrı gate çıkardım ve bu gateden girenlere bir event verdim, sonra gittim bu eventi alanları serveri check ederek saydırdım,anons ettirdim.burda bir problem yok ama düşündümki yüksek sayıda player için bu fonksiyon uygulanırsa lag yapar.

şu şekilde yapmaya karar verdim ;

gateden geçince page sistemindeki gibi uidsini belirttiğim bir stone a bunları yazdırayım, sonra anons ettirirkende fonksiyon sayıyı bu taştan çeksin ve olası laga engel olayım.

* kısacası i_stone_bla ' yı nasl taglarım, bunu nasl okuturum ?
* var, local, tag arasındaki farklar nelerdir?
* bu tip istatistikleri yaptırmanın incelikleri nelerdir?

eyv.
Onu allclients ile bir komut kullandırıp komutda da kişinin etkinlikte olup olmadığını kontrol ettirebilirsin.ama ben yinede sorularını cevaplayım.

Local kullandığın script için geçerli.Yani rriptte local.x e değer verdiğin zaman o script bitince o local kendini siler.

Tag kişiye veya iteme kayıtlanır ve sadece o item ve kişi üzerinden ulaşılabilir.

Var ise evrenseldir.save dosyalarında sphere_data.scp ye kayıt edilir.Heryerden ulaşılabilir.
bir eşya yarattınız mesela uidine 06aab diyelim. Bu eşyanın silinmemesi gerekmektedir.

gatein on=@stepine

for 1 25 // 25 kişi için geçerlidir.
uid.06aab.tag.girenuid<dlocal._for> <src.uid>
endfor

diye ekleyin daha sonra komuta

gelin mesela

[function duyuruyarisma]
for 1 25
uid.06aab.tag.girenuid<dlocal._for> sysmessage @07a1 asdasdadasdasd
endfor

fakat ödül verdikten sonra bu tagları silmelisiniz. Eğer otomatik bir sistem kullanıyosanız bu forlar gibi hepsini silin eğer otomatik değilse şöle bi functionla silersiniz

[function yarismatagsil]
for 1 25
uid.06aab.tag.girenuid<dlocal._for>
endfor

Çalışır gibi geliyo ama hata olursa söylersiniz
''uid.06aab.tag'' tmm aradığım kod buydu.

on=@step
for 1 25 // 25 kişi için geçerlidir.

hoca bu 25 kare içerisindeki player anlamına gelmiyormu?
kullanımındaki mantığı anlayamadım.

step için
on=@step
if
..
.. // geçmesine onay verdikten sonra
uid.06aab.tag.girenkisi <eval <uid.06aab.tag.girenkisi>+1>
endif

duyuru içinde

[function xxxxx]
serv.allclients sysmessage <eval <uid.06aab.tag.girenkisi> kisi zımbırtıda yerini aldı.

şeklinde düşündüm bu şekilde de olurmu sphere elimin altında olmadığı için bakamadım.

basic michael hocalar eyv.

Bu konu G-String tarafından düzenlendi(2009-04-30 02:02, 15 yıl önce)
hayır dediklerimi yap

for öle kareleri saymaz altında bulunan sayıları sayar orda

for 1 25 == 1 den 25 e kadar
<dlocal._for> forun aldığı değerdir

yani sen eğer tagla yapıcak olsaydın bunu 1. boşsa 1 e doluysa 2 ye 2 doluysa 3 e falan gibi bir sürü iş yapcaktın bu kendi sıralar.

dediğin duyuru olmaz verdiğim duyuruyu incele
Novice
0.1
niye böyle birşey yapıyorsun onuda anlamadımki direk sdece katılım sayısıysa amacın,

ON=@step
var.katilim ++
serv.b @,,1 <dvar0.katilim> kişi katılmış durumda

demen yeterli olr
sen olaya yanlış yerden atıldın :D geri çık mert geri çık :D
Novice
0.1
niye aynı işemi yapmoıyormu bu arada


Tag: kişi ve itemlere kaydedilen değişkenlerdir. Her türlü değeri alabiirler
Var:sunucuya kaydedilen değişkenlerdir. Her türlü değeri alabilirler.
Ctag : Sadece Oyuncular üzerine kaydedilen geçici değişkenlerdir. Oyuncu oyndan çıktığı anda silinir.
Local : anlık değişkenlerdir. tekrar çağrılması gerekidğinde call fonksyonu ile çağrılır.
tamam hocalar istediğim şeyi hallettim eyvallah.

yeni bi sorum da var çok oluyorsam kusura bakmayın yeniyimde :)

şimdi serv.newnpc ile bi npc çıkarıyoruz ya onu function ile nasıl sileriz?

çıkan npcyi uid olarak taglatıp sildirmeyi düşündüm ama mesela <tag.npcnuid 45416> olan bi npcyi başka bi fonksiyonla nasıl silerim kodu bulamadım.

Bu konu G-String tarafından düzenlendi(2009-04-30 19:37, 15 yıl önce)
serv.newnpc c_llama
new.p <src.p>
src.tag.binek <new>
try uid.<src.tag.binek>.remove

Şeklinde yapabilirsin.Tek işlem yapacaksan try kullan.Ama çok işlem kullanacaksan aşağıdaki gibi yap.

serv.newnpc c_llama
new.p <src.p>
src.tag.binek <new>
ref1=<src.tag.binek>
ref1.name xxx
ref1.color 07a1
ref1.go britain
..
..
..

Yani uidi ref1 e kaydedip direk kullanabilirsin.Ref1 ref2 ... ref999 şeklinde istediin kadar kullanabilirsin.

Tabii ki yukarıdaki scriptte sen tagı sorduğun için öyle yaptık.Yoksa zaten taga refe gerek yok.

serv.newnpc c_llama
new.p <src.p>
new.name xxx
new.color 07a1
new.go britain
..
..
..

Üye Ol veya Giriş Yap

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