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

للحفاظ على نظام منظم ومهيكل:
- يجب أن يتصل كل بلاط بلاط آخر موجود أو بالأرض.
- ضع جميع بلاطات البناء ضمن شبكة منسقة مع العالم ثلاثي الأبعاد بحيث تتصل البلاطات بشكل صحيح ولا تتداخل.
تركيب البلاط
لكي يتمكن المستخدمون من بناء بلاطات جديدة بسرعة وسهولة، يحتاج نظام البناء إلى فهم أي البلاطات متصلة ببعضها وأين يمكن وضع بلاطات جديدة على الشبكة.
تستخدم البلاطات 3 مكونات: الأصل المرئي الذي يُستخدم ككائن بلاط، ومعلومات حول المساحة التي يحتلها البلاط بالنسبة للأجسام الأخرى في العالم، ونقاط الاتصال لبلاط تسمح للبلاطات الإضافية بالاتصال بالحواف المتاحة.
الأصل
الأصل هو BasePart (Part، MeshPart، إلخ) الموضوعة في ReplicatedStorage/BuildingSystem/Assets والتي تمثل شكل البلاط في العالم ثلاثي الأبعاد. يجب أن يحتوي هذا BasePart على طفلين:
- ObjectType — قيمة سلسلة (StringValue) مع قيمة اسم نوع البلاط.
- StartingRotation — قيمة عدد (NumberValue) مع قيمة دوران البلاط عند وضعه في العالم.
الإشغال
من المهم التأكد من أن البلاط يحتل الموقع الصحيح في نظام الشبكة ويمكن تحقيق ذلك باستخدام قناع بت. يمثل قناع البت المساحة المادية التي يشغلها نوع البلاط داخل قسم أساسي من مساحة العالم، أو خلية. يمكن لكل بلاطة/كائن نظام بناء أن يحتل أي عدد من وجوه خلية الشبكة (الأمام، اليسار، الخلف، اليمين، الأعلى، والأسفل) وأي عدد من الأبعاد في خلية الشبكة. يمكن للمستخدم وضع كائن نظام البناء في خلية فقط إذا كانت جميع الوجوه والأبعاد التي يحتلها الكائن متاحة في تلك الخلية. يتم تعريف الإشغال لكائن نظام البناء كما يلي:
| مؤشر البت | المعنى |
|---|---|
| 0 | الوجه السفلي للخلية |
| 1 | الوجه العلوي للخلية |
| 2 | الوجه الأيمن للخلية |
| 3 | الوجه الخلفي للخلية |
| 4 | الوجه الأيسر للخلية |
| 5 | الوجه الأمامي للخلية |
| 6 | +X, –Y, +Z بعد من الخلية مع الأصل في منتصف الخلية |
| 7 | +X, +Y, +Z بعد من الخلية مع الأصل في منتصف الخلية |
| 8 | –X, –Y, +Z بعد من الخلية مع الأصل في منتصف الخلية |
| 9 | –X, +Y, +Z بعد من الخلية مع الأصل في منتصف الخلية |
| 10 | –X, –Y, –Z بعد من الخلية مع الأصل في منتصف الخلية |
| 11 | –X, +Y, –Z بعد من الخلية مع الأصل في منتصف الخلية |
| 12 | +X, –Y, –Z بعد من الخلية مع الأصل في منتصف الخلية |
| 13 | +X, +Y, –Z بعد من الخلية مع الأصل في منتصف الخلية |
الاتصال
تحتاج البلاطات إلى الاتصال ببعضها لإنشاء بنية. يمكنك استخدام قناع بت يمثل الأجزاء التي تلمسها بلاطة نوع الخلية. يتم تمثيل الاتصال لكائن/بلاطة نظام البناء بواسطة سلسلة من نقاط الاتصال، البتات، على سطح الخلية. يتم ترتيبها بالطريقة التالية على وجوه الخلية:

يعتبر كائن نظام البناء متصلاً بكائن آخر لنظام البناء في الشبكة إذا كان لديها على الأقل نقطتين من الاتصال على سطح الخلية.
إنشاء أنواع جديدة من البلاط
لإنشاء نوع جديد من البلاط:
ضع الأصل في ReplicatedStorage/BuildingSystem/Assets. تذكر أنه يجب أن يحتوي على الأطفال ObjectType وStartingRotation كما هو محدد أعلاه.

على سبيل المثال، يتم التعبير عن نوع البلاط الجدار على النحو التالي:
ObjectTypeConfigurations.Wall = {ASSET_OFFSET_FROM_CENTER = Vector3.new(0, 0, -CELL_DIMENSIONS.Z / 2),CONNECTIVITY = 0xFF8000, -- 0b 111 111 111 000 000 000 000 000OCCUPANCY = 0x20, -- 0b 00 00 00 00 1 0 0 0 0 0}
العمل مع التضاريس
إذا كنت ترغب في إنشاء خريطة بتضاريس حرة الشكل terrain تتماشى تمامًا مع نظام البناء، فإننا نوصي باستخدام نظام استيراد خريطة الارتفاع كما هو موضح في التضاريس البيئية ومراعاة التفاصيل التالية:
يتم تمثيل التضاريس في Roblox على أنها مصفوفة ثلاثية الأبعاد من الفوكسيات، وكل منها يحتل مكعب من 4×4×4 ستود. بسبب ذلك، يستخدم Roblox Battle Royale حجم خلية الشبكة 20×16×20 ستود، مع بلاطات الجدران التي يبلغ حجمها 20×16×1 ستود وبلاطات الأرض/السقف التي يبلغ حجمها 20×1×20 ستود. هذا يسمح للبلاطات البنائية والتضاريس بأن تصطف بشكل صحيح.
يجب أن يمثل كل بكسل في صورة خريطة الارتفاع فوكسا واحدًا في التضاريس في مستوى X/Z، لذا فإن منطقة 5×5 بكسلات تمثل خلية الشبكة لنظام البناء التي تحتل منطقة 20×20 ستود.
في صورة خريطة الارتفاع الخاصة بك، تأكد من أن قيمة القناة الحمراء أو قيمة القناة الرمادية لكل بكسل قابلة للقسمة على ارتفاع خلية الشبكة الخاصة بنظام البناء بحيث تجلس بلاطات الأرض بشكل مريح فوق التضاريس.
عند استيراد خريطة الارتفاع الخاصة بك، اضبط:
Position (X, Y, Z) = 0, 0, 0Size (X, Y, Z) = heightmap_width × 4, 256, heightmap_length × 4
