Контакты Поиск

[ вход ]
[ последние сообщения ]

  • Страница 1 из 1
  • 1
Форум » SourceMod >> CS:Source >> CSGO » Обсуждение » Отключить микро через определенное время после смерти.
Отключить микро через определенное время после смерти.
Karandachik Дата: Понедельник, 15.11.2021, 14:03:18 | Сообщение # 1
Сообщений: 34
Репутация: 3 [ +/- ]
Привет. Вот уже второй месяц не могу найти человека для изменения плагина.
Этот плагин выдает мут всем игрокам сервера которые умерли. (нашла на форуме)
Мне нужно, что бы он выдавал им мут не просто так сразу, а через настраиваемое время например через 10 секунд. Знаю что тут нужно прикрутить таймер и квар, но я не умею.
Может кто-то сможете мне помочь?
Код
#include <sourcemod>
#include <sdktools>

new Handle:g_en, bool:g_enabled;

public OnPluginStart()
{

    g_en = CreateConVar("DeadMute_enabled", "1", "Включить/Выключить отключение микрофона трупам", _, true, 0.0, true, 1.0);
    g_enabled = GetConVarBool(g_en);
    HookConVarChange(g_en, OnConVarChanged);

    HookEvent("player_spawn",   OnPlayerSpawn);
    HookEvent("player_death",   OnPlayerDeath);
    
    AddCommandListener(ChooseTeam,  "jointeam");
}

public Action:OnPlayerSpawn(Handle:event, const String:name[], bool:dontBroadcast)
{

    if (!g_enabled)
  return Plugin_Handled;

    new client = GetClientOfUserId(GetEventInt(event, "userid"));
    
    if (IsFakeClient(client))
  return Plugin_Continue;
    
    if (IsPlayerAlive(client) && GetClientListeningFlags(client) == VOICE_MUTED)
  SetClientListeningFlags(client, VOICE_NORMAL);
    
    return Plugin_Continue;
}

public Action:OnPlayerDeath(Handle:event, const String:name[], bool:dontBroadcast)
{

    if (!g_enabled)
  return Plugin_Handled;

    new client   =  GetClientOfUserId(GetEventInt(event, "userid"));
    
    if (IsFakeClient(client))
  return Plugin_Handled;
    
    if (GetClientListeningFlags(client) != VOICE_MUTED)
  SetClientListeningFlags(client, VOICE_MUTED);
    
    return Plugin_Continue;
}

public Action:ChooseTeam(client, const String:command[], args)  
{
    if (!g_enabled)
  return Plugin_Continue;

    if (client == 0)
  return Plugin_Continue;
  
    decl String:teamString[3];
    GetCmdArg(1, teamString, sizeof(teamString));
    new Target_Team = StringToInt(teamString);
    
    if (Target_Team > 1 && !IsPlayerAlive(client))
  SetClientListeningFlags(client, VOICE_MUTED);
  
    return Plugin_Continue;
}

public OnConVarChanged(Handle:convar, const String:oldValue[], const String:newValue[])
{
    g_enabled = bool:StringToInt(newValue);
}

А еще нужно убрать лишнее из плагина, вот квар на включение или выключение совсем не к чему на мой взгляд.
 
Форум » SourceMod >> CS:Source >> CSGO » Обсуждение » Отключить микро через определенное время после смерти.
  • Страница 1 из 1
  • 1
Поиск: