MAGNAT2645
Участник
- Сообщения
- 63
- Реакции
- 7
Здравствуйте, у меня произошла небольшая проблема, но всё же она будет плохой для остальных игроков на моём сервере.
Однажды я бросил сервер и решил снова проверить его работоспособность (Обновил его до последней версии и т.д). Всё вроде бы хорошо, да вот одна проблема:
У меня есть плагин на уровни, очки опыта и т.п., и в него встроена БД на драйвере SQLite для сохранения данных игроков, прежде чем я бросил сервер, все данные сохранялись в БД без ошибок, но когда я снова решил поиграть на сервере - мои данные оставались старыми и не обновлялись в БД. Плагин стал выводить ошибки в логах. (Хотя я вроде сам плагин не изменял, ну пару раз если только)
Там есть функция SaveClient, которая сохраняет/обновляет данные в БД и я её в коде использую почти в каждом случае для того, чтобы данные сохранялись часто.
Вот первая ошибка в логах:
Вот вторая:
Вот отрывки из плагина (весь плагин показать не могу, т.к. хочу оставить его в приватном статусе):
Если надо добавить ещё отрывки - только скажите какие...
P.S. Я недавно (когда бросил сервер и не играл) сделал изменение в коде, а именно изменил Handle db на hDB, потому что в компиляторе выводилось предупреждение о том, что в inc уже присутствует слово db. Я подумал, что эта проблема могла произойти после смены названия переменной...
P.S Или возможно проблема появилась из-за того, что я поменял Handle:hOwner, Handle:hQuery на Handle hOwner, Handle hQuery... (хотя врятли)
Однажды я бросил сервер и решил снова проверить его работоспособность (Обновил его до последней версии и т.д). Всё вроде бы хорошо, да вот одна проблема:
У меня есть плагин на уровни, очки опыта и т.п., и в него встроена БД на драйвере SQLite для сохранения данных игроков, прежде чем я бросил сервер, все данные сохранялись в БД без ошибок, но когда я снова решил поиграть на сервере - мои данные оставались старыми и не обновлялись в БД. Плагин стал выводить ошибки в логах. (Хотя я вроде сам плагин не изменял, ну пару раз если только)
Там есть функция SaveClient, которая сохраняет/обновляет данные в БД и я её в коде использую почти в каждом случае для того, чтобы данные сохранялись часто.
Вот первая ошибка в логах:
PHP:
SQLT_OnClientDisconnect: unrecognized token: "'Здаров"
Вот вторая:
PHP:
SQLT_OnClientDisconnect: near " ": syntax error
Вот отрывки из плагина (весь плагин показать не могу, т.к. хочу оставить его в приватном статусе):
PHP:
SaveClient(iClient)
{
if (IsClientLoaded[iClient])
{
decl String:sQuery[256], String:sName[MAX_NAME_LENGTH * 2 + 1];
GetClientName(iClient, sQuery, sizeof(sQuery));
SQL_EscapeString(hDB, sQuery, sName, sizeof(sName));
Format(sQuery, sizeof(sQuery), "UPDATE `levels` SET `Players` = '%s', `PlayerRank` = '%s', `PlayerEXP` = '%i', `PlayerEXPUp` = '%i', `PlayerLevel` = '%i', `PlayerCash` = '%i', `PlayerCashLimit` = '%i', `PlayerSign` = '%s' WHERE `SteamID` = '%s'", sName, CurrentPlayerRank[iClient], PlayerEXP[iClient], PlayerEXPUp[iClient], PlayerLevel[iClient], PlayerCash[iClient], PlayerCashLimit[iClient], PlayerSign[iClient], PlayerSteamID[iClient]);
SQL_TQuery(hDB, SQLT_OnClientDisconnect, sQuery);
}
}
public SQLT_OnClientDisconnect(Handle hOwner, Handle hQuery, const String:sError[], any:iUserId)
{
if (!hQuery)
{
LogError("SQLT_OnClientDisconnect: %s", sError);
}
}
Если надо добавить ещё отрывки - только скажите какие...
P.S. Я недавно (когда бросил сервер и не играл) сделал изменение в коде, а именно изменил Handle db на hDB, потому что в компиляторе выводилось предупреждение о том, что в inc уже присутствует слово db. Я подумал, что эта проблема могла произойти после смены названия переменной...
P.S Или возможно проблема появилась из-за того, что я поменял Handle:hOwner, Handle:hQuery на Handle hOwner, Handle hQuery... (хотя врятли)
Последнее редактирование: