Изменить условия окончания раунда и начинание нового раунда

September

Участник
Сообщения
5,238
Реакции
2,742
  • Команда форума
  • #1
Всем привет. Мне нужно написать плагин, чтобы новый раунд начинался когда остался 1 выживший игрок из любой команды, но если допустим команда Контр-террористов или террористов погибла, новый раунд не начинался. Надеюсь суть ясна, готов $$$:ab:
 

pracc

Быть, а не казаться.
Сообщения
946
Реакции
541
Я честно не понял суть таких условий.
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #4
PHP:
#pragma semicolon 1

#include <sourcemod>
#include <cstrike>

public OnPluginStart()
{
    HookEvent("player_death", EventPlayerDeath);
}

public EventPlayerDeath(Handle:event,const String:name[],bool:dontBroadcast)
{
    decl iAliveCT, iAliveT, i;
    iAliveCT = iAliveT = 0;
   
    for (i = 1; i <= MaxClients; ++i)
    {
        if (IsClientInGame(i) && IsPlayerAlive(i))
        {
            switch(GetClientTeam(i))
            {
                case 2:    ++iAliveT;
                case 3: ++iAliveCT;
            }
        }
    }
   
    if(iAliveCT == 1 && iAliveT == 0)
    {
        CS_TerminateRound(1.0, CSRoundEndReason:CSRoundEnd_CTWin);
    }
    else if(iAliveCT == 0 && iAliveT == 1))
    {
        CS_TerminateRound(1.0, CSRoundEndReason:CSRoundEnd_TerroristWin);
    }
}
 

September

Участник
Сообщения
5,238
Реакции
2,742
  • Команда форума
  • #5
PHP:
#pragma semicolon 1

#include <sourcemod>
#include <cstrike>

public OnPluginStart()
{
    HookEvent("player_death", EventPlayerDeath);
}

public EventPlayerDeath(Handle:event,const String:name[],bool:dontBroadcast)
{
    decl iAliveCT, iAliveT, i;
    iAliveCT = iAliveT = 0;
  
    for (i = 1; i <= MaxClients; ++i)
    {
        if (IsClientInGame(i) && IsPlayerAlive(i))
        {
            switch(GetClientTeam(i))
            {
                case 2:    ++iAliveT;
                case 3: ++iAliveCT;
            }
        }
    }
  
    if(iAliveCT == 1 && iAliveT == 0)
    {
        CS_TerminateRound(1.0, CSRoundEndReason:CSRoundEnd_CTWin);
    }
    else if(iAliveCT == 0 && iAliveT == 1))
    {
        CS_TerminateRound(1.0, CSRoundEndReason:CSRoundEnd_TerroristWin);
    }
}

1HDgF2ki.png

--- Добавлено позже ---
Исправил, всё равно раунд новый начинается, когда одна из команд погибает.
 
Последнее редактирование:

Primo

типа серьёзный тип
Сообщения
1,532
Реакции
759
@September, на голодных играх, как правило, ставится квар mp_teammates_are_enemies 1, вследствие чего распределения по командам как такового нет, и каждый игрок сам за себя. Т.е. твоё условие выполнится без плагинов.
 

September

Участник
Сообщения
5,238
Реакции
2,742
  • Команда форума
  • #7
@September, на голодных играх, как правило, ставится квар mp_teammates_are_enemies 1, вследствие чего распределения по командам как такового нет, и каждый игрок сам за себя. Т.е. твоё условие выполнится без плагинов.

Спасибо
 
Сверху Снизу