Смена конфигурации от определенного количества игроков

Тема в разделе "Требуется", создана пользователем alexmy, 19 сен 2016.

  1. alexmy

    alexmy

    Сообщения:
    68
    Симпатии:
    4
    Всем привет ребята нужен плагин. Суть плагина от определенного количества игроков чтоб менялась конфигурация например на сервере 7 человек зашел еще один то есть уже 8 играет сразу изменился квар и в обратном случаи, вышел один игрок настройки поменялись на ранее.
     
  2. AlmazON

    AlmazON деревянный © yand3xmail

    Сообщения:
    4.512
    Симпатии:
    1.964
    PHP:
    #define PEOPLE_NEWCONFIG    8

    public OnClientPostAdminCheck(client)
    {
        if(
    GetClientCount() == PEOPLE_NEWCONFIGServerCommand("mp_friendlyfire 1");
    }

    public 
    OnClientDisconnect(client)
    {
        if(
    IsClientInGame(client)) if(GetClientCount() == PEOPLE_NEWCONFIGServerCommand("mp_friendlyfire 0");
    }
    Где: PEOPLE_NEWCONFIG - минимальное количество зашедших на сервер игроков, при котором в силу вступают новые настройки (и наоборот).
    "mp_friendlyfire 1" - указать любые переменные и консольные команды через точку с запятой. Например: "mp_fraglimit 60;mp_freezetime 2;mp_roundtime 7".
    Можно и из файла брать все настройки - одинаково просто.
     
    Последнее редактирование: 19 сен 2016
    alexmy и GANZ нравится это.
  3. alexmy

    alexmy

    Сообщения:
    68
    Симпатии:
    4
    Спасибо большое вроде работает=). Я вот добавил рекламу но она очень много спамится, можно как нибудь исправит? Оффтоп
     
  4. AlmazON

    AlmazON деревянный © yand3xmail

    Сообщения:
    4.512
    Симпатии:
    1.964
    Писать надо внутри, после проверки:
    PHP:
    #include <colors>
    #define PEOPLE_NEWCONFIG    6

    public OnClientPostAdminCheck(client)
    {
        if(
    GetClientCount() == PEOPLE_NEWCONFIG)
        {
            
    ServerCommand("sm_cvar z_difficulty Hard");
            
    CPrintToChatAll("{blue}Превышенный лимит игроков, смена сложности на {green}Мастер{blue}!");
        }
    }

    public 
    OnClientDisconnect(client)
    {
        if(
    IsClientInGame(client)) if(GetClientCount() == PEOPLE_NEWCONFIG)
        {
            
    ServerCommand("sm_cvar z_difficulty Normal");
            
    CPrintToChatAll("{blue}Состав команды уменьшился, смена сложности  на {green}Нормально{blue}!");
        }
    }
     
  5. alexmy

    alexmy

    Сообщения:
    68
    Симпатии:
    4
    Привет. помоги еще раз). настройки меняет а назад не скидывает.
     
  6. AlmazON

    AlmazON деревянный © yand3xmail

    Сообщения:
    4.512
    Симпатии:
    1.964
    Боты есть? Учти, что их тоже считает. Поэтому, если стало 8 игроков (включая ботов), люди вышли, а боты - нет, то и сбрасывать не станет. Проверил - у меня стабильно, даже с ботами.
     
  7. alexmy

    alexmy

    Сообщения:
    68
    Симпатии:
    4
    Как я пробовал в настройках стоит 6 чел. зашел на сервер играло четверо настройка поменялась, вышел из сервера настройка осталась включенной=)
     
  8. AlmazON

    AlmazON деревянный © yand3xmail

    Сообщения:
    4.512
    Симпатии:
    1.964
    Как-то математика хромает, тебе не кажется? :biggrin: Если четверо + ты, то от 5 не включится. Либо ещё бот появился, либо кто-то подключался в этот момент (качал карту, звуки, модели) и его посчитало. Может, когда ты вышел, ещё начал кто-то подключаться к серверу и настройка сохранилась.
    Проверяй по занятым слотам ещё, они покажут "подключенцев".
     
    Последнее редактирование: 20 сен 2016
  9. alexmy

    alexmy

    Сообщения:
    68
    Симпатии:
    4
    Шутник как всегда)
    Я с тобой согласен если он считает и зараженных боссов тогда ты прав=), ну а если это простой баг опять же+)?
     
  10. AlmazON

    AlmazON деревянный © yand3xmail

    Сообщения:
    4.512
    Симпатии:
    1.964
    Босы - эти те же боты, конечно считает. Если же ты хочешь, чтобы считало только людей, так и скажи. Тут тоже ненамного больше писанины.
     
    alexmy нравится это.
  11. alexmy

    alexmy

    Сообщения:
    68
    Симпатии:
    4
    Ну если плиз можно=)
     
  12. AlmazON

    AlmazON деревянный © yand3xmail

    Сообщения:
    4.512
    Симпатии:
    1.964
    PHP:
    #include <colors>
    #define PEOPLE_NEWCONFIG    6

    new bool:g_bPlayerLoaded[MAXPLAYERS 1], g_iPlayers;

    public 
    OnMapEnd() g_iPlayers 0;

    public 
    OnClientPostAdminCheck(client)
    {
        if (!
    IsFakeClient(client))
        {
            
    g_bPlayerLoaded[client] = true;
            if (++
    g_iPlayers == PEOPLE_NEWCONFIG)
            {
                
    ServerCommand("sm_cvar z_difficulty Hard");
                
    CPrintToChatAll("{blue}Превышенный лимит игроков, смена сложности на {green}Мастер{blue}!");
            }
        }
    }

    public 
    OnClientDisconnect_Post(client)
    {
        if (
    g_bPlayerLoaded[client])
        {
            
    g_bPlayerLoaded[client] = false;
            if (--
    g_iPlayers == PEOPLE_NEWCONFIG 1)
            {
                
    ServerCommand("sm_cvar z_difficulty Normal");
                
    CPrintToChatAll("{blue}Состав команды уменьшился, смена сложности  на {green}Нормально{blue}!");
            }
        }
    }
    Где: PEOPLE_NEWCONFIG - минимальное количество зашедших на сервер игроков, при котором в силу вступают новые настройки (и наоборот).
    "sm_cvar z_difficulty Hard" - указать любые переменные и консольные команды через точку с запятой. Например: "mp_fraglimit 60;mp_freezetime 2;mp_roundtime 7".
    Из-за окраски чата не забудьте файл colors.inc!
    Этот конфигуратор, на сей раз, считает только полностью подключившихся к серверу игроков (скачавших карту, звуки, модели т.п.). Оффтоп
     
    Последнее редактирование: 20 сен 2016
    alexmy нравится это.
  13. alexmy

    alexmy

    Сообщения:
    68
    Симпатии:
    4
    Спасибо большое, вот теперь вроде норма работает)