From 89bd795cf0da23180828701e3cb5d516de3e028e Mon Sep 17 00:00:00 2001 From: YouWei Zhao Date: Tue, 20 Feb 2018 20:45:18 +0800 Subject: [PATCH] =?UTF-8?q?blockly=E4=B8=AD=E6=94=AF=E6=8C=81show=20hide?= =?UTF-8?q?=E5=A4=9A=E4=BA=8B=E4=BB=B6=E4=BB=A5=E5=8F=8Atype:input?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _server/blockly/MotaAction.g4 | 60 ++++++++++++++++++++++++++++++----- _server/editor_blockly.js | 8 ++--- project/comment.js | 5 ++- 3 files changed, 58 insertions(+), 15 deletions(-) diff --git a/_server/blockly/MotaAction.g4 b/_server/blockly/MotaAction.g4 index a350fc9c..c9b936d5 100644 --- a/_server/blockly/MotaAction.g4 +++ b/_server/blockly/MotaAction.g4 @@ -187,6 +187,7 @@ action | win_s | lose_s | if_s + | input_s | choices_s | function_s | pass_s @@ -279,17 +280,23 @@ return code; */ show_s - : '显示事件' 'x' Int ',' 'y' Int '楼层' IdString? '动画时间' Int? Newline + : '显示事件' 'x' EvalString ',' 'y' EvalString '楼层' IdString? '动画时间' Int? Newline ; /* show_s -tooltip : show: 将一个禁用事件启用,楼层和动画时间可不填 +tooltip : show: 将禁用事件启用,楼层和动画时间可不填,xy可用逗号分隔表示多个点 helpUrl : https://ckcz123.github.io/mota-js/#/event?id=show-%e5%b0%86%e4%b8%80%e4%b8%aa%e7%a6%81%e7%94%a8%e4%ba%8b%e4%bb%b6%e5%90%af%e7%94%a8 default : [0,0,"",500] colour : this.eventColor IdString_0 = IdString_0 && (', "floorId": "'+IdString_0+'"'); -Int_2 = Int_2 ?(', "time": '+Int_2):''; -var code = '{"type": "show", "loc": ['+Int_0+','+Int_1+']'+IdString_0+''+Int_2+'},\n'; +var pattern = /^(\d|1[0-2])(,\d|1[0-2])*$/; +if(!pattern.test(EvalString_0) || !pattern.test(EvalString_1))throw new Error('坐标格式错误,请右键点击帮助查看格式'); +EvalString_0=EvalString_0.split(','); +EvalString_1=EvalString_1.split(','); +if(EvalString_0.length!==EvalString_1.length)throw new Error('坐标格式错误,请右键点击帮助查看格式'); +for(var ii=0;ii', MotaActionBlocks['setValue_s'].xmlText(), + MotaActionBlocks['input_s'].xmlText(), MotaActionBlocks['update_s'].xmlText(), MotaActionBlocks['moveHero_s'].xmlText(), MotaActionBlocks['changeFloor_s'].xmlText(), @@ -154,12 +155,7 @@ initscript=String.raw` } ] },'event'), - '', - MotaActionFunctions.actionParser.parseList([ - {"type": "setValue", "name": "flag:inputMsg", "value": "请输入密码"}, - {"type": "function", "function": "function(){core.setFlag('input',prompt(core.getFlag('inputMsg','请输入字符串'),'xxx')||'')}"}, - {"type": "if", "condition": 'flag:input == "123456"',"true": [],"false": []}, - ]), + ], } var toolboxgap = '' diff --git a/project/comment.js b/project/comment.js index 545b6af8..23761025 100644 --- a/project/comment.js +++ b/project/comment.js @@ -18,13 +18,16 @@ comment_c456ea59_6018_45ef_8bcc_211a24c627dc = 'def': '防御力', 'money': '金币', 'experience': '经验', - 'special': '特殊属性\n\n0:无,1:先攻,2:魔攻,3:坚固,4:2连击,\n5:3连击,6:n连击,7:破甲,8:反击,9:净化,\n10:模仿,11:吸血,12:中毒,13:衰弱,14:诅咒,\n15:领域,16:夹击,17:仇恨,18:阻击,19:自爆,\n20:无敌\n\n多个属性例如用[1,4,11]表示先攻2连击吸血\n模仿怪的攻防设为0就好\n$leaf(true)$end', + 'special': '特殊属性\n\n0:无,1:先攻,2:魔攻,3:坚固,4:2连击,\n5:3连击,6:n连击,7:破甲,8:反击,9:净化,\n10:模仿,11:吸血,12:中毒,13:衰弱,14:诅咒,\n15:领域,16:夹击,17:仇恨,18:阻击,19:自爆,\n20:无敌,21:退化,22:固伤\n\n多个属性例如用[1,4,11]表示先攻2连击吸血\n模仿怪的攻防设为0就好\n$leaf(true)$end', 'value': '特殊属性的数值\n领域怪需要加value表示领域伤害的数值\n吸血怪需要在后面添加value代表吸血比例', 'zoneSquare': '领域怪zoneSquare代表是否九宫格伤害', 'range': 'range可选,代表领域伤害的范围;不加默认为1\n$range((thiseval==~~thiseval && thiseval>0)||thiseval==null)$end', 'bomb':' 加入 "bomb": false 代表该怪物不可被炸弹或圣锤炸掉\n$select({\"values\":[true,false]})$end', 'point': 'point可以在打败怪物后进行加点,详见文档说明\n$range((thiseval==~~thiseval && thiseval>0)||thiseval==null)$end', 'n': '多连击需要在后面指定n代表是几连击\n$range((thiseval==~~thiseval && thiseval>0)||thiseval==null)$end', + 'atkValue':'退化时勇士下降的攻击力点数\n$range(thiseval==~~thiseval||thiseval==null)$end', + 'defValue':'退化时勇士下降的防御力点数\n$range(thiseval==~~thiseval||thiseval==null)$end', + 'damage':'战前扣血的点数\n$range(thiseval==~~thiseval||thiseval==null)$end' }, "enemys_template" : {'name': '新敌人', 'hp': 0, 'atk': 0, 'def': 0, 'money': 0, 'experience': 0, 'special': 0}, "floors" : {