AI Core
Référence de l’APIAI Core : exports serveur

Serrures de portes

Verrouiller, déverrouiller et lire des portes via le script de serrures qu’utilise le serveur.

Les appels de portes passent par ai-core, jamais par les exports ou événements propres à un script de serrures (ai-doorlock compris). ai-core transmet chaque appel au script de serrures actif : celui que choisit le réglage Door lock script du panneau, ou le premier qui tourne (ai-doorlock, ox_doorlock, tgiann-doorlock et les autres de la liste de compatibilité).

Une porte est désignée par l’id de porte propre à ce script : l’id que vous voyez dans sa liste de portes (ai-doorlock : l’id de la porte dans le panneau d’administration ; ox_doorlock : son numéro en base de données).

GetDoorlockSystem

Le nom de ressource du script de serrures auquel ai-core transmet.

Côté : Serveur · Attend : non · Lib : doors.provider()

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

Paramètres

Aucun.

Retour

string | null : le nom de ressource du script de serrures. null quand aucun ne tourne.

Exemple

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

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

// Les ids de portes de votre config appartiennent à un script de serrures : avertir quand un autre tourne.
if (core.GetDoorlockSystem() !== "ai-doorlock")
  console.log("myscript: door ids are written for ai-doorlock");

SetDoorLocked

Verrouille ou déverrouille une porte.

Côté : Serveur · Attend : non · Lib : doors.setLocked

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

Paramètres

Prop

Type

Retour

boolean : true quand le script de serrures a accepté le changement. false quand aucun script de serrures ne tourne, que la porte est inconnue, que le script a refusé, que id est vide ou que locked n’est pas un booléen.

Exemple

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

Indique si une porte est verrouillée.

Côté : Serveur · Attend : non · Lib : doors.isLocked

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

Paramètres

Prop

Type

Retour

boolean | null : true verrouillée, false déverrouillée. null quand c’est inconnu : aucun script de serrures ne tourne, la porte n’existe pas, le script ne peut pas le dire côté serveur, ou id est vide.

Exemple

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

Décidez ce que null signifie pour votre fonctionnalité. L’exemple traite « inconnu » comme fermé, si bien qu’un script de serrures absent n’ouvre jamais le casse trop tôt.

Sur cette page