2013-10-10 7 views
6

Also, ich habe ein Problem beim Versuch, Strings in Tabellen (Spieler in Teams) zu teilen. Wenn es nur zwei Spieler gibt, funktioniert es wie ein Zauber, aber wenn es 3+ Spieler gibt, erscheint dies: "Init Fehler: transformice.lua: 7: schlechtes Argument: Tabelle erwartet, bekam Null". Alles scheint in Ordnung zu sein, ich weiß wirklich nicht, was los ist. Kannst du mir bitte helfen? Vielen Dank! Hier ist mein Code:Lua: Tabelle erwartet, habe keine

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 

Antwort

9

Lua-Arrays beginnt bei Index 1, nicht 0. Im Fall von, wenn Sie 3 Spieler haben diese Zeile:

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

Würde bewerten zu:

table.insert(teams[0],player) 

Und teams[0] wäre nil:

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

, die dann am Ende würde. Sie sollten in der Lage sein, es als zu schreiben:

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

stattdessen.