From 7de3964525a27a3e001416e23efb88cb17b4c255 Mon Sep 17 00:00:00 2001 From: oc Date: Tue, 9 Jul 2019 17:20:07 +0800 Subject: [PATCH] setBlock multiple locs --- _server/MotaAction.g4 | 60 ++++++++++++++++++++++++++++++------ _server/editor_blockly.js | 16 ++++++++-- _server/editor_unsorted_1.js | 5 ++- _server/editor_unsorted_3.js | 2 +- libs/events.js | 12 +++++--- 5 files changed, 76 insertions(+), 19 deletions(-) diff --git a/_server/MotaAction.g4 b/_server/MotaAction.g4 index 27bacb0f..4deab014 100644 --- a/_server/MotaAction.g4 +++ b/_server/MotaAction.g4 @@ -756,7 +756,7 @@ return code; */; setBlock_s - : '转变图块为' EvalString 'x' PosString? ',' 'y' PosString? '楼层' IdString? Newline + : '转变图块为' EvalString 'x' EvalString? ',' 'y' EvalString? '楼层' IdString? Newline /* setBlock_s @@ -765,8 +765,21 @@ helpUrl : https://h5mota.com/games/template/_docs/#/event?id=setblock%EF%BC%9A%E colour : this.mapColor default : ["yellowDoor","","",""] var floorstr = ''; -if (PosString_0 && PosString_1) { - floorstr = ', "loc": ['+PosString_0+','+PosString_1+']'; +if (EvalString_1 && EvalString_2) { + var pattern1 = MotaActionFunctions.pattern.id; + if(pattern1.test(EvalString_1) || pattern1.test(EvalString_2)){ + EvalString_1=MotaActionFunctions.PosString_pre(EvalString_1); + EvalString_2=MotaActionFunctions.PosString_pre(EvalString_2); + EvalString_1=[EvalString_1,EvalString_2] + } else { + var pattern2 = /^([+-]?\d+)(,[+-]?\d+)*$/; + if(!pattern2.test(EvalString_1) || !pattern2.test(EvalString_2))throw new Error('坐标格式错误,请右键点击帮助查看格式'); + EvalString_1=EvalString_1.split(','); + EvalString_2=EvalString_2.split(','); + if(EvalString_1.length!==EvalString_2.length)throw new Error('坐标格式错误,请右键点击帮助查看格式'); + for(var ii=0;ii