AI Core
Мир и инструментыai-doorlock

ai-doorlock для разработчиков

Серверные экспорты, API ox_doorlock, ключи GlobalState и событие ai-doorlock.

Чтобы запирать или отпирать двери из своего скрипта, используйте doors.setLocked(id, locked, by?) и doors.isLocked(id) из lib (сервер). Они идут через слой замков дверей ai-core и работают с любым скриптом замков дверей, который запущен на сервере. Экспорты ниже являются тем, что вызывает слой, пока активен ai-doorlock.

Дверь называется по её id в панели: ключ записи в data/doors.json (показывается в списке дверей панели). Типизированы как AiDoorlockServerExports в @aicore-fivem/shared.

TypeScript
import { resourceExport } from "@aicore-fivem/lib/server";
const doorlock = resourceExport("ai-doorlock");

Серверные экспорты

SetDoorState

Запирает или отпирает дверь для всех без какой-либо проверки доступа или расстояния.

Сторона: сервер · Ожидание: нет

Сигнатура
SetDoorState(id: string, locked: boolean): void
Lua
exports['ai-doorlock']:SetDoorState(id, locked)

Параметры

Prop

Type

Возвращает

Ничего. Id, который не является дверью панели, ничего не делает.

Пример

import { resourceExport } from "@aicore-fivem/lib/server";

const doorlock = resourceExport("ai-doorlock");

// Блокировка: запереть все перечисленные двери участка.
const STATION_DOORS = ["mrpd_front", "mrpd_back", "mrpd_back_gate"]; // id из панели по умолчанию
export function lockdown(): void {
  for (const id of STATION_DOORS) doorlock.SetDoorState(id, true);
}

IsLocked

Заперта ли дверь сейчас.

Сторона: сервер · Ожидание: нет

Сигнатура
IsLocked(id: string): boolean
Lua
local locked = exports['ai-doorlock']:IsLocked(id)

Возвращает

true, если заперта. false, если отперта или id не является дверью панели.

ox_doorlock API

ai-doorlock делает provide для ox_doorlock и отвечает на два его серверных экспорта:

ЭкспортЧто делает
setDoorState(id, state)То же, что SetDoorState: true или 1 запирает, любое другое значение отпирает.
getDoor(id){ id, name, state } (state 1 заперта, 0 отперта; name является названием из панели) или nil для неизвестного id.

Другие экспорты ox_doorlock не поддерживаются.

GlobalState

Состояние замка каждой двери хранится в ключе GlobalState door:<id> (true = заперта), который можно читать на сервере и на каждом клиенте. Он удаляется, когда дверь удаляют.

Lua (клиент или сервер)
local locked = GlobalState['door:mrpd_front'] == true

События

ИмяТипЧто делает
ai-doorlock:toggleclient callback(id) -> { ok, locked }: игрок переключает дверь после того, как сервер проверит расстояние и доступ. Внутреннее; не чаще 2 раз в секунду на игрока и 500 мс на дверь.

На этой странице