code:
//=============================================================================
// EnemyBook.js
//=============================================================================

/*:
 * @plugindesc Displays detailed statuses of enemies.
 * @author Yoji Ojima
 *
 * @param Unknown Data
 * @desc The index name for an unknown enemy.
 * @default ??????
 *
 * @help
 *
 * Plugin Command:
 *   EnemyBook open         # Open the enemy book screen
 *   EnemyBook add 3        # Add enemy #3 to the enemy book
 *   EnemyBook remove 4     # Remove enemy #4 from the enemy book
 *   EnemyBook complete     # Complete the enemy book
 *   EnemyBook clear        # Clear the enemy book
 *
 * Enemy Note:
 *   <desc1:foobar>         # Description text in the enemy book, line 1
 *   <desc2:blahblah>       # Description text in the enemy book, line 2
 *   <book:no>              # This enemy does not appear in the enemy book
 */

/*:ja
 * @plugindesc モンスター図鑑です。敵キャラの詳細なステータスを表示します。
 * @author Yoji Ojima
 *
 * @param Unknown Data
 * @desc 未確認の敵キャラの索引名です。
 * @default ？？？？？？
 *
 * @help
 *
 * プラグインコマンド:
 *   EnemyBook open         # 図鑑画面を開く
 *   EnemyBook add 3        # 敵キャラ３番を図鑑に追加
 *   EnemyBook remove 4     # 敵キャラ４番を図鑑から削除
 *   EnemyBook complete     # 図鑑を完成させる
 *   EnemyBook clear        # 図鑑をクリアする
 *
 * 敵キャラのメモ:
 *   <desc1:なんとか>       # 説明１行目
 *   <desc2:かんとか>       # 説明２行目
 *   <book:no>              # 図鑑に載せない場合
 */

(function () {
  var parameters = PluginManager.parameters("EnemyBook");
  var unknownData = String(parameters["Unknown Data"] || "??????");

  var _Game_Interpreter_pluginCommand =
    Game_Interpreter.prototype.pluginCommand;
  Game_Interpreter.prototype.pluginCommand = function (command, args) {
    _Game_Interpreter_pluginCommand.call(this, command, args);
    if (command === "EnemyBook") {
      switch (args[0]) {
        case "open":
          SceneManager.push(Scene_EnemyBook);
          break;
        case "add":
          $gameSystem.addToEnemyBook(Number(args[1]));
          break;
        case "remove":
          $gameSystem.removeFromEnemyBook(Number(args[1]));
          break;
        case "complete":
          $gameSystem.completeEnemyBook();
          break;
        case "clear":
          $gameSystem.clearEnemyBook();
          break;
      }
    }
  };

  Game_System.prototype.addToEnemyBook = function (enemyId) {
    if (!this._enemyBookFlags) {
      this.clearEnemyBook();
    }
    this._enemyBookFlags[enemyId] = true;
  };

  Game_System.prototype.removeFromEnemyBook = function (enemyId) {
    if (this._enemyBookFlags) {
      this._enemyBookFlags[enemyId] = false;
    }
  };

  Game_System.prototype.completeEnemyBook = function () {
    this.clearEnemyBook();
    for (var i = 1; i < $dataEnemies.length; i++) {
      this._enemyBookFlags[i] = true;
    }
  };

  Game_System.prototype.clearEnemyBook = function () {
    this._enemyBookFlags = [];
  };

  Game_System.prototype.isInEnemyBook = function (enemy) {
    if (this._enemyBookFlags && enemy) {
      return !!this._enemyBookFlags[enemy.id];
    } else {
      return false;
    }
  };

  var _Game_Troop_setup = Game_Troop.prototype.setup;
  Game_Troop.prototype.setup = function (troopId) {
    _Game_Troop_setup.call(this, troopId);
    this.members().forEach(function (enemy) {
      if (enemy.isAppeared()) {
        $gameSystem.addToEnemyBook(enemy.enemyId());
      }
    }, this);
  };

  var _Game_Enemy_appear = Game_Enemy.prototype.appear;
  Game_Enemy.prototype.appear = function () {
    _Game_Enemy_appear.call(this);
    $gameSystem.addToEnemyBook(this._enemyId);
  };

  var _Game_Enemy_transform = Game_Enemy.prototype.transform;
  Game_Enemy.prototype.transform = function (enemyId) {
    _Game_Enemy_transform.call(this, enemyId);
    $gameSystem.addToEnemyBook(enemyId);
  };

  function Scene_EnemyBook() {
    this.initialize.apply(this, arguments);
  }

  Scene_EnemyBook.prototype = Object.create(Scene_MenuBase.prototype);
  Scene_EnemyBook.prototype.constructor = Scene_EnemyBook;

  Scene_EnemyBook.prototype.initialize = function () {
    Scene_MenuBase.prototype.initialize.call(this);
  };

  Scene_EnemyBook.prototype.create = function () {
    Scene_MenuBase.prototype.create.call(this);
    this._indexWindow = new Window_EnemyBookIndex(0, 0);
    this._indexWindow.setHandler("cancel", this.popScene.bind(this));
    var wy = this._indexWindow.height;
    var ww = Graphics.boxWidth;
    var wh = Graphics.boxHeight - wy;
    this._statusWindow = new Window_EnemyBookStatus(0, wy, ww, wh);
    this.addWindow(this._indexWindow);
    this.addWindow(this._statusWindow);
    this._indexWindow.setStatusWindow(this._statusWindow);
  };

  function Window_EnemyBookIndex() {
    this.initialize.apply(this, arguments);
  }

  Window_EnemyBookIndex.prototype = Object.create(Window_Selectable.prototype);
  Window_EnemyBookIndex.prototype.constructor = Window_EnemyBookIndex;

  Window_EnemyBookIndex.lastTopRow = 0;
  Window_EnemyBookIndex.lastIndex = 0;

  Window_EnemyBookIndex.prototype.initialize = function (x, y) {
    var width = Graphics.boxWidth;
    var height = this.fittingHeight(6);
    Window_Selectable.prototype.initialize.call(this, x, y, width, height);
    this.refresh();
    this.setTopRow(Window_EnemyBookIndex.lastTopRow);
    this.select(Window_EnemyBookIndex.lastIndex);
    this.activate();
  };

  Window_EnemyBookIndex.prototype.maxCols = function () {
    return 3;
  };

  Window_EnemyBookIndex.prototype.maxItems = function () {
    return this._list ? this._list.length : 0;
  };

  Window_EnemyBookIndex.prototype.setStatusWindow = function (statusWindow) {
    this._statusWindow = statusWindow;
    this.updateStatus();
  };

  Window_EnemyBookIndex.prototype.update = function () {
    Window_Selectable.prototype.update.call(this);
    this.updateStatus();
  };

  Window_EnemyBookIndex.prototype.updateStatus = function () {
    if (this._statusWindow) {
      var enemy = this._list[this.index()];
      this._statusWindow.setEnemy(enemy);
    }
  };

  Window_EnemyBookIndex.prototype.refresh = function () {
    this._list = [];
    for (var i = 1; i < $dataEnemies.length; i++) {
      var enemy = $dataEnemies[i];
      if (enemy.name && enemy.meta.book !== "no") {
        this._list.push(enemy);
      }
    }
    this.createContents();
    this.drawAllItems();
  };

  Window_EnemyBookIndex.prototype.drawItem = function (index) {
    var enemy = this._list[index];
    var rect = this.itemRectForText(index);
    var name;
    if ($gameSystem.isInEnemyBook(enemy)) {
      name = enemy.name;
    } else {
      name = unknownData;
    }
    this.drawText(name, rect.x, rect.y, rect.width);
  };

  Window_EnemyBookIndex.prototype.processCancel = function () {
    Window_Selectable.prototype.processCancel.call(this);
    Window_EnemyBookIndex.lastTopRow = this.topRow();
    Window_EnemyBookIndex.lastIndex = this.index();
  };

  function Window_EnemyBookStatus() {
    this.initialize.apply(this, arguments);
  }

  Window_EnemyBookStatus.prototype = Object.create(Window_Base.prototype);
  Window_EnemyBookStatus.prototype.constructor = Window_EnemyBookStatus;

  Window_EnemyBookStatus.prototype.initialize = function (x, y, width, height) {
    Window_Base.prototype.initialize.call(this, x, y, width, height);
    this._enemy = null;
    this._enemySprite = new Sprite();
    this._enemySprite.anchor.x = 0.5;
    this._enemySprite.anchor.y = 0.5;
    this._enemySprite.x = width / 2 - 20;
    this._enemySprite.y = height / 2;
    this.addChildToBack(this._enemySprite);
    this.refresh();
  };

  Window_EnemyBookStatus.prototype.setEnemy = function (enemy) {
    if (this._enemy !== enemy) {
      this._enemy = enemy;
      this.refresh();
    }
  };

  Window_EnemyBookStatus.prototype.update = function () {
    Window_Base.prototype.update.call(this);
    if (this._enemySprite.bitmap) {
      var bitmapHeight = this._enemySprite.bitmap.height;
      var contentsHeight = this.contents.height;
      var scale = 1;
      if (bitmapHeight > contentsHeight) {
        scale = contentsHeight / bitmapHeight;
      }
      this._enemySprite.scale.x = scale;
      this._enemySprite.scale.y = scale;
    }
  };

  Window_EnemyBookStatus.prototype.refresh = function () {
    var enemy = this._enemy;
    var x = 0;
    var y = 0;
    var lineHeight = this.lineHeight();

    this.contents.clear();

    if (!enemy || !$gameSystem.isInEnemyBook(enemy)) {
      this._enemySprite.bitmap = null;
      return;
    }

    var name = enemy.battlerName;
    var hue = enemy.battlerHue;
    var bitmap;
    if ($gameSystem.isSideView()) {
      bitmap = ImageManager.loadSvEnemy(name, hue);
    } else {
      bitmap = ImageManager.loadEnemy(name, hue);
    }
    this._enemySprite.bitmap = bitmap;

    this.resetTextColor();
    this.drawText(enemy.name, x, y);

    x = this.textPadding();
    y = lineHeight + this.textPadding();

    for (var i = 0; i < 8; i++) {
      this.changeTextColor(this.systemColor());
      this.drawText(TextManager.param(i), x, y, 160);
      this.resetTextColor();
      this.drawText(enemy.params[i], x + 160, y, 60, "right");
      y += lineHeight;
    }

    var rewardsWidth = 280;
    x = this.contents.width - rewardsWidth;
    y = lineHeight + this.textPadding();

    this.resetTextColor();
    this.drawText(enemy.exp, x, y);
    x += this.textWidth(enemy.exp) + 6;
    this.changeTextColor(this.systemColor());
    this.drawText(TextManager.expA, x, y);
    x += this.textWidth(TextManager.expA + "  ");

    this.resetTextColor();
    this.drawText(enemy.gold, x, y);
    x += this.textWidth(enemy.gold) + 6;
    this.changeTextColor(this.systemColor());
    this.drawText(TextManager.currencyUnit, x, y);

    x = this.contents.width - rewardsWidth;
    y += lineHeight;

    for (var j = 0; j < enemy.dropItems.length; j++) {
      var di = enemy.dropItems[j];
      if (di.kind > 0) {
        var item = Game_Enemy.prototype.itemObject(di.kind, di.dataId);
        this.drawItemName(item, x, y, rewardsWidth);
        y += lineHeight;
      }
    }

    var descWidth = 480;
    x = this.contents.width - descWidth;
    y = this.textPadding() + lineHeight * 7;
    this.drawTextEx(enemy.meta.desc1, x, y + lineHeight * 0, descWidth);
    this.drawTextEx(enemy.meta.desc2, x, y + lineHeight * 1, descWidth);
  };
})();


