Справочник API
Обзор API
Как вызвать AI Core из другого скрипта - экспорты, события и библиотека, на TypeScript и Lua.
Всё, что может вызвать другой скрипт: экспорты ai-core, события, которые он отправляет, экспорты каждого скрипта ai-* и вспомогательные функции @aicore-fivem/lib. Каждая сигнатура на этих страницах взята из исходников (@aicore-fivem/shared exports.ts, JSDoc библиотеки, вызовы экспортов в каждом скрипте).
Выберите правильный путь
| Вы пишете | Используйте |
|---|---|
| Скрипт ai-* или любой ресурс на TypeScript | @aicore-fivem/lib: inventory, vehicleKeys, online, medical... Библиотека сама вызывает ai-core. |
| Ресурс на Lua | aiLib из ai-lib (shared_script '@ai-lib/init.lua') или экспорты ai-core напрямую. |
| Скрипт для ESX / QB / Qbox | Ничего нового: мост отвечает на собственный API фреймворка. См. Слои и мост. |
Предметы, ключи от транспорта, оповещения, телефон, погода, тюрьма, одежда и смерти всегда идут через ai-core, а не через экспорты конкретного скрипта: ai-core передаёт вызов скрипту, который сервер использует для этой задачи.
Вызов экспорта
import { resourceExport } from "@aicore-fivem/lib/server";
// One typed handle per resource, at the top of the file.
const core = resourceExport("ai-core");
const cash = core.GetMoney(source, "cash");local cash = exports['ai-core']:GetMoney(source, 'cash')- Типы:
resourceExportберёт их изCitizenExportsв@aicore-fivem/shared. Ресурс, который может быть не запущен, используетoptionalExport("x")(null, пока он остановлен). - Имена: каждый экспорт отвечает и с изменённым регистром первой буквы (
GetMoneyиgetMoney). - Экспорты синхронные и возвращают небольшие значения. Если значению нужно время (сохранённая внешность), экспорт принимает callback: promise не пересекает границу ресурса.
- Горячие пути следят за событиями ai-core, а не вызывают экспорты в цикле (так работает зеркало
onlineв библиотеке).
Страницы
| Страница | Что |
|---|---|
| Серверные экспорты ai-core | Персонажи, деньги, работы, банды, предметы, ключи, медицина, телефон, диспетчер, тюрьма, мир, бакеты, логи, подключение, админ-панель. |
| Клиентские экспорты ai-core | Данные игрока, HUD, подсказки клавиш, синхронизация мира, предметы, радиальное меню, жесты, внешность, диалоги. |
| События и состояние | События CORE.* с данными, state bag, события фреймворков, которые отправляет мост. |
| Экспорты скриптов | Экспорты каждого скрипта ai-*, включая API ox_inventory, pma-voice и qb-weathersync, которые они заменяют. |
| Библиотека: клиент | @aicore-fivem/lib/client. |
| Библиотека: сервер | @aicore-fivem/lib/server. |
| Библиотека: shared и fivem | @aicore-fivem/lib/shared и /fivem. |
| Библиотека для Lua | aiLib в ресурсах на Lua. |