AI Core
Основноеai-appearance

ai-appearance для разработчиков

Клиентские экспорты ai-appearance, формат рабочей формы и события, которые он использует с экраном персонажей AI Core.

Не вызывайте ai-appearance и не читайте его таблицу из своего скрипта. Используйте слой внешности AI Core: appearance из lib (на сервере appearance.get(charId), на клиенте appearance.apply(ped, look), appearance.read(ped), appearance.openMenu(...), appearance.wearOutfit(outfit), appearance.reloadSkin()) или aiLib.appearance в Lua. Он работает с каждым скриптом одежды, который поддерживает AI Core, поэтому владелец может заменить ai-appearance. См. справочник lib.

Клиентские экспорты

Типизированы как AiAppearanceClientExports в @aicore-fivem/shared. Их вызывает адаптер внешности AI Core.

ApplyAppearance

Надевает внешность ai-appearance на педа.

Сторона: клиент · Ожидание: нет

Сигнатура
ApplyAppearance(ped: number, appearance: unknown): boolean
Lua
local ok = exports['ai-appearance']:ApplyAppearance(ped, look)

Параметры

Prop

Type

Возвращает

boolean: true, если внешность применена. false, если внешность неверна или модель педа не совпадает с моделью внешности.

GetPedAppearance

Читает внешность, которую носит локальный игрок.

Сторона: клиент · Ожидание: нет

Сигнатура
GetPedAppearance(ped: number): unknown

Возвращает

Appearance локального игрока или null для любого другого педа.

WearOutfit

Надевает на локального игрока рабочую форму (униформу). Меняются только перечисленные части, и форма никогда не сохраняется как собственная внешность игрока.

Сторона: клиент · Ожидание: нет

Сигнатура
WearOutfit(outfit: JobOutfit): void
Lua
exports['ai-appearance']:WearOutfit({ components = { { id = 11, collection = '', index = 55, texture = 0 } }, props = {} })

JobOutfit

Prop

Type

OutfitPiece

Prop

Type

Возвращает

Ничего.

ReloadSkin

Возвращает на локального игрока сохранённую внешность (снимает рабочую форму). Сторона: клиент · Ожидание: нет.

Сигнатура
ReloadSkin(): void

Пример

import { appearance } from "@aicore-fivem/lib/client";
import type { JobOutfit } from "@aicore-fivem/shared";

// Через AI Core: работает с ai-appearance и другими поддерживаемыми скриптами одежды.
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);

Части формы задаются названием коллекции и индексом внутри неё, а не глобальным номером drawable в GTA. Базовая игра имеет коллекцию "". Через AI Core appearance.wearOutfit и reloadSkin отвечают false, когда запущенный скрипт одежды не поддерживает рабочие формы.

События

СобытиеСторонаАргументыЧто это
ai-core:client:characterPortraitКлиент (локальное)charId: number, url: stringai-appearance отправляет портрет каждой карточки (https://nui-img/...) на экран персонажей AI Core.

ai-appearance слушает серверное событие AI Core characterScreen (src, charIds), чтобы знать, какие портреты делать, и onCharacter из lib, чтобы одеть загруженного персонажа или запустить редактор.

База данных

Таблица ai_appearance_characters: char_id (= ai_core_characters.id) и data (JSON Appearance). Пишет в неё только ai-appearance. Адаптер AI Core читает её для GetCharacterAppearance.

Канал логов

purchases: каждый платный визит в магазин (через логи AI Core: консоль, Discord, Fivemanage, FiveM Stats, как их настроил владелец).

На этой странице