تعتبر الفخاخ التي تقلل من صحة اللاعبين عنصرًا ممتعًا في طريقة اللعب يمكن برمجته باستخدام العبارات الشرطية. مارس استخدام العبارات الشرطية من خلال إنشاء جزء يحدد صحة اللاعب إلى صفر عند لمسه.
إعداد الفخ
تعمل الفخاخ بشكل استثنائي في الألعاب التي تحتوي على تحديات تعتمد على الحركة، مثل الألعاب المنصات. ستبدأ هذه الخطوات بإعداد المتغيرات والدوال اللازمة. قم بما تستطيع دون النظر إلى صناديق الكود أولاً.
أنشئ جزءًا للفخ وسمه. أدخل سكريبت في الجزء.
في السكريبت، أضف تعليقًا وصفيًا ثم استخدم متغيرًا للإشارة إلى والد السكريبت.
-- إذا لمس لاعب هذا الجزء، حدد صحته إلى 0local trapPart = script.Parentأنشئ دالة باسم onTouch() مع معلمة باسم otherPart.
-- إذا لمس لاعب هذا الجزء، حدد صحته إلى 0local trapPart = script.Parentlocal function onTouch(otherPart)endاربط الدالة بحدث Touched للجزء الفخ ليتم تشغيلها كلما لمست شيء ما الجزء.
local trapPart = script.Parentlocal function onTouch(otherPart)endtrapPart.Touched:Connect(onTouch)
تحقق من لمسة اللاعب
تذكر، أن المعلمة otherPart تسجل أي شيء يلمس الجزء الفخ، والذي قد يكون جزءًا من لاعب أو مجرد قاعدة.
لضمان أن الفخ سيدمر اللاعبين فقط ولن يدمر عناصر الزخرفة العشوائية، استخدم عبارة if/then للتحقق مما إذا كان ما في otherPart يحتوي على كائن Humanoid.
ابحث عن كائن محدد
يمكن استخدام الدالة FindFirstChildWhichIsA() للبحث عن أنواع كائنات محددة، وهو أمر مفيد لأننا نبحث عن كائن من نوع Humanoid. من المحتمل أن يلمس اللاعب الفخ بجزء فقط من شخصيته، لذا يجب إعداد متغير للعثور على والد الجزء الملموس والبحث فيه عن Humanoid.
في onTouch(), اكتب local character = otherPart.Parent.
local trapPart = script.Parentlocal function onTouch(otherPart)-- يجد كائن والد otherPartlocal character = otherPart.ParentendtrapPart.Touched:Connect(onTouch)تحقق مما إذا كان character يحتوي على Humanoid بكتابة:
local humanoid = character:FindFirstChildWhichIsA("Humanoid")
local trapPart = script.Parentlocal function onTouch(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")endtrapPart.Touched:Connect(onTouch)
تحقق باستخدام عبارة if
إذا تم العثور على Humanoid، فقم بتحديد صحة Humanoid إلى صفر.
استخدم عبارة if للتحقق مما إذا كان قد تم تعيين Humanoid بنجاح إلى local humanoid.
local trapPart = script.Parentlocal function onTouch(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")-- يقيم ما إذا كان قد تم العثور على Humanoidif humanoid thenendendtrapPart.Touched:Connect(onTouch)أضف عبارة طباعة وتحقق من الكود حتى الآن.
local trapPart = script.Parentlocal function onTouch(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")-- يقيم ما إذا كان قد تم العثور على Humanoidif humanoid thenprint("تم العثور على Humanoid")endendtrapPart.Touched:Connect(onTouch)قم بتشغيل الكود وتحقق من أنك تستطيع رؤية الإخراج كلما لمس لاعب الجزء.
تغيير صحة اللاعب
إذا كانت العبارة صحيحة، يمكنك استخدام نفس متغير humanoid لتحديد صحة اللاعب إلى 0.
بين then و end, اكتب humanoid.Health = 0.
سكريبت مكتملlocal trapPart = script.Parentlocal function onTouch(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")-- يقيم ما إذا كان قد تم العثور على Humanoidif humanoid thenprint("تم العثور على Humanoid")humanoid.Health = 0endendtrapPart.Touched:Connect(onTouch)اختبر الفخ.
ملخص
استخدم هذا الجزء من الفخ العبارات الشرطية لاكتشاف أجزاء Humanoid وتحديد صحة Humanoid إلى صفر. هذا السكريبت هو تحسين على السكريبت السابق للفخ، الذي دمر أي كائن يلمسه بغض النظر عما كان.
ومع ذلك، لا يزال لديه بعض العيوب. الكائنات Humanoid ليست موجودة فقط في اللاعبين. توجد الكائنات Humanoid أيضًا في الشخصيات غير القابلة للعب. السكريبت جيد فقط في تحديد صحة اللاعب إلى صفر. يمكنك التجربة بطرح كمية صغيرة من الصحة، ولكن من المحتمل أن يتم طرح الصحة بشكل أسرع مما هو مرغوب. تقدم الدروس اللاحقة تحسينات إضافية لمنح تحكم أكبر في مقدار الصحة التي يتم طرحها من اللاعبين.