Scripting Helpers is winding down operations and is now read-only. More info→
Ad
Log in to vote
0

Zombies flying around when spawned?

Asked by 2 years ago

I'm trying to make a zombie survival game and currently i'm working on the zombie spawning mechanism. It does spawn the zombies, but they fly around everywhere and kill each other and stuff. I have absolutely no clue why this is happening lol.

Spawn zombies script:

local Zombie = game.ReplicatedStorage.Zombie
local Round = game.Workspace.Round.Value
local RoundEvent = game.ReplicatedStorage.RoundChanged

local ZombiesSpawned = Instance.new("IntValue")
ZombiesSpawned.Parent = game.ReplicatedStorage
ZombiesSpawned.Value = 0
ZombiesSpawned.Name = "ZombiesSpawned"

local ZombiesSpawnedValue = game.ReplicatedStorage:WaitForChild("ZombiesSpawned")


local function SpawnZombiesRound1()
    for i = 0, 10 do
        local ZombieClone = Zombie:Clone()
        ZombieClone.Parent = game.Workspace
        ZombieClone:WaitForChild("Torso").Position = Vector3.new(math.random(-49, 0), 17, math.random(0, 37))
    end
end

if Round == 1 then
    SpawnZombiesRound1()
end

RoundEvent.OnServerEvent:Connect(function()
    game.Workspace.Round.Value = game.Workspace.Round.Value + 1
end)

Zombie script:

local ZombieTorso = script.Parent.Torso
local ZombieHumanoid = script.Parent.Humanoid

local function FindTarget ()
    local AggroDistance = 100
    local target = nil
    for i, v in pairs(game.Workspace:GetChildren()) do
        local humanRootPart = v:FindFirstChild("HumanoidRootPart")
        if humanRootPart and v.Parent.Name ~= "Zombie" then
            if (ZombieTorso.Position - humanRootPart.Position).magnitude <= AggroDistance then
                AggroDistance = (ZombieTorso.Position - humanRootPart.Position).magnitude
                target = humanRootPart
            end
        end
    end
    return target
end

while wait(1) do
    local torso = FindTarget()
    if torso then
        ZombieHumanoid:MoveTo(torso.Position)
        ZombieHumanoid.MoveToFinished:Connect(function()
            torso.Parent:FindFirstChild("Humanoid").Health = 0
        end)
    else
        wait(1)
        ZombieHumanoid:MoveTo(ZombieTorso.Position + Vector3.new(math.random(-50, 50), 0, math.random(-50, 50 )))
    end
end

Video (sorry for potato quality): https://youtu.be/ihOy4clzzMg

0
I can't access your YouTube video because it is private. You had to make the video unlisted or public. Y_VRN 246 — 2y
0
oh sorry should be fixed now klockmason35 0 — 2y

Answer this question