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 | 
