← Все практические скрипты
Персонаж · Уверенный · 20 мин

Невидимость: исчезнуть, появиться, вернуть видимость

Три платформы меняют видимость персонажа и позволяют строить стелс-уровни.

Иллюстрация: Невидимость: исчезнуть, появиться, вернуть видимость
🎯 Что получится

Персонаж становится невидимым, полупрозрачным или снова видимым. Эффект видят все игроки.

1. Подготовьте объект

Где разместить: Обычный Script в ServerScriptService

Создайте в Workspace три Part: InvisiblePad, HalfVisiblePad и VisiblePad; установите Anchored = true.
Создайте обычный Script в ServerScriptService и вставьте код.
Нажмите Play и последовательно наступите на площадки.

2. Вставьте код

Script
local pads = {InvisiblePad = 1, HalfVisiblePad = 0.5, VisiblePad = 0}
local busy = {}
local function setVisibility(character, value)
    for _, obj in ipairs(character:GetDescendants()) do
        if obj:IsA("BasePart") and obj.Name ~= "HumanoidRootPart" then
            if obj:GetAttribute("IgroOriginalTransparency") == nil then
                obj:SetAttribute("IgroOriginalTransparency", obj.Transparency)
            end
            local original = obj:GetAttribute("IgroOriginalTransparency")
            obj.Transparency = value == 0 and original or math.max(original, value)
        elseif obj:IsA("Decal") then
            if obj:GetAttribute("IgroOriginalTransparency") == nil then
                obj:SetAttribute("IgroOriginalTransparency", obj.Transparency)
            end
            local original = obj:GetAttribute("IgroOriginalTransparency")
            obj.Transparency = value == 0 and original or math.max(original, value)
        end
    end
end
for padName, transparency in pairs(pads) do
    local pad = workspace:WaitForChild(padName)
    pad.Touched:Connect(function(hit)
        local character = hit:FindFirstAncestorOfClass("Model")
        local humanoid = character and character:FindFirstChildOfClass("Humanoid")
        if not humanoid or humanoid.Health <= 0 or busy[character] then return end
        busy[character] = true
        setVisibility(character, transparency)
        task.delay(0.7, function() busy[character] = nil end)
    end)
end

3. Проверьте в игре

Нажмите Play в Roblox Studio и проверьте действие механики. Если механика не работает, откройте окно Output и проверьте тип скрипта, его расположение и названия объектов.

Ваш прогресс

Когда проверите механику в Roblox Studio, отметьте практику как выполненную. Отметка хранится только в этом браузере, не в личном кабинете.

Если объединяете несколько скриптов

Добавляйте механики по одной и проверяйте окно Output. Не создавайте несколько одинаковых систем монет или интерфейсов; скрипты, меняющие WalkSpeed, прыжок или освещение, могут влиять друг на друга.

⭐ Три шага к собственной игре
1. Повторите и измените

Замените 0.5 на 0.25 — насколько заметен герой?

2. Улучшите

Добавьте подсвеченные названия для трёх платформ.

3. Придумайте своё

Сделайте лабиринт с потайным проходом, который открывается «невидимкам».

4. Проверьте себя

Что нужно вернуть после окончания невидимости?

🛠 Если не работает

Нужны именно три детали с указанными именами. Проверьте CanTouch и Output. Аксессуары могут содержать дополнительные эффекты.