開発日誌

すべての記事

[ 天下御免!からくり屋敷 ] [ テクニック ] [ 素材 ] [ プラグイン/スクリプト ] [ ツクール情報 ] 正しい蘇生術

2018-08-12 01:35:53

お久しぶりです!

続編の制作を始めると、既存部分に不具合があっても修正が困難になるので、心ゆくまで修正しようとしています。

敵が蘇生方術を使ってくる際に、複数の死亡者がいたとしても、必ず先頭の死亡者を蘇生させてくるような気がしていました。ランダムで選ばれるはずなのにおかしいな、と思っていろいろ調べてみた結果、プリセットスクリプトの不具合であることが分かりました。

Game_BattleActionのdecide_random_targetメソッドにおいて、対象が味方単体(for_friend?)ならば(生存中の)味方からターゲットをランダムに決定、対象が戦闘不能の味方単体(for_dead_friend?)ならば戦闘不能の味方からランダムに決定、としているのですが、for_friend?にはfor_dead_friend?の場合も含まれるので、この判定順序では対象を戦闘不能の味方にしていても、通常の味方単体で選ばれてしまいます。

というわけで、判定の順序を入れ替えたら、蘇生対象がちゃんとランダムに選ばれるようになりました。

また、蘇生や途中で仲間を召喚する際に、アニメーションが表示されていないことに気付きました。蘇生や召喚した時点では、まだ対象が非表示の状態になっているため、アニメーションも表示されないのだろうと思って諦めていたのですが、修正の仕方が分かったので、ちゃんと表示されるようにしました。

今さらVX用のスクリプトに、どこまで需要があるのか分かりませんが、修正版のスクリプトを公開します。

蘇生対象者の選択修正は、Game_BattleActionのdecide_random_targetメソッドを直接書き換えています。また、アニメーションの表示はSprite_Battlerに親クラスであるSprite_Baseのanimation_set_spritesメソッドを継承して追加定義しています。この辺りに関わる改変スクリプトを入れている場合は、競合で正常に動作しない可能性がありますので、ご注意ください。

質問やアドバイスなどはコメント欄まで、お気軽にどうぞ。素材利用条件などについては、このサイトについての「提供素材について」の項目などをご覧ください。

コメント
お名前
コメント
※ 確認画面はありません。