AI Core
Мир и инструментыai-smallresources

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

Клиентские экспорты, событие ремня безопасности, state bags и метаданные ai-smallresources.

Чтобы читать ремень безопасности или жесты из своего скрипта, используйте seatbelt.isOn() / seatbelt.onChange(fn) и gestures.isHandsUp() / gestures.isPointing() из lib (клиент; в Lua aiLib.seatbelt, aiLib.gestures). Они идут через ai-core и работают с любым запущенным скриптом ремня безопасности или эмоций. Экспорты ниже являются тем, что читает ai-core, пока отвечает ai-smallresources.

Все три экспорта клиентские, синхронные и читают локального игрока. GetSeatbelt типизирован как AiSmallResourcesClientExports в @aicore-fivem/shared; IsHandsUp и IsPointing не типизированы (используйте callExport).

TypeScript
import { resourceExport, callExport } from "@aicore-fivem/lib/client";
const small = resourceExport("ai-smallresources");

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

GetSeatbelt

Пристёгнут ли локальный игрок ремнём безопасности.

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

Сигнатура
GetSeatbelt(): boolean | null
Lua
local worn = exports['ai-smallresources']:GetSeatbelt() -- true, false или nil

Возвращает

true, если пристёгнут, false, если нет. null, если функция Seatbelt выключена в панели или игрок не в транспорте с ремнём безопасности.

Пример

import { seatbelt } from "@aicore-fivem/lib/client";

// Иконка ремня в HUD: прочитать один раз, затем следить за изменениями.
let worn = seatbelt.isOn();
seatbelt.onChange((value) => {
  worn = value;
});

Читайте его при действии или смене транспорта, никогда не каждый кадр.

IsHandsUp

Поднял ли локальный игрок руки (жест X).

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

Сигнатура
IsHandsUp(): boolean
Lua
local up = exports['ai-smallresources']:IsHandsUp()

Возвращает

true, пока руки подняты, иначе false.

IsPointing

Показывает ли локальный игрок пальцем (жест B).

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

Сигнатура
IsPointing(): boolean
Lua
local pointing = exports['ai-smallresources']:IsPointing()

Возвращает

true, пока показывает, иначе false.

События

ai-smallresources:seatbelt

Срабатывает на локальном клиенте, когда меняется ремень безопасности. Имя SEATBELT_EVENT в @aicore-fivem/shared. ai-core передаёт его дальше как своё собственное событие ремня безопасности, которое слушает seatbelt.onChange из lib; предпочитайте его.

Сторона: клиент (локальное событие)

Prop

Type

Lua
AddEventHandler('ai-smallresources:seatbelt', function(worn)
  print('seat belt', worn)
end)

Каждое другое событие ai-smallresources внутреннее (его клиент и его сервер).

State bags и метаданные

ИмяНа чёмТипЗначение
aiHoldигрокstring | falseПредмет новостей, который держит игрок (newscam, newsmic, newsboom).
aiCarryingигрокnumberИгрок кого-то несёт (его серверный id).
aiCarriedByигрокnumberИгрока кто-то несёт (его серверный id).
aiDivingигрокbooleanНа игроке снаряжение для дайвинга.
aiRealPlateтранспортstringНастоящий номер, пока установлен фальшивый.
aiMooredтранспортbooleanЛодка привязана к швартову.
diveOxygenметаданные персонажа (ai-core)numberСекунды воздуха, оставшиеся в баллоне.
aiPlayerCount / aiMaxPlayersGlobalStatenumberИгроки онлайн и слоты, выставляются, пока включён Discord Rich Presence.
// Сервер: настоящий номер транспорта, фальшивый он или нет.
export function realPlate(vehicle: number): string {
  const real = Entity(vehicle).state.aiRealPlate as string | undefined;
  return real ?? GetVehicleNumberPlateText(vehicle);
}

Используемые предметы

Регистрируются через слой инвентаря ai-core, поэтому работают с любым запущенным инвентарём: binoculars, firework1-firework4, newscam, newsmic, newsboom, fakeplate, notepad, note (метаданные text и description), diving_gear, diving_fill.

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