【解決済み】[ターン0]に[戦闘行動の強制]を行った場合のターン経過処理について

ファリ

ユーザー
いつもお世話になっております。

敵グループの設定において、
【バトルイベント:ターン0】のタイミングで【戦闘行動の強制】によって
プレイヤーキャラがエネミーを攻撃するスキルを発動させると、
敵キャラの設定において、
【行動パターン】で規定ターンごとに行うよう設定した行動のターンがズレてしまいます。

例えば、エネミーAが5ターンごとに大技を繰り出すように設定していても、
プレイヤーキャラが【ターン0】に【戦闘行動の強制】で先制攻撃をしかけるようにすると、
エネミーAの大技は4ターン目に行われてしまいます。

恐らく【ターン0】に【戦闘行動の強制】でプレイヤーキャラを動かした結果、
ターンが経過してしまっているのだと思いますが、この処理に対する対策はありませんでしょうか?

駄文なため分かりずらい説明となり申し訳ありませんが、
お知恵を貸していただければと存じます。
どうぞよろしくお願いいたします。
 
この説明だけ聞くと、1ターン挟まる前提でターン数を調整すればいいのでは?と思います。
すなわち、今 5+5*X にしているのであれば 6+5*X にする方法です。

他の方法としては、スクリプトで $gameTroop._turnCount = 0; でターン数は代入できるので、
これをターン0のバトルイベントの最後に入れれば、ターン数はリセットされて始まるように思います。
(このスクリプトでターンがリセットされるのは確認していますが、ターン0の時の戦闘行動の強制に効果があるかは未検証)
 
返信ありがとうございます。

① 5+5*X にしているのであれば 6+5*X にする方法
 この方法の場合、戦闘行動の強制によってターン0で発動するスキルを覚えていない状況だと、
 5ターン目ではなく6ターン目の発動になってしまうため、他の方法を模索しております。
 説明不足で申し訳ありません。

②スクリプトでターンをリセットする方法
 戦闘行動の強制によってターン0でスキルを発動した場合、
 ターンはリセットできていないようでした。
 もしくは、ターンはリセットされていてもエネミーの行動には変化がなく、
 5ターン目ではなく、4ターン目にエネミーが指定の行動をしてしまいました。
 
最後に編集:
そもそもMVには、最初のターンが1ではなく0からカウントされる罠仕様があるようです。
複数の話題が入り交じっているので分かりづらいですが、ターン数が0始まりであることと、戦闘行動の強制を行うと1ターン余計に経過してしまう旨が書かれています。
他に言及している記事があまり見つけられなくて、にわかには信じがたいのですが、
手元で検証してみてもそのような挙動なので、皆さんそういうものと承知して使われてるんですかね……。

それはさておき、ターン0のバトルイベントの最後にスクリプトで $gameTroop._turnCount = 1; を入れれば、
戦闘行動の強制の有無にかかわらず最初に1ターン目の行動をしてきたので、
これで解決するのではないかと思います。
 
ご回答ありがとうございます。
ご提案頂いた方法を試させていただきました。
確かに戦闘行動の強制の有無にかかわらず同じターンに指定の行動をエネミーがとるようになりました。

ただ、別の問題が発生してしまいました。
現在、Yana様のTurnWindowというプラグインを利用させていただいているのですが、
ご提案の処理を行うと内部のターン処理は1ターン進んでいるのか、表示されるターン数が2になるようになってしまいました。

色々と試したのですがどうしても解決できず、
どうかご助力いただけますと幸いです…。
 
そのプラグインのことは知らないのですが、表示だけの問題であれば、
ターン数を表示している部分を突き止めて、-1してやれば済むのではないかと思います。
 
回答いただきありがとうございます。

それは考えて試してみました。
恐らくturnCountと記載のある部分かと思い、
色々弄ったのですが残念ながら上手く機能しませんでした。
 
「色々」の中身が分からないのでこれ以上はアドバイスできかねるのですが、
本来であればターン数カウントの仕組みをFixすべきもののような気もします。
おそらく既に現状の前提で組まれてしまっているので、今さら公式でも修正できない、ということだとは推測していますが。

先述のスレッドの先に、これをFixするパッチが提供されているように、斜め読みした限りでは見えました。
斜め読みしただけなので、違うかもしれませんが……。
 
記載いただいたスレッドには戦闘行動の強制をするとターン終了時の処理が重なるなどの問題を解決する方法は記載されておりました。
私もそちらの問題には直面し、有志の方々が作成して下さっていたプラグインを利用することで解決できました。
ただ、今回の問題の解決策とは異なると思われます。

また、ご提案頂いた方法だと、戦闘時にターンをカウントしていた変数も1前倒しになってカウントされておりました。
やはり1ターンズレてしまうのは避けられないようです。

変数や行動パターンだけなら1ターンカウントを遅らせられるのですが、
ターン表示がズレてしまうのは問題なため、他に解決策がないか模索するしかないようです…。

ただ、標題部分はご提案頂いた方法で解決できましたので、
この質問は解決済みとさせていただきます。
何度もご回答いただき、ありがとうございました。
 
最後に編集:
Back
トップ