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

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

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

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

Банит всех игроков.

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

Hans_Zimmer

Умник
Подскажите пожалуйста. Такая проблема с MySQL.
Когда я кого-то забаню. Того игрока банит.
Потом никто не может зайти на сервер.
Всем пишет что вы забанены.
Приходится разбанивать того игрока чтоб могли все зайти
Помогите. Вот команда.
PHP:
if(strcmp(cmd,"/ban",true)==0)
	{
		new dateban[64],ip[16],unbandate,str[500];
		if(Player[playerid][pAdmin] < 3)return send(playerid, COLOR_RED, vNolic);
		if(sscanf(params,"ris[100]",params[0],params[1],params[2]))return send(playerid,COLOR_LIGHTBLUE,""vCom"/ban [ID] [Дней] [Причина]");
		if(!IsPlayerConnected(params[0])) return send(playerid,COLOR_RED,""vError"Игрок не в сети");
		if(params[1] > 100) return send(playerid,COLOR_RED,""vError"Нельзя забанить больше 100 дней");
		if(IsPlayerNPC(params[0])) return true;
		f(str,"{ffffff}Xperia:  {00ff00}%s {ffffff}был(а) забанен(а) {ff0000}%s {ffffff}на {ff0000}%s. {ffffff}Причина: {ff0000}%s", Player[params[0]][pName],NameAdmin(playerid),Player[playerid][pName],nformat(params[1],"äåíü","äíÿ","äíåé"),params[2]);
		sendToAll(COLOR_LIGHTRED, str);
		unbandate = gettime() + params[1]*86400;
		new year, month,day;
		getdate(year, month, day);
		GetPlayerIp(params[0], ip, 32);
		format(dateban, 16, "%02d.%02d.%04d",day, month, year);
		f(str,"INSERT INTO `bans` (name, IP, bandate, time, unbandate, reason, admin) VALUES ('%s', '%s', '%s', %d, %d, '%s', '%s')", Player[params[0]][pName], ip, dateban, params[1], unbandate, params[2], Player[playerid][pName]);
		mysql_query(str);
		Kick(params[0]);
		SetPVarInt(playerid, "banotkat", 5);
		SetPVarInt(playerid, "bc", GetPVarInt(playerid, "bc")+1);
		if(GetPVarInt(playerid, "banotkat") > 0 && GetPVarInt(playerid, "bc") > 2){ Player[playerid][pAdmin] = 0; }
		return true;
	}
Вот как пишет.
PHP:
stock CheckBanList(playerid)
{
	new unbandate, bool:ban, ip[32],str[255];
	GetPlayerIp(playerid, ip, 32);
	f(str,"SELECT unbandate FROM bans WHERE name = '%s'", Player[playerid][pName]);
	if(mysql_query(str) && mysql_store_result())
	{
		if(mysql_num_rows())
		{
			unbandate = mysql_fetch_int();
			if(unbandate > gettime()) ban = true;
		}
	}
	mysql_free_result();
	if(!ban)
	{
		f(str,"SELECT unbandate FROM bans WHERE ip = '%s'", ip);
		if(mysql_query(str) && mysql_store_result())
		{
			if(mysql_num_rows())
			{
				unbandate = mysql_fetch_int();
				if(unbandate > gettime()) ban = true;
			}
		}
		mysql_free_result();
	}
	if(ban)
	{
		new data[512], query[128], buffer[64], bant[64], unbant, reason[64], strss[128], admin[64];
		f(query,"SELECT * FROM `bans` WHERE name = '%s'",Player[playerid][pName]);
		mysql_query(query);
		mysql_store_result();
		mysql_fetch_row(data);
		mysql_get_field("bandate", buffer); 	strmid(bant, buffer, 0, strlen(buffer), 255);
		mysql_get_field("unbandate", buffer); 	unbant = strval(buffer);
		mysql_get_field("reason", buffer); 		strmid(reason, buffer, 0, strlen(buffer), 255);
		mysql_get_field("admin", buffer); 		strmid(admin, buffer, 0, strlen(buffer), 255);
		mysql_free_result();
		new unbantime[25];
		f(strss,"SELECT FROM_UNIXTIME( %d )", unbant);
		if(mysql_query(strss) && mysql_store_result()) mysql_fetch_row_format(unbantime);
		f(str,"{BB0909}Вас забанил:"WHT" %s\n{BB0909}Дата бана:"WHT" %s\n{BB0909}Причина:"WHT" %s\n{BB0909}Дата разбана:"WHT" %s", admin, bant, reason, unbantime);
		SPD(playerid, DIALOG_BAN , DIALOG_STYLE_MSGBOX, ""CNC"Вы забанены", str, "Закрыть", "");
		Kick(playerid);
	}
	return true;
}
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу