code:
/*:
 * @target MV
 */
(() => {
    'use strict'

    // �s�k�����b�Z�[�W�̍폜
    BattleManager.displayDefeatMessage = function() {
//        $gameMessage.add(TextManager.defeat.format($gameParty.name()));
    };
})();

repo_name: dazed/translations

license: unknown


code:
/*:ja
 * @plugindesc v1.04 - 選択肢の表示の際、選択肢を画像で、画面の自由な場所に配置できるようにします。
 * @author Souji Kenzaki
 *
 * @param Cursor Bitmap Name
 * @type string
 * @desc カーソル画像名
 * @default Cursor
 *
 * @param Cursor Overhead X
 * @type number
 * @min -99999
 * @desc カーソル位置調整座標X
 * @default 0
 *
 * @param Cursor Overhead Y
 * @type number
 * @min -99999
 * @desc カーソル位置調整座標Y
 * @default 0
 *
 * @param Cursor Max Frame
 * @type number
 * @desc カーソルアニメーションの最大フレーム数（0でアニメーションなし）
 * @default 0
 *
 * @param Cursor Frame Spacing
 * @type number
 * @desc カーソルアニメーションのフレーム間隔
 * @default 0
 *
 * @help
 * 有効化はプラグインコマンド GraphicalChoice on
 * 無効かは同　GraphicalChoice off
 * にて行ってください。（初期状態では無効化されています）
 *
 * ※画像はカーソル、選択肢画像共に　img/choices/　フォルダ内に入れてください。
 * 有効化中、イベントコマンドで選択肢の表示を行う際、選択肢のテキストを
 * [画像]|[x]|[y]
 * の形式にする事で画像で選択肢の表示を行う事が可能です。
 *
 * 例として
 * choice1|30|50
 * であれば、choice1.pngを座標(30,50)に表示し選択できるようにします。
 *
 * 尚、キーボード操作はデフォルトに準じ、上下キーでのみカーソルが動かせる事にご注意ください。
 * タッチ／クリック操作はこの制約を受けません。
 *
 * Cursor Max Frameを1以上にする事で、カーソルをアニメーションさせる事が可能です。
 * この場合、例えばCursor Bitmap Nameが cs
 * Cursor Max Frameが3だった場合
 * cs0.png~cs3.pngまでが順に再生されその後cs0.pngに巻き戻りループします。
 *
 * スクリプトでゲーム中に以下を変更できます。
 *
 * カーソル基本画像cn.pngに
 * $gameSystem.ChoiceCursor.bmp = "cn";
 *
 * カーソルのx補正値変更
 * $gameSystem.ChoiceCursor.x = 3;
 *
 * カーソルのy補正値変更
 * $gameSystem.ChoiceCursor.y = 5;
 *
 * カーソルアニメのフレーム数変更
 * $gameSystem.ChoiceCursor.maxFrame = 10;
 *
 * カーソルアニメの再生間隔変更
 * $gameSystem.ChoiceCursor.interval = 20;
 *
 *
 *
 * 開発協力Special Thanks：
 * サイリ様(@sairi55)
 * ヴァージニアス様(@Virgina_ss)
 */

