Death·Exporty

Exporty

DS-Death nabízí několik net eventů, které spustíš z libovolného skriptu, tři client-side exporty na dotazy na stav a oživení v okolí, a sadu hooků v konfiguraci pro napojení vlastních triggerů při smrti, oživení, respawnu a podobně.

Eventy

Eventy jsou nejjednodušší bod integrace: spusť je ze svého ambulance jobu, telefonu, minihry nebo admin nástroje.

DS-Death:revive

Oživí lokálního hráče (nebo cílového hráče, když je spuštěný ze serveru). Použij to pro napojení DS-Death na stávající toky oživení, třeba na handler esx_ambulancejob:revive z ESX ambulance jobu.

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

Zamkne nebo odemkne animaci smrti v DS-Death. Hodí se, když si jiný systém (ambulance job, vlastní minihra na oživení) chce přehrát vlastní animaci a hráče přitom nechat v knocknutém stavu DS-Death. Předej true pro zamknutí, false pro uvolnění.

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)

Exporty

Všechny tři exporty běží na klientu. Dotazy na stav přijímají volitelné server ID: když nepředáš nic, ptáš se na lokálního hráče.

ReviveNear

client

Hledá knocknuté hráče kolem lokálního hráče a zkusí oživit toho nejbližšího. Skript si sám pohlídá kontrolu itemu, progress bar i event oživení, takže stačí tenhle export napojit na interakci, kterou máš rád (použití itemu, target volba, keybind).

Signatura

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

Příklad

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

isPlayerDead

client

Vrací, jestli je daný hráč úplně mrtvý (čeká na respawn). Předej server ID, když se ptáš na jiného hráče; nepředávej nic, když chceš zkontrolovat lokálního hráče.

Signatura

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

Parametry

NázevTypPopis
serverId?numberServer ID hráče, na kterého se ptáš. Výchozí je vlastní hráč.

Vrací

boolean

true, dokud je hráč úplně mrtvý, jinak false.

Příklad

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

isPlayerKnocked

client

Vrací, jestli je daný hráč právě knocknutý (leží, ale jde ho oživit). Chová se stejně jako isPlayerDead: server ID je volitelné a výchozí je vlastní hráč.

Signatura

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

Parametry

NázevTypPopis
serverId?numberServer ID hráče, na kterého se ptáš. Výchozí je vlastní hráč.

Vrací

boolean

true, dokud je hráč knocknutý a čeká na oživení.

Příklad

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

Konfigurační hooky

Kromě eventů a exportů je v config.lua několik prázdných funkcí, které můžeš rozšířit bez zásahu do escrowovaného jádra. Vlož do kterékoli z nich vlastní triggery/exporty.

  • OnKnocked, OnDeath, OnRevive, OnRespawn: spouští se při odpovídající změně stavu hráče.
  • CanDie: vrať false a smyčka smrti se úplně potlačí (třeba v minihře, airsoftovém kole nebo PvP aréně).
  • EMSCall: dostane souřadnice umírajícího hráče; nasměruj to na trigger tísňového volání ve svém telefonu.
  • Notification: nahraď vlastním notifikačním systémem; dostává textovou zprávu.
  • CustomProgress / StopCustomProgress: napoj libovolný progress bar (ox_lib, vlastní UI atd.), když je v konfiguraci Progressbar = 'CUSTOM'.
  • DisabledKeys: ovládání, které je vypnuté, dokud je hráč úplně mrtvý. Přepiš, ať ti zůstane funkční vlastní ovládání.
Kombinování hooků
Hooky a exporty jdou dobře dohromady: zavolej exports['DS-Death']:isPlayerKnocked() uvnitř OnKnocked a omez tím jiné systémy (telefon, inventory, rádio) bez pollování.

Pořád to nejde?

Založ ticket na našem Discordu a my ti pomůžeme.

Přidat se na Discord →