0

それは私が持っている非常に具体的な問題です:

私はテキストベースの RPG に取り組んでいます。主な作業はエディターを実装することであり、プログラミングの知識がなくても NPC やアイテムを追加してマップに配置することができます (...)。

これらはすべて、いくつかの SQL クエリを実行することで正常に機能し、すべてが既に機能しています。現在、クエストの編集に取り組んでいます。私の基本的な概念は、プレーヤーがコマンドを入力するたびに、特定の文字列のデータベース エントリがクエリされ、一意の ID を持つ一連の条件とアクションにリンクされているというものです。これらは Java コードで照会されます。特定の条件 (たとえば、プレーヤーのお金が 100 に等しい) には、結果を返すコードの一部があります。これは、コマンドが入力されるたびに、数百 (またはそれ以上) の IF を渡す必要があることを意味します - コマンドによるアクションと同じです。それが正しい方法であるかどうかもわかりません (誰かがこれを提案している場合は、気軽に投稿してください)。

ポイントは、クエストは基本的にクエストステージで構成されていることです。クエストステージには、有効にする条件と、有効にしたときに実行されるアクションもあります。つまり、コマンドを入力するたびに、これらすべてのクエリを実行する必要があります。ある種のトリガーを使用することを考えましたが、このエディターから Java コードを編集したくないので、それを実装する方法がわかりません。プロローグの使用も検討しましたが、その場合もトリガーをJavaコードに追加する必要があると思います。

このようなフォーラムでこれを処理するのは少し難しいことは承知していますが、誰か提案があれば、本当にうれしいです。

編集:

コメントで示唆されているように、全体を短くしたいと思います: コマンド (数百または数千のうち) が 1 つの特定のクエスト/クエスト ステージ (数千のうち) をトリガーし、これらのトリガーをエディターで設定する必要がある場合、それを実装する適切な方法は?

4

1 に答える 1

1

多くの事実を推論し、一連の事実が特定の条件に一致したときにアクションをトリガーすることは、よだれに適しています。

プレーヤーが行ったすべてのアクション/決定を事実として表すことができ、それを Drools ナレッジ セッションに挿入できます。

そのセッションでは、すべての「トリガー」を drools ルールとして保存できます。これは、メモリ内のファクトのコレクションが条件に一致したときに起動します。

drools は、ルールの動的な追加/削除/編集をサポートし、非開発者がより単純なルール言語を使用してロジックを記述できるようにすることを明確にターゲットにしています。

開始する drools の特定の部分はコアです - drools の専門家

于 2013-06-28T18:01:36.487 に答える