السمات الموجودة
تستخدم إعدادات مطابقة اللاعبين الافتراضية من Roblox إشارات تعتمد على سمات موجودة مثل موقع اللاعب، وفئة العمر، والكمون.
لاستخدام بيانات لمطابقة اللاعبين التي لا تتضمنها Roblox تلقائيًا في تكوينها الافتراضي، تحتاج إلى إنشاء سمات مخصصة وإشارات مخصصة.
| السمة | النوع | الوصف |
|---|---|---|
| كمون اللاعب المقدر | رقمي | الكمون المقدر للاعب في الخادم. |
| لديه أصدقاء | كتلي | ما إذا كان الخادم يحتوي على صديق أو لاعب آخر بنفس عنوان IP للاعب الذي ينضم. |
| هل تم تفعيل دردشة الصوت | كتلي | ما إذا كان اللاعب قد قام بتفعيل دردشة الصوت. |
| عمر اللاعب | رقمي | عمر اللاعب. |
| نوع جهاز اللاعب | كتلي | نوع جهاز اللاعب. يمكن أن يكون جهاز محمول، كمبيوتر، جهاز لوحي، وحدة تحكم، أو جهاز واقع افتراضي. |
| لغة اللاعب | كتلي | لغة اللاعب. |
| تاريخ لعب اللاعب | رقمي | رقم اللوغاريتم (الأساس 10) للدقائق التي لعبها اللاعب في كون معين خلال الـ 28 يومًا الماضية. |
| شغل الخادم | رقمي | عدد اللاعبين في الخادم. |
| مجموعة دردشة نصية اللاعب | كتلي | مجموعة دردشة نصية اللاعب حيث يمكنهم الدردشة النصية معًا. |
الإشارات الموجودة
فيما يلي الإشارات المعرفة من قبل Roblox المستمدة من سمات Roblox:
| الإشارة | الوصف |
|---|---|
| العمر | الفارق بين متوسط عمر اللاعبين في الخادم وعمر اللاعب الذي ينضم، مع فارق أقصى ذي صلة قدره 25. |
| نوع الجهاز | النسبة المئوية للاعبين في الخادم بنفس نوع الجهاز مثل اللاعب الذي ينضم. |
| الأصدقاء | عدد الأشخاص في الخادم الذين هم أصدقاء مع اللاعب الذي ينضم أو الذين يشاركون عنوان IP مع اللاعب الذي ينضم. 1 إذا كان هناك لاعب مفضل، و0 بخلاف ذلك. |
| الكمون | الكمون المقدر للاعب لخادم، مع قيمة قصوى ذات صلة قدرها 250. |
| اللغة | النسبة المئوية للاعبين في الخادم الذين يتحدثون نفس اللغة مثل اللاعب الذي ينضم |
| شغل | النسبة المئوية للاعبين في الخادم مقارنة بسعة الخادم. |
| تاريخ اللعب | الفارق بين متوسط تاريخ اللعب في الخادم وتاريخ اللعب للاعب الذي ينضم، مع فارق أقصى ذي صلة قدره 4.6. |
| دردشة الصوت | النسبة المئوية للاعبين في الخادم الذين لديهم دردشة صوتية مفعلة. |
| دردشة نصية | النسبة المئوية للاعبين في الخادم الذين يمكنهم الدردشة النصية مع اللاعب الذي ينضم معًا. |
العمر
إشارة رقمية تقارن بين أعمار اللاعبين في الخادم وعمر اللاعب الذي ينضم. هذه الإشارة لديها حد أقصى ذا صلة قدره 25. درجة الإشارة مرتبطة بشكل عكسي بفارق العمر، مما يعني أن الفوارق العمرية الأقل لها درجات أعلى.
حيث
نوع الجهاز
إشارة كتلية تقيس نسبة اللاعبين في الخادم الذين لديهم نفس نوع الجهاز مثل اللاعب الذي ينضم. تشمل أنواع الأجهزة: كمبيوتر، جهاز محمول، جهاز لوحي، وحدة تحكم، وجهاز واقع افتراضي.
الأصدقاء
اللاعب المفضل هو لاعب إما صديق لللاعب الذي ينضم أو يشارك نفس عنوان IP مع اللاعب الذي ينضم. إشارة الأصدقاء هي إشارة كتلية لها درجة 1 عندما يوجد لاعب مفضل في الخادم ودرجة 0 عندما لا توجد لاعبين مفضلين في الخادم.
يمكن أيضًا اعتبار إشارة الأصدقاء إشارة رقمية لها قيمة قصوى ذات صلة قدرها 1.
اللغة
إشارة كتلية تقيس نسبة اللاعبين في الخادم الذين لديهم نفس إعداد اللغة مثل اللاعب الذي ينضم.
الكمون
إشارة رقمية تقيس الوقت المقدر للاتصال باللعبة بالمللي ثانية للاعب الذي ينضم إذا كان سيلعب في خادم. هذه الإشارة لها قيمة قصوى ذات صلة قدرها 250 مللي ثانية. درجة الإشارة مرتبطة عكسيًا بالكمون، مما يعني أن قيم الكمون الأقل لها درجات أعلى.
الشغل
إشارة رقمية تقيس نسبة اللاعبين في الخادم بالنسبة لسعة الخادم.
تاريخ اللعب
تبلغ قيمة سمة تاريخ اللعب العدد اللوغاريتمي (الأساس 10) للدقائق التي لعبها اللاعب في كون معين خلال الـ 28 يومًا الماضية. تقارن هذه الإشارة الرقمية بين متوسط قيمة تاريخ اللعب اللوغاريتمي للاعبين في الخادم وبين قيمة تاريخ اللعب للاعب الذي ينضم. لهذه الإشارة حد أقصى ذي صلة قدره 4.6. درجة الإشارة مرتبطة عكسيًا بفارق تاريخ اللعب، مما يعني أن الفروق الأقل في تاريخ اللعب لديها درجات أعلى.
، حيث
دردشة الصوت
يمكن أن يكون لدى اللاعب دردشة صوتية مفعلة أو معطلة. إشارة دردشة الصوت هي إشارة كتلية تقيس نسبة اللاعبين الذين لديهم نفس إعداد دردشة الصوت مثل اللاعب الذي ينضم إلى عدد اللاعبين في الخادم.
إذا كانت اللعبة قد أعطت تعطيلًا لدردشة الصوت، فإن وزن إشارة دردشة الصوت يكون 0.
دردشة نصية
إشارة كتلية تقيس نسبة اللاعبين في الخادم الذين يمكنهم الدردشة النصية مع اللاعب الذي ينضم معًا بشكل مشترك.
السمات المخصصة
تمنح السمات المخصصة إشارات مخصصة الوصول إلى بيانات اللاعب والخادم. لمزيد من المعلومات حول إنشاء سماتك المخصصة، راجع إنشاء سمة مخصصة. لمزيد من المعلومات حول سمات Roblox الموجودة، راجع السمات الموجودة.
| السمة | الخصائص |
|---|---|
| لاعب | مستمر بيانات اللاعب المخصصة التي تستمر في مخازن البيانات، مثل مستوى اللاعب أو نقاطه داخل اللعبة يتم إدارتها باستخدام واجهات برمجة التطبيقات DataStore |
| خادم | غير مستمر وتبقى فقط طالما أن الخادم نشط بيانات خاصة بالخادم مثل مستوى الخادم أو وضع اللعبة يتم إدارتها باستخدام واجهة برمجة التطبيقات MatchmakingService |
مثال على سمة اللاعب
local DataStoreService = game:GetService("DataStoreService")
local eloStore = DataStoreService:GetDataStore("PlayerElo")
function onMatchEnded(players: {Player}, winners: {Player}, losers: {Player})
for _, player in players do
local updatedElo = CalculateUpdatedElo(player, winners, losers)
local success, errorMessage = pcall(function()
eloStore:SetAsync(player.UserId, updatedElo)
end)
end
end
مثال على سمة الخادمlocal MatchmakingService = game:GetService("MatchmakingService")local RunService = game:GetService("RunService")if RunService:IsStudio() then-- إعداد السمات والأشكال الأولية للاختبارMatchmakingService:InitializeServerAttributesForStudio({Level = "متقدم",Elo = 123.456,TrainingMode = true})end-- استرجاع سمة مستوىlocal currentLevel, errorMessage = MatchmakingService:GetServerAttribute("Level")if errorMessage thenwarn(errorMessage)elseprint("المستوى الحالي: " .. currentLevel)end-- تحديث قيمة سمة المستوى إلى متقدمlocal success, errorMessage = MatchmakingService:SetServerAttribute("Level", "متقدم")if not success thenwarn("فشل في تحديث سمة الخادم [المستوى] إلى [متقدم] بسبب الخطأ: " .. errorMessage)elseprint("تم تعيين [المستوى] بنجاح إلى [متقدم]")end
الإشارات المخصصة
تُنشأ الإشارات المخصصة وتُعرف بواسطةك ويمكن أن تكون رقمية أو كتلية:
- الإشارات الرقمية هي أرقام. تقارن الفارق بين سمة اللاعب الذي ينضم والقيمة المجمعة للخادم، مع تقليل الدرجات أو زيادتها مع زيادة الفروق. على سبيل المثال، كلما اقترب مستوى مهارة لاعب من متوسط مستوى المهارة للخادم، كانت درجة الإشارة الرقمية أعلى. يتم ضرب هذه الدرجة بعد ذلك في وزن الإشارة.
- الإشارات الكتلية هي سلاسل أو قيم بولينية. تستند إلى مدى شيوع سمة اللاعب الذي ينضم عند مقارنتها مع اللاعبين الآخرين في الخادم. على سبيل المثال، إذا كانت نسبة كبيرة من اللاعبين داخل خادم ما لديهم نفس اللغة المفضلة مثل اللاعب الذي ينضم، فإن الدرجة تزداد. يتم أيضًا ضرب هذه الدرجة في وزن الإشارة.
لمزيد من المعلومات حول إنشاء إشاراتك المخصصة، راجع إنشاء إشارة مخصصة. لمزيد من المعلومات حول الإشارات الموجودة في Roblox، راجع الإشارات الموجودة.
الإشارات الرقمية للاعب
اللاعب الذي ينضم
يقلل الفارق بين سمة اللاعب المتوسطة للخادم وسمة اللاعب الذي ينضم. الفوارق التي تزيد عن 1000 تعيد درجة إشارة مقدارها 0.
صيغة صيغة اللاعب الذي ينضم للإشارة الرقميةlocal diff = math.abs(server_{aggregation_function}_{attribute_name} - joining_player_{attribute_name})local score = 1 - math.min(diff / max_relevant_difference, 1)return score
مثال على اللاعب الذي ينضم للإشارة الرقميةlocal server_average_Elo = 2000local joining_player_Elo = 1000local max_relevant_difference = 1500local diff = math.abs(server_average_Elo - joining_player_Elo)local score = 1 - math.min(diff / max_relevant_difference, 1)return score
قيمة ثابتة
يقلل الفارق بين سمة اللاعب المتوسطة للخادم وقيمة ثابتة من 500. الفوارق التي تزيد عن 1000 تعيد درجة إشارة مقدارها 0.
صيغة صيغة القيمة الثابتة للإشارة الرقميةlocal diff = math.abs(server_sum_{attribute_name} + joining_player_{attribute_name} - constant_value)local score = 1 - math.min(diff / max_relevant_difference, 1)return score
مثال على قيمة ثابتة للإشارة الرقميةlocal server_sum_PowerLevel = 4500local joining_player_PowerLevel = 9901local max_relevant_difference = 1500local constant_value = 5000local diff = math.abs(server_sum_PowerLevel + joining_player_PowerLevel - constant_value)local score = 1 - math.min(diff / max_relevant_difference, 1)
الإشارات الكتلية للاعب
التركيز
يحقق أقصى نسبة من اللاعبين في الخادم الذين لديهم نفس السمة مثل سمة اللاعب الذي ينضم.
صيغة التركيز للإشارة الكتلية للاعبlocal score = num_players_same_{attribute_name} / occupancyreturn score
مثال على التركيز للإشارة الكتلية للاعبlocal num_players_same_Guild = 15local occupancy = 19local score = num_players_same_Guild / occupancyreturn score
التنويع
يحقق أقصى نسبة من اللاعبين في الخادم الذين لديهم سمة مختلفة عن سمة اللاعب الذي ينضم.
صيغة التنويع للإشارة الكتلية للاعبlocal score = num_players_same_{attribute_name} / occupancyreturn 1 - score
مثال على التنويع للإشارة الكتلية للاعبlocal num_players_same_RpgClass = 15local occupancy = 19local score = num_players_same_RpgClass / occupancyreturn score
الإشارات الرقمية للخادم
اللاعب الذي ينضم
يقلل الفارق بين سمة الخادم وسمة اللاعب الذي ينضم. الفوارق التي تزيد عن 1000 تعيد درجة إشارة مقدارها 0.
صيغة صيغة اللاعب الذي ينضم للإشارة الرقمية للخادمlocal diff = math.abs(server_{attribute_name} - joining_player_{attribute_name})local score = 1 - math.min(diff / max_relevant_difference, 1)return score
مثال على اللاعب الذي ينضم للإشارة الرقمية للخادمlocal server_Level = 4500local joining_player_Level = 9000local max_relevant_difference = 1500local diff = math.abs(server_Level - joining_player_Level)local score = 1 - math.min(diff / max_relevant_difference, 1)
قيمة ثابتة
يقلل الفارق بين قيمة سمة الخادم وقيمة ثابتة. الفوارق التي تزيد عن هذه القيمة الثابتة تعيد درجة إشارة مقدارها 0.
صيغة صيغة القيمة الثابتة للإشارة الرقمية للخادمlocal diff = math.abs(server_{attribute_name} - constant_value)local score = math.min(diff / max_relevant_difference, 1)return score
مثال على قيمة ثابتة للإشارة الرقمية للخادمlocal server_GameTime = 500local max_relevant_difference = 1000local constant_value = 1000local diff = math.abs(server_GameTime - constant_value)local score = math.min(diff / max_relevant_difference, 1)
الإشارات الكتلية للخادم
مقارنة بلاعب الذي ينضم
تكون الدرجة 1 عندما تكون قيمة سمة الخادم (على سبيل المثال، وضع اللعبة) متساوية مع سمة اللاعب (على سبيل المثال، وضع اللعبة المفضل). بخلاف ذلك، تكون درجة الإشارة 0.
صيغة صيغة اللاعب الذي ينضم للإشارة الكتلية للخادمif server_{attribute_name} == joining_player_{attribute_name} thenreturn 1elsereturn 0end
مثال على اللاعب الذي ينضم للإشارة الكتلية للخادمlocal server_GameMode = "نجاة"local joining_player_GameMode = "نجاة"if server_GameMode == joining_player_GameMode thenreturn 1elsereturn 0end
مقارنة بقيمة ثابتة
تكون الدرجة 1 عندما تكون قيمة سمة الخادم متساوية مع قيمة ثابتة تساوي true. بخلاف ذلك، تكون درجة الإشارة 0.
صيغة صيغة القيمة الثابتة للإشارة الكتلية للخادمif server_{attribute_name} == constant_value thenreturn 1elsereturn 0end
مثال على قيمة ثابتة للإشارة الكتلية للخادمlocal server_GameNotStarted = trueif server_GameNotStarted == true thenreturn 1elsereturn 0end