6

因此,我在尝试将字符串拆分为表格(将玩家分成团队)时遇到了问题。当只有两个玩家时,它就像一个魅力,但是当有 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 数组从 index 开始1,而不是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 回答