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

Görünüm

Sunucunun çalıştırdığı kıyafet script’i hangisiyse ondan bir karakterin kayıtlı görünümünü oku.

Görünümler ai-core üzerinden gider, hiçbir zaman bir kıyafet script’inin kendi export’ları, event’leri ya da tabloları üzerinden değil (ai-appearance dahil). ai-core onları aktif kıyafet script’inden okur: panelin Clothing script ayarının seçtiği ya da çalışan ilk script. Bir görünümü bir ped’e giydirmek client’ta olur (client export’u ApplyAppearance, lib appearance.apply); bkz. Client export’ları.

Bir görünüm bir CharacterAppearance’dır: { model, data }. model ped model hash’idir; data kıyafet script’inin kendi biçimidir. data’yı mühürlü bir kutu gibi ele al: ApplyAppearance’a değiştirmeden geri ver.

GetAppearanceSystem

ai-core’un görünümleri okuduğu kıyafet script’inin resource adı.

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

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

Parametreler

Yok.

Dönüş değeri

string | null: kıyafet script’inin resource adı. Hiçbiri çalışmıyorsa null (ped’ler o zaman varsayılan kıyafetleri giyer).

Örnek

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

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

addCommand("clothingsystem", { help: "Shows the clothing script in use", restricted: true }, () => {
  console.log(core.GetAppearanceSystem() ?? "none");
});

GetCharacterAppearance

Karakter yüklü olsun olmasın bir karakterin kayıtlı görünümü. Bir ped’i o karakter gibi giydirmek için kullan: uyuyan bir beden, bir heykel, bir fotoğraf, bir önizleme.

Taraf: Server · Bekler: hayır (done ile cevap verir) · Lib: appearance.get(charId) bir Promise döndürür

İmza
GetCharacterAppearance(charId: number, done: (look: CharacterAppearance | null) => void): void
Lua
exports['ai-core']:GetCharacterAppearance(charId, function(look) end) -- look: tablo ya da nil

Parametreler

Prop

Type

Dönüş değeri

Hiçbir şey. done { model, data } alır; karakterin kayıtlı görünümü yoksa, hiçbir kıyafet script’i çalışmıyorsa, charId pozitif bir tam sayı değilse ya da kıyafet script’i başarısız olduysa (loglanır) null alır. done olarak bir fonksiyon verilmezse çağrı hiçbir şey yapmaz.

Örnek

import { onClientCallback, online, resourceExport } from "@aicore-fivem/lib/server";
import { fail } from "@aicore-fivem/lib/shared";
import type { CharacterAppearance } from "@aicore-fivem/shared";

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

// Client, bir fotoğraf kabini ped’ini giydirmek için oyuncunun kendi görünümünü ister.
onClientCallback("myscript:myLook", async (source) => {
  const charId = online.charId(source);
  if (charId === undefined) return fail("NO_CHARACTER");
  const look = await new Promise<CharacterAppearance | null>((resolve) => core.GetCharacterAppearance(charId, resolve));
  return look ? { ok: true, look } : fail("NO_LOOK");
});

Bir görünüm birkaç kilobayt olabilir. Onu yalnızca ihtiyacı olan oyuncuya gönder, asla herkese (-1) değil.

Bu sayfada