forked from Simnation/Main
88 lines
2.8 KiB
Lua
88 lines
2.8 KiB
Lua
![]() |
Utils.Markers = {}
|
||
|
|
||
|
-----------------------------------------------------------------------------------------------------------------------------------------
|
||
|
-- Markers
|
||
|
-----------------------------------------------------------------------------------------------------------------------------------------
|
||
|
function Utils.Markers.drawMarker(marker_type,x,y,z,scale,r,g,b,a)
|
||
|
scale = scale or 0.5
|
||
|
r = r or 255
|
||
|
g = g or 0
|
||
|
b = b or 0
|
||
|
a = a or 50
|
||
|
---@diagnostic disable-next-line: param-type-mismatch
|
||
|
DrawMarker(marker_type,x,y,z-0.6,0,0,0,0.0,0,0,scale,scale,scale,r,g,b,a,false, false, 0, true, false, false, false)
|
||
|
end
|
||
|
|
||
|
function Utils.Markers.drawText3D(x,y,z, text)
|
||
|
if Config.marker_style == 1 then
|
||
|
local onScreen,_x,_y=GetScreenCoordFromWorldCoord(x,y,z)
|
||
|
local px,py,pz=table.unpack(GetFinalRenderedCamCoord())
|
||
|
local dist = #(vector3(px,py,pz) - vector3(x,y,z))
|
||
|
|
||
|
local fov = (1/GetGameplayCamFov())*100
|
||
|
local scale = fov*(1/dist)*2
|
||
|
|
||
|
if onScreen then
|
||
|
SetTextScale(0.0*scale, 0.35*scale)
|
||
|
SetTextFont(0)
|
||
|
SetTextProportional(true)
|
||
|
SetTextDropshadow(0, 0, 0, 0, 255)
|
||
|
SetTextEdge(2, 0, 0, 0, 150)
|
||
|
SetTextDropShadow()
|
||
|
SetTextOutline()
|
||
|
SetTextCentre(true)
|
||
|
BeginTextCommandDisplayText("STRING")
|
||
|
AddTextComponentSubstringPlayerName(text)
|
||
|
EndTextCommandDisplayText(_x,_y)
|
||
|
end
|
||
|
else
|
||
|
SetTextScale(0.35, 0.35)
|
||
|
SetTextFont(4)
|
||
|
SetTextProportional(true)
|
||
|
SetTextColour(255, 255, 255, 215)
|
||
|
BeginTextCommandDisplayText("STRING")
|
||
|
SetTextCentre(true)
|
||
|
AddTextComponentSubstringPlayerName(text)
|
||
|
SetDrawOrigin(x,y,z, 0)
|
||
|
EndTextCommandDisplayText(0.0, 0.0)
|
||
|
local factor = string.len(text) / 370
|
||
|
DrawRect(0.0, 0.0125, 0.017 + factor, 0.03, 0, 0, 0, 75)
|
||
|
ClearDrawOrigin()
|
||
|
end
|
||
|
end
|
||
|
|
||
|
function Utils.Markers.drawText2D(text,font,x,y,scale,r,g,b,a)
|
||
|
SetTextFont(font)
|
||
|
SetTextScale(scale,scale)
|
||
|
SetTextColour(r,g,b,a)
|
||
|
SetTextOutline()
|
||
|
SetTextCentre(true)
|
||
|
BeginTextCommandDisplayText("STRING")
|
||
|
AddTextComponentSubstringPlayerName(text)
|
||
|
EndTextCommandDisplayText(x,y)
|
||
|
end
|
||
|
|
||
|
function Utils.Markers.createMarkerInCoords(location_id,x,y,z,marker_text,onControlIsPressedCallback,callbackData,distance)
|
||
|
distance = distance or #(GetEntityCoords(PlayerPedId()) - vector3(x,y,z))
|
||
|
Utils.Markers.drawMarker(21,x,y,z)
|
||
|
if distance <= 1.0 then
|
||
|
Utils.Markers.drawText3D(x,y,z-0.6, marker_text)
|
||
|
if IsControlJustPressed(0,38) then
|
||
|
onControlIsPressedCallback(location_id,callbackData)
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|
||
|
function Utils.Markers.showHelpNotification(msg, thisFrame, beep, duration)
|
||
|
AddTextEntry('lcutilsHelpNotification', msg)
|
||
|
|
||
|
if thisFrame then
|
||
|
DisplayHelpTextThisFrame('lcutilsHelpNotification', false)
|
||
|
else
|
||
|
if beep == nil then
|
||
|
beep = true
|
||
|
end
|
||
|
BeginTextCommandDisplayHelp('lcutilsHelpNotification')
|
||
|
EndTextCommandDisplayHelp(0, false, beep, duration or -1)
|
||
|
end
|
||
|
end
|