度々失礼いたします
追加能力値のHP再生率などで設定された自動回復やスリップダメージの発生タイミングに関しての質問です
デフォルトではターンの終了時にこれらの効果が発生するようになっていますが
これらの発生のタイミングをターンの終了時ではなく
ターンの開始時(具体的にはアクターコマンドが開かれるタイミング辺りでしょうか)に
変更したいのですが、それにはコアスクリプトをどのように書き換えればよいでしょうか?
単にタイミングを変えるだけですと不具合は発生するかもしれませんが
暫定的なやり方でも構いませんので方法を教えていただけますと助かります
大変お手数なのですがどうかよろしくお願いいたします
再生率で設定した回復効果の発生タイミングを変更する方法
- Plasma Dark
- 記事: 669
- 登録日時: 2020年2月08日(土) 02:29
- 連絡を取る:
Re: 再生率で設定した回復効果の発生タイミングを変更する方法
コアスクリプトを直接書き換えず、プラグイン化することを推奨します。
HP,MP,TP再生率で設定された自動回復は、Game_BattlerクラスのonTurnEnd関数から呼び出されるregenerateAll関数で行われます。
onTurnEnd関数を上書きしてregenerateAll関数を呼ばないようにしてから、目的のタイミングでregenerateAll関数を呼ぶようにしてあげれば、自動回復のタイミングを変更できます。
ただし、デフォルトではマップ上で20歩歩いた場合にもターンエンド処理が走る仕様になっています。
HP再生率を設定していると、歩いているときにHPが回復するのはこのためです。
onTurnEnd関数の処理からregenerateAll関数の呼び出しを削除すると、マップ上を歩いても回復しなくなります。
戦闘の流れは複雑なので、どこで呼び出せばお望みのタイミングになるかというのはちょっと難しいですね。色々試してみてください。
なんとなくBattleManager.startInput辺りだと思います。
呼び出し方については、BattleManager.endTurnから各バトラーのonTurnEndが呼ばれているので、それが参考になります。
HP,MP,TP再生率で設定された自動回復は、Game_BattlerクラスのonTurnEnd関数から呼び出されるregenerateAll関数で行われます。
onTurnEnd関数を上書きしてregenerateAll関数を呼ばないようにしてから、目的のタイミングでregenerateAll関数を呼ぶようにしてあげれば、自動回復のタイミングを変更できます。
ただし、デフォルトではマップ上で20歩歩いた場合にもターンエンド処理が走る仕様になっています。
HP再生率を設定していると、歩いているときにHPが回復するのはこのためです。
onTurnEnd関数の処理からregenerateAll関数の呼び出しを削除すると、マップ上を歩いても回復しなくなります。
戦闘の流れは複雑なので、どこで呼び出せばお望みのタイミングになるかというのはちょっと難しいですね。色々試してみてください。
なんとなくBattleManager.startInput辺りだと思います。
呼び出し方については、BattleManager.endTurnから各バトラーのonTurnEndが呼ばれているので、それが参考になります。
【解決済】 再生率で設定した回復効果の発生タイミングを変更する方法
Plasma Dark 様
返信ありがとうございます
また、こちらの返信が遅くなり申し訳ありません
教えていただいた内容を参考にしながら試行錯誤してみたところ
なんとか自動回復のタイミングを変更する事が出来ました
この度はとても丁寧に教えていただきありがとうございました
おかげで自分のような素人にもなんとかなりました
とりあえずこれにて解決とさせていただきます、それでは失礼いたします
返信ありがとうございます
また、こちらの返信が遅くなり申し訳ありません
教えていただいた内容を参考にしながら試行錯誤してみたところ
なんとか自動回復のタイミングを変更する事が出来ました
この度はとても丁寧に教えていただきありがとうございました
おかげで自分のような素人にもなんとかなりました
とりあえずこれにて解決とさせていただきます、それでは失礼いたします