- 269
- 164
Есть система неверного ввода пароля, код прописан так что при неверном вводе даётся 3 попытки на правильный. Но в действительности если ввести неправильно, то просто скроется диалог и всё, а если же правильный - пишет что не правильный :)
Уточню что компил работает исправно и не выдаёт никаких ошибок
Лог mysql -
[23:50:40] [ERROR] mysql_tquery: callback error: invalid format specifier '1' (gamemodes\project.pwn:522)
upd: число 1 в 12 строке менял на d,не прокатило
Lua:
case DLG_LOG:
{
if(response)
{
new checkpass[33];
SHA256_PassHash(inputtext, player_info[playerid][SALT], checkpass, 33);
if(!strcmp(player_info[playerid][PASSWORD], checkpass, false, 32) == 0)
{
static const fmt_query[] = "SELECT * FROM `users` WHERE `name` = '%s' AND `password` = '%s'";
new query[sizeof(fmt_query)+(-2+MAX_PLAYER_NAME)+(-2+64)];
format(query, sizeof(query), fmt_query, player_info[playerid][NAME], player_info[playerid][PASSWORD]);
mysql_tquery(dbHandle, query, "PlayerLogin", "1", playerid);
}
else
{
new string[87];
SetPVarInt(playerid, "WrongPassword", GetPVarInt(playerid, "WrongPassword")-1);
if(GetPVarInt(playerid, "WrongPassword") > 0)
{
format(string, sizeof(string), "[Ошибка] {FFFFFF}Вы ввели неверный пароль от аккаунта. У вас осталось %d попыток входа.", GetPVarInt(playerid, "WrongPassword"));
SCM(playerid, COLOR_RED, string);
}
if (GetPVarInt(playerid, "WrongPassword") == 0)
{
SCM(playerid, COLOR_RED, "[Ошибка] {FFFFFF} Вы исчерпали количество попыток для ввода пароля и были кикнуты");
Kick(playerid);
}
ShowLogin(playerid);
}
}
else
{
SCM(playerid, COLOR_RED, "Введите в чат \"/q\",чтобы покинуть сервер и выйти из игры");
SPD(playerid, -1, 0, " ", " ", " ", "");
return Kick(playerid);
}
}
}
return 1;
}
Лог mysql -
[23:50:40] [ERROR] mysql_tquery: callback error: invalid format specifier '1' (gamemodes\project.pwn:522)
upd: число 1 в 12 строке менял на d,не прокатило
Есть система неверного ввода пароля, код прописан так что при неверном вводе даётся 3 попытки на правильный. Но в действительности если ввести неправильно, то просто скроется диалог и всё, а если же правильный - пишет что не правильный :)
Уточню что компил работает исправно и не выдаёт никаких ошибокLua:case DLG_LOG: { if(response) { new checkpass[33]; SHA256_PassHash(inputtext, player_info[playerid][SALT], checkpass, 33); if(!strcmp(player_info[playerid][PASSWORD], checkpass, false, 32) == 0) { static const fmt_query[] = "SELECT * FROM `users` WHERE `name` = '%s' AND `password` = '%s'"; new query[sizeof(fmt_query)+(-2+MAX_PLAYER_NAME)+(-2+64)]; format(query, sizeof(query), fmt_query, player_info[playerid][NAME], player_info[playerid][PASSWORD]); mysql_tquery(dbHandle, query, "PlayerLogin", "1", playerid); } else { new string[87]; SetPVarInt(playerid, "WrongPassword", GetPVarInt(playerid, "WrongPassword")-1); if(GetPVarInt(playerid, "WrongPassword") > 0) { format(string, sizeof(string), "[Ошибка] {FFFFFF}Вы ввели неверный пароль от аккаунта. У вас осталось %d попыток входа.", GetPVarInt(playerid, "WrongPassword")); SCM(playerid, COLOR_RED, string); } if (GetPVarInt(playerid, "WrongPassword") == 0) { SCM(playerid, COLOR_RED, "[Ошибка] {FFFFFF} Вы исчерпали количество попыток для ввода пароля и были кикнуты"); Kick(playerid); } ShowLogin(playerid); } } else { SCM(playerid, COLOR_RED, "Введите в чат \"/q\",чтобы покинуть сервер и выйти из игры"); SPD(playerid, -1, 0, " ", " ", " ", ""); return Kick(playerid); } } } return 1; }
Лог mysql -
[23:50:40] [ERROR] mysql_tquery: callback error: invalid format specifier '1' (gamemodes\project.pwn:522)
Последнее редактирование: