Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите со скриптом (Roblox Studio (Lua))

Хз кто Никто Ученик (83), открыт 1 неделю назад
Создаю 1 игру по тематике РП. И во время разработки я наткнулся на вопрос о "Как мне ограничить доступ к взаимодействиям с дверьми?" Проще говоря, у меня есть команда пограничников и гражданских, так вот у дверей, которые открываются и закрываются по нажатию клавиши, т.е. с помощью элемента ProximityPromt. И вот тут у меня и возник вопрос как ограничить доступ к дверям? Единственный выход для меня стал - написать скрипт (локальный), который будет определять в какой команде игрок. Поместил скрипт в StarterPlayerScripts и писал следующее:

 local Player = game.Players.LocalPlayer

if player.Team.Name == "Пограничники" then
ProximityPromt.Enable = true
else
ProximityPromt.Enable = false
end
Конечно путь на ProximityPromt у меня в output выводился, как не найден, поэтому Я писал:
 local knopka = game.Workspace.Border.Safety.KPP.Vorota1.Button:WaitForChild("ProximityPromt").Enable 
Пробовал я зациклить такой скрипт, но ничего не выходило и даже когда я делал reset за гражданских, я мог взаимодействовать. Я не очень опытный в скриптах и только пытаюсь, стараюсь, параллельно учусь скриптингу. Прошу вас помочь мне в данном вопросе, буду очень благодарен! Буду рад даже узнать другие способы защиты!
3 ответа
Тимофей Любушкин Знаток (320) 1 неделю назад
Сам помочь не смогу, но вот ответ нейросети: В Roblox Studio для ограничения доступа к элементам игры, таким как двери, обычно используется система разрешений. Это позволяет вам контролировать, какие игроки могут взаимодействовать с определенными объектами. Вот пример скрипта, который использует систему разрешений для управления доступом к двери:
 -- Предполагается, что у вас есть объект двери с именем 'Door' 
local Door = workspace.Border.Safety.KPP.Vorota1

-- Функция для проверки разрешения игрока
function canInteract(player)
-- Здесь вы можете добавить логику для определения, может ли игрок взаимодействовать с дверью
-- Например, проверка команды игрока
return player.Team.Name == "Пограничники"
end

-- Добавление разрешения на взаимодействие с дверью
Door.CanInteractWith:Connect(function(player)
return canInteract(player)
end)
В этом скрипте мы создаем функцию canInteract, которая принимает игрока и возвращает булево значение, указывающее, может ли этот игрок взаимодействовать с дверью. Затем мы подключаемся к событию CanInteractWith объекта двери, которое вызывается каждый раз, когда другой игрок пытается взаимодействовать с дверью. Если функция canInteract возвращает true, игроку разрешается взаимодействие, иначе нет.

Обратите внимание, что вам нужно будет подключить этот скрипт к каждому объекту, с которым вы хотите управлять доступом. Также важно убедиться, что у вас установлены правильные ссылки на объекты и команды в игре.
Хз кто НиктоУченик (83) 1 неделю назад
Такой функции в CanInteract не существует, поэтому скрипт не правильный, но спасибо большое за помощь!
Roman 345 Профи (608) 1 неделю назад
Я конечно тоже пока только начинающий, но скажу как думаю, эти строчки помести в скрипт двери с которой взаимодействуешь, а ещё обращай внимание на регистр букв, у тебя в коде local Player(с большой буквы) а дальше player с маленькой что уже ошибка и луа ее выдаст, в Output ошибки глянь, какие загугли какие тут скажи я попробую помогу.
Roman 345Профи (608) 1 неделю назад
.enable тоже лишний во 2 коде, т.к. он не даёт ничего
Хз кто Никто Ученик (83) Roman 345, На счёт твоего первого сообщения, то я этот код написал во время написания вопроса, поэтому мог написать с ошибками.
Хз кто НиктоУченик (83) 1 неделю назад
Да, я заметил, что скрипт не влияет ProximityPromt
Ванnik Знаток (352) 5 часов назад
Чел зайди на сервер фгота в дискорде и не парься, там хоть помогут.
Хз кто НиктоУченик (83) 4 часа назад
Когда я в последний раз там был, меня 2 раза обсирали
Ванnik Знаток (352) Хз кто Никто, Не спроста же
Похожие вопросы