/*: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(); }; })();