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
CoD Nowy

Problem z wyborem klas ( menu )

cod nowy

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

#1 1stADXionC

    Wszechobecny

  • Użytkownik

Reputacja: 2
Nowy

  • Postów:443
  • Imię:Rafał
  • Lokalizacja:Wrocław
Offline

Napisano 07.09.2018 20:56

Witam.

Dodałem frakcje do mojego silnika. Wszystko ładnie się wyświetla lecz jak wybierzemy klasę to menu się zamyka ale nie wybiera klasy.

 

Kawałek kodu:

 

public WybierzKlase_handler(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu);
copy(wybrana_frakcja2[id], 64, "");
ListaFrakcji2(id);
return PLUGIN_HANDLED;
} 


new data[65], iName[64]
new acces, callback
menu_item_getinfo(menu, item, acces, data,64, iName, 63, callback)


if(ArrayGetCell(awansuje_z, wybrana_klasa[id]))
{
WczytajDane(id, ArrayGetCell(awansuje_z, wybrana_klasa[id]));
new bool:moze, a = ZnajdzAwans(ArrayGetCell(awansuje_z, wybrana_klasa[id]), wybrana_klasa[id])
if(poziom_gracza[id] >= ArrayGetCell(awanse[2], a))
moze = true;
WczytajDane(id, klasa_gracza[id]);
if(!moze)
{
ColorChat(id, GREEN, "[COD:MW3]^x01 Aby uzywac tej klasy musisz zdobyc %i poziom na klasie %a!", ArrayGetCell(awanse[2], a), ArrayGetStringHandle(nazwy_klas, ArrayGetCell(awansuje_z, wybrana_klasa[id])));
return PLUGIN_CONTINUE;
}
}


nowa_klasa_gracza[id] = wybrana_klasa[id];


if(klasa_gracza[id])
ColorChat(id, GREEN, "[COD:MW3]^x01 Klasa zostanie zmieniona w nastepnej rundzie.");
else
{
UstawNowaKlase(id);
DajBronie(id);
ZastosujAtrybuty(id);
}


menu_destroy(menu);
return PLUGIN_HANDLED;
}

 


Użytkownik 1stADXionC edytował ten post 07.09.2018 20:57

  • +
  • -
  • 0

DiabloMod - 10%

 

COD:MW3 - BETATESTY

 


#2 Rivit

    Godlike

  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 380
Offline

Napisano 08.09.2018 16:21

popraw formatowanie to raz, a dwa zobacz czy zadnych error logów nie ma


  • +
  • -
  • 1

#3 1stADXionC

    Wszechobecny

  • Autor tematu
  • Użytkownik

Reputacja: 2
Nowy

  • Postów:443
  • Imię:Rafał
  • Lokalizacja:Wrocław
Offline

Napisano 09.09.2018 10:03

popraw formatowanie to raz, a dwa zobacz czy zadnych error logów nie ma


A możesz mi powiedzieć co z tym formatowaniem?
  • +
  • -
  • 0

DiabloMod - 10%

 

COD:MW3 - BETATESTY

 


#4 Rivit

    Godlike

  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 380
Offline

Napisano 09.09.2018 13:29

Formatowanie kodu, wcięcia bo tego czytać się nie da. Mimo iż jest krótkie to i tak nie chce mi się patrzyć co w którym bloku kodu jest
  • +
  • -
  • 1

#5 1stADXionC

    Wszechobecny

  • Autor tematu
  • Użytkownik

Reputacja: 2
Nowy

  • Postów:443
  • Imię:Rafał
  • Lokalizacja:Wrocław
Offline

Napisano 09.09.2018 17:33

Formatowanie kodu, wcięcia bo tego czytać się nie da. Mimo iż jest krótkie to i tak nie chce mi się patrzyć co w którym bloku kodu jest

 

 

public WybierzKlase(id)
{
new menu = menu_create("Wybierz klase:", "WybierzKlase_handler");


new klasa[500],szTmp[5], nazwa[33];
for(new i=1; i <= ilosc_klas; i++)
{
ArrayGetString(frakcja_klas2, i, nazwa, 32);
if(equali(wybrana_frakcja2[id],nazwa))
{
WczytajDane(id, i);
formatex(klasa, charsmax(klasa), "%a \yPoziom: %i^n\d    %a", ArrayGetStringHandle(nazwy_klas, i), poziom_gracza[id], ArrayGetStringHandle(opisy_klas, i));
num_to_str(i,szTmp,charsmax(szTmp));
menu_additem(menu, klasa, szTmp);
}
}


WczytajDane(id, klasa_gracza[id]);


menu_setprop(menu, MPROP_EXITNAME, "Wroc do poprzedniego menu");
menu_setprop(menu, MPROP_BACKNAME, "Poprzednia strona");
menu_setprop(menu, MPROP_NEXTNAME, "Nastepna strona");
menu_display(id, menu);
}


