Nadaj tagi czatu

*Ta zawartość została przetłumaczona przy użyciu narzędzi AI (w wersji beta) i może zawierać błędy. Aby wyświetlić tę stronę w języku angielskim, kliknij tutaj.

Ten przykład pokazuje, jak przypisać tagi czatu graczom w oparciu o ich członkostwo w grupie .Tagi czatu są sposobem wizualnego zidentyfikowania gracza w oknie czatu i przydatne do wskazania roli lub statusu gracza.

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

Ponieważ powiadomienia o rozmowie tekstowej oczekują niezawodnego powiadomienia, próbującego zapytać o status członkostwa w grupie gracza w powrocie TextChatService.OnIncomingMessage nie jest zalecane, ponieważ może to spowodować, że system czatu zatrzyma się lub stanie się nieodpowiedzialny.

Zamiast tego ustaw atrybut gracza gdy dołączą do serwera.Ustawienie atrybutu pozwala ponownie wykorzystać status gracza w innych częściach twojego doświadczenia, takich jak umożliwienie dostępu do określonych obszarów lub zapewnienie bonusowego doświadczenia.

  1. Stwórz Script w ServerScriptService i dodaj następujący kod do niego:

    Serwer

    local Players = game:GetService("Players")
    -- Zastąp 123456 ID grupy, której chcesz sprawdzić
    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. Utwórz LocalScript w StarterPlayerStarterCharacterScripts i dodaj następujący kod, aby wyświetlić tag [VIP] w oknie czatu:

    Klienci

    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