Ví dụ này minh họa cách gán thẻ trò chuyện cho người chơi dựa trên tư cách thành viên của họ trong một nhóm. Thẻ trò chuyện là một cách để xác định trực quan một người chơi trong cửa sổ trò chuyện và hữu ích để chỉ ra vai trò hoặc trạng thái của người chơi.

Bởi vì các callback trò chuyện văn bản mong đợi một callback không ngừng, việc cố gắng truy vấn trạng thái thành viên nhóm của một người chơi trong callback TextChatService.OnIncomingMessage không được khuyến nghị, vì nó có thể khiến hệ thống trò chuyện bị treo hoặc không phản hồi.
Thay vào đó, hãy thiết lập một thuộc tính cho người chơi khi họ tham gia máy chủ. Việc thiết lập thuộc tính cho phép bạn tái sử dụng trạng thái của người chơi ở các phần khác của trò chơi của bạn, chẳng hạn như cho phép truy cập vào các khu vực cụ thể hoặc cung cấp trải nghiệm thưởng.
Tạo một Script trong ServerScriptService và thêm mã sau vào đó:
Serverlocal Players = game:GetService("Players")-- Thay thế 123456 bằng ID nhóm mà bạn muốn kiểm tralocal groupID = 123456Players.PlayerAdded:Connect(function(player)local success, isInGroup = pcall(function()return player:IsInGroupAsync(groupID)end)if success and isInGroup thenplayer:SetAttribute("IsVIP", true)elseplayer:SetAttribute("IsVIP", false)endend)Tạo một LocalScript trong StarterPlayer ⟩ StarterCharacterScripts và thêm mã sau để hiển thị thẻ [VIP] trong cửa sổ trò chuyện:
Clientlocal Players = game:GetService("Players")local TextChatService = game:GetService("TextChatService")TextChatService.OnIncomingMessage = function(message: TextChatMessage)local textSource = message.TextSourceif textSource thenlocal player = Players:GetPlayerByUserId(textSource.UserId)if player thenif player:GetAttribute("IsVIP") == true thenlocal overrideProperties = Instance.new("TextChatMessageProperties")overrideProperties.PrefixText = "[VIP] " .. message.PrefixTextreturn overridePropertiesendendendreturn nilend