CS:S Кемперство

  • Автор темы Було4ка
  • Дата начала
Статус
В этой теме нельзя размещать новые ответы.
⛧13

⛧13

АДВОКАТ
Проверенный
Сообщения
134
Да за что вы блин аваперов ненавидите так
 
  • Haha
  • Нравится
Реакции: ЗИВΞՔТ, Mishan и Nimbo
Nimbo

Nimbo

_________
Проверенный
Сообщения
95
  • Wow
Реакции: Mishan
Elvira

Elvira

_GaYkA_
Admin CS:S
Сообщения
144
  • Haha
  • Нравится
Реакции: -100hp Andy и Mishan
Pukano_Bomb1to

Pukano_Bomb1to

_________
Проверенный
Сообщения
305
1557660781_2-jpg.990

Вот решение этой проблемы, а дальше гл.Администрация сама решает)
ПЛАГИН SIMPLE ANTI SPAWN CAMP DD2 ONLY ДЛЯ СЕРВЕРА CSS

Простой плагин, который обрисовывает цветной линией зону на которой запрещено находится террористам и при долгом нахождении на респе наказывает игрока :) . Плагин только для карты de_dust2, не имеет значения версия карты css v34 или же v91.
Конфиг плагина dd2_manager.cfg
// Действие при превышении времени на спавне игрока: 1 - шлепнуть, 2 убить // - // Default: "1" sm_asc_action "1" // Цвет обводки спавна террорстов // - // Default: "255 255 255 255" sm_asc_linecolor "255 255 255 255" // Текстура обводки спавна террорстов // - // Default: "sprites/bluelight1.vmt" sm_asc_linetexture "sprites/bluelight1.vmt" // Урон от шлепка // - // Default: "10" sm_asc_slap_damage "10" // Тип рассчета времени: Считать время от начала раунда - 0 для всех // Учитывать только реально проведенное время игрока на респе - 1 // - // Default: "1" sm_asc_stylework "1" // Максимальное время нахождения на спавне террориста в секундах // - // Default: "30.0" sm_asc_time "30.0"
 
  • Нравится
Реакции: Було4ка, _≋G≋R≋@≋D≋_ ™ и -100hp Andy
Grey83

Grey83

Ленивая и невнимательная жопа
Проверенный
Сообщения
65
Возраст
40
Pukano_Bomb1to написал(а):
SIMPLE ANTI SPAWN CAMP DD2 ONLY
именно он и имелся в виду

Только csgolife - это помойка, которая тянет бесплатные плагины с других сайтов и продаёт их. (n)
Оригинал спизжен c hlmod.ru, где он в свободном доступе.

Я его немого переделал (будет чуть красивей выглядеть, и чуть меньше сервер нагружать, ну ещё и границу будут видеть только террористы)
C-like:
#include <sdktools>

public Plugin myinfo =
{
    name    = "[CS:S] Anti spawn camp de_dust2",
    version    = "1.3.0",
    author    = "asdf (rewritten by Grey83)"
}

