風薙鳥 ゲーム制作日誌

防御といくつかの性格を実装

戦闘システムを実装中です。
いくつかの性格と、性格の行動で必要になる「防御」を実装しました。
いくつかの作戦では、モンスターが自動移動することになり、性格とは自動移動の性質です。

今回実装した「慎重」という性格は、最も近くにいる敵モンスターと上下方向の座標を合わせ、自分からは向かっていかず、敵が隣接したら攻撃します。
また、「勇敢」という性格は、積極的に近くにいる敵モンスターに向かっていきます。
この性格がどれだけ影響してくるかは未知の部分が多いので、色々な組み合わせでテストした時、どう動いてくれるか楽しみであり不安でもあります。

これらの実装中に、ちょっとしたトラブルが発生しました。
休憩から戻り、わずかなコードを追加してテストプレイしたら、なぜかどのモンスターも行動しなくなりました。
作戦指示メニューは操作できるので、フリーズではない模様。
追加したコードをコメントアウトしても、現象が改善されません。
休憩前におかしなところをいじったのかと、問題箇所をしばらく探していましたが、どこも問題ないように見えます。
そんな時、以前見たある情報を思い出しました。

「ツクールXPには、イベントコマンドのスクリプトが1行で、かつfalseを返す内容の場合、動作が止まるバグがある」
(ブックマークしていなかったため、サイトのURLは分かりません……)

コモンイベントのスクリプトは、いくつかが自作関数を呼び出すだけの1行の内容になっています。
呼び出している関数のひとつが、条件分岐の判定によっては、最後の処理でfalseを返すようになっていました。
試しに、関数呼び出しの前に、意味のない1行を追加してみると、正常に動作するようになりました。

完全に自分のミスだと思っていたのに、思いもよらぬ原因で時間を食われてしまいました。