تقدم Roblox الأسلحة الجاهزة التالية للمساعدة في إنشاء ألعاب تنافسية تعتمد على القتال. يتميز النظام الأساسي بأسلحة تعتمد على المقذوفات مع كاميرا فوق الكتف، ويمكن أن يؤدي ضبط سرعة المقذوفات بشكل كافٍ إلى محاكاة أسلحة الرماية مثل البنادق الليزرية.

لاستخدام سلاح جاهز في لعبتك:
في صفحة عنصر السلاح، انقر على زر الحصول على النموذج ووافق على المعاملة.
في الاستوديو، افتح صندوق الأدوات واختر قسم المخزون الخاص بك.

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

هيكل مجلد النظام
مجلد WeaponsSystem هو مجلد موحد يحتوي على الأصول والتكوينات والبرامج النصية التي تدعم جميع الأسلحة الجاهزة في اللعبة. إذا كان موجودًا في ServerScriptService، فإنه يتجاوز أي مجلدات WeaponsSystem مكافئة قد توجد داخل الأسلحة الفردية.

داخل مجلد WeaponsSystem، يتم التحكم في جوانب مختلفة بواسطة ModuleScripts التالية:
| الجانب | يتم التعامل معه بشكل أساسي داخل... |
|---|---|
| وظائف الأسلحة |
|
| كاميرا الكتف |
|
| واجهة المستخدم للأسلحة |
|
هيكل السلاح
تعتبر الأسلحة الجاهزة أدوات وتسمى كما ستظهر في حقيبة اللاعب. يتم هيكلة كل سلاح بهرمية مشابهة.
نوع السلاح
يتوافق WeaponType StringValue مع ModuleScript للسلاح في مجلد WeaponsSystem/WeaponTypes. القيمتان الأساسيتان هما BulletWeapon و BowWeapon.
نموذج السلاح
يحتوي كل سلاح على Model يتكون من جزء أو أكثر من BaseParts لتشكيل السلاح الفعلي. يجب تعيين أحد هذه الأجزاء كـ PrimaryPart للنموذج.

يتضمن النموذج أيضًا السلالات المهمة التالية التي يمكن أن تكون مرتبطة بأحد أجزاء النموذج BaseParts:
- سلالات إضافية لأي خيارات متخصصة.
التكوين
يحتوي مجلد Configuration على أنواع "القيم" المحددة لسلوك السلاح. بخلاف القيم الافتراضية، يمكنك إضافة عناصر تكوين إضافية لـ خيارات متخصصة عند الاقتضاء.

