66 lines
2.0 KiB
Lua
66 lines
2.0 KiB
Lua
|
local lastCoords
|
||
|
|
||
|
local function teleport(x, y, z)
|
||
|
if cache.vehicle then
|
||
|
return SetPedCoordsKeepVehicle(cache.ped, x, y, z)
|
||
|
end
|
||
|
|
||
|
SetEntityCoords(cache.ped, x, y, z, false, false, false, false)
|
||
|
end
|
||
|
|
||
|
-- Teleport to player
|
||
|
RegisterNetEvent('ps-adminmenu:client:TeleportToPlayer', function(coords)
|
||
|
lastCoords = GetEntityCoords(cache.ped)
|
||
|
SetPedCoordsKeepVehicle(cache.ped, coords.x, coords.y, coords.z)
|
||
|
end)
|
||
|
|
||
|
-- Teleport to coords
|
||
|
RegisterNetEvent('ps-adminmenu:client:TeleportToCoords', function(data, selectedData)
|
||
|
local data = CheckDataFromKey(data)
|
||
|
if not data or not CheckPerms(data.perms) then return end
|
||
|
|
||
|
local coordsStr = selectedData["Coords"].value
|
||
|
local x, y, z, heading
|
||
|
|
||
|
x, y, z, heading = coordsStr:match("(-?%d+%.?%d*),%s*(-?%d+%.?%d*),?%s*(-?%d*%.?%d*),?%s*(-?%d*%.?%d*)")
|
||
|
|
||
|
if not x or not y then
|
||
|
x, y, z, heading = coordsStr:match("(-?%d+%.?%d*)%s+(-?%d+%.?%d*)%s*(-?%d*%.?%d*)%s*(-?%d*%.?%d*)")
|
||
|
end
|
||
|
|
||
|
x = tonumber(x)
|
||
|
y = tonumber(y)
|
||
|
z = tonumber(z or 0)
|
||
|
heading = tonumber(heading or 0)
|
||
|
|
||
|
if x and y then
|
||
|
lastCoords = GetEntityCoords(cache.ped)
|
||
|
if heading and heading ~= 0 then
|
||
|
SetEntityHeading(cache.ped, heading)
|
||
|
end
|
||
|
SetPedCoordsKeepVehicle(cache.ped, x, y, z)
|
||
|
end
|
||
|
end)
|
||
|
|
||
|
-- Teleport to Locaton
|
||
|
RegisterNetEvent('ps-adminmenu:client:TeleportToLocation', function(data, selectedData)
|
||
|
local data = CheckDataFromKey(data)
|
||
|
if not data or not CheckPerms(data.perms) then return end
|
||
|
local coords = selectedData["Location"].value
|
||
|
|
||
|
lastCoords = GetEntityCoords(cache.ped)
|
||
|
SetPedCoordsKeepVehicle(cache.ped, coords.x, coords.y, coords.z)
|
||
|
end)
|
||
|
|
||
|
-- Teleport back
|
||
|
RegisterNetEvent('ps-adminmenu:client:TeleportBack', function(data)
|
||
|
local data = CheckDataFromKey(data)
|
||
|
if not data or not CheckPerms(data.perms) then return end
|
||
|
|
||
|
if lastCoords then
|
||
|
local coords = GetEntityCoords(cache.ped)
|
||
|
teleport(lastCoords.x, lastCoords.y, lastCoords.z)
|
||
|
lastCoords = coords
|
||
|
end
|
||
|
end)
|