(function () {

    var parameters = PluginManager.parameters('kz_PictureChoices');
    var _cursorBmp = String(parameters['Cursor Bitmap Name'] || "");
    var _cursorX = Number(parameters['Cursor Overhead X']) || 0;
    var _cursorY = Number(parameters['Cursor Overhead Y']) || 0;
    var _c_maxFrame = Number(parameters['Cursor Max Frame']) || 0;
    var _c_Interval = Number(parameters['Cursor Frame Spacing']) || 0;

    var _Game_Interpreter_pluginCommand =
        Game_Interpreter.prototype.pluginCommand;
    Game_Interpreter.prototype.pluginCommand = function (command, args) {
        _Game_Interpreter_pluginCommand.call(this, command, args);
        if (command === 'GraphicalChoice') {
            $gameSystem.graphicalChoices = (args[0] == "on");
        }
    };

    ImageManager.loadChoices = function (filename, hue) {
        return this.loadBitmap('img/choices/', filename, hue, true);
    };

    const kz_Game_System_prototype_initialize = Game_System.prototype.initialize;
    Game_System.prototype.initialize = function () {
        kz_Game_System_prototype_initialize.call(this);
        this.ChoiceCursor = {}
        this.ChoiceCursor.bmp = _cursorBmp;
        this.ChoiceCursor.x = _cursorX;
        this.ChoiceCursor.y = _cursorY;
        this.ChoiceCursor.maxFrame = _c_maxFrame;
        this.ChoiceCursor.interval = _c_Interval;
    };

    var kz_Window_ChoiceList_prototype_windowWidth = Window_ChoiceList.prototype.windowWidth;
    Window_ChoiceList.prototype.windowWidth = function () {
        if (!$gameSystem.graphicalChoices) {
            return kz_Window_ChoiceList_prototype_windowWidth.call(this);
        }
        return 0;
    };

    var kz_Window_ChoiceList_prototype_windowHeight = Window_ChoiceList.prototype.windowHeight;
    Window_ChoiceList.prototype.windowHeight = function () {
        if (!$gameSystem.graphicalChoices) {
            return kz_Window_ChoiceList_prototype_windowHeight.call(this);
        }
        return 0;
    };

    var kz_Window_ChoiceList_prototype_cursorRight = Window_ChoiceList.prototype.cursorRight;
    Window_ChoiceList.prototype.cursorRight = function(wrap) {
        if (!$gameSystem.graphicalChoices) {
            kz_Window_ChoiceList_prototype_cursorRight.call(this, wrap);
            return;
        }
        this.cursorDown(wrap);
    };

    var kz_Window_ChoiceList_prototype_cursorLeft = Window_ChoiceList.prototype.cursorLeft;
    Window_ChoiceList.prototype.cursorLeft = function(wrap) {
        if (!$gameSystem.graphicalChoices) {
            kz_Window_ChoiceList_prototype_cursorLeft.call(this, wrap);
            return;
        }
        this.cursorUp(wrap);
    };

    var kz_Window_ChoiceList_prototype_initialize = Window_ChoiceList.prototype.initialize;
    Window_ChoiceList.prototype.initialize = function (messageWindow) {
        kz_Window_ChoiceList_prototype_initialize.call(this, messageWindow);

        this._choiceSprite = [];
        this._cursorSprite = new Sprite_ChoiceCursor($gameSystem.ChoiceCursor.maxFrame, $gameSystem.ChoiceCursor.interval);
    };

    var kz_Window_ChoiceList_prototype_start = Window_ChoiceList.prototype.start;
    Window_ChoiceList.prototype.start = function () {
        this.removeAllChoiceSprites();

        if ($gameSystem.graphicalChoices) {
            this.populateChoiceSprites();
        }

        kz_Window_ChoiceList_prototype_start.call(this);

        if ($gameSystem.graphicalChoices) {
            this.x = 0;
            this.y = 0;
        }
    };

    Window_ChoiceList.prototype.populateChoiceSprites = function () {
        var choices = $gameMessage.choices();
        for (var i = 0; i < choices.length; i++) {
            var _data = choices[i].split('|')
            this._choiceSprite[i] = new Sprite_Base();
            this._choiceSprite[i].bitmap = ImageManager.loadChoices(_data[0]);
            this._choiceSprite[i].x = _data[1] ? Number(_data[1]) : 0;
            this._choiceSprite[i].y = _data[2] ? Number(_data[2]) : 0;
            this.addChild(this._choiceSprite[i]);
        }

        this.addChild(this._cursorSprite);//再追加で一番上に出す
    }

    Window_ChoiceList.prototype.removeAllChoiceSprites = function () {
        for (var i = 0; i < this._choiceSprite.length; i++) {
            this.removeChild(this._choiceSprite[i]);
        }
        this._choiceSprite = [];
    }

    var kz_Window_ChoiceList_prototype_updateArrows = Window_ChoiceList.prototype.updateArrows;
    Window_ChoiceList.prototype.updateArrows = function () {
        kz_Window_ChoiceList_prototype_updateArrows.call(this);

        if ($gameSystem.graphicalChoices) {
            this.downArrowVisible = false;
            this.upArrowVisible = false;
        }
    };

    var kz_Window_ChoiceList_prototype_select = Window_ChoiceList.prototype.select;
    Window_ChoiceList.prototype.select = function (index) {
        kz_Window_ChoiceList_prototype_select.call(this, index);

        if ($gameSystem.graphicalChoices) {
            if (!this._cursorSprite) {
                return;
            }
            if (index < 0 || !this._choiceSprite || !this._choiceSprite[index]) {
                this._cursorSprite.hide()
                return;
            }
            this._cursorSprite.show();
            this._cursorSprite.x = this._choiceSprite[index].x + $gameSystem.ChoiceCursor.x;
            this._cursorSprite.y = this._choiceSprite[index].y + $gameSystem.ChoiceCursor.y;
        }
        else if (this._cursorSprite)
        {
            this._cursorSprite.hide();
        }
    };

    var kz_Window_ChoiceList_prototype_hitTest = Window_ChoiceList.prototype.hitTest;
    Window_ChoiceList.prototype.hitTest = function (x, y) {
        if (!$gameSystem.graphicalChoices) {
            return kz_Window_ChoiceList_prototype_hitTest.call(this, x, y);
        }

        if (this._choiceSprite) {
            for (var i = 0; i < this._choiceSprite.length; i++) {
                var xmin = this._choiceSprite[i].x;
                var xmax = this._choiceSprite[i].x + this._choiceSprite[i].width;
                var ymin = this._choiceSprite[i].y;
                var ymax = this._choiceSprite[i].y + this._choiceSprite[i].height;

                if (x >= xmin && x <= xmax && y >= ymin && y <= ymax) {
                    return i;
                }
            }
        }
        return -1;
    };

    var kz_Window_ChoiceList_prototype_isTouchedInsideFrame = Window_ChoiceList.prototype.isTouchedInsideFrame;
    Window_ChoiceList.prototype.isTouchedInsideFrame = function () {
        if (!$gameSystem.graphicalChoices) {
            return kz_Window_ChoiceList_prototype_isTouchedInsideFrame.call(this);
        }
        return true;
    };

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

    Sprite_ChoiceCursor.prototype = Object.create(Sprite_Base.prototype);
    Sprite_ChoiceCursor.prototype.constructor = Sprite_Weapon;

    Sprite_ChoiceCursor.prototype.initialize = function (cursorMaxFrame, cursorInterval) {
        Sprite_Base.prototype.initialize.call(this);

        if (!cursorMaxFrame) {
            this.bitmap = ImageManager.loadChoices($gameSystem.ChoiceCursor.bmp);
        }

        this._maxFrame = cursorMaxFrame;
        this._interval = cursorInterval;
        this._currentFrame = 0;
        this._currentInterval = 0;
        this._currentCursorPicName = "";
    };

    Sprite_ChoiceCursor.prototype.update = function () {
        Sprite_Base.prototype.update.call(this);
        this.updateCursorFrameAnimation();
    };

    Sprite_ChoiceCursor.prototype.updateCursorFrameAnimation = function () {
        this._maxFrame = $gameSystem.ChoiceCursor.maxFrame;
        this._interval = $gameSystem.ChoiceCursor.interval;

        if (!this._maxFrame) {
            if (this._currentCursorPicName != $gameSystem.ChoiceCursor.bmp)
            {
                this.bitmap = ImageManager.loadChoices($gameSystem.ChoiceCursor.bmp);
                this._currentCursorPicName = $gameSystem.ChoiceCursor.bmp;
            }
            return;
        }

        if (this._currentInterval > this._interval) {
            this._currentFrame++;
            this._currentInterval = 0;
        }

        if (this._currentFrame > this._maxFrame) {
            this._currentFrame = 0;
        }

        if (this._currentCursorPicName != this.cursorPicName()) {
            this.bitmap = ImageManager.loadChoices(this.cursorPicName());
            this._currentCursorPicName = this.cursorPicName();
        }

        this._currentInterval++;
    };

    Sprite_ChoiceCursor.prototype.cursorPicName = function () {
        return $gameSystem.ChoiceCursor.bmp + String(this._currentFrame);
    }

})();


