-
Notifications
You must be signed in to change notification settings - Fork 8
/
client.lua
72 lines (65 loc) · 2.7 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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
local mp_pointing = false
function startPointing()
local ped = PlayerPedId()
RequestAnimDict("anim@mp_point")
while not HasAnimDictLoaded("anim@mp_point") do
Wait(0)
end
SetPedCurrentWeaponVisible(ped, 0, 1, 1, 1)
SetPedConfigFlag(ped, 36, 1)
Citizen.InvokeNative(0x2D537BA194896636, ped, "task_mp_pointing", 0.5, 0, "anim@mp_point", 24)
RemoveAnimDict("anim@mp_point")
end
function stopPointing()
local ped = PlayerPedId()
Citizen.InvokeNative(0xD01015C7316AE176, ped, "Stop")
if not IsPedInjured(ped) then
ClearPedSecondaryTask(ped)
end
if not IsPedInAnyVehicle(ped, 1) then
SetPedCurrentWeaponVisible(ped, 1, 1, 1, 1)
end
SetPedConfigFlag(ped, 36, 0)
ClearPedSecondaryTask(ped)
end
RegisterCommand('point', function()
if not IsPedInAnyVehicle(PlayerPedId(), false) then
if mp_pointing then
stopPointing()
mp_pointing = false
else
startPointing()
mp_pointing = true
end
while mp_pointing do
local ped = PlayerPedId()
local camPitch = GetGameplayCamRelativePitch()
if camPitch < -70.0 then
camPitch = -70.0
elseif camPitch > 42.0 then
camPitch = 42.0
end
camPitch = (camPitch + 70.0) / 112.0
local camHeading = GetGameplayCamRelativeHeading()
local cosCamHeading = Cos(camHeading)
local sinCamHeading = Sin(camHeading)
if camHeading < -180.0 then
camHeading = -180.0
elseif camHeading > 180.0 then
camHeading = 180.0
end
camHeading = (camHeading + 180.0) / 360.0
local blocked = 0
local nn = 0
local coords = GetOffsetFromEntityInWorldCoords(ped, (cosCamHeading * -0.2) - (sinCamHeading * (0.4 * camHeading + 0.3)), (sinCamHeading * -0.2) + (cosCamHeading * (0.4 * camHeading + 0.3)), 0.6)
local ray = Cast_3dRayPointToPoint(coords.x, coords.y, coords.z - 0.2, coords.x, coords.y, coords.z + 0.2, 0.4, 95, ped, 7);
nn,blocked,coords,coords = GetRaycastResult(ray)
Citizen.InvokeNative(0xD5BB4025AE449A4E, ped, "Pitch", camPitch)
Citizen.InvokeNative(0xD5BB4025AE449A4E, ped, "Heading", camHeading * -1.0 + 1.0)
Citizen.InvokeNative(0xB0A6CFD2C69C1088, ped, "isBlocked", blocked)
Citizen.InvokeNative(0xB0A6CFD2C69C1088, ped, "isFirstPerson", Citizen.InvokeNative(0xEE778F8C7E1142E2, Citizen.InvokeNative(0x19CAFA3C87F7C2FF)) == 4)
Wait(1)
end
end
end)
RegisterKeyMapping('point', '~g~[Animations]~s~ Point-Finger', 'keyboard', 'B')