Chat

แสดงที่เลิกใช้งานแล้ว

*เนื้อหานี้แปลโดยใช้ AI (เวอร์ชัน Beta) และอาจมีข้อผิดพลาด หากต้องการดูหน้านี้เป็นภาษาอังกฤษ ให้คลิกที่นี่

ไม่สามารถสร้าง
บริการ
ไม่ซ้ำ

บริการ แชท เป็นที่เก็บรหัส Luau ที่รับผิดชอบในการดำเนินการระบบ แชทเก่าคล้ายกับ StarterPlayerScripts วัตถุเริ่มต้นเช่น Scripts และ ModuleScripts จะถูกสอดเข้าไปในบริการ

สรุป

คุณสมบัติ

  • อ่านพร้อมๆ กัน

    อวาตาร์

  • การรักษาความปลอดภัยที่เข้าถึงไม่ได้
    อ่านพร้อมๆ กัน

    สลับว่ากรอบแชทเริ่มต้นควรโหลดอัตโนมัติเมื่อเกมทำงาน

วิธีการ

  • Chat(partOrCharacter : Instance,message : string,color : Enum.ChatColor):()

    เปิดใช้งานอีเวนต์ Chat.Chatted ด้วยพารามิเตอร์ที่ระบุไว้ในวิธีนี้

  • InvokeChatCallback(callbackType : Enum.ChatCallbackType,callbackArguments : Tuple):Tuple

    เรียกฟังก์ชันการโทรกลับแชทที่ลงทะเบียนโดย RegisterChatCallback ใช้โดยระบบแชท Luau

  • RegisterChatCallback(callbackType : Enum.ChatCallbackType,callbackFunction : function):()

    ลงทะเบียนฟังก์ชันที่จะเรียกในการเรียกร้องของบางอีเวนต์ระบบแชท ( InvokeChatCallback ).

  • SetBubbleChatSettings(settings : Variant):()

    ปรับแต่งตั้งค่าต่างๆ ของฟองแชทในเกม

  • ผลตอบแทน

    จะส่งคืนค่าเท็จหากผู้เล่นที่มี Player.UserId ที่กำหนดไว้ไม่สามารถแชทได้เนื่องจากการตั้งค่าบัญชีของพวกเขา

  • CanUsersChatAsync(userIdFrom : number,userIdTo : number):boolean
    ผลตอบแทน

    จะส่งคืนค่าเท็จหากผู้ใช้ทั้งสองไม่สามารถสื่อสารได้เนื่องจากการตั้งค่าบัญชีของพวกเขาไม่อนุญาต

  • FilterStringAsync(stringToFilter : string,playerFrom : Player,playerTo : Player):string
    ผลตอบแทน

    กรองสตริงที่ส่งจากผู้เล่นไปยังผู้เล่นอีกคนโดยใช้การกรองที่เหมาะสมกับการตั้งค่าบัญชีผู้เล่น

  • FilterStringForBroadcast(stringToFilter : string,playerFrom : Player):string
    ผลตอบแทน

    กรองสตริงที่ส่งจากผู้เล่นที่มีจุดประสงค์เพื่อการออกอากาศไปยังเป้าหมายเฉพาะไม่ จำกัด มากกว่า Chat:FilterStringAsync()

คุณสมบัติ

BubbleChatEnabled

อ่านพร้อมๆ กัน

หากเป็นจริง การส่งข้อความในแชทจะทำให้ฟองแชทปรากฏขึ้นเหนือผู้เล่น Player.Characterพฤติกรรมนี้สามารถเปิดใช้งานได้โดยการกดเลือกช่องนี้โดยตรงใน Studio หรือโดยใช้ LocalScript :


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

ต้องทำบนไคลเอนต์เท่านั้น การสลับค่านี้ในด้านเซิร์ฟเวอร์ Script จะไม่มีผล

LoadDefaultChat

การรักษาความปลอดภัยที่เข้าถึงไม่ได้
อ่านพร้อมๆ กัน

สลับว่ากรอบแชทเริ่มต้นควรโหลดอัตโนมัติเมื่อเกมทำงาน

วิธีการ

Chat

()

ฟังก์ชันการแชทจะเรียกการเหตุการณ์ Chat.Chatted ด้วยพารามิเตอร์ที่ระบุไว้ในวิธีนี้