code:
//=============================================================================
// Escape100.js
//=============================================================================
/*:
 * @plugindesc 逃げる成功率を100%にする
 * @author みこと
 *
 * @param escapeSwitche
 * @desc 逃げる成功率を100%にするスイッチの番号
 * @default 10
 *
 * @help 指定のスイッチがONになっている間、戦闘コマンド『逃げる』を必ず成功させます。
 * ただしバトルの処理で『逃走可能』にチェックが入っていない場合は逃げられません。
 *
 * このプラグインには、プラグインコマンドはありません。
 */

(function () {
  var parameters = PluginManager.parameters("Escape100");
  BattleManager.processEscape = function () {
    $gameParty.performEscape();
    SoundManager.playEscape();
    var success = this._preemptive ? true : Math.random() < this._escapeRatio;
    if (success || $gameSwitches.value(parameters["escapeSwitche"])) {
      this.displayEscapeSuccessMessage();
      this._escaped = true;
      this.processAbort();
    } else {
      this.displayEscapeFailureMessage();
      this._escapeRatio += 0.1;
      $gameParty.clearActions();
      this.startTurn();
    }
    return success;
  };
})();

repo_name: dazed/translations

license: unknown


code:
//
//  素材削除回避プラグイン ver1.01
//
// author yana
//

var Imported = Imported || {};
Imported["ExcludeAvoidance"] = 1.01;

/*:
 * @plugindesc ver1.01/素材削除機能で削除されるのを防ぐため、プラグインで定義のみを行います。
 * @author Yana
 *
 * @param File00
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File01
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File02
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File03
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File04
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File05
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File06
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File07
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File08
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File09
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File10
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File11
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File12
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File13
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File14
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File15
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File16
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File17
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File18
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File19
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File20
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File21
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File22
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File23
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File24
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File25
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File26
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File27
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File28
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File29
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File30
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File31
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File32
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File33
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File34
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File35
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File36
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File37
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File38
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File39
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File40
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File41
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File42
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File43
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File44
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File45
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File46
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File47
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File48
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File49
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File50
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File51
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File52
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File53
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File54
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File55
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File56
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File57
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File58
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File59
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File60
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File61
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File62
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File63
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File64
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File65
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File66
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File67
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File68
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File69
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File70
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File71
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File72
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File73
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File74
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File75
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File76
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File77
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File78
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File79
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File80
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File81
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File82
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File83
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File84
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File85
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File86
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File87
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File88
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File89
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File90
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File91
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File92
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File93
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File94
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File95
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File96
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File97
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File98
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @param File99
 * @desc 削除を回避するファイル。
 * @default
 * @require 1
 * @dir
 * @type file
 *
 * @help------------------------------------------------------
 * プラグインコマンドはありません。
 * ------------------------------------------------------
 * 素材削除を回避するためにファイル名を定義しておくだけのプラグインです。
 * img/pictures/test
 * など、パス付で登録してください。
 * ------------------------------------------------------
 * 更新履歴:
 * ver1.01:
 * 30~39番が重複して定義されていたのを修正。
 * ver1.00:
 * 公開
 *
 */


code:
//
//  経験値テーブル設定 ver1.00
//
// ------------------------------------------------------
// Copyright (c) 2016 Yana
// Released under the MIT license
// http://opensource.org/licenses/mit-license.php
// ------------------------------------------------------
//
// author Yana
//

var Imported = Imported || {};
Imported["ExpTableSet"] = 1.0;

