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

How would I get the things in this table?

Asked by 10 years ago

Battle_NPC = script.Parent; Respawned_Battle_NPC = Battle_NPC:Clone();

while true do
wait(1);
Battle_NPC_Humanoid = Battle_NPC:FindFirstChild("Humanoid");
if Battle_NPC_Humanoid ~= nil then
Joints = {
Battle_NPC_RightArm = Battle_NPC:FindFirstChild("Right Arm");
Battle_NPC_LeftArm = Battle_NPC:FindFirstChild("Left Arm");
Battle_NPC_RightLeg = Battle_NPC:FindFirstChild("Right Leg");
Battle_NPC_LeftLeg = Battle_NPC:FindFirstChild("Left Leg");
}
local Continue = true;
for i, v in pairs(Joints) do
if v == nil then 
Continue = false;
end
end
end
end

I know, there is a more simple way to do this, but I want to see if this is possible. I'm trying to get the things in the Table and Destroy them with the :Destroy method. My friend gave me the in pairs loop and I don't know what to do next.

"Most good programmers do programming not because they expect to get paid or get adulation by the public, but because it is fun to program." - Linus Torvalds

1 answer

Log in to vote
0
Answered by
adark 5487 Badge of Merit Moderation Voter Community Moderator
10 years ago

I'm not really sure what you're asking for here.

The generic for loop uses an iterator function to pass over all members of a Table. pairs and ipairs are the stock iterator functions. pairs goes over every key-value pair once, but in an indeterminate order. ipairs only works with integer keys, and will go from 1 to the highest consecutive numbered member.

Examples:

local tab = {
    "stringMember",
    123, --number member
    "anotherString",

    NamedMember = "Non-integer!",
    "anotherStringAgain!", --default again.

    [5] = 125,
    [7] = 125,
}

for i, v in ipairs(tab) do
    print(i .. " :: " .. v)
end
print("")
for i, v in pairs(tab) do
    print(i .. " :: " .. v)
end

And the output:

1 :: stringMember
2 :: 123
3 :: anotherString
4 :: anotherStringAgain!
5 :: 125

1 :: stringMember
2 :: 123
3 :: anotherString
4 :: anotherStringAgain!
5 :: 125
NamedMember :: Non-integer!
7 :: 125

Note that the NamedMember was not printed in the position it was declared in in the table. Also note that the value at index 7 was not reached by the ipairs loop, even though it is an integer: there was no value at 6 so ipairs stopped!

Ad

Answer this question