Roblox Guidebookقاعدة المعرفة
العربية ⌄

Studio / ROBLOX

العميل والخادم في Roblox Studio: مقارنة الحالة أثناء الاختبار

حدد الجهة التي تراقبها، واعثر على الكائن، واربط ملاحظات Explorer برسائل Output. مع علامة تدريب وسجل واضح وفحص بعد إيقاف المحاكاة.

آخر تحديث:

اطرح سؤالاً دقيقاً عن الحالة #

عبارة «تغير الكائن» لا تكفي لتحليل مشكلة. حدد أين رأيت ذلك: في عرض العميل أو شجرة الخادم أو السجل. اختر عنصراً غير حساس في نموذج منفصل، مثل Part مثبت اسمه ContextMarker. لا تستخدم العملات أو المشتريات أو بيانات اللاعب المحفوظة كمؤشر للتدريب.

سؤالنا هو: «ما قيمة الخاصية التي أراها على كل جهة من هذا الاختبار؟». يختلف عن مقارنة عدة لاعبين أو اختبار الحفظ بين الزيارات. سجل المسار Workspace → ContextMarker وخاصية واحدة مثل Color. العلامة اقتراح للتدريب؛ لم تُعدّل ألعابنا ولم تُجر اختبارات Studio من أجل هذا المقال.

شغّل وضع اختبار مناسباً #

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

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

حدد الجهة النشطة #

أثناء الاختبار الفردي استخدم مفتاح Client/Server. يوضح حالته المحاكاة التي تشاهدها. سجل الجهة قبل قراءة أي خاصية، وراجعها مجدداً بعد التبديل. وجود الكاميرا قرب العنصر نفسه لا يثبت أن السياق واحد؛ قد تتشابه صورة العالم مع اختلاف الجهة.

سمّ السجلات «Client» و«Server» كما تظهر في Studio. يمكن أن تختلط صورة شجرة بلا تسمية بغيرها لاحقاً. يمثل اللوحان في رسمنا سياقين، لا لاعبين حقيقيين شُغّلا بالفعل. ليست الرسوم صوراً من Studio أو أدلة على حالة مشروع يعمل.

ابحث بالمسار الكامل #

في Client افتح Explorer واعثر على المسار المختار. انتقل إلى Server وراجع المسار والخاصية نفسيهما. تحقق من الأب والاسم؛ ContextMarker آخر داخل نموذج مختلف كائن آخر. إذا لم تجد العنصر فسجل غيابه بدلاً من اختراع القيمة التي توقعتها.

تختلف الأشجار بحسب السياق. تعرض وثائق Roblox كائنات PlayerScripts للعميل وServerScriptService وServerStorage للخادم. وجود كائن في مخزن الخادم لا يثبت إمكانية الوصول إليه من العميل. مع تفعيل streaming قد يتلقى العميل أولاً جزءاً من Workspace فقط؛ هذه مسألة أخرى غير خطأ كتابة الاسم.

جهتا اختبار فردي واحدافتح الصورة بالحجم الكامل ↗
مخطط أصلي لسياقي العميل والخادم، وليس شجرة مشروع فعلية.

احفظ زوج الملاحظات الأول #

قبل التعديل سجل سطرين: Client والمسار الكامل والقيمة المرصودة؛ Server والمسار نفسه والقيمة المرصودة. أضف وقت الملاحظة أو خطوة السيناريو. لا تقل إن القيم متطابقة قبل قراءة الجهتين. يقدم جدول المقال صيغة سجل، وليس نتائج اختبار أجريناه نحن.

إذا اختلفتا منذ البداية، افحص هل يغير سكربت موجود الخاصية، أو هل قارنت كائنين أو وقتين مختلفين. لا تضف سلوكاً جديداً فوق حالة بداية غير مفسرة. يسهل النموذج البسيط والمنفصل التمرين، لأنك تستطيع تحديد ما قد يؤثر في الخاصية المختارة للعلامة.

