Die offizielle ESX Dokumentation ist momentan nicht erreichbar.
Config.Blip = {
{title="Taxizentrale", colour=5, id=198, x = 908.15, y = -154.92, z = 38.09}
}
Citizen.CreateThread(function()
waitForPlayerJobInitialization()
registerJobChangeListener()
end)
function waitForPlayerJobInitialization()
while true do
local playerData = ESX.GetPlayerData()
if playerData.job ~= nil then
handleJobChange(playerData.job)
break
end
Citizen.Wait(10)
end
end
function registerJobChangeListener()
RegisterNetEvent('esx:setJob')
AddEventHandler('esx:setJob', handleJobChange)
end
function handleJobChange(job)
local wasJob = isJob
isJob = job.name == 'taxi'
if isJob ~= wasJob then
if isJob then
handleJobBlib(true)
else
handleJobBlib(false)
end
end
end
-- Create Blips
function handleJobBlib(isJob)
if isJob then
for _, info in pairs(Config.Blip) do
info.blip = AddBlipForCoord(info.x, info.y, info.z)
SetBlipSprite(info.blip, info.id)
SetBlipDisplay(info.blip, 4)
SetBlipScale(info.blip, 0.75)
SetBlipColour(info.blip, info.colour)
SetBlipAsShortRange(info.blip, true)
BeginTextCommandSetBlipName("STRING")
AddTextComponentString(info.title)
EndTextCommandSetBlipName(info.blip)
end
else
for _, info in pairs(Config.Blip) do
if DoesBlipExist(info.blip) then
SetBlipAsMissionCreatorBlip(info.blip,false)
RemoveBlip(info.blip)
info.blip = nil
end
end
end
end
Config.Blips= {
vector3(x, y, z),
}
function CreateBlip(coords)
local blip = AddBlipForCoord(coords)
SetBlipSprite(blip, 361)
SetBlipScale(blip, 0.9)
SetBlipColour(blip, 4)
SetBlipDisplay(blip, 4)
SetBlipAsShortRange(blip, true)
BeginTextCommandSetBlipName("STRING")
AddTextComponentString("Gas Station")
EndTextCommandSetBlipName(blip)
return blip
end
Citizen.CreateThread(function()
local currentGasBlip = 0
while true do
local coords = GetEntityCoords(PlayerPedId())
local closest = 1000
local closestCoords
for _, gasStationCoords in pairs(Config.Blips) do
local dstcheck = GetDistanceBetweenCoords(coords, gasStationCoords)
if dstcheck < closest then
closest = dstcheck
closestCoords = gasStationCoords
end
end
if DoesBlipExist(currentGasBlip) then
RemoveBlip(currentGasBlip)
end
currentGasBlip = CreateBlip(closestCoords)
Citizen.Wait(10000)
end
end)