[RELEASE] [ESX] Diamond Casino Lucky Wheel

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)
3 Likes