From 7ee1bcad138b89e8373ad2f9fc36510447e958ed Mon Sep 17 00:00:00 2001 From: oc Date: Thu, 28 Jun 2018 23:09:03 +0800 Subject: [PATCH 01/12] Update pickaxe usage --- project/items.js | 10 +++++----- 启动服务.exe | Bin 53248 -> 53760 bytes 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/project/items.js b/project/items.js index 7ef11789..1d877352 100644 --- a/project/items.js +++ b/project/items.js @@ -315,15 +315,15 @@ items_296f5d02_12fd_4166_a7c1_b5e830c9ee3a = "canUseItemEffect": { "book": "true", "fly": "core.status.hero.flyRange.indexOf(core.status.floorId)>=0", - "pickaxe": "var able=false;\nvar ids = [];\nfor (var i in core.status.thisMap.blocks) {\n var block = core.status.thisMap.blocks[i];\n if (core.isset(block.event) && !(core.isset(block.enable) && !block.enable) &&\n (block.event.id == 'yellowWall' || block.event.id=='whiteWall' || block.event.id=='blueWall')) // 能破哪些墙\n {\n // 四个方向\n if (core.flags.pickaxeFourDirections) {\n if (Math.abs(block.x-core.status.hero.loc.x)+Math.abs(block.y-core.status.hero.loc.y)<=1) {\n ids.push(i);\n }\n }\n else {\n if (block.x == core.nextX() && block.y == core.nextY()) {\n ids.push(i);\n }\n }\n }\n}\nif (ids.length>0) {\n core.status.event.data = ids;\n able=true;\n}\nable", - "icePickaxe": "var able=false;\nfor (var i in core.status.thisMap.blocks) {\n var block = core.status.thisMap.blocks[i];\n if (core.isset(block.event) && !(core.isset(block.enable) && !block.enable) && block.x==core.nextX() && block.y==core.nextY() && block.event.id=='ice') {\n core.status.event.data = [i];\n able=true;\n }\n}\nable", - "bomb": "var able=false;\nvar ids = [];\nfor (var i in core.status.thisMap.blocks) {\n var block = core.status.thisMap.blocks[i];\n if (core.isset(block.event) && !(core.isset(block.enable) && !block.enable) && block.event.cls.indexOf('enemy')==0 && Math.abs(block.x-core.status.hero.loc.x)+Math.abs(block.y-core.status.hero.loc.y)<=1) {\n var enemy = core.material.enemys[block.event.id];\n if ((core.isset(enemy.bomb) && !enemy.bomb) || (core.isset(enemy.notBomb) && enemy.notBomb)) continue;\n if (core.flags.bombFourDirections || (block.x==core.nextX() && block.y==core.nextY()))\n ids.push(i);\n }\n}\nif (ids.length>0) {\n core.status.event.data = ids;\n able=true;\n}\nable", - "hammer": "var able=false;\nfor (var i in core.status.thisMap.blocks) {\n var block = core.status.thisMap.blocks[i];\n if (core.isset(block.event) && !(core.isset(block.enable) && !block.enable) && block.event.cls.indexOf('enemy')==0 && block.x==core.nextX() && block.y==core.nextY()) {\n var enemy = core.material.enemys[block.event.id];\n ((core.isset(enemy.bomb) && !enemy.bomb) || (core.isset(enemy.notBomb) && enemy.notBomb)) continue;\n core.status.event.data = [i];\n able=true;\n }\n}\nable", + "pickaxe": "var able=false;\nvar ids = [], id2s = [];\nfor (var i in core.status.thisMap.blocks) {\n\tvar block = core.status.thisMap.blocks[i];\n\tif (core.isset(block.event) && !(core.isset(block.enable) && !block.enable) \n\t\t&& Math.abs(block.x-core.status.hero.loc.x)+Math.abs(block.y-core.status.hero.loc.y)<=1\n\t\t&& (block.event.id == 'yellowWall' || block.event.id=='whiteWall' || block.event.id=='blueWall')) // 能破哪些墙\n\t{\n\t\t// 四个方向\n\t\tif (core.flags.pickaxeFourDirections || (block.x == core.nextX() && block.y == core.nextY()))\n\t\t\tids.push(i);\n\t\telse id2s.push(i);\n\t}\n}\nif (ids.length>0) {\n\tcore.status.event.data = ids;\n\table=true;\n}\nelse if (id2s.length==1) {\n\tcore.status.event.data = id2s;\n\table=true;\n}\nable", + "icePickaxe": "var able=false;\nfor (var i in core.status.thisMap.blocks) {\n\tvar block = core.status.thisMap.blocks[i];\n\tif (core.isset(block.event) && !(core.isset(block.enable) && !block.enable) && block.x==core.nextX() && block.y==core.nextY() && block.event.id=='ice') {\n\t\tcore.status.event.data = [i];\n\t\table=true;\n\t}\n}\nable", + "bomb": "var able=false;\nvar ids = [], id2s = [];\nfor (var i in core.status.thisMap.blocks) {\n\tvar block = core.status.thisMap.blocks[i];\n\tif (core.isset(block.event) && !(core.isset(block.enable) && !block.enable) && block.event.cls.indexOf('enemy')==0 && \n\t\tMath.abs(block.x-core.status.hero.loc.x)+Math.abs(block.y-core.status.hero.loc.y)<=1) {\n\t\tvar enemy = core.material.enemys[block.event.id];\n\t\tif (core.isset(enemy) && enemy.notBomb) continue;\n\t\tif (core.flags.bombFourDirections || (block.x==core.nextX() && block.y==core.nextY()))\n\t\t\tids.push(i);\n\t\telse\n\t\t\tid2s.push(i);\n\t}\n}\nif (ids.length>0) {\n\tcore.status.event.data = ids;\n\table=true;\n}\nelse if (id2s.length==1) {\n\tcore.status.event.data = id2s;\n\table=true;\n}\nable", + "hammer": "var able=false;\nvar ids = [], id2s = [];\nfor (var i in core.status.thisMap.blocks) {\n\tvar block = core.status.thisMap.blocks[i];\n\tif (core.isset(block.event) && !(core.isset(block.enable) && !block.enable) && block.event.cls.indexOf('enemy')==0 && \n\t\tMath.abs(block.x-core.status.hero.loc.x)+Math.abs(block.y-core.status.hero.loc.y)<=1) {\n\t\tvar enemy = core.material.enemys[block.event.id];\n\t\tif (core.isset(enemy) && enemy.notBomb) continue;\n\t\tif (block.x==core.nextX() && block.y==core.nextY())\n\t\t\tids.push(i);\n\t\telse\n\t\t\tid2s.push(i);\n\t}\n}\nif (ids.length>0) {\n\tcore.status.event.data = ids;\n\table=true;\n}\nelse if (id2s.length==1) {\n\tcore.status.event.data = id2s;\n\table=true;\n}\nable", "earthquake": "var able=false;\nvar ids = [];\nfor (var i in core.status.thisMap.blocks) {\n var block = core.status.thisMap.blocks[i];\n if (core.isset(block.event) && !(core.isset(block.enable) && !block.enable) && (block.event.id == 'yellowWall' || block.event.id == 'blueWall' || block.event.id == 'whiteWall')) // 能炸的墙壁\n ids.push(i);\n}\nif (ids.length>0) {\n core.status.event.data = ids;\n able=true;\n}\nable", "centerFly": "var able=false;\nvar toX = 12 - core.getHeroLoc('x'), toY = 12-core.getHeroLoc('y');\nvar block = core.getBlock(toX, toY);\nif (block==null) {\n core.status.event.data = {'x': toX, 'y': toY};\n able = true;\n}\nable", "upFly": "var able=false;\nvar floorId = core.status.floorId, index = core.floorIds.indexOf(floorId);\nif (index0) {\n\tvar toId = core.floorIds[index-1], toX = core.getHeroLoc('x'), toY = core.getHeroLoc('y');\n\tif (core.getBlock(toX, toY, toId)==null) {\n\t\tcore.status.event.data = {'id': toId, 'x': toX, 'y': toY};\n\t\table=true;\n\t}\n}\nable", - "snow": "var able=false;\nvar ids = [];\nfor (var i in core.status.thisMap.blocks) {\n var block = core.status.thisMap.blocks[i];\n if (core.isset(block.event) && !(core.isset(block.enable) && !block.enable) && block.event.id == 'lava') {\n\t\tif (core.flags.snowFourDirections) {\n if (Math.abs(block.x-core.status.hero.loc.x)+Math.abs(block.y-core.status.hero.loc.y)<=1) {\n ids.push(i);\n }\n }\n else {\n if (block.x == core.nextX() && block.y == core.nextY()) {\n ids.push(i);\n }\n }\n }\n}\nif (ids.length>0) {\n core.status.event.data = ids;\n able=true;\n}\nable", + "snow": "var able=false;\nvar ids = [], id2s = [];\nfor (var i in core.status.thisMap.blocks) {\n\tvar block = core.status.thisMap.blocks[i];\n\tif (core.isset(block.event) && !(core.isset(block.enable) && !block.enable) \n\t\t&& block.event.id == 'lava' && Math.abs(block.x-core.status.hero.loc.x)+Math.abs(block.y-core.status.hero.loc.y)<=1) {\n\t\tif (core.flags.snowFourDirections || (block.x == core.nextX() && block.y == core.nextY()))\n\t\t\tids.push(i);\n\t\telse id2s.push(i);\n\t}\n}\nif (ids.length>0) {\n\tcore.status.event.data = ids;\n\table=true;\n}\nelse if (id2s.length==1) {\n\tcore.status.event.data = id2s;\n\table=true;\n}\nable", "bigKey": "var able=false;\nvar ids = [];\nfor (var i in core.status.thisMap.blocks) {\n var block = core.status.thisMap.blocks[i];\n if (core.isset(block.event) && !(core.isset(block.enable) && !block.enable) && block.event.id == 'yellowDoor') {\n ids.push(i);\n }\n}\nif (ids.length>0) {\n core.status.event.data = ids;\n able=true;\n}\nable", "poisonWine": "core.hasFlag('poison')", "weakWine": "core.hasFlag('weak')", diff --git a/启动服务.exe b/启动服务.exe index 95d5d1f71a60f498a35be24f2dc3eb9a942e7b3e..9c706675847914f39ba1ff52b0d3f37a9ac951fb 100644 GIT binary patch delta 20873 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 Date: Fri, 29 Jun 2018 22:57:49 +0800 Subject: [PATCH 02/12] fix bug in editor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1.比如道具效果 useItemEffect 等,在新注册后默认是null;如果要编辑需要先改成空的双引号"",然后再双击编辑;否则直接双击的话系统会认为是一个JSON,写脚本就会出错 2.事件编辑器保存时检测用的框是否是正确 --- _server/comment.js | 4 ++++ _server/editor_blockly.js | 14 +++++++++++++- _server/editor_mode.js | 2 +- _server/editor_multi.js | 2 +- 4 files changed, 19 insertions(+), 3 deletions(-) diff --git a/_server/comment.js b/_server/comment.js index 858dcb03..a2651a2b 100644 --- a/_server/comment.js +++ b/_server/comment.js @@ -39,24 +39,28 @@ comment_c456ea59_6018_45ef_8bcc_211a24c627dc = "itemEffect": { "_leaf": true, "_type": "textarea", + "_string": true, "_lint": true, "_data": "cls为items的即捡即用类物品的效果,如需设置可以先将其设置为空字符串\"\",然后双击进行编辑。" }, "itemEffectTip": { "_leaf": true, "_type": "textarea", + "_string": true, "_lint": true, "_data": "cls为items的即捡即用类物品,在获得时左上角额外显示的文字,如需设置可以先将其设置为空字符串\"\",然后双击进行编辑。" }, "useItemEffect": { "_leaf": true, "_type": "textarea", + "_string": true, "_lint": true, "_data": "cls为tools或contants时的使用物品效果,如需设置可以先将其设置为空字符串\"\",然后双击进行编辑。" }, "canUseItemEffect": { "_leaf": true, "_type": "textarea", + "_string": true, "_lint": true, "_data": "cls为tools或contants时对当前能否使用该物品的判断,如需设置可以先将其设置为空字符串\"\",然后双击进行编辑。" } diff --git a/_server/editor_blockly.js b/_server/editor_blockly.js index c547ebef..e58ee4e0 100644 --- a/_server/editor_blockly.js +++ b/_server/editor_blockly.js @@ -413,6 +413,18 @@ document.getElementById('blocklyDiv').onmousewheel = function(e){ editor_blockly.id = ''; return; } + if(editor_blockly.workspace.topBlocks_.length>=2){ + codeAreaHL.setValue('入口方块只能有一个'); + return; + } + var eventType = document.getElementById('entryType').value; + if(editor_blockly.workspace.topBlocks_.length==1){ + var blockType = editor_blockly.workspace.topBlocks_[0].type; + if(blockType!==eventType+'_m'){ + codeAreaHL.setValue('入口方块类型错误'); + return; + } + } var setvalue = function (value) { var thisTr = document.getElementById(editor_blockly.id); editor_blockly.id = ''; @@ -422,7 +434,7 @@ document.getElementById('blocklyDiv').onmousewheel = function(e){ input.onchange(); } if (codeAreaHL.getValue() === '') { - setvalue('null'); + eventType==='shop'?setvalue('[]'):setvalue('null'); return; } var code = Blockly.JavaScript.workspaceToCode(editor_blockly.workspace); diff --git a/_server/editor_mode.js b/_server/editor_mode.js index bc8ff3e1..8b263262 100644 --- a/_server/editor_mode.js +++ b/_server/editor_mode.js @@ -120,7 +120,7 @@ editor_mode = function (editor) { } input.ondblclick = function () { if (cobj._type === 'event') editor_blockly.import(guid, {type: cobj._event}); - if (cobj._type === 'textarea') editor_multi.import(guid, {lint: cobj._lint}); + if (cobj._type === 'textarea') editor_multi.import(guid, {lint: cobj._lint, string: cobj._string}); } }); diff --git a/_server/editor_multi.js b/_server/editor_multi.js index 739ae55d..2c426991 100644 --- a/_server/editor_multi.js +++ b/_server/editor_multi.js @@ -72,7 +72,7 @@ editor_multi = function () { editor_multi.lintAutocomplete = false; if (args.lint === true) editor_multi.lintAutocomplete = true; if (field.indexOf('Effect') !== -1) editor_multi.lintAutocomplete = true; - if (input.value.slice(0, 1) === '"') { + if (input.value.slice(0, 1) === '"' || args.string) { editor_multi.isString = true; codeEditor.setValue(JSON.parse(input.value) || ''); } else { From 9ddefed070396feeb532f4427ca97985aaab7360 Mon Sep 17 00:00:00 2001 From: YouWei Zhao Date: Fri, 29 Jun 2018 23:11:08 +0800 Subject: [PATCH 03/12] hide point_m MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 隐藏入口方块中的加点 入口方块类型错误时同步的报错 --- _server/editor_blockly.js | 34 +++++++++++++++++++++++----------- 1 file changed, 23 insertions(+), 11 deletions(-) diff --git a/_server/editor_blockly.js b/_server/editor_blockly.js index e58ee4e0..5ccd9b02 100644 --- a/_server/editor_blockly.js +++ b/_server/editor_blockly.js @@ -18,17 +18,17 @@ editor_blockly = function () { {"type": "hide", "time": 500}, ],'event'), MotaActionBlocks['changeFloor_m'].xmlText(), - MotaActionFunctions.actionParser.parse({"type": "choices", "choices": [ - {"text": "攻击+\${point}", "action": [ - {"type": "setValue", "name": "status:atk", "value": "status:atk+\${point}"}, - ]}, - {"text": "防御+\${2*point}", "action": [ - {"type": "setValue", "name": "status:def", "value": "status:def+\${2*point}"}, - ]}, - {"text": "生命+\${200*point}", "action": [ - {"type": "setValue", "name": "status:hp", "value": "status:hp+\${200*point}"}, - ]}, - ]},'point'), + //MotaActionFunctions.actionParser.parse({"type": "choices", "choices": [ + // {"text": "攻击+\${point}", "action": [ + // {"type": "setValue", "name": "status:atk", "value": "status:atk+\${point}"}, + // ]}, + // {"text": "防御+\${2*point}", "action": [ + // {"type": "setValue", "name": "status:def", "value": "status:def+\${2*point}"}, + // ]}, + // {"text": "生命+\${200*point}", "action": [ + // {"type": "setValue", "name": "status:hp", "value": "status:hp+\${200*point}"}, + // ]}, + //]},'point'), MotaActionFunctions.actionParser.parse([{ "id": "moneyShop1", "name": "贪婪之神", @@ -269,6 +269,18 @@ document.getElementById('blocklyDiv').onmousewheel = function(e){ } } } + if(editor_blockly.workspace.topBlocks_.length>=2){ + codeAreaHL.setValue('入口方块只能有一个'); + return; + } + var eventType = document.getElementById('entryType').value; + if(editor_blockly.workspace.topBlocks_.length==1){ + var blockType = editor_blockly.workspace.topBlocks_[0].type; + if(blockType!==eventType+'_m'){ + codeAreaHL.setValue('入口方块类型错误'); + return; + } + } try { var code = Blockly.JavaScript.workspaceToCode(workspace); codeAreaHL.setValue(code); From 7ce005d770520c52d292063565627c53529f396b Mon Sep 17 00:00:00 2001 From: oc Date: Sat, 30 Jun 2018 00:31:58 +0800 Subject: [PATCH 04/12] Autosize --- _server/blockly/MotaAction.g4 | 2 +- libs/control.js | 3 ++- libs/events.js | 14 ++++++++++++-- styles.css | 3 ++- 更新说明.txt | 15 ++++++++++++++- 5 files changed, 31 insertions(+), 6 deletions(-) diff --git a/_server/blockly/MotaAction.g4 b/_server/blockly/MotaAction.g4 index 99783b0b..470e7b10 100644 --- a/_server/blockly/MotaAction.g4 +++ b/_server/blockly/MotaAction.g4 @@ -338,7 +338,7 @@ return code; */; setValue_s - : '变量操作' ':' '名称' idString_e '值' expression Newline + : '变量设置' ':' '名称' idString_e '值' expression Newline /* setValue_s diff --git a/libs/control.js b/libs/control.js index b848ec69..2162ffd2 100644 --- a/libs/control.js +++ b/libs/control.js @@ -2225,6 +2225,7 @@ control.prototype.loadData = function (data, callback) { ////// 设置勇士属性 ////// control.prototype.setStatus = function (statusName, statusVal) { + if (statusName == 'exp') statusName = 'experience'; if (core.isset(core.status.hero.loc[statusName])) core.status.hero.loc[statusName] = statusVal; else @@ -2236,6 +2237,7 @@ control.prototype.getStatus = function (statusName) { // support status:x if (core.isset(core.status.hero.loc[statusName])) return core.status.hero.loc[statusName]; + if (statusName == 'exp') statusName = 'experience'; return core.status.hero[statusName]; } @@ -2446,7 +2448,6 @@ control.prototype.updateStatusBar = function () { core.statusBar.hard.innerHTML = core.status.hard; - // 回放 if (core.status.replay.replaying) { core.statusBar.image.book.src = core.status.replay.pausing?core.statusBar.icons.play.src:core.statusBar.icons.pause.src; diff --git a/libs/events.js b/libs/events.js index b82df54e..3e5d1470 100644 --- a/libs/events.js +++ b/libs/events.js @@ -1082,9 +1082,19 @@ events.prototype.changeFloor = function (floorId, stair, heroLoc, time, callback var floorName = core.status.maps[floorId].name; if (!core.isset(floorName) || floorName=="") floorName=" " core.statusBar.floor.innerHTML = floorName; - if (/^[+-]?\d+$/.test(floorName)) + if (/^[+-]?\d+$/.test(floorName)) { core.statusBar.floor.style.fontStyle = 'italic'; - else core.statusBar.floor.style.fontStyle = 'normal'; + core.statusBar.floor.style.fontSize = '1.1em'; + } + else { + core.statusBar.floor.style.fontStyle = 'normal'; + if (floorName.length<=5) + core.statusBar.floor.style.fontSize = '1.1em'; + else if (floorName.length==6) + core.statusBar.floor.style.fontSize = '0.9em'; + else + core.statusBar.floor.style.fontSize = '0.7em'; + } // 更改BGM if (core.isset(core.floors[floorId].bgm)) { diff --git a/styles.css b/styles.css index 2021c874..dceacbb9 100644 --- a/styles.css +++ b/styles.css @@ -191,10 +191,11 @@ #statusBar p { display: inline-block; vertical-align: middle; - width: 60%; + width: 70%; margin: 0; color: white; font: bold italic 1.1em Verdana; + white-space: nowrap; } #toolBar { position: absolute; diff --git a/更新说明.txt b/更新说明.txt index ef07cf76..8601bc08 100644 --- a/更新说明.txt +++ b/更新说明.txt @@ -1,4 +1,17 @@ -HTML5魔塔样板V2.3.1 +HTML5魔塔样板V2.3.2 + +启动服务的多开版本 √ +怪物数据导出器 +gif播放可随着分辨率自动放缩 √ +状态栏可随文字长度自动调整放缩 √ +也可以用status:exp来代替经验值的写法 √ +破炸在周围只有一个目标时无需转向面对它 √ +道具效果中,无需再将null改成""才能双击编辑了 √ +各个已知Bug的修复,部分细节优化 √ + +----------------------------------------------------------------------- + +HTML5魔塔样板V2.3.1 存档采用高比率压缩,单个大小是原来的1/10! 默认存档数改成100页500个 From 9d3f581183840eb46211e9b9cbb4f4fc3dce0b28 Mon Sep 17 00:00:00 2001 From: oc Date: Sat, 30 Jun 2018 00:33:14 +0800 Subject: [PATCH 05/12] Autosize --- styles.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/styles.css b/styles.css index dceacbb9..2cf08287 100644 --- a/styles.css +++ b/styles.css @@ -191,7 +191,7 @@ #statusBar p { display: inline-block; vertical-align: middle; - width: 70%; + width: 60%; margin: 0; color: white; font: bold italic 1.1em Verdana; From 2f140dc7d7c275c729d39bd473437f11f0762cba Mon Sep 17 00:00:00 2001 From: oc Date: Sun, 1 Jul 2018 00:41:27 +0800 Subject: [PATCH 06/12] =?UTF-8?q?=E9=AD=94=E6=94=BB&=E7=A0=B4=E7=94=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- libs/enemys.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libs/enemys.js b/libs/enemys.js index 8cb4b43f..d02cdef3 100644 --- a/libs/enemys.js +++ b/libs/enemys.js @@ -254,13 +254,13 @@ enemys.prototype.getDamageInfo = function(monster, hero_hp, hero_atk, hero_def, mon_atk = hero_atk; mon_def = hero_def; } - // 魔攻 - if (this.hasSpecial(mon_special,2)) hero_def = 0; // 坚固 if (this.hasSpecial(mon_special,3) && mon_def < hero_atk - 1) mon_def = hero_atk - 1; if (hero_atk <= mon_def) return null; // 不可战斗时请直接返回null var per_damage = mon_atk - hero_def; + // 魔攻 + if (this.hasSpecial(mon_special,2)) per_damage = mon_atk; if (per_damage < 0) per_damage = 0; // 2连击 & 3连击 & N连击 From a54029fbf35004adc5d38a835a50d10c1537c197 Mon Sep 17 00:00:00 2001 From: YouWei Zhao Date: Sun, 1 Jul 2018 20:00:22 +0800 Subject: [PATCH 07/12] editor: copy event MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 改变复制事件的方向 --- _server/editor.js | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/_server/editor.js b/_server/editor.js index 549d5c55..ebbbd889 100644 --- a/_server/editor.js +++ b/_server/editor.js @@ -674,8 +674,8 @@ editor.prototype.listen = function () { var locStr='('+editor.lastRightButtonPos[1].x+','+editor.lastRightButtonPos[1].y+')'; var scrollLeft = document.documentElement.scrollLeft || document.body.scrollLeft; var scrollTop = document.documentElement.scrollTop || document.body.scrollTop; - copyLoc.children[0].innerHTML='复制此事件到'+locStr; - moveLoc.children[0].innerHTML='移动此事件到'+locStr; + copyLoc.children[0].innerHTML='复制事件'+locStr+'到此处'; + moveLoc.children[0].innerHTML='交换事件'+locStr+'与此事件的位置'; midMenu.style='top:'+(y+scrollTop)+'px;left:'+(x+scrollLeft)+'px;'; } editor.hideMidMenu=function(){midMenu.style='display:none';} @@ -730,21 +730,22 @@ editor.prototype.listen = function () { e.stopPropagation(); preMapData = null; reDo = null; - var thisevent = editor.map[editor.pos.y][editor.pos.x]; - if(thisevent==0){ - editor.info = 0; - } else { - var ids=editor.indexs[thisevent.idnum]; - ids=ids[0]?ids[0]:ids; - editor.info=editor.ids[ids]; - } editor_mode.onmode(''); var now = editor.pos; var last = editor.lastRightButtonPos[1]; - editor.map[last.y][last.x]=editor.info; + var lastevent = editor.map[last.y][last.x]; + var lastinfo = 0; + if(lastevent==0){ + lastinfo = 0; + } else { + var ids=editor.indexs[lastevent.idnum]; + ids=ids[0]?ids[0]:ids; + lastinfo=editor.ids[ids]; + } + editor.map[now.y][now.x]=lastinfo; editor.updateMap(); fields.forEach(function(v){ - editor.currentFloorData[v][last.x+','+last.y]=editor.currentFloorData[v][now.x+','+now.y] + editor.currentFloorData[v][now.x+','+now.y]=editor.currentFloorData[v][last.x+','+last.y] }) editor.file.saveFloorFile(function (err) { if (err) { From 36440ba768d0da798b454afe6684002408f4195f Mon Sep 17 00:00:00 2001 From: YouWei Zhao Date: Sun, 1 Jul 2018 20:02:54 +0800 Subject: [PATCH 08/12] _string --- _server/comment.js | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/_server/comment.js b/_server/comment.js index a2651a2b..982424a4 100644 --- a/_server/comment.js +++ b/_server/comment.js @@ -27,11 +27,13 @@ comment_c456ea59_6018_45ef_8bcc_211a24c627dc = "name": { "_leaf": true, "_type": "textarea", + "_string": true, "_data": "名称" }, "text": { "_leaf": true, "_type": "textarea", + "_string": true, "_data": "道具在道具栏中显示的描述" } } @@ -41,28 +43,28 @@ comment_c456ea59_6018_45ef_8bcc_211a24c627dc = "_type": "textarea", "_string": true, "_lint": true, - "_data": "cls为items的即捡即用类物品的效果,如需设置可以先将其设置为空字符串\"\",然后双击进行编辑。" + "_data": "cls为items的即捡即用类物品的效果。" }, "itemEffectTip": { "_leaf": true, "_type": "textarea", "_string": true, "_lint": true, - "_data": "cls为items的即捡即用类物品,在获得时左上角额外显示的文字,如需设置可以先将其设置为空字符串\"\",然后双击进行编辑。" + "_data": "cls为items的即捡即用类物品,在获得时左上角额外显示的文字。" }, "useItemEffect": { "_leaf": true, "_type": "textarea", "_string": true, "_lint": true, - "_data": "cls为tools或contants时的使用物品效果,如需设置可以先将其设置为空字符串\"\",然后双击进行编辑。" + "_data": "cls为tools或contants时的使用物品效果。" }, "canUseItemEffect": { "_leaf": true, "_type": "textarea", "_string": true, "_lint": true, - "_data": "cls为tools或contants时对当前能否使用该物品的判断,如需设置可以先将其设置为空字符串\"\",然后双击进行编辑。" + "_data": "cls为tools或contants时对当前能否使用该物品的判断。" } } }, @@ -74,6 +76,7 @@ comment_c456ea59_6018_45ef_8bcc_211a24c627dc = "name": { "_leaf": true, "_type": "textarea", + "_string": true, "_data": "名称" }, "hp": { From 54c6e7162aca070c94f92b5c6ac0770d97f9005e Mon Sep 17 00:00:00 2001 From: oc Date: Mon, 2 Jul 2018 00:17:24 +0800 Subject: [PATCH 09/12] Do Effect --- libs/control.js | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/libs/control.js b/libs/control.js index 2162ffd2..af79f445 100644 --- a/libs/control.js +++ b/libs/control.js @@ -1509,25 +1509,26 @@ control.prototype.updateFg = function () { } ////// 执行一个表达式的effect操作 ////// -control.prototype.doEffect = function (expression) { - // 必须使用"+=" - var arr = expression.split("+="); - if (arr.length!=2) return; - var name=arr[0], value=core.calValue(arr[1]); - if (name.indexOf("status:")==0) { - var status=name.substring(7); - core.setStatus(status, core.getStatus(status)+value); - } - else if (name.indexOf("item:")==0) { - var itemId=name.substring(5); - core.setItem(itemId, core.itemCount(itemId)+value); - } +control.prototype.doEffect = function (effect) { + effect.split(";").forEach(function (expression) { + var arr = expression.split("+="); + if (arr.length!=2) return; + var name=arr[0], value=core.calValue(arr[1]); + if (name.indexOf("status:")==0) { + var status=name.substring(7); + core.setStatus(status, core.getStatus(status)+value); + } + else if (name.indexOf("item:")==0) { + var itemId=name.substring(5); + core.setItem(itemId, core.itemCount(itemId)+value); + } + }); } ////// 开启debug模式 ////// control.prototype.debug = function() { core.setFlag('debug', true); - core.insertAction(["\t[调试模式开启]此模式下按住Ctrl键可以穿墙并忽略一切事件。\n同时,录像将失效,也无法上传成绩。"]); + core.insertAction(["\t[调试模式开启]此模式下按住Ctrl键(或Ctrl+Shift键)可以穿墙并忽略一切事件。\n同时,录像将失效,也无法上传成绩。"]); /* core.setStatus('hp', 999999); core.setStatus('atk', 10000); From 74d3fd070e606901ed1977ff57be1b7e24b407c5 Mon Sep 17 00:00:00 2001 From: ckcz123 Date: Tue, 3 Jul 2018 18:56:35 +0800 Subject: [PATCH 10/12] Follow Effect --- .DS_Store | Bin 0 -> 8196 bytes _server/blockly/MotaAction.g4 | 36 ++++++ _server/editor_blockly.js | 4 +- docs/event.md | 32 +++++ libs/control.js | 214 ++++++++++++++++++++++++---------- libs/core.js | 8 +- libs/events.js | 36 ++++++ libs/maps.js | 5 +- libs/utils.js | 2 +- project/.DS_Store | Bin 0 -> 8196 bytes project/data.js | 2 +- project/images/A1.png | Bin 0 -> 2929 bytes 更新说明.txt | 1 + 13 files changed, 269 insertions(+), 71 deletions(-) create mode 100644 .DS_Store create mode 100644 project/.DS_Store create mode 100755 project/images/A1.png diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..84ef737f38f56d65c8715e73a469c6493314db78 GIT binary patch literal 8196 zcmeHMO-~a+7=A}8-L|6mk(A?JOgJ>PAc)48lmZ44MWhWSQG_nLv^7hYv|9?)N-v%~ z=n><|o8CD43;YNE0)K(r@tK)T)7=&mFGk`_GV{*vJkQL|^S-;oTZo8d>gE{H2oY(h z+z!Xk^eKFt*Pe30yK@beflstc7F8E)XVb8I(CUU#Kq;UUPzopolmh>P0ywjI(at#c z<)~_v0!o4ZQUU&b&{4Tfd$ujD_;jEVDFAE;w?#o8d4S;Po=tnUEv=wpPMJM0kIK9h zgGoBZbqtfVwlmSGPyukDM=;tw#oLhSUkYGO7oPX$MlFM zKjv0*rK#fKlf(MxW;mP29CgeToZ(GihA7soU}cN;&Rq3pfDuEJ3Ub-B0C}D-S4^joaq1PbCg#b?0Zof&k@ewtvpF%D(8uphwi0@C zYATh`CvM+qwIW*l=GcRUjqUw|=Bw80BkTx;d7pK+*b@R%jg9RCT_XXtuYmzt>lD z+tUZJQ;i<-2)B+Gzn(^ba1nO_zwwyx&8FpUEq^W!Eq?-@$Eg+YGu{dxKJ?;leRS=| z(?$S?c<|x0trP3`?a9{V{?Eac@Zm4D^x~4`x`T_ccddLXpYG2SYV38?fa=0sXv8TD ztImJKm?}zv^Q6FleAp45|IeNM`~P{`l6qF9fKuQO6=0#+>}&=kajN$r^HW|&-9Y7q p', MotaActionBlocks['if_s'].xmlText(), MotaActionBlocks['while_s'].xmlText(), diff --git a/docs/event.md b/docs/event.md index 814a2ff7..3e83793f 100644 --- a/docs/event.md +++ b/docs/event.md @@ -617,6 +617,38 @@ time为可选的,指定的话将作为楼层切换动画的时间。 使用disableShop可以永久禁用全局商店直到再次被openShop打开为止。有关全局商店的说明可参见[全局商店](#全局商店)。 +### follow:跟随勇士 + +使用 `{"type": "follow"}` 可以让一个npc加入跟随。 + +``` js +"x,y": [ // 实际执行的事件列表 + {"type": "follow", "name": "npc.png"}, // 将 npc.png 这个行走图加入跟随 + {"type": "follow", "name": "hero.png"}, // 再将另一个行走图加入跟随 +] +``` + +name为必须的,是要加入跟随的行走图文件名。 + +name所指定的图片必须存在,在全塔属性中的images中被定义过,且是一个合法的行走图(宽为128像素,高不限。) + +### unfollow:取消跟随 + +使用 `{"type": "unfollow"}` 来取消一个跟随。 + +``` js +"x,y": [ // 实际执行的事件列表 + {"type": "unfollow", "name": "npc.png"}, // 将 npc.png 这个行走图取消跟随 + {"type": "follow"}, // 取消所有跟随 +] +``` + +name为可选的,是要取消跟随的行走图文件名。 + +如果name指定了,则会检查所有当前正在跟随的行走图,并删除第一个文件名是name的跟随效果。 + +如果name省略,则会取消所有的跟随效果。 + ### animate:显示动画 我们可以使用 `{"type": "animate"}` 来显示一段动画。 diff --git a/libs/control.js b/libs/control.js index af79f445..51622c78 100644 --- a/libs/control.js +++ b/libs/control.js @@ -92,10 +92,10 @@ control.prototype.setRequestAnimationFrame = function () { if (timestamp-core.animateFrame.moveTime>16 && core.isset(core.status.heroMoving) && core.status.heroMoving>0) { var x=core.getHeroLoc('x'), y=core.getHeroLoc('y'), direction = core.getHeroLoc('direction'); if (core.status.heroMoving<=4) { - core.drawHero(direction, x, y, 'leftFoot', 4*core.status.heroMoving*scan[direction].x, 4*core.status.heroMoving*scan[direction].y); + core.drawHero(direction, x, y, 'leftFoot', 4*core.status.heroMoving); } else if (core.status.heroMoving<=8) { - core.drawHero(direction, x, y, 'rightFoot', 4*core.status.heroMoving*scan[direction].x, 4*core.status.heroMoving*scan[direction].y); + core.drawHero(direction, x, y, 'rightFoot', 4*core.status.heroMoving); } core.animateFrame.moveTime = timestamp; } @@ -379,6 +379,25 @@ control.prototype.clearContinueAutomaticRoute = function () { core.status.automaticRoute.moveStepBeforeStop=[]; } +////// 瞬间移动 ////// +control.prototype.moveDirectly = function (destX, destY) { + var ignoreSteps = core.canMoveDirectly(destX, destY); + if (ignoreSteps>0) { + core.clearMap('hero', 0, 0, 416, 416); + var lastDirection = core.status.route[core.status.route.length-1]; + if (['left', 'right', 'up', 'down'].indexOf(lastDirection)>=0) + core.setHeroLoc('direction', lastDirection); + core.setHeroLoc('x', destX); + core.setHeroLoc('y', destY); + core.drawHero(); + core.status.route.push("move:"+destX+":"+destY); + core.status.hero.statistics.moveDirectly++; + core.status.hero.statistics.ignoreSteps+=ignoreSteps; + return true; + } + return false; +} + ////// 设置自动寻路路线 ////// control.prototype.setAutomaticRoute = function (destX, destY, stepPostfix) { if (!core.status.played || core.status.lockControl) { @@ -392,19 +411,7 @@ control.prototype.setAutomaticRoute = function (destX, destY, stepPostfix) { core.status.automaticRoute.moveDirectly = true; setTimeout(function () { if (core.status.automaticRoute.moveDirectly && core.status.heroMoving==0) { - var ignoreSteps = core.canMoveDirectly(destX, destY); - if (ignoreSteps>0) { - core.clearMap('hero', 0, 0, 416, 416); - var lastDirection = core.status.route[core.status.route.length-1]; - if (['left', 'right', 'up', 'down'].indexOf(lastDirection)>=0) - core.setHeroLoc('direction', lastDirection); - core.setHeroLoc('x', destX); - core.setHeroLoc('y', destY); - core.drawHero(); - core.status.route.push("move:"+destX+":"+destY); - core.status.hero.statistics.moveDirectly++; - core.status.hero.statistics.ignoreSteps+=ignoreSteps; - } + core.control.moveDirectly(destX, destY); } core.status.automaticRoute.moveDirectly = false; }, 100); @@ -429,17 +436,8 @@ control.prototype.setAutomaticRoute = function (destX, destY, stepPostfix) { // 单击瞬间移动 if (core.status.automaticRoute.clickMoveDirectly && core.status.heroStop) { - var ignoreSteps = core.canMoveDirectly(destX, destY); - if (ignoreSteps>0) { - core.clearMap('hero', 0, 0, 416, 416); - core.setHeroLoc('x', destX); - core.setHeroLoc('y', destY); - core.drawHero(); - core.status.route.push("move:"+destX+":"+destY); - core.status.hero.statistics.moveDirectly++; - core.status.hero.statistics.ignoreSteps+=ignoreSteps; + if (core.control.moveDirectly(destX, destY)) return; - } } var step = 0; @@ -656,8 +654,9 @@ control.prototype.setHeroMoveInterval = function (direction, x, y, callback) { core.interval.heroMoveInterval = window.setInterval(function () { core.status.heroMoving+=toAdd; if (core.status.heroMoving>=8) { - core.setHeroLoc('x', x+scan[direction].x); - core.setHeroLoc('y', y+scan[direction].y); + core.setHeroLoc('x', x+scan[direction].x, true); + core.setHeroLoc('y', y+scan[direction].y, true); + core.control.updateFollowers(); core.moveOneStep(); core.clearMap('hero', 0, 0, 416, 416); core.drawHero(direction); @@ -837,15 +836,16 @@ control.prototype.eventMoveHero = function(steps, time, callback) { core.setHeroLoc('direction', direction); step++; if (step <= 4) { - core.drawHero(direction, x, y, 'leftFoot', 4 * step * scan[direction].x, 4 * step * scan[direction].y); + core.drawHero(direction, x, y, 'leftFoot', 4 * step); } else if (step <= 8) { - core.drawHero(direction, x, y, 'rightFoot', 4 * step * scan[direction].x, 4 * step * scan[direction].y); + core.drawHero(direction, x, y, 'rightFoot', 4 * step); } if (step == 8) { step = 0; - core.setHeroLoc('x', x + scan[direction].x); - core.setHeroLoc('y', y + scan[direction].y); + core.setHeroLoc('x', x + scan[direction].x, true); + core.setHeroLoc('y', y + scan[direction].y, true); + core.control.updateFollowers(); moveSteps.shift(); } } @@ -891,12 +891,16 @@ control.prototype.jumpHero = function (ex, ey, time, callback) { curry = (curry * jump_count + ey) / (jump_count + 1.0); } + if (core.isset(core.status.hero.followers) && core.status.hero.followers.length>0) + core.clearMap('hero'); + var animate=window.setInterval(function() { if (jump_count>0) { core.clearMap('hero', drawX(), drawY()-height+32, 32, height); updateJump(); - core.canvas.hero.drawImage(core.material.images.hero, heroIcon[status] * 32, heroIcon.loc * height, 32, height, drawX(), drawY() + 32-height, 32, height); } + core.canvas.hero.drawImage(core.material.images.hero, heroIcon[status] * 32, heroIcon.loc * height, 32, height, drawX(), drawY() + 32-height, 32, height); + } else { clearInterval(animate); core.setHeroLoc('x', ex); @@ -954,33 +958,72 @@ control.prototype.stopHero = function () { } ////// 绘制勇士 ////// -control.prototype.drawHero = function (direction, x, y, status, offsetX, offsetY) { - offsetX = offsetX || 0; - offsetY = offsetY || 0; - var dx=offsetX==0?0:offsetX/Math.abs(offsetX), dy=offsetY==0?0:offsetY/Math.abs(offsetY); +control.prototype.drawHero = function (direction, x, y, status, offset) { + var scan = { + 'up': {'x': 0, 'y': -1}, + 'left': {'x': -1, 'y': 0}, + 'down': {'x': 0, 'y': 1}, + 'right': {'x': 1, 'y': 0} + }; + if (!core.isset(x)) x = core.getHeroLoc('x'); if (!core.isset(y)) y = core.getHeroLoc('y'); - core.clearAutomaticRouteNode(x+dx, y+dy); - x = x * 32; - y = y * 32; status = status || 'stop'; - var heroIcon = core.material.icons.hero[direction || core.getHeroLoc('direction')]; - core.canvas.hero.clearRect(x - 32, y - 32, 96, 96); - var height=core.material.icons.hero.height; - core.canvas.hero.drawImage(core.material.images.hero, heroIcon[status] * 32, heroIcon.loc * height, 32, height, x + offsetX, y + offsetY + 32-height, 32, height); + direction = direction || core.getHeroLoc('direction'); + offset = offset || 0; + var dx=offset==0?0:scan[direction].x, dy=offset==0?0:scan[direction].y; + core.clearAutomaticRouteNode(x+dx, y+dy); + core.canvas.hero.clearRect(32 * x - 32, 32 * y - 32, 96, 96); + + var heroIconArr = core.material.icons.hero; + var drawObjs = []; + // add hero + drawObjs.push({ + "img": core.material.images.hero, + "height": core.material.icons.hero.height, + "heroIcon": heroIconArr[direction], + "posx": 32 * x + scan[direction].x*offset, + "posy": 32 * y + scan[direction].y*offset, + "status": status, + "index": 0, + }); + + // Add other followers + if (core.isset(core.status.hero.followers)) { + var index=1; + core.status.hero.followers.forEach(function (t) { + core.canvas.hero.clearRect(32*t.x-32, 32*t.y-32, 96, 96); + if (core.isset(core.material.images.images[t.img])) { + drawObjs.push({ + "img": core.material.images.images[t.img], + "height": core.material.images.images[t.img].height/4, + "heroIcon": heroIconArr[t.direction], + "posx": 32*t.x + (t.stop?0:scan[t.direction].x*offset), + "posy": 32*t.y + (t.stop?0:scan[t.direction].y*offset), + "status": t.stop?"stop":status, + "index": index++ + }); + } + }); + } + + drawObjs.sort(function (a, b) { + return a.posy==b.posy?b.index-a.index:a.posy-b.posy; + }) + + drawObjs.forEach(function (block) { + core.canvas.hero.drawImage(block.img, block.heroIcon[block.status]*32, + block.heroIcon.loc * block.height, 32, block.height, + block.posx, block.posy+32-block.height, 32, block.height); + }) } ////// 设置勇士的位置 ////// -control.prototype.setHeroLoc = function (itemName, itemVal) { - if (itemVal == '++') { - core.status.hero.loc[itemName]++; - return; - } - else if (itemVal == '--') { - core.status.hero.loc[itemName]--; - return; - } +control.prototype.setHeroLoc = function (itemName, itemVal, noGather) { core.status.hero.loc[itemName] = itemVal; + if ((itemName=='x' || itemName=='y') && !noGather) { + this.gatherFollowers(); + } } ////// 获得勇士的位置 ////// @@ -1011,6 +1054,62 @@ control.prototype.nextY = function (n) { return core.getHeroLoc('y')+scan[core.getHeroLoc('direction')].y*(n||1); } +////// 聚集跟随者 ////// +control.prototype.gatherFollowers = function () { + if (!core.isset(core.status.hero.followers) || core.status.hero.followers.length==0) return; + var x=core.getHeroLoc('x'), y=core.getHeroLoc('y'), dir=core.getHeroLoc('direction'); + core.status.hero.followers.forEach(function (t) { + t.x = x; + t.y = y; + t.stop = true; + t.direction = dir; + }); +} + +////// 更新跟随者坐标 ////// +control.prototype.updateFollowers = function () { + if (!core.isset(core.status.hero.followers) || core.status.hero.followers.length==0) return; + var scan = { + 'up': {'x': 0, 'y': -1}, + 'left': {'x': -1, 'y': 0}, + 'down': {'x': 0, 'y': 1}, + 'right': {'x': 1, 'y': 0} + }; + core.status.hero.followers.forEach(function (t) { + if (!t.stop) { + t.x += scan[t.direction].x; + t.y += scan[t.direction].y; + } + }) + + var nowx = core.getHeroLoc('x'), nowy = core.getHeroLoc('y'); + core.status.hero.followers.forEach(function (t) { + if (t.x == nowx && t.y == nowy) { + t.stop = true; + } + else { + var dx = nowx-t.x, dy = nowy-t.y; + if (dx==-1) { + t.stop=false; + t.direction='left'; + } + else if (dx==1) { + t.stop=false; + t.direction='right'; + } + else if (dy==-1) { + t.stop=false; + t.direction='up'; + } + else if (dy==1) { + t.stop=false; + t.direction='down'; + } + } + nowx=t.x; nowy=t.y; + }) +} + ////// 更新领域、夹击、阻击的伤害地图 ////// control.prototype.updateCheckBlock = function() { core.status.checkBlock = {}; @@ -1823,16 +1922,7 @@ control.prototype.replay = function () { else if (action.indexOf('move:')==0) { var pos=action.substring(5).split(":"); var x=parseInt(pos[0]), y=parseInt(pos[1]); - - var ignoreSteps = core.canMoveDirectly(x, y); - if (ignoreSteps>0) { - core.clearMap('hero', 0, 0, 416, 416); - core.setHeroLoc('x', x); - core.setHeroLoc('y', y); - core.drawHero(); - core.status.route.push("move:"+x+":"+y); - core.status.hero.statistics.moveDirectly++; - core.status.hero.statistics.ignoreSteps+=ignoreSteps; + if (core.control.moveDirectly(x,y)) { core.replay(); return; } diff --git a/libs/core.js b/libs/core.js index ed43bd8a..4ae431dc 100644 --- a/libs/core.js +++ b/libs/core.js @@ -484,13 +484,13 @@ core.prototype.stopHero = function () { } ////// 绘制勇士 ////// -core.prototype.drawHero = function (direction, x, y, status, offsetX, offsetY) { - core.control.drawHero(direction, x, y, status, offsetX, offsetY); +core.prototype.drawHero = function (direction, x, y, status, offset) { + core.control.drawHero(direction, x, y, status, offset); } ////// 设置勇士的位置 ////// -core.prototype.setHeroLoc = function (itemName, itemVal) { - core.control.setHeroLoc(itemName, itemVal); +core.prototype.setHeroLoc = function (itemName, itemVal, noGather) { + core.control.setHeroLoc(itemName, itemVal, noGather); } ////// 获得勇士的位置 ////// diff --git a/libs/events.js b/libs/events.js index 3e5d1470..f8ff8424 100644 --- a/libs/events.js +++ b/libs/events.js @@ -405,6 +405,42 @@ events.prototype.doAction = function() { this.doAction(); break; } + case "follow": // 跟随 + if (core.isset(core.material.images.images[data.name]) + && core.material.images.images[data.name].width==128) { + if (!core.isset(core.status.hero.followers)) + core.status.hero.followers = []; + core.status.hero.followers.push({"img": data.name}); + core.control.gatherFollowers(); + core.clearMap('hero'); + core.drawHero(); + } + this.doAction(); + break; + case "unfollow": // 取消跟随 + if (core.isset(core.status.hero.followers)) { + var remove = false; + if (!core.isset(data.name) && core.status.hero.followers.length>0) { + core.status.hero.followers = []; + remove=true; + } + if (core.isset(data.name)) { + for (var i=0;i0) - return 0; + // 可以无视起点事件 + // if (core.getBlock(fromX,fromY)!=null||core.status.checkBlock.damage[13*fromX+fromY]>0) + // return 0; // BFS var visited=[], queue=[]; diff --git a/libs/utils.js b/libs/utils.js index 71da66d9..13a9f677 100644 --- a/libs/utils.js +++ b/libs/utils.js @@ -631,7 +631,7 @@ utils.prototype.hide = function (obj, speed, callback) { }, speed); } -utils.prototype.export = function (floorIds) { +utils.prototype._export = function (floorIds) { if (!core.isset(floorIds)) floorIds = [core.status.floorId]; else if (floorIds=='all') floorIds = core.clone(core.floorIds); else if (typeof floorIds == 'string') floorIds = [floorIds]; diff --git a/project/.DS_Store b/project/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..fb9d8dabd23d30fe765889aade905d707cfda5ca GIT binary patch literal 8196 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 bK9J~d2-124qHVZO00000NkvXXu0mjfx!;Ny literal 0 HcmV?d00001 diff --git a/更新说明.txt b/更新说明.txt index 8601bc08..8a977687 100644 --- a/更新说明.txt +++ b/更新说明.txt @@ -1,6 +1,7 @@ HTML5魔塔样板V2.3.2 启动服务的多开版本 √ +跟随效果 √ 怪物数据导出器 gif播放可随着分辨率自动放缩 √ 状态栏可随文字长度自动调整放缩 √ From 9c732edc1a2355999b6583fd6e0a453321121953 Mon Sep 17 00:00:00 2001 From: ckcz123 Date: Tue, 3 Jul 2018 18:58:45 +0800 Subject: [PATCH 11/12] Follow Effect --- .DS_Store | Bin 8196 -> 0 bytes .gitignore | 2 ++ project/.DS_Store | Bin 8196 -> 8196 bytes project/data.js | 2 +- project/images/A1.png | Bin 2929 -> 0 bytes 5 files changed, 3 insertions(+), 1 deletion(-) delete mode 100644 .DS_Store delete mode 100755 project/images/A1.png diff --git a/.DS_Store b/.DS_Store deleted file mode 100644 index 84ef737f38f56d65c8715e73a469c6493314db78..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8196 zcmeHMO-~a+7=A}8-L|6mk(A?JOgJ>PAc)48lmZ44MWhWSQG_nLv^7hYv|9?)N-v%~ z=n><|o8CD43;YNE0)K(r@tK)T)7=&mFGk`_GV{*vJkQL|^S-;oTZo8d>gE{H2oY(h z+z!Xk^eKFt*Pe30yK@beflstc7F8E)XVb8I(CUU#Kq;UUPzopolmh>P0ywjI(at#c z<)~_v0!o4ZQUU&b&{4Tfd$ujD_;jEVDFAE;w?#o8d4S;Po=tnUEv=wpPMJM0kIK9h zgGoBZbqtfVwlmSGPyukDM=;tw#oLhSUkYGO7oPX$MlFM zKjv0*rK#fKlf(MxW;mP29CgeToZ(GihA7soU}cN;&Rq3pfDuEJ3Ub-B0C}D-S4^joaq1PbCg#b?0Zof&k@ewtvpF%D(8uphwi0@C zYATh`CvM+qwIW*l=GcRUjqUw|=Bw80BkTx;d7pK+*b@R%jg9RCT_XXtuYmzt>lD z+tUZJQ;i<-2)B+Gzn(^ba1nO_zwwyx&8FpUEq^W!Eq?-@$Eg+YGu{dxKJ?;leRS=| z(?$S?c<|x0trP3`?a9{V{?Eac@Zm4D^x~4`x`T_ccddLXpYG2SYV38?fa=0sXv8TD ztImJKm?}zv^Q6FleAp45|IeNM`~P{`l6qF9fKuQO6=0#+>}&=kajN$r^HW|&-9Y7q p^~ zfG{R^2&*}9Dm!>XxC|T&+6;~iUJStu84TqNeGIc0)-dc~ILdH~;SIw#MixdfMkPjV gMiWL`MtepN#z4j(#t_Cx#;D0ZgimcgEaJ!w0QOi#f&c&j delta 272 zcmZp1XmQw3F35Oda)n@nhIn&^jzYD$xq*&?iLqI2EhmS#s-dlCLT+VM zbxm#EjLC{Z@{BVlI||tuii(L#h)N1c%ft%^CnY9lrx)dy=A}62=j0bT<&>tz3-A|b zQpO#jfS`rCTl3bLZlM|3%oLQ2YpEp@V*jGLx z6R0IPvnmy=G`Ju!IWsR^+5Q6q7;sLWD6HnC><|FqDm!>X7z`W?+6;~i!3;4Bg$xZ0 z(-{^stY^_jOL6EjGl~Mj6RHkj6sus3ZL41NW_U7 E0N(3OdjJ3c diff --git a/project/data.js b/project/data.js index 124f0593..6a33d6e3 100644 --- a/project/data.js +++ b/project/data.js @@ -5,7 +5,7 @@ data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d = "sample0", "sample1", "sample2", "MT0" ], "images" : [ - "bg.jpg", "A1.png" + "bg.jpg" ], "animates" : [ "hand", "sword", "zone", diff --git a/project/images/A1.png b/project/images/A1.png deleted file mode 100755 index 96902d3176100c8edbfef035d2cffa9800bfab05..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2929 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 bK9J~d2-124qHVZO00000NkvXXu0mjfx!;Ny From 5edac5d8a8dbad44451867f001fde64b1592ac4f Mon Sep 17 00:00:00 2001 From: ckcz123 Date: Tue, 3 Jul 2018 19:07:03 +0800 Subject: [PATCH 12/12] Remove .DS_Store from everywhere --- .gitignore | 2 +- project/.DS_Store | Bin 8196 -> 0 bytes 2 files changed, 1 insertion(+), 1 deletion(-) delete mode 100644 project/.DS_Store diff --git a/.gitignore b/.gitignore index 928ab591..94816db6 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,7 @@ .vscode *ce5eec52_2fa1_447b_8dad_764e267a7fab* -.DS_Store +**/.DS_Store # Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and Webstorm # Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 diff --git a/project/.DS_Store b/project/.DS_Store deleted file mode 100644 index cb91c1efb7910a4fcec45e24f7e255885de718a4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8196 zcmeHMO-~a+7=8y3wkWbF2og;;HYOwz0|E75jJ0YMJ%F@95VdT(Ls{LXs_%RhYfDcghQt{%^SqsTp4pwJnccnv0FZRWn*@B|H9_k z$%`iLA>>wY{sNvn_^4oQuJNNuXCb@Lo-fz@s$tFD+MiCaIoyo~_TjS2=g$ono&h*sz zt*wMLe0uWI%t~qF>E^So=daN$EJQzRpzTWT0xx*wtM zGchgAuvLy%Tt}a0%Yqgy&@e)5(JwB!Vd%0VO>aC1+&m3tS(?W&FA1iY4Hq&OQZbXf zQl{({d{#_e{;sS{rsnFwmiIMf4}-tH+4W4w z0?vxqFEnD?h$FsIn{6hxa^qI$kq?z}8@AZYjqGmZak-tnmW?kqa0A!8|IrUqj01ac zpi^l_ME-xh{rUeMu3)6b0pq}acYt(V%Unz2UDkgUG~ckuwH>T0SVa-MnnEeTMyBJ4 hG95?U`G+CK4pN0CrLm?Ed$5>;0BM71j06AFf#1V?RG$C<