code:
/*:ja
 * @plugindesc ステータスシーンの自由設置
 * @author 剣崎宗二
 *
 *
 * @param Status Window X
 * @desc ステータスウインドウのX（-1の場合はデフォルト動作)。
 * @type number
 * @min -1
 * @default -1
 *
 * @param Status Window Y
 * @desc ステータスウインドウのY（-1の場合はデフォルト動作)。
 * @type number
 * @min -1
 * @default -1
 *
 * @param Status Window Width
 * @desc ステータスウインドウの横幅（-1の場合はデフォルト動作)。
 * @type number
 * @min -1
 * @default 300
 *
 * @param Status Window Height
 * @desc ステータスウインドウの縦幅（-1の場合はデフォルト動作)。
 * @type number
 * @min -1
 * @default 600
 *
 * @param Status Window Padding
 * @desc ステータスウィンドウの外周、余白サイズ。
 * @type number
 * @min 0
 * @default 18
 *
 * @param State X
 * @desc ステートアイコンエリアの相対座標のX。
 * @type number
 * @default 0
 *
 * @param State Y
 * @desc ステートアイコンエリアの相対座標のY。
 * @type number
 * @default 0
 *
 * @param State Width
 * @desc ステートアイコンエリアの横幅。マイナス値の場合アイコンは表示されない。
 * @type number
 * @min -1
 * @default 144
 *
 * @param Actor Icon X
 * @desc アクターアイコンのX。Yとどちらかがマイナスだった場合、表示されない。
 * @type number
 * @min -1
 * @default -1
 *
 * @param Actor Icon Y
 * @desc アクターアイコンのY。Xとどちらかがマイナスだった場合、表示されない
 * @type number
 * @min -1
 * @default -1
 *
 * @param Background PNG
 * @desc ウィンドウの背景ファイル。Systemフォルダ内。この欄が空白でデフォルト状態。
 * @type string
 * @default
 *
 * @param Display Text
 * @desc 表示するテキスト。,区切りで 内容,x,y,横幅,文字サイズ,文字色ID,アウトライン色ID,フォント名 。値がなければデフォルト。
 * @type string[]
 * @default ["a.name(),10,10,30","a.mhp,40,10,30,38,10,,10"]
 *
 * @param Display Picture
 * @desc 表示するピクチャ、複数指定可でpicturesフォルダ内。,区切りで ピクチャ名,x,y 。
 * @type string[]
 * @default ["a.actor().meta.stand_picture,10,10,30"]
 *
 * @param Display Gauge
 * @desc 表示するゲージ。,区切りで 変動値,最大値,x,y,ゲージ幅,実体色ID,背景色ID。
 * @type string[]
 * @default ["a.mp,a.mmp,10,40,70,20,21"]
 *
 * @param Display Icon
 * @desc 表示するアイコン。,区切りで アイコンID,x,y。
 * @type string[]
 * @default ["4,0,0"]
 *
 *
 *
 * @help このプラグインには、プラグインコマンドはありません。
 *
 * ■使用する画像は全て任意の名前が使えます。
 * 　各パラメータにある配置箇所に注意して下さい。
 *
 * ■表示テキスト、及びゲージの現在値/最大値には a.hp や a.atk などの他、
 * 　変数やメモの値といった様々なデータが記載できます。
 *
 *   その他パラメータ(a.○○の一例、何方も名称は''の直テキスト入力で）
 *   （xparam)　cev　　 　会心回避率
 *　　　　　 　mev　　 　魔法回避率
 *　　　　　 　mrf　　　 魔法反射率
 *　　　　　 　cnt　　　 反撃率
 *　　　　 　　hrg       HP再生率
 * 　　　  　   mrg       MP再生率
 * 　　　　　   trg       TP再生率
 *
 *   （sparam)　tgr       狙われ率
 * 　　　　　   grd       防御効果率
 * 　　　　　   rec       回復効果率
 * 　　　　　   pha       薬の知識
 * 　　　　　   mcr       MP消費率
 * 　　　　　   tcr       TPチャージ率
 *　　　　　   pdr       物理ダメージ率
 * 　　　　　   mdr       魔法ダメージ率
 *　　　　　   fdr       床ダメージ率
 * 　　　　　   exr       経験獲得率
 *
 * ■Display TextとDisplay GaugeにあるIDとはwindow.pngのカラーパレット
 *  インデックスです。変更する場合は0から数えて記載して下さい。
 *
 * ■フォントを変えた場合、一度の読み込みでは表示されない可能性があります。
 *　他のフォントロード系プラグインなどでカバーする事を推奨します。
 *
 * ■読み取るメモについて（●.meta.○）
 *　●の箇所で場所を指定　a.actor()　　　  ＝アクター
 *　　　　　　　　　　　　a.currentClass() ＝クラス　　　など
 *　○は値の名前なので分かりやすい名前にしてください。
 *
 *
 *
 */

