Заморозка и разморозка персонажа
Одна платформа останавливает героя, другая возвращает движение.
При заморозке герой не может двигаться и прыгать. Разморозка возвращает прежние настройки.
1. Подготовьте объект
Где разместить: Обычный Script в ServerScriptService
Создайте в Workspace два Part: FreezePad и UnfreezePad. Обоим задайте Anchored = true.
Добавьте обычный Script в ServerScriptService.
Нажмите Play и наступите на площадки.
2. Вставьте код
local freeze = workspace:WaitForChild("FreezePad")
local unfreeze = workspace:WaitForChild("UnfreezePad")
local debounce = {}
local function apply(hit, frozen)
local character = hit:FindFirstAncestorOfClass("Model")
local humanoid = character and character:FindFirstChildOfClass("Humanoid")
if not humanoid or humanoid.Health <= 0 or debounce[humanoid] then return end
debounce[humanoid] = true
if humanoid:GetAttribute("IgroFreezeStored") == nil then
humanoid:SetAttribute("IgroFreezeStored", true)
humanoid:SetAttribute("IgroOldWalkSpeed", humanoid.WalkSpeed)
humanoid:SetAttribute("IgroOldUseJumpPower", humanoid.UseJumpPower)
humanoid:SetAttribute("IgroOldJumpPower", humanoid.JumpPower)
humanoid:SetAttribute("IgroOldJumpHeight", humanoid.JumpHeight)
end
if frozen then
humanoid.WalkSpeed = 0
humanoid.JumpPower = 0
humanoid.JumpHeight = 0
else
humanoid.WalkSpeed = humanoid:GetAttribute("IgroOldWalkSpeed") or 16
humanoid.UseJumpPower = humanoid:GetAttribute("IgroOldUseJumpPower")
humanoid.JumpPower = humanoid:GetAttribute("IgroOldJumpPower") or 50
humanoid.JumpHeight = humanoid:GetAttribute("IgroOldJumpHeight") or 7.2
humanoid:SetAttribute("IgroFreezeStored", nil)
end
task.delay(0.6, function() debounce[humanoid] = nil end)
end
freeze.Touched:Connect(function(hit) apply(hit, true) end)
unfreeze.Touched:Connect(function(hit) apply(hit, false) end)
3. Проверьте в игре
Нажмите Play в Roblox Studio и проверьте действие механики. Если механика не работает, откройте окно Output и проверьте тип скрипта, его расположение и названия объектов.
Когда проверите механику в Roblox Studio, отметьте практику как выполненную. Отметка хранится только в этом браузере, не в личном кабинете.
Добавляйте механики по одной и проверяйте окно Output. Не создавайте несколько одинаковых систем монет или интерфейсов; скрипты, меняющие WalkSpeed, прыжок или освещение, могут влиять друг на друга.
Измените цвета площадок: голубой — заморозка, красный — оттаивание.
Добавьте третью площадку с медленной скоростью.
Придумайте ледяную мини-игру с зонами остановки.
4. Проверьте себя
Какие параметры движения важно вернуть при разморозке?
Если рядом работает другой скрипт скорости/прыжка, они могут мешать друг другу. На время урока отключите его.