Создание таблицы lua в функции c ++ - PullRequest
0 голосов
/ 24 ноября 2011

Я написал функцию на 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);

                }

            }

        }

1 Ответ

0 голосов
/ 24 ноября 2011
setField(L,"slot", i);

Помните: Луа использовал индексы one .Так что в коде C ++, который говорит с Lua, вы также должны использовать индексы на основе одного.Так что вам нужно i+1.

...