คำสั่ง if สามารถมีข้อกำหนดหลายข้อที่ต้องเป็นจริงก่อนที่จะรันโค้ด คีย์เวิร์ด and ช่วยให้คุณรวมคำสั่งต่างๆ เข้าด้วยกัน โค้ดต่อไปนี้จะประเมินก่อนว่าสองบวกสองเท่ากับหกหรือไม่ และจากนั้นจะตรวจสอบว่ bfour ไม่เท่ากับหก หากทั้งสองคำสั่งเป็นจริง โค้ดจะทำงาน
-- จะไม่ทำงาน
if 2 + 2 == 6 and 4 ~= 6 then
print("ทั้งสองคำสั่งเป็นจริง")
end
-- จะทำงาน
if 4 + 2 == 6 and 4 ~= 6 then
print("ทั้งสองคำสั่งเป็นจริง")
endสร้างพาวเวอร์อัพ
พาวเวอร์อัพคือไอเท็มในเกมที่มอบความสามารถพิเศษให้กับผู้เล่น เช่น การบิน, การมองไม่เห็น หรือความเร็ว พาวเวอร์อัพนี้จะเพิ่มความเร็วในการเดินของผู้เล่นทุกครั้งที่พาวเวอร์อัพถูกสัมผัส การใช้การเพิ่มความเร็วอย่างต่อเนื่องอาจทำให้ผู้เล่นเร็วเกินไป ดังนั้นจึงจะใช้ and เพื่อควบคุมขีดจำกัดความเร็วในการเดินสูงสุด
ตั้งค่าพาวเวอร์อัพ
ใช้โค้ดนี้กับชิ้นส่วนง่ายๆ หรือโมเดล เช่น คริสตัล, เหรียญ หรือบอลนีออนเรืองแสง
สร้างชิ้นส่วนใหม่ชื่อ Powerup และแทรกสคริปต์ชื่อ WalkSpeedManager
ประกาศตัวแปรชื่อ speedBoost และกำหนดให้เป็นวัตถุพ่อแม่ของสคริปต์
-- ให้การเพิ่มความเร็วชั่วคราวเมื่อสัมผัสlocal speedBoost = script.Parentตั้งค่าฟังก์ชันชื่อ onTouch และเชื่อมต่อกับเหตุการณ์ Touched ของวัตถุพ่อแม่ จากนั้นทดสอบการเล่นและตรวจสอบงานของคุณ
local speedBoost = script.Parentlocal function onTouch(otherPart)print("บางอย่างสัมผัส speedBoost")endspeedBoost.Touched:Connect(onTouch)คุณสมบัติ WalkSpeed จะพบได้ในวัตถุ Humanoid ใช้รูปแบบเดียวกันที่ใช้เมื่อสร้างชิ้นส่วนกับดักและสร้างเงื่อนไขที่ตรวจสอบว่าวัตถุเป็น Humanoid
มองหาชิ้นส่วน Humanoidlocal function onTouch(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")if humanoid thenprint("พบ Humanoid")endend
เพิ่มความเร็วให้ผู้เล่น
การเพิ่มความเร็วจะทำให้ตัวละครเดินเร็วขึ้นทุกครั้งที่สัมผัสการเพิ่มความเร็ว ซึ่งจะทำให้เร็วมากๆ คำว่า and จะทำให้แน่ใจว่าผู้เล่นไม่สามารถไปเร็วเกินไปโดยการเปิดใช้งานการเพิ่มความเร็วเฉพาะเมื่อผู้เล่นอยู่ภายใต้ความเร็วที่กำหนด
หากพบ Humanoid ให้ใช้ค่าปัจจุบันของ WalkSpeed และเพิ่ม 10 ให้กับมัน ทดสอบการเล่นและตัวละครของคุณจะเร็วขึ้นทุกครั้งที่สัมผัสการเพิ่มความเร็ว
เพิ่ม WalkSpeed ปัจจุบันlocal function onTouch(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")if humanoid thenhumanoid.WalkSpeed += 10endendspeedBoost.Touched:Connect(onTouch)ในคำสั่ง if ใช้คีย์เวิร์ด and เพื่อเพิ่มเงื่อนไขที่สองว่าค่าปัจจุบันของ WalkSpeed น้อยกว่าหรือเท่ากับ 50 หลังจากเพิ่มการเพิ่มความเร็ว ค่าความเร็วสูงสุดของ WalkSpeed จะเป็น 60
ตรวจสอบว่า WalkSpeed ปัจจุบันน้อยกว่าหรือเท่ากับ 50if humanoid and humanoid.WalkSpeed <= 50 thenhumanoid.WalkSpeed += 10end
ปรับแต่งการเพิ่มความเร็ว
onTouch จะถูกเรียกทุกครั้งที่สัมผัสการเพิ่มความเร็ว ทุกการก้าวหรือการกระเด้งเล็กน้อยจะกระตุ้นเหตุการณ์ Touched และเรียกฟังก์ชันที่เชื่อมต่อ คุณสมบัติของชิ้นส่วน CanTouch สามารถป้องกันไม่ให้เหตุการณ์ Touched ถูกเรียก ใช้ประโยชน์จาก CanTouch และปิดการเพิ่มความเร็วเป็นเวลาหนึ่งวินาทีทุกครั้งที่มันถูกเปิดใช้งาน
หลังจากเพิ่มความเร็วแล้ว ให้ตั้งค่าคุณสมบัติ CanTouch ของชิ้นส่วนเป็น false ทดสอบการเล่นและตรวจสอบให้แน่ใจว่าการเพิ่มความเร็วใช้เพียงครั้งเดียว
ปิดการเพิ่มความเร็วlocal speedBoost = script.Parentlocal function onTouch(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")if humanoid and humanoid.WalkSpeed <= 50 thenhumanoid.WalkSpeed += 10speedBoost.CanTouch = falseendendspeedBoost.Touched:Connect(onTouch)ใช้ task.wait(1) เพื่อหยุดสคริปต์เป็นเวลาหนึ่งวินาที จากนั้นตั้งค่า CanTouch เป็น true ทดสอบการเล่นและตรวจสอบให้แน่ใจว่าการเพิ่มความเร็วสามารถนำกลับมาใช้ใหม่ได้หลังจากหนึ่งวินาที
สคริปต์เสร็จสิ้นlocal speedBoost = script.Parentlocal function onTouch(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")if humanoid and humanoid.WalkSpeed <= 50 thenhumanoid.WalkSpeed += 10speedBoost.CanTouch = falsetask.wait(1)speedBoost.CanTouch = trueendendspeedBoost.Touched:Connect(onTouch)ทดลองเล่นกับค่าต่างๆ ในสคริปต์ที่เสร็จสิ้น WalkSpeed สามารถสูงถึง 100 ค่าปกติของ WalkSpeed คือ 16
สรุป
คีย์เวิร์ด and สามารถใช้เพื่อกำหนดเงื่อนไขหลายประการก่อนที่จะรันโค้ด เช่น ค่าต้องมากกว่า 0 และน้อยกว่า 100 หรือหากมี Humanoid และ WalkSpeed ของมันน้อยกว่าหรือเท่ากับ 50