From 5049299e4e576f32cf398c9fc9fbf45701ffaac2 Mon Sep 17 00:00:00 2001 From: oc Date: Mon, 18 Dec 2017 23:27:53 +0800 Subject: [PATCH 1/6] Update PS Tool --- 常用工具/便捷PS工具.exe | Bin 0 -> 18432 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 常用工具/便捷PS工具.exe diff --git a/常用工具/便捷PS工具.exe b/常用工具/便捷PS工具.exe new file mode 100644 index 0000000000000000000000000000000000000000..901a53a323b49a0928b404f6b171d3656c4fe126 GIT binary patch literal 18432 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 Date: Mon, 18 Dec 2017 23:59:28 +0800 Subject: [PATCH 2/6] Update PS Tool --- drawMapGUI.html | 2 +- 常用工具/便捷PS工具.exe | Bin 18432 -> 18432 bytes 更新内容.txt | 6 ++++-- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/drawMapGUI.html b/drawMapGUI.html index 574817a8..c59246dd 100644 --- a/drawMapGUI.html +++ b/drawMapGUI.html @@ -608,7 +608,7 @@ } filestr+='],\n' } - printf('
'+filestr+'\n

已复制到剪贴板

'+'


'); + printf('
'+filestr+'\n

已复制到剪贴板

'+'


'); poutTmp.select(); document.execCommand("Copy"); } diff --git a/常用工具/便捷PS工具.exe b/常用工具/便捷PS工具.exe index 901a53a323b49a0928b404f6b171d3656c4fe126..551c89a11cc5b23cf5e86ed322e7091829ad31de 100644 GIT binary patch delta 922 zcmY+DYe*Df6o%h(#@%&hS8-EwwaqlmTWOj`*k*P^vLLkWLRw%%7t=B*%5_1vHlh;3 zW#~o`ieWb>V}4{mBIyPZm_^W!NFv0Dh>9RIC_6LmpFa4WdEavz_-4LP7lpd0>m-+s zMoy>GNaV)m_>s|6vAI^uX4o)X z0ff>45JxfJFV#K}PetCVFC;Ri-bEvRs;@==Q46RR+1gv7 z8Lvf&=7(GAMTy2dG zqh879Fm@=3!X{y_M6L);y^MXrcq*Zdw2#`To8q{gPaDC!o$dr<&P3|t0~@NY*QX_Y zeRIoed@t`No87_Fk`3Kg$n$~H(M5IUw`18}`H!3BhBPk)*85laJsXmC*#~Z}>D*oR uC4Fp(kBzSt4vOoKUKq1&NT@fZqFIm}s4K;nP0AWw6$B#)vIYw{9Yb8lqL`VD;(Gq^qKaw7UtabbL$zq;qzS#u%TPs$@#rqpN^a4G zbCR9e#2nz4^>e!U88=oiVo4OS<}wjqo2QT52cxWMH3sr*{0!SuNK(f zPm;+@T1tL~$QWD5J*|Im!MBr7<2)bUc|M#c{fGVWm5vLMyS`kGI#lftezkyRIVIn>Dm$JIB!kQP<=J3^EfX!awk6wWgL0~C_M6#xJL diff --git a/更新内容.txt b/更新内容.txt index 0c504483..e25c74af 100644 --- a/更新内容.txt +++ b/更新内容.txt @@ -1,8 +1,10 @@ 新增:可视化地图编辑工具 +新增:便捷P图工具 √ 新增:支持Autotile √ -新增:怪物支持双属性 √ +新增:怪物支持多属性 √ 新增:单向箭头、感叹号 √ -新增:怪物P图工具 +新增:勇士支持移动;其他事件支持移动 快捷道具使用:1破2炸3飞;读档改为D键 √ 更多的默认素材;无需P图,直接替换即可 √ 破甲、反击、净化等效果放全局变量 √ +部分Bug修复 √ From f919f7bffd39a359a79b741f765c7f612ff66b4a Mon Sep 17 00:00:00 2001 From: oc Date: Tue, 19 Dec 2017 23:07:38 +0800 Subject: [PATCH 3/6] Custom Event: Hero Move --- libs/core.js | 175 ++++++++++++++++++++++------------------- libs/enemys.js | 2 +- libs/events.js | 9 +++ libs/floors/sample1.js | 2 +- libs/ui.js | 2 + 更新内容.txt | 2 +- 6 files changed, 109 insertions(+), 83 deletions(-) diff --git a/libs/core.js b/libs/core.js index db2560fc..9532feb7 100644 --- a/libs/core.js +++ b/libs/core.js @@ -1049,86 +1049,29 @@ core.prototype.setHeroMoveInterval = function (direction, x, y, callback) { } core.status.heroMoving = true; var moveStep = 0; + var scan = { + 'up': {'x': 0, 'y': -1}, + 'left': {'x': -1, 'y': 0}, + 'down': {'x': 0, 'y': 1}, + 'right': {'x': 1, 'y': 0} + }; core.interval.heroMoveInterval = window.setInterval(function () { - switch (direction) { - case 'up': - moveStep -= 4; - if (moveStep == -4 || moveStep == -8 || moveStep == -12 || moveStep == -16) { - core.drawHero(direction, x, y, 'leftFoot', 0, moveStep); - } - else if (moveStep == -20 || moveStep == -24 || moveStep == -28 || moveStep == -32) { - core.drawHero(direction, x, y, 'rightFoot', 0, moveStep); - } - if (moveStep == -32) { - core.setHeroLoc('y', '--'); - core.moveOneStep(); - if (core.status.heroStop) { - core.drawHero(direction, x, y - 1, 'stop'); - } - if (core.isset(callback)) { - callback(); - } - } - break; - case 'left': - moveStep -= 4; - if (moveStep == -4 || moveStep == -8 || moveStep == -12 || moveStep == -16) { - core.drawHero(direction, x, y, 'leftFoot', moveStep); - } - else if (moveStep == -20 || moveStep == -24 || moveStep == -28 || moveStep == -32) { - core.drawHero(direction, x, y, 'rightFoot', moveStep); - } - if (moveStep == -32) { - core.setHeroLoc('x', '--'); - core.moveOneStep(); - if (core.status.heroStop) { - core.drawHero(direction, x - 1, y, 'stop'); - } - if (core.isset(callback)) { - callback(); - } - } - break; - case 'down': - moveStep+=4; - if(moveStep == 4 || moveStep == 8 || moveStep == 12 || moveStep == 16) { - core.drawHero(direction, x, y, 'leftFoot', 0, moveStep); - } - else if(moveStep == 20 || moveStep == 24 ||moveStep == 28 || moveStep == 32) { - core.drawHero(direction, x, y, 'rightFoot', 0, moveStep); - } - if (moveStep == 32) { - core.setHeroLoc('y', '++'); - core.moveOneStep(); - if (core.status.heroStop) { - core.drawHero(direction, x, y + 1, 'stop'); - } - if (core.isset(callback)) { - callback(); - } - } - break; - case 'right': - moveStep+=4; - if(moveStep == 4 || moveStep == 8 || moveStep == 12 || moveStep == 16) { - core.drawHero(direction, x, y, 'leftFoot', moveStep); - } - else if(moveStep == 20 || moveStep == 24 ||moveStep == 28 || moveStep == 32) { - core.drawHero(direction, x, y, 'rightFoot', moveStep); - } - if (moveStep == 32) { - core.setHeroLoc('x', '++'); - core.moveOneStep(); - if (core.status.heroStop) { - core.drawHero(direction, x + 1, y, 'stop'); - } - if (core.isset(callback)) { - callback(); - } - } - break; + moveStep++; + if (moveStep<=4) { + core.drawHero(direction, x, y, 'leftFoot', 4*moveStep*scan[direction].x, 4*moveStep*scan[direction].y); } - }, 10); + else if (moveStep<=8) { + core.drawHero(direction, x, y, 'rightFoot', 4*moveStep*scan[direction].x, 4*moveStep*scan[direction].y); + } + if (moveStep==8) { + core.setHeroLoc('x', x+scan[direction].x); + core.setHeroLoc('y', y+scan[direction].y); + core.moveOneStep(); + if (core.status.heroStop) + core.drawHero(direction, core.getHeroLoc('x'), core.getHeroLoc('y'), 'stop'); + if (core.isset(callback)) callback(); + } + }, 12.5); } core.prototype.setHeroMoveTriggerInterval = function () { @@ -1242,6 +1185,66 @@ core.prototype.moveHero = function (direction) { core.status.heroStop = false; } +core.prototype.eventMoveHero = function(steps, time, callback) { + + time = time || 100; + + core.clearMap('ui', 0, 0, 416, 416); + core.setAlpha('ui', 1.0); + + // 要运行的轨迹:将steps展开 + var moveSteps=[]; + steps.forEach(function (e) { + if (typeof e=="string") { + moveSteps.push(e); + } + else { + if (!core.isset(e.value)) { + moveSteps.push(e.direction) + } + else { + for (var i=0;i= core.values.animateSpeed * 2 / animateValue) { + animateCurrent++; + animateTime = 0; + if (animateCurrent>=animateValue) animateCurrent=0; + } + // 已经移动完毕,消失 if (moveSteps.length==0) { if (immediateHide) opacityVal=0; else opacityVal -= 0.06; core.setOpacity('data', opacityVal); core.clearMap('data', nowX, nowY, 32, 32); - core.canvas.data.drawImage(blockImage, 0, blockIcon * 32, 32, 32, nowX, nowY, 32, 32); + core.canvas.data.drawImage(blockImage, animateCurrent * 32, blockIcon * 32, 32, 32, nowX, nowY, 32, 32); if (opacityVal<=0) { clearInterval(animate); core.loadCanvas('data'); @@ -1900,7 +1915,7 @@ core.prototype.moveBlock = function(x,y,steps,time,immediateHide,callback) { nowY+=scan[moveSteps[0]].y*2; core.clearMap('data', nowX-32, nowY-32, 96, 96); // 绘制 - core.canvas.data.drawImage(blockImage, 0, blockIcon * 32, 32, 32, nowX, nowY, 32, 32); + core.canvas.data.drawImage(blockImage, animateCurrent * 32, blockIcon * 32, 32, 32, nowX, nowY, 32, 32); if (step==16) { // 该移动完毕,继续 step=0; diff --git a/libs/enemys.js b/libs/enemys.js index f9e0d716..04611d30 100644 --- a/libs/enemys.js +++ b/libs/enemys.js @@ -76,7 +76,7 @@ enemys.prototype.getEnemys = function (enemyId) { } enemys.prototype.hasSpecial = function (special, test) { - return parseInt(special/1000) == test || special % 1000 == test; + return special!=0 && (special%100 == test || this.hasSpecial(parseInt(special/100), test)); } enemys.prototype.getSpecialText = function (enemyId) { diff --git a/libs/events.js b/libs/events.js index b00e6e0e..c90a3cfa 100644 --- a/libs/events.js +++ b/libs/events.js @@ -239,10 +239,19 @@ events.prototype.doAction = function() { else this.doAction(); break; case "move": // 移动事件 + if (core.isset(data.loc)) { + x=data.loc[0]; + y=data.loc[1]; + } core.moveBlock(x,y,data.steps,data.time,data.immediateHide,function() { core.events.doAction(); }) break; + case "moveHero": + core.eventMoveHero(data.steps,data.time,function() { + core.events.doAction(); + }); + break; case "changeFloor": // 楼层转换 var heroLoc = {"x": data.loc[0], "y": data.loc[1]}; if (core.isset(data.direction)) heroLoc.direction=data.direction; diff --git a/libs/floors/sample1.js b/libs/floors/sample1.js index afb288c3..74cfca5f 100644 --- a/libs/floors/sample1.js +++ b/libs/floors/sample1.js @@ -31,7 +31,7 @@ main.floors.sample1 = { "\t[样板提示]本层楼将会对各类事件进行介绍。", "左边是一个仿50层的陷阱做法,上方是商店、快捷商店的使用方法,右上是一个典型的杀怪开门的例子,右下是各类可能的NPC事件。", "本样板目前支持的事件列表大致有:\ntext: 显示一段文字(比如你现在正在看到的)\nshow: 使一个事件有效(可见、可被交互)\nhide: 使一个事件失效(不可见、不可被交互)\ntrigger: 触发另一个地点的事件\nbattle: 强制和某怪物战斗\nopenDoor: 无需钥匙开门(例如机关门、暗墙)\nopenShop: 打开一个全局商店\ndisableShop: 禁用一个全局商店\nchangeFloor: 传送勇士到某层某位置\nchangePos: 传送勇士到当层某位置;转向\nsetFg: 更改画面色调", - "move: 移动事件效果\nplaySound: 播放某个音频\nif: 条件判断\nchoices: 提供选项\nsetValue: 设置勇士属性道具,或某个变量/flag\nupdate: 更新状态栏和地图显伤\nwin: 获得胜利(游戏通关)\nlose: 游戏失败\nsleep: 等待多少毫秒\nexit: 立刻结束当前事件\nrevisit: 立刻结束事件并重新触发\nfunction: 自定义JS脚本\n更多支持的事件还在编写中,欢迎您宝贵的意见。", + "move: 移动事件效果\nmoveHero: 移动勇士效果\nplaySound: 播放某个音频\nif: 条件判断\nchoices: 提供选项\nsetValue: 设置勇士属性道具,或某个变量/flag\nupdate: 更新状态栏和地图显伤\nwin: 获得胜利(游戏通关)\nlose: 游戏失败\nsleep: 等待多少毫秒\nexit: 立刻结束当前事件\nrevisit: 立刻结束事件并重新触发\nfunction: 自定义JS脚本\n更多支持的事件还在编写中,欢迎您宝贵的意见。", "有关各事件的样例,可参见本层一些NPC的写法。\n所有事件样例本层都有介绍。\n\n一个自定义事件处理完后,需要调用{\"type\": \"hide\"}该事件才不会再次出现。", {"type": "hide"} ], diff --git a/libs/ui.js b/libs/ui.js index d70c7551..71c7484c 100644 --- a/libs/ui.js +++ b/libs/ui.js @@ -425,6 +425,8 @@ ui.prototype.drawBattleAnimate = function(monsterId, callback) { core.fillRect('ui', left, top, right, bottom, '#000000'); core.setAlpha('ui', 1); core.strokeRect('ui', left - 1, top - 1, right + 1, bottom + 1, '#FFFFFF', 2); + core.setAlpha('data', 1); + core.setOpacity('data', 1); core.status.boxAnimateObjs = []; core.setBoxAnimate(); diff --git a/更新内容.txt b/更新内容.txt index e25c74af..3fe1c151 100644 --- a/更新内容.txt +++ b/更新内容.txt @@ -3,7 +3,7 @@ 新增:支持Autotile √ 新增:怪物支持多属性 √ 新增:单向箭头、感叹号 √ -新增:勇士支持移动;其他事件支持移动 +新增:勇士支持移动;其他事件支持移动 √ 快捷道具使用:1破2炸3飞;读档改为D键 √ 更多的默认素材;无需P图,直接替换即可 √ 破甲、反击、净化等效果放全局变量 √ From 62b1ecb9abb6585ed4cc4fbe95778d54c4a20901 Mon Sep 17 00:00:00 2001 From: oc Date: Wed, 20 Dec 2017 00:22:50 +0800 Subject: [PATCH 4/6] Update PS Tool --- 常用工具/便捷PS工具.exe | Bin 18432 -> 18432 bytes 更新内容.txt | 3 ++- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/常用工具/便捷PS工具.exe b/常用工具/便捷PS工具.exe index 551c89a11cc5b23cf5e86ed322e7091829ad31de..ffe1447f72fba0418f22212a990428fb16033258 100644 GIT binary patch delta 199 zcmZpez}PT>aY6_4CmqX)-KBgzu?!6U3_y^;z#zanQBjzufq{Vs$PbBOV33)-(N1S_ zB;#(zmd&C}ts;z5C(jmhXFR(3v6vyJ00GaGB>&5d^KjEq|*ciNk7K4fpl0RT5FIGz9i delta 177 zcmZpez}PT>aY6^P@e}ij-KBgTu?!5s3_y^;z#zanQBjzufq{Vs$Pb8NV33)-(N1S_ zB;#(zhRvc(ts;yQC(jmhXFRz1v6vyJS>U;<(pMh1o)pk+CebM3?# WnKrlDu`@DmnA~e`x_O_y69)iFAuq%L diff --git a/更新内容.txt b/更新内容.txt index 3fe1c151..204a5f44 100644 --- a/更新内容.txt +++ b/更新内容.txt @@ -1,3 +1,4 @@ +新增:本地服务器 新增:可视化地图编辑工具 新增:便捷P图工具 √ 新增:支持Autotile √ @@ -7,4 +8,4 @@ 快捷道具使用:1破2炸3飞;读档改为D键 √ 更多的默认素材;无需P图,直接替换即可 √ 破甲、反击、净化等效果放全局变量 √ -部分Bug修复 √ +细节优化和Bug修复 √ From 633e248404f167a192124831995e6239e9bd1575 Mon Sep 17 00:00:00 2001 From: YouWei Zhao Date: Wed, 20 Dec 2017 12:46:00 +0800 Subject: [PATCH 5/6] bug fix MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 添加更多的鼠标滚轮支持 --- libs/core.js | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/libs/core.js b/libs/core.js index 9532feb7..42f79220 100644 --- a/libs/core.js +++ b/libs/core.js @@ -597,7 +597,7 @@ core.prototype.onup = function () { core.canvas.ui.clearRect(0, 0, 416,416); core.canvas.ui.restore(); core.onclick(posx,posy,stepPostfix); - //posx,posy是之前寻路的目标点,stepPostfix是后续的移动 + //posx,posy是寻路的目标点,stepPostfix是后续的移动 } } @@ -626,7 +626,7 @@ core.prototype.getClickLoc = function (x, y) { } core.prototype.onclick = function (x, y, stepPostfix) { - // console.log("Click: (" + x + "," + y + ")"); + console.log("Click: (" + x + "," + y + ")"); // 非游戏屏幕内 if (x<0 || y<0 || x>12 || y>12) return; @@ -735,10 +735,26 @@ core.prototype.onclick = function (x, y, stepPostfix) { } core.prototype.onmousewheel = function (direct) { + // 向下滚动是 -1 ,向上是 1 + // 楼层飞行器 if (core.status.lockControl && core.status.event.id == 'fly') { - if (direct==-1) core.ui.drawFly(core.status.event.data-1); if (direct==1) core.ui.drawFly(core.status.event.data+1); + if (direct==-1) core.ui.drawFly(core.status.event.data-1); + return; + } + + // 怪物手册 + if (core.status.event.id == 'book') { + if (direct==1) core.ui.drawEnemyBook(core.status.event.data - 1); + if (direct==-1) core.ui.drawEnemyBook(core.status.event.data + 1); + return; + } + + // 存读档 + if (core.status.event.id == 'save' || core.status.event.id == 'load') { + if (direct==1) core.ui.drawSLPanel(core.status.event.data - 1); + if (direct==-1) core.ui.drawSLPanel(core.status.event.data + 1); return; } } From 99a9bdd327d0ebd2829c56ce61cd45c7dc8ac900 Mon Sep 17 00:00:00 2001 From: YouWei Zhao Date: Wed, 20 Dec 2017 12:59:38 +0800 Subject: [PATCH 6/6] =?UTF-8?q?=E6=8A=8A=E9=BC=A0=E6=A0=87=E4=B8=AD?= =?UTF-8?q?=E9=94=AE=E7=BB=91=E5=AE=9A=E4=B8=BAESC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/main.js b/main.js index 4e7bcec1..2305a77f 100644 --- a/main.js +++ b/main.js @@ -224,6 +224,10 @@ document.ontouchstart = function() { main.dom.data.onmousedown = function (e) { try { e.stopPropagation(); + if(e.button==1){// 把鼠标中键绑定为ESC + core.keyUp(27); + return; + } var loc = main.core.getClickLoc(e.clientX, e.clientY); if (loc == null) return; var x = parseInt(loc.x / loc.size), y = parseInt(loc.y / loc.size);