Попытка проиндексировать nil с помощью characterAdded

Мне нужно получить характер игрока для системы, которая наносит урон, если прикоснуться к какой-либо части, но это происходит по обычному сценарию, а не по локальному сценарию, и я хочу, чтобы персонаж не получил урон. Как я могу это сделать?

Я пытался сделать этот код, но не работал.

      for i, v in pairs(script.Parent:GetChildren()) do
    if v:IsA("MeshPart") then
        v.Touched:Connect(function(p)
            local db = true
            local char = game.Players:GetPlayerFromCharacter(p.Parent).CharacterAdded:Wait()
            if char then
                if p.Parent:FindFirstChild("Humanoid") ~= char.Humanoid and db == true then
                    db = false
                    p.Parent.Humanoid.Health -= 150
                    task.wait(3)
                    db = true
                end
            end
        end)
    end
end

1 ответ

Вы должны связать событие касания с кирпичом убийства, а не с конечностями игроков, и вам также нужно сделать=-нет-=

      local killBrick = script.Parent

killBrick.Touched:Connect(function(p)
    local db = true
    if p.Parent:FindFirstChildOfClass("Humanoid") then -- make sure the thing its touching is a player/has a humanoid
        if db == true then
            db = false
            p.Parent:FindFirstChildOfClass("Humanoid").Health =- 150
            task.wait(3)
            db = true
        end
    end
end)

Также убедитесь, что это серверный скрипт и что он связан с кирпичом уничтожения. Если вы хотите защитить кого-то от этого, просто сделайтеp.Parent.Name == "Username"

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