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

Humanoid AI Problems?

Asked by 9 years ago

Ugh yet again, I have problems with the script :/. First of the script is supposed to index a player that has the smallest distance between a humanoid. If the player dies, or dies, the indexing is repeated all over again and the process resets. I know there are A TON of small problems with the script, like usingmaginitudeto compare the distance between to objects. Here's what I got:

Var = 0
players = nil
difference = 0
player = nil
compare = 0

function HumanoidFollow()
    repeat
        wait(.25)
        workspace.Humanoid.Humanoid.WalkToPoint = player.Character.Torso.CFrame.p
    until player.Character.Humanoid.Health == 0 or player.Character.Humanoid == nil do
        repeat wait() until player.Character.Humanoid.Health == 100
        TableValue()
    end
end


function TableValue()
    players = game.Players:GetChildren()
    for i,v in pairs(players) do
        repeat wait() until v.Character~=nil
        compare = v.Character.Torso.CFrame.p - workspace.Humanoid.Torso.Position
        if v.Character.Humanoid.Health ~= 0 or v ~= nil then
            if compare ~= difference then
                if difference == 0 or compare < difference then
                    difference = compare
                    player = v
                    HumanoidFollow()
                end
            elseif compare == difference then
                player = v
                HumanoidFollow()
            end
        end
    end
end
game.Players.PlayerAdded:connect(TableValue)

I'm sorry if It's hard to understand. The problem is, everything runs fine the first time. Though once the function is called again after the player dies, the output reads: "attempt to compare two UserData values". Except the elseif statement should run and the "HumanoidFollow" function should run. If you give an answer, please only change the stuff that needs fixing. THX!!!

Answer this question