mirror of
https://github.com/esx-framework/esx_core.git
synced 2026-09-01 15:01:45 +00:00
Fixed #3, fixed exploit storing boat when not in driver seat, fixed storing boat not owned
- Async task for buying boats aswell
This commit is contained in:
+9
-6
@@ -154,11 +154,10 @@ function OpenBoatGarage(garage)
|
||||
}, function (data, menu)
|
||||
|
||||
-- make sure the spawn point isn't blocked
|
||||
local closestVehicle = GetClosestVehicle(garage.SpawnPoint.x, garage.SpawnPoint.y, garage.SpawnPoint.z, 3.0, 0, 71)
|
||||
local playerPed = PlayerPedId()
|
||||
local vehicleProps = data.current.vehicleProps
|
||||
local playerPed = PlayerPedId()
|
||||
local vehicleProps = data.current.vehicleProps
|
||||
|
||||
if not DoesEntityExist(closestVehicle) then
|
||||
if ESX.Game.IsSpawnPointClear(garage.SpawnPoint, 4.0) then
|
||||
TriggerServerEvent('esx_boat:takeOutVehicle', vehicleProps.plate)
|
||||
ESX.ShowNotification(_U('garage_taken'))
|
||||
|
||||
@@ -222,8 +221,12 @@ function StoreBoatInGarage(vehicle)
|
||||
local vehicleProps = ESX.Game.GetVehicleProperties(vehicle)
|
||||
|
||||
ESX.TriggerServerCallback('esx_boat:storeVehicle', function (rowsChanged)
|
||||
ESX.Game.DeleteVehicle(vehicle)
|
||||
ESX.ShowNotification(_U('garage_stored'))
|
||||
if rowsChanged > 0 then
|
||||
ESX.Game.DeleteVehicle(vehicle)
|
||||
ESX.ShowNotification(_U('garage_stored'))
|
||||
else
|
||||
ESX.ShowNotification(_U('garage_notowner'))
|
||||
end
|
||||
end, vehicleProps.plate)
|
||||
|
||||
end
|
||||
|
||||
+2
-2
@@ -63,10 +63,10 @@ AddEventHandler('esx_boat:hasEnteredMarker', function(zone, zoneNum)
|
||||
if IsPedInAnyVehicle(playerPed, false) then
|
||||
local vehicle = GetVehiclePedIsIn(playerPed, false)
|
||||
|
||||
if DoesEntityExist(vehicle) then
|
||||
if DoesEntityExist(vehicle) and GetPedInVehicleSeat(vehicle, -1) == playerPed then
|
||||
CurrentAction = 'garage_in'
|
||||
CurrentActionMsg = _U('garage_store')
|
||||
CurrentActionData = {vehicle = vehicle}
|
||||
CurrentActionData = { vehicle = vehicle }
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
@@ -16,6 +16,7 @@ Locales['en'] = {
|
||||
['garage_stored'] = 'the boat has been safely stored in your garage!',
|
||||
['garage_noboats'] = 'you don\'t have any stored boats! Visit the ~y~boat shop~s~ to buy one.',
|
||||
['garage_blocked'] = 'the boat cannot be taken out because another vehicle is blocking the spawn point!',
|
||||
['garage_notowner'] = 'you don\'t own this boat!',
|
||||
|
||||
-- license
|
||||
['license_menu'] = 'buy Boat License?',
|
||||
|
||||
+3
-4
@@ -39,9 +39,9 @@ ESX.RegisterServerCallback('esx_boat:buyBoat', function (source, cb, vehicleProp
|
||||
['@plate'] = vehicleProps.plate,
|
||||
['@vehicle'] = json.encode(vehicleProps),
|
||||
['@vehicleType'] = 'boat'
|
||||
})
|
||||
|
||||
cb(true)
|
||||
}, function (rowsChanged)
|
||||
cb(true)
|
||||
end)
|
||||
else
|
||||
cb(false)
|
||||
end
|
||||
@@ -73,7 +73,6 @@ ESX.RegisterServerCallback('esx_boat:storeVehicle', function (source, cb, plate)
|
||||
end)
|
||||
|
||||
ESX.RegisterServerCallback('esx_boat:getGarage', function (source, cb)
|
||||
|
||||
MySQL.Async.fetchAll('SELECT * FROM owned_vehicles WHERE owner = @owner AND vehicleType = @vehicleType AND stored = @stored',
|
||||
{
|
||||
['@owner'] = GetPlayerIdentifiers(source)[1],
|
||||
|
||||
Reference in New Issue
Block a user