AI Core
Dünya ve araçlarai-doorlock

Geliştiriciler için ai-doorlock

ai-doorlock’un server export’ları, ox_doorlock API’si, GlobalState anahtarları ve event’i.

Kendi script’inden kapıları kilitlemek ya da açmak için lib’in doors.setLocked(id, locked, by?) ve doors.isLocked(id) fonksiyonlarını kullan (server). Bunlar ai-core’un kapı kilidi katmanından geçer ve sunucunun çalıştırdığı hangi kapı kilidi script’i olursa olsun çalışır. Aşağıdaki export’lar, ai-doorlock aktifken katmanın çağırdıklarıdır.

Bir kapı panel id’siyle adlandırılır: data/doors.json içindeki kayıt anahtarı (panelin kapı listesinde gösterilir). @aicore-fivem/shared içinde AiDoorlockServerExports olarak tiplenmiştir.

TypeScript
import { resourceExport } from "@aicore-fivem/lib/server";
const doorlock = resourceExport("ai-doorlock");

Server export’ları

SetDoorState

Hiçbir erişim ya da mesafe kontrolü yapmadan bir kapıyı herkes için kilitler ya da açar.

Taraf: Server · Bekler: hayır

Signature
SetDoorState(id: string, locked: boolean): void
Lua
exports['ai-doorlock']:SetDoorState(id, locked)

Parametreler

Prop

Type

Dönüş değeri

Hiçbir şey. Panel kapısı olmayan bir id hiçbir şey yapmaz.

Örnek

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

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

// Kapatma (lockdown): karakolun listelenen her kapısını kilitle.
const STATION_DOORS = ["mrpd_front", "mrpd_back", "mrpd_back_gate"]; // varsayılan panel id’leri
export function lockdown(): void {
  for (const id of STATION_DOORS) doorlock.SetDoorState(id, true);
}

IsLocked

Bir kapının şu an kilitli olup olmadığı.

Taraf: Server · Bekler: hayır

Signature
IsLocked(id: string): boolean
Lua
local locked = exports['ai-doorlock']:IsLocked(id)

Dönüş değeri

Kilitliyse true. Açıksa ya da id bir panel kapısı değilse false.

ox_doorlock API’si

ai-doorlock ox_doorlock adını sağlar (provide) ve iki server export’unu cevaplar:

ExportNe yapar
setDoorState(id, state)SetDoorState ile aynı: true ya da 1 kilitler, diğer her şey açar.
getDoor(id){ id, name, state } (state 1 kilitli, 0 açık; name panel adıdır), bilinmeyen bir id için nil.

Diğer ox_doorlock export’ları cevaplanmaz.

GlobalState

Her kapının kilit durumu door:<id> GlobalState anahtarıdır (true = kilitli); server’da ve her client’ta okunabilir. Kapı silindiğinde kaldırılır.

Lua (client or server)
local locked = GlobalState['door:mrpd_front'] == true

Event’ler

AdTürNe yapar
ai-doorlock:toggleclient callback’i(id) -> { ok, locked }: server mesafeyi ve erişimi kontrol ettikten sonra bir oyuncu bir kapıyı değiştirir. Dahili; oyuncu başına saniyede 2 ve kapı başına 500 ms ile sınırlı.

Bu sayfada