Цель урока
Выдай ключ через атрибут игрока, открой дверь только после получения ключа.
Подготовка в Explorer
Part Key → ProximityPrompt → Script; Part LockedDoor → ProximityPrompt → Script
Пошаговая практика
- Создай объекты, соблюдая имена из схемы подготовки.
- Добавь обычный Script в указанный объект и вставь код.
- Нажми Play, открой Output и проверь поведение в одиночной игре.
- Проверь повторное взаимодействие и исправь ошибки в именах или структуре.
Пример Luau
-- Script внутри Key
local keyPrompt = script.Parent:WaitForChild("ProximityPrompt")
keyPrompt.Triggered:Connect(function(player)
player:SetAttribute("HasDungeonKey", true)
print(player.Name, "получил ключ")
end)
-- Другой Script внутри LockedDoor
local door = script.Parent
local doorPrompt = door:WaitForChild("ProximityPrompt")
doorPrompt.Triggered:Connect(function(player)
if not player:GetAttribute("HasDungeonKey") then
print("Сначала найди ключ")
return
end
door.Transparency = 0.7
door.CanCollide = false
end)Что должно получиться
Без ключа дверь остаётся закрытой. После взаимодействия с Key дверь становится проходимой.
Если не работает
Код состоит из ДВУХ Script: часть для ключа и часть для двери. Их нельзя целиком вставлять в один Script.
Задание со звёздочкой
Сделай дверь персональной: её видимость и столкновения должны изменяться только для игрока с ключом (потребуется клиентская логика).
Покажи преподавателю
Продемонстрируй механику в Play, объясни, какая часть кода запускает действие, и покажи Output без ошибок.
Материал перед публикацией нуждается в проверке в Roblox Studio и учебных скриншотах.
