AI Core
Справочник APIСобытия и состояние

Сетевые события

Сетевые события, которые может слушать клиентский скрипт (канал данных игрока ai-core), и собственный сетевой трафик ai-core, который другие скрипты не должны вызывать.

Сетевое событие идёт между сервером и клиентом одного игрока. ai-core отправляет их очень мало: собственные данные игрока уходят один раз при загрузке персонажа, затем только изменившиеся значения и только этому игроку. Всё остальное, что нужно вашему скрипту, - это клиентское событие или state bag.

Эти события редко нужны напрямую. onPlayerData(key, handler) из библиотеки (TypeScript) и aiLib.playerData.onChange(key, handler) (Lua) слушают оба за вас, сливают патчи денег и метаданных и читают начальные значения из ai-core.

ai-core:client:playerData

Сервер отправляет одно значение собственных данных игрока: целое значение одного ключа. Срабатывает один раз на каждый ключ при загрузке персонажа, затем каждый раз, когда это значение меняется (работа, дежурство, банда...).

Сторона: с сервера на клиент самого игрока

Аргументы

Обработчик

resource/client/index.ts
import { onPlayerData } from "@aicore-fivem/lib/client";

// Библиотека слушает ai-core:client:playerData и playerDataPatch за вас.
onPlayerData("job", (job) => console.log(`main job: ${job.job} grade ${job.grade}`));

ai-core:client:playerDataPatch

Сервер отправляет только изменившиеся записи значения-словаря: money (новый баланс одного счёта) или metadata (один ключ). Слейте патч с тем, что у вас есть.

Сторона: с сервера на клиент самого игрока

Аргументы

Prop

Type

Обработчик

resource/client/index.ts
import { getPlayerData, onPlayerData } from "@aicore-fivem/lib/client";

// Библиотека сливает патчи: обработчик получает весь слитый словарь денег.
const show = (money: Record<string, number>): void => SendNUIMessage({ action: "cash", data: money.cash ?? 0 });
show(getPlayerData("money") ?? {});
onPlayerData("money", show);

На клиенте слушайте сетевые события только через onServerEvent из библиотеки (TypeScript) или aiLib.onServerEvent (Lua). Они проверяют, что событие действительно пришло с сервера; голый обработчик RegisterNetEvent срабатывает и тогда, когда другой клиентский ресурс отправляет это имя локально.

Собственный трафик ai-core: не вызывать

Эти сетевые события и callback - внутренний трафик ai-core между его сервером и клиентом (или библиотекой). Они перечислены, чтобы вы узнавали их в логах. Никогда не вызывайте их из другого скрипта и не стройте на них ничего: их аргументы могут измениться.

ИмяНаправлениеЧто
ai-core:client:spawnс сервера на клиентПомещает загруженного персонажа в мир.
ai-core:client:chooseSpawnс сервера на клиентВарианты появления, из которых выбирает игрок.
ai-core:client:openCharactersс сервера на клиентСнова показывает экран персонажей после смены.
ai-core:client:characterLooksс сервера на клиент (latent)Внешности для экрана персонажей.
ai-core:client:billsс сервера на клиентОткрытые счета игрока в ai-core для списка счетов.
ai-core:client:stressс сервера на клиентСтресс для HUD, который принимает его только от своего клиента.
ai-core:client:vehicleKeys, ai-core:client:garagesс сервера на клиентВызовы для скриптов ключей и гаражей, у которых есть только клиентский API.
ai-core:clientError, ai-core:fuelReportс клиента на серверОтчёты об ошибках клиентских бандлов; уровни топлива от клиентских скриптов топлива.
ai-core:characters, ai-core:createCharacter, ai-core:deleteCharacter, ai-core:selectCharacter, ai-core:spawnChoice, ai-core:payBill, ai-core:vehicleTypecallbackЭкран персонажей, выбор появления, счета и спавн транспорта.
ai-core:admin:*, <resource>:admin:worldобаАдмин-панель и данные панели каждого ресурса.
ai-lib:client:notify, ai-lib:progressFor, ai-lib:minigameFor, ai-lib:client:progressForCancelс сервера на клиентУведомления ai-lib, полосы прогресса и мини-игры, запускаемые сервером (используйте notify, progressFor, minigameFor из библиотеки).

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