From e38f131f53b35b2669720988da01ddc9008bec6b Mon Sep 17 00:00:00 2001 From: oc Date: Tue, 17 Apr 2018 00:45:17 +0800 Subject: [PATCH] New empty map & autosave map --- _server/blockly/MotaAction.g4 | 4 ++-- _server/editor_file.js | 15 +++++++++------ _server/editor_mode.js | 4 ++-- _server/vm.js | 8 +++++++- editor.html | 2 +- libs/control.js | 5 ++++- 更新说明.txt | 20 +++++++++++++++++++- 7 files changed, 44 insertions(+), 14 deletions(-) diff --git a/_server/blockly/MotaAction.g4 b/_server/blockly/MotaAction.g4 index 027fe661..b71b4be9 100644 --- a/_server/blockly/MotaAction.g4 +++ b/_server/blockly/MotaAction.g4 @@ -553,7 +553,7 @@ return code; */ showImage_0_s - : '显示图片' EvalString '起点像素位置' 'x' Int 'y' Int Newline + : '显示图片' EvalString '起点像素位置' 'x' Number 'y' Number Newline ; /* showImage_0_s @@ -561,7 +561,7 @@ tooltip : showImage:显示图片 helpUrl : https://ckcz123.github.io/mota-js/#/event?id=showimage%ef%bc%9a%e6%98%be%e7%a4%ba%e5%9b%be%e7%89%87 default : ["bg.jpg",0,0] colour : this.printColor -var code = '{"type": "showImage", "name": "'+EvalString_0+'", "loc": ['+Int_0+','+Int_1+']},\n'; +var code = '{"type": "showImage", "name": "'+EvalString_0+'", "loc": ['+Number_0+','+Number_1+']},\n'; return code; */ diff --git a/_server/editor_file.js b/_server/editor_file.js index 92982673..c7f3eb0d 100644 --- a/_server/editor_file.js +++ b/_server/editor_file.js @@ -69,7 +69,10 @@ editor_file = function(editor, callback){ } */ var filename = 'project/floors/' + editor.currentFloorId + '.js'; var datastr = ['main.floors.' , editor.currentFloorId , '=\n{']; - editor.currentFloorData.map = editor.map.map(function(v){return v.map(function(v){return v.idnum||v||0})}); + if (editor.currentFloorData.map == 'new') + editor.currentFloorData.map = editor.map.map(function(v){return v.map(function(){return 0})}); + else + editor.currentFloorData.map = editor.map.map(function(v){return v.map(function(v){return v.idnum||v||0})}); for(var ii in editor.currentFloorData) if (editor.currentFloorData.hasOwnProperty(ii)) { if (ii=='map') @@ -84,16 +87,16 @@ editor_file = function(editor, callback){ }); } //callback(err:String) - editor_file.saveFloorFileAs = function(saveAsFilename,callback){ + editor_file.saveNewFile = function(saveFilename,callback){ //saveAsFilename不含'/'不含'.js' if (!isset(callback)) {printe('未设置callback');throw('未设置callback')}; if (!isset(editor.currentFloorData)) { callback('无数据'); } - editor.currentFloorData.map = editor.map.map(function(v){return v.map(function(v){return v.idnum||v||0})}); - editor.currentFloorData=JSON.parse(JSON.stringify(editor.currentFloorData)); - editor.currentFloorData.floorId=saveAsFilename; - editor.currentFloorId=saveAsFilename; + editor.currentFloorData={floorId: saveFilename, title: "新建楼层", name: "0", canFlyTo: true, canUseQuickShop: true, images: [], item_ratio: 1, + firstArrive: [], events: {}, changeFloor: {}, afterBattle: {}, afterGetItem: {}, afterOpenDoor: {}, cannotMove: {}}; + editor.currentFloorData.map = "new"; + editor.currentFloorId=saveFilename; editor_file.saveFloorFile(callback); } //callback(err:String) diff --git a/_server/editor_mode.js b/_server/editor_mode.js index 7105d24f..c4996e34 100644 --- a/_server/editor_mode.js +++ b/_server/editor_mode.js @@ -363,10 +363,10 @@ editor_mode.prototype.listen = function(callback){ saveFloorAs.onclick = function(){ if (!saveAsName.value)return; editor_mode.onmode(''); - editor.file.saveFloorFileAs(saveAsName.value,function(err){ + editor.file.saveNewFile(saveAsName.value,function(err){ if(err){printe(err);throw(err)} core.floorIds.push(saveAsName.value); - editor.file.editTower([['change',"['main']['floorIds']",core.floorIds]],function(objs_){/*console.log(objs_);*/if(objs_.slice(-1)[0]!=null){printe(objs_.slice(-1)[0]);throw(objs_.slice(-1)[0])};printe('另存为成功,请F5刷新编辑器生效');}); + editor.file.editTower([['change',"['main']['floorIds']",core.floorIds]],function(objs_){/*console.log(objs_);*/if(objs_.slice(-1)[0]!=null){printe(objs_.slice(-1)[0]);throw(objs_.slice(-1)[0])};printe('新建成功,请F5刷新编辑器生效');}); }); } diff --git a/_server/vm.js b/_server/vm.js index 0f2aaecd..6168489e 100644 --- a/_server/vm.js +++ b/_server/vm.js @@ -13,7 +13,13 @@ document.body.onmousedown = function(e){ }); //console.log(eid); if(eid.indexOf('edit')===-1){ - if(eid.indexOf('tip')===-1)selectBox.isSelected = false; + if(eid.indexOf('tip')===-1) { + if (selectBox.isSelected) { + editor_mode.onmode(''); + editor.file.saveFloorFile(function(err){if(err){printe(err);throw(err)};printf('地图保存成功');}); + } + selectBox.isSelected = false; + } } //editor.mode.onmode(''); editor.info = {}; diff --git a/editor.html b/editor.html index cf24e470..327ae7a0 100644 --- a/editor.html +++ b/editor.html @@ -20,7 +20,7 @@

- +
diff --git a/libs/control.js b/libs/control.js index 0bae3a0d..47c960a0 100644 --- a/libs/control.js +++ b/libs/control.js @@ -2075,8 +2075,11 @@ control.prototype.updateStatusBar = function () { var statusList = ['hpmax', 'hp', 'atk', 'def', 'mdef', 'money', 'experience']; statusList.forEach(function (item) { - core.statusBar[item].innerHTML = core.getStatus(item); + var val = core.getStatus(item); + if (val>=10000000) val = parseInt(val/10000) + "W"; + core.statusBar[item].innerHTML = val; }); + // 进阶 if (core.flags.enableLevelUp && core.status.hero.lv