/*:
 * @target MZ MV
 * @url https://raw.githubusercontent.com/munokura/Yana-MV-plugins/master/Class/ExpTableSet.js
 * @plugindesc ver1.00/経験値テーブルを個別に設定できるようにします。
 * @author Yana
 *
 * @help
 * ------------------------------------------------------
 *  プラグインコマンドはありません。
 * ------------------------------------------------------
 * ------------------------------------------------------
 * 設定方法
 * ------------------------------------------------------
 *
 * 職業のメモ欄に
 * <経験値テーブル:x>
 * と記述すると、その職業の経験値テーブルをx番のテーブルに変更します。
 *
 * 経験値は次のレベルまでに必要な値をカンマ区切りで10項目ずつ並べてください。
 *
 * ------------------------------------------------------
 * 利用規約
 * ------------------------------------------------------
 * 当プラグインはMITライセンスで公開されています。
 * 使用に制限はありません。商用、アダルト、いずれにも使用できます。
 * 二次配布も制限はしませんが、サポートは行いません。
 * 著作表示は任意です。行わなくても利用できます。
 * 要するに、特に規約はありません。
 * バグ報告や使用方法等のお問合せはネ実ツクールスレ、
 * または、Twitterにお願いします。
 * https://twitter.com/yanatsuki_
 * 素材利用は自己責任でお願いします。
 * ------------------------------------------------------
 * 更新履歴:
 * ver1.00:
 * 公開
 *
 * @param Table Key
 * @text メモタグキー
 * @desc 読み取りに使う正規表現です。
 * 特に理由がない限り、変更する必要はありません。
 * @default <経験値テーブル:(\d+)>
 *
 * @param Table1
 * @text テーブル1
 *
 * @param Table1-0
 * @parent Table1
 * @text テーブル1-0
 * @desc テーブル1、Lv1から9のNextです。
 * 0番目と1番目は0を指定してください。
 * @default 0,0,10,20,30,40,110,120,130,140
 *
 * @param Table1-1
 * @parent Table1
 * @text テーブル1-1
 * @desc テーブル1、Lv10から19のNextです。
 * @default 500,550,600,650,700,2500,2750,3000,3250,3500
 * @param Table1-2
 * @parent Table1
 * @text テーブル1-2
 * @desc テーブル1、Lv20から29のNextです。
 * @default 12500,13750,15000,16250,17500,62500,68750,75000,81250,87500
 *
 * @param Table1-3
 * @parent Table1
 * @text テーブル1-3
 * @desc テーブル1、Lv30から39のNextです。
 * @default 99999,99999,99999,99999,99999,99999,99999,99999,99999,99999
 *
 * @param Table1-4
 * @parent Table1
 * @text テーブル1-4
 * @desc テーブル1、Lv40から49のNextです。
 * @default 99999,99999,99999,99999,99999,99999,99999,99999,99999,99999
 *
 * @param Table1-5
 * @parent Table1
 * @text テーブル1-5
 * @desc テーブル1、Lv50から59のNextです。
 * @default 99999,99999,99999,99999,99999,99999,99999,99999,99999,99999
 *
 * @param Table1-6
 * @parent Table1
 * @text テーブル1-6
 * @desc テーブル1、Lv60から69のNextです。
 * @default 99999,99999,99999,99999,99999,99999,99999,99999,99999,99999
 *
 * @param Table1-7
 * @parent Table1
 * @text テーブル1-7
 * @desc テーブル1、Lv70から79のNextです。
 * @default 99999,99999,99999,99999,99999,99999,99999,99999,99999,99999
 *
 * @param Table1-8
 * @parent Table1
 * @text テーブル1-8
 * @desc テーブル1、Lv80から89のNextです。
 * @default 99999,99999,99999,99999,99999,99999,99999,99999,99999,99999
 *
 * @param Table1-9
 * @parent Table1
 * @text テーブル1-9
 * @desc テーブル1、Lv90から99のNextです。
 * @default 99999,99999,99999,99999,99999,99999,99999,99999,99999,99999
 *
 * @param Table2
 * @text テーブル2
 *
 * @param Table2-0
 * @parent Table2
 * @text テーブル2-0
 * @desc テーブル2、Lv1から9のNextです。
 * 0番目と1番目は0を指定してください。
 * @default 0,0,10,20,30,50,100,200,300,500
 *
 * @param Table2-1
 * @parent Table2
 * @text テーブル2-1
 * @desc テーブル2、Lv10から19のNextです。
 * @default 999,999,999,999,999,999,999,999,999,999
 *
 * @param Table2-2
 * @parent Table2
 * @text テーブル2-2
 * @desc テーブル2、Lv20から29のNextです。
 * @default 999,999,999,999,999,999,999,999,999,999
 *
 * @param Table2-3
 * @parent Table2
 * @text テーブル2-3
 * @desc テーブル2、Lv30から39のNextです。
 * @default 999,999,999,999,999,999,999,999,999,999
 *
 * @param Table2-4
 * @parent Table2
 * @text テーブル2-4
 * @desc テーブル2、Lv40から49のNextです。
 * @default 999,999,999,999,999,999,999,999,999,999
 *
 * @param Table2-5
 * @parent Table2
 * @text テーブル2-5
 * @desc テーブル2、Lv50から59のNextです。
 * @default 999,999,999,999,999,999,999,999,999,999
 *
 * @param Table2-6
 * @parent Table2
 * @text テーブル2-6
 * @desc テーブル1、Lv60から69のNextです。
 * @default 999,999,999,999,999,999,999,999,999,999
 *
 * @param Table2-7
 * @parent Table2
 * @text テーブル2-7
 * @desc テーブル1、Lv70から79のNextです。
 * @default 999,999,999,999,999,999,999,999,999,999
 *
 * @param Table2-8
 * @parent Table2
 * @text テーブル2-8
 * @desc テーブル2、Lv80から89のNextです。
 * @default 999,999,999,999,999,999,999,999,999,999
 *
 * @param Table2-9
 * @parent Table2
 * @text テーブル2-9
 * @desc テーブル2、Lv90から99のNextです。
 * @default 999,999,999,999,999,999,999,999,999,999
 *
 * @param Table3
 * @text テーブル3
 *
 * @param Table3-0
 * @parent Table3
 * @text テーブル3-0
 * @desc テーブル3、Lv1から9のNextです。
 * 0番目と1番目は0を指定してください。
 * @default 0,0,10,20,30,50,100,200,300,500
 *
 * @param Table3-1
 * @parent Table3
 * @text テーブル3-1
 * @desc テーブル3、Lv10から19のNextです。
 * @default 999,999,999,999,999,999,999,999,999,999
 *
 * @param Table3-2
 * @parent Table3
 * @text テーブル3-2
 * @desc テーブル3、Lv20から29のNextです。
 * @default 999,999,999,999,999,999,999,999,999,999
 *
 * @param Table3-3
 * @parent Table3
 * @text テーブル3-3
 * @desc テーブル3、Lv30から39のNextです。
 * @default 999,999,999,999,999,999,999,999,999,999
 *
 * @param Table3-4
 * @parent Table3
 * @text テーブル3-4
 * @desc テーブル3、Lv40から49のNextです。
 * @default 999,999,999,999,999,999,999,999,999,999
 *
 * @param Table3-5
 * @parent Table3
 * @text テーブル3-5
 * @desc テーブル3、Lv50から59のNextです。
 * @default 999,999,999,999,999,999,999,999,999,999
 *
 * @param Table3-6
 * @parent Table3
 * @text テーブル3-6
 * @desc テーブル3、Lv60から69のNextです。
 * @default 999,999,999,999,999,999,999,999,999,999
 *
 * @param Table3-7
 * @parent Table3
 * @text テーブル3-7
 * @desc テーブル3、Lv70から79のNextです。
 * @default 999,999,999,999,999,999,999,999,999,999
 *
 * @param Table3-8
 * @parent Table3
 * @text テーブル3-8
 * @desc テーブル3、Lv80から89のNextです。
 * @default 999,999,999,999,999,999,999,999,999,999
 *
 * @param Table3-9
 * @parent Table3
 * @text テーブル3-9
 * @desc テーブル3、Lv90から99のNextです。
 * @default 999,999,999,999,999,999,999,999,999,999
 *
 * @param Table4
 * @text テーブル4
 *
 * @param Table4-0
 * @parent Table4
 * @text テーブル4-0
 * @desc テーブル4、Lv1から9のNextです。
 * 0番目と1番目は0を指定してください。
 * @default 0,0,10,20,30,50,100,200,300,500
 *
 * @param Table4-1
 * @parent Table4
 * @text テーブル4-1
 * @desc テーブル4、Lv10から19のNextです。
 * @default 999,999,999,999,999,999,999,999,999,999
 *
 * @param Table4-2
 * @parent Table4
 * @text テーブル4-2
 * @desc テーブル4、Lv20から29のNextです。
 * @default 999,999,999,999,999,999,999,999,999,999
 *
 * @param Table4-3
 * @parent Table4
 * @text テーブル4-3
 * @desc テーブル4、Lv30から39のNextです。
 * @default 999,999,999,999,999,999,999,999,999,999
 *
 * @param Table4-4
 * @parent Table4
 * @text テーブル4-4
 * @desc テーブル4、Lv40から49のNextです。
 * @default 999,999,999,999,999,999,999,999,999,999
 *
 * @param Table4-5
 * @parent Table4
 * @text テーブル4-5
 * @desc テーブル4、Lv50から59のNextです。
 * @default 999,999,999,999,999,999,999,999,999,999
 *
 * @param Table4-6
 * @parent Table4
 * @text テーブル4-6
 * @desc テーブル4、Lv60から69のNextです。
 * @default 999,999,999,999,999,999,999,999,999,999
 *
 * @param Table4-7
 * @parent Table4
 * @text テーブル4-7
 * @desc テーブル4、Lv70から79のNextです。
 * @default 999,999,999,999,999,999,999,999,999,999
 *
 * @param Table4-8
 * @parent Table4
 * @text テーブル4-8
 * @desc テーブル4、Lv80から89のNextです。
 * @default 999,999,999,999,999,999,999,999,999,999
 *
 * @param Table4-9
 * @parent Table4
 * @text テーブル4-9
 * @desc テーブル4、Lv90から99のNextです。
 * @default 999,999,999,999,999,999,999,999,999,999
 *
 * @param Table5
 * @text テーブル5
 *
 * @param Table5-0
 * @parent Table5
 * @text テーブル5-0
 * @desc テーブル5、Lv1から9のNextです。
 * 0番目と1番目は0を指定してください。
 * @default 0,0,10,20,30,50,100,200,300,500
 *
 * @param Table5-1
 * @parent Table5
 * @text テーブル5-1
 * @desc テーブル5、Lv10から19のNextです。
 * @default 999,999,999,999,999,999,999,999,999,999
 *
 * @param Table5-2
 * @parent Table5
 * @text テーブル5-2
 * @desc テーブル5、Lv20から29のNextです。
 * @default 999,999,999,999,999,999,999,999,999,999
 *
 * @param Table5-3
 * @parent Table5
 * @text テーブル5-3
 * @desc テーブル5、Lv30から39のNextです。
 * @default 999,999,999,999,999,999,999,999,999,999
 *
 * @param Table5-4
 * @parent Table5
 * @text テーブル5-4
 * @desc テーブル5、Lv40から49のNextです。
 * @default 999,999,999,999,999,999,999,999,999,999
 *
 * @param Table5-5
 * @parent Table5
 * @text テーブル5-5
 * @desc テーブル5、Lv50から59のNextです。
 * @default 999,999,999,999,999,999,999,999,999,999
 *
 * @param Table5-6
 * @parent Table5
 * @text テーブル5-6
 * @desc テーブル5、Lv60から69のNextです。
 * @default 999,999,999,999,999,999,999,999,999,999
 *
 * @param Table5-7
 * @parent Table5
 * @text テーブル5-7
 * @desc テーブル5、Lv70から79のNextです。
 * @default 999,999,999,999,999,999,999,999,999,999
 *
 * @param Table5-8
 * @parent Table5
 * @text テーブル5-8
 * @desc テーブル5、Lv80から89のNextです。
 * @default 999,999,999,999,999,999,999,999,999,999
 *
 * @param Table5-9
 * @parent Table5
 * @text テーブル5-9
 * @desc テーブル5、Lv90から99のNextです。
 * @default 999,999,999,999,999,999,999,999,999,999
 *
 * @param Table6
 * @text テーブル6
 *
 * @param Table6-0
 * @parent Table6
 * @text テーブル6-0
 * @desc テーブル6、Lv1から9のNextです。
 * 0番目と1番目は0を指定してください。
 * @default 0,0,10,20,30,50,100,200,300,500
 *
 * @param Table6-1
 * @parent Table6
 * @text テーブル6-1
 * @desc テーブル6、Lv10から19のNextです。
 * @default 999,999,999,999,999,999,999,999,999,999
 *
 * @param Table6-2
 * @parent Table6
 * @text テーブル6-2
 * @desc テーブル6、Lv20から29のNextです。
 * @default 999,999,999,999,999,999,999,999,999,999
 *
 * @param Table6-3
 * @parent Table6
 * @text テーブル6-3
 * @desc テーブル6、Lv30から39のNextです。
 * @default 999,999,999,999,999,999,999,999,999,999
 *
 * @param Table6-4
 * @parent Table6
 * @text テーブル6-4
 * @desc テーブル6、Lv40から49のNextです。
 * @default 999,999,999,999,999,999,999,999,999,999
 *
 * @param Table6-5
 * @parent Table6
 * @text テーブル6-5
 * @desc テーブル6、Lv50から59のNextです。
 * @default 999,999,999,999,999,999,999,999,999,999
 *
 * @param Table6-6
 * @parent Table6
 * @text テーブル6-6
 * @desc テーブル6、Lv60から69のNextです。
 * @default 999,999,999,999,999,999,999,999,999,999
 *
 * @param Table6-7
 * @parent Table6
 * @text テーブル6-7
 * @desc テーブル6、Lv70から79のNextです。
 * @default 999,999,999,999,999,999,999,999,999,999
 *
 * @param Table6-8
 * @parent Table6
 * @text テーブル6-8
 * @desc テーブル6、Lv80から89のNextです。
 * @default 999,999,999,999,999,999,999,999,999,999
 *
 * @param Table6-9
 * @parent Table6
 * @text テーブル6-9
 * @desc テーブル6、Lv90から99のNextです。
 * @default 999,999,999,999,999,999,999,999,999,999
 *
 * @param Table7
 * @text テーブル7
 *
 * @param Table7-0
 * @parent Table7
 * @text テーブル7-0
 * @desc テーブル7、Lv1から9のNextです。
 * 0番目と1番目は0を指定してください。
 * @default 0,0,10,20,30,50,100,200,300,500
 *
 * @param Table7-1
 * @parent Table7
 * @text テーブル7-1
 * @desc テーブル7、Lv10から19のNextです。
 * @default 999,999,999,999,999,999,999,999,999,999
 *
 * @param Table7-2
 * @parent Table7
 * @text テーブル7-2
 * @desc テーブル7、Lv20から29のNextです。
 * @default 999,999,999,999,999,999,999,999,999,999
 *
 * @param Table7-3
 * @parent Table7
 * @text テーブル7-3
 * @desc テーブル7、Lv30から39のNextです。
 * @default 999,999,999,999,999,999,999,999,999,999
 *
 * @param Table7-4
 * @parent Table7
 * @text テーブル7-4
 * @desc テーブル7、Lv40から49のNextです。
 * @default 999,999,999,999,999,999,999,999,999,999
 *
 * @param Table7-5
 * @parent Table7
 * @text テーブル7-5
 * @desc テーブル7、Lv50から59のNextです。
 * @default 999,999,999,999,999,999,999,999,999,999
 *
 * @param Table7-6
 * @parent Table7
 * @text テーブル7-6
 * @desc テーブル7、Lv60から69のNextです。
 * @default 999,999,999,999,999,999,999,999,999,999
 *
 * @param Table7-7
 * @parent Table7
 * @text テーブル7-7
 * @desc テーブル7、Lv70から79のNextです。
 * @default 999,999,999,999,999,999,999,999,999,999
 *
 * @param Table7-8
 * @parent Table7
 * @text テーブル7-8
 * @desc テーブル7、Lv80から89のNextです。
 * @default 999,999,999,999,999,999,999,999,999,999
 *
 * @param Table7-9
 * @parent Table7
 * @text テーブル7-9
 * @desc テーブル7、Lv90から99のNextです。
 * @default 999,999,999,999,999,999,999,999,999,999
 *
 * @param Table8
 * @text テーブル8
 *
 * @param Table8-0
 * @parent Table8
 * @text テーブル8-0
 * @desc テーブル8、Lv1から9のNextです。
 * 0番目と1番目は0を指定してください。
 * @default 0,0,10,20,30,50,100,200,300,500
 *
 * @param Table8-1
 * @parent Table8
 * @text テーブル8-1
 * @desc テーブル8、Lv10から19のNextです。
 * @default 999,999,999,999,999,999,999,999,999,999
 *
 * @param Table8-2
 * @parent Table8
 * @text テーブル8-2
 * @desc テーブル8、Lv20から29のNextです。
 * @default 999,999,999,999,999,999,999,999,999,999
 *
 * @param Table8-3
 * @parent Table8
 * @text テーブル8-3
 * @desc テーブル8、Lv30から39のNextです。
 * @default 999,999,999,999,999,999,999,999,999,999
 *
 * @param Table8-4
 * @parent Table8
 * @text テーブル8-4
 * @desc テーブル8、Lv40から49のNextです。
 * @default 999,999,999,999,999,999,999,999,999,999
 *
 * @param Table8-5
 * @parent Table8
 * @text テーブル8-5
 * @desc テーブル8、Lv50から59のNextです。
 * @default 999,999,999,999,999,999,999,999,999,999
 *
 * @param Table8-6
 * @parent Table8
 * @text テーブル8-6
 * @desc テーブル8、Lv60から69のNextです。
 * @default 999,999,999,999,999,999,999,999,999,999
 *
 * @param Table8-7
 * @parent Table8
 * @text テーブル8-7
 * @desc テーブル8、Lv70から79のNextです。
 * @default 999,999,999,999,999,999,999,999,999,999
 *
 * @param Table8-8
 * @parent Table8
 * @text テーブル8-8
 * @desc テーブル8、Lv80から89のNextです。
 * @default 999,999,999,999,999,999,999,999,999,999
 *
 * @param Table8-9
 * @parent Table8
 * @text テーブル8-9
 * @desc テーブル8、Lv90から99のNextです。
 * @default 999,999,999,999,999,999,999,999,999,999
 *
 * @param Table9
 * @text テーブル9
 *
 * @param Table9-0
 * @parent Table9
 * @text テーブル9-0
 * @desc テーブル9、Lv1から9のNextです。
 * 0番目と1番目は0を指定してください。
 * @default 0,0,10,20,30,50,100,200,300,500
 *
 * @param Table9-1
 * @parent Table9
 * @text テーブル9-1
 * @desc テーブル9、Lv10から19のNextです。
 * @default 999,999,999,999,999,999,999,999,999,999
 *
 * @param Table9-2
 * @parent Table9
 * @text テーブル9-2
 * @desc テーブル9、Lv20から29のNextです。
 * @default 999,999,999,999,999,999,999,999,999,999
 *
 * @param Table9-3
 * @parent Table9
 * @text テーブル9-3
 * @desc テーブル9、Lv30から39のNextです。
 * @default 999,999,999,999,999,999,999,999,999,999
 *
 * @param Table9-4
 * @parent Table9
 * @text テーブル9-4
 * @desc テーブル9、Lv40から49のNextです。
 * @default 999,999,999,999,999,999,999,999,999,999
 *
 * @param Table9-5
 * @parent Table9
 * @text テーブル9-5
 * @desc テーブル9、Lv50から59のNextです。
 * @default 999,999,999,999,999,999,999,999,999,999
 *
 * @param Table9-6
 * @parent Table9
 * @text テーブル9-6
 * @desc テーブル9、Lv60から69のNextです。
 * @default 999,999,999,999,999,999,999,999,999,999
 *
 * @param Table9-7
 * @parent Table9
 * @text テーブル9-7
 * @desc テーブル9、Lv70から79のNextです。
 * @default 999,999,999,999,999,999,999,999,999,999
 *
 * @param Table9-8
 * @parent Table9
 * @text テーブル9-8
 * @desc テーブル9、Lv80から89のNextです。
 * @default 999,999,999,999,999,999,999,999,999,999
 *
 * @param Table9-9
 * @parent Table9
 * @text テーブル9-9
 * @desc テーブル9、Lv90から99のNextです。
 * @default 999,999,999,999,999,999,999,999,999,999
 *
 * @param Table10
 * @text テーブル10
 *
 * @param Table10-0
 * @parent Table10
 * @text テーブル10-0
 * @desc テーブル5、Lv1から9のNextです。
 * 0番目と1番目は0を指定してください。
 * @default 0,0,10,20,30,50,100,200,300,500
 *
 * @param Table10-1
 * @parent Table10
 * @text テーブル10-1
 * @desc テーブル10、Lv10から19のNextです。
 * @default 999,999,999,999,999,999,999,999,999,999
 *
 * @param Table10-2
 * @parent Table10
 * @text テーブル10-2
 * @desc テーブル10、Lv20から29のNextです。
 * @default 999,999,999,999,999,999,999,999,999,999
 *
 * @param Table10-3
 * @parent Table10
 * @text テーブル10-3
 * @desc テーブル10、Lv30から39のNextです。
 * @default 999,999,999,999,999,999,999,999,999,999
 *
 * @param Table10-4
 * @parent Table10
 * @text テーブル10-4
 * @desc テーブル10、Lv40から49のNextです。
 * @default 999,999,999,999,999,999,999,999,999,999
 *
 * @param Table10-5
 * @parent Table10
 * @text テーブル10-5
 * @desc テーブル10、Lv50から59のNextです。
 * @default 999,999,999,999,999,999,999,999,999,999
 *
 * @param Table10-6
 * @parent Table10
 * @text テーブル10-6
 * @desc テーブル10、Lv60から69のNextです。
 * @default 999,999,999,999,999,999,999,999,999,999
 *
 * @param Table10-7
 * @parent Table10
 * @text テーブル10-7
 * @desc テーブル10、Lv70から79のNextです。
 * @default 999,999,999,999,999,999,999,999,999,999
 *
 * @param Table10-8
 * @parent Table10
 * @text テーブル10-8
 * @desc テーブル10、Lv80から89のNextです。
 * @default 999,999,999,999,999,999,999,999,999,999
 *
 * @param Table10-9
 * @parent Table10
 * @text テーブル10-9
 * @desc テーブル10、Lv90から99のNextです。
 * @default 999,999,999,999,999,999,999,999,999,999
 *
 */

