Exports
O DS-Death expõe alguns net events que você pode disparar de qualquer script, três exports do lado do cliente para consultas de estado e reanimações por perto, e um conjunto de hooks no nível da config para plugar seus próprios triggers na morte, na reanimação, no respawn e por aí vai.
Events
Os events são o ponto de integração mais fácil: dispare eles do seu ambulance job, do celular, de um minigame ou de uma ferramenta de admin.
DS-Death:revive
Reanima o jogador local (ou o jogador alvo, quando disparado pelo servidor). Use isso para ligar o DS-Death a fluxos de reanimação já existentes, como o handler esx_ambulancejob:revive do ambulance job do 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
Trava ou destrava a animação de morte do DS-Death. Útil quando outro sistema (ambulance job, minigame de reanimação próprio) quer rodar a própria animação mantendo o jogador no estado nocauteado do DS-Death. Passe true para travar e 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
Os três exports rodam no cliente. As consultas de estado aceitam um server ID opcional: não passe nada para perguntar sobre o jogador local.
ReviveNear
clientProcura jogadores nocauteados perto do jogador local e tenta reanimar o mais próximo. O script cuida da checagem do item, da barra de progresso e do event de reanimação, então você só precisa ligar esse export ao gatilho de interação que preferir (uso de item, opção de target, atalho de teclado).
Assinatura
exports['DS-Death']:ReviveNear()Exemplo
-- e.g. from a usable-item handler or a target option
exports['DS-Death']:ReviveNear()isPlayerDead
clientInforma se o jogador indicado está totalmente morto (esperando o respawn). Passe um server ID para consultar outro jogador; não passe nada para checar o jogador local.
Assinatura
exports['DS-Death']:isPlayerDead(serverId)Parâmetros
| Nome | Tipo | Descrição |
|---|---|---|
| serverId? | number | Server ID do jogador a consultar. O padrão é o jogador local. |
Retorna
true enquanto o jogador estiver totalmente morto; caso contrário, false.
Exemplo
if exports['DS-Death']:isPlayerDead() then
-- block phone, inventory, etc.
endisPlayerKnocked
clientInforma se o jogador indicado está nocauteado no momento (caído, mas ainda reanimável). Mesmo formato do isPlayerDead: o server ID é opcional e o padrão é o próprio jogador.
Assinatura
exports['DS-Death']:isPlayerKnocked(serverId)Parâmetros
| Nome | Tipo | Descrição |
|---|---|---|
| serverId? | number | Server ID do jogador a consultar. O padrão é o jogador local. |
Retorna
true enquanto o jogador estiver nocauteado e esperando reanimação.
Exemplo
local target = GetClosestPlayer()
if exports['DS-Death']:isPlayerKnocked(GetPlayerServerId(target)) then
-- show "Revive" prompt
endHooks de config
Além dos events e dos exports, o config.lua vem com algumas funções vazias que você pode estender sem tocar no núcleo protegido por escrow. Coloque seus próprios triggers/exports dentro de qualquer uma delas.
- OnKnocked, OnDeath, OnRevive, OnRespawn: disparados na transição de estado correspondente do jogador.
- CanDie: retorne
falsepara desligar o loop de morte por completo (por exemplo dentro de um minigame, de uma partida de airsoft ou de uma arena de PvP). - EMSCall: recebe as coordenadas do jogador que está morrendo; redirecione para o trigger de chamada de emergência do seu celular.
- Notification: troque pelo seu próprio sistema de avisos; recebe uma mensagem em texto.
- CustomProgress / StopCustomProgress: conecte qualquer barra de progresso (
ox_lib, UI própria etc.) quandoProgressbar = 'CUSTOM'na config. - DisabledKeys: os controles desativados enquanto o jogador está totalmente morto. Sobrescreva para manter os seus próprios controles utilizáveis.
exports['DS-Death']:isPlayerKnocked() de dentro do OnKnocked para condicionar outros sistemas (celular, inventário, rádio) sem ficar fazendo polling.