だから私はかなりのジレンマを持っています。たとえば、特定のメッセージを読み取るコードがあります。
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'}
したがって、このテーブルを取得すると (まだ作成できません)、別の関数に対して同じテーブルを呼び出すことができます。誰かが私が求めていることを理解してくれることを願っています。
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"}