パーティ番号Xの味方が「行動可能か/行動制約のあるステートにかかっていないか」を調べるスクリプト
Posted: 2016年11月03日(木) 10:37
エディタのイベントコマンド「戦闘行動の強制」は便利ですが、そのキャラが行動制約のあるステートにかかっていても強制発動してしまうため、
例えば「睡眠」ステート時でも、実行してしまいます。
その条件分岐を簡略化出来ないかと思い、色々探していました。
エディタにありそうでない……ので、欲しくって、簡単ですが作ってみました。
変数名を自由に変えて、コモンイベントのスクリプトなどにコピペしてお使いください。
プラグイン化してもらっても構いません。
======================================================================================
パーティ番号Xの味方が「行動可能か/行動制約のあるステートにかかっていないか」を調べるスクリプト
======================================================================================
=================================================================================
きれいに書けば1行で書けるのかもしれませんが、それだと予期せぬタイミングで呼び出されてエラーになることが多いので……。
例外処理がかなり苦労したので、誰かのためになれば…と思い、自分用のメモですが、公開します。
くらむぼんさんのお力添えに感謝です。
例えば「睡眠」ステート時でも、実行してしまいます。
その条件分岐を簡略化出来ないかと思い、色々探していました。
エディタにありそうでない……ので、欲しくって、簡単ですが作ってみました。
変数名を自由に変えて、コモンイベントのスクリプトなどにコピペしてお使いください。
プラグイン化してもらっても構いません。
======================================================================================
パーティ番号Xの味方が「行動可能か/行動制約のあるステートにかかっていないか」を調べるスクリプト
======================================================================================
コード: 全て選択
// X=1029。スイッチ1029に行動可能ならON、OFFなら、何らかの行動制約のあるステートにかかっている、というようにします。
$gameSwitches.setValue(1029, true);
// 変数1029で指定したパーティ番号の味方が行動可能かは、以下でとれます。
var _actorId = $gameParty._actors[$gameVariables.value(1029) - 1];
if($gameActors.actor(_actorId) != null){ // アクターIDでとりたいなら、ここからでいいよ
var _states = $gameActors.actor(_actorId).states();
if(_states != null && _states.length > 0){ // 注意:alert(_states);で、何もステートにかかってないと配列数0のArray[]になるよ
var _canAct = _states.some(function(state) {return !(state.restriction); }); // restrictionは行動制約のあるステートだよ。だから!で反転してるよ
$gameSwitches.setValue(1029, _canAct);
}
}
コード: 全て選択
// 確認だよ。
if($gameActors.actor(_actorId) != null){
alert("変数1029の味方パーティ番号:#"+$gameVariables.value(1029)+": アクターID"+_actorId+"("+$dataActors[_actorId].name+")が行動可能か : "+$gameSwitches.value(1029));
}else{
alert("変数1029に指定したパーティ番号のアクターがnullかundefinedだよ。");
}
きれいに書けば1行で書けるのかもしれませんが、それだと予期せぬタイミングで呼び出されてエラーになることが多いので……。
例外処理がかなり苦労したので、誰かのためになれば…と思い、自分用のメモですが、公開します。
くらむぼんさんのお力添えに感謝です。