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.