Доступ к архиву

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

[MySQL r7-2]Проблема с системой бана

Статус
В этой теме нельзя размещать новые ответы.

Windows_8

Умник
[MySQL r7-2]Проблема с системой бана​
При вводе команды в игре /ban, в чате пишет что забанен, а вот в БД запись не идет, в чем тут проблема?

Команды:
PHP:
CMD:ban(playerid, params[])
{
	if(GetPVarInt(playerid, "Logged" ) == 0) return true;
	if(Player[playerid][admin] < 3) return true;
	new ip[32], data[32], unbandate;
	new string[128]; new query[144];
	if(sscanf(params, "uds", params[0], params[1], params[2])) return SendClientMessage(playerid, COLOR_WHITE, "Введите: /ban [id игрока] [кол-во дней] [причина]");
	if(!IsPlayerConnected(params[0]) || params[0] == INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_GREY, "Данный игрок оффлайн.");
	if(params[1] > 365 || params[1] < 1) return SendClientMessage(playerid, COLOR_GREY, "Кол-во дней от 1 до 365.");
	GetPlayerIp(params[0], ip, 32);
	format(string, 100, "Администратор %s заблокировал %s на %d дней. Причина: %s", PlayerName[playerid], sendername(params[0]),params[1], params[2]);
	SendClientMessageToAll(COLOR_LIGHTRED,string);
	getdate(years, months, days);
	unbandate = gettime() + params[1]*86400;
	format(data, 32, "%02d.%02d.%04d", days, months, years);
	format(query, sizeof(query), "INSERT INTO `bans` ( `login`, `whobanned`, `ip`, `bandate`, `time`, `unbandate`, `reason`) VALUES ('%s', '%s','%s', '%s', %d, %d, '%s')", sendername(params[0]), PlayerName[playerid], ip, data, params[1], unbandate, params[2]);
	mysql_function_query(connect, query, false, "", "");
	SendClientMessage(params[0], COLOR_YELLOW, "Вы были заблокированы! Если администратор не прав, сделайте скриншот (F8) и отправьте доказательства на форум");
	Kick(params[0]);
	return true;
}

CMD:unban(playerid, params[])
{
	if(GetPVarInt(playerid, "Logged" ) == 0) return true;
	if(Player[playerid][admin] < 5) return true;
	new query[144];
	if(sscanf(params, "s", params[0])) return SendClientMessage(playerid, COLOR_WHITE, "Введите: /unban [имя игрока]");
	format(query, sizeof(query), "SELECT * FROM `bans` WHERE `login` = '%s'", params[0]);
	mysql_function_query(connect, query, true, "CheckBanList", "i", playerid, 0);
	//mysql_store_result();
	if(!mysql_fetch_row(query)) return SendClientMessage(playerid, COLOR_GREY, "Данный игрок не найден в базе данных.");
	format(query, sizeof(query), "DELETE FROM `bans` WHERE `login` = '%s'", params[0]);
	mysql_function_query(connect, query, true, "CheckBanList", "i", playerid, 0);
	SendMes(playerid, COLOR_LIGHTRED, "Вы разбанили игрока %s", params[0]);
	mysql_free_result();
	return true;
}
Стоки
PHP:
stock CheckBanList(playerid)
{
	new vas[32], unbandate, ban, ip[24], query[144];
	GetPlayerIp(playerid, ip, 20);
	format(query, 128, "SELECT * FROM `bans` WHERE `login` = '%s'", PlayerName[playerid]);
	mysql_function_query(connect, query, true, "CheckBanList", "i", playerid, 0);
	//mysql_store_result();
	if(mysql_fetch_row(query))
	{
		mysql_get_field("unbandate", vas);
		unbandate = strval(vas);
		if(unbandate - gettime() > 0) ban = 1;
	}
	if(ban == 0)
	{
		format(query, 128, "SELECT * FROM `bans` WHERE `ip` = '%s'", ip);
		mysql_function_query(connect, query, true, "CheckBanList", "i", playerid, 0);
		//mysql_store_result();
		if(mysql_fetch_row(query))
		{
			mysql_get_field("unbandate", vas); unbandate = strval(vas);
			if(unbandate - gettime() > 0) ban = 1;
		}
	}
	if(ban == 1)
	{
		convert((unbandate-gettime())*1000,UBMin,UBSec,UBMSec);
		UBHour = UBMin/60;
		UBMin = UBMin%60;
		UBDay = UBHour/24;
		UBHour = UBHour%24;
		format(stringa, 128, "Ваш аккаунт заблокирован\n\nДата разблокировки через %d дней",UBDay+1);
		ShowPlayerDialog(playerid, 1234, DIALOG_STYLE_MSGBOX, "Аккаунт заблокирован", stringa, "/quit", "");
		Kick(playerid);
	}
	mysql_free_result();
}

stock convert(time, &min, &sec, &msec)
{
	new Float:fTime = floatdiv(time, 60000);
	min = floatround(fTime, floatround_tozero);
	sec = floatround(floatmul(fTime - min, 60), floatround_tozero);
	msec = floatround(floatmul(floatmul(fTime - min, 60) - sec, 1000), floatround_tozero);
}
public OnPlayerConnect(playerid)
PHP:
CheckBanList(playerid);
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу