-- Функция для настройки игрока
local function setupPlayer(player)
-- Установка атрибута, чтобы отключить возможность получения урона
player:SetAttribute("CanBeDamaged", false)
-- Подключаем событие, когда персонаж игрока появляется
player.CharacterAdded:Connect(function(character)
-- Отключаем взаимодействие с другими игроками
character:WaitForChild("HumanoidRootPart").CanCollide = false
-- Дополнительно можно отключить коллизии для всех частей персонажа
for _, part in ipairs(character:GetChildren()) do
if part:IsA("BasePart") then
part.CanCollide = false
end
end
end)
-- Если у игрока уже есть персонаж, настраиваем его сразу
if player.Character then
setupPlayer(player)
end
end
-- Подключаемся к событию добавления игрока
game.Players.PlayerAdded:Connect(setupPlayer)
-- Настраиваем уже присутствующих игроков (например, при перезапуске сервера)
for _, player in ipairs(game.Players:GetPlayers()) do
setupPlayer(player)
end
Этот скрипт делает следующее:
Подключается к событию PlayerAdded, которое срабатывает каждый раз, когда новый игрок присоединяется к игре.
Для каждого нового игрока устанавливает атрибут CanBeDamaged в false, что делает игрока неуязвимым для атак.
Также устанавливает свойство CanCollide персонажа игрока в false, что отключает физическое взаимодействие с другими игроками и объектами.
Чтобы применить этот скрипт, вставьте его в объект ServerScriptService в вашем Roblox Studio проекте.
Обратите внимание, что этот скрипт будет применяться только к новым игрокам, присоединяющимся к игре. Если вы хотите сделать существующих игроков неуязвимыми, вы можете пройти по списку всех игроков и установить CanBeDamaged в false для каждого из них.
Чтобы вернуть возможность взаимодействия и урона игроку, просто измените значения CanBeDamaged и CanCollide на true.