Eksporty
DS-Death udostępnia kilka net eventów, które wywołasz z dowolnego skryptu, trzy eksporty po stronie klienta do sprawdzania stanu i reanimacji w pobliżu, oraz zestaw hooków na poziomie konfiguracji do podpięcia własnych triggerów przy śmierci, reanimacji, respawnie i tak dalej.
Eventy
Eventy to najprostszy punkt integracji: wywołuj je ze swojej ambulance joba, telefonu, minigry albo narzędzia administracyjnego.
DS-Death:revive
Reanimuje lokalnego gracza (albo wskazanego gracza, gdy zostanie wywołany z serwera). Użyj tego, żeby wpiąć DS-Death w istniejące przepływy reanimacji, jak handler esx_ambulancejob:revive z ambulance joba w 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
Blokuje albo odblokowuje animację śmierci z DS-Death. Przydaje się, gdy inny system (praca ambulansu, własna minigra reanimacyjna) chce odtworzyć własną animację, zostawiając gracza w stanie znokautowania DS-Death. Przekaż true, żeby zablokować, false, żeby zwolnić.
-- 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)Eksporty
Wszystkie trzy eksporty działają po stronie klienta. Zapytania o stan przyjmują opcjonalne server ID: nie przekazuj nic, żeby zapytać o lokalnego gracza.
ReviveNear
clientSzuka znokautowanych graczy wokół lokalnego gracza i próbuje zreanimować najbliższego. Skrypt sam obsługuje sprawdzenie itemu, pasek postępu i event reanimacji, więc wystarczy, że podepniesz ten eksport pod dowolny wyzwalacz interakcji (użycie itemu, opcja targetu, keybind).
Sygnatura
exports['DS-Death']:ReviveNear()Przykład
-- e.g. from a usable-item handler or a target option
exports['DS-Death']:ReviveNear()isPlayerDead
clientZwraca informację, czy wskazany gracz jest całkowicie martwy (czeka na respawn). Przekaż server ID, żeby zapytać o innego gracza; nie przekazuj nic, żeby sprawdzić lokalnego gracza.
Sygnatura
exports['DS-Death']:isPlayerDead(serverId)Parametry
| Nazwa | Typ | Opis |
|---|---|---|
| serverId? | number | Server ID gracza, o którego pytasz. Domyślnie ty sam. |
Zwraca
true, dopóki gracz jest całkowicie martwy, w przeciwnym razie false.
Przykład
if exports['DS-Death']:isPlayerDead() then
-- block phone, inventory, etc.
endisPlayerKnocked
clientZwraca informację, czy wskazany gracz jest aktualnie znokautowany (leży, ale nadal da się go zreanimować). Działa tak samo jak isPlayerDead: server ID jest opcjonalne i domyślnie dotyczy ciebie.
Sygnatura
exports['DS-Death']:isPlayerKnocked(serverId)Parametry
| Nazwa | Typ | Opis |
|---|---|---|
| serverId? | number | Server ID gracza, o którego pytasz. Domyślnie ty sam. |
Zwraca
true, dopóki gracz jest znokautowany i czeka na reanimację.
Przykład
local target = GetClosestPlayer()
if exports['DS-Death']:isPlayerKnocked(GetPlayerServerId(target)) then
-- show "Revive" prompt
endHooki konfiguracyjne
Poza eventami i eksportami w config.lua znajdziesz kilka pustych funkcji, które możesz rozbudować bez ruszania zabezpieczonego escrow rdzenia. Wrzuć swoje triggery/eksporty do dowolnej z nich.
- OnKnocked, OnDeath, OnRevive, OnRespawn: wywoływane przy odpowiadającej im zmianie stanu gracza.
- CanDie: zwróć
false, żeby całkowicie wyłączyć pętlę śmierci (np. w minigrze, rundzie airsoftowej albo na arenie PvP). - EMSCall: dostaje koordynaty umierającego gracza; przekieruj to do wyzwalacza połączenia alarmowego w swoim telefonie.
- Notification: podmień na swój system powiadomień; dostaje wiadomość jako tekst.
- CustomProgress / StopCustomProgress: podepnij dowolny pasek postępu (
ox_lib, własne UI itd.), gdy w konfiguracji jestProgressbar = 'CUSTOM'. - DisabledKeys: klawisze wyłączone, gdy gracz jest całkowicie martwy. Nadpisz, żeby zostawić własne sterowanie aktywne.
exports['DS-Death']:isPlayerKnocked() wewnątrz OnKnocked, żeby blokować inne systemy (telefon, inventory, radio) bez odpytywania w pętli.