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