AI Core
Podstawyai-chat

ai-chat dla deweloperów

API czatu, na które odpowiada ai-chat (zasób chat z FiveM), jego eksporty, zdarzenia i kształt wiadomości.

ai-chat odpowiada na API zasobu chat z FiveM, więc kod czatu piszesz standardowo, jak w FiveM. Eksporty odpowiadają zarówno pod exports['ai-chat'], jak i exports.chat.

ChatMessage

Kształt wiadomości, który przyjmuje każdy eksport i zdarzenie.

Prop

Type

Eksporty serwera

addMessage

Wysyła linię czatu do jednego gracza, kilku graczy lub wszystkich.

Strona: serwer · Czeka: nie

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

Parametry

Prop

Type

Zwraca

Nic. Wiadomość bez prawidłowej listy args jest odrzucana.

Przykład

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

Uruchamia twoją funkcję dla każdej wiadomości wysłanej przez gracza, zanim zostanie dostarczona. Hook może zmienić wiadomość, zmienić odbiorców albo ją anulować. Hooki są usuwane, gdy twój zasób się zatrzymuje.

Strona: serwer · Czeka: nie

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

HookRef

Prop

Type

Przykład

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

Dodaje kanał ze skryptu (tryby czatu FiveM). Jego callback decyduje, kto dostaje każdą wiadomość, jak hook wiadomości. Tryb jest usuwany, gdy twój zasób się zatrzymuje.

Strona: serwer · Czeka: nie

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

Prop

Type

Eksporty klienta

EksportCo robi
addMessage(message: ChatMessage | string): voidPokazuje linię tylko na czacie tego gracza.
addSuggestion(name: string, help: string, params?: { name: string, help: string }[]): voidDodaje podpowiedź komendy dla tego gracza.

Zdarzenia

chatMessage (server)

Wywoływane na serwerze dla każdej wiadomości wysłanej przez gracza, przed dostarczeniem. Anuluj je (CancelEvent()), aby odrzucić wiadomość.

Strona: serwer (zdarzenie lokalne)

ArgumentTypCo to jest
sourcenumberID nadawcy na serwerze.
authorstringPokazywany autor (imię postaci).
textstringTekst wiadomości.
on("chatMessage", (source: number, author: string, text: string) => {
  console.log(`[chat] ${author} (${source}): ${text}`);
});

Zdarzenia klienta, których nasłuchuje ai-chat

Wysyłaj je z serwera (TriggerClientEvent) lub ze skryptu klienta (TriggerEvent).

ZdarzenieArgumentyCo robi
chat:addMessagemessage: ChatMessage | stringPokazuje linię.
chatMessageauthor: string, color: [r, g, b], text: stringPokazuje linię (stary styl).
chat:addSuggestionname: string, help: string, params?: { name, help }[]Dodaje jedną podpowiedź.
chat:addSuggestionssuggestions: { name, help, params? }[]Dodaje kilka podpowiedzi.
chat:removeSuggestionname: stringUsuwa podpowiedź.
chat:addMode / chat:removeModemode / nameDodaje lub usuwa tryb skryptu na tym kliencie.
chat:clearbrakCzyści czat tego gracza.

chat:addTemplate jest ignorowane: szablony (HTML) nigdy nie są rysowane. Wiadomości wpisywane przez graczy nie są wysyłane przez _chat:messageEntered; nasłuchuj chatMessage na serwerze.

Na tej stronie