Would anyone know how I can show the IDs as such by default but toggle them off with a command? (eg. /toggleids)
I’m aware there are a handful of other scripts out there but most of them are now 3-5 years old and no longer work properly. Trust me I’ve been trying for two days to get one working. So I figure maybe I will just ask for some lua help here because I don’t know too much about lua. Thanks in advance!
local disPlayerNames = 5
local playerDistances = {}
local function DrawText3D(position, text, r,g,b)
local onScreen,_x,_y=World3dToScreen2d(position.x,position.y,position.z+1)
local dist = #(GetGameplayCamCoords()-position)
local scale = (1/dist)*2
local fov = (1/GetGameplayCamFov())*100
local scale = scale*fov
if onScreen then
if not useCustomScale then
SetTextScale(0.0*scale, 0.45*scale)
else
SetTextScale(0.0*scale, customScale)
end
SetTextFont(0)
SetTextProportional(1)
SetTextColour(r, g, b, 255)
SetTextDropshadow(0, 0, 0, 0, 255)
SetTextEdge(2, 0, 0, 0, 150)
SetTextDropShadow()
SetTextOutline()
SetTextEntry("STRING")
SetTextCentre(1)
AddTextComponentString(text)
DrawText(_x,_y)
end
end
Citizen.CreateThread(function()
Wait(500)
while true do
for _, id in ipairs(GetActivePlayers()) do
local targetPed = GetPlayerPed(id)
if targetPed ~= PlayerPedId() then
if playerDistances[id] then
if playerDistances[id] < disPlayerNames then
local targetPedCords = GetEntityCoords(targetPed)
if NetworkIsPlayerTalking(id) then
DrawText3D(targetPedCords, GetPlayerServerId(id), 102,155,105)
else
DrawText3D(targetPedCords, GetPlayerServerId(id), 192,192,192)
end
end
end
end
end
Citizen.Wait(0)
end
end)
Citizen.CreateThread(function()
while true do
local playerPed = PlayerPedId()
local playerCoords = GetEntityCoords(playerPed)
for _, id in ipairs(GetActivePlayers()) do
local targetPed = GetPlayerPed(id)
if targetPed ~= playerPed then
local distance = #(playerCoords-GetEntityCoords(targetPed))
playerDistances[id] = distance
end
end
Wait(1000)
end
end)