هذا المثال يوضح كيفية تعيين علامات الدردشة للاعبين بناءً على عضويتهم في مجموعة. علامات الدردشة هي وسيلة لتحديد هوية اللاعب بصريًا في نافذة الدردشة ومفيدة للإشارة إلى دور اللاعب أو حالته.

نظرًا لأن استرجاع الدردشة النصية يتوقع استقبال ردود غير معطلة، فإن محاولة الاستعلام عن حالة عضوية المجموعة للاعب في رد الاتصال TextChatService.OnIncomingMessage غير مستحسن، حيث قد يتسبب ذلك في تعليق النظام أو أن يصبح غير مستجيب.
بدلاً من ذلك، قم بتعيين سمات للاعب عند انضمامه إلى الخادم. يؤدي تعيين سمة إلى إعادة استخدام حالة اللاعب في أجزاء أخرى من لعبتك، مثل السماح بالوصول إلى مناطق معينة أو تقديم تجارب إضافية.
أنشئ Script في ServerScriptService وأضف الكود التالي إليه:
خادمlocal Players = game:GetService("Players")-- استبدل 123456 بمعرف المجموعة الذي تريد التحقق منهlocal groupID = 123456Players.PlayerAdded:Connect(function(player)local success, isInGroup = pcall(function()return player:IsInGroupAsync(groupID)end)if success and isInGroup thenplayer:SetAttribute("IsVIP", true)elseplayer:SetAttribute("IsVIP", false)endend)أنشئ LocalScript في StarterPlayer ⟩ StarterCharacterScripts وأضف الكود التالي لعرض علامة [VIP] في نافذة الدردشة:
عميلlocal Players = game:GetService("Players")local TextChatService = game:GetService("TextChatService")TextChatService.OnIncomingMessage = function(message: TextChatMessage)local textSource = message.TextSourceif textSource thenlocal player = Players:GetPlayerByUserId(textSource.UserId)if player thenif player:GetAttribute("IsVIP") == true thenlocal overrideProperties = Instance.new("TextChatMessageProperties")overrideProperties.PrefixText = "[VIP] " .. message.PrefixTextreturn overridePropertiesendendendreturn nilend