(function () {
  var parameters = PluginManager.parameters("ExpTableSet");
  var tableKey = RegExp(parameters["Table Key"] || "<経験値テーブル:(\\d+)>");

  function ExpTableManager() {
    throw new Error("This is a static class");
  }

  ExpTableManager.getExpForLevel = function (classObject, level) {
    if (classObject._expTable === undefined) {
      this.initExpTable(classObject);
    }
    if (classObject._expTable.length === 0) {
      return false;
    }
    var exp = classObject._expTable[level];
    if (!exp) {
      exp = classObject._expTable[classObject._expTable.length];
    }
    return exp;
  };

  ExpTableManager.initExpTable = function (classObject) {
    classObject._expTable = [];
    if (classObject.note.match(tableKey)) {
      var table = Number(RegExp.$1);
      var text = "Table" + table;
      for (var i = 0; i < 10; i++) {
        var exps = parameters[text + "-" + i].split(",");
        for (j = 0; j < 10; j++) {
          if (i === 0 && j === 0) {
            classObject._expTable[0] = 0;
            continue;
          }
          classObject._expTable[i * 10 + j] =
            Number(classObject._expTable[i * 10 + j - 1]) + Number(exps[j]);
        }
      }
    }
  };

  var _ETS_GActor_expForLevel = Game_Actor.prototype.expForLevel;
  Game_Actor.prototype.expForLevel = function (level) {
    var c = this.currentClass();
    if (Imported["VXandAceHybridClass"]) {
      c = this.currentStatusClass();
    }
    var exp = _ETS_GActor_expForLevel.call(this, level);
    var texp = ExpTableManager.getExpForLevel(c, level);
    if (texp) {
      exp = texp;
    }
    return exp;
  };

  if (Imported["EnemyClass"]) {
    var _ETS_GEnemy_expForLevel = Game_Enemy.prototype.expForLevel;
    Game_Enemy.prototype.expForLevel = function (level) {
      var c = this.enemyClass();
      var exp = _ETS_GEnemy_expForLevel.call(this, level);
      var texp = ExpTableManager.getExpForLevel(c, level);
      if (texp) {
        exp = texp;
      }
      return exp;
    };
  }
  if (Imported["VXandAceHybridClass"]) {
    var _ETS_GActor_abpForLevel = Game_Actor.prototype.abpForLevel;
    Game_Actor.prototype.abpForLevel = function (level) {
      var c = this.currentClass();
      var abp = _ETS_GActor_abpForLevel.call(this, level);
      var tabp = ExpTableManager.getExpForLevel(c, level);
      if (tabp) {
        abp = tabp;
      }
      return abp;
    };
  }
})();


