- Регистрация
- 10 Май 2018
- Сообщения
- 23
- Лучшие ответы
- 0
- Репутация
- 1
Дорогие друзья, сегодня возникла небольшая проблема с функцией cache_get_row_count. Сервер не авторизует человека с зарегистрированным ником, т.е. кидает ему форму регистрации и в БД появляются записи с одинаковыми никами. Подключил mysql_log. Вот ошибка:
Функция, влючающая в себя 409-ую строку:
Функция, включающая в себя 84-ую строку:
Не могу понять в чём проблема. Долго искал в интернете - результат нулевой.
P.S. Ещё и инклуд ему чем-то не нравится...
Код:
[plugins/mysql] cache_get_row_count: no active cache (E:\Pawn\New RP\gamemodes\newrp.pwn:409 -> E:\Pawn\New RP\gamemodes\newrp.pwn:84 -> E:\Pawn\compiler\include\sscanf2.inc:241)
Функция, влючающая в себя 409-ую строку:
Код:
stock GetAccountID(playerid)
{
new query[128], rows, pName[MAX_PLAYER_NAME];
mysql_escape_string(player_info[playerid][NAME], pName);
format(query, sizeof(query), "SELECT `id` FROM `accounts` WHERE `name` = '%s'", pName);
mysql_tquery(dbHandle, query);
cache_get_row_count(rows);
if(rows)
{
cache_get_value_name_int(0, "id", player_info[playerid][ID]);
return player_info[playerid][ID];
}
return 0;
}
Код:
public OnPlayerConnect(playerid)
{
mysql_log(ALL);
RemovePlayerVariables(playerid);
GetPlayerName(playerid, player_info[playerid][NAME], MAX_PLAYER_NAME);
GetAccountID(playerid);
if(player_info[playerid][ID] != 0) // Аккаунт зарегистрирован
{
new dialog[128 + MAX_PLAYER_NAME];
format(dialog, sizeof(dialog), "Добро пожаловать на %S!\nЭтот аккаунт зарегистрирован.\n\nЛогин: %S.\nВведите пароль:", SERVER_NAME, player_info[playerid][NAME]);
SPD(playerid, DIALOG_LOGIN, DSP, "{FF4F00}Авторизация", dialog, "Войти", "Отмена");
}
else
{
new dialog[300 + MAX_PLAYER_NAME];
format(dialog, sizeof(dialog), "{FFFFFF}Добро пожаловать на %s!\nАккаунт с таким логином не зарегистрирован.\n\nЛогин: %s.\nВведите пароль и нажмите «Далее».\n\n{AAAAAA}Примечания:\n\t - Пароль чувствителен к регистру.\n\t - Длина пароля от 6 до 64 символов.\n\t - В пароле можно использовать латинские и кириллические символы.\n", player_info[playerid][NAME]);
SPD(playerid, DIALOG_REGISTER, DSI, "{FF4F00}Регистрация", dialog, "Далее", "Отмена");
}
return 1;
}
Не могу понять в чём проблема. Долго искал в интернете - результат нулевой.
P.S. Ещё и инклуд ему чем-то не нравится...