static const float
    BOUNDS[][] =
{
    { -963.41,  -164.05, 163.63},
    {-1148.35,  -162.63, 146.97},
    {-1147.56,  -193.74, 143.27},
    {-1216.44,  -264.22, 132.49},
    {-1341.71,  -263.94, 132.21},
    {-1411.34,  -197.33, 131.08},
    {-1413.93,  -150.47, 134.52},
    {-1613.16,  -152.08, 130.44},
    {-1604.83,  -227.03, 131.61},
    {-1688.10,  -239.88, 130.67},
    {-1692.43,  -311.95, 130.96},
    {-1771.14,  -308.64, 130.19},
    {-1772.71,  -696.17, 135.53},
    {-2173.03,  -691.28, 135.02},
    {-2171.16,  -877.23, 132.36},
    {-2171.28,  -939.36, 144.78},
    {-2004.43,  -940.52, 148.16},
    {-2004.80,  -996.33, 157.86},
    {-1831.45,  -997.83, 167.92},
    {-1795.17,  -994.59, 160.47},
    {-1795.80, -1014.70, 162.32},
    {-1548.89, -1013.07, 159.47},
    {-1460.68, -1014.08, 166.52},
    {-1442.89, -1012.50, 164.13},
    {-1443.03,  -973.10, 160.78},
    {-1343.73,  -974.21, 147.96},
    {-1148.18,  -972.59, 158.91},
    {-1148.79, -1012.90, 160.03},
    { -964.23, -1011.95, 153.91},
    { -962.96,  -969.51, 155.03},
    { -963.09,  -923.84, 141.83},
    { -892.13,  -925.54, 141.58},
    { -892.79,  -971.85, 153.28},
    { -802.90,  -973.01, 160.58},
    { -754.42,  -971.78, 156.07},
    { -681.80,  -972.46, 157.57},
    { -651.34,  -973.15, 157.25},
    { -602.84,  -971.09, 163.69},
    { -604.26, -1013.52, 178.97},
    { -571.86, -1013.78, 177.02},
    { -131.11, -1012.67,  75.37},
    { -132.47,  -956.22,  63.45},
    { -112.83,  -939.22,  52.86},
    {  -64.44,  -890.73,  41.06},
    {   -4.19,  -894.09,  27.37},
    {  196.13,  -892.92,  23.80},
    {  261.02,  -892.69,  32.45},
    {  315.92,  -892.84,  28.37},
    {  379.32,  -894.20,  37.86},
    {  379.04,  -860.64,  22.01},
    {  411.36,  -860.96,  12.80},
    {  413.63,  -830.80,   5.43},
    {  407.82,  -767.23,   2.73},
    {  408.04,  -677.03,   5.64},
    {  374.47,  -677.50,   9.56},
    {  377.51,  -387.26,  11.64},
    {  130.30,  -386.36,   7.10},
    {   35.27,  -483.17,   6.82},
    { -289.95,  -483.92,   3.05},
    { -386.64,  -386.45,   9.25},
    { -387.45,  -196.72,   7.57},
    { -508.29,  -194.33,   7.91}
},
    ZONE[][] =
{
    {-1787.459960, -1015.959960,   0.029998},
    {  433.700134,  -392.529968, 337.609985},
    {-2246.750000, -1015.960021, 100.029998},
    {-1767.339965,  -682.919982, 330.850006},
    {-1799.959960, -1014.390014, 100.559997},
    { -931.919982,  -131.419982, 325.029998},
    { -511.959991,  -390.450012,   0.029998},
    { -371.230010,  -193.369995, 203.220001}
};

bool
    bType;

int
    nTexture,
    iColor,
    iDmg,
    iTime;

float
    fSize,
    fJoin[MAXPLAYERS+1];

public void OnPluginStart()
{
    ConVar cvar;
    cvar = CreateConVar("sm_asc_size", "2.0","Толщина линии", _, true, 1.0, true, 10.0);
    fSize = cvar.FloatValue;
    cvar.AddChangeHook(CVarChanged_Size);

    cvar = CreateConVar("sm_asc_color", "fff","Цвет обводки спавна террористов, HEX (RGB или RRGGBB, значения канала 0 - F или 00 - FF). Неправильный код = белый цвет.", FCVAR_PRINTABLEONLY);
    SetColor(cvar);
    cvar.AddChangeHook(CVarChanged_Color);

    cvar = CreateConVar("sm_asc_dmg", "5","Размер урона игроку при превышении времени на спавне, каждую секунду: -1 - убить, >=0 - шлепнуть", _, true, -1.0);
    iDmg = cvar.IntValue;
    cvar.AddChangeHook(CVarChanged_Dmg);

    cvar = CreateConVar("sm_asc_type", "1","Тип рассчета времени: 0 - от начала раунда для всех, 1 - реально проведенное игроком время", _, true, _, true, 1.0);
    bType = cvar.BoolValue;
    cvar.AddChangeHook(CVarChanged_Type);

    cvar = CreateConVar("sm_asc_time", "30","Максимальное время нахождения на спавне террориста, сек.", _, true, 10.0);
    iTime = cvar.IntValue;
    cvar.AddChangeHook(CVarChanged_Time);

    AutoExecConfig(true, "anti_spawn_camp");
}

