AI Core
API başvurusuAI Core: server export’ları

Kapı kilitleri

Sunucunun çalıştırdığı kapı kilidi script’i hangisiyse onun üzerinden kapıları kilitle, aç ve oku.

Kapı çağrıları ai-core üzerinden gider, asla bir kapı kilidi script’inin kendi export’ları ya da event’leri üzerinden değil (ai-doorlock dahil). ai-core her çağrıyı aktif kapı kilidi script’ine iletir: panelin Door lock script ayarının seçtiği ya da çalışan ilk script (ai-doorlock, ox_doorlock, tgiann-doorlock ve uyumluluk listesindeki diğerleri).

Bir kapı o script’in kendi kapı id’siyle adlandırılır: onun kapı listesinde gördüğün id (ai-doorlock: kapının admin panelindeki id’si; ox_doorlock: veritabanı numarası).

GetDoorlockSystem

ai-core’un ilettiği kapı kilidi script’inin resource adı.

Taraf: Server · Bekler: hayır · Lib: doors.provider()

İmza
GetDoorlockSystem(): string | null
Lua
local system = exports['ai-core']:GetDoorlockSystem() -- string ya da nil

Parametreler

Yok.

Dönüş değeri

string | null: kapı kilidi script’inin resource adı. Hiçbiri çalışmıyorsa null.

Örnek

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

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

// Config’indeki kapı id’leri tek bir kapı kilidi script’ine aittir: başkası çalışıyorsa uyar.
if (core.GetDoorlockSystem() !== "ai-doorlock")
  console.log("myscript: door ids are written for ai-doorlock");

SetDoorLocked

Bir kapıyı kilitler ya da kilidini açar.

Taraf: Server · Bekler: hayır · Lib: doors.setLocked

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

Parametreler

Prop

Type

Dönüş değeri

boolean: kapı kilidi script’i değişikliği kabul ettiğinde true. Hiçbir kapı kilidi script’i çalışmıyorsa, kapı bilinmiyorsa, script reddettiyse, id boşsa ya da locked bir boolean değilse false.

Örnek

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

Bir kapının kilitli olup olmadığı.

Taraf: Server · Bekler: hayır · Lib: doors.isLocked

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

Parametreler

Prop

Type

Dönüş değeri

boolean | null: true kilitli, false açık. Bilinmediğinde null: hiçbir kapı kilidi script’i çalışmıyor, kapı yok, script server’da söyleyemiyor ya da id boş.

Örnek

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

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

/** Soygun yalnızca kasa hâlâ kapalıyken başlayabilir. */
export function vaultClosed(): boolean {
  return core.IsDoorLocked("pacific_vault") !== false;
}

null’ın özelliğin için ne anlama geldiğine karar ver. Örnek "bilinmiyor"u kapalı sayar, böylece eksik bir kapı kilidi script’i soygunu asla erken açmaz.

Bu sayfada