1
0
Fork 0
forked from Simnation/Main
This commit is contained in:
Nordi98 2025-07-01 08:20:46 +02:00
parent 10000b6b8c
commit 3a764e7c31
4 changed files with 114 additions and 14 deletions

View file

@ -28,6 +28,31 @@ local function playSound(audioName, audioDict)
end)
end
local function promptTrackerName(serialNumber, currentName)
local input = lib.inputDialog(locale('vt_name_tracker') or 'Name Your Tracker', {
{
type = 'input',
label = locale('vt_tracker_name') or 'Tracker Name',
description = locale('vt_name_description') or 'Enter a name to help identify this tracker',
default = currentName or '',
required = true
}
})
if not input or input[1] == '' then return false end
-- Update the tracker name on the server
lib.callback('qb_vehicle_tracker:updateTrackerName', false, function(success)
if success then
uiNotify(locale('vt_name_updated') or 'Tracker name updated', 'success')
else
uiNotify(locale('vt_name_failed') or 'Failed to update tracker name', 'error')
end
end, serialNumber, input[1])
return true
end
-- Events
RegisterNetEvent('qb_vehicle_tracker:client:showTrackerMenu', function(citizenid)
lib.callback('qb_vehicle_tracker:getPlayerTrackers', false, function(trackers)
@ -38,12 +63,45 @@ RegisterNetEvent('qb_vehicle_tracker:client:showTrackerMenu', function(citizenid
local options = {}
for _, tracker in ipairs(trackers) do
local displayName = tracker.name or tracker.vehiclePlate
table.insert(options, {
title = (locale('vt_vehicle_plate') or "Vehicle Plate") .. ': ' .. tracker.vehiclePlate,
description = (locale('vt_serial_number') or "Serial Number") .. ': ' .. tracker.serialNumber,
event = 'qb_vehicle_tracker:client:locateTracker',
title = displayName,
description = (locale('vt_vehicle_plate') or "Vehicle Plate") .. ': ' .. tracker.vehiclePlate,
metadata = {
{label = locale('vt_serial_number') or "Serial Number", value = tracker.serialNumber}
},
icon = 'car',
args = tracker.serialNumber
onSelect = function()
-- Show submenu for this tracker
lib.registerContext({
id = 'tracker_options_' .. tracker.serialNumber,
title = displayName,
menu = 'vt_menu',
options = {
{
title = locale('vt_locate_tracker') or "Locate Vehicle",
description = locale('vt_locate_description') or "Show the vehicle's location on the map",
icon = 'location-dot',
onSelect = function()
TriggerEvent('qb_vehicle_tracker:client:locateTracker', tracker.serialNumber)
end
},
{
title = locale('vt_rename_tracker') or "Rename Tracker",
description = locale('vt_rename_description') or "Change the name of this tracker",
icon = 'pen',
onSelect = function()
promptTrackerName(tracker.serialNumber, tracker.name)
-- Refresh the menu after renaming
Wait(500)
TriggerEvent('qb_vehicle_tracker:client:showTrackerMenu', citizenid)
end
}
}
})
lib.showContext('tracker_options_' .. tracker.serialNumber)
end
})
end
@ -160,7 +218,7 @@ end)
RegisterNetEvent('qb_vehicle_tracker:client:locateTracker', function(serialNumber)
if serialNumber == nil then uiNotify(locale('vt_not_placed'), 'error') return end
lib.callback('qb_vehicle_tracker:getTrackedVehicleBySerial', false, function(veh, vehCoords)
lib.callback('qb_vehicle_tracker:getTrackedVehicleBySerial', false, function(veh, vehCoords, trackerName)
if veh == nil then uiNotify(locale('vt_unable_connect'), 'error') return end
local blip = AddBlipForCoord(vehCoords.x , vehCoords.y, 0.0)
@ -173,7 +231,7 @@ RegisterNetEvent('qb_vehicle_tracker:client:locateTracker', function(serialNumbe
PulseBlip(blip)
SetBlipAsShortRange(blip, false)
BeginTextCommandSetBlipName('STRING')
AddTextComponentSubstringPlayerName('Tracker ' .. veh)
AddTextComponentSubstringPlayerName(trackerName or ('Tracker ' .. veh))
EndTextCommandSetBlipName(blip)
SetNewWaypoint(vehCoords.x , vehCoords.y)