الإعدادات
الإعدادات الأساسية
| الإعدادات | القيمة الافتراضية | الحد الأدنى | الحد الأقصى |
|---|---|---|---|
| عدد الفرق | 3 | 1 | 3 |
| عدد اللاعبين | 3 | 1 | 4 |
| عدد الجولات | 4 | 1 | 7 |
| ذخيرة غير محدودة | true | - | - |
| جدران Gloo غير محدودة | false | - | - |
| قنابل غير محدودة | false | - | - |
يمكن تغيير القيم أعلاه، ولكن قد يتسبب ذلك في حدوث مشكلات في بعض الواجهات أو المنطق إذا تم تجاوز القيم القصوى أو النزول عن القيم الدنيا.
ضبط موقع الخريطة
لنقل الخريطة إلى موقع جديد، يجب نقل كائنات المستوى التالية إلى مكان آخر.
بشكل افتراضي، تكون هذه الكائنات موجودة في Katulistiwa.

فقط قم بنقل هذه الكائنات إلى موقع جديد لنقل الخريطة بأكملها.
| كائن المستوى | الصورة | العدد |
|---|---|---|
| منطقة الأمان (Safe Zone) | ![]() |
1 |
| نقاط الظهور وماكينة البيع | ![]() |
1 لكل فريق |
بالإضافة إلى ذلك، لتغيير اسم الموقع المعروض في واجهة المستخدم كما في الصورة:

يمكن ضبط هذا من خلال Property Settings -> Overall Rules -> LocationName

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

يمكن تغيير الإعدادات التالية مع بعض القيود:
| الخاصية | القيمة الافتراضية | الحد الأدنى | الحد الأقصى |
|---|---|---|---|
| نصف القطر الابتدائي | 35.00 | - | - |
| نصف القطر النهائي | 15.00 | - | - |
| وقت البدء (ثانية) | 0 | - | أقل من مدة الخريطة |
| وقت بدء الانكماش (ثانية) | 5 | - | أقل من مدة الخريطة |
| مدة الانكماش (ثانية) | 30 | - | أقل من مدة الخريطة |
| فاصل الضرر (ثانية) | 2 | - | - |
| الضرر | 20 | - | - |
| وقت الانتهاء (ثانية) | 40 | - | أقل من مدة الخريطة |
إذا تم ضبط وقت البدء أو وقت الانتهاء ليكون أكبر أو يساوي مدة الخريطة، فلن توجد المرحلة الثانية لمنطقة الأمان.
المرحلة الثانية من منطقة الأمان
يمكن ضبط جميع خصائص المرحلة الثانية من منطقة الأمان من خلال Overall Rules في Property Settings.
ويمكن تعديل ما يلي:
| الخاصية | القيمة الافتراضية | الحد الأدنى | الحد الأقصى |
|---|---|---|---|
| SZMoveMin | Vector3{30, 0, 30} | Vector3{0, 0, 0} | - |
| SZMoveMax | Vector3{50, 0, 50} | Vector3{0, 0, 0} | - |
| SZMoveDuration(ثانية) | 100 | 0 | أقل من مدة الخريطة |
| SZDamage | 40 | 1 | - |
يحدد SZMoveMin وSZMoveMax أين سيتحرك مركز المرحلة الثانية لمنطقة الأمان.
افتراضيًا، ستتحرك المنطقة بين 30 و50 وحدة على المحورين X و Z.
أما SZMoveDuration فيتحكم في مدة الحركة والانكماش لمنطقة الأمان.
ضبط تجهيزات اللاعب
تجهيزات البداية للاعب
يمكن تغيير تجهيزات اللاعب الابتدائية في سكريبت اللاعب ضمن الدالة Configure.

عدد القنابل والأدوات القابلة للرمي
يمكن العثور على إعدادات عدد القنابل والأدوات القابلة للرمي في Property Settings تحت قسم Player Rules.
ويمكن تعديل ما يلي:
- GlooWallNum: عدد جدران Gloo في كل جولة.
- GrenadeNum: عدد القنابل في كل جولة.
- GlooMelterNum: عدد أدوات إذابة Gloo في كل جولة.
- FlashFreezeNum: عدد أدوات Flash Freeze في كل جولة.
- InhalerNum: عدد أجهزة الاستنشاق في كل جولة.
- MedKitNum: عدد أطقم الإسعاف في كل جولة.
- SuperMedKitNum: عدد أطقم الإسعاف الفائقة في كل جولة.

ضبط متجر اللاعب
افتراضيًا، تستخدم جميع ماكينات البيع من القوالب نفس المتجر.
يمكن تعديل محتوى هذا المتجر باتباع الخطوات التالية:
انقر على More ثم على Store and economy:

ثم انقر على الأيقونة التالية للدخول إلى واجهة تعديل المتجر:

من هذه الواجهة، يمكنك تعديل محتوى المتجر الحالي.

إعداد عملية عشوائية نقاط الظهور
بشكل افتراضي، تتغير مواقع ظهور الفرق في بداية كل جولة.
يمكن تفعيل أو تعطيل هذا الخيار من خلال مكون كيان اللعبة (Game Entity).

