Добавить иммунитет к плагину

Тема в разделе "Программирование / Скриптинг", создана пользователем vii92, 10 ноя 2014.

  1. vii92

    vii92

    Сообщения:
    9
    Симпатии:
    0
    Всем привет.

    Есть плагин, который кикает игроков которые заседелись в спектрах, и к нему нужно добавить иммунитет админам.

    Сам в этом не бум бум.Просьба знающих, помогите.
     

    Вложения:

  2. Черная вдова

    Черная вдова

    Сообщения:
    1.621
    Симпатии:
    234
    150 р, если согласен - пиши в лс
     
  3. R1KO

    R1KO Супер-модератор

    Сообщения:
    5.972
    Симпатии:
    2.977
    Иммунитет у всех админов:
     

    Вложения:

    Webman, Danyas, Мария Фомина и ещё 1-му нравится это.
  4. TolikCorp

    TolikCorp

    Сообщения:
    855
    Симпатии:
    271
  5. vii92

    vii92

    Сообщения:
    9
    Симпатии:
    0
    Спасибо огромное.

    Щас протестирую.
     
  6. R1KO

    R1KO Супер-модератор

    Сообщения:
    5.972
    Симпатии:
    2.977
    Оффтоп
     
    Мария Фомина нравится это.
  7. vii92

    vii92

    Сообщения:
    9
    Симпатии:
    0
    Все работает.

    Еще вопросик, если я изменю время таймера с 3 минут на 15.Сильно ли будет грузить это сервер? или же нагрузка от времени таймера не зависит ?
     
  8. Danyas

    Danyas Спасибо, браток © yand3xmail Модератор

    Сообщения:
    1.714
    Симпатии:
    451
    Прямо Пропорционально зависит
     
  9. vii92

    vii92

    Сообщения:
    9
    Симпатии:
    0
    Вот такая неприятная ошибочка.

    L 11/11/2014 - 10:56:51: [SM] Displaying call stack trace for plugin "check_spectator.smx":
    L 11/11/2014 - 10:56:51: [SM] [0] Line 50, /home/groups/sourcemod/upload_tmp/phpv0VK5n.sp::OnClientDisconnect()
    L 11/11/2014 - 10:59:41: [SM] Native "KillTimer" reported: Invalid timer handle 1180fa7 (error 1)
     
  10. Vit_ amin

    Vit_ amin BotManager001

    Сообщения:
    1.049
    Симпатии:
    344
    Всё настолько плохо ?
     
    Danyas нравится это.
  11. TolikCorp

    TolikCorp

    Сообщения:
    855
    Симпатии:
    271
    PHP:
    #pragma semicolon 1

    #include <sourcemod>

    public Plugin:myinfo =
    {
        
    name "Check Spectator",
        
    author "Grisha",
        
    description "Автоматический кик игроков сидящих в спектрах более 3-х минут",
        
    version "1.2",
        
    url "http://forum.sourcemod-plugins.ru/"
    };

    new 
    Handle:i_ExitPlayer[MAXPLAYERS+1],
        
    bool:g_bIsAdmin[MAXPLAYERS+1];

    public 
    OnPluginStart()
    {
        
    CreateTimer(5.0i_CheckSpectators_TIMER_REPEAT);


    public 
    OnClientPostAdminCheck(clientg_bIsAdmin[client] = (!IsFakeClient(client) && GetUserAdmin(client) != INVALID_ADMIN_ID);

    public 
    Action:i_CheckSpectators(Handle:timer)
    {
        for (new 
    1<= MaxClientsi++)
        {
            if(
    IsClientInGame(i) && !IsFakeClient(i) && !g_bIsAdmin[i] && GetClientTeam(i) == 1)
            {
                
    i_ExitPlayer[i] = CreateTimer(180.0i_KickSpectatorsi);
            }
        }
    }

    public 
    Action:i_KickSpectators(Handle:timerany:client)
    {
        if(
    IsClientInGame(client) && GetClientTeam(client) == && i_ExitPlayer[client] != INVALID_HANDLE)
        {
            
    KickClient(client"Вы были кикнуты.\nМаксимальное время нахождения в спектрах 3 минуты");
            
    PrintToChatAll("\x04[\x03★\x04]\x01 Игрок\x03 %N\x01 засиделся в спектрах и был кикнут.."client);
        }
        
    i_ExitPlayer[client] = INVALID_HANDLE;
    }

    public 
    OnClientDisconnect(client)
    {
        
    g_bIsAdmin[client] = false;
        if (
    i_ExitPlayer[client] != INVALID_HANDLE)
        {
            
    KillTimer(i_ExitPlayer[client]);
            
    i_ExitPlayer[client] = INVALID_HANDLE;
        }
    }
    Проверяй.
     
  12. vii92

    vii92

    Сообщения:
    9
    Симпатии:
    0
    Спасибо. Щас попробую.

    Добавлено через 3 минуты
    И вообще, кто может довести это плагин до ума?.Добавить квар, что бы плагин начинал кикать после определенного количества игроков на сервере.Я думаю многим людям пригодится такой плагин.Легкая замена аналогам.

    Про afk manager просьба не писать.
     
    Последнее редактирование: 12 ноя 2014
  13. artyrka94

    artyrka94

    Сообщения:
    182
    Симпатии:
    36
    PHP:
    #pragma semicolon 1 

    #include <sourcemod> 

    public Plugin:myinfo 

        
    name "Check Spectator"
        
    author "Grisha и несколько посонов из hlmod'a"
        
    description "Автоматический кик игроков сидящих в спектрах более 3-х минут"
        
    version "1.2"
        
    url "http://forum.sourcemod-plugins.ru/" 
    }; 

    new 
    Handle:i_ExitPlayer[MAXPLAYERS+1], 
        
    bool:g_bIsAdmin[MAXPLAYERS+1],
        
    Handle:g_cMinPlayers

    public 
    OnPluginStart() 
    {
        
    CreateTimer(5.0i_CheckSpectators_TIMER_REPEAT);
        
    g_cMinPlayers CreateConVar("sm_checkspec_min""5""Минимальное количество игроков для работы плагина");
    }  

    public 
    OnClientPostAdminCheck(clientg_bIsAdmin[client] = (!IsFakeClient(client) && GetUserAdmin(client) != INVALID_ADMIN_ID); 

    public 
    Action:i_CheckSpectators(Handle:timer
    {
        if(
    _IsPluginEnable())
        for (new 
    1<= MaxClientsi++) 
        { 
            if(
    IsClientInGame(i) && !IsFakeClient(i) && !g_bIsAdmin[i] && GetClientTeam(i) == 1
            { 
                
    i_ExitPlayer[i] = CreateTimer(180.0i_KickSpectatorsi); 
            } 
        } 
    }
    _IsPluginEnable()
        if(
    GetClientCount() >= GetConVarInt(g_cMinPlayers)) return true;else return false;
     

    public 
    Action:i_KickSpectators(Handle:timerany:client

        if(
    IsClientInGame(client) && GetClientTeam(client) == && i_ExitPlayer[client] != INVALID_HANDLE
        { 
            
    KickClient(client"Вы были кикнуты.\nМаксимальное время нахождения в спектрах 3 минуты"); 
            
    PrintToChatAll("\x04[\x03★\x04]\x01 Игрок\x03 %N\x01 засиделся в спектрах и был кикнут.."client); 
        } 
        
    i_ExitPlayer[client] = INVALID_HANDLE


    public 
    OnClientDisconnect(client

        
    g_bIsAdmin[client] = false
        if (
    i_ExitPlayer[client] != INVALID_HANDLE
        { 
            
    KillTimer(i_ExitPlayer[client]); 
            
    i_ExitPlayer[client] = INVALID_HANDLE
        } 
    }  
     

    Вложения:

  14. R1KO

    R1KO Супер-модератор

    Сообщения:
    5.972
    Симпатии:
    2.977
    artyrka94,
    PHP:
    _IsPluginEnable() 
        if(
    GetClientCount() >= GetConVarInt(g_cMinPlayers)) return true;else return false;
    PHP:
    _IsPluginEnable() return (GetClientCount() >= GetConVarInt(g_cMinPlayers));
     
    artyrka94 нравится это.
  15. vii92

    vii92

    Сообщения:
    9
    Симпатии:
    0
    Спасибо, щас испробую.
     
  16. Черная вдова

    Черная вдова

    Сообщения:
    1.621
    Симпатии:
    234
    Да мне по боробану потрачу я свое время на учебу или на делание плагина за 150 рубелй
    Рико хочет пускай бесплатно работает
     
  17. artyrka94

    artyrka94

    Сообщения:
    182
    Симпатии:
    36
    Оффтоп
     
  18. Черная вдова

    Черная вдова

    Сообщения:
    1.621
    Симпатии:
    234
    artyrka94,
    Если ты единственный вариант и за 150 согласятся
     
  19. ☆★☆БАТЯ☆★☆™

    ☆★☆БАТЯ☆★☆™

    Сообщения:
    2.585
    Симпатии:
    1.341
    Черная вдова, хорошо, что ты не единственный вариант. С такими ценами - сервер золотой станет.
     
  20. Черная вдова

    Черная вдова

    Сообщения:
    1.621
    Симпатии:
    234
    ☆★☆БАТЯ☆★☆™,
    Ну кто хочет сделать идеальный по их представлением сервер - и так он станет золотым, даже если не деньги то время он точно забирает