←  Problemy

AMXX.pl: Support AMX Mod X i SourceMod

»

CoD Nowy
Problem przy kompilacji. [PROSTE] ale nie...

SocketS - zdjęcie SocketS 01.07.2015

Witam. Pomoże ktoś naprawić mi ten błąd " Error: Undefined symbol "n" on line 758 " /

public WybierzKlase_Frakcje(id, menu, item)
{
	if(item == MENU_EXIT){
		menu_destroy(menu);
		return PLUGIN_CONTINUE;
	}
	
	new data[65], iName[64]
	new acces, callback
	menu_item_getinfo(menu, item, acces, data,64, iName, 63, callback)
	
	new menu2 = menu_create("Wybierz klase:", "WybierzKlase_Handle");
	
	new klasa[370],szTmp[5],bronie[320],bron[22]
	for(new i=1; i <= ilosc_klas; i++)
	{
		if(equali(data,frakcja_klas[i])){
			WczytajDane(id, i)
			bronie = ""
			for(new b=1, n=1; b <= 32; b++)
			{
				if((1<<b) & bronie_klasy[i])
				{
					get_weaponname(b, bron, 21)
					replace_all(bron, 21, "weapon_", "")
					ucfirst(bron)
					if(n > 1)	add(bronie, charsmax(bronie), ", ")
					
					add(bronie, charsmax(bronie), bron)
					n++
				}
			}
			format(klasa, charsmax(klasa), "%s \yPoziom: %i %s %s", nazwy_klas[i], poziom_gracza[id],(n == 2 ? "Bron: " : "Bronie: "),bronie);
			num_to_str(i,szTmp,charsmax(szTmp));
			menu_additem(menu2, klasa, szTmp);
		}
	}
	
	WczytajDane(id, klasa_gracza[id]);
	
	menu_setprop(menu2, MPROP_EXITNAME, "Wyjdz");
	menu_setprop(menu2, MPROP_BACKNAME, "Poprzednia strona");
	menu_setprop(menu2, MPROP_NEXTNAME, "Nastepna strona");
	menu_display(id, menu2);
	
	client_cmd(id, "spk QTM_CodMod/select");
	
	menu_destroy(menu);
	return PLUGIN_CONTINUE;
}

Jest to ta linijka :

format(klasa, charsmax(klasa), "%s \yPoziom: %i %s %s", nazwy_klas[i], poziom_gracza[id],(n == 2 ? "Bron: " : "Bronie: "),bronie);

 

Odpowiedz

  • +
  • -
NieWiemMamMac@ - zdjęcie NieWiemMamMac@ 01.07.2015

new klasa[370],szTmp[5],bronie[320],bron[22]

->

new klasa[370],szTmp[5],bronie[320],bron[22],n

i czy tutaj:

WczytajDane(id, i)
bronie = ""

nie powinno być tak:

WczytajDane(id, i)
bronie = ""
n=1

?


Użytkownik NieWiemMamMac@ edytował ten post 01.07.2015 18:58
Odpowiedz

  • +
  • -
Rivit - zdjęcie Rivit 01.07.2015

Problem jest w tym, że zmienną n tworzysz w pętli, a używasz ja poza nią...

Unikaj tworzenia zmiennych w pętlach...

 

Moja wersja:

public WybierzKlase_Frakcje(id, menu, item)
{
	if(item == MENU_EXIT)
        {
		menu_destroy(menu);
		return PLUGIN_CONTINUE;
	}
	
	new data[65], i
	menu_item_getinfo(menu, item, i, data,64, _, _, i)
	
	new menu2 = menu_create("Wybierz klase:", "WybierzKlase_Handle");
	
	new klasa[370],szTmp[5],bronie[320],bron[22],b,n
	for(i=1; i <= ilosc_klas; i++)
	{
		if(equali(data, frakcja_klas[i])){
			WczytajDane(id, i)
			bronie = ""
			for(b=1, n=1; b <= 32; b++)
			{
				if((1<<b) & bronie_klasy[i])
				{
					get_weaponname(b, bron, 21)
					replace_all(bron, 21, "weapon_", "")
					ucfirst(bron)
					if(n > 1)	add(bronie, charsmax(bronie), ", ")
					
					add(bronie, charsmax(bronie), bron)
					n++
				}
			}
			format(klasa, charsmax(klasa), "%s \yPoziom: %i %s %s", nazwy_klas[i], poziom_gracza[id],(n == 2 ? "Bron: " : "Bronie: "),bronie);
			num_to_str(i,szTmp,charsmax(szTmp));
			menu_additem(menu2, klasa, szTmp);
		}
	}
	
	WczytajDane(id, klasa_gracza[id]);
	
	menu_setprop(menu2, MPROP_EXITNAME, "Wyjdz");
	menu_setprop(menu2, MPROP_BACKNAME, "Poprzednia strona");
	menu_setprop(menu2, MPROP_NEXTNAME, "Nastepna strona");
	menu_display(id, menu2);
	
	client_cmd(id, "spk QTM_CodMod/select");
	
	menu_destroy(menu);
	return PLUGIN_CONTINUE;
}

Kolego wyżej:

n jest ustawianie na 1 w pętli, więc nie ma potrzeby już :P

 

 

 

 

 

 

Ps. Pisane z tel, więc mogą być błędy drobne...

 

 

 

Odpowiedz

SocketS - zdjęcie SocketS 02.07.2015

ok działa dzięki łapcie po + .

Odpowiedz