public void CVarChanged_Size(ConVar cvar, const char[] oldValue, const char[] newValue)
{
    fSize = cvar.FloatValue;
}

public void CVarChanged_Color(ConVar cvar, const char[] oldValue, const char[] newValue)
{
    SetColor(cvar);
}

public void CVarChanged_Dmg(ConVar cvar, const char[] oldValue, const char[] newValue)
{
    iDmg = cvar.IntValue;
}

public void CVarChanged_Type(ConVar cvar, const char[] oldValue, const char[] newValue)
{
    bType = cvar.BoolValue;
}

public void CVarChanged_Time(ConVar cvar, const char[] oldValue, const char[] newValue)
{
    iTime = cvar.IntValue;
}

stock void SetColor(ConVar cvar)
{
    char clr[8];
    cvar.GetString(clr, sizeof(clr));
    clr[7] = 0;    // чтобы проверялось максимум 7 первых символов

    int i;
    while(clr[i])
    {
        if(!(clr[i] >= '0' && clr[i] <= '9') && !(clr[i] >= 'A' && clr[i] <= 'F') && !(clr[i] >= 'a' && clr[i] <= 'f'))
        {    // не HEX-число
            iColor = -1;
            LogError("HEX color '%s' isn't valid!\nHUD color is 0x%x (%d %d %d)!\n", clr, iColor, (iColor & 0xFF0000) >> 16, (iColor & 0xFF00) >> 8, iColor & 0xFF);
            return;
        }
        i++;
    }

    clr[6] = 0;
    if(i == 3)    // короткая форма => полная форма
    {
        clr[4] = clr[5] = clr[2];
        clr[2] = clr[3] = clr[1];
        clr[1] = clr[0];
        i = 6;
    }

    if(i != 6) iColor = -1;    // невалидный цвет
    else StringToIntEx(clr, iColor , 16);
}

public void OnMapStart()
{
    static bool hooked;
    char bufi[12];
    GetCurrentMap(bufi, 12);
    if(!strcmp(bufi, "de_dust2", false))
    {
        nTexture = PrecacheModel("sprites/bubble.vmt", true);
        CreateTimer(1.0, Timer_DrawingBounds, _, TIMER_REPEAT|TIMER_FLAG_NO_MAPCHANGE);
        if(hooked) return;

        HookEvent("player_spawn", Events);
        HookEvent("round_freeze_end", Events, EventHookMode_PostNoCopy);
        hooked = true;
    }
    else if(hooked)
    {
        UnhookEvent("player_spawn", Events);
        UnhookEvent("round_freeze_end", Events, EventHookMode_PostNoCopy);
        hooked = false;
    }
}

public void Events(Event event, const char[] name, bool dontBroadcast)
{
    static int client;
    if(name[0] == 'r') fJoin[0] = GetGameTime();
    else if((client = GetClientOfUserId(event.GetInt("userid")))) fJoin[client] = 0.0;
}

