Кик за частый kill

Haruko

Участник
Сообщения
119
Реакции
6
Здравствуйте, у меня Deathrun сервер, и когда человек падает с тропы, он умирает. И за частую смерть сервер банит игроков, якобы за частое использование kill. Кто знает как это убрать?

Upd: проблема решена
 
Последнее редактирование:

AlexPa1

Участник
Сообщения
292
Реакции
54
Попробуй сделать в плагине проверку на кол-во использование команда которое дают kill, а не само самоубийство от мира.
Например 2 раза все время карты.
 

AlexPa1

Участник
Сообщения
292
Реакции
54
C-подобный:
#include <sourcemod>
#include <sdktools>

new Limit[MAXPLAYERS +1];

new Handle: sm_limit = INVALID_HANDLE;

public OnMapStart()
{
    RegConsoleCmd ("kill", Limit_Hook);
    HookEvent("round_start", Round_Start);
  
    sm_limit = CreateConVar ("sm_limit", "3", "Кол-во игрок может раз ввести команду:");
    AutoExecConfig (true, "Limit");
}

public Round_Start (Handle:event, const String:name[], bool:dontBroadcast)
{
    for(new client=1; client <= GetMaxClients(); client++)
    {
        Limit[client] = 0;
    }
}

public Action: Limit_Hook (client,args)
{
    new limit = GetConVarInt (sm_limit);
    if (Limit[client] < limit)
    {
        Limit[client]++;
        PrintToChat(client, "У вас осталось %d использовани", limit-Limit[client]);
    }
    else
    {
        PrintToChat (client, "Лимит исчерпан");
    }
return Plugin_Handled;     
}

public OnClientDisconnected(client)
{
    Limit[client] = 0;
}
Тебе еще надо вставить код который банит игрока.
 

panikajo

Участник
Сообщения
866
Реакции
231
C-подобный:
#include <sourcemod>
#include <sdktools>

new Limit[MAXPLAYERS +1];

new Handle: sm_limit = INVALID_HANDLE;

public OnMapStart()
{
    RegConsoleCmd ("kill", Limit_Hook);
    HookEvent("round_start", Round_Start);
 
    sm_limit = CreateConVar ("sm_limit", "3", "Кол-во игрок может раз ввести команду:");
    AutoExecConfig (true, "Limit");
}

public Round_Start (Handle:event, const String:name[], bool:dontBroadcast)
{
    for(new client=1; client <= GetMaxClients(); client++)
    {
        Limit[client] = 0;
    }
}

public Action: Limit_Hook (client,args)
{
    new limit = GetConVarInt (sm_limit);
    if (Limit[client] < limit)
    {
        Limit[client]++;
        PrintToChat(client, "У вас осталось %d использовани", limit-Limit[client]);
    }
    else
    {
        PrintToChat (client, "Лимит исчерпан");
    }
return Plugin_Handled;    
}

public OnClientDisconnected(client)
{
    Limit[client] = 0;
}
Тебе еще надо вставить код который банит игрока.
А нафига ему банит?) Если ему надо команда которая не будет банить за суицид.
--- Добавлено позже ---
Здравствуйте, у меня Deathrun сервер, и когда человек падает с тропы, он умирает. И за частую смерть сервер банит игроков, якобы за частое использование kill. Кто знает как это убрать?
На вот код.
C-подобный:
#include <sourcemod>
#include <sdktools>
#include <cstrike>
#include <sdkhooks>

#pragma semicolon 1

ConVar sv_autokick = null;
ConVar mp_disable_autokick = null;

public Plugin myinfo =
{
    name = "Disable suicide ban",
    author = "Diogoonair",
    description = "Disable suicide ban.",
    version = "1.0",
};

public void OnPluginStart()
{   
    HookEvent("round_start", OnRoundStart);
}

public Action OnRoundStart(Event event, const char[] name, bool dontBroadcast)
{
    SetConVarInt(FindConVar("mp_disable_autokick"), 1);
    SetConVarInt(FindConVar("sv_autokick"), 0);
}

Или просто в своем кфг выставь
mp_disable_autokick "1"
sv_autokick "0"
 

AlexPa1

Участник
Сообщения
292
Реакции
54
А нафига ему банит?) Если ему надо команда которая не будет банить за суицид.
Чета я запутался. Тогда же можно удалить код который это делает в его плагине. И сделать обычный блок команды.
 

Haruko

Участник
Сообщения
119
Реакции
6
Короче попробуйте мой код. Если не поможет, то скорее всего у вас в плагине проблема вшит код.

Похоже ошибка в коде
--- Добавлено позже ---
Поможет кто? Проблема не решена
 
Последнее редактирование:

DeeperSpy

Гений, миллиардер, плейбой, филантроп, майнкрафтер
Сообщения
588
Реакции
362
Какой-то квар за это ведь отвечает
 

panikajo

Участник
Сообщения
866
Реакции
231
Какой-то квар за это ведь отвечает
У него в моде antisuicide.
C-подобный:
void PluginStart_AntiSuicide ( )
{
    config_AntiSuicide = CreateConVar ( "dr_antisuicide", "1", "Enable antisuicide for choosens?", FCVAR_NONE, true, 0.0, true, 1.0 );
   
    RegConsoleCmd (    "kill",        command_Suicide  );
    RegConsoleCmd (    "explode",    command_Suicide  );
    RegConsoleCmd (    "spectate",    command_Spectate );
}

public Action command_Spectate ( int client, int args )
{
    if ( !config_Enabled.BoolValue || !config_RandomPlayers.IntValue || !config_AntiSuicide.BoolValue )
    {
        return Plugin_Continue;
    }
   
    // if player = choosen
    if ( ( GetClientTeam ( client ) == config_RandomPlayers.IntValue ) && ( config_RandomPlayers.IntValue != 1 ) )
    {
        DRPrintToChat ( client, "{GREEN}%t {OLIVE}> {LIGHTGREEN}%t", "DEATHRUN", "CANT_JOIN_ANOTHER" );
       
        return Plugin_Handled;
    }
   
    return Plugin_Continue;
}

public Action command_Suicide ( int client, int args )
{
    if ( !config_Enabled.BoolValue || !config_RandomPlayers.IntValue || !config_AntiSuicide.BoolValue )
    {
        return Plugin_Continue;
    }
   
    // if player = choosen
    if ( ( GetClientTeam ( client ) == config_RandomPlayers.IntValue ) && ( config_RandomPlayers.IntValue != 1 ) )
    {
        DRPrintToChat ( client, "{GREEN}%t {OLIVE}> {LIGHTGREEN}%t", "DEATHRUN", "CHOOSENS_CANT_SUICIDE" );
       
        return Plugin_Handled;
    }
   
    return Plugin_Continue;
}
И вот еще :)
C-подобный:
    config_KillForSuicide            = CreateConVar ( "dr_killforsuicide",            "0", "Add kill for choosen when CT suicide?",    FCVAR_NONE, true, 0.0, true, 1.0 );
 
Сверху Снизу