(function () {
    var parameters = PluginManager.parameters('kz_StatusWindow');

    var _wX = Number(parameters['Status Window X'] || -1);
    var _wY = Number(parameters['Status Window Y'] || -1);
    var _wWidth = Number(parameters['Status Window Width'] || -1);
    var _wHeight = Number(parameters['Status Window Height'] || -1);
    var _wPadding = Number(parameters['Status Window Padding'] || 0);
    var _wBackground = String(parameters['Background PNG'] || '');

    var _faceX = Number(parameters['Actor Icon X'] || -1);
    var _faceY = Number(parameters['Actor Icon Y'] || -1);

    var _stateX = Number(parameters['State X'] || 0);
    var _stateY = Number(parameters['State Y'] || 0);
    var _stateWidth = Number(parameters['State Width'] || 144);

    var _dTextArray = eval(parameters['Display Text']) || [];
    var _dPicArray = eval(parameters['Display Picture']) || [];
    var _dGaugeArray = eval(parameters['Display Gauge']) || [];
    var _dIconArray = eval(parameters['Display Icon']) || [];

    var kz_Window_Status_prototype_initialize = Window_Status.prototype.initialize;
    Window_Status.prototype.initialize = function () {
        kz_Window_Status_prototype_initialize.call(this);
        var fx = _wX >= 0 ? _wX : 0;
        var fy = _wY >= 0 ? _wY : 0;
        var fw = _wWidth >= 0 ? _wWidth : this.width;
        var fh = _wHeight >= 0 ? _wHeight : this.height;
        this.move(fx, fy, fw, fh);
        if (_wBackground != '') {
            this.setBackgroundType(2);
            this.createBackSprite();
        }
        this.reserveStatusImages();
    };

    Window_Status.prototype.createBackSprite = function () {
        this._backSprite = new Sprite();
        this._backSprite.bitmap = ImageManager.loadSystem(_wBackground);
        this.addChildToBack(this._backSprite);
    };

    Window_Status.prototype.refresh = function () {
        this.contents.clear();
        if (this._actor) {
            this.drawFullStatus(this._actor);
        }
    };

    Window_Status.prototype.drawFullStatus = function (actor) {
        if (!actor) return;

        this.drawStatusPicture(actor);
        if (_faceX >= 0 && _faceY >= 0) {
            this.drawActorFace(actor, _faceX, _faceY, Window_Base._faceWidth, Window_Base._faceHeight);
        }
        this.drawStatusGauge(actor);
        this.drawStatusState(actor);
        this.drawStatusText(actor);
        this.drawStatusIcons(actor);
    };

    Window_Status.prototype.drawStatusState = function (actor) {
        if (_stateWidth < 0) return;

        var a = actor;
        var x = _stateX;
        var y = _stateY;
        var width = _stateWidth;

        this.drawActorIcons(a, x, y, width);
    };

    Window_Status.prototype.drawStatusIcons = function (actor) {
        var a = actor;

        _dIconArray.forEach(function (line) {
            var dataArray = line.split(',');
            var value = eval(dataArray[0]);
            var x = Number(dataArray[1]);
            var y = Number(dataArray[2]);

            this.drawIcon(value, x, y);
        }, this);
    };

    Window_Status.prototype.drawStatusText = function (actor) {
        var a = actor;

        _dTextArray.forEach(function (line) {
            var dataArray = line.split(',');
            var value = eval(dataArray[0]);
            var x = Number(dataArray[1]);
            var y = Number(dataArray[2]);
            var width = Number(dataArray[3]);
            var fontSize = Number(dataArray[4]);
            var textColor = Number(dataArray[5]);
            var outlineColor = Number(dataArray[6]);
            var fontFace = dataArray[7];

            var currentOutlineColor = this.contents.outlineColor;
            if (fontFace) { this.contents.fontFace = fontFace; }
            if (textColor >= 0) { this.changeTextColor(this.textColor(textColor)); }
            if (outlineColor >= 0) { this.contents.outlineColor = this.textColor(outlineColor); }
            if (fontSize >= 0) { this.contents.fontSize = fontSize; }

            this.forbidResetFont = true;
            this.drawTextEx(String(value), x, y);
            this.forbidResetFont = false;

            this.resetFontSettings();
            this.contents.outlineColor = currentOutlineColor;
        }, this);
    };

    Window_Status.prototype.drawStatusPicture = function (actor) {
        var a = actor;

        _dPicArray.forEach(function (line) {
            var dataArray = line.split(',');
            var value = eval(dataArray[0]);
            var bitmap = ImageManager.loadPicture(value);
            var x = Number(dataArray[1]);
            var y = Number(dataArray[2]);
            var pw = bitmap.width;
            var ph = bitmap.height;

            this.contents.blt(bitmap, 0, 0, pw, ph, x, y);
        }, this);
    };

    Window_Status.prototype.drawStatusGauge = function (actor) {
        var a = actor;

        _dGaugeArray.forEach(function (line) {

            var dataArray = line.split(',');
            var minValue = Number(eval(dataArray[0]));
            var maxValue = Number(eval(dataArray[1]));
            var x = Number(dataArray[2]);
            var y = Number(dataArray[3]);
            var width = Number(dataArray[4]);
            var rate = minValue / maxValue;
            var color1 = this.textColor(Number(dataArray[5]));
            var color2 = this.textColor(Number(dataArray[6]));
            this.drawGauge(x, y, width, rate, color1, color2);
        }, this);
    };

    Window_Status.prototype.standardPadding = function () {
        return _wPadding;
    };

    Window_Status.prototype.reserveStatusImages = function() {
        $gameParty.members().forEach(function(a) {
            _dPicArray.forEach(function (line) {
                var dataArray = line.split(',');
                var value = eval(dataArray[0]);
                ImageManager.reservePicture(value);
            }, this);
        }, this);
    };

    Window_Status.prototype.resetFontSettings = function() {
        if (this.forbidResetFont) return;

        this.contents.fontFace = this.standardFontFace();
        this.contents.fontSize = this.standardFontSize();
        this.resetTextColor();
    };

})();


