本帖最后由 cenhangkai 于 2022-10-4 15:59 编辑
谢邀,人在论坛刚下飞机。半年前随手写的代码确实有一个很严重的BUG,如果地图上
有空白的事件,会导致报错,下面是修正后的:
Spriteset_Map.prototype.hideCharacters = function() { for (var i = 0; i < this._characterSprites.length; i++) { var sprite = this._characterSprites[i]; //如果是地图中的事件(非角色) var kg = false; if (sprite._character.event && sprite._character.page()) { var list = sprite._character.page().list; var max = list.length; var comment = ''; //获取事件所有注释 for (var j = 0; j < max; ++j) { var ev = list[j]; if ([108, 408].contains(ev.code)) comment += ev.parameters[0] + '\n'; } //提取注释进行辨别 for (var b = 0; b < comment.split(/[\r\n]+/).length; ++b) { var line = comment.split(/[\r\n]+/)[b]; if (line && line.match('触发战斗时不隐藏')) kg = true; } };// if (!sprite.isTile() && !kg) { sprite.hide(); } } };
Spriteset_Map.prototype.hideCharacters = function() {
for (var i = 0; i < this._characterSprites.length; i++) {
var sprite = this._characterSprites[i];
//如果是地图中的事件(非角色)
var kg = false;
if (sprite._character.event && sprite._character.page()) {
var list = sprite._character.page().list;
var max = list.length;
var comment = '';
//获取事件所有注释
for (var j = 0; j < max; ++j) {
var ev = list[j];
if ([108, 408].contains(ev.code)) comment += ev.parameters[0] + '\n';
}
//提取注释进行辨别
for (var b = 0; b < comment.split(/[\r\n]+/).length; ++b) {
var line = comment.split(/[\r\n]+/)[b];
if (line && line.match('触发战斗时不隐藏')) kg = true;
}
};//
if (!sprite.isTile() && !kg) {
sprite.hide();
}
}
};
|