Main/resources/[jobs]/[police]/sperrzone_rundmail/client_main.lua
2025-06-11 16:38:57 +02:00

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