فيما يلي التكوينات الأساسية وقيمها الافتراضية:
| العنصر | الوصف | الافتراضي |
|---|---|---|
| AimTrack | اسم مسار الرسوم المتحركة للتصويب في Assets/Animations من مجلد النظام. | RifleAim |
| AimZoomTrack | اسم مسار الرسوم المتحركة لتكبير التصويب في Assets/Animations من مجلد النظام. | RifleAimDownSights |
| AmmoCapacity | عدد الطلقات في كل "مخزن ذخيرة" قبل أن يتعين على اللاعب إعادة التحميل. لاحظ أن الذخيرة غير محدودة وهذا لا يحدد مقدار الذخيرة التي يحملها اللاعب. | 30 |
| BulletSpeed | سرعة التي تسير بها الرصاص/المقذوفات عند إطلاقها. تعيين هذه القيمة إلى قيمة عالية جدًا مثل 20000 يحاكي أسلحة الرماية مثل البنادق الليزرية. | 1000 |
| BurstShotCooldown | الوقت بين كل طلقة في دفعة؛ يهم فقط إذا قمت بتعيين FireMode إلى Burst. | قيمة ShotCooldown |
| FiredPlaybackSpeedRange | مقدار يمكن أن يتغير فيه نغمة صوت Fired للسلاح. قم بتعيين هذه القيمة إلى 0 لتشغيلها دائمًا بنفس النغمة. | 0.1 |
| FireMode | اختر من بين Semiautomatic (طلقة واحدة لكل نقرة/لمسة)، Automatic (إطلاق مستمر)، أو Burst (دفعة من الطلقات تساوي NumBurstShots في كل نقرة/لمسة). | Semiautomatic |
| FullDamageDistance | أقصى مسافة يمكن أن تسبب فيها الطلقات ضررًا كاملًا. أي شيء يُصاب بعد هذه المسافة سيتلقى ضررًا أقل كلما اقتربت المسافة من ZeroDamageDistance. | 1000 |
| GravityFactor | مقدار تأثير الجاذبية على كل رصاصة/مقذوف. على سبيل المثال، هذه القيمة لـ قوس ونشاب هي 1 لأن الأسهم تنحني أثناء الطيران، ولكن هذه القيمة لـ قاذف الصواريخ هي 0 لأن الصواريخ المدفوعة تسير بشكل مستقيم. | 0 |
| HasScope | قم بتعيينها إلى true إذا كنت تريد استخدام المنظار المحدد في واجهة المستخدم للأسلحة. | false |
| HitDamage | مقدار الضرر الذي تسببه كل إصابة مباشرة. | 10 |
| MaxDistance | أقصى مسافة تسير بها الرصاص/المقذوفات قبل أن تختفي. | 2000 |
| MaxSpread | أقصى مقدار من الانتشار للسلاح. | قيمة MinSpread |
| MinSpread | أدنى مقدار من الانتشار للسلاح. | 0 |
| NumBurstShots | عدد الطلقات لكل نقرة/دفعة؛ يهم فقط إذا قمت بتعيين FireMode إلى Burst. | 3 |
| NumProjectiles | عدد الرصاص/المقذوفات التي ستطلق في نفس الوقت عند النقر/اللمس مرة واحدة. هذا مفيد للأسلحة مثل البندقية التي تطلق عدة رصاصات في نفس الوقت. لاحظ أن طلقة واحدة ستستخدم دائمًا رصاصة واحدة بغض النظر عن هذه القيمة. | 1 |
| RecoilDecay | معامل الانخفاض للارتداد؛ بشكل أساسي معدل انخفاض الارتداد بعد إطلاق النار. | 0.825 |
| RecoilDelayTime | وقت الانتظار بعد إطلاق النار/النقر قبل إضافة الارتداد إلى الكاميرا. | 0.07 |
| RecoilMax | أقصى ارتداد يُضاف لكل طلقة. | 0.5 |
| RecoilMin | أدنى ارتداد يُضاف لكل طلقة. | 0.05 |
| ReloadAnimation | اسم مسار الرسوم المتحركة لإعادة التحميل في Assets/Animations من مجلد النظام. | RifleReload |
| ShotCooldown | أدنى وقت انتظار بين النقرات. بالنسبة للأسلحة التي لديها FireMode من Automatic، فإن هذا هو أيضًا الوقت بين الطلقات أثناء الضغط على زر الإطلاق أو الضغط على النقر. | 0.1 |
| StartupTime | مدة الوقت بعد تجهيز السلاح قبل أن يتمكن اللاعب من إطلاق النار. يمنع هذا اللاعبين من إطلاق طلقة واحدة من عدة أسلحة مختلفة بسرعة. | 0.2 |
| TotalRecoilMax | إجمالي أقصى ارتداد متراكم. لن يتجاوز الارتداد الحالي للسلاح هذه القيمة أبدًا. | 2 |
| ZeroDamageDistance | أي شيء يُصاب عند أو بعد هذه المسافة لن يتلقى أي ضرر. | 10000 |
خيارات متخصصة
يمكنك إضافة/تعديل الخيارات التالية لأي سلاح. تتطلب هذه التخصيصات تعديل إما Model للسلاح، أو Configuration للسلاح، أو كليهما. بعض التكوينات تعتمد على الأخرى، مثل جزيئات الفوهة التي تتطلب الأطفال الضروريين لـ تأثيرات المقذوف/الإصابة والأصوات.
رسوم متحركة وصوت الزنبرك
الزنبرك للسلاح هو الجزء الذي يتحرك للأمام والخلف في كل مرة يتم فيها إطلاقه.
سلالات نموذج السلاح نموذج السلاح:
- Bolt — BasePart الذي يتحرك عند إطلاق السلاح.
- BoltMotor — Motor6D المستخدمة لتحريك الزنبرك. تأكد من تعيين Part0 لنموذج السلاح إلى PrimaryPart للسلاح وPart1 إلى جزء Bolt.
سلالات مجلد التكوين للسلاح:
- ActionOpenTimeاختياري— الوقت الذي يستغرقه الزنبرك للتحرك إلى وضع الفتح. الافتراضي هو 0.025.
- ActionCloseTimeاختياري— الوقت الذي يستغرقه الزنبرك للتحرك إلى وضع الإغلاق. الافتراضي هو 0.075.
قذائف الرصاص الملقاة
يمكن أن تتضمن الأسلحة قذائف رصاص فعلية تُلقى عند الإطلاق وتسقط على الأرض.
سلالات نموذج السلاح نموذج السلاح:
- CasingEjectPoint — Attachment التي تحدد موضعها على BasePart الأب حيث تريد أن تخرج قذائف الرصاص. لاحظ أن اتجاهها يحدد الاتجاه الذي تخرج منه القذائف.
سلالات مجلد التكوين للسلاح:
- CasingEjectSpeedMinاختياري— الحد الأدنى لسرعة إلقاء القذائف. الافتراضي هو 15.
- CasingEjectSpeedMaxاختياري— الحد الأقصى لسرعة إلقاء القذائف. الافتراضي هو 18.
طفل من BasePart للقذيفة في Assets/Effects/Casings من مجلد النظام:
تأثيرات المقذوف/الإصابة والأصوات
يمكنك تكوين مقذوفات فعلية لأي سلاح، بالإضافة إلى Sounds، وBeams، وParticleEmitters لتأثيرات الإصابة وغيرها من التأثيرات الخاصة.
سلالات مجلد التكوين للسلاح:
- ShouldMovePartاختياري— قم بتعيينها إلى true إذا كان يجب أن يتحرك ShotEffect للسلاح مع المقذوف أو false إذا لم يكن كذلك. يجب عليك تعيينها إلى true فقط إذا كان هناك كائن مرئي يتحرك مع كل طلقة، مثل السهم أو الصاروخ. الافتراضي هو false.
- BeamFadeTimeاختياري— الوقت الذي يستغرقه Beam0 أو Beam1 (انظر أدناه) للتلاشي بعد أن تضرب الرصاصة/المقذوف شيئًا. بشكل افتراضي، لن يتم تطبيق تلاشي يدوي بواسطة الكود. الافتراضي هو 0.
- BeamWidth0اختياري— سمك Beam0 أو Beam1 عند Attachment0 (انظر أدناه). الافتراضي هو 1.5.
- BeamWidth1اختياري— سمك Beam0 أو Beam1 عند Attachment1 (انظر أدناه). الافتراضي هو 1.8.
- NumHitParticlesاختياري— عدد الجزيئات التي ستصدرها HitParticles (انظر أدناه). الافتراضي هو 3.
- HitParticlesUsePartColorاختياري— قم بتعيينها إلى true إذا كنت تريد أن تكون جزيئات الإصابة بلون السطح المصاب؛ false إذا كنت تريد أن لا تتغير جزيئات الإصابة في اللون. الافتراضي هو true.
سلالات ShotEffect المحددة المذكورة في القسم أعلاه:
- Attachment0اختياري— Attachment التي تحدد موضعها على BasePart الأب حيث تحدد مؤخرة الأشعة المتخلفة؛ تأكد من تعيين Beam.Attachment0 على كل من Beam0 وBeam1 إلى هذا.
- Attachment1اختياري— Attachment التي تحدد موضعها على BasePart الأب حيث تحدد مقدمة الأشعة المتخلفة؛ تأكد من تعيين Beam.Attachment1 على كل من Beam0 وBeam1 إلى هذا.
- TrailParticlesاختياري— ParticleEmitter المرتبط كطفل مباشر لـ Attachment0؛ ستصدر هذه أثناء سفر الرصاصة/المقذوف.
- LeadingParticlesاختياري— ParticleEmitter المرتبط كطفل مباشر لـ Attachment1؛ ستصدر هذه أثناء سفر الرصاصة/المقذوف.
- HitEffectاختياري— Attachment التي سيتم تعيين موضعها إلى Beam.Attachment1 لـ Beam0 عندما تضرب الرصاصة/المقذوف. يجب عليك تحديد Beam0 وملحقاته لكي يعمل هذا بشكل صحيح.
- Meshاختياري— SpecialMesh التي تريد أن تظهر كمقذوف مادي. تأكد من تعيين ShouldMovePart في تكوين السلاح إلى true إذا كان لديك كائن مرئي هنا.
جزيئات الفوهة
تقوم هذه الخيار بإصدار جزيئات من ParticleEmitter المحدد عند TipAttachment Attachment للسلاح عند إطلاقه. تشمل سلالات مجلد التكوين للسلاح:
- ShotEffect — اسم تأثير الطلقة المخزن في WeaponsSystem/Assets/Effects/Shots. كطفل لهذا التأثير، قم بتضمين أصل ParticleEmitter يسمى MuzzleParticles.
- NumMuzzleParticlesاختياري— عدد جزيئات الفوهة التي ستصدر. الافتراضي هو 50.
ومضات الفوهة
تقوم هذه الخيار بإنشاء تأثير وميض Beam عند إطلاق السلاح.
سلالات نموذج السلاح نموذج السلاح:
- MuzzleFlash0 — Attachment المستخدمة لتحديد جانب واحد من وميض الفوهة. لا يهم الموضع.
- MuzzleFlash1 — Attachment المستخدمة لتحديد الجانب المقابل من وميض الفوهة. لا يهم الموضع.
- MuzzleFlash — Beam لتأثير وميض الفوهة. تأكد من تعيين Attachment0 إلى MuzzleFlash0 وAttachment1 إلى MuzzleFlash1.
سلالات مجلد التكوين للسلاح:
- MuzzleFlashTimeاختياري— مدة الوقت التي سيظهر فيها وميض الفوهة. الافتراضي هو 0.03.
- MuzzleFlashSize0اختياري— الحد الأدنى لحجم وميض الفوهة. الافتراضي هو 1.
- MuzzleFlashSize1اختياري— الحد الأقصى لحجم وميض الفوهة. الافتراضي هو 1.
مسارات الجزيئات
تقوم هذه الخيار بإنشاء مسار بطول متغير من السلاح إلى نقطة تأثير المقذوف. تشمل سلالات مجلد التكوين للسلاح:
- TrailLengthاختياري— طول المسار خلف الرصاصة/المقذوف؛ الافتراضي هو nil مما يعني أن طول المسار سيتم حسابه بدلاً من ذلك باستخدام TrailLengthFactor.
- TrailLengthFactorاختياري— إذا تم تحديده، سيتم تعيين طول المسار إلى هذه القيمة مضروبة في المسافة التي قطعتها الرصاصة/المقذوف في الإطار الأخير؛ الافتراضي هو 1. لاحظ أن هذا سيتم تجاوزه إذا قمت بتضمين TrailLength.
- ShowEntireTrailUntilHitاختياري— قم بتعيينها إلى true لعرض المسار من طرف السلاح إلى حيثما يكون المقذوف؛ سيؤدي ذلك إلى تجاوز كل من TrailLength وTrailLengthFactor وسيختفي المسار فقط عندما يضرب المقذوف شيئًا. قم بتعيينها إلى false لاستخدام أحد الخيارين أعلاه لحساب طول المسار. الافتراضي هو false.
علامات الإصابة
تظهر هذه الإضافة المرئية على السطح حيث تضرب المقذوفات وتكون مفيدة للأسهم، وندبات الرصاص، وعلامات الاحتراق، وما إلى ذلك. تشمل سلالات مجلد التكوين للسلاح:
- HitMarkEffectاختياري— اسم Part/MeshPart/SpecialMesh لتأثير علامة الإصابة المخزنة في WeaponsSystem/Assets/Effects/HitMarks. الافتراضي هو BulletHole.
- AlignHitMarkToNormalاختياري— قم بتعيينها إلى true إذا كانت علامة الإصابة يجب أن تتماشى دائمًا بشكل مسطح ضد السطح مثل ثقب الرصاص، أو false إذا كانت علامة الإصابة يجب أن تظهر عالقة في السطح من الاتجاه الذي جاء منه المقذوف (مثل السهم). الافتراضي هو true.
كما هو مذكور في HitMarkEffect أعلاه، يمكنك إضافة جزء/شبكة داخل WeaponsSystem/Assets/Effects/HitMarks لتظهر كمقذوف مادي. على سبيل المثال، تضمين جزء MeshPart للسهم وتعيين AlignHitMarkToNormal إلى false سيجعل السهم يبرز من السطح من الاتجاه الذي أطلقته منه. قد يحتوي هذا Part/MeshPart/SpecialMesh على السلالات التالية:
- Glowاختياري— Decal التي تظهر على السطح المصاب بشكل كامل، ثم تصبح شفافة بسرعة، مثل تأثير متوهج على السطح يتلاشى بسرعة. مفيد لأشياء مثل إظهار علامة حمراء متوهجة حيث تضرب المتفجرات.
- BulletHoleاختياري— Decal التي تظهر على السطح المصاب بشكل كامل وبعد 4 ثوانٍ، تتلاشى إلى الشفافية على مدى ثانية واحدة.
- Impactاختياري— ImageLabel كطفل مباشر لـ ImpactBillboard؛ يبدأ بشكل كامل، وينمو إلى الحجم الكامل لـ ImpactBillboard على مدى 0.1 ثانية، ثم ينكمش إلى نصف حجمه ويتلاشى إلى الشفافية الكاملة على مدى 0.1 ثانية.
المقذوفات المتفجرة
يمكن أن تتضمن المقذوفات كائن Explosion لإلحاق الضرر بشخصيات اللاعبين في منطقة حول نقطة التأثير. تشمل سلالات مجلد التكوين للسلاح:
- ExplodeOnImpactاختياري— قم بتعيينها إلى true إذا كنت تريد أن تنفجر الرصاص/المقذوفات للسلاح عند التأثير، وfalse خلاف ذلك. الافتراضي هو false.
- BlastDamageاختياري— الضرر الذي يلحق بالأشياء في مركز الانفجار. لاحظ أن الانفجار يلحق ضررًا أقل كلما ابتعدت الأشياء المصابة عن مركز الانفجار. الافتراضي هو 100.
سلاح الشحن
يجب شحن سلاح الشحن مثل بندقية السكة الحديد بين الطلقات قبل أن يتمكن من إطلاق النار مرة أخرى.
سلالات نموذج السلاح نموذج السلاح:
- Dischargingاختياري— Sound التي تُشغل أثناء تفريغ السلاح، على سبيل المثال إذا قمت بشحن السلاح جزئيًا فقط وأطلقت زر الإطلاق.
- ChargeGlowاختياري— BasePart الذي سيصبح أقل شفافية كلما زاد شحن السلاح، بحيث يكون غير شفاف تمامًا عند الشحن بنسبة 100%.
- ChargeCompleteParticlesاختياري— ParticleEmitter التي تصدر عندما ينتهي شحن السلاح. يمكن أن يكون هذا المصدر طفلًا لأي نموذج BasePart أو طفلًا لـ Attachment داخل BasePart.
- DischargeCompleteParticlesاختياري— ParticleEmitter التي تصدر عندما يتم تفريغ السلاح بالكامل. يمكن أن يكون هذا المصدر طفلًا لأي نموذج BasePart أو طفلًا لـ Attachment داخل BasePart.
- ChargingParticlesاختياري— ParticleEmitter التي تصدر أثناء شحن السلاح. يمكنك تضمين مصادر متعددة بهذا الاسم وكل منها سيصدر أثناء الشحن. يمكن أن يكون هذا المصدر طفلًا لأي نموذج BasePart أو طفلًا لـ Attachment داخل BasePart.
سلالات مجلد التكوين للسلاح:
- ChargeRate — معدل شحن السلاح. يجب تحديد هذه القيمة للإشارة إلى أن السلاح يستخدم الشحن.
- DischargeRateاختياري— معدل تفريغ السلاح. الافتراضي هو 0 مما يعني أن السلاح لن يتم تفريغه على الإطلاق.
- ChargePassivelyاختياري— قم بتعيينها إلى true إذا كنت تريد أن يشحن السلاح بشكل سلبي بحيث يطلق النار على الفور عند النقر، أو false إذا كنت تريد النقر/اللمس لشحن السلاح وإطلاقه بمجرد الوصول إلى الشحن الكامل. الافتراضي هو false.
- ChargingParticlesRatePerChargeاختياري— عدد الجزيئات التي ستصدر من جميع مصادر ChargingParticles مضروبة في الشحن الحالي للسلاح. الافتراضي هو 20، مما يعني أنه إذا كان شحن السلاح عند 10%، ستصدر كل مصدر ChargingParticles جزيئتين (20*0.1)، وإذا كان شحن السلاح عند 90%، ستصدر كل مصدر 18 جزيئة (20*0.9).
- FireDischargeاختياري— مقدار الشحن الذي سيفقده السلاح بعد إطلاق طلقة مشحونة بالكامل. الافتراضي هو 1.
- NumChargeCompleteParticlesاختياري— عدد الجزيئات التي ستصدرها مصدر ChargeCompleteParticles بمجرد أن يكون السلاح مشحونًا بالكامل. الافتراضي هو 25.
- NumDischargeCompleteParticlesاختياري— عدد الجزيئات التي ستصدرها مصدر DischargeCompleteParticles عندما يتم تفريغ السلاح بالكامل. الافتراضي هو 25.
سلاح القوس
يمكن أن يتضمن سلاح القوس مثل قوس ونشاب بناءً واقعيًا للوتر والأذرع، بالإضافة إلى سهم مرئي مثبت على الوتر.
بالإضافة إلى إضافة سلالات النموذج، تحتاج إلى تطبيق ما يلي:
- اجعل السلاح سلاحًا مشحونًا. على سبيل المثال، أضف ChargeRate المطلوبة داخل Configuration للسلاح التي تحدد مدى سرعة سحب الوتر. بالإضافة إلى ذلك، ضع في اعتبارك إضافة سلالات اختيارية إلى نموذج السلاح مثل صوت Charging لسحب الوتر/الأذرع.
تشمل سلالات نموذج السلاح نموذج السلاح:
- Arrowاختياري— BasePart للسهم الذي يظهر عندما يتم سحب القوس بالكامل. لاحظ أن هذا هو فقط للمظهر المرئي على القوس (السهم الذي يتم إطلاقه فعليًا سيكون ShotEffect كما هو موضح في تأثيرات المقذوف/الإصابة والأصوات).
- String1 — Attachment لنقطة المركز للوتر.
- Armsاختياري— Part التي تعمل فقط كمؤشر داخلي على أن أذرع القوس ستتحرك. قد تحتوي على الأطفال المباشرين التالية:
- LeftString0 — Attachment النقطة التي يتم فيها ربط الجانب الأيسر من الوتر بالقوس.
- RightString0 — Attachment النقطة التي يتم فيها ربط الجانب الأيمن من الوتر بالقوس.
- Mesh — SpecialMesh جزء من القوس الذي سينحني فعليًا عندما يتم سحب القوس. لاحظ أنه يجب عليك تحديد الكائنات الأربعة التالية من نوع Vector3Value لجعل هذا يتحرك.
واجهة المستخدم للأسلحة
يتفاعل نظام الأسلحة الأساسي مع هذا النظام لتحديث واجهة المستخدم بناءً على أشياء مثل انتشار السلاح، والمؤشرات عندما تتعرض للضرب أو تضرب الآخرين، وما إلى ذلك.
WeaponsSystemGui هو كائن ScreenGui في WeaponsSystem/Assets يتم ربطه بـ PlayerGui عند بدء اللعبة. يحتوي WeaponSystemGui على أربعة سلالات كما يلي:
ScalingElements هو Folder يحتوي على السلالات التالية:
- Crosshair — Frame يحتوي على UIAspectRatioConstraint وعلامات الصور لعناصر الأسفل واليسار واليمين والعلوي من علامة الهدف.
- HitMarker — Frame يحتوي على UIAspectRatioConstraint وعلامة صورة HitMarkerImage التي تظهر وتختفي عندما ينجح اللاعب في ضرب شخصية لاعب آخر.
LargeTouchscreen هو Frame يحتوي على أزرار AimButton وFireButton التي تظهر على الشاشات الكبيرة.
Scope هو Frame يحتوي على علامة صورة ScopeImage التي تظهر عند التكبير على سلاح مع تمكين HasScope (انظر هيكل السلاح).
SmallTouchscreen هو Frame يحتوي على أزرار AimButton وFireButton التي تظهر على الشاشات الصغيرة.
المؤشرات الاتجاهية
تستخدم المؤشرات الاتجاهية لإظهار اتجاه شيء ما حول علامة هدف اللاعب. على سبيل المثال، إذا أطلق شخص ما عليك النار، يمكن أن يظهر نصف دائرة حمراء حول علامة هدفك في الاتجاه الذي جاء منه الطلق. تشمل الأمثلة الأخرى مؤشرات لإظهار اتجاه خطوات الأقدام، أو إطلاق النار غير المباشر، أو حتى الأشياء البيئية مثل الصناديق.
لإنشاء مؤشر جديد، أضف Frame جديدة في WeaponsSystemGui/ScalingElements/DirectionalIndicators بالهيكل التالي:
- مؤشر (Frame)
- ImageLabel للمؤشر الاتجاهي. قد يتطلب تعديل دوران الصورة في الاستوديو ما لم تقم بتحميل الصورة بحيث تواجه الأسفل ولا يوجد حولها مساحة فارغة. يجب أن تحتوي علامة الصورة هذه أيضًا على UIAspectRatioConstraint الخاصة بها.
- Configuration تحتوي على خصائص اختيارية لضبط:
- DistanceLevelFromCenterاختياري— عدد مستويات المسافة من مركز الشاشة (كل مستوى مسافة حوالي 0.03 مقياس الشاشة). الافتراضي هو 6.
- FadeTimeاختياري— وقت تلاشي المؤشر بعد تفعيله ووقت TimeBeforeFade. الافتراضي هو 1.
- Nameاختياري— اسم المؤشر الاتجاهي كما تريد الإشارة إليه في الكود. الافتراضي هو اسم Frame العلوي للمؤشر.
- TimeBeforeFadeاختياري— عدد الثواني التي سيظهر فيها المؤشر قبل أن يتلاشى. الافتراضي هو 1.
- TransparencyBeforeFadeاختياري— شفافية المؤشر قبل أن يبدأ في التلاشي. الافتراضي هو 0.
- WidthLevelاختياري— عدد مستويات العرض من المركز (كل مستوى عرض حوالي 0.03 مقياس الشاشة). الافتراضي هو قيمة DistanceLevelFromCenter.
بمجرد إنشائها، يمكنك تفعيل مؤشر عبر الأمر التالي داخل WeaponsSystem/Libraries/WeaponsGui حيث indicatorName هو اسم السلسلة للمؤشر الذي تريد تفعيله وworldPos هو الموضع العالمي الذي يجب أن يشير إليه المؤشر الاتجاهي:
self.DirectionalIndicatorGuiManager:ActivateDirectionalIndicator(indicatorName, worldPos)لوحة الأضرار
تستخدم لوحة الأضرار لإظهار الأرقام فوق رأس الشخصية عندما تتعرض للضرر. ستظهر هذه فقط للاعب الذي ألحق الضرر بشخصية لاعب آخر، وليس للاعبين المتفرجين.
تتم معالجة لوحات الأضرار في WeaponsSystem/Libraries/DamageBillboardHandler ويمكن تفعيلها من أي كود على جانب العميل كما يلي، حيث damage هو مقدار الضرر الذي تم إلحاقه وadornmentPart هو الجزء الذي سيتم تزيين اللوحة عليه، مثل رأس الضحية:
DamageBillboardHandler:ShowDamageBillboard(damage, adornmentPart)كاميرا الكتف
كاميرا الكتف هي كاميرا من منظور الشخص الثالث تنظر فوق كتف اللاعب الأيمن. لتخصيص كاميرا الكتف، قم بتعديل المتغيرات تحت تعليق -- Configuration parameters (constants) في دالة ShoulderCamera.new() من WeaponsSystem/Libraries/ShoulderCamera. يمكنك تعديل أشياء مثل مجال الرؤية، والإزاحة من الشخصية، وسرعة المشي أثناء الركض أو التكبير، وما إلى ذلك.
الركض والتكبير
بشكل افتراضي، يضيف نظام الأسلحة القدرة على "الركض" بحيث يمكن للاعبين الركض عن طريق الضغط على مفتاح Shift، أو دفع العصا الديناميكية بالكامل للأعلى (الجوال)، أو دفع العصا اليسرى بالكامل للأعلى (وحدة التحكم). إذا كنت تريد تعطيل الركض، قم بتعيين قيمة SprintEnabled داخل WeaponsSystem/Configuration إلى false.
يقلل النظام أيضًا من سرعة اللاعب أثناء التصويب/التكبير، ولكن يمكنك تعطيل هذا السلوك عن طريق تعيين قيمة SlowZoomWalkEnabled داخل WeaponsSystem/Configuration إلى false.








