Syntax Lua:如何使用表中的所有表

Syntax Lua:如何使用表中的所有表,syntax,lua,lua-table,Syntax,Lua,Lua Table,这里的问题是,我使用tb=positions[1],它只用于“positions”表中的一个表。但是如何将此函数应用于此表中的所有表?我不太了解Lua,但您可以在表上循环: positions = { --table 1 [1] = {pos = {fromPosition = {x=1809, y=317, z=8},toPosition = {x=1818, y=331, z=8}}, m = {"100 monster"}}, --table 2 [2] = {pos = {fromPos

这里的问题是,我使用tb=positions[1],它只用于“positions”表中的一个表。但是如何将此函数应用于此表中的所有表?

我不太了解Lua,但您可以在表上循环:

positions = {
--table 1
[1] = {pos = {fromPosition = {x=1809, y=317, z=8},toPosition = {x=1818, y=331, z=8}}, m = {"100 monster"}},
--table 2
[2] = {pos = {fromPosition = {x=1809, y=317, z=8},toPosition = {x=1818, y=331, z=8}}, m = {"100 monster"}},
-- table3
[3] = {pos = {fromPosition = {x=1809, y=317, z=8},toPosition = {x=1818, y=331, z=8}}, m = {"100 monster"}}
}

    tb = positions[?]--what need place here?

for _,x in pairs(tb.m) do --function
    for s = 1, tonumber(x:match("%d+")) do
    pos = {x = math.random(tb.pos.fromPosition.x, tb.pos.toPosition.x), y = math.random(tb.pos.fromPosition.y, tb1.pos.toPosition.y), z = tb.pos.fromPosition.z}
    doCreateMonster(x:match("%s(.+)"), pos)
    end
    end
资料来源:
而且

我不太了解Lua,但你可以在桌子上绕圈子:

positions = {
--table 1
[1] = {pos = {fromPosition = {x=1809, y=317, z=8},toPosition = {x=1818, y=331, z=8}}, m = {"100 monster"}},
--table 2
[2] = {pos = {fromPosition = {x=1809, y=317, z=8},toPosition = {x=1818, y=331, z=8}}, m = {"100 monster"}},
-- table3
[3] = {pos = {fromPosition = {x=1809, y=317, z=8},toPosition = {x=1818, y=331, z=8}}, m = {"100 monster"}}
}

    tb = positions[?]--what need place here?

for _,x in pairs(tb.m) do --function
    for s = 1, tonumber(x:match("%d+")) do
    pos = {x = math.random(tb.pos.fromPosition.x, tb.pos.toPosition.x), y = math.random(tb.pos.fromPosition.y, tb1.pos.toPosition.y), z = tb.pos.fromPosition.z}
    doCreateMonster(x:match("%s(.+)"), pos)
    end
    end
资料来源:
并且

您需要使用的数字对位置进行迭代

请注意,与Antoine Lassauzay的答案不同,循环从1开始,而不是0,并使用
#
操作符而不是
table.getn
(Lua 5.1中不推荐的函数,在Lua 5.2中删除)


您需要使用的数值迭代
位置

请注意,与Antoine Lassauzay的答案不同,循环从1开始,而不是0,并使用
#
操作符而不是
table.getn
(Lua 5.1中不推荐的函数,在Lua 5.2中删除)

使用pairs()内置函数。这里没有任何理由执行数字for循环

for i=1,#positions do
  tb = positions[i]
  ...
end
使用pairs()内置函数。这里没有任何理由执行数字for循环

for i=1,#positions do
  tb = positions[i]
  ...
end

测试。它返回:尝试索引本地“tb”(一个nil值)我将使用不同的变体测试此代码,因为我不知道它为什么返回nil给我。已解决:
对于I,ipair(位置)中的x do tb=位置[I]结束
测试。它返回:尝试索引本地“tb”(一个nil值)我将使用不同的变体测试此代码,因为我不知道它为什么返回nil给我。已解决:
对于I,在ipair中的x(位置)do tb=位置[I]end