plugins/basecomm.sp
author David Anderson <dvander@alliedmods.net>
Tue Oct 02 14:48:44 2007 +0000 (2007-10-02)
changeset 1525 bca151238f5e
parent 1475 db8868dbae1b
child 1536 fe2146e4975d
permissions -rw-r--r--
- removed incorrect information about DrawOption, renamed to DisplayOption
- renamed DrawTitle to DisplayTitle
ferret99gt@1475
     1
/**
ferret99gt@1475
     2
 * vim: set ts=4 :
ferret99gt@1475
     3
 * =============================================================================
ferret99gt@1475
     4
 * SourceMod Communication Plugin
ferret99gt@1475
     5
 * Provides fucntionality for controlling communication on the server
ferret99gt@1475
     6
 *
ferret99gt@1475
     7
 * SourceMod (C)2004-2007 AlliedModders LLC.  All rights reserved.
ferret99gt@1475
     8
 * =============================================================================
ferret99gt@1475
     9
 *
ferret99gt@1475
    10
 * This program is free software; you can redistribute it and/or modify it under
ferret99gt@1475
    11
 * the terms of the GNU General Public License, version 3.0, as published by the
ferret99gt@1475
    12
 * Free Software Foundation.
ferret99gt@1475
    13
 * 
ferret99gt@1475
    14
 * This program is distributed in the hope that it will be useful, but WITHOUT
ferret99gt@1475
    15
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
ferret99gt@1475
    16
 * FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
ferret99gt@1475
    17
 * details.
ferret99gt@1475
    18
 *
ferret99gt@1475
    19
 * You should have received a copy of the GNU General Public License along with
ferret99gt@1475
    20
 * this program.  If not, see <http://www.gnu.org/licenses/>.
ferret99gt@1475
    21
 *
ferret99gt@1475
    22
 * As a special exception, AlliedModders LLC gives you permission to link the
ferret99gt@1475
    23
 * code of this program (as well as its derivative works) to "Half-Life 2," the
ferret99gt@1475
    24
 * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
ferret99gt@1475
    25
 * by the Valve Corporation.  You must obey the GNU General Public License in
ferret99gt@1475
    26
 * all respects for all other code used.  Additionally, AlliedModders LLC grants
ferret99gt@1475
    27
 * this exception to all derivative works.  AlliedModders LLC defines further
ferret99gt@1475
    28
 * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
ferret99gt@1475
    29
 * or <http://www.sourcemod.net/license.php>.
ferret99gt@1475
    30
 *
ferret99gt@1475
    31
 * Version: $Id$
ferret99gt@1475
    32
 */
ferret99gt@1475
    33
ferret99gt@1475
    34
#include <sourcemod>
ferret99gt@1475
    35
#include <sdktools>
ferret99gt@1475
    36
ferret99gt@1475
    37
#pragma semicolon 1
ferret99gt@1475
    38
ferret99gt@1475
    39
public Plugin:myinfo =
ferret99gt@1475
    40
{
ferret99gt@1475
    41
	name = "Basic Comm Control",
ferret99gt@1475
    42
	author = "AlliedModders LLC",
ferret99gt@1475
    43
	description = "Provides methods of controllingg communication.",
ferret99gt@1475
    44
	version = SOURCEMOD_VERSION,
ferret99gt@1475
    45
	url = "http://www.sourcemod.net/"
ferret99gt@1475
    46
};
ferret99gt@1475
    47
ferret99gt@1475
    48
new bool:g_Muted[MAXPLAYERS+1];		// Is the player muted?
ferret99gt@1475
    49
new bool:g_Gagged[MAXPLAYERS+1];	// Is the player gagged?
ferret99gt@1475
    50
ferret99gt@1475
    51
new Handle:g_Cvar_Deadtalk = INVALID_HANDLE;	// Holds the handle for sm_deadtalk
ferret99gt@1475
    52
new Handle:g_Cvar_Alltalk = INVALID_HANDLE;	// Holds the handle for sv_alltalk
ferret99gt@1475
    53
new bool:g_Hooked = false;			// Tracks if we've hooked events for deadtalk
ferret99gt@1475
    54
ferret99gt@1475
    55
