Discord sunucumuz açılmıştır, hepinizi bekleriz

https://discord.gg/43gGDQe6tS

Döngü ve Değişken hakkında bir sıkıntım!

Eklenti sorunlarınız ve özel eklenti istekleriniz

Moderatör: Moderatörler

Kullanıcı avatarı

Konu Sahibi
cbmarksman
Mesajlar: 92
Kayıt: Prş Ağu 20, 2020 11:24 pm

Döngü ve Değişken hakkında bir sıkıntım!

Mesaj gönderen cbmarksman »

Kod: Tümünü seç

enum MapsYerler {
	mapName[32],origin1[3],origin2[3],origin3[3],origin4[3],,origin5[3]
}
new const Maps[][MapsYerler] = {
	{"jail_buyukisyan_dark", {-1488, 914, -1841}, {-2741, -574, 110},{1274,31,-455},{-1544,-450,-10},{-245,2394,-413}}
}
Ben yukarıdaki gibi bazı işlemler yaptırdım ve bu işlemleri şununla kontrol sağlıyorum

Kod: Tümünü seç

	for(new i = 0; i < sizeof(maps); i++) {
		if(equali(mapname, Maps[i][mapName])) {
		}
		
	}
Aradaki equal kısmına kadar geldim ama gerisini getiremedim jail_buyukisyan_dark haritasına sahip 5 tane origin noktam var bu noktalardan bazılarını random seçicem ve

Kod: Tümünü seç

		if(equali(mapname, Maps[i][mapName])) {
		}
şu kısımda işlem uygulattırıcam ama nasıl random çekeceğimi ve oradaki originleri nasıl tutacağımı bir türlü yapamadım.

Link:
Linklerini gizle
Linki Kopyala
Kullanıcı avatarı

Colditz
Mesajlar: 2574
Kayıt: Çrş Ağu 23, 2017 9:17 pm

Döngü ve Değişken hakkında bir sıkıntım!

Mesaj gönderen Colditz »

Neden bunları ini dosyasıyla yapmıyorsun?

Link:
Linklerini gizle
Linki Kopyala
Kullanıcı avatarı

bestcore
Mesajlar: 1625
Kayıt: Cmt Eyl 30, 2017 12:44 pm
Konum: Samsun

Döngü ve Değişken hakkında bir sıkıntım!

Mesaj gönderen bestcore »

Colditz yazdı: Sal Şub 02, 2021 2:01 am Neden bunları ini dosyasıyla yapmıyorsun?
Örnek atar mısın? Bende başka bir işlemim için kullanacağımda.

Link:
Linklerini gizle
Linki Kopyala
Kullanıcı avatarı

Konu Sahibi
cbmarksman
Mesajlar: 92
Kayıt: Prş Ağu 20, 2020 11:24 pm

Döngü ve Değişken hakkında bir sıkıntım!

Mesaj gönderen cbmarksman »

Colditz yazdı: Sal Şub 02, 2021 2:01 am Neden bunları ini dosyasıyla yapmıyorsun?
Oda olur senin eklentinden yola çıkarak bunu yaptım fakat ini içerisindeki kısımları parse ile okuyorsun sanırım fakat onlarıda çektiririm okey ama bu çektirdiklerimi random seçmem gerekiyor bunu nasıl yapacağım acaba yardımcı olurmusun ayrıyetten set_entvar(Entity, var_origin)'inde kullanıcam bunları

