openDoor event needKey
This commit is contained in:
parent
7e8db1edad
commit
7436c54c67
@ -905,20 +905,21 @@ return code;
|
|||||||
*/;
|
*/;
|
||||||
|
|
||||||
openDoor_s
|
openDoor_s
|
||||||
: '开门' 'x' PosString? ',' 'y' PosString? '楼层' IdString? Newline
|
: '开门' 'x' PosString? ',' 'y' PosString? '楼层' IdString? '需要钥匙' Bool? Newline
|
||||||
|
|
||||||
|
|
||||||
/* openDoor_s
|
/* openDoor_s
|
||||||
tooltip : openDoor: 开门,楼层可不填表示当前层
|
tooltip : openDoor: 开门,楼层可不填表示当前层
|
||||||
helpUrl : https://h5mota.com/games/template/docs/#/event?id=opendoor%EF%BC%9A%E5%BC%80%E9%97%A8
|
helpUrl : https://h5mota.com/games/template/docs/#/event?id=opendoor%EF%BC%9A%E5%BC%80%E9%97%A8
|
||||||
default : ["","",""]
|
default : ["","","",false]
|
||||||
colour : this.dataColor
|
colour : this.dataColor
|
||||||
IdString_0 = IdString_0 && (', "floorId": "'+IdString_0+'"');
|
IdString_0 = IdString_0 && (', "floorId": "'+IdString_0+'"');
|
||||||
var floorstr = '';
|
var floorstr = '';
|
||||||
if (PosString_0 && PosString_1) {
|
if (PosString_0 && PosString_1) {
|
||||||
floorstr = ', "loc": ['+PosString_0+','+PosString_1+']';
|
floorstr = ', "loc": ['+PosString_0+','+PosString_1+']';
|
||||||
}
|
}
|
||||||
var code = '{"type": "openDoor"'+floorstr+IdString_0+'},\n';
|
Bool_0 = Bool_0 ? ', "needKey": true' : '';
|
||||||
|
var code = '{"type": "openDoor"'+floorstr+IdString_0+Bool_0+'},\n';
|
||||||
return code;
|
return code;
|
||||||
*/;
|
*/;
|
||||||
|
|
||||||
@ -2283,7 +2284,7 @@ ActionParser.prototype.parseAction = function() {
|
|||||||
case "openDoor": // 开一个门, 包括暗墙
|
case "openDoor": // 开一个门, 包括暗墙
|
||||||
data.loc=data.loc||['','']
|
data.loc=data.loc||['','']
|
||||||
this.next = MotaActionBlocks['openDoor_s'].xmlText([
|
this.next = MotaActionBlocks['openDoor_s'].xmlText([
|
||||||
data.loc[0],data.loc[1],data.floorId||'',this.next]);
|
data.loc[0],data.loc[1],data.floorId||'',data.needKey||false,this.next]);
|
||||||
break;
|
break;
|
||||||
case "useItem": // 使用道具
|
case "useItem": // 使用道具
|
||||||
this.next = MotaActionBlocks['useItem_s'].xmlText([
|
this.next = MotaActionBlocks['useItem_s'].xmlText([
|
||||||
|
|||||||
@ -842,6 +842,7 @@ name是可选的,代表目标行走图的文件名。
|
|||||||
"x,y": [ // 实际执行的事件列表
|
"x,y": [ // 实际执行的事件列表
|
||||||
{"type": "openDoor", "loc": [3,6], "floorId": "MT1"}, // 打开MT1层的[3,6]位置的门
|
{"type": "openDoor", "loc": [3,6], "floorId": "MT1"}, // 打开MT1层的[3,6]位置的门
|
||||||
{"type": "openDoor", "loc": [3,6]}, // 如果是本层则可省略floorId
|
{"type": "openDoor", "loc": [3,6]}, // 如果是本层则可省略floorId
|
||||||
|
{"type": "openDoor", "loc": [3,6], "needKey": true} // 打开此门需要钥匙
|
||||||
]
|
]
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -851,6 +852,10 @@ loc指定门的坐标,floorId指定门所在的楼层ID。如果是当前层
|
|||||||
|
|
||||||
如果loc所在的点既不是门也不是墙壁,则忽略本事件。
|
如果loc所在的点既不是门也不是墙壁,则忽略本事件。
|
||||||
|
|
||||||
|
needKey是可选的,如果设置为true则需要钥匙才能打开此门。如果没有钥匙则跳过此事件。
|
||||||
|
|
||||||
|
!> needKey仅对当前楼层开门有效!跨楼层的门仍然不需要钥匙即可打开,如有需求请自行判定。
|
||||||
|
|
||||||
### changeFloor:楼层切换
|
### changeFloor:楼层切换
|
||||||
|
|
||||||
在事件中也可以对楼层进行切换。一个比较典型的例子就是TSW中,勇士在三楼的陷阱被扔到了二楼,就是一个楼层切换事件。
|
在事件中也可以对楼层进行切换。一个比较典型的例子就是TSW中,勇士在三楼的陷阱被扔到了二楼,就是一个楼层切换事件。
|
||||||
|
|||||||
@ -853,7 +853,7 @@ events.prototype.doAction = function() {
|
|||||||
}
|
}
|
||||||
var floorId=data.floorId || core.status.floorId;
|
var floorId=data.floorId || core.status.floorId;
|
||||||
if (floorId==core.status.floorId)
|
if (floorId==core.status.floorId)
|
||||||
core.openDoor(null, x, y, false, function() {
|
core.openDoor(null, x, y, data.needKey, function() {
|
||||||
core.lockControl();
|
core.lockControl();
|
||||||
core.events.doAction();
|
core.events.doAction();
|
||||||
})
|
})
|
||||||
@ -1459,6 +1459,7 @@ events.prototype.openDoor = function (id, x, y, needKey, callback) {
|
|||||||
core.drawTip("你没有" + ((core.material.items[key]||{}).name||"钥匙"));
|
core.drawTip("你没有" + ((core.material.items[key]||{}).name||"钥匙"));
|
||||||
else core.drawTip("无法开启此门");
|
else core.drawTip("无法开启此门");
|
||||||
core.clearContinueAutomaticRoute();
|
core.clearContinueAutomaticRoute();
|
||||||
|
if (core.isset(callback)) callback();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
core.autosave(true);
|
core.autosave(true);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user