Другие языки программирования и технологии

Блок Бессметрия Roblox Studio

Здравия всем
Столкнулся с проблемой, при создании режима в роблокс студио (lua scripts, соответственно). В моем режиме есть лобби, и игрок в нем может получать урон от других, следовательно, лобби становится не безопасным для людей, и закупится предметами, восстановить здоровье и тд нельзя. Нужен скрипт для part, который будет давать игроку бессмертие при касании этого парта. Или же, скрипт, который не будет позволять использовать оружие игроку, пока он касается этого парта. Пробовал разные варианты, не работало. Буду рад, если кто-то поможет.
Заранее спасибо
Здравствуйте! Для решения вашей проблемы я предложу два скрипта: первый делает игрока "бессмертным" при касании определенного объекта, второй препятствует использованию оружия во время касания.

1. **Бессмертие при касании**:
```lua
local part = game.Workspace.NameOfYourPart -- замените NameOfYourPart на название вашего парта

part.Touched:Connect(function(hit)
local character = hit.Parent
local humanoid = character:FindFirstChild("Humanoid")

if humanoid then
humanoid.MaxHealth = math.huge
humanoid.Health = math.huge
end
end)

part.TouchEnded:Connect(function(hit)
local character = hit.Parent
local humanoid = character:FindFirstChild("Humanoid")

if humanoid then
humanoid.MaxHealth = 100 -- здесь можно установить желаемое максимальное значение здоровья
humanoid.Health = 100 -- здесь можно установить желаемое значение здоровья
end
end)
```

2. **Запрет на использование оружия при касании**:
Предположим, ваше оружие активируется какой-то кнопкой или действием. В таком случае вам нужно будет добавить переменную, которая будет следить за касанием игрока:

```lua
local part = game.Workspace.NameOfYourPart -- замените NameOfYourPart на название вашего парта
local playerTouching = {}

part.Touched:Connect(function(hit)
local character = hit.Parent
local player = game.Players:GetPlayerFromCharacter(character)

if player then
playerTouching[player.UserId] = true
end
end)

part.TouchEnded:Connect(function(hit)
local character = hit.Parent
local player = game.Players:GetPlayerFromCharacter(character)

if player then
playerTouching[player.UserId] = false
end
end)
```

Теперь, когда игрок пытается активировать оружие, вы можете проверить, касается ли он парта:

```lua
local player = game.Players.LocalPlayer

if not playerTouching[player.UserId] then
-- код активации оружия
end
```

Убедитесь, что эти скрипты корректно присоединены к вашим объектам и правильно взаимодействуют с вашей игровой логикой. Если возникнут проблемы, не стесняйтесь задать дополнительные вопросы!
Ив
Иван
14 368
Лучший ответ
Марлен Досумов Спасибо огромное вам! Если возникнут вопросы, обращусь)
Вообщем, в парт добавь скрипт, назови adder, в него вставь

local health = 0
local HelpData = 0
script.Parent.Touched:Connect(function(hit)
local humanoid = hit.Parent:FondFirstChild("Humanoid")
if humanoid ~= nil then
health = humanoid.Health
while wait() do
humanoid.Health = health
if humanoid ~= not(nil) then
break
end
end
end)