Geliştiriciler için ai-appearance
ai-appearance’ın client export’ları, meslek kıyafeti şekli ve AI Core’un karakter ekranıyla kullandığı event’ler.
Script’inden ai-appearance’ı çağırma ya da tablosunu okuma. AI Core’un appearance katmanını kullan: lib appearance (server appearance.get(charId), client appearance.apply(ped, look), appearance.read(ped), appearance.openMenu(...), appearance.wearOutfit(outfit), appearance.reloadSkin()) ya da Lua’da aiLib.appearance. AI Core’un desteklediği her kıyafet script’iyle çalışır; böylece sunucu sahibi ai-appearance’ı değiştirebilir. Bkz. lib referansı.
Client export’ları
@aicore-fivem/shared içinde AiAppearanceClientExports olarak tiplenmiştir. AI Core’un appearance adaptörü bunları çağırır.
ApplyAppearance
Bir ped’e ai-appearance görünümü giydirir.
Taraf: Client · Bekler: hayır
ApplyAppearance(ped: number, appearance: unknown): booleanlocal ok = exports['ai-appearance']:ApplyAppearance(ped, look)Parametreler
Prop
Type
Dönüş değeri
boolean: görünüm uygulandıysa true. Görünüm geçersizse ya da ped’in modeli görünümün modeli değilse false.
GetPedAppearance
Yerel oyuncunun giydiği görünümü okur.
Taraf: Client · Bekler: hayır
GetPedAppearance(ped: number): unknownDönüş değeri
Yerel oyuncunun Appearance’ı, başka her ped için null.
WearOutfit
Yerel oyuncuya bir meslek kıyafeti (üniforma) giydirir. Sadece listelenen parçalar değişir ve kıyafet asla oyuncunun kendi görünümü olarak kaydedilmez.
Taraf: Client · Bekler: hayır
WearOutfit(outfit: JobOutfit): voidexports['ai-appearance']:WearOutfit({ components = { { id = 11, collection = '', index = 55, texture = 0 } }, props = {} })JobOutfit
Prop
Type
OutfitPiece
Prop
Type
Dönüş değeri
Hiçbir şey.
ReloadSkin
Kayıtlı görünümü yerel oyuncuya geri giydirir (meslek kıyafetini çıkarır). Taraf: Client · Bekler: hayır.
ReloadSkin(): voidÖrnek
import { appearance } from "@aicore-fivem/lib/client";
import type { JobOutfit } from "@aicore-fivem/shared";
// AI Core üzerinden: ai-appearance ve desteklenen diğer kıyafet script’leriyle çalışır.
const uniform: JobOutfit = {
components: [
{ id: 11, collection: "", index: 55, texture: 0 },
{ id: 4, collection: "", index: 35, texture: 0 },
],
props: [{ id: 0, collection: "", index: 46, texture: 0 }],
};
RegisterCommand("uniform", () => appearance.wearOutfit(uniform), false);
RegisterCommand("ownclothes", () => appearance.reloadSkin(), false);Kıyafet parçaları GTA’nın global drawable numarasıyla değil, koleksiyon adı ve içindeki indeksle belirtilir. Temel oyun "" koleksiyonudur. AI Core üzerinden, çalışan kıyafet script’inin meslek kıyafeti desteği yoksa appearance.wearOutfit ve reloadSkin false cevap verir.
Event’ler
| Event | Taraf | Argümanlar | Ne olduğu |
|---|---|---|---|
ai-core:client:characterPortrait | Client (yerel) | charId: number, url: string | ai-appearance her kartın portresini (https://nui-img/...) AI Core’un karakter ekranına gönderir. |
ai-appearance hangi portreleri yapacağını bilmek için AI Core’un server event’i characterScreen (src, charIds)’i, yüklenen bir karakteri giydirmek ya da oluşturucuyu başlatmak için de lib onCharacter’ı dinler.
Veritabanı
ai_appearance_characters tablosu: char_id (= ai_core_characters.id) ve data (Appearance JSON’u). Ona sadece ai-appearance yazar. AI Core’un adaptörü GetCharacterAppearance için onu okur.
Log kanalı
purchases: her ücretli mağaza ziyareti (AI Core’un logları üzerinden: sunucu sahibinin ayarladığı şekilde konsol, Discord, Fivemanage, FiveM Stats).
ai-appearance
Yeni karakterler için karakter oluşturucu, kıyafet mağazaları, berberler ve karakter ekranındaki portreler.
ai-inventory
Eşya boyutlu grid envanter, hızlı slotlar, yere atılan eşyalar, depolar, bagajlar ve torpidolar, dükkânlar, üretim ve silahlar. ox_inventory ve qb-inventory API’lerini cevaplar.