mirror of
https://github.com/esx-framework/esx_core.git
synced 2026-09-04 08:13:21 +00:00
ADD BENNY'S
This commit is contained in:
+101
-52
@@ -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) .. ' - <span style="color:cornflowerblue;">'.. _U('installed') ..'</span>'
|
||||
else
|
||||
_label = GetHornName(j) .. ' - <span style="color:green;">$' .. v.price .. ' </span>'
|
||||
price = math.floor(vehiclePrice * v.price / 100)
|
||||
_label = GetHornName(j) .. ' - <span style="color:green;">$' .. price .. ' </span>'
|
||||
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) .. ' - <span style="color:cornflowerblue;">'.. _U('installed') ..'</span>'
|
||||
else
|
||||
_label = GetPlatesName(j) .. ' - <span style="color:green;">$' .. v.price .. ' </span>'
|
||||
price = math.floor(vehiclePrice * v.price / 100)
|
||||
_label = GetPlatesName(j) .. ' - <span style="color:green;">$' .. price .. ' </span>'
|
||||
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 - <span style="color:cornflowerblue;">'.. _U('installed') ..'</span>'
|
||||
else
|
||||
_label = 'Xénon - <span style="color:green;">$' .. v.price .. ' </span>'
|
||||
price = math.floor(vehiclePrice * v.price / 100)
|
||||
_label = 'Xénon - <span style="color:green;">$' .. price .. ' </span>'
|
||||
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 = '<span style="color:rgb(' .. neons[i].r .. ',' .. neons[i].g .. ',' .. neons[i].b .. ');">' .. neons[i].label .. ' </span>',
|
||||
label = '<span style="color:rgb(' .. neons[i].r .. ',' .. neons[i].g .. ',' .. neons[i].b .. ');">' .. neons[i].label .. ' - <span style="color:green;">$' .. price .. '</span>',
|
||||
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 .. ' - <span style="color:green;">$' .. v.price .. ' </span>'
|
||||
price = math.floor(vehiclePrice * v.price / 100)
|
||||
_label = colors[j].label .. ' - <span style="color:green;">$' .. price .. ' </span>'
|
||||
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) .. ' - <span style="color:cornflowerblue;">'.. _U('installed') ..'</span>'
|
||||
else
|
||||
_label = GetWindowName(j) .. ' - <span style="color:green;">$' .. v.price .. ' </span>'
|
||||
price = math.floor(vehiclePrice * v.price / 100)
|
||||
_label = GetWindowName(j) .. ' - <span style="color:green;">$' .. price .. ' </span>'
|
||||
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) .. ' - <span style="color:cornflowerblue;">'.. _U('installed') ..'</span>'
|
||||
else
|
||||
_label = GetLabelText(modName) .. ' - <span style="color:green;">$' .. v.price .. ' </span>'
|
||||
price = math.floor(vehiclePrice * v.price / 100)
|
||||
_label = GetLabelText(modName) .. ' - <span style="color:green;">$' .. price .. ' </span>'
|
||||
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 .. ' - <span style="color:cornflowerblue;">'.. _U('installed') ..'</span>'
|
||||
_label = 'Niveau ' .. j+1 .. ' - <span style="color:cornflowerblue;">'.. _U('installed') ..'</span>'
|
||||
else
|
||||
_label = _U('level') .. j .. ' - <span style="color:green;">$' .. v.price .. ' </span>'
|
||||
price = math.floor(vehiclePrice * v.price[j+1] / 100)
|
||||
_label = 'Niveau ' .. j+1 .. ' - <span style="color:green;">$' .. price .. ' </span>'
|
||||
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 - <span style="color:cornflowerblue;">'.. _U('installed') ..'</span>'
|
||||
else
|
||||
_label = 'Turbo - <span style="color:green;">$' .. v.price .. ' </span>'
|
||||
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) .. ' - <span style="color:cornflowerblue;">'.. _U('installed') ..'</span>'
|
||||
else
|
||||
_label = GetLabelText(modName) .. ' - <span style="color:green;">$' .. v.price .. ' </span>'
|
||||
price = math.floor(vehiclePrice * v.price / 100)
|
||||
_label = GetLabelText(modName) .. ' - <span style="color:green;">$' .. price .. ' </span>'
|
||||
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)
|
||||
+199
-36
@@ -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
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
Reference in New Issue
Block a user