1
0
Fork 0
forked from Simnation/Main
Main/resources/[tools]/um-idcard/main/client.lua
2025-08-04 05:39:52 +02:00

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)