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

Скрипт роблокс студио

Кель Талас Ученик (160), открыт 4 дня назад
мне нужно,чтобы каждая стена лабиринта (название у всех них одинаковое - Part) наносила урон при касании
помогите написать скрипт пожалуйста
я пытался через написать так,чтобы каждая стена так наносила урон,но наносит только та стена,в которую записан скрипт
вот если что тот код ччерез который пытался реализовать идею:
local Part= script.Parent
Part.Touched:Connect(function(hit)
local humanoid = hit.Parent:FindFirstChildWhichIsA("Humanoid")
if humanoid then
humanoid.Health = humanoid.Health -1
end
end)
3 ответа
ewe 2e¶ CoЛнЫшКоcBeTиТоЧеНЬяРкО* Высший разум (355731) 4 дня назад
Ну тут либо каждую стену, которая наносит урон, оформлять в каждую скрипт, либо сделать одну стену кривой формы в виде одно объекта и в него впихнуть скрипт, либо откуда-то скрипт будет проверять координаты челдобрека и стен, и если этот хуманоид будет слишком близко к какой-то стене, то уменьшать его здоровьице.
Алексей СмелянскийМыслитель (6940) 3 дня назад
Бесполезный ответ. С помощью скрипта можно добавить один и тот же скрипт во все объекты, которые одинаково наззваны.
ewe 2e¶ CoЛнЫшКоcBeTиТоЧеНЬяРкО* Высший разум (355731) Алексей Смелянский, помогите автору вопроса, ответьте более правильнее.
S.H.I. Оракул (69933) 4 дня назад
 local Workspace = game:GetService("Workspace") 

-- Функция для обработки касания
local function onTouched(hit)
local humanoid = hit.Parent:FindFirstChildWhichIsA("Humanoid")
if humanoid then
humanoid.Health -= 1
end
end

-- Поиск всех существующих частей с именем "Part"
for _, part in ipairs(Workspace:GetDescendants()) do
if part:IsA("BasePart") and part.Name == "Part" then
part.Touched:Connect(onTouched)
end
end

-- На случай, если новые части будут добавлены позже
Workspace.DescendantAdded:Connect(function(descendant)
if descendant:IsA("BasePart") and descendant.Name == "Part" then
descendant.Touched:Connect(onTouched)
end
end)
Алексей Смелянский Мыслитель (6940) 3 дня назад
Для этого в workspace создайте скрипт. Внутри этого скрипта создайте ещё один скрипт, и назовите его Damage. В скрипт damage вставьте:
 script.Parent.Touched:Connect(function(hit)
local humanoid = hit.Parent:FindFirstChild("Humanoid")
if humanoid ~= nil then
script.Parent.CanTouch = false
humanoid.Health -= 1
wait(0.1) --задержка между уроном
script.Parent.CanTouch = true
end
end)
А в скрипт, в котором находится скрипт Damage вставьте:
 local path = путь до папки/модели, в которой хранятся стены лабиринта
local code = script:WaitForChild("Damage")
local part = path:FindFirstChild("Part")
while part ~= nil do
part = path:FindFirstChild("Part")
part.Name = "Part1"
code:Clone().Parent = part
end
Похожие вопросы