سجل الملاحظاتافتح الصورة بالحجم الكامل ↗
بطاقة تسجيل أصلية: اقرأ القيم في اختبارك الخاص.

غيّر شيئاً واحداً وقارن مجدداً #

في اختبار تدريبي منفصل اختر Client وعدّل خاصية واحدة للعلامة من Properties. سجل فوراً أين حدث التعديل، ثم اقرأ القيمة على الجهتين. الهدف هو تمييز مكان الإجراء عن مكان الملاحظة، وليس إثبات قاعدة عامة لكل خصائص Roblox.

أوقف الاختبار وارجع إلى شروط البداية، ثم أجر مقارنة منفصلة مع تعديل من Server. لا تخلط التعديلين في تسلسل غير مسجل؛ قد يؤثر سكربت أو تأخير أو تعديل لاحق في المشهد. إن خالفت النتيجة توقعك فاحفظ السجلين وشروطهما، ولا تعلن تعطل المزامنة من لون واحد.

اربط الملاحظة مع Output #

افتح Output وانتبه إلى مصدر الرسائل. تصف Roblox علامات زرقاء للعميل وخضراء للخادم؛ تعتمد جهة رسالة ModuleScript على الجهة التي استدعته. اللون مؤشر إضافي، لكن التحقيق يحتاج أيضاً إلى نص الرسالة والمسار المؤدي إلى مصدرها.

إذا كان النموذج يحتوي تشخيصاً سابقاً، فقارن وقته وكائنه بسجل Explorer. رسالة «جاهز» بلا جهة أو قيمة مناسبة لا تشرح كثيراً. في حالة خيالية تقول الواجهة «تم الاختيار» بينما يخص السجل كائناً آخر. تشابه الكلمات لا يثبت أن الخادم أكد هذا الإجراء تحديداً.

راجع نوع السكربت وموقعه #

عند غياب الرسالة المتوقعة افحص نوع السكربت ومكانه وRunContext إذا كان Script. الأيقونة أو كلمة Script وحدها لا تحدد جهة التنفيذ. توضح Roblox أن Script قد يعمل على العميل أو الخادم بحسب السياق والموقع، بينما يعمل LocalScript على العميل.

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

ما يُفحصسبب الأهمية
Scriptالموقع وRunContext
LocalScriptسياق العميل والمكان المناسب
ModuleScriptالجهة التي تستدعي الوحدة

ميّز الإيقاف عن الحفظ #

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

لا يفحص التمرين DataStore أو شراءً أو زيارة جديدة لتجربة منشورة. نجاح مقارنة السياقين لا يثبت بقاء البيانات بين الجلسات. تحتاج تلك الأسئلة إلى سيناريو مستقل بمصادر وشروط مناسبة. لا تضف استنتاجاً عن الحفظ الدائم إلى سجل مراقبة لون.

اكتب استنتاجاً محدداً #

سجل وضع الاختبار وجهة التعديل وجهتي الملاحظة والمسار والخاصية والتسلسل ورسالة Output المرتبطة. صف بدقة: «في هذه الخطوة شوهدت هذه القيمة على هذه الجهة». اذكر منفصلاً ما لم يُفحص، مثل العملاء الآخرين أو الشبكة أو العودة أو منطق اللعب الفعلي.

بعد الإصلاح كرر السيناريو نفسه من شروطه الأصلية. إذا كان السؤال عما يراه لاعبون آخرون، فانتقل إلى اختبار Server & Clients مستقل؛ لا يحل التبديل محله. يقدم المقال منهجاً ورسومات تعليمية أصلية، ولا يدعي نتائج Studio فعلية أو تعديلات ألعاب أو قياسات للمزامنة.

السجلما يُحفظ
البدايةالوضع وشروط البداية
التعديلالجهة والمسار وخاصية واحدة
الملاحظةالجهتان ورسالة Output
حد الاستنتاجالأسئلة التي لم تُختبر

المصادر الأصلية

Roblox Creator Hub — Studio testing modes
Roblox Creator Hub — Client-server runtime
Roblox Creator Hub — Script types and locations