Scripting HelpersARCHIVE
A little piece of Roblox history. Preserved for everyone, one question at a time.Read about the archive →
✓ ANSWER ACCEPTED

How can I make this script target Zombies instead of players?

I am trying to get this script to function when a zombie gets too close to a humanoid that has this script the humanoid will swing their weapon at the zombie, the only problem is that I don't know how to make the script target the zombies instead of players. After putting about an hours work into this I decided to come here for help, here is the part of the script that I am having trouble with

while true do
	local p = game.Players:GetChildren()
	for i = 1,#p do
		if p[i].Character~=nil then
			if p[i].Character:findFirstChild("Torso")~=nil then
				if (p[i].Character.Torso.Position - script.Parent.Torso.Position).magnitude < 5 then
					local anim = Instance.new("StringValue")
					anim.Value = possibleAnims[math.random(1, #possibleAnims)]
					anim.Name = "toolanim"
					anim.Parent = script.Parent.LinkedSword
				end
			end
		end
	end
	wait(0.5)
end

2 answers

✓ Accepted answer
function swing()
	 local anim = Instance.new("StringValue")
          anim.Value = possibleAnims[math.random(1, #possibleAnims)]
           anim.Name = "toolanim"
           anim.Parent = script.Parent.LinkedSword
end

while true do
    local p = game.Workspace:GetChildren()
    for i = 1,v in pairs(p) do
        if v.Name == "Zombie" then
		if (v.Torso.Position-script.Parent.Torso.Position).magnitude <= 5 then
            		swing()
		end
        end
    end
    wait(0.5)
end

Instead of cycling through the children of the Players instance, it cycles through the workspace though it may take a minute so I'd advice putting all of the zombies under a folder in workspace so the script doesn't have to go through every part,model,etc in the game. Really helps decrease lag.

1 comment

0

Why is your tabbing so bad?

You can discern NPCs from players using the PlayerFromCharacter() void as well. I believe it can be used on any model. If PlayerFromCharacter() returns nil when used, it means that the model in question is not controlled by a player, thus the model is either an NPC or an inanimate object.

This discussion is preserved as it was. New answers, comments, and votes are closed.