View Single Post
Author Message
databomb
Veteran Member
Join Date: Jun 2009
Location: california
Old 01-17-2011 , 17:00   [css] Advanced Voice Communications (Dead All Talk)
Reply With Quote #1

Advanced Voice Communications Plugin
by: databomb
Original Compile Date: 01.17.2011


Requirements:
This plugin absolutely requires an sdktools extension from after March 8, 2011. If you fail to follow this instruction then this plugin will fail given enough time. (http://bugs.alliedmods.net/show_bug.cgi?id=4804)

SourceMod 1.3.7 includes the required fixes to the sdktools extension.

Description:
This plugin is a supplement to the standard basecomm.sp written by AlliedModdders LLC. This version adds several voice options for dead talk. The voice options from sm_deadtalk are: Dead all talk (dead players can talk across teams but alive players will not hear them) and mute on death. It also allows for a configurable team to be muted at the beginning of a round for so many seconds in addition to many more options to find the right fit for your server.

In addition, timed and permanent punishments have been added to supplement the basecomm commands (mute, gag, silence) all without needing to replace the vanilla basecomm plugin (hint: SourceBans, look at this.) The timed punishments use the ClientPrefs database and the times can range between 1 - 65,535 minutes or be of indefinite length. The times will only expire or countdown when a player is in the game so use more conservative numbers when handing out timed punishments.

Features:
Allows Dead All Talk mode (sm_deadtalk -2)
Allows timed or permanent punishments with basecomm commands (mute, gag, silence)
Allows players to be muted on death (sm_deadtalk -1)
Integrates with SourceMod and ensures your mutes are enforced properly
Admin over-rides for deadtalk options (requires ADMFLAG_CHAT)
Option to enable all talk between each round
Option to mute spectators if they're not admins (admins can talk to everyone from spectator)
Option to mute a team for a certain time starting from the beginning of each round

Command Usage:

sm_listmutes
Lists all players who are administratively muted (note this doesn't include effective mute status as enforced by plugins, only those registered with sm_mute will be counted)

sm_mute <target> <optional:time>
sm_gag <target> <optional:time>
sm_silence <target> <optional:time>
Allows you to specify an optional time value (in minutes) the player must spend in the server before being unpunished. A time of 0 indicates a permanent punishment.

sm_unmute <target> [optional:'force']
sm_ungag <target> [optional:'force']
sm_unsilence <target> [optional:'force']
Allows you to specify an optional 'force' text value specifying that all timed or permanent punishments will be forcibly removed. If you don't specify this then the player will have an effective un-muted status but remain punished when they re-connect. This is so admins can target large groups such as @alive or @!me and not worry about erasing all punishment data.

Settings:
Values in () indicate defaults

sm_deadtalk [-2,-1,(0),1,2]

sm_deadtalk -2: Dead all talk
sm_deadtalk -1: Mutes players after their death
sm_deadtalk 0: normal operation (follows sv_alltalk)
sm_deadtalk 1: equivalent of sm_deadtalk 1 (dead players ignore teams)
sm_deadtalk 2: equivalent of sm_deadtalk 2 (teammates can always talk)

sm_voicecomm_RoundEndAlltalk [0,(1)]: If enabled, all talk is enabled between rounds.
sm_voicecomm_Announce [0,(1)]: If enabled, sends messages to the server and clients about their current voice status.
sm_voicecomm_TeamTalk [(0),1]: If enabled, players talk to only their teammates when alive.
sm_voicecomm_SpectatorMute [0,(1)]: If enabled, spectators are muted unless they're an admin.
sm_voicecomm_MutedTeam [1,(2),3]: Determines which team will start muted, defaults to 2 which is the Terrorists on CS:S.
sm_voicecomm_StartMuted [(0),1]: If enabled, the team you specify will be muted for the time you specify at the beginning of every round.
sm_voicecomm_MuteTime <time> (29.0 seconds): Controls the length (in seconds) of the mute for the team specified.
sm_voicecomm_DeadHearAlive [0,(1)]: If enabled, the dead will still hear alive players.
sm_voicecomm_BlockUnmuteOnReconnect [0,(1)]: If enabled, muted players who reconnect will not be unmuted until the map changes or manually unmuted by an admin.

Edit the config file in <modroot>/cfg/sourcemod/Adv-VoiceComm.cfg

Sample Configurations:
Casual Pub (Team-only while alive but dead all talk)
sv_alltalk 0
sm_deadtalk -2
sm_voicecomm_teamtalk 1
sm_voicecomm_startmuted 0

Gun-Game (Cross-team and dead all talk)
sv_alltalk 0
sm_deadtalk -2
sm_voicecomm_teamtalk 0
sm_voicecomm_startmuted 0

Small-Medium Jailbreak (Cross-team and dead all talk with 15 second mute for Terrorists)
sv_alltalk 0
sm_deadtalk -2
sm_voicecomm_teamtalk 0
sm_voicecomm_mutedteam 2
sm_voicecomm_startmuted 1
sm_voicecomm_mutetime 15.0

Large Jailbreak (Cross-team and mute on death with 15 second mute for Terrorists)
sv_alltalk 1
sm_deadtalk -1
sm_voicecomm_mutedteam 2
sm_voicecomm_startmuted 1
sm_voicecomm_mutetime 15.0

Future considerations:
- Use SM Translation system
- Add additional options

Special Thanks:
FLOOR_MASTER who wrote the original ClientPrefs PeramMute plugin
Fyren, psychonic, and the SM team who helped me get the bug fix through that makes this plugin possible

Changes:
2.2.0 Added admin override settings, Fixed race conditions
2.1.0 Added Translations, Fixed re-hooking bug, Accounted for late spawning in deadtalk -2 mode
2.0.0 Major update: Added stateful muting, No longer requires basecomm replacement, Added many new cvars, code improvements
1.24 Added cvar to change method of alive voice chat using sm_voicecomm 2 (dead all talk), fixed hooking code
1.20 Complete overhaul and re-name to VoiceComm, incorporated original basecomm deadtalk settings into sm_voicecomm
1.12 Implemented death admin over-ride, announcement variable, and merged with gag.sp to allow compiling from the forums
1.05 Bug fixes
1.02 Initial public release
Attached Files
File Type: txt voicecomm.phrases.txt (2.5 KB, 4628 views)
File Type: sp Get Plugin or Get Source (voicecomm.sp - 8913 views - 38.2 KB)

Last edited by databomb; 08-19-2016 at 09:48. Reason: new version 2.2.1
databomb is offline