Exports
DS-Death stellt ein paar Net-Events bereit, die du aus jedem Script auslösen kannst, drei clientseitige Exports für Statusabfragen und Revives in der Nähe, sowie eine Reihe von Hooks auf Config-Ebene, über die du eigene Trigger bei Tod, Revive, Respawn und so weiter einhängst.
Events
Events sind der einfachste Integrationspunkt: löse sie aus deinem Ambulance-Job, deinem Handy, einem Minigame oder einem Admin-Tool aus.
DS-Death:revive
Belebt den lokalen Spieler wieder (oder den Zielspieler, wenn es vom Server ausgelöst wird). Damit hängst du DS-Death in bestehende Revive-Abläufe ein, etwa in den esx_ambulancejob:revive-Handler des ESX-Ambulance-Jobs.
-- Client side
TriggerEvent('DS-Death:revive')
-- Server side (revives the player whose source is passed in)
TriggerClientEvent('DS-Death:revive', source)DS-Death:lockAnim
Sperrt oder entsperrt die Todesanimation von DS-Death. Nützlich, wenn ein anderes System (Ambulance-Job, eigenes Revive-Minigame) seine eigene Animation abspielen will, während der Spieler im Knockout-Zustand von DS-Death bleibt. Übergib true zum Sperren und false zum Freigeben.
-- Client side
TriggerEvent('DS-Death:lockAnim', true) -- lock the death animation
TriggerEvent('DS-Death:lockAnim', false) -- release it
-- Server side (target a specific player)
TriggerClientEvent('DS-Death:lockAnim', source, true)Exports
Alle drei Exports laufen auf dem Client. Die Statusabfragen nehmen eine optionale Server-ID entgegen: übergib nichts, um den lokalen Spieler abzufragen.
ReviveNear
clientSucht nach bewusstlosen Spielern rund um den lokalen Spieler und versucht, den nächstgelegenen wiederzubeleben. Das Script übernimmt die Item-Prüfung, den Fortschrittsbalken und das Revive-Event, du musst diesen Export also nur an den Auslöser deiner Wahl hängen (Item benutzen, Target-Option, Tastenbelegung).
Signatur
exports['DS-Death']:ReviveNear()Beispiel
-- e.g. from a usable-item handler or a target option
exports['DS-Death']:ReviveNear()isPlayerDead
clientGibt zurück, ob der angegebene Spieler vollständig tot ist (wartet auf den Respawn). Übergib eine Server-ID, um einen anderen Spieler abzufragen; übergib nichts, um den lokalen Spieler zu prüfen.
Signatur
exports['DS-Death']:isPlayerDead(serverId)Parameter
| Name | Typ | Beschreibung |
|---|---|---|
| serverId? | number | Server-ID des abzufragenden Spielers. Standard ist man selbst. |
Rückgabe
true, solange der Spieler vollständig tot ist, sonst false.
Beispiel
if exports['DS-Death']:isPlayerDead() then
-- block phone, inventory, etc.
endisPlayerKnocked
clientGibt zurück, ob der angegebene Spieler gerade bewusstlos ist (am Boden, aber noch wiederbelebbar). Gleiche Form wie isPlayerDead: die Server-ID ist optional und steht standardmäßig auf einem selbst.
Signatur
exports['DS-Death']:isPlayerKnocked(serverId)Parameter
| Name | Typ | Beschreibung |
|---|---|---|
| serverId? | number | Server-ID des abzufragenden Spielers. Standard ist man selbst. |
Rückgabe
true, solange der Spieler bewusstlos ist und auf einen Revive wartet.
Beispiel
local target = GetClosestPlayer()
if exports['DS-Death']:isPlayerKnocked(GetPlayerServerId(target)) then
-- show "Revive" prompt
endConfig-Hooks
Über Events und Exports hinaus liefert die config.lua eine Handvoll leerer Funktionen mit, die du erweitern kannst, ohne den escrow-geschützten Kern anzufassen. Setz deine eigenen Trigger/Exports in eine beliebige davon.
- OnKnocked, OnDeath, OnRevive, OnRespawn: werden beim jeweiligen Statuswechsel des Spielers ausgelöst.
- CanDie: gib
falsezurück, um den Todes-Loop komplett zu unterdrücken (z. B. in einem Minigame, einer Airsoft-Runde oder einer PvP-Arena). - EMSCall: bekommt die Koordinaten des sterbenden Spielers; leite sie an den Notruf-Trigger deines Handys weiter.
- Notification: ersetz sie durch dein eigenes Benachrichtigungssystem; bekommt eine Nachricht als String.
- CustomProgress / StopCustomProgress: häng einen beliebigen Fortschrittsbalken ein (
ox_lib, eigene UI usw.), wennProgressbar = 'CUSTOM'in der Config steht. - DisabledKeys: die Steuerungen, die deaktiviert sind, solange der Spieler vollständig tot ist. Überschreib sie, damit deine eigenen Steuerungen nutzbar bleiben.
exports['DS-Death']:isPlayerKnocked() innerhalb von OnKnocked auf, um andere Systeme (Handy, Inventar, Funk) zu steuern, ganz ohne Polling.