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"?


Dodatki SourceMod












