Chat

Tampilkan yang Tidak Digunakan Lagi

*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.

Tidak Dapat Dibuat
Layanan
Tidak Direplikasi

Layanan Obrolan menyimpan kode Luau yang bertanggung jawab untuk menjalankan sistem obrolan legacy.Mirip dengan StarterPlayerScripts , objek default seperti Scripts dan ModuleScripts diinsert ke dalam layanan.

Rangkuman

Properti

  • Menentukan apakah pesan obrolan pemain akan muncul di atas avatar dalam game mereka.

  • Keamanan Tidak Dapat Diakses
    Baca Paralel

    Mengubah apakah framework obrolan default harus dimuat secara otomatis saat permainan dijalankan.

Metode

Properti

BubbleChatEnabled

Baca Paralel

Jika benar, memasukkan pesan di chat akan menyebabkan gelembung obrolan muncul di atas gelembung obrolan pemain Player.Character.Perilaku ini dapat diaktifkan dengan langsung mencentang kotak centang ini di Studio, atau dengan menggunakan LocalScript :


local ChatService = game:GetService("Chat")
ChatService.BubbleChatEnabled = true

Ini harus dilakukan pada klien, menyalakan nilai ini di sisi server Script tidak akan berpengaruh.

LoadDefaultChat

Keamanan Tidak Dapat Diakses
Baca Paralel

Mengubah apakah framework obrolan default harus dimuat secara otomatis saat permainan dijalankan.

Metode

Chat

()

Fungsi Obrolan memicu peristiwa Chat.Chatted dengan parameter yang ditentukan dalam metode ini.

Secara default, ada LocalScript di dalam setiap objek pemain PlayerScripts bernama BubbleChat , yang menyebabkan papan iklan seperti dialog muncul di atas bagian partOrCharacter ketika peristiwa obrolan ditembak.

Catatan: Karena dialog dikendalikan oleh LocalScript, Anda tidak akan dapat melihat dialog apa pun yang dibuat dari metode ini kecuali Anda menjalankan dalam mode Bermain Solo.

Parameter

partOrCharacter: Instance

Sebuah instansi yang merupakan bagian atau karakter yang dialog BubbleChat harus muncul di atas.

Nilai Default: ""
message: string

String pesan yang diobrolkan.

Nilai Default: ""

Sebuah Enum.ChatColor menentukan warna pesan obrolan.

Nilai Default: "Blue"

Memberikan nilai

()

Contoh Kode

The below example would create a part in Workspace and cause it to exclaim "Blame John!"

Chat:Chat

local ChatService = game:GetService("Chat")
local part = Instance.new("Part")
part.Anchored = true
part.Parent = workspace
ChatService:Chat(part, "Blame John!", "Red")

InvokeChatCallback

InvokeChatCallback akan memanggil fungsi yang terdaftar oleh RegisterChatCallback , mengingat enum ChatCallbackType dan argumen untuk mengirim fungsi.Ini akan mengembalikan hasil fungsi yang terdaftar, atau menimbulkan kesalahan jika tidak ada fungsi yang terdaftar.

Fungsi ini dipanggil oleh Sistem Obrolan Luau sehingga panggilan balas obrolan dapat didaftarkan untuk mengubah perilaku fitur tertentu.Kecuali Anda mengganti Sistem Obrolan Luau default dengan sistem Anda memiliki, Anda tidak perlu memanggil fungsi ini.Anda dapat membaca tentang fungsi panggil balasan yang berbeda di Chat:RegisterChatCallback() .

Parameter

callbackType: Enum.ChatCallbackType

Jenis panggil balasan untuk dipanggil.

Nilai Default: ""
callbackArguments: Tuple

Argumen yang akan dikirim ke fungsi panggil balas terdaftar.

Nilai Default: ""

Memberikan nilai

Nilai yang dikembalikan oleh fungsi yang terdaftar ke ChatCallbackType yang diberikan.

RegisterChatCallback

()

