Team is full MG

rokfestr

Участник
Сообщения
340
Реакции
63
У меня стоит сервер мг на 40 слотов, на некоторых картах бывает что больше 15 человек за команду зайти нельзя.
Раньше помогал с этой проблемой Team Limit Bypass но теперь он не работает.
В конфиге прописано mp_limitteams "0" и mp_autoteambalance 0
Сможет кто-то помочь с данной проблемой?
 

Rostu

Добрая душа
Сообщения
986
Реакции
622
@rokfestr, Мб сработает
PHP:
#include <sourcemod>
#include <cstrike>
#include <sdktools>
int g_nSpawns_CT;
int g_nSpawns_T;

//#include <Rostu/core>


public void OnClientPutInServer( int client )
{
    CreateTimer( 1.0, T_Spawn, GetClientUserId( client ), TIMER_FLAG_NO_MAPCHANGE );
}

public Action T_Spawn( Handle hTimer, int client )
{
    if ( (client = GetClientOfUserId( client )) )
    {
        if ( IsFakeClient(client) )
        {
            SpawnPlayer( client );
        }
    }
}
stock void SpawnPlayer( int client )
{
    if ( IsPlayerAlive( client ) ) return;
   
   
    int team = GetPreferredTeam();
   
    if ( GetClientTeam( client ) != team )
    {
        ChangeClientTeam( client, team );
    }
   
    if ( !IsPlayerAlive( client ) )
    {
        CS_RespawnPlayer( client );
    }
}
stock void GetSpawnCounts()
{
    g_nSpawns_CT = 0;
    g_nSpawns_T = 0;
   
    int ent = -1;
    while ( (ent = FindEntityByClassname( ent, "info_player_counterterrorist" )) != -1 ) g_nSpawns_CT++;
    ent = -1;
    while ( (ent = FindEntityByClassname( ent, "info_player_terrorist" )) != -1 ) g_nSpawns_T++;
   
}

stock int GetPreferredTeam()
{
    if ( g_nSpawns_CT <= 0 && g_nSpawns_T <= 0 )
    {
        GetSpawnCounts();
    }
   
    if ( GetTeamClientCount( CS_TEAM_CT ) < g_nSpawns_CT )
    {
        return CS_TEAM_CT;
    }
    else if ( GetTeamClientCount( CS_TEAM_T ) < g_nSpawns_T )
    {
        return CS_TEAM_T;
    }
    else
    {
        for ( int i = 1; i <= MaxClients; i++ )
        {
            if ( IsClientInGame( i ) && GetClientTeam( i ) > CS_TEAM_SPECTATOR && !IsFakeClient( i ) )
            {
                return GetClientTeam( i );
            }
        }
    }
   
   
    return CS_TEAM_CT;
}
 
Последнее редактирование:

rokfestr

Участник
Сообщения
340
Реакции
63
@rokfestr, Мб сработает
PHP:
#include <sourcemod>
#include <cstrike>
#include <sdktools>
int g_nSpawns_CT;
int g_nSpawns_T;

//#include <Rostu/core>


public void OnClientPutInServer( int client )
{
    CreateTimer( 1.0, T_Spawn, GetClientUserId( client ), TIMER_FLAG_NO_MAPCHANGE );
}

public Action T_Spawn( Handle hTimer, int client )
{
    if ( (client = GetClientOfUserId( client )) )
    {
        if ( IsFakeClient(client) )
        {
            SpawnPlayer( client );
        }
    }
}
stock void SpawnPlayer( int client )
{
    if ( IsPlayerAlive( client ) ) return;
  
  
    int team = GetPreferredTeam();
  
    if ( GetClientTeam( client ) != team )
    {
        ChangeClientTeam( client, team );
    }
  
    if ( !IsPlayerAlive( client ) )
    {
        CS_RespawnPlayer( client );
    }
}
stock void GetSpawnCounts()
{
    g_nSpawns_CT = 0;
    g_nSpawns_T = 0;
  
    int ent = -1;
    while ( (ent = FindEntityByClassname( ent, "info_player_counterterrorist" )) != -1 ) g_nSpawns_CT++;
    ent = -1;
    while ( (ent = FindEntityByClassname( ent, "info_player_terrorist" )) != -1 ) g_nSpawns_T++;
  
}

stock int GetPreferredTeam()
{
    if ( g_nSpawns_CT <= 0 && g_nSpawns_T <= 0 )
    {
        GetSpawnCounts();
    }
  
    if ( GetTeamClientCount( CS_TEAM_CT ) < g_nSpawns_CT )
    {
        return CS_TEAM_CT;
    }
    else if ( GetTeamClientCount( CS_TEAM_T ) < g_nSpawns_T )
    {
        return CS_TEAM_T;
    }
    else
    {
        for ( int i = 1; i <= MaxClients; i++ )
        {
            if ( IsClientInGame( i ) && GetClientTeam( i ) > CS_TEAM_SPECTATOR && !IsFakeClient( i ) )
            {
                return GetClientTeam( i );
            }
        }
    }
  
  
    return CS_TEAM_CT;
}
Не работает
--- Добавлено позже ---
@Иннова, Если не работает, можешь попробовать [CS] Extra Spawn Points - AlliedModders
Як так понял что этот плагин работает по принципу SpawnTools, он просто добавляет точки спауна, но не снимает ограничение на количество игроков за команду. Когда на сервере 40 слотов то автоматически выставляется лимит игроков за команды по 20 человек, вот именно этот лимит нужно снять, чтобы могли за одну команду зайти 40 человек
 
Последнее редактирование:

Rostu

Добрая душа
Сообщения
986
Реакции
622
@rokfestr, Как раз таки спавнить, только данный плагин, при заходе автоматически кидает игрока, да и я кое что исправил не давно, мб из-за этого не работало, но не суть
 

Иннова

Участник
Сообщения
226
Реакции
24
@Rostu, Так я не понял плагин работает то что по ссылки ты скину там пишут типа после обновы ксго плагин сломался
--- Добавлено позже ---
@Rostu, вот смотри EntityByClassname это было до обновлений csgo а сейчас вроде вот это EntityByName
--- Добавлено позже ---
AlliedModders - View Single Post - [IMPORTANT] Regarding CSGO's new Entity system
--- Добавлено позже ---
Вот почему плагины и не работают
--- Добавлено позже ---
@rokfestr, у тебя хоть один плагин заработал ?
 
Последнее редактирование:

rokfestr

Участник
Сообщения
340
Реакции
63
@Rostu, Так я не понял плагин работает то что по ссылки ты скину там пишут типа после обновы ксго плагин сломался
--- Добавлено позже ---
@Rostu, вот смотри EntityByClassname это было до обновлений csgo а сейчас вроде вот это EntityByName
--- Добавлено позже ---
AlliedModders - View Single Post - [IMPORTANT] Regarding CSGO's new Entity system
--- Добавлено позже ---
Вот почему плагины и не работают
--- Добавлено позже ---
@rokfestr, у тебя хоть один плагин заработал ?
Поставил teamchange_unlimited и не парюсь
 
Сверху Снизу