В настоящее время я работаю над тем, чтобы попытаться обновить версию Lua, используемой в Dungeon Crawl: Stone Soup, и я сталкиваюсь с проблемой, так как функция Lual_openlib используется в значительной степени и с тех пор была депрессирована. В настоящее время я заменил его на следующий код (используя разные параметры в зависимости от места): < /p>
//luaL_openlib(ls, nullptr, lr, 0); //OLD CALL
//New call
lua_getglobal(ls, "NULL");
if (lua_isnil(ls, -1)) {
lua_pop(ls, 1);
lua_newtable(ls);
}
luaL_setfuncs(ls, lr, 0);
lua_setglobal(ls, "NULL");
< /code>
Код все компилируется, но когда я пытаюсь запустить игру, я получаю следующую ошибку: < /p>
./crawl
/mnt/d/Google Drive/Jon/UK/Spring 2021/CS 498/Crawl/crawl/crawl-ref/source/dat/des/00init.des:18: ...CS 498/Crawl/crawl/crawl-ref/source/dat/dlua/dungeon.lua:255: global 'setfenv' is not callable (a nil value)
< /code>
Может ли кто -нибудь дать какие -либо советы о том, почему это может происходить, или кто -нибудь может дать предложение о лучшем способе заменить все вызовы на Lual_openlib? Код, над которым я работаю, можно найти здесь, и в Commits он показывает все недавние изменения, которые я сделал, чтобы обновить ссылки на Lual_openlib.-- Given a list of map chunk functions, runs each one in order in that
-- map's environment (wrapped with setfenv) and returns the return
-- value of the last chunk. If the caller is interested in the return
-- values of all the chunks, this function may be called multiple
-- times, once for each chunk.
function dgn_run_map(...)
local map_chunk_functions = { ... }
if #map_chunk_functions > 0 then
local ret
if not g_dgn_curr_map then
error("No current map?")
end
local env = dgn_map_meta_wrap(g_dgn_curr_map, dgn)
for _, map_chunk_function in ipairs(map_chunk_functions) do
if map_chunk_function then
ret = setfenv(map_chunk_function, env)()
end
end
return ret
end
end
Подробнее здесь: https://stackoverflow.com/questions/671 ... alue-error
LUA 5.4 Замена для Lual_openlib дает ошибку значения NIL ⇐ C++
Программы на C++. Форум разработчиков
-
Anonymous
1741872255
Anonymous
В настоящее время я работаю над тем, чтобы попытаться обновить версию Lua, используемой в Dungeon Crawl: Stone Soup, и я сталкиваюсь с проблемой, так как функция Lual_openlib используется в значительной степени и с тех пор была депрессирована. В настоящее время я заменил его на следующий код (используя разные параметры в зависимости от места): < /p>
//luaL_openlib(ls, nullptr, lr, 0); //OLD CALL
//New call
lua_getglobal(ls, "NULL");
if (lua_isnil(ls, -1)) {
lua_pop(ls, 1);
lua_newtable(ls);
}
luaL_setfuncs(ls, lr, 0);
lua_setglobal(ls, "NULL");
< /code>
Код все компилируется, но когда я пытаюсь запустить игру, я получаю следующую ошибку: < /p>
./crawl
/mnt/d/Google Drive/Jon/UK/Spring 2021/CS 498/Crawl/crawl/crawl-ref/source/dat/des/00init.des:18: ...CS 498/Crawl/crawl/crawl-ref/source/dat/dlua/dungeon.lua:255: global 'setfenv' is not callable (a nil value)
< /code>
Может ли кто -нибудь дать какие -либо советы о том, почему это может происходить, или кто -нибудь может дать предложение о лучшем способе заменить все вызовы на Lual_openlib? Код, над которым я работаю, можно найти здесь, и в Commits он показывает все недавние изменения, которые я сделал, чтобы обновить ссылки на Lual_openlib.-- Given a list of map chunk functions, runs each one in order in that
-- map's environment (wrapped with setfenv) and returns the return
-- value of the last chunk. If the caller is interested in the return
-- values of all the chunks, this function may be called multiple
-- times, once for each chunk.
function dgn_run_map(...)
local map_chunk_functions = { ... }
if #map_chunk_functions > 0 then
local ret
if not g_dgn_curr_map then
error("No current map?")
end
local env = dgn_map_meta_wrap(g_dgn_curr_map, dgn)
for _, map_chunk_function in ipairs(map_chunk_functions) do
if map_chunk_function then
ret = setfenv(map_chunk_function, env)()
end
end
return ret
end
end
Подробнее здесь: [url]https://stackoverflow.com/questions/67132570/lua-5-4-replacement-for-lual-openlib-gives-nil-value-error[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия