Znów mam problem z SQL, mianowicie każdy rekord jaki jest w bazie jest na jednego gracza...
Powiedzmy że jest gracz #Jeden i #Dwa (jak na tym ss)
Powiedzmy że teraz Gracz #Jeden wychodzi z serwera to wszystkie rekordy zamieniają się na jego Nick (wartości tablic też są zmieniane na te same)...
Testuje z zapisem na nick, bo sprawdzić czy działa...
Chwilowe próby naprawy nie pomogły...
błąd tkwi zapewne gdzieś w tym kodzie:
public handle_load(FailState,Handle:Query,Error[],Errcode,Data[],DataSize){
if(FailState){
log_amx("SQL Error: %s (%d)", Error, Errcode)
return PLUGIN_HANDLED
}
new id = Data[0]
new PlayerName[32], args[32], cache[1024],pos
//new data[1]
read_args(args, 31)
remove_quotes(args)
get_user_name(id,PlayerName,charsmax(PlayerName));
/*if(!is_user_steam(id)){
get_user_name(id,PlayerName,charsmax(PlayerName));
}
else
{
get_user_authid(id,PlayerName,charsmax(PlayerName));
}*/
if(SQL_NumResults(Query) < 1)
{
pos = formatex(cache, 1023, "INSERT INTO `fbh_xp` (sid, xp, lvl, sptk, pgraw, pspeed, pfuria, pfizyk, pczar, pnc, fbhy, gz, lpm, s_prz, lpmt_os, s_lvl, s_graw, s_speed, lpmtos, os_scout, os_scout_s) VALUES (");
pos += formatex(cache[pos], 1023 - pos, "'%s', '0', '0', '0', '0', '0', '0', '0', '0', '0',", PlayerName); //, PlayerXP[id], PlayerLevel[id], SkillPoints[id], PtkGraw[id], PtkSpeed[id], PtkFuria[id], PtkFizyk[id], PtkCzar[id], PtkNc[id]
pos += formatex(cache[pos], 1023 - pos, " '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0');"); //, marzenia[id], gratz[id], lpm[id], sprawdz_przejsca[id], lpmt_os[id], sprawdz_level[id], sprawdz_graw[id], sprawdz_speed[id], lpmtOS[id], os_scout[id], os_scout_s[id]
log_to_file(sql_save, "Tworze Nowego Uzytkownika: %s", cache)
SQL_ThreadQuery(g_SqlTuple, "handle_save", cache)
return PLUGIN_HANDLED
}
else
{
PlayerXP[id] = SQL_ReadResult(Query,SQL_FieldNameToNum(Query,"xp"))
PlayerLevel[id] = SQL_ReadResult(Query,SQL_FieldNameToNum(Query,"lvl"))
SkillPoints[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "sptk"))
PtkGraw[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "pgraw"))
PtkSpeed[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "pspeed"))
PtkFuria[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "pfuria"))
PtkFizyk[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "pfizyk"))
PtkCzar[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "pczar"))
PtkNc[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "pnc"))
marzenia[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "fbhy"))
gratz[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "gz"))
lpm[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "lpm"))
sprawdz_przejsca[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "s_prz"))
lpmt_os[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "lpmt_os"))
sprawdz_level[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "s_lvl"))
sprawdz_graw[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "s_graw"))
sprawdz_speed[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "s_speed"))
lpmtOS[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "lpmtos"))
os_scout[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "os_scout"))
os_scout_s[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "os_scout_s"))
//SQL_ReadResult(Query,SQL_FieldNameToNum(Query,"authid"), steamid, 31)
new name[32]
get_user_name(id, name, 31)
log_to_file(sql_load, "Dane gracza ^"%s^" zostaly wczytane", name)
return PLUGIN_HANDLED
}
/*else{
log_to_file(sql_save, "Brak Danych O Graczu ....")
}*/
return PLUGIN_HANDLED
}
Ja nie wiem gdzie, jeśli wiecie pomóżcie
Pozdrawiam!
Użytkownik AmD edytował ten post 03.01.2011 23:21