Scripts/resources/[ps]/ps-adminmenu/client/entity_view.lua
2024-12-29 21:11:16 +01:00

231 lines
8.9 KiB
Lua

local dickheaddebug = false
local Keys = {
["ESC"] = 322, ["F1"] = 288, ["F2"] = 289, ["F3"] = 170, ["F5"] = 166, ["F6"] = 167, ["F7"] = 168, ["F8"] = 169, ["F9"] = 56, ["F10"] = 57,
["~"] = 243, ["1"] = 157, ["2"] = 158, ["3"] = 160, ["4"] = 164, ["5"] = 165, ["6"] = 159, ["7"] = 161, ["8"] = 162, ["9"] = 163, ["-"] = 84, ["="] = 83, ["BACKSPACE"] = 177,
["TAB"] = 37, ["Q"] = 44, ["W"] = 32, ["E"] = 38, ["R"] = 45, ["T"] = 245, ["Y"] = 246, ["U"] = 303, ["P"] = 199, ["["] = 39, ["]"] = 40, ["ENTER"] = 18,
["CAPS"] = 137, ["A"] = 34, ["S"] = 8, ["D"] = 9, ["F"] = 23, ["G"] = 47, ["H"] = 74, ["K"] = 311, ["L"] = 182,
["LEFTSHIFT"] = 21, ["Z"] = 20, ["X"] = 73, ["C"] = 26, ["V"] = 0, ["B"] = 29, ["N"] = 249, ["M"] = 244, [","] = 82, ["."] = 81,
["LEFTCTRL"] = 36, ["LEFTALT"] = 19, ["SPACE"] = 22, ["RIGHTCTRL"] = 70,
["HOME"] = 213, ["PAGEUP"] = 10, ["PAGEDOWN"] = 11, ["DELETE"] = 178,
["LEFT"] = 174, ["RIGHT"] = 175, ["TOP"] = 27, ["DOWN"] = 173,
["NENTER"] = 201, ["N4"] = 108, ["N5"] = 60, ["N6"] = 107, ["N+"] = 96, ["N-"] = 97, ["N7"] = 117, ["N8"] = 61, ["N9"] = 118
}
RegisterNetEvent("hud:enabledebug")
AddEventHandler("hud:enabledebug",function()
if not CheckPerms(Config.Actions["noclip"].perms) then return end
dickheaddebug = not dickheaddebug
if dickheaddebug then
print("Debug: Enabled")
else
print("Debug: Disabled")
end
end)
local inFreeze = false
local lowGrav = false
function drawTxt(x,y ,width,height,scale, text, r,g,b,a)
SetTextFont(0)
SetTextProportional(0)
SetTextScale(0.25, 0.25)
SetTextColour(r, g, b, a)
SetTextDropShadow(0, 0, 0, 0,255)
SetTextEdge(1, 0, 0, 0, 255)
SetTextDropShadow()
SetTextOutline()
SetTextEntry("STRING")
AddTextComponentString(text)
DrawText(x - width/2, y - height/2 + 0.005)
end
function DrawText3Ds(x,y,z, text)
local onScreen,_x,_y=World3dToScreen2d(x,y,z)
local px,py,pz=table.unpack(GetGameplayCamCoords())
SetTextScale(0.35, 0.35)
SetTextFont(4)
SetTextProportional(1)
SetTextColour(255, 255, 255, 215)
SetTextEntry("STRING")
SetTextCentre(1)
AddTextComponentString(text)
DrawText(_x,_y)
local factor = (string.len(text)) / 370
DrawRect(_x,_y+0.0125, 0.015+ factor, 0.03, 41, 11, 41, 68)
end
function GetVehicle()
local playerped = GetPlayerPed(-1)
local playerCoords = GetEntityCoords(playerped)
local handle, ped = FindFirstVehicle()
local success
local rped = nil
local distanceFrom
repeat
local pos = GetEntityCoords(ped)
local distance = GetDistanceBetweenCoords(playerCoords, pos, true)
if canPedBeUsed(ped) and distance < 30.0 and (distanceFrom == nil or distance < distanceFrom) then
distanceFrom = distance
rped = ped
-- FreezeEntityPosition(ped, inFreeze)
if IsEntityTouchingEntity(GetPlayerPed(-1), ped) then
DrawText3Ds(pos["x"],pos["y"],pos["z"]+1, "Veh: " .. ped .. " Model: " .. GetEntityModel(ped) .. " - RØRER" )
else
DrawText3Ds(pos["x"],pos["y"],pos["z"]+1, "Veh: " .. ped .. " Model: " .. GetEntityModel(ped) .. "" )
end
if lowGrav then
SetEntityCoords(ped,pos["x"],pos["y"],pos["z"]+5.0)
end
end
success, ped = FindNextVehicle(handle)
until not success
EndFindVehicle(handle)
return rped
end
function GetObject()
local playerped = GetPlayerPed(-1)
local playerCoords = GetEntityCoords(playerped)
local handle, ped = FindFirstObject()
local success
local rped = nil
local distanceFrom
repeat
local pos = GetEntityCoords(ped)
local distance = GetDistanceBetweenCoords(playerCoords, pos, true)
if distance < 5.0 then
distanceFrom = distance
rped = ped
--FreezeEntityPosition(ped, inFreeze)
if IsEntityTouchingEntity(GetPlayerPed(-1), ped) then
DrawText3Ds(pos["x"],pos["y"],pos["z"]+1, "Obj: " .. ped .. " Model: " .. GetEntityModel(ped) .. " - RØRER" )
-- DrawText3Ds(pos["x"],pos["y"],pos["z"]+0.8, "Coordinates: "..pos["x"]..", "..pos["y"]..", "..pos["z"].." IN CONTACT" )
else
DrawText3Ds(pos["x"],pos["y"],pos["z"]+1, "Obj: " .. ped .. " Model: " .. GetEntityModel(ped) .. "" )
-- DrawText3Ds(pos["x"],pos["y"],pos["z"]+0.8, "Coordinates: "..pos["x"]..", "..pos["y"]..", "..pos["z"].."")
end
if lowGrav then
--ActivatePhysics(ped)
SetEntityCoords(ped,pos["x"],pos["y"],pos["z"]+0.1)
FreezeEntityPosition(ped, false)
end
end
success, ped = FindNextObject(handle)
until not success
EndFindObject(handle)
return rped
end
function getNPC()
local playerped = GetPlayerPed(-1)
local playerCoords = GetEntityCoords(playerped)
local handle, ped = FindFirstPed()
local success
local rped = nil
local distanceFrom
repeat
local pos = GetEntityCoords(ped)
local distance = GetDistanceBetweenCoords(playerCoords, pos, true)
if canPedBeUsed(ped) and distance < 30.0 and (distanceFrom == nil or distance < distanceFrom) then
distanceFrom = distance
rped = ped
if IsEntityTouchingEntity(GetPlayerPed(-1), ped) then
DrawText3Ds(pos["x"],pos["y"],pos["z"], "Ped: " .. ped .. " Model: " .. GetEntityModel(ped) .. " Relationship HASH: " .. GetPedRelationshipGroupHash(ped) .. " IN CONTACT" )
else
DrawText3Ds(pos["x"],pos["y"],pos["z"], "Ped: " .. ped .. " Model: " .. GetEntityModel(ped) .. " Relationship HASH: " .. GetPedRelationshipGroupHash(ped) )
end
FreezeEntityPosition(ped, inFreeze)
if lowGrav then
SetPedToRagdoll(ped, 511, 511, 0, 0, 0, 0)
SetEntityCoords(ped,pos["x"],pos["y"],pos["z"]+0.1)
end
end
success, ped = FindNextPed(handle)
until not success
EndFindPed(handle)
return rped
end
function canPedBeUsed(ped)
if ped == nil then
return false
end
if ped == GetPlayerPed(-1) then
return false
end
if not DoesEntityExist(ped) then
return false
end
return true
end
Citizen.CreateThread( function()
while true do
Citizen.Wait(1)
if dickheaddebug then
local pos = GetEntityCoords(GetPlayerPed(-1))
local forPos = GetOffsetFromEntityInWorldCoords(GetPlayerPed(-1), 0, 1.0, 0.0)
local backPos = GetOffsetFromEntityInWorldCoords(GetPlayerPed(-1), 0, -1.0, 0.0)
local LPos = GetOffsetFromEntityInWorldCoords(GetPlayerPed(-1), 1.0, 0.0, 0.0)
local RPos = GetOffsetFromEntityInWorldCoords(GetPlayerPed(-1), -1.0, 0.0, 0.0)
local forPos2 = GetOffsetFromEntityInWorldCoords(GetPlayerPed(-1), 0, 2.0, 0.0)
local backPos2 = GetOffsetFromEntityInWorldCoords(GetPlayerPed(-1), 0, -2.0, 0.0)
local LPos2 = GetOffsetFromEntityInWorldCoords(GetPlayerPed(-1), 2.0, 0.0, 0.0)
local RPos2 = GetOffsetFromEntityInWorldCoords(GetPlayerPed(-1), -2.0, 0.0, 0.0)
local x, y, z = table.unpack(GetEntityCoords(GetPlayerPed(-1), true))
local currentStreetHash, intersectStreetHash = GetStreetNameAtCoord(x, y, z, currentStreetHash, intersectStreetHash)
currentStreetName = GetStreetNameFromHashKey(currentStreetHash)
drawTxt(0.8, 0.50, 0.4,0.4,0.30, "Heading: " .. GetEntityHeading(GetPlayerPed(-1)), 55, 155, 55, 255)
drawTxt(0.8, 0.52, 0.4,0.4,0.30, "Coords: " .. pos, 55, 155, 55, 255)
drawTxt(0.8, 0.54, 0.4,0.4,0.30, "Attached Ent: " .. GetEntityAttachedTo(GetPlayerPed(-1)), 55, 155, 55, 255)
drawTxt(0.8, 0.56, 0.4,0.4,0.30, "Health: " .. GetEntityHealth(GetPlayerPed(-1)), 55, 155, 55, 255)
drawTxt(0.8, 0.58, 0.4,0.4,0.30, "H a G: " .. GetEntityHeightAboveGround(GetPlayerPed(-1)), 55, 155, 55, 255)
drawTxt(0.8, 0.60, 0.4,0.4,0.30, "Model: " .. GetEntityModel(GetPlayerPed(-1)), 55, 155, 55, 255)
drawTxt(0.8, 0.62, 0.4,0.4,0.30, "Speed: " .. GetEntitySpeed(GetPlayerPed(-1)), 55, 155, 55, 255)
drawTxt(0.8, 0.64, 0.4,0.4,0.30, "Frame Time: " .. GetFrameTime(), 55, 155, 55, 255)
drawTxt(0.8, 0.66, 0.4,0.4,0.30, "Street: " .. currentStreetName, 55, 155, 55, 255)
DrawLine(pos,forPos, 255,0,0,115)
DrawLine(pos,backPos, 255,0,0,115)
DrawLine(pos,LPos, 255,255,0,115)
DrawLine(pos,RPos, 255,255,0,115)
DrawLine(forPos,forPos2, 255,0,255,115)
DrawLine(backPos,backPos2, 255,0,255,115)
DrawLine(LPos,LPos2, 255,255,255,115)
DrawLine(RPos,RPos2, 255,255,255,115)
local nearped = getNPC()
local veh = GetVehicle()
local nearobj = GetObject()
else
Citizen.Wait(5000)
end
end
end)