在c+中创建lua表+;作用 我在C++中写了一个函数,它在容器中获取“项”。我需要将这些变量放入表中,但无论我做什么,脚本总是覆盖表的第一个单元格。 我正在使用Lua5.0 Container *box = dynamic_cast<

在c+中创建lua表+;作用 我在C++中写了一个函数,它在容器中获取“项”。我需要将这些变量放入表中,但无论我做什么,脚本总是覆盖表的第一个单元格。 我正在使用Lua5.0 Container *box = dynamic_cast<,c++,lua,lua-table,C++,Lua,Lua Table,在c+中创建lua表+;作用 我在C++中写了一个函数,它在容器中获取“项”。我需要将这些变量放入表中,但无论我做什么,脚本总是覆盖表的第一个单元格。 我正在使用Lua5.0 Container *box = dynamic_cast<Container*>(item); if(box) { lua_newtable(L); int top = lua_gettop(L);

在c+中创建lua表+;作用

我在C++中写了一个函数,它在容器中获取“项”。我需要将这些变量放入表中,但无论我做什么,脚本总是覆盖表的第一个单元格。 我正在使用Lua5.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);

                }

            }

        }
Container*box=dynamic\u cast(项目);
如果(方框)
{
新表(L);
int top=lua_gettop(L);
int n=box->lcontained.size();
对于(int i=0;i获取项(i);
如果(卡尔塔)
{
设置字段(L,“插槽”,i);
设置字段(L,“kartaid”,karta->getID());
lua_设置顶部(L,顶部);
}
}
}

记住:Lua使用基于一个索引。因此,在与Lua对话的C++代码中,您也必须使用一个基于索引的。因此,您需要<代码> I+1 < /COD>

setField(L,"slot", i);