You cannot hook [+/-] commands from the games unless they aren't standard.
Here is how you catch it:
Code:
#include <engine>
#include <fakemeta>
new sv_alltalk;
public plugin_init()
{
register_forward(FM_Voice_SetClientListening, "FwdSetVoice");
sv_alltalk = get_cvar_pointer("sv_alltalk");
}
public FwdSetVoice(receiver, sender, listen)
{
if( receiver == sender
|| !is_user_connected(receiver)
|| !is_user_connected(sender) ) return FMRES_IGNORED;
new senSpeak = get_speak(sender);
if( senSpeak == SPEAK_MUTED ) return FMRES_IGNORED;
new recSpeak = get_speak(receiver);
if( recSpeak == SPEAK_LISTENALL
|| senSpeak == SPEAK_ALL
|| senSpeak == SPEAK_NORMAL && (
get_pcvar_num(sv_alltalk)
|| get_user_team(receiver) == get_user_team(sender) && (
is_user_alive(sender)
|| !is_user_alive(receiver)
)
)
)
{
// 'sender' is talking to 'receiver'
}
return FMRES_IGNORED;
}
__________________