public Action Timer_DrawingBounds(Handle timer)
{
    static int z, i, clients[MAXPLAYERS], num;
    static float time, pos[3];
    static bool inzone;
    for(i = 1, num = 0, time = GetGameTime(); i <= MaxClients;i++) if(IsClientInGame(i) && !IsFakeClient(i) && GetClientTeam(i) == 2 && IsPlayerAlive(i))
    {
        clients[num++] = i;
        GetClientAbsOrigin(i, pos);
        for(z = 0, inzone = false; z < sizeof ZONE-1; z++) if(IsClientInside(pos, ZONE[z], ZONE[z+1]))
        {
            inzone = true;
            break;
        }

        if(inzone)
        {
            if(bType && fJoin[i] == 0.0) fJoin[i] = GetGameTime();

            if(time - fJoin[bType ? i : 0] > iTime)
            {
                if(iDmg != -1)
                {
                    SlapPlayer(i, iDmg, true);
                    PrintToChat(i,"Не сидим на респе!");
                }
                else
                {
                    ForcePlayerSuicide(i);
                    PrintToChat(i,"Вы были убиты т.к слишком долго были на респе.");
                }
            }
        }
        else fJoin[i] = 0.0;
    }

    for(i = 0; i < sizeof BOUNDS-1; i++)
    {
        TE_Start("BeamPoints");
        TE_WriteVector("m_vecStartPoint", BOUNDS[i]);
        TE_WriteVector("m_vecEndPoint", BOUNDS[i+1]);
        TE_WriteNum("m_nModelIndex", nTexture);
        TE_WriteNum("m_nHaloIndex", 0);
        TE_WriteNum("m_nStartFrame", 0);
        TE_WriteNum("m_nFrameRate", 15);
        TE_WriteFloat("m_fLife", 1.0);
        TE_WriteFloat("m_fWidth", fSize);
        TE_WriteFloat("m_fEndWidth", fSize);
        TE_WriteFloat("m_fAmplitude", 0.0);
        TE_WriteNum("r", ((iColor & 0xFF0000) >> 16));
        TE_WriteNum("g", ((iColor & 0xFF00) >> 8));
        TE_WriteNum("b", (iColor & 0xFF));
        TE_WriteNum("a", 255);
        TE_WriteNum("m_nSpeed", 30);
        TE_WriteNum("m_nFadeLength", 10);
        TE_Send(clients, num);
    }
}

stock bool IsClientInside(const float pos[3], const float min[3], const float max[3])
{
    return pos[0] >= min[0] && pos[0] <= max[0] && pos[1] >= min[1] && pos[1] <= max[1] && pos[2] >= min[2] && pos[2] <= max[2];
}
 
Последнее редактирование:
  • Нравится
Реакции: ЗИВΞՔТ
Pukano_Bomb1to

Pukano_Bomb1to

_________
Проверенный
Сообщения
305
Grey83 написал(а):
именно он и имелся в виду

Только csgolife - это помойка, которая тянет бесплатные плагины с других сайтов и продаёт их. (n)
Оригинал спизжен c hlmod.ru, где он в свободном доступе.

Я его немого переделал (будет чуть красивей выглядеть, и чуть меньше сервер нагружать, ну ещё и границу будут видеть только террористы)
C-like:
#include <sdktools>

public Plugin myinfo =
{
    name    = "[CS:S] Anti spawn camp de_dust2",
    version    = "1.3.0",
    author    = "asdf (rewritten by Grey83)"
}

