【发布时间】:2023-03-15 10:40:01
【问题描述】:
我正在修改现有程序以实现新工具栏。该程序使用 Lua 脚本来处理 Flash 动画和命令的显示和处理。我可以调出 Flash 动画窗口,但是添加命令侦听器的行失败了。
HUD.AddFSCommandListener(self.file_SWF, self.id)
错误是:“参数类型错误。函数 HUD.AddFSCommandListener(movie, entityId) 需要指针类型的参数 2(提供的类型为 Null)”。
我已经在系统中翻来覆去、下层和周围,但我无法弄清楚我做错了什么,尽管我怀疑有某种注册步骤我做错了。我正在开发的游戏使用了 CryEngine,我发现并没有很多人对此提出问题。但是,如果这个错误在另一个系统中有某种类似的东西,那么也许这可能会激发我对我需要做什么的想法。
谢谢。
【问题讨论】:
-
这里有一个链接create.bluemars.com/wiki/index.php/HUD,看起来第一个参数应该是self.Hud.file_SWF?
-
访问 SWF 文件不是问题。问题在于第二个参数。 Lua 表中最初不包含“id”值,但对于程序中的所有 Lua 脚本都是如此。在初始化过程中的某个时刻,为每个 Lua 表(实体)分配一个 id 编号/值。我仍在尝试追查发生这种情况的位置,但到目前为止还没有成功。
-
听起来 Lua 实体没有正确创建,或者由于某种原因它已被垃圾收集。根据这个(crydev.net/wiki/index.php/Lua_API/Entity),每个 Lua 实体都有一个唯一标识符,该标识符是通过 SpawnEntity() 函数分配的。