ai-doorlock dla deweloperów
Eksporty serwera, API ox_doorlock, klucze GlobalState i zdarzenie ai-doorlock.
Aby zamykać lub otwierać drzwi z własnego skryptu, używaj doors.setLocked(id, locked, by?) i doors.isLocked(id) z biblioteki (serwer). Przechodzą przez warstwę zamków drzwi ai-core i działają z każdym skryptem zamków drzwi, którego używa serwer. Poniższe eksporty to to, co wywołuje ta warstwa, gdy ai-doorlock jest aktywny.
Drzwi są nazywane według ich ID z panelu: klucza rekordu w data/doors.json (widocznego na liście drzwi w panelu). Typowane jako AiDoorlockServerExports w @aicore-fivem/shared.
import { resourceExport } from "@aicore-fivem/lib/server";
const doorlock = resourceExport("ai-doorlock");Eksporty serwera
SetDoorState
Zamyka lub otwiera drzwi dla wszystkich, bez sprawdzania dostępu i odległości.
Strona: serwer · Czeka: nie
SetDoorState(id: string, locked: boolean): voidexports['ai-doorlock']:SetDoorState(id, locked)Parametry
Prop
Type
Zwraca
Nic. ID, które nie jest drzwiami z panelu, nic nie robi.
Przykład
import { resourceExport } from "@aicore-fivem/lib/server";
const doorlock = resourceExport("ai-doorlock");
// Blokada: zamknij wszystkie wymienione drzwi posterunku.
const STATION_DOORS = ["mrpd_front", "mrpd_back", "mrpd_back_gate"]; // domyślne ID z panelu
export function lockdown(): void {
for (const id of STATION_DOORS) doorlock.SetDoorState(id, true);
}IsLocked
Czy drzwi są teraz zamknięte.
Strona: serwer · Czeka: nie
IsLocked(id: string): booleanlocal locked = exports['ai-doorlock']:IsLocked(id)Zwraca
true, gdy zamknięte. false, gdy otwarte albo ID nie jest drzwiami z panelu.
API ox_doorlock
ai-doorlock robi provide dla ox_doorlock i odpowiada na dwa z jego eksportów serwera:
| Eksport | Co robi |
|---|---|
setDoorState(id, state) | To samo co SetDoorState: true lub 1 zamyka, cokolwiek innego otwiera. |
getDoor(id) | { id, name, state } (state 1 zamknięte, 0 otwarte; name to nazwa z panelu) albo nil dla nieznanego ID. |
Inne eksporty ox_doorlock nie są obsługiwane.
GlobalState
Stan zamka każdych drzwi to klucz GlobalState door:<id> (true = zamknięte), czytelny na serwerze i na każdym kliencie. Jest usuwany, gdy drzwi zostaną usunięte.
local locked = GlobalState['door:mrpd_front'] == trueZdarzenia
| Nazwa | Rodzaj | Co robi |
|---|---|---|
ai-doorlock:toggle | callback klienta | (id) -> { ok, locked }: gracz przełącza drzwi po sprawdzeniu przez serwer odległości i dostępu. Wewnętrzne; limit 2 na sekundę na gracza i 500 ms na drzwi. |
ai-doorlock
Zamki drzwi ustawiane w panelu przez wskazanie drzwi w świecie, z dostępem dla prac i gangów i jednym stanem zamka dla wszystkich.
ai-smallresources
Wiele drobnych funkcji rozgrywki, każda z własnym przełącznikiem w panelu, a do tego teleporty, windy, miejsca do siedzenia, cumowiska i Discord Rich Presence.