- Регистрация
- 13 Апр 2018
- Сообщения
- 202
- Лучшие ответы
- 0
- Репутация
- 0
При выдаче бана аккаунта все хорошо никаких варнингов или ошибок в логах нету. Но после перезахода у игрока удаляется бан из таблицы MySQL 41-4
Команда бана:
PHP:
forward OnPlayerCheckBan(playerid);
public OnPlayerCheckBan(playerid)
{
new rows, seconds, reason[150], admin[24], name[24], string[256];
cache_get_row_count(rows);
if(rows)
{
cache_get_value_name(0, "Name", name, 24);
cache_get_value_name(0, "Admin", admin, 24);
cache_get_value_name(0, "Reason", reason, 150);
seconds = cache_get_value_name_int(0, "BanTime", seconds);
new times = gettime();
new tima[20], dima;
if(floatround((seconds-times)/60/60/24) > 1)
{
tima = "дней";
dima = floatround((seconds-times)/60/60/24, floatround_ceil);
}
else if(floatround((seconds-times)/60/60) > 1)
{
tima = "час(ов)";
dima = floatround((seconds-times)/60/60, floatround_ceil);
}
else
{
tima = "минут";
dima = floatround((seconds-times)/60, floatround_ceil);
}
if(times < seconds)
{
format(string, sizeof(string),
"Игровой аккаунт: \t%s\n\
заблокирован на %d %s\n\
по причине: %s\n\
адмистратором: %s",
name, dima, tima, reason, admin);
ShowPlayerDialog(playerid, 0, DIALOG_STYLE_MSGBOX, !"Аккаунт заблокирован", string, !"", !"Закрыть");
Kick(playerid);
return 1;
}
else
{
format(string, sizeof(string), "DELETE FROM `bans_accounts` WHERE `Name` = '%s' LIMIT 1", GetName(playerid));
mysql_tquery(mysql, string);
}
}
static const fmt_query[] = "SELECT `Password`, `PINCode`, `Google`, `SettingGoogle`, `LastIP` FROM `accounts` WHERE `Name` ='%s'";
new query[sizeof(fmt_query) +(-2+MAX_PLAYER_NAME)];
format(query, sizeof(query), fmt_query, GetName(playerid));
mysql_tquery(mysql, query, "CheckRegistration", "i", playerid);
return 1;
}
public OnPlayerConnect(playerid)
{
SendClientMessage(playerid, COLOR_RED, !"Добро пожаловать на нубо рп 9999999 лвл админки");
GetPlayerName(playerid,PlayerInfo[playerid][pName],MAX_PLAYER_NAME);
new string[256];
format(string, sizeof(string), "SELECT * FROM `bans_accounts` WHERE BINARY `Name` = '%s' LIMIT 1", GetName(playerid)); // Запрос
mysql_tquery(mysql, string, "OnPlayerCheckBan", "ds", playerid, GetName(playerid));
return 1;
}
PHP:
CMD:ban(playerid, params[])
{
if(PlayerInfo[playerid][pAdmin] < 3) return 1;
if(ALogged[playerid] !=1) return SendClientMessage(playerid, COLOR_GREY, TEXT_ALOGIN);
new string[255];
if(sscanf(params, "uds[150]", params[0], params[1], params[2])) return SendClientMessage(playerid, COLOR_RED, !"Используйте: /ban [ID] [DAY] [REASON]");
if(GetString(GetName(params[0]),"Benjamin_Rivera")) return 0;
if(!IsPlayerConnected(params[0])) return 0;
if(PlayerInfo[playerid][pAdmin] < PlayerInfo[params[0]][pAdmin]) PlayerInfo[playerid][pAdmin] = 0;
if(strlen(params[3]) > 30) return SendClientMessage(playerid, COLOR_RED, !"Причина не больше 30 символов");
if(params[1] > 30 || 1 > params[1]) return SendClientMessage(playerid, COLOR_RED, !"Используйте: /ban [ID] [DAY 1-30] [REASON]");
format(string, sizeof(string), "Администратор %s[%d] забанил аккаунт %s[%d] на %d дней с причиной: %s", GetName(playerid), playerid, GetName(params[0]), params[0], params[1], params[2]);
SendClientMessageToAll(COLOR_RED, string);
format(string, sizeof(string), "INSERT INTO `bans_accounts` (`Name`, `Admin`, `BanTime`, `Reason`) VALUE ('%s', '%s', '%d', '%s')", GetName(params[0]), GetName(playerid), gettime()+params[1]*60*60*24, params[2]);
mysql_tquery(mysql, string);
Kick(params[0]);
return 1;
}
Последнее редактирование модератором: