Atribusikan tag obrolan

*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.

Contoh ini menunjukkan cara menetapkan tag obrolan kepada pemain berdasarkan keanggotaan mereka di sebuah kelompok.Tag obrolan adalah cara untuk mengidentifikasi visual pemain di jendela obrolan dan berguna untuk menunjukkan peran atau status pemain.

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

Karena panggilan balas obrolan teks mengharapkan panggilan non-menyerah, mencoba menanyakan status keanggotaan grup pemain di panggilan balas TextChatService.OnIncomingMessage tidak direkomendasikan, karena dapat menyebabkan sistem obrolan mogok atau menjadi tidak responsif.

Sebagai gantinya, atur atribut pemain ketika mereka bergabung dengan server.Mengatur atribut memungkinkan Anda menggunakan kembali status pemain di bagian lain pengalaman Anda seperti memungkinkan akses ke area tertentu atau memberikan pengalaman bonus.

  1. Buat Script di ServerScriptService dan tambahkan kode berikut ke dalamnya:

    Pelayan

    local Players = game:GetService("Players")
    -- Ganti 123456 dengan ID grup yang ingin Anda periksa
    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. Buat LocalScript di StarterPlayerStarterCharacterScripts dan tambahkan kode berikut untuk menampilkan tag [VIP] di jendela obrolan:

    Pelanggan

    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