forked from Simnation/Main
88 lines
No EOL
2.8 KiB
Lua
88 lines
No EOL
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 |