AI Core
Справочник APIAI Core: серверные экспорты

Дверные замки

Запирать, отпирать и читать двери через тот скрипт дверных замков, который использует сервер.

Вызовы дверей идут через ai-core, а не через собственные экспорты или события скрипта замков (включая ai-doorlock). ai-core передаёт каждый вызов активному скрипту замков: тому, что выбран в настройке панели Door lock script, или первому запущенному (ai-doorlock, ox_doorlock, tgiann-doorlock и остальные из списка совместимости).

Дверь задаётся собственным id двери этого скрипта: id, который вы видите в его списке дверей (ai-doorlock: id двери в админ-панели; ox_doorlock: её номер в базе данных).

GetDoorlockSystem

Имя ресурса скрипта дверных замков, которому ai-core передаёт вызовы.

Сторона: сервер · Ожидание: нет · Библиотека: doors.provider()

Сигнатура
GetDoorlockSystem(): string | null
Lua
local system = exports['ai-core']:GetDoorlockSystem() -- string или nil

Параметры

Нет.

Возвращает

string | null: имя ресурса скрипта дверных замков. null, когда ни один не работает.

Пример

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

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

// Id дверей в вашем конфиге принадлежат одному скрипту замков: предупредить, когда работает другой.
if (core.GetDoorlockSystem() !== "ai-doorlock")
  console.log("myscript: door ids are written for ai-doorlock");

SetDoorLocked

Запирает или отпирает дверь.

Сторона: сервер · Ожидание: нет · Библиотека: doors.setLocked

Сигнатура
SetDoorLocked(id: string, locked: boolean, by?: number): boolean
Lua
local ok = exports['ai-core']:SetDoorLocked('pacific_vault', false, source)

Параметры

Prop

Type

Возвращает

boolean: true, когда скрипт замков принял изменение. false, когда ни один скрипт замков не работает, дверь неизвестна, скрипт отказал, id пустой или locked не boolean.

Пример

import { onClientCallback, progressFor, resourceExport, near } from "@aicore-fivem/lib/server";
import { fail } from "@aicore-fivem/lib/shared";
import { Locale } from "common";

const core = resourceExport("ai-core");
const VAULT = { x: 253.9, y: 225.2, z: 101.9 };

onClientCallback("myscript:hackVault", { guards: [near(VAULT, 2)], lock: true }, async (source) => {
  if (!core.HasItem(source, "laptop")) return fail("NO_LAPTOP");
  if (!(await progressFor(source, { label: Locale("HACKING"), duration: 15000 }))) return fail("CANCELLED");
  return core.SetDoorLocked("pacific_vault", false, source) ? { ok: true } : fail("DOOR_FAILED");
});

IsDoorLocked

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

Сторона: сервер · Ожидание: нет · Библиотека: doors.isLocked

Сигнатура
IsDoorLocked(id: string): boolean | null
Lua
local locked = exports['ai-core']:IsDoorLocked('pacific_vault') -- true, false или nil

Параметры

Prop

Type

Возвращает

boolean | null: true заперта, false отперта. null, когда это неизвестно: ни один скрипт замков не работает, двери нет, скрипт не может определить это на сервере или id пустой.

Пример

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

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

/** The heist may start only while the vault is still closed. */
export function vaultClosed(): boolean {
  return core.IsDoorLocked("pacific_vault") !== false;
}

Решите, что null означает для вашей функции. Пример считает «неизвестно» закрытым, поэтому отсутствующий скрипт замков никогда не откроет ограбление раньше времени.

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