65 lines
		
	
	
		
			No EOL
		
	
	
		
			2 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			65 lines
		
	
	
		
			No EOL
		
	
	
		
			2 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
ButtonNotificationInternal = function(msg, beep) -- Skip the multigsub function for faster execution
 | 
						|
    AddTextEntry('ButtonNotificationInternal', msg)
 | 
						|
    BeginTextCommandDisplayHelp('ButtonNotificationInternal')
 | 
						|
    EndTextCommandDisplayHelp(0, true, beep, -1)
 | 
						|
end
 | 
						|
 | 
						|
CreateBlip = function(name, coords, sprite, colour, scale)
 | 
						|
    local blip = AddBlipForCoord(coords)
 | 
						|
 | 
						|
    SetBlipSprite (blip, sprite)
 | 
						|
    SetBlipScale  (blip, scale or 1.0)
 | 
						|
    SetBlipColour (blip, colour)
 | 
						|
    SetBlipAsShortRange(blip, true)
 | 
						|
 | 
						|
    BeginTextCommandSetBlipName('STRING')
 | 
						|
    AddTextComponentSubstringPlayerName(name)
 | 
						|
    EndTextCommandSetBlipName(blip)
 | 
						|
    return blip
 | 
						|
end
 | 
						|
 | 
						|
StartCacheUpdateLoop = function()
 | 
						|
    Citizen.CreateThread(function()
 | 
						|
        while true do
 | 
						|
            currentSlice = GetSelfSlice()
 | 
						|
            player = PlayerPedId()
 | 
						|
            Citizen.Wait(Config.UpdateCooldown)
 | 
						|
        end
 | 
						|
    end)
 | 
						|
end
 | 
						|
 | 
						|
Emit = function(type, manual, ...)
 | 
						|
    TriggerEvent("Utility:On:".. (manual and "!" or "") ..type, ...)
 | 
						|
end
 | 
						|
 | 
						|
EmitInteraction = function()
 | 
						|
    for k,v in pairs(Utility.Cache.Marker) do
 | 
						|
        local distance = #(GetEntityCoords(PlayerPedId()) - v.coords)
 | 
						|
 | 
						|
        if v.near and distance < v.interaction_distance then
 | 
						|
            Emit("marker", false, k)
 | 
						|
            v.near = false
 | 
						|
        end
 | 
						|
    end
 | 
						|
 | 
						|
    for k,v in pairs(Utility.Cache.Object) do
 | 
						|
        local distance = #(GetEntityCoords(PlayerPedId()) - v.coords)	
 | 
						|
        
 | 
						|
        if v.near and distance < v.interaction_distance then
 | 
						|
            Emit("object", false, k)
 | 
						|
            v.near = false
 | 
						|
        end
 | 
						|
    end
 | 
						|
end
 | 
						|
 | 
						|
-- It is not directly in the fxmanifest because many do not know that the utility lib can run without the utility framework
 | 
						|
-- and keep reporting the error "Failed to load script @utility_framework/client/api.lua". 
 | 
						|
LoadUtilityFrameworkIfFound = function()
 | 
						|
    if GetResourceState("utility_framework") ~= "missing" then
 | 
						|
        local init = LoadResourceFile("utility_framework", "client/api.lua")
 | 
						|
    
 | 
						|
        if init then
 | 
						|
            load(init, "@utility_framework/client/api.lua")()
 | 
						|
        end
 | 
						|
    end
 | 
						|
end |