Внешность
Прочитать сохранённую внешность персонажа из того скрипта одежды, который использует сервер.
Внешность идёт через 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 | nulllocal 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): voidexports['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).