السمات الموجودة
تستخدم إعدادات مطابقة اللاعبين الافتراضية من 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
endlocal 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 then
warn(errorMessage)
else
print("المستوى الحالي: " .. currentLevel)
end
-- تحديث قيمة سمة المستوى إلى متقدم
local success, errorMessage = MatchmakingService:SetServerAttribute("Level", "متقدم")
if not success then
warn("فشل في تحديث سمة الخادم [المستوى] إلى [متقدم] بسبب الخطأ: " .. errorMessage)
else
print("تم تعيين [المستوى] بنجاح إلى [متقدم]")
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 scorelocal server_average_Elo = 2000
local joining_player_Elo = 1000
local max_relevant_difference = 1500
local 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 scorelocal server_sum_PowerLevel = 4500
local joining_player_PowerLevel = 9901
local max_relevant_difference = 1500
local constant_value = 5000
local 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} / occupancy
return scorelocal num_players_same_Guild = 15
local occupancy = 19
local score = num_players_same_Guild / occupancy
return scoreالتنويع
يحقق أقصى نسبة من اللاعبين في الخادم الذين لديهم سمة مختلفة عن سمة اللاعب الذي ينضم.
local score = num_players_same_{attribute_name} / occupancy
return 1 - scorelocal num_players_same_RpgClass = 15
local occupancy = 19
local score = num_players_same_RpgClass / occupancy
return 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 scorelocal server_Level = 4500
local joining_player_Level = 9000
local max_relevant_difference = 1500
local 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 scorelocal server_GameTime = 500
local max_relevant_difference = 1000
local constant_value = 1000
local 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} then
return 1
else
return 0
endlocal server_GameMode = "نجاة"
local joining_player_GameMode = "نجاة"
if server_GameMode == joining_player_GameMode then
return 1
else
return 0
endمقارنة بقيمة ثابتة
تكون الدرجة 1 عندما تكون قيمة سمة الخادم متساوية مع قيمة ثابتة تساوي true. بخلاف ذلك، تكون درجة الإشارة 0.
if server_{attribute_name} == constant_value then
return 1
else
return 0
endlocal server_GameNotStarted = true
if server_GameNotStarted == true then
return 1
else
return 0
end