Döngü ve Değişken hakkında bir sıkıntım!
Moderatör: Moderatörler
-
Konu Sahibi - 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!
Senin o yaptığın değişkene atama mantığı ile yapabilirsek iyi olur aslında
Link: | |
Linklerini gizle |
-
- 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!
Array kullanman gerekiyor. Array kullanımını weapon pick up eklentisinde bulabilirsin ya da google a "alliedmodders array" yazdığın zaman zaten mükemmel şekilde anlatılmış hâli var. Benzer şekilde yapacaksın.
Link: | |
Linklerini gizle |
-
Konu Sahibi - 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!
Bunu yapacak kadar bilgiye sahip değilim eve iyi anlatmış Yektanın reklam panosu eklentisinde şöyle bir kısım buldum buradan yola çıkabilirmiyiz ?Colditz yazdı: Sal Şub 02, 2021 4:59 pm Array kullanman gerekiyor. Array kullanımını weapon pick up eklentisinde bulabilirsin ya da google a "alliedmodders array" yazdığın zaman zaten mükemmel şekilde anlatılmış hâli var. Benzer şekilde yapacaksın.
Kod: Tümünü seç
public ObjeleriYukle(){
new map[32]
get_mapname(map, 31)
format(g_MapFile, sizeof(g_MapFile), "maps/%s.reklampano.cfg", map)
if (file_exists(g_MapFile)) {
new data[124], len
new line = 0
new coord[7][8]
new Float:origin[3]
new Float:originaldegistir[3];
new bodydegeri, skindegeri;
while((line = read_file(g_MapFile , line , data , 123 , len)))
{
if (len < 2 || data[0] == ';' || data[0] == '/')
continue;
parse(data, coord[0], 7, coord[1], 7, coord[2], 7, coord[3], 7, coord[4], 7, coord[5], 1, coord[6], 1)
origin[0] = (str_to_float(coord[0]))
origin[1] = (str_to_float(coord[1]))
origin[2] = (str_to_float(coord[2]))
originaldegistir[1] = (str_to_float(coord[3]))
originaldegistir[0] = 0.0
originaldegistir[2] = (str_to_float(coord[4]))
bodydegeri = (str_to_num(coord[5]))
skindegeri = (str_to_num(coord[6]))
ObjeleriOlustur(origin, bodydegeri, 0, originaldegistir, skindegeri)
}
}
}
Link: | |
Linklerini gizle |
-
- 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!
Hayır.
Kod: Tümünü seç
native read_file(const file[], line, text[], len, &txtlen = 0);
Note
This native is expensive. Consider the use of new file natives (fopen(), fgets(), etc.)
if purpose is to read several lines of a file.
Link: | |
Linklerini gizle |
-
Konu Sahibi - 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!
Sırasıyla hangi yolu izlemem gerektiğini söylüyebilirmisiniz peki ?Colditz yazdı: Sal Şub 02, 2021 5:16 pm Hayır.Kod: Tümünü seç
native read_file(const file[], line, text[], len, &txtlen = 0); Note This native is expensive. Consider the use of new file natives (fopen(), fgets(), etc.) if purpose is to read several lines of a file.
Link: | |
Linklerini gizle |
-
Konu Sahibi - 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!
Yada daha bir kısayol düşündüm şimdi sizin bana atmış olduğun eklentide 3 tane origini çekiyor ya onu 4 yapıp 4cüyü ayrı bir değişkene atasak daha kolay olur sanırımColditz yazdı: Sal Şub 02, 2021 5:16 pm Hayır.Kod: Tümünü seç
native read_file(const file[], line, text[], len, &txtlen = 0); Note This native is expensive. Consider the use of new file natives (fopen(), fgets(), etc.) if purpose is to read several lines of a file.
Kod: Tümünü seç
de_dust2 "-2139.838 -179.635 65.001 48.000"
Link: | |
Linklerini gizle |
-
Konu Sahibi - 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!
Arkadaşlar buna ihtiyacım var bakabilecek biri yokmu lütfen.
Link: | |
Linklerini gizle |
-
Konu Sahibi - Mesajlar: 92
- Kayıt: Prş Ağu 20, 2020 11:24 pm
-
- 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!
Buyur istediğin şey bu sanırım. İni dosyasından originleri çekiyor ve rastgele bunlardan birini çekiyorsun.
Bir ini dosyası
amxmodx/configs/origins/de_dust2.ini
Eklenti
Eklenti içinde nasıl rastgele çekebilirim?
Bir ini dosyası
amxmodx/configs/origins/de_dust2.ini
Kod: Tümünü seç
300 800 -1 400 100.2
500 100 -2 -4 500.1
132.0 500.2 900.2 4.3 5.0
Kod: Tümünü seç
#include <amxmodx>
enum _:ArrayData {
Float:X,
Float:Y,
Float:Z,
Float:ANGLES,
Float:DEGREE
};
new Array:g_aOrigins;
public plugin_precache() {
new szFileName[128], szMapName[32];
get_mapname(szMapName, charsmax(szMapName));
get_localinfo("amxx_configsdir", szFileName, charsmax(szFileName));
add(szFileName, charsmax(szFileName), fmt("/origins/%s.ini", szMapName));
if(!file_exists(szFileName)) {
pause("d");
return;
}
g_aOrigins = ArrayCreate(ArrayData);
new iFile = fopen(szFileName, "rt");
if(iFile) {
new szBuffer[MAX_FMT_LENGTH], szOrigins[ArrayData][32], szData[ArrayData];
while(!feof(iFile)) {
fgets(iFile, szBuffer, charsmax(szBuffer));
trim(szBuffer);
if(szBuffer[0] == EOS || szBuffer[0] == ';') {
continue;
}
parse(szBuffer, szOrigins[X], charsmax(szOrigins[]), szOrigins[Y], charsmax(szOrigins[]),
szOrigins[Z], charsmax(szOrigins[]), szOrigins[ANGLES], charsmax(szOrigins[]), szOrigins[DEGREE], charsmax(szOrigins[]));
szData[X] = str_to_float(szOrigins[X]);
szData[Y] = str_to_float(szOrigins[Y]);
szData[Z] = str_to_float(szOrigins[Z]);
szData[ANGLES] = str_to_float(szOrigins[ANGLES]);
szData[DEGREE] = str_to_float(szOrigins[DEGREE]);
ArrayPushArray(g_aOrigins, szData);
}
fclose(iFile);
}
}
public plugin_end() {
ArrayDestroy(g_aOrigins);
}
GetRandomOrigin(Float:flOrigin[]) {
new szData[ArrayData];
ArrayGetArray(g_aOrigins, random(ArraySize(g_aOrigins)), szData);
flOrigin[X] = szData[X];
flOrigin[Y] = szData[Y];
flOrigin[Z] = szData[Z];
flOrigin[ANGLES] = szData[ANGLES];
flOrigin[DEGREE] = szData[DEGREE];
}
Kod: Tümünü seç
//ArrayData olmak zorunda. Aksi takdirde hata verebilir. İni dosyasında 5 adet origin olmalı.
new Float:szData[ArrayData];
GetRandomOrigin(szData);
server_print("[%f][%f][%f][%f][%f]", szData[X], szData[Y], szData[Z], szData[ANGLES], szData[DEGREE]);
Link: | |
Linklerini gizle |
-
Konu Sahibi - 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!
Bu kodlar bir çok yerde işime yarayacak çok ama çok teşekkürlerColditz yazdı: Prş Şub 04, 2021 7:37 am Buyur istediğin şey bu sanırım. İni dosyasından originleri çekiyor ve rastgele bunlardan birini çekiyorsun.
Bir ini dosyası
amxmodx/configs/origins/de_dust2.iniEklentiKod: Tümünü seç
300 800 -1 400 100.2 500 100 -2 -4 500.1 132.0 500.2 900.2 4.3 5.0
Eklenti içinde nasıl rastgele çekebilirim?Kod: Tümünü seç
#include <amxmodx> enum _:ArrayData { Float:X, Float:Y, Float:Z, Float:ANGLES, Float:DEGREE }; new Array:g_aOrigins; public plugin_precache() { new szFileName[128], szMapName[32]; get_mapname(szMapName, charsmax(szMapName)); get_localinfo("amxx_configsdir", szFileName, charsmax(szFileName)); add(szFileName, charsmax(szFileName), fmt("/origins/%s.ini", szMapName)); if(!file_exists(szFileName)) { pause("d"); return; } g_aOrigins = ArrayCreate(ArrayData); new iFile = fopen(szFileName, "rt"); if(iFile) { new szBuffer[MAX_FMT_LENGTH], szOrigins[ArrayData][32], szData[ArrayData]; while(!feof(iFile)) { fgets(iFile, szBuffer, charsmax(szBuffer)); trim(szBuffer); if(szBuffer[0] == EOS || szBuffer[0] == ';') { continue; } parse(szBuffer, szOrigins[X], charsmax(szOrigins[]), szOrigins[Y], charsmax(szOrigins[]), szOrigins[Z], charsmax(szOrigins[]), szOrigins[ANGLES], charsmax(szOrigins[]), szOrigins[DEGREE], charsmax(szOrigins[])); szData[X] = str_to_float(szOrigins[X]); szData[Y] = str_to_float(szOrigins[Y]); szData[Z] = str_to_float(szOrigins[Z]); szData[ANGLES] = str_to_float(szOrigins[ANGLES]); szData[DEGREE] = str_to_float(szOrigins[DEGREE]); ArrayPushArray(g_aOrigins, szData); } fclose(iFile); } } public plugin_end() { ArrayDestroy(g_aOrigins); } GetRandomOrigin(Float:flOrigin[]) { new szData[ArrayData]; ArrayGetArray(g_aOrigins, random(ArraySize(g_aOrigins)), szData); flOrigin[X] = szData[X]; flOrigin[Y] = szData[Y]; flOrigin[Z] = szData[Z]; flOrigin[ANGLES] = szData[ANGLES]; flOrigin[DEGREE] = szData[DEGREE]; }
Kod: Tümünü seç
//ArrayData olmak zorunda. Aksi takdirde hata verebilir. İni dosyasında 5 adet origin olmalı. new Float:szData[ArrayData]; GetRandomOrigin(szData); server_print("[%f][%f][%f][%f][%f]", szData[X], szData[Y], szData[Z], szData[ANGLES], szData[DEGREE]);

Link: | |
Linklerini gizle |