cl_utils.lua
Framework = nil
loadEvent = "QBCore:Client:OnPlayerLoaded"
CreateThread(function()
if not Framework then
if GetResourceState("qbx_core") == "started" then
Framework = "qb"
elseif GetResourceState("es_extended") == "started" then
Framework = "esx"
elseif GetResourceState("qb-core") == "started" then
Framework = "qb"
end
end
end)
CreateThread(function()
if Framework == "qb" then
loadEvent = "QBCore:Client:OnPlayerLoaded"
elseif Framework == "esx" then
loadEvent = 'esx:playerLoaded'
elseif Framework == "oldEsx" then
loadEvent = 'esx:playerLoaded'
end
RegisterNetEvent(loadEvent, function()
end)
end)
function ReviveFunc()
Wait(300)
ExecuteCommand('revive')
ExecuteCommand('reloadskin')
Wait(300)
FreezeEntityPosition(PlayerPedId(), false)
setGloveLoc()
end
CreateThread(function()
for k,v in pairs(Config.BoxArenas) do
RequestModel(v.npcModel)
while not HasModelLoaded(v.npcModel) do Wait(10) end
workerPed = CreatePed(0, v.npcModel, v.npcCoords.x, v.npcCoords.y, v.npcCoords.z - 0.95, v.npcCoords.w, false, false)
FreezeEntityPosition(workerPed, true)
SetEntityHeading(workerPed, v.npcCoords.w)
SetEntityInvincible(workerPed, true)
SetBlockingOfNonTemporaryEvents(workerPed, true)
TaskStartScenarioInPlace(workerPed, "WORLD_HUMAN_CLIPBOARD", 0, true)
if v.blip then
local blip = AddBlipForCoord(v.centerCoord)
SetBlipSprite(blip, v.blip.sprite)
SetBlipDisplay(blip, 2)
SetBlipScale(blip, v.blip.scale)
SetBlipColour(blip, v.blip.color)
SetBlipAsShortRange(blip, true)
BeginTextCommandSetBlipName("STRING")
AddTextComponentString(v.blip.name)
EndTextCommandSetBlipName(blip)
end
end
local sleepValue = 1000
while true do
Wait(sleepValue)
local isCloseBoxArea = false
for k,v in pairs(Config.BoxArenas) do
if GetDistanceBetweenCoords(GetEntityCoords(PlayerPedId()), vec3(v.npcCoords.x, v.npcCoords.y, v.npcCoords.z), true) < 30 then
isCloseBoxArea = k
end
end
if isCloseBoxArea then
sleepValue = 1
local npcCoord = Config.BoxArenas[isCloseBoxArea].npcCoords
if GetDistanceBetweenCoords(GetEntityCoords(PlayerPedId()), vec3(npcCoord.x, npcCoord.y, npcCoord.z), true) < 5 then
Draw3DText({
text = "[E] Open Boxing",
coords = npcCoord,
})
if IsControlJustReleased(0, 38) then
TriggerEvent('ak4y-boxing:OpenMenu', isCloseBoxArea)
end
end
else
sleepValue = 1000
end
end
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()
endLast updated