static const float
    BOUNDS[][] =
{
    { -963.41,  -164.05, 163.63},
    {-1148.35,  -162.63, 146.97},
    {-1147.56,  -193.74, 143.27},
    {-1216.44,  -264.22, 132.49},
    {-1341.71,  -263.94, 132.21},
    {-1411.34,  -197.33, 131.08},
    {-1413.93,  -150.47, 134.52},
    {-1613.16,  -152.08, 130.44},
    {-1604.83,  -227.03, 131.61},
    {-1688.10,  -239.88, 130.67},
    {-1692.43,  -311.95, 130.96},
    {-1771.14,  -308.64, 130.19},
    {-1772.71,  -696.17, 135.53},
    {-2173.03,  -691.28, 135.02},
    {-2171.16,  -877.23, 132.36},
    {-2171.28,  -939.36, 144.78},
    {-2004.43,  -940.52, 148.16},
    {-2004.80,  -996.33, 157.86},
    {-1831.45,  -997.83, 167.92},
    {-1795.17,  -994.59, 160.47},
    {-1795.80, -1014.70, 162.32},
    {-1548.89, -1013.07, 159.47},
    {-1460.68, -1014.08, 166.52},
    {-1442.89, -1012.50, 164.13},
    {-1443.03,  -973.10, 160.78},
    {-1343.73,  -974.21, 147.96},
    {-1148.18,  -972.59, 158.91},
    {-1148.79, -1012.90, 160.03},
    { -964.23, -1011.95, 153.91},
    { -962.96,  -969.51, 155.03},
    { -963.09,  -923.84, 141.83},
    { -892.13,  -925.54, 141.58},
    { -892.79,  -971.85, 153.28},
    { -802.90,  -973.01, 160.58},
    { -754.42,  -971.78, 156.07},
    { -681.80,  -972.46, 157.57},
    { -651.34,  -973.15, 157.25},
    { -602.84,  -971.09, 163.69},
    { -604.26, -1013.52, 178.97},
    { -571.86, -1013.78, 177.02},
    { -131.11, -1012.67,  75.37},
    { -132.47,  -956.22,  63.45},
    { -112.83,  -939.22,  52.86},
    {  -64.44,  -890.73,  41.06},
    {   -4.19,  -894.09,  27.37},
    {  196.13,  -892.92,  23.80},
    {  261.02,  -892.69,  32.45},
    {  315.92,  -892.84,  28.37},
    {  379.32,  -894.20,  37.86},
    {  379.04,  -860.64,  22.01},
    {  411.36,  -860.96,  12.80},
    {  413.63,  -830.80,   5.43},
    {  407.82,  -767.23,   2.73},
    {  408.04,  -677.03,   5.64},
    {  374.47,  -677.50,   9.56},
    {  377.51,  -387.26,  11.64},
    {  130.30,  -386.36,   7.10},
    {   35.27,  -483.17,   6.82},
    { -289.95,  -483.92,   3.05},
    { -386.64,  -386.45,   9.25},
    { -387.45,  -196.72,   7.57},
    { -508.29,  -194.33,   7.91}
},
    ZONE[][] =
{
    {-1787.459960, -1015.959960,   0.029998},
    {  433.700134,  -392.529968, 337.609985},
    {-2246.750000, -1015.960021, 100.029998},
    {-1767.339965,  -682.919982, 330.850006},
    {-1799.959960, -1014.390014, 100.559997},
    { -931.919982,  -131.419982, 325.029998},
    { -511.959991,  -390.450012,   0.029998},
    { -371.230010,  -193.369995, 203.220001}
};

bool
    bType;

int
    nTexture,
    iColor,
    iDmg,
    iTime;

float
    fSize,
    fJoin[MAXPLAYERS+1];

public void OnPluginStart()
{
    ConVar cvar;
    cvar = CreateConVar("sm_asc_size", "2.0","Толщина линии", _, true, 1.0, true, 10.0);
    fSize = cvar.FloatValue;
    cvar.AddChangeHook(CVarChanged_Size);

    cvar = CreateConVar("sm_asc_color", "fff","Цвет обводки спавна террористов, HEX (RGB или RRGGBB, значения канала 0 - F или 00 - FF). Неправильный код = белый цвет.", FCVAR_PRINTABLEONLY);
    SetColor(cvar);
    cvar.AddChangeHook(CVarChanged_Color);

    cvar = CreateConVar("sm_asc_dmg", "5","Размер урона игроку при превышении времени на спавне, каждую секунду: -1 - убить, >=0 - шлепнуть", _, true, -1.0);
    iDmg = cvar.IntValue;
    cvar.AddChangeHook(CVarChanged_Dmg);

    cvar = CreateConVar("sm_asc_type", "1","Тип рассчета времени: 0 - от начала раунда для всех, 1 - реально проведенное игроком время", _, true, _, true, 1.0);
    bType = cvar.BoolValue;
    cvar.AddChangeHook(CVarChanged_Type);

    cvar = CreateConVar("sm_asc_time", "30","Максимальное время нахождения на спавне террориста, сек.", _, true, 10.0);
    iTime = cvar.IntValue;
    cvar.AddChangeHook(CVarChanged_Time);

    AutoExecConfig(true, "anti_spawn_camp");
}

