从表格中获取数据时,只匹配第一个键。
2015-10-11 23:26:51
收藏:0
阅读:78
评论:1
我像这样将键存储在表中:
d = { ["Rune_Test"] = "78100;Iconmisc0002", ["Sword_Test"] = "78097;Iconsword11" }
这个表存储在我的ItemHandler.lua文件中。
local ItemHandler = {}
d = {}
function ItemHandler:LoadData(_data)
d = _data
end
function ItemHandler:GetData()
return d
end
function SaveItem(nId, Name, Sprite)
d[trim(string.gsub(Name, " ", "_"))] = nId .. ";" .. Sprite
end
我的主要lua文件是Central.lua,它看起来像这样:
function Central:OnRestore(eLevel, tData)
DataItems = tData.items or {}
ItemHandler:LoadData(tData.items or {})
end
function Central:OnSave(eLevel)
local tSave =
{
items = ItemHandler.GetData()
}
return tSave
end
我的xml保存文件目前看起来像这样:
<?xml version="1.0" encoding="UTF-8"?>
<Document>
<N K="items" T="t">
<N K="Rune_Test" T="s" V="78100;Iconmisc0002"/>
<N K="Sword_Test" T="s" V="78097;Iconsword11"/>
</N>
我正在使用这样的函数查找特定键:
function ItemHandler:CheckItem(iName)
if d[iName] ~= nil then
Print("Got it!")
end
end
但是我遇到的问题是,我只在xml文档中的第一个键上得到匹配。
print(d.Rune_Test)
= 78100;Iconmisc0002
e
print(d.Sword_Test)
= nil
我想我只是错过了一些非常简单的东西。当谈到LUA时,我是个大新手,几天前才开始学习。 :) 但我有C#知识,所以不是全部都是胡说八道:P
点赞
评论区的留言会收到邮件通知哦~
推荐文章
- 如何将两个不同的lua文件合成一个 东西有点长 大佬请耐心看完 我是小白研究几天了都没搞定
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?
- addEventListener 返回 nil Lua
- Lua中获取用户配置主目录的跨平台方法
如果跳过加载/保存程序,它将起作用:
d = { ["Rune_Test"] = "78100;Iconmisc0002", ["Sword_Test"] = "78097;Iconsword11" } print(d.Rune_Test) print(d.Sword_Test)这将打印:
因此,您从 XML 中加载的内容不是您想要的。
尝试加载后打印表格,例如:
for k, v in pairs (d) do print ("key=", k, "value=", v) end -- for您应该会看到: