←  Problemy

AMXX.pl: Support AMX Mod X i SourceMod

»

Losowanie

  • +
  • -
Hiko - zdjęcie Hiko 04.04.2020

Witam mam kodzik na losowanie "zbroji" zapożyczony z go moda lecz mam problem ponieważ losuje o jedna wiecej wartość niż chce i wychodzi jakby pusta skrzynka ! :) 

KOD :

public plugin_precache()
{
	new Line[128], Data[3][48], Len;
	allSkins++;

	if(file_exists("addons/amxmodx/configs/zbroja/zbroja.cfg"))
	{
		for(new i; i < file_size("addons/amxmodx/configs/zbroja/zbroja.cfg", 1); i++)
		{
			read_file("addons/amxmodx/configs/zbroja/zbroja.cfg", i, Line, charsmax(Line), Len);
			
			if(strlen(Line) < 5 || Line[0] == ';')
				continue;

			parse(Line, Data[0], charsmax(Data[]), Data[1], charsmax(Data[]), Data[2], charsmax(Data[]));
			skinWeaponid[allSkins] = str_to_num(Data[0]);
			copy(skinName[allSkins], charsmax(skinName), Data[1]);
			skinChanceDrop[allSkins] = str_to_num(Data[2]);
			allSkins++;
		}
	}
}

otwarcie skrzynki : 

public chestOpen(id){
	new liczba = random_num(1, allSkins);
	playerZbroja[liczba][id]++;
	ColorChat(id, GREEN, "[]^x01 Wylosowales numer^x03 %d^x01 a nazwa^x03 %s",liczba,skinName[liczba]);
}

zbroje.cfg :

"1" "Zbroja Brazowa" "50"
"1" "Zbroja Srebrna" "25"
"1" "Zbroja Zlota" "15"
"1" "Zbroja Platynowa" "9"
"1" "Zbroja Legendarna" "1" 

i po otworzeniu skrzynki wszystko jest okej gdy nagle wyskakuje ze wylosowalem numer 6 gdzie nie ma pod taka liczba nawet zbroji .

Ktoś coś pomoże gdzie jest bubel w kodzie ? :)

Odpowiedz

  • +
  • -
DarkGL - zdjęcie DarkGL 04.04.2020

Gdzie jest ustawiana zmienna playerZbroja ?

Odpowiedz

  • +
  • -
Hiko - zdjęcie Hiko 04.04.2020

Gdzie jest ustawiana zmienna playerZbroja ?

w jakim sensie ustawiana zmienna ?

Ona jest uzywana tylko w tym ChestOpen 

#define MAX 100


new playerZbroja[MAX][33]
Odpowiedz

  • +
  • -
DarkGL - zdjęcie DarkGL 04.04.2020

public chestOpen(id){
	new liczba = random_num(1, allSkins - 1 );
	playerZbroja[liczba][id]++;
	ColorChat(id, GREEN, "[]^x01 Wylosowales numer^x03 %d^x01 a nazwa^x03 %s",liczba,skinName[liczba]);
}
Nie jest to idealny fix , nie chciałem zmieniać wyliczania allSkins ponieważ inne części kodu mogą bazować na tej zmiennej.
Odpowiedz