-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathclient.lua
More file actions
125 lines (97 loc) · 3.34 KB
/
Copy pathclient.lua
File metadata and controls
125 lines (97 loc) · 3.34 KB
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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
local lastcoords = nil
local lasttype = nil
local elevatorNum = nil
local found = false
local visible = false
for i, v in pairs(Config.Elevators) do
RMenu.Add(v.type, v.type, RageUI.CreateMenu("", "", 0, 100, v.image, v.image))
RMenu:Get(v.type, v.type):SetSubtitle(v.label)
end
function showAsc(flag, type)
RageUI.Visible(RMenu:Get(type, type), flag)
visible = flag
OpenUi()
end
local moreTime = false
local time = 0
function OpenUi()
Citizen.CreateThread(function()
while visible do
Wait(0)
if elevatorNum ~= nil then
if RageUI.Visible(RMenu:Get(lasttype, lasttype)) then
RageUI.DrawContent({ header = true, glare = true, instructionalButton = true }, function()
for k2, v2 in pairs(Config.Elevators[elevatorNum].floors) do
RageUI.Button(v2.label, "",{ RightLabel = "→→→" }, true, function(Hovered, Active, Selected)
if (Selected) then
DoScreenFadeOut(500)
Citizen.Wait(500)
SetEntityCoords(PlayerPedId(), v2.coords.x, v2.coords.y, v2.coords.z)
SetEntityHeading(PlayerPedId(), v2.rotation)
DoScreenFadeIn(500)
Citizen.Wait(500)
end
end)
end
end, function()
end)
else
Citizen.Wait(1000)
visible = false
end
end
end
end)
end
Citizen.CreateThread(function()
local distance = 50
while true do
local ped = PlayerPedId()
moreTime = false
time = 0
if distance > 50 then
moreTime = true
time = 3000
if distance > 200 then
if distance > 500 then
time = 15000
else
time = 7500
end
end
end
Wait(1000)
local dd = 1000000
for k, v in pairs(Config.Elevators) do
if found == false then
for k2, v2 in pairs(v.floors) do
local playerCoords = GetEntityCoords(ped)
local dis = #(playerCoords-v2.coords)
if dis < dd then dd = dis end
if dis < 1.5 then
found = true
lasttype = v.type
lastcoords = v2.coords
elevatorNum = k
showAsc(true, v.type)
break
end
end
else
local playerCoords = GetEntityCoords(ped)
dd = #(playerCoords-lastcoords)
if dd > 1.5 then
found = false
elevatorNum = nil
showAsc(false, lasttype)
else
break
end
end
end
if moreTime then
Wait(time)
end
distance = dd
end
end)