selamlar.
önce yapmaya çalıştığım sistemi anlatayım kısaca. deneme amaçlı uo için basit bir instance sistemi hazırlamaya çalışıyorum. en az 3 kişilik party ile oyuncular birbirinden farklı (ama yapı olarak aynı) alanlarda boss tarzı yaratıklar öldürecekler. toplamda 20 farklı instance alanı oluşturdum, sistemin bir noktasında sorun yaşıyorum, diğer kısımlar sorunsuz. oyuncuları (varsa) boş olan instance'e yönlendirecek olan fonksiyon doğru çalışmıyor, neden doğru çalışmadığını da anlayamadım. kodu veriyorum, açıklamalarını da yanına yazdım, sorunlu kısmı da açıklayacağım aşağıda.
[function instance_yervarmi]
if (<isinparty>) && (<eval <party.members> > 2) // oyuncunun party'si var mı, varsa en az üç kişi var mı
for 1 20 // 20 alan var toplamda
if !(<var.instance<local._for>> == 1) // alan dolduğunda var'ı 1 yapıyor, burdan kontrol ettiriyorum doluluğu
try instance_baslat <var.instance<local._for>_co> // instance_baslat, başlatma fonksiyonu, sorunsuz çalışıyor o yüzden eklemedim, koordinata gönderiyor event veriyor vb. <args> kısmı ise koordinatını belirliyor (var.instance01_co, var.instance02_co vb. olarak kayıtlı koordinatlar)
try var.instance<local._for> 1 // alanın artık dolduğunu var değerine kaydediyor
try tag.hangi_instance instance<local._for> // oyuncunun hangi instance'da olduğunu tagliyor ki instance bitince var değerini sıfırlayabileyim
return 1
else
sysmessage @026,,1 Şu anda tüm alanlar doludur. (20/20)
return 1
endif
endfor
else
sysmessage @026,,1 Bir party içinde değilsiniz veya party'nizde üç (3)'ten az kişi var.
return 1
endif
toplamda 20 farklı instance alanı var, bu alanların doluluğunu var.instance01, var.instance02, var.instance03.... şeklinde kontrol ettirmeye çalışıyorum. var.instance01_co şeklinde olanlar ise önceden benim girdiğim instance koordinatları.
sorun ise script;
party durumunu vb. sorunsuz kontrol ediyor.
var değerlerini ve tag değerlerini doğru biçimde kaydediyor.
ancak 1den 20ye kadar var değerlerini kontrol etmesi gerekirken, 1. den sonra kontrol etmeyi bırakıyor. fonksiyon ilk çağırıldığındaki oyuncular, sorunsuz şekilde instance alanına gönderiliyor, eventlerini alıyorlar vb. (instance_baslat fonksiyonu yapıyor bu işlemleri, o kısımda sorun olmadığı için koymadım). ancak daha sonra çağırıldığında 19 tane daha boş alan olmasına rağmen boş alan yokmuş gibi "tüm alanlar doludur (20/20)" uyarısını veriyor.
yani kısaca ilk grubu yerlerine yolluyor, diğerlerini reddediyor. nerede yanlış yaptığımı anlayamadım bir türlü.
yardımlarınız için sağolun şimdiden.
edit: mesajı bitirmeden yolladım yanlışlıkla, devamını ekledim

code'da bazı kısımların arasına boş satır koydum, açıklamalarla karışmasın diye.