Мне нужна помощь, мой скрипт не работает, и в выводе ничего нет.

      `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(), чтобы предотвратить возникновение ошибок, если указанный экземпляр по какой-то причине не существует, возвращая ноль. Еще один совет — использовать обработчики событий вместо анонимных функций , поскольку при необходимости обработчики событий можно вызвать снова в сценарии позже.

Другие вопросы по тегам