المستخدمون واللاعبون

*This content is translated using AI (Beta) and may contain errors. To view this page in English, click here.

عندما ينضم مستخدم Roblox إلى لعبة، يتم تمثيله كـ Player في DataModel. يحتوي كائن Player هذا على معلومات حول المستخدم تكون عالمية عبر الألعاب، مثل اسم المستخدم، قائمة الأصدقاء، وشخصية الصورة الرمزية المحفوظة، بالإضافة إلى الخصائص، والطرق، والأحداث التي تؤثر على دورة حياة المستخدم بين الانضمام إلى اللعبة ومغادرتها. يحتوي كل كائن Player أيضًا على أربعة حاويات مهمة يمكنك استخدامها لتخصيص تجربة المستخدم: Backpack، StarterGear، PlayerGui، وPlayerScripts.

كما يكشف كل Player عن خاصية Player.User، وهي قيمة User تمثل هوية اللاعب ضمن نطاق اللعبة الحالية. لمزيد من المعلومات حول كيفية عمل تحديد الهوية للمستخدم، بما في ذلك معرفات المستخدم ضمن النطاق، ونوع User، انظر المستخدمون ومعرفات المستخدم ضمن النطاق.

دورة الحياة

تحتوي خدمة Players على جميع مثيلات Player في اللعبة. يمكن لكل من السكربتات على جانب العميل والخادم الاتصال بأحداث Players.PlayerAdded وPlayers.PlayerRemoved لأداء إجراءات استجابة لدورة حياة كائن Player. يمكن للسكربتات أيضًا الاتصال بأحداث Player.CharacterAdded وPlayer.CharacterRemoving لأداء إجراءات متعلقة باللعب عندما تظهر الشخصية أو تختفي.

انضمام المستخدم

عندما يتصل عميل المستخدم بلعبة، يتم تشغيل حدث Players.PlayerAdded ويمرر كائن Player للمستخدم الذي ينضم؛ يمكنك استخدام هذا الكائن لأغراض عديدة مثل تحميل بيانات المستخدم من متجر البيانات أو تعيين اللاعب إلى فريق.

على سبيل المثال، لتحميل بيانات المستخدم عند انضمامه إلى اللعبة، استخدم حدث PlayerAdded في Script لاسترداد بيانات المستخدم المخزنة في متجر البيانات تحت معرف المستخدم الخاص به:

Script in ServerScriptService
local DataStoreService = game:GetService("DataStoreService")
local Players = game:GetService("Players")
local playerDataStore = DataStoreService:GetDataStore("PlayerData")
Players.PlayerAdded:Connect(function(player)
local userId = player.UserId
-- قراءة مفتاح متجر البيانات
local getSuccess, currentData = pcall(function()
return playerDataStore:GetAsync(userId)
end)
if getSuccess then
print(currentData)
end
-- القيام بمزيد من الإجراءات مع currentData
end)

ظهور الشخصية

بشكل افتراضي، يمثل نموذج Player.Character الخاص بالمستخدم صورة منصته وPlayers.CharacterAutoLoads هو true، مما يعني أن نموذج الشخصية يظهر تلقائيًا عندما ينضم المستخدم إلى اللعبة.

عندما تظهر شخصية المستخدم Player.Character، يتم استنساخ Scripts وLocalScripts في StarterCharacterScripts إلى نموذج الشخصية ويتم تشغيل حدث Player.CharacterAdded. يمرر هذا الحدث نموذج الشخصية الجديد إلى مستمعيه، والذي يمكنك استخدامه للعثور على كائن Humanoid الخاص بالشخصية وتعديل سلوكه. على سبيل المثال، يمكنك استخدام Humanoid:ApplyDescription() لتغيير ملابس الصورة الرمزية.

اختفاء الشخصية

عندما يموت Humanoid الخاص باللاعب، يقوم الخادم تلقائيًا بإزالة نموذج الشخصية بعد الوقت المحدد بواسطة Players.RespawnTime. يمكنك بعد ذلك استخدام حدث Player.CharacterRemoving لإعادة تعيين كائنات أخرى أو تحديث البيانات المرتبطة بالشخصية.

مغادرة المستخدم

عندما ينفصل عميل المستخدم عن اللعبة، يقوم الخادم بتدمير كائن Player المرتبط به داخل خدمة Players. في هذه المرحلة، يتم تشغيل حدث Players.PlayerRemoving ويمرر كائن Player للمستخدم الذي انفصل. يمكنك استخدام هذا لأغراض عديدة مثل حفظ بيانات المستخدم، وإزالة إحصائيات اللاعب من لوحة النتائج، أو تدمير النماذج التي أنشأها اللاعب في اللعبة.

يستمع المثال التالي Script إلى حدث PlayerRemoving ويحاول حفظ بيانات المستخدم في متجر البيانات تحت معرف المستخدم الخاص به:

Script in ServerScriptService
local DataStoreService = game:GetService("DataStoreService")
local Players = game:GetService("Players")
local playerDataStore = DataStoreService:GetDataStore("PlayerData")
Players.PlayerRemoving:Connect(function(player)
local userId = player.UserId
-- الحصول على حالة بيانات اللاعب في اللعبة
local currentData = getCurrentData(player)
-- حفظ في متجر البيانات
local setSuccess, errorMessage = pcall(function()
playerDataStore:SetAsync(userId, currentData)
end)
if not setSuccess then
warn(errorMessage)
end
end)

الحاويات

