LoginSignup
2
0

More than 5 years have passed since last update.

自動戦闘時の行動を完全にランダムにする

Posted at

味方アクターに「自動戦闘」をつけた際、行動はその結果(与ダメ等)を事前に評価して決定される。
つまりそこそこ賢く戦ってくれるというわけだ。
(自動戦闘についてはこの記事が非常に参考になった)

だが、むしろ頭が悪い方がありがたいという場合もある。
その場合は、以下のコードで行動を完全にランダムにすることができる。
(自前のプラグインなどにつっこもう)

単純にランダムに
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;
};
2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0