-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathTMMaxItems.js
118 lines (106 loc) · 3.84 KB
/
TMMaxItems.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
//=============================================================================
// TMPlugin - アイテム所持上限設定
// バージョン: 1.0.0
// 最終更新日: 2018/04/27
// 配布元 : http://hikimoki.sakura.ne.jp/
//-----------------------------------------------------------------------------
// Copyright (c) 2018 tomoaky
// Released under the MIT license.
// http://opensource.org/licenses/mit-license.php
//=============================================================================
/*:
* @target MZ MV
* @url https://raw.githubusercontent.com/munokura/tomoaky-MV-plugins/master/TMMaxItems.js
* @author tomoaky (https://twitter.com/tomoaky/)
* @plugindesc アイテムの所持上限数を個別に設定します。
*
* @param numberMaxDigits
* @text 最大所持上限のケタ数
* @type number
* @min 1
* @desc 最大所持上限のケタ数
* 初期値: 4
* @default 4
*
* @param numberFontSize
* @text 個数表示のフォントサイズ
* @type number
* @desc 個数表示のフォントサイズ
* 初期値: 24
* @default 24
*
* @param numberSeparator
* @text 個数の前に表示する文字列
* @desc 個数の前に表示する文字列
* @default ×
*
* @help
* TMPlugin - アイテム所持上限設定 ver1.0.0
*
* 使い方:
*
* アイテムのメモ欄に <maxItems:9999> というタグで所持上限数を設定します。
* タグがないアイテムの所持上限数は 99 のままです。
*
* プラグインコマンドはありません。
*
*
* 注意:
*
* Window_ItemList の numberWidth と drawItemNumber、
* Window_ShopNumber の maxDigits を上書きしています。
* プラグイン管理でこのプラグインをなるべく上の方に配置すると
* 他のプラグインとの競合を回避できるかもしれません。
*
*
* 利用規約:
* MITライセンスです。
* https://ja.osdn.net/projects/opensource/wiki/licenses%2FMIT_license
* 作者に無断で改変、再配布が可能で、
* 利用形態(商用、18禁利用等)についても制限はありません。
*/
var Imported = Imported || {};
Imported.TMMaxItems = true;
(function () {
'use strict';
var parameters = PluginManager.parameters('TMMaxItems');
var numberMaxDigits = +(parameters['numberMaxDigits'] || 4);
var numberFontSize = +(parameters['numberFontSize'] || 24);
var numberSeparator = parameters['numberSeparator'] || '×';
//-----------------------------------------------------------------------------
// Game_Party
//
var _Game_Party_maxItems = Game_Party.prototype.maxItems;
Game_Party.prototype.maxItems = function (item) {
if (item.meta.maxItems) return Math.max(+item.meta.maxItems, 1);
return _Game_Party_maxItems.call(this, item);
};
//-----------------------------------------------------------------------------
// Window_ItemList
//
Window_ItemList.prototype.numberWidth = function () {
var fontSize = this.contents.fontSize;
var result;
this.contents.fontSize = numberFontSize;
result = this.textWidth(numberSeparator + Array(numberMaxDigits + 1).join('0'));
this.contents.fontSize = fontSize;
return result;
};
Window_ItemList.prototype.drawItemNumber = function (item, x, y, width) {
var fontSize = this.contents.fontSize;
var numberWidth;
if (this.needsNumber()) {
this.contents.fontSize = numberFontSize;
numberWidth = this.textWidth(Array(numberMaxDigits + 1).join('0'));
this.drawText(numberSeparator, x, y, width - numberWidth, 'right');
this.drawText($gameParty.numItems(item), x, y, width, 'right');
this.contents.fontSize = fontSize;
}
};
//-----------------------------------------------------------------------------
// Window_ShopNumber
//
Window_ShopNumber.prototype.maxDigits = function () {
return numberMaxDigits;
};
})();