import_type尝试调用global

时间:2014-04-04 13:45:39

标签: c# lua luainterface

我正在使用最新的lua界面并尝试运行此代码

luanet.load_assembly("Phoenix")
luanet.load_assembly("Phoenix.Structures")
NpcDialog = luanet.import_type("Phoenix.Structures.NpcDialog")

function npc(request, client)
    local dialog = new NpcDialog(client)
    dialog.Text("hi this is a test")
    dialog.Send()
end

但是得到了这个错误 LuaInterface.LuaException:[string“chunk”]:6:尝试调用全局'NpcDialog '(零值)

exe名称为Map Server.exe

大会名称Map Server 默认名称空间Phoenix

发生这种情况是因为文件的汇编与汇编名称不同,我不知道为什么!!

有没有办法让它在不改变程序集名称的情况下工作

2 个答案:

答案 0 :(得分:1)

Lua中没有new运算符。写:

function npc(request, client)
    local dialog = NpcDialog(client)

如果在此修复后仍然遇到同样的问题,则NpcDialog为零:也许导入的返回值为nil,或者可能在导入行和调用npc(r,c)的行之间填充。也许试试

assert( NpcDialog )

如果失败意味着load_assembly("Phoenix")失败,可能是因为程序集不是“Phoenix”而是“Map Server”,所以试试

luanet.load_assembly("Map Server")
NpcDialog = luanet.import_type("Phoenix.Structures.NpcDialog")
assert(NpcDialog)

答案 1 :(得分:0)

第6行是有效的Lua代码,但它不符合你的想法。 Lua解析它好像有一个;在new之后,因此尝试拨打NpcDialog