c - 将大量常量列表导出到 Lua 状态

标签 c lua

使用 C(99),我有一个从 Lua 脚本加载 Lua 表的游戏。

技术方面没有问题,一切正常。但是,C 核心使用许多常量来定义项类型等。该脚本实际上提供了要加载的武器数据,并且为了清楚起见应该使用相同的常量名称/值。 在 C 中,常量是诸如 #define ITEM_TYPE_EDIBLE 2 之类的东西。

所以,我的问题是:如何轻松地将长整数列表(~300 定义)从 C 导出到 Lua?不止一个脚本应该使用该列表,虽然内存大小并不是真正的问题,但我主要是为了方便。

我已经想到了这些可能的解决方案,但不确定从长远来看哪个更好:

  • A) 在处理所需脚本的 Lua 状态下手动创建嵌套表。
  • B) 手动创建一个包含常量的 lua 脚本,并将其导入到每个使用它们的脚本中。

那么,您认为最方便的方法是什么?就像在 Lua 方面方便更新和使用一样,因此可以轻松编写 mod。项目加载都是在启动时完成的,所以如果不是超快的方法也没关系(因为它不会滞后操作,只是启动时间)

哦,我正在使用 Lua 5.1,但不反对使用 5.2,如果它使我的任务更容易的话。如果可能,也不反对以编程方式更新列表。

最佳答案

  • A) Manually create a nested table in the Lua state processing the desired script.
  • B) Manually create a lua script containing the constants, and import it in every script making use of them.

你忘记了:

  • C) 手动创建一个包含常量的 Lua 脚本,然后当我创建我的 lua_State 时,立即导入它。这样,每个使用它们的脚本都可以假定它已被导入。

事实上,我通常会将此脚本放在可执行文件本身或由可执行文件加载的特殊文件中。

关于c - 将大量常量列表导出到 Lua 状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11609305/

相关文章:

python - 使用 Python 计算 Pi 的莱布尼兹公式

c++ - Lua:多次调用返回字符串的 Lua 函数。如何做到这一点,以便有交叉到下一个实例的字段

lua - Lua 中与 debug.getlocal 的混淆

windows - LuaJIT 相当于 wlua.exe

c++ - 如何为 lua_State 设置全局 C++ 指针

c - 在eclipse中识别 Debug模式

c - 空内存条目

c - 如何在函数 C 编程中打印二维数组

c - msgrcv 获取空白消息

c - 使用空格字符从c中的字符串数组中获取单词