Independent switchs
This commit is contained in:
parent
d929f14ff2
commit
90110cf854
@ -1693,12 +1693,12 @@ core.insertAction([
|
||||
|
||||
从V2.5.3开始,针对每个事件都提供了独立开关。
|
||||
|
||||
独立开关的写法是`flag:__A__`, `flag:__B__`直到`flag:__Z__`,共计26个。
|
||||
独立开关的写法是`switch:A`, `switch:A`直到`switch:Z`,共计26个;不过样板中的值块默认只提供前6个。
|
||||
|
||||
独立开关算是特殊的flag,它在事件中使用时会和事件的楼层及坐标进行绑定;换句话说每个事件对应的`flag:__A__`都是不同的。
|
||||
独立开关算是特殊的flag,它在事件中使用时会和事件的楼层及坐标进行绑定;换句话说每个事件对应的`switch:A`都是不同的。
|
||||
|
||||
事实上,在某个楼层某个点的事件的独立开关对应的系统flag为`floorId@x@y__X__`,
|
||||
比如在`MT0`层的`[2,5]`点事件,对应的`flag:__B__`独立开关,实际会被映射到`flag:MT0@2@5__B__`。
|
||||
事实上,在某个楼层某个点的事件的独立开关A对应的系统flag为`floorId@x@y@A`,
|
||||
比如在`MT0`层的`[2,5]`点事件,对应的`switch:B`独立开关,实际会被映射到`flag:MT0@2@5@B`。
|
||||
|
||||
如果在事件外想访问某个事件的独立开关也需要通过上面这个方式。
|
||||
|
||||
|
||||
@ -965,9 +965,11 @@ events.prototype.doAction = function() {
|
||||
}
|
||||
// flag
|
||||
if (data.name.indexOf("flag:")==0) {
|
||||
var flag = data.name.substring(5);
|
||||
if (/^__[A-Z]__$/.test(flag)) flag = (prefix||"")+flag;
|
||||
core.setFlag(flag, value);
|
||||
core.setFlag(data.name.substring(5), value);
|
||||
}
|
||||
// switch
|
||||
if (data.name.indexOf("switch:")==0) {
|
||||
core.setFlag((prefix||"global")+"@"+data.name.substring(7), value);
|
||||
}
|
||||
}
|
||||
catch (e) {console.log(e)}
|
||||
|
||||
@ -62,10 +62,8 @@ utils.prototype.calValue = function (value, prefix, need, times) {
|
||||
}
|
||||
value=value.replace(/status:([\w\d_]+)/g, "core.getStatus('$1')");
|
||||
value=value.replace(/item:([\w\d_]+)/g, "core.itemCount('$1')");
|
||||
value=value.replace(/flag:([\w\d_]+)/g, function (word, value) {
|
||||
if (/^__[A-Z]__$/.test(value)) value = (prefix||"")+value;
|
||||
return core.getFlag(value, 0);
|
||||
});
|
||||
value=value.replace(/flag:([\w\d_]+)/g, "core.getFlag('$1', 0)");
|
||||
value=value.replace(/switch:([A-Z])/g, "core.getFlag('"+(prefix||"global")+"@$1', 0)");
|
||||
return eval(value);
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user