Попробуй сделать в плагине проверку на кол-во использование команда которое дают kill, а не само самоубийство от мира.
Например 2 раза все время карты.
#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;
}
А нафига ему банит?) Если ему надо команда которая не будет банить за суицид.Тебе еще надо вставить код который банит игрока.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. Кто знает как это убрать?
#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);
}
Чета я запутался. Тогда же можно удалить код который это делает в его плагине. И сделать обычный блок команды.А нафига ему банит?) Если ему надо команда которая не будет банить за суицид.
Чета я запутался. Тогда же можно удалить код который это делает в его плагине. И сделать обычный блок команды.
Короче попробуйте мой код. Если не поможет, то скорее всего у вас в плагине проблема вшит код.Я тоже уже запутался
Короче попробуйте мой код. Если не поможет, то скорее всего у вас в плагине проблема вшит код.
У него в моде antisuicide.Какой-то квар за это ведь отвечает
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;
}
config_KillForSuicide = CreateConVar ( "dr_killforsuicide", "0", "Add kill for choosen when CT suicide?", FCVAR_NONE, true, 0.0, true, 1.0 );