โดยค่าเริ่มต้นมี ภายในวัตถุของผู้เล่นแต่ละคนชื่อ BubbleChat ซึ่งทำให้ป้ายโฆษณาที่คล้ายกับการสนทนาปรากฏขึ้นเหนือส่วนหรือตัวอักษร เมื่อเหตุการณ์การสนทนาถูกกระตุ้น

หมายเหตุ: เนื่องจากกล่องโต้ตอบถูกควบคุมโดยสคริปท์ท้องถิ่นคุณจะไม่สามารถเห็นกล่องโต้ตอบใด ๆ ที่สร้างขึ้นจากวิธีนี้ได้หากคุณไม่ได้ทำงานในโหมด เล่นเดี่ยว

พารามิเตอร์

partOrCharacter: Instance

ตัวอย่างที่เป็นส่วนหรือตัวละครที่กล่องโต้ตอบ BubbleChat ควรปรากฏข้างบน

ค่าเริ่มต้น: ""
message: string

สตริงข้อความที่กำลังแชท

ค่าเริ่มต้น: ""

An Enum.ChatColor ระบุสีของข้อความแชท

ค่าเริ่มต้น: "Blue"

ส่งค่ากลับ

()

ตัวอย่างโค้ด

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

การเรียกใช้ ChatCallback จะเรียกฟังก์ชันที่ลงทะเบียนโดย RegisterChatCallback โดยให้ตัวเลือกฟังก์ชันและอาร์กิวเมนต์ที่จะส่งฟังก์ชันจะส่งคืนผลลัพธ์ของฟังก์ชันที่ลงทะเบียน หรือเสนอข้อผิดพลาดหากไม่มีฟังก์ชันที่ลงทะเบียนแล้ว

ฟังก์ชันนี้เรียกโดยระบบแชท Luau เพื่อให้การโทรกลับแชทสามารถลงทะเบียนได้เพื่อเปลี่ยนพฤติกรรมของคุณสมบัติบางอย่างยกเว้นที่คุณกำลังแทนที่ระบบแชท Luau เริ่มต้นด้วยระบบแชทของคุณเองคุณไม่ควรต้องเรียกฟังก์ชันนี้คุณสามารถอ่านเกี่ยวกับฟังก์ชันการโทรกลับที่แตกต่างกันได้ที่ Chat:RegisterChatCallback()

พารามิเตอร์

callbackType: Enum.ChatCallbackType

ประเภทของการโทรกลับที่จะเรียก

ค่าเริ่มต้น: ""
callbackArguments: Tuple

อาร์กิวเมนต์ที่จะส่งไปยังฟังก์ชัน callback ที่ลงทะเบียน

ค่าเริ่มต้น: ""

ส่งค่ากลับ

ค่าที่ส่งกลับโดยฟังก์ชันที่ลงทะเบียนกับ ChatCallbackType ที่กำหนด

RegisterChatCallback

()

การลงทะเบียนสายเรียกแชทจะผูกฟังก์ชันกับอีเวนต์ของระบบแชทบางอย่างเพื่อมีผลต่อพฤติกรรมของระบบแชท Luauอาร์กิวเมนต์แรกกำหนดเหตุการณ์ (โดยใช้ enum Enum.ChatCallbackType) ที่อาร์กิวเมนต์ที่สอง, ฟังก์ชัน, จะผูกไว้ระบบแชท Luau เริ่มต้นใช้ InvokeChatCallback เพื่อเรียกใช้ฟังก์ชันที่ลงทะเบียนไว้การลงทะเบียนคอลเลกชันการโทรกลับเฉพาะเซิร์ฟเวอร์หรือเฉพาะไคลเอนต์บนเพื่อนที่ไม่ใช่เซิร์ฟเวอร์หรือไคลเอนต์จะทำให้เกิดข้อผิดพลาดส่วนต่อไปอธิบายถึงวิธีที่ฟังก์ชันที่ลงทะเบียนจะถูกใช้

ในการสร้างหน้าต่างแชทOnCreatingChatWindow

สำหรับลูกค้าเท่านั้นเรียกก่อนที่ไคลเอนต์จะสร้างหน้าต่างแชทต้องส่งกลับตารางการตั้งค่าที่จะรวมเข้ากับข้อมูลที่ส่งคืนโดยโมดูล ChatSettings

บนแบบฟอร์มรูปแบบข้อความลูกค้า

