Попытка проиндексировать 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"