100TPに到達した時のカスタムインタラクション

皆さん、こんにちは。キャラクターがTP(タフネスポイント?)を100に達したときにカスタムイベントを発生させる方法はありますか?キャラクターが気絶したり、回復したりするイメージです。これはゲーム内で実装可能でしょうか、それともプラグインを使用する必要がありますか?

イベント処理でこの問題は解決できるはずです。MVの troop イベントの条件分岐や条件分岐ノードには TP に関するオプションがありませんが、スクリプト条件を使って確認することは可能です。

troop の戦闘イベントで、ページ条件を「ターン終了」に設定し、スパンを「ターン」にします。その後、スクリプトを使用して条件分岐を追加します:

$gameActors.actor(1).tp >= 100

分岐内では、状態変更でスタン状態にしたり、全回復で HP を戻したりできます。その後、TP 変更で TP を下げておくと、毎ターン再度発動するのを防げます。これは各ターンの終了時にチェックされるため、100 に達したターンの終了時に効果が適用されます。1 を確認したいアクターの ID に変更し、各アクターごとに分岐を追加してください。

troop イベントは、その troop に対してのみ実行されるため、すべての troop にコピーする必要があります。すべてを最新に保つのが難しいことは承知していますが、Yanfly の Base Troop Events プラグインを使えば、ベース troop に一度設定するだけですべての戦闘で実行されます:Base Troop Events (YEP) - Yanfly.moe Wiki

本当にありがとうございます!自分でもかなり近づいていたのですが、おかげで無事に動作させることができました!プラグインの推薦もありがとうございます!

まだ一つ問題があり、キャラクターに毎ターンTPが10%減少する設定にすると、ブランチがトリガーされません。システムを迂回するために、まずキャラクターにTPを10付与してから20減少させるという方法を試したのですが、残念ながらこれもうまくいきませんでした。ただ、今の状態でも十分満足しており、手持ちの設定でどうにかしようと思っています!

また、これを見てスタン機能などを使おうとしている方には、キャラクターがスタンループに陥らないよう、ブランチ内にTPの変更処理も追加することを推奨します。

改めて、Bazさん、ありがとうございました!

動いたようでよかったです!

その10%の減少がTP回復の特性によるものだとすると、ターン終了時の処理順序が関係しているのかもしれません。MVではまず再生処理が全キャラクターに適用され、その直後にターン終了の troop イベントが実行されるため、ターン中にTPが100に達したキャラクターでも、条件分岐がチェックされる時点ではすでに90に戻っている可能性があります。

もし減少が常に発生しているなら、条件を90でチェックすれば、100に達したターンを捉えることができるはずです:

$gameActors.actor(1).tp >= 90

ただし、減少量が変更される可能性がある場合は、この数値も変更する必要があります。別の方法としては、その特性を削除し、 troop イベント内で直接減少処理を行う方法があります。具体的には、条件分岐(Conditional Branch)の外側に「TPを10減少」を設定し、チェックが常に最初に行われるようにします。

tpの減少を別のバトルイベントとして試してみたら、うまく動きました!本当に助かりました!