forked from Simnation/Main
ed
This commit is contained in:
parent
8f5115d602
commit
860d27e06f
17 changed files with 960 additions and 0 deletions
84
resources/[tools]/nearest-postal-1.5.3/cl_render.lua
Normal file
84
resources/[tools]/nearest-postal-1.5.3/cl_render.lua
Normal file
|
@ -0,0 +1,84 @@
|
|||
-- optimizations
|
||||
local vec = vec
|
||||
local Wait = Citizen.Wait
|
||||
local format = string.format
|
||||
local RemoveBlip = RemoveBlip
|
||||
local PlayerPedId = PlayerPedId
|
||||
local IsHudHidden = IsHudHidden
|
||||
local SetTextFont = SetTextFont
|
||||
local SetTextScale = SetTextScale
|
||||
local SetTextOutline = SetTextOutline
|
||||
local GetEntityCoords = GetEntityCoords
|
||||
local EndTextCommandDisplayText = EndTextCommandDisplayText
|
||||
local BeginTextCommandDisplayText = BeginTextCommandDisplayText
|
||||
local AddTextComponentSubstringPlayerName = AddTextComponentSubstringPlayerName
|
||||
-- end optimizations
|
||||
|
||||
local nearestPostalText = ""
|
||||
|
||||
-- recalculate current postal
|
||||
Citizen.CreateThread(function()
|
||||
-- wait for postals to load
|
||||
while postals == nil do Wait(1) end
|
||||
|
||||
local delay = math.max(config.updateDelay and tonumber(config.updateDelay) or 300, 50)
|
||||
if not delay or tonumber(delay) <= 0 then
|
||||
error("Invalid render delay provided, it must be a number > 0")
|
||||
end
|
||||
|
||||
local postals = postals
|
||||
local deleteDist = config.blip.distToDelete
|
||||
local formatTemplate = config.text.format
|
||||
local _total = #postals
|
||||
|
||||
while true do
|
||||
local coords = GetEntityCoords(PlayerPedId())
|
||||
local _nearestIndex, _nearestD
|
||||
coords = vec(coords[1], coords[2])
|
||||
|
||||
for i = 1, _total do
|
||||
local D = #(coords - postals[i][1])
|
||||
if not _nearestD or D < _nearestD then
|
||||
_nearestIndex = i
|
||||
_nearestD = D
|
||||
end
|
||||
end
|
||||
|
||||
if pBlip and #(pBlip.p[1] - coords) < deleteDist then
|
||||
TriggerEvent('chat:addMessage', {
|
||||
color = { 255, 0, 0 },
|
||||
args = {
|
||||
'Postals',
|
||||
"You've reached your postal destination!"
|
||||
}
|
||||
})
|
||||
RemoveBlip(pBlip.hndl)
|
||||
pBlip = nil
|
||||
end
|
||||
|
||||
local _code = postals[_nearestIndex].code
|
||||
nearest = { code = _code, dist = _nearestD }
|
||||
nearestPostalText = format(formatTemplate, _code, _nearestD)
|
||||
Wait(delay)
|
||||
end
|
||||
end)
|
||||
|
||||
-- text display thread
|
||||
Citizen.CreateThread(function()
|
||||
local posX = config.text.posX
|
||||
local posY = config.text.posY
|
||||
local _string = "STRING"
|
||||
local _scale = 0.42
|
||||
local _font = 4
|
||||
while true do
|
||||
if nearest and not IsHudHidden() then
|
||||
SetTextScale(_scale, _scale)
|
||||
SetTextFont(_font)
|
||||
SetTextOutline()
|
||||
BeginTextCommandDisplayText(_string)
|
||||
AddTextComponentSubstringPlayerName(nearestPostalText)
|
||||
EndTextCommandDisplayText(posX, posY)
|
||||
end
|
||||
Wait(0)
|
||||
end
|
||||
end)
|
Loading…
Add table
Add a link
Reference in a new issue