禁止存档 & 录像播放百分比

This commit is contained in:
ckcz123 2020-10-18 11:06:51 +08:00
parent c31e961112
commit 0e1f4242d6
6 changed files with 51 additions and 10 deletions

View File

@ -727,6 +727,7 @@ action
| callBook_s
| callSave_s
| autoSave_s
| forbidSave_s
| callLoad_s
| previewUI_s
| clearMap_s
@ -2660,6 +2661,21 @@ return code;
*/;
forbidSave_s
: '是否禁止存档' Bool Newline
/* forbidSave_s
tooltip : forbidSave: 禁止存档
helpUrl : /_docs/#/instruction
colour : this.soundColor
default : [false]
Bool_0 = Bool_0 ? (', "forbid": true') : '';
var code = '{"type": "forbidSave"'+Bool_0+'},\n';
return code;
*/;
callLoad_s
: '呼出读档页面' Newline

View File

@ -807,6 +807,10 @@ ActionParser.prototype.parseAction = function() {
this.next = MotaActionBlocks['autoSave_s'].xmlText([
data.nohint||false, this.next]);
break;
case "forbidSave": // 禁止存档
this.next = MotaActionBlocks['forbidSave_s'].xmlText([
data.forbid||false, this.next]);
break;
case "callLoad": // 呼出读档界面
this.next = MotaActionBlocks['callLoad_s'].xmlText([
this.next]);

View File

@ -205,6 +205,7 @@ editor_blocklyconfig=(function(){
MotaActionBlocks['callBook_s'].xmlText(),
MotaActionBlocks['callSave_s'].xmlText(),
MotaActionBlocks['autoSave_s'].xmlText(),
MotaActionBlocks['forbidSave_s'].xmlText(),
MotaActionBlocks['callLoad_s'].xmlText(),
],
'UI绘制':[

View File

@ -1276,6 +1276,9 @@ control.prototype.startReplay = function (list) {
core.status.replay.totalList = core.status.route.concat(list);
core.status.replay.steps = 0;
core.status.replay.save = [];
core.createCanvas('replay', 0, core.__PIXELS__ - 40, core.__PIXELS__, 40, 199);
core.setOpacity('replay', 0.6);
this._replay_drawProgress();
core.updateStatusBar();
core.drawTip("开始播放");
this.replay();
@ -1359,6 +1362,7 @@ control.prototype.stopReplay = function (force) {
core.status.replay.speed=1.0;
core.status.replay.steps = 0;
core.status.replay.save = [];
core.deleteCanvas('replay');
core.updateStatusBar();
core.drawTip("停止播放并恢复游戏");
}
@ -1384,6 +1388,9 @@ control.prototype.rewindReplay = function () {
"steps": data.replay.steps,
"save": save
}
core.createCanvas('replay', 0, core.__PIXELS__ - 40, core.__PIXELS__, 40, 199);
core.setOpacity('replay', 0.6);
core.control._replay_drawProgress();
core.updateStatusBar();
core.drawTip("成功回退到上一个节点");
});
@ -1466,6 +1473,7 @@ control.prototype.replay = function (force) {
if (!core.isPlaying() || !core.isReplaying()
|| core.status.replay.animate || core.status.event.id) return;
if (core.status.replay.pausing && !force) return;
this._replay_drawProgress();
if (core.status.replay.toReplay.length==0)
return this._replay_finished();
this._replay_save();
@ -1561,6 +1569,15 @@ control.prototype._replay_error = function (action) {
});
}
control.prototype._replay_drawProgress = function () {
var total = core.status.replay.totalList.length, left = total - core.status.replay.toReplay.length;
var content = '播放进度:' + left + '/' + total + ''+(left/total*100).toFixed(2)+'%';
var width = 26 + core.calWidth('replay', content, "16px Arial");
core.clearMap('replay');
core.fillRect('replay', 0, 0, width, 40, '#000000');
core.fillText('replay', content, 16, 27, '#FFFFFF');
}
control.prototype.__replay_getTimeout = function () {
if (core.status.replay.speed == 24) return 0;
return 750 / Math.max(1, core.status.replay.speed);
@ -1727,6 +1744,7 @@ control.prototype._replayAction_key = function (action) {
////// 自动存档 //////
control.prototype.autosave = function (removeLast) {
if (core.hasFlag('__forbidSave__')) return;
var x=null;
if (removeLast) {
x=core.status.route.pop();

View File

@ -87,7 +87,6 @@ events.prototype._startGame_setHard = function () {
events.prototype._startGame_afterStart = function (callback) {
core.ui.closePanel();
this._startGame_statusBar();
core.changeFloor(core.firstData.floorId, null, core.firstData.hero.loc, null, function () {
// 插入一个空事件避免直接回放录像出错
core.insertAction([]);
@ -96,14 +95,6 @@ events.prototype._startGame_afterStart = function (callback) {
this._startGame_upload();
}
// 开始游戏时是否显示状态栏
events.prototype._startGame_statusBar = function () {
if (core.flags.startUsingCanvas)
core.hideStatusBar();
else
core.showStatusBar();
}
events.prototype._startGame_upload = function () {
// Upload
var formData = new FormData();
@ -2269,6 +2260,11 @@ events.prototype._action_autoSave = function (data, x, y, prefix) {
core.doAction();
}
events.prototype._action_forbidSave = function (data, x, y, prefix) {
core.setFlag('__forbidSave__', data.forbid || null);
core.doAction();
}
events.prototype._action_callLoad = function (data, x, y, prefix) {
if (this.__action_checkReplaying()) return;
var e = core.clone(core.status.event.data);
@ -2523,6 +2519,10 @@ events.prototype.openKeyBoard = function (fromUserAction) {
////// 点击保存按钮时的打开操作 //////
events.prototype.save = function (fromUserAction) {
if (core.isReplaying()) return;
if (core.hasFlag('__forbidSave__')) {
core.drawTip('当前禁止存档');
return;
}
if (core.status.event.id == 'save' && core.events.recoverEvents(core.status.event.interval))
return;
if (!this._checkStatus('save', fromUserAction)) return;

View File

@ -37,7 +37,9 @@
x26. 追加了公共事件版全局商店“快捷换装”以方便手机端,该事件的对话框可以再更透明一点来方便玩家边换装边观察地图显伤。
其他issues
0.1008加入一个flag来控制当前是否允许存档因为天气色调bgm进存档的情况下会屏蔽楼层切换不进存档的话玩家原地SL又不保留。录像播放中加一个百分比二次录制长度/原录像长度)显示,并且允许在已播放的任意节点之间快退快进。
0.1008加入一个flag来控制当前是否允许存档因为天气色调bgm进存档的情况下会屏蔽楼层切换不进存档的话玩家原地SL又不保留。
0.1. 录像播放中加一个百分比(二次录制长度/原录像长度)显示,
x0.2. 并且允许在已播放的任意节点之间快退快进。
1. 希望尝试修复2.6.x的高清UI、自动元件通行性勇士和阻击怪可在同种图块内部自由通行但进出另一种图块则必须通过桥梁、仿rm光照和负色调含true-light.js等插件并加入样板2.7.2发布以来插件库有了一些新插件也希望加入该修的bug要修比如什么==NaN
2. 部分rm功能确定键触发很多作者可能会摆一些挡路的可通行事件但又希望可以像绿点一样穿透比如因为目标层/点有分歧而不能用绿点只能用红点的楼梯那么就需要勇士站在此点按下轻按键7或其他什么数字键来触发该事件、斜向移动插件库的磁铁特效但blockly中的步伐口诀语法需要调整最简单的调整方法是1不许省略这样连续两个汉字就一定表示一个斜向了还不影响接档三行二列的自动元件、流体草木茂盛处、梯子勇士始终脸朝上、柜台的绘制视频播放动画多音效可先不修改动画编辑器和导出器给animate/json文件约定好语法并被drawAnimate/drawHeroAnimate执行即可音频的变调变速和声道偏移、bgs目前只能由作者自行用插件实现和me播放时bgm暂时淡出另外建议提供bgm播放进度读写、多个bgm独立调节音量的API和事件以及一个bgm循环插件思路是事先约定每个bgm的循环起止点并行检查是否越过终点越过则跳转至起点。
3. 希望cannotMove深蓝点的高亮方式优化显示出具体的禁行方向如果嫌遮挡可以提供一个按钮切换高亮方式而不是只显示个深蓝点。另外cannotMove目前只控制out不控制in建议追加in