public void CVarChanged_Size(ConVar cvar, const char[] oldValue, const char[] newValue)
{
    fSize = cvar.FloatValue;
}

public void CVarChanged_Color(ConVar cvar, const char[] oldValue, const char[] newValue)
{
    SetColor(cvar);
}

public void CVarChanged_Dmg(ConVar cvar, const char[] oldValue, const char[] newValue)
{
    iDmg = cvar.IntValue;
}

public void CVarChanged_Type(ConVar cvar, const char[] oldValue, const char[] newValue)
{
    bType = cvar.BoolValue;
}

public void CVarChanged_Time(ConVar cvar, const char[] oldValue, const char[] newValue)
{
    iTime = cvar.IntValue;
}

stock void SetColor(ConVar cvar)
{
    char clr[8];
    cvar.GetString(clr, sizeof(clr));
    clr[7] = 0;    // чтобы проверялось максимум 7 первых символов

    int i;
    while(clr[i])
    {
        if(!(clr[i] >= '0' && clr[i] <= '9') && !(clr[i] >= 'A' && clr[i] <= 'F') && !(clr[i] >= 'a' && clr[i] <= 'f'))
        {    // не HEX-число
            iColor = -1;
            LogError("HEX color '%s' isn't valid!\nHUD color is 0x%x (%d %d %d)!\n", clr, iColor, (iColor & 0xFF0000) >> 16, (iColor & 0xFF00) >> 8, iColor & 0xFF);
            return;
        }
        i++;
    }

    clr[6] = 0;
    if(i == 3)    // короткая форма => полная форма
    {
        clr[4] = clr[5] = clr[2];
        clr[2] = clr[3] = clr[1];
        clr[1] = clr[0];
        i = 6;
    }

    if(i != 6) iColor = -1;    // невалидный цвет
    else StringToIntEx(clr, iColor , 16);
}

public void OnMapStart()
{
    static bool hooked;
    char bufi[12];
    GetCurrentMap(bufi, 12);
    if(!strcmp(bufi, "de_dust2", false))
    {
        nTexture = PrecacheModel("sprites/bubble.vmt", true);
        CreateTimer(1.0, Timer_DrawingBounds, _, TIMER_REPEAT|TIMER_FLAG_NO_MAPCHANGE);
        if(hooked) return;

        HookEvent("player_spawn", Events);
        HookEvent("round_freeze_end", Events, EventHookMode_PostNoCopy);
        hooked = true;
    }
    else if(hooked)
    {
        UnhookEvent("player_spawn", Events);
        UnhookEvent("round_freeze_end", Events, EventHookMode_PostNoCopy);
        hooked = false;
    }
}

public void Events(Event event, const char[] name, bool dontBroadcast)
{
    static int client;
    if(name[0] == 'r') fJoin[0] = GetGameTime();
    else if((client = GetClientOfUserId(event.GetInt("userid")))) fJoin[client] = 0.0;
}

