在c ++函数中创建lua表

时间:2011-11-24 10:12:42

标签: c++ lua lua-table

我在C ++中编写了一个函数,它在容器中获取'items'。我需要将这些变量放在表中,但是我做的任何事情,脚本总是覆盖表的第一个单元格。 我正在使用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);

                }

            }

        }

1 个答案:

答案 0 :(得分:0)

setField(L,"slot", i);

请记住:Lua使用一个基于的索引。因此,在与Lua对话的C ++代码中,您也必须使用基于一的索引。所以你需要i+1