AI Core
Esencialesai-chat

ai-chat para desarrolladores

La API de chat a la que responde ai-chat (el recurso chat de FiveM), sus exports, eventos y la forma de los mensajes.

ai-chat responde a la API del recurso chat de FiveM, así que escribes el código de chat de la forma estándar de FiveM. Los exports responden bajo exports['ai-chat'] y exports.chat.

ChatMessage

La forma de mensaje que reciben todos los exports y eventos.

Prop

Type

Exports de servidor

addMessage

Envía una línea de chat a un jugador, a varios jugadores o a todos.

Lado: Servidor · Espera: no

Firma
addMessage(target: number | number[], message: ChatMessage): void
Lua
exports.chat:addMessage(source, { args = { 'Bank', 'Your salary arrived.' }, color = { 61, 247, 158 } })

Parámetros

Prop

Type

Devuelve

Nada. Un mensaje sin una lista args válida se descarta.

Ejemplo

import { callExport } from "@aicore-fivem/lib/server";

function announce(text: string): void {
  callExport("chat", "addMessage", -1, { args: ["City", text], color: [61, 247, 158], multiline: true });
}
announce("The bank closes in 10 minutes.");

registerMessageHook

Ejecuta tu función para cada mensaje que envía un jugador, antes de entregarlo. El hook puede cambiar el mensaje, cambiar quién lo recibe o cancelarlo. Los hooks se quitan cuando tu recurso se detiene.

Lado: Servidor · Espera: no

Firma
registerMessageHook(hook: (source: number, message: ChatMessage, ref: HookRef) => void): void

HookRef

Prop

Type

Ejemplo

import { callExport } from "@aicore-fivem/lib/server";

callExport("chat", "registerMessageHook", (source: number, message: { args: string[] }, ref: { cancel(): void }) => {
  const text = message.args[message.args.length - 1] ?? "";
  if (/discord\.gg\//i.test(text)) ref.cancel();
});

registerMode

Añade un canal desde un script (los modos de chat de FiveM). Su callback decide quién recibe cada mensaje, como un hook de mensajes. El modo se quita cuando tu recurso se detiene.

Lado: Servidor · Espera: no

Firma
registerMode(data: { name: string; displayName?: string; color?: string; cb?: (source: number, message: ChatMessage, ref: HookRef) => void }): void

Prop

Type

Exports de cliente

ExportQué hace
addMessage(message: ChatMessage | string): voidMuestra una línea solo en el chat de este jugador.
addSuggestion(name: string, help: string, params?: { name: string, help: string }[]): voidAñade una sugerencia de comando para este jugador.

Eventos

chatMessage (server)

Se dispara en el servidor para cada mensaje que envía un jugador, antes de la entrega. Cancélalo (CancelEvent()) para descartar el mensaje.

Lado: Servidor (evento local)

ArgumentoTipoQué es
sourcenumberEl id de servidor de quien envía.
authorstringEl autor mostrado (el nombre del personaje).
textstringEl texto del mensaje.
on("chatMessage", (source: number, author: string, text: string) => {
  console.log(`[chat] ${author} (${source}): ${text}`);
});

Eventos de cliente que escucha ai-chat

Envíalos desde el servidor (TriggerClientEvent) o desde un script de cliente (TriggerEvent).

EventoArgumentosQué hace
chat:addMessagemessage: ChatMessage | stringMuestra una línea.
chatMessageauthor: string, color: [r, g, b], text: stringMuestra una línea (estilo antiguo).
chat:addSuggestionname: string, help: string, params?: { name, help }[]Añade una sugerencia.
chat:addSuggestionssuggestions: { name, help, params? }[]Añade varias sugerencias.
chat:removeSuggestionname: stringQuita una sugerencia.
chat:addMode / chat:removeModemode / nameAñade o quita un modo de script en este cliente.
chat:clearningunoVacía el chat de este jugador.

chat:addTemplate se ignora: las plantillas (HTML) nunca se dibujan. Los mensajes que escriben los jugadores no se envían por _chat:messageEntered; escucha chatMessage en el servidor.

En esta página