-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathTMSaveDataLabel.js
207 lines (197 loc) · 7.83 KB
/
TMSaveDataLabel.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
//=============================================================================
// 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);
}
};
})();