public OnPluginStart()
ferret99gt@1475
    56
{
ferret99gt@1475
    57
	LoadTranslations("common.phrases");
ferret99gt@1475
    58
	LoadTranslations("basecomm.phrases");
ferret99gt@1475
    59
	
ferret99gt@1475
    60
	g_Cvar_Deadtalk = CreateConVar("sm_deadtalk", "0", "Controls how dead communicate. 0 - Off. 1 - Dead players ignore teams. 2 - Dead players talk to living teammates.", 0, true, 0.0, true, 2.0);
ferret99gt@1475
    61
	g_Cvar_Alltalk = FindConVar("sv_alltalk");
ferret99gt@1475
    62
	
ferret99gt@1475
    63
	RegConsoleCmd("say", Command_Say);
ferret99gt@1475
    64
	RegConsoleCmd("say_team", Command_Say);
ferret99gt@1475
    65
	
ferret99gt@1475
    66
	RegAdminCmd("sm_mute", Command_Mute, ADMFLAG_CHAT, "sm_mute <player> - Removes a player's ability to use voice.");
ferret99gt@1475
    67
	RegAdminCmd("sm_gag", Command_Gag, ADMFLAG_CHAT, "sm_gag <player> - Removes a player's ability to use chat.");
ferret99gt@1475
    68
	RegAdminCmd("sm_silence", Command_Silence, ADMFLAG_CHAT, "sm_silence <player> - Removes a player's ability to use voice or chat.");
ferret99gt@1475
    69
	
ferret99gt@1475
    70
	RegAdminCmd("sm_unmute", Command_Unmute, ADMFLAG_CHAT, "sm_unmute <player> - Restores a player's ability to use voice.");
ferret99gt@1475
    71
	RegAdminCmd("sm_ungag", Command_Ungag, ADMFLAG_CHAT, "sm_ungag <player> - Restores a player's ability to use chat.");
ferret99gt@1475
    72
	RegAdminCmd("sm_unsilence", Command_Unsilence, ADMFLAG_CHAT, "sm_unsilence <player> - Restores a player's ability to use voice and chat.");	
ferret99gt@1475
    73
	
ferret99gt@1475
    74
	HookConVarChange(g_Cvar_Deadtalk, ConVarChange_Deadtalk);
ferret99gt@1475
    75
}
ferret99gt@1475
    76
ferret99gt@1475
    77
public ConVarChange_Deadtalk(Handle:convar, const String:oldValue[], const String:newValue[])
ferret99gt@1475
    78
{
ferret99gt@1475
    79
	if (GetConVarInt(g_Cvar_Deadtalk))
ferret99gt@1475
    80
	{
ferret99gt@1475
    81
		HookEvent("player_spawn", Event_PlayerSpawn, EventHookMode_Post);
ferret99gt@1475
    82
		HookEvent("player_death", Event_PlayerDeath, EventHookMode_Post);
ferret99gt@1475
    83
		g_Hooked = true;
ferret99gt@1475
    84
	}
ferret99gt@1475
    85
	else if (g_Hooked)
ferret99gt@1475
    86
	{
ferret99gt@1475
    87
		UnhookEvent("player_spawn", Event_PlayerSpawn);
ferret99gt@1475
    88
		UnhookEvent("player_death", Event_PlayerDeath);		
ferret99gt@1475
    89
		g_Hooked = false;
ferret99gt@1475
    90
	}
ferret99gt@1475
    91
}
ferret99gt@1475
    92
ferret99gt@1475
    93
ferret99gt@1475
    94
public bool:OnClientConnect(client, String:rejectmsg[], maxlen)
ferret99gt@1475
    95
{
ferret99gt@1475
    96
	g_Gagged[client] = false;
ferret99gt@1475
    97
	g_Muted[client] = false;
ferret99gt@1475
    98
	
ferret99gt@1475
    99
	return true;
ferret99gt@1475
   100
}
ferret99gt@1475
   101
ferret99gt@1475
   102
public Action:Command_Say(client, args)
ferret99gt@1475
   103
{
ferret99gt@1475
   104
	if (client)
ferret99gt@1475
   105
	{
ferret99gt@1475
   106
		if (g_Gagged[client])
ferret99gt@1475
   107
		{
ferret99gt@1475
   108
			return Plugin_Handled;		
ferret99gt@1475
   109
		}
ferret99gt@1475
   110
	}
ferret99gt@1475
   111
	
ferret99gt@1475
   112
	return Plugin_Continue;
ferret99gt@1475
   113
}
ferret99gt@1475
   114
ferret99gt@1475
   115
