211 lines
7.8 KiB
JavaScript
211 lines
7.8 KiB
JavaScript
//=============================================================================
|
||
// TMPlugin - セーブデータラベル
|
||
// バージョン: 2.0.0
|
||
// 最終更新日: 2016/08/12
|
||
// 配布元 : http://hikimoki.sakura.ne.jp/
|
||
//-----------------------------------------------------------------------------
|
||
// Copyright (c) 2016 tomoaky
|
||
// Released under the MIT license.
|
||
// http://opensource.org/licenses/mit-license.php
|
||
//=============================================================================
|
||
|
||
/*:
|
||
* @plugindesc セーブファイルウィンドウに変数の値を表示します。
|
||
*
|
||
* @author tomoaky (http://hikimoki.sakura.ne.jp/)
|
||
*
|
||
* @param labelAName
|
||
* @desc ラベルAの名前
|
||
* 初期値: ラベルA
|
||
* @default ラベルA
|
||
*
|
||
* @param labelAId
|
||
* @desc ラベルAのゲーム変数番号
|
||
* 初期値: 10( 0 で非表示 / 1 以上で表示)
|
||
* @default 10
|
||
*
|
||
* @param labelAMax
|
||
* @desc ラベルAの最大値
|
||
* 初期値: 9999
|
||
* @default 9999
|
||
*
|
||
* @param labelAFooter
|
||
* @desc ラベルAのフッターテキスト
|
||
* 初期値:
|
||
* @default
|
||
*
|
||
* @param labelBName
|
||
* @desc ラベルBの名前
|
||
* 初期値: ラベルB
|
||
* @default ラベルB
|
||
*
|
||
* @param labelBId
|
||
* @desc ラベルBのゲーム変数番号
|
||
* 初期値: 0( 0 で非表示 / 1 以上で表示)
|
||
* @default 0
|
||
*
|
||
* @param labelBMax
|
||
* @desc ラベルBの最大値
|
||
* 初期値: 9999
|
||
* @default 9999
|
||
*
|
||
* @param labelBFooter
|
||
* @desc ラベルBのフッターテキスト
|
||
* 初期値:
|
||
* @default
|
||
*
|
||
* @param labelNameWidth
|
||
* @desc ラベル名の表示幅
|
||
* 初期値: 160
|
||
* @default 160
|
||
*
|
||
* @param labelValueWidth
|
||
* @desc ラベル値の表示幅
|
||
* 初期値: 96
|
||
* @default 96
|
||
*
|
||
* @param labelNameColorId
|
||
* @desc ラベル名の文字色番号
|
||
* 初期値: 16
|
||
* @default 16
|
||
*
|
||
* @param labelValueColorId
|
||
* @desc ラベル値の文字色番号
|
||
* 初期値: 0
|
||
* @default 0
|
||
*
|
||
* @param labelMaxColorId
|
||
* @desc ラベル値が最大のときの文字色番号
|
||
* 初期値: 2
|
||
* @default 2
|
||
*
|
||
* @param labelFooterColorId
|
||
* @desc フッターの文字色番号
|
||
* 初期値: 0
|
||
* @default 0
|
||
*
|
||
* @help
|
||
* 使い方:
|
||
*
|
||
* このプラグインを導入するとセーブファイルウィンドウの右上にゲーム変数の
|
||
* 値(以下ラベル)を最大で2つまで表示することができるようになります。
|
||
*
|
||
* プラグイン導入前に作成されたセーブデータは、再度セーブが実行されるまで
|
||
* ラベルは表示されません。
|
||
*
|
||
* プラグインコマンドはありません。
|
||
*
|
||
* このプラグインは RPGツクールMV Version 1.3.0 で動作確認をしています。
|
||
*
|
||
*
|
||
* プラグインパラメータ補足:
|
||
*
|
||
* labelAFooter / labelBFooter
|
||
* ラベル値の後ろに表示する文字列を設定します。
|
||
* 『1234 点』、『12 日目』のような表示にするための機能です、値との間の
|
||
* スペースは半角スペースなどで調整してください。
|
||
*
|
||
* labelAMax / labelBMax
|
||
* ゲーム変数の値がこれらの値以上だった場合、ラベルに表示される値の
|
||
* 文字色番号が labelValueColorId から labelMaxColorId に変化します。
|
||
* また、ゲーム変数の値が最大値よりも大きい場合は、最大値を表示します。
|
||
* 0 を設定すると上記機能が無効になります。
|
||
*
|
||
* labelNameColorId
|
||
* labelValueColorId
|
||
* labelMaxColorId
|
||
* labelFooterColorId
|
||
* ラベルの各部分ごとの文字色番号を設定します。
|
||
* 番号はイベントコマンド『文章の表示』などで使う制御文字 \C[n] の
|
||
* n の部分と同じものになります。
|
||
*/
|
||
|
||
var Imported = Imported || {};
|
||
Imported.TMSaveDataLabel = true;
|
||
|
||
var TMPlugin = TMPlugin || {};
|
||
TMPlugin.SaveDataLabel = {};
|
||
TMPlugin.SaveDataLabel.Parameters = PluginManager.parameters('TMSaveDataLabel');
|
||
TMPlugin.SaveDataLabel.LabelAName = TMPlugin.SaveDataLabel.Parameters['labelAName'];
|
||
TMPlugin.SaveDataLabel.LabelAId = +(TMPlugin.SaveDataLabel.Parameters['labelAId'] || 10);
|
||
TMPlugin.SaveDataLabel.LabelAMax = +(TMPlugin.SaveDataLabel.Parameters['labelAMax'] || 9999);
|
||
TMPlugin.SaveDataLabel.LabelAFooter = TMPlugin.SaveDataLabel.Parameters['labelAFooter'];
|
||
TMPlugin.SaveDataLabel.LabelBName = TMPlugin.SaveDataLabel.Parameters['labelBName'];
|
||
TMPlugin.SaveDataLabel.LabelBId = +(TMPlugin.SaveDataLabel.Parameters['labelBId'] || 0);
|
||
TMPlugin.SaveDataLabel.LabelBMax = +(TMPlugin.SaveDataLabel.Parameters['labelBMax'] || 9999);
|
||
TMPlugin.SaveDataLabel.LabelBFooter = TMPlugin.SaveDataLabel.Parameters['labelBFooter'];
|
||
TMPlugin.SaveDataLabel.NameWidth = +(TMPlugin.SaveDataLabel.Parameters['labelNameWidth'] || 160);
|
||
TMPlugin.SaveDataLabel.ValueWidth = +(TMPlugin.SaveDataLabel.Parameters['labelValueWidth'] || 96);
|
||
TMPlugin.SaveDataLabel.NameColorId = +(TMPlugin.SaveDataLabel.Parameters['labelNameColorId'] || 16);
|
||
TMPlugin.SaveDataLabel.ValueColorId = +(TMPlugin.SaveDataLabel.Parameters['labelValueColorId'] || 0);
|
||
TMPlugin.SaveDataLabel.MaxColorId = +(TMPlugin.SaveDataLabel.Parameters['labelMaxColorId'] || 2);
|
||
TMPlugin.SaveDataLabel.FooterColorId = +(TMPlugin.SaveDataLabel.Parameters['labelFooterColorId'] || 0);
|
||
|
||
(function () {
|
||
|
||
//-----------------------------------------------------------------------------
|
||
// DataManager
|
||
//
|
||
|
||
var _DataManager_makeSavefileInfo = DataManager.makeSavefileInfo;
|
||
DataManager.makeSavefileInfo = function () {
|
||
var info = _DataManager_makeSavefileInfo.call(this);
|
||
info.labelA = TMPlugin.SaveDataLabel.LabelAId ? $gameVariables.value(TMPlugin.SaveDataLabel.LabelAId) : 0;
|
||
info.labelB = TMPlugin.SaveDataLabel.LabelBId ? $gameVariables.value(TMPlugin.SaveDataLabel.LabelBId) : 0;
|
||
return info;
|
||
};
|
||
|
||
//-----------------------------------------------------------------------------
|
||
// Window_SavefileList
|
||
//
|
||
|
||
var _Window_SavefileList_drawItem = Window_SavefileList.prototype.drawItem;
|
||
Window_SavefileList.prototype.drawItem = function (index) {
|
||
_Window_SavefileList_drawItem.call(this, index);
|
||
var id = index + 1;
|
||
var valid = DataManager.isThisGameFile(id);
|
||
var info = DataManager.loadSavefileInfo(id)
|
||
if (info && valid) {
|
||
var rect = this.itemRectForText(index);
|
||
var x = rect.width + this.textPadding();
|
||
if (TMPlugin.SaveDataLabel.LabelAId && info.labelA != null) {
|
||
var label = {
|
||
name: TMPlugin.SaveDataLabel.LabelAName, value: info.labelA,
|
||
max: TMPlugin.SaveDataLabel.LabelAMax,
|
||
footer: TMPlugin.SaveDataLabel.LabelAFooter
|
||
};
|
||
this.drawSaveDataLabel(x, rect.y, label);
|
||
}
|
||
if (TMPlugin.SaveDataLabel.LabelBId && info.labelB != null) {
|
||
var label = {
|
||
name: TMPlugin.SaveDataLabel.LabelBName, value: info.labelB,
|
||
max: TMPlugin.SaveDataLabel.LabelBMax,
|
||
footer: TMPlugin.SaveDataLabel.LabelBFooter
|
||
};
|
||
this.drawSaveDataLabel(x, rect.y + this.lineHeight(), label);
|
||
}
|
||
}
|
||
};
|
||
|
||
Window_SavefileList.prototype.drawSaveDataLabel = function (x, y, label) {
|
||
if (label.footer) {
|
||
var footerWidth = this.textWidth(label.footer);
|
||
x -= footerWidth;
|
||
this.changeTextColor(this.textColor(TMPlugin.SaveDataLabel.FooterColorId));
|
||
this.drawText(label.footer, x, y, footerWidth);
|
||
}
|
||
x -= TMPlugin.SaveDataLabel.ValueWidth;
|
||
this.changeTextColor(this.textColor(TMPlugin.SaveDataLabel.ValueColorId));
|
||
if (label.max && label.value >= label.max) {
|
||
label.value = label.max;
|
||
this.changeTextColor(this.textColor(TMPlugin.SaveDataLabel.MaxColorId));
|
||
}
|
||
this.drawText(label.value, x, y, TMPlugin.SaveDataLabel.ValueWidth, 'right');
|
||
if (label.name) {
|
||
x -= TMPlugin.SaveDataLabel.NameWidth;
|
||
this.changeTextColor(this.textColor(TMPlugin.SaveDataLabel.NameColorId));
|
||
this.drawText(label.name, x, y, TMPlugin.SaveDataLabel.NameWidth);
|
||
}
|
||
};
|
||
|
||
})();
|