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.
-- 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í.
-- 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
clientHledá 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
exports['DS-Death']:ReviveNear()Příklad
-- e.g. from a usable-item handler or a target option
exports['DS-Death']:ReviveNear()isPlayerDead
clientVrací, 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
exports['DS-Death']:isPlayerDead(serverId)Parametry
| Název | Typ | Popis |
|---|---|---|
| serverId? | number | Server ID hráče, na kterého se ptáš. Výchozí je vlastní hráč. |
Vrací
true, dokud je hráč úplně mrtvý, jinak false.
Příklad
if exports['DS-Death']:isPlayerDead() then
-- block phone, inventory, etc.
endisPlayerKnocked
clientVrací, 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
exports['DS-Death']:isPlayerKnocked(serverId)Parametry
| Název | Typ | Popis |
|---|---|---|
| serverId? | number | Server ID hráče, na kterého se ptáš. Výchozí je vlastní hráč. |
Vrací
true, dokud je hráč knocknutý a čeká na oživení.
Příklad
local target = GetClosestPlayer()
if exports['DS-Death']:isPlayerKnocked(GetPlayerServerId(target)) then
-- show "Revive" prompt
endKonfigurač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ť
falsea 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 konfiguraciProgressbar = '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í.
exports['DS-Death']:isPlayerKnocked() uvnitř OnKnocked a omez tím jiné systémy (telefon, inventory, rádio) bez pollování.