0

コンテナー内の「アイテム」を取得する関数を 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);

                }

            }

        }
4

1 に答える 1

0
setField(L,"slot", i);

注意:Luaは1ベースのインデックスを使用しました。したがって、Luaと通信するC ++コードでは、1ベースのインデックスを使用する必要があります。だからあなたは必要i+1です。

于 2011-11-24T19:57:27.030 に答える