次のようなテーブルがあります。
mafiadb:{"Etzli":{"alive":50,"mafia":60,"vigilante":3,"doctor":4,"citizen":78,"police":40},"Charneus":{"alive":29,"mafia":42,"vigilante":6,"doctor":14,"citizen":53,"police":33}}
ネストされたテーブルは他にもありますが、今のところ単純にしようとしています。
次のコードを実行して特定の値を抽出します (これらの値に基づいて順序付きリストを作成しています)。
sortmaf={}
for k,v in pairs(mafiadb) do
sortmaf[k]=v["mafia"]
end
それは私が実行するコードの 1 つです。私が直面している問題は、テーブル ループで算術演算を実行できるように見えないことです。私は試した:
sortpct={}
for k,v in pairs(mafiadb) do
sortpct[k]=(v["alive"]*100)/(v["mafia"]+v["vigilante"]+v["doctor"]+v["citizen"]+v["police"])
end
「生きている」フィールドで算術を行おうとしていることが返されます。ここで何が欠けていますか?いつものように、この質問に答える際の考慮に感謝します!
編集: コメントにコメントする代わりに、ここに追加情報を追加します。
私が投稿した mafiadb データベースは、実際のデータベースです。私がリストした現在の150人以上のプレーヤーではなく、2人のプレーヤーに簡素化されています. 次のように単純に構成されています。
mafiadb = {
Playername = {
alive = 0
mafia = 0
vigilante = 0
doctor = 0
police = 0
citizen = 0
}
}
さらに数百のプレイヤー名を追加すると、それができます。
エラーメッセージに関しては、正確なメッセージは次のとおりです。
フィールド 'alive' (nil 値) で演算を実行しようとしました
だから...私は何が問題なのか分かりません。私の最初のコードである sortmaf を使用したコードでは、完全に機能しますが、算術演算をしようとすると、値として v["alive"] が突然見つかりませんか? v["alive"] を単独で配置すると、突然見つかり、もはや nil ではなくなります。これでもう少し明確になることを願っています。