坐标支持flag:xx
show和hide的多事件除外
This commit is contained in:
parent
ba5055c587
commit
3629c8485a
@ -325,12 +325,19 @@ helpUrl : https://ckcz123.github.io/mota-js/#/event?id=show-%e5%b0%86%e4%b8%80%e
|
|||||||
default : ["0","0","",500]
|
default : ["0","0","",500]
|
||||||
colour : this.eventColor
|
colour : this.eventColor
|
||||||
IdString_0 = IdString_0 && (', "floorId": "'+IdString_0+'"');
|
IdString_0 = IdString_0 && (', "floorId": "'+IdString_0+'"');
|
||||||
var pattern = /^([+-]?\d+)(,[+-]?\d+)*$/;
|
var pattern1 = /^flag:[0-9a-zA-Z_][0-9a-zA-Z_\-:]*$/;
|
||||||
if(!pattern.test(EvalString_0) || !pattern.test(EvalString_1))throw new Error('坐标格式错误,请右键点击帮助查看格式');
|
if(pattern1.test(EvalString_0) || pattern1.test(EvalString_1)){
|
||||||
EvalString_0=EvalString_0.split(',');
|
EvalString_0=MotaActionFunctions.PosString_pre(EvalString_0);
|
||||||
EvalString_1=EvalString_1.split(',');
|
EvalString_1=MotaActionFunctions.PosString_pre(EvalString_1);
|
||||||
if(EvalString_0.length!==EvalString_1.length)throw new Error('坐标格式错误,请右键点击帮助查看格式');
|
EvalString_0=[EvalString_0,EvalString_1]
|
||||||
for(var ii=0;ii<EvalString_0.length;ii++)EvalString_0[ii]='['+EvalString_0[ii]+','+EvalString_1[ii]+']';
|
} else {
|
||||||
|
var pattern2 = /^([+-]?\d+)(,[+-]?\d+)*$/;
|
||||||
|
if(!pattern2.test(EvalString_0) || !pattern2.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<EvalString_0.length;ii++)EvalString_0[ii]='['+EvalString_0[ii]+','+EvalString_1[ii]+']';
|
||||||
|
}
|
||||||
Int_0 = Int_0 ?(', "time": '+Int_0):'';
|
Int_0 = Int_0 ?(', "time": '+Int_0):'';
|
||||||
var code = '{"type": "show", "loc": ['+EvalString_0.join(',')+']'+IdString_0+''+Int_0+'},\n';
|
var code = '{"type": "show", "loc": ['+EvalString_0.join(',')+']'+IdString_0+''+Int_0+'},\n';
|
||||||
return code;
|
return code;
|
||||||
@ -347,13 +354,20 @@ default : ["","","",500]
|
|||||||
colour : this.eventColor
|
colour : this.eventColor
|
||||||
var floorstr = '';
|
var floorstr = '';
|
||||||
if (EvalString_0 && EvalString_1) {
|
if (EvalString_0 && EvalString_1) {
|
||||||
var pattern = /^([+-]?\d+)(,[+-]?\d+)*$/;
|
var pattern1 = /^flag:[0-9a-zA-Z_][0-9a-zA-Z_\-:]*$/;
|
||||||
if(!pattern.test(EvalString_0) || !pattern.test(EvalString_1))throw new Error('坐标格式错误,请右键点击帮助查看格式');
|
if(pattern1.test(EvalString_0) || pattern1.test(EvalString_1)){
|
||||||
|
EvalString_0=MotaActionFunctions.PosString_pre(EvalString_0);
|
||||||
|
EvalString_1=MotaActionFunctions.PosString_pre(EvalString_1);
|
||||||
|
EvalString_0=[EvalString_0,EvalString_1]
|
||||||
|
} else {
|
||||||
|
var pattern2 = /^([+-]?\d+)(,[+-]?\d+)*$/;
|
||||||
|
if(!pattern2.test(EvalString_0) || !pattern2.test(EvalString_1))throw new Error('坐标格式错误,请右键点击帮助查看格式');
|
||||||
EvalString_0=EvalString_0.split(',');
|
EvalString_0=EvalString_0.split(',');
|
||||||
EvalString_1=EvalString_1.split(',');
|
EvalString_1=EvalString_1.split(',');
|
||||||
if(EvalString_0.length!==EvalString_1.length)throw new Error('坐标格式错误,请右键点击帮助查看格式');
|
if(EvalString_0.length!==EvalString_1.length)throw new Error('坐标格式错误,请右键点击帮助查看格式');
|
||||||
for(var ii=0;ii<EvalString_0.length;ii++)EvalString_0[ii]='['+EvalString_0[ii]+','+EvalString_1[ii]+']';
|
for(var ii=0;ii<EvalString_0.length;ii++)EvalString_0[ii]='['+EvalString_0[ii]+','+EvalString_1[ii]+']';
|
||||||
floorstr = ', "loc": ['+EvalString_0.join(',')+']';
|
}
|
||||||
|
floorstr = ', "loc": ['+EvalString_0.join(',')+']';
|
||||||
}
|
}
|
||||||
IdString_0 = IdString_0 && (', "floorId": "'+IdString_0+'"');
|
IdString_0 = IdString_0 && (', "floorId": "'+IdString_0+'"');
|
||||||
Int_0 = Int_0 ?(', "time": '+Int_0):'';
|
Int_0 = Int_0 ?(', "time": '+Int_0):'';
|
||||||
@ -362,7 +376,7 @@ return code;
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
trigger_s
|
trigger_s
|
||||||
: '触发事件' 'x' Int ',' 'y' Int Newline
|
: '触发事件' 'x' PosString ',' 'y' PosString Newline
|
||||||
;
|
;
|
||||||
|
|
||||||
/* trigger_s
|
/* trigger_s
|
||||||
@ -370,7 +384,7 @@ tooltip : trigger: 立即触发另一个地点的事件
|
|||||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=trigger-%e7%ab%8b%e5%8d%b3%e8%a7%a6%e5%8f%91%e5%8f%a6%e4%b8%80%e4%b8%aa%e5%9c%b0%e7%82%b9%e7%9a%84%e4%ba%8b%e4%bb%b6
|
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=trigger-%e7%ab%8b%e5%8d%b3%e8%a7%a6%e5%8f%91%e5%8f%a6%e4%b8%80%e4%b8%aa%e5%9c%b0%e7%82%b9%e7%9a%84%e4%ba%8b%e4%bb%b6
|
||||||
default : [0,0]
|
default : [0,0]
|
||||||
colour : this.eventColor
|
colour : this.eventColor
|
||||||
var code = '{"type": "trigger", "loc": ['+Int_0+','+Int_1+']},\n';
|
var code = '{"type": "trigger", "loc": ['+PosString_0+','+PosString_1+']},\n';
|
||||||
return code;
|
return code;
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -399,7 +413,7 @@ return code;
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
setBlock_s
|
setBlock_s
|
||||||
: '转变图块为' Int 'x' EvalString? ',' 'y' EvalString? '楼层' IdString? Newline
|
: '转变图块为' Int 'x' PosString? ',' 'y' PosString? '楼层' IdString? Newline
|
||||||
;
|
;
|
||||||
|
|
||||||
/* setBlock_s
|
/* setBlock_s
|
||||||
@ -408,8 +422,8 @@ helpUrl : https://ckcz123.github.io/mota-js/#/event?id=setblock%ef%bc%9a%e8%ae%b
|
|||||||
colour : this.dataColor
|
colour : this.dataColor
|
||||||
default : [0,"","",""]
|
default : [0,"","",""]
|
||||||
var floorstr = '';
|
var floorstr = '';
|
||||||
if (EvalString_0 && EvalString_1) {
|
if (PosString_0 && PosString_1) {
|
||||||
floorstr = ', "loc": ['+EvalString_0+','+EvalString_1+']';
|
floorstr = ', "loc": ['+PosString_0+','+PosString_1+']';
|
||||||
}
|
}
|
||||||
IdString_0 = IdString_0 && (', "floorId": "'+IdString_0+'"');
|
IdString_0 = IdString_0 && (', "floorId": "'+IdString_0+'"');
|
||||||
var code = '{"type": "setBlock", "number":'+Int_0+floorstr+IdString_0+'},\n';
|
var code = '{"type": "setBlock", "number":'+Int_0+floorstr+IdString_0+'},\n';
|
||||||
@ -469,7 +483,7 @@ return code;
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
openDoor_s
|
openDoor_s
|
||||||
: '开门' 'x' Int ',' 'y' Int '楼层' IdString? Newline
|
: '开门' 'x' PosString ',' 'y' PosString '楼层' IdString? Newline
|
||||||
;
|
;
|
||||||
|
|
||||||
/* openDoor_s
|
/* openDoor_s
|
||||||
@ -478,12 +492,12 @@ helpUrl : https://ckcz123.github.io/mota-js/#/event?id=opendoor-%e5%bc%80%e9%97%
|
|||||||
default : [0,0,""]
|
default : [0,0,""]
|
||||||
colour : this.dataColor
|
colour : this.dataColor
|
||||||
IdString_0 = IdString_0 && (', "floorId": "'+IdString_0+'"');
|
IdString_0 = IdString_0 && (', "floorId": "'+IdString_0+'"');
|
||||||
var code = '{"type": "openDoor", "loc": ['+Int_0+','+Int_1+']'+IdString_0+'},\n';
|
var code = '{"type": "openDoor", "loc": ['+PosString_0+','+PosString_1+']'+IdString_0+'},\n';
|
||||||
return code;
|
return code;
|
||||||
*/
|
*/
|
||||||
|
|
||||||
changeFloor_s
|
changeFloor_s
|
||||||
: '楼层切换' IdString 'x' Number ',' 'y' Number '朝向' DirectionEx_List '动画时间' Int? Newline
|
: '楼层切换' IdString 'x' PosString ',' 'y' PosString '朝向' DirectionEx_List '动画时间' Int? Newline
|
||||||
;
|
;
|
||||||
|
|
||||||
/* changeFloor_s
|
/* changeFloor_s
|
||||||
@ -493,12 +507,12 @@ default : ["MT1",0,0,null,500]
|
|||||||
colour : this.dataColor
|
colour : this.dataColor
|
||||||
DirectionEx_List_0 = DirectionEx_List_0 && (', "direction": "'+DirectionEx_List_0+'"');
|
DirectionEx_List_0 = DirectionEx_List_0 && (', "direction": "'+DirectionEx_List_0+'"');
|
||||||
Int_0 = Int_0 ?(', "time": '+Int_0):'';
|
Int_0 = Int_0 ?(', "time": '+Int_0):'';
|
||||||
var code = '{"type": "changeFloor", "floorId": "'+IdString_0+'", "loc": ['+Number_0+', '+Number_1+']'+DirectionEx_List_0+Int_0+' },\n';
|
var code = '{"type": "changeFloor", "floorId": "'+IdString_0+'", "loc": ['+PosString_0+', '+PosString_1+']'+DirectionEx_List_0+Int_0+' },\n';
|
||||||
return code;
|
return code;
|
||||||
*/
|
*/
|
||||||
|
|
||||||
changePos_0_s
|
changePos_0_s
|
||||||
: '位置切换' 'x' Number ',' 'y' Number '朝向' DirectionEx_List Newline
|
: '位置切换' 'x' PosString ',' 'y' PosString '朝向' DirectionEx_List Newline
|
||||||
;
|
;
|
||||||
|
|
||||||
/* changePos_0_s
|
/* changePos_0_s
|
||||||
@ -507,7 +521,7 @@ helpUrl : https://ckcz123.github.io/mota-js/#/event?id=changepos-%e5%bd%93%e5%89
|
|||||||
default : [0,0,null]
|
default : [0,0,null]
|
||||||
colour : this.dataColor
|
colour : this.dataColor
|
||||||
DirectionEx_List_0 = DirectionEx_List_0 && (', "direction": "'+DirectionEx_List_0+'"');
|
DirectionEx_List_0 = DirectionEx_List_0 && (', "direction": "'+DirectionEx_List_0+'"');
|
||||||
var code = '{"type": "changePos", "loc": ['+Number_0+','+Number_1+']'+DirectionEx_List_0+'},\n';
|
var code = '{"type": "changePos", "loc": ['+PosString_0+','+PosString_1+']'+DirectionEx_List_0+'},\n';
|
||||||
return code;
|
return code;
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -559,7 +573,9 @@ helpUrl : https://ckcz123.github.io/mota-js/#/event?id=animate%ef%bc%9a%e6%98%be
|
|||||||
default : ["zone","hero"]
|
default : ["zone","hero"]
|
||||||
colour : this.soundColor
|
colour : this.soundColor
|
||||||
if (EvalString_0) {
|
if (EvalString_0) {
|
||||||
if(/hero|([+-]?\d+),([+-]?\d+)/.test(EvalString_0)) {
|
if(/^flag:[0-9a-zA-Z_][0-9a-zA-Z_\-]*,flag:[0-9a-zA-Z_][0-9a-zA-Z_\-]*$/.test(EvalString_0)) {
|
||||||
|
EvalString_0=', "loc": ["'+EvalString_0.split(',').join('","')+'"]';
|
||||||
|
} else if (/hero|([+-]?\d+),([+-]?\d+)/.test(EvalString_0)) {
|
||||||
if(EvalString_0.indexOf(',')!==-1)EvalString_0='['+EvalString_0+']';
|
if(EvalString_0.indexOf(',')!==-1)EvalString_0='['+EvalString_0+']';
|
||||||
else EvalString_0='"'+EvalString_0+'"';
|
else EvalString_0='"'+EvalString_0+'"';
|
||||||
EvalString_0 = ', "loc": '+EvalString_0;
|
EvalString_0 = ', "loc": '+EvalString_0;
|
||||||
@ -572,7 +588,7 @@ return code;
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
showImage_0_s
|
showImage_0_s
|
||||||
: '显示图片' EvalString '起点像素位置' 'x' Number 'y' Number Newline
|
: '显示图片' EvalString '起点像素位置' 'x' PosString 'y' PosString Newline
|
||||||
;
|
;
|
||||||
|
|
||||||
/* showImage_0_s
|
/* showImage_0_s
|
||||||
@ -580,7 +596,7 @@ tooltip : showImage:显示图片
|
|||||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=showimage%ef%bc%9a%e6%98%be%e7%a4%ba%e5%9b%be%e7%89%87
|
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=showimage%ef%bc%9a%e6%98%be%e7%a4%ba%e5%9b%be%e7%89%87
|
||||||
default : ["bg.jpg",0,0]
|
default : ["bg.jpg",0,0]
|
||||||
colour : this.printColor
|
colour : this.printColor
|
||||||
var code = '{"type": "showImage", "name": "'+EvalString_0+'", "loc": ['+Number_0+','+Number_1+']},\n';
|
var code = '{"type": "showImage", "name": "'+EvalString_0+'", "loc": ['+PosString_0+','+PosString_1+']},\n';
|
||||||
return code;
|
return code;
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -700,7 +716,7 @@ return code;
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
move_s
|
move_s
|
||||||
: '移动事件' 'x' EvalString? ',' 'y' EvalString? '动画时间' Int? '消失时无动画时间' Bool BGNL? StepString Newline
|
: '移动事件' 'x' PosString? ',' 'y' PosString? '动画时间' Int? '消失时无动画时间' Bool BGNL? StepString Newline
|
||||||
;
|
;
|
||||||
|
|
||||||
/* move_s
|
/* move_s
|
||||||
@ -709,8 +725,8 @@ helpUrl : https://ckcz123.github.io/mota-js/#/event?id=move-%e8%ae%a9%e6%9f%90%e
|
|||||||
default : ["","",500,null,"上右3下2左上左2"]
|
default : ["","",500,null,"上右3下2左上左2"]
|
||||||
colour : this.eventColor
|
colour : this.eventColor
|
||||||
var floorstr = '';
|
var floorstr = '';
|
||||||
if (EvalString_0 && EvalString_1) {
|
if (PosString_0 && PosString_1) {
|
||||||
floorstr = ', "loc": ['+EvalString_0+','+EvalString_1+']';
|
floorstr = ', "loc": ['+PosString_0+','+PosString_1+']';
|
||||||
}
|
}
|
||||||
Int_0 = Int_0 ?(', "time": '+Int_0):'';
|
Int_0 = Int_0 ?(', "time": '+Int_0):'';
|
||||||
var code = '{"type": "move"'+floorstr+''+Int_0+', "steps": '+JSON.stringify(StepString_0)+', "immediateHide": '+Bool_0+'},\n';
|
var code = '{"type": "move"'+floorstr+''+Int_0+', "steps": '+JSON.stringify(StepString_0)+', "immediateHide": '+Bool_0+'},\n';
|
||||||
@ -1006,6 +1022,10 @@ RawEvalString
|
|||||||
: 'sdeirughvuiyasdbe'+ //为了被识别为复杂词法规则
|
: 'sdeirughvuiyasdbe'+ //为了被识别为复杂词法规则
|
||||||
;
|
;
|
||||||
|
|
||||||
|
PosString
|
||||||
|
: 'sdeirughvuiyasbde'+ //为了被识别为复杂词法规则
|
||||||
|
;
|
||||||
|
|
||||||
Stair_List
|
Stair_List
|
||||||
: '坐标'|'上楼'|'下楼'
|
: '坐标'|'上楼'|'下楼'
|
||||||
/*Stair_List ['loc','upFloor','downFloor']*/;
|
/*Stair_List ['loc','upFloor','downFloor']*/;
|
||||||
@ -1252,7 +1272,7 @@ ActionParser.prototype.parseAction = function() {
|
|||||||
this.parseAction();
|
this.parseAction();
|
||||||
break;
|
break;
|
||||||
case "show": // 显示
|
case "show": // 显示
|
||||||
if (typeof data.loc[0] == 'number' && typeof data.loc[1] == 'number')
|
if (!(data.loc[0] instanceof Array))
|
||||||
data.loc = [data.loc];
|
data.loc = [data.loc];
|
||||||
var x_str=[],y_str=[];
|
var x_str=[],y_str=[];
|
||||||
data.loc.forEach(function (t) {
|
data.loc.forEach(function (t) {
|
||||||
@ -1264,7 +1284,7 @@ ActionParser.prototype.parseAction = function() {
|
|||||||
break;
|
break;
|
||||||
case "hide": // 消失
|
case "hide": // 消失
|
||||||
data.loc=data.loc||[];
|
data.loc=data.loc||[];
|
||||||
if (typeof data.loc[0] == 'number' && typeof data.loc[1] == 'number')
|
if (!(data.loc[0] instanceof Array))
|
||||||
data.loc = [data.loc];
|
data.loc = [data.loc];
|
||||||
var x_str=[],y_str=[];
|
var x_str=[],y_str=[];
|
||||||
data.loc.forEach(function (t) {
|
data.loc.forEach(function (t) {
|
||||||
@ -1513,6 +1533,12 @@ MotaActionFunctions.IdString_pre = function(IdString){
|
|||||||
return IdString;
|
return IdString;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
MotaActionFunctions.PosString_pre = function(PosString){
|
||||||
|
if (!PosString || /^-?\d+$/.test(PosString)) return PosString;
|
||||||
|
if (!(/^flag:[0-9a-zA-Z_][0-9a-zA-Z_\-:]*$/.test(PosString)))throw new Error(PosString+'中包含了0-9 a-z A-Z _ - :之外的字符,或者是没有以flag: 开头');
|
||||||
|
return '"'+PosString+'"';
|
||||||
|
}
|
||||||
|
|
||||||
MotaActionFunctions.StepString_pre = function(StepString){
|
MotaActionFunctions.StepString_pre = function(StepString){
|
||||||
//StepString='上右3下2左上左2'
|
//StepString='上右3下2左上左2'
|
||||||
var route = StepString.replace(/上/g,'U').replace(/下/g,'D').replace(/左/g,'L').replace(/右/g,'R');
|
var route = StepString.replace(/上/g,'U').replace(/下/g,'D').replace(/左/g,'L').replace(/右/g,'R');
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user