diff --git a/client/main.lua b/client/main.lua
index 066d6761..d8dedfc6 100644
--- a/client/main.lua
+++ b/client/main.lua
@@ -1,4 +1,5 @@
ESX = nil
+local Vehicles = {}
Citizen.CreateThread(function()
while ESX == nil do
@@ -11,8 +12,16 @@ local lsMenuIsShowed = false
local isInLSMarker = false
local myCar = {}
+RegisterNetEvent('esx:playerLoaded')
+AddEventHandler('esx:playerLoaded', function()
+ ESX.TriggerServerCallback('esx_lscustom:getVehiclesPrices', function(vehicles)
+ Vehicles = vehicles
+ end)
+end)
+
RegisterNetEvent('esx_lscustom:installMod')
AddEventHandler('esx_lscustom:installMod', function()
+ --Citizen.Trace('installMod')
local vehicle = GetVehiclePedIsIn(GetPlayerPed(-1), false)
myCar = ESX.Game.GetVehicleProperties(vehicle)
TriggerServerEvent('esx_lscustom:refreshOwnedVehicle', myCar)
@@ -20,6 +29,9 @@ end)
RegisterNetEvent('esx_lscustom:cancelInstallMod')
AddEventHandler('esx_lscustom:cancelInstallMod', function()
+ --Citizen.Trace('cancelInstallMod')
+ --Citizen.Trace('myCar: ' .. json.encode(myCar))
+
local vehicle = GetVehiclePedIsIn(GetPlayerPed(-1), false)
ESX.Game.SetVehicleProperties(vehicle, myCar)
end)
@@ -38,17 +50,34 @@ function OpenLSMenu(elems, menuname, menutitle, parent)
if data.current.modType == "modFrontWheels" then
isRimMod = true
end
+ local vehicle = GetVehiclePedIsIn(GetPlayerPed(-1), false)
local found = false
for k,v in pairs(Config.Menus) do
if k == data.current.modType or isRimMod then
if data.current.label == _U('by_default') or string.match(data.current.label, _U('installed')) then
ESX.ShowNotification(_U('already_own') .. data.current.label)
+ TriggerEvent('esx_lscustom:installMod')
else
- if isRimMod then
- TriggerServerEvent("esx_lscustom:buyMod", data.current.price)
- else
- TriggerServerEvent("esx_lscustom:buyMod", v.price)
+ local vehiclePrice = 0
+
+ for i=1, #Vehicles, 1 do
+ if GetEntityModel(vehicle) == GetHashKey(Vehicles[i].model) then
+ vehiclePrice = Vehicles[i].price
+ break
+ end
end
+
+ if isRimMod then
+ price = math.floor(vehiclePrice * data.current.price / 100)
+ TriggerServerEvent("esx_lscustom:buyMod", price)
+ elseif v.modType == 11 or v.modType == 12 or v.modType == 13 or v.modType == 15 or v.modType == 16 or v.modType == 17 then
+ price = math.floor(vehiclePrice * v.price[data.current.modNum + 1] / 100)
+ TriggerServerEvent("esx_lscustom:buyMod", price)
+ else
+ price = math.floor(vehiclePrice * v.price / 100)
+ TriggerServerEvent("esx_lscustom:buyMod", price)
+ end
+
end
menu.close()
found = true
@@ -62,11 +91,17 @@ function OpenLSMenu(elems, menuname, menutitle, parent)
function(data, menu) -- on cancel
menu.close()
TriggerEvent('esx_lscustom:cancelInstallMod')
+
+ local playerPed = GetPlayerPed(-1)
+ local vehicle = GetVehiclePedIsIn(playerPed, false)
+
+ SetVehicleDoorsShut(vehicle, false)
+
if parent == nil then
lsMenuIsShowed = false
local vehicle = GetVehiclePedIsIn(GetPlayerPed(-1), false)
FreezeEntityPosition(vehicle, false)
- myCar = nil
+ myCar = {}
end
end,
function(data, menu) -- on change
@@ -76,9 +111,11 @@ function OpenLSMenu(elems, menuname, menutitle, parent)
end
function UpdateMods(data)
- if data.modType ~= nil then
- local vehicle = GetVehiclePedIsIn(GetPlayerPed(-1), false)
- local props = {}
+
+ local vehicle = GetVehiclePedIsIn(GetPlayerPed(-1), false)
+
+ if data.modType ~= nil then
+ local props = {}
--Citizen.Trace('modType: ' .. data.modType)
--Citizen.Trace('modNum: ' .. json.encode(data.modNum))
@@ -111,6 +148,33 @@ function GetAction(data)
local vehicle = GetVehiclePedIsIn(playerPed, false)
local currentMods = ESX.Game.GetVehicleProperties(vehicle)
+ if data.value == 'modSpeakers' or
+ data.value == 'modTrunk' or
+ data.value == 'modHydrolic' or
+ data.value == 'modEngineBlock' or
+ data.value == 'modAirFilter' or
+ data.value == 'modStruts' or
+ data.value == 'modTank' then
+ SetVehicleDoorOpen(vehicle, 4, false)
+ SetVehicleDoorOpen(vehicle, 5, false)
+ elseif data.value == 'modDoorSpeaker' then
+ SetVehicleDoorOpen(vehicle, 0, false)
+ SetVehicleDoorOpen(vehicle, 1, false)
+ SetVehicleDoorOpen(vehicle, 2, false)
+ SetVehicleDoorOpen(vehicle, 3, false)
+ else
+ SetVehicleDoorsShut(vehicle, false)
+ end
+
+ local vehiclePrice = 0
+
+ for i=1, #Vehicles, 1 do
+ if GetEntityModel(vehicle) == GetHashKey(Vehicles[i].model) then
+ vehiclePrice = Vehicles[i].price
+ break
+ end
+ end
+
for k,v in pairs(Config.Menus) do
if data.value == k then
@@ -120,7 +184,7 @@ function GetAction(data)
parent = v.parent
if v.modType ~= nil then
-
+
if v.modType == 22 then
table.insert(elements, {label = " " .. _U('by_default'), modType = k, modNum = false})
elseif v.modType == 'color1' or v.modType == 'color2' or v.modType == 'pearlescentColor' or v.modType == 'wheelColor' then
@@ -129,10 +193,6 @@ function GetAction(data)
else
table.insert(elements, {label = " " .. _U('by_default'), modType = k, modNum = -1})
end
-
- if v.modType == 17 then
- table.insert(elements, {label = " " .. _U('no_turbo'), modType = k, modNum = false})
- end
if v.modType == 14 then -- HORNS
for j = 0, 51, 1 do
@@ -140,7 +200,8 @@ function GetAction(data)
if j == currentMods.modHorns then
_label = GetHornName(j) .. ' - '.. _U('installed') ..''
else
- _label = GetHornName(j) .. ' - $' .. v.price .. ' '
+ price = math.floor(vehiclePrice * v.price / 100)
+ _label = GetHornName(j) .. ' - $' .. price .. ' '
end
table.insert(elements, {label = _label, modType = k, modNum = j})
end
@@ -150,7 +211,8 @@ function GetAction(data)
if j == currentMods.plateIndex then
_label = GetPlatesName(j) .. ' - '.. _U('installed') ..''
else
- _label = GetPlatesName(j) .. ' - $' .. v.price .. ' '
+ price = math.floor(vehiclePrice * v.price / 100)
+ _label = GetPlatesName(j) .. ' - $' .. price .. ' '
end
table.insert(elements, {label = _label, modType = k, modNum = j})
end
@@ -159,15 +221,17 @@ function GetAction(data)
if currentMods.modXenon then
_label = 'Xénon - '.. _U('installed') ..''
else
- _label = 'Xénon - $' .. v.price .. ' '
+ price = math.floor(vehiclePrice * v.price / 100)
+ _label = 'Xénon - $' .. price .. ' '
end
table.insert(elements, {label = _label, modType = k, modNum = true})
elseif v.modType == 'neonColor' or v.modType == 'tyreSmokeColor' then -- NEON & SMOKE COLOR
- local neons = GetNeons()
+ local neons = GetNeons()
+ price = math.floor(vehiclePrice * v.price / 100)
for i=1, #neons, 1 do
table.insert(elements,
{
- label = '' .. neons[i].label .. ' ',
+ label = '' .. neons[i].label .. ' - $' .. price .. '',
modType = k,
modNum = { neons[i].r, neons[i].g, neons[i].b }
}
@@ -177,7 +241,8 @@ function GetAction(data)
local colors = GetColors(data.color)
for j = 1, #colors, 1 do
local _label = ''
- _label = colors[j].label .. ' - $' .. v.price .. ' '
+ price = math.floor(vehiclePrice * v.price / 100)
+ _label = colors[j].label .. ' - $' .. price .. ' '
table.insert(elements, {label = _label, modType = k, modNum = colors[j].index})
end
elseif v.modType == 'windowTint' then -- WINDOWS TINT
@@ -186,7 +251,8 @@ function GetAction(data)
if j == currentMods.modHorns then
_label = GetWindowName(j) .. ' - '.. _U('installed') ..''
else
- _label = GetWindowName(j) .. ' - $' .. v.price .. ' '
+ price = math.floor(vehiclePrice * v.price / 100)
+ _label = GetWindowName(j) .. ' - $' .. price .. ' '
end
table.insert(elements, {label = _label, modType = k, modNum = j})
end
@@ -204,30 +270,27 @@ function GetAction(data)
if j == currentMods.modFrontWheels then
_label = GetLabelText(modName) .. ' - '.. _U('installed') ..''
else
- _label = GetLabelText(modName) .. ' - $' .. v.price .. ' '
+ price = math.floor(vehiclePrice * v.price / 100)
+ _label = GetLabelText(modName) .. ' - $' .. price .. ' '
end
table.insert(elements, {label = _label, modType = 'modFrontWheels', modNum = j, wheelType = v.wheelType, price = v.price})
end
end
- elseif v.modType == 11 or v.modType == 12 or v.modType == 13 or v.modType == 15 or v.modType == 16 then
+ elseif v.modType == 11 or v.modType == 12 or v.modType == 13 or v.modType == 15 or v.modType == 16 or v.modType == 18 then
local modCount = GetNumVehicleMods(vehicle, v.modType) -- UPGRADES
- for j = 0, modCount-1, 1 do
+ for j = 0, modCount, 1 do
local _label = ''
if j == currentMods[k] then
- _label = _U('level') .. j .. ' - '.. _U('installed') ..''
+ _label = 'Niveau ' .. j+1 .. ' - '.. _U('installed') ..''
else
- _label = _U('level') .. j .. ' - $' .. v.price .. ' '
+ price = math.floor(vehiclePrice * v.price[j+1] / 100)
+ _label = 'Niveau ' .. j+1 .. ' - $' .. price .. ' '
end
table.insert(elements, {label = _label, modType = k, modNum = j})
+ if j == modCount-1 then
+ break
+ end
end
- elseif v.modType == 17 then -- TURBO
- local _label = ''
- if currentMods.modTurbo then
- _label = 'Turbo - '.. _U('installed') ..''
- else
- _label = 'Turbo - $' .. v.price .. ' '
- end
- table.insert(elements, {label = _label, modType = k, modNum = true})
else
local modCount = GetNumVehicleMods(vehicle, v.modType) -- BODYPARTS
for j = 0, modCount, 1 do
@@ -237,7 +300,8 @@ function GetAction(data)
if j == currentMods[k] then
_label = GetLabelText(modName) .. ' - '.. _U('installed') ..''
else
- _label = GetLabelText(modName) .. ' - $' .. v.price .. ' '
+ price = math.floor(vehiclePrice * v.price / 100)
+ _label = GetLabelText(modName) .. ' - $' .. price .. ' '
end
table.insert(elements, {label = _label, modType = k, modNum = j})
end
@@ -251,7 +315,7 @@ function GetAction(data)
elseif data.value == 'secondaryRespray' then
table.insert(elements, {label = Config.Colors[i].label, value = 'color2', color = Config.Colors[i].value})
elseif data.value == 'pearlescentRespray' then
- table.insert(elements, {label = Config.Colors[i].label, value = 'pearlescentColor', color = Config.Colors[i].value})
+ table.insert(elements, {label = Config.Colors[i].label, value = 'pearlescentColor', color = Config.Colors[i].value})
elseif data.value == 'modFrontWheelsColor' then
table.insert(elements, {label = Config.Colors[i].label, value = 'wheelColor', color = Config.Colors[i].value})
end
@@ -313,12 +377,10 @@ Citizen.CreateThread(function()
end
end
- if IsControlJustReleased(0, 38) and not lsMenuIsShowed and isInLSMarker then
+ if IsControlJustReleased(0, 38) and not lsMenuIsShowed and isInLSMarker then
lsMenuIsShowed = true
local vehicle = GetVehiclePedIsIn(playerPed, false)
-
- --SetVehicleUndriveable(vehicle, true)
FreezeEntityPosition(vehicle, true)
myCar = ESX.Game.GetVehicleProperties(vehicle)
@@ -333,21 +395,8 @@ Citizen.CreateThread(function()
if not isInLSMarker and hasAlreadyEnteredMarker then
hasAlreadyEnteredMarker = false
- --lsMenuIsShowed = false
- --ESX.UI.Menu.CloseAll()
end
end
end
-end)
-
---char GET_MOD_SLOT_NAME(Vehicle vehicle, int modType)
-
---int GET_NUM_VEHICLE_MODS(Vehicle vehicle, int modType)
-
---char *GET_MOD_TEXT_LABEL(Vehicle vehicle, int modType, int modValue)
-
- --_GET_LABEL_TEXT to get the part name in the games language
-
---local Veh = GetVehiclePedIsIn(GetPlayerPed(-1), true)
---local VehType = GetLabelText(GetDisplayNameFromVehicleModel(GetEntityModel(Veh)))
+end)
\ No newline at end of file
diff --git a/config.lua b/config.lua
index 8238e092..626c9454 100644
--- a/config.lua
+++ b/config.lua
@@ -452,37 +452,37 @@ Config.Menus = {
label = _U('engine'),
parent = 'upgrades',
modType = 11,
- price = 500
+ price = {13.95, 32.56, 65.12, 139.53}
},
modBrakes = {
label = _U('brakes'),
parent = 'upgrades',
modType = 12,
- price = 500
+ price = {4.65, 9.3, 18.6, 13.95}
},
modTransmission = {
label = _U('transmission'),
parent = 'upgrades',
modType = 13,
- price = 500
+ price = {13.95, 20.93, 46.51}
},
modSuspension = {
label = _U('suspension'),
parent = 'upgrades',
modType = 15,
- price = 500
+ price = {3.72, 7.44, 14.88, 29.77, 40.2}
},
modArmor = {
label = _U('armor'),
parent = 'upgrades',
modType = 16,
- price = 500
+ price = {69.77, 116.28, 6666666.6, 6666666.6, 6666666.6, 6666666.6}
},
modTurbo = {
label = _U('turbo'),
parent = 'upgrades',
modType = 17,
- price = 500
+ price = {55.81}
},
cosmetics = {
label = _U('cosmetics'),
@@ -494,8 +494,171 @@ Config.Menus = {
resprays = _U('respray'),
modXenon = _U('headlights'),
plateIndex = _U('licenseplates'),
- wheels = _U('wheels')
+ wheels = _U('wheels'),
+ modPlateHolder = 'Plaque - Contour',
+ modVanityPlate = 'Plaque - Avant',
+ modTrimA = 'Intérieur',
+ modOrnaments = 'Ornements',
+ modDashboard = 'Tableau de bord',
+ modDial = 'Compteur de vitesse',
+ modDoorSpeaker = 'Sono portière',
+ modSeats = 'Sièges',
+ modSteeringWheel = 'Volant',
+ modShifterLeavers = 'Levier de vitesse',
+ modAPlate = 'Plage arrière',
+ modSpeakers = 'Sono',
+ modTrunk = 'Coffre',
+ modHydrolic = 'Hydrolique',
+ modEngineBlock = 'Bloc moteur',
+ modAirFilter = 'Filtre à air',
+ modStruts = 'Struts',
+ modArchCover = 'Cache-roues',
+ modAerials = 'Antennes',
+ modTrimB = 'Ailes',
+ modTank = 'Réservoir',
+ modWindows = 'Fenêtres',
+ modLivery = 'Stickers'
},
+
+ modPlateHolder = {
+ label = 'Plaque - Contour',
+ parent = 'cosmetics',
+ modType = 25,
+ price = 3.49
+ },
+ modVanityPlate = {
+ label = 'Plaque - Avant',
+ parent = 'cosmetics',
+ modType = 26,
+ price = 1.1
+ },
+ modTrimA = {
+ label = 'Intérieur',
+ parent = 'cosmetics',
+ modType = 27,
+ price = 6.98
+ },
+ modOrnaments = {
+ label = 'Ornements',
+ parent = 'cosmetics',
+ modType = 28,
+ price = 0.9
+ },
+ modDashboard = {
+ label = 'Tableau de bord',
+ parent = 'cosmetics',
+ modType = 29,
+ price = 4.65
+ },
+ modDial = {
+ label = 'Compteur de vitesse',
+ parent = 'cosmetics',
+ modType = 30,
+ price = 4.19
+ },
+ modDoorSpeaker = {
+ label = 'Sono portière',
+ parent = 'cosmetics',
+ modType = 31,
+ price = 5.58
+ },
+ modSeats = {
+ label = 'Siège',
+ parent = 'cosmetics',
+ modType = 32,
+ price = 4.65
+ },
+ modSteeringWheel = {
+ label = 'Volant',
+ parent = 'cosmetics',
+ modType = 33,
+ price = 4.19
+ },
+ modShifterLeavers = {
+ label = 'Levier de vitesse',
+ parent = 'cosmetics',
+ modType = 34,
+ price = 3.26
+ },
+ modAPlate = {
+ label = 'Plage arrière',
+ parent = 'cosmetics',
+ modType = 35,
+ price = 4.19
+ },
+ modSpeakers = {
+ label = 'Sono',
+ parent = 'cosmetics',
+ modType = 36,
+ price = 6.98
+ },
+ modTrunk = {
+ label = 'Coffre',
+ parent = 'cosmetics',
+ modType = 37,
+ price = 5.58
+ },
+ modHydrolic = {
+ label = 'Hydrolique',
+ parent = 'cosmetics',
+ modType = 38,
+ price = 5.12
+ },
+ modEngineBlock = {
+ label = 'Bloc moteur',
+ parent = 'cosmetics',
+ modType = 39,
+ price = 5.12
+ },
+ modAirFilter = {
+ label = 'Filtre a air',
+ parent = 'cosmetics',
+ modType = 40,
+ price = 3.72
+ },
+ modStruts = {
+ label = 'Struts',
+ parent = 'cosmetics',
+ modType = 41,
+ price = 6.51
+ },
+ modArchCover = {
+ label = 'Cache-roues',
+ parent = 'cosmetics',
+ modType = 42,
+ price = 4.19
+ },
+ modAerials = {
+ label = 'Antennes',
+ parent = 'cosmetics',
+ modType = 43,
+ price = 1.12
+ },
+ modTrimB = {
+ label = 'Ailes',
+ parent = 'cosmetics',
+ modType = 44,
+ price = 6.05
+ },
+ modTank = {
+ label = 'Réservoir',
+ parent = 'cosmetics',
+ modType = 45,
+ price = 4.19
+ },
+ modWindows = {
+ label = 'Fenêtres',
+ parent = 'cosmetics',
+ modType = 46,
+ price = 4.19
+ },
+ modLivery = {
+ label = 'Stickers',
+ parent = 'cosmetics',
+ modType = 48,
+ price = 9.3
+ },
+
wheels = {
label = _U('wheels'),
parent = 'cosmetics',
@@ -520,56 +683,56 @@ Config.Menus = {
parent = 'modFrontWheelsTypes',
modType = 23,
wheelType = 0,
- price = 500
+ price = 4.65
},
modFrontWheelsType1 = {
label = _U('muscle'),
parent = 'modFrontWheelsTypes',
modType = 23,
wheelType = 1,
- price = 500
+ price = 4.19
},
modFrontWheelsType2 = {
label = _U('lowrider'),
parent = 'modFrontWheelsTypes',
modType = 23,
wheelType = 2,
- price = 500
+ price = 4.65
},
modFrontWheelsType3 = {
label = _U('suv'),
parent = 'modFrontWheelsTypes',
modType = 23,
wheelType = 3,
- price = 500
+ price = 4.19
},
modFrontWheelsType4 = {
label = _U('allterrain'),
parent = 'modFrontWheelsTypes',
modType = 23,
wheelType = 4,
- price = 500
+ price = 4.19
},
modFrontWheelsType5 = {
label = _U('tuning'),
parent = 'modFrontWheelsTypes',
modType = 23,
wheelType = 5,
- price = 500
+ price = 5.12
},
modFrontWheelsType6 = {
label = _U('motorcycle'),
parent = 'modFrontWheelsTypes',
modType = 23,
wheelType = 6,
- price = 500
+ price = 3.26
},
modFrontWheelsType7 = {
label = _U('highend'),
parent = 'modFrontWheelsTypes',
modType = 23,
wheelType = 7,
- price = 500
+ price = 5.12
},
modFrontWheelsColor = {
label = 'Peinture Jantes',
@@ -579,13 +742,13 @@ Config.Menus = {
label = 'Peinture Jantes',
parent = 'modFrontWheelsColor',
modType = 'wheelColor',
- price = 500
+ price = 0.66
},
plateIndex = {
label = _U('licenseplates'),
parent = 'cosmetics',
modType = 'plateIndex',
- price = 500
+ price = 1.1
},
resprays = {
label = _U('respray'),
@@ -610,25 +773,25 @@ Config.Menus = {
label = _U('primary'),
parent = 'primaryRespray',
modType = 'color1',
- price = 500
+ price = 1.12
},
color2 = {
label = _U('secondary'),
parent = 'secondaryRespray',
modType = 'color2',
- price = 500
+ price = 0.66
},
pearlescentColor = {
label = _U('pearlescent'),
parent = 'pearlescentRespray',
modType = 'pearlescentColor',
- price = 500
+ price = 0.88
},
modXenon = {
label = _U('headlights'),
parent = 'cosmetics',
modType = 22,
- price = 500
+ price = 3.72
},
bodyparts = {
label = _U('bodyparts'),
@@ -649,91 +812,91 @@ Config.Menus = {
label = _U('spoilers'),
parent = 'bodyparts',
modType = 0,
- price = 500
+ price = 4.65
},
modFrontBumper = {
label = _U('frontbumper'),
parent = 'bodyparts',
modType = 1,
- price = 500
+ price = 5.12
},
modRearBumper = {
label = _U('rearbumper'),
parent = 'bodyparts',
modType = 2,
- price = 500
+ price = 5.12
},
modSideSkirt = {
label = _U('sideskirt'),
parent = 'bodyparts',
modType = 3,
- price = 500
+ price = 4.65
},
modExhaust = {
label = _U('exhaust'),
parent = 'bodyparts',
modType = 4,
- price = 500
+ price = 5.12
},
modFrame = {
label = _U('cage'),
parent = 'bodyparts',
modType = 5,
- price = 500
+ price = 5.12
},
modGrille = {
label = _U('grille'),
parent = 'bodyparts',
modType = 6,
- price = 500
+ price = 3.72
},
modHood = {
label = _U('hood'),
parent = 'bodyparts',
modType = 7,
- price = 500
+ price = 4.88
},
modFender = {
label = _U('leftfender'),
parent = 'bodyparts',
modType = 8,
- price = 500
+ price = 5.12
},
modRightFender = {
label = _U('rightfender'),
parent = 'bodyparts',
modType = 9,
- price = 500
+ price = 5.12
},
modRoof = {
label = _U('roof'),
parent = 'bodyparts',
modType = 10,
- price = 500
+ price = 5.58
},
windowTint = {
label = _U('windowtint'),
parent = 'cosmetics',
modType = 'windowTint',
- price = 500
+ price = 1.12
},
modHorns = {
label = _U('horns'),
parent = 'cosmetics',
modType = 14,
- price = 500
+ price = 1.12
},
neonColor = {
label = _U('neons'),
parent = 'cosmetics',
modType = 'neonColor',
- price = 500
+ price = 1.12
},
tyreSmokeColor = {
label = _U('tiresmoke'),
parent = 'wheels',
modType = 'tyreSmokeColor',
- price = 500
+ price = 1.12
}
}
diff --git a/server/main.lua b/server/main.lua
index de331d01..45c410b2 100644
--- a/server/main.lua
+++ b/server/main.lua
@@ -1,5 +1,6 @@
ESX = nil
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
+local Vehicles = nil
RegisterServerEvent('esx_lscustom:buyMod')
AddEventHandler('esx_lscustom:buyMod', function(price)
@@ -25,4 +26,27 @@ AddEventHandler('esx_lscustom:refreshOwnedVehicle', function(myCar)
['@vehicle'] = json.encode(myCar)
}
)
+end)
+
+ESX.RegisterServerCallback('esx_lscustom:getVehiclesPrices', function(source, cb)
+
+ if Vehicles == nil then
+ MySQL.Async.fetchAll(
+ 'SELECT * FROM vehicles',
+ {},
+ function(result)
+ local vehicles = {}
+ for i=1, #result, 1 do
+ table.insert(vehicles,{
+ model = result[i].model,
+ price = result[i].price
+ })
+ end
+ Vehicles = vehicles
+ cb(Vehicles)
+ end
+ )
+ else
+ cb(Vehicles)
+ end
end)
\ No newline at end of file