Так что у меня возникла настоящая дилемма. У меня есть код, который читает определенное сообщение, например:
m.content:sub(1,8) == 'Loot of ' then
читает:
01:50 Loot of a starving wolf: a dirty fur, a salad, 2 pancakes, 60 gold
Теперь я пытаюсь вставить его в таблицу. Проблема, с которой я столкнулся, состоит в том, что я не могу заставить ее считать тип строки и сравнивать ее в таблице, чтобы добавить ее индекс.
Например:
t = {dirty fur="quantity of msgs that show this",insert a new msg="how many times haves appear}
Я до сих пор работаю:
foreach newmessage m do
m.content:sub(1,8) == 'Loot of ' then
и тогда я просто потерялся. Я не знаю, как создать эту таблицу; Я думаю, он должен быть локальным, но главная проблема, с которой я столкнулся, заключается в том, что я не хочу печатать его попарно, я хочу вызывать значения от 1 до #table в том порядке, в котором они были вставлены. Вот тут и начинается моя боль.
Я хочу что-то вроде:
table msgs = {spear='100',something='2', ovni='123'}
поэтому, когда я получаю эту таблицу (которую я до сих пор не могу создать), я могу вызвать ту же таблицу для другой функции, которую я хочу вызвать таблицей. "Xmsg" = количество. Надеюсь, кто-то понимает, о чем я спрашиваю.
function loot()
foreach newmessage m do
if m.type == MSG_INFO and m.content:sub(1,8) == 'Loot of ' then
local content = (m.content:match('Loot of .-: (.+)')):token(nil,', ')
for i,j in ipairs(content) do
return content
end
end
end
end
возвращает сообщения об этой функции:
{"3 gold coins"}
{"3 gold coins"}
{"nothing"}
{"6 gold coins", "a hand axe"}
{"12 gold coins", "a hand axe"}