如何从C结构中创建Lua表

我正在尝试从C中创建一个Lua表。我遇到了一个问题: 我正在尝试使用C语言创建一个Lua表。 这个表应该像这样:

CharList = {
    [1] = {name = "Kyra", is_monster = false}
    [2] = {name = "Saya", is_monster = false}
    [3] = {name = "Imp", is_monster = true}
}

但是现有的示例方法都比较复杂,我似乎无法让它工作。 我最后一个未成功尝试的方法如下:

lua_createtable(L, cl->num_chars, 2);
for(i=0;i<cl->num_chars;i++)
{
        character_t *c = &cl->list[i];

        lua_pushstring(L, c->name);
        lua_setfield(L, -2, "name");

        lua_pushboolean(L, c->is_monster);
        lua_setfield(L, -2, "is_monster");

        lua_settable(L, -3);
}
lua_setglobal(L, "charList");
点赞
用户107090
用户107090

你需要创建子表:

character_t *c = &cl->list [i];
lua_pushinteger(L,i + 1);
lua_createtable(L,02);
... 
2021-07-30 14:12:59