Hasli4

Untitled

May 2nd, 2026
47
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.46 KB | None | 0 0
  1. local Players = game:GetService("Players")
  2. local PhysicsService = game:GetService("PhysicsService")
  3.  
  4. local exitPart = script.Parent
  5. local wall = workspace:WaitForChild("Wall")
  6.  
  7. local PASS_GROUP = "PassWallPlayer"
  8. local WALL_GROUP = "Wall"
  9.  
  10. -- Создаём группы, если их ещё нет
  11. pcall(function()
  12. PhysicsService:RegisterCollisionGroup(PASS_GROUP)
  13. end)
  14.  
  15. pcall(function()
  16. PhysicsService:RegisterCollisionGroup(WALL_GROUP)
  17. end)
  18.  
  19. -- Стена сталкивается со всеми, кроме игроков в PASS_GROUP
  20. PhysicsService:CollisionGroupSetCollidable(WALL_GROUP, PASS_GROUP, false)
  21. PhysicsService:CollisionGroupSetCollidable(WALL_GROUP, "Default", true)
  22.  
  23. wall.CollisionGroup = WALL_GROUP
  24.  
  25. local debounce = {}
  26.  
  27. local function setCharacterGroup(character, groupName)
  28. for _, obj in ipairs(character:GetDescendants()) do
  29. if obj:IsA("BasePart") then
  30. obj.CollisionGroup = groupName
  31. end
  32. end
  33. end
  34.  
  35. exitPart.Touched:Connect(function(hit)
  36. local character = hit:FindFirstAncestorOfClass("Model")
  37. if not character then return end
  38.  
  39. local player = Players:GetPlayerFromCharacter(character)
  40. if not player then return end
  41.  
  42. if debounce[player] then return end
  43. debounce[player] = true
  44.  
  45. setCharacterGroup(character, PASS_GROUP)
  46.  
  47. task.wait(1) -- время, чтобы игрок успел пройти сквозь Wall
  48.  
  49. setCharacterGroup(character, "Default")
  50.  
  51. task.wait(0.2)
  52. debounce[player] = nil
  53. end)
Advertisement
Add Comment
Please, Sign In to add comment