Skip to content
On this page

🚨 Map Alerts System Dokumentation

Dieses Skript implementiert ein serverseitiges System zur Auslösung von Alarmen/Benachrichtigungen auf der Karte für bestimmte Spieler. Es beinhaltet eine Funktion zur Protokollierung dieser Alarme über einen Discord Webhook mit detaillierten Spieler- und Positionsinformationen.


⚙️ Konfiguration

Die Konfiguration erfolgt über die lokalen Variablen am Anfang des Skripts.

  • standardLabel: Standard-Titel für den Alarm.
  • standardMessage: Standard-Nachricht für den Alarm.
  • standardDuration: Standard-Dauer des Karten-Blips in Sekunden.
  • standardRadius: Standard-Radius, in dem Spieler sich befinden müssen, um den Alarm zu erhalten (wenn keine serverId angegeben ist).
  • standardAlertRadius: Standard-Radius für die zufällige Blip-Positionierung auf der Karte.
  • Debug: Wenn auf true gesetzt, werden zusätzliche Debug-Meldungen in der Server-Konsole ausgegeben.
  • Webhook: Konfiguration für den Discord-Webhook. Passen Sie die url an oder lassen Sie sie leer, um die Discord-Protokollierung zu deaktivieren.

🎯 Nutzung (Events)

Die Hauptfunktionalität wird über das serverseitige Event sns-utils:triggerMapAlert ausgelöst.

Payload (Datenstruktur)

Das Event erwartet ein data-Objekt (eine Lua-Tabelle) mit den folgenden Parametern:

ParameterTypOptionalStandardwertBeschreibung
coordsvector3Nein-Die zentralen Koordinaten des Alarmereignisses.
jobstableJa-Eine Liste von Job-Namen, an die der Alarm gesendet werden soll (z.B. { "police", "medic" }). Wird ignoriert, wenn serverId verwendet wird.
serverIdnumberJa-Wenn gesetzt, wird der Alarm nur an diesen spezifischen Spieler gesendet (überschreibt jobs und radius).
labelstringJa"Alarm !"Der Titel des Alarms/Blips.
messagestringJa"Ein Alarm wurde ausgelöst !"Die Benachrichtigungsnachricht.
durationnumberJa60Dauer des Karten-Blips in Sekunden.
colorstringJayellowFarbe des Karten-Blips, verfügbar: "red", "yellow", "blue", "green", "cyan", "white", "black", "pink", "purple"
radiusnumberJa200Maximaler Radius um die coords, in dem sich Spieler mit passenden jobs befinden müssen, um den Alarm zu erhalten.
ignoreRadiusbooleanJafalseWenn true, wird die Radius-Prüfung ignoriert (Spieler mit passendem Job erhalten Alarm überall).
alertRadiusnumberJa64Der Radius, innerhalb dessen der Karten-Blip zufällig platziert wird, um die genaue Position zu verschleiern.
spritestringJa"blip_mp_gun_for_hire"Name des Blip-Symbols. Unterstützt Aliase: "question", "exclamation", "fire", "lightning".

Beispiel-Nutzung (Server- und Client-Seite)

Server-Nutzung (via TriggerEvent):

lua
-- TriggerEvent für Server-interne Nutzung
local payload = {
    coords = vector3(2618.7656, -1297.9266, 52.1914),
    jobs = { "police", "sheriff" },
    label = "Bankraub Alarm",
    message = "Ein Bankraub wurde in Valentine gemeldet!",
    duration = 120,
    color = "red",
    alertRadius = 80
}

TriggerEvent('sns-utils:triggerMapAlert', payload)

Client-Nutzung (via TriggerServerEvent):

lua
-- TriggerServerEvent für Client-seitige Auslösung
local payload = {
    -- Coords sollten vom Client gesendet werden, z.B. die Position des Spielers
    coords = GetEntityCoords(PlayerPedId()),
    jobs = { "police" },
    label = "Notfall-Taste gedrückt",
    message = "Ich brauche Unterstützung!",
    duration = 45,
    color = "yellow",
    alertRadius = 50
}

TriggerServerEvent('sns-utils:triggerMapAlert', payload)

Wichtig: Die Discord-Protokollierung wird übersprungen, wenn das Skript im DEV-Modus läuft (cleanName enthält "development") und die Variable Debug auf false gesetzt ist.

Released under the GNU General Public License v2.0.