- /============================================================================= 
- // 複数のマップを繋げて1つの大きなマップにするプラグイン 
- // FTKR_ConnectingMapGenerator.js 
- // プラグインNo : 83 
- // 作成者     : フトコロ 
- // 作成日     : 2018/04/22 
- // 最終更新日   : 2018/04/28 
- // バージョン   : v1.2.0 
- //============================================================================= 
-   
- var Imported = Imported || {}; 
- Imported.FTKR_CMG = true; 
-   
- var FTKR = FTKR || {}; 
- FTKR.CMG = FTKR.CMG || {}; 
-   
- //============================================================================= 
- /*: 
-  * @plugindesc v1.2.0 将多个地图连接成一张大地图的插件 
-  * @author フトコロ 
-  * 
-  * @param 連結マップの横サイズ 
-  * @desc 横向连接的地图数量。 你可以在游戏中改变它。 
-  * @default 2 
-  * @type number 
-  * @min 0 
-  * 
-  * @param 連結マップの縦サイズ 
-  * @desc 垂直连接的地图数量。 你可以在游戏中改变它。 
-  * @default 2 
-  * @type number 
-  * @min 0 
-  *  
-  * @help  
-  *----------------------------------------------------------------------------- 
-  * 概要 
-  *----------------------------------------------------------------------------- 
-  * 您可以连接多个地图并将其显示为一张大地图。 
-  * 
-   *在合并后的地图中,为每个地图设置的事件也可以单独执行。 
-   *但是,需要注意,因为连接后事件的ID在映射中发生了变化。 
-  *  
-  *  
-  *----------------------------------------------------------------------------- 
-  * 設定方法 
-  *----------------------------------------------------------------------------- 
-  * 1.将此插件添加到“插件管理器(插件管理)” 
-   *请。 
-  *  
-  *  
-  *----------------------------------------------------------------------------- 
-  * 如何连接地图 
-  *----------------------------------------------------------------------------- 
-  * 首先,您可以设置垂直和水平连接多少个地图来生成地图。 
-  * 
-   *有以下两种设定方法。 
-   * - 垂直和水平件的初始值由插件参数设置。 
-   *·执行以下插件命令并为每个位置移动进行设置。 
-  * 
-   *插件命令 
-   * * []不用于实际输入 
-  *  
-  * CMG_级联地图大小[水平地图数量] [垂直地图数量] 
-  * CMG_CONNECTING_MAP_SIZE [cols] [lines] 
-  *  
-  *    水平地图数量(cols) 
-   *:更改要水平连接的地图数量。 
-   你可以通过指定* \ v [n]来引用变量n的值。 
-  *  
-  *    垂直地图数量(线条) 
-   *:更改垂直链接地图的数量。 
-   你可以通过指定* \ v [n]来引用变量n的值。 
-  *  
-  *  
-  * 接下来,执行下面的插件命令并指定要连接的地图ID。 
-   *同时,可以多次输入相同的地图ID。 
-  * ※[]は実際の入力に使用しません 
-  *  
-  *  
-  * CMG_地图连接[地图1] [地图2] [地图3] [地图4] ... 
-  * CMG_CONNECTING_MAP [map1] [map2] [map3] [map4] ... 
-  *  
-  *    マップ1(map1) 
-  *         *:指定要在拼接后放置在地图左上角的地图的ID。 
-   *合并后的地图设置将接管地图1的设置。 
-   你可以通过指定* \ v [n]来引用变量n的值。 
-   通过从为随机零件ID n设置的多个映射ID指定* \ R [n] 
-   *随机选择并设定其值。 
-  *  
-  *    地图*(地图*) 
-   *:根据要连接的地图数量指定地图ID。 
-   *:4个地图则是2 * 2连接,3*3就需要9个地图。 
-   你可以通过指定* \ v [n]来引用变量n的值。 
-   通过从为随机零件ID n设置的多个映射ID指定* \ R [n] 
-   *随机选择并设定其值。 
-  *  
-  * ※关于随机部分ID, 
-  *  
-  *  
-  * 输入示例)连接2 * 2地图时输入 
-   * CMG_地图连接2 3 4 5 
-  *  CMG_CONNECTING_MAP 2 3 4 5 
-  *  
-  *  
-  * 输入示例)使用变量连接2 * 1映射时的输入 
-  *  CMG_マップ連結 \v[1] \v[2] 
-  *  CMG_CONNECTING_MAP \v[1] \v[2] 
-  *   ⇒变量ID 1中的值被视为地图1,变量ID 2中的值被视为地图2 
-   *连接。 
-  *  
-  *  
-  * 在安排地图时, 
-   *将地图1拖到左上角,从那里到地图2,地图3,...向右。 
-   *达到水平地图数量的上限时,下降一级,连接地图 
-   *屏幕的右下角是最后一个地图。 
-  *  
-  * 简单的地图放置图像 
-  *  
-  * ・1*2の場合 
-  *    1  
-  *    2  
-  *  
-  * ・2*2の場合   ・3*2の場合 
-  *    1 2        1 2 3 
-  *    3 4        4 5 6 
-  *  
-  * ・3*3の場合 
-  *    1 2 3 
-  *    4 5 6 
-  *    7 8 9 
-  *  
-  *  
-  * 您也可以通过逐行分割来设置它。 
-   * 4 * 4随着大小的数量变大,在数据库中很难看到 
-   *在这里使用是很好的。 
-  *  
-  * CMG_地图连结分割[分割ID]地图[地图1] [地图2] [地图3] [地图4] ... 
-  * CMG_CONNECTING_MAP SPLIT [splitId] MAP [map1] [map2] [map3] [map4] ... 
-  *  
-  *    分割ID(splitId) 
-  *        :指定从0到要连接的地图的行数的值 - 1。 
-   *:所有行都需要设置。 
-  *  
-  *    マップ*(map*) 
-  *        : 按照要连接的地图的列数指定地图ID。 
-   *:地图2为垂直/水平2 * 2,地图3为垂直/水平3 * 3。 
-   你可以通过指定* \ v [n]来引用变量n的值。 
-   通过从为随机零件ID n设置的多个映射ID指定* \ R [n] 
-   *随机选择并设定其值。 
-  *  
-  *  
-  * 设置分区数据后,生成它。 
-  *  
-  * CMG_マップ連結 生成 
-  * CMG_CONNECTING_MAP MAKE 
-  *  
-  *  
-  * 输入示例)连接2 * 2地图时输入 
-  *  CMG_マップ連結 分割 0 マップ 2 3 
-  *  CMG_マップ連結 分割 1 マップ 4 5 
-  *  CMG_マップ連結 生成 
-  *  
-  *  CMG_CONNECTING_MAP SPLIT 0 MAP 2 3 
-  *  CMG_CONNECTING_MAP SPLIT 1 MAP 4 5 
-  *  CMG_CONNECTING_MAP MAKE 
-  *  
-  *  
-  * 设置拼接地图的大小和地图ID进行连接后 
-   *请执行位置移动事件。 
-  * 
-   *如果您选择一个要链接的地图,请在移动地点时设置地图ID和坐标 
-   *合并后移至该位置。 
-  * 
-   *请注意,如果多次链接了相同的地图ID,则表示首次展示位置 
-   *在地图上移动。 
-  *  
-  *  
-  *----------------------------------------------------------------------------- 
-  * 从连接的地图移动时 
-  *----------------------------------------------------------------------------- 
-  * 移动到一个地方时务必执行以下命令。 
-  *  
-  * CMG_マップ連結解除 
-  * CMG_CLEAR_CONNECTING_MAP 
-  *  
-  *  
-  *----------------------------------------------------------------------------- 
-  * 拼接地图的条件 
-  *----------------------------------------------------------------------------- 
-  * 有必要匹配要连接的地图的宽度和高度。 
-  * 
-   *例如,连接2 * 2地图时, 
-  * 
-   * 1.使地图1和地图2的高度相同。 
-   * 2.使地图1和地图3具有相同的宽度。 
-   * 3.制作地图2和地图4的宽度相同。 
-   * 4.使地图3和地图4的高度相同。 
-  * 
-   *另外,所有地图都必须使用相同的拼贴集。 
-  *  
-  *  
-  *----------------------------------------------------------------------------- 
-  * 连接后的地图设置 
-  *----------------------------------------------------------------------------- 
-  * 合并后的地图设置(* 1)将继承“地图1”所用地图的设置。 
-  * 
-   *(* 1)地图设置接管 
-   *·滚动类型 
-   *·地图平铺 
-   *·强调外观步数 
-   *·BGM自动演奏 
-   *·BGS自动演奏 
-   *战斗背景设置 
-   * - 禁止冲刺设置 
-   *·远景设置 
-   *·备忘录的内容 
-  * 
-   *例如,与以下命令连接时 
-   * CMG_地图连接2 3 4 5 
-   *连接后的地图设置与地图ID 2相同。 
-  * 
-  * 
-   *请注意,以下设置在合并之前和之后发生变化。 
-  * 
-   *·遇到 
-   *·事件ID 
-  *  
-  *  
-  *----------------------------------------------------------------------------- 
-  * 合并后遇到地图 
-  *----------------------------------------------------------------------------- 
-  * 在每个地图中设置拼接后地图的拼接 
-  *它成为遭遇的综合设置。 
-  * 
-  *例如,在拼接前的地图中 
-  *•敌人组ID 1包含在地图1的整个区域 
-  * - 地图2的整个区域中的敌人组ID 2 
-  如果*已设置,则在连接后 
-  *•敌方组ID 1和敌方组ID 2 
-  *将开始计数。 
-  * 
-  * 
-  *同样在按地区设置的情况下 
-  *例如,在拼接前的地图中 
-  *·地图1的区域1中的敌方组ID 1 
-  *·敌方组ID 2到地图2的地区1 
-  *·地图3的区域2中的敌方组ID 3 
-  如果*已设置,则在连接后 
-  *•敌方组织ID 1和敌方组织ID 2 
-  *•链接地图区域2中的敌方组ID 3 
-  *将开始计数。 
-  * 
-  *这也适用于连接前在地图1中为区域2设置的区域 
-  *连接后,敌人组ID 3将出现。 
-  *  
-  *  
-  *----------------------------------------------------------------------------- 
-  * 合并后的地图的事件ID 
-  *----------------------------------------------------------------------------- 
-  * 可以在下面的脚本来获得合并后的地图的事件ID。 
-  *  
-  * $gameMap.cmgEventId(mapId, eventId) 
-  *    mapId:创建事件的地图的ID(数据库上的地图) 
-   * eventId:创建事件的地图上的事件ID 
-  *  
-  * 输入示例) 
-  *    $gameMap.cmgEventId(2, 3) 
-  *  
-  *  
-  * 但是,在此活动中,您可以使用this._ eventId获取您的ID。 
-   *即使合并后,这一点也不会改变。 
-  *  
-  *  
-  *----------------------------------------------------------------------------- 
-  * 关于随机部件ID 
-  *----------------------------------------------------------------------------- 
-  * 通过在设置拼接图时将其设置为\ R [n],我们将其设置为随机部件ID n 
-   *从多个地图ID中选择一个随机数并设置该值。 
-  * 
-   *要设置随机部件ID,请执行以下插件命令 
-   *可以设置。 
-  *  
-  * CMG_ランダムパーツセット [パーツID] マップ [マップID] [マップID] [マップID] ... 
-  * CMG_SET_RANDOM_PARTS [partsId] MAP [mapId] [mapId] [mapId] ... 
-  *  
-  *    パーツID(partsId) 
-  *        : 0 以上の任意の値を指定します。 
-  *        : 連結マップのマップIDを設定するときに\R[n]で指定する番号に相当します。 
-  *  
-  *    マップID(mapId) 
-  *        : このセットで選ばれるマップのIDを設定します。 
-  *        : 設定可能な数に制限はありません。 
-  *         \v[n] と指定することで変数 n の値を参照できます。 
-  *  
-  *  
-  *----------------------------------------------------------------------------- 
-  * 本プラグインのライセンスについて(License) 
-  *----------------------------------------------------------------------------- 
-  * 本プラグインはMITライセンスのもとで公開しています。 
-  * This plugin is released under the MIT License. 
-  *  
-  * Copyright (c) 2018 Futokoro 
-  * [url]http://opensource.org/licenses/mit-license.php[/url] 
-  *  
-  *  
-  * プラグイン公開元 
-  * [url]https://github.com/futokoro/RPGMaker/blob/master/README.md[/url] 
-  *  
-  *  
-  *----------------------------------------------------------------------------- 
-  * 変更来歴 
-  *----------------------------------------------------------------------------- 
-  *  
-  * v1.2.0 - 2018/04/28 : 不具合修正、機能追加 
-  *    1. 場所移動先によって、アクターが表示されずゲームが動かなくなる不具合を修正。 
-  *    2. 連結マップが正しく生成できない場合がある不具合を修正。 
-  *    3. 連結マップの行ごとに分割して設定する機能を追加 
-  *    4. ランダムに複数のマップIDから一つを設定する機能を追加。 
-  *  
-  * v1.1.1 - 2018/04/27 : ヘルプ修正 
-  *    1. ヘルプの誤記修正 
-  *    2. プラグインコマンドに変数を使用できることを追記。 
-  *  
-  * v1.1.0 - 2018/04/22 : 仕様変更 
-  *    1. 連結する縦横のマップの数を設定する機能を追加。4つ以上のマップを連結可能。 
-  *    2. マップ数の設定機能に合わせて、連結するマップIDを設定する 
-  *       プラグインコマンドの仕様を変更。 
-  *  
-  * v1.0.1 - 2018/04/22 : ヘルプの誤記修正 
-  *  
-  * v1.0.0 - 2018/04/22 : 初版作成 
-  *  
-  *----------------------------------------------------------------------------- 
- */ 
- //============================================================================= 
- var $dataCmgMaps = []; 
-   
- function Game_CmgEvent() { 
-     this.initialize.apply(this, arguments); 
- } 
-   
- (function() { 
-   
-     var paramParse = function(obj) { 
-         return JSON.parse(JSON.stringify(obj, paramReplace)); 
-     } 
-   
-     var paramReplace = function(key, value) { 
-         try { 
-             return JSON.parse(value || null); 
-         } catch (e) { 
-             return value; 
-         } 
-     }; 
-   
-     var setArgStr = function(arg) { 
-         return convertEscapeCharacters(arg); 
-     }; 
-   
-     var setArgNum = function(arg) { 
-         try { 
-             return Number(eval(setArgStr(arg))); 
-         } catch (e) { 
-             return 0; 
-         } 
-     }; 
-   
-     var convertEscapeCharacters = function(text) { 
-         text = text.replace(/\\/g, '\x1b'); 
-         text = text.replace(/\x1b\x1b/g, '\\'); 
-         text = text.replace(/\x1bV\[(\d+)\]/gi, function() { 
-             return $gameVariables.value(parseInt(arguments[1])); 
-         }.bind(this)); 
-         text = text.replace(/\x1bV\[(\d+)\]/gi, function() { 
-             return $gameVariables.value(parseInt(arguments[1])); 
-         }.bind(this)); 
-         text = text.replace(/\x1bR\[(\d+)\]/gi, function() { 
-             return parseInt(randomGetArray(FTKR.CMG.rand[parseInt(arguments[1])])); 
-         }.bind(this)); 
-         return text; 
-     }; 
-   
-     //objのメモ欄から <metacode: x> の値を読み取って返す 
-     var readObjectMeta = function(obj, metacodes) { 
-         if (!obj) return false; 
-         var match = {}; 
-         metacodes.some(function(metacode){ 
-             var metaReg = new RegExp('<' + metacode + ':[ ]*(.+)>', 'i'); 
-             match = metaReg.exec(obj.note); 
-             return match; 
-         });  
-         return match ? match[1] : ''; 
-     }; 
-   
-     var randomGetArray = function(args) { 
-         if (Array.isArray(args)) { 
-             var arg = args[Math.randomInt(args.length)]; 
-         } else { 
-             var arg = args; 
-         } 
-         return arg 
-     }; 
-   
-     //============================================================================= 
-     // プラグイン パラメータ 
-     //============================================================================= 
-     var parameters = PluginManager.parameters('FTKR_ConnectingMapGenerator'); 
-   
-     FTKR.CMG = { 
-         mapW : paramParse(parameters['連結マップの横サイズ']), 
-         mapH : paramParse(parameters['連結マップの縦サイズ']), 
-         rand : [], 
-     }; 
-   
-     //============================================================================= 
-     // DataManager 
-     //============================================================================= 
-     DataManager._mapLoaders = []; 
-     DataManager._errorUrls = []; 
-   
-     DataManager.loadConnectingMapData = function(mapId, index) { 
-         if (mapId > 0) { 
-             var filename = 'Map%1.json'.format(mapId.padZero(3)); 
-             this._mapLoaders[index] = ResourceHandler.createLoader('data/' + filename, this.loadConnectingDataFile.bind(this, '$dataCmgMaps', filename, index)); 
-             this.loadConnectingDataFile('$dataCmgMaps', filename, index); 
-         } else { 
-             this.makeEmptyMap(); 
-         } 
-     }; 
-   
-     DataManager.loadConnectingDataFile = function(name, src, index) { 
-         var xhr = new XMLHttpRequest(); 
-         var url = 'data/' + src; 
-         xhr.open('GET', url); 
-         xhr.overrideMimeType('application/json'); 
-         xhr.onload = function() { 
-             if (xhr.status < 400) { 
-                 if (!window[name]) window[name] = []; 
-                 window[name][index] = JSON.parse(xhr.responseText); 
-                 DataManager.onConnectingLoad(window[name][index]); 
-             } 
-         }; 
-         xhr.onerror = this._mapLoaders[index] || function() { 
-             DataManager._errorUrls[index] = DataManager._errorUrl || url; 
-         }; 
-         window[name][index] = null; 
-         xhr.send(); 
-     }; 
-   
-     DataManager.onConnectingLoad = function(object) { 
-         var array; 
-         this.extractMetadata(object); 
-         array = object.events; 
-         if (Array.isArray(array)) { 
-             for (var i = 0; i < array.length; i++) { 
-                 var data = array[i]; 
-                 if (data && data.note !== undefined) { 
-                     this.extractMetadata(data); 
-                 } 
-             } 
-         } 
-     }; 
-   
-     DataManager.checkCmgError = function(index) { 
-         if (DataManager._errorUrls[index]) { 
-             throw new Error('Failed to load: ' + DataManager._errorUrls[index]); 
-         } 
-     }; 
-   
-     DataManager.isConnectingMapsLoaded = function(arr) { 
-         if (Array.isArray(arr)) { 
-             return arr.every(function(ar, i){ 
-                 if (!$gamePlayer._connectingMaps[i]) return true; 
-                 var result = this.isConnectingMapLoaded(i); 
-                 return result 
-             },this); 
-         } 
-         return false; 
-     }; 
-   
-     DataManager.isConnectingMapLoaded = function(index) { 
-         this.checkCmgError(index); 
-         return this.dataMap(index); 
-     }; 
-   
-     DataManager.dataMap = function(cmgMapId) { 
-         return $dataCmgMaps[cmgMapId]; 
-     }; 
-   
-     DataManager.pushMapData = function(data, mapId, index) { 
-         var dataMap = this.dataMap(mapId); 
-         if (!!dataMap) { 
-             var len = dataMap.width; 
-             var newdata = dataMap.data.slice(index * len, (index + 1) * len); 
-             Array.prototype.push.apply(data, newdata); 
-         } 
-     }; 
-   
-     DataManager.cmgMapId = function(mapId) { 
-         if (!$gamePlayer._connectingMaps) return -1; 
-         var cmgMapId = -1; 
-         $gamePlayer._connectingMaps.some(function(cMap, i){ 
-             if (cMap && cMap === mapId) { 
-                 cmgMapId = i; 
-                 return true; 
-             } 
-         }); 
-         return cmgMapId; 
-     }; 
-   
-     DataManager.cmgMapW = function() { 
-         return this._cmgMapW || 0; 
-     }; 
-   
-     DataManager.cmgMapH = function() { 
-         return this._cmgMapH || 0; 
-     }; 
-   
-     //============================================================================= 
-     // Game_Interpreter 
-     //============================================================================= 
-   
-     var _CMG_Game_Interpreter_pluginCommand = Game_Interpreter.prototype.pluginCommand; 
-     Game_Interpreter.prototype.pluginCommand = function(command, args) { 
-         _CMG_Game_Interpreter_pluginCommand.call(this, command, args); 
-         if (!command.match(/CMG_(.+)/i)) return; 
-         command = (RegExp.$1 + '').toUpperCase(); 
-         switch (command) { 
-             case '連結マップサイズ': 
-             case 'CONNECTING_MAP_SIZE': 
-                 DataManager._cmgMapW = setArgNum(args[0]); 
-                 DataManager._cmgMapH = setArgNum(args[1]); 
-                 break; 
-             case 'マップ連結': 
-             case 'CONNECTING_MAP': 
-                 switch(args[0].toUpperCase()) { 
-                     case '分割': 
-                     case 'SPLIT': 
-                         if (!$gamePlayer._splitMaps) $gamePlayer._splitMaps = []; 
-                         var splitId = setArgNum(args[1]); 
-                         switch(args[2].toUpperCase()) { 
-                             case 'マップ': 
-                             case 'MAP': 
-                                 args = args.slice(3); 
-                                 $gamePlayer._splitMaps[splitId] = args.map(function(arg){ 
-                                     return setArgNum(arg); 
-                                 }); 
-                                 break; 
-                         } 
-                         break; 
-                     case '生成': 
-                     case 'MAKE': 
-                         $gamePlayer._connectingMaps = []; 
-                         $gamePlayer._splitMaps.forEach( function(splitMap){ 
-                             Array.prototype.push.apply($gamePlayer._connectingMaps, splitMap); 
-                         }); 
-                         break; 
-                         break; 
-                     default: 
-                         $gamePlayer._connectingMaps = args.map(function(arg){ 
-                             return setArgNum(arg); 
-                         }); 
-                         break; 
-                 } 
-                 break; 
-             case 'ランダムパーツセット': 
-             case 'SET_RANDOM_PARTS': 
-                 var partsId = setArgNum(args[0]); 
-                 switch(args[1].toUpperCase()) { 
-                     case 'マップ': 
-                     case 'MAP': 
-                         args = args.slice(2); 
-                         FTKR.CMG.rand[partsId] = args.map(function(arg){ 
-                             return setArgNum(arg); 
-                         }); 
-                         break; 
-                     default: 
-                         FTKR.CMG.rand[partsId] = []; 
-                         break; 
-                 } 
-                 break; 
-             case 'マップ連結解除': 
-             case 'CLEAR_CONNECTING_MAP': 
-                 $gamePlayer._connectingMaps = null; 
-                 $gamePlayer._splitMaps = []; 
-                 $dataCmgMaps = []; 
-                 break; 
-         } 
-     }; 
-   
-     //============================================================================= 
-     // Game_Player 
-     //============================================================================= 
-   
-     Game_Character.prototype.getCmgMapX = function(cmgMapId, mapX) { 
-         for (var i = 0; i < cmgMapId % DataManager.cmgMapW(); i++) { 
-             mapX += DataManager.dataMap(i).width; 
-         } 
-         return mapX; 
-     }; 
-   
-     Game_Character.prototype.getCmgMapY = function(cmgMapId, mapY) { 
-         var m = 0; 
-         if (cmgMapId >= DataManager.cmgMapW()){ 
-             for (var i = 0; i < Math.floor(cmgMapId / DataManager.cmgMapH()); i++) { 
-                 mapY += DataManager.dataMap(m).height; 
-                 m += DataManager.cmgMapW(); 
-             } 
-         } 
-         return mapY; 
-     }; 
-   
-     //============================================================================= 
-     // Game_Player 
-     //============================================================================= 
-   
-     var _CMG_Game_Player_initMembers = Game_Player.prototype.initMembers; 
-     Game_Player.prototype.initMembers = function() { 
-         _CMG_Game_Player_initMembers.call(this); 
-         DataManager._cmgMapW = FTKR.CMG.mapW; 
-         DataManager._cmgMapH = FTKR.CMG.mapH; 
-     }; 
-   
-     var _CMG_Game_Player_performTransfer = Game_Player.prototype.performTransfer; 
-     Game_Player.prototype.performTransfer = function() { 
-         if (this.isTransferring()) { 
-             var maps = this._connectingMaps; 
-             if (maps) { 
-                 var cmgMapId = DataManager.cmgMapId(this._newMapId); 
-                 this._newX = this.getCmgMapX(cmgMapId, this._newX); 
-                 this._newY = this.getCmgMapY(cmgMapId, this._newY); 
-                 this._newMapId = this._connectingMaps[0]; 
-             } 
-         } 
-         _CMG_Game_Player_performTransfer.call(this); 
-     }; 
-   
-     //============================================================================= 
-     // Game_CmgEvent 
-     //============================================================================= 
-   
-     Game_CmgEvent.prototype = Object.create(Game_Event.prototype); 
-     Game_CmgEvent.prototype.constructor = Game_CmgEvent; 
-   
-     Game_CmgEvent.prototype.initialize = function(mapId, eventId, cmgMapId) { 
-         this._cmgMapId = cmgMapId; 
-         Game_Event.prototype.initialize.call(this, mapId, eventId); 
-         var x = this.getCmgMapX(this._cmgMapId, this.event().x); 
-         var y = this.getCmgMapY(this._cmgMapId, this.event().y); 
-         this.locate(x, y); 
-         this.refresh(); 
-     }; 
-   
-     //============================================================================= 
-     // Game_Map 
-     //============================================================================= 
-   
-     var _CMG_Game_Map_setupEvents = Game_Map.prototype.setupEvents; 
-     Game_Map.prototype.setupEvents = function() { 
-         _CMG_Game_Map_setupEvents.call(this); 
-         if ($gamePlayer._connectingMaps) { 
-             this._events = []; 
-             for (var i = 0; i < $dataMap.events.length; i++) { 
-                 if ($dataMap.events[i]) { 
-                     var cmgMapId = this.cmgMapId(i); 
-                     this._events[i] = new Game_CmgEvent(this._mapId, i, cmgMapId); 
-                 } 
-             } 
-         } 
-     }; 
-   
-     Game_Map.prototype.cmgMapId = function(index) { 
-         if (!$gamePlayer._connectingMaps) return -1; 
-         var cmgMapId = -1; 
-         var len = 0; 
-         $dataCmgMaps.some(function(dataMap, i){ 
-             if (dataMap) { 
-                 len += dataMap.events.length; 
-                 if (len > index) { 
-                     cmgMapId = i; 
-                     return true; 
-                 } 
-             } 
-         }); 
-         return cmgMapId; 
-     }; 
-   
-     Game_Map.prototype.cmgEventId = function(mapId, eventId) { 
-         var cmgMapId = 0; 
-         var num = 0; 
-         $gamePlayer._connectingMaps.some( function(cmapId, i){ 
-             if (cmapId === mapId) { 
-                 cmgMapId = i; 
-                 return true; 
-             } 
-         }); 
-         $dataCmgMaps.forEach( function(dataMap, i){ 
-             if (i < $dataCmgMaps.length - 1) { 
-                 if (cmgMapId > i) num += dataMap.events.length; 
-             } 
-         }); 
-         return num + eventId; 
-     }; 
-   
-     //============================================================================= 
-     // Scene_Map 
-     //============================================================================= 
-   
-     var _CMG_Scene_Map_create = Scene_Map.prototype.create 
-     Scene_Map.prototype.create = function() { 
-         if ($gamePlayer._connectingMaps && $gamePlayer._connectingMaps.length) { 
-             Scene_Base.prototype.create.call(this); 
-             this._transfer = $gamePlayer.isTransferring(); 
-             $gamePlayer._connectingMaps.forEach(function(cmapId, i){ 
-                 if (cmapId > 0) DataManager.loadConnectingMapData(cmapId, i); 
-             }); 
-             this._cmgMapCreate = true; 
-         } else { 
-             _CMG_Scene_Map_create.call(this); 
-         } 
-     }; 
-   
-     var _CMG_Scene_Map_isReady = Scene_Map.prototype.isReady; 
-     Scene_Map.prototype.isReady = function() { 
-         if ($gamePlayer._connectingMaps) { 
-             if (!DataManager.isConnectingMapsLoaded($gamePlayer._connectingMaps)) { 
-                 return false; 
-             } else { 
-                 if (this._cmgMapCreate) { 
-                     var mapId = $gamePlayer._connectingMaps[0]; 
-                     DataManager.loadMapData(mapId); 
-                     this._cmgMapCreate = false; 
-                 } 
-                 if (!this._mapLoaded && DataManager.isMapLoaded()) { 
-                     if ($gamePlayer._connectingMaps) this.createConnectingMap(); 
-                     this.onMapLoaded(); 
-                     this._mapLoaded = true; 
-                 } 
-                 return this._mapLoaded && Scene_Base.prototype.isReady.call(this); 
-             } 
-         } else { 
-             return _CMG_Scene_Map_isReady.call(this); 
-         } 
-     }; 
-   
-     Scene_Map.prototype.createConnectingMap = function() { 
-         this.setupConnectingMapData(); 
-         this.setupConnectingMapWidth(); 
-         this.setupConnectingMapHeight(); 
-         this.setupConnectingMapEvents(); 
-         this.setupConnectingMapEncounterList(); 
-     }; 
-   
-     Scene_Map.prototype.setupConnectingMapData = function() { 
-         var data = []; 
-         var mapH = DataManager.cmgMapH(); 
-         var mapW = DataManager.cmgMapW(); 
-         var dataMap = null; 
-         for (var i = 0; i < 6; i++) { 
-             for (var m = 0; m < mapH; m++) { 
-                 dataMap = DataManager.dataMap(mapW * m); 
-                 if (!!dataMap) { 
-                     var num = dataMap.height; 
-                     for (var h = num * i; h < num * (i + 1); h++) { 
-                         for (var v = mapW * m; v < mapW * (m + 1); v++) { 
-                             DataManager.pushMapData(data, v, h); 
-                         } 
-                     } 
-                 } 
-             } 
-         } 
-         $dataMap.data = data; 
-     }; 
-   
-     Scene_Map.prototype.setupConnectingMapWidth = function() { 
-         var width = 0; 
-         $dataCmgMaps.some( function(dataMap, i){ 
-             if (i >= DataManager.cmgMapW()) return true; 
-             if (dataMap) { 
-                 width += dataMap.width; 
-             } 
-         }); 
-         $dataMap.width = width; 
-     }; 
-   
-     Scene_Map.prototype.setupConnectingMapHeight = function() { 
-         var height = 0; 
-         $dataCmgMaps.forEach( function(dataMap, i){ 
-             if (!(i % DataManager.cmgMapW())) { 
-                 if (dataMap) { 
-                     height += dataMap.height; 
-                 } 
-             } 
-         }); 
-         $dataMap.height = height; 
-     }; 
-   
-     Scene_Map.prototype.setupConnectingMapEvents = function() { 
-         var events = []; 
-         $gamePlayer._connectingMaps.forEach(function(map, i){ 
-             if (map) { 
-                 var cmgEvents = DataManager.dataMap(i).events; 
-                 Array.prototype.push.apply(events, cmgEvents); 
-             } 
-         }); 
-         $dataMap.events = events; 
-     }; 
-   
-     Scene_Map.prototype.setupConnectingMapEncounterList = function() { 
-         var encounterList = []; 
-         $gamePlayer._connectingMaps.forEach(function(map, i){ 
-             if (map) { 
-                 var list = DataManager.dataMap(i).encounterList; 
-                 Array.prototype.push.apply(encounterList, list); 
-             } 
-         }); 
-         $dataMap.encounterList = encounterList; 
-     }; 
-   
- }());//EOF