forked from Simnation/Main
87 lines
No EOL
2.9 KiB
Lua
87 lines
No EOL
2.9 KiB
Lua
local QBCore = exports['qb-core']:GetCoreObject()
|
|
local MenuPool = NativeUI.CreatePool()
|
|
local MainMenu = NativeUI.CreateMenu("Admin Menü", "Optionen auswählen")
|
|
|
|
MenuPool:Add(MainMenu)
|
|
|
|
-- Variables
|
|
local zoneRadius = 50.0
|
|
local zoneBlip = nil
|
|
|
|
-- Sperrzone erstellen
|
|
function AddZoneMenu(menu)
|
|
local submenu = MenuPool:AddSubMenu(menu, "Sperrzone")
|
|
local radiusItem = NativeUI.CreateSliderItem("Radius", {50, 100, 200, 300, 400, 500}, 1, false, "Wähle die Größe der Zone")
|
|
submenu:AddItem(radiusItem)
|
|
|
|
local createZoneItem = NativeUI.CreateItem("Zone erstellen", "Erstellt eine Sperrzone")
|
|
submenu:AddItem(createZoneItem)
|
|
|
|
submenu.OnItemSelect = function(sender, item, index)
|
|
if item == createZoneItem then
|
|
local playerPed = PlayerPedId()
|
|
local coords = GetEntityCoords(playerPed)
|
|
|
|
-- Zone erstellen
|
|
if zoneBlip then RemoveBlip(zoneBlip) end
|
|
zoneBlip = AddBlipForRadius(coords.x, coords.y, coords.z, zoneRadius)
|
|
SetBlipColour(zoneBlip, 1)
|
|
SetBlipAlpha(zoneBlip, 128)
|
|
|
|
QBCore.Functions.Notify("Sperrzone erstellt mit Radius: " .. zoneRadius .. " Meter", "success")
|
|
elseif item == radiusItem then
|
|
zoneRadius = radiusItem:IndexToItem(index)
|
|
end
|
|
end
|
|
end
|
|
|
|
-- Serverweite Ankündigungen
|
|
function AddAnnouncementMenu(menu)
|
|
local submenu = MenuPool:AddSubMenu(menu, "Ankündigungen")
|
|
local announcementItem = NativeUI.CreateItem("Nachricht senden", "Sende eine Nachricht an alle Spieler")
|
|
submenu:AddItem(announcementItem)
|
|
|
|
submenu.OnItemSelect = function(sender, item, index)
|
|
if item == announcementItem then
|
|
local message = KeyboardInput("Gib die Nachricht ein:", "", 200)
|
|
if message then
|
|
TriggerServerEvent("qbcore:announcement", message)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
-- Tastendruck zum Öffnen des Menüs
|
|
Citizen.CreateThread(function()
|
|
AddZoneMenu(MainMenu)
|
|
AddAnnouncementMenu(MainMenu)
|
|
|
|
MenuPool:RefreshIndex()
|
|
|
|
while true do
|
|
Citizen.Wait(0)
|
|
MenuPool:ProcessMenus()
|
|
|
|
if IsControlJustReleased(0, Config.OpenMenuKey) then
|
|
local playerData = QBCore.Functions.GetPlayerData()
|
|
if Config.AllowedJobs[playerData.job.name] then
|
|
MainMenu:Visible(not MainMenu:Visible())
|
|
else
|
|
QBCore.Functions.Notify("Du hast keine Berechtigung, dieses Menü zu verwenden.", "error")
|
|
end
|
|
end
|
|
end
|
|
end)
|
|
|
|
function KeyboardInput(textEntry, exampleText, maxStringLength)
|
|
AddTextEntry('FMMC_KEY_TIP1', textEntry)
|
|
DisplayOnscreenKeyboard(1, "FMMC_KEY_TIP1", "", exampleText, "", "", "", maxStringLength)
|
|
while UpdateOnscreenKeyboard() == 0 do
|
|
DisableAllControlActions(0)
|
|
Wait(0)
|
|
end
|
|
if GetOnscreenKeyboardResult() then
|
|
return GetOnscreenKeyboardResult()
|
|
end
|
|
return nil
|
|
end |