التطوير / ROBLOX
Output في Roblox Studio: تحديد السبب والتحقق من الإصلاح
دورة عملية مع الفلاتر وسياق العميل والخادم والتحذيرات وأخطاء التنفيذ وتمرينين صغيرين بالكود.
ابدأ بحالة قابلة للتكرار #
عندما لا يستجيب زر أو لا تظهر مكافأة، سجل ما فعلته والنتيجة المتوقعة وما حدث فعلاً. مثال: «بدأت الاختبار وضغطت مرة، توقعت رسالة شراء ولم تظهر». بهذه الملاحظة تستطيع إعادة الحالة نفسها بعد تعديل الكود.
استخدم مشروع تدريب منفصلاً. الأمثلة تعرض رسائل وتقارن متغيرات محلية، ولا تتصل بمتجر أو عملات اللاعبين أو بيانات محفوظة. الهدف ربط إشارة البرنامج بفعل محدد. بعد فهم ذلك طبّق الخطوات على جزء صغير من مشروعك.
1. افتح Output وجهز العرض #
بحسب توثيق Roblox الحالي، يمكن فتح Output من قائمة Window أو شريط أدوات تبويب Script. رتّب النافذة بحيث ترى الرسائل الجديدة أثناء الاختبار. إذا اختلف ترتيب الواجهة فابحث عن اسم النافذة.
افحص فلاتر النوع والسياق والنص. في التمرين الأول أزل البحث النصي وأظهر رسائل الخادم والمخرجات العادية والتحذيرات. فعّل Show Source لرؤية السكربت والسطر عندما يتوفران. احفظ السجلات المهمة قبل المسح؛ مسح النافذة يزيل الرسائل المعروضة، أما إصلاح الكود فخطوة منفصلة.
2. أنشئ Script واحداً للخادم #
في Explorer أضف Script عادياً باسم OutputPractice داخل ServerScriptService. قيمة RunContext الافتراضية Legacy مناسبة لهذا التدريب على الخادم، ويمكن اختيار Server صراحةً. الصق المثال الأول وتأكد من تفعيل السكربت.
ابدأ اختبار Studio. توقع رسالة coins مع 8 ثم تحذير Unexpected coin count. افحص سياق الخادم. إذا ظهرت أزواج متطابقة كثيرة فابحث عن نسخ من سكربت التدريب. كل نسخة تنتج سطورها الخاصة، وقد تجعل تنفيذًا واحدًا يبدو كتكرار للمشكلة نفسها.
local expectedCoins = 10
local actualCoins = 8
print("coins", actualCoins)
if actualCoins ~= expectedCoins then
warn("Unexpected coin count")
end3. ميّز الرسالة والتحذير وخطأ التنفيذ #
تعرض print() قيمة أو تشير إلى مرحلة اكتملت. تبرز warn() شرطاً قرر كاتب الكود الإبلاغ عنه. يظهر التحذير هنا لأن 8 تختلف عن 10. اقرأ الشرط الذي أنتجه قبل استنتاج السبب.
خطأ التنفيذ يعني أن عملية محددة لم تكتمل. اقرأ النص مع المصدر وخطوات الاختبار. اللون وحده لا يحدد العنصر المسؤول. تحقق هل السطر من سكربتك أم مكوّن آخر أم اختبار سابق قبل تغيير أي شيء. يفصل الرسم بين هذه الإشارات الثلاث.
4. غيّر قيمة واحدة وأعد الاختبار #
أوقف الاختبار، ثم غيّر actualCoins من 8 إلى 10 في OutputPractice الأصلي واترك expectedCoins عند 10. ابدأ اختباراً جديداً بعد تنظيف السجل أو تسجيل وقت البداية. ينبغي أن تعرض الرسالة العادية 10 وألا يظهر تحذير هذا الشرط.
أنت تتحقق من تغيير واحد. تعديل الشرط واسم المتغير وموقع السكربت معاً يصعّب معرفة التغيير المفيد. قد تُعاد تغييرات العناصر أثناء الاختبار إلى حالتها السابقة بعد Stop، لذلك عدّل المشروع الأصلي بعد الإيقاف. احفظ الإصلاح بعد تأكيده باختبار متكرر.
5. حلّل خطأ تدريب آمناً #
استبدل محتوى السكربت بالمثال الثاني وابدأ اختباراً جديداً. قيمة inventory هي nil عمداً، فلا يستطيع inventory.Coins قراءة حقل جدول. توقع خطأ عند هذا الوصول. قد تختلف صياغته الدقيقة، لكن المصدر ينبغي أن يقود إلى مثالنا.
أوقف الاختبار واستبدل local inventory = nil بالسطر local inventory = {Coins = 10}. بعد التشغيل الجديد يعطي الوصول رقماً، ويُفترض أن يعرض Output القيمة 10. الإصلاح يغير بيانات العملية. إزالة print() وحدها ستحذف التمرين دون تفسير سبب الوصول غير الصحيح.
local inventory = nil
print(inventory.Coins)6. عند غياب الرسائل افحص مسار التنفيذ #
عد إلى المثال الأول وأضف مؤقتاً print("OutputPractice started") في البداية. إن غابت أيضاً، افحص تشغيل الاختبار وتفعيل Script والحاوية وRunContext، ثم فلاتر Output والسياق. تأكد أولاً أن التنفيذ يصل إلى الحساب قبل تحليل قيمه.
في LocalScript حقيقي راعِ تنفيذ العميل والحاوية المناسبة. رسالة الخادم لا تثبت تنفيذ معالج العميل. تساعد علامتان قبل الفعل وبعده على تحديد النطاق: ظهور الأولى فقط يوجهك إلى ما بينهما؛ غيابهما يوجهك إلى بدء التنفيذ أو عرض الرسائل.
7. اقرأ المصدر واحتفظ بالأدلة المفيدة #
ابحث عن اسم السكربت ورقم السطر المرتبط بالخطأ. يعرض Show Source هذه العلاقة عند توفرها، وينقلك رابط المصدر المتاح إلى الكود. إذا ظهرت سلسلة استدعاءات فافحص أيضاً موضع الاستدعاء. رقم السطر بداية للقراءة، وقد تكون القيمة الخاطئة نشأت قبله.
سجل الخطوات والمتوقع والفعلي ونص الخطأ والسكربت وسياق Client أو Server. أرفق مقطعاً صغيراً ذا صلة عند طلب المساعدة. احذف بيانات الدخول وبيانات اللاعبين قبل المشاركة. تجنب الطباعة في كل إطار؛ تدفق الرسائل يصعّب العثور على أول سجل مفيد.
8. تحقق من السلوك ومن السجل #
كرر الخطوات الأصلية وافحص أن الفعل المطلوب حدث وأن الخطأ المرتبط به لم يظهر مجدداً. في التمرين الأول يعني ذلك 10 دون تحذير المقارنة، وللزر يعني الفعل المقصود. نافذة Output الفارغة وحدها لا تثبت إصلاح زر معطل.
جرّب حالة قريبة كإعادة الفعل أو إدخال صالح آخر. أزل الرسائل المؤقتة الزائدة واحتفظ بالتشخيص المفيد. إن بقيت المشكلة، سجل الملاحظة الجديدة وافحص سبباً واحداً مجدداً. تجعل هذه الدورة كل خطوة مفهومة وتحافظ على نسخة متحققة يمكنك العودة إليها.
المصادر الأصلية
Roblox Creator HubRoblox Creator Hub · Studio testing modes
Roblox Creator Hub · Script types and locations