Installation
DS-Death ersetzt den Standard-Loop aus Tod, Knockout und Revive in deinem Ambulance-Job. Die Installation ist größtenteils drag-and-drop, mit ein paar kleinen Patches an esx_ambulancejob oder qb-ambulancejob, damit der bestehende Revive-Ablauf an DS-Death übergibt.
Download
Lade das Script auf portal.cfx.re herunter. Stell sicher, dass du mit dem FiveM-Account angemeldet bist, mit dem du das Script gekauft hast.
Entpacken
Entpack das Archiv und leg den entstandenen Ordner DS-Death irgendwo in den resources-Ordner deines Servers.
mysql-async. ESX und QBCore werden beide unterstützt und zur Laufzeit automatisch erkannt.SQL ausführen
Führ die SQL-Datei aus, die zu deinem Framework passt. Sie fügt eine einzelne Spalte ds_death hinzu, über die der Todeszustand auch nach einer Trennung erhalten bleibt.
ESX
Führ INSTALLATION_GUIDE/ESX.sql in deiner Datenbank aus: fügt ds_death TINYINT(1) zur Tabelle users hinzu.
QBCore
Führ INSTALLATION_GUIDE/QBCore.sql in deiner Datenbank aus: fügt ds_death TINYINT(1) zur Tabelle players hinzu.
Revive-Item installieren
DS-Death braucht ein aidkit-Item, um bewusstlose Spieler wiederzubeleben. Füg es in dem Inventar hinzu, das du einsetzt.
ESX (Standard-Inventar)
Führ INSTALLATION_GUIDE/INSTALL_ITEM/ESX/item.sql in deiner Datenbank aus, um das Item zu registrieren.
ESX (ox_inventory)
Öffne INSTALLATION_GUIDE/INSTALL_ITEM/ESX/OX_INVENTORY_ITEM.md, kopier den Abschnitt und füg ihn in ox_inventory/data/items.lua ein:
['aidkit'] = {
label = 'Aid Kit',
weight = 100,
stack = true,
consume = 0,
allowArmed = true
},QBCore
Öffne INSTALLATION_GUIDE/INSTALL_ITEM/QBCORE/item.md, kopier den Abschnitt und füg ihn in qb-core/shared/items.lua ein:
['aidkit'] = {['name'] = 'aidkit', ['label'] = 'Aid Kit', ['weight'] = 0, ['type'] = 'item', ['image'] = 'aidkit.png', ['unique'] = false, ['useable'] = false, ['shouldClose'] = false, ['combinable'] = nil, ['description'] = 'Useful to revive knocked people'},ItemRevive und ItemLabel in der config.lua, statt aidkit zu installieren.Ambulance-Job patchen
DS-Death übernimmt den Ablauf aus Tod und Revive, deshalb müssen die vorhandenen Handler in esx_ambulancejob / qb-ambulancejob entfernt oder umgeleitet werden. Die konkreten Blöcke zum Löschen und Ersetzen liegen in der Resource bei:
ESX (esx_ambulancejob)
Folge INSTALLATION_GUIDE/ESX.txt, insgesamt drei Änderungen:
- esx_ambulancejob/client/main.lua: entfern (oder kommentier aus) den
esx:onPlayerSpawn-Handler, derisDeadzurücksetzt. - esx_ambulancejob/client/main.lua: ersetz den Handler des Events
esx_ambulancejob:revivedurch eine einzelne Zeile, die an DS-Death übergibt:esx_ambulancejob/client/main.luaRegisterNetEvent('esx_ambulancejob:revive') AddEventHandler('esx_ambulancejob:revive', function() TriggerEvent('DS-Death:revive') end) - esx_ambulancejob/client/job.lua: änder in der Funktion
revivePlayerdie Zeileif IsPedDeadOrDying(closestPlayerPed, 1) thenzuif closestPlayerPed then, damit der Knockout-Zustand von DS-Death als wiederbelebbar zählt.
QBCore (qb-ambulancejob)
Folge INSTALLATION_GUIDE/QBCORE.txt, zwei Änderungen:
- qb-ambulancejob/server/main.lua: entfern (oder kommentier aus) den vorhandenen Block
QBCore.Commands.Add("revive", ...). DS-Death registriert einen eigenen. - qb-ambulancejob/client/dead.lua: entfern den
gameEventTriggered-Handler, der den Laststand- / Todes-Timer ausführt. DS-Death ersetzt diesen Ablauf.
esx_ambulancejob / qb-ambulancejob auf, bevor du ihn bearbeitest, damit du zurück kannst, falls etwas anderes in deiner Stack auf dem alten Verhalten aufbaut.Admin-Berechtigungen vergeben
QBCore
Trag die Ace-Berechtigung in deine server.cfg ein, damit Admins die Revive-Befehle nutzen können:
add_ace group.admin ds_death allowESX
Die Berechtigungen laufen über das Array AuthorizedGroup in der config.lua. Der Standardwert {'admin'} deckt die meisten Setups bereits ab.
Resource starten
Trag das Script in deine server.cfg ein:
ensure DS-DeathDS-Death starten.Konfigurieren
Öffne config.lua und pass das Script an deinen Server an. Die nützlichsten Stellschrauben:
- KnockoutTime / RespawnTime: wie lange Spieler bewusstlos bleiben und ab wann der Respawn möglich wird.
- HeadShotDeath: überspringt den Knockout-Zustand und tötet bei einem Headshot sofort.
- RespawnPosition / RespawnSamePos / RespawnCost: wo Spieler zurückkommen und ob der Respawn Bargeld oder Bankguthaben kostet.
- CombatLogging: entweder den Spieler beim Wiederverbinden tot lassen (
CheckDeath) oder ihn automatisch respawnen (RespawnOnJoin). - RemoveItemsAfterRPDeath: lässt beim RP-Tod Geld, Waffen und Items fallen, mit einer
KeepItems-Whitelist für Dinge wie Dokumente. - Progressbar:
NATIVE,RPROGRESSoderCUSTOM(häng deine eigene inCustomProgress/StopCustomProgressein). - EMSCall: leg den Anruf-Trigger deines Handys in diese Funktion, damit der EMS-Notruf über dein Handy läuft statt über die Standard-Benachrichtigung.
- EnableLogs: aktiviert die Discord-Webhook-Logs, konfiguriert in
webhooks.lua.
OnKnocked, OnDeath, OnRevive und OnRespawn in der config.lua sind leere Funktionen, bereit für deine eigenen Trigger/Exports. Mit CanDie kannst du den Todes-Loop bedingt abschalten: praktisch für Minigame-Zonen, Airsoft-Events oder PvP-Arenen.