AI Core
Temelai-chat

Geliştiriciler için ai-chat

ai-chat’in cevapladığı chat API’si (FiveM’in chat resource’u), export’ları, event’leri ve mesaj yapısı.

ai-chat FiveM’in chat resource API’sini cevaplar, bu yüzden sohbet kodunu standart FiveM yoluyla yazarsın. Export’lar hem exports['ai-chat'] hem exports.chat altında cevap verir.

ChatMessage

Her export’un ve event’in aldığı mesaj yapısı.

Prop

Type

Server export’ları

addMessage

Bir oyuncuya, birkaç oyuncuya veya herkese bir sohbet satırı gönderir.

Taraf: Server · Bekler: hayır

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

Parametreler

Prop

Type

Dönüş değeri

Hiçbir şey. Geçerli bir args listesi olmayan mesaj atılır.

Örnek

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

Bir oyuncunun gönderdiği her mesaj için, mesaj iletilmeden önce fonksiyonunu çalıştırır. Hook mesajı değiştirebilir, kime gideceğini değiştirebilir veya iptal edebilir. Resource’un durduğunda hook’lar kaldırılır.

Taraf: Server · Bekler: hayır

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

HookRef

Prop

Type

Örnek

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

Bir script’ten kanal ekler (FiveM’in chat modları). Callback’i, bir mesaj hook’u gibi, her mesajı kimin alacağına karar verir. Resource’un durduğunda mod kaldırılır.

Taraf: Server · Bekler: hayır

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

Prop

Type

Client export’ları

ExportNe yapar
addMessage(message: ChatMessage | string): voidSadece bu oyuncunun sohbetinde bir satır gösterir.
addSuggestion(name: string, help: string, params?: { name: string, help: string }[]): voidBu oyuncu için bir komut önerisi ekler.

Event’ler

chatMessage (server)

Bir oyuncunun gönderdiği her mesaj için, iletilmeden önce server’da tetiklenir. Mesajı atmak için iptal et (CancelEvent()).

Taraf: Server (yerel event)

ArgümanTipNe olduğu
sourcenumberGönderenin server id’si.
authorstringGösterilen yazar (karakter adı).
textstringMesaj metni.
on("chatMessage", (source: number, author: string, text: string) => {
  console.log(`[chat] ${author} (${source}): ${text}`);
});

ai-chat’in dinlediği client event’leri

Onları server’dan (TriggerClientEvent) veya bir client script’inden (TriggerEvent) gönder.

EventArgümanlarNe yapar
chat:addMessagemessage: ChatMessage | stringBir satır gösterir.
chatMessageauthor: string, color: [r, g, b], text: stringBir satır gösterir (eski stil).
chat:addSuggestionname: string, help: string, params?: { name, help }[]Bir öneri ekler.
chat:addSuggestionssuggestions: { name, help, params? }[]Birkaç öneri ekler.
chat:removeSuggestionname: stringBir öneriyi kaldırır.
chat:addMode / chat:removeModemode / nameBu client’ta bir script modu ekler veya kaldırır.
chat:clearyokBu oyuncunun sohbetini boşaltır.

chat:addTemplate yok sayılır: şablonlar (HTML) asla çizilmez. Oyuncuların yazdığı mesajlar _chat:messageEntered üzerinden gönderilmez; server’da chatMessage event’ini dinle.

Bu sayfada