public Action:Command_Mute(client, args)
ferret99gt@1475
   116
{	
ferret99gt@1475
   117
	if (args < 1)
ferret99gt@1475
   118
	{
ferret99gt@1475
   119
		ReplyToCommand(client, "[SM] Usage: sm_mute <player>");
ferret99gt@1475
   120
		return Plugin_Handled;
ferret99gt@1475
   121
	}
ferret99gt@1475
   122
	
ferret99gt@1475
   123
	decl String:arg[64];
ferret99gt@1475
   124
	GetCmdArg(1, arg, sizeof(arg));
ferret99gt@1475
   125
	
ferret99gt@1475
   126
	new target = FindTarget(client, arg);
ferret99gt@1475
   127
	if (target == -1)
ferret99gt@1475
   128
	{
ferret99gt@1475
   129
		return Plugin_Handled;
ferret99gt@1475
   130
	}
ferret99gt@1475
   131
ferret99gt@1475
   132
	if (g_Muted[target])
ferret99gt@1475
   133
	{
ferret99gt@1475
   134
		ReplyToCommand(client, "%t", "Already Muted");
ferret99gt@1475
   135
		return Plugin_Handled;		
ferret99gt@1475
   136
	}
ferret99gt@1475
   137
		
ferret99gt@1475
   138
	g_Muted[target] = true;
ferret99gt@1475
   139
	SetClientListeningFlags(target, VOICE_MUTED);
ferret99gt@1475
   140
	
ferret99gt@1475
   141
	decl String:name[64];
ferret99gt@1475
   142
	GetClientName(target, name, sizeof(name));
ferret99gt@1475
   143
ferret99gt@1475
   144
	ShowActivity(client, "%t", "Player Muted", name);
ferret99gt@1475
   145
	ReplyToCommand(client, "%t", "Player Muted", name);
ferret99gt@1475
   146
	LogAction(client, target, "\"%L\" muted \"%L\"", client, target);
ferret99gt@1475
   147
	
ferret99gt@1475
   148
	return Plugin_Handled;	
ferret99gt@1475
   149
}
ferret99gt@1475
   150
ferret99gt@1475
   151
public Action:Command_Gag(client, args)
ferret99gt@1475
   152
{	
ferret99gt@1475
   153
	if (args < 1)
ferret99gt@1475
   154
	{
ferret99gt@1475
   155
		ReplyToCommand(client, "[SM] Usage: sm_gag <player>");
ferret99gt@1475
   156
		return Plugin_Handled;
ferret99gt@1475
   157
	}
ferret99gt@1475
   158
	
ferret99gt@1475
   159
	decl String:arg[64];
ferret99gt@1475
   160
	GetCmdArg(1, arg, sizeof(arg));
ferret99gt@1475
   161
	
ferret99gt@1475
   162
	new target = FindTarget(client, arg);
ferret99gt@1475
   163
	if (target == -1)
ferret99gt@1475
   164
	{
ferret99gt@1475
   165
		return Plugin_Handled;
ferret99gt@1475
   166
	}
ferret99gt@1475
   167
ferret99gt@1475
   168
	if (g_Gagged[target])
ferret99gt@1475
   169
	{
ferret99gt@1475
   170
		ReplyToCommand(client, "%t", "Already Gagged");
ferret99gt@1475
   171
		return Plugin_Handled;		
ferret99gt@1475
   172
	}
ferret99gt@1475
   173
		
ferret99gt@1475
   174
	g_Gagged[target] = true;
ferret99gt@1475
   175
	
ferret99gt@1475
   176
	decl String:name[64];
ferret99gt@1475
   177
	GetClientName(target, name, sizeof(name));
ferret99gt@1475
   178
ferret99gt@1475
   179
	ShowActivity(client, "%t", "Player Gagged", name);
ferret99gt@1475
   180
	ReplyToCommand(client, "%t", "Player Gagged", name);
ferret99gt@1475
   181
	LogAction(client, target, "\"%L\" gagged \"%L\"", client, target);
ferret99gt@1475
   182
	
ferret99gt@1475
   183
	return Plugin_Handled;	
ferret99gt@1475
   184
}
ferret99gt@1475
   185
ferret99gt@1475
   186
