forked from Simnation/Main
ed
This commit is contained in:
parent
8c28aa9419
commit
a8696c338d
4 changed files with 206 additions and 230 deletions
|
@ -61,8 +61,6 @@ local function ShowVehicleActions(vehicle, playerJob)
|
|||
actionOptions = {
|
||||
{value = 'move', label = '🏠 In Garage stellen'},
|
||||
{value = 'delete', label = '🗑️ Von Map löschen'},
|
||||
{value = 'impound', label = '🚫 Beschlagnahmen'},
|
||||
{value = 'release', label = '✅ Aus Beschlagnahme freigeben'},
|
||||
{value = 'repair', label = '🔧 Reparieren'}
|
||||
}
|
||||
elseif playerJob.jobName == 'mechanic' then
|
||||
|
@ -87,15 +85,13 @@ local function ShowVehicleActions(vehicle, playerJob)
|
|||
actionOptions = {
|
||||
{value = 'move', label = '🏠 In Garage stellen'},
|
||||
{value = 'delete', label = '🗑️ Von Map löschen'},
|
||||
{value = 'repair', label = '🔧 Reparieren'},
|
||||
{value = 'impound', label = '🚫 Beschlagnahmen'},
|
||||
{value = 'release', label = '✅ Aus Beschlagnahme freigeben'}
|
||||
{value = 'repair', label = '🔧 Reparieren'}
|
||||
}
|
||||
end
|
||||
}
|
||||
|
||||
local vehicleLabel = QBCore.Shared.Vehicles[vehicle.vehicle]?.name or vehicle.vehicle
|
||||
|
||||
local input = lib.inputDialog('Fahrzeug Aktionen - ' .. vehicleLabel .. ' (' .. vehicle.plate .. ')', {
|
||||
local input = lib.inputDialog('Fahrzeug Aktionen - ' .. (vehicle.name or vehicleLabel) .. ' (' .. vehicle.plate .. ')', {
|
||||
{
|
||||
type = 'select',
|
||||
label = 'Aktion wählen (' .. playerJob.jobLabel .. ')',
|
||||
|
@ -106,7 +102,7 @@ local function ShowVehicleActions(vehicle, playerJob)
|
|||
{
|
||||
type = 'select',
|
||||
label = 'Garage auswählen',
|
||||
description = 'Nur für "In Garage stellen" und "Freigeben" benötigt',
|
||||
description = 'Nur für "In Garage stellen" benötigt',
|
||||
options = garageOptions,
|
||||
required = false
|
||||
}
|
||||
|
@ -129,7 +125,7 @@ local function ShowVehicleActions(vehicle, playerJob)
|
|||
elseif action == 'delete' then
|
||||
local alert = lib.alertDialog({
|
||||
header = 'Fahrzeug löschen',
|
||||
content = 'Bist du sicher, dass du das Fahrzeug ' .. vehicleLabel .. ' (' .. vehicle.plate .. ') von der Map löschen möchtest?',
|
||||
content = 'Bist du sicher, dass du das Fahrzeug ' .. (vehicle.name or vehicleLabel) .. ' (' .. vehicle.plate .. ') von der Map löschen möchtest?',
|
||||
centered = true,
|
||||
cancel = true
|
||||
})
|
||||
|
@ -139,41 +135,13 @@ local function ShowVehicleActions(vehicle, playerJob)
|
|||
elseif action == 'repair' then
|
||||
local alert = lib.alertDialog({
|
||||
header = 'Fahrzeug reparieren',
|
||||
content = 'Möchtest du das Fahrzeug ' .. vehicleLabel .. ' (' .. vehicle.plate .. ') vollständig reparieren?',
|
||||
content = 'Möchtest du das Fahrzeug ' .. (vehicle.name or vehicleLabel) .. ' (' .. vehicle.plate .. ') vollständig reparieren?',
|
||||
centered = true,
|
||||
cancel = true
|
||||
})
|
||||
if alert == 'confirm' then
|
||||
TriggerServerEvent('vehicleadmin:repairVehicle', vehicle.plate)
|
||||
end
|
||||
elseif action == 'impound' then
|
||||
local alert = lib.alertDialog({
|
||||
header = 'Fahrzeug beschlagnahmen',
|
||||
content = 'Möchtest du das Fahrzeug ' .. vehicleLabel .. ' (' .. vehicle.plate .. ') beschlagnahmen? (500€ Gebühr)',
|
||||
centered = true,
|
||||
cancel = true
|
||||
})
|
||||
if alert == 'confirm' then
|
||||
TriggerServerEvent('vehicleadmin:impoundVehicle', vehicle.plate)
|
||||
end
|
||||
elseif action == 'release' then
|
||||
if not garage then
|
||||
lib.notify({
|
||||
title = 'Fehler',
|
||||
description = 'Bitte wähle eine Garage für die Freigabe aus',
|
||||
type = 'error'
|
||||
})
|
||||
return
|
||||
end
|
||||
local alert = lib.alertDialog({
|
||||
header = 'Fahrzeug freigeben',
|
||||
content = 'Möchtest du das Fahrzeug ' .. vehicleLabel .. ' (' .. vehicle.plate .. ') aus der Beschlagnahme freigeben?',
|
||||
centered = true,
|
||||
cancel = true
|
||||
})
|
||||
if alert == 'confirm' then
|
||||
TriggerServerEvent('vehicleadmin:releaseFromImpound', vehicle.plate, garage)
|
||||
end
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
@ -196,7 +164,7 @@ local function ShowPlayerVehicles(citizenid, playerName, playerJob)
|
|||
local options = {}
|
||||
for i = 1, #vehicles do
|
||||
local vehicle = vehicles[i]
|
||||
local vehicleLabel = QBCore.Shared.Vehicles[vehicle.vehicle]?.name or vehicle.vehicle
|
||||
local vehicleLabel = vehicle.name or QBCore.Shared.Vehicles[vehicle.vehicle]?.name or vehicle.vehicle
|
||||
|
||||
-- Color coding based on state
|
||||
local icon = 'car'
|
||||
|
@ -213,14 +181,22 @@ local function ShowPlayerVehicles(citizenid, playerName, playerJob)
|
|||
iconColor = '#ef4444'
|
||||
end
|
||||
|
||||
local description = GetStateText(vehicle.state) .. ' | 🏠 ' .. (vehicle.garage or 'Keine Garage') ..
|
||||
'\n🔧 Motor: ' .. GetConditionText(vehicle.engine) .. ' | 🚗 Karosserie: ' .. GetConditionText(vehicle.body) ..
|
||||
'\n' .. GetFuelText(vehicle.fuel)
|
||||
|
||||
if vehicle.depotprice and vehicle.depotprice > 0 then
|
||||
description = description .. '\n💰 Gebühr: ' .. vehicle.depotprice .. '€'
|
||||
-- Parse mods if needed
|
||||
local mods = {}
|
||||
if type(vehicle.mods) == 'string' then
|
||||
mods = json.decode(vehicle.mods) or {}
|
||||
else
|
||||
mods = vehicle.mods or {}
|
||||
end
|
||||
|
||||
local engineHealth = mods.engineHealth or 1000
|
||||
local bodyHealth = mods.bodyHealth or 1000
|
||||
local fuelLevel = mods.fuelLevel or 100
|
||||
|
||||
local description = GetStateText(vehicle.state) .. ' | 🏠 ' .. (vehicle.garage or 'Keine Garage') ..
|
||||
'\n🔧 Motor: ' .. GetConditionText(engineHealth) .. ' | 🚗 Karosserie: ' .. GetConditionText(bodyHealth) ..
|
||||
'\n' .. GetFuelText(fuelLevel)
|
||||
|
||||
table.insert(options, {
|
||||
title = vehicleLabel .. ' (' .. vehicle.plate .. ')',
|
||||
description = description,
|
||||
|
@ -295,34 +271,7 @@ RegisterNetEvent('vehicleadmin:openMenu', function()
|
|||
ShowPlayerMenu()
|
||||
end)
|
||||
|
||||
-- Keybind for quick access (optional)
|
||||
RegisterKeyMapping('vehicleadmin', 'Öffne Fahrzeug Admin Menu', 'keyboard', '')
|
||||
|
||||
-- Show help text when menu is opened
|
||||
RegisterNetEvent('vehicleadmin:showHelp', function()
|
||||
lib.notify({
|
||||
title = 'Fahrzeugverwaltung',
|
||||
description = 'Verwende /vehicleadmin oder die entsprechenden Job-Befehle um das Menu zu öffnen',
|
||||
type = 'info',
|
||||
duration = 5000
|
||||
})
|
||||
end)
|
||||
|
||||
-- Auto-refresh function for real-time updates
|
||||
local function RefreshCurrentMenu()
|
||||
-- This can be used to refresh the current menu if needed
|
||||
-- Implementation depends on your specific needs
|
||||
end
|
||||
|
||||
-- Export functions for other scripts
|
||||
exports('OpenVehicleAdmin', function()
|
||||
ShowPlayerMenu()
|
||||
end)
|
||||
|
||||
exports('HasVehicleAdminPermission', function()
|
||||
local hasPermission = false
|
||||
QBCore.Functions.TriggerCallback('vehicleadmin:getPlayerJob', function(jobData)
|
||||
hasPermission = jobData and jobData.hasPermission or false
|
||||
end)
|
||||
return hasPermission
|
||||
end)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue