Monthly Target: $400 Donations: $140
 35% 

Notices

[css] Advanced Voice Communications (Dead All Talk)


Post New Thread Reply   
 
Thread Tools Display Modes
Author
databomb
Veteran Member
Join Date: Jun 2009
Location: Boston, MA
Plugin ID:
2178
Plugin Version:
2.2.1
Plugin Category:
Gameplay
Plugin Game:
Counter-Strike: Source
Plugin Dependencies:
    Servers with this Plugin:
    61 
    Plugin Description:
    This plugin adds dead all talk, permanent and timed mute commands, muting on death, and a host of other configurable voice options to fine-tune the in-game voice to your liking.
    Old 01-17-2011 , 18: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, 2862 views)
    File Type: sp Get Plugin or Get Source (voicecomm.sp - 5036 views - 38.2 KB)

    Last edited by databomb; 08-19-2016 at 10:48. Reason: new version 2.2.1
    databomb is offline
    databomb
    Veteran Member
    Join Date: Jun 2009
    Location: Boston, MA
    Old 01-18-2011 , 20:08   Re: [ANY] Dead All Talk
    Reply With Quote #2

    As I've tested this there is another side effect of using overrides this way.. mute is broken while dead all talk is enabled. Since the whole point of using a modified basecomm was to keep mute working I'll be looking into this and posting back soon.
    databomb is offline
    databomb
    Veteran Member
    Join Date: Jun 2009
    Location: Boston, MA
    Old 01-19-2011 , 00:03   Re: [ANY] Dead All Talk
    Reply With Quote #3

    Fixed.. this is the code I had to change in the gag.sp file within the scripting/basecomm/ directory:

    PHP Code:
    PerformMute(clienttarget)
    {
            
    g_Muted[target] = true;
            if (
    GetConVarInt(g_Cvar_Deadtalk) == 1)
            {
                    
    // set overrides so the client cannot talk to anyone
                    
    for (new Pidx 1Pidx <= MaxClientsPidx++)
                    {
                            if ((
    Pidx != target) && IsClientInGame(Pidx))
                            {
                                    
    SetListenOverride(PidxtargetListen_No);
                                    
    //g_ChangedListener[Pidx][target] = Bool:true;
                            
    }
                    }
            }
            else
            {
                    
    SetClientListeningFlags(clientVOICE_MUTED);
            }
            
    LogAction(clienttarget"\"%L\" muted \"%L\""clienttarget);
    }

    PerformUnMute(clienttarget)
    {
            
    g_Muted[target] = false;
            if (
    GetConVarInt(g_Cvar_Deadtalk) == && IsPlayerAlive(target))
            {
                    
    //SetClientListeningFlags(target, VOICE_LISTENALL);
                    
    SetClientListeningFlags(targetVOICE_NORMAL);
                    new 
    clientTeam GetClientTeam(target);
                    for (new 
    idx 1idx <= MaxClientsidx++)
                    {
                            if ((
    idx != target) && IsClientInGame(idx) &&
    (
    GetClientTeam(idx) != clientTeam))
                            {
                                    
    SetListenOverride(idxtargetListen_Yes);
                                    
    //g_ChangedListener[idx][client] = Bool:true;
                            
    }
                    }
            }
            
    // if they're dead then wait till next round to unmute them
            
    else if (GetConVarInt(g_Cvar_Deadtalk) == && !IsPlayerAlive(target))
            {
                    
    SetClientListeningFlags(targetVOICE_TEAM);
            }
            else
            {
                    
    SetClientListeningFlags(targetVOICE_NORMAL);
            }

            
    LogAction(clienttarget"\"%L\" unmuted \"%L\""clienttarget);

    databomb is offline
    SpazShot
    Senior Member
    Join Date: Nov 2009
    Old 01-19-2011 , 00:13   Re: [ANY] Dead All Talk
    Reply With Quote #4

    Good job on this plugin, seems to meet my demands nearly. I'll use this for my jailbreak server when you can implement admin immunity and late joiners issue but I just wanted to notify you that I like the work you put forth, don't give up.
    SpazShot is offline
    niar82k
    Member
    Join Date: Aug 2007
    Location: Germany
    Old 01-22-2011 , 13:12   Re: [ANY] Dead All Talk
    Reply With Quote #5

    cant download the plugin

    Plugin failed to compile! Please try contacting the author.
    niar82k is offline
    databomb
    Veteran Member
    Join Date: Jun 2009
    Location: Boston, MA
    Old 01-22-2011 , 14:58   Re: [ANY] Dead All Talk
    Reply With Quote #6

    niar82k, you'll need the gag file or else it won't compile. I'll include everything in the new deadalltalk file and re-post. Although I've been getting some strange behavior ever since merging the basecomm and gag all into deadalltalk, so I'll need to do some more troubleshooting. It was working reliably for days and then the phantom issue of reverting to sv_alltalk 0 behavior occurs. Give me some time to troubleshoot this issue.
    databomb is offline
    databomb
    Veteran Member
    Join Date: Jun 2009
    Location: Boston, MA
    Old 01-23-2011 , 03:35   Re: [ANY] Dead All Talk
    Reply With Quote #7

    Version 1.12 is posted. This has some basic admin over-rides added along with a convar for announcing to players their voice status. I've been testing it out and it's worked correctly for several rounds now.

    During the initial first round there will be some over-rides that aren't processed since not everyone is in the game yet. This is a known problem right now; just wait until the second round to make sure there are no problems.
    databomb is offline
    databomb
    Veteran Member
    Join Date: Jun 2009
    Location: Boston, MA
    Old 02-07-2011 , 00:56   Re: [ANY] Advanced Voice Communications (Dead All Talk)
    Reply With Quote #8

    Version 1.20 posted, most of the features on the to-do list have now been incorporated in the new version including more configurable options and admin overrides.

    Additional testing of the plugin is needed to identify any gameplay issues.
    databomb is offline
    Whist
    Member
    Join Date: Sep 2010
    Old 02-07-2011 , 00:59   Re: [ANY] Advanced Voice Communications (Dead All Talk)
    Reply With Quote #9

    I posted something right after you updated. Your updated included what I needed lol.
    __________________

    Last edited by Whist; 02-07-2011 at 01:06.
    Whist is offline
    Send a message via AIM to Whist
    Whist
    Member
    Join Date: Sep 2010
    Old 02-07-2011 , 02:36   Re: [ANY] Advanced Voice Communications (Dead All Talk)
    Reply With Quote #10

    After discovering your update I installed the plugin and was eager to test out your dead talk feature. I must be getting something wrong though. What I am looking to do is have alive players talking to their team only and dead players talking in all talk. I assume that the command sm_voicecomm 2 is the setting that I need? Also, to apply it, do I just need to type it into console?

    The messages that appear telling you talking has been restored, etc, are doubling up and posting to the chat box twice.
    __________________
    Whist is offline
    Send a message via AIM to Whist
    Reply


    Thread Tools
    Display Modes

    Posting Rules
    You may not post new threads
    You may not post replies
    You may not post attachments
    You may not edit your posts

    BB code is On
    Smilies are On
    [IMG] code is On
    HTML code is Off

    Forum Jump


    All times are GMT -4. The time now is 14:32.


    Powered by vBulletin®
    Copyright ©2000 - 2017, vBulletin Solutions, Inc.
    Theme made by Freecode