AI Core
Świat i narzędziaai-doorlock

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.

TypeScript
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

Sygnatura
SetDoorState(id: string, locked: boolean): void
Lua
exports['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

Sygnatura
IsLocked(id: string): boolean
Lua
local 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:

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

Lua (klient lub serwer)
local locked = GlobalState['door:mrpd_front'] == true

Zdarzenia

NazwaRodzajCo robi
ai-doorlock:togglecallback 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.

Na tej stronie