public Action Timer_DrawingBounds(Handle timer)
{
    static int z, i, clients[MAXPLAYERS], num;
    static float time, pos[3];
    static bool inzone;
    for(i = 1, num = 0, time = GetGameTime(); i <= MaxClients;i++) if(IsClientInGame(i) && !IsFakeClient(i) && GetClientTeam(i) == 2 && IsPlayerAlive(i))
    {
        clients[num++] = i;
        GetClientAbsOrigin(i, pos);
        for(z = 0, inzone = false; z < sizeof ZONE-1; z++) if(IsClientInside(pos, ZONE[z], ZONE[z+1]))
        {
            inzone = true;
            break;
        }

        if(inzone)
        {
            if(bType && fJoin[i] == 0.0) fJoin[i] = GetGameTime();

            if(time - fJoin[bType ? i : 0] > iTime)
            {
                if(iDmg != -1)
                {
                    SlapPlayer(i, iDmg, true);
                    PrintToChat(i,"Не сидим на респе!");
                }
                else
                {
                    ForcePlayerSuicide(i);
                    PrintToChat(i,"Вы были убиты т.к слишком долго были на респе.");
                }
            }
        }
        else fJoin[i] = 0.0;
    }

    for(i = 0; i < sizeof BOUNDS-1; i++)
    {
        TE_Start("BeamPoints");
        TE_WriteVector("m_vecStartPoint", BOUNDS[i]);
        TE_WriteVector("m_vecEndPoint", BOUNDS[i+1]);
        TE_WriteNum("m_nModelIndex", nTexture);
        TE_WriteNum("m_nHaloIndex", 0);
        TE_WriteNum("m_nStartFrame", 0);
        TE_WriteNum("m_nFrameRate", 15);
        TE_WriteFloat("m_fLife", 1.0);
        TE_WriteFloat("m_fWidth", fSize);
        TE_WriteFloat("m_fEndWidth", fSize);
        TE_WriteFloat("m_fAmplitude", 0.0);
        TE_WriteNum("r", ((iColor & 0xFF0000) >> 16));
        TE_WriteNum("g", ((iColor & 0xFF00) >> 8));
        TE_WriteNum("b", (iColor & 0xFF));
        TE_WriteNum("a", 255);
        TE_WriteNum("m_nSpeed", 30);
        TE_WriteNum("m_nFadeLength", 10);
        TE_Send(clients, num);
    }
}

stock bool IsClientInside(const float pos[3], const float min[3], const float max[3])
{
    return pos[0] >= min[0] && pos[0] <= max[0] && pos[1] >= min[1] && pos[1] <= max[1] && pos[2] >= min[2] && pos[2] <= max[2];
}
Если бы он и мелся в виду то о нём сказали сразу но почему то об этом никто не написал, далее я скинул то что нашел, гл. Администрация не глупая и сама может найти что где и как и сами разберутся.
 
Последнее редактирование:
Grey83

Grey83

Ленивая и невнимательная жопа
Проверенный
Сообщения
65
Возраст
40
Pukano_Bomb1to написал(а):
Администрация не глупая и сама может найти что где и как и сами разберутся.
Я уже предлагал ему этот плагин.
 
Pukano_Bomb1to

Pukano_Bomb1to

_________
Проверенный
Сообщения
305
Grey83 написал(а):
Я уже предлагал ему этот плагин.
Ты предлагал, а я показал обществу, что такой плагин есть в природе (может кто то и не вкусе был) для решение данной проблемы. А далее гл.Администрация сама решит этот вопрос.
 
ЗИВΞՔТ

ЗИВΞՔТ

Создатель
Администратор
Сообщения
1,594
Возраст
45
Вчера вечером КТ 7 раундов подряд загоняли всех Т с тёмки и короба на пески.
Стоял бы этот плагин Т быстрее погибали. В таких случаях у команды Т хоть есть время для маневра.

На сервере установлено для баланса и антикемперства:
1. Смена команд посредине карты.
2. Звуковое оповещение при дисбалансе.
3. Антикемп для атакующей стороны - снятие хп, шлепок и засвет на радаре.
4. АФК менеджер - переносящий не играющего игрока в спеки.
5. Авто балансировка между командами каждые 2-3 раунда.
6. Число игроков, на которое одна команда может превышать другую установлено 3. Лишних игроков не будет пускать в команду.

И надо понимать - вопрос дисбаланса и кемперства будет ВСЕГДА.
Все на ответственности самих игроков.
Хоть 20 плагинов еще воткните.

Касательно плагина SIMPLE ANTI SPAWN CAMP - он в корне меняет балансировку и тактику игры.
Давайте и для КТ проведем линии в темке, зиге и коробе. Сидите на плентах и охраняйте.


Тема закрыта.
 
  • Нравится
Реакции: WoopWoop, Cheeky, dusiZz и 2 других
Статус
В этой теме нельзя размещать новые ответы.
Сверху