6

そのため、文字列をテーブルに分割しようとしているときに問題が発生しています (プレイヤーをチームに)。プレイヤーが 2 人だけの場合は魅力的に機能しますが、3 人以上のプレイヤーがいる場合は、「<em>Init Error : transformice.lua:7: bad argument: table expected, got nil」というポップアップが表示されます。すべてがうまくいっているように見えますが、何が問題なのか本当にわかりません。皆さん、私を助けてくれませんか? ありがとう!これが私のコードです:

ps = {"Player1","Player2","Player3","Player4"}
local teams={{},{},{}}

--[[for name,player in pairs(tfm.get.room.playerList) do
 table.insert(ps,name)
 end]]

table.sort(ps,function() return math.random()>0.5 end)
for i,player in ipairs(ps) do
  table.insert(teams[i%#teams],player)
  end
4

1 に答える 1

9

Lua 配列は1ではなくindex から始まります0。プレイヤーが 3 人の場合、この行は次のようになります。

table.insert(teams[i%#teams],player)

次のように評価されます。

table.insert(teams[3%3],player)

そうすると、次のようになります。

table.insert(teams[0],player)

teams[0]なりますnil。次のように記述できるはずです。

table.insert(teams[i%#teams+1],player)

代わりは。

于 2013-10-10T14:57:06.770 に答える