สำหรับลูกค้าเท่านั้นเรียกก่อนที่ไคลเอนต์จะแสดงข้อความ (ไม่ว่าจะเป็นข้อความแชทผู้เล่น ข้อความระบบ หรือคำสั่ง /me)ฟังก์ชันนี้ถูกเรียกด้วยวัตถุข้อความและอาจ (หรืออาจไม่) คืนตารางที่จะรวมเข้ากับ message.ExtraData

บนไคลเอนต์ส่งข้อความ

ไม่ได้เรียกใช้ในเวลานี้

บนเซิร์ฟเวอร์ที่ได้รับข้อความ

เฉพาะเซิร์ฟเวอร์เท่านั้นเรียกเมื่อเซิร์ฟเวอร์ได้รับข้อความจากลำโพง (โปรดทราบว่าลำโพงอาจไม่จำเป็นต้องเป็นการแชท Player )คอลเลกชันนี้เรียกกับวัตถุข้อความฟังก์ชันสามารถทำการเปลี่ยนแปลงต่อวัตถุข้อความเพื่อเปลี่ยนวิธีการที่ข้อความจะถูกประมวลผล ต้องส่งคืนวัตถุข้อความเพื่อให้การโทรกลับนี้ทำอะไรได้: การตั้งค่าคอลเลกชันนี้สามารถอนุญาตให้เซิร์ฟเวอร์สามารถทำได้เช่น:

  • ตั้ง message.ShouldDeliver เป็น false เพื่อยกเลิกการส่งข้อความไปยังผู้เล่น (มีประโยชน์สำหรับการใช้รายการห้ามแชท)
  • รับ/ตั้งชื่อสีของลำโพง ( message.ExtraData.NameColor , Color3) บนพื้นฐานของข้อความต่อข้อความ

พารามิเตอร์

callbackType: Enum.ChatCallbackType

การเรียกคืนที่ฟังก์ชันจะลงทะเบียน (สิ่งนี้กำหนดวิธีที่ฟังก์ชันถูกเรียก)

ค่าเริ่มต้น: ""
callbackFunction: function

ฟังก์ชันที่จะเรียกเมื่อ callback ถูกเรียกโดยใช้ แชท:InvokeChatCallback

ค่าเริ่มต้น: ""

ส่งค่ากลับ

()

SetBubbleChatSettings

()

ฟังก์ชันนี้ปรับแต่งการตั้งค่าต่างๆ ของบับเบิ้ลแชทในเกม

ก่อนที่จะใช้สิ่งนี้ ตรวจสอบให้แน่ใจว่าแชทฟองอากาศถูกเปิดใช้งานโดยการตั้งค่า Chat.BubbleChatEnabled เป็นจริง

อาร์กิวเมนต์การตั้งค่าเป็นตารางที่มีกุญแจเป็นชื่อการตั้งค่าที่คุณต้องการแก้ไขและค่าเป็นสิ่งที่คุณต้องการเปลี่ยนการตั้งค่าเหล่านี้โปรดทราบว่าคุณไม่จำเป็นต้องรวมทั้งหมดในอาร์กิวเมนต์การตั้งค่าโดยการขาดบางอย่างจะทำให้พวกเขาเก็บค่าเริ่มต้นไว้

ฟังก์ชันนี้เป็นเฉพาะด้านไคลเอนต์เท่านั้น การพยายามเรียกใช้บนเซิร์ฟเวอร์จะทำให้เกิดข้อผิดพลาด

พารามิเตอร์

settings: Variant

ตารางการตั้งค่า

ค่าเริ่มต้น: ""

ส่งค่ากลับ

()

ตัวอย่างโค้ด

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

ผลตอบแทน

จะส่งคืนค่าเท็จหากผู้เล่นที่มี Player.UserId ที่กำหนดไว้ไม่สามารถแชทได้เนื่องจากการตั้งค่าบัญชีของพวกเขา

พารามิเตอร์

userId: number
ค่าเริ่มต้น: ""

ส่งค่ากลับ

CanUsersChatAsync

ผลตอบแทน

จะส่งคืนค่าเท็จหากผู้ใช้ทั้งสองไม่สามารถสื่อสารได้เนื่องจากการตั้งค่าบัญชีของพวกเขาไม่อนุญาต

พารามิเตอร์

userIdFrom: number
ค่าเริ่มต้น: ""
userIdTo: number
ค่าเริ่มต้น: ""

ส่งค่ากลับ

FilterStringAsync

ผลตอบแทน

