BryanHill
Новичок
Пишу мод с нуля, написал регистрацию и авторизацию, после регистрации - спавнит, а после авторизации - не спавнит. Ошибок при компиляции не выдаёт!
forward PlayerLog(playerid);
public PlayerLog(playerid)
{
new rows;
cache_get_row_count(rows);
if(rows)
{
cache_get_value_name_int(0, "id", player_info[playerid][ID]);
cache_get_value_name(0, "email", player_info[playerid], 64);
cache_get_value_name_int(0, "ref", player_info[playerid][REF]);
cache_get_value_name_int(0, "sex", player_info[playerid][SEX]);
cache_get_value_name_int(0, "race", player_info[playerid][RACE]);
cache_get_value_name_int(0, "age", player_info[playerid][AGE]);
cache_get_value_name_int(0, "skin", player_info[playerid][SKIN]);
cache_get_value_name(0, "regdata", player_info[playerid][REGDATA], 12);
cache_get_value_name(0, "regip", player_info[playerid][REGIP], 15);
TogglePlayerSpectating(playerid, 0);
SetPVarInt(playerid, "logget", 1);
SetSpawnInfo(playerid, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
SpawnPlayer(playerid);
}
return 1;
}[/SPOILER]
[B]OnPlayerSpawn:[/B]
[SPOILER]{
if(GetPVarInt(playerid, "logget") == 0)
{
SCM(playerid, C_RED, "[Информация]:{FFFFFF} Для игры на сервере, необходимо авторизоваться!");
return Kick(playerid);
}
SetPVarInt(playerid, "logget", 1);
SetPlayerSkin(playerid, player_info[playerid][SKIN]);
return 1;
}
[/SPOILER]
[SPOILER]case DLG_LOG:
{
if(response)
{
new checkpass[65];
SHA256_PassHash(inputtext, player_info[playerid][SALT], checkpass, 65);
if(!strcmp(player_info[playerid][PASSWORD], checkpass))
{
static const fmt_query[] = "SELECT * FROM `users` WHERE `name` = '%s' AND `password` = '%s'";
new query[sizeof(fmt_query)+(-2+MAX_PLAYER_NAME)+(-24+64)];
format(query, sizeof(query), fmt_query, player_info[playerid][NAME], player_info[playerid][PASSWORD]);
mysql_tquery(dbHandle, query, "PlayerLog", "i", playerid);
}
else
{
new string[87];
SetPVarInt(playerid, "WrongPass", GetPVarInt(playerid, "WrongPass")-1);
if(GetPVarInt(playerid, "WrongPass") > 0)
{
format(string, sizeof(string), "[Информация]:{FFFFFF} Вы ввели не верный пароль! У Вас осталось %d попытки!", GetPVarInt(playerid, "WrongPass"));
SCM(playerid, C_RED, string);
}
if(GetPVarInt(playerid, "WrongPass") == 0)
{
SCM(playerid, C_RED, "[Информация]: {FFFFFF}Вы исчерпали лимит попыток входа. Чтобы выйдите введите /q(uit)");
SPD(playerid, -1, 0, " ", " ", " ", "");
return Kick(playerid);
}
ShowLog(playerid);
[/SPOILER]
public PlayerLog(playerid)
{
new rows;
cache_get_row_count(rows);
if(rows)
{
cache_get_value_name_int(0, "id", player_info[playerid][ID]);
cache_get_value_name(0, "email", player_info[playerid], 64);
cache_get_value_name_int(0, "ref", player_info[playerid][REF]);
cache_get_value_name_int(0, "sex", player_info[playerid][SEX]);
cache_get_value_name_int(0, "race", player_info[playerid][RACE]);
cache_get_value_name_int(0, "age", player_info[playerid][AGE]);
cache_get_value_name_int(0, "skin", player_info[playerid][SKIN]);
cache_get_value_name(0, "regdata", player_info[playerid][REGDATA], 12);
cache_get_value_name(0, "regip", player_info[playerid][REGIP], 15);
TogglePlayerSpectating(playerid, 0);
SetPVarInt(playerid, "logget", 1);
SetSpawnInfo(playerid, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
SpawnPlayer(playerid);
}
return 1;
}[/SPOILER]
[B]OnPlayerSpawn:[/B]
[SPOILER]{
if(GetPVarInt(playerid, "logget") == 0)
{
SCM(playerid, C_RED, "[Информация]:{FFFFFF} Для игры на сервере, необходимо авторизоваться!");
return Kick(playerid);
}
SetPVarInt(playerid, "logget", 1);
SetPlayerSkin(playerid, player_info[playerid][SKIN]);
return 1;
}
[/SPOILER]
[SPOILER]case DLG_LOG:
{
if(response)
{
new checkpass[65];
SHA256_PassHash(inputtext, player_info[playerid][SALT], checkpass, 65);
if(!strcmp(player_info[playerid][PASSWORD], checkpass))
{
static const fmt_query[] = "SELECT * FROM `users` WHERE `name` = '%s' AND `password` = '%s'";
new query[sizeof(fmt_query)+(-2+MAX_PLAYER_NAME)+(-24+64)];
format(query, sizeof(query), fmt_query, player_info[playerid][NAME], player_info[playerid][PASSWORD]);
mysql_tquery(dbHandle, query, "PlayerLog", "i", playerid);
}
else
{
new string[87];
SetPVarInt(playerid, "WrongPass", GetPVarInt(playerid, "WrongPass")-1);
if(GetPVarInt(playerid, "WrongPass") > 0)
{
format(string, sizeof(string), "[Информация]:{FFFFFF} Вы ввели не верный пароль! У Вас осталось %d попытки!", GetPVarInt(playerid, "WrongPass"));
SCM(playerid, C_RED, string);
}
if(GetPVarInt(playerid, "WrongPass") == 0)
{
SCM(playerid, C_RED, "[Информация]: {FFFFFF}Вы исчерпали лимит попыток входа. Чтобы выйдите введите /q(uit)");
SPD(playerid, -1, 0, " ", " ", " ", "");
return Kick(playerid);
}
ShowLog(playerid);
[/SPOILER]
