Проблема с ботами при mp_ignore_round_win_conditions 1

Тема в разделе "Общие вопросы", создана пользователем Серый™, 9 фев 2013.

  1. Серый™

    Серый™ CS:S Server

    Сообщения:
    2.570
    Симпатии:
    1.153
    Так вот, есть проблема с ботами при mp_ignore_round_win_conditions 1, когда игрок выходит, бот заходит и весит в мёртвых, не возрождается(в дм), а когда боты заходят тока при заходе игроков, то они все весят мёртвыми, нормально возрождаются тока в начале раунда. Через какое то время снова веся в мёртвых.
    Есть ли квар который блокирует сыграть второй раз в игре(стандартный)? Или я придумал сделать плагин который при команде возрождает мёртвых ботов(1 игрок может использовать его 1 раз за сессию или карту, для токго чтоб не злоупотребили этой командой).
    Можно сделать плагн, когда первый игрок заходит в игру, делался рестарт игры.

    вот придумал что, но как сделать проверку чтоб тока команда исполнялась при заходе первого игрока?
    PHP:
    public OnClientAuthorized(client, const String:auth[])
    {
        new 
    player 0;
        if(
    player 1ServerCommand("mp_restartgame 3");
    }
     
    Последнее редактирование: 9 фев 2013
  2. GoDtm666

    GoDtm666

    Сообщения:
    522
    Симпатии:
    558
    0_0 эт че? при каждом новом игроке, будет растарт делаться?
     
  3. ☆★☆БАТЯ☆★☆™

    ☆★☆БАТЯ☆★☆™

    Сообщения:
    2.585
    Симпатии:
    1.341
    GoDtm666, он и спрашивает:

     
  4. Серый™

    Серый™ CS:S Server

    Сообщения:
    2.570
    Симпатии:
    1.153
    ilga80, я попробовал так, потянет?
    PHP:
    public OnClientAuthorized(client, const String:auth[])
    {
        new 
    playercount 0
        for (new 
    1<= MaxClientsp++) 
        { 
            if (
    IsClientInGame(p) && !IsFakeClient(p) && IsPlayerAlive(p)) 
            { 
                
    playercount 1
                break; 
            } 
        } 
        if (
    playercount == 0
        { 
            
    ServerCommand("mp_restartgame 3"); 
        }
    }
     
  5. Серый™

    Серый™ CS:S Server

    Сообщения:
    2.570
    Симпатии:
    1.153
    ilga80, да так.
     
  6. The End Is Near...

    The End Is Near... Russian Roulette

    Сообщения:
    892
    Симпатии:
    659
    ilga80
    1. Если человек в спеках?
    2. Если за CT 0 игроков, а за T +100500
    3. Тоже самое с T
     
  7. Серый™

    Серый™ CS:S Server

    Сообщения:
    2.570
    Симпатии:
    1.153
    The End Is Near..., а какую ещё проверку добавить к твоему коду чтоб, ещё когда один игрок зашёл в спеки и снова в игру производился код?
     
  8. Серый™

    Серый™ CS:S Server

    Сообщения:
    2.570
    Симпатии:
    1.153
    The End Is Near..., на сервере один игрок, он заходит в спеки и потом снова в игру, ну вот надо чтоб код исполнялся когда один игрок на сервере и он заходит в команду из спектров. (думаю нормально объяснил:))
     
  9. The End Is Near...

    The End Is Near... Russian Roulette

    Сообщения:
    892
    Симпатии:
    659
    Серый™
    Попробуй v2
    PHP:
    #include <sourcemod>

    public OnPluginStart()
    {
        
    HookEvent("player_team"Event_OnPlayerTeam);
    }

    public 
    Event_OnPlayerTeam(Handle:event, const String:name[], bool:silent)
    {
        if (
    GetEventInt(event"team") != 1)
        {
            
    GetPlayers();
        }
    }

    public 
    OnClientPutInServer(client)
    {
        
    GetPlayers();
    }

    GetPlayers()
    {
        new 
    players 0;
        for (new 
    1<= MaxClientsi++)
        {
            if (
    IsClientInGame(i) && !IsFakeClient(i))
            {
                
    players++;
            }    
        }

        
    // Твое условие
        
    if (players == 0)
        {
            
    // Твой код
        
    }
    }
     
    Серый™ нравится это.
  10. Серый™

    Серый™ CS:S Server

    Сообщения:
    2.570
    Симпатии:
    1.153
    The End Is Near..., при подключении работает, а при смене команды нет((

    всё ровно(( Оффтоп
    думаю если не получится, то мы главное уже сделали)) спасибо всем за помощь))
     
  11. Серый™

    Серый™ CS:S Server

    Сообщения:
    2.570
    Симпатии:
    1.153
    Мой плаг..
    PHP:
    #pragma semicolon 1
    #pragma tabsize 0

    #include <sourcemod>
    #define VERSION "0.1b"

    public Plugin:myinfo =
    {
        
    name "Restart",
        
    author "",
        
    description "",
        
    version VERSION,
        
    url ""
    };

    public 
    OnPluginStart()
    {
        
    HookEvent("player_team"Event_OnPlayerTeam);
    }

    public 
    Event_OnPlayerTeam(Handle:event, const String:name[], bool:silent)
    {
       if (
    GetEventInt(event"team") != 1)
        {
            
    GetPlayers();
        }
    }

    public 
    OnClientAuthorized(client)
    {
        
    GetPlayers();
    }

    GetPlayers()
    {
        
    // Создаем переменную и приравниваем ее 0
        
    new players 0;
        
        
    // Выполняем цикл по игрокам
        
    for (new 1<= MaxClientsi++)
        {
            if (
    IsClientInGame(i) && !IsFakeClient(i))
            {
                
    players++;
            }    
        }
      
        
    // Делаешь свое условие
        
    if (players == 0)
        { 
            
    ServerCommand("mp_restartgame 3"); 
        }
    }
    Я один на сервер, 4 бота, добавляются когда я вхожу в игру, и когда я в спеках они уходят, присоединяются тока когда есть в игре игрок.
     
  12. Серый™

    Серый™ CS:S Server

    Сообщения:
    2.570
    Симпатии:
    1.153
    The End Is Near..., значит нужно сделать так if (players == 1) ?

    вариант меня удовлетворивший ..
    PHP:
    #pragma semicolon 1
    #pragma tabsize 0

    #include <sourcemod>
    #define VERSION "0.1b"

    public Plugin:myinfo =
    {
        
    name "Restart",
        
    author "",
        
    description "",
        
    version VERSION,
        
    url ""
    };

    public 
    OnPluginStart()
    {
        
    HookEvent("player_team"Event_OnPlayerTeam);
    }

    public 
    Event_OnPlayerTeam(Handle:event, const String:name[], bool:silent)
    {
        new 
    client GetClientOfUserId(GetEventInt(event"userid"));
        if (
    client && IsClientInGame(client))
        {
            
    GetPlayers();
        }
    }

    GetPlayers()
    {
        new 
    playercount 0;  
        for (new 
    1<= MaxClientsp++)  
        {  
            if (
    IsClientInGame(p) && !IsFakeClient(p) && IsPlayerAlive(p))  
            {  
                
    playercount 1;  
                break;  
            }  
        }  
        if (
    playercount == 0)  
        {  
            
    ServerCommand("mp_restartgame 3");  
        }
    }
     
    Последнее редактирование: 10 фев 2013