0
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

ここで問題は、tb = position [1]を使用し、「positions」テーブルの1つのテーブルに対してのみ使用することです。しかし、この関数をこのテーブルのすべてのテーブルにどのように適用しますか?

4

3 に答える 3

2

Luaはよくわかりませんが、テーブルをループすることができます。

for i = 0, table.getn(positions), 1 do
     tb = positions[i]
     ...
end

出典: http: //lua.gts-stolberg.de/en/schleifen.phpおよびhttp://www.lua.org/pil/19.1.html

于 2012-12-08T12:52:15.180 に答える
2

positions数値で繰り返す必要がありますfor

Antoine Lassauzayの回答とは異なり、ループは0ではなく1から始まり、代わりに演算子を使用することに注意してください(Lua 5.1で廃止された関数、Lua 5.2で削除されました)。#table.getn

for i=1,#positions do
  tb = positions[i]
  ...
end
于 2012-12-08T13:38:13.020 に答える
0

組み込みのpairs()を使用します。ここで数値のforループを実行する理由はありません。

for index, position in pairs(positions) do
    tb = positions[index]
    -- tb is now exactly the same value as variable 'position'
end
于 2012-12-09T15:14:21.497 に答える