Kod: Tümünü seç

	new szFileName[45];
	get_localinfo("amxx_configsdir", szFileName, charsmax(szFileName));
	add(szFileName, charsmax(szFileName), "/extraitemloc.ini");
	
	if(!file_exists(szFileName)) {
		pause("d");
		log_amx("Dosya bulunamadigi icin BOX olusturulamadi: %s", szFileName);
		return PLUGIN_HANDLED
	}
	rh_get_mapname(szNowMapName, charsmax(szNowMapName), MNT_TRUE);
	new iFile = fopen(szFileName, "rt");

	if(iFile) {
		new szBuffer[256], szMapName[32]

		while(!feof(iFile)) {
			fgets(iFile, szBuffer, charsmax(szBuffer));
			trim(szBuffer);

			if(szBuffer[0] == EOS || szBuffer[0] == ';') {
				continue;
			}

			parse(szBuffer, szMapName, charsmax(szMapName));

			if(!equal(szNowMapName, szMapName)) {
				continue;
			}
			
		}
		fclose(iFile);
	}

Link:
Linklerini gizle
Linki Kopyala
Kullanıcı avatarı

Colditz
Mesajlar: 2574
Kayıt: Çrş Ağu 23, 2017 9:17 pm

Döngü ve Değişken hakkında bir sıkıntım!

Mesaj gönderen Colditz »

Alın size örnek, originleri çekerken şu şekilde çekebilirsin.
set_entvar(id, var_origin, flOrigin[FIRST]);
veya rastgele?
set_entvar(id, var_origin, flOrigin[random_num(FIRST, FIFTH)]);

İni Dosyası ( 5 origin olmalı )

Kod: Tümünü seç

de_dust2 "-1488 914 -1841" "-2741 -574 110" "1274 31 -455" "-1544 -450 -10" "-245 2394 -413"
Eklenti

Kod: Tümünü seç

#include <amxmodx>

enum _:OriginN {
	FIRST,
	SECOND,
	THIRD,
	FOURTH,
	FIFTH
};

new Float:flOrigin[OriginN][3];

public plugin_precache() {
	new szFileName[32];
	get_localinfo("amxx_configsdir", szFileName, charsmax(szFileName));
	add(szFileName, charsmax(szFileName), "/file.ini");

	if(!file_exists(szFileName)) {
		pause("d");
		return;
	}

	new iFile = fopen(szFileName, "rt");

	if(iFile) {
		new szBuffer[MAX_FMT_LENGTH], szMapName[32], szOrigins[OriginN][32], szCurrentMap[32];
		get_mapname(szCurrentMap, charsmax(szCurrentMap));

		while(!feof(iFile)) {
			fgets(iFile, szBuffer, charsmax(szBuffer));
			trim(szBuffer);

			parse(szBuffer, szMapName, charsmax(szMapName), szOrigins[FIRST], charsmax(szOrigins[]), szOrigins[SECOND], charsmax(szOrigins[]),
				szOrigins[THIRD], charsmax(szOrigins[]), szOrigins[FOURTH], charsmax(szOrigins[]), szOrigins[FIFTH], charsmax(szOrigins[]));

			if(!equali(szCurrentMap, szMapName)) {
				continue;
			}

			for(new i = FIRST, szOrCo[3][32]; i <= FIFTH; i++) {
				parse(szOrigins[i], szOrCo[0], charsmax(szOrCo[]), szOrCo[1], charsmax(szOrCo[]), szOrCo[2], charsmax(szOrCo[]));

				for(new p = 0; p < 3; p++) {
					flOrigin[i][p] = str_to_float(szOrCo[p]);
				}
			}
		}
		fclose(iFile);
	}
}

Link:
Linklerini gizle
Linki Kopyala
Kullanıcı avatarı

Konu Sahibi
cbmarksman
Mesajlar: 92
Kayıt: Prş Ağu 20, 2020 11:24 pm

Döngü ve Değişken hakkında bir sıkıntım!

Mesaj gönderen cbmarksman »

Colditz yazdı: Sal Şub 02, 2021 1:47 pm Alın size örnek, originleri çekerken şu şekilde çekebilirsin.
set_entvar(id, var_origin, flOrigin[FIRST]);
veya rastgele?
set_entvar(id, var_origin, flOrigin[random_num(FIRST, FIFTH)]);

İni Dosyası ( 5 origin olmalı )

Kod: Tümünü seç

