I have a marker, ok when the player enter on the marker press ex:“E” and he will get a job.
i am new to lua i know sosometing not all but i need help to make this.
Client Side:
local table = {
{x = 867.22,y = -2144.89,z = 29.58}
}
-- Draw Markers --
Citizen.CreateThread(function()
while true do
Citizen.Wait(0)
for k in pairs(table) do
-- Draw Marker Here --
DrawMarker(1, table[k].x, table[k].y, table[k].z, 0, 0, 0, 0, 0, 0, 1.001, 1.0001, 0.5001, 0, 0, 255, 200, 0, 0, 0, 0)
end
end
end)
Citizen.CreateThread(function()
while true do
Citizen.Wait(0)
for k in pairs(table) do
local plyCoords = GetEntityCoords(GetPlayerPed(-1), false)
local dis = Vdist(plyCoords.x, plyCoords.y, plyCoords.z, table[k].x, table[k].y, table[k].z)
if dis <= 1.2 then
if IsControlJustPressed(3,176) then
Citizen.Trace("BUTTON ENTER PRESSED ON MARKER.")
TriggerServerEvent('esx_joblisting:setJob', data.current.value)
notification('Tens um novo trabalho')
end
end
end
end
end)
function notification(msg)
SetNotificationTextEntry("STRING")
AddTextComponentString(msg)
DrawNotification(false, false)
end
ESX.TriggerServerCallback('esx_joblisting:getJobsList', function(data)
local elements = {}
for i = 1, #data, 1 do
table.insert(
elements,
{label = data[i].label, value = data[i].value}
)
end
Server Side
ESX = nil
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
ESX.RegisterServerCallback('esx_joblisting:getJobsList', function(source, cb)
MySQL.Async.fetchAll(
'SELECT * FROM jobs',
{},
function(result)
local data = {}
for i=1, #result, 1 do
table.insert(data, {
value = result[i].name,
label = result[i].label
})
end
cb(data)
end
)
end)
RegisterServerEvent('esx_joblisting:setJob')
AddEventHandler('esx_joblisting:setJob', function(job)
local _source = source
local xPlayer = ESX.GetPlayerFromId(_source)
xPlayer.setJob(job, 0)
end)
Problaby all is confused and mixed