AI Core
Справочник APIAI Core: серверные экспорты

Внешность

Прочитать сохранённую внешность персонажа из того скрипта одежды, который использует сервер.

Внешность идёт через ai-core, а не через собственные экспорты, события или таблицы скрипта одежды (включая ai-appearance). ai-core читает её из активного скрипта одежды: того, что выбран в настройке панели Clothing script, или первого запущенного. Надевание внешности на педа происходит на клиенте (клиентский экспорт ApplyAppearance, в библиотеке appearance.apply); см. Клиентские экспорты.

Внешность - это CharacterAppearance: { model, data }. model - хэш модели педа; data - собственный формат скрипта одежды. Считайте data запечатанной коробкой: передавайте её обратно в ApplyAppearance без изменений.

GetAppearanceSystem

Имя ресурса скрипта одежды, из которого ai-core читает внешность.

Сторона: сервер · Ожидание: нет · Библиотека: appearance.provider()

Сигнатура
GetAppearanceSystem(): string | null
Lua
local system = exports['ai-core']:GetAppearanceSystem() -- string или nil

Параметры

Нет.

Возвращает

string | null: имя ресурса скрипта одежды. null, когда ни один не работает (тогда педы носят одежду по умолчанию).

Пример

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

Сохранённая внешность персонажа, загружен он или нет. Используйте, чтобы одеть педа как этого персонажа: спящее тело, статуя, фото, предпросмотр.

Сторона: сервер · Ожидание: нет (отвечает через done) · Библиотека: appearance.get(charId) возвращает Promise

Сигнатура
GetCharacterAppearance(charId: number, done: (look: CharacterAppearance | null) => void): void
Lua
exports['ai-core']:GetCharacterAppearance(charId, function(look) end) -- look: table или nil

Параметры

Prop

Type

Возвращает

Ничего. done получает { model, data } или null, когда у персонажа нет сохранённой внешности, не работает ни один скрипт одежды, charId не положительное целое число или скрипт одежды дал сбой (записывается в лог). Если done не функция, вызов ничего не делает.

Пример

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");

// Клиент запрашивает собственную внешность игрока, чтобы одеть педа в фотобудке.
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");
});

Внешность может весить несколько килобайт. Отправляйте её одному игроку, которому она нужна, и никогда всем (-1).

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