Advertisement
Anukun_Lucifer

DoorScript V.2

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