Advertisement
Anukun_Lucifer

DoorScript

Oct 21st, 2024
386
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 3.61 KB | Gaming | 0 0
  1. -- นำเข้า TweenService สำหรับใช้สร้างการเคลื่อนไหว
  2. local TweenService = game:GetService("TweenService")
  3.  
  4. -- กำหนดตำแหน่งของ hinge (บานพับ) และ door (ประตู)
  5. local hinge = script.Parent.DoorFrame.Hinge
  6. local door = script.Parent.DoorPart
  7. local clickdoor = door.ClickDetector
  8.  
  9. -- กำหนดเสียงเปิดและปิดประตู
  10. local opensound = door.DoorOpening
  11. local closesound = door.DoorClose
  12.  
  13. -- สร้างตารางสำหรับเก็บค่าของการหมุนเมื่อเปิดประตู
  14. local goalOpen = {}
  15. goalOpen.CFrame = hinge.CFrame * CFrame.Angles(0, math.rad(-90), 0) -- หมุนประตู -90 องศาในแกน Y
  16.  
  17. -- สร้างตารางสำหรับเก็บค่าของการหมุนเมื่อปิดประตู
  18. local goalClose = {}
  19. goalClose.CFrame = hinge.CFrame * CFrame.Angles(0, 0, 0) -- หมุนประตูกลับเป็น 0 องศา
  20.  
  21. -- กำหนดข้อมูลการเคลื่อนไหวโดยให้ tween มีความยาว 1 วินาที
  22. local tweenInfo = TweenInfo.new(1)
  23.  
  24. -- สร้าง tween สำหรับการเปิดและปิดประตู
  25. local tweenOpen = TweenService:Create(hinge, tweenInfo, goalOpen)
  26. local tweenClose = TweenService:Create(hinge, tweenInfo, goalClose)
  27.  
  28. -- กำหนดตัวแปรสำหรับตรวจสอบสถานะของประตู (เปิดหรือปิด)
  29. local check = false
  30.  
  31. -- ฟังก์ชันที่จะถูกเรียกเมื่อผู้เล่นคลิกที่ ClickDetector ของประตู
  32. clickdoor.MouseClick:Connect(function()
  33.     if check == false then -- ถ้าประตูปิดอยู่
  34.         tweenOpen:Play() -- เล่น tween เปิดประตู
  35.         opensound:Play() -- เล่นเสียงเปิดประตู
  36.         task.wait(1) -- รอ 1 วินาที
  37.         check = true -- ตั้งสถานะว่าเปิดแล้ว
  38.     elseif check == true then -- ถ้าประตูเปิดอยู่
  39.         tweenClose:Play() -- เล่น tween ปิดประตู
  40.         task.wait(0.6) -- รอ 0.6 วินาที
  41.         closesound:Play() -- เล่นเสียงปิดประตู
  42.         task.wait(0.4) -- รออีก 0.4 วินาที
  43.         check = false -- ตั้งสถานะว่าปิดแล้ว
  44.     end
  45. end)
  46.  
  47. -- เพิ่ม Highlight สำหรับประตู
  48. local highlight = Instance.new("Highlight")
  49. highlight.FillColor = Color3.fromRGB(172, 172, 172) -- กำหนดสีพื้นเป็นสีเทา
  50. highlight.OutlineColor = Color3.fromRGB(0, 0, 0) -- กำหนดสีขอบเป็นสีดำ
  51. highlight.Parent = door -- กำหนด parent ให้เป็น door
  52. highlight.Enabled = false -- เริ่มต้นให้ปิด highlight ไว้ก่อน
  53.  
  54. -- เมื่อผู้เล่นนำเคอร์เซอร์ไปชี้ที่ประตู
  55. clickdoor.MouseHoverEnter:Connect(function()
  56.     highlight.Enabled = true -- เปิด highlight
  57. end)
  58.  
  59. -- เมื่อผู้เล่นนำเคอร์เซอร์ออกจากประตู
  60. clickdoor.MouseHoverLeave:Connect(function()
  61.     highlight.Enabled = false -- ปิด highlight
  62. end)
  63.  
Tags: Roblox
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement