Skip to content

Conversation

@lRENyaaa
Copy link

当客户端在房间状态SelectChart之外触发重连时,由于谱面信息只会跟随SelectChart发送,导致服务器返回的房间信息里没有谱面信息,致使玩家在WaitForReady阶段重连后点击准备按钮时客户端会panic

为确保兼容性,做了一个非常hacky的修改:在重连时发送的房间信息将永远为SelectChart状态,随即发送ChangeState Command以切换到其他状态,这在客户端理应是几乎无感的,且只影响重连

…anic when clicking the Ready button

If a client reconnects while not in the SelectChart state, the server sends only the current state
without chart info (which is only sent in SelectChart). As a result, the client lacks the necessary
chart info, causing a panic when the Ready button is clicked during the WaitingForReady phase.

To maintain protocol compatibility, a hacky workaround is applied: upon reconnection, the server
first sends room info with the state temporarily set to SelectChart, followed by a state switch to
the correct state. This ensures the client receives the required chart info and avoids crashes.
@lRENyaaa lRENyaaa changed the title 修复当玩家在房间WaitForReady阶段触发断线重连后点击准备按钮时客户端panic 修复当玩家在房间WaitForReady状态下触发断线重连后点击准备按钮时客户端panic Sep 20, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant