所以我试图制作一个游戏中所有生物的表格,每个生物都包含一个带有其统计数据的表格。我使用该生物的名称作为第一个表中的键,但现在我需要获取该名称,但我不确定如何/是否可以做到这一点?
local creatureArray = {["White Wyrm"]= {
["dungeon"]= "Cavernam",
["slayer"]= "Beastial",
["difficulty"]= 100.8,
["goldvalue"]= 1008,
["hits"]= 4500,
["mindmg"]= 45,
["maxdmg"]= 55,
["wrestling"]= 105,
["armor"]= 50,
["magicresist"]= 25,
["ai"]= "Melee",
["speed"]= "Medium",
["uniquescaler"]= 1.35
},
}
在上面的示例中,当我迭代“creatureArray”中的此条目时,我需要获取“White Wyrm”值,还是子表分配给的键?我觉得答案一定非常简单,但我发现很难找到答案,因为我指的是表中的表,并且可能一开始就使用了错误的术语。
对于那些想知道这款游戏是《Ultima Online Outlands》的人,我与他们没有任何关系,我只是在开发一个 Lua 模块,希望能够集成到他们社区运行的 wiki 中。
我尝试只引用该表,因为我使用 for 循环来迭代所有生物:
for i, creature in pairs(creatureArray)
在这个例子中,我尝试只使用“creature”,但是它引用了表对象本身而不是键。
我知道我可以在每个生物下添加一个名为“名称”的值,但这似乎是多余的。
for i, creature in pairs(creatureArray)
循环遍历表或字典时,它返回一个键/值对。
i
被视为键,creature
被视为值。
这是一个例子:
local t = {
["Item"] = "Value",
["Another Item"] = "Another Value",
}
for i, value in pairs(t) do
print(i, value)
end
输出将是:
Item Value
Another Item AnotherValue