2

最新の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' (nil 値) を呼び出しようとしています

exe名はMap Server.exe

アセンブリ名Map Server 既定の名前空間Phoenix

ファイルのアセンブリがアセンブリ名と異なるために発生し、理由がわかりません!!

アセンブリ名を変更せずに機能させる方法はありますか

4

2 に答える 2

1

newLua には演算子はありません。書く:

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

この修正後も同じ問題が発生する場合NpcDialogは、nil です。インポートの戻り値が nil であるか、インポート行と を呼び出す行の間で 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)
于 2014-04-04T23:21:02.133 に答える
0

6 行目は有効な Lua コードですが、思ったように動作しません。Lua は ; があるかのように解析します。after new、そして を呼び出そうとしますNpcDialog

于 2014-04-04T14:13:13.410 に答える