คําเตือนการลดลงบางส่วน : เรียกฟังก์ชันนี้จากไคลเอนต์โดยใช้ LocalScript จะถูกลบออกในอนาคตการกรองข้อความควรทำจาก Script บนเซิร์ฟเวอร์โดยใช้ TextService:FilterStringAsync() พิมพ์

เกมที่ไม่ได้กรองข้อความที่สร้างโดยผู้เล่นอย่างถูกต้องอาจต้องเผชิญกับการดำเนินการการควบคุมโปรดตรวจสอบให้แน่ใจว่าเกมกรองข้อความอย่างถูกต้องก่อนเผยแพร่

FilterStringAsync กรองสตริงโดยใช้การกรองที่เหมาะสมสำหรับการส่งและรับผู้เล่นหากสตริงที่กรองจะใช้สำหรับข้อความถาวร เช่น ชื่อร้านค้า เขียนบนแผ่นจารึก ฯลฯ ควรเรียกฟังก์ชันด้วยผู้เขียนทั้งส่งและรับ

ฟังก์ชันนี้ควรใช้ทุกครั้ง ที่ผู้เล่นสามารถใส่ข้อความที่กําหนดเองใน บริบทใดก็ได้ โดยใช้ มากที่สุด ตัวอย่างข้อความที่จะถูกกรอง:

  • ข้อความแชทที่กําหนดเอง
  • ชื่อตัวละครที่กำหนดเอง
  • ชื่อสำหรับร้านค้าในเกมสไตล์ไทคูน

พารามิเตอร์

stringToFilter: string

สตริงดิบที่จะถูกกรองตามที่ผู้เล่นป้อนไว้อย่างถูกต้อง

ค่าเริ่มต้น: ""
playerFrom: Player

ผู้เขียนของข้อความ

ค่าเริ่มต้น: ""
playerTo: Player

ผู้รับที่ตั้งใจไว้ของข้อความที่ให้ไว้; ใช้ผู้เขียนหากข้อความยังคงอยู่ (ดูคำอธิบาย)

ค่าเริ่มต้น: ""

ส่งค่ากลับ

FilterStringForBroadcast

ผลตอบแทน

กรองสตริงที่ส่งจาก playerFrom เพื่อออกอากาศไปยังเป้าหมายโดยเฉพาะ ข้อความที่กรองมีข้อจำกัดมากกว่า Chat:FilterStringAsync()

ตัวอย่างบางส่วนของสถานที่ที่วิธีนี้สามารถใช้ได้:

  • ผนังข้อความ
  • การกรี๊ดข้ามเซิร์ฟเวอร์
  • ป้ายที่สร้างโดยผู้ใช้

การเรียก FilterString จาก LocalScripts จะถูกละทิ้งและจะถูกปิดใช้งานในอนาคตการกรองข้อความควรทำจากด้านเซิร์ฟเวอร์ Scripts โดยใช้ FilterStringAsync

หมายเหตุ: เกมที่ไม่ใช้ฟังก์ชันการกรองนี้สำหรับการแชทที่กําหนดเองหรือข้อความที่ผู้ใช้สร้างขึ้นอาจได้รับการดําเนินการการควบคุม

พารามิเตอร์

stringToFilter: string

สตริงข้อความถูกกรอง

ค่าเริ่มต้น: ""
playerFrom: Player

ตัวอย่างของผู้เล่นที่ส่งข้อความ

ค่าเริ่มต้น: ""

ส่งค่ากลับ

สตริงข้อความที่กรองแล้ว

ตัวอย่างโค้ด

ตัวอย่างต่อไปนี้แสดงวิธีง่ายๆ ในการใช้ฟังก์ชัน FilterStringForBroadcastตัวอย่างใช้ตัวแปรข้อความเป็นอาร์กิวเมนต์ stringToFilter และผู้เล่นท้องถิ่นเป็นอาร์กิวเมนต์ playerFrom

ตัวอย่างจะพิมพ์ผลลัพธ์ของฟังก์ชันการกรอง, FilteredString

แชท: FilterStringForBroadcast

local Players = game:GetService("Players")
local Chat = game:GetService("Chat")
local playerFrom = Players.LocalPlayer
local message = "Hello world!"
-- กรองสตริงและบันทึกผลลัพธ์ในตัวแปร 'FilteredString'
local filteredString = Chat:FilterStringForBroadcast(message, playerFrom)
print(filteredString)

อีเวนต์

Chatted

จะเกิดไฟไหม้เมื่อ Chat:Chat() ถูกเรียก

พารามิเตอร์

part: Instance
message: string