Here’s my solution for adding vehicles to the database. Just be aware that I have it modified to choose a random vehicle from a list so if you want to hardcode the car they win you will need to stick to the old format. I’m sure someone can optimize this further, this is just how I got it working.
esxp_tpnrp_luckywheel > client > client.lua
RegisterNetEvent("esx_tpnrp_luckywheel:winCar")
AddEventHandler("esx_tpnrp_luckywheel:winCar", function()
ESX.Game.SpawnVehicle(carmodel, { x = 933.29,y = -2.82, z = 78.76 }, 144.6, function (vehicle)
local playerPed = PlayerPedId()
TaskWarpPedIntoVehicle(playerPed, vehicle, -1)
local newPlate = exports['esx_vehicleshop']:GeneratePlate()
local vehicle = GetVehiclePedIsIn(playerPed, false)
local vehicleProps = ESX.Game.GetVehicleProperties(vehicle)
vehicleProps.plate = newPlate
SetVehicleNumberPlateText(vehicle, newPlate)
TriggerServerEvent('esx_vehicleshop:setVehicleOwned', vehicleProps)
end)
FreezeEntityPosition(playerPed, false)
SetEntityVisible(playerPed, true)
end)
function spawnveh()
Zones = {
VehicleSpawnPoint = {
Pos = {x = 953.7, y = 70.08, z = 75.23},
Heading = 182.73
}
}
-- local prizeCar = ''
local randomCar = math.random(1, 71)
if randomCar == 1 then
prizeCar = 'xls2'
elseif randomCar == 2 then
prizeCar = 'baller5'
elseif randomCar == 3 then
prizeCar = 'dukes2'
elseif randomCar == 4 then
prizeCar = 'impaler2'
elseif randomCar == 5 then
prizeCar = 'impaler3'
elseif randomCar == 6 then
prizeCar = 'impaler4'
elseif randomCar == 7 then
prizeCar = 'imperator'
elseif randomCar == 8 then
prizeCar = 'imperator2'
elseif randomCar == 9 then
prizeCar = 'imperator3'
elseif randomCar == 10 then
prizeCar = 'slamvan5'
elseif randomCar == 11 then
prizeCar = 'slamvan6'
elseif randomCar == 12 then
prizeCar = 'blista3'
elseif randomCar == 13 then
prizeCar = 'comet4'
elseif randomCar == 14 then
prizeCar = 'coquette4'
elseif randomCar == 15 then
prizeCar = 'kuruma2'
elseif randomCar == 16 then
prizeCar = 'paragon2'
elseif randomCar == 17 then
prizeCar = 'schafter5'
elseif randomCar == 18 then
prizeCar = 'specter2'
elseif randomCar == 19 then
prizeCar = 'zr380'
elseif randomCar == 20 then
prizeCar = 'zr3802'
elseif randomCar == 21 then
prizeCar = 'zr3803'
elseif randomCar == 22 then
prizeCar = 'nero2'
elseif randomCar == 23 then
prizeCar = 'vigilante'
elseif randomCar == 24 then
prizeCar = 'voltic2'
elseif randomCar == 25 then
prizeCar = 'deathbike'
elseif randomCar == 26 then
prizeCar = 'deathbike2'
elseif randomCar == 27 then
prizeCar = 'deathbike3'
elseif randomCar == 28 then
prizeCar = 'diablous2'
elseif randomCar == 29 then
prizeCar = 'hakuchou2'
elseif randomCar == 30 then
prizeCar = 'oppressor2'
elseif randomCar == 31 then
prizeCar = 'rrocket'
elseif randomCar == 32 then
prizeCar = 'sanctus'
elseif randomCar == 33 then
prizeCar = 'shotaro'
elseif randomCar == 34 then
prizeCar = 'blazer'
elseif randomCar == 35 then
prizeCar = 'blazer3'
elseif randomCar == 36 then
prizeCar = 'blazer4'
elseif randomCar == 37 then
prizeCar = 'blazer5'
elseif randomCar == 38 then
prizeCar = 'dune2'
elseif randomCar == 39 then
prizeCar = 'dune3'
elseif randomCar == 40 then
prizeCar = 'dune4'
elseif randomCar == 41 then
prizeCar = 'dune5'
elseif randomCar == 42 then
prizeCar = 'insurgent'
elseif randomCar == 43 then
prizeCar = 'insurgent2'
elseif randomCar == 44 then
prizeCar = 'insurgent3'
elseif randomCar == 45 then
prizeCar = 'menacer'
elseif randomCar == 46 then
prizeCar = 'technical'
elseif randomCar == 47 then
prizeCar = 'technical2'
elseif randomCar == 48 then
prizeCar = 'trophytruck'
elseif randomCar == 49 then
prizeCar = 'trophytruck2'
elseif randomCar == 50 then
prizeCar = 'zhaba'
elseif randomCar == 51 then
prizeCar = 'rumpo3'
elseif randomCar == 52 then
prizeCar = 'apc'
elseif randomCar == 54 then
prizeCar = 'barrage'
elseif randomCar == 55 then
prizeCar = 'halftruck'
elseif randomCar == 56 then
prizeCar = 'rhino'
elseif randomCar == 57 then
prizeCar = 'scarab'
elseif randomCar == 58 then
prizeCar = 'scarab2'
elseif randomCar == 59 then
prizeCar = 'scarab3'
elseif randomCar == 60 then
prizeCar = 'thruster'
elseif randomCar == 61 then
prizeCar = 'hauler'
elseif randomCar == 62 then
prizeCar = 'hauler2'
elseif randomCar == 63 then
prizeCar = 'packer'
elseif randomCar == 64 then
prizeCar = 'phantom'
elseif randomCar == 65 then
prizeCar = 'phantom2'
elseif randomCar == 66 then
prizeCar = 'phantom3'
elseif randomCar == 67 then
prizeCar = 'formula'
elseif randomCar == 68 then
prizeCar = 'formula2'
elseif randomCar == 69 then
prizeCar = 'openwheel1'
elseif randomCar == 70 then
prizeCar = 'openwheel2'
end
carmodel = GetHashKey(prizeCar)
-- carmodel = GetHashKey('lp700r')
RequestModel(carmodel)
while not HasModelLoaded(carmodel) do
Citizen.Wait(0)
end
ESX.Game.SpawnLocalVehicle(carmodel, Zones.VehicleSpawnPoint.Pos, Zones.VehicleSpawnPoint.Heading, function(vehicle)
-- ESX.Game.SpawnLocalVehicle('lp700r', Zones.VehicleSpawnPoint.Pos, Zones.VehicleSpawnPoint.Heading, function(vehicle)
Citizen.Wait(10)
SetEntityAsMissionEntity(vehicle, true, true)
SetVehicleHasBeenOwnedByPlayer(vehicle, true)
SetVehicleOnGroundProperly(vehicle)
Citizen.Wait(10)
FreezeEntityPosition(vehicle, true)
SetEntityInvincible(vehicle, true)
SetVehicleDoorsLocked(vehicle, 2)
_lambo = vehicle
table.insert(casinoprops, _lambo)
end)
end
esx_vehicleshop > server > main.lua (for some reason this event was missing from the entire file, if that’s the case just add it at the bottom)
RegisterServerEvent('esx_vehicleshop:setVehicleOwned')
AddEventHandler('esx_vehicleshop:setVehicleOwned', function (vehicleProps)
local _source = source
local xPlayer = ESX.GetPlayerFromId(_source)
MySQL.Async.execute('INSERT INTO owned_vehicles (owner, plate, vehicle) VALUES (@owner, @plate, @vehicle)',
{
['@owner'] = xPlayer.identifier,
['@plate'] = vehicleProps.plate,
['@vehicle'] = json.encode(vehicleProps)
}, function (rowsChanged)
end)
end)