164 lines
3.9 KiB
Lua
164 lines
3.9 KiB
Lua
|
QBShared = QBShared or {}
|
||
|
|
||
|
local StringCharset = {}
|
||
|
local NumberCharset = {}
|
||
|
|
||
|
QBShared.StarterItems = {
|
||
|
['phone'] = { amount = 1, item = 'phone' },
|
||
|
-- ['id_card'] = { amount = 1, item = 'id_card' },
|
||
|
-- ['driver_license'] = { amount = 1, item = 'driver_license' },
|
||
|
}
|
||
|
|
||
|
for i = 48, 57 do NumberCharset[#NumberCharset + 1] = string.char(i) end
|
||
|
for i = 65, 90 do StringCharset[#StringCharset + 1] = string.char(i) end
|
||
|
for i = 97, 122 do StringCharset[#StringCharset + 1] = string.char(i) end
|
||
|
|
||
|
function QBShared.RandomStr(length)
|
||
|
if length <= 0 then return '' end
|
||
|
return QBShared.RandomStr(length - 1) .. StringCharset[math.random(1, #StringCharset)]
|
||
|
end
|
||
|
|
||
|
function QBShared.RandomInt(length)
|
||
|
if length <= 0 then return '' end
|
||
|
return QBShared.RandomInt(length - 1) .. NumberCharset[math.random(1, #NumberCharset)]
|
||
|
end
|
||
|
|
||
|
function QBShared.SplitStr(str, delimiter)
|
||
|
local result = {}
|
||
|
local from = 1
|
||
|
local delim_from, delim_to = string.find(str, delimiter, from)
|
||
|
while delim_from do
|
||
|
result[#result + 1] = string.sub(str, from, delim_from - 1)
|
||
|
from = delim_to + 1
|
||
|
delim_from, delim_to = string.find(str, delimiter, from)
|
||
|
end
|
||
|
result[#result + 1] = string.sub(str, from)
|
||
|
return result
|
||
|
end
|
||
|
|
||
|
function QBShared.Trim(value)
|
||
|
if not value then return nil end
|
||
|
return (string.gsub(value, '^%s*(.-)%s*$', '%1'))
|
||
|
end
|
||
|
|
||
|
function QBShared.FirstToUpper(value)
|
||
|
if not value then return nil end
|
||
|
return (value:gsub("^%l", string.upper))
|
||
|
end
|
||
|
|
||
|
function QBShared.Round(value, numDecimalPlaces)
|
||
|
if not numDecimalPlaces then return math.floor(value + 0.5) end
|
||
|
local power = 10 ^ numDecimalPlaces
|
||
|
return math.floor((value * power) + 0.5) / (power)
|
||
|
end
|
||
|
|
||
|
function QBShared.ChangeVehicleExtra(vehicle, extra, enable)
|
||
|
if DoesExtraExist(vehicle, extra) then
|
||
|
if enable then
|
||
|
SetVehicleExtra(vehicle, extra, false)
|
||
|
if not IsVehicleExtraTurnedOn(vehicle, extra) then
|
||
|
QBShared.ChangeVehicleExtra(vehicle, extra, enable)
|
||
|
end
|
||
|
else
|
||
|
SetVehicleExtra(vehicle, extra, true)
|
||
|
if IsVehicleExtraTurnedOn(vehicle, extra) then
|
||
|
QBShared.ChangeVehicleExtra(vehicle, extra, enable)
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|
||
|
function QBShared.SetDefaultVehicleExtras(vehicle, config)
|
||
|
-- Clear Extras
|
||
|
for i = 1, 20 do
|
||
|
if DoesExtraExist(vehicle, i) then
|
||
|
SetVehicleExtra(vehicle, i, 1)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
for id, enabled in pairs(config) do
|
||
|
QBShared.ChangeVehicleExtra(vehicle, tonumber(id), type(enabled) == 'boolean' and enabled or true)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
QBShared.MaleNoGloves = {
|
||
|
[0] = true,
|
||
|
[1] = true,
|
||
|
[2] = true,
|
||
|
[3] = true,
|
||
|
[4] = true,
|
||
|
[5] = true,
|
||
|
[6] = true,
|
||
|
[7] = true,
|
||
|
[8] = true,
|
||
|
[9] = true,
|
||
|
[10] = true,
|
||
|
[11] = true,
|
||
|
[12] = true,
|
||
|
[13] = true,
|
||
|
[14] = true,
|
||
|
[15] = true,
|
||
|
[18] = true,
|
||
|
[26] = true,
|
||
|
[52] = true,
|
||
|
[53] = true,
|
||
|
[54] = true,
|
||
|
[55] = true,
|
||
|
[56] = true,
|
||
|
[57] = true,
|
||
|
[58] = true,
|
||
|
[59] = true,
|
||
|
[60] = true,
|
||
|
[61] = true,
|
||
|
[62] = true,
|
||
|
[112] = true,
|
||
|
[113] = true,
|
||
|
[114] = true,
|
||
|
[118] = true,
|
||
|
[125] = true,
|
||
|
[132] = true
|
||
|
}
|
||
|
|
||
|
QBShared.FemaleNoGloves = {
|
||
|
[0] = true,
|
||
|
[1] = true,
|
||
|
[2] = true,
|
||
|
[3] = true,
|
||
|
[4] = true,
|
||
|
[5] = true,
|
||
|
[6] = true,
|
||
|
[7] = true,
|
||
|
[8] = true,
|
||
|
[9] = true,
|
||
|
[10] = true,
|
||
|
[11] = true,
|
||
|
[12] = true,
|
||
|
[13] = true,
|
||
|
[14] = true,
|
||
|
[15] = true,
|
||
|
[19] = true,
|
||
|
[59] = true,
|
||
|
[60] = true,
|
||
|
[61] = true,
|
||
|
[62] = true,
|
||
|
[63] = true,
|
||
|
[64] = true,
|
||
|
[65] = true,
|
||
|
[66] = true,
|
||
|
[67] = true,
|
||
|
[68] = true,
|
||
|
[69] = true,
|
||
|
[70] = true,
|
||
|
[71] = true,
|
||
|
[129] = true,
|
||
|
[130] = true,
|
||
|
[131] = true,
|
||
|
[135] = true,
|
||
|
[142] = true,
|
||
|
[149] = true,
|
||
|
[153] = true,
|
||
|
[157] = true,
|
||
|
[161] = true,
|
||
|
[165] = true
|
||
|
}
|