味方アクターに「自動戦闘」をつけた際、行動はその結果(与ダメ等)を事前に評価して決定される。
つまりそこそこ賢く戦ってくれるというわけだ。
(自動戦闘についてはこの記事が非常に参考になった)
だが、むしろ頭が悪い方がありがたいという場合もある。
その場合は、以下のコードで行動を完全にランダムにすることができる。
(自前のプラグインなどにつっこもう)
単純にランダムに
Game_Action.prototype.evaluate = function() {
return Math.random();
};
以下のように色々いじくれば、条件や優先度を設定することもできる。
特定アクターのみランダム
var _Game_Action_evaluate = Game_Action.prototype.evaluate;
Game_Action.prototype.evaluate = function() {
// 72番のアクターのみランダム
if(this._subjectActorId == 72) {
return Math.random();
}
return _Game_Action_evaluate.call(this);
};
特定スキルは優先
Game_Action.prototype.evaluate = function() {
var val = Math.random();
// Skill68番を優先
if(this.isSkill() && this._item._itemId == 68) {
val *= 2;
}
return val;
};