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()
GetDoorlockSystem(): string | nulllocal system = exports['ai-core']:GetDoorlockSystem() -- string lub nilParametry
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
SetDoorLocked(id: string, locked: boolean, by?: number): booleanlocal 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
IsDoorLocked(id: string): boolean | nulllocal locked = exports['ai-core']:IsDoorLocked('pacific_vault') -- true, false lub nilParametry
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.