DreaM40BG Posted April 24, 2020 Share Posted April 24, 2020 Hello dear MTA:SA players, Everything is OK with the voice chat except unmuting when reconnect (I tried with OnPlayerLogin but I couldn't do it successfully) and how to add mute duration? Also, how to make something like if players are talking only players near them to hear and for aclcheck for example "ChatControl" can talk to all the players on all the map? sPlayerMuting.Lua if isVoiceEnabled() then function setPlayerVoiceMuted ( player, muted ) if not checkValidPlayer ( player ) then return false end muted = not not muted or nil globalMuted[player] = muted return setPlayerVoiceBroadcastTo ( player, (not muted) and root or nil ) end function isPlayerVoiceMuted ( player ) if not checkValidPlayer ( player ) then return false end return not not globalMuted[player] end --Returns a list of players of which have muted the specified player function getPlayerVoiceMutedByList ( player ) if not checkValidPlayer ( player ) then return false end return tableToArray(mutedBy[player] or {}) end function updateMuted ( player ) setPlayerVoiceIgnoreFrom ( player, getPlayerVoiceMutedByList ( player ) ) end function addPlayerMutedBy () mutedBy[client] = mutedBy[client] or {} mutedBy[client][source] = true updateMuted ( client ) end addEventHandler ( "voice_mutePlayerForPlayer", root, addPlayerMutedBy ) function removePlayerMutedBy () if mutedBy[client] then mutedBy[client][source] = nil --Refresh the player updateMuted ( client ) end end addEventHandler ( "voice_unmutePlayerForPlayer", root, removePlayerMutedBy ) function addPlayerMutedByTable (players) --Single packet for multiple muted players for i,player in ipairs(players) do source = player addPlayerMutedBy() end end addEventHandler ( "voice_muteTableForPlayer", root, addPlayerMutedByTable ) addEventHandler ( "onPlayerQuit", root, function() mutedBy[source] = nil globalMuted[source] = nil end ) else setPlayerVoiceMuted = outputVoiceNotLoaded isPlayerVoiceMuted = outputVoiceNotLoaded getPlayerVoiceMutedByList = outputVoiceNotLoaded end -- Functions for backward compatibility only -- DO NOT USE THESE AS THEY WILL BE REMOVED IN A LITTLE WHILE -- function isPlayerMuted ( player ) return isPlayerVoiceMuted ( player ) end function setPlayerMuted ( player, muted ) return setPlayerVoiceMuted ( player, muted ) end function getPlayerMutedByList ( player ) return getPlayerVoiceMutedByList ( player ) end -- DO NOT USE THESE AS THEY WILL BE REMOVED IN A LITTLE WHILE -- addCommandHandler("vmute", function(player, cmd, targetname) local accName = getAccountName ( getPlayerAccount ( player ) ) if isObjectInACLGroup ("user."..accName, aclGetGroup ( "ChatControl" ) ) then local target = getPlayerFromPartialName(targetname) if not target then return outputChatBox("[DIXIKLO-Servers] * Player not found! ("..targetname..")", player) end setPlayerVoiceMuted(target, true) outputChatBox("[DIXIKLO-Servers] An administrator has muted "..targetname.."", player) end end) addCommandHandler("vunmute", function(player, cmd, targetname) local accName = getAccountName ( getPlayerAccount ( player ) ) if isObjectInACLGroup ("user."..accName, aclGetGroup ( "ChatControl" ) ) then local target = getPlayerFromPartialName(targetname) if not target then return outputChatBox("[DIXIKLO-Servers] Player not found! "..targetname.."", player) end setPlayerVoiceMuted(target, false) outputChatBox("[DIXIKLO-Servers] An administrator has unmuted "..targetname.."", player) end end) -- https://wiki.multitheftauto.com/wiki/GetPlayerFromPartialName function getPlayerFromPartialName(name) local name = name and name:gsub("#%x%x%x%x%x%x", ""):lower() or nil if name then for _, player in ipairs(getElementsByType("player")) do local name_ = getPlayerName(player):gsub("#%x%x%x%x%x%x", ""):lower() if name_:find(name, 1, true) then return player end end end end All the scripts: https://drive.google.com/file/d/1MgkDtkhr5dKaMZqx3iTTZeA1fLSPehA9/view?usp=sharing Link to comment
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now