Заказать игровой сервер Контакты (заказать плагин/исправить ошибки/другое) Пожертвовать Поиск

[ вход ]
[ последние сообщения ]

  • Страница 1 из 1
  • 1
Кик игрока, который еще не подключен
Vitaminoz Дата: Среда, 28.02.2018, 15:52:24 | Сообщение # 1
Сообщений: 141
Репутация: 1 [ +/- ]
Всем доброго дня.
Имеется проблема такая.
Необходимо кикнуть игрока, когда он еще не подключен к серверу.
OnClientConnect - не подходит, необходимо делать это в одном блоке без использования костыля.

Код данного чуда:
Код
#pragma semicolon 1
#pragma newdecls required

public Plugin myinfo =
{
    name = "L4D GameMode Restrict",
    author = "Vitamin",
    description = "Restirct another GameModes (Co-op GameMode)",
    version = "1.4",
    url = "http://gmode.ru"
};

public void OnPluginStart()
{
    FindConVar("mp_gamemode").AddChangeHook(ConVarHandler_ChangeGameMode);
}

public void ConVarHandler_ChangeGameMode(ConVar hConVar, const char[] szOldValue, const char[] szNewValue)
{
    if (szOldValue[0] != szNewValue[0] && szNewValue[0] != 'c')
    {
  int iClient = MaxClients;
  int iUserId = 0;
  
  while (iClient)
  {
   // native GetClientuserId - необходимо, чтобы игрок был уже IsConnected !
   iUserId = GetClientUserId(iClient);
   
   if (iUserId != 0)
   {
    ServerCommand("kickid %i [GMODE.RU]: \"Please connect to the server from the lobby with Co-op mode\"", iUserId);
   }
   
   iClient--;
  }
  
  LogMessage("Invalid GameMode: %s", szNewValue);
  hConVar.SetString("coop");
    }
}


Сообщение отредактировал Vitaminoz - Среда, 28.02.2018, 15:54:24
 
  • Страница 1 из 1
  • 1
Поиск: