From 33325dc902e726591787db48d73aa662174aba08 Mon Sep 17 00:00:00 2001 From: oc Date: Mon, 25 Jun 2018 01:02:31 +0800 Subject: [PATCH 1/4] MoveBlock & move hero --- _server/blockly/MotaAction.g4 | 52 +++++++++++++++++++++ _server/editor_blockly.js | 2 + docs/event.md | 42 +++++++++++++++++ libs/control.js | 63 ++++++++++++++++++++++++- libs/core.js | 10 ++++ libs/events.js | 28 +++++++++++ libs/maps.js | 88 ++++++++++++++++++++++++++++++++++- libs/ui.js | 2 + 8 files changed, 285 insertions(+), 2 deletions(-) diff --git a/_server/blockly/MotaAction.g4 b/_server/blockly/MotaAction.g4 index 29c55899..039a2f99 100644 --- a/_server/blockly/MotaAction.g4 +++ b/_server/blockly/MotaAction.g4 @@ -215,6 +215,8 @@ action | setWeather_s | move_s | moveHero_s + | jump_s + | jumpHero_s | playBgm_s | pauseBgm_s | resumeBgm_s @@ -797,6 +799,45 @@ var code = '{"type": "moveHero"'+Int_0+', "steps": '+JSON.stringify(StepString_0 return code; */; +jump_s + : '跳跃事件' '起始 x' PosString? ',' 'y' PosString? '终止 x' PosString? ',' 'y' PosString? BGNL? '动画时间' Int? '消失时无动画时间' Bool Newline + + +/* jump_s +tooltip : jump: 让某个NPC/怪物跳跃 +helpUrl : https://ckcz123.github.io/mota-js/#/event?id=jump%EF%BC%9A%E8%AE%A9%E6%9F%90%E4%B8%AANPC%2F%E6%80%AA%E7%89%A9%E8%B7%B3%E8%B7%83 +default : ["","","","",500,null] +colour : this.eventColor +var floorstr = ''; +if (PosString_0 && PosString_1) { + floorstr += ', "from": ['+PosString_0+','+PosString_1+']'; +} +if (PosString_2 && PosString_3) { + floorstr += ', "to": ['+PosString_2+','+PosString_3+']'; +} +Int_0 = Int_0 ?(', "time": '+Int_0):''; +var code = '{"type": "jump"'+floorstr+''+Int_0+', "immediateHide": '+Bool_0+'},\n'; +return code; +*/; + +jumpHero_s + : '跳跃勇士' 'x' PosString? ',' 'y' PosString? '动画时间' Int? Newline + + +/* jumpHero_s +tooltip : jumpHero: 跳跃勇士 +helpUrl : https://ckcz123.github.io/mota-js/#/event?id=jumpHero%EF%BC%9A%E8%B7%B3%E8%B7%83%E5%8B%87%E5%A3%AB +default : ["","",500] +colour : this.dataColor +var floorstr = ''; +if (PosString_0 && PosString_1) { + floorstr = ', "loc": ['+PosString_0+','+PosString_1+']'; +} +Int_0 = Int_0 ?(', "time": '+Int_0):''; +var code = '{"type": "jumpHero"'+floorstr+Int_0+'},\n'; +return code; +*/; + playBgm_s : '播放背景音乐' EvalString Newline @@ -1439,6 +1480,17 @@ ActionParser.prototype.parseAction = function() { this.next = MotaActionBlocks['moveHero_s'].xmlText([ data.time||0,this.StepString(data.steps),this.next]); break; + case "jump": // 跳跃事件 + data.from=data.from||[]; + data.to=data.to||[]; + this.next = MotaActionBlocks['jump_s'].xmlText([ + data.from[0]||'',data.from[1]||'',data.to[0]||'',data.to[1]||'',data.time||0,data.immediateHide,this.next]); + break; + case "jumpHero": // 跳跃勇士 + data.loc=data.loc||[] + this.next = MotaActionBlocks['jumpHero_s'].xmlText([ + data.loc[0]||'',data.loc[1]||'',data.time||0,this.next]); + break; case "changeFloor": // 楼层转换 this.next = MotaActionBlocks['changeFloor_s'].xmlText([ data.floorId,data.loc[0],data.loc[1],data.direction,this.time||0,this.next]); diff --git a/_server/editor_blockly.js b/_server/editor_blockly.js index b05bb3d7..c547ebef 100644 --- a/_server/editor_blockly.js +++ b/_server/editor_blockly.js @@ -85,6 +85,7 @@ editor_blockly = function () { MotaActionBlocks['input_s'].xmlText(), MotaActionBlocks['update_s'].xmlText(), MotaActionBlocks['moveHero_s'].xmlText(), + MotaActionBlocks['jumpHero_s'].xmlText(), MotaActionBlocks['changeFloor_s'].xmlText(), MotaActionBlocks['changePos_0_s'].xmlText(), MotaActionBlocks['changePos_1_s'].xmlText(), @@ -103,6 +104,7 @@ editor_blockly = function () { MotaActionBlocks['hide_s'].xmlText(), MotaActionBlocks['trigger_s'].xmlText(), MotaActionBlocks['move_s'].xmlText(), + MotaActionBlocks['jump_s'].xmlText(), MotaActionBlocks['disableShop_s'].xmlText(), '', MotaActionBlocks['sleep_s'].xmlText(), diff --git a/docs/event.md b/docs/event.md index a1ccef79..814a2ff7 100644 --- a/docs/event.md +++ b/docs/event.md @@ -833,6 +833,48 @@ move完毕后移动的NPC/怪物一定会消失,只不过可以通过immediate 不过值得注意的是,用这种方式移动勇士的过程中将无视一切地形,无视一切事件,中毒状态也不会扣血。 +### jump:让某个NPC/怪物跳跃 + +如果我们需要移动某个NPC或怪物,可以使用`{"type": "jump"}`。 + +下面是该事件常见的写法: + +``` js +"x,y": [ // 实际执行的事件列表 + {"type": "jump", "from": [3,6], "to": [2,1], "time": 750, "immediateHide": true}, +] +``` + +from为需要跳跃的事件位置。可以省略,如果省略则移动本事件。 + +to为要跳跃到的坐标。可以省略,如果省略则跳跃到当前坐标。 + +time选项必须指定,为全程跳跃所需要用到的时间。 + +immediateHide为一个可选项,同上代表该跳跃完毕后是否立刻消失。如果该项指定了并为true,则跳跃完毕后直接消失,否则以动画效果消失。 + +值得注意的是,当调用jump事件时,实际上是使事件脱离了原始地点。 + +为了避免冲突,同move事件一样规定:jump事件会自动调用该点的hide事件。 + +如果是本地跳跃,需要在跳跃完毕后再启用事件。 + +### jumpHero:跳跃勇士 + +如果我们需要跳跃勇士,可以使用`{"type": "jumpHero"}`。 + +下面是该事件常见的写法: + +``` js +"x,y": [ // 实际执行的事件列表 + {"type": "jump", "loc": [3,6], "time": 750}, +] +``` + +loc为目标坐标,可以忽略表示原地跳跃(请注意是原地跳跃而不是跳跃到当前事件点)。 + +time选项为该跳跃所需要用到的时间。 + ### playBgm:播放背景音乐 使用playBgm可以播放一个背景音乐。 diff --git a/libs/control.js b/libs/control.js index 4d71c13d..709c3d55 100644 --- a/libs/control.js +++ b/libs/control.js @@ -290,9 +290,11 @@ control.prototype.resetStatus = function(hero, hard, floorId, route, maps, value if (core.isset(values)) core.values = core.clone(values); + else core.values = core.clone(core.data.values); if (core.isset(flags)) core.flags = core.clone(flags); + else core.flags = core.clone(core.data.flags); core.events.initGame(); @@ -850,6 +852,64 @@ control.prototype.eventMoveHero = function(steps, time, callback) { }, time / 8 / core.status.replay.speed) } +////// 勇士跳跃事件 ////// +control.prototype.jumpHero = function (ex, ey, time, callback) { + var sx=core.status.hero.loc.x, sy=core.status.hero.loc.y; + if (!core.isset(ex)) ex=sx; + if (!core.isset(ey)) ey=sy; + + time = time || 500; + core.clearMap('ui', 0, 0, 416, 416); + core.setAlpha('ui', 1.0); + core.status.replay.animate=true; + + var dx = ex-sx, dy=ey-sy, distance = Math.round(Math.sqrt(dx * dx + dy * dy)); + var jump_peak = 6 + distance, jump_count = jump_peak * 2; + var currx = sx, curry = sy; + + var heroIcon = core.material.icons.hero[core.getHeroLoc('direction')]; + var status = 'stop'; + var height = core.material.icons.hero.height; + + var drawX = function() { + return currx * 32; + } + var drawY = function() { + var ret = curry * 32; + if(jump_count >= jump_peak){ + var n = jump_count - jump_peak; + }else{ + var n = jump_peak - jump_count; + } + return ret - (jump_peak * jump_peak - n * n) / 2; + } + var updateJump = function() { + jump_count--; + currx = (currx * jump_count + ex) / (jump_count + 1.0); + curry = (curry * jump_count + ey) / (jump_count + 1.0); + } + + 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); } + else { + clearInterval(animate); + core.setHeroLoc('x', ex); + core.setHeroLoc('y', ey); + core.drawHero(); + core.status.replay.animate=false; + if (core.isset(callback)) callback(); + } + + }, time / 16 / core.status.replay.speed); + + + +} + ////// 每移动一格后执行的事件 ////// control.prototype.moveOneStep = function() { core.status.hero.steps++; @@ -1391,8 +1451,9 @@ control.prototype.updateFg = function () { else if (damage < hero_hp * 2 / 3) color = '#FFFF00'; else if (damage < hero_hp) color = '#FF7F00'; else color = '#FF0000'; - damage = core.formatBigNumber(damage); + if (core.enemys.hasSpecial(core.material.enemys[id], 19)) + damage += "+"; } core.setFillStyle('fg', '#000000'); diff --git a/libs/core.js b/libs/core.js index c080e875..2015a97b 100644 --- a/libs/core.js +++ b/libs/core.js @@ -463,6 +463,11 @@ core.prototype.eventMoveHero = function(steps, time, callback) { core.control.eventMoveHero(steps, time, callback); } +////// 使用事件让勇士跳跃。这个函数将不会触发任何事件 ////// +core.prototype.jumpHero = function (ex,ey,time,callback) { + core.control.jumpHero(ex,ey,time,callback); +} + ////// 每移动一格后执行的事件 ////// core.prototype.moveOneStep = function() { core.control.moveOneStep(); @@ -663,6 +668,11 @@ core.prototype.moveBlock = function(x,y,steps,time,immediateHide,callback) { core.maps.moveBlock(x,y,steps,time,immediateHide,callback) } +////// 显示跳跃某块的动画,达到{"type":"jump"}的效果 ////// +core.prototype.jumpBlock = function(sx,sy,ex,ey,time,immediateHide,callback) { + core.maps.jumpBlock(sx,sy,ex,ey,time,immediateHide,callback); +} + ////// 显示/隐藏某个块时的动画效果 ////// core.prototype.animateBlock = function (loc,type,time,callback) { core.maps.animateBlock(loc,type,time,callback) diff --git a/libs/events.js b/libs/events.js index add5938c..9f639825 100644 --- a/libs/events.js +++ b/libs/events.js @@ -432,6 +432,34 @@ events.prototype.doAction = function() { core.events.doAction(); }); break; + case "jump": // 跳跃事件 + { + var sx=x, sy=y, ex=x,ey=y; + if (core.isset(data.from)) { + sx=core.calValue(data.from[0]); + sy=core.calValue(data.from[1]); + } + if (core.isset(data.to)) { + ex=core.calValue(data.to[0]); + ey=core.calValue(data.to[1]); + } + core.jumpBlock(sx,sy,ex,ey,data.time,data.immediateHide,function() { + core.events.doAction(); + }); + break; + } + case "jumpHero": + { + var ex=core.status.hero.loc.x, ey=core.status.hero.loc.y; + if (core.isset(data.loc)) { + ex=core.calValue(data.loc[0]); + ey=core.calValue(data.loc[1]); + } + core.jumpHero(ex,ey,data.time,function() { + core.events.doAction(); + }); + break; + } case "changeFloor": // 楼层转换 { var heroLoc = {"x": core.calValue(data.loc[0]), "y": core.calValue(data.loc[1])}; diff --git a/libs/maps.js b/libs/maps.js index a35ce7e7..8d200918 100644 --- a/libs/maps.js +++ b/libs/maps.js @@ -558,7 +558,7 @@ maps.prototype.moveBlock = function(x,y,steps,time,immediateHide,callback) { core.clearMap('animate', 0, 0, 416, 416); - var block = core.getBlock(x,y,core.status.floorId,false); + var block = core.getBlock(x,y); if (block==null) {// 不存在 if (core.isset(callback)) callback(); return; @@ -650,6 +650,92 @@ maps.prototype.moveBlock = function(x,y,steps,time,immediateHide,callback) { }, time / 16 / core.status.replay.speed); } +////// 显示跳跃某块的动画,达到{"type":"jump"}的效果 ////// +maps.prototype.jumpBlock = function(sx,sy,ex,ey,time,immediateHide,callback) { + time = time || 500; + core.status.replay.animate=true; + core.clearMap('animate', 0, 0, 416, 416); + var block = core.getBlock(sx,sy); + if (block==null) { + if (core.isset(callback)) callback(); + return; + } + + // 需要删除该块 + core.removeBlock(sx,sy); + core.clearMap('ui', 0, 0, 416, 416); + core.setAlpha('ui', 1.0); + + block=block.block; + var blockIcon = core.material.icons[block.event.cls][block.event.id]; + var blockImage = core.material.images[block.event.cls]; + var height = block.event.height || 32; + + var opacityVal = 1; + core.setOpacity('animate', opacityVal); + core.canvas.animate.drawImage(blockImage, 0, blockIcon * height, 32, height, block.x * 32, block.y * 32 +32 - height, 32, height); + + core.playSound('jump.ogg'); + + var dx = ex-sx, dy=ey-sy, distance = Math.round(Math.sqrt(dx * dx + dy * dy)); + var jump_peak = 6 + distance, jump_count = jump_peak * 2; + var currx = sx, curry = sy; + + var drawX = function() { + return currx * 32; + } + + var drawY = function() { + var ret = curry * 32; + if(jump_count >= jump_peak){ + var n = jump_count - jump_peak; + }else{ + var n = jump_peak - jump_count; + } + return ret - (jump_peak * jump_peak - n * n) / 2; + } + + var updateJump = function() { + jump_count--; + currx = (currx * jump_count + ex) / (jump_count + 1.0); + curry = (curry * jump_count + ey) / (jump_count + 1.0); + } + + var animateValue = block.event.animate || 1; + var animateCurrent = 0; + var animateTime = 0; + var animate=window.setInterval(function() { + + animateTime += time / 16 / core.status.replay.speed; + if (animateTime >= core.values.animateSpeed) { + animateCurrent++; + animateTime = 0; + if (animateCurrent >= animateValue) animateCurrent = 0; + } + + if (jump_count>0) { + core.clearMap('animate', drawX(), drawY()-height+32, 32, height); + updateJump(); + core.canvas.animate.drawImage(blockImage, animateCurrent * 32, blockIcon * height, 32, height, drawX(), drawY()-height+32, 32, height); + } + else { + if (immediateHide) opacityVal=0; + else opacityVal -= 0.06; + core.setOpacity('animate', opacityVal); + core.clearMap('animate', drawX(), drawY()-height+32, 32, height); + core.canvas.animate.drawImage(blockImage, animateCurrent * 32, blockIcon * height, 32, height, drawX(), drawY()-height+32, 32, height); + if (opacityVal<=0) { + clearInterval(animate); + core.clearMap('animate', 0, 0, 416, 416); + core.setOpacity('animate', 1); + core.status.replay.animate=false; + if (core.isset(callback)) callback(); + } + } + + }, time / 16 / core.status.replay.speed); +} + ////// 显示/隐藏某个块时的动画效果 ////// maps.prototype.animateBlock = function (loc,type,time,callback) { if (type!='hide') type='show'; diff --git a/libs/ui.js b/libs/ui.js index 5cfedd53..b5eb301d 100644 --- a/libs/ui.js +++ b/libs/ui.js @@ -1305,6 +1305,8 @@ ui.prototype.drawBook = function (index) { if (damage<=0) color = '#00FF00'; damage = core.formatBigNumber(damage); + if (core.enemys.hasSpecial(core.material.enemys[enemy.id], 19)) + damage += "+"; } core.fillText('ui', damage, damageOffset, 62 * i + 50, color, 'bold 13px Verdana'); From e318c26e651e0f7661aefbe0a5dd455cab2a7782 Mon Sep 17 00:00:00 2001 From: oc Date: Mon, 25 Jun 2018 01:09:49 +0800 Subject: [PATCH 2/4] Jump --- libs/control.js | 2 ++ libs/events.js | 2 ++ libs/maps.js | 2 +- project/data.js | 2 +- project/sounds/jump.mp3 | Bin 0 -> 5895 bytes 5 files changed, 6 insertions(+), 2 deletions(-) create mode 100644 project/sounds/jump.mp3 diff --git a/libs/control.js b/libs/control.js index 709c3d55..f1b2c5b6 100644 --- a/libs/control.js +++ b/libs/control.js @@ -863,6 +863,8 @@ control.prototype.jumpHero = function (ex, ey, time, callback) { core.setAlpha('ui', 1.0); core.status.replay.animate=true; + core.playSound('jump.mp3'); + var dx = ex-sx, dy=ey-sy, distance = Math.round(Math.sqrt(dx * dx + dy * dy)); var jump_peak = 6 + distance, jump_count = jump_peak * 2; var currx = sx, curry = sy; diff --git a/libs/events.js b/libs/events.js index 9f639825..d69b7a4c 100644 --- a/libs/events.js +++ b/libs/events.js @@ -85,12 +85,14 @@ events.prototype.startGame = function (hard) { if (core.flags.showBattleAnimateConfirm) { // 是否提供“开启战斗动画”的选择项 core.status.event.selection = core.flags.battleAnimate ? 0 : 1; core.ui.drawConfirmBox("你想开启战斗动画吗?\n之后可以在菜单栏中开启或关闭。\n(强烈建议新手开启此项)", function () { + core.data.flags.battleAnimate = true; core.flags.battleAnimate = true; core.setLocalStorage('battleAnimate', true); core.startGame(hard); core.utils.__init_seed(); core.events.setInitData(hard); }, function () { + core.data.flags.battleAnimate = false; core.flags.battleAnimate = false; core.setLocalStorage('battleAnimate', false); core.startGame(hard); diff --git a/libs/maps.js b/libs/maps.js index 8d200918..cdfd6b36 100644 --- a/libs/maps.js +++ b/libs/maps.js @@ -675,7 +675,7 @@ maps.prototype.jumpBlock = function(sx,sy,ex,ey,time,immediateHide,callback) { core.setOpacity('animate', opacityVal); core.canvas.animate.drawImage(blockImage, 0, blockIcon * height, 32, height, block.x * 32, block.y * 32 +32 - height, 32, height); - core.playSound('jump.ogg'); + core.playSound('jump.mp3'); var dx = ex-sx, dy=ey-sy, distance = Math.round(Math.sqrt(dx * dx + dy * dy)); var jump_peak = 6 + distance, jump_count = jump_peak * 2; diff --git a/project/data.js b/project/data.js index c6cab035..6a33d6e3 100644 --- a/project/data.js +++ b/project/data.js @@ -14,7 +14,7 @@ data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d = 'bgm.mp3' ], "sounds" : [ - 'floor.mp3', 'attack.mp3', 'door.mp3', 'item.mp3', 'zone.mp3' + 'floor.mp3', 'attack.mp3', 'door.mp3', 'item.mp3', 'zone.mp3', 'jump.mp3' ], "startBackground" : "bg.jpg", "startLogoStyle" : "color: black", diff --git a/project/sounds/jump.mp3 b/project/sounds/jump.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..b8ce8f78d80ab18b7ed744c6772e14333e7fc32e GIT binary patch literal 5895 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 EADPUu8UO$Q literal 0 HcmV?d00001 From db364b26d1fec7e5a0878daa954b5227791f94a9 Mon Sep 17 00:00:00 2001 From: oc Date: Mon, 25 Jun 2018 01:33:50 +0800 Subject: [PATCH 3/4] Jump shoes --- docs/api.md | 8 ++++---- libs/control.js | 8 ++++---- libs/core.js | 8 ++++---- libs/events.js | 2 +- libs/items.js | 1 + project/icons.js | 3 ++- project/images/items.png | Bin 33221 -> 33137 bytes project/items.js | 11 +++++++++-- project/maps.js | 1 + 9 files changed, 26 insertions(+), 16 deletions(-) diff --git a/docs/api.md b/docs/api.md index 77c03049..e2a9fd86 100644 --- a/docs/api.md +++ b/docs/api.md @@ -138,12 +138,12 @@ localStorage core.js实际上是所有API的入口(路由),核心API的实现在其他几个文件中,core.js主要进行转发操作。 -core.nextX() -获得勇士面向的下一个位置的x坐标 +core.nextX(n) +获得勇士面向的第n个位置的x坐标,n可以省略默认为1(即正前方) -core.nextY() -获得勇士面向的下一个位置的y坐标 +core.nextY(n) +获得勇士面向的第n个位置的y坐标,n可以省略默认为1(即正前方) core.openDoor(id, x, y, needKey, callback) [异步] diff --git a/libs/control.js b/libs/control.js index f1b2c5b6..33bcab03 100644 --- a/libs/control.js +++ b/libs/control.js @@ -990,25 +990,25 @@ control.prototype.getHeroLoc = function (itemName) { } ////// 获得勇士面对位置的x坐标 ////// -control.prototype.nextX = function() { +control.prototype.nextX = function(n) { var scan = { 'up': {'x': 0, 'y': -1}, 'left': {'x': -1, 'y': 0}, 'down': {'x': 0, 'y': 1}, 'right': {'x': 1, 'y': 0} }; - return core.getHeroLoc('x')+scan[core.getHeroLoc('direction')].x; + return core.getHeroLoc('x')+scan[core.getHeroLoc('direction')].x*(n||1); } ////// 获得勇士面对位置的y坐标 ////// -control.prototype.nextY = function () { +control.prototype.nextY = function (n) { var scan = { 'up': {'x': 0, 'y': -1}, 'left': {'x': -1, 'y': 0}, 'down': {'x': 0, 'y': 1}, 'right': {'x': 1, 'y': 0} }; - return core.getHeroLoc('y')+scan[core.getHeroLoc('direction')].y; + return core.getHeroLoc('y')+scan[core.getHeroLoc('direction')].y*(n||1); } ////// 更新领域、夹击、阻击的伤害地图 ////// diff --git a/libs/core.js b/libs/core.js index 2015a97b..ed43bd8a 100644 --- a/libs/core.js +++ b/libs/core.js @@ -499,13 +499,13 @@ core.prototype.getHeroLoc = function (itemName) { } ////// 获得勇士面对位置的x坐标 ////// -core.prototype.nextX = function() { - return core.control.nextX(); +core.prototype.nextX = function(n) { + return core.control.nextX(n); } ////// 获得勇士面对位置的y坐标 ////// -core.prototype.nextY = function () { - return core.control.nextY(); +core.prototype.nextY = function (n) { + return core.control.nextY(n); } /////////// 自动行走 & 行走控制 END /////////// diff --git a/libs/events.js b/libs/events.js index d69b7a4c..06ec8646 100644 --- a/libs/events.js +++ b/libs/events.js @@ -850,7 +850,7 @@ events.prototype.getNextItem = function() { ////// 获得某个物品 ////// events.prototype.getItem = function (itemId, itemNum, itemX, itemY, callback) { - // core.getItemAnimate(itemId, itemNum, itemX, itemY); + itemNum=itemNum||1; core.playSound('item.mp3'); var itemCls = core.material.items[itemId].cls; core.items.getItemEffect(itemId, itemNum); diff --git a/libs/items.js b/libs/items.js index 6e0e0665..82ee9204 100644 --- a/libs/items.js +++ b/libs/items.js @@ -123,6 +123,7 @@ items.prototype.removeItem = function (itemId) { ////// 增加某个物品的个数 ////// items.prototype.addItem = function (itemId, itemNum) { + itemNum=itemNum||1; var itemData = core.material.items[itemId]; var itemCls = itemData.cls; if (itemCls == 'items') return; diff --git a/project/icons.js b/project/icons.js index b7461654..2d7e35df 100644 --- a/project/icons.js +++ b/project/icons.js @@ -235,7 +235,8 @@ icons_4665ee12_3a1f_44a4_bea3_0fccba634dc1 = 'knife': 42, 'moneyPocket': 46, 'shoes': 47, - 'hammer': 48 + 'hammer': 48, + 'jumpShoes': 49 }, 'autotile': { // 所有的Autotile列表;后面的index简单取0即可 'autotile': 0, diff --git a/project/images/items.png b/project/images/items.png index 626b63b7887928f45bb0a22400355481e73fa8e3..cce829ccbbc72f4a2d3783fb8b770ededfd430fd 100644 GIT binary patch literal 33137 zcmcG#byOSi`!1LeNRUvpxE2buxKoNG#f!HThoS|FyF-Gz7N-y>1=^y;-KDs+xD|JI z-SqqW?cKe5&$;L9p0j`C%uLQ?<}=T0&-=WSa5WVbbcfE3Q#gcvxPpuw16wa0f6#Yyjx=|^f8WuypA&f@TlY82iRj@Xa)cv z!3xrF4G+UTUr6TTwYq!8$z*NQFiw_OP#?ZcRB4gy<#++Yh>2&b0@X4FR{Qlr%@FMdh%icoev$K$J7HbPD z|4Gt?XEWd80Hs^EHqOKGR8`*Sxc;Q}&UDf8Qg%0DvOZ4)%vOkV#Ko_s;fPY~LUIum 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
40Jiaf|uvWZ62}lcpL*3+r%amT5 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.getBlock(core.nextX(2), core.nextY(2))==null" } } \ No newline at end of file diff --git a/project/maps.js b/project/maps.js index c410b9d0..afaaaa8c 100644 --- a/project/maps.js +++ b/project/maps.js @@ -80,6 +80,7 @@ maps_90f36752_8815_4be8_b32b_d7fad1d0542e = '66':{'cls': 'items', 'id': 'sword0'}, // 空剑 '67':{'cls': 'items', 'id': 'shield0'}, // 空盾 '68':{'cls': 'items', 'id': 'lifeWand'}, // 生命魔杖 + '69':{'cls': 'items', 'id': 'jumpShoes'}, // 生命魔杖 ////////////////////////// 门、楼梯、传送点部分 ////////////////////////// From ad0549e048ecf8043fa0fa8c2994a3ad6af47ed0 Mon Sep 17 00:00:00 2001 From: oc Date: Mon, 25 Jun 2018 01:36:25 +0800 Subject: [PATCH 4/4] Jump shoes --- project/items.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/items.js b/project/items.js index 94d4f2d3..7ef11789 100644 --- a/project/items.js +++ b/project/items.js @@ -343,6 +343,6 @@ items_296f5d02_12fd_4166_a7c1_b5e830c9ee3a = "shiled5": "true", "shield5": "true", "lifeWand": "true", - "jumpShoes": "var nx=core.nextX(2),ny=core.nextY(2);nx>=0&&nx<=12&&ny>=0&&ny<=12&&core.getBlock(core.nextX(2), core.nextY(2))==null" + "jumpShoes": "var nx=core.nextX(2),ny=core.nextY(2);nx>=0&&nx<=12&&ny>=0&&ny<=12&&core.getBlock(nx,ny)==null" } } \ No newline at end of file