- aether-medical: Stationen/Belegung, Intensivstation, Blutbank, Fuhrpark, Nachrichten/Aushänge, Berichte und Textbausteine (server + NUI) - aether-admin: vollständiges Server-Admin-Panel als echtes FiveM-Resource, an aether-core gekoppelt (Rechte über aether_users.admin_group), mit WebRTC-Live-Kameras (Bildschirmfreigabe) und separatem Media-Server (SFU) - Prototypen admin/ vervollständigt - SQL-Schema aether_admin.sql - Docker-Compose mit MariaDB und idempotenter Auto-Migration (schema_migrations) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
128 lines
5.1 KiB
Lua
128 lines
5.1 KiB
Lua
-- =====================================================================
|
|
-- aether-police — Grundkonfiguration
|
|
--
|
|
-- GRUNDPRINZIP: Das System unterstützt Entscheidungen — es trifft
|
|
-- niemals selbst welche. Alle Zeitangaben hier dienen ausschliesslich
|
|
-- der ERINNERUNG. Nichts davon löst eine Maßnahme aus.
|
|
-- =====================================================================
|
|
|
|
Polizei = Polizei or {}
|
|
Polizei.Config = {}
|
|
|
|
-- Anzeigename der Behörde
|
|
Polizei.Config.Behoerde = 'Los Santos Police Department'
|
|
Polizei.Config.Kuerzel = 'LSPD'
|
|
|
|
-- Reichweite zu Terminals (Meter)
|
|
Polizei.Config.TerminalWeite = 2.5
|
|
|
|
-- Terminals an den Wachen. Dort lässt sich das Tablet aufrufen.
|
|
Polizei.Config.Terminals = {
|
|
{ name = 'Mission Row', pos = vector3(441.0, -982.1, 30.7) },
|
|
{ name = 'Sandy Shores', pos = vector3(1853.1, 3689.5, 34.3) },
|
|
{ name = 'Paleto Bay', pos = vector3(-448.6, 6012.4, 31.7) },
|
|
}
|
|
|
|
-- Abteilungen (frei erweiterbar)
|
|
Polizei.Config.Abteilungen = {
|
|
{ id = 'streife', name = 'Streifendienst' },
|
|
{ id = 'kripo', name = 'Kriminalpolizei' },
|
|
{ id = 'verkehr', name = 'Verkehrspolizei' },
|
|
{ id = 'sek', name = 'Spezialeinsatzkommando' },
|
|
{ id = 'leitstelle', name = 'Leitstelle' },
|
|
}
|
|
|
|
-- Dienststatus, die ein Beamter wählen kann
|
|
Polizei.Config.Dienststatus = {
|
|
{ id = 'verfuegbar', name = 'Verfügbar', farbe = '#34d39a' },
|
|
{ id = 'einsatz', name = 'Im Einsatz', farbe = '#f5a742' },
|
|
{ id = 'pause', name = 'Pause', farbe = '#7c8797' },
|
|
{ id = 'nicht', name = 'Nicht verfügbar', farbe = '#f0506e' },
|
|
}
|
|
|
|
-- Einsatzkategorien
|
|
Polizei.Config.Einsatzkategorien = {
|
|
{ id = 'notruf', name = 'Notruf', farbe = '#f0506e' },
|
|
{ id = 'verkehr', name = 'Verkehr', farbe = '#f5a742' },
|
|
{ id = 'gewalt', name = 'Gewaltdelikt', farbe = '#e0503f' },
|
|
{ id = 'eigentum', name = 'Eigentumsdelikt', farbe = '#7c5cf6' },
|
|
{ id = 'unterstuetzung', name = 'Unterstützung', farbe = '#4aa8ff' },
|
|
{ id = 'panik', name = 'Notfall Beamter', farbe = '#ff2e57' },
|
|
{ id = 'sonstiges', name = 'Sonstiges', farbe = '#8a93a5' },
|
|
}
|
|
|
|
-- Aktenarten
|
|
Polizei.Config.Aktenarten = {
|
|
{ id = 'straf', name = 'Strafakte' },
|
|
{ id = 'ermittlung', name = 'Ermittlungsakte' },
|
|
{ id = 'einsatz', name = 'Einsatzakte' },
|
|
{ id = 'unfall', name = 'Unfallakte' },
|
|
{ id = 'vernehmung', name = 'Vernehmung' },
|
|
{ id = 'beschluss', name = 'Beschluss' },
|
|
}
|
|
|
|
-- Beweisarten
|
|
Polizei.Config.Beweisarten = {
|
|
{ id = 'foto', name = 'Foto' },
|
|
{ id = 'video', name = 'Video' },
|
|
{ id = 'fingerabdruck', name = 'Fingerabdruck' },
|
|
{ id = 'dna', name = 'DNA-Spur' },
|
|
{ id = 'huelse', name = 'Patronenhülse' },
|
|
{ id = 'dokument', name = 'Dokument' },
|
|
{ id = 'aussage', name = 'Aussage' },
|
|
{ id = 'gegenstand', name = 'Beweisstück' },
|
|
}
|
|
|
|
-- Asservat-Kategorien
|
|
Polizei.Config.Asservatkategorien = {
|
|
{ id = 'waffe', name = 'Waffe' },
|
|
{ id = 'drogen', name = 'Betäubungsmittel' },
|
|
{ id = 'bargeld', name = 'Bargeld' },
|
|
{ id = 'schmuck', name = 'Schmuck' },
|
|
{ id = 'datentraeger', name = 'Datenträger' },
|
|
{ id = 'dokument', name = 'Dokument' },
|
|
{ id = 'sonstiges', name = 'Sonstiges' },
|
|
}
|
|
|
|
-- ---------------------------------------------------------------------
|
|
-- Gewahrsam
|
|
--
|
|
-- WICHTIG: Es gibt keinen Automatismus. Das System führt die Frist mit
|
|
-- und erinnert — eingewiesen und entlassen wird ausschliesslich durch
|
|
-- einen Beamten.
|
|
-- ---------------------------------------------------------------------
|
|
Polizei.Config.Gewahrsam = {
|
|
-- Wird die Person beim Einweisen in die Zelle verbracht?
|
|
-- false = rein verwaltend; das Verbringen geschieht dann im Rollenspiel.
|
|
verbringen = true,
|
|
|
|
-- Verfügbare Zellen
|
|
zellen = {
|
|
{ id = 'A1', name = 'Zelle A1', pos = vector4(461.6, -994.4, 24.9, 90.0) },
|
|
{ id = 'A2', name = 'Zelle A2', pos = vector4(461.6, -997.7, 24.9, 90.0) },
|
|
{ id = 'A3', name = 'Zelle A3', pos = vector4(461.6, -1001.1, 24.9, 90.0) },
|
|
{ id = 'B1', name = 'Zelle B1', pos = vector4(464.5, -992.7, 24.9, 270.0) },
|
|
{ id = 'B2', name = 'Zelle B2', pos = vector4(464.5, -996.1, 24.9, 270.0) },
|
|
},
|
|
|
|
-- Wohin die Person nach der Entlassung gesetzt wird
|
|
entlassung = vector4(441.0, -978.9, 30.7, 180.0),
|
|
|
|
-- Hoechstdauer, die ein Beamter eintragen kann (Minuten)
|
|
maxDauer = 720,
|
|
}
|
|
|
|
-- ---------------------------------------------------------------------
|
|
-- Erinnerungen (NUR Hinweise — keine davon führt etwas aus)
|
|
-- ---------------------------------------------------------------------
|
|
Polizei.Config.Erinnerungen = {
|
|
-- Bei welchen Restzeiten im Gewahrsam erinnert wird (Minuten)
|
|
gewahrsamStufen = { 15, 5, 0 },
|
|
-- Wie oft die Fristen geprüft werden (Millisekunden)
|
|
pruefIntervall = 60000,
|
|
-- Nach wie vielen Minuten ein Bericht als „offen" gemeldet wird
|
|
berichtOffenNach = 30,
|
|
-- Wie viele Minuten vor Ablauf an eine offene Kenntnisnahme erinnert wird
|
|
aushangVorwarnung = 60,
|
|
}
|