Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- นำเข้า TweenService สำหรับใช้สร้างการเคลื่อนไหว
- local TweenService = game:GetService("TweenService")
- -- กำหนดตำแหน่งของ hinge (บานพับ) และ door (ประตู)
- local hinge = script.Parent.DoorFrame.Hinge
- local door = script.Parent.DoorPart
- local clickdoor = door.ClickDetector
- -- กำหนดเสียงเปิดและปิดประตู
- local opensound = door.DoorOpening
- local closesound = door.DoorClose
- -- สร้างตารางสำหรับเก็บค่าของการหมุนเมื่อเปิดประตู
- local goalOpen = {}
- goalOpen.CFrame = hinge.CFrame * CFrame.Angles(0, math.rad(-90), 0) -- หมุนประตู -90 องศาในแกน Y
- -- สร้างตารางสำหรับเก็บค่าของการหมุนเมื่อปิดประตู
- local goalClose = {}
- goalClose.CFrame = hinge.CFrame * CFrame.Angles(0, 0, 0) -- หมุนประตูกลับเป็น 0 องศา
- -- กำหนดข้อมูลการเคลื่อนไหวโดยให้ tween มีความยาว 1 วินาที
- local tweenInfo = TweenInfo.new(1)
- -- สร้าง tween สำหรับการเปิดและปิดประตู
- local tweenOpen = TweenService:Create(hinge, tweenInfo, goalOpen)
- local tweenClose = TweenService:Create(hinge, tweenInfo, goalClose)
- -- กำหนดตัวแปรสำหรับตรวจสอบสถานะของประตู (เปิดหรือปิด)
- local check = false
- -- ฟังก์ชันที่จะถูกเรียกเมื่อผู้เล่นคลิกที่ ClickDetector ของประตู
- clickdoor.MouseClick:Connect(function()
- if check == false then -- ถ้าประตูปิดอยู่
- tweenOpen:Play() -- เล่น tween เปิดประตู
- opensound:Play() -- เล่นเสียงเปิดประตู
- task.wait(1) -- รอ 1 วินาที
- check = true -- ตั้งสถานะว่าเปิดแล้ว
- elseif check == true then -- ถ้าประตูเปิดอยู่
- tweenClose:Play() -- เล่น tween ปิดประตู
- task.wait(0.6) -- รอ 0.6 วินาที
- closesound:Play() -- เล่นเสียงปิดประตู
- task.wait(0.4) -- รออีก 0.4 วินาที
- check = false -- ตั้งสถานะว่าปิดแล้ว
- end
- end)
- -- เพิ่ม Highlight สำหรับประตู
- local highlight = Instance.new("Highlight")
- highlight.FillColor = Color3.fromRGB(172, 172, 172) -- กำหนดสีพื้นเป็นสีเทา
- highlight.OutlineColor = Color3.fromRGB(0, 0, 0) -- กำหนดสีขอบเป็นสีดำ
- highlight.Parent = door -- กำหนด parent ให้เป็น door
- highlight.Enabled = false -- เริ่มต้นให้ปิด highlight ไว้ก่อน
- -- เมื่อผู้เล่นนำเคอร์เซอร์ไปชี้ที่ประตู
- clickdoor.MouseHoverEnter:Connect(function()
- highlight.Enabled = true -- เปิด highlight
- end)
- -- เมื่อผู้เล่นนำเคอร์เซอร์ออกจากประตู
- clickdoor.MouseHoverLeave:Connect(function()
- highlight.Enabled = false -- ปิด highlight
- end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement