Instalación
DS-Death sustituye el bucle de muerte/knockout/revive por defecto de tu ambulance job. La instalación es casi toda de drag-and-drop, con unos pocos parches pequeños en esx_ambulancejob o qb-ambulancejob para que el flujo de revive existente le ceda el paso a DS-Death.
Descarga
Descarga el script desde portal.cfx.re. Asegúrate de haber iniciado sesión con la cuenta de FiveM que usaste para comprarlo.
Extracción
Descomprime el archivo y suelta la carpeta DS-Death resultante en cualquier punto de la carpeta resources de tu servidor.
mysql-async. ESX y QBCore están soportados y se detectan automáticamente en tiempo de ejecución.Ejecuta el SQL
Ejecuta el archivo SQL que corresponda a tu framework. Añade una única columna ds_death, usada para conservar el estado de muerte entre desconexiones.
ESX
Ejecuta INSTALLATION_GUIDE/ESX.sql en tu base de datos: añade ds_death TINYINT(1) a la tabla users.
QBCore
Ejecuta INSTALLATION_GUIDE/QBCore.sql en tu base de datos: añade ds_death TINYINT(1) a la tabla players.
Instala el item de revive
DS-Death necesita un item aidkit para revivir a los jugadores en knockout Añádelo al inventario que uses.
ESX (inventario por defecto)
Ejecuta INSTALLATION_GUIDE/INSTALL_ITEM/ESX/item.sql en tu base de datos para registrar el item.
ESX (ox_inventory)
Abre INSTALLATION_GUIDE/INSTALL_ITEM/ESX/OX_INVENTORY_ITEM.md, copia el bloque y pégalo en ox_inventory/data/items.lua:
['aidkit'] = {
label = 'Aid Kit',
weight = 100,
stack = true,
consume = 0,
allowArmed = true
},QBCore
Abre INSTALLATION_GUIDE/INSTALL_ITEM/QBCORE/item.md, copia el bloque y pégalo en 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 e ItemLabel en config.lua en lugar de instalar aidkit.Parchea tu ambulance job
DS-Death se hace cargo del flujo de muerte/revive, así que los handlers existentes en esx_ambulancejob / qb-ambulancejob hay que quitarlos o redirigirlos. Los bloques exactos que debes borrar y sustituir vienen incluidos dentro de la resource:
ESX (esx_ambulancejob)
Sigue INSTALLATION_GUIDE/ESX.txt, tres cambios en total:
- esx_ambulancejob/client/main.lua: elimina (o comenta) el handler
esx:onPlayerSpawnque reiniciaisDead. - esx_ambulancejob/client/main.lua: sustituye el handler del event
esx_ambulancejob:revivepor una sola línea que le ceda el paso a 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: en la función
revivePlayer, cambiaif IsPedDeadOrDying(closestPlayerPed, 1) thenporif closestPlayerPed then, para que el estado knockout de DS-Death valga para revivir.
QBCore (qb-ambulancejob)
Sigue INSTALLATION_GUIDE/QBCORE.txt, dos cambios:
- qb-ambulancejob/server/main.lua: elimina (o comenta) el bloque
QBCore.Commands.Add("revive", ...)existente. DS-Death registra el suyo propio. - qb-ambulancejob/client/dead.lua: elimina el handler
gameEventTriggeredque ejecuta el laststand / el temporizador de muerte. DS-Death sustituye ese flujo.
esx_ambulancejob / qb-ambulancejob original antes de editarla, para poder volver atrás si algo más de tu stack depende del comportamiento anterior.Concede los permisos de admin
QBCore
Añade el permiso ace a tu server.cfg para que los admins puedan usar los comandos de revive:
add_ace group.admin ds_death allowESX
Los permisos se gestionan mediante el array AuthorizedGroup en config.lua. El valor por defecto {'admin'} ya cubre la mayoría de configuraciones.
Arranca la resource
Añade el script a tu server.cfg:
ensure DS-DeathDS-Death en el orden de carga.Configuración
Abre config.lua y ajusta el script a tu servidor. Las opciones más útiles:
- KnockoutTime / RespawnTime: cuánto tiempo se quedan en knockout los jugadores y cuándo se habilita el respawn.
- HeadShotDeath: se salta el estado knockout y mata al instante con un headshot.
- RespawnPosition / RespawnSamePos / RespawnCost: dónde reaparecen los jugadores y si el respawn cuesta dinero en efectivo o en el banco.
- CombatLogging: o mantener al jugador muerto al reconectar (
CheckDeath) o hacerlo reaparecer automáticamente (RespawnOnJoin). - RemoveItemsAfterRPDeath: soltar dinero, armas e items en la muerte de RP, con una whitelist
KeepItemspara cosas como la documentación. - Progressbar:
NATIVE,RPROGRESSoCUSTOM(conecta la tuya enCustomProgress/StopCustomProgress). - EMSCall: mete dentro de esta función el trigger de llamada de tu teléfono para que la llamada al EMS en el juego pase por tu teléfono en vez de por la notificación por defecto.
- EnableLogs: activa los logs por webhook de Discord y configúralos en
webhooks.lua.
OnKnocked, OnDeath, OnRevive y OnRespawn en config.lua son funciones vacías, listas para que metas tus propios triggers/exports. CanDie te permite desactivar el bucle de muerte de forma condicional: útil para zonas de minijuegos, eventos de airsoft o arenas PvP.