こんにちは。
ドラムカン さんが書きました:いつもお世話になっております。
プラグインの以下のコードで定義されている配列アクターのうち、
一部をスクリプトで削除するにはどのようにしたらよいでしょうか。
コード: 全て選択
Game_Party.prototype.PScriptTest = function() {
return this._PScript.map(function(id) {
return $gameActors.actor(id);
}).filter(function(battler) {
return battler && battler.TScript();
}).sort(function(a, b) {
return a.testNumber() - b.testNumber();
});
};
$gameParty.PScriptTest ()を変数に入れてconsole.logに出したデータが以下になります。
赤枠で囲っているデータを削除する方法が知りたいです。
1112121.png
以下のコールバック関数を使用して、
標的となるアクターの配列を限定することはできましたが、それを削除する方法が分かりません。
コード: 全て選択
var result = $gameParty.PScriptTest().filter(function(value, index, array) {
return value === $gameActors.actor(13)
})
console.log(result);
JSとツクールMVにお詳しい方のご教示がいただけましたら幸いです。
どうかよろしくお願いいたします。
質問内容は、イベントで
コード: 全て選択
◆変数の操作:#0362 = $gameParty.PScriptTest()
などとして、$gameParty.PScriptTest()の結果を変数ID:0362に格納すると、
変数ID:0362 に、いらないアクター13番のデータが入っているので、
変数ID:0362 の内容にアクター 13番のデータが含まれないようにしたい。
ということでよろしいでしょうか。
コード: 全て選択
var result = $gameParty.PScriptTest().filter(function(value, index, array) {
return value === $gameActors.actor(13)
})
console.log(result);
この処理をかけているのなら、答えにたどり着きそうなのですが、
この内容、filter 関数がどういう処理をしているか把握できているでしょうか。
filter 関数は、配列のそれぞれの要素に対して、
指定されたコールバック関数を実行し、true を返してきた要素を抽出した配列を返却するという関数です。
上記の場合、配列の要素が $gameActors.actor(13) (アクター13番のゲーム中のデータ)と一致するものを抽出して取得しています。
なので、この処理を $gameActors.actor(13) と一致しないものを抽出するように変更すれば、アクター13番の情報が含まれない配列を取得できるはずです。
なので、変数に格納するときに filter 関数で、 この内容のフィルタをかければよいのではないでしょうか。
質問内容を読み間違えていたらすみません。