I'v сделал викторину с несколькими вариантами. Перед началом игры, пользователь должен использовать идентификатор, а затем пользователь добавляется к столу и готов играть:Lua отображение таблицы
function addUser(msg)
local id = msg.from.username
if (userScore == nil) then
userScore = {}
end
if (userScore[id]) then
return "user already in Game"
else
userScore[id] = 100
return id
end
Это добавляет очков в таблице:
function addScore(msg)
local id = msg.from.username
if (userScore[id] == nil) then
return "user unknown. start het spel!"
end
if (game == "on") then
if (userScore[id]) then
userScore[id] = userScore[id] - 1
return id .. ", punje eraf!"
else
return id .. " is not yet a user! where to start huh?"
end
else
return "Game mode is off"
end
end
Тогда с ! забьет пользователи могут видеть счет:
elseif (matches[1] == "!score") then
for k, v in pairs(userScore) do
return k .. " : " .. v
end
проблема у меня есть, что я вижу только одну строку в таблице, зная, что другие пользователи будут добавлены в таблицу. Что я делаю не так?
Не хотите сказать 'print (k ..": ".. v)'? – lhf
Нет, не решил это. Stil показывая первое значение. даже если я добавлю пользователей в сценарий выше. –
@WouterMocking в конце вашего объяснения вы используете '' 'Lua для к, v попарно (userScore) делать возвращение K .. ":" .. v конца ' '' который возвращает первый кнопочный пара значений. Если вы ожидаете, что он вернет все из них, он никогда не сделает этого, он просто вернет один - первый, который он найдет. Если вы печатаете или выдаете возвращаемое значение этого кода, он просто выводит эту пару с ключом-значением. – Rochet2