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.
Expert
34.0001
For döngüsünün altındaki ilk return 1 i kaldırırsan çözülecektir.
onu kaldırdığım zaman 1den 20ye kadar tüm var.instance değerlerini 1 yapıyor.

ilk başta koymayı unuttum oradan biliyorum :)

Bu konu prudent tarafından düzenlendi(2011-07-25 06:07, 12 yıl önce)

Üye Ol veya Giriş Yap

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