//============================================================================= // 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); }; })(); TMNewGameEx.js TMNewGameEx.js を表示しています。