1
0
Fork 0
forked from Simnation/Main
This commit is contained in:
Nordi98 2025-08-06 14:31:25 +02:00
parent ea67dd5407
commit b4d6a488f6

View file

@ -170,42 +170,58 @@ if (Config.useContextMenu) then
local item = transferVehMenu:AddItem(model .. " " .. plate) local item = transferVehMenu:AddItem(model .. " " .. plate)
item.closeMenuOnClick = true item.closeMenuOnClick = true
item.OnClick = function() item.OnClick = function()
local nearbyPlayers = GetNearbyPlayersWithNames(5.0) local nearbyPlayers = GetNearbyPlayersWithNames(5.0)
if #nearbyPlayers == 0 then if #nearbyPlayers == 0 then
Notification("Keine Spieler in der Nähe gefunden") Notification("Keine Spieler in der Nähe gefunden")
return return
end end
-- Spielerauswahl-Menü erstellen -- Spielerauswahl-Menü erstellen
local playerOptions = {} local playerOptions = {}
for _, player in ipairs(nearbyPlayers) do for _, player in ipairs(nearbyPlayers) do
table.insert(playerOptions, { table.insert(playerOptions, {
title = player.name, title = player.name,
description = "Entfernung: " .. math.floor(player.distance * 10) / 10 .. "m", description = "Entfernung: " .. math.floor(player.distance * 10) / 10 .. "m",
serverPlayerId = player.serverId metadata = {
}) ["Spieler ID"] = player.serverId
end },
args = {
lib.registerMenu({ serverId = player.serverId,
id = 'transfer_vehicle_menu', name = player.name
title = 'Fahrzeug übergeben', }
position = 'top-right', })
options = playerOptions, end
onSelect = function(selected)
local targetPlayer = playerOptions[selected].serverPlayerId -- Stelle sicher, dass wir mindestens eine Option haben
local success = CB:Trigger("VKC:transferVehicleOwnership", plate, targetPlayer) if #playerOptions == 0 then
Notification("Keine Spieler in der Nähe gefunden")
if success then return
Notification("Du hast dein " .. model .. " an " .. playerOptions[selected].title .. " übergeben") end
else
Notification("Übergabe fehlgeschlagen") lib.registerMenu({
end id = 'transfer_vehicle_menu',
end title = 'Fahrzeug übergeben',
}) position = 'top-right',
options = playerOptions,
lib.showMenu('transfer_vehicle_menu') onSelect = function(selected, scrollIndex, args)
if args and args.serverId then
local targetPlayer = args.serverId
local success = CB:Trigger("VKC:transferVehicleOwnership", plate, targetPlayer)
if success then
Notification("Du hast dein " .. model .. " an " .. args.name .. " übergeben")
else
Notification("Übergabe fehlgeschlagen")
end
else
Notification("Fehler bei der Spielerauswahl")
end
end
})
lib.showMenu('transfer_vehicle_menu')
end end
end end
@ -484,55 +500,80 @@ function GenerateKeyInventoryNativeUI()
submenuTransferVehicle:AddItem(vehItem) submenuTransferVehicle:AddItem(vehItem)
end end
submenuTransferVehicle.OnItemSelect = function(menu, item, index) submenuTransferVehicle.OnItemSelect = function(menu, item, index)
local selectedVehicle = vehicleData[index] local selectedVehicle = vehicleData[index]
local plate = selectedVehicle[1] local plate = selectedVehicle[1]
local model = GetLabelText(GetDisplayNameFromVehicleModel(selectedVehicle[2])) local model = GetLabelText(GetDisplayNameFromVehicleModel(selectedVehicle[2]))
if (model == "NULL") then if (model == "NULL") then
model = GetDisplayNameFromVehicleModel(selectedVehicle[2]) model = GetDisplayNameFromVehicleModel(selectedVehicle[2])
end end
-- Menü schließen und Spielerauswahl anzeigen -- Menü schließen und Spielerauswahl anzeigen
menuPoolNativeUI:CloseAllMenus() menuPoolNativeUI:CloseAllMenus()
menuOpen = false menuOpen = false
-- Spieler in der Nähe abrufen -- Spieler in der Nähe abrufen
local nearbyPlayers = GetNearbyPlayersWithNames(5.0) local nearbyPlayers = GetNearbyPlayersWithNames(5.0)
if #nearbyPlayers == 0 then if #nearbyPlayers == 0 then
lib.notify({ lib.notify({
title = "Fahrzeug übergeben", title = "Fahrzeug übergeben",
description = "Keine Spieler in der Nähe gefunden", description = "Keine Spieler in der Nähe gefunden",
position = "top", position = "top",
type = "error", type = "error",
icon = "car" icon = "car"
}) })
return return
end end
-- Spielerauswahl-Menü erstellen -- Spielerauswahl-Menü erstellen
local playerOptions = {} local playerOptions = {}
for _, player in ipairs(nearbyPlayers) do for _, player in ipairs(nearbyPlayers) do
table.insert(playerOptions, { table.insert(playerOptions, {
title = player.name, title = player.name,
description = "Entfernung: " .. math.floor(player.distance * 10) / 10 .. "m", description = "Entfernung: " .. math.floor(player.distance * 10) / 10 .. "m",
serverPlayerId = player.serverId metadata = {
}) ["Spieler ID"] = player.serverId
end },
args = {
lib.registerMenu({ serverId = player.serverId,
id = 'transfer_vehicle_menu', name = player.name
title = 'Fahrzeug übergeben', }
position = 'top-right', })
options = playerOptions, end
onSelect = function(selected)
local targetPlayer = playerOptions[selected].serverPlayerId -- Stelle sicher, dass wir mindestens eine Option haben
if #playerOptions == 0 then
lib.notify({
title = "Fahrzeug übergeben",
description = "Keine Spieler in der Nähe gefunden",
position = "top",
type = "error",
icon = "car"
})
return
end
lib.registerMenu({
id = 'transfer_vehicle_menu',
title = 'Fahrzeug übergeben',
position = 'top-right',
options = playerOptions,
onClose = function()
-- Optional: Öffne das Hauptmenü wieder
GenerateKeyInventoryNativeUI()
keyInvMenuNativeUI:Visible(true)
menuOpen = true
end,
onSelect = function(selected, scrollIndex, args)
if args and args.serverId then
local targetPlayer = args.serverId
local success = CB:Trigger("VKC:transferVehicleOwnership", plate, targetPlayer) local success = CB:Trigger("VKC:transferVehicleOwnership", plate, targetPlayer)
if success then if success then
lib.notify({ lib.notify({
title = "Fahrzeug übergeben", title = "Fahrzeug übergeben",
description = "Du hast dein " .. model .. " an " .. playerOptions[selected].title .. " übergeben", description = "Du hast dein " .. model .. " an " .. args.name .. " übergeben",
position = "top", position = "top",
type = "success", type = "success",
icon = "car" icon = "car"
@ -546,11 +587,21 @@ function GenerateKeyInventoryNativeUI()
icon = "car" icon = "car"
}) })
end end
else
lib.notify({
title = "Fahrzeug übergeben",
description = "Fehler bei der Spielerauswahl",
position = "top",
type = "error",
icon = "car"
})
end end
}) end
})
lib.showMenu('transfer_vehicle_menu')
end lib.showMenu('transfer_vehicle_menu')
end
local submenuShowKeys = menuPoolNativeUI:AddSubMenu(keyInvMenuNativeUI, Config.Strings.NUI.keysTitle, Config.Strings.NUI.keysDesc) local submenuShowKeys = menuPoolNativeUI:AddSubMenu(keyInvMenuNativeUI, Config.Strings.NUI.keysTitle, Config.Strings.NUI.keysDesc)
submenuShowKeys.ParentItem:RightLabel(">") submenuShowKeys.ParentItem:RightLabel(">")