Chat
*Nội dung này được dịch bằng AI (Beta) và có thể có lỗi. Để xem trang này bằng tiếng Anh, hãy nhấp vào đây.
Dịch vụ Trò chuyện có chứa mã Luau chịu trách nhiệm thực hiện hệ thống trò chuyện kế thừa .Tương tự như StarterPlayerScripts , các đối tượng mặc định như Scripts và ModuleScripts được chèn vào dịch vụ.
Tóm Tắt
Thuộc Tính
Xác định xem tin nhắn trò chuyện của người chơi có xuất hiện trên avatar trong trò chơi của họ hay không.
Bật/tắt việc khung trò chuyện mặc định có nên tự động tải khi trò chơi chạy hay không.
Phương Pháp
Bắn sự kiện Chat.Chatted lửa với các tham số được xác định trong phương pháp này.
Gọi một chức năng trả lời trò chuyện được đăng ký bởi RegisterChatCallback. Được sử dụng bởi Hệ thống trò chuyện Luau.
Đăng ký một chức năng để được gọi khi kích hoạt một sự kiện hệ thống trò chuyện nào đó ( InvokeChatCallback ).
Tùy chỉnh các cài đặt khác nhau của bong bóng trò chuyện trong trò chơi.
Sẽ trả về false nếu người chơi với Player.UserId được đề cập không được phép trò chuyện do cài đặt tài khoản của họ.
Sẽ trả về false nếu hai người dùng không thể giao tiếp vì cài đặt tài khoản của họ không cho phép.
Lọc một chuỗi được gửi từ người chơi sang người chơi khác bằng cách lọc phù hợp với cài đặt tài khoản của người chơi.
Lọc một chuỗi được gửi từ một người chơi dành cho phát sóng đến không có mục tiêu cụ thể. Hạn chế hơn Chat:FilterStringAsync() .
Sự Kiện
Bắt lửa khi Chat:Chat() được gọi.
Thuộc Tính
BubbleChatEnabled
Nếu đúng, việc nhập một tin nhắn trong trò chuyện sẽ dẫn đến việc bong bóng trò chuyện xuất hiện trên đầu người chơi Player.Character .Hành vi này có thể được bật bằng cách trực tiếp bật kiểm tra này trong Studio, hoặc bằng cách sử dụng một LocalScript :
local ChatService = game:GetService("Chat")ChatService.BubbleChatEnabled = true
Điều này phải được thực hiện trên khách hàng, chuyển đổi giá trị này trong phía máy chủ Script sẽ không có hiệu lực.
LoadDefaultChat
Bật/tắt việc khung trò chuyện mặc định có nên tự động tải khi trò chơi chạy hay không.
Phương Pháp
Chat
Chức năng trò chuyện kích hoạt sự kiện Chat.Chatted với các tham số được định cấu trong phương pháp này.
Mặc định, có một bên trong mỗi đối tượng của người chơi có tên là BubbleChat , gây ra sự xuất hiện của một biển báo giống như diễn đàn ở trên phần partOrCharacter khi sự kiện trò chuyện được kích hoạt.
Ghi chú: Vì các hộp thoại được kiểm soát bởi một LocalScript, bạn sẽ không thể xem bất kỳ hộp thoại nào được tạo từ phương pháp này trừ khi bạn đang chạy trong chế độ Chơi một mình.
Tham Số
Một ví dụ là phần hoặc nhân vật mà hộp thoại BubbleChat nên xuất hiện phía trên.
Chuỗi tin nhắn đang trò chuyện.
Một Enum.ChatColor định nghĩa màu của tin nhắn trò chuyện.
Lợi Nhuận
Mẫu mã
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 sẽ gọi một chức năng được đăng ký bởi RegisterChatCallback , cho danh sách kiểu ChatCallbackType và các tham số để gửi chức năng.Nó sẽ trả kết quả của chức năng đã đăng ký, hoặc nâng lên một lỗi nếu không có chức năng nào được đăng ký.
Chức năng này được gọi bởi Hệ thống trò chuyện Luau để các cuộc gọi trở lại trò chuyện có thể được đăng ký để thay đổi hành vi của một số tính năng nhất định.Trừ khi bạn đang thay thế Hệ thống trò chuyện Luau mặc định bằng của sở hữubạn, bạn không cần phải gọi chức năng này.Bạn có thể đọc về các chức năng trả lời khác nhau tại Chat:RegisterChatCallback() .
Tham Số
Loại callback để gọi.
Các tham số sẽ được gửi đến chức năng gọi lại đã đăng ký.
Lợi Nhuận
Các giá trị được trả bởi chức năng đã đăng ký với ChatCallbackType được cho.
RegisterChatCallback
RegisterChatCallback gắn một chức năng vào một sự kiện hệ thống trò chuyện nhằm ảnh hưởng đến hành vi của hệ thống trò chuyện Luau.Argent đầu tiên xác định sự kiện (sử dụng enum Enum.ChatCallbackType) mà tham số thứ hai, chức năng, sẽ được gắn kết.Hệ thống trò chuyện Luau mặc định sử dụng InvokeChatCallback để gọi các chức năng đã đăng ký.Cố gắng đăng ký một cuộc gọi trả lại chỉ của máy chủ hoặc khách hàng trên một peer không phải là máy chủ hoặc khách hàng lần lượt sẽ gây ra một lỗi.Các phần sau đây mô tả cách các chức năng đã đăng ký sẽ được sử dụng theo cách nào.
Trong việc tạo cửa sổ trò chuyện OnCreatingChatWindow
Chỉ khách hàng.Gọi trước khi khách hàng xây dựng cửa sổ trò chuyện.Phải trả lại một bảng cài đặt để được hợp nhất vào thông tin được trả về bởi mô-đun ChatSettings.
Trên ClientFormattingMessage
Chỉ khách hàng.Gọi trước khi khách hàng hiển thị một tin nhắn (nếu đó là tin nhắn trò chuyện của người chơi, tin nhắn hệ thống hoặc lệnh /me).Chức năng này được gọi với đối tượng tin nhắn và có thể (hoặc có thể không) trả về một bảng để hợp nhất vào message.ExtraData .
Trên ClientGửi tin nhắn
Không được gọi tại thời điểm này.
Trên ServerReceivingMessage
Chỉ máy chủ.Gọi khi máy chủ nhận được một tin nhắn từ một người phát biểu (lưu ý rằng các người phát biểu có thể không nhất thiết phải là một cuộc trò chuyện Player).Cuộc gọi trả lại này được gọi với đối tượng Tin nhắn.Chức năng có thể thay đổi đối tượng Tin nhắn để thay đổi cách thức mà tin nhắn được xử lý. Phải trả lại đối tượng Tin nhắn để cho cuộc gọi lại này làm bất cứ điều gì.: Việc thiết lập lại cuộc gọi này có thể cho phép máy chủ, ví dụ:
- Set message.ShouldDeliver đến false để huỷ gửi tin nhắn cho người chơi (hữu ích để thực hiện danh sách loại trừ trò chuyện)
- Nhận/đặt màu tên của người loa( message.ExtraData.NameColor , một Color3) trên cơ sở tin nhắn-theo-tin nhắn
Tham Số
Cuộc gọi trả lại mà chức năng sẽ được đăng ký (điều này xác định theo cách chức năng được gọi).
Chức năng được gọi khi cuộc gọi lại được kích hoạt bằng cách sử dụng Trò chuyện:InvokeChatCallback.
Lợi Nhuận
SetBubbleChatSettings
Chức năng này tùy chỉnh các cài đặt khác nhau của cuộc trò chuyện bong bóng trong trò chơi.
Trước khi sử dụng, hãy chắc chắn rằng cuộc trò chuyện bong bóng được bật bằng cách thiết lập Chat.BubbleChatEnabled thành true.
Các tham số cài đặt là một bảng nơi các chìa khóa là tên của các cài đặt bạn muốn chỉnh sửa và các giá trị là những gì bạn muốn thay đổi các cài đặt này.Lưu ý rằng bạn không cần phải bao gồm tất cả chúng trong cụm từ cài đặt, bỏ một số sẽ dẫn đến việc giữ giá trị mặc định của chúng.
Chức năng này chỉ dành cho phía khách, cố gọi nó trên máy chủ sẽ gây ra lỗi.
Tham Số
Một bảng cài đặt.
Lợi Nhuận
Mẫu mã
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
Sẽ trả về false nếu người chơi với Player.UserId được đề cập không được phép trò chuyện do cài đặt tài khoản của họ.
Tham Số
Lợi Nhuận
CanUsersChatAsync
Sẽ trả về false nếu hai người dùng không thể giao tiếp vì cài đặt tài khoản của họ không cho phép.
Tham Số
Lợi Nhuận
FilterStringAsync
Cảnh báo giảm phần một phần : Gọi chức năng này từ khách hàng bằng cách sử dụng một LocalScript đã lỗi thời và sẽ bị vô hiệu hóa trong tương lai.Lọc văn bản nên được thực hiện từ một Script trên máy chủ bằng cách sử dụng TextService:FilterStringAsync() có tên tương tự, sử dụng một bộ tham số và đánh máytrả lại khác nhau.
Các trò chơi không lọc đúng cách văn bản do người chơi tạo có thể bị áp dụng hành động kiểm duyệt.Hãy chắc chắn rằng một trò chơi lọc đúng chỗ văn bản trước khi xuất bản nó.
FilterStringAsync lọc một chuỗi bằng cách lọc phù hợp với người gửi và người chơinhận.Nếu chuỗi lọc được sử dụng cho một tin nhắn lâu dài, chẳng hạn như tên của một cửa chọn mua, viết trên một tấm, v.v., thì chức năng nên được gọi với tác giả là cả người gửi và người nhận.
Chức năng này nên được sử dụng mỗi lần một người chơi có thể nhập văn bản tùy chỉnh trong bất kỳ ngữ cảnh nào , thường sử dụng một TextBox.Một số ví dụ về văn bản cần lọc:
- Tin nhắn trò chuyện tùy chỉnh
- Tên nhân vật tùy chỉnh
- Tên cho một cửa hàng trong một trò chơi theo phong cách tycoon
Tham Số
Chuỗi thô để lọc, chính xác như được nhập bởi người chơi.
Tác giả của văn bản.
Người nhận dự định của văn bản được cung cấp; sử dụng tác giả nếu văn bản là lâu dài (xem miêu tả).
Lợi Nhuận
FilterStringForBroadcast
Lọc một chuỗi được gửi từ playerFrom để phát sóng đến không có mục tiêu cụ thể. Tin nhắn lọc có nhiều hạn chế hơn Chat:FilterStringAsync() .
Một số ví dụ về nơi mà phương pháp này có thể được sử dụng:
- Tường tin nhắn
- Tiếng hét giữa các máy chủ
- Dấu hiệu được tạo bởi người dùng
Gọi FilterString từ LocalScripts sẽ bị loại bỏ và sẽ bị vô hiệu hóa trong tương lai.Lọc văn bản nên được thực hiện từ phía máy chủ Scripts bằng cách sử dụng FilterStringAsync.
Ghi chú: Một trò chơi không sử dụng chức năng lọc này để chat tùy chỉnh hoặc văn bản được tạo bởi người dùng khác có thể bị áp dụng hành động kiểm duyệt.
Tham Số
Chuỗi tin nhắn đang bị lọc.
Ví dụ của người chơi gửi tin nhắn.
Lợi Nhuận
Chuỗi tin chuỗibị lọc.
Mẫu mã
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)