Перейти к содержанию
Авторизация  
LYTKICH

Бан на mxINI и ZCMD

Рекомендуемые сообщения

LYTKICH

Помогите пожалуйста сделать бан на mxini и на процессоре zcmd! 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Richard

Скачайте инклуд mxdate.inc и установите в папку pawno -> include

Создайте в папке scriptfiles папку banlist

 

Ко всем include

#include <mxdate>

В public OnPlayerConnect

GetBan(playerid);

Ко всем командам

CMD:ban(playerid, params[])
{
	if(Player[playerid][pAdm] < 3) return SendClientMessage(playerid,-1, "Вы не администратор");
	new string[256];
	if(sscanf(params, "iis", params[0], params[1], params[2])) return SendClientMessage(playerid, -1, "Подсказка: /ban [id игрока] [дни] [причина]");
	new PlayerNick[MAX_PLAYER_NAME], PlayerBan[MAX_PLAYER_NAME];
	if(!IsPlayerConnected(params[0])) return SendClientMessage(playerid, -1,"Игрок не найден.");
	if(params[0] == playerid) return SendClientMessage(playerid, -1, "Вы не можете забанить себя.");
	GetPlayerName(playerid, PlayerBan, MAX_PLAYER_NAME);
	GetPlayerName(params[0], PlayerNick, MAX_PLAYER_NAME);
	format(string,sizeof(string),"Администратор %s[%d] забанил игрока %s[%d] на %d дней. Причина: %s",PlayerNick,playerid,PlayerBan,params[0],params[1],params[2]);
	SendClientMessageToAll(-1, string);
	AddBan(params[0], PlayerBan, PlayerNick, params[1], params[2]);
	return 1;
}

В конец мода

stock AddBan(player, playerid[], giveplayerid[], chislo = 0, reason[])
{
	new totalban = 86400*chislo;
	new string[128];
	format(string,sizeof(string),"banlist/%s.ini", playerid);
	new OpenBan = ini_createFile(string);
	if(OpenBan < 0) ini_openFile(string);
	ini_setInteger(OpenBan, "BanTime", gettime()+32400);
	ini_setInteger(OpenBan, "UnBanTime", (gettime()+32400)+totalban);
	ini_setString(OpenBan, "PlayerBan", giveplayerid);
	ini_setString(OpenBan, "Reason", reason);
	ini_closeFile(OpenBan);
	return Kick(player);
}

stock GetBan(playerid)
{
	new PlayerNick[MAX_PLAYER_NAME],string[255];
	GetPlayerName(playerid, PlayerNick, MAX_PLAYER_NAME);
	format(string,sizeof(string),"banlist/%s.ini", PlayerNick);
	if(fexist(string))
	{
		new OpenBan = ini_openFile(string);
		new bantime, unbantime, PlayerBan[MAX_PLAYER_NAME], reason[128];
		ini_getInteger(OpenBan, "BanTime", bantime);
		ini_getInteger(OpenBan, "UnBanTime", unbantime);
		ini_getString(OpenBan, "PlayerBan", PlayerBan);
		ini_getString(OpenBan, "Reason", reason);
		ini_closeFile(OpenBan);
		if((gettime() + 32400) >= unbantime) return UnBan(PlayerNick);
		else
		{
			format(string,sizeof(string),"\
			Дата бана: %s\n\
			Дата Разбана: %s\n\
			Ваш ник: %s\n\
			Ник администратора: %s\n\
			Причина бана: %s\n\
			",
			date("%dd.%mm.%yyyy в %hh:%ii:%ss",bantime),
			date("%dd.%mm.%yyyy в %hh:%ii:%ss",unbantime),
			PlayerNick,PlayerBan,reason);
			ShowPlayerDialog(playerid, 31000, 0, "Заблокирован", string, "Выйти","");
			return Kick(playerid);
		}
	}
	else return true;
}

stock UnBan(playerid[])
{
	new string[64];
	format(string,sizeof(string),"banlist/%s.ini", playerid);
	return fremove(string);
}

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек.