أنواع السكربتات والمواقع

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


بالنسبة للعديد من المطورين، التحدي الأساسي في التكيف مع برمجة Roblox هو أهمية موقع الملف وخصائص Script.RunContext. اعتمادًا على نوع السكربت، الموقع في مستكشف (Explorer)، وسياق التشغيل، يمكن أن behave السكربتات بشكل مختلف جدًا. قد تفشل بعض استدعاءات الأساليب، قد تكون بعض الكائنات في لعبتك غير قابلة للوصول، أو قد لا تعمل السكربتات على الإطلاق.

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

أنواع السكربتات

تحتوي Roblox على ثلاثة أنواع من السكربتات:

  • Script - كود يعمل إما على الخادم أو على العميل، اعتمادًا على موقعه وخصائص Script.RunContext.
  • LocalScript - كود يعمل فقط على العميل. لا يحتوي على سياق تشغيل.
  • ModuleScript - كود يمكنك إعادة استخدامه في سكربتات أخرى. لا يحتوي على سياق تشغيل.

عندما تقوم بإنشاء Script، يكون سياق التشغيل الافتراضي له هو Legacy، مما يعني أنه أ) سكربت على جانب الخادم و ب) يعمل فقط إذا كان في حاوية خادم، مثل Workspace أو ServerScriptService.

  • إذا قمت بتغيير سياق تشغيل السكربت إلى Server، يمكنه الآن أيضًا العمل في ReplicatedStorage، ولكن لا يُوصى بذلك. يتم تكرار محتويات ذلك الموقع إلى العملاء، لذا فهو مكان غير مناسب لسكربتات جانب الخادم.
  • إذا قمت بتغيير سياق تشغيل السكربت إلى Client، يمكنه العمل في ReplicatedStorage. يمكنه أيضًا العمل في StarterCharacterScripts و StarterPlayerScripts. ومع ذلك، يتم نسخ الحاويات الأصلية إلى العملاء، لذا، فإن السكربت الأصلي و النسخة تعمل، وهو أمر غير مرغوب فيه.

لتغيير سياق تشغيل السكربت، قم بتحديده في مستكشف وغيّر القيمة في نافذة الخصائص.

الخاصية RunContext المحددة لسكريبت.

التوصيات

  • ضع سكربتات العميل في ReplicatedStorage مع RunContext لـ Client بجانب ModuleScripts الخاصة بالعميل فقط.

    عند تصحيح الأخطاء في الاستوديو، يمكنك النقر على السطور في نافذة الإخراج والانتقال إلى ReplicatedStorage.YourScript (الموقع الثابت للسكريبت) بدلاً من Players.YourName.PlayerScripts.YourScript (الموقع المؤقت الذي تم نسخ السكربت إليه عند وقت التشغيل).

  • ضع سكربتات الخادم في ServerScriptService مع RunContext لـ Server بجانب ModuleScripts الخاصة بالخادم فقط.

  • لمشاركة التعليمات البرمجية بين سكربتات الخادم والعميل، استخدم ModuleScripts في ReplicatedStorage.

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

  • ضع الحد الأدنى من سكربتات العميل (مثل سكربت التحميل) في ReplicatedFirst مع RunContext لـ Client. لمعرفة المزيد، راجع ترتيب النسخ.

  • استخدم LocalScripts في StarterCharacterScripts و StarterPlayerScripts و StarterGui و StarterPack.

مواقع السكربتات

LocationDescription
Workspaceتمثل عالم اللعبة ثلاثي الأبعاد. يعمل هذا الموقع بشكل جيد للسكربتات التي تتصل مباشرة بالأشياء وتتحكم في سلوكياتها.
ReplicatedFirstيحتوي على الأشياء التي تتكرر للعميل قبل أي شيء آخر. هذا الموقع مثالي للمجموعة الدنيا المطلقة من الأشياء والسكربتات اللازمة لعرض شاشة تحميل.
ReplicatedStorageيحتوي على الأشياء التي تتكرر لكل من العميل والخادم. هذا الموقع مثالي لـ ModuleScripts التي ترغب في استخدامها على كل من الخادم والعميل. لا تعمل LocalScripts من هذا الموقع، لكن Scripts مع RunContext من نوع Client تعمل.
ServerScriptServiceيحتوي على سكربتات الخادم. هذا الموقع مثالي للسكربتات التي تحتاج إلى الوصول إلى وظائف أو أشياء من جانب الخادم، مثل منطق اللعبة والتخزين السحابي.
ServerStorageيحتوي على أشياء من جانب الخادم. هذا الموقع مثالي للأشياء الكبيرة التي لا تحتاج إلى التكرار فوراً للعملاء عند انضمامهم إلى اللعبة. لا تعمل السكربتات من هذا الموقع، لكن يمكنك تخزين ModuleScripts من جانب الخادم هنا.
StarterPlayerStarterCharacterScriptsيحتوي على LocalScripts التي تعمل عندما تظهر الشخصية.
StarterPlayerStarterPlayerScriptsيحتوي على LocalScripts متعددة الأغراض التي تعمل عندما ينضم اللاعب إلى اللعبة.
StarterGuiيحتوي على عناصر واجهة المستخدم التي يعرضها العميل عند تحميل اللعبة. يمكن أن تعمل LocalScripts من هذا الموقع. هذا الموقع مثالي للسكربتات التي تعدل واجهة المستخدم للعبة، مثل إضافة أزرار، قوائم، ومنافذ.
StarterPackعادةً ما يحتوي فقط على Tools، ولكن يمكن أن يتضمن أيضًا LocalScripts لإعداد حقائب اللاعبين.

تظهر هذه الصورة المواقع التي يمكن أن تحتوي على سكربتات العملاء في نافذة مستكشف. تذكر، يمكن أن يحتوي ReplicatedFirst و ReplicatedStorage على Scripts مع RunContext لـ Client، بينما يجب أن تستخدم حاويات Starter[] LocalScripts.

مخطط يوضح مواقع السكربت التي تعمل على العملاء.

هيكل المشروع النموذجي

يعرض مشروع الإشارة Plant كيف يمكنك تنظيم التعليمات البرمجية الخاصة بك في لعبة كبيرة ومعقدة.

من الجدير بالذكر بشكل خاص كيف يخزن الغالبية العظمى من التعليمات البرمجية الخاصة به كـ ModuleScripts قابلة لإعادة الاستخدام في ReplicatedStorage و ServerStorage.

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