Death·Eksporty

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.

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

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

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)

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

client

Szuka 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

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

Przykład

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

isPlayerDead

client

Zwraca 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

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

Parametry

NazwaTypOpis
serverId?numberServer ID gracza, o którego pytasz. Domyślnie ty sam.

Zwraca

boolean

true, dopóki gracz jest całkowicie martwy, w przeciwnym razie false.

Przykład

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

isPlayerKnocked

client

Zwraca 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

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

Parametry

NazwaTypOpis
serverId?numberServer ID gracza, o którego pytasz. Domyślnie ty sam.

Zwraca

boolean

true, dopóki gracz jest znokautowany i czeka na reanimację.

Przykład

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

Hooki 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 jest Progressbar = 'CUSTOM'.
  • DisabledKeys: klawisze wyłączone, gdy gracz jest całkowicie martwy. Nadpisz, żeby zostawić własne sterowanie aktywne.
Łączenie hooków
Hooki i eksporty dobrze się uzupełniają: wywołaj exports['DS-Death']:isPlayerKnocked() wewnątrz OnKnocked, żeby blokować inne systemy (telefon, inventory, radio) bez odpytywania w pętli.

Nadal nie działa?

Załóż ticket na naszym Discordzie, a pomożemy ci.

Dołącz na Discord →