トピックお借りします。
戦闘の処理、から始まるイベント戦等で
強制的に先制攻撃、もしくは不意打ちにするにはどうすればよいでしょうか?
スクリプトを調べましたが方法を見つけることができず、お力をお貸しいただければ幸いです。
【解決済み】手動で先制、不意打ち判定
【解決済み】手動で先制、不意打ち判定
最後に編集したユーザー カトウ [ 2017年8月31日(木) 23:17 ], 累計 1 回
Re: 手動で先制、不意打ち判定
フロア様
お世話になります。
こちらのトピックで公開しているプラグインが有効だと思います。
http://tm.yumineko.com/viewtopic.php?f= ... 142#p12142
お世話になります。
こちらのトピックで公開しているプラグインが有効だと思います。
http://tm.yumineko.com/viewtopic.php?f= ... 142#p12142
RPGで笑顔を・・・
ツイッター(ツクラーの巣窟)(閲覧は自己責任でお願いします)
https://twitter.com/mattuup
github
https://github.com/mattuup/RPGMakerMZ
ツイッター(ツクラーの巣窟)(閲覧は自己責任でお願いします)
https://twitter.com/mattuup
github
https://github.com/mattuup/RPGMakerMZ
Re: 手動で先制、不意打ち判定
不意打ち・先制の判定は以下の処理でチェックされています。
var battlers =[]とあるのは、これから行動を行うアクター・エネミーの一覧を格納する配列です。
不意打ちフラグがOFFなら、アクター(&gameParty.members())を追加。
先制フラグがOFFならエネミー($gameTroop.members())を追加となっています。
おそらく、0ターン目のバトルイベントにスクリプトでBattleManager._surprise=treuとでも書けば、不意打ちが発生すると思います。
戦闘開始時に特定のコモンイベントを呼び出すようなプラグインを導入し、そのプラグインで上記のフラグを変更すればよいでしょう。
コード: 全て選択
BattleManager.makeActionOrders = function() {
var battlers = [];
if (!this._surprise) {
battlers = battlers.concat($gameParty.members());
}
if (!this._preemptive) {
battlers = battlers.concat($gameTroop.members());
}
battlers.forEach(function(battler) {
battler.makeSpeed();
});
battlers.sort(function(a, b) {
return b.speed() - a.speed();
});
this._actionBattlers = battlers;
};
不意打ちフラグがOFFなら、アクター(&gameParty.members())を追加。
先制フラグがOFFならエネミー($gameTroop.members())を追加となっています。
おそらく、0ターン目のバトルイベントにスクリプトでBattleManager._surprise=treuとでも書けば、不意打ちが発生すると思います。
戦闘開始時に特定のコモンイベントを呼び出すようなプラグインを導入し、そのプラグインで上記のフラグを変更すればよいでしょう。
現在、プラグイン依頼はお休み中です。
Re: 手動で先制、不意打ち判定
まっつUP様、しぐれん様迅速なご回答をありがとうございました。
教えて頂きました方法を試したところ、無事に実行することができました。
MVに移行してからコードが全く読み取れなくなってしまい、苦労していたので
本当に助かりました。
こちらのトピックは解決済みとさせていただきます。
教えて頂きました方法を試したところ、無事に実行することができました。
MVに移行してからコードが全く読み取れなくなってしまい、苦労していたので
本当に助かりました。
こちらのトピックは解決済みとさせていただきます。