ed
This commit is contained in:
parent
f57a27b8df
commit
4b4bb3b0ab
76 changed files with 6389 additions and 0 deletions
88
resources/[carscripts]/jg-dealerships/client/cl-purchase.lua
Normal file
88
resources/[carscripts]/jg-dealerships/client/cl-purchase.lua
Normal file
|
|
@ -0,0 +1,88 @@
|
|||
---Purchase a vehicle
|
||||
---@param dealershipId string
|
||||
---@param model string|integer
|
||||
---@param colour string
|
||||
---@param purchaseType "society"|"personal"
|
||||
---@param paymentMethod "bank"|"cash"
|
||||
---@param society? any if purchaseType == "society"
|
||||
---@param societyType? any
|
||||
---@param finance boolean
|
||||
---@param directSaleUuid? string
|
||||
---@return boolean success
|
||||
local function purchaseVehicle(dealershipId, model, colour, purchaseType, paymentMethod, society, societyType, finance, directSaleUuid)
|
||||
local dealership = Config.DealershipLocations[dealershipId]
|
||||
local hash = ConvertModelToHash(model)
|
||||
local vehicleType = GetVehicleTypeFromClass(GetVehicleClassFromName(hash))
|
||||
local coords = FindVehicleSpawnCoords(dealership.purchaseSpawn)
|
||||
|
||||
ExitShowroom()
|
||||
|
||||
local success, netId, vehicleId, plate, price = lib.callback.await("jg-dealerships:server:purchase-vehicle", false, dealershipId, coords, purchaseType, society, societyType, model, colour, paymentMethod, finance, directSaleUuid)
|
||||
local vehicle = netId and NetToVeh(netId) or nil --[[@as integer|false]]
|
||||
if not success then return false end
|
||||
|
||||
-- TODO WIP: new spawning logic
|
||||
|
||||
if Config.SpawnVehiclesWithServerSetter and not vehicle then
|
||||
print("^1[ERROR] There was a problem spawning in your vehicle")
|
||||
return false
|
||||
end
|
||||
|
||||
-- Server spawning disabled, create vehicle on client
|
||||
if not vehicle and not Config.SpawnVehiclesWithServerSetter then
|
||||
local warp = not Config.DoNotSpawnInsideVehicle
|
||||
local properties = {
|
||||
plate = plate,
|
||||
colour = colour
|
||||
}
|
||||
|
||||
vehicle = SpawnVehicleClient(vehicleId or 0, model, plate, coords, warp, properties, "purchase")
|
||||
if not vehicle then return false end
|
||||
|
||||
netId = VehToNet(vehicle)
|
||||
end
|
||||
|
||||
if not vehicle then return false end
|
||||
|
||||
-- TODO: refactor this maybe? it's also a vulnerable event for people that know what they are doing
|
||||
local props = Framework.Client.GetVehicleProperties(vehicle)
|
||||
TriggerServerEvent("jg-dealerships:server:update-purchased-vehicle-props", purchaseType, society, plate, props)
|
||||
-- TODO END
|
||||
|
||||
TriggerEvent("jg-dealerships:client:purchase-vehicle:config", vehicle, plate, purchaseType, price, paymentMethod, finance)
|
||||
TriggerServerEvent("jg-dealerships:server:purchase-vehicle:config", netId, plate, purchaseType, price, paymentMethod, finance)
|
||||
|
||||
-- If they are running jg-advancedgarages, register the vehicle is out & set vehicle in valid garage ID
|
||||
if GetResourceState("jg-advancedgarages") == "started" then
|
||||
TriggerServerEvent("jg-advancedgarages:server:register-vehicle-outside", plate, netId)
|
||||
TriggerServerEvent("jg-advancedgarages:server:dealerships-send-to-default-garage", vehicleType, plate)
|
||||
end
|
||||
|
||||
DoScreenFadeIn(500)
|
||||
|
||||
return true
|
||||
end
|
||||
|
||||
RegisterNUICallback("purchase-vehicle", function(data, cb)
|
||||
local dealershipId = data.dealership
|
||||
local model = data.vehicle
|
||||
local vehicleColor = data.color
|
||||
local purchaseType = data.purchaseType
|
||||
local paymentMethod = data.paymentMethod
|
||||
local finance = data.finance
|
||||
local society = data.society
|
||||
local societyType = data.societyType
|
||||
local directSaleUuid = data.directSaleUuid
|
||||
|
||||
DoScreenFadeOut(500)
|
||||
Wait(500)
|
||||
|
||||
local res = purchaseVehicle(dealershipId, model, vehicleColor, purchaseType, paymentMethod, society, societyType, finance, directSaleUuid)
|
||||
|
||||
if not res then
|
||||
DoScreenFadeIn(0)
|
||||
return cb({error = true})
|
||||
end
|
||||
|
||||
cb(true)
|
||||
end)
|
||||
Loading…
Add table
Add a link
Reference in a new issue