W logach znalazłem takie coś:
L 04/07/2013 - 11:37:55: [MySQL] Invalid column: -1 L 04/07/2013 - 11:37:55: [AMXX] Displaying debug trace (plugin "codsqlnew.amxx") L 04/07/2013 - 11:37:55: [AMXX] Run time error 10: native error (native "SQL_ReadResult") L 04/07/2013 - 11:37:55: [AMXX] [0] codsqlnew_1405900.sma::KlasaHandle (line 721)
KlasaHandle:
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; }
Kod klasy:
/* Plugin generated by AMXX-Studio */ #include <amxmodx> #include <amxmisc> #include <codmod> #include <fakemeta> #include <xs> #define MAX 32 new const nazwa[] = "Krol Piekla"; new const opis[] = "Ma 1/3 szansy na podpalenie gracza"; new const bronie = (1<<CSW_AK47)|(1<<CSW_M4A1); new const zdrowie = 20; new const kondycja = 35; new const inteligencja = 5; new const wytrzymalosc = 20; new sprite_fire, sprite_smoke; new ma_klase[MAX+1], palenie_gracza[MAX+1]; public plugin_init() { register_plugin(nazwa, "1.0", "amxx.pl"); cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc); register_event("Damage", "Damage", "b", "2!=0"); } public plugin_precache() { sprite_fire = precache_model("sprites/fire.spr") sprite_smoke = precache_model("sprites/steam1.spr") } public cod_class_enabled(id) { ma_klase[id] = true; } public cod_class_disabled(id) { ma_klase[id] = false; } public Damage(id) { new attacker = get_user_attacker(id); if(!is_user_alive(attacker)) return PLUGIN_CONTINUE; if(id == attacker) return PLUGIN_CONTINUE; if(ma_klase[attacker] && random_num(1, 3) == 1) { if(task_exists(id+2936)) remove_task(id+2936); palenie_gracza[id] = 25; new data[2] data[0] = id data[1] = attacker set_task(0.2, "burning_flame", id+2936, data, 2, "b"); } return PLUGIN_CONTINUE; } public burning_flame(data[2]) { new id = data[0] if(!is_user_alive(id)) { palenie_gracza[id] = 0 remove_task(id+2936); return PLUGIN_CONTINUE; } new origin[3], flags = pev(id, pev_flags) get_user_origin(id, origin) if(flags & FL_INWATER || palenie_gracza[id] < 1 || !get_user_health(id)) { message_begin(MSG_PVS, SVC_TEMPENTITY, origin) write_byte(TE_SMOKE) write_coord(origin[0]) write_coord(origin[1]) write_coord(origin[2]-50) write_short(sprite_smoke) write_byte(random_num(15,20)) write_byte(random_num(10,20)) message_end() remove_task(id+2936); return PLUGIN_CONTINUE; } if(flags & FL_ONGROUND) { static Float:velocity[3] pev(id, pev_velocity, velocity) xs_vec_mul_scalar(velocity, 0.5, velocity) set_pev(id, pev_velocity, velocity) } cod_inflict_damage(data[1], id, 2.0, 0.0, 0, DMG_BURN); message_begin(MSG_PVS, SVC_TEMPENTITY, origin) write_byte(TE_SPRITE) write_coord(origin[0]+random_num(-5,5)) write_coord(origin[1]+random_num(-5,5)) write_coord(origin[2]+random_num(-10,10)) write_short(sprite_fire) write_byte(random_num(5,10)) write_byte(200) message_end() palenie_gracza[id]-- return PLUGIN_CONTINUE; } /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE *{\\ rtf1\\ ansi\\ ansicpg1250\\ deff0\\ deflang1045{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ f0\\ fs16 \n\\ par } */
Ktoś da adę pomóc? Może brakuje jakiegoś "include"?