[CS:GO] Подскажите как можно узнать количество живых игроков

L1MONENKO

Добрая душа
Сообщения
655
Реакции
600
Хочу написать плагин который бы менял значение некоторых кваров когда в одной из команды оставался 1 живой игрок против n>0 количества игроков. Подскажите как можно было бы реализовать подсчет живых игроков в каждой команде.

Оффтоп
 
Последнее редактирование:
Решение
Подскажите как можно было бы реализовать подсчет живых игроков в каждой команде.
C-подобный:
stock int UTIL_GetAliveClientsInTeam(int iTeamId)
{
    int iPlayers;
    for (int iClient = MaxClients; iClient != 0; --iClient)
        if (IsClientInGame(iClient) && GetClientTeam(iClient) == iTeamId && IsPlayerAlive(iClient))
            iPlayers++;

    return iPlayers;
}

L1MONENKO

Добрая душа
Сообщения
655
Реакции
600

SAZONISCHE

Участник
Сообщения
405
Реакции
232
C++:
stock int GetPlayerCountEx(int client, bool AliveOnly, bool teamOnly, bool noSpectators) {
    int clientTeam = CS_TEAM_NONE;

    if (client > 0)
        clientTeam = GetClientTeam(client);

    int players = 0;
    for (int i = 1; i <= MaxClients; i++) {
        if (AliveOnly) {
            if (IsClientConnected(i) && IsClientInGame(i) && !IsFakeClient(i) && IsPlayerAlive(i)) {
                if (teamOnly) {
                    if (clientTeam == GetClientTeam(i)) {
                        players++;
                    }
                } else {
                    if (noSpectators) {
                        if (GetClientTeam(i) == CS_TEAM_CT || GetClientTeam(i) == CS_TEAM_T) {
                            players++;
                        }     
                    } else {
                        players++;
                    }
                }
            }             
        } else {
            if (IsClientConnected(i) && IsClientInGame(i) && !IsFakeClient(i)) {
                if (teamOnly) {
                    if (clientTeam == GetClientTeam(i)) {
                        players++;
                    }
                } else {
                    if (noSpectators) {
                        if (GetClientTeam(i) == CS_TEAM_CT || GetClientTeam(i) == CS_TEAM_T) {
                            players++;
                        }     
                    } else {
                        players++;
                    }
                }
            }
        }
    }                 
    return players;
}
Сообщения автоматически склеены:

example
GetPlayerCountEx(client, true, true, true)
 

Kruzya

Участник
Сообщения
12,970
Реакции
10,924
  • Команда форума
  • #5
Подскажите как можно было бы реализовать подсчет живых игроков в каждой команде.
C-подобный:
stock int UTIL_GetAliveClientsInTeam(int iTeamId)
{
    int iPlayers;
    for (int iClient = MaxClients; iClient != 0; --iClient)
        if (IsClientInGame(iClient) && GetClientTeam(iClient) == iTeamId && IsPlayerAlive(iClient))
            iPlayers++;

    return iPlayers;
}
 
Решение
Сверху Снизу