优化updateStatusBar的调用
This commit is contained in:
parent
6f450592f0
commit
6a2aff4cae
@ -1009,14 +1009,16 @@ return code;
|
|||||||
*/;
|
*/;
|
||||||
|
|
||||||
update_s
|
update_s
|
||||||
: '更新状态栏和地图显伤' Newline
|
: '更新状态栏和地图显伤' '不检查自动事件' Bool Newline
|
||||||
|
|
||||||
|
|
||||||
/* update_s
|
/* update_s
|
||||||
tooltip : update: 立刻更新状态栏和地图显伤
|
tooltip : update: 立刻更新状态栏和地图显伤
|
||||||
helpUrl : https://h5mota.com/games/template/_docs/#/event?id=update%EF%BC%9A%E7%AB%8B%E5%88%BB%E6%9B%B4%E6%96%B0%E7%8A%B6%E6%80%81%E6%A0%8F%E5%92%8C%E5%9C%B0%E5%9B%BE%E6%98%BE%E4%BC%A4
|
helpUrl : https://h5mota.com/games/template/_docs/#/event?id=update%EF%BC%9A%E7%AB%8B%E5%88%BB%E6%9B%B4%E6%96%B0%E7%8A%B6%E6%80%81%E6%A0%8F%E5%92%8C%E5%9C%B0%E5%9B%BE%E6%98%BE%E4%BC%A4
|
||||||
|
default : [false]
|
||||||
colour : this.dataColor
|
colour : this.dataColor
|
||||||
var code = '{"type": "update"},\n';
|
Bool_0 = Bool_0 ? (', "doNotCheckAutoEvents": true') : ''
|
||||||
|
var code = '{"type": "update"'+Bool_0+'},\n';
|
||||||
return code;
|
return code;
|
||||||
*/;
|
*/;
|
||||||
|
|
||||||
@ -3462,7 +3464,7 @@ ActionParser.prototype.parseAction = function() {
|
|||||||
break;
|
break;
|
||||||
case "update":
|
case "update":
|
||||||
this.next = MotaActionBlocks['update_s'].xmlText([
|
this.next = MotaActionBlocks['update_s'].xmlText([
|
||||||
this.next]);
|
this.next, this.doNotCheckAutoEvents||false]);
|
||||||
break;
|
break;
|
||||||
case "showStatusBar":
|
case "showStatusBar":
|
||||||
this.next = MotaActionBlocks['showStatusBar_s'].xmlText([
|
this.next = MotaActionBlocks['showStatusBar_s'].xmlText([
|
||||||
|
|||||||
@ -672,7 +672,7 @@ function omitedcheckUpdateFunction(event) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (one.async && one.type != 'animate') hasAsync = true;
|
if (one.async && one.type != 'animate' && one.type != 'function') hasAsync = true;
|
||||||
if (one.type == 'waitAsync') hasAsync = false;
|
if (one.type == 'waitAsync') hasAsync = false;
|
||||||
}
|
}
|
||||||
return hasAsync;
|
return hasAsync;
|
||||||
|
|||||||
@ -656,7 +656,6 @@ control.prototype._moveAction_moving = function (callback) {
|
|||||||
// 执行该点事件
|
// 执行该点事件
|
||||||
if (!hasTrigger)
|
if (!hasTrigger)
|
||||||
core.events._trigger(nowx, nowy);
|
core.events._trigger(nowx, nowy);
|
||||||
core.updateStatusBar();
|
|
||||||
|
|
||||||
// 检查该点是否是滑冰
|
// 检查该点是否是滑冰
|
||||||
if (core.getBgNumber() == 167) {
|
if (core.getBgNumber() == 167) {
|
||||||
@ -745,7 +744,7 @@ control.prototype.waitHeroToStop = function(callback) {
|
|||||||
core.setHeroLoc('direction', lastDirection);
|
core.setHeroLoc('direction', lastDirection);
|
||||||
core.drawHero();
|
core.drawHero();
|
||||||
callback();
|
callback();
|
||||||
}, 30);
|
}, core.status.replay.speed == 24 ? 0 : 30);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1000,6 +999,8 @@ control.prototype.checkBlock = function () {
|
|||||||
core.updateStatusBar();
|
core.updateStatusBar();
|
||||||
core.events.lose();
|
core.events.lose();
|
||||||
return;
|
return;
|
||||||
|
} else {
|
||||||
|
core.updateStatusBar();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
this._checkBlock_snipe(core.status.checkBlock.snipe[loc]);
|
this._checkBlock_snipe(core.status.checkBlock.snipe[loc]);
|
||||||
@ -1020,7 +1021,7 @@ control.prototype._checkBlock_snipe = function (snipe) {
|
|||||||
if (!snipe || snipe.length == 0) return;
|
if (!snipe || snipe.length == 0) return;
|
||||||
var actions = [];
|
var actions = [];
|
||||||
snipe.forEach(function (t) {
|
snipe.forEach(function (t) {
|
||||||
actions.push({"type": "move", "loc": [t[0],t[1]], "steps": [t[3]], "time": 500, "keep": true, "async": true});
|
actions.push({"type": "move", "loc": [t[0],t[1]], "steps": [t[3]], "time": 250, "keep": true, "async": true});
|
||||||
});
|
});
|
||||||
actions.push({"type": "waitAsync"});
|
actions.push({"type": "waitAsync"});
|
||||||
core.insertAction(actions);
|
core.insertAction(actions);
|
||||||
@ -1032,12 +1033,14 @@ control.prototype._checkBlock_ambush = function (ambush) {
|
|||||||
// 捕捉效果
|
// 捕捉效果
|
||||||
var actions = [];
|
var actions = [];
|
||||||
ambush.forEach(function (t) {
|
ambush.forEach(function (t) {
|
||||||
actions.push({"type": "move", "loc": [t[0],t[1]], "steps": [t[3]], "time": 500, "keep": false, "async":true});
|
actions.push({"type": "move", "loc": [t[0],t[1]], "steps": [t[3]], "time": 250, "keep": false, "async":true});
|
||||||
});
|
});
|
||||||
actions.push({"type": "waitAsync"});
|
actions.push({"type": "waitAsync"});
|
||||||
// 强制战斗
|
// 强制战斗
|
||||||
ambush.forEach(function (t) {
|
ambush.forEach(function (t) {
|
||||||
actions.push({"type": "battle", "id": t[2]});
|
actions.push({"type": "function", "function": "function() { "+
|
||||||
|
"core.battle('" + t[2] + "', " + t[0]+ "," + t[1] + ", true, core.doAction); "+
|
||||||
|
"}", "async": true});
|
||||||
});
|
});
|
||||||
core.insertAction(actions);
|
core.insertAction(actions);
|
||||||
}
|
}
|
||||||
@ -1430,7 +1433,7 @@ control.prototype._replayAction_item = function (action) {
|
|||||||
if (action.indexOf("item:")!=0) return false;
|
if (action.indexOf("item:")!=0) return false;
|
||||||
var itemId = action.substring(5);
|
var itemId = action.substring(5);
|
||||||
if (!core.canUseItem(itemId)) return false;
|
if (!core.canUseItem(itemId)) return false;
|
||||||
if (core.material.items[itemId].hideInReplay) {
|
if (core.material.items[itemId].hideInReplay || core.status.replay.speed == 24) {
|
||||||
core.useItem(itemId, false, core.replay);
|
core.useItem(itemId, false, core.replay);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -1463,7 +1466,7 @@ control.prototype._replayAction_equip = function (action) {
|
|||||||
var index = ownEquipment.indexOf(equipId), per = core.__SIZE__-1;
|
var index = ownEquipment.indexOf(equipId), per = core.__SIZE__-1;
|
||||||
if (index<0) return false;
|
if (index<0) return false;
|
||||||
core.status.route.push(action);
|
core.status.route.push(action);
|
||||||
if (core.material.items[equipId].hideInReplay) {
|
if (core.material.items[equipId].hideInReplay || core.status.replay.speed == 24) {
|
||||||
core.loadEquip(equipId, core.replay);
|
core.loadEquip(equipId, core.replay);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -1483,6 +1486,10 @@ control.prototype._replayAction_unEquip = function (action) {
|
|||||||
if (!core.isset(equipType)) return false;
|
if (!core.isset(equipType)) return false;
|
||||||
core.ui.drawEquipbox(equipType);
|
core.ui.drawEquipbox(equipType);
|
||||||
core.status.route.push(action);
|
core.status.route.push(action);
|
||||||
|
if (core.status.replay.speed == 24) {
|
||||||
|
core.unloadEquip(equipType, core.replay);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
setTimeout(function () {
|
setTimeout(function () {
|
||||||
core.ui.closePanel();
|
core.ui.closePanel();
|
||||||
core.unloadEquip(equipType, core.replay);
|
core.unloadEquip(equipType, core.replay);
|
||||||
@ -1496,6 +1503,11 @@ control.prototype._replayAction_fly = function (action) {
|
|||||||
var toIndex=core.floorIds.indexOf(floorId);
|
var toIndex=core.floorIds.indexOf(floorId);
|
||||||
if (!core.canUseItem('fly')) return false;
|
if (!core.canUseItem('fly')) return false;
|
||||||
core.ui.drawFly(toIndex);
|
core.ui.drawFly(toIndex);
|
||||||
|
if (core.status.replay.speed == 24) {
|
||||||
|
if (!core.flyTo(floorId, core.replay))
|
||||||
|
core.control._replay_error(action);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
setTimeout(function () {
|
setTimeout(function () {
|
||||||
if (!core.flyTo(floorId, core.replay))
|
if (!core.flyTo(floorId, core.replay))
|
||||||
core.control._replay_error(action);
|
core.control._replay_error(action);
|
||||||
@ -1513,7 +1525,7 @@ control.prototype._replayAction_shop = function (action) {
|
|||||||
// --- 判定commonEvent或item
|
// --- 判定commonEvent或item
|
||||||
if (shop.commonEvent || shop.item) {
|
if (shop.commonEvent || shop.item) {
|
||||||
core.openShop(shopId, false);
|
core.openShop(shopId, false);
|
||||||
setTimeout(core.replay);
|
core.replay();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
var choices = shop.choices;
|
var choices = shop.choices;
|
||||||
@ -1542,14 +1554,14 @@ control.prototype._replayAction_turn = function (action) {
|
|||||||
if (action != 'turn' && action.indexOf('turn:') != 0) return false;
|
if (action != 'turn' && action.indexOf('turn:') != 0) return false;
|
||||||
if (action == 'turn') core.turnHero();
|
if (action == 'turn') core.turnHero();
|
||||||
else core.turnHero(action.substring(5));
|
else core.turnHero(action.substring(5));
|
||||||
setTimeout(core.replay);
|
core.replay();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
control.prototype._replayAction_getNext = function (action) {
|
control.prototype._replayAction_getNext = function (action) {
|
||||||
if (action != "getNext") return false;
|
if (action != "getNext") return false;
|
||||||
if (!core.getNextItem()) return false;
|
if (!core.getNextItem()) return false;
|
||||||
setTimeout(core.replay);
|
core.replay();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1566,6 +1578,11 @@ control.prototype._replayAction_moveDirectly = function (action) {
|
|||||||
var x=parseInt(pos[0]), y=parseInt(pos[1]);
|
var x=parseInt(pos[0]), y=parseInt(pos[1]);
|
||||||
var nowx=core.getHeroLoc('x'), nowy=core.getHeroLoc('y');
|
var nowx=core.getHeroLoc('x'), nowy=core.getHeroLoc('y');
|
||||||
if (!core.moveDirectly(x, y)) return false;
|
if (!core.moveDirectly(x, y)) return false;
|
||||||
|
if (core.status.replay.speed == 24) {
|
||||||
|
core.replay();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
core.ui.drawArrow('ui', 32*nowx+16-core.bigmap.offsetX, 32*nowy+16-core.bigmap.offsetY,
|
core.ui.drawArrow('ui', 32*nowx+16-core.bigmap.offsetX, 32*nowy+16-core.bigmap.offsetY,
|
||||||
32*x+16-core.bigmap.offsetX, 32*y+16-core.bigmap.offsetY, '#FF0000', 3);
|
32*x+16-core.bigmap.offsetX, 32*y+16-core.bigmap.offsetY, '#FF0000', 3);
|
||||||
setTimeout(function () {
|
setTimeout(function () {
|
||||||
@ -1578,7 +1595,7 @@ control.prototype._replayAction_moveDirectly = function (action) {
|
|||||||
control.prototype._replayAction_key = function (action) {
|
control.prototype._replayAction_key = function (action) {
|
||||||
if (action.indexOf("key:") != 0) return false;
|
if (action.indexOf("key:") != 0) return false;
|
||||||
core.actions.keyUp(parseInt(action.substring(4)), false, true);
|
core.actions.keyUp(parseInt(action.substring(4)), false, true);
|
||||||
setTimeout(core.replay);
|
core.replay();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -402,7 +402,16 @@ events.prototype.openDoor = function (x, y, needKey, callback) {
|
|||||||
});
|
});
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
this._openDoor_animate(id, x, y, callback);
|
if (core.status.replay.speed == 24) {
|
||||||
|
core.status.replay.animate = true;
|
||||||
|
core.removeBlock(x, y);
|
||||||
|
setTimeout(function () {
|
||||||
|
core.status.replay.animate = false;
|
||||||
|
core.events.afterOpenDoor(id, x, y, callback);
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
this._openDoor_animate(id, x, y, callback);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
events.prototype._openDoor_check = function (id, x, y, needKey) {
|
events.prototype._openDoor_check = function (id, x, y, needKey) {
|
||||||
@ -485,8 +494,8 @@ events.prototype.getItem = function (id, num, x, y, callback) {
|
|||||||
if (num == null) num = 1;
|
if (num == null) num = 1;
|
||||||
num = num || 1;
|
num = num || 1;
|
||||||
var itemCls = core.material.items[id].cls;
|
var itemCls = core.material.items[id].cls;
|
||||||
core.items.getItemEffect(id, num);
|
|
||||||
core.removeBlock(x, y);
|
core.removeBlock(x, y);
|
||||||
|
core.items.getItemEffect(id, num);
|
||||||
var text = '获得 ' + core.material.items[id].name;
|
var text = '获得 ' + core.material.items[id].name;
|
||||||
if (num > 1) text += "x" + num;
|
if (num > 1) text += "x" + num;
|
||||||
if (itemCls === 'items' && num == 1) text += core.items.getItemEffectTip(id);
|
if (itemCls === 'items' && num == 1) text += core.items.getItemEffectTip(id);
|
||||||
@ -510,9 +519,6 @@ events.prototype.getItem = function (id, num, x, y, callback) {
|
|||||||
itemHint.push(id);
|
itemHint.push(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
core.updateStatusBar();
|
|
||||||
|
|
||||||
this.afterGetItem(id, x, y, callback);
|
this.afterGetItem(id, x, y, callback);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -753,8 +759,6 @@ events.prototype.pushBox = function (data) {
|
|||||||
core.removeBlock(data.x, data.y);
|
core.removeBlock(data.x, data.y);
|
||||||
else
|
else
|
||||||
core.setBlock(168, data.x, data.y);
|
core.setBlock(168, data.x, data.y);
|
||||||
|
|
||||||
core.updateStatusBar();
|
|
||||||
this._pushBox_moveHero(direction);
|
this._pushBox_moveHero(direction);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1949,7 +1953,7 @@ events.prototype._action_function = function (data, x, y, prefix) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
events.prototype._action_update = function (data, x, y, prefix) {
|
events.prototype._action_update = function (data, x, y, prefix) {
|
||||||
core.updateStatusBar();
|
core.updateStatusBar(data.doNotCheckAutoEvents);
|
||||||
core.doAction();
|
core.doAction();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -81,6 +81,7 @@ items.prototype.getItemEffect = function (itemId, itemNum) {
|
|||||||
main.log(e);
|
main.log(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
core.updateStatusBar();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
core.addItem(itemId, itemNum);
|
core.addItem(itemId, itemNum);
|
||||||
|
|||||||
@ -1471,10 +1471,10 @@ maps.prototype.hideBlock = function (x, y, floorId) {
|
|||||||
////// 将某个块从启用变成禁用状态 //////
|
////// 将某个块从启用变成禁用状态 //////
|
||||||
maps.prototype.removeBlock = function (x, y, floorId) {
|
maps.prototype.removeBlock = function (x, y, floorId) {
|
||||||
floorId = floorId || core.status.floorId;
|
floorId = floorId || core.status.floorId;
|
||||||
if (!floorId) return;
|
if (!floorId) return false;
|
||||||
|
|
||||||
var block = core.getBlock(x, y, floorId, true);
|
var block = core.getBlock(x, y, floorId, true);
|
||||||
if (block == null) return; // 不存在
|
if (block == null) return false; // 不存在
|
||||||
|
|
||||||
var index = block.index;
|
var index = block.index;
|
||||||
|
|
||||||
@ -1490,6 +1490,7 @@ maps.prototype.removeBlock = function (x, y, floorId) {
|
|||||||
// 删除Index
|
// 删除Index
|
||||||
core.removeBlockByIndex(index, floorId);
|
core.removeBlockByIndex(index, floorId);
|
||||||
core.updateStatusBar();
|
core.updateStatusBar();
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
////// 根据block的索引(尽可能)删除该块 //////
|
////// 根据block的索引(尽可能)删除该块 //////
|
||||||
@ -1778,6 +1779,7 @@ maps.prototype._getAndRemoveBlock = function (x, y) {
|
|||||||
|
|
||||||
////// 显示移动某块的动画,达到{“type”:”move”}的效果 //////
|
////// 显示移动某块的动画,达到{“type”:”move”}的效果 //////
|
||||||
maps.prototype.moveBlock = function (x, y, steps, time, keep, callback) {
|
maps.prototype.moveBlock = function (x, y, steps, time, keep, callback) {
|
||||||
|
if (core.status.replay.speed == 24) time = 1;
|
||||||
time = time || 500;
|
time = time || 500;
|
||||||
var blockArr = this._getAndRemoveBlock(x, y);
|
var blockArr = this._getAndRemoveBlock(x, y);
|
||||||
if (blockArr == null) {
|
if (blockArr == null) {
|
||||||
@ -1939,6 +1941,7 @@ maps.prototype._moveJumpBlock_finished = function (blockInfo, canvases, info, an
|
|||||||
|
|
||||||
////// 显示/隐藏某个块时的动画效果 //////
|
////// 显示/隐藏某个块时的动画效果 //////
|
||||||
maps.prototype.animateBlock = function (loc, type, time, callback) {
|
maps.prototype.animateBlock = function (loc, type, time, callback) {
|
||||||
|
if (core.status.replay.speed == 24) time = 1;
|
||||||
var isHide = type == 'hide';
|
var isHide = type == 'hide';
|
||||||
if (typeof loc[0] == 'number' && typeof loc[1] == 'number')
|
if (typeof loc[0] == 'number' && typeof loc[1] == 'number')
|
||||||
loc = [loc];
|
loc = [loc];
|
||||||
|
|||||||
@ -1269,9 +1269,18 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
|
|||||||
core.status.hero.hp = 0;
|
core.status.hero.hp = 0;
|
||||||
core.updateStatusBar();
|
core.updateStatusBar();
|
||||||
core.events.lose();
|
core.events.lose();
|
||||||
return;
|
} else {
|
||||||
|
core.updateStatusBar();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 从v2.7开始,每一步行走不会再刷新状态栏。
|
||||||
|
// 如果有特殊要求(如每走一步都加buff之类),可手动取消注释下面这一句:
|
||||||
|
// core.updateStatusBar(true);
|
||||||
|
|
||||||
|
// 检查自动事件
|
||||||
|
core.checkAutoEvents();
|
||||||
|
|
||||||
// 如需强行终止行走可以在这里条件判定:
|
// 如需强行终止行走可以在这里条件判定:
|
||||||
// core.stopAutomaticRoute();
|
// core.stopAutomaticRoute();
|
||||||
},
|
},
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user