Installation
DS-Death remplace la boucle mort / knockout / revive par défaut de ton ambulance job. L’installation se fait presque entièrement en drag-and-drop, avec quelques petits patchs sur esx_ambulancejob ou qb-ambulancejob pour que le flux de revive existant passe la main à DS-Death.
Télécharger
Télécharge le script depuis portal.cfx.re. Assure-toi d’être connecté avec le compte FiveM que tu as utilisé pour l’achat.
Extraire
Décompresse l’archive et dépose le dossier DS-Death obtenu n’importe où dans le dossier resources de ton serveur.
mysql-async. ESX et QBCore sont tous deux pris en charge et détectés automatiquement à l’exécution.Exécuter le SQL
Exécute le fichier SQL correspondant à ton framework. Il ajoute une seule colonne ds_death, utilisée pour conserver l’état de mort entre les déconnexions.
ESX
Exécute INSTALLATION_GUIDE/ESX.sql dans ta base de données : ajoute ds_death TINYINT(1) à la table users.
QBCore
Exécute INSTALLATION_GUIDE/QBCore.sql dans ta base de données : ajoute ds_death TINYINT(1) à la table players.
Installer l’item de revive
DS-Death nécessite un item aidkit pour réanimer les joueurs en knockout. Ajoute-le à l’inventaire que vous utilisez.
ESX (inventaire par défaut)
Exécute INSTALLATION_GUIDE/INSTALL_ITEM/ESX/item.sql dans ta base de données pour enregistrer l’item.
ESX (ox_inventory)
Ouvre INSTALLATION_GUIDE/INSTALL_ITEM/ESX/OX_INVENTORY_ITEM.md, copiez le bloc et colle-le dans ox_inventory/data/items.lua :
['aidkit'] = {
label = 'Aid Kit',
weight = 100,
stack = true,
consume = 0,
allowArmed = true
},QBCore
Ouvre INSTALLATION_GUIDE/INSTALL_ITEM/QBCORE/item.md, copiez le bloc et colle-le dans qb-core/shared/items.lua :
['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 et ItemLabel dans config.lua au lieu d’installer aidkit.Patcher ton ambulance job
DS-Death reprend la gestion du flux mort / revive : les handlers existants dans esx_ambulancejob / qb-ambulancejob doivent donc être supprimés ou redirigés. Les blocs exacts à supprimer et à remplacer sont fournis dans la resource :
ESX (esx_ambulancejob)
Suis INSTALLATION_GUIDE/ESX.txt, trois modifications au total :
- esx_ambulancejob/client/main.lua : supprime (ou commente) le handler
esx:onPlayerSpawnqui réinitialiseisDead. - esx_ambulancejob/client/main.lua : remplace le handler de l’event
esx_ambulancejob:revivepar une ligne unique qui passe la main à DS-Death :esx_ambulancejob/client/main.luaRegisterNetEvent('esx_ambulancejob:revive') AddEventHandler('esx_ambulancejob:revive', function() TriggerEvent('DS-Death:revive') end) - esx_ambulancejob/client/job.lua : dans la fonction
revivePlayer, remplaceif IsPedDeadOrDying(closestPlayerPed, 1) thenparif closestPlayerPed then, pour que l’état knockout de DS-Death compte comme réanimable.
QBCore (qb-ambulancejob)
Suis INSTALLATION_GUIDE/QBCORE.txt, deux modifications :
- qb-ambulancejob/server/main.lua : supprime (ou commente) le bloc
QBCore.Commands.Add("revive", ...)existant. DS-Death enregistre le sien. - qb-ambulancejob/client/dead.lua : supprime le handler
gameEventTriggeredqui gère le laststand / le timer de mort. DS-Death remplace ce flux.
esx_ambulancejob / qb-ambulancejob d’origine avant de l’éditer, pour pouvoir revenir en arrière si autre chose dans ton stack dépend de l’ancien comportement.Accorder les permissions admin
QBCore
Ajoute la permission ace à ton server.cfg pour que les admins puissent utiliser les commandes de revive :
add_ace group.admin ds_death allowESX
Les permissions passent par le tableau AuthorizedGroup dans config.lua. La valeur par défaut {'admin'} couvre déjà la plupart des configurations.
Démarrer la resource
Ajoute le script à ton server.cfg :
ensure DS-DeathDS-Death dans l’ordre de chargement.Configurer
Ouvre config.lua et adapte le script à ton serveur. Les réglages les plus utiles :
- KnockoutTime / RespawnTime : combien de temps les joueurs restent en knockout, et à partir de quand le respawn devient possible.
- HeadShotDeath : ignore l’état knockout et tue instantanément sur un headshot.
- RespawnPosition / RespawnSamePos / RespawnCost : où les joueurs réapparaissent, et si le respawn coûte du liquide ou de l’argent en banque.
- CombatLogging : soit garder le joueur mort à la reconnexion (
CheckDeath), soit le faire réapparaître automatiquement (RespawnOnJoin). - RemoveItemsAfterRPDeath : fait perdre argent, armes et items à la mort RP, avec une whitelist
KeepItemspour des choses comme les documents. - Progressbar :
NATIVE,RPROGRESSouCUSTOM(branche la tienne dansCustomProgress/StopCustomProgress). - EMSCall : place le trigger d’appel de ton téléphone dans cette fonction pour que l’appel EMS in-game passe par ton téléphone plutôt que par la notification par défaut.
- EnableLogs : active les logs via webhook Discord, à configurer dans
webhooks.lua.
OnKnocked, OnDeath, OnRevive et OnRespawn dans config.lua sont des fonctions vides, prêtes à accueillir tes propres triggers/exports. CanDie permet de désactiver la boucle de mort sous condition : pratique pour les zones de minijeu, les événements airsoft ou les arènes PvP.