Oczywiście mam 3 błędy:
L 03/15/2013 - 19:30:44: [MySQL] Invalid column: -1
L 03/15/2013 - 19:30:44: [AMXX] Displaying debug trace (plugin "newdiablo.amxx")
L 03/15/2013 - 19:30:44: [AMXX] Run time error 10: native error (native "SQL_ReadResult")
L 03/15/2013 - 19:30:44: [AMXX] [0] newdiablo.sma::Load_xp_handle (line 1035)
To ta linijka:
Spoiler
player_grw[id] = SQL_ReadResult(Query,SQL_FieldNameToNum(Query,"grw"))
public sql_start:
Spoiler
public sql_start() {
if(g_boolsqlOK) return;
new host[128], user[64], pass[64], database[64];
get_cvar_string("diablo_sql_database", database, 63);
get_cvar_string("diablo_sql_host", host, 127);
get_cvar_string("diablo_sql_user", user, 63);
get_cvar_string("diablo_sql_pass", pass, 63);
g_SqlTuple = SQL_MakeDbTuple(host, user, pass, database);
get_cvar_string("diablo_sql_table", g_sqql, 63);
new q_command[1024],iLen = 0;
iLen += formatex(q_command,charsmax( q_command ), "CREATE TABLE IF NOT EXISTS `%s` (`nick` VARCHAR(48),`ip` VARCHAR(32),`sid` VARCHAR(32),`klasa` INT(2),`lvl` INT(3) DEFAULT 1,`exp` INT(9) DEFAULT 0,`str` INT(3) DEFAULT 0,`int` INT(3) DEFAULT 0,`dex` INT(3) DEFAULT 0,`pak` INT(3) DEFAULT 0,`agi` INT(3) DEFAULT 0,`kas` INT(3) DEFAULT 0,",g_sqql)
iLen += formatex(q_command[ iLen ],charsmax( q_command ) - iLen, "`dam` INT(3) DEFAULT 0,`men` INT(3) DEFAULT 0,`mis` INT(3) DEFAULT 0,`art` INT(3) DEFAULT 0,`wyt` INT(3) DEFAULT 0,`grw` INT(3) DEFAULT 0) DEFAULT CHARSET `utf8` COLLATE `utf8_general_ci`");
SQL_ThreadQuery(g_SqlTuple, "TableHandle", q_command);
}
public SaveXP:
Spoiler
public SaveXP(id) {
if(g_boolsqlOK) {
if(!is_user_bot(id) && player_xp[id] != player_xp_old[id]) {
new name[48], ip[32], sid[32], q_command[1024];
get_user_name(id, name, 47);
get_user_ip(id, ip, 31, 1);
get_user_authid(id, sid, 31);
replace_all(name, 47, "'", "\'");
format(q_command,1023,"UPDATE `%s` SET `ip`='%s',`sid`='%s',`lvl`='%i',`exp`='%i',`str`='%i',`int`='%i',`dex`='%i',`pak`='%i',`kas`='%i',`dam`='%i',`grw`='%i',`men`='%i',`agi`='%i',`mis`='%i',`art`='%i',`wyt`='%i' WHERE `nick`='%s' AND `klasa`='%i' ",
g_sqql,ip,sid,player_lvl[id],player_xp[id],player_strength[id],
player_intelligence[id],player_dextery[id],player_expstat[id],player_kas[id],player_dama[id],player_grw[id],
player_men[id],player_agility[id],player_misja[id],player_artefakt[id],player_wytrzymalosc[id],name,player_class[id])
SQL_ThreadQuery(g_SqlTuple, "Save_xp_handle", q_command);
player_xp_old[id] = player_xp[id];
}
}
else sql_start();
}
public LoadXP i Load_xp_handle:
Spoiler
public LoadXP(id, klasa) {
if(is_user_bot(id) || asked_sql[id] || klasa == NONE)
return PLUGIN_HANDLED;
if(g_boolsqlOK) {
new data[2];
data[0] = id;
data[1] = klasa;
new name[48], q_command[1024];
get_user_name(id, name, 47);
replace_all(name, 47, "'", "\'");
formatex(q_command, 1023, "SELECT * FROM `%s` WHERE `nick`='%s' AND `klasa`='%i'", g_sqql, name, klasa);
SQL_ThreadQuery(g_SqlTuple, "Load_xp_handle", q_command, data, 2);
asked_sql[id] = 1;
}
else sql_start();
return PLUGIN_HANDLED;
}
public Load_xp_handle(FailState, Handle:Query, Error[], Errcode, Data[], DataSize) {
new id = Data[0];
asked_sql[id] = 0;
if(FailState == TQUERY_CONNECT_FAILED) {
log_to_file("diablo.log", "Could not connect to SQL database.");
return PLUGIN_CONTINUE;
}
if(FailState == TQUERY_QUERY_FAILED) {
log_to_file("diablo.log", "Load_xp Query failed.");
return PLUGIN_CONTINUE;
}
if(Errcode) {
log_to_file("diablo.log", "Error on Load_xp query: %s", Error);
return PLUGIN_CONTINUE;
}
new klasa = Data[1];
if(SQL_MoreResults(Query))
{
player_class[id] = klasa;
player_lvl[id] = player_class_lvl[id][klasa];
player_xp[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "exp"));
player_xp_old[id] = player_xp[id];
player_intelligence[id] = SQL_ReadResult(Query,SQL_FieldNameToNum(Query,"int"))
player_strength[id] = SQL_ReadResult(Query,SQL_FieldNameToNum(Query,"str"))
player_agility[id] = SQL_ReadResult(Query,SQL_FieldNameToNum(Query,"agi"))
player_dextery[id] = SQL_ReadResult(Query,SQL_FieldNameToNum(Query,"dex"))
player_expstat[id] = SQL_ReadResult(Query,SQL_FieldNameToNum(Query,"pak"))
player_dama[id] = SQL_ReadResult(Query,SQL_FieldNameToNum(Query,"dam"))
player_men[id] = SQL_ReadResult(Query,SQL_FieldNameToNum(Query,"men"))
player_kas[id] = SQL_ReadResult(Query,SQL_FieldNameToNum(Query,"kas"))
player_misja[id] = SQL_ReadResult(Query,SQL_FieldNameToNum(Query,"mis"))
player_artefakt[id] = SQL_ReadResult(Query,SQL_FieldNameToNum(Query,"art"))
player_wytrzymalosc[id] = SQL_ReadResult(Query,SQL_FieldNameToNum(Query,"wyt"))
player_grw[id] = SQL_ReadResult(Query,SQL_FieldNameToNum(Query,"grw"))
player_point[id]=(player_lvl[id]-1)*4-player_intelligence[id]-player_strength[id]-player_dextery[id]-player_agility[id]-player_kas[id]-player_dama[id]-player_men[id]-player_grw[id]
if(player_point[id]<0) player_point[id]=0
player_damreduction[id] = (47.3057*(1.0-floatpower( 2.7182, -0.06798*float(player_agility[id])))/100)
suma_kryt[id] = player_dama[id]/4
}
else
create_klass(id, klasa);
return PLUGIN_CONTINUE;
}