1
0
Fork 0
forked from Simnation/Main
Main/resources/[qb]/qb-smallresources/client/teleports.lua

69 lines
2.2 KiB
Lua
Raw Permalink Normal View History

2025-06-07 08:51:21 +02:00
local title = Lang:t('teleport.teleport_default')
local ran = false
local teleportPoly = {}
local function teleportMenu(zones, currentZone)
local menu = {}
for k, v in pairs(Config.Teleports[zones]) do
if k ~= currentZone then
if not v.label then
title = Lang:t('teleport.teleport_default')
else
title = v.label
end
menu[#menu + 1] = {
header = title,
params = {
event = 'teleports:chooseloc',
args = {
car = Config.Teleports[zones][currentZone].allowVeh,
coords = v.poly.coords,
heading = v.poly.heading
}
}
}
end
end
exports['qb-menu']:showHeader(menu)
end
CreateThread(function()
for i = 1, #Config.Teleports, 1 do
for u = 1, #Config.Teleports[i] do
local portal = Config.Teleports[i][u].poly
teleportPoly[#teleportPoly + 1] = BoxZone:Create(vector3(portal.coords.x, portal.coords.y, portal.coords.z), portal.length, portal.width, {
heading = portal.heading,
name = i,
debugPoly = false,
minZ = portal.coords.z - 5,
maxZ = portal.coords.z + 5,
data = {pad = u}
})
local teleportCombo = ComboZone:Create(teleportPoly, {name = 'teleportPoly'})
teleportCombo:onPlayerInOut(function(isPointInside, _, zone)
if isPointInside then
if not ran then
ran = true
teleportMenu(tonumber(zone.name), zone.data.pad)
end
else
ran = false
end
end)
end
end
end)
RegisterNetEvent('teleports:chooseloc', function(data)
local ped = PlayerPedId()
DoScreenFadeOut(500)
Wait(500)
if data.car then
SetPedCoordsKeepVehicle(ped, data.coords.x, data.coords.y, data.coords.z)
else
SetEntityCoords(ped, data.coords.x, data.coords.y, data.coords.z)
end
SetEntityHeading(ped, data.heading)
Wait(500)
DoScreenFadeIn(500)
end)