AI Core
Araçlarai-vehiclekeys

Geliştiriciler için ai-vehiclekeys

ai-vehiclekeys’in server export’ları, cevapladığı qbx_vehiclekeys API’si ve event’leri.

Kendi script’inden anahtar vermek, almak ya da kontrol etmek için lib’in vehicleKeys.give(source, vehicle, purpose), vehicleKeys.remove ve vehicleKeys.has fonksiyonlarını kullan (server). Bunlar ai-core’un anahtar katmanından geçer ve server hangi anahtar script’ini çalıştırıyorsa onunla çalışır. Aşağıdaki export’lar, aktif anahtar sistemi ai-vehiclekeys iken bu katmanın çağırdıklarıdır.

Bütün export’lar server’dadır, senkrondur ve hem ai-vehiclekeys hem qbx_vehiclekeys adı altında cevap verir. Araç, server entity handle’ı (number) ya da plakadır (text). Plakalar normalize edilerek karşılaştırılır (boşluklar ve büyük/küçük harf önemli değildir).

TypeScript
import { resourceExport, callExport } from "@aicore-fivem/lib/server";
const keys = resourceExport("ai-vehiclekeys"); // tipli: HasKeys, GiveKeys, RemoveKeys
// SetLockState ve IsPlayerNearVehicle tipli değil: callExport("ai-vehiclekeys", "SetLockState", vehicle, "lock")

Server export’ları

HasKeys

Bir oyuncunun bir aracın anahtarını tutup tutmadığı: sahibi olarak, sahibi olan meslek veya çetenin üyesi olarak ya da bu oturumda verilmiş bir anahtarla.

Taraf: Server · Bekler: hayır

Signature
HasKeys(source: number, vehicle: number | string): boolean
Lua
local has = exports['ai-vehiclekeys']:HasKeys(source, vehicle)

Parametreler

Prop

Type

Dönüş değeri

Oyuncuda anahtar varsa true. Aksi halde false; var olmayan bir entity için de.

Örnek

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

const keys = resourceExport("ai-vehiclekeys");

onNet("myscript:openTrunk", (netId: number) => {
  const source = globalThis.source;
  const vehicle = NetworkGetEntityFromNetworkId(netId);
  if (!keys.HasKeys(source, vehicle)) return;
  // ... bagajı aç
});

GiveKeys

Oyuncuya bu oturum için bir anahtar verir. Oyuncu server’dan çıkana ya da karakter değiştirene kadar onu tutar. Oyuncunun zaten tuttuğu bir anahtarı vermek hiçbir şey yapmaz.

Taraf: Server · Bekler: hayır

Signature
GiveKeys(source: number, vehicle: number | string): void
Lua
exports['ai-vehiclekeys']:GiveKeys(source, vehicle)

Parametreler

Prop

Type

Dönüş değeri

Hiçbir şey. Oyuncu şu an o araçta oturuyorsa client’ına haber verilir (ai-vehiclekeys:client:granted): motor engeli kalkar ve motor çalışır.

RemoveKeys

Oyuncudan bir oturum anahtarını alır. Sahiplik anahtarları (sahip, meslek ya da çete filosu) alınamaz: aracın sahibini takip ederler.

Taraf: Server · Bekler: hayır

Signature
RemoveKeys(source: number, vehicle: number | string): void
Lua
exports['ai-vehiclekeys']:RemoveKeys(source, vehicle)

Dönüş değeri

Hiçbir şey.

SetLockState

Bir aracı server’da, hiçbir anahtar kontrolü yapmadan kilitler ya da açar.

Taraf: Server · Bekler: hayır

Signature
SetLockState(vehicle: number, state: "lock" | "unlock" | boolean | number): void
Lua
exports['ai-vehiclekeys']:SetLockState(vehicle, 'lock')

Parametreler

Prop

Type

Dönüş değeri

Hiçbir şey. Var olmayan bir entity’de hiçbir şey yapmaz.

IsPlayerNearVehicle

Bir oyuncunun bir araca 5 m mesafede durup durmadığı.

Taraf: Server · Bekler: hayır

Signature
IsPlayerNearVehicle(source: number, vehicle: number): boolean
Lua
local near = exports['ai-vehiclekeys']:IsPlayerNearVehicle(source, vehicle)

Dönüş değeri

5 m içindeyse true. Daha uzaktaysa ya da argümanlardan biri number değilse false.

Event’ler

ai-vehiclekeys’in kendi event’leri iç kullanım içindir (kendi client’ı ile server’ı arasındaki client callback’leri). Başka script’lerden çağırma.

AdTürNe yapar
ai-vehiclekeys:checkclient callback’i(netId) -> boolean: oyuncunun anahtar tutup tutmadığı, bir koltuğa oturduğunda sorulur.
ai-vehiclekeys:toggleLockclient callback’i(netId) -> { ok, locked? }: kilit tuşu.
ai-vehiclekeys:giveNearestclient callback’i(netId) -> { ok }: anahtarları en yakındaki oyuncuya ver.
ai-vehiclekeys:client:grantedserver’dan client’a(netId): o araçta otururken bir anahtar geldi; motor çalışabilir.

Kullanılabilir eşya

lockpick, ai-core’un envanter katmanı üzerinden kullanılabilir eşya olarak kaydedilir. Eşya sadece kırıldığında harcanır.

Bu sayfada