Zrobiłem zapis lvl i exp do zombie moda w taki sposób:
#include <amxmodx> #include <amxmisc> #include <zombie_plague_xp> #include <sqlx> #define playerlvl(%1) zp_get_user_level(%1) #define playerxp(%1) zp_get_user_xp(%1) new Handle:gTuple; public plugin_init() { register_plugin("[ZP] Save Level/XP", "1.0", "DAMIAN"); set_task(0.1, "SQL_init"); } public SQL_init() { gTuple = SQL_MakeDbTuple("sql.pukawka.pl", "root", "unknown", "zombie12_exp"); } public client_putinserver(id) { CheckData(id); } public client_disconnect(id) { SaveData(id); } public SaveData(id) { new szName[64], qCommand[512]; get_user_name(id, szName, charsmax(szName)); format(qCommand, charsmax(qCommand), "INSERT INTO zombie12_exp (`poziom`, `exp`) VALUES (%d, %d) ON DUPLICATE KEY UPDATE (`poziom`, `exp`) VALUES (%d, %d) WHERE `nick`=^"%s^"", playerlvl(id), playerxp(id), playerlvl(id), playerxp(id), szName); SQL_ThreadQuery(gTuple, "SaveData_Handle", qCommand); } public SaveData_Handle(FailState, Handle:Query, Error[], Errorcode, Data[], DataSize, QueryTime) { if(Errorcode) log_amx("Blad w zapytaniu: %s [SaveData]", Error); switch(FailState) { case TQUERY_CONNECT_FAILED: { log_amx("Nie mozna polaczyc sie z baza danych. [SaveData]"); return PLUGIN_CONTINUE; } case TQUERY_QUERY_FAILED: { log_amx("Zapytanie anulowane. [SaveData]"); return PLUGIN_CONTINUE; } } return PLUGIN_CONTINUE; } public CheckData(id) { new szName[64], qCommand[512], Data[1]; Data[0] = id; get_user_name(id, szName, charsmax(szName)); format(qCommand, charsmax(qCommand), "SELECT * FROM zombie12_exp WHERE `nick`=^"%s^"", szName); SQL_ThreadQuery(gTuple, "CheckData_Handle", qCommand, Data, 1); } public CheckData_Handle(FailState, Handle:Query, Error[], Errorcode, Data[], DataSize, QueryTime) { new id = Data[0]; if(Errorcode) log_amx("Blad w zapytaniu: %s [CheckData]", Error); switch(FailState) { case TQUERY_CONNECT_FAILED: { log_amx("Nie mozna polaczyc sie z baza danych. [CheckData]"); return PLUGIN_CONTINUE; } case TQUERY_QUERY_FAILED: { log_amx("Zapytanie anulowane. [CheckData]"); return PLUGIN_CONTINUE; } } if(!SQL_MoreResults(Query)) return PLUGIN_CONTINUE; else { new poziom, exp; poziom = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "poziom")); exp = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "exp")); zp_set_user_level(id, poziom); zp_set_user_xp(id, exp); } return PLUGIN_CONTINUE; }
Po wrzuceniu tego na serwer gdy wchodzi gracz w konsoli wyświetla się błąd:
L 08/23/2017 - 22:49:58: [zp_save_level.amxx] Blad w zapytaniu: Table 'zombie12_exp.zombie12_exp' doesn't exist [CheckData] L 08/23/2017 - 22:49:58: [zp_save_level.amxx] Zapytanie anulowane. [CheckData]
W czym jest problem ?
ps. Jeśli chodzi o dane sql które podałem wyżej to jest zamieniłem tzn nie podałem prawdziwych (user, password, ...)