Chat
*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.
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.
Mengubah apakah framework obrolan default harus dimuat secara otomatis saat permainan dijalankan.
Metode
Memicu peristiwa Chat.Chatted dengan parameter yang ditentukan dalam metode ini.
Memanggil fungsi panggilan obrolan yang terdaftar oleh RegisterChatCallback. Digunakan oleh Sistem Obrolan Luau.
Daftarkan fungsi untuk dipanggil saat panggilan beberapa peristiwa sistem obrolan ( InvokeChatCallback ).
Sesuaikan berbagai pengaturan obrolan gelembung dalam game.
Akan kembali palsu jika pemain dengan Player.UserId yang ditentukan tidak diizinkan mengobrol karena pengaturan akun mereka.
Akan mengembalikan false jika dua pengguna tidak dapat berkomunikasi karena pengaturan akun mereka tidak mengizinkannya.
Filter string yang dikirim dari pemain ke pemain lain menggunakan filter yang sesuai dengan pengaturan akun pemain.
Filter string yang dikirim dari pemain untuk disiarkan ke target tertentu. Lebih ketat dari Chat:FilterStringAsync() .
Acara
Memicu ketika Chat:Chat() dipanggil.
Properti
BubbleChatEnabled
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
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
Sebuah instansi yang merupakan bagian atau karakter yang dialog BubbleChat harus muncul di atas.
String pesan yang diobrolkan.
Sebuah Enum.ChatColor menentukan warna pesan obrolan.
Memberikan nilai
Contoh Kode
The below example would create a part in Workspace and cause it to exclaim "Blame John!"
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
Jenis panggil balasan untuk dipanggil.
Argumen yang akan dikirim ke fungsi panggil balas terdaftar.
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
Panggilan balik ke fungsi yang akan didaftarkan (ini menentukan dengan cara apa fungsi dipanggil).
Fungsi untuk dipanggil ketika panggilan balik dipanggil menggunakan chat:InvokeChatCallback.
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
Meja pengaturan.
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.
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:
local ChatService = game:GetService("Chat")
ChatService:SetBubbleChatSettings({})
CanUserChatAsync
Akan kembali palsu jika pemain dengan Player.UserId yang ditentukan tidak diizinkan mengobrol karena pengaturan akun mereka.
Parameter
Memberikan nilai
CanUsersChatAsync
Akan mengembalikan false jika dua pengguna tidak dapat berkomunikasi karena pengaturan akun mereka tidak mengizinkannya.
Parameter
Memberikan nilai
FilterStringAsync
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
String mentah yang akan disaring, persis seperti yang dimasukkan oleh pemain.
Penulis dari teks.
Penerima yang dimaksud dari teks yang disediakan; gunakan penulis jika teksnya bertahan (lihat deskripsi).
Memberikan nilai
FilterStringForBroadcast
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
String pesan yang disaring.
Instansi pemain yang mengirim pesan.
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.
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)