code:
//=============================================================================
// バトルイベントを拡張するプラグイン
// FTKR_ExBattleEvent.js
// プラグインNo : 40
// 作成者     : フトコロ
// 作成日     : 2017/05/25
// 最終更新日 : 2020/03/02
// バージョン : v1.3.6
//=============================================================================

var Imported = Imported || {};
Imported.FTKR_EBE = true;

var FTKR = FTKR || {};
FTKR.EBE = FTKR.EBE || {};

/*:
 * @plugindesc v1.3.6 バトルイベントを拡張するプラグイン　YEP_VictoryAftermathより下である必要がある（PL追記）
 * @author フトコロ
 *
 * @param Battle Event
 * @desc 戦闘中に実行するコモンイベントID
 * 0 - 実行しない、カンマ(,)で区切って複数設定できます
 * @default
 *
 * @param Battle Start Event
 * @desc 戦闘開始時に実行するコモンイベントID
 * 0 - 実行しない
 * @type common_event
 * @default 201
 *
 * @param --勝利時イベント--
 * @desc
 *
 * @param Custom Victory Event
 * @desc 戦闘勝利時の処理を変更できるようにするか
 * 0 - 変更しない, 1 - 変更する
 * @type select
 * @option 変更しない
 * @value 0
 * @option 変更する
 * @value 1
 * @default 0
 *
 * @param Victory Event
 * @desc 戦闘勝利時に実行するコモンイベントID
 * 0 - 実行しない
 * @type common_event
 * @default 202
 *
 * @param --敗北時イベント--
 * @desc
 *
 * @param Custom Defeat Event
 * @desc 戦闘敗北時の処理を変更できるようにするか
 * 0 - 変更しない, 1 - 変更する
 * @type select
 * @option 変更しない
 * @value 0
 * @option 変更する
 * @value 1
 * @default 0
 *
 * @param Defeat Event
 * @desc 戦闘敗北時に実行するコモンイベントID
 * 0 - 実行しない
 * @type common_event
 * @default
 *
 * @param --逃走時イベント--
 * @desc
 *
 * @param Custom Escape Event
 * @desc 戦闘逃走時の処理を変更できるようにするか
 * 0 - 変更しない, 1 - 変更する
 * @type select
 * @option 変更しない
 * @value 0
 * @option 変更する
 * @value 1
 * @default 0
 *
 * @param Escape Event
 * @desc 戦闘逃走時に実行するコモンイベントID
 * 0 - 実行しない
 * @type common_event
 * @default
 *
 * @param --中断時イベント--
 * @desc
 *
 * @param Custom Abort Event
 * @desc 戦闘中断時の処理を変更できるようにするか
 * 0 - 変更しない, 1 - 変更する
 * @type select
 * @option 変更しない
 * @value 0
 * @option 変更する
 * @value 1
 * @default 0
 *
 * @param Abort Event
 * @desc 戦闘中断時に実行するコモンイベントID
 * 0 - 実行しない
 * @type common_event
 * @default
 *
 * @param Abort BugFix
 * @desc コアスクリプトにおける戦闘中断時のバグ修正を行う。他のプラグインと競合する場合は、無効にしてください。
 * @type boolean
 * @on 有効
 * @off 無効
 * @default false
 *
 * @param --戦闘行動の強制--
 * @desc
 *
 * @param Invalid Battle Phase
 * @desc ここで規定したバトルフェーズ中に戦闘行動の強制が有効になる。複数規定する場合はカンマ(,)で区切る。
 * @default action
 *
 * @help
 *-----------------------------------------------------------------------------
 * 概要
 *-----------------------------------------------------------------------------
 * 本プラグインを実装することで、バトル終了時または中断時に
 * 指定したイベントを実行します。
 *
 * 実行可能なタイミング
 *      １．勝利時（敵が全滅した後）
 *      ２．敗北時（パーティーが全滅した後）
 *      ３．逃走時（パーティーコマンド「逃げる」やスキルの逃げる効果使用後）
 *      ４．中断時（イベントコマンド「バトルの中断」実行後）
 *
 * 戦闘終了時のイベントの処理が終了すると、バトル画面が終了します。
 *
 *
 * プラグインの使い方は、下のオンラインマニュアルページを見てください。
 * https://github.com/futokoro/RPGMaker/blob/master/FTKR_ExBattleEvent.ja.md
 *
 *
 *-----------------------------------------------------------------------------
 * 設定方法
 *-----------------------------------------------------------------------------
 * 1.「プラグインマネージャー(プラグイン管理)」に、本プラグインを追加して
 *    ください。
 *
 * 2. 以下のプラグインと組み合わせる場合は、プラグイン管理の順番に注意してください。
 *
 *    FTKR_CSS_CustomizeBattleResults.js
 *    ↑このプラグインよりも上に登録↑
 *    FTKR_ExBattleEvent.js
 *    ↓このプラグインよりも下に登録↓
 *    FTKR_ExVariablesChange.js
 *
 *
 *-----------------------------------------------------------------------------
 * 本プラグインのライセンスについて(License)
 *-----------------------------------------------------------------------------
 * 本プラグインはMITライセンスのもとで公開しています。
 * This plugin is released under the MIT License.
 *
 * Copyright (c) 2019 Futokoro
 * http://opensource.org/licenses/mit-license.php
 *
 *
 * プラグイン公開元
 * https://github.com/futokoro/RPGMaker/blob/master/README.md
 *
 *
 *-----------------------------------------------------------------------------
 * 変更来歴
 *-----------------------------------------------------------------------------
 *
 * v1.3.6 - 2020/03/02 : 機能追加
 *    1. 逃走時と中断時に指定のイベントを実行する機能を追加。
 *
 * v1.3.5 - 2020/01/15 : 不具合修正
 *    1. 戦闘終了時イベントで「戦闘行動の強制」を実行できない不具合を修正。
 *
 * v1.3.4 - 2019/12/29 : 仕様見直し
 *    1. 戦闘終了時イベントの実行処理を見直し。
 *
 * v1.3.3 - 2018/02/19 : 不具合修正
 *    1. Custom Victory Eventが0の時に、戦闘勝利イベントを実行すると
 *       戦闘勝利回数が2回増加してしまう不具合を修正。
 *
 * v1.3.2 - 2018/01/13 : 機能追加
 *    1. メッセージ表示関係のプラグインコマンドに、イベント処理を止める機能を追加。
 *
 * v1.3.1 - 2018/01/12 : 不具合修正
 *    1. 戦闘終了時イベント中にウェイトコマンドを実行すると、アクターの
 *       モーションが正常に再生されない不具合を修正。
 *
 * v1.3.0 - 2017/06/30 : 機能追加
 *    1. 戦闘終了時のイベントの後に、MVデフォルトの戦闘終了処理を実行する
 *       機能を追加。
 *
 * v1.2.0 - 2017/06/01 : 機能追加
 *    1. 敵キャラの戦闘行動を再設定するプラグインコマンドを追加。
 *
 * v1.1.0 - 2017/05/26 : 機能追加
 *    1. バトル中にコモンイベントを実行できる機能を追加。
 *    2. モーション実行コマンドにアクターを対象にできる機能を追加。
 *    3. 画面に数字をポップアップさせるプラグインコマンドを追加。
 *
 * v1.0.0 - 2017/05/25 : 初版作成
 *
 *-----------------------------------------------------------------------------
 */
//=============================================================================

var paramParse = function (obj) {
  return JSON.parse(JSON.stringify(obj, paramReplace));
};

var paramReplace = function (key, value) {
  try {
    return JSON.parse(value || null);
  } catch (e) {
    return value;
  }
};

var matchTextToRegs = function (test, regs) {
  return regs.some(function (reg) {
    return test.match(reg);
  });
};

var readCommentMeta = function (comment, metacodes) {
  if (!comment) return false;
  return metacodes.some(function (metacode) {
    var metaReg = new RegExp("<" + metacode + ">", "i");
    return metaReg.test(comment);
  });
};

var splitConvertNumber = function (param) {
  var results = [];
  (param + "").split(",").forEach(function (split) {
    match = /[ ]*(\d+)[ ]*-[ ]*(\d+)/.exec(split);
    if (match) {
      for (var i = Number(match[1]); i <= Number(match[2]); i++) {
        results.push(i);
      }
    } else {
      if (!isNaN(split)) results.push(Number(split));
    }
  });
  return results;
};

