mirror of
https://github.com/esx-framework/esx_core.git
synced 2026-08-29 01:08:54 +00:00
@@ -3,28 +3,22 @@ local isDead = false
|
||||
function ShowBillsMenu()
|
||||
ESX.TriggerServerCallback('esx_billing:getBills', function(bills)
|
||||
if #bills > 0 then
|
||||
ESX.UI.Menu.CloseAll()
|
||||
local elements = {}
|
||||
local elements = {
|
||||
{unselectable = true, icon = "fas fa-scroll", title = TranslateCap('invoices')}
|
||||
}
|
||||
|
||||
for k,v in ipairs(bills) do
|
||||
table.insert(elements, {
|
||||
label = ('%s - <span style="color:red;">%s</span>'):format(v.label, TranslateCap('invoices_item', ESX.Math.GroupDigits(v.amount))),
|
||||
elements[#elements+1] = {
|
||||
icon = "fas fa-scroll",
|
||||
title = ('%s - <span style="color:red;">%s</span>'):format(v.label, TranslateCap('invoices_item', ESX.Math.GroupDigits(v.amount))),
|
||||
billId = v.id
|
||||
})
|
||||
}
|
||||
end
|
||||
|
||||
ESX.UI.Menu.Open('default', GetCurrentResourceName(), 'billing', {
|
||||
title = TranslateCap('invoices'),
|
||||
align = 'bottom-right',
|
||||
elements = elements
|
||||
}, function(data, menu)
|
||||
menu.close()
|
||||
|
||||
ESX.OpenContext("right", elements, function(menu,element)
|
||||
ESX.TriggerServerCallback('esx_billing:payBill', function()
|
||||
ShowBillsMenu()
|
||||
end, data.current.billId)
|
||||
end, function(data, menu)
|
||||
menu.close()
|
||||
end, element.billId)
|
||||
end)
|
||||
else
|
||||
ESX.ShowNotification(TranslateCap('no_invoices'))
|
||||
|
||||
@@ -92,70 +92,68 @@ function OpenDMVSchoolMenu()
|
||||
ownedLicenses[Licenses[i].type] = true
|
||||
end
|
||||
|
||||
local elements = {}
|
||||
local elements = {
|
||||
{unselectable = true, icon = "fas fa-car", title = TranslateCap("driving_school")}
|
||||
}
|
||||
|
||||
if not ownedLicenses['dmv'] then
|
||||
table.insert(elements, {
|
||||
label = (('%s: <span style="color:green;">%s</span>'):format(TranslateCap('theory_test'), TranslateCap('school_item', ESX.Math.GroupDigits(Config.Prices['dmv'])))),
|
||||
value = 'theory_test'
|
||||
})
|
||||
elements[#elements+1] = {
|
||||
icon = "fas fa-car",
|
||||
title = (('%s: <span style="color:green;">%s</span>'):format(TranslateCap('theory_test'), TranslateCap('school_item', ESX.Math.GroupDigits(Config.Prices['dmv'])))),
|
||||
value = "theory_test"
|
||||
}
|
||||
end
|
||||
|
||||
if ownedLicenses['dmv'] then
|
||||
if not ownedLicenses['drive'] then
|
||||
table.insert(elements, {
|
||||
label = (('%s: <span style="color:green;">%s</span>'):format(TranslateCap('road_test_car'), TranslateCap('school_item', ESX.Math.GroupDigits(Config.Prices['drive'])))),
|
||||
value = 'drive_test',
|
||||
type = 'drive'
|
||||
})
|
||||
elements[#elements+1] = {
|
||||
icon = "fas fa-car",
|
||||
title = (('%s: <span style="color:green;">%s</span>'):format(TranslateCap('road_test_car'), TranslateCap('school_item', ESX.Math.GroupDigits(Config.Prices['drive'])))),
|
||||
value = "drive_test",
|
||||
type = "drive"
|
||||
}
|
||||
end
|
||||
|
||||
if not ownedLicenses['drive_bike'] then
|
||||
table.insert(elements, {
|
||||
label = (('%s: <span style="color:green;">%s</span>'):format(TranslateCap('road_test_bike'), TranslateCap('school_item', ESX.Math.GroupDigits(Config.Prices['drive_bike'])))),
|
||||
value = 'drive_test',
|
||||
type = 'drive_bike'
|
||||
})
|
||||
elements[#elements+1] = {
|
||||
icon = "fas fa-car",
|
||||
title = (('%s: <span style="color:green;">%s</span>'):format(TranslateCap('road_test_bike'), TranslateCap('school_item', ESX.Math.GroupDigits(Config.Prices['drive_bike'])))),
|
||||
value = "drive_test",
|
||||
type = "drive_bike"
|
||||
}
|
||||
end
|
||||
|
||||
if not ownedLicenses['drive_truck'] then
|
||||
table.insert(elements, {
|
||||
label = (('%s: <span style="color:green;">%s</span>'):format(TranslateCap('road_test_truck'), TranslateCap('school_item', ESX.Math.GroupDigits(Config.Prices['drive_truck'])))),
|
||||
value = 'drive_test',
|
||||
type = 'drive_truck'
|
||||
})
|
||||
elements[#elements+1] = {
|
||||
icon = "fas fa-car",
|
||||
title = (('%s: <span style="color:green;">%s</span>'):format(TranslateCap('road_test_truck'), TranslateCap('school_item', ESX.Math.GroupDigits(Config.Prices['drive_truck'])))),
|
||||
value = "drive_test",
|
||||
type = "drive_truck"
|
||||
}
|
||||
end
|
||||
end
|
||||
|
||||
ESX.UI.Menu.CloseAll()
|
||||
|
||||
ESX.UI.Menu.Open('default', GetCurrentResourceName(), 'dmvschool_actions', {
|
||||
title = TranslateCap('driving_school'),
|
||||
elements = elements,
|
||||
align = 'bottom-right'
|
||||
}, function(data, menu)
|
||||
if data.current.value == 'theory_test' then
|
||||
menu.close()
|
||||
ESX.OpenContext("right", elements, function(menu,element)
|
||||
if element.value == "theory_test" then
|
||||
ESX.TriggerServerCallback('esx_dmvschool:canYouPay', function(haveMoney)
|
||||
if haveMoney then
|
||||
ESX.CloseContext()
|
||||
StartTheoryTest()
|
||||
else
|
||||
ESX.ShowNotification(TranslateCap('not_enough_money'))
|
||||
end
|
||||
end, 'dmv')
|
||||
elseif data.current.value == 'drive_test' then
|
||||
menu.close()
|
||||
elseif element.value == "drive_test" then
|
||||
ESX.TriggerServerCallback('esx_dmvschool:canYouPay', function(haveMoney)
|
||||
if haveMoney then
|
||||
StartDriveTest(data.current.type)
|
||||
ESX.CloseContext()
|
||||
StartDriveTest(element.type)
|
||||
else
|
||||
ESX.ShowNotification(TranslateCap('not_enough_money'))
|
||||
end
|
||||
end, data.current.type)
|
||||
end, element.type)
|
||||
end
|
||||
end, function(data, menu)
|
||||
menu.close()
|
||||
|
||||
end, function(menu)
|
||||
CurrentAction = 'dmvschool_menu'
|
||||
CurrentActionMsg = TranslateCap('press_open_menu')
|
||||
CurrentActionData = {}
|
||||
@@ -190,7 +188,7 @@ end)
|
||||
|
||||
AddEventHandler('esx_dmvschool:hasExitedMarker', function(zone)
|
||||
CurrentAction = nil
|
||||
ESX.UI.Menu.CloseAll()
|
||||
ESX.CloseContext()
|
||||
end)
|
||||
|
||||
RegisterNetEvent('esx_dmvschool:loadLicenses')
|
||||
@@ -286,8 +284,8 @@ CreateThread(function()
|
||||
ESX.ShowHelpNotification(CurrentActionMsg)
|
||||
|
||||
if (IsControlJustReleased(0, 38)) and (CurrentAction == 'dmvschool_menu') then
|
||||
OpenDMVSchoolMenu()
|
||||
CurrentAction = nil
|
||||
OpenDMVSchoolMenu()
|
||||
CurrentAction = nil
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -97,24 +97,18 @@ function StopTaxiJob()
|
||||
end
|
||||
|
||||
function OpenCloakroom()
|
||||
ESX.UI.Menu.CloseAll()
|
||||
local elements = {
|
||||
{unselectable = true, icon = "fas fa-shirt", title = TranslateCap('cloakroom_menu')},
|
||||
{icon = "fas fa-shirt", title = TranslateCap('wear_citizen'), value = "wear_citizen"},
|
||||
{icon = "fas fa-shirt", title = TranslateCap('wear_work'), value = "wear_work"},
|
||||
}
|
||||
|
||||
ESX.UI.Menu.Open('default', GetCurrentResourceName(), 'taxi_cloakroom', {
|
||||
title = TranslateCap('cloakroom_menu'),
|
||||
align = 'top-left',
|
||||
elements = {{
|
||||
label = TranslateCap('wear_citizen'),
|
||||
value = 'wear_citizen'
|
||||
}, {
|
||||
label = TranslateCap('wear_work'),
|
||||
value = 'wear_work'
|
||||
}}
|
||||
}, function(data, menu)
|
||||
if data.current.value == 'wear_citizen' then
|
||||
ESX.OpenContext("right", elements, function(menu,element)
|
||||
if element.value == "wear_citizen" then
|
||||
ESX.TriggerServerCallback('esx_skin:getPlayerSkin', function(skin)
|
||||
TriggerEvent('skinchanger:loadSkin', skin)
|
||||
end)
|
||||
elseif data.current.value == 'wear_work' then
|
||||
elseif element.value == "wear_work" then
|
||||
ESX.TriggerServerCallback('esx_skin:getPlayerSkin', function(skin, jobSkin)
|
||||
if skin.sex == 0 then
|
||||
TriggerEvent('skinchanger:loadClothes', skin, jobSkin.skin_male)
|
||||
@@ -123,9 +117,7 @@ function OpenCloakroom()
|
||||
end
|
||||
end)
|
||||
end
|
||||
end, function(data, menu)
|
||||
menu.close()
|
||||
|
||||
end, function(menu)
|
||||
CurrentAction = 'cloakroom'
|
||||
CurrentActionMsg = TranslateCap('cloakroom_prompt')
|
||||
CurrentActionData = {}
|
||||
@@ -133,54 +125,40 @@ function OpenCloakroom()
|
||||
end
|
||||
|
||||
function OpenVehicleSpawnerMenu()
|
||||
ESX.UI.Menu.CloseAll()
|
||||
|
||||
local elements = {}
|
||||
local elements = {
|
||||
{unselectable = true, icon = "fas fa-car", title = TranslateCap('spawn_veh')}
|
||||
}
|
||||
|
||||
if Config.EnableSocietyOwnedVehicles then
|
||||
|
||||
ESX.TriggerServerCallback('esx_society:getVehiclesInGarage', function(vehicles)
|
||||
|
||||
for i = 1, #vehicles, 1 do
|
||||
table.insert(elements, {
|
||||
label = GetDisplayNameFromVehicleModel(vehicles[i].model) .. ' [' .. vehicles[i].plate .. ']',
|
||||
elements[#elements+1] = {
|
||||
icon = "fas fa-car",
|
||||
title = GetDisplayNameFromVehicleModel(vehicles[i].model) .. ' [' .. vehicles[i].plate .. ']',
|
||||
value = vehicles[i]
|
||||
})
|
||||
}
|
||||
end
|
||||
|
||||
ESX.UI.Menu.Open('default', GetCurrentResourceName(), 'vehicle_spawner', {
|
||||
title = TranslateCap('spawn_veh'),
|
||||
align = 'top-left',
|
||||
elements = elements
|
||||
}, function(data, menu)
|
||||
ESX.OpenContext("right", elements, function(menu,element)
|
||||
if not ESX.Game.IsSpawnPointClear(Config.Zones.VehicleSpawnPoint.Pos, 5.0) then
|
||||
ESX.ShowNotification(TranslateCap('spawnpoint_blocked'))
|
||||
return
|
||||
end
|
||||
|
||||
menu.close()
|
||||
|
||||
local vehicleProps = data.current.value
|
||||
local vehicleProps = element.value
|
||||
ESX.TriggerServerCallback("esx_taxijob:SpawnVehicle", function()
|
||||
return
|
||||
end, vehicleProps.model, vehicleProps)
|
||||
TriggerServerEvent('esx_society:removeVehicleFromGarage', 'taxi', vehicleProps)
|
||||
end, function(data, menu)
|
||||
end, function(menu)
|
||||
CurrentAction = 'vehicle_spawner'
|
||||
CurrentActionMsg = TranslateCap('spawner_prompt')
|
||||
CurrentActionData = {}
|
||||
|
||||
menu.close()
|
||||
end)
|
||||
end, 'taxi')
|
||||
|
||||
else -- not society vehicles
|
||||
|
||||
ESX.UI.Menu.Open('default', GetCurrentResourceName(), 'vehicle_spawner', {
|
||||
title = TranslateCap('spawn_veh'),
|
||||
align = 'top-left',
|
||||
elements = Config.AuthorizedVehicles
|
||||
}, function(data, menu)
|
||||
ESX.OpenContext("right", Config.AuthorizedVehicles, function(menu,element)
|
||||
if not ESX.Game.IsSpawnPointClear(Config.Zones.VehicleSpawnPoint.Pos, 5.0) then
|
||||
ESX.ShowNotification(TranslateCap('spawnpoint_blocked'))
|
||||
return
|
||||
@@ -188,13 +166,10 @@ function OpenVehicleSpawnerMenu()
|
||||
ESX.TriggerServerCallback("esx_taxijob:SpawnVehicle", function()
|
||||
ESX.ShowNotification(TranslateCap('vehicle_spawned'), "success")
|
||||
end, "taxi", {plate = "TAXI JOB"})
|
||||
menu.close()
|
||||
end, function(data, menu)
|
||||
end, function(menu)
|
||||
CurrentAction = 'vehicle_spawner'
|
||||
CurrentActionMsg = TranslateCap('spawner_prompt')
|
||||
CurrentActionData = {}
|
||||
|
||||
menu.close()
|
||||
end)
|
||||
end
|
||||
end
|
||||
@@ -220,45 +195,34 @@ function DeleteJobVehicle()
|
||||
end
|
||||
|
||||
function OpenTaxiActionsMenu()
|
||||
local elements = {{
|
||||
label = TranslateCap('deposit_stock'),
|
||||
value = 'put_stock'
|
||||
}, {
|
||||
label = TranslateCap('take_stock'),
|
||||
value = 'get_stock'
|
||||
}}
|
||||
local elements = {
|
||||
{unselectable = true, icon = "fas fa-taxi", title = TranslateCap('taxi')},
|
||||
{icon = "fas fa-box",title = TranslateCap('deposit_stock'),value = 'put_stock'},
|
||||
{icon = "fas fa-box", title = TranslateCap('take_stock'), value = 'get_stock'}
|
||||
}
|
||||
|
||||
if Config.EnablePlayerManagement and ESX.PlayerData.job ~= nil and ESX.PlayerData.job.grade_name == 'boss' then
|
||||
table.insert(elements, {
|
||||
label = TranslateCap('boss_actions'),
|
||||
value = 'boss_actions'
|
||||
})
|
||||
elements[#elements+1] = {
|
||||
icon = "fas fa-wallet",
|
||||
title = TranslateCap('boss_actions'),
|
||||
value = "boss_actions"
|
||||
}
|
||||
end
|
||||
|
||||
ESX.UI.Menu.CloseAll()
|
||||
|
||||
ESX.UI.Menu.Open('default', GetCurrentResourceName(), 'taxi_actions', {
|
||||
title = TranslateCap('taxi'),
|
||||
align = 'top-left',
|
||||
elements = elements
|
||||
}, function(data, menu)
|
||||
|
||||
if Config.OxInventory and (data.current.value == 'put_stock' or data.current.value == 'get_stock') then
|
||||
ESX.OpenContext("right", elements, function(menu,element)
|
||||
if Config.OxInventory and (element.value == 'put_stock' or element.value == 'get_stock') then
|
||||
exports.ox_inventory:openInventory('stash', 'society_taxi')
|
||||
return ESX.UI.Menu.CloseAll()
|
||||
elseif data.current.value == 'put_stock' then
|
||||
return ESX.CloseContext()
|
||||
elseif element.value == 'put_stock' then
|
||||
OpenPutStocksMenu()
|
||||
elseif data.current.value == 'get_stock' then
|
||||
elseif element.value == 'get_stock' then
|
||||
OpenGetStocksMenu()
|
||||
elseif data.current.value == 'boss_actions' then
|
||||
elseif element.value == 'boss_actions' then
|
||||
TriggerEvent('esx_society:openBossMenu', 'taxi', function(data, menu)
|
||||
menu.close()
|
||||
end)
|
||||
end
|
||||
|
||||
end, function(data, menu)
|
||||
menu.close()
|
||||
|
||||
end, function(menu)
|
||||
CurrentAction = 'taxi_actions_menu'
|
||||
CurrentActionMsg = TranslateCap('press_to_open')
|
||||
CurrentActionData = {}
|
||||
@@ -266,21 +230,14 @@ function OpenTaxiActionsMenu()
|
||||
end
|
||||
|
||||
function OpenMobileTaxiActionsMenu()
|
||||
ESX.UI.Menu.CloseAll()
|
||||
|
||||
ESX.UI.Menu.Open('default', GetCurrentResourceName(), 'mobile_taxi_actions', {
|
||||
title = TranslateCap('taxi'),
|
||||
align = 'top-left',
|
||||
elements = {{
|
||||
label = TranslateCap('billing'),
|
||||
value = 'billing'
|
||||
}, {
|
||||
label = TranslateCap('start_job'),
|
||||
value = 'start_job'
|
||||
}}
|
||||
}, function(data, menu)
|
||||
if data.current.value == 'billing' then
|
||||
local elements = {
|
||||
{unselectable = true, icon = "fas fa-taxi", title = TranslateCap('taxi')},
|
||||
{icon = "fas fa-scroll", title = TranslateCap('billing'), value = "billing"},
|
||||
{icon = "fas fa-taxi", title = TranslateCap('start_job'), value = "start_job"},
|
||||
}
|
||||
|
||||
ESX.OpenContext("right", elements, function(menu,element)
|
||||
if element.value == "billing" then
|
||||
ESX.UI.Menu.Open('dialog', GetCurrentResourceName(), 'billing', {
|
||||
title = TranslateCap('invoice_amount')
|
||||
}, function(data, menu)
|
||||
@@ -298,15 +255,13 @@ function OpenMobileTaxiActionsMenu()
|
||||
'Taxi', amount)
|
||||
ESX.ShowNotification(TranslateCap('billing_sent'))
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
end, function(data, menu)
|
||||
menu.close()
|
||||
end)
|
||||
|
||||
elseif data.current.value == 'start_job' then
|
||||
elseif element.value == "start_job" then
|
||||
if OnJob then
|
||||
ESX.CloseContext()
|
||||
StopTaxiJob()
|
||||
else
|
||||
if ESX.PlayerData.job ~= nil and ESX.PlayerData.job.name == 'taxi' then
|
||||
@@ -315,9 +270,11 @@ function OpenMobileTaxiActionsMenu()
|
||||
|
||||
if IsPedInAnyVehicle(playerPed, false) and GetPedInVehicleSeat(vehicle, -1) == playerPed then
|
||||
if tonumber(ESX.PlayerData.job.grade) >= 3 then
|
||||
ESX.CloseContext()
|
||||
StartTaxiJob()
|
||||
else
|
||||
if IsInAuthorizedVehicle() then
|
||||
ESX.CloseContext()
|
||||
StartTaxiJob()
|
||||
else
|
||||
ESX.ShowNotification(TranslateCap('must_in_taxi'))
|
||||
@@ -333,8 +290,6 @@ function OpenMobileTaxiActionsMenu()
|
||||
end
|
||||
end
|
||||
end
|
||||
end, function(data, menu)
|
||||
menu.close()
|
||||
end)
|
||||
end
|
||||
|
||||
@@ -353,22 +308,20 @@ end
|
||||
|
||||
function OpenGetStocksMenu()
|
||||
ESX.TriggerServerCallback('esx_taxijob:getStockItems', function(items)
|
||||
local elements = {}
|
||||
local elements = {
|
||||
{unselectable = true, icon = "fas fa-box", title = TranslateCap('taxi_stock')}
|
||||
}
|
||||
|
||||
for i = 1, #items, 1 do
|
||||
table.insert(elements, {
|
||||
label = 'x' .. items[i].count .. ' ' .. items[i].label,
|
||||
elements[#elements+1] = {
|
||||
icon = "fas fa-box",
|
||||
title = 'x' .. items[i].count .. ' ' .. items[i].label,
|
||||
value = items[i].name
|
||||
})
|
||||
}
|
||||
end
|
||||
|
||||
ESX.UI.Menu.Open('default', GetCurrentResourceName(), 'stocks_menu', {
|
||||
title = TranslateCap('taxi_stock'),
|
||||
align = 'top-left',
|
||||
elements = elements
|
||||
}, function(data, menu)
|
||||
local itemName = data.current.value
|
||||
|
||||
ESX.OpenContext("right", elements, function(menu,element)
|
||||
local itemName = element.value
|
||||
ESX.UI.Menu.Open('dialog', GetCurrentResourceName(), 'stocks_menu_get_item_count', {
|
||||
title = TranslateCap('quantity')
|
||||
}, function(data2, menu2)
|
||||
@@ -378,7 +331,7 @@ function OpenGetStocksMenu()
|
||||
ESX.ShowNotification(TranslateCap('quantity_invalid'))
|
||||
else
|
||||
menu2.close()
|
||||
menu.close()
|
||||
ESX.CloseContext()
|
||||
|
||||
-- todo: refresh on callback
|
||||
TriggerServerEvent('esx_taxijob:getStockItem', itemName, count)
|
||||
@@ -388,34 +341,34 @@ function OpenGetStocksMenu()
|
||||
end, function(data2, menu2)
|
||||
menu2.close()
|
||||
end)
|
||||
end, function(data, menu)
|
||||
menu.close()
|
||||
end)
|
||||
end)
|
||||
end, function(menu)
|
||||
CurrentAction = 'taxi_actions_menu'
|
||||
CurrentActionMsg = TranslateCap('press_to_open')
|
||||
CurrentActionData = {}
|
||||
end)
|
||||
end
|
||||
|
||||
function OpenPutStocksMenu()
|
||||
ESX.TriggerServerCallback('esx_taxijob:getPlayerInventory', function(inventory)
|
||||
local elements = {}
|
||||
local elements = {
|
||||
{unselectable = true, icon = "fas fa-box", title = TranslateCap('inventory')}
|
||||
}
|
||||
|
||||
for i = 1, #inventory.items, 1 do
|
||||
local item = inventory.items[i]
|
||||
|
||||
if item.count > 0 then
|
||||
table.insert(elements, {
|
||||
label = item.label .. ' x' .. item.count,
|
||||
elements[#elements+1] = {
|
||||
icon = "fas fa-box",
|
||||
title = item.label .. ' x' .. item.count,
|
||||
type = 'item_standard',
|
||||
value = item.name
|
||||
})
|
||||
}
|
||||
end
|
||||
end
|
||||
|
||||
ESX.UI.Menu.Open('default', GetCurrentResourceName(), 'stocks_menu', {
|
||||
title = TranslateCap('inventory'),
|
||||
align = 'top-left',
|
||||
elements = elements
|
||||
}, function(data, menu)
|
||||
local itemName = data.current.value
|
||||
ESX.OpenContext("right", elements, function(menu,element)
|
||||
local itemName = element.value
|
||||
|
||||
ESX.UI.Menu.Open('dialog', GetCurrentResourceName(), 'stocks_menu_put_item_count', {
|
||||
title = TranslateCap('quantity')
|
||||
@@ -426,7 +379,7 @@ function OpenPutStocksMenu()
|
||||
ESX.ShowNotification(TranslateCap('quantity_invalid'))
|
||||
else
|
||||
menu2.close()
|
||||
menu.close()
|
||||
ESX.CloseContext()
|
||||
|
||||
-- todo: refresh on callback
|
||||
TriggerServerEvent('esx_taxijob:putStockItems', itemName, count)
|
||||
@@ -436,10 +389,12 @@ function OpenPutStocksMenu()
|
||||
end, function(data2, menu2)
|
||||
menu2.close()
|
||||
end)
|
||||
end, function(data, menu)
|
||||
menu.close()
|
||||
end)
|
||||
end)
|
||||
end, function(menu)
|
||||
CurrentAction = 'taxi_actions_menu'
|
||||
CurrentActionMsg = TranslateCap('press_to_open')
|
||||
CurrentActionData = {}
|
||||
end)
|
||||
end
|
||||
|
||||
AddEventHandler('esx_taxijob:hasEnteredMarker', function(zone)
|
||||
@@ -471,7 +426,7 @@ AddEventHandler('esx_taxijob:hasEnteredMarker', function(zone)
|
||||
end)
|
||||
|
||||
AddEventHandler('esx_taxijob:hasExitedMarker', function(zone)
|
||||
ESX.UI.Menu.CloseAll()
|
||||
ESX.CloseContext()
|
||||
CurrentAction = nil
|
||||
end)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user