как-то так:Можно как нибудь ломать цикл, если хотя бы у одного игрока?
public void entity_visible(Event event, const char [] name, bool dontBroadcast)
{
hasVisibleThreats = false;
int client = GetClientOfUserId(event.GetInt("userid"));
if(client && IsPlayerAlive(client) && (GetClientTeam(client) == 2 || IsInfected(client, ZOMBIECLASS_TANK)))
for(int i = 1; i <= MaxClients; i++)
if(i != client && IsClientInGame(i) && (GetClientTeam(i) == 2 || IsInfected(i, ZOMBIECLASS_TANK)) && GetEntProp(i, Prop_Send, "m_hasVisibleThreats"))
{
hasVisibleThreats = true;
break;
}
PrintToChatAll(hasVisibleThreats ? "true" : "false")
}
int IsInfected(int client, int type)
{
return GetClientTeam(client) == 3 && type == GetEntProp(client, Prop_Send, "m_zombieClass");
}
[ANY] Hook Grab Rope (1.1.4) - AlliedModders думаю стоит просить сделать из этого.Кто может вырезать из этого плагина grab? [ANY/CSS] EntControl(like grabbermod,NPCs,BuildIn-WEBSERVER,...) (Updated 2014-05-09) - AlliedModders
И сделать отдельным плагином
Мне скинули недостающий плагин.А инклюд принадлежит influx_hud_draw_advanced.smx? Просто если к другому, то он тоже должен быть на сервере.
L 03/11/2019 - 17:32:26: [influx_hud/influx_hud_draw_advanced.smx] You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 1
L 03/11/2019 - 17:32:26: [influx_hud/influx_hud_draw_advanced.smx] You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 1
L 03/11/2019 - 17:32:26: [influx_hud/influx_hud_draw_advanced.smx] You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 1
L 03/11/2019 - 17:32:26: [SM] Exception reported: [Influx] HUD SQL INSERT ERROR!
QERY: INSERT INTO inf_huds (uid,style,hsm, hwr, hpb, hkeys, hsync, hstages, hjumps, hspeed, hstrafes, hrank, hspec) VALUES ('0','0','1','1','1','1','1','1','-1','1','-1','1','1')
L 03/11/2019 - 17:32:26: [SM] Blaming: influx_hud/influx_hud_draw_advanced.smx
L 03/11/2019 - 17:32:26: [SM] Call stack trace:
L 03/11/2019 - 17:32:26: [SM] [0] SetFailState
L 03/11/2019 - 17:32:26: [SM] [1] Line 345, D:\Server\csgo\addons\sourcemod\scripting\influx_hud_draw_advanced.sp::InsertHudSettings
L 03/11/2019 - 17:32:26: [SM] [2] Line 83, D:\Server\csgo\addons\sourcemod\scripting\influx_hud_draw_advanced.sp::OnClientAuthorized
Да конечно [CS: GO] - Kill icons к @Samoletik1337 обращайся.Есть ли у кого модуль для вип
для замены иконок убийства? Или кто может написать подобное?
#include <sdktools_hooks>
public Action OnPlayerRunCmd(int client, int& buttons, int& impulse, float vel[3], float angles[3], int& weapon)
{
if(buttons & IN_JUMP) buttons &= ~IN_JUMP;
}
Вот далее в трансиле укажешь {GREEN},{DEFAULT} ну и как тебе нравится.Кто может помочь ?
1/ Плагин radar_block нужно в нем добавить что бы игрок мог включить и выключить радар :)
2/ Плагин [CSGO] grafiti нужно в нем сделать что бы при использование граффити звук работал нормально + сделать если нажимать на бинде на букву у он показывает что ты нанес его но не показывает через сколько секунд можно его использовать.
3/ Плагин AntiAfk добавить цвет от феникса csgocolors
Игра: Counter-Strike: Global Offensive в Steam
#include <sdktools_functions>
#include <csgo_colors>
#pragma semicolon 1
#pragma newdecls required
public Plugin myinfo = {name = "AntiAfk", author = "Drumanid", version = "2.2", url = "http://vk.com/drumanid"}
Handle g_hTimer[MAXPLAYERS +1];
bool g_bAfk[MAXPLAYERS +1];
int g_iTime[MAXPLAYERS +1], g_iLimit[MAXPLAYERS +1];
int cv_iTime, cv_iLimit, cv_iPunish;
char g_sTranslite[192], cv_sFlagKill[4], cv_sFlagChange[4], cv_sFlagKick[4], cv_sFlagAll[4];
public void OnPluginStart()
{
HookEvent("player_spawn", PlayerSpawn);
HookEvent("cs_win_panel_match", CSWinPanelMatch, EventHookMode_PostNoCopy);
ConVar cv;
(cv = CreateConVar("AA_TIME", "30", "RU: Время перед наказанием | EN: Time of punishment", _, true, 10.0, true, 120.0)).AddChangeHook(Cvar_iTime);
cv_iTime = cv.IntValue;
(cv = CreateConVar("AA_LIMIT", "3", "RU: Предупреждения | EN: Warning", _, true, 2.0, true, 6.0)).AddChangeHook(Cvar_iLimit);
cv_iLimit = cv.IntValue;
(cv = CreateConVar("AA_PUNISH", "1", "RU: 0 - Кикать / 1 - Перевести в наблюдатели | EN: 0 - Kicked / 1 - Change team 1(spec)", _, true, 0.0, true, 1.0)).AddChangeHook(Cvar_iPunish);
cv_iPunish = cv.IntValue;
(cv = CreateConVar("AA_FLAGKILL", "o", "RU: Флаг - иммунитет от убийства | EN: Flag - immunity from murder")).AddChangeHook(Cvar_sFlagKill);
cv.GetString(cv_sFlagKill, sizeof(cv_sFlagKill));
(cv = CreateConVar("AA_FLAGCHANGE", "p", "RU: Флаг - иммунитет от изменения команды | EN: Flag - immunity from team change")).AddChangeHook(Cvar_sFlagChange);
cv.GetString(cv_sFlagChange, sizeof(cv_sFlagChange));
(cv = CreateConVar("AA_FLAGKICK", "q", "RU: Флаг - иммунитет от кика | EN: Flag - immunity from kick")).AddChangeHook(Cvar_sFlagKick);
cv.GetString(cv_sFlagKick, sizeof(cv_sFlagKick));
(cv = CreateConVar("AA_FLAGALL", "z", "RU: Флаг - иммунитет от всего | EN: Flag - immunity from everything")).AddChangeHook(Cvar_sFlagAll);
cv.GetString(cv_sFlagAll, sizeof(cv_sFlagAll));
LoadTranslations("AntiAfk.phrases");
AutoExecConfig(true, "AntiAfk");
}
public void Cvar_iTime(ConVar cv, const char[] oldValue, const char[] newValue) { cv_iTime = cv.IntValue; }
public void Cvar_iLimit(ConVar cv, const char[] oldValue, const char[] newValue) { cv_iLimit = cv.IntValue; }
public void Cvar_iPunish(ConVar cv, const char[] oldValue, const char[] newValue) { cv_iPunish = cv.IntValue; }
public void Cvar_sFlagKill(ConVar cv, const char[] oldValue, const char[] newValue) { cv.GetString(cv_sFlagKill, sizeof(cv_sFlagKill)); }
public void Cvar_sFlagChange(ConVar cv, const char[] oldValue, const char[] newValue) { cv.GetString(cv_sFlagChange, sizeof(cv_sFlagChange)); }
public void Cvar_sFlagKick(ConVar cv, const char[] oldValue, const char[] newValue) { cv.GetString(cv_sFlagKick, sizeof(cv_sFlagKick)); }
public void Cvar_sFlagAll(ConVar cv, const char[] oldValue, const char[] newValue) { cv.GetString(cv_sFlagAll, sizeof(cv_sFlagAll)); }
public void OnClientPostAdminCheck(int iClient)
{
if(!IsFakeClient(iClient) && CheckFlag(iClient, cv_sFlagAll))
{
g_iTime[iClient] = cv_iTime;
g_hTimer[iClient] = CreateTimer(1.0, CheckAfk, GetClientUserId(iClient), TIMER_REPEAT | TIMER_FLAG_NO_MAPCHANGE);
}
}
public void PlayerSpawn(Event hEvent, const char[] sName, bool bDbc)
{
int iClient = GetClientOfUserId(hEvent.GetInt("userid"));
g_bAfk[iClient] = true;
g_iTime[iClient] = cv_iTime;
}
public void CSWinPanelMatch(Event hEvent, const char[] sName, bool bDbc)
{
for(int i = 1; i <= MaxClients; i++) g_bAfk[i] = false;
}
public Action CheckAfk(Handle timer, any UserId)
{
int iClient = GetClientOfUserId(UserId);
if(iClient && IsPlayerAlive(iClient) && !IsFakeClient(iClient) && g_bAfk[iClient])
{
if(--g_iTime[iClient] > 0)
{
if(g_iTime[iClient] > 10.0) return Plugin_Handled;
else
{
SetGlobalTransTarget(iClient);
FormatEx(g_sTranslite, sizeof(g_sTranslite), "%t", "Warning motion hud", g_iTime[iClient]);
SetHudTextParams(0.005, 0.5, 1.0, 255, 68, 68, 255, 0, 1.0, 0.1, 0.1);
ShowHudText(iClient, -1, g_sTranslite);
}
return Plugin_Continue;
}
g_iLimit[iClient]++;
FormatEx(g_sTranslite, sizeof(g_sTranslite), "%t", "Warning motion chat", g_iLimit[iClient], cv_iLimit);
CGOPrintToChat(iClient, g_sTranslite);
if(CheckFlag(iClient, cv_sFlagKill))
{
ForcePlayerSuicide(iClient);
FormatEx(g_sTranslite, sizeof(g_sTranslite), "%t", "Kill player", iClient);
CGOPrintToChatAll(g_sTranslite);
}
if(g_iLimit[iClient] >= cv_iLimit)
{
switch(cv_iPunish)
{
case 0:
{
if(CheckFlag(iClient,cv_sFlagKick))
{
FormatEx(g_sTranslite, sizeof(g_sTranslite), "%t", "Kick message");
KickClient(iClient, g_sTranslite);
}
}
case 1:
{
g_iLimit[iClient] = 0;
if(CheckFlag(iClient, cv_sFlagChange))
{
ChangeClientTeam(iClient, 1);
FormatEx(g_sTranslite, sizeof(g_sTranslite), "%t", "Change team");
CGOPrintToChat(iClient, g_sTranslite);
}
}
}
}
}
g_bAfk[iClient] = true;
g_iTime[iClient] = cv_iTime;
return Plugin_Handled;
}
public Action OnPlayerRunCmd(int iClient, int &iButtons, int &iImpulse, float fVel[3], float fAngles[3], int &iWeapon)
{
if(g_bAfk[iClient] && IsPlayerAlive(iClient) && !IsFakeClient(iClient))
{
if(iButtons && !(iButtons & IN_LEFT || iButtons & IN_RIGHT || iButtons & IN_DUCK || iButtons & IN_JUMP))
{
g_bAfk[iClient] = false;
g_iLimit[iClient] = 0;
}
}
}
public void OnClientDisconnect(int iClient)
{
if(g_hTimer[iClient] != null)
{
delete g_hTimer[iClient];
g_hTimer[iClient] = null;
}
g_iLimit[iClient] = 0;
}
bool CheckFlag(int iClient, char[] sFlag)
{
int iFlagBits = GetUserFlagBits(iClient);
if(iFlagBits & ReadFlagString("z") || iFlagBits & ReadFlagString(sFlag)) return false;
return true;
}
От душиВот далее в трансиле укажешь {GREEN},{DEFAULT} ну и как тебе нравится.
чтобы скомпилировать скинь в include csgo_colors
PHP:#include <sdktools_functions> #include <csgo_colors> #pragma semicolon 1 #pragma newdecls required public Plugin myinfo = {name = "AntiAfk", author = "Drumanid", version = "2.2", url = "http://vk.com/drumanid"} Handle g_hTimer[MAXPLAYERS +1]; bool g_bAfk[MAXPLAYERS +1]; int g_iTime[MAXPLAYERS +1], g_iLimit[MAXPLAYERS +1]; int cv_iTime, cv_iLimit, cv_iPunish; char g_sTranslite[192], cv_sFlagKill[4], cv_sFlagChange[4], cv_sFlagKick[4], cv_sFlagAll[4]; public void OnPluginStart() { HookEvent("player_spawn", PlayerSpawn); HookEvent("cs_win_panel_match", CSWinPanelMatch, EventHookMode_PostNoCopy); ConVar cv; (cv = CreateConVar("AA_TIME", "30", "RU: Время перед наказанием | EN: Time of punishment", _, true, 10.0, true, 120.0)).AddChangeHook(Cvar_iTime); cv_iTime = cv.IntValue; (cv = CreateConVar("AA_LIMIT", "3", "RU: Предупреждения | EN: Warning", _, true, 2.0, true, 6.0)).AddChangeHook(Cvar_iLimit); cv_iLimit = cv.IntValue; (cv = CreateConVar("AA_PUNISH", "1", "RU: 0 - Кикать / 1 - Перевести в наблюдатели | EN: 0 - Kicked / 1 - Change team 1(spec)", _, true, 0.0, true, 1.0)).AddChangeHook(Cvar_iPunish); cv_iPunish = cv.IntValue; (cv = CreateConVar("AA_FLAGKILL", "o", "RU: Флаг - иммунитет от убийства | EN: Flag - immunity from murder")).AddChangeHook(Cvar_sFlagKill); cv.GetString(cv_sFlagKill, sizeof(cv_sFlagKill)); (cv = CreateConVar("AA_FLAGCHANGE", "p", "RU: Флаг - иммунитет от изменения команды | EN: Flag - immunity from team change")).AddChangeHook(Cvar_sFlagChange); cv.GetString(cv_sFlagChange, sizeof(cv_sFlagChange)); (cv = CreateConVar("AA_FLAGKICK", "q", "RU: Флаг - иммунитет от кика | EN: Flag - immunity from kick")).AddChangeHook(Cvar_sFlagKick); cv.GetString(cv_sFlagKick, sizeof(cv_sFlagKick)); (cv = CreateConVar("AA_FLAGALL", "z", "RU: Флаг - иммунитет от всего | EN: Flag - immunity from everything")).AddChangeHook(Cvar_sFlagAll); cv.GetString(cv_sFlagAll, sizeof(cv_sFlagAll)); LoadTranslations("AntiAfk.phrases"); AutoExecConfig(true, "AntiAfk"); } public void Cvar_iTime(ConVar cv, const char[] oldValue, const char[] newValue) { cv_iTime = cv.IntValue; } public void Cvar_iLimit(ConVar cv, const char[] oldValue, const char[] newValue) { cv_iLimit = cv.IntValue; } public void Cvar_iPunish(ConVar cv, const char[] oldValue, const char[] newValue) { cv_iPunish = cv.IntValue; } public void Cvar_sFlagKill(ConVar cv, const char[] oldValue, const char[] newValue) { cv.GetString(cv_sFlagKill, sizeof(cv_sFlagKill)); } public void Cvar_sFlagChange(ConVar cv, const char[] oldValue, const char[] newValue) { cv.GetString(cv_sFlagChange, sizeof(cv_sFlagChange)); } public void Cvar_sFlagKick(ConVar cv, const char[] oldValue, const char[] newValue) { cv.GetString(cv_sFlagKick, sizeof(cv_sFlagKick)); } public void Cvar_sFlagAll(ConVar cv, const char[] oldValue, const char[] newValue) { cv.GetString(cv_sFlagAll, sizeof(cv_sFlagAll)); } public void OnClientPostAdminCheck(int iClient) { if(!IsFakeClient(iClient) && CheckFlag(iClient, cv_sFlagAll)) { g_iTime[iClient] = cv_iTime; g_hTimer[iClient] = CreateTimer(1.0, CheckAfk, GetClientUserId(iClient), TIMER_REPEAT | TIMER_FLAG_NO_MAPCHANGE); } } public void PlayerSpawn(Event hEvent, const char[] sName, bool bDbc) { int iClient = GetClientOfUserId(hEvent.GetInt("userid")); g_bAfk[iClient] = true; g_iTime[iClient] = cv_iTime; } public void CSWinPanelMatch(Event hEvent, const char[] sName, bool bDbc) { for(int i = 1; i <= MaxClients; i++) g_bAfk[i] = false; } public Action CheckAfk(Handle timer, any UserId) { int iClient = GetClientOfUserId(UserId); if(iClient && IsPlayerAlive(iClient) && !IsFakeClient(iClient) && g_bAfk[iClient]) { if(--g_iTime[iClient] > 0) { if(g_iTime[iClient] > 10.0) return Plugin_Handled; else { SetGlobalTransTarget(iClient); FormatEx(g_sTranslite, sizeof(g_sTranslite), "%t", "Warning motion hud", g_iTime[iClient]); SetHudTextParams(0.005, 0.5, 1.0, 255, 68, 68, 255, 0, 1.0, 0.1, 0.1); ShowHudText(iClient, -1, g_sTranslite); } return Plugin_Continue; } g_iLimit[iClient]++; FormatEx(g_sTranslite, sizeof(g_sTranslite), "%t", "Warning motion chat", g_iLimit[iClient], cv_iLimit); CGOPrintToChat(iClient, g_sTranslite); if(CheckFlag(iClient, cv_sFlagKill)) { ForcePlayerSuicide(iClient); FormatEx(g_sTranslite, sizeof(g_sTranslite), "%t", "Kill player", iClient); CGOPrintToChatAll(g_sTranslite); } if(g_iLimit[iClient] >= cv_iLimit) { switch(cv_iPunish) { case 0: { if(CheckFlag(iClient,cv_sFlagKick)) { FormatEx(g_sTranslite, sizeof(g_sTranslite), "%t", "Kick message"); KickClient(iClient, g_sTranslite); } } case 1: { g_iLimit[iClient] = 0; if(CheckFlag(iClient, cv_sFlagChange)) { ChangeClientTeam(iClient, 1); FormatEx(g_sTranslite, sizeof(g_sTranslite), "%t", "Change team"); CGOPrintToChat(iClient, g_sTranslite); } } } } } g_bAfk[iClient] = true; g_iTime[iClient] = cv_iTime; return Plugin_Handled; } public Action OnPlayerRunCmd(int iClient, int &iButtons, int &iImpulse, float fVel[3], float fAngles[3], int &iWeapon) { if(g_bAfk[iClient] && IsPlayerAlive(iClient) && !IsFakeClient(iClient)) { if(iButtons && !(iButtons & IN_LEFT || iButtons & IN_RIGHT || iButtons & IN_DUCK || iButtons & IN_JUMP)) { g_bAfk[iClient] = false; g_iLimit[iClient] = 0; } } } public void OnClientDisconnect(int iClient) { if(g_hTimer[iClient] != null) { delete g_hTimer[iClient]; g_hTimer[iClient] = null; } g_iLimit[iClient] = 0; } bool CheckFlag(int iClient, char[] sFlag) { int iFlagBits = GetUserFlagBits(iClient); if(iFlagBits & ReadFlagString("z") || iFlagBits & ReadFlagString(sFlag)) return false; return true; }
Можешь убрать еще имунитет типо что бы всех убивало да же админов )Вот далее в трансиле укажешь {GREEN},{DEFAULT} ну и как тебе нравится.
чтобы скомпилировать скинь в include csgo_colors
PHP:#include <sdktools_functions> #include <csgo_colors> #pragma semicolon 1 #pragma newdecls required public Plugin myinfo = {name = "AntiAfk", author = "Drumanid", version = "2.2", url = "http://vk.com/drumanid"} Handle g_hTimer[MAXPLAYERS +1]; bool g_bAfk[MAXPLAYERS +1]; int g_iTime[MAXPLAYERS +1], g_iLimit[MAXPLAYERS +1]; int cv_iTime, cv_iLimit, cv_iPunish; char g_sTranslite[192], cv_sFlagKill[4], cv_sFlagChange[4], cv_sFlagKick[4], cv_sFlagAll[4]; public void OnPluginStart() { HookEvent("player_spawn", PlayerSpawn); HookEvent("cs_win_panel_match", CSWinPanelMatch, EventHookMode_PostNoCopy); ConVar cv; (cv = CreateConVar("AA_TIME", "30", "RU: Время перед наказанием | EN: Time of punishment", _, true, 10.0, true, 120.0)).AddChangeHook(Cvar_iTime); cv_iTime = cv.IntValue; (cv = CreateConVar("AA_LIMIT", "3", "RU: Предупреждения | EN: Warning", _, true, 2.0, true, 6.0)).AddChangeHook(Cvar_iLimit); cv_iLimit = cv.IntValue; (cv = CreateConVar("AA_PUNISH", "1", "RU: 0 - Кикать / 1 - Перевести в наблюдатели | EN: 0 - Kicked / 1 - Change team 1(spec)", _, true, 0.0, true, 1.0)).AddChangeHook(Cvar_iPunish); cv_iPunish = cv.IntValue; (cv = CreateConVar("AA_FLAGKILL", "o", "RU: Флаг - иммунитет от убийства | EN: Flag - immunity from murder")).AddChangeHook(Cvar_sFlagKill); cv.GetString(cv_sFlagKill, sizeof(cv_sFlagKill)); (cv = CreateConVar("AA_FLAGCHANGE", "p", "RU: Флаг - иммунитет от изменения команды | EN: Flag - immunity from team change")).AddChangeHook(Cvar_sFlagChange); cv.GetString(cv_sFlagChange, sizeof(cv_sFlagChange)); (cv = CreateConVar("AA_FLAGKICK", "q", "RU: Флаг - иммунитет от кика | EN: Flag - immunity from kick")).AddChangeHook(Cvar_sFlagKick); cv.GetString(cv_sFlagKick, sizeof(cv_sFlagKick)); (cv = CreateConVar("AA_FLAGALL", "z", "RU: Флаг - иммунитет от всего | EN: Flag - immunity from everything")).AddChangeHook(Cvar_sFlagAll); cv.GetString(cv_sFlagAll, sizeof(cv_sFlagAll)); LoadTranslations("AntiAfk.phrases"); AutoExecConfig(true, "AntiAfk"); } public void Cvar_iTime(ConVar cv, const char[] oldValue, const char[] newValue) { cv_iTime = cv.IntValue; } public void Cvar_iLimit(ConVar cv, const char[] oldValue, const char[] newValue) { cv_iLimit = cv.IntValue; } public void Cvar_iPunish(ConVar cv, const char[] oldValue, const char[] newValue) { cv_iPunish = cv.IntValue; } public void Cvar_sFlagKill(ConVar cv, const char[] oldValue, const char[] newValue) { cv.GetString(cv_sFlagKill, sizeof(cv_sFlagKill)); } public void Cvar_sFlagChange(ConVar cv, const char[] oldValue, const char[] newValue) { cv.GetString(cv_sFlagChange, sizeof(cv_sFlagChange)); } public void Cvar_sFlagKick(ConVar cv, const char[] oldValue, const char[] newValue) { cv.GetString(cv_sFlagKick, sizeof(cv_sFlagKick)); } public void Cvar_sFlagAll(ConVar cv, const char[] oldValue, const char[] newValue) { cv.GetString(cv_sFlagAll, sizeof(cv_sFlagAll)); } public void OnClientPostAdminCheck(int iClient) { if(!IsFakeClient(iClient) && CheckFlag(iClient, cv_sFlagAll)) { g_iTime[iClient] = cv_iTime; g_hTimer[iClient] = CreateTimer(1.0, CheckAfk, GetClientUserId(iClient), TIMER_REPEAT | TIMER_FLAG_NO_MAPCHANGE); } } public void PlayerSpawn(Event hEvent, const char[] sName, bool bDbc) { int iClient = GetClientOfUserId(hEvent.GetInt("userid")); g_bAfk[iClient] = true; g_iTime[iClient] = cv_iTime; } public void CSWinPanelMatch(Event hEvent, const char[] sName, bool bDbc) { for(int i = 1; i <= MaxClients; i++) g_bAfk[i] = false; } public Action CheckAfk(Handle timer, any UserId) { int iClient = GetClientOfUserId(UserId); if(iClient && IsPlayerAlive(iClient) && !IsFakeClient(iClient) && g_bAfk[iClient]) { if(--g_iTime[iClient] > 0) { if(g_iTime[iClient] > 10.0) return Plugin_Handled; else { SetGlobalTransTarget(iClient); FormatEx(g_sTranslite, sizeof(g_sTranslite), "%t", "Warning motion hud", g_iTime[iClient]); SetHudTextParams(0.005, 0.5, 1.0, 255, 68, 68, 255, 0, 1.0, 0.1, 0.1); ShowHudText(iClient, -1, g_sTranslite); } return Plugin_Continue; } g_iLimit[iClient]++; FormatEx(g_sTranslite, sizeof(g_sTranslite), "%t", "Warning motion chat", g_iLimit[iClient], cv_iLimit); CGOPrintToChat(iClient, g_sTranslite); if(CheckFlag(iClient, cv_sFlagKill)) { ForcePlayerSuicide(iClient); FormatEx(g_sTranslite, sizeof(g_sTranslite), "%t", "Kill player", iClient); CGOPrintToChatAll(g_sTranslite); } if(g_iLimit[iClient] >= cv_iLimit) { switch(cv_iPunish) { case 0: { if(CheckFlag(iClient,cv_sFlagKick)) { FormatEx(g_sTranslite, sizeof(g_sTranslite), "%t", "Kick message"); KickClient(iClient, g_sTranslite); } } case 1: { g_iLimit[iClient] = 0; if(CheckFlag(iClient, cv_sFlagChange)) { ChangeClientTeam(iClient, 1); FormatEx(g_sTranslite, sizeof(g_sTranslite), "%t", "Change team"); CGOPrintToChat(iClient, g_sTranslite); } } } } } g_bAfk[iClient] = true; g_iTime[iClient] = cv_iTime; return Plugin_Handled; } public Action OnPlayerRunCmd(int iClient, int &iButtons, int &iImpulse, float fVel[3], float fAngles[3], int &iWeapon) { if(g_bAfk[iClient] && IsPlayerAlive(iClient) && !IsFakeClient(iClient)) { if(iButtons && !(iButtons & IN_LEFT || iButtons & IN_RIGHT || iButtons & IN_DUCK || iButtons & IN_JUMP)) { g_bAfk[iClient] = false; g_iLimit[iClient] = 0; } } } public void OnClientDisconnect(int iClient) { if(g_hTimer[iClient] != null) { delete g_hTimer[iClient]; g_hTimer[iClient] = null; } g_iLimit[iClient] = 0; } bool CheckFlag(int iClient, char[] sFlag) { int iFlagBits = GetUserFlagBits(iClient); if(iFlagBits & ReadFlagString("z") || iFlagBits & ReadFlagString(sFlag)) return false; return true; }
Можешь убрать еще имунитет типо что бы всех убивало да же админов )
(cv = CreateConVar("AA_FLAGKILL", "o", "RU: Флаг - иммунитет от убийства | EN: Flag - immunity from murder")).AddChangeHook(Cvar_sFlagKill);
cv.GetString(cv_sFlagKill, sizeof(cv_sFlagKill));
(cv = CreateConVar("AA_FLAGCHANGE", "p", "RU: Флаг - иммунитет от изменения команды | EN: Flag - immunity from team change")).AddChangeHook(Cvar_sFlagChange);
cv.GetString(cv_sFlagChange, sizeof(cv_sFlagChange));
(cv = CreateConVar("AA_FLAGKICK", "q", "RU: Флаг - иммунитет от кика | EN: Flag - immunity from kick")).AddChangeHook(Cvar_sFlagKick);
cv.GetString(cv_sFlagKick, sizeof(cv_sFlagKick));
(cv = CreateConVar("AA_FLAGALL", "z", "RU: Флаг - иммунитет от всего | EN: Flag - immunity from everything")).AddChangeHook(Cvar_sFlagAll);
Просто оставьте поля пустыми ""