code:
//=============================================================================
// アイテム最大所持個数指定プラグイン
// setItemMax.js
// Copyright (c) 2018 村人Ａ
//=============================================================================

/*:ja
 * @plugindesc アイテムの最大所持個数をアイテムIdごとに指定できます。
 * @author 村人A
 *
 * @help
 *
 *  アイテムのメモ欄に「itemMaxNum:個数」と入力することによりそのアイテムのデフォルトの最大所持数を設定することが出来ます。
 *  コマンド例
 *  itemMaxNum:1010  #入力したアイテムの最大所持数を1010個に設定
 *
 *  アイテムの所持上限数をゲーム中に変更したい場合は「アイテム上限設定変更」とプラグインコマンドを入力後、指定したいアイテムidと最大所持数を入力
 *  別のアイテムも変更したい場合続けて入力してください
 *  デフォルトの最大所持数（９９個）を変更したい場合はidを0と入力し、その後に個数を指定してください。
 *
 * プラグインコマンド例:
 *   アイテム上限設定変更 3 35
 *   #アイテムidが3のアイテムの最大所持数を35個に設定
 *   アイテム上限設定変更 1 20 4 8 7 15 9 100 0 200
 *   #idが1のアイテムの最大個数を20個に、idが4のアイテムの最大個数を8個に以下、7を15、9を100、デフォルトの最大個数を200個に変更
 *
 *  変更したときにアイテムの所持数が指定した最大所持数より多かった場合、自動的に最大所数に直されます。
 *
 *  値の優先度としては
 *  プラグインコマンドによる変更　＞　データベースでの指定　＞　変更したデフォルトの最大個数　＞　デフォルトの最大個数（９９個）
 *  となります。
 */