public Action:Command_Silence(client, args)
ferret99gt@1475
   187
{	
ferret99gt@1475
   188
	if (args < 1)
ferret99gt@1475
   189
	{
ferret99gt@1475
   190
		ReplyToCommand(client, "[SM] Usage: sm_silence <player>");
ferret99gt@1475
   191
		return Plugin_Handled;
ferret99gt@1475
   192
	}
ferret99gt@1475
   193
	
ferret99gt@1475
   194
	decl String:arg[64];
ferret99gt@1475
   195
	GetCmdArg(1, arg, sizeof(arg));
ferret99gt@1475
   196
	
ferret99gt@1475
   197
	new target = FindTarget(client, arg);
ferret99gt@1475
   198
	if (target == -1)
ferret99gt@1475
   199
	{
ferret99gt@1475
   200
		return Plugin_Handled;
ferret99gt@1475
   201
	}
ferret99gt@1475
   202
ferret99gt@1475
   203
	if (g_Gagged[target] && g_Muted[target])
ferret99gt@1475
   204
	{
ferret99gt@1475
   205
		ReplyToCommand(client, "%t", "Already Silenced");
ferret99gt@1475
   206
		return Plugin_Handled;		
ferret99gt@1475
   207
	}
ferret99gt@1475
   208
ferret99gt@1475
   209
	decl String:name[64];
ferret99gt@1475
   210
	GetClientName(target, name, sizeof(name));
ferret99gt@1475
   211
	
ferret99gt@1475
   212
	if (!g_Gagged[target])
ferret99gt@1475
   213
	{
ferret99gt@1475
   214
		g_Gagged[target] = true;
ferret99gt@1475
   215
ferret99gt@1475
   216
		ShowActivity(client, "%t", "Player Gagged", name);
ferret99gt@1475
   217
		ReplyToCommand(client, "%t", "Player Gagged", name);
ferret99gt@1475
   218
		LogAction(client, target, "\"%L\" gagged \"%L\"", client, target);
ferret99gt@1475
   219
	}
ferret99gt@1475
   220
	
ferret99gt@1475
   221
	if (!g_Muted[target])
ferret99gt@1475
   222
	{
ferret99gt@1475
   223
		g_Muted[target] = true;
ferret99gt@1475
   224
		SetClientListeningFlags(target, VOICE_MUTED);
ferret99gt@1475
   225
	
ferret99gt@1475
   226
		ShowActivity(client, "%t", "Player Muted", name);
ferret99gt@1475
   227
		ReplyToCommand(client, "%t", "Player Muted", name);
ferret99gt@1475
   228
		LogAction(client, target, "\"%L\" muted \"%L\"", client, target);
ferret99gt@1475
   229
	}
ferret99gt@1475
   230
	
ferret99gt@1475
   231
	return Plugin_Handled;	
ferret99gt@1475
   232
}
ferret99gt@1475
   233
ferret99gt@1475
   234
public Action:Command_Unmute(client, args)
ferret99gt@1475
   235
{	
ferret99gt@1475
   236
	if (args < 1)
ferret99gt@1475
   237
	{
ferret99gt@1475
   238
		ReplyToCommand(client, "[SM] Usage: sm_unmute <player>");
ferret99gt@1475
   239
		return Plugin_Handled;
ferret99gt@1475
   240
	}
ferret99gt@1475
   241
	
ferret99gt@1475
   242
	decl String:arg[64];
ferret99gt@1475
   243
	GetCmdArg(1, arg, sizeof(arg));
ferret99gt@1475
   244
	
ferret99gt@1475
   245
	new target = FindTarget(client, arg);
ferret99gt@1475
   246
	if (target == -1)
ferret99gt@1475
   247
	{
ferret99gt@1475
   248
		return Plugin_Handled;
ferret99gt@1475
   249
	}
ferret99gt@1475
   250
ferret99gt@1475
   251
	if (!g_Muted[target])
ferret99gt@1475
   252
	{
ferret99gt@1475
   253
		ReplyToCommand(client, "%t", "Player Not Muted");
ferret99gt@1475
   254
		return Plugin_Handled;		
ferret99gt@1475
   255
	}
ferret99gt@1475
   256
		
ferret99gt@1475
   257
	g_Muted[target] = false;
ferret99gt@1475
   258
	if (GetConVarInt(g_Cvar_Deadtalk) == 1 && !IsPlayerAlive(target))
ferret99gt@1475
   259
	{
ferret99gt@1475
   260
		SetClientListeningFlags(target, VOICE_LISTENALL);
ferret99gt@1475
   261
	}
ferret99gt@1475
   262
	else if (GetConVarInt(g_Cvar_Deadtalk) == 2 && !IsPlayerAlive(target))
ferret99gt@1475
   263
	{
ferret99gt@1475
   264
		SetClientListeningFlags(target, VOICE_TEAM);
ferret99gt@1475
   265
	}
ferret99gt@1475
   266
	else
ferret99gt@1475
   267
	{
ferret99gt@1475
   268
		SetClientListeningFlags(target, VOICE_NORMAL);
ferret99gt@1475
   269
	}
ferret99gt@1475
   270
	
ferret99gt@1475
   271
	decl String:name[64];
ferret99gt@1475
   272
	GetClientName(target, name, sizeof(name));
ferret99gt@1475
   273
ferret99gt@1475
   274
	ShowActivity(client, "%t", "Player Unmuted", name);
ferret99gt@1475
   275
	ReplyToCommand(client, "%t", "Player Unmuted", name);
ferret99gt@1475
   276
	LogAction(client, target, "\"%L\" unmuted \"%L\"", client, target);
ferret99gt@1475
   277
	
ferret99gt@1475
   278
	return Plugin_Handled;	
ferret99gt@1475
   279
}
ferret99gt@1475
   280
