http://amxx.pl/wklej...32855636611471/
dodać to
http://amxx.pl/wklej...32855664411471/
tak aby działały frakcje.
Próbowałem sam połaczyć i wyszło takie coś
public bool:is_in_previous(frakcja[],from){ for(new i = from - 1;i>=1;i--){ if(equali(frakcja_klas[i],frakcja)){ return true; } } return false; } public WybierzKlase(id) { if(polaczony_raz[id]) { client_print(id, print_center, "Poczekaj na klase, a nie spamujesz!"); return PLUGIN_CONTINUE; } if(!wczytane_dane[id]) { new szTemp[1024], data[1], Table[32]; new identyfikator[64], typ_zapisu = get_pcvar_num(cvar_typ_zapisu); get_cvar_string("cod_table", Table, 31); data[0] = id; switch(typ_zapisu) { case 1:{ copy(identyfikator, charsmax(identyfikator), nazwa_gracza[id]); replace_all(identyfikator, charsmax(identyfikator), "'", "\'"); replace_all(identyfikator, charsmax(identyfikator), "`", "\`"); } case 2: get_user_authid(id, identyfikator, charsmax(identyfikator)); case 3: get_user_ip(id, identyfikator, charsmax(identyfikator)); } formatex(szTemp, charsmax(szTemp), "SELECT * FROM `%s` WHERE `nick` = '%s'", Table, identyfikator) SQL_ThreadQuery(info, "KlasaHandle", szTemp, data, sizeof data) polaczony_raz[id] = 1; } else { lvl_klasy_gracza[id][klasa_gracza[id]] = poziom_gracza[id]; xp_klasy_gracza[id][klasa_gracza[id]] = doswiadczenie_gracza[id]; int_klasy_gracza[id][klasa_gracza[id]] = inteligencja_gracza[id]; zdr_klasy_gracza[id][klasa_gracza[id]] = zdrowie_gracza[id]; wyt_klasy_gracza[id][klasa_gracza[id]] = wytrzymalosc_gracza[id]; kon_klasy_gracza[id][klasa_gracza[id]] = kondycja_gracza[id]; new menu = menu_create("Wybierz klase:", "WybierzKlase_Frakcje"); for(new i=1; i <= ilosc_klas; i++) { if(!equal(frakcja_klas[i],"") && !is_in_previous(frakcja_klas[i],i)){ menu_additem(menu,frakcja_klas[i],frakcja_klas[i]) } } menu_setprop(menu, MPROP_EXITNAME, "Wyjdz"); menu_setprop(menu, MPROP_BACKNAME, "Poprzednia strona"); menu_setprop(menu, MPROP_NEXTNAME, "Nastepna strona"); menu_display(id, menu); client_cmd(id, "spk QTM_CodMod/select"); } return PLUGIN_CONTINUE; } 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[50],szTmp[5]; for(new i=1; i <= ilosc_klas; i++) { if(equali(data,frakcja_klas[i])){ WczytajDane(id, i); format(klasa, charsmax(klasa), "%s \yPoziom: %i", nazwy_klas[i], poziom_gracza[id]); 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; } public KlasaHandle(failstate, Handle:query, error[], errnum, Data[], size){ if(failstate != TQUERY_SUCCESS){ log_amx("MySQL Select error: %s",error); return; } new id = Data[0] new szTemp[2028], klasa[50], menu = menu_create("Wybierz klase:", "WybierzKlase_Handle"); if(SQL_NumRows(query)) { new daneklasy[6][32]; for(new i=1; i <= ilosc_klas; i++) { formatex(szTemp, charsmax(szTemp), "%i", i); SQL_ReadResult(query, SQL_FieldNameToNum(query, szTemp), szTemp, charsmax(szTemp)) replace_all(szTemp, charsmax(szTemp), "#", " "); parse(szTemp, daneklasy[0], 31, daneklasy[1], 31, daneklasy[2], 31, daneklasy[3], 31, daneklasy[4], 31, daneklasy[5], 31); lvl_klasy_gracza[id][i] = str_to_num(daneklasy[0]) xp_klasy_gracza[id][i] = str_to_num(daneklasy[1]) int_klasy_gracza[id][i] = str_to_num(daneklasy[2]) zdr_klasy_gracza[id][i] = str_to_num(daneklasy[3]) wyt_klasy_gracza[id][i] = str_to_num(daneklasy[4]) kon_klasy_gracza[id][i] = str_to_num(daneklasy[5]) formatex(klasa, 49, "%s \yPoziom: %i", nazwy_klas[i], lvl_klasy_gracza[id][i]); menu_additem(menu, klasa); } menu_setprop(menu, MPROP_EXITNAME, "Wyjdz"); menu_setprop(menu, MPROP_BACKNAME, "Poprzednia strona"); menu_setprop(menu, MPROP_NEXTNAME, "Nastepna strona"); menu_display(id, menu); client_cmd(id, "spk QTM_CodMod/select"); wczytane_dane[id] = 1; } else { new iLen = 0, Table[32]; new identyfikator[64], typ_zapisu = get_pcvar_num(cvar_typ_zapisu); get_cvar_string("cod_table", Table, 31); switch(typ_zapisu) { case 1:{ copy(identyfikator, charsmax(identyfikator), nazwa_gracza[id]); replace_all(identyfikator, charsmax(identyfikator), "'", "\'"); replace_all(identyfikator, charsmax(identyfikator), "`", "\`"); } case 2: get_user_authid(id, identyfikator, charsmax(identyfikator)); case 3: get_user_ip(id, identyfikator, charsmax(identyfikator)); } iLen += formatex(szTemp[iLen], charsmax(szTemp)-iLen, "INSERT INTO `%s` (`nick`", Table); for(new i=1; i <= ilosc_klas; i++) iLen += formatex(szTemp[iLen], charsmax(szTemp)-iLen, ", `%i`", i); iLen += copy(szTemp[iLen], charsmax(szTemp)-iLen, ") VALUES ("); iLen += formatex(szTemp[iLen], charsmax(szTemp)-iLen, "'%s'", identyfikator); for(new i=1; i <= ilosc_klas; i++) iLen += copy(szTemp[iLen], charsmax(szTemp)-iLen, ", '1#0#0#0#0#0'"); iLen += copy(szTemp[iLen], charsmax(szTemp)-iLen, ")"); SQL_ThreadQuery(info, "IgnoreHandle", szTemp) for(new i=1; i <= ilosc_klas; i++) { formatex(klasa, 49, "%s \yPoziom: 1", nazwy_klas[i]); menu_additem(menu, klasa); } menu_setprop(menu, MPROP_EXITNAME, "Wyjdz"); menu_setprop(menu, MPROP_BACKNAME, "Poprzednia strona"); menu_setprop(menu, MPROP_NEXTNAME, "Nastepna strona"); menu_display(id, menu); client_cmd(id, "spk QTM_CodMod/select"); } polaczony_raz[id] = 0; } public WybierzKlase_Handle(id, menu, item) { client_cmd(id, "spk QTM_CodMod/select"); 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) item = str_to_num(data); if(item == klasa_gracza[id] && !nowa_klasa_gracza[id]) return PLUGIN_CONTINUE; nowa_klasa_gracza[id] = item; if(klasa_gracza[id]) client_print(id, print_chat, "[COD:MW] Klasa zostanie zmieniona w nastepnej rundzie."); else { UstawNowaKlase(id); DajBronie(id); ZastosujAtrybuty(id); } return PLUGIN_CONTINUE; }
Gdy wchodze na serwer wyskakuje "Poczekaj na klase, a nie spamujesz!" i nie mozna klasy wlaczyc ;/
refresz proszę ;/
refresz