1
0
Fork 0
forked from Simnation/Main
Main/resources/[voice]/pma-voice/client/module/phone.lua
2025-06-30 19:26:56 +02:00

91 lines
2.4 KiB
Lua

local callChannel = 0
---function createPhoneThread
---creates a phone thread to listen for key presses
local function createPhoneThread()
Citizen.CreateThread(function()
local changed = false
while callChannel ~= 0 do
-- check if they're pressing voice keybinds
if MumbleIsPlayerTalking(PlayerId()) and not changed then
changed = true
playerTargets(radioPressed and radioData or {}, callData)
TriggerServerEvent('pma-voice:setTalkingOnCall', true)
elseif changed and MumbleIsPlayerTalking(PlayerId()) ~= 1 then
changed = false
MumbleClearVoiceTargetPlayers(voiceTarget)
TriggerServerEvent('pma-voice:setTalkingOnCall', false)
end
Wait(0)
end
end)
end
RegisterNetEvent('pma-voice:syncCallData', function(callTable, channel)
callData = callTable
for tgt, enabled in pairs(callTable) do
if tgt ~= playerServerId then
toggleVoice(tgt, enabled, 'phone')
end
end
end)
RegisterNetEvent('pma-voice:setTalkingOnCall', function(tgt, enabled)
if tgt ~= playerServerId then
callData[tgt] = enabled
toggleVoice(tgt, enabled, 'phone')
end
end)
RegisterNetEvent('pma-voice:addPlayerToCall', function(plySource)
callData[plySource] = false
end)
RegisterNetEvent('pma-voice:removePlayerFromCall', function(plySource)
if plySource == playerServerId then
for tgt, _ in pairs(callData) do
if tgt ~= playerServerId then
toggleVoice(tgt, false, 'phone')
end
end
callData = {}
MumbleClearVoiceTargetPlayers(voiceTarget)
playerTargets(radioPressed and radioData or {}, callData)
else
callData[plySource] = nil
toggleVoice(plySource, false, 'phone')
if MumbleIsPlayerTalking(PlayerId()) then
MumbleClearVoiceTargetPlayers(voiceTarget)
playerTargets(radioPressed and radioData or {}, callData)
end
end
end)
function setCallChannel(channel)
if GetConvarInt('voice_enablePhones', 1) ~= 1 then return end
TriggerServerEvent('pma-voice:setPlayerCall', channel)
callChannel = channel
sendUIMessage({
callInfo = channel
})
createPhoneThread()
end
exports('setCallChannel', setCallChannel)
exports('SetCallChannel', setCallChannel)
exports('addPlayerToCall', function(_call)
local call = tonumber(_call)
if call then
setCallChannel(call)
end
end)
exports('removePlayerFromCall', function()
setCallChannel(0)
end)
RegisterNetEvent('pma-voice:clSetPlayerCall', function(_callChannel)
if GetConvarInt('voice_enablePhones', 1) ~= 1 then return end
callChannel = _callChannel
createPhoneThread()
end)