Помощь в редактировании плагина AdminTag

Тема в разделе "Counter-Strike: Source", создана пользователем DexKekcuk #13, 9 июн 2014.

  1. DexKekcuk #13

    DexKekcuk #13

    Сообщения:
    638
    Симпатии:
    70
    Уважаемые форумчане, доброго всем времени суток!

    Использую плагин AdminTag, но столкнулся с такой проблемой, что при входе на сервер игроку выставляется нужный Clan Tag с его группой, а позже если игрок зайдет в настройки и сменит Clan Tag то группа исчезает и появляется тот Clan Tag который он выставляет в настройках. Можно ли сделать так, чтоб блокировалась смена Clan Tag, то есть даже если игрок, админ или вип поменял Clan Tag, то у него останется выставленная группа с данного плагина!

    PHP:
    #include <sourcemod>  
    #include <cstrike> 

    public Plugin:myinfo 

        
    name "AdminClanTag"
        
    author "KeepCalm"
        
    description "Output instead of the clan tag, the tag owner, administrator and VIP persons server."
        
    url "http://www.sourcemod.net/" 
    }; 

    public 
    OnPluginStart()  
    {   
        
    HookEvent("player_team"Event);  
        
    HookEvent("player_spawn"Event);  
    }  

    public 
    Action:Event(Handle:eventString:name[], bool:dontBroadcast)  
    {  
        new 
    client GetClientOfUserId(GetEventInt(event"userid"));  
        
    HandleTag(client);  
    }  

    public 
    OnClientPostAdminCheck(client)  
    {  
        
    HandleTag(client); 
    }  

    HandleTag(client)  
    {  
      if (
    client 0)  
      {  
        if (
    GetUserFlagBits(client) & ADMFLAG_ROOT)  
        {  
            
    CS_SetClientClanTag(client"[OWNER]"); 
        } 
        else 
            if (
    GetUserFlagBits(client) & ADMFLAG_GENERIC)  
            {  
                
    CS_SetClientClanTag(client"[ADMIN]"); 
            } 
            else 
                if (
    GetUserFlagBits(client) & ADMFLAG_RESERVATION)  
                    {  
                        
    CS_SetClientClanTag(client"[VIP]"); 
                    }   
                    else 
                        {  
                            
    CS_SetClientClanTag(client"[PLAYER]");  
                        }  
      } 
    }  
     
  2. White Wolf

    White Wolf [] (int _n) -> double { return (_n % 2) == 0;}); Супер-модератор

    Сообщения:
    1.189
    Симпатии:
    413
    На сколько мне известно ты не заблокируешь у клиента смену клан-тега. А в API Sourcemod'a есть только нативы:
    PHP:
    /**
     * Gets a clients clan tag
     * @param client        Client index to get clan tag for.
     * @param buffer        Buffer to store clients clan tag in.
     * @param size            Size of the buffer.
     * @return                Number of non-null bytes written.
     *
     * @error                Invalid client.
     */
    native CS_GetClientClanTag(clientString:buffer[], size);

    /**
     * Sets a clients clan tag
     * @param client        Client index to set clan tag for.
     * @param tag            Tag to set clients clan tag as.
     * @noreturn
     *
     * @error                Invalid client.
     */
    native CS_SetClientClanTag(client, const String:tag[]);
     
  3. SenatoR

    SenatoR Модератор

    Сообщения:
    714
    Симпатии:
    270
    сделай просто проверку через таймер и если тег не тот, который тебе надо, то ставь другой
     
  4. DexKekcuk #13

    DexKekcuk #13

    Сообщения:
    638
    Симпатии:
    70
    Если бы я еще знал как этой делать, но толк это делать если после каждой смены карты будет выставлять данный Tag

    Добавлено через 6 минут
    Вот сейчас был на каком-то сервере Energy-Games

    "Clan tag menu" (1.0) by wS / Schmidt [Modif. by nynCuKaH]

    Стоит такой плагин, но я так понимаю он просто выставляет у них Clan tag Energy-Games и группы Admin Vip Owned players не пишет, плагин значит предназначен для другого. Но суть в том что идет блокировка Смены Clan Tag
     
    Последнее редактирование: 9 июн 2014
  5. semjef

    semjef semjef.ru

    Сообщения:
    1.031
    Симпатии:
    473
    Alex Tarasenko, смену тега хз как блокнуть, но можно просто каждые 10 секунд заново выставлять нужный тэг.

    Добавлено через 57 секунд
    SenatoR, зачем проверять? быстрее работать будет, если выставлять нужный. Просто при заходе пишем нужный тэг для игрока в массив.
     
    Последнее редактирование: 15 июн 2014
  6. DexKekcuk #13

    DexKekcuk #13

    Сообщения:
    638
    Симпатии:
    70
    да я уже все сделал, спасибо)
     
  7. Стасян Фетисов

    Стасян Фетисов

    Сообщения:
    112
    Симпатии:
    15
    в компиляторе ошибка..ребят помогите скомпилировать...
    {
    HookEvent("player_team", Event);
    HookEvent("player_spawn", Event);
    }

    public Action:Event(Handle:event, String:name[], bool:dontBroadcast)
    {
    new client = GetClientOfUserId(GetEventInt(event, "userid"));
    HandleTag(client);
    }

    public OnClientPostAdminCheck(client)
    {
    HandleTag(client);
    }

    HandleTag(client)
    {
    if (client > 0)
    {
    if (GetUserFlagBits(client) & ADMFLAG_ROOT)
    {
    CS_SetClientClanTag(client, "[ADMIN]");
    }
    else
    if (GetUserFlagBits(client) & ADMFLAG_GENERIC)
    {
    CS_SetClientClanTag(client, "[ADMIN]");
    }
    else
    if (GetUserFlagBits(client) & ADMFLAG_RESERVATION)
    {
    CS_SetClientClanTag(client, "[VIP]");
    }
    else
    {
    CS_SetClientClanTag(client, "");
    }
    }
    }