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