AI Core
Dokumentacja APIAI Core: eksporty serwerowe

Zamki drzwi

Zamykaj, otwieraj i odczytuj drzwi przez skrypt zamków drzwi, którego używa serwer.

Wywołania drzwi przechodzą przez ai-core, nigdy przez własne eksporty lub zdarzenia skryptu zamków drzwi (łącznie z ai-doorlock). ai-core przekazuje każde wywołanie do aktywnego skryptu zamków drzwi: tego, który wybiera ustawienie Door lock script w panelu, albo pierwszego działającego (ai-doorlock, ox_doorlock, tgiann-doorlock i inne z listy zgodności).

Drzwi są nazywane własnym id drzwi tego skryptu: id, które widzisz na jego liście drzwi (ai-doorlock: id drzwi w panelu administratora; ox_doorlock: ich numer w bazie danych).

GetDoorlockSystem

Nazwa zasobu skryptu zamków drzwi, do którego ai-core przekazuje wywołania.

Strona: Serwer · Czeka: nie · Lib: doors.provider()

Sygnatura
GetDoorlockSystem(): string | null
Lua
local system = exports['ai-core']:GetDoorlockSystem() -- string lub nil

Parametry

Brak.

Zwraca

string | null: nazwa zasobu skryptu zamków drzwi. null, gdy żaden nie działa.

Przykład

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

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

// Id drzwi w twoim configu należą do jednego skryptu zamków: ostrzeż, gdy działa inny.
if (core.GetDoorlockSystem() !== "ai-doorlock")
  console.log("myscript: door ids are written for ai-doorlock");

SetDoorLocked

Zamyka lub otwiera drzwi.

Strona: Serwer · Czeka: nie · Lib: doors.setLocked

Sygnatura
SetDoorLocked(id: string, locked: boolean, by?: number): boolean
Lua
local ok = exports['ai-core']:SetDoorLocked('pacific_vault', false, source)

Parametry

Prop

Type

Zwraca

boolean: true, gdy skrypt zamków drzwi przyjął zmianę. false, gdy nie działa żaden skrypt zamków drzwi, drzwi są nieznane, skrypt odmówił, id jest puste albo locked nie jest wartością logiczną.

Przykład

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

Czy drzwi są zamknięte.

Strona: Serwer · Czeka: nie · Lib: doors.isLocked

Sygnatura
IsDoorLocked(id: string): boolean | null
Lua
local locked = exports['ai-core']:IsDoorLocked('pacific_vault') -- true, false lub nil

Parametry

Prop

Type

Zwraca

boolean | null: true zamknięte, false otwarte. null, gdy nie wiadomo: nie działa żaden skrypt zamków drzwi, drzwi nie istnieją, skrypt nie umie tego stwierdzić na serwerze albo id jest puste.

Przykład

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;
}

Zdecyduj, co null znaczy dla twojej funkcji. Przykład traktuje "nieznane" jako zamknięte, więc brak skryptu zamków drzwi nigdy nie otworzy skoku przedwcześnie.

Na tej stronie