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


Dodatki SourceMod













