快捷换装 & 状态栏点击 进录像

This commit is contained in:
ckcz123 2021-07-18 13:55:33 +08:00
parent bafa256993
commit ea9d47df63
5 changed files with 106 additions and 8 deletions

View File

@ -884,9 +884,9 @@ actions.prototype.onStatusBarClick = function (e) {
return this.doRegisteredAction('onStatusBarClick', px, py); return this.doRegisteredAction('onStatusBarClick', px, py);
} }
actions.prototype._sys_onStatusBarClick = function (px, py) { actions.prototype._sys_onStatusBarClick = function (px, py, vertical) {
if (this.actionsdata.onStatusBarClick) if (this.actionsdata.onStatusBarClick)
return this.actionsdata.onStatusBarClick(px, py); return this.actionsdata.onStatusBarClick(px, py, vertical);
} }
/////////////////// 在某个界面时的按键点击效果 /////////////////// /////////////////// 在某个界面时的按键点击效果 ///////////////////

View File

@ -31,12 +31,15 @@ control.prototype._init = function () {
this.registerReplayAction("item", this._replayAction_item); this.registerReplayAction("item", this._replayAction_item);
this.registerReplayAction("equip", this._replayAction_equip); this.registerReplayAction("equip", this._replayAction_equip);
this.registerReplayAction("unEquip", this._replayAction_unEquip); this.registerReplayAction("unEquip", this._replayAction_unEquip);
this.registerReplayAction("saveEquip", this._replayAction_saveEquip);
this.registerReplayAction("loadEquip", this._replayAction_loadEquip);
this.registerReplayAction("fly", this._replayAction_fly); this.registerReplayAction("fly", this._replayAction_fly);
this.registerReplayAction("shop", this._replayAction_shop); this.registerReplayAction("shop", this._replayAction_shop);
this.registerReplayAction("turn", this._replayAction_turn); this.registerReplayAction("turn", this._replayAction_turn);
this.registerReplayAction("getNext", this._replayAction_getNext); this.registerReplayAction("getNext", this._replayAction_getNext);
this.registerReplayAction("moveDirectly", this._replayAction_moveDirectly); this.registerReplayAction("moveDirectly", this._replayAction_moveDirectly);
this.registerReplayAction("key", this._replayAction_key); this.registerReplayAction("key", this._replayAction_key);
this.registerReplayAction("click", this._replayAction_click);
// --- 注册系统的resize // --- 注册系统的resize
this.registerResize("gameGroup", this._resize_gameGroup); this.registerResize("gameGroup", this._resize_gameGroup);
this.registerResize("canvas", this._resize_canvas); this.registerResize("canvas", this._resize_canvas);
@ -1672,6 +1675,20 @@ control.prototype._replayAction_unEquip = function (action) {
return true; return true;
} }
control.prototype._replayAction_saveEquip = function (action) {
if (action.indexOf('saveEquip:')!=0) return false;
core.quickSaveEquip(parseInt(action.substring(10)));
core.replay();
return true;
}
control.prototype._replayAction_loadEquip = function (action) {
if (action.indexOf('loadEquip:')!=0) return false;
core.quickLoadEquip(parseInt(action.substring(10)));
core.replay();
return true;
}
control.prototype._replayAction_fly = function (action) { control.prototype._replayAction_fly = function (action) {
if (action.indexOf("fly:")!=0) return false; if (action.indexOf("fly:")!=0) return false;
var floorId=action.substring(4); var floorId=action.substring(4);
@ -1757,6 +1774,15 @@ control.prototype._replayAction_key = function (action) {
return true; return true;
} }
control.prototype._replayAction_click = function (action) {
if (action.indexOf("click:") != 0) return false;
var p = action.split(":");
if (p.length != 4) return false;
core.actions.doRegisteredAction("onStatusBarClick", parseInt(p[2]), parseInt(p[3]), parseInt(p[1]));
core.replay();
return true;
}
// ------ 存读档相关 ------ // // ------ 存读档相关 ------ //
////// 自动存档 ////// ////// 自动存档 //////

View File

@ -349,6 +349,7 @@ items.prototype.quickSaveEquip = function (index) {
var saveEquips = core.getFlag("saveEquips", []); var saveEquips = core.getFlag("saveEquips", []);
saveEquips[index] = core.clone(core.status.hero.equipment); saveEquips[index] = core.clone(core.status.hero.equipment);
core.setFlag("saveEquips", saveEquips); core.setFlag("saveEquips", saveEquips);
core.status.route.push("saveEquip:"+index);
core.drawTip("已保存" + index + "号套装"); core.drawTip("已保存" + index + "号套装");
} }
@ -366,6 +367,7 @@ items.prototype.quickLoadEquip = function (index) {
if (v && !this.canEquip(v, true)) if (v && !this.canEquip(v, true))
return; return;
} }
core.status.route.push("loadEquip:"+index);
core.setFlag("__quickLoadEquip__", true); core.setFlag("__quickLoadEquip__", true);
// 快速换装 // 快速换装
var toEquip = []; var toEquip = [];
@ -377,7 +379,6 @@ items.prototype.quickLoadEquip = function (index) {
toEquip.push(to || null); toEquip.push(to || null);
if (now) { if (now) {
this.unloadEquip(i); this.unloadEquip(i);
core.status.route.push("unEquip:" + i);
} }
} }
} }
@ -385,7 +386,6 @@ items.prototype.quickLoadEquip = function (index) {
var to = toEquip[i]; var to = toEquip[i];
if (to) { if (to) {
this.loadEquip(to); this.loadEquip(to);
core.status.route.push("equip:" + to);
} }
} }
core.removeFlag("__quickLoadEquip__"); core.removeFlag("__quickLoadEquip__");

