本帖最后由 开关关 于 2020-7-29 10:12 编辑
存储独立开关的对象是一个全局对象,可以看看它的结构:
这个结构非常简单,直接存放独立开关状态的就是个名为 _data 的键值对。其中键的格式是“地图id,事件id,独立开关名”。从中还能发现一个规律,只要独立开关是关闭的,这个键值就不存在。而且看 Game_SelfSwitches 类的 clear 方法,它还原所有独立开关的方式就是把 _data 的成员删光。找到规律就好办了,只要你的全局变量总数并不多,就建议采用下面这种更加简洁的写法:
var mapId = 3; var pattern = new RegExp('(^' + mapId + ',)'); for(var i in $gameSelfSwitches._data){ if(pattern.test(i)){ delete $gameSelfSwitches._data[i]; } }
var mapId = 3;
var pattern = new RegExp('(^' + mapId + ',)');
for(var i in $gameSelfSwitches._data){
if(pattern.test(i)){
delete $gameSelfSwitches._data[i];
}
}
将符合地图id为3这个条件的成员直接删光。亲测有效。 |