#include <sourcemod>
#include <voiceannounce_ex>
new bool:g_bAllowSpeak[MAXPLAYERS+1] = {true, ...};
public bool:OnClientSpeakingEx(client)
{
if (g_bAllowSpeak[client])
{
CreateTimer(5.0, OnClientSpeaking_Callback, client, TIMER_FLAG_NO_MAPCHANGE);
return true;
}
else
return false;
}
public Action:OnClientSpeaking_Callback(Handle:timer, any:client)
{
if (timer != INVALID_HANDLE && IsClientSpeaking(client))
{
g_bAllowSpeak[client] = false;
PrintToChat(client, "Злоупотребление чатом, нельзя говорить 15 секунд.");
CreateTimer(15.0, Unmute_Callback, client, TIMER_FLAG_NO_MAPCHANGE);
}
else
timer = INVALID_HANDLE;
}
public Action:Unmute_Callback(Handle:timer, any:client)
{
if (timer != INVALID_HANDLE)
{
g_bAllowSpeak[client] = true;
timer = INVALID_HANDLE;
}
}