// textを条件式に使える状態に変換する
var convertTextToConditions = function (text) {
  var result = "";
  if (text) {
    var datas = text.split(";");
    datas.forEach(function (data, i) {
      result += data;
      if (datas[i + 1]) result += ")&&(";
    });
    result = "(" + result + ")";
  }
  return result;
};

var convertEscapeCharacters = function (text) {
  if (text == null) text = "";
  var window = SceneManager._scene._windowLayer.children[0];
  return window ? window.convertEscapeCharacters(text) : text;
};

//=============================================================================
// 自作関数(グローバル)
//=============================================================================

FTKR.gameData = FTKR.gameData || {
  user: null,
  target: null,
  item: null,
  number: 0,
};

if (!FTKR.setGameData) {
  FTKR.setGameData = function (user, target, item, number) {
    FTKR.gameData = {
      user: user || null,
      target: target || null,
      item: item || null,
      number: number || 0,
    };
  };
}

if (!FTKR.evalFormula) {
  FTKR.evalFormula = function (formula) {
    var datas = FTKR.gameData;
    try {
      var s = $gameSwitches._data;
      var v = $gameVariables._data;
      var a = datas.user;
      var b = datas.target;
      var item = datas.item;
      var number = datas.number;
      if (b) var result = b.result();
      var value = eval(formula);
      if (isNaN(value)) value = 0;
      return value;
    } catch (e) {
      console.error(e);
      return 0;
    }
  };
}

//=============================================================================
// プラグイン パラメータ
//=============================================================================
var parameters = PluginManager.parameters("FTKR_ExBattleEvent_custom");

FTKR.EBE.battleEvents = splitConvertNumber(parameters["Battle Event"]);
FTKR.EBE.battleEnd = {
  victory: paramParse(parameters["Victory Event"] || 0),
  customV: paramParse(parameters["Custom Victory Event"] || 0),
  defeat: paramParse(parameters["Defeat Event"] || 0),
  customD: paramParse(parameters["Custom Defeat Event"] || 0),
  escape: paramParse(parameters["Escape Event"] || 0),
  customE: paramParse(parameters["Custom Escape Event"] || 0),
  abort: paramParse(parameters["Abort Event"] || 0),
  customA: paramParse(parameters["Custom Abort Event"] || 0),
  abortBF: paramParse(parameters["Abort BugFix"] || false),
  invalid: parameters["Invalid Battle Phase"] || "",
};

//=============================================================================
// プラグインコマンド
//=============================================================================

Game_Interpreter.prototype.setArgNumber = function (arg) {
  try {
    var arg = convertEscapeCharacters(arg);
    return Number(eval(arg));
  } catch (e) {
    console.error(e);
    return 0;
  }
};
/*
var _EBE_Game_Interpreter_pluginCommand = Game_Interpreter.prototype.pluginCommand;
Game_Interpreter.prototype.pluginCommand = function(command, args) {
		console.log('FTKR_ExBattleEvent_custom.js:pluginCommand');
    _EBE_Game_Interpreter_pluginCommand.call(this, command, args);
    if (!command.match(/EBE_(.+)/i)) return;
    command = (RegExp.$1 + '').toUpperCase();
    switch (command) {
        case '戦闘終了時ステート解除':
        case 'REMOVE_BATTLE_STATES':
            $gameParty.removeBattleStates();
            break;
        case '勝利モーション実行':
        case 'PREFORM_VICTORY':
            $gameParty.performVictory();
            break;
        case 'モーション実行':
        case 'REQUEST_MOTION':
            if(!args[1] || args[1] === '全員' || args[1].toUpperCase() === 'ALL') {
                $gameParty.requestMotion(args[0]);
            } else if (Number(args[1]) >= 0) {
                var actor = $gameActors.actor(Number(args[1]));
                if (actor) actor.requestMotion(args[0]);
            }
            break;
        case '勝利ME演奏':
        case 'PLAY_VICTORY_ME':
            BattleManager.playVictoryMe();
            break;
        case '敗北ME演奏':
        case 'PLAY_DEFEAT_ME':
            BattleManager.playDefeatMe();
            break;
        case 'BGMBGS再開':
        case 'REPLAY_BGM_AND_BGS':
            BattleManager.replayBgmAndBgs();
            break;
        case 'BGM停止':
        case 'STOP_BGM':
            AudioManager.stopBgm();
            break;
        case '戦闘報酬計算':
        case 'MAKE_REWARDS':
            BattleManager.makeRewards();
            break;
        case '勝利メッセージ表示':
        case 'DISPLAY_VICTORY_MESSAGE':
            BattleManager.displayVictoryMessage();
            if (args[0] === '-s')this.setWaitMode('message');
            break;
        case '敗北メッセージ表示':
        case 'DISPLAY_DEFEAT_MESSAGE':
            BattleManager.displayDefeatMessage();
            if (args[0] === '-s')this.setWaitMode('message');
            break;
        case '戦闘報酬表示':
        case 'DISPLAY_REWARDS':
            BattleManager.displayRewards();
            if (args[0] === '-s')this.setWaitMode('message');
            break;
        case '戦闘報酬入手':
        case 'GAIN_REWARDS':
            BattleManager.gainRewards();
            break;
        case '戦闘再開':
        case 'RESTART_BATTLE':
            BattleManager._checkEbeBattleEvent = false;
            break;
        case '数字ポップアップ':
        case 'POPUP_NUMBER':
            this.setupNumberPopup(args);
            break;
        case '敵キャラの戦闘行動の設定':
        case 'SET_BATTLE_ENEMY_ACTION':
            var memberId = this.setArgNumber(args[0]);
            $gameTroop.members()[memberId].makeActions();
            break;
    }
};
*/
Game_Interpreter.prototype.setupNumberPopup = function (args) {
  var index = this.setArgNumber(args[0]);
  for (var i = 1; i < args.length; i++) {
    var arg = (args[i] + "").toUpperCase();
    switch (arg) {
      case "画像番号":
      case "IMAGENUM":
        i++;
        var baseRow = this.setArgNumber(args[i]);
        break;
      case "表示内容":
      case "VALUE":
        i++;
        var value = this.setArgNumber(args[i]);
        break;
      case "ポップアップ高さ":
      case "POPUP_HEIGHT":
        i++;
        var height = this.setArgNumber(args[i]);
        if (!isNaN(args[i + 1])) {
          i++;
          var offsetY = this.setArgNumber(args[i]);
        }
        break;
      case "表示時間":
      case "DURATION":
        i++;
        var duration = this.setArgNumber(args[i]);
        break;
      case "表示差":
      case "DIFF_COUNT":
        i++;
        var maxcount = this.setArgNumber(args[i]);
        break;
      case "表示座標":
      case "POSITION":
        i++;
        var x = this.setArgNumber(args[i]);
        i++;
        var y = this.setArgNumber(args[i]);
        break;
      case "消去しない":
      case "REMAIN":
        var remain = true;
        break;
      case "消去":
      case "ERASE":
        BattleManager.eraseNumberPopup(index);
        return;
    }
  }
  var sprite = BattleManager.setupNumberPopup(index);
  if (!isNaN(baseRow)) sprite.setBaseRow(baseRow);
  if (!isNaN(height)) sprite.setPopupHeight(height, offsetY);
  if (!isNaN(duration)) sprite.setDuration(duration);
  if (!isNaN(maxcount)) sprite.setMaxcount(maxcount);
  if (!isNaN(x) && !isNaN(y)) sprite.setPosition(x, y);
  if (remain) sprite.setRemain();
  if (!isNaN(value)) sprite.setValue(value);
};

//=============================================================================
// BattleManager
//=============================================================================

var _EBE_BattleManager_initMembers = BattleManager.initMembers;
BattleManager.initMembers = function () {
  _EBE_BattleManager_initMembers.call(this);
  this._checkEbeBattleEvent = false;
  this._battleEndPattern = 0;
  this._numberSprite = [];
  this._invalidPhase = FTKR.EBE.battleEnd.invalid.split(",");
};

var _EBE_Game_Party_requestMotionRefresh =
  Game_Party.prototype.requestMotionRefresh;
Game_Party.prototype.requestMotionRefresh = function () {
  if (!BattleManager.isBattleEndEvent()) {
    _EBE_Game_Party_requestMotionRefresh.call(this);
  }
};

BattleManager.isBattleEndEvent = function () {
  return $gameParty.inBattle() && this._checkEbeBattleEvent;
};

BattleManager.isInvalidPhase = function () {
  return this._invalidPhase.contains(this._phase);
};

var _EBE_BattleManager_updateEvent = BattleManager.updateEvent;
BattleManager.updateEvent = function () {
  if (this.isBattleEndEvent() && !this.isInvalidPhase()) {
    if (this.isActionForced()) {
      this.processForcedAction();
      return true;
    } else {
      return this.updateEventMain();
    }
  } else {
    return _EBE_BattleManager_updateEvent.call(this);
  }
};

var _EBE_BattleManager_checkBattleEnd = BattleManager.checkBattleEnd;
BattleManager.checkBattleEnd = function () {
  //console.log('FTKR_ExBattleEvent_custom.js:checkBattleEnd');
  if (this.isBattleEndEvent()) {
    this._checkEbeBattleEvent = false;
    switch (this._battleEndPattern) {
      case 0: //勝利
        if (FTKR_ExBattleEvent_btlEnd_ev_enable) {
          if (FTKR.EBE.battleEnd.customV) break;
          FTKR_ExBattleEvent_btlEnd_ev_enable = false;
          _EBE_BattleManager_processVictory.call(this);
        }
        return true;
      case 1: //逃走
        if (FTKR.EBE.battleEnd.customE) break;
        _EBE_BattleManager_processAbort.call(this);
        return true;
      case 2: //敗北
        if (FTKR.EBE.battleEnd.customD) break;
        _EBE_BattleManager_processDefeat.call(this);
        return true;
      case 3: //中断
        this._battleEndPattern = 1;
        if (FTKR.EBE.battleEnd.customA) break;
        _EBE_BattleManager_processAbort.call(this);
        return true;
    }
    this.endBattle(this._battleEndPattern);
    return true;
  }
  return _EBE_BattleManager_checkBattleEnd.call(this);
};

