Assegna tag chat

*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.

Questo esempio dimostra come assegnare tag chat ai giocatori in base alla loro appartenenza a un gruppo. I tag chat sono un modo per identificare visivamente un giocatore nella finestra di chat e sono utili per indicare il ruolo o lo stato di un giocatore.

Tag chat VIP aggiunto al nome utente nella finestra di chat.

Poiché i callback della chat testuale si aspettano un callback che non produca yield, tentare di interrogare lo stato di appartenenza a un gruppo di un giocatore nel callback TextChatService.OnIncomingMessage non è consigliato, poiché potrebbe causare il blocco del sistema di chat o rendere il sistema non reattivo.

Invece, imposta un attributo per un giocatore quando si unisce al server. Impostare un attributo ti consente di riutilizzare lo stato del giocatore in altre parti del tuo gioco, ad esempio consentendo l'accesso a determinate aree o fornendo esperienze bonus.

  1. Crea un Script in ServerScriptService e aggiungi il seguente codice:

    Server

    local Players = game:GetService("Players")
    -- Sostituisci 123456 con l'ID del gruppo che vuoi controllare
    local groupID = 123456
    Players.PlayerAdded:Connect(function(player)
    local success, isInGroup = pcall(function()
    return player:IsInGroupAsync(groupID)
    end)
    if success and isInGroup then
    player:SetAttribute("IsVIP", true)
    else
    player:SetAttribute("IsVIP", false)
    end
    end)
  2. Crea un LocalScript in StarterPlayerStarterCharacterScripts e aggiungi il seguente codice per visualizzare un tag [VIP] nella finestra di 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
© 2026 Roblox Corporation. Roblox, il logo Roblox e Powering Imagination sono tra i nostri marchi registrati e non registrati negli Stati Uniti. e altri paesi.