يخزن كل كائن Player الذي يمثل عميل المستخدم عدة حاويات مهمة: Backpack، StarterGear، PlayerGui، وPlayerScripts. أثناء وقت تشغيل اللعبة، تقوم عدة حاويات في نموذج البيانات "التحرير" بنسخ محتوياتها إلى هذه الحاويات Player، بما في ذلك StarterGui إلى PlayerGui، وStarterPack إلى Backpack، وStarterPlayerScripts إلى PlayerScripts.

مخطط يوضح كيفية ربط الكائنات بين نماذج البيانات 'التحرير' و 'وقت التشغيل'.

تتكون كائنات Tool في Backpack من مخزون اللاعب وتظهر كأزرار أيقونات في أسفل الشاشة. انظر الأدوات داخل اللعبة لمزيد من المعلومات.

كما هو موضح أعلاه، يتم نسخ محتويات StarterPack وStarterGear الخاصة باللاعب إلى Backpack عندما تظهر شخصية اللاعب Character. عندما تموت الشخصية، يقوم العميل بتدمير Backpack واستبداله بواحد جديد.

لإلغاء تفعيل واجهة المستخدم الافتراضية لمخزون Roblox واستبدالها بأخرى خاصة بك، اتصل بـ StarterGui:SetCoreGuiEnabled() في LocalScript كما هو موضح في إلغاء تفعيل واجهة المستخدم الافتراضية.

حظر المستخدمين

لضمان السلوك اللائق واللعب العادل في ألعابك، يمكنك حظر المستخدمين الذين ينتهكون القواعد أو إرشادات المجتمع. يمكنك تعديل مدة الحظر، ورسائل الحظر، وحتى توسيع الحظر ليشمل حسابات بديلة محتملة. عند استخدام هذه الميزة، يجب عليك اتباع إرشادات الحظر وإرشادات الرسائل.

لديك عدة خيارات للعمل مع الحظر:

حظر الأجهزة

بالإضافة إلى حظر حساب، يدعم Players:BanAsync() حظر الأجهزة من خلال حقل ApplyDeviceBlock في جدول تكوينه. عندما تحظر مستخدمًا متصلًا حاليًا بلعبتك مع تعيين ApplyDeviceBlock إلى true، يتم أيضًا حظر الجهاز المرتبط بذلك المستخدم من إعادة الانضمام لمدة 24 ساعة. تضيف هذه الخيار احتكاكًا ضد التهرب من الحظر؛ لا يمكن للاعبين المحظورين إعادة الانضمام إلى اللعبة على الفور من حساب جديد على نفس الجهاز.

  • ينطبق حظر الأجهزة حاليًا فقط على اللاعبين على سطح المكتب (Windows وmacOS). لا ينطبق على الأجهزة المحمولة أو وحدات التحكم.
  • لا ينتقل حظر الجهاز كحظر إلى أي حسابات أخرى استخدمت الجهاز.
  • استدعاء واجهة برمجة التطبيقات لإلغاء الحظر على المستخدم المتأثر يزيل على الفور أي حظر جهاز نشط مرتبط بجهاز ذلك المستخدم، مما يسمح له بإعادة الانضمام إلى اللعبة.

إرشادات الحظر

عند تنفيذ الحظر في لعبتك، التزم بالإرشادات التالية:

  • يجب ألا تتعارض قواعد اللعبة مع معايير المجتمع وشروط الاستخدام الخاصة بـ Roblox. على سبيل المثال، لا يمكنك إنشاء قاعدة لعبة تستبعد شخصًا بسبب جنسه، حيث أن هذا ينتهك سياسة Roblox بشأن التمييز، والشتائم، وخطاب الكراهية.
  • يجب على المبدعين توضيح قواعد لعبتهم في مكان يمكن الوصول إليه لجميع المستخدمين.
  • يجب على المبدعين تطبيق قواعد لعبتهم بشكل عادل وعدم استهداف مستخدمين معينين بشكل تعسفي.
  • يمكن للمستخدمين الاستئناف إلى المبدعين مباشرة إذا اعتقدوا أن حظرهم كان غير صحيح. لن تتوسط Roblox في هذه الاستئنافات، ما لم يعتقد المستخدم أن قواعد اللعبة الخاصة بالمبدع أو تطبيق قواعده تنتهك معايير المجتمع.
  • يمكن لـ Roblox تعديل لعبة إذا كان هناك سبب للاعتقاد بأن قواعد اللعبة الخاصة بالمبدع أو تطبيق قواعده تنتهك معايير المجتمع.

إرشادات الرسائل

عندما يتم حظر مستخدم، يتلقى نافذة خطأ تعرض معلومات مثل مدة الحظر والسبب. في الرسالة المصفاة نصيًا، يمكنك تضمين معلومات إضافية مثل معلومات الاستئناف أو الاتصال طالما أنك تلتزم بـ معايير المجتمع الخاصة بـ Roblox.

على سبيل المثال، في رسائل الحظر الخاصة بك، يُسمح لك بالإشارة إلى أسماء العلامات التجارية والمنصات:

  • "قم بزيارة Discord في مجموعتي/صفحة اللعبة"
  • "راسلني على Twitter أو X"

لا يُسمح بالإشارة إلى المعلومات الشخصية أو الروابط المباشرة في هذا الحقل الرسالي. يشمل ذلك نشر اسم مستخدم معين أو مقبض، أو تقديم رابط مباشر إلى خادم Discord أو حساب X.

©2026 شركة Roblox Corporation. تُعد منصّة Roblox، وشعار Roblox وشعار "توسيع حدود المخيلة"، من ضمن علاماتنا التجارية المسجّلة وغير المسجّلة في الولايات المتحدة وبلدان أخرى.