oleg_nelasy
Участник
- Сообщения
- 664
- Реакции
- 46
C-подобный:
public Action Hook_JoinTeam(int iClient, const char[] command, int iArgs)
{
Разумеется кроме этого кода есть многое другое.
Суть в следующем. Если игрока не пустило в команду потому что игроков в другой команде слишком много. Надо сделать так чтобы этот код не отработал.
if(IsClientInGame(iClient) && !IsFakeClient(iClient) && g_bCheckFirstConnection[iClient] && g_cvMinPlayers.IntValue <= iPlayers && !g_bCheckReconnect[iClient]) // (GetUserFlagBits(iClient) & (ADMFLAG_ROOT|ADMFLAG_GENERIC)) == 0 Проверка чтобы у игрока небыло флага z и b
{
if(!g_cvAdminImmunity.BoolValue || g_cvAdminImmunity.BoolValue && (GetUserFlagBits(iClient) & (ADMFLAG_ROOT|ADMFLAG_GENERIC)) == 0)
{
g_iStatusSwapTeams[iClient] = g_cvRoundsBlock.IntValue;
if(!g_cvConsiderSpec.BoolValue && g_cvMinPlayers.IntValue == iPlayers && team_to != CS_TEAM_SPECTATOR || !g_cvConsiderSpec.BoolValue && g_cvMinPlayers.IntValue < iPlayers || g_cvConsiderSpec.BoolValue)
CGOPrintToChat(iClient, "%t", "New Block Swap Team", g_sTag, g_iStatusSwapTeams[iClient]);
}
}
}
Сообщения автоматически склеены:
Скорее всего это событие вызывается после JoinTeam но до player_team. Надо его поймать и отловить пропустило игрока или команда полная и ему не дало сменить команду.