175 lines
		
	
	
	
		
			4.1 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			175 lines
		
	
	
	
		
			4.1 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.IsFunction(value)
 | 
						|
    if type(value) == 'table' then
 | 
						|
        return value.__cfx_functionReference ~= nil and type(value.__cfx_functionReference) == "string"
 | 
						|
    end
 | 
						|
 | 
						|
    return type(value) == 'function'
 | 
						|
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
 | 
						|
        if type(enabled) ~= 'boolean' then
 | 
						|
            enabled = true
 | 
						|
        end
 | 
						|
 | 
						|
        QBShared.ChangeVehicleExtra(vehicle, tonumber(id), enabled)
 | 
						|
    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
 | 
						|
}
 |