de_dust2 "-1488 914 -1841" "-2741 -574 110" "1274 31 -455" "-1544 -450 -10" "-245 2394 -413"
Eklenti

Kod: Tümünü seç

#include <amxmodx>

enum _:OriginN {
	FIRST,
	SECOND,
	THIRD,
	FOURTH,
	FIFTH
};

new Float:flOrigin[OriginN][3];

public plugin_precache() {
	new szFileName[32];
	get_localinfo("amxx_configsdir", szFileName, charsmax(szFileName));
	add(szFileName, charsmax(szFileName), "/file.ini");

	if(!file_exists(szFileName)) {
		pause("d");
		return;
	}

	new iFile = fopen(szFileName, "rt");

	if(iFile) {
		new szBuffer[MAX_FMT_LENGTH], szMapName[32], szOrigins[OriginN][32], szCurrentMap[32];
		get_mapname(szCurrentMap, charsmax(szCurrentMap));

		while(!feof(iFile)) {
			fgets(iFile, szBuffer, charsmax(szBuffer));
			trim(szBuffer);

			parse(szBuffer, szMapName, charsmax(szMapName), szOrigins[FIRST], charsmax(szOrigins[]), szOrigins[SECOND], charsmax(szOrigins[]),
				szOrigins[THIRD], charsmax(szOrigins[]), szOrigins[FOURTH], charsmax(szOrigins[]), szOrigins[FIFTH], charsmax(szOrigins[]));

			if(!equali(szCurrentMap, szMapName)) {
				continue;
			}

			for(new i = FIRST, szOrCo[3][32]; i <= FIFTH; i++) {
				parse(szOrigins[i], szOrCo[0], charsmax(szOrCo[]), szOrCo[1], charsmax(szOrCo[]), szOrCo[2], charsmax(szOrCo[]));

				for(new p = 0; p < 3; p++) {
					flOrigin[i][p] = str_to_float(szOrCo[p]);
				}
			}
		}
		fclose(iFile);
	}
}
Çok teşkkürler

Kod: Tümünü seç

set_entvar(id, var_origin, flOrigin[random_num(FIRST, FIFTH)]);
bunu

Kod: Tümünü seç

				for(new p = 0; p < 3; p++) {
					flOrigin[i][p] = str_to_float(szOrCo[p]);
				}
bunun arasındamı kullanmalıyım ?

Link:
Linklerini gizle
Linki Kopyala
Kullanıcı avatarı

Colditz
Mesajlar: 2574
Kayıt: Çrş Ağu 23, 2017 9:17 pm

Döngü ve Değişken hakkında bir sıkıntım!

Mesaj gönderen Colditz »

Hayır public bölümünde (isim değiştirme dışında) hiçbir yere dokunma. Origin çekeceğin zaman [0] [1] yapmak yerine direkt attığım örnekteki gibi çekebilirsin.

örneğin şu şekilde;

Kod: Tümünü seç

Isinla(const pPlayer) {
	//Rastgele Işınlama
	set_entvar(pPlayer, var_origin, flOrigin[random_num(FIRST, FIFTH)]);

	//veya 5. origini katmak istemiyorsam.
	set_entvar(pPlayer, var_origin, flOrigin[random_num(FIRST, FOURTH)]);

	// 2. origine ışınlayacaksam
	set_entvar(pPlayer, var_origin, flOrigin[SECOND]);
}

Link:
Linklerini gizle
Linki Kopyala
Kullanıcı avatarı

Konu Sahibi
cbmarksman
Mesajlar: 92
Kayıt: Prş Ağu 20, 2020 11:24 pm

Döngü ve Değişken hakkında bir sıkıntım!

Mesaj gönderen cbmarksman »

Colditz yazdı: Sal Şub 02, 2021 2:03 pm Hayır public bölümünde (isim değiştirme dışında) hiçbir yere dokunma. Origin çekeceğin zaman [0] [1] yapmak yerine direkt attığım örnekteki gibi çekebilirsin.