var _EBE_BattleManager_processVictory = BattleManager.processVictory;
BattleManager.processVictory = function () {
  //console.log('FTKR_ExBattleEvent_custom.js:processVictory');
  if (FTKR.EBE.battleEnd.victory && !this.isBattleEndEvent()) {
    //console.log('FTKR_ExBattleEvent_custom.js:processVictory:isBattleEndEvent');
    if ($gameTroop.setupEbeBattleEvent("victory", ["EBE_戦闘勝利時"])) {
      this._checkEbeBattleEvent = true;
      this._battleEndPattern = 0;
    }
    return true;
  }
  _EBE_BattleManager_processVictory.call(this);
};

var _EBE_BattleManager_processDefeat = BattleManager.processDefeat;
BattleManager.processDefeat = function () {
  //console.log('FTKR_ExBattleEvent_custom.js:processDefeat');
  if (FTKR.EBE.battleEnd.defeat && !this.isBattleEndEvent()) {
    if ($gameTroop.setupEbeBattleEvent("defeat", ["EBE_戦闘敗北時"])) {
      this._checkEbeBattleEvent = true;
      this._battleEndPattern = 2;
    }
    return true;
  }
  _EBE_BattleManager_processDefeat.call(this);
};

var _EBE_BattleManager_checkAbort = BattleManager.checkAbort;
BattleManager.checkAbort = function () {
  //console.log('FTKR_ExBattleEvent_custom.js:checkAbort');
  if (FTKR.EBE.battleEnd.abortBF) {
    if ($gameParty.isEmpty()) {
      SoundManager.playEscape();
      this._escaped = true;
      this.processAbort();
    } else if (this.isAborting()) {
      this._escaped = true;
      this.processAbort();
    }
    return false;
  } else {
    _EBE_BattleManager_checkAbort.call(this);
  }
};

var _EBE_BattleManager_processAbort = BattleManager.processAbort;
BattleManager.processAbort = function () {
  if (
    FTKR.EBE.battleEnd.abort &&
    !this.isBattleEndEvent() &&
    this.isAborting()
  ) {
    if ($gameTroop.setupEbeBattleEvent("abort", ["EBE_戦闘中断時"])) {
      this._checkEbeBattleEvent = true;
      this._battleEndPattern = 3;
      this._phase = "battleEnd";
    }
    return true;
  } else if (FTKR.EBE.battleEnd.escape && !this.isBattleEndEvent()) {
    if ($gameTroop.setupEbeBattleEvent("escape", ["EBE_戦闘逃走時"])) {
      this._checkEbeBattleEvent = true;
      this._battleEndPattern = 1;
      this._phase = "battleEnd";
    }
    return true;
  }
  _EBE_BattleManager_processAbort.call(this);
};

BattleManager.setupNumberPopup = function (index) {
  if (!this._numberSprite[index]) {
    var sprite = new Sprite_Number();
    this._numberSprite[index] = sprite;
    this._spriteset._battleField.addChild(this._numberSprite[index]);
  }
  return this._numberSprite[index];
};

BattleManager.eraseNumberPopup = function (index) {
  this._spriteset._battleField.removeChild(this._numberSprite[index]);
  this._numberSprite[index] = {};
};

BattleManager.isActed = function (battler) {
  return !this._actionBattlers.contains(battler);
};

BattleManager.isActedEnemy = function (battlerId) {
  return !this.isActed($gameTroop.members()[battlerId]);
};

BattleManager.isActedActor = function (battlerId) {
  return !this.isActed($gameParty.members()[battlerId]);
};

//=============================================================================
// Game_Party
//=============================================================================

Game_Party.prototype.requestMotion = function (motionName) {
  this.members().forEach(function (actor) {
    if (actor.canMove()) actor.requestMotion(motionName);
  });
};

//=============================================================================
// Game_Troop
//=============================================================================

FTKR.EBE.Game_Troop_clear = Game_Troop.prototype.clear;
Game_Troop.prototype.clear = function () {
  FTKR.EBE.Game_Troop_clear.call(this);
  this._commonEventFlags = [];
};

FTKR.EBE.Game_Troop_setupBattleEvent = Game_Troop.prototype.setupBattleEvent;
Game_Troop.prototype.setupBattleEvent = function () {
  FTKR.EBE.Game_Troop_setupBattleEvent.call(this);
  if (!this._interpreter.isRunning()) {
    if (this._interpreter.setupReservedCommonEvent()) {
      return;
    }
    var eventIds = FTKR.EBE.battleEvents;
    for (var i = 0; i < eventIds.length; i++) {
      if (eventIds[i]) {
        var event = $dataCommonEvents[eventIds[i]];
        if (
          this.meetsCommonEventCommentConditions(event) &&
          !this._commonEventFlags[i]
        ) {
          this._interpreter.setup(event.list, this.troop().id);
          if (this.commonEventSpan(event) <= 1) {
            this._commonEventFlags[i] = true;
          }
          break;
        }
      }
    }
  }
};

FTKR.EBE.Game_Troop_increaseTurn = Game_Troop.prototype.increaseTurn;
Game_Troop.prototype.increaseTurn = function () {
  var eventIds = FTKR.EBE.battleEvents;
  for (var i = 0; i < eventIds.length; i++) {
    if (eventIds[i]) {
      var event = $dataCommonEvents[eventIds[i]];
      if (this.commonEventSpan(event) === 1) {
        this._commonEventFlags[i] = false;
      }
    }
  }
  FTKR.EBE.Game_Troop_increaseTurn.call(this);
};

Game_Troop.prototype.setupEbeBattleEvent = function (condition, metacodes) {
  //console.log('FTKR_ExBattleEvent_custom.js:setupEbeBattleEvent');
  if (!this._interpreter.isRunning()) {
    if (this._interpreter.setupReservedCommonEvent()) {
      return false;
    }
    var pages = this.troop().pages;
    for (var i = 0; i < pages.length; i++) {
      var page = pages[i];
      if (
        this.meetsPagesCommentConditions(page, metacodes) &&
        !this._eventFlags[i]
      ) {
        this._interpreter.setup(page.list, this.troop().id);
        this._eventFlags[i] = true;
        return true;
      }
    }
    if (FTKR_ExBattleEvent_btlEnd_commonEV_enable) {
      FTKR_ExBattleEvent_btlEnd_commonEV_enable = false;
      var event = $dataCommonEvents[FTKR.EBE.battleEnd[condition]];
      this._interpreter.setup(event.list, this.troop().id);
    }
    return true;
  }
  return false;
};

Game_Troop.prototype.meetsPagesCommentConditions = function (page, metacodes) {
  for (var v = 0; v < page.list.length; v++) {
    var list = page.list[v];
    if (list && [108, 408].contains(list.code)) {
      return readCommentMeta(list.parameters[0], metacodes);
    }
  }
};

Game_Troop.prototype.commonEventSpan = function (event) {
  for (var v = 0; v < event.list.length; v++) {
    var list = event.list[v];
    if (list && [108, 408].contains(list.code)) {
      var match = /<([^<>:]+)(:?)([^>]*)>/g.exec(list.parameters[0]);
      switch ((match[1] + "").toUpperCase()) {
        case "スパン":
        case "SPAN":
          switch ((match[3] + "").toUpperCase()) {
            case "バトル":
            case "BATTLE":
              return 0;
            case "ターン":
            case "TURN":
              return 1;
            case "モーメント":
            case "MOMENT":
              return 2;
          }
      }
    }
  }
  return 0;
};

Game_Troop.prototype.meetsCommonEventCommentConditions = function (event) {
  return this.meetsConditions(this.convertCommonEventConditions(event));
};

Game_Troop.prototype.convertCommonEventConditions = function (event) {
  var conditions = {};
  var code = false;
  for (var i = 0; i < event.list.length; i++) {
    var list = event.list[i];
    if (list && [108, 408].contains(list.code)) {
      var match = /<([^<>:]+)(:?)([^>]*)>/g.exec(list.parameters[0]);
      if (match) {
        switch ((match[1] + "").toUpperCase()) {
          case "ターン終了":
          case "TURNEND":
            conditions.turnEnding = true;
            break;
          case "ターン":
          case "TURN":
            if (match[2] === ":") {
              var turn = /(\d+)[ ]*\+[ ]*(\d+)[ ]*\*X/i.exec(match[3]);
              if (turn) {
                conditions.turnValid = true;
                conditions.turnA = Number(turn[1]);
                conditions.turnB = Number(turn[2]);
              }
            }
            break;
          case "敵キャラHP":
          case "ENEMY_HP":
            if (match[2] === ":") {
              var value = /#(\d+)[ ]*(\d+)[ ]*\%以下/i.exec(match[3]);
              if (!value)
                value = /#(\d+)[ ]*less[ ]than[ ]*(\d+)[ ]*\%/i.exec(match[3]);
              if (value) {
                conditions.enemyValid = true;
                conditions.enemyIndex = Number(value[1]);
                conditions.enemyHp = Number(value[2]);
              }
            }
            break;
          case "アクターHP":
          case "ACTOR_HP":
            if (match[2] === ":") {
              var value = /#(\d+)[ ]*(\d+)[ ]*\%以下/i.exec(match[3]);
              if (!value)
                value = /#(\d+)[ ]*less[ ]than[ ]*(\d+)[ ]*\%/i.exec(match[3]);
              if (value) {
                conditions.actorValid = true;
                conditions.actorId = Number(value[1]);
                conditions.actorHp = Number(value[2]);
              }
            }
            break;
          case "スイッチ":
          case "SWITCH":
            if (match[2] === ":") {
              conditions.switchValid = true;
              conditions.switchId = Number(match[3]);
            }
            break;
          case "/実行条件":
          case "/CONDITIONS":
            code = false;
            break;
          case "実行条件":
          case "CONDITIONS":
            conditions.customValid = true;
            conditions.custom = "";
            code = true;
            break;
        }
      } else {
        if (code) conditions.custom += list.parameters[0] + ";";
      }
    }
  }
  var page = { conditions: conditions };
  return page;
};

