在c++中创建lua表功能
我用 C++ 编写了一个函数,用于在容器内获取“项目”。我需要将这些变量放入表中,但无论我做什么,脚本总是会覆盖表的第一个单元格。 我使用 Lua 5.0
Container *box = dynamic_cast<Container*>(item);
if(box)
{
lua_newtable(L);
int top = lua_gettop(L);
int n = box->lcontained.size();
for(int i = 0; i <= n; i++)
{
Item* karta = box->getItem(i);
if(karta)
{
setField(L,"slot", i);
setField(L,"kartaid", karta->getID());
lua_settop(L, top);
}
}
}
I've written a function in C++ which is getting 'items' inside container. I need to put those variables in table, but anything I do, script is always overwriting first cell of table.
Im using Lua 5.0
Container *box = dynamic_cast<Container*>(item);
if(box)
{
lua_newtable(L);
int top = lua_gettop(L);
int n = box->lcontained.size();
for(int i = 0; i <= n; i++)
{
Item* karta = box->getItem(i);
if(karta)
{
setField(L,"slot", i);
setField(L,"kartaid", karta->getID());
lua_settop(L, top);
}
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
请记住:Lua 使用基于 one 的索引。因此,在与 Lua 交互的 C++ 代码中,您也必须使用基于 1 的索引。所以你需要
i+1
。Remember: Lua used one-based indices. So in C++ code that talks to Lua, you too must use one-based indices. So you need
i+1
.