ferret99gt@1475
   281
public Action:Command_Ungag(client, args)
ferret99gt@1475
   282
{	
ferret99gt@1475
   283
	if (args < 1)
ferret99gt@1475
   284
	{
ferret99gt@1475
   285
		ReplyToCommand(client, "[SM] Usage: sm_ungag <player>");
ferret99gt@1475
   286
		return Plugin_Handled;
ferret99gt@1475
   287
	}
ferret99gt@1475
   288
	
ferret99gt@1475
   289
	decl String:arg[64];
ferret99gt@1475
   290
	GetCmdArg(1, arg, sizeof(arg));
ferret99gt@1475
   291
	
ferret99gt@1475
   292
	new target = FindTarget(client, arg);
ferret99gt@1475
   293
	if (target == -1)
ferret99gt@1475
   294
	{
ferret99gt@1475
   295
		return Plugin_Handled;
ferret99gt@1475
   296
	}
ferret99gt@1475
   297
ferret99gt@1475
   298
	if (!g_Gagged[target])
ferret99gt@1475
   299
	{
ferret99gt@1475
   300
		ReplyToCommand(client, "%t", "Player Not Gagged");
ferret99gt@1475
   301
		return Plugin_Handled;		
ferret99gt@1475
   302
	}
ferret99gt@1475
   303
		
ferret99gt@1475
   304
	g_Gagged[target] = false;
ferret99gt@1475
   305
	
ferret99gt@1475
   306
	decl String:name[64];
ferret99gt@1475
   307
	GetClientName(target, name, sizeof(name));
ferret99gt@1475
   308
ferret99gt@1475
   309
	ShowActivity(client, "%t", "Player Ungagged", name);
ferret99gt@1475
   310
	ReplyToCommand(client, "%t", "Player Ungagged", name);
ferret99gt@1475
   311
	LogAction(client, target, "\"%L\" ungagged \"%L\"", client, target);
ferret99gt@1475
   312
	
ferret99gt@1475
   313
	return Plugin_Handled;	
ferret99gt@1475
   314
}
ferret99gt@1475
   315
ferret99gt@1475
   316
