@@ -112,8 +112,21 @@ function InitUI ( )
112
112
if ( not veh ) then
113
113
return
114
114
end
115
- local selectedItem = guiComboBoxGetSelected ( sirens ) + 1
116
115
local sirensTable = getVehicleSirens (veh )
116
+ local selectedItem = guiComboBoxGetSelected ( sirens ) + 1
117
+ -- If sirensTable[selectedItem] doesn't exist lets lets some defaults
118
+ if ( not sirensTable [selectedItem ] ) then
119
+ sirensTable [selectedItem ] = {}
120
+ sirensTable [selectedItem ].x = 0
121
+ sirensTable [selectedItem ].y = 0
122
+ sirensTable [selectedItem ].z = 0
123
+ sirensTable [selectedItem ].Red = 255
124
+ sirensTable [selectedItem ].Green = 0
125
+ sirensTable [selectedItem ].Blue = 0
126
+ sirensTable [selectedItem ].Alpha = 255
127
+ sirensTable [selectedItem ].Min_Alpha = 100
128
+ setVehicleSirens (veh , selectedItem , 0 , 0 , 0 , 255 , 0 , 0 , 255 , 100 )
129
+ end
117
130
guiScrollBarSetScrollPosition ( sirensX , 50 + ( sirensTable [selectedItem ].x * 10 ) )
118
131
guiScrollBarSetScrollPosition ( sirensY , 50 + ( sirensTable [selectedItem ].y * 10 ) )
119
132
guiScrollBarSetScrollPosition ( sirensZ , 50 + ( sirensTable [selectedItem ].z * 10 ) )
@@ -142,40 +155,30 @@ function scrollFunc(scrolled)
142
155
local veh = getPedOccupiedVehicle ( localPlayer )
143
156
local selectedItem = guiComboBoxGetSelected ( sirens ) + 1
144
157
if ( selectedItem ~= nil and selectedItem ~= false and selectedItem > 0 and veh ~= false ) then
158
+ local sirensTable = getVehicleSirens (veh )
159
+ if ( not sirensTable [selectedItem ] ) then
160
+ return
161
+ end
145
162
if ( scrolled == sirensX ) then
146
- local sirensTable = getVehicleSirens (veh )
147
163
sirensTable [selectedItem ].x = ( guiScrollBarGetScrollPosition ( scrolled ) / 10 ) - 5
148
164
guiSetText ( posLabelX , " Position X: " .. string.format ( " %.3f" , sirensTable [selectedItem ].x ) )
149
165
applySirenTable ( veh , sirensTable , false )
150
- return
151
- end
152
- if ( scrolled == sirensY ) then
153
- local sirensTable = getVehicleSirens (veh )
166
+ elseif ( scrolled == sirensY ) then
154
167
sirensTable [selectedItem ].y = ( guiScrollBarGetScrollPosition ( scrolled ) / 10 ) - 5
155
168
guiSetText ( posLabelY , " Position Y: " .. string.format ( " %.3f" , sirensTable [selectedItem ].y ) )
156
169
applySirenTable ( veh , sirensTable , false )
157
- return
158
- end
159
- if ( scrolled == sirensZ ) then
160
- local sirensTable = getVehicleSirens (veh )
170
+ elseif ( scrolled == sirensZ ) then
161
171
sirensTable [selectedItem ].z = ( guiScrollBarGetScrollPosition ( scrolled ) / 10 ) - 5
162
172
guiSetText ( posLabelZ , " Position Z: " .. string.format ( " %.3f" , sirensTable [selectedItem ].z ) )
163
173
applySirenTable ( veh , sirensTable , false )
164
- return
165
- end
166
- if ( scrolled == sirensAlpha ) then
167
- local sirensTable = getVehicleSirens (veh )
174
+ elseif ( scrolled == sirensAlpha ) then
168
175
sirensTable [selectedItem ].Alpha = math.ceil ( (guiScrollBarGetScrollPosition ( scrolled ) * 2.55 ) - 0.05 )
169
176
guiSetText ( alphaLabel , " Alpha: " .. sirensTable [selectedItem ].Alpha )
170
177
applySirenTable ( veh , sirensTable , false )
171
- return
172
- end
173
- if ( scrolled == sirensMinAlpha ) then
174
- local sirensTable = getVehicleSirens (veh )
178
+ elseif ( scrolled == sirensMinAlpha ) then
175
179
sirensTable [selectedItem ].Min_Alpha = math.ceil ( ( guiScrollBarGetScrollPosition ( scrolled ) * 2.55 ) - 0.05 )
176
180
guiSetText ( minAlphaLabel , " Minimum Alpha: " .. sirensTable [selectedItem ].Min_Alpha )
177
181
applySirenTable ( veh , sirensTable , false )
178
- return
179
182
end
180
183
end
181
184
end
@@ -189,6 +192,14 @@ function btnFunc ( button, state )
189
192
end
190
193
if ( source == sirensBtnRGB ) then
191
194
if ( state == " up" ) then
195
+ if ( not getResourceFromName (" cpicker" ) ) then
196
+ outputChatBox (" cpicker isn't installed, get it from: https://community.multitheftauto.com/index.php?p=resources&s=details&id=3247" , 255 , 0 , 0 )
197
+ return
198
+ end
199
+ if ( getResourceState ( getResourceFromName (" cpicker" ) ) ~= " running" ) then
200
+ outputChatBox (" cpicker isn't running. If you're an admin, do: /start cpicker" , 255 , 0 , 0 )
201
+ return
202
+ end
192
203
exports .cpicker :openPicker (source , " #FFAA00" , " Pick a Beacon Colour" )
193
204
end
194
205
end
0 commit comments