Lua: Table expected, got nil
So, I'm having an issue while trying to split strings into tables (players into teams). When there are two players only, it works like a charm, but when there are 3+ players, this pops up: “Init Error : transformice.lua:7: bad argument: table expected, got nil”. Everything seems to be ok, I really don't know what's wrong. Can you guys please help me? Thanks! Here is my code:
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
 Lua arrays start at index 1 , not 0 .  In the case of when you have 3 players this line:  
table.insert(teams[i%#teams],player)
Would evaluate to:
table.insert(teams[3%3],player)
Which then would end up being:
table.insert(teams[0],player)
 And teams[0] would be nil .  You should be able to write it as:  
table.insert(teams[i%#teams+1],player)
instead.
链接地址: http://www.djcxy.com/p/92448.html上一篇: Lua:预期指数,为零
下一篇: Lua:表预计,得到零
