-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathTMNewGameEx.js
195 lines (184 loc) · 6.03 KB
/
TMNewGameEx.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
//=============================================================================
// TMPlugin - 別マップでニューゲーム
// バージョン: 2.0.0
// 最終更新日: 2017/10/04
// 配布元 : 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 titleCommands
* @type string
* @desc タイトルコマンドの並び順
* 初期値: newGame continue options ex1
* @default newGame continue options ex1
*
* @param command1
* @type string
* @desc 追加コマンド 1 の項目名
* 初期値: 別マップから
* @default 別マップから
*
* @param params1
* @type string
* @desc 追加コマンド 1 のパラメータ
* 初期値: 1 4 5 6
* @default 1 4 5 6
*
* @param command2
* @type string
* @desc 追加コマンド 2 の項目名
* 初期値:
* @default
*
* @param params2
* @type string
* @desc 追加コマンド 2 のパラメータ
* 初期値:
* @default
*
* @param command3
* @type string
* @desc 追加コマンド 3 の項目名
* 初期値:
* @default
*
* @param params3
* @type string
* @desc 追加コマンド 3 のパラメータ
* 初期値:
* @default
*
* @param command4
* @type string
* @desc 追加コマンド 4 の項目名
* 初期値:
* @default
*
* @param params4
* @type string
* @desc 追加コマンド 4 のパラメータ
* 初期値:
* @default
*
* @param command5
* @type string
* @desc 追加コマンド 5 の項目名
* 初期値:
* @default
*
* @param params5
* @type string
* @desc 追加コマンド 5 のパラメータ
* 初期値:
* @default
*
* @param numVisibleRows
* @type number
* @desc 一度に表示できるタイトルコマンドの行数
* 初期値: 0 ( 0 の場合コマンドをすべて表示)
* @default 0
*
* @help
* TMPlugin - 別マップでニューゲーム ver2.0.0
*
* 使い方:
*
* プラグインパラメータ titleCommands に ex1 ~ ex5 までを
* 必要な分だけ追加してください。(半角スペースで区切る)
* continue や options を削除すれば、既存のコマンドを
* 除外することもできます。
*
* 次に、追加したいコマンド名とパラメータを設定してください、
* ex1 なら command1 と params1 の設定が必要になります。
* params1 には マップ番号 X座標 Y座標 プレイヤーの向き の 4 つを
* 半角スペースで区切って入力します。
* プレイヤーの向きは 上=8 下=2 左=4 右=6 となっています。
*
* プラグインコマンドはありません。
*
* このプラグインは RPGツクールMV Version 1.5.1 で動作確認をしています。
*
* このプラグインはMITライセンスのもとに配布しています、商用利用、
* 改造、再配布など、自由にお使いいただけます。
*
*
* 類似機能をもつプラグインとの併用:
*
* タイトルコマンドを追加するプラグインと併用する場合、titleCommands に
* 他プラグインで追加されるコマンドのsymbol(シンボル)を追加してください。
* (symbol は addCommand の 2 番目の引数の値です)
*
* その際、TMNewGameEx.js は他プラグインよりも下に導入してください。
*/
var Imported = Imported || {};
Imported.TMNewGameEx = true;
(function() {
var parameters = PluginManager.parameters('TMNewGameEx');
var titleCommands = parameters['titleCommands'].split(' ');
var commands = {};
var transferParams = {};
for (var i = 1; i < 6; i++) {
commands['ex' + i] = parameters['command' + i];
transferParams['ex' + i] = parameters['params' + i].split(' ').map(Number);
}
var numVisibleRows = +(parameters['numVisibleRows'] || 0);
//-----------------------------------------------------------------------------
// Window_TitleCommand
//
var _Window_TitleCommand_numVisibleRows = Window_Command.prototype.numVisibleRows;
Window_Command.prototype.numVisibleRows = function() {
if (numVisibleRows) return numVisibleRows;
return _Window_TitleCommand_numVisibleRows.call(this);
};
var _Window_TitleCommand_makeCommandList = Window_TitleCommand.prototype.makeCommandList;
Window_TitleCommand.prototype.makeCommandList = function() {
_Window_TitleCommand_makeCommandList.call(this);
var listEx = [];
for (var i = 0; i < titleCommands.length; i++) {
for (var j = 0; j < this._list.length; j++) {
if (titleCommands[i] === this._list[j].symbol) {
listEx.push({
name: this._list[j].name,
symbol: this._list[j].symbol,
enabled: this._list[j].enabled,
ext: this._list[j].ext
});
}
}
if (commands[titleCommands[i]]) {
listEx.push({
name: commands[titleCommands[i]],
symbol: titleCommands[i],
enabled: true,
ext: null
});
}
}
this._list = listEx;
};
//-----------------------------------------------------------------------------
// Scene_Title
//
var _Scene_Title_createCommandWindow = Scene_Title.prototype.createCommandWindow;
Scene_Title.prototype.createCommandWindow = function() {
_Scene_Title_createCommandWindow.call(this);
for (var i = 1; i < 6; i++) {
var symbol = 'ex' + i;
this._commandWindow.setHandler(symbol, this.commandNewGameEx.bind(this, symbol));
}
};
Scene_Title.prototype.commandNewGameEx = function(symbol) {
DataManager.setupNewGame();
$gamePlayer.reserveTransfer.apply($gamePlayer, transferParams[symbol]);
this._commandWindow.close();
this.fadeOutAll();
SceneManager.goto(Scene_Map);
};
})();