Как я могу создать объект Lua следующим образом:
players = {
{
pos = {x=12.43,y=6.91},
backpack = {22,54},
health = 99.71
name = "player1"},
{
pos = {x=22.45,y=7.02},
backpack = {12,31},
health = 19.00
name = "player2"}
}
в моем исходном коде C ++ со значениями, которые взяты из переменных моего кода C ++?
В конце концов, он должен быть доступен для всех скриптов.
Это не проверенный код, но я думаю, что вы можете понять основную идею.
int i = 0;
lua_newtable(L);
lua_newtable(L);
lua_newtable(L);
lua_pushnumber(L, 12.43); lua_setfield(L, -2, "x");
lua_pushnumber(L, 6.91 ); lua_setfield(L, -2, "y");
lua_setfield(L, -2, "pos");
lua_newtable(L);
lua_pushnumber(L, 22); lua_rawseti(L, -2, 1);
lua_pushnumber(L, 54); lua_rawseti(L, -2, 2);
lua_setfield(L, -2, "backpack");
lua_pushnumber(L, 99.71); lua_setfield(L, -2, "health");
lua_pushstring(L, "player1"); lua_setfield(L, -2, "name");
lua_rawset(L, -2, i++);
// same next player
Вы можете зарегистрировать функцию для создания объектов игроков из таблицы lua.
player = {}
toplayer(player)