-
Notifications
You must be signed in to change notification settings - Fork 1
/
client.lua
53 lines (46 loc) · 1.85 KB
/
client.lua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
local voiceModes = Config.Modes
local lerpSpeed = Config.LerpSpeed
local bThreadCreated = false
local currentVoiceMode = voiceModes[1]
local endTime = GetGameTimer()
local proximityRange = 0.0
local lerpRange = 0.0
local drawDuration = 5000
local _DrawMarker = DrawMarker
local _math_floor = math.floor
local _getEntityCoords = GetEntityCoords
local function Lerp(a, b, t)
return a + (b - a) * t
end
local function CreateCricleThread()
CreateThread(function()
local localPed = PlayerPedId()
while GetGameTimer() < endTime do
local localPedCoords = _getEntityCoords(localPed)
localPedCoords = vector3(localPedCoords.x, localPedCoords.y, localPedCoords.z - 0.1)
local drawAlpha = _math_floor((endTime - GetGameTimer()) / drawDuration * 255)
_DrawMarker(1, localPedCoords, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, lerpRange, lerpRange, 0.125, currentVoiceMode.color.r, currentVoiceMode.color.g, currentVoiceMode.color.b, drawAlpha, false, true, 2, nil, nil, false)
_DrawMarker(1, localPedCoords, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, lerpRange, lerpRange, -0.125, currentVoiceMode.color.r, currentVoiceMode.color.g, currentVoiceMode.color.b, drawAlpha, false, true, 2, nil, nil, false)
lerpRange = Lerp(lerpRange, proximityRange * 2, lerpSpeed)
Wait(0)
end
end)
end
local function UpdateVoiceInfos()
local proximity = LocalPlayer.state.proximity
currentVoiceMode = voiceModes[proximity.index]
proximityRange = proximity.distance
end
AddEventHandler("pma-voice:setTalkingMode", function()
UpdateVoiceInfos()
if not (GetGameTimer() >= endTime) then
CreateCricleThread()
end
endTime = GetGameTimer() + drawDuration
end)
CreateThread(function()
while (GetResourceState("pma-voice") ~= "started") do
Wait(0)
end
UpdateVoiceInfos()
end)