Gán thẻ trò chuyện

*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.

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

VIP chat tag appended to user name in the chat window.

Bởi vì cuộc gọi trò chuyện văn bản mong đợi một cuộc gọi không chịu khuất phục, cố gắng truy vấn tình trạng thành viên nhóm của một người chơi trong cuộc gọi TextChatService.OnIncomingMessage lại không được khuyến khích, vì nó có thể gây cho hệ thống trò chuyện bị treo hoặc trở nên không phản hồi.

Thay vào đó, hãy cài đặt một thuộc tính người chơi khi họ tham gia máy chủ.Đặt một thuộc tính cho phép bạn tái sử dụng tình trạng của người chơi trong các phần khác của trải nghiệm của bạ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.

  1. Tạo một Script trong ServerScriptService và thêm mã sau vào nó:

    Máy chủ

    local Players = game:GetService("Players")
    -- Thay thế 123456 bằng ID nhóm bạn muốn kiểm tra
    local groupID = 123456
    Players.PlayerAdded:Connect(function(player)
    local success, isInGroup = pcall(function()
    return player:IsInGroup(groupID)
    end)
    if success and isInGroup then
    player:SetAttribute("IsVIP", true)
    else
    player:SetAttribute("IsVIP", false)
    end
    end)
  2. Tạo một LocalScript trong StarterPlayerStarterCharacterScripts và thêm mã sau đây để hiển thị thẻ [VIP] trong cửa sổ trò chuyện:

    Khách hàng

    local Players = game:GetService("Players")
    local TextChatService = game:GetService("TextChatService")
    TextChatService.OnIncomingMessage = function(message: TextChatMessage)
    local textSource = message.TextSource
    if textSource then
    local player = Players:GetPlayerByUserId(textSource.UserId)
    if player then
    if player:GetAttribute("IsVIP") == true then
    local overrideProperties = Instance.new("TextChatMessageProperties")
    overrideProperties.PrefixText = "[VIP] " .. message.PrefixText
    return overrideProperties
    end
    end
    end
    return nil
    end