fix: 录像吞开头移动 & 录像冲突

This commit is contained in:
AncTe committed 2024-11-20 17:55:58 +08:00
1 parent fb5df24895
commit 3c5a310146
4 files changed
+21 -18

No files matched your search

+3 -3
View File
@@ -535,7 +535,7 @@ gameKey
}
core.playSound('光标移动');
HeroSkill.toggleSkill(HeroSkill.Blade);
core.status.route.push('skill:Blade');
core.status.route.push('useSkill:Blade');
core.updateStatusBar();
})
.realize('skill2', () => {
@@ -546,7 +546,7 @@ gameKey
HeroSkill.learnedSkill(HeroSkill.Jump)
) {
Mota.Plugin.require('skill_g').jumpSkill();
core.status.route.push('skill:Jump');
core.status.route.push('useSkill:Jump');
} else {
if (core.hasItem('pickaxe')) {
core.useItem('pickaxe');
@@ -562,7 +562,7 @@ gameKey
}
core.playSound('光标移动');
HeroSkill.toggleSkill(HeroSkill.Shield);
core.status.route.push('skill:Shield');
core.status.route.push('useSkill:Shield');
core.updateStatusBar();
})
.realize('debug', () => {
+14 -10
View File
@@ -487,8 +487,10 @@ export class HeroMover extends ObjectMoverBase {
const viewport = HeroMover.viewport;
if (!adapter || !viewport) return;
// if (!core.isReplaying()) {
adapter.sync('startAnimate');
await adapter.all('readyMove');
if (!core.isReplaying() || core.status.replay.speed <= 3) {
adapter.sync('startAnimate');
await adapter.all('readyMove');
}
// }
// 这里要检查前面那一格能不能走,不能走则不触发平滑视角,以避免撞墙上视角卡住
if (!this.ignoreTerrain) {
@@ -512,8 +514,10 @@ export class HeroMover extends ObjectMoverBase {
const viewport = HeroMover.viewport;
if (!adapter || !viewport) return;
// if (!core.isReplaying()) {
await adapter.all('endMove');
adapter.sync('endAnimate');
if (!core.isReplaying() || core.status.replay.speed <= 3) {
await adapter.all('endMove');
adapter.sync('endAnimate');
}
// }
viewport.sync('endMove');
core.clearContinueAutomaticRoute();
@@ -685,12 +689,12 @@ export class HeroMover extends ObjectMoverBase {
const speed = replay === 24 ? 1 : this.moveSpeed / replay;
viewport.all('moveTo', x, y, speed * 1.6);
adapter.sync('setAnimateDir', showDir);
// if (core.isReplaying()) {
// await sleep(speed);
// await adapter.all('setHeroLoc', x, y);
// } else {
await adapter.all('move', moveDir);
// }
if (core.isReplaying() && core.status.replay.speed > 3) {
await sleep(speed);
await adapter.all('setHeroLoc', x, y);
} else {
await adapter.all('move', moveDir);
}
}
/**
+3 -4
View File
@@ -184,12 +184,12 @@ export function init() {
} else {
core.replay();
}
core.status.route.push(`skill:${toEmit}`);
core.status.route.push(`useSkill:${toEmit}`);
return true;
}
core.registerReplayAction('skill', name => {
if (!name.startsWith('skill:')) return false;
core.registerReplayAction('useSkill', name => {
if (!name.startsWith('useSkill:')) return false;
const [, skill] = name.split(':');
return skillAction(skill);
});
@@ -213,7 +213,6 @@ export function init() {
core.registerReplayAction('fly', action => {
if (!action.startsWith('fly:')) return false;
const floorId = action.slice(4) as FloorIds;
const toIndex = core.floorIds.indexOf(floorId);
if (
!core.canUseItem('fly') ||
(core.flags.flyNearStair && !core.nearStair())