(function() {
	villaA_itemIdMaxArray = [];
	villaA_itemSeachNum = 1;
	villaA_itemMaxNum = 2;

	var _Game_Interpreter_pluginCommand = Game_Interpreter.prototype.pluginCommand;
	Game_Interpreter.prototype.pluginCommand = function(command, args) {
		_Game_Interpreter_pluginCommand.call(this, command, args);
		if (command === 'アイテム上限設定変更') {
			for(var i = 0; i < args.length; i += 2){
				villaA_itemIdMaxArray.push([args[i], args[i+1]]);
				if(String(args[i+1]).length > villaA_itemMaxNum){
					villaA_itemMaxNum = String(args[i+1]).length;
				}
			}

			for(var i = 1; i < $dataItems.length; i++){
				if(villaA_itemSeachNum < String($gameParty.maxItems($dataItems[i])).length){
					villaA_itemSeachNum = String($gameParty.maxItems($dataItems[i])).length;
				}
			}
			villaA_itemMaxNum = villaA_itemSeachNum;
			villaA_itemSeachNum = 1;

			for(var i = 1; i < $dataItems.length; i++){
				if($gameParty.numItems($dataItems[i]) > $gameParty.maxItems($dataItems[i])){
					$gameParty.loseItem($dataItems[i], $gameParty.numItems($dataItems[i]))
					$gameParty.gainItem($dataItems[i], parseInt($gameParty.maxItems($dataItems[i])))
				}

				if(villaA_itemIdMaxArray[villaA_itemIdMaxArray.length-1][0] == 0){
					if($gameParty.numItems($dataItems[i]) > villaA_itemIdMaxArray[villaA_itemIdMaxArray.length-1][1]){
						$gameParty.loseItem($dataItems[i], $gameParty.numItems($dataItems[i]))
						$gameParty.gainItem($dataItems[i], parseInt($gameParty.maxItems($dataItems[i])))
					}
				}
			}
		}
	}

	var _Game_Party_gainItem = Game_Party.prototype.gainItem;
	Game_Party.prototype.gainItem = function(item, amount, includeEquip) {
		_Game_Party_gainItem.call(this, item, amount, includeEquip);
		for(var i = 1; i < $dataItems.length; i++){
			if(villaA_itemSeachNum < String(this.maxItems($dataItems[i])).length){
				villaA_itemSeachNum = String(this.maxItems($dataItems[i])).length;
			}
		}
		villaA_itemMaxNum = villaA_itemSeachNum;
		villaA_itemSeachNum = 1;
	};

	Game_Party.prototype.maxItems = function(item) {
		for(var i = 0; i < villaA_itemIdMaxArray.length; i++){
			if(villaA_itemIdMaxArray[i][0] == item.id){
				return villaA_itemIdMaxArray[i][1]
			}
		}

		if(item.note != ""){
			var itemNoteArray = []
			itemNoteArray = item.note.split(/\r\n|\r|\n/);

			for(var i = 0 ; i < itemNoteArray.length; i++){
				if(itemNoteArray[i].indexOf('itemMaxNum') != -1){
					var MaxNum = itemNoteArray[i].split(":");
					return parseInt(MaxNum[1]);
				}
			}
		}

		for(var i = 0; i < villaA_itemIdMaxArray.length; i++){
			if(villaA_itemIdMaxArray[i][0] == 0){
				return villaA_itemIdMaxArray[i][1]
			}
		}

		return 99;
	};

	Window_ItemList.prototype.drawItem = function(index) {
		var item = this._data[index];
		if (item) {
			var textWid1 = "0";
			var textWid2 = "";
			for(var i = 1; i <= villaA_itemMaxNum; i++){
				textWid1 += 0;
				textWid2 += 0;
			}

			var numberWidth = this.numberWidth(textWid1);
			var rect = this.itemRect(index);
			rect.width -= this.textPadding();
			this.changePaintOpacity(this.isEnabled(item));
			this.drawItemName(item, rect.x, rect.y, rect.width - numberWidth);
			this.drawItemNumber(item, rect.x, rect.y, rect.width, textWid2);
			this.changePaintOpacity(1);
		}
	};

	Window_ItemList.prototype.numberWidth = function(textWid) {
		return this.textWidth(textWid);
	};

	Window_ItemList.prototype.drawItemNumber = function(item, x, y, width, textWid) {
		if (this.needsNumber()) {
			this.drawText(':', x, y, width - this.textWidth(textWid), 'right');
			this.drawText($gameParty.numItems(item), x, y, width, 'right');
		}
	};
})();