يمكن العثور على قائمة نقاط الظهور المستخدمة في العشوائية في الدالة Configure من السكريبت العام (Global Script).
من خلال إضافة أو إزالة نقاط الظهور المعرفة هنا، يمكنك التحكم في النقاط الممكن استخدامها.

افتراضيًا، تكون هناك 4 نقاط ظهور كما هو موضح بالصورة أدناه:

شرح السكربت
السكربت العام (Global Script)
عند بداية الجولة، يتم ضبط بعض الإعدادات من خلال الدالة Configure. يتم إعادة تعيين المتغيرات TeamAcedCnt (يُستخدم لتخزين عدد الفرق التي تم إقصاؤها في هذه الجولة) و TeamWon (لتخزين الفريق الفائز في هذه الجولة). بالإضافة إلى ذلك، يتم تحديث المنطقة الآمنة (Safe Zone) وموقعها النهائي في هذا الوقت من خلال الدالتين ResetBorder و RandBorderEndLoc.

خلال هذه الفترة، تتم إضافة جميع نقاط الظهور إلى قائمة ليتم خلطها عشوائيًا. يمكن استخدام هذه القائمة من قِبل سكربت الفريق (Team Script) لتوزيع نقاط الظهور للفِرق بطريقة عشوائية عند بداية كل جولة.

بعد ذلك، تقوم الدالة RandBorderEndLoc بتنفيذ وظائفها:

- جمع جميع الخصائص اللازمة من المرحلة الأولى للمنطقة الآمنة، ثم حساب موقع المرحلة الثانية النهائي.
- تنتظر الدالة حتى انتهاء المرحلة الأولى لبدء المرحلة الثانية.
خلال المباراة، كلما تم إقصاء فريق، يتحقق النظام مما إذا كانت جميع الفرق قد تم إقصاؤها. تقوم الدالة بعد ذلك بتحديث قيمةTeamWonلاستخدامها لاحقًا، كما تقوم بتحديث نقاط الفريق الفائز.


عند إعادة تعيين الحدود، يتم إيقاف تشغيل المنطقة الآمنة من الجولة السابقة يدويًا للتأكد من عدم وجود منطقتين آمنتين ابتداءً من الجولة الثانية.

سكربت الفريق (Team Script)
عند بدء الجولة، يتم خلط قائمة نقاط الظهور المحفوظة في السكربت العام. بعدها، يستخدم سكربت الفريق هذه القائمة لتحديد نقطة الظهور لكل لاعب من الفريق.

لتفعيل أو تعطيل هذه الميزة، راجع دليل الإعداد.
سكربت اللاعب (Player Script)
عندما ينضم اللاعب إلى اللعبة، يتم تنفيذ الوظائف التالية لإعداده:

في Configure، يمكن العثور على إعدادات تتعلق بسلاح البداية للاعب. الدالة SetProperty تتحكم في خصائص اللاعب (الصحة، إسقاط العناصر عند الإقصاء، إلخ). وكما يشير الاسم، فإن PreloadEquipment و PreloadAccessory تقومان بتحميل المعدات الأساسية مسبقًا (مثل الحقيبة، السلاح، إلخ).
عندما تبدأ الجولة، يتم إعادة تعيين معدات اللاعب من خلال الدالة ResetWeapon. تقوم هذه الدالة بإعادة ضبط الأدوات القابلة للرمي (مثل القنابل) وكذلك العناصر الاستهلاكية (مثل أدوات الإسعاف). كما يتم إنشاء وتحديث واجهة حالة اللعبة (Game Status UI) استنادًا إلى عدد الفرق، اللاعبين، حالتهم ونقاطهم خلال هذه المرحلة.

عند إقصاء أي لاعب، يجب على جميع اللاعبين تحديث واجهة حالة اللعبة لعرض العدد الصحيح من اللاعبين المتبقين في كل فريق.


تقوم الدالة UpdatePlayerNum بما يلي لتحديث عدد اللاعبين في كل فريق:
- حساب عدد اللاعبين الأحياء في كل فريق.
- تحديث واجهة المستخدم (UI) المقابلة.
كما يتم استدعاء هذه الدالة في بداية كل مرحلة لضمان أن عدد اللاعبين يظل دقيقًا طوال المباراة.

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

سكربت واجهة HUD
سكربت MatchStatus
واجهة حالة المباراة (Match Status UI) لا تعتمد على اللاعب، ولكنها يتم تحديثها تلقائيًا — خاصة المؤقت (Timer) وموقع الخريطة. هاتان العمليتان تبدآن تلقائيًا عند بداية كل مرحلة وتنتهيان بنهايتها.

عند تعيين الموقع عبر الدالة SetLocation، يتم الحصول على اسم الموقع مباشرة من عنصر اللعبة (Game Entity) في قائمة Manage Component.

يتم تحديث المؤقت كل ثانية لكل لاعب عن طريق حساب قيم الثواني والدقائق من كيان المرحلة (phase entity).


