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 = {
serverId = player.serverId,
name = player.name
}
})
end
lib.registerMenu({ -- Stelle sicher, dass wir mindestens eine Option haben
id = 'transfer_vehicle_menu', if #playerOptions == 0 then
title = 'Fahrzeug übergeben', Notification("Keine Spieler in der Nähe gefunden")
position = 'top-right', return
options = playerOptions, end
onSelect = function(selected)
local targetPlayer = playerOptions[selected].serverPlayerId
local success = CB:Trigger("VKC:transferVehicleOwnership", plate, targetPlayer)
if success then lib.registerMenu({
Notification("Du hast dein " .. model .. " an " .. playerOptions[selected].title .. " übergeben") id = 'transfer_vehicle_menu',
else title = 'Fahrzeug übergeben',
Notification("Übergabe fehlgeschlagen") position = 'top-right',
end options = playerOptions,
end onSelect = function(selected, scrollIndex, args)
}) if args and args.serverId then
local targetPlayer = args.serverId
local success = CB:Trigger("VKC:transferVehicleOwnership", plate, targetPlayer)
lib.showMenu('transfer_vehicle_menu') 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 = {
serverId = player.serverId,
name = player.name
}
})
end
lib.registerMenu({ -- Stelle sicher, dass wir mindestens eine Option haben
id = 'transfer_vehicle_menu', if #playerOptions == 0 then
title = 'Fahrzeug übergeben', lib.notify({
position = 'top-right', title = "Fahrzeug übergeben",
options = playerOptions, description = "Keine Spieler in der Nähe gefunden",
onSelect = function(selected) position = "top",
local targetPlayer = playerOptions[selected].serverPlayerId 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(">")