//============================================================================= // K_VariableWindow.js //============================================================================= /*: * @plugindesc ツクールフェスのイベントコマンド「変数を画面に表示」を実装します。 * @author Kota (https://nine-yusha.com/) * * @help プラグインコマンド VariableWindow show 1 # 変数1の値を画面に表示します。 VariableWindow close # 表示した変数を画面から消去します。 利用規約: ・著作権表記は必要ございません。 ・利用するにあたり報告の必要は特にございません。 ・商用・非商用問いません。 ・R18作品にも使用制限はありません。 ・ゲームに合わせて自由に改変していただいて問題ございません。 ・プラグイン素材としての再配布(改変後含む)は禁止させていただきます。 ライセンスについての詳細は下記をご確認ください。 https://nine-yusha.com/plugin/ 作者: ルルの教会 作成日: 2020/10/13 */ (function () { var parameters = PluginManager.parameters("K_VariableWindow"); var Scene_map_start = Scene_Map.prototype.start; Scene_Map.prototype.start = function () { Scene_map_start.call(this); this._variableInfoWindow = new Window_VariableInfo(); this.addWindow(this._variableInfoWindow); }; var _Scene_Map_update = Scene_Map.prototype.update; Scene_Map.prototype.update = function () { _Scene_Map_update.call(this); this._variableInfoWindow.setText(); }; // Game_Systemに変数を追加 (セーブ時に保存させるため) Game_System.prototype.clearVariableWindowFlag = function () { this._VariableWindowFlag = false; this._VariableWindowId = 1; }; //----------------------------------------------------------------------------- // PluginCommand // var _Game_Interpreter_pluginCommand = Game_Interpreter.prototype.pluginCommand; Game_Interpreter.prototype.pluginCommand = function (command, args) { _Game_Interpreter_pluginCommand.call(this, command, args); if (command === "VariableWindow") { switch (args[0]) { case "show": if (!$gameSystem._VariableWindowFlag) { $gameSystem.clearVariableWindowFlag(); } $gameSystem._VariableWindowId = args[1]; $gameSystem._VariableWindowFlag = true; break; case "close": if (!$gameSystem._VariableWindowFlag) { $gameSystem.clearVariableWindowFlag(); } $gameSystem._VariableWindowFlag = false; break; } } }; //----------------------------------------------------------------------------- // Window_VariableInfo // function Window_VariableInfo() { this.initialize.apply(this, arguments); } Window_VariableInfo.prototype = Object.create(Window_Base.prototype); Window_VariableInfo.prototype.constructor = Window_VariableInfo; Window_VariableInfo.prototype.initialize = function () { var width = 400; var height = this.fittingHeight(1); Window_Base.prototype.initialize.call( this, Graphics.boxWidth - width, 0, width, height ); }; Window_VariableInfo.prototype.setText = function (text) { this._text = text; this.refresh(); }; Window_VariableInfo.prototype.clear = function () { this.setText(""); }; Window_VariableInfo.prototype.refresh = function () { var variableId = $gameSystem._VariableWindowId; this.contents.clear(); this.changeTextColor(this.systemColor()); this.drawText( $dataSystem.variables[variableId], this.textPadding(), 0, 250 ); this.resetTextColor(); this.drawText($gameVariables.value(variableId), 90, 0, 100, "right"); // 表示・非表示状態判定 if ($gameSystem._VariableWindowFlag) { this.show(); } else { this.hide(); } }; })();