Attribuer des balises de chat

*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.

Cet exemple montre comment attribuer des balises de chat à des joueurs en fonction de leur adhésion à un groupe >.Les balises de chat sont un moyen de visualiser visuellement un joueur dans la fenêtre de chat et utile pour indiquer le rôle ou le statut d'un joueur.

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

Parce que les appels de chat texte non négociables s'attendent à un appel non négociable, essayant de demander l'état de l'adhésion au groupe d'un joueur dans l'appel de rappel TextChatService.OnIncomingMessage n'est pas recommandé, car cela peut provoquer le ralentissement ou l'indisponibilité du système de chat.

Au lieu de cela, définissez un attribut joueur lorsqu'ils rejoignent le serveur.Définir un attribut vous permet de réutiliser le statut du joueur dans d'autres parties de votre expérience telles que l'accès à des zones particulières ou la fourniture d'une expérience bonus.

  1. Créez un Script dans ServerScriptService et ajoutez le code suivant à celui-ci :

    Serveur

    local Players = game:GetService("Players")
    -- Remplacer 123456 par l'ID de groupe que vous souhaitez vérifier
    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. Créez un LocalScript dans StarterPlayerStarterCharacterScripts et ajoutez le code suivant pour afficher une balise [VIP] dans la fenêtre de chat :

    Client

    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