【解決済】:戦闘中のコマンド変化について

もうぞ

ユーザー
有効なテクニックやプラグインをご存知の方がいらっしゃいましたら、是非アドバイスを頂ければと思います。
もし過去に似たような情報が上がっていたら自分の検索不足です。すみません。

戦闘中のコマンド変化を考えています。
近いものを例示すると、FF7のリミット技や、FF8の特殊技のような限定条件下で使用可能になるコマンドです。
スキルウィンドウ内等にスキルとして常にグレーアウト表示されていて、TP等が一定値以上になったらアクティブ表示に切り替わる…というものではなく、『攻撃』『スキル』『防御』『アイテム』といった基本コマンドのような表示で、普段は非表示で条件を満たした時のみ現れるというものを想定しています。
スキルそのものをコマンドとして表示するのは、HIME_BattleCommandUseSkillのプラグインにて出来ましたが、戦闘中の入れ替えがどうしてもできません。
最悪、職業の変更等で対応しようとも思いましたが、自分の知識ではイベントシーンでの演出的な演出が関の山でした。
戦闘システムはYEP_BattleEngineCoreにて、サイドビューのCTBを使用しております。
よろしくお願いいたします。
 
こんばんは。
イベントでそれらしくやる方法が、あることにはあります。

まず、表示と非表示を切り替えるにはステートを利用します。
009.png
リミット技を使えるステートは、今回『リミット追加』としました。
ステートの特徴にスキルタイプ追加を入れます。追加するスキルタイプは、今回は『リミット』としました。
リミットで使えるスキルはアクターにあらかじめ覚えさせておいて構いません。

これで、このステートを付けたり外したりすることでスキル選択画面(戦闘コマンドやメニュー)で『リミット』の表示・非表示を自由に切り替えられるようになります。


次に、バトルイベントに仕込みをします。
010.png
①条件:ターン0  スパン:バトル
≪実行内容≫
◆変数の操作:#0451 アクターID = 0
◆ループ
◆変数の操作:#0451 アクターID += 1
◆変数の操作:#0450 TP = $gameActors.actor($gameVariables.value(451)).tp
◆条件分岐:TP ≥ 100
◆条件分岐:アクターID = 2
◆ステートの変更:アルト, + リミット追加

:分岐終了
◆条件分岐:アクターID = 3
◆ステートの変更:ロッテ, + リミット追加

:分岐終了

:それ以外のとき
◆条件分岐:アクターID = 2
◆ステートの変更:アルト, - リミット追加

:分岐終了
◆条件分岐:アクターID = 3
◆ステートの変更:ロッテ, - リミット追加

:分岐終了

:分岐終了
◆条件分岐:アクターID = 3
◆ループの中断

:分岐終了

:以上繰り返し


②条件:ターン終了  スパン:ターン
≪実行内容≫
同上


ループの中身は、ゲームに登場するアクターの数だけ分岐をコピペしていきます。最後の終了条件は、ゲームに登場する末番号にします。これで、全てのアクターIDを舐めて、条件を満たした者(今回はTP100以上)にリミットスキルを解放させます。TPが100を切ったら再度使えなくしています。
イベントは0ターン目と毎ターン終了時で同じイベントを実行させます。最初のターンでリミットを使える状況が存在しない場合は、0ターン目のイベントは不要です。

このイベントで、毎ターン終了時にリミットを利用できる条件を満たしているかどうかを判定します。デフォルト戦闘では、基本的にターン開始時(コマンド選択の段階)でTP変動の要素が存在しないため、ターン終了時のみ判定できれば見かけ上の問題はクリアできます。

しかし、上記の方法はあくまでデフォルトの戦闘を想定したやり方ですので、違う戦闘形式(たとえばATB等)やクイックなどターン経過しないでTPが溜まる、といった要素がある場合では、イベント内容をコモンイベントなどに組み込んでスキルの追加効果に入れるなど、何らかの方法で挿入する必要が出てきます。


以上、参考になれば幸いです。
 
最後に編集:

もうぞ

ユーザー
ネコタ様、アドバイスありがとうございます。
CTBを採用しているので、ネコタ様の言う通りコモンイベント絡みで模索するのが現実的なのでしょうかね…
職業切り替えを絡めたコモンイベントでの実現を再び検討してみます。
TP量による条件分岐記述等参考にさせていただきます。
改めてありがとうございました。
 

もうぞ

ユーザー
ステート等に絡めて自由にコマンドの付け外しが出来るプラグインを発見しました。
自己解決できましたので質問を終了とさせていただきます。
 
トップ