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

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

Экспорты ai-hud для потребностей (голод, жажда, стресс) и его настроек HUD, а также что он читает из других скриптов.

Потребности являются числами от 0 до 100, которые хранятся в метаданных персонажа (hunger, thirst, stress, ключи QB). Голод и жажда уменьшаются (100 = сыт); стресс растёт (0 = спокоен). ai-hud является единственным скриптом, который их пишет.

Чтобы добавить стресс из своего скрипта, используйте слой стресса AI Core (stress из lib, экспорт AddStress), который работает с любым запущенным HUD. Эффекты еды и напитков задаются у предмета: укажите значения предмета Hunger, Thirst и Stress в панели ai-inventory, и ai-hud применит их, когда предмет используют.

Серверные экспорты

SetNeed и AddNeed типизированы как AiHudServerExports в @aicore-fivem/shared (resourceExport("ai-hud") в TypeScript). GetNeeds не типизирован: вызывайте его через callExport("ai-hud", "GetNeeds", source) из lib.

GetNeeds

Читает потребности загруженного игрока.

Сторона: сервер · Ожидание: нет

Сигнатура
GetNeeds(source: number): { hunger: number; thirst: number; stress: number } | null
Lua
local needs = exports['ai-hud']:GetNeeds(source) -- таблица или nil

Параметры

Prop

Type

Возвращает

{ hunger, thirst, stress } | null: каждое значение 0-100 (дробная часть сохраняется). null, если у игрока нет загруженного персонажа.

SetNeed

Устанавливает одну потребность в значение.

Сторона: сервер · Ожидание: нет

Сигнатура
SetNeed(source: number, need: "hunger" | "thirst" | "stress", value: number): void
Lua
exports['ai-hud']:SetNeed(source, 'hunger', 100)

Параметры

Prop

Type

Возвращает

Ничего. Ничего не делает, если у игрока нет загруженного персонажа или аргумент неверен. Новое значение сохраняется в персонаже и отправляется в HUD игрока, когда меняется его округлённое значение.

AddNeed

Меняет одну потребность на величину.

Сторона: сервер · Ожидание: нет

Сигнатура
AddNeed(source: number, need: "hunger" | "thirst" | "stress", delta: number): void
Lua
exports['ai-hud']:AddNeed(source, 'thirst', 25)

Параметры

Prop

Type

Возвращает

Ничего.

Пример

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

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

// Автомат с газировкой: немного утоляет жажду, отказывает, если игрок не хочет пить.
onClientCallback("myscript:soda", (source) => {
  const needs = callExport("ai-hud", "GetNeeds", source) as { thirst: number } | null;
  if (!needs) return fail("NO_CHARACTER");
  if (needs.thirst > 90) return fail("NOT_THIRSTY");
  hud.AddNeed(source, "thirst", 20);
  return { ok: true };
});

Эти экспорты работают, только пока запущен ai-hud. Если владелец заменит ai-hud другим HUD, ваши вызовы завершатся ошибкой. Слой стресса AI Core (AddStress) продолжает работать с другими HUD.

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

Типизированы как AiHudClientExports.

ЭкспортЧто делает
OpenSettings(): voidОткрывает настройки HUD игрока (то же, что /hud). Другие скрипты открывают настройки любого HUD через OpenHudSettings() из AI Core.
SetMinimapAlways(on: boolean): voidСобственный переключатель администратора (меню ai-admin): держит миникарту пешком независимо от панели, только для этого игрока.
GetMinimapAlways(): booleanВключён ли этот переключатель.

Что читает ai-hud

ИсточникДля чего
Серверное событие AI Core itemUsed (source, name, status)Добавляет значения предмета hunger, thirst, stress.
Клиентское событие AI Core CORE.clientHudVisibleEvent (visible)Скрывает HUD, пока открыто полноэкранное меню (hud.hide(reason) из lib в любом скрипте).
Подсказки клавиш AI Core (ai-core:client:keyHints, GetKeyHints())Список клавиш слева.
State bag транспорта fuelУказатель топлива.
State bag игрока proximity и события pma-voice:setTalkingMode / pma-voice:radioActiveДальность голоса, разговор, рация.
seatbelt из lib (слой ремня безопасности AI Core)Предупреждение о ремне.
inventory.currentWeapon() из libБлок оружия.

События

Собственные события ai-hud (resource/common/hud.ts) внутренние. Одно открыто только для его собственного клиента: ai-hud:stress (от клиента к серверу, от 1 до 5 очков, не чаще двух раз в секунду). Другие скрипты добавляют стресс на сервере через AI Core.

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