Справочник API
Библиотека: shared и fivem
@aicore-fivem/lib/shared (без нативов, работает везде) и /fivem (нативы на обеих сторонах) - каждая функция с сигнатурой.
/shared никогда не вызывает нативы: используйте его в коде NUI, в resource/common/ и на обеих сторонах. /fivem вызывает нативы, которые есть на обеих сторонах; клиентский и серверный входы реэкспортируют его.
import { readInt, fail, groupDigits } from "@aicore-fivem/lib/shared";
import { resourceExport, every } from "@aicore-fivem/lib/fivem";Экспорты между ресурсами (/fivem)
| Функция | Что |
|---|---|
registerExport(name, handler): void | Регистрирует экспорт, также под именем-двойником с изменённым регистром первой буквы (GetItems и getItems). |
resourceExport(resource): CitizenExports[K] | Типизированный доступ к экспортам другого ресурса; один дескриптор на файл. |
optionalExport(resource): CitizenExports[K] | null | То же для ресурса, который может быть не запущен (null, пока остановлен). |
callExport(resource, name, ...args): unknown | Экспорт скрипта без типов здесь; разберите результат. |
provideExport(resource, name, fn): void | Отвечает на exports["<resource>"].<name> для имени, которое этот ресурс делает через provide. |
isResourceStarted(resource): boolean | Запущен ли ресурс сейчас. |
Ресурсы, планировщик, состояние (/fivem)
| Функция | Что |
|---|---|
every(ms, fn, { active?, name? }): Job | Единый планировщик ресурса: 0 = каждый кадр. job.set(active), job.stop(), job.running. |
caller(): string | Ресурс, который вызывает этот экспорт (этот же при локальном вызове). |
onStop(fn): void | Срабатывает при остановке этого ресурса. |
new ByResource({ onDrop? }): set(key, value, owner = caller()), get, delete, ownerOf, values, entries | Записи по вызывающему ресурсу, удаляются при его остановке. |
new Reasons(): set(reason, on, owner?), has, any(), onChange | Состояние, которое держится, пока задана хоть одна причина (скрытый HUD, пауза синхронизации). |
plateOf(vehicle): string | Номер транспорта, обрезанный, в верхнем регистре. |
createLocale(), loadLocaleTexts(resource?) | Языковые тексты ресурса (t(key, ...args)) и вся таблица для NUI. |
new EntityState(key, parse), new PlayerState(key, parse), new GlobalKey(key, parse), new GlobalGroup(prefix, parse) | Чтение state bag: get, onChange; EntityState.getByNetId, GlobalGroup.ids(). |
stateNumber, stateBoolean, stateString | Парсеры для классов состояния. |
const fuel = new EntityState("fuel", stateNumber);
const job = every(1000, () => {
if (cache.vehicle) updateGauge(fuel.get(cache.vehicle) ?? 100);
});Действия и ввод (/shared)
| Функция | Что |
|---|---|
fail("LANG_KEY") | Отказ { ok: false, error } для ActionResult. |
isActionOk(reply), replyError(reply, fallback) | Чтение ответа вручную. |
readInt(value, min, max), readFinite(value), readId(value), readText(value, max) | Строгое чтение значений от клиента; null отказывает (NaN, Infinity, дроби). |
readVec3(value), readVec4(value) | Точки из ввода клиента или экспорта (объекты или векторы Lua); null при плохом значении. |
oneArg(read) | Парсер args с одним значением для callback: { args: oneArg(readId) }. |
asArgs(value) | Одно разобранное значение как результат args. |
num, int, bool, str, record, vec4 (value, fallback, ...) | Чтение содержимого панели с запасным значением. |
isRecord(value) | Проверка на обычный объект. |
Числа, текст, позиции (/shared)
| Функция | Что |
|---|---|
round(value, decimals = 0), groupDigits(value, separator = ",") | 1,234,567. |
formatWeight(grams) | 750 g, 1.5 kg. |
normalizePlate(text) | Номер как ключ или для сравнения. |
stripGameText(text) | Убирает HTML и коды ~r~ из текста другого скрипта. |
formatText(template, args) | Подстановки {0}. |
new LangTexts(): set, translate, subscribe, snapshot | Языковые тексты страницы NUI. |
logSafe(text, max), previewJson(value, max) | Ненадёжный текст и данные, безопасные для консоли. |
createLogger(resource) | info, warn, error с именем ресурса впереди. |
distance(a, b), flatDistance(a, b), headingTo(from, to), nearestOf(items, point, pos, max?) | Векторная математика (Vec3). |
randomInt(min, max), pickRandom(list), rollChance(percent) | Случайные функции. |
sleep(ms), waitFor(check, timeoutMs = 10000, intervalMs = 0) | Ожидание. |
new ServerClock(): sync(serverNow), now(), toLocal(serverTime) | Часы сервера на клиенте, для обратных отсчётов. |
gridCell(x, y, size), cellKey(cx, cy) | Ячейки сетки для AreaStream. |
zoneContains(shape, x, y, z), zoneBounds(shape), polyFromCorners(corners, height) | Геометрия зон. |
vehicleTypeOfClass(vehicleClass) | Класс транспорта в тип для CreateVehicleServerSetter. |
toVehicleProps(value), toVehicleSetup(value) | Внешний вид транспорта из ненадёжного ввода или null. |
Данные панели (/shared)
| Функция | Что |
|---|---|
spec.int(min, max, optional?), spec.num(min, max, optional?) | Построители спецификаций данных для schema.ts. |
readAccess(record), ACCESS_FIELDS, accessFields(), isPublic(rule), decideAccess(...) | Кто может пользоваться местом: работы, банды, ранги, смена. |
readBlipStyle(value, fallback), BLIP_STYLE_FIELDS | Стиль метки из панели. |
PLACE_PED_SPEC, placePedFields(path?), readPlacePed(value) | NPC места в панели. |
readRecords(raw, readOne) | Файл записей, разобранный один раз. |
new RecordObjects(source, file, readOne | records, build): rebuild(key), rebuildAll() | Точки, метки и педы файла записей; изменённая запись перестраивает только свои объекты. |
withoutSchemaKey(value) | Файл данных без ключа $schema. |