У меня кс го, там нет МОТДТолько через MOTD такое можно реализовать не используя посторонних плагинов.
Пример кода:
<bgsound src="http://site.ru/motd/welcome.mp3" volume="-700">
Работает только на 34-ке, на 90-й почему то у меня не завелось.
нужно где-то хранить этот список команд (в строковом массиве кода самого плагина, текстовом файле конфига)а где второй параметр хука события?
Кроме того ты не хукаешь изменение значения квара и потому твой теперешний код никогда не заработает (не будет отлавливаться событие спавна).
У меня кс го, там нет МОТД
#include <sourcemod>
#include <sdktools>
#include <cstrike>
#pragma semicolon 1
ConVar cv_test;
new g_test;
public void OnPluginStart()
{
cv_test = CreateConVar("sm_command", "0");
g_test = GetConVarString(cv_test);
HookConVarChange(cv_test, OnConVarChanged);
HookEvent("player_death", Event_PlayerDeath);
}
public void OnConVarChanged(ConVar convar, const char[] oldVal, const char[] newVal)
{
g_test = GetConVarString(cv_test);
}
public void Event_PlayerDeath(Event hEvent, const char[] sEvName, bool bDontBroadcast)
{
//g_test = GetConVarString(cv_test);
PrintToChatAll(g_test);
}
char g_test[PLATFORM_MAX_PATH];
public void OnPluginStart()
{
ConVar cvar;
(cvar = CreateConVar("sm_command", "0", _, FCVAR_PRINTABLEONLY)).AddChangeHook(CVarChanged);
cvar.GetString(g_test, sizeof(g_test));
HookEvent("player_death", Event_PlayerDeath, EventHookMode_PostNoCopy);
}
public void CVarChanged(ConVar cvar, const char[] oldVal, const char[] newVal)
{
cvar.GetString(g_test, sizeof(g_test));
}
public void Event_PlayerDeath(Event hEvent, const char[] sEvName, bool bDontBroadcast)
{
PrintToChatAll(g_test);
}
а разве при подобном не будет утечки памяти?@Сергей68, можно: [ANY] Block Kill Feed - AlliedModders
--- Добавлено позже ---
Ну или можно вот такую версию:
sm_killfeed_ctrl_mode - 0 - полная блокировка сообщений, 1 - блокировка отключена, 2 - блокировка сообщений о смерти террористов, 3 - блокировка сообщений о смерти спецов, 4 - блокировка сообщений о чужих убийствах и смертях
Файл создаёт файл конфига с именем killfeed_ctrl
public Action Event_PlayerDeath(Event event, const char[] name, bool dontBroadcast)
{
if (cv_Enabled.BoolValue)
{
event.BroadcastDisabled = true;
}
return Plugin_Continue;
}
#include <sourcemod>
#include <sdktools>
#include <sdkhooks>
#include <cstrike>
new Handle:c_hurttime = INVALID_HANDLE;
char g_hurtcomm[PLATFORM_MAX_PATH];
public void OnPluginStart()
{
ConVar cvar;
c_hurttime = CreateConVar("ec_hurttime", "0.0");
(cvar = CreateConVar("ec_hurtcomm", "", _, FCVAR_PRINTABLEONLY)).AddChangeHook(CVarChanged);
cvar.GetString(g_hurtcomm, sizeof(g_hurtcomm));
HookEvent("player_hurt", Event_hurt, EventHookMode_PostNoCopy);
}
public void CVarChanged(ConVar cvar, const char[] oldVal, const char[] newVal)
{
cvar.GetString(g_hurtcomm, sizeof(g_hurtcomm));
}
public void Event_hurt(Event hEvent, const char[] sEvName, bool bDontBroadcast)
{
CreateTimer(GetConVarFloat(c_hurttime), Timer_hurt);
}
public Action:Timer_hurt(Handle htimer)
{
ServerCommand(g_hurtcomm);
}
Помогите разобраться как включать радар, есть как отключать, а как включать принудительно не нашёл
Выключает - SetEntProp(client, Prop_Send, "m_iHideHUD" | 1«12)
1 << 12
1 >> 12