RegisterChatCallback mengikat fungsi ke beberapa acara sistem obrolan untuk mempengaruhi perilaku sistem obrolan Luau.Argumen pertama menentukan acara (menggunakan enum Enum.ChatCallbackType) ke mana argumen kedua, fungsi, akan dibindungkan.Sistem obrolan Luau default menggunakan InvokeChatCallback untuk memanggil fungsi terdaftar.Mencoba mendaftarkan panggilan balik hanya server atau klien pada peer yang bukan server atau klien masing-masing akan menyebabkan kesalahan.Bagian berikut menjelaskan dalam cara apa fungsi terdaftar akan digunakan.

Pada Membuat Jendela Obrolan

Hanya klien.Diaktifkan sebelum klien membuat jendela obrolan.Harus mengembalikan tabel pengaturan untuk disatukan ke dalam informasi yang dikembalikan oleh modul ChatSettings.

Pada Pesan Pembentukan KlientOnClientFormattingMessage

Hanya klien.Dipanggil sebelum klien menampilkan pesan (apakah itu pesan pemain, pesan sistem, atau perintah /me).Fungsi ini dipanggil dengan objek pesan dan mungkin (atau mungkin tidak) kembali meja untuk disatukan ke dalam message.ExtraData .

Pada Klien Mengirim Pesan

Tidak dipanggil pada saat ini.

Pada Server Menerima Pesan

Hanya server.Diaktifkan ketika server menerima pesan dari pembicara (perhatikan bahwa pembicara mungkin tidak harus menjadi obrolan Player).Panggilan balasan ini dilakukan dengan objek Pesan.Fungsi dapat membuat perubahan pada objek Pesan untuk mengubah cara pesan diproses. Objek Pesan harus dikembalikan agar panggilan balasan ini melakukan apa pun.: Mengatur panggilan balasan ini dapat memungkinkan server untuk, misalnya:

  • Atur message.ShouldDeliver ke false untuk membatalkan pengiriman pesan ke pemain (bermanfaat untuk menerapkan daftar pengecualian obrolan)
  • Dapatkan/tetapkan warna nama speaker( message.ExtraData.NameColor , Color3) pada dasar pesan per pesan

Parameter

callbackType: Enum.ChatCallbackType

Panggilan balik ke fungsi yang akan didaftarkan (ini menentukan dengan cara apa fungsi dipanggil).

Nilai Default: ""
callbackFunction: function

Fungsi untuk dipanggil ketika panggilan balik dipanggil menggunakan chat:InvokeChatCallback.

Nilai Default: ""

Memberikan nilai

()

SetBubbleChatSettings

()

Fungsi ini menyesuaikan berbagai pengaturan obrolan gelembung dalam game.

Sebelum menggunakan ini, pastikan bahwa obrolan gelembung diaktifkan dengan mengatur Chat.BubbleChatEnabled ke benar.

Argumen pengaturan adalah tabel di mana kunci adalah nama pengaturan yang ingin Anda ubah dan nilai adalah apa yang ingin Anda ubah pengaturan ini ke.Perhatikan bahwa Anda tidak perlu menyertakan semuanya dalam argumen pengaturan, meninggalkan beberapa akan menyebabkan mereka menyimpan nilai default mereka.

Fungsi ini hanya sisi klien, mencoba memanggilnya di server akan menyebabkan kesalahan.

Parameter

settings: Variant

Meja pengaturan.

Nilai Default: ""

Memberikan nilai

()

Contoh Kode

When run from a LocalScript, this snippet will make all the chat bubbles appear with bigger text under a different font and a light blue background. Note that all the other settings will keep their default value.

Customize visual aspects

local ChatService = game:GetService("Chat")
ChatService:SetBubbleChatSettings({
BackgroundColor3 = Color3.fromRGB(180, 210, 228),
TextSize = 20,
Font = Enum.Font.Cartoon,
})

If you want to reset the bubble chat to its default look, you can call this function with an empty table, because any setting you omit from the argument will result in it returning to its default value:

