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 direkte serverId angesprochen wird oder "false" gesetzt 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)

lua
local payload = {
    coords = vector3(2618.7656, -1297.9266, 52.1914), --GetEntityCoords or Vector3
    jobs = { "bakery" }, --optional, needs to be table
    serverId = 1, -- optional if directed to specific Player
    label = "Test 123", -- Optional
    message = "Das ist die message", -- optional
    radius = 200, -- doesnt matter if serverId is used
    ignoreRadius = true, -- optional, if "true" then the whole server gets allerted (according to job / serverId)
    duration = 30, -- in Seconds (approx)
    color = "red", -- optional "red" || "yellow" || "blue" || "green" || "cyan" || "white" || "black" || "pink" || "purple"
    alertRadius = 64 -- optional, Radius der auf der karte angezeigt wird
    sprite = "question" -- optional "exclamation" || "question" || "fire" || "lightning"
}

TriggerEvent('sns-utils:triggerMapAlert', payload) -- For Server Usage
TriggerServerEvent('sns-utils:triggerMapAlert', payload) -- For Client Usage

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.