更新三个按钮 修了一堆bug

This commit is contained in:
2025-05-27 19:53:17 +08:00
parent 8215cfa3ee
commit 94f09b8dd9
47 changed files with 10303 additions and 3085 deletions

100
test_version_validation.md Normal file
View File

@@ -0,0 +1,100 @@
# 版本号验证功能测试指南
## 功能概述
实现了客户端和服务端的版本号验证机制,确保只有版本匹配的客户端才能登录或注册游戏。
## 实现的功能
### 1. 客户端修改
-`MainGame.gd` 中定义了客户端版本号:`const client_version :String = "1.0.1"`
-`TCPNetworkManager.gd` 中修改了登录和注册请求,添加了版本号字段
-`login_panel.gd` 中添加了版本号显示功能
### 2. 服务端修改
-`TCPGameServer.py` 中定义了服务端版本号:`server_version: str = "1.0.1"`
- 添加了版本号验证函数 `_check_client_version()`
- 在登录和注册处理中添加了版本号验证逻辑
- 在服务器启动时显示版本信息
## 测试步骤
### 测试1版本匹配正常情况
1. 确保客户端和服务端版本号都是 "1.0.1"
2. 启动服务器,应该看到:
```
萌芽农场游戏服务器 v1.0.1
服务器地址: 0.0.0.0:4040
==================================================
```
3. 启动客户端,应该看到:
```
萌芽农场客户端 v1.0.1 启动
```
4. 在登录界面应该显示:`萌芽农场 v1.0.1 - 欢迎使用`
5. 尝试登录或注册,应该正常工作
### 测试2版本不匹配客户端版本较低
1. 修改客户端版本号为 "0.9.0"
```gdscript
const client_version :String = "0.9.0"
```
2. 保持服务端版本为 "1.0.0"
3. 重新启动客户端
4. 尝试登录,应该收到错误消息:
```
版本不匹配!客户端版本: 0.9.0, 服务端版本: 1.0.1,请更新客户端
```
5. 尝试注册,应该收到相同的错误消息
### 测试3版本不匹配客户端版本较高
1. 修改客户端版本号为 "1.1.0"
```gdscript
const client_version :String = "1.1.0"
```
2. 保持服务端版本为 "1.0.1"
3. 重新启动客户端
4. 尝试登录或注册,应该收到版本不匹配的错误消息
### 测试4空版本号处理
1. 修改客户端代码,发送空的版本号
2. 尝试登录或注册,应该被拒绝
## 预期结果
### 成功情况
- 版本匹配时,登录和注册功能正常工作
- 客户端和服务端都显示正确的版本信息
### 失败情况
- 版本不匹配时,登录和注册被拒绝
- 显示清晰的错误消息,指出版本不匹配的具体信息
- 服务端记录相应的警告日志
## 日志示例
### 服务端日志(版本匹配)
```
[INFO] [SERVER] TCP游戏服务器初始化 - 版本: 1.0.1
[INFO] [SERVER] 用户 12345 登录成功
```
### 服务端日志(版本不匹配)
```
[WARNING] [SERVER] 用户 12345 登录失败: 版本不匹配 (客户端: 0.9.0, 服务端: 1.0.1)
```
## 注意事项
1. **版本号格式**:建议使用语义化版本号格式(如 1.0.0
2. **向后兼容性**:如果需要支持多个版本,可以修改验证逻辑
3. **版本更新策略**
- 主版本号变更:不兼容的重大更新
- 次版本号变更:向后兼容的功能更新
- 修订版本号变更:向后兼容的问题修复
## 扩展功能建议
1. **版本兼容性矩阵**:支持多个兼容版本
2. **自动更新提示**:客户端检测到版本不匹配时提供更新链接
3. **最低版本要求**:设置服务端支持的最低客户端版本
4. **版本信息API**:提供接口查询当前服务端版本和兼容的客户端版本列表