Death·Exports

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.

Lua
-- 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.

Lua
-- 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

client

Procura 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

Lua
exports['DS-Death']:ReviveNear()

Exemplo

Lua
-- e.g. from a usable-item handler or a target option
exports['DS-Death']:ReviveNear()

isPlayerDead

client

Informa 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

Lua
exports['DS-Death']:isPlayerDead(serverId)

Parâmetros

NomeTipoDescrição
serverId?numberServer ID do jogador a consultar. O padrão é o jogador local.

Retorna

boolean

true enquanto o jogador estiver totalmente morto; caso contrário, false.

Exemplo

Lua
if exports['DS-Death']:isPlayerDead() then
  -- block phone, inventory, etc.
end

isPlayerKnocked

client

Informa 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

Lua
exports['DS-Death']:isPlayerKnocked(serverId)

Parâmetros

NomeTipoDescrição
serverId?numberServer ID do jogador a consultar. O padrão é o jogador local.

Retorna

boolean

true enquanto o jogador estiver nocauteado e esperando reanimação.

Exemplo

Lua
local target = GetClosestPlayer()
if exports['DS-Death']:isPlayerKnocked(GetPlayerServerId(target)) then
  -- show "Revive" prompt
end

Hooks 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 false para 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.) quando Progressbar = 'CUSTOM' na config.
  • DisabledKeys: os controles desativados enquanto o jogador está totalmente morto. Sobrescreva para manter os seus próprios controles utilizáveis.
Combinando hooks
Hooks e exports combinam bem: chame exports['DS-Death']:isPlayerKnocked() de dentro do OnKnocked para condicionar outros sistemas (celular, inventário, rádio) sem ficar fazendo polling.

Ainda travado?

Abra um ticket no nosso Discord que a gente te ajuda.

Entrar no Discord →