public WybierzKlase_handler(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu);
copy(wybrana_frakcja2[id], 64, "");
ListaFrakcji2(id);
return PLUGIN_HANDLED;
} 


new data[65], iName[64]
new acces, callback
menu_item_getinfo(menu, item, acces, data,64, iName, 63, callback)


WyswietlKlase(id, str_to_num(data));


menu_destroy(menu);
return PLUGIN_HANDLED;
}


public WyswietlKlase(id, item)
{
wybrana_klasa[id] = item;


new bronie[320];
for(new i=1, n=1; i <= 32; i++)
{
if((1<<i) & ArrayGetCell(bronie_klasy, item))
{
new weaponname[22];
get_weaponname(i, weaponname, 21);
replace_all(weaponname, 21, "weapon_", " ");
if(n > 1) 
add(bronie, charsmax(bronie), ",");
add(bronie, charsmax(bronie), weaponname);
n++;
}
}


new opis[416+MAX_WIELKOSC_OPISU], Olen;
Olen = formatex(opis, charsmax(opis), "\yWybierz Klase: \w%a^n\yInteligencja: \w%i^n\yZdrowie: \w%i^n\yWytrzymalosc: \w%i^n\yKondycja: \w%i^n\yBronie:\w%s^n\yDodatkowy opis: \w%a", ArrayGetStringHandle(nazwy_klas, item), ArrayGetCell(inteligencja_klas, item), ArrayGetCell(zdrowie_klas, item), ArrayGetCell(wytrzymalosc_klas, item), ArrayGetCell(kondycja_klas, item), bronie, ArrayGetStringHandle(opisy_klas, item));
if(item == klasa_gracza[id] && !nowa_klasa_gracza[id])
{
formatex(opis[Olen], charsmax(opis)-Olen, "^n^n\d1. \yMasz juz ta klase^n\r2. \yWroc");
}
else
{
formatex(opis[Olen], charsmax(opis)-Olen, "^n^n\r1. \yWybierz klase^n\r2. \yWroc");
}
show_menu(id, 3, opis);
}


public CzyWybieraKlase(id, key)
{


switch(key)
{
case 0:
{
if(wybrana_klasa[id] == klasa_gracza[id] && !nowa_klasa_gracza[id])
{
WyswietlKlase(id, wybrana_klasa[id])
}
else
{
if(ArrayGetCell(awansuje_z, wybrana_klasa[id]))
{
WczytajDane(id, ArrayGetCell(awansuje_z, wybrana_klasa[id]));
new bool:moze, a = ZnajdzAwans(ArrayGetCell(awansuje_z, wybrana_klasa[id]), wybrana_klasa[id])
if(poziom_gracza[id] >= ArrayGetCell(awanse[2], a))
moze = true;
WczytajDane(id, klasa_gracza[id]);
if(!moze)
{
ColorChat(id, GREEN, "[COD:MW3]^x01 Aby uzywac tej klasy musisz zdobyc %i poziom na klasie %a!", ArrayGetCell(awanse[2], a), ArrayGetStringHandle(nazwy_klas, ArrayGetCell(awansuje_z, wybrana_klasa[id])));
return PLUGIN_CONTINUE;
}
}


nowa_klasa_gracza[id] = wybrana_klasa[id];


if(klasa_gracza[id])
ColorChat(id, GREEN, "[COD:MW3]^x01 Klasa zostanie zmieniona w nastepnej rundzie.");
else
{
UstawNowaKlase(id);
DajBronie(id);
ZastosujAtrybuty(id);
}
}
}
case 1:
{
WybierzKlase(id);
}
}
return PLUGIN_CONTINUE;
}

 

Teraz ładnie wszystko działa, lecz nie umiem usunąć aby nie pytało nas czy wybieramy klasę tylko od razu ją wybierało.


  • +
  • -
  • -1

DiabloMod - 10%

 

COD:MW3 - BETATESTY

 






Również z jednym lub większą ilością słów kluczowych: cod nowy

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

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