Exports
DS-Death expone un par de net events que puedes disparar desde cualquier script, tres exports de cliente para consultar el estado o revivir a quien tengas cerca, y un conjunto de hooks a nivel de config para enchufar tus propios triggers en la muerte, el revive, el respawn, etc.
Events
Los events son el punto de integración más sencillo: dispáralos desde tu ambulance job, tu teléfono, un minijuego o una herramienta de admin.
DS-Death:revive
Revive al jugador local (o al jugador objetivo cuando se dispara desde el servidor). Úsalo para enganchar DS-Death a flujos de revive ya existentes, como el handler esx_ambulancejob:revive del ambulance job de ESX.
-- Client side
TriggerEvent('DS-Death:revive')
-- Server side (revives the player whose source is passed in)
TriggerClientEvent('DS-Death:revive', source)DS-Death:lockAnim
Bloquea o desbloquea la animación de muerte de DS-Death. Útil cuando otro sistema (ambulance job, minijuego de revive propio) quiere reproducir su propia animación manteniendo al jugador en el estado knockout de DS-Death. Pasa true para bloquear y false para liberar.
-- 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
Los tres exports se ejecutan en el cliente. Las consultas de estado aceptan un server ID opcional: no pases nada para preguntar por el jugador local.
ReviveNear
clientBusca jugadores en knockout alrededor del jugador local e intenta revivir al más cercano. El script se encarga de la comprobación del item, de la barra de progreso y del event de revive, así que solo tienes que conectar este export al disparador de interacción que prefieras (uso de item, opción de target, atajo de teclado).
Firma
exports['DS-Death']:ReviveNear()Ejemplo
-- e.g. from a usable-item handler or a target option
exports['DS-Death']:ReviveNear()isPlayerDead
clientIndica si el jugador dado está completamente muerto (esperando el respawn). Pasa un server ID para consultar a otro jugador; no pases nada para comprobar el jugador local.
Firma
exports['DS-Death']:isPlayerDead(serverId)Parámetros
| Nombre | Tipo | Descripción |
|---|---|---|
| serverId? | number | Server ID del jugador a consultar. Por defecto, el jugador local. |
Devuelve
true mientras el jugador esté completamente muerto; si no, false.
Ejemplo
if exports['DS-Death']:isPlayerDead() then
-- block phone, inventory, etc.
endisPlayerKnocked
clientIndica si el jugador dado está actualmente en knockout (en el suelo pero todavía se le puede revivir). Misma forma que isPlayerDead: el server ID es opcional y por defecto es uno mismo.
Firma
exports['DS-Death']:isPlayerKnocked(serverId)Parámetros
| Nombre | Tipo | Descripción |
|---|---|---|
| serverId? | number | Server ID del jugador a consultar. Por defecto, el jugador local. |
Devuelve
true mientras el jugador esté en knockout y esperando el revive.
Ejemplo
local target = GetClosestPlayer()
if exports['DS-Death']:isPlayerKnocked(GetPlayerServerId(target)) then
-- show "Revive" prompt
endHooks de config
Más allá de los events y los exports, config.lua incluye unas cuantas funciones vacías que puedes ampliar sin tocar el núcleo protegido por escrow. Mete tus propios triggers/exports dentro de cualquiera de ellas.
- OnKnocked, OnDeath, OnRevive, OnRespawn: se disparan en el cambio de estado correspondiente del jugador.
- CanDie: devuelve
falsepara suprimir por completo el bucle de muerte (p. ej. dentro de un minijuego, una partida de airsoft o una arena PvP). - EMSCall: recibe las coordenadas del jugador que está muriendo; redirígelas al trigger de llamada de emergencia de tu teléfono.
- Notification: sustitúyela por tu propio sistema de avisos; recibe un mensaje de texto.
- CustomProgress / StopCustomProgress: conecta cualquier barra de progreso (
ox_lib, UI propia, etc.) cuandoProgressbar = 'CUSTOM'en la config. - DisabledKeys: los controles desactivados mientras el jugador está completamente muerto. Sobrescríbelo para mantener usables tus propios controles.
exports['DS-Death']:isPlayerKnocked() desde dentro de OnKnocked para condicionar otros sistemas (teléfono, inventario, radio) sin hacer polling.