cl_utils.lua

Framework = nil
Frameworkname = nil
local jobEvent = "QBCore:Client:OnJobUpdate" -- 
local loadEvent = "QBCore:Client:OnPlayerLoaded"

CreateThread(function()
    if not Frameworkname then
        if GetResourceState("qbx_core") == "started" then
            Frameworkname = "qb"
        elseif GetResourceState("es_extended") == "started" then
            Frameworkname = "esx"
        elseif GetResourceState("qb-core") == "started" then 
            Frameworkname = "qb"
        end
    end
end)

CreateThread(function()
    if Frameworkname == "qb" then
        Framework = exports['qb-core']:GetCoreObject()
    elseif Frameworkname == "esx" then
        Framework = exports['es_extended']:getSharedObject()
    elseif Frameworkname == "oldEsx" then
        Framework = nil
        CreateThread(function()
            while Framework == nil do
                TriggerEvent('esx:getSharedObject', function(obj) Framework = obj end)
                Wait(10)
            end
        end)
    end
end)

function GetLastPlayerCoords()
    if Frameworkname == "esx" then
        local PlayerData = Framework.GetPlayerData()
        local coord = PlayerData.coords
        return vector4(coord.x, coord.y,coord.z, 0.0) 
    elseif Frameworkname == "qb" then
        PlayerData = Framework.Functions.GetPlayerData()
        return vector4(PlayerData.position.x, PlayerData.position.y,PlayerData.position.z, 0.0)
    else
        print("^1[ERROR]^7 set custom loc on editable/cl_utils.lua")
    end
end

function playerLoaded()
    if Frameworkname == "esx" then

    elseif Frameworkname == "qb" then
        TriggerServerEvent('QBCore:Server:OnPlayerLoaded')
        TriggerEvent('QBCore:Client:OnPlayerLoaded')
    else
        print("^1[ERROR]^7 set custom load event on editable/cl_utils.lua")
    end
end

CreateThread(function()
    if GetResourceState("qbx_core") == "started" then
        jobEvent = "QBCore:Client:OnJobUpdate"
        loadEvent = "QBCore:Client:OnPlayerLoaded"
    elseif GetResourceState("es_extended") == "started" then
        jobEvent = "esx:setJob"
        loadEvent = 'esx:playerLoaded'
    elseif GetResourceState("qb-core") == "started" then 
        jobEvent = "QBCore:Client:OnJobUpdate"
        loadEvent = "QBCore:Client:OnPlayerLoaded"
    end
end)

RegisterNetEvent(loadEvent, function()
    SpawnPlayerLoaded()
end)

function Draw3DText(data)
    local text = data.text
    local x = data.coords.x
    local y = data.coords.y
    local z = data.coords.z
    SetTextScale(0.35, 0.35)
    SetTextFont(4)
    SetTextProportional(1)
    SetTextColour(255, 255, 255, 215)
    SetTextEntry("STRING")
    SetTextCentre(true)
    AddTextComponentString(text)
    SetDrawOrigin(x,y,z, 0)
    DrawText(0.0, 0.0)
    local factor = (string.len(text)) / 370
    DrawRect(0.0, 0.0+0.0125, 0.017+ factor, 0.03, 0, 0, 0, 75)
    ClearDrawOrigin()
end

Last updated