forked from Simnation/Main
ed
This commit is contained in:
parent
1032235744
commit
cb8b683d43
292 changed files with 15840 additions and 0 deletions
243
resources/[phone]/roadphone/client/valet.lua
Normal file
243
resources/[phone]/roadphone/client/valet.lua
Normal file
|
@ -0,0 +1,243 @@
|
|||
local inVehicle = false
|
||||
local fizzPed = nil
|
||||
local spawnRadius = Config.ValetRadius
|
||||
local mechBlip = nil
|
||||
|
||||
RegisterNUICallback('searchCar', function(data, cb)
|
||||
QBCore.Functions.TriggerCallback("roadphone:valet:loadVehicle", function(vehicle, coords)
|
||||
|
||||
if not vehicle and not coords then
|
||||
return
|
||||
end
|
||||
|
||||
if vehicle == false then
|
||||
if coords then
|
||||
SetNewWaypoint(coords.x, coords.y)
|
||||
TriggerEvent("roadphone:sendNotification", {
|
||||
apptitle = 'APP_VALET_NAME',
|
||||
title = 'APP_VALET_TITLE_WAYPOINT',
|
||||
img = "/public/img/Apps/light_mode/valet.webp"
|
||||
})
|
||||
|
||||
end
|
||||
return;
|
||||
end
|
||||
|
||||
local plate = vehicle[1].plate
|
||||
|
||||
local gameVehicles = GetGamePool('CVehicle')
|
||||
|
||||
for i = 1, #gameVehicles do
|
||||
local vehicle = gameVehicles[i]
|
||||
|
||||
if DoesEntityExist(vehicle) then
|
||||
if GetVehicleNumberPlateText(vehicle) == plate then
|
||||
local vehicleCoords = GetEntityCoords(vehicle)
|
||||
SetNewWaypoint(vehicleCoords.x, vehicleCoords.y)
|
||||
|
||||
TriggerEvent("roadphone:sendNotification", {
|
||||
apptitle = "APP_VALET_NAME",
|
||||
title = "APP_VALET_TITLE_WAYPOINT",
|
||||
img = "/public/img/Apps/light_mode/valet.webp"
|
||||
})
|
||||
cb('ok')
|
||||
return
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
TriggerEvent("roadphone:sendNotification", {
|
||||
apptitle = "APP_VALET_NAME",
|
||||
title = "APP_VALET_TITLE_CARNOTOUT",
|
||||
img = "/public/img/Apps/light_mode/valet.webp"
|
||||
})
|
||||
end, data.plate)
|
||||
|
||||
cb('ok')
|
||||
end)
|
||||
|
||||
RegisterNUICallback("deliverormarkcar", function(data, cb)
|
||||
QBCore.Functions.TriggerCallback("roadphone:valet:loadVehicle", function(vehicle, coords)
|
||||
|
||||
if not vehicle and not coords then
|
||||
return
|
||||
end
|
||||
|
||||
if vehicle == false then
|
||||
if coords then
|
||||
SetNewWaypoint(coords.x, coords.y)
|
||||
TriggerEvent("roadphone:sendNotification", {
|
||||
apptitle = 'APP_VALET_NAME',
|
||||
title = 'APP_VALET_TITLE_WAYPOINT',
|
||||
img = "/public/img/Apps/light_mode/valet.webp"
|
||||
})
|
||||
|
||||
end
|
||||
return;
|
||||
end
|
||||
|
||||
local plate = vehicle[1].plate
|
||||
|
||||
local gameVehicles = GetGamePool('CVehicle')
|
||||
|
||||
for i = 1, #gameVehicles do
|
||||
local vehicle = gameVehicles[i]
|
||||
|
||||
if DoesEntityExist(vehicle) then
|
||||
if GetVehicleNumberPlateText(vehicle) == plate then
|
||||
local vehicleCoords = GetEntityCoords(vehicle)
|
||||
SetNewWaypoint(vehicleCoords.x, vehicleCoords.y)
|
||||
TriggerEvent("roadphone:sendNotification", {
|
||||
apptitle = 'APP_VALET_NAME',
|
||||
title = 'APP_VALET_TITLE_WAYPOINT',
|
||||
img = "/public/img/Apps/light_mode/valet.webp"
|
||||
})
|
||||
cb('ok')
|
||||
return
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
QBCore.Functions.TriggerCallback("roadphone:valet:checkMoney", function(cb)
|
||||
|
||||
if cb then
|
||||
SpawnVehicle(vehicle[1].vehicle, plate, json.decode(vehicle[1].mods))
|
||||
end
|
||||
end)
|
||||
|
||||
end, data.plate)
|
||||
|
||||
cb('ok')
|
||||
|
||||
end)
|
||||
|
||||
function SpawnVehicle(vehicle, plate, mods)
|
||||
|
||||
local player = PlayerPedId()
|
||||
local playerPos = GetEntityCoords(player)
|
||||
local found, spawnPos, spawnHeading = GetClosestVehicleNodeWithHeading(playerPos.x + math.random(-100, 100),
|
||||
playerPos.y + math.random(-100, 100), playerPos.z, 0, 3, 0)
|
||||
|
||||
local driverhash = GetHashKey(Config.ValetPedModel)
|
||||
local vehhash = GetHashKey(vehicle)
|
||||
|
||||
while not HasModelLoaded(driverhash) and RequestModel(driverhash) or not HasModelLoaded(vehhash) and
|
||||
RequestModel(vehhash) do
|
||||
RequestModel(driverhash)
|
||||
RequestModel(vehhash)
|
||||
Wait(0)
|
||||
end
|
||||
|
||||
Wait(500)
|
||||
|
||||
QBCore.Functions.SpawnVehicle(vehicle, function(callback_vehicle)
|
||||
|
||||
QBCore.Functions.SetVehicleProperties(callback_vehicle, mods)
|
||||
SetVehicleEngineOn(callback_vehicle, true)
|
||||
|
||||
fizzPed = CreatePedInsideVehicle(callback_vehicle, 26, driverhash, -1, true, false)
|
||||
mechBlip = AddBlipForEntity(callback_vehicle)
|
||||
SetBlipSprite(mechBlip, 225) -- Blip Spawning.
|
||||
SetBlipFlashes(mechBlip, true)
|
||||
SetBlipColour(mechBlip, 0)
|
||||
SetBlipFlashes(mechBlip, false)
|
||||
BeginTextCommandSetBlipName("STRING")
|
||||
AddTextComponentString(plate)
|
||||
EndTextCommandSetBlipName(mechBlip)
|
||||
|
||||
inVehicle = true
|
||||
GiveCarKeys(GetVehicleNumberPlateText(callback_vehicle), vehicle.model)
|
||||
TriggerServerEvent("roadphone:valetCarSetOutside", plate, vehicle)
|
||||
TaskVehicle(callback_vehicle)
|
||||
end, spawnPos, true)
|
||||
|
||||
end
|
||||
|
||||
function TaskVehicle(vehicle)
|
||||
while inVehicle do
|
||||
Wait(750)
|
||||
local pedcoords = GetEntityCoords(PlayerPedId())
|
||||
local plycoords = GetEntityCoords(fizzPed)
|
||||
local dist = GetDistanceBetweenCoords(plycoords, pedcoords.x, pedcoords.y, pedcoords.z, false)
|
||||
|
||||
if dist <= 25.0 then
|
||||
TaskVehicleDriveToCoord(fizzPed, vehicle, pedcoords.x, pedcoords.y, pedcoords.z, 10.0, 1, vehhash, 786475,
|
||||
5.0, 1)
|
||||
SetVehicleFixed(vehicle)
|
||||
if dist <= 7.5 then
|
||||
LeaveIt(vehicle)
|
||||
break
|
||||
else
|
||||
Wait(500)
|
||||
end
|
||||
else
|
||||
TaskVehicleDriveToCoord(fizzPed, vehicle, pedcoords.x, pedcoords.y, pedcoords.z, 15.0, 1, vehhash, 786475,
|
||||
5.0, 1)
|
||||
Wait(500)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function LeaveIt(vehicle)
|
||||
TaskLeaveVehicle(fizzPed, vehicle, 14)
|
||||
inVehicle = false
|
||||
while IsPedInAnyVehicle(fizzPed, false) do
|
||||
Wait(0)
|
||||
end
|
||||
|
||||
Wait(500)
|
||||
TaskWanderStandard(fizzPed, 10.0, 10)
|
||||
Wait(10000)
|
||||
DeleteEntity(fizzPed)
|
||||
RemoveBlip(mechBlip)
|
||||
mechBlip = nil
|
||||
fizzPed = nil
|
||||
end
|
||||
|
||||
|
||||
RegisterNUICallback("getCars", function(data, cb)
|
||||
QBCore.Functions.TriggerCallback("roadphone:valet:getCars", function(data)
|
||||
|
||||
for i = 1, #data do
|
||||
if(data[i]) then
|
||||
local vehiclename = data[i].vehicle
|
||||
|
||||
local vehiclemodelnames = getVehicleNames()
|
||||
|
||||
for k, v in pairs(vehiclemodelnames) do
|
||||
if v[1] == model then
|
||||
vehiclename = v[2]
|
||||
end
|
||||
end
|
||||
|
||||
data[i].vehicle = {}
|
||||
data[i].vehicle.model = vehiclename
|
||||
end
|
||||
end
|
||||
|
||||
SendNUIMessage({
|
||||
event = "setValetCars",
|
||||
cars = data
|
||||
})
|
||||
end)
|
||||
cb('ok')
|
||||
end)
|
||||
|
||||
|
||||
if Config.CarDebug then
|
||||
CreateThread(function()
|
||||
|
||||
while true do
|
||||
|
||||
Wait(8000)
|
||||
|
||||
if IsPedInAnyVehicle(PlayerPedId(), false) then
|
||||
local vehicle = GetVehiclePedIsIn(PlayerPedId(), false)
|
||||
|
||||
print("[DEBUG] Car Name: " .. GetDisplayNameFromVehicleModel(GetEntityModel(vehicle)))
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
end)
|
||||
end
|
Loading…
Add table
Add a link
Reference in a new issue