shape1
shape2
shape3
shape4
shape7
shape8

Слетает Бан.


Novichek228

Новичок
Пользователь
05.11.2016
1
3
0
После перезахода на сервер бан слетает, что делать?

Код:
CMD:ban(playerid,params[])
{
	if(PlayerInfo[playerid][pAdmin] < 3) return SendClientMessage(playerid, 0xAFAFAFAA, "Данной команды нет на сервере");
	if(sscanf(params,"dds[24]",params[0],params[1],params[2])) return SendClientMessage(playerid, 0xAFAFAFAA, "Используйте: /ban [id игрока] [Число дней] [Причина]");
	if(!IsPlayerConnected(params[0])) return SendClientMessage(playerid, 0xAFAFAFAA, "Введеный вами ID не найден на сервере");
	if(params[1] < 5 || params[1] > 15) return SendClientMessage(playerid, 0xAFAFAFAA, "От 5 до 15 дней!");
	if(strlen(params[2]) < 2 || strlen(params[2]) > 24) return  SendClientMessage(playerid, 0xAFAFAFAA, "Точно и кратко сформулируйте причину от 2 до 24 символов");
	if(PlayerInfo[playerid][pAdmin] < PlayerInfo[params[0]][pAdmin]) return 1;
  	if(GetPVarInt(playerid,"CheckBan") < 3)
	{
		new playerName[50];
		GetPVarString(playerid, "BanRes", playerName, sizeof(playerName));
		if(!strcmp(playerName, params[2], true)) SetPVarInt(playerid,"CheckBan",GetPVarInt(playerid,"CheckBan")+1);
		else DeletePVar(playerid,"BanRes"),DeletePVar(playerid,"CheckBan");
	}
	else
	{
	    SetPVarInt(playerid, "kick__timer",GetTickCount()+100);
		PlayerInfo[playerid][pAdmin] = 0;
		static const fmt_string[] = "[A] %s снят системой [Анти-Перебан]";
		new str[sizeof(fmt_string)+MAX_PLAYER_NAME];
		format(str, sizeof(str), fmt_string,PlayerInfo[playerid][pSendername]);
		SendAdminMessage(0xAFAFAFAA,str);
		return true;
	}
	new ip[16], data[32];
    static const fmt_string[] = "Администратор %s забанил %s на %d дней. Причина: %s";
    new string[sizeof(fmt_string)+MAX_PLAYER_NAME-2+MAX_PLAYER_NAME-2+2-2+24-2];
	format(string, sizeof(string), fmt_string, PlayerInfo[playerid][pSendername],PlayerInfo[params[0]][pSendername],params[1],params[2]);
 	SendClientMessageToAll(0xFF6347AA, string);
 	SetPVarInt(params[0], "kick__timer",GetTickCount()+100);
	new years, months, days;
	getdate(years, months, days);
	new unbandate = gettime() + params[1]*86400;
	format(data, 32, "%02d.%02d.%04d", days, months, years);
	format(query, sizeof(query), "INSERT INTO bans (name, whobanned, ip, bandate, time, unbantime, reason) VALUES ('%s', '%s','%s', '%s', %d, %d, '%s')", PlayerInfo[params[0]][pSendername], PlayerInfo[playerid][pSendername], ip, data, params[1], unbandate, params[2]);
	mysql_query(query);
	return 1;
}
Код:
stock CheckBanList(playerid)
{
	new vas[32], unbandate, ban, ip[24];
	GetPlayerIp(playerid, ip, 20);
	format(query, 128, "SELECT * FROM bans WHERE name = '%s'", PlayerInfo[playerid][pSendername]);
	mysql_query(query);
	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_query(query);
		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(totalstring, 128, "{bda400}      Ваш аккаунт заблокирован\n\nДата разблокировки через: %d дней",UBDay+1);
		ShowPlayerDialog(playerid, D_NULL, DIALOG_STYLE_MSGBOX, "{0ec200}Аккаунт заблокирован", totalstring, "/q", "");
		Kick(playerid);
	}
	mysql_free_result();
}
 
Последнее редактирование модератором: