forked from Simnation/Main
86 lines
2.9 KiB
Lua
86 lines
2.9 KiB
Lua
local openID,dataReady = false,false
|
|
local animDict,anim = 'paper_1_rcm_alt1-9','player_one_dual-9'
|
|
|
|
-- Functions
|
|
|
|
-- The state of the nui focus and openID control
|
|
---@param bool boolean
|
|
local function nuiFocus(bool)
|
|
SetNuiFocusKeepInput(bool)
|
|
SetNuiFocus(bool,false)
|
|
openID = bool
|
|
end
|
|
|
|
--- Load animation dictionary
|
|
---@param dict string Animation dictionary
|
|
local function loadAnimDict(dict)
|
|
while not HasAnimDictLoaded(dict) do
|
|
RequestAnimDict(dict)
|
|
Wait(5)
|
|
end
|
|
end
|
|
|
|
-- Send config data to the nui
|
|
local function sendConfigData()
|
|
SendNUIMessage({type = 'configData', configData = Config})
|
|
end
|
|
|
|
-- Events
|
|
RegisterNetEvent('um-idcard:client:sendData', function(playerData)
|
|
if not openID and not dataReady then
|
|
nuiFocus(true)
|
|
SendNUIMessage({type = 'playerData', playerData = playerData})
|
|
end
|
|
end)
|
|
|
|
RegisterNetEvent('um-idcard:client:startAnim', function(cardType)
|
|
if not cardType or cardType == nil then return print('No Card Type') end
|
|
if not Config.Licenses[cardType].prop or Config.Licenses[cardType].prop == nil then return print('Card Type: '..cardType..' No Prop') end
|
|
local prop = Config.Licenses[cardType].prop
|
|
if prop then
|
|
local playerCoords = GetEntityCoords(cache.ped)
|
|
local createProp = CreateObject(GetHashKey(prop), playerCoords.x, playerCoords.y, playerCoords.z + 0.2, true, true, true)
|
|
loadAnimDict(animDict)
|
|
AttachEntityToEntity(createProp, cache.ped, GetPedBoneIndex(cache.ped, 57005), 0.1000, 0.0200, -0.0300, -90.000, 170.000, 78.999, true, true, false, true, 1, true)
|
|
TaskPlayAnim(cache.ped, animDict, anim, 3.0, -1, -1, 50, -1, false, false, false)
|
|
SetModelAsNoLongerNeeded(createProp)
|
|
SetTimeout(3500, function()
|
|
DeleteEntity(createProp)
|
|
ClearPedTasks(cache.ped)
|
|
end)
|
|
end
|
|
end)
|
|
|
|
RegisterNetEvent('um-idcard:client:notifyOx', function(data)
|
|
lib.notify({title = data.title, description = data.desc, icon = data.icon, iconColor = data.iconColor})
|
|
end)
|
|
|
|
-- Client Callback Register
|
|
lib.callback.register('um-idcard:client:callBack:getClosestPlayer', function()
|
|
return GetPlayerServerId(lib.getClosestPlayer(GetEntityCoords(cache.ped), 2.0, false))
|
|
end)
|
|
|
|
lib.callback.register('um-idcard:client:callBack:getMugShot', function()
|
|
return exports['MugShotBase64']:GetMugShotBase64(cache.ped, false)
|
|
end)
|
|
|
|
--- Nui Callback
|
|
RegisterNUICallback('closeIdCard', function(_,cb)
|
|
cb(1)
|
|
nuiFocus(false)
|
|
end)
|
|
|
|
-- Loaded
|
|
RegisterNetEvent('QBCore:Client:OnPlayerLoaded', function() sendConfigData() end)
|
|
|
|
RegisterNetEvent('esx:playerLoaded', function() sendConfigData() end)
|
|
|
|
AddEventHandler('onResourceStart', function(resourceName)
|
|
if GetCurrentResourceName() ~= resourceName then return end
|
|
dataReady = true
|
|
SetTimeout(2000, function()
|
|
sendConfigData()
|
|
print('Config ready')
|
|
dataReady = false
|
|
end)
|
|
end)
|