View File

@ -514,6 +514,10 @@ utils.prototype._encodeRoute_encodeOne = function (t) {
return "u" + t.substring(8); return "u" + t.substring(8);
else if (t.indexOf('equip:') == 0) else if (t.indexOf('equip:') == 0)
return "e" + this._encodeRoute_id2number(t.substring(6)) + ":"; return "e" + this._encodeRoute_id2number(t.substring(6)) + ":";
else if (t.indexOf('saveEquip:') == 0)
return "s" + t.substring(10);
else if (t.indexOf('loadEquip:') == 0)
return "l" + t.substring(10);
else if (t.indexOf('fly:') == 0) else if (t.indexOf('fly:') == 0)
return "F" + t.substring(4) + ":"; return "F" + t.substring(4) + ":";
else if (t == 'choices:none') else if (t == 'choices:none')
@ -540,6 +544,8 @@ utils.prototype._encodeRoute_encodeOne = function (t) {
return "M" + t.substring(5); return "M" + t.substring(5);
else if (t.indexOf('key:') == 0) else if (t.indexOf('key:') == 0)
return 'K' + t.substring(4); return 'K' + t.substring(4);
else if (t.indexOf('click:') == 0)
return 'k' + t.substring(6);
else if (t.indexOf('random:') == 0) else if (t.indexOf('random:') == 0)
return 'X' + t.substring(7); return 'X' + t.substring(7);
return '('+t+')'; return '('+t+')';
@ -623,6 +629,12 @@ utils.prototype._decodeRoute_decodeOne = function (decodeObj, c) {
case "e": case "e":
decodeObj.ans.push("equip:" + this._decodeRoute_number2id(nxt)); decodeObj.ans.push("equip:" + this._decodeRoute_number2id(nxt));
break; break;
case "s":
decodeObj.ans.push("saveEquip:" + nxt);
break;
case "l":
decodeObj.ans.push("loadEquip:" + nxt);
break;
case "F": case "F":
decodeObj.ans.push("fly:" + nxt); decodeObj.ans.push("fly:" + nxt);
break; break;
@ -663,6 +675,13 @@ utils.prototype._decodeRoute_decodeOne = function (decodeObj, c) {
case "K": case "K":
decodeObj.ans.push("key:" + nxt); decodeObj.ans.push("key:" + nxt);
break; break;
case "k":
++decodeObj.index;
var px = this._decodeRoute_getNumber(decodeObj);
++decodeObj.index;
var py = this._decodeRoute_getNumber(decodeObj);
decodeObj.ans.push("click:"+nxt+":"+px+":"+py);
break;
case "X": case "X":
decodeObj.ans.push("random:" + nxt); decodeObj.ans.push("random:" + nxt);
break; break;

View File

@ -928,13 +928,20 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
} }
}, },
"onStatusBarClick": function (px, py) { "onStatusBarClick": function (px, py, vertical) {
// 点击状态栏时触发的事件,仅在自绘状态栏开启时生效 // 点击状态栏时触发的事件,仅在自绘状态栏开启时生效
// px和py为点击的像素坐标 // px和py为点击的像素坐标
// vertical为录像播放过程中的横竖屏信息
// //
// 横屏模式下状态栏的画布大小是 129*416 // 横屏模式下状态栏的画布大小是 129*416
// 竖屏模式下状态栏的画布大小是 416*(32*rows+9) 其中rows为状态栏行数即全塔属性中statusCanvasRowsOnMobile值 // 竖屏模式下状态栏的画布大小是 416*(32*rows+9) 其中rows为状态栏行数即全塔属性中statusCanvasRowsOnMobile值
// 可以使用 core.domStyle.isVertical 来判定当前是否是竖屏模式 // 可以使用 _isVertical() 来判定当前是否是竖屏模式
// 判定当前是否是竖屏模式。录像播放过程中可能会记录当时的横竖屏信息以覆盖。
var _isVertical = function () {
if (core.isReplaying() && vertical != null) return vertical;
return core.domStyle.isVertical;
}
// 如果正在执行事件,则忽略 // 如果正在执行事件,则忽略
if (core.status.lockControl) return; if (core.status.lockControl) return;
@ -942,8 +949,54 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
if (core.isMoving()) return; if (core.isMoving()) return;
// 判定px和py来执行自己的脚本内容.... 注意横竖屏 // 判定px和py来执行自己的脚本内容.... 注意横竖屏
// 这里是直接打出点击坐标的例子。 // console.log("onStatusBarClick: ", px, py, _isVertical());
// console.log("onStatusBarClick:", px, py);
// 样例一:点击某个区域后使用一个道具
/*
if (core.hasItem("pickaxe")) {
if (_isVertical()) {
// 竖屏模式下
if (px >= 200 && px <= 250 && py >= 50 && py <= 100) {
core.useItem("pickaxe");
}
} else {
// 横屏模式下
if (px >= 50 && px <= 100 && py >= 200 && py <= 250) {
core.useItem("pickaxe");
}
}
}
*/
// 样例二:点击某个区域后执行一段公共事件或脚本
/*
if (core.hasFlag("xxx")) {
if (_isVertical()) {
// 竖屏模式下
if (px >= 200 && px <= 250 && py >= 50 && py <= 100) {
// 记录点击坐标。这里的1代表此时是竖屏
core.status.route.push("click:1:" + px + ":" + py);
// 可以插入公共事件 / 普通事件 / 执行一段脚本如打开自绘UI或增减flag
core.insertCommonEvent("道具商店");
// core.insertAction(["一段事件"]);
// core.openItemShop("shop1");
}
} else {
// 横屏模式下
if (px >= 50 && px <= 100 && py >= 200 && py <= 250) {
// 记录点击坐标。这里的0代表此时是横屏
core.status.route.push("click:0:" + px + ":" + py);
// 可以插入公共事件 / 普通事件 / 执行一段脚本如打开自绘UI或增减flag
core.insertCommonEvent("道具商店");
// core.insertAction(["一段事件"]);
// core.openItemShop("shop1");
}
}
}
*/
} }
}, },
"control": { "control": {