1.0
This commit is contained in:
258
MD说明文件夹/月度任务命令修复说明.md
Normal file
258
MD说明文件夹/月度任务命令修复说明.md
Normal file
@@ -0,0 +1,258 @@
|
||||
# 月度任务命令修复说明
|
||||
|
||||
## ❌ 问题原因
|
||||
|
||||
**之前的问题**: 月度任务功能没有实际发送命令,控制台没有日志。
|
||||
|
||||
**根本原因**: `src/utils/gameCommands.js` 中缺少月度任务相关的命令定义。
|
||||
|
||||
---
|
||||
|
||||
## ✅ 已修复
|
||||
|
||||
已在 `gameCommands.js` 中添加以下5个命令(第716-805行):
|
||||
|
||||
### 1. activity_get - 获取月度活动信息
|
||||
```javascript
|
||||
activity_get(ack = 0, seq = 0, params = {}) {
|
||||
return {
|
||||
ack,
|
||||
body: this.g_utils.bon.encode({ ...params }),
|
||||
cmd: "activity_get",
|
||||
seq,
|
||||
rtt: randomInt(0, 500),
|
||||
code: 0,
|
||||
time: Date.now()
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 2. fishing_fish - 钓鱼
|
||||
```javascript
|
||||
fishing_fish(ack = 0, seq = 0, params = {}) {
|
||||
return {
|
||||
ack,
|
||||
body: this.g_utils.bon.encode({
|
||||
fishingType: 1, // 1=普通鱼竿, 2=金鱼竿
|
||||
...params
|
||||
}),
|
||||
cmd: "fishing_fish",
|
||||
seq,
|
||||
rtt: randomInt(0, 500),
|
||||
code: 0,
|
||||
time: Date.now()
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 3. arena_matchopponent - 竞技场匹配对手
|
||||
```javascript
|
||||
arena_matchopponent(ack = 0, seq = 0, params = {}) {
|
||||
return {
|
||||
ack,
|
||||
body: this.g_utils.bon.encode({ ...params }),
|
||||
cmd: "arena_matchopponent",
|
||||
seq,
|
||||
rtt: randomInt(0, 500),
|
||||
code: 0,
|
||||
time: Date.now()
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 4. arena_battle - 竞技场战斗
|
||||
```javascript
|
||||
arena_battle(ack = 0, seq = 0, params = {}) {
|
||||
return {
|
||||
ack,
|
||||
body: this.g_utils.bon.encode({
|
||||
battleType: 1,
|
||||
...params
|
||||
}),
|
||||
cmd: "arena_battle",
|
||||
seq,
|
||||
rtt: randomInt(0, 500),
|
||||
code: 0,
|
||||
time: Date.now()
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 5. monthlyactivity_receivereward - 领取月度任务奖励
|
||||
```javascript
|
||||
monthlyactivity_receivereward(ack = 0, seq = 0, params = {}) {
|
||||
return {
|
||||
ack,
|
||||
body: this.g_utils.bon.encode({
|
||||
rewardId: 1,
|
||||
...params
|
||||
}),
|
||||
cmd: "monthlyactivity_receivereward",
|
||||
seq,
|
||||
rtt: randomInt(0, 500),
|
||||
code: 0,
|
||||
time: Date.now()
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🧪 现在可以测试
|
||||
|
||||
### 测试步骤:
|
||||
|
||||
1. **重启开发服务器**
|
||||
```bash
|
||||
# 停止当前服务器 (Ctrl+C)
|
||||
# 重新启动
|
||||
npm run dev
|
||||
```
|
||||
|
||||
2. **刷新浏览器页面** (F5 或 Ctrl+R)
|
||||
|
||||
3. **打开浏览器控制台** (F12)
|
||||
|
||||
4. **测试月度任务功能**:
|
||||
- 点击"刷新进度"按钮
|
||||
- 观察控制台是否有日志输出
|
||||
- 查看Network标签,是否有WebSocket消息
|
||||
|
||||
---
|
||||
|
||||
## 📊 预期效果
|
||||
|
||||
### 控制台应该显示:
|
||||
|
||||
```
|
||||
🔗 [WS] WebSocket连接: token_xxx
|
||||
📤 [TOKEN] 发送消息: activity_get
|
||||
📨 [TOKEN] 收到响应: activity_get
|
||||
月度任务进度已更新
|
||||
```
|
||||
|
||||
### Network标签应该显示:
|
||||
|
||||
- WebSocket连接活动
|
||||
- 发送的消息帧(activity_get)
|
||||
- 接收的响应帧
|
||||
|
||||
---
|
||||
|
||||
## ⚠️ 如果还是没有日志
|
||||
|
||||
### 检查以下几点:
|
||||
|
||||
1. **WebSocket是否连接**
|
||||
- 确认已选择Token
|
||||
- 查看WebSocket连接状态
|
||||
- 控制台是否显示"WebSocket连接成功"
|
||||
|
||||
2. **命令是否正确发送**
|
||||
```javascript
|
||||
// 在控制台测试
|
||||
tokenStore.sendMessageWithPromise(
|
||||
tokenStore.selectedToken.id,
|
||||
'activity_get',
|
||||
{},
|
||||
10000
|
||||
).then(result => {
|
||||
console.log('测试结果:', result)
|
||||
})
|
||||
```
|
||||
|
||||
3. **服务器是否支持这些命令**
|
||||
- 有些服务器可能没有实现这些命令
|
||||
- 检查服务器响应是否有错误码
|
||||
|
||||
4. **检查日志配置**
|
||||
```javascript
|
||||
// 在控制台执行,确保日志显示
|
||||
localStorage.setItem('batchTaskLogConfig', JSON.stringify({
|
||||
websocket: true
|
||||
}))
|
||||
location.reload()
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🔍 调试技巧
|
||||
|
||||
### 1. 监听所有WebSocket消息
|
||||
```javascript
|
||||
// 在控制台执行
|
||||
window.addEventListener('message', (e) => {
|
||||
console.log('WebSocket消息:', e.data)
|
||||
})
|
||||
```
|
||||
|
||||
### 2. 查看发送的命令
|
||||
```javascript
|
||||
// 临时添加到GameStatus.vue的fetchMonthlyActivity函数
|
||||
console.log('准备发送命令: activity_get')
|
||||
const result = await tokenStore.sendMessageWithPromise(...)
|
||||
console.log('收到响应:', result)
|
||||
```
|
||||
|
||||
### 3. 检查gameCommands实例
|
||||
```javascript
|
||||
// 在控制台
|
||||
import { gameCommands } from '@/utils/gameCommands.js'
|
||||
console.log(gameCommands)
|
||||
console.log(typeof gameCommands.activity_get) // 应该是 'function'
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📝 命令参数说明
|
||||
|
||||
### activity_get
|
||||
- **作用**: 获取月度活动信息
|
||||
- **参数**: 无(或服务器特定参数)
|
||||
- **返回**: 包含myMonthInfo和myArenaInfo的对象
|
||||
|
||||
### fishing_fish
|
||||
- **作用**: 执行钓鱼操作
|
||||
- **参数**:
|
||||
- `fishingType`: 1=普通鱼竿, 2=金鱼竿
|
||||
- **返回**: 钓鱼结果
|
||||
|
||||
### arena_matchopponent
|
||||
- **作用**: 匹配竞技场对手
|
||||
- **参数**: 无
|
||||
- **返回**: 对手信息 { opponent: { roleId, name, power } }
|
||||
|
||||
### arena_battle
|
||||
- **作用**: 进行竞技场战斗
|
||||
- **参数**:
|
||||
- `targetRoleId`: 对手的角色ID
|
||||
- `battleType`: 战斗类型(默认1)
|
||||
- **返回**: 战斗结果
|
||||
|
||||
---
|
||||
|
||||
## ✅ 完成检查清单
|
||||
|
||||
- [x] 添加 activity_get 命令
|
||||
- [x] 添加 fishing_fish 命令
|
||||
- [x] 添加 arena_matchopponent 命令
|
||||
- [x] 添加 arena_battle 命令
|
||||
- [x] 添加 monthlyactivity_receivereward 命令
|
||||
- [ ] 重启开发服务器
|
||||
- [ ] 测试刷新进度功能
|
||||
- [ ] 测试钓鱼补齐功能
|
||||
- [ ] 测试竞技场补齐功能
|
||||
- [ ] 验证控制台日志输出
|
||||
|
||||
---
|
||||
|
||||
## 🎯 下一步
|
||||
|
||||
1. **立即测试**: 重启服务器并测试月度任务功能
|
||||
2. **如果正常**: 继续阶段3(身份卡系统)
|
||||
3. **如果有问题**: 提供控制台日志和Network截图
|
||||
|
||||
---
|
||||
|
||||
**修复完成!现在命令应该可以正常发送了!** 🎉
|
||||
|
||||
Reference in New Issue
Block a user