Game_Troop.prototype.evalConditionsFormula = function (text) {
  var formula = convertTextToConditions(text);
  if (!formula) return true;
  return FTKR.evalFormula(formula);
};

FTKR.EBE.Game_Troop_meetsConditions = Game_Troop.prototype.meetsConditions;
Game_Troop.prototype.meetsConditions = function (page) {
  var c = page.conditions;
  var result = FTKR.EBE.Game_Troop_meetsConditions.call(this, page);
  if (!c.turnEnding && !result) {
    return false;
  }
  if (
    (c.turnEnding ||
      c.turnValid ||
      c.enemyValid ||
      c.actorValid ||
      c.switchValid) &&
    !result
  ) {
    return false;
  }
  if (c.customValid && !this.evalConditionsFormula(c.custom)) {
    return false;
  }
  return true;
};

//=============================================================================
// Sprite_Number
// 数字をスプライトで表示する
//=============================================================================

function Sprite_Number() {
  this.initialize.apply(this, arguments);
}

Sprite_Number.prototype = Object.create(Sprite.prototype);
Sprite_Number.prototype.constructor = Sprite_Number;

Sprite_Number.prototype.initialize = function () {
  Sprite.prototype.initialize.call(this);
  this._flashColor = [0, 0, 0, 0];
  this._flashDuration = 0;
  this._damageBitmap = ImageManager.loadSystem("Damage");
  this._remain = false;
  this._duration = 30;
  this._maxcount = 0;
  this._count = 0;
  this._baseRow = 0;
  this._value = 0;
  this._index = 0;
  this._popupHeight = 40;
  this._popupOffsetY = 0.5;
  this._fullDuration = this._duration;
};

Sprite_Number.prototype.setupCriticalEffect = function () {
  this._flashColor = [255, 0, 0, 160];
  this._flashDuration = 60;
};

Sprite_Number.prototype.digitWidth = function () {
  return this._damageBitmap ? this._damageBitmap.width / 10 : 0;
};

Sprite_Number.prototype.digitHeight = function () {
  return this._damageBitmap ? this._damageBitmap.height / 5 : 0;
};

Sprite_Number.prototype.setBaseRow = function (baseRow) {
  this._baseRow = baseRow;
};

Sprite_Number.prototype.setDuration = function (duration) {
  this._duration = duration;
};

Sprite_Number.prototype.setValue = function (value) {
  this._value = value;
  this.resetFullDuration();
};

Sprite_Number.prototype.setMaxcount = function (maxcount) {
  this._maxcount = maxcount;
  this._count = this._maxcount;
};

Sprite_Number.prototype.setPosition = function (x, y) {
  this.x = x;
  this.y = y;
};

Sprite_Number.prototype.setRemain = function () {
  this._remain = true;
};

Sprite_Number.prototype.setPopupHeight = function (popupHeight, popupOffsetY) {
  this._popupHeight = popupHeight;
  if (!isNaN(popupOffsetY)) this._popupOffsetY = popupOffsetY;
};

Sprite_Number.prototype.resetFullDuration = function () {
  var string = Math.abs(this._value).toString();
  this._fullDuration = this._duration * string.length;
};

Sprite_Number.prototype.updateOpacity = function () {
  if (this._remain) return;
  if (this._fullDuration < 10) {
    this.opacity = (255 * this._fullDuration) / 10;
  }
};

Sprite_Number.prototype.update = function () {
  Sprite.prototype.update.call(this);
  if (this._count >= this._maxcount) {
    this.createDigit(this._index);
    this._index++;
    this._count = 0;
  } else {
    this._count++;
  }
  if (this._fullDuration > 0) {
    this._fullDuration--;
    for (var i = 0; i < this.children.length; i++) {
      this.updateChild(this.children[i]);
    }
  }
  this.updateFlash();
  this.updateOpacity();
};

Sprite_Number.prototype.createChildSprite = function () {
  var sprite = new Sprite();
  sprite.bitmap = this._damageBitmap;
  sprite.anchor.x = 0.5;
  sprite.anchor.y = 1;
  sprite.y = -this._popupHeight;
  sprite.ry = sprite.y;
  this.addChild(sprite);
  return sprite;
};

Sprite_Number.prototype.createDigit = function (index) {
  var value = this._value;
  var baseRow = this._baseRow;
  var string = Math.abs(value).toString();
  if (index >= string.length) return;
  var row = baseRow + (value < 0 ? 1 : 0);
  var w = this.digitWidth();
  var h = this.digitHeight();
  var sprite = this.createChildSprite();
  var n = Number(string[index]);
  sprite.setFrame(n * w, row * h, w, h);
  sprite.x = (index - (string.length - 1) / 2) * w;
  sprite.dy = -this._popupOffsetY * 2 * index;
};

Sprite_Number.prototype.updateChild = function (sprite) {
  sprite.dy += this._popupOffsetY;
  sprite.ry += sprite.dy;
  if (sprite.ry >= 0) {
    sprite.ry = 0;
    sprite.dy *= -0.6;
  }
  sprite.y = Math.round(sprite.ry);
  sprite.setBlendColor(this._flashColor);
};

Sprite_Number.prototype.updateFlash = function () {
  if (this._flashDuration > 0) {
    var d = this._flashDuration--;
    this._flashColor[3] *= (d - 1) / d;
  }
};

Sprite_Number.prototype.isPlaying = function () {
  return this._duration > 0;
};

/*--------------------------------------

--------------------------------------*/

// ----------------------------------------------------------------
// PL_カスタム関数
// ----------------------------------------------------------------

var FTKR_ExBattleEvent_btlEnd_commonEV_enable = false; // 他のプラグインとの兼ね合いで戦闘終了処理のコモンイベントが連続して行われるのを防ぐ
var FTKR_ExBattleEvent_btlEnd_ev_enable = false; // YEP_VictoryAftermath.jsとの競合で1度だけ処理したい場合に使用
(function () {
  var parameters = PluginManager.parameters("FTKR_ExBattleEvent_custom");
  var C_EV_BTL_START = parameters["Battle Start Event"];

  // 戦闘開始時
  var _BattleManager_startBattle = BattleManager.startBattle;
  BattleManager.startBattle = function () {
    //console.log("startBattle:"+C_EV_BTL_START);
    FTKR_ExBattleEvent_btlEnd_commonEV_enable = true;
    FTKR_ExBattleEvent_btlEnd_ev_enable = true;
    $gameTemp.reserveCommonEvent(C_EV_BTL_START);
    _BattleManager_startBattle.call(this);
  };
})();


code:
//=============================================================================
// FixImageLoading.js
// ----------------------------------------------------------------------------
// Copyright (c) 2015-2017 Triacontane
// This software is released under the MIT License.
// http://opensource.org/licenses/mit-license.php
// ----------------------------------------------------------------------------
// Version
// 2.0.1 2019/04/06 MoviePicture.jsとの競合を修正
// 2.0.0 2017/06/09 本体ver1.5.0に合わせて再作成
// 1.1.1 2016/11/20 ロード完了時にframeが更新されない不具合を修正
//                  ロード中にframeが変更された場合に、ロード完了まで反映を遅らせる仕様を追加
// 1.1.0 2016/11/16 liply_GC.jsとの競合を解消 by 奏 ねこま様
// 1.0.0 2016/05/02 初版
// ----------------------------------------------------------------------------
// [Blog]   : http://triacontane.blogspot.jp/
// [Twitter]: https://twitter.com/triacontane/
// [GitHub] : https://github.com/triacontane/
//=============================================================================

/*:ja
 * @plugindesc 画像ロード時のチラつき防止プラグイン
 * @author トリアコンタン
 *
 * @help キャッシュしていない画像を表示したときに
 * 一瞬発生するチラつきを防止します。
 * 画像のロードが完了するまで以前に表示していた画像を残します。
 *
 * 逆に画像を消したいときは明示的にピクチャの消去等を行ってから
 * 表示してください。
 *
 * このプラグインにはプラグインコマンドはありません。
 *
 * 利用規約：
 *  作者に無断で改変、再配布が可能で、利用形態（商用、18禁利用等）
 *  についても制限はありません。
 *  このプラグインはもうあなたのものです。
 */

(function () {
  "use strict";

  var _Sprite__renderCanvas = Sprite.prototype._renderCanvas;
  Sprite.prototype._renderCanvas = function (renderer) {
    _Sprite__renderCanvas.apply(this, arguments);
    if (this.isExistLoadingBitmap()) {
      this._renderCanvas_PIXI(renderer);
    }
  };

  var _Sprite__renderWebGL = Sprite.prototype._renderWebGL;
  Sprite.prototype._renderWebGL = function (renderer) {
    _Sprite__renderWebGL.apply(this, arguments);
    if (this.isExistLoadingBitmap()) {
      if (this._isPicture) {
        this._speedUpCustomBlendModes(renderer);
        renderer.setObjectRenderer(renderer.plugins.picture);
        if (!this.isVideoPicture || !this.isVideoPicture()) {
          renderer.plugins.picture.render(this);
        }
      } else {
        renderer.setObjectRenderer(renderer.plugins.sprite);
        renderer.plugins.sprite.render(this);
      }
    }
  };

  Sprite.prototype.isExistLoadingBitmap = function () {
    return this.bitmap && !this.bitmap.isReady();
  };
})();