AI Core
Referencia de la APIEventos y estado

Eventos de red

Los eventos de red que puede escuchar un script de cliente (el canal de datos del jugador de ai-core), y el tráfico de red propio de ai-core que los demás scripts no deben disparar.

Un evento de red viaja entre el servidor y el cliente de un jugador. ai-core envía muy pocos: los datos propios de un jugador salen una vez cuando carga el personaje, después solo los valores que cambian, y solo a ese jugador. Todo lo demás que necesita tu script es un evento de cliente o un state bag.

Rara vez necesitas estos eventos directamente. El onPlayerData(key, handler) de la lib (TypeScript) y aiLib.playerData.onChange(key, handler) (Lua) escuchan ambos por ti, fusionan los parches de dinero y metadatos y leen los valores iniciales de ai-core.

ai-core:client:playerData

El servidor envía un valor de los datos propios del jugador: el valor completo de una clave. Se dispara una vez por clave cuando carga el personaje, y después cada vez que cambia ese valor (un trabajo, el servicio, una banda...).

Lado: del servidor al propio cliente del jugador

Argumentos

Oyente

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

// La lib escucha ai-core:client:playerData y playerDataPatch por ti.
onPlayerData("job", (job) => console.log(`main job: ${job.job} grade ${job.grade}`));

ai-core:client:playerDataPatch

El servidor envía solo las entradas cambiadas de un valor de tipo mapa: money (el nuevo saldo de una cuenta) o metadata (una clave). Fusiona el parche con lo que tienes.

Lado: del servidor al propio cliente del jugador

Argumentos

Prop

Type

Oyente

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

// La lib fusiona los parches: el handler recibe el mapa de dinero completo ya fusionado.
const show = (money: Record<string, number>): void => SendNUIMessage({ action: "cash", data: money.cash ?? 0 });
show(getPlayerData("money") ?? {});
onPlayerData("money", show);

En un cliente, escucha los eventos de red solo mediante el onServerEvent de la lib (TypeScript) o aiLib.onServerEvent (Lua). Comprueban que el evento vino de verdad del servidor; un handler de RegisterNetEvent a secas también se ejecuta cuando otro recurso de cliente dispara el nombre en local.

Tráfico propio de ai-core: no lo dispares

Estos eventos de red y callbacks son el tráfico interno de ai-core entre su servidor y su cliente (o la lib). Se listan para que los reconozcas en los logs. Nunca los dispares desde otro script ni construyas sobre ellos: sus argumentos pueden cambiar.

NombreDirecciónQué
ai-core:client:spawndel servidor al clientePone al personaje cargado en el mundo.
ai-core:client:chooseSpawndel servidor al clienteOpciones de aparición para que elija el jugador.
ai-core:client:openCharactersdel servidor al clienteVuelve a mostrar la pantalla de personajes tras un cambio.
ai-core:client:characterLooksdel servidor al cliente (latente)Los aspectos de la pantalla de personajes.
ai-core:client:billsdel servidor al clienteLas facturas abiertas de ai-core del jugador, para la lista de facturas.
ai-core:client:stressdel servidor al clienteEstrés para un HUD que solo lo acepta de su propio cliente.
ai-core:client:vehicleKeys, ai-core:client:garagesdel servidor al clienteLlamadas para scripts de llaves y garajes que solo tienen API de cliente.
ai-core:clientError, ai-core:fuelReportdel cliente al servidorInformes de errores de los bundles de cliente; niveles de combustible de scripts de combustible del lado del cliente.
ai-core:characters, ai-core:createCharacter, ai-core:deleteCharacter, ai-core:selectCharacter, ai-core:spawnChoice, ai-core:payBill, ai-core:vehicleTypecallbacksLa pantalla de personajes, la elección de aparición, las facturas y la aparición de vehículos.
ai-core:admin:*, <resource>:admin:worldambosEl panel de administración y los datos de panel de cada recurso.
ai-lib:client:notify, ai-lib:progressFor, ai-lib:minigameFor, ai-lib:client:progressForCanceldel servidor al clienteLas notificaciones de ai-lib, las barras de progreso y los minijuegos que ejecuta el servidor (usa notify, progressFor, minigameFor de la lib).

En esta página