From 131d3f70a292a5b857cca1f2d4a3a7734611cba2 Mon Sep 17 00:00:00 2001 From: chenlimao Date: Tue, 19 May 2026 14:15:51 +0800 Subject: [PATCH] =?UTF-8?q?fix=EF=BC=9A=E4=BF=AE=E5=A4=8D=E7=AE=AD?= =?UTF-8?q?=E6=95=B0=E5=B1=95=E7=A4=BA=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/HeaderProgress.vue | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/components/HeaderProgress.vue b/src/components/HeaderProgress.vue index b4bd643..464d31d 100644 --- a/src/components/HeaderProgress.vue +++ b/src/components/HeaderProgress.vue @@ -65,8 +65,12 @@ async function onReceiveMessage(message) { audioManager.play("比赛结束", false); } else if (type === MESSAGETYPESV2.ShootResult) { if (melee.value && current.playerId !== user.value.id) return; - // 从 indexMap 按当前用户 id 取已射箭数,由后端维护准确值,不在前端自增 - if (current.playerId === user.value.id) currentShot.value = current.indexMap?.[user.value.id] ?? currentShot.value; + // 从 indexMap 按当前用户 id 取已射箭数,由后端维护准确值,不在前端自增。 + // 注意:后端在 ShootResult 中会将 playerId 重置为 0(无当前射手), + // 因此不能依赖 playerId === user.id 判断,改为直接读取 indexMap[user.id]。 + // indexMap[user.id] 只在本人射箭后才增加,队友射箭时该值不变,逻辑等价且更准确。 + const myShot = current.indexMap?.[user.value.id]; + if (myShot !== undefined) currentShot.value = myShot; if (message.shootData) { let key = []; key.push(