Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local Players = game:GetService("Players")
- local PhysicsService = game:GetService("PhysicsService")
- local exitPart = script.Parent
- local wall = workspace:WaitForChild("Wall")
- local PASS_GROUP = "PassWallPlayer"
- local WALL_GROUP = "Wall"
- -- Создаём группы, если их ещё нет
- pcall(function()
- PhysicsService:RegisterCollisionGroup(PASS_GROUP)
- end)
- pcall(function()
- PhysicsService:RegisterCollisionGroup(WALL_GROUP)
- end)
- -- Стена сталкивается со всеми, кроме игроков в PASS_GROUP
- PhysicsService:CollisionGroupSetCollidable(WALL_GROUP, PASS_GROUP, false)
- PhysicsService:CollisionGroupSetCollidable(WALL_GROUP, "Default", true)
- wall.CollisionGroup = WALL_GROUP
- local debounce = {}
- local function setCharacterGroup(character, groupName)
- for _, obj in ipairs(character:GetDescendants()) do
- if obj:IsA("BasePart") then
- obj.CollisionGroup = groupName
- end
- end
- end
- exitPart.Touched:Connect(function(hit)
- local character = hit:FindFirstAncestorOfClass("Model")
- if not character then return end
- local player = Players:GetPlayerFromCharacter(character)
- if not player then return end
- if debounce[player] then return end
- debounce[player] = true
- setCharacterGroup(character, PASS_GROUP)
- task.wait(1) -- время, чтобы игрок успел пройти сквозь Wall
- setCharacterGroup(character, "Default")
- task.wait(0.2)
- debounce[player] = nil
- end)
Advertisement
Add Comment
Please, Sign In to add comment