エラーで停止したり、ホムンクルスが動かなくなったときのトラブルシューティング
まずはエラーが出た際のダイヤログをご確認ください。
AIエラー
AIのエラーではこのような警告が出ますが、それがどんなエラーであるかがしっかり書いてあります。
BBSなどでエラーを報告する際は、 必ずこのエラー文の内容を明記した上で、①どのような状況で起きたか(敵はどれか、主人・ホムは何をしていたか等)
②行った設定変更をすべて列挙(書かれていないところはデフォルトと解釈します)以上の二点も併記してください。情報が詳しければ詳しいほど即解決に繋がります。
また、下図のようなエラーはROのクライアントによるエラーであり、基本的にAIとはあまり関係がありませんので、
報告されても解決できないと思います。ROクライアントのエラー
エラー文 「Cannot read/AI/AIlua.No such flie or diectori(a nil value)」
または「Cannot read/AI/USER_AI/AIlua.No such flie or diectori(a nil value)」
これは「AI(USER_AI)ディレクトリのAI.luaを読み込めません(ファイルがありません)」という意味です。これが出る場合、導入方法を間違えています。特にAIフォルダで出る場合は、デフォルトAIも消してしまっています。もう一度よく導入を読んで、正しいフォルダにAI.luaをインストールしてください。
エラー文 「./AI/AI.lua:**: error loading package `./AI/Set.lua’」
Set.luaエディタが上手く動作しなかったか、空白の入力値を作ってしまった場合に起きます。一旦Set.luaを削除して作り直すなどしてください。
その他のエラー文
以下のような理由が考えられます。
- 不正なMob.luaが存在する → Mob.luaを一旦削除してください
- 不正なFriend.luaが存在する → Friend.luaを一旦削除してください
- こっこAIではないAIを読み込んでいる → 「/hoai」での読込先を切り替えてください。またそれぞれのAIも正しく導入してください。
使用PC、ホムンクルス、マップなど、様々な条件で異なりますが、稀にAIが原因で「敵や他PCは動いているのに、自分とホムだけは動けない、操作が受け付けられない」といった障害が発生することがあります。これはよくあるサーバー側のラグとは違い、自分のクライアントで発生しているラグです。原因はモーションキャンセラーの項目でも解説していますが、ROのホムンクルス用AIで定義されている攻撃、移動、スキル使用などのコマンドを送信する回数が多いと、特定の条件下で前述のような現象が発生します。
デフォルトの状態ではモーションキャンセルが働くようにしていますので、そのまま使用されるとこの不具合が発生する可能性があります。万が一、使用中に上記のような状態になったら、マニュアルにもあります通り、MultiAttack = 1に設定変更してください。
エラーによる停止
何らかの原因でスタックしている可能性もありますが、エラーによる停止の可能性があります。AIフォルダ(変更している場合はUSER_AIフォルダ)内に Error.txt というファイルが出来ていたら、エラーが発生しています。中にエラー文が書いてありますので、内容を報告していただけると解決に繋がります。これはエラー発生によってROクライアントが停止しないための措置ですので、この状態でいくら待ってもホムンクルスは復帰しません。安息→コールしなおすなどして対処してください。
スリープモードの発動
ゆっくりした結果がこれだよ!!!
主人が移動すれば直ります。設定変更はできません。修正予定もありません。
クライアントが表示するMobの位置と、サーバー上に存在するMobの位置が食い違うために起きる不具合です。簡単に言えば「座標ズレ」のことです。AIはクライアントの表示を元に判断しますが、実際に攻撃が通るかどうかを判断するのはサーバーなので、クライアント上では射程内に敵が居るため攻撃をしますが、それがサーバーで判定されるときに実際は射程外であるとその攻撃は無効にされてしまいます。しかし、AIはホムンクルスの攻撃が当たったかどうか、有効であったかを判断することが出来ないため、基本的にはこうした問題が起きた場合に自動的に対処出来ずスタックします。
こっこAIではある程度の判断はさせてこのスタックを抜けるようにしていますが、完全な対策はないため、機能しない場合もあります。
嵌ってしまった場合は、自分でAlt+右クリックによる移動命令を与えたり、Mobの座標をノックバックやショートトレインなどで是正してやれば直ぐに問題は解決できると思います。また、攻撃する時に取る敵との距離AttackDistanceを0~1に設定し、極力Mobの近くを狙って移動させることもある程度の解決にはなります。ただし、こうした設定でも座標ズレを頻繁に起こす状態ではしばしばスタック状態になることがありますので、出来るだけ手動による解決が望ましいです。
ターゲットしたMobが移動すると、ホムンクルスがちゃんとついてくるのであれば、共闘モードになっています。設定をよく確認してください。関連する設定はSet.luaとMob.lua両方にあります。