Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie

Losowanie


  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
3 odpowiedzi w tym temacie

#1 Hiko

    Wszechpomocny

  • Użytkownik

Reputacja: 34
Życzliwy

  • Postów:302
Offline

Napisano 04.04.2020 12:41

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 ? :)


  • +
  • -
  • 0

POMAGAM NA ILE TYLKO POTRAFIĘ !

 

 


#2 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 553
Godlike

  • Postów:11 976
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Napisano 04.04.2020 13:10

Gdzie jest ustawiana zmienna playerZbroja ?


  • +
  • -
  • 0

#3 Hiko

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 34
Życzliwy

  • Postów:302
Offline

Napisano 04.04.2020 13:40

Gdzie jest ustawiana zmienna playerZbroja ?

w jakim sensie ustawiana zmienna ?

Ona jest uzywana tylko w tym ChestOpen 

#define MAX 100


new playerZbroja[MAX][33]

  • +
  • -
  • 0

POMAGAM NA ILE TYLKO POTRAFIĘ !

 

 


#4 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 553
Godlike

  • Postów:11 976
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Napisano 04.04.2020 13:47

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.
  • +
  • -
  • 0




Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych