Мне нужна помощь, мой скрипт не работает, и в выводе ничего нет.
`script.Parent.ClickDetector.MouseClick:Connect(function(Player)
Player:WaitForChild("leaderstats"):WaitForChild("Power").Value -= script.Parent:GetAttribute("Damage")
end)`
Я ожидал, что повреждение модели уменьшит силу игрока.
1 ответ
Этот код должен работать
local Part = script.Parent
local ClickD = Part:WaitForChild("ClickDetector")
local function onClick(Player)
local leaderstats = Player:FindFirstChild("leaderstats")
if leaderstats then
local Power = leaderstats:FindFirstChild("Power")
local Damage = Part:GetAttribute("Damage")
if Power and Damage then
Power.Value -= Damage
end
end
end
ClickD.MouseClick:Connect(onClick)
Использование WaitForChild() для экземпляров, которые уже загружены, может быть очень плохой привычкой. Замените их на FindFirstChild(), чтобы предотвратить возникновение ошибок, если указанный экземпляр по какой-то причине не существует, возвращая ноль. Еще один совет — использовать обработчики событий вместо анонимных функций , поскольку при необходимости обработчики событий можно вызвать снова в сценарии позже.