Neran
03ofkosucusu
Merhaba Arkadaşlar,
Son günlerde gördüğüm kadarı ile refx ve obj kullanımlarında birtakım yapıyoruz. Şimdi sizlere elimden geldiği kadar refx ve obj kullanımlarını anlatmak istiyorum ki bu hataları yapmayalım.
Öncelikle;
Obj ile başlayalım.
Obj(ing=object) teriminin türkçe karşılığı nesne demektir. Obj herzaman uid olarak belirtilir ve belirttiğimiz uid için sorgu, yükleme, çıkarma gibi işlemler yapmamızı kolaylaştırır. Obj değişken bir değerdir. Save’lere girer, kayıt altındadır ve her değer girişinde değişir. obj ile yapacağımız herşeyi try uid, serv.uid gibi komutlarla da yapabiliriz fakat kompleks olarak çok değişkenli sistemler kullanırken 1 tanecik obj bize yetmeyebiliyor. try uid kullanmakta bir sürü < > işaretleri ile kafamızı karıştırmaya yaradığı için burada karşımıza refx terimi geliyor.
Refx kullanımıda x yerine dilediğimiz bir sayı kullanabiliriz.
örnek verelim
[defname def_quest_vendor_spherewiki]
vendor1=12345
vendor2=11111
vendor3=54321
vendor4=2222
Kod:Son günlerde gördüğüm kadarı ile refx ve obj kullanımlarında birtakım yapıyoruz. Şimdi sizlere elimden geldiği kadar refx ve obj kullanımlarını anlatmak istiyorum ki bu hataları yapmayalım.
Öncelikle;
Obj ile başlayalım.
Obj(ing=object) teriminin türkçe karşılığı nesne demektir. Obj herzaman uid olarak belirtilir ve belirttiğimiz uid için sorgu, yükleme, çıkarma gibi işlemler yapmamızı kolaylaştırır. Obj değişken bir değerdir. Save’lere girer, kayıt altındadır ve her değer girişinde değişir. obj ile yapacağımız herşeyi try uid, serv.uid gibi komutlarla da yapabiliriz fakat kompleks olarak çok değişkenli sistemler kullanırken 1 tanecik obj bize yetmeyebiliyor. try uid kullanmakta bir sürü < > işaretleri ile kafamızı karıştırmaya yaradığı için burada karşımıza refx terimi geliyor.
Refx kullanımıda x yerine dilediğimiz bir sayı kullanabiliriz.
örnek verelim
[defname def_quest_vendor_spherewiki]
vendor1=12345
vendor2=11111
vendor3=54321
vendor4=2222
[function spherewiki]
ref1=<def.vendor1>
ref2=<def.vendor2>
ref3=<def.vendor3>
ref4=<def.vendor4>
if (<ref1.dtag0.esya> > <ref2.dtag0.esya>) && (<ref3.dtag0.gorev_comp> >= <ref4.dtag0.gorev_comp>)
serv.f_quest_basla
else
sysmessage @1153 <ref1.name> ve <ref2.name> quest icin hazır değiller
endif
Burada ref kullanarak çok basit bir şekilde komplex bir sorgulama yaptım. 4 tane npcnin görev sayılarını kontrol ettim ve basit bir sorgu ile function u bitirdim. eğer bu scripti try uid ile yapacak olsaydım bir sürü < > işaretleri ile uğraşacaktım ve hata yapma payım daha çok olacaktı. Fakat ref kullanımlarında bence kolaylık 2. planda. 1. planda olan aynı anda çok fazla eşya, karakter veya bölgeye etki edebilmesi.
Ref kullanırken dikkat etmemiz gereken en önemli olay şudur. Refler asla kaydedilmezler. Bu özellikleri ‘local’ kullanımına benzer. Refler o anda kullanılı. İşlem bitince yok olur. Obj ile tek farkı da budur. Obj 1 tanedir savelere girer, refx leri dilediğimiz kadar arttırabiliriz asla kaydedilmezler.