以下、試してみてわかっているところをメモ。
- GetV( V_HOMUNTYPE, xx ) の動作があやしい。
- ホムAIでは、xx にオブジェクトIDをいれると『そのモノの種類』が取れた。
例えば「ホム:バニル」とか「敵:スケワカ」「PC:アルケミ」というような。
- 傭兵AIでは、今のところ nil(未定義)しか戻らないように見える。
「ロキ自身」「視界内のホム」を試したが、どちらも nil。
- この結果、傭兵AIでは『周囲のモノの種類によって行動を変える』ことができない。
- 例えば『魔人の巨影』にだけマインドブレイカーを使う、なんてのができない。
- 例えば、視界内のモノが『味方ホム』か『NPC』かがわからない。
- GetV( V_MERTYPE, xx ) の動作があやしい。
- 本来の用途は、傭兵タイプを取得するもの。
自分が剣士か弓かという情報を得られる:これに応じて動きを変えられるようになっている。
- だが、今は1(ARCHER01)しか返ってこないように見える。
「ロキ自身」「視界内のホム」を試したが、どちらも1。
ロキはどうみても弓兵ではないので、動作としてはおかしすぎる。
- とはいえ、定数定義の const.lua にはロキに相当するIDは定義されていないので・・・
実運用的には、前者で地味に困っています。
上述したマインドブレイカーの無駄打ちの件もそうですが。
ジェネでホム+ロキ状態で戦おうとした場合に、『味方のホム』を知ることができないんです。
つまり、横殴り判定がしづらい。
傭兵AIを自由に書き換えることまでは推奨していない、っていうのは事実なんでしょうし。
特に V_HOMNTYPE については、もともとかなり変則的な実装だったので、傭兵AIで同じように動く保証はどこにもなかったわけではあるのですが。
仮にも「情報取得用関数」で定義されているモード・引数が適切に動作していないというのは事実で、正直間抜け。
ご意見などがあれば。