0

C# で IRC ボットを使用しており、当面は Lua Scripting を使用したいと考えています。ボットの起動時に関数を登録し、新しいファイルが追加されたかどうかを検出してロードしたいと考えています。新しいファイル/スクリプトのリロード機能は既に実行しましたが、実行すると、「オブジェクト参照がオブジェクトのインスタンスに設定されていません」というメッセージが表示されます。ユーザーが使用できるようにしたいカスタム関数について。

現在のコードは次のとおりです。

public Lua lua;
public void RegisterFunctions() {
    lua.RegisterFunction("print", this, typeof(DashLua).GetMethod("ConsoleOut"));
}
#region Custom Functions for Lua
public void ConsoleOut(String line) {
    if (line == null) {
        Console.WriteLine("Script error: print() can't be null.");
    } else {
        Console.WriteLine(line);
    }
}

ボットの Main() には、現在 2 行しかありません。

    DashLua dash = new DashLua();
    dash.RegisterFunctions();
4

1 に答える 1

0

NLua (NuGet) は x64 ビルドでのみ機能するため、実際には機能しませんでした。そのため、プロジェクトをビルドしていて、スクリプト言語として本当に Lua が必要な場合は、プロジェクトのプロパティでビルドを x64 に変更する必要があります。そうは言っても、彼らのWebサイトでWin32バージョンを入手できますが、nugetにないのは残念です。

編集: Win32 ビルドをダウンロードすると、空になります。彼らはそれを構築していないと思いますので、自分で構築することをお勧めします。

于 2014-09-21T13:52:40.580 に答える