Ограничение бана

Тема в разделе "Программирование / Скриптинг", создана пользователем Monroe, 17 апр 2012.

  1. Monroe

    Monroe

    Сообщения:
    25
    Симпатии:
    35
    удалить
     
    Последнее редактирование: 25 фев 2014
  2. Игорь Охремчук

    Игорь Охремчук Админ uaplayer.com

    Сообщения:
    243
    Симпатии:
    366
    В админском меню можно ограничить пункты проверкой на флаг, я уже несколько раз писал.
    PHP:
    if(GetAdminFlag(GetUserAdmin(client), Admin_BanAccess_Real))
    {
        
    // ............
    }
    Ну и отредактируй коллбек консольной команды

    Код:
    public Action:CommandBan(client, args)
    {
    	if(args < 2)
    	{
    		ReplyToCommand(client, "%sUsage: sm_ban <#userid|name> <time|0> [reason]", Prefix);
    		return Plugin_Handled;
    	}
    
    	// This is mainly for me sanity since client used to be called admin and target used to be called client
    	new admin = client;
    	
    	// Get the target, find target returns a message on failure so we do not
    	decl String:buffer[100];
    	GetCmdArg(1, buffer, sizeof(buffer));
    	new target = FindTarget(client, buffer, true);
    	if(target == -1)
    	{
    		return Plugin_Handled;
    	}
    
    [B]	// Get the ban time
    	GetCmdArg(2, buffer, sizeof(buffer));
    	new time = StringToInt(buffer); [COLOR="Orange"]// Так сказать, "определение" на какое время бан[/COLOR]
    	if(!time && client && !(GetUserFlagBits(client) & (ADMFLAG_UNBAN|ADMFLAG_ROOT)))[COLOR="orange"] // проверка на возможность банить перманентно, то-есть есть ли у админа флаги ADMFLAG_UNBAN или ADMFLAG_ROOT[/COLOR]
    	{
    		ReplyToCommand(client, "You do not have Perm Ban Permission");
    		return Plugin_Handled;
    	}
            [COLOR="Red"]// тут слудует добавить свой код =)[/COLOR][/B]
    	
    	// Get the reason
    	decl String:reason[128];
    	if(args >= 3)
    	{
    		GetCmdArg(3, reason, sizeof(reason));
    	}
    	else
    	{
    		reason[0] = '\0';
    	}
    	
    	g_BanTarget[client] = target;
    	g_BanTime[client] = time;
    	
    	if(!PlayerStatus[target])
    	{
    		// The target has not been banned verify. It must be completed before you can ban anyone.
    		ReplyToCommand(admin, "%c[%cSourceBans%c]%c %t", GREEN, NAMECOLOR, GREEN, NAMECOLOR, "Ban Not Verified");
    		return Plugin_Handled;
    	}
    
    	
    	CreateBan(client, target, time, reason);
    	return Plugin_Handled;
    }
     
    semjef нравится это.