Restore default settings

local ChatService = game:GetService("Chat")
ChatService:SetBubbleChatSettings({})

CanUserChatAsync

Hasil

Akan kembali palsu jika pemain dengan Player.UserId yang ditentukan tidak diizinkan mengobrol karena pengaturan akun mereka.

Parameter

userId: number
Nilai Default: ""

Memberikan nilai

CanUsersChatAsync

Hasil

Akan mengembalikan false jika dua pengguna tidak dapat berkomunikasi karena pengaturan akun mereka tidak mengizinkannya.

Parameter

userIdFrom: number
Nilai Default: ""
userIdTo: number
Nilai Default: ""

Memberikan nilai

FilterStringAsync

Hasil

Peringatan Deprecation Parsial : Memanggil fungsi ini dari klien menggunakan LocalScript adalah dihapus, dan akan dinonaktifkan di masa depan.Filter teks harus dilakukan dari Script di server menggunakan TextService:FilterStringAsync() yang bernama serupa, yang menggunakan set parameter dan ketikpengembalian yang berbeda.

Permainan yang tidak memfilter teks yang dihasilkan oleh pemain mungkin terkena actionmoderasi.Pastikan permainan memfilter teks dengan benar sebelum dipublikasikan.

FilterStringAsync memfilter string menggunakan filtering yang sesuai untuk pengiriman dan penerimaan pemainJika string yang disaring digunakan untuk pesan persisten, seperti nama belanja, menulis di papan, dll, maka fungsi harus dipanggil dengan penulis sebagai pengirim dan penerima.

Fungsi ini harus digunakan setiap kali pemain dapat memasukkan teks khusus di konteks apa pun , paling umum menggunakan TextBox.Beberapa contoh teks yang akan disaring:

  • Pesan obrolan kustom
  • Nama karakter khusus
  • Nama untuk toko dalam gamegaya tycoon

Parameter

stringToFilter: string

String mentah yang akan disaring, persis seperti yang dimasukkan oleh pemain.

Nilai Default: ""
playerFrom: Player

Penulis dari teks.

Nilai Default: ""
playerTo: Player

Penerima yang dimaksud dari teks yang disediakan; gunakan penulis jika teksnya bertahan (lihat deskripsi).

Nilai Default: ""

Memberikan nilai

FilterStringForBroadcast

Hasil

Filter string yang dikirim dari pemainDari untuk disiarkan ke target tertentu. Pesan yang disaring memiliki lebih banyak batasan daripada Chat:FilterStringAsync() .

Beberapa contoh di mana metode ini bisa digunakan:

  • Tembok pesan
  • Teriakan antar server
  • Tanda yang dibuat oleh pengguna

Memanggil FilterString dari LocalScripts akan dihapus dan akan dinonaktifkan di masa depan.Filter teks harus dilakukan dari sisi server Scripts menggunakan FilterStringAsync.

Catatan: Permainan yang tidak menggunakan fungsi filter ini untuk obrolan khusus atau teks yang dihasilkan oleh pengguna lain mungkin dikenakan actionmoderasi.

Parameter

stringToFilter: string

String pesan yang disaring.

Nilai Default: ""
playerFrom: Player

Instansi pemain yang mengirim pesan.

Nilai Default: ""

Memberikan nilai

stringpesan yang disaring.

Contoh Kode

The following example shows a simple way to use the FilterStringForBroadcast function. The example uses the message variable as the stringToFilter argument and the local player as the playerFrom argument.

The example then prints the result of the filtering function, FilteredString.

Chat:FilterStringForBroadcast

local Players = game:GetService("Players")
local Chat = game:GetService("Chat")
local playerFrom = Players.LocalPlayer
local message = "Hello world!"
-- Filter the string and store the result in the 'FilteredString' variable
local filteredString = Chat:FilterStringForBroadcast(message, playerFrom)
print(filteredString)

Acara

Chatted

Memicu ketika Chat:Chat() dipanggil.

Parameter

part: Instance
message: string