максимка27
Участник
- Сообщения
- 513
- Реакции
- 213
hanson, Ammo Manager
Нет. Всё дело в том, что боты нормально кикаются (стандартными кварами) только при конце/старте раунда. А ведь в GG + DM такое редко случается.Можно ли обойтись без плагина?
Если можно такой плагин.
Кик за чрезмерно использование команд status , ping в консоле.
Если статус или пинг вводят больше раза в секунду допустим то кикает.
Знаю что есть плагин от ГодТм666, но хотелось чтобы был плагин с исходным кодом
Заранее спасибо
#pragma semicolon 1
#include <sourcemod>
new g_CmdCount[MAXPLAYERS + 1];
new Float:g_fFirstCmdTime[MAXPLAYERS + 1];
public Plugin:myinfo =
{
name = "Anti Alias Lag",
author = "wS (♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥)",
version = "1.1"
};
public OnPluginStart()
{
AddCommandListener(CommandListener_CallBack);
}
public OnClientConnected(client)
{
g_CmdCount[client] = 0;
g_fFirstCmdTime[client] = 0.0;
}
public Action:CommandListener_CallBack(client, const String:command[], argc)
{
if (client < 1)
return Plugin_Continue;
if (g_CmdCount[client]++ == 0)
{
g_fFirstCmdTime[client] = GetGameTime();
}
else if (g_CmdCount[client] > 30)
{
if ((GetGameTime() - g_fFirstCmdTime[client]) < 2.1)
{
KickClient(client, "Чрезмерное использование команд");
return Plugin_Stop;
}
g_CmdCount[client] = 0;
g_fFirstCmdTime[client] = 0.0;
}
return Plugin_Continue;
}
PHP:#pragma semicolon 1 #include <sourcemod> new g_CmdCount[MAXPLAYERS + 1]; new Float:g_fFirstCmdTime[MAXPLAYERS + 1]; public Plugin:myinfo = { name = "Anti Alias Lag", author = "wS (♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥)", version = "1.1" }; public OnPluginStart() { AddCommandListener(CommandListener_CallBack); } public OnClientConnected(client) { g_CmdCount[client] = 0; g_fFirstCmdTime[client] = 0.0; } public Action:CommandListener_CallBack(client, const String:command[], argc) { if (client < 1) return Plugin_Continue; if (g_CmdCount[client]++ == 0) { g_fFirstCmdTime[client] = GetGameTime(); } else if (g_CmdCount[client] > 30) { if ((GetGameTime() - g_fFirstCmdTime[client]) < 2.1) { KickClient(client, "Чрезмерное использование команд"); return Plugin_Stop; } g_CmdCount[client] = 0; g_fFirstCmdTime[client] = 0.0; } return Plugin_Continue; }
этот плагин кикает за флуд консольными командами типо say buy и прочее а за status и ping от не кикает.
public OnPluginStart()
{
AddCommandListener(CommandListener_CallBack, "status");
AddCommandListener(CommandListener_CallBack, "ping");
}
Вообще-то кикает...
Если хочешь чтобы кикало только за написание ping и status сделай:
PHP:public OnPluginStart() { AddCommandListener(CommandListener_CallBack, "status"); AddCommandListener(CommandListener_CallBack, "ping"); }
интересует имеено иф мап префикс cs
public OnMapStart()
{
decl String:s_PrefixMap[4];
GetCurrentMap(s_PrefixMap, 4);
if(strcmp(s_PrefixMap, "cs_", false) == 0)
{
//Префикс карты cs_
}
else
{
//Префикс не совпал.
}
}
Значит найди себе эмулятор по лучше. А лучше и вообще играй на лицензии.он перезаходит меняя айди
Событие вызывается лишь при полном отключении игрока от сервера, а OnClientDisconnect(client)/OnClientDisconnect_Post(client) - ещё и при смене карты. Ну и собственно Handle:Event события - тоже может быть плюсом.В чем разница:
HookEvent("player_disconnect", Event_PlayerDisconnect);
public OnClientDisconnect(client)
у меня там вылавливается имя и айпи. так понимаю разумней будет HookEvent("player_disconnectСобытие вызывается лишь при полном отключении игрока от сервера, а OnClientDisconnect(client)/OnClientDisconnect_Post(client) - ещё и при смене карты. Ну и собственно Handle:Event события - тоже может быть плюсом.
Если тебе нужен лишь индекс игрока и не важно, что при смене карты идёт повторный вызов функции - используй OnClientDisconnect.
Имя в уже готовом строковом виде есть в событии, а вот IP нет.вылавливается имя и айпи
Если тебе, например, нужно сохранить некую статистику игрока, то нет, лучше делать это через OnClientDisconnect(client), дабы избежать большой потери информации в случае падения сервера (более частая запись, при каждой смене карты).разумней будет HookEvent("player_disconnect