AI Core
Meslekler ve hizmetlerai-jobs

Geliştiriciler için ai-jobs

ai-jobs’un diğer script’lerle paylaştıkları (export’u yoktur): sosisli itibarı, iş aracı plakaları ve anahtarları, hesap defteri sebepleri ve özel event’leri.

ai-jobs’un hiç export’u yoktur. Diğer script’lerin onu çağırması hiç gerekmez: rotalar ve duraklar panel verisidir, bir mesainin yaptığı her şey de AI Core üzerinden gider (para, anahtarlar, envanter). Başka bir script’in okuyabildikleri aşağıda listelenmiştir.

Sosisli itibarı

Sosisli satıcısının itibarı, rep anahtarı altında hotdog alanındaki ai-core karakter metadata’sıdır (QBCore’un PlayerData.metadata.rep değerini tuttuğu yerin aynısı). 0’dan paneldeki Highest reputation değerine kadar bir tam sayıdır. ai-jobs onu bir büfe kiralanırken okur ve pişirilen her sosisliden sonra yazar; rep içindeki diğer alanları olduğu gibi korur.

Taraf: Server · Bekler: hayır

Signature
GetMeta(src: number, key: "rep"): { hotdog?: number; [other: string]: unknown } | null
Lua
local rep = exports['ai-core']:GetMeta(source, 'rep') -- tablo ya da nil

Dönüş değeri

Karakterin rep tablosu; oyuncunun yüklü bir karakteri yoksa ya da hiç itibar kazanmadıysa null / nil. İlk sosisli yapılana kadar hotdog yoktur.

Örnek

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

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

// /hotdogrep oyuncuya sosisli itibarını gösterir.
addCommand("hotdogrep", { help: "Show your hot dog reputation" }, (source) => {
  if (source === 0) return;
  const rep = core.GetMeta(source, "rep") as { hotdog?: number } | null;
  notify(source, `Hot dog reputation: ${rep?.hotdog ?? 0}`, "info");
});

İtibarı sadece diğer alanları koruyarak SetMeta(source, "rep", { ...old, hotdog = value }) ile yaz. Kiralanmış bir büfe kiralama anında okuduğu değeri tutar ve bir sonraki sosisliden sonra kendi değerini yazar; bu yüzden büfe kiralıyken yapılan bir değişikliğin üzerine yazılır.

İş araçları

  • Lib’in spawnVehicle fonksiyonuyla WORK<source> plakasıyla (çalışanın server id’si) oluşturulur, mesai bitince silinir.
  • Çalışan anahtarları AI Core’un anahtar katmanı üzerinden (lib vehicleKeys.give) job amacıyla alır, bu yüzden hangi anahtar script’i çalışıyorsa onları görür.
  • Çekici rotasının arızalı aracı kilitli ve anahtarsız oluşturulur; depoda ya da mesai bitince silinir.

Para

Rota ödemesi, work:<routeId> hesap defteri sebebiyle (örneğin work:taxi) rotanın Pay account hesabına gider. Sosisli satışları Sales paid into hesabına gider. İkisi de ai-core’un işlem geçmişinde görünür.

Özel event’ler ve callback’ler

Bunlar script’in kendi client-server sözleşmesidir (resource/common/routes.ts ve resource/common/hotdog.ts). Server her çağrıyı kontrol eder (mesafe, zamanlama, mevcut durak). Sürümler arasında değişebilirler: başka resource’lardan tetikleme ya da dinleme.

AdYönNe taşır
ai-jobs:startclient callback’i(routeId): depoda bir mesai başlatır, { ok } ile cevap verir.
ai-jobs:stopclient callback’i(): mesaiyi bitirir.
ai-jobs:arriveclient callback’i(stopId, underwater): duraktaki iş; server ilerleme çubuğunu çalıştırır, sonra öder.
ai-jobs:client:shiftserver -> çalışan(shift | null): mevcut durak; mesai bittiyse null.
ai-jobs:client:attachserver -> çekilen aracın sahibi(carNetId, flatbedNetId): çekilen aracı çekicinin kasasına bağlar.

Bu sayfada