örneğin şu şekilde;

Kod: Tümünü seç

Isinla(const pPlayer) {
	//Rastgele Işınlama
	set_entvar(pPlayer, var_origin, flOrigin[random_num(FIRST, FIFTH)]);

	//veya 5. origini katmak istemiyorsam.
	set_entvar(pPlayer, var_origin, flOrigin[random_num(FIRST, FOURTH)]);

	// 2. origine ışınlayacaksam
	set_entvar(pPlayer, var_origin, flOrigin[SECOND]);
}
Teşekkür ederim bunu bilgeri bana kattığın için ama bu şekilde koordinat belirleyerek zor oluyor istediğim gibi olmuyor bazı eklentilerden örnek alara menü ile entity oluşturdum ve bunu sağa sola yukarı aşağı vb. götürebiliyorum ondada sıkıntı yok örnek veriyorum kaydedicem hadi otomatik kayıtta yapmayalım değerleri say'a yazdırayım onu alayım elimle yazdırayım örnek çıktım şu şekilde

Kod: Tümünü seç


-2139.838 -179.635 65.001 48.000 0.000 // x y z - sağ sola çevirme(angles) , 90 derece

bunlarıda geldim senin yapmış olduğun .ini'ye yazdırdım örnek şu şekilde

Kod: Tümünü seç

de_dust2 "-2139.838 -179.635 65.001 48.000 0.000"
bu şekilde tamam şimdi 1 tane origin belirledim yan yanada devam edebilir 5'e kadar fakat hadi bunlarıda random seçtirdim diyelim ama onların içerisindeki orijinleri ve o sağa sola döndürme ve 90 dereceyi nasıl filtre yapabilirim ? yada her haritaya farklı bir .ini dosyası açıp sadece

Kod: Tümünü seç

-2139.838 -179.635 65.001 48.000 0.000
-2139.838 -179.635 65.001 48.000 0.000
-2139.838 -179.635 65.001 48.000 0.000
-2139.838 -179.635 65.001 48.000 0.000
alt alta bunları yazdırıp bunların içerisinden 1 tanesini random seçip işlem uygulatsak umarım dediğimi anlayabilmişindir
En son cbmarksman tarafından Sal Şub 02, 2021 4:47 pm tarihinde düzenlendi, toplamda 1 kere düzenlendi.

Link:
Linklerini gizle
Linki Kopyala
Kullanıcı avatarı

Colditz
Mesajlar: 2574
Kayıt: Çrş Ağu 23, 2017 9:17 pm

Döngü ve Değişken hakkında bir sıkıntım!

Mesaj gönderen Colditz »

İnide originleri alt alta yazma muhabbetini anlamadım.

Link:
Linklerini gizle
Linki Kopyala
Kullanıcı avatarı

Konu Sahibi
cbmarksman
Mesajlar: 92
Kayıt: Prş Ağu 20, 2020 11:24 pm

Döngü ve Değişken hakkında bir sıkıntım!

Mesaj gönderen cbmarksman »

Colditz yazdı: Sal Şub 02, 2021 4:46 pm İnide originleri alt alta yazma muhabbetini anlamadım.
Şİimdilik manuel yapalım configs/jail_buyukisyan_dark_entity.ini dosyası içerisinde
alt alta origin , sağ sol ayarları yazdırıcam diyelim

-2139.838 -179.635 65.001 48.000
-2139.838 -179.635 65.001 48.000
-2139.838 -179.635 65.001 48.000
-2139.838 -179.635 65.001 48.000
-2139.838 -179.635 65.001 48.000
-2139.838 -179.635 65.001 48.000
-2139.838 -179.635 65.001 48.000

bunları farklı olduğunu düşün
bunlardan 1 tanesini random olarak seçip seçtiği bilgilere göre entity oluşturucam x y z angles ayarı takıldığın bir yer olursa söyle lütfen

Link:
Linklerini gizle
Linki Kopyala
Cevapla