So I am trying to make a ‘Enemy AI’ script. What it is supposed to do is that when the enemy ‘hits’ a player, the player takes damage. However, when I test it, the player doesn’t take damage. I was wondering if you guys can help me.
Here’s the ‘debounce’ script:
if (torso.Position - EnemyTorso.Position).magnitude < attackDistance and not ((torso.Position - EnemyTorso.Position).magnitude >= closeDistance) then
nearValue = true
EnemyHumanoid.WalkSpeed = 0
if not debounce then
debounce = true
AttackAnim:Play() --Animation
CanDamage = true --Allows the enemy to attack
wait(Cooldown)
CanDamage = false
debounce = false
if EnemyHumanoid.Health <= 0 then
return
end
end
if script.Parent:FindFirstChild("Hit")then
return
end
else
nearValue = false
EnemyHumanoid.WalkSpeed = 16
end
And here is the magnitude:
for i,v in pairs(BodyParts)do
v.Touched:Connect(function(hit)
if hit.Parent:FindFirstChild("Humanoid")and CanDamage == true then
local Char = hit.Parent
local Humanoid = Char:FindFirstChild("Humanoid")
print("Humanoid Detected!")
end
end)
end
I don’t see where the damage is given i.e. when whatever weapon hits it gives damage (i see hit perhaps thats where it should be?)
assuming if script.Parent:FindFirstChild(“Hit”) means is the player that gets hit
Hit.Parent.Humanoid:TakeDamage(20)
Oh whoops! My bad! I will show you the details of the magnitude:
for i,v in pairs(BodyParts)do
v.Touched:Connect(function(hit)
if hit.Parent:FindFirstChild("Humanoid")and CanDamage == true then --If the enemy's hand detects a humanoid and if the CanDamage value is equal to true
local Char = hit.Parent --the character of the detected humanoid
local Humanoid = Char:FindFirstChild("Humanoid") --gets the humanoid
print("Humanoid Detected!")
end
end)
end
Oh so you’re saying the function doesnt work at all? Also I am not referring to your print though it is good for checking if it works like you said
if hit.Parent:FindFirstChild("Humanoid")and CanDamage == true then --If the enemy's hand detects a humanoid and if the CanDamage value is equal to true
local Char = hit.Parent --the character of the detected humanoid
local Humanoid = Char:FindFirstChild("Humanoid") --you have the target humanoid
Humanoid:TakeDamage(20) --since hit and candamage true, remove hp from target
print("Humanoid Detected!")
end
Ok so I found the solution to the problem. All I had to do was place the magnitude into the debounce segment. It was really stupid of me but in all words, thank you for the appreciation.