Иконка ресурса

Server Redirect 1.0

babka68

Участник
Сообщения
2,137
Реакции
978
- Новый синтаксис
- Изменил название переменной
- Изменил название переменных
Пропишите sm_server_redirect_new_ip "ip:port" в server.cfg или же измените его в исходном коде и перекомпилируйте
Проверял на CSS:OB работает.
C-подобный:
#pragma semicolon 1
#pragma newdecls required

ConVar g_hServerRedirectNewIp;
char g_sServerRedirectNewIp[PLATFORM_MAX_PATH];

public Plugin myinfo =
{
    name = "Server Redirect",
    author = "Tooshkan4uk, babka68",
    description = "Server redirectwithout accept",
    version = "1.1",
    url = "http://www.hlmod.ru"
};

public void OnPluginStart()
{
    g_hServerRedirectNewIp = CreateConVar("sm_server_redirect_new_ip", "IP:PORT", "IP:PORT сервервера, на который необходимо сделать редирект.");
    g_hServerRedirectNewIp.AddChangeHook(ChangeServerRedirectNewIp);
    g_hServerRedirectNewIp.GetString(g_sServerRedirectNewIp, sizeof(g_sServerRedirectNewIp));
}

public void ChangeServerRedirectNewIp(ConVar cvar, const char[] oldValue, const char[] newValue)
{
    cvar.GetString(g_sServerRedirectNewIp, sizeof(g_sServerRedirectNewIp));
}

public void OnClientPostAdminCheck(int client)
{
    g_hServerRedirectNewIp.GetString(g_sServerRedirectNewIp, sizeof(g_sServerRedirectNewIp));
    if (!IsFakeClient(client))
    {
        ClientCommand(client, "redirect %s", g_sServerRedirectNewIp);
    }
}
 

3 pack 3

Участник
Сообщения
27
Реакции
5
А возможно чтобы не всех подряд входящих перекидывало на другой сервер,а к примеру 5-го,10-го или 20-го входящего человека.Ну или лучше чтобы был конфиг где можно было бы указывать этот момент
 

Mr_panica

XenForo one 💖
Сообщения
1,007
Реакции
509
А возможно чтобы не всех подряд входящих перекидывало на другой сервер,а к примеру 5-го,10-го или 20-го входящего человека.Ну или лучше чтобы был конфиг где можно было бы указывать этот момент
Проверь:
C-подобный:
#include <sourcemod>

ConVar g_cvNewIP;
ConVar g_cvRedirectEvery;
char g_sNewServer[65];
int g_iPlayerCount;

public Plugin myinfo =
{
    name = "Server Redirect",
    author = "Tooshkan4uk",
    description = "Server redirect without accept",
    version = "1.0",
    url = "http://www.hlmod.ru"
};

public void OnPluginStart()
{
    CreateConVar("sm_server_redirect", "1.0", "Server Hop", FCVAR_PLUGIN | FCVAR_SPONLY | FCVAR_REPLICATED | FCVAR_NOTIFY);
    g_cvNewIP = CreateConVar("new_ip", "185.87.50.46:27015", "New server ip");
    g_cvRedirectEvery = CreateConVar("sm_redirect_every", "0", "Redirect every Nth player");
}

public void OnClientPostAdminCheck(int client)
{
    if (IsFakeClient(client))
        return;
    
    g_cvNewIP.GetString(g_sNewServer, 65);
    
    int redirectEvery = g_cvRedirectEvery.IntValue;
    
    if (redirectEvery == 0 || ++g_iPlayerCount % redirectEvery == 0)
    {
        ClientCommand(client, "redirect %s", g_sNewServer);
    }
}

sm_redirect_every - тут настраиваешь которого игрока по счёту редиректить, например, sm_redirect_every 8 - каждого 8 игрока.
 

Вложения

  • sv_redirect.smx
    3.1 КБ · Просмотры: 2
Сверху Снизу