public Action:Command_Unsilence(client, args)
ferret99gt@1475
   317
{	
ferret99gt@1475
   318
	if (args < 1)
ferret99gt@1475
   319
	{
ferret99gt@1475
   320
		ReplyToCommand(client, "[SM] Usage: sm_unsilence <player>");
ferret99gt@1475
   321
		return Plugin_Handled;
ferret99gt@1475
   322
	}
ferret99gt@1475
   323
	
ferret99gt@1475
   324
	decl String:arg[64];
ferret99gt@1475
   325
	GetCmdArg(1, arg, sizeof(arg));
ferret99gt@1475
   326
	
ferret99gt@1475
   327
	new target = FindTarget(client, arg);
ferret99gt@1475
   328
	if (target == -1)
ferret99gt@1475
   329
	{
ferret99gt@1475
   330
		return Plugin_Handled;
ferret99gt@1475
   331
	}
ferret99gt@1475
   332
ferret99gt@1475
   333
	if (!g_Gagged[target] && !g_Muted[target])
ferret99gt@1475
   334
	{
ferret99gt@1475
   335
		ReplyToCommand(client, "%t", "Player Not Silenced");
ferret99gt@1475
   336
		return Plugin_Handled;		
ferret99gt@1475
   337
	}
ferret99gt@1475
   338
	
ferret99gt@1475
   339
	decl String:name[64];
ferret99gt@1475
   340
	GetClientName(target, name, sizeof(name));
ferret99gt@1475
   341
	
ferret99gt@1475
   342
	if (g_Gagged[target])
ferret99gt@1475
   343
	{
ferret99gt@1475
   344
		g_Gagged[target] = false;
ferret99gt@1475
   345
		
ferret99gt@1475
   346
		ShowActivity(client, "%t", "Player Ungagged", name);
ferret99gt@1475
   347
		ReplyToCommand(client, "%t", "Player Ungagged", name);	
ferret99gt@1475
   348
		LogAction(client, target, "\"%L\" ungagged \"%L\"", client, target);
ferret99gt@1475
   349
	}
ferret99gt@1475
   350
	
ferret99gt@1475
   351
	if (g_Muted[target])
ferret99gt@1475
   352
	{
ferret99gt@1475
   353
		g_Muted[target] = false;
ferret99gt@1475
   354
		
ferret99gt@1475
   355
		if (GetConVarInt(g_Cvar_Deadtalk) == 1 && !IsPlayerAlive(target))
ferret99gt@1475
   356
		{
ferret99gt@1475
   357
			SetClientListeningFlags(target, VOICE_LISTENALL);
ferret99gt@1475
   358
		}
ferret99gt@1475
   359
		else if (GetConVarInt(g_Cvar_Deadtalk) == 2 && !IsPlayerAlive(target))
ferret99gt@1475
   360
		{
ferret99gt@1475
   361
			SetClientListeningFlags(target, VOICE_TEAM);
ferret99gt@1475
   362
		}
ferret99gt@1475
   363
		else
ferret99gt@1475
   364
		{
ferret99gt@1475
   365
			SetClientListeningFlags(target, VOICE_NORMAL);
ferret99gt@1475
   366
		}
ferret99gt@1475
   367
		
ferret99gt@1475
   368
		ShowActivity(client, "%t", "Player Unmuted", name);
ferret99gt@1475
   369
		ReplyToCommand(client, "%t", "Player Unmuted", name);
ferret99gt@1475
   370
		LogAction(client, target, "\"%L\" unmuted \"%L\"", client, target);		
ferret99gt@1475
   371
	}
ferret99gt@1475
   372
	
ferret99gt@1475
   373
	return Plugin_Handled;	
ferret99gt@1475
   374
}
ferret99gt@1475
   375
ferret99gt@1475
   376
public Event_PlayerSpawn(Handle:event, const String:name[], bool:dontBroadcast)
ferret99gt@1475
   377
{
ferret99gt@1475
   378
	new client = GetClientOfUserId(GetEventInt(event, "userid"));
ferret99gt@1475
   379
	
ferret99gt@1475
   380
	if (g_Muted[client])
ferret99gt@1475
   381
	{
ferret99gt@1475
   382
		SetClientListeningFlags(client, VOICE_MUTED);
ferret99gt@1475
   383
	}
ferret99gt@1475
   384
	else
ferret99gt@1475
   385
	{
ferret99gt@1475
   386
		SetClientListeningFlags(client, VOICE_NORMAL);
ferret99gt@1475
   387
	}
ferret99gt@1475
   388
}
ferret99gt@1475
   389
ferret99gt@1475
   390
public Event_PlayerDeath(Handle:event, const String:name[], bool:dontBroadcast)
ferret99gt@1475
   391
{
ferret99gt@1475
   392
	new client = GetClientOfUserId(GetEventInt(event, "userid"));
ferret99gt@1475
   393
	
ferret99gt@1475
   394
	if (g_Muted[client])
ferret99gt@1475
   395
	{
ferret99gt@1475
   396
		SetClientListeningFlags(client, VOICE_MUTED);
ferret99gt@1475
   397
		return;
ferret99gt@1475
   398
	}
ferret99gt@1475
   399
	
ferret99gt@1475
   400
	if (GetConVarBool(g_Cvar_Alltalk))
ferret99gt@1475
   401
	{
ferret99gt@1475
   402
		SetClientListeningFlags(client, VOICE_NORMAL);
ferret99gt@1475
   403
		return;
ferret99gt@1475
   404
	}
ferret99gt@1475
   405
	
ferret99gt@1475
   406
	if (GetConVarInt(g_Cvar_Deadtalk) == 1)
ferret99gt@1475
   407
	{
ferret99gt@1475
   408
		SetClientListeningFlags(client, VOICE_LISTENALL);
ferret99gt@1475
   409
	}
ferret99gt@1475
   410
	else if (GetConVarInt(g_Cvar_Deadtalk) == 2)
ferret99gt@1475
   411
	{
ferret99gt@1475
   412
		SetClientListeningFlags(client, VOICE_TEAM);
ferret99gt@1475
   413
	}
ferret99gt@1475
   414
}