431 lines
8.0 KiB
Markdown
431 lines
8.0 KiB
Markdown
|
|
# 游戏功能模块实现文档
|
|||
|
|
|
|||
|
|
## 概述
|
|||
|
|
本文档记录了所有游戏功能模块的实现细节,包括命令、参数、响应处理和UI展示。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 一、每日功能模块
|
|||
|
|
|
|||
|
|
### 1. 队伍阵容 (TeamStatus.vue)
|
|||
|
|
**组件位置**: `src/components/TeamStatus.vue`
|
|||
|
|
|
|||
|
|
**功能描述**: 显示和切换队伍阵容
|
|||
|
|
|
|||
|
|
**命令**:
|
|||
|
|
- 获取队伍信息: `presetteam_getinfo`
|
|||
|
|
- 参数: `{}`
|
|||
|
|
- 响应: 存储在 `tokenStore.gameData.presetTeam`
|
|||
|
|
|
|||
|
|
- 切换队伍: `presetteam_saveteam`
|
|||
|
|
- 参数: `{ teamId: number }`
|
|||
|
|
- 响应: 更新当前使用的队伍ID
|
|||
|
|
|
|||
|
|
**数据结构**:
|
|||
|
|
```javascript
|
|||
|
|
{
|
|||
|
|
useTeamId: number, // 当前使用的队伍ID (1-4)
|
|||
|
|
teams: {
|
|||
|
|
[teamId]: {
|
|||
|
|
teamInfo: {
|
|||
|
|
[position]: {
|
|||
|
|
heroId: number,
|
|||
|
|
level: number,
|
|||
|
|
...
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**UI显示**:
|
|||
|
|
- 队伍选择器 (1-4按钮)
|
|||
|
|
- 当前队伍阵容 (英雄头像列表)
|
|||
|
|
- 刷新按钮
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 2. 每日任务 (DailyTaskStatus.vue)
|
|||
|
|
**组件位置**: `src/components/DailyTaskStatus.vue`
|
|||
|
|
|
|||
|
|
**功能描述**: 显示每日任务完成状态
|
|||
|
|
|
|||
|
|
**命令**:
|
|||
|
|
- 任务数据通过角色信息获取: `role_getroleinfo`
|
|||
|
|
- 参数: `{}`
|
|||
|
|
- 响应: 存储在 `tokenStore.gameData.roleInfo`
|
|||
|
|
|
|||
|
|
**UI显示**:
|
|||
|
|
- 任务列表
|
|||
|
|
- 完成状态标识
|
|||
|
|
- 进度条
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 3. 咸将塔 (TowerStatus.vue)
|
|||
|
|
**组件位置**: `src/components/TowerStatus.vue`
|
|||
|
|
|
|||
|
|
**功能描述**: 爬塔功能
|
|||
|
|
|
|||
|
|
**命令**:
|
|||
|
|
- 获取塔信息: `tower_getinfo`
|
|||
|
|
- 参数: `{}`
|
|||
|
|
- 响应: 存储在 `tokenStore.gameData.roleInfo.role.tower`
|
|||
|
|
|
|||
|
|
- 开始爬塔: `fight_starttower`
|
|||
|
|
- 参数: `{}`
|
|||
|
|
- 响应: 爬塔结果
|
|||
|
|
|
|||
|
|
**数据结构**:
|
|||
|
|
```javascript
|
|||
|
|
{
|
|||
|
|
tower: {
|
|||
|
|
id: number, // 塔层ID (floor*10 + layer)
|
|||
|
|
energy: number // 剩余体力
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**UI显示**:
|
|||
|
|
- 当前层数 (floor-layer)
|
|||
|
|
- 剩余体力
|
|||
|
|
- 爬塔按钮
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 4. 挂机时间
|
|||
|
|
**组件位置**: `src/components/GameStatus.vue` (内联代码)
|
|||
|
|
|
|||
|
|
**功能描述**: 挂机时间管理
|
|||
|
|
|
|||
|
|
**命令**:
|
|||
|
|
- 加钟: `system_mysharecallback`
|
|||
|
|
- 参数: `{ isSkipShareCard: true, type: 2 }`
|
|||
|
|
- 发送4次,间隔300ms
|
|||
|
|
|
|||
|
|
- 领取奖励: `system_claimhangupreward`
|
|||
|
|
- 参数: `{}`
|
|||
|
|
- 配合分享回调使用
|
|||
|
|
|
|||
|
|
**数据结构**:
|
|||
|
|
```javascript
|
|||
|
|
{
|
|||
|
|
hangUp: {
|
|||
|
|
lastTime: number, // 开始挂机时间
|
|||
|
|
hangUpTime: number, // 挂机总时长
|
|||
|
|
remainingTime: number, // 剩余时间
|
|||
|
|
elapsedTime: number // 已挂机时间
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**UI显示**:
|
|||
|
|
- 挂机倒计时
|
|||
|
|
- 已挂机时间
|
|||
|
|
- 加钟按钮
|
|||
|
|
- 领取奖励按钮
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 5. 咸鱼大冲关
|
|||
|
|
**组件位置**: `src/components/GameStatus.vue` (内联代码)
|
|||
|
|
|
|||
|
|
**功能描述**: 自动答题功能
|
|||
|
|
|
|||
|
|
**命令**:
|
|||
|
|
- 开始答题: `study_startgame`
|
|||
|
|
- 参数: `{}`
|
|||
|
|
- 自动答题流程由 tokenStore 处理
|
|||
|
|
|
|||
|
|
**数据结构**:
|
|||
|
|
```javascript
|
|||
|
|
{
|
|||
|
|
studyStatus: {
|
|||
|
|
isAnswering: boolean,
|
|||
|
|
isCompleted: boolean,
|
|||
|
|
questionCount: number,
|
|||
|
|
answeredCount: number,
|
|||
|
|
status: string,
|
|||
|
|
timestamp: number
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**UI显示**:
|
|||
|
|
- 答题状态标识
|
|||
|
|
- 进度显示
|
|||
|
|
- 一键答题按钮
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 6. 盐罐机器人
|
|||
|
|
**组件位置**: `src/components/GameStatus.vue` (内联代码)
|
|||
|
|
|
|||
|
|
**功能描述**: 盐罐机器人管理
|
|||
|
|
|
|||
|
|
**命令**:
|
|||
|
|
- 停止: `bottlehelper_stop`
|
|||
|
|
- 参数: `{}`
|
|||
|
|
|
|||
|
|
- 启动: `bottlehelper_start`
|
|||
|
|
- 参数: `{}`
|
|||
|
|
|
|||
|
|
**数据结构**:
|
|||
|
|
```javascript
|
|||
|
|
{
|
|||
|
|
bottleHelpers: {
|
|||
|
|
helperStopTime: number // 停止时间戳
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**UI显示**:
|
|||
|
|
- 运行状态
|
|||
|
|
- 剩余时间倒计时
|
|||
|
|
- 启动/重启按钮
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 二、俱乐部功能模块
|
|||
|
|
|
|||
|
|
### 1. 俱乐部签到
|
|||
|
|
**组件位置**: `src/components/GameStatus.vue` (内联代码)
|
|||
|
|
|
|||
|
|
**功能描述**: 俱乐部每日签到
|
|||
|
|
|
|||
|
|
**命令**:
|
|||
|
|
- 签到: `legion_signin`
|
|||
|
|
- 参数: `{}`
|
|||
|
|
- 响应: 更新角色信息
|
|||
|
|
|
|||
|
|
**数据结构**:
|
|||
|
|
```javascript
|
|||
|
|
{
|
|||
|
|
statisticsTime: {
|
|||
|
|
'legion:sign:in': number // 签到时间戳
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**UI显示**:
|
|||
|
|
- 签到状态
|
|||
|
|
- 俱乐部名称
|
|||
|
|
- 签到按钮
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 2. 俱乐部赛车 (CarManagement.vue)
|
|||
|
|
**组件位置**: `src/components/CarManagement.vue`
|
|||
|
|
|
|||
|
|
**功能描述**: 赛车管理和比赛
|
|||
|
|
|
|||
|
|
**命令**: (需要查看CarManagement组件)
|
|||
|
|
- 相关命令在该组件中定义
|
|||
|
|
|
|||
|
|
**UI显示**:
|
|||
|
|
- 赛车信息
|
|||
|
|
- 比赛状态
|
|||
|
|
- 操作按钮
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 3. 俱乐部信息 (ClubInfo.vue)
|
|||
|
|
**组件位置**: `src/components/ClubInfo.vue`
|
|||
|
|
|
|||
|
|
**功能描述**: 显示俱乐部详细信息
|
|||
|
|
|
|||
|
|
**命令**:
|
|||
|
|
- 获取俱乐部信息: `legion_getinfo`
|
|||
|
|
- 参数: `{}`
|
|||
|
|
- 响应: 存储在 `tokenStore.gameData.legionInfo`
|
|||
|
|
|
|||
|
|
**数据结构**:
|
|||
|
|
```javascript
|
|||
|
|
{
|
|||
|
|
legionInfo: {
|
|||
|
|
info: {
|
|||
|
|
id: number,
|
|||
|
|
name: string,
|
|||
|
|
level: number,
|
|||
|
|
power: number,
|
|||
|
|
leaderId: number,
|
|||
|
|
members: { [roleId]: memberInfo }
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**UI显示**:
|
|||
|
|
- 俱乐部概览 (战力、段位、成员数等)
|
|||
|
|
- 成员列表
|
|||
|
|
- 盐场战绩
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 4. 俱乐部排位
|
|||
|
|
**组件位置**: `src/components/GameStatus.vue` (内联代码)
|
|||
|
|
|
|||
|
|
**功能描述**: 俱乐部排位报名
|
|||
|
|
|
|||
|
|
**命令**:
|
|||
|
|
- 报名排位: `legionmatch_rolesignup`
|
|||
|
|
- 参数: `{}`
|
|||
|
|
- 响应: 更新报名状态
|
|||
|
|
|
|||
|
|
**数据结构**:
|
|||
|
|
```javascript
|
|||
|
|
{
|
|||
|
|
statistics: {
|
|||
|
|
'last:legion:match:sign:up:time': number // 报名时间戳
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**UI显示**:
|
|||
|
|
- 报名状态
|
|||
|
|
- 赛事说明
|
|||
|
|
- 报名按钮
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 三、活动功能模块
|
|||
|
|
|
|||
|
|
### 1. 月度任务
|
|||
|
|
**组件位置**: `src/components/GameStatus.vue` (内联代码)
|
|||
|
|
|
|||
|
|
**功能描述**: 月度钓鱼和竞技场任务管理
|
|||
|
|
|
|||
|
|
**命令**:
|
|||
|
|
- 获取月度数据: `activity_get`
|
|||
|
|
- 参数: `{}`
|
|||
|
|
- 响应: 月度活动数据
|
|||
|
|
|
|||
|
|
- 钓鱼: `artifact_lottery`
|
|||
|
|
- 参数: `{ lotteryNumber: number, newFree: true, type: 1 }`
|
|||
|
|
- 免费3次后消耗资源
|
|||
|
|
|
|||
|
|
- 竞技场开始: `arena_startarea`
|
|||
|
|
- 参数: `{}`
|
|||
|
|
|
|||
|
|
- 获取目标: `arena_getareatarget`
|
|||
|
|
- 参数: `{ refresh: boolean }`
|
|||
|
|
|
|||
|
|
- 战斗: `fight_startareaarena`
|
|||
|
|
- 参数: `{ targetId: number }`
|
|||
|
|
|
|||
|
|
**数据结构**:
|
|||
|
|
```javascript
|
|||
|
|
{
|
|||
|
|
monthActivity: {
|
|||
|
|
myMonthInfo: {
|
|||
|
|
'2': { num: number } // 钓鱼次数
|
|||
|
|
},
|
|||
|
|
myArenaInfo: {
|
|||
|
|
num: number // 竞技场次数
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**目标值**:
|
|||
|
|
- 钓鱼: 320次/月
|
|||
|
|
- 竞技场: 240次/月
|
|||
|
|
|
|||
|
|
**UI显示**:
|
|||
|
|
- 钓鱼进度
|
|||
|
|
- 竞技场进度
|
|||
|
|
- 剩余天数
|
|||
|
|
- 补齐按钮
|
|||
|
|
- 一键完成按钮
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 2. 咸将升级模块 (UpgradeModule.vue)
|
|||
|
|
**组件位置**: `src/components/UpgradeModule.vue`
|
|||
|
|
|
|||
|
|
**功能描述**: 批量咸将升星和图鉴升级
|
|||
|
|
|
|||
|
|
**命令**:
|
|||
|
|
- 咸将升星: `hero_heroupgradestar`
|
|||
|
|
- 参数: `{ heroId: number }`
|
|||
|
|
- 批量执行
|
|||
|
|
|
|||
|
|
- 图鉴升级: `book_upgrade`
|
|||
|
|
- 参数: `{ heroId: number }`
|
|||
|
|
- 批量执行
|
|||
|
|
|
|||
|
|
- 领取图鉴奖励: `book_claimpointreward`
|
|||
|
|
- 参数: `{}`
|
|||
|
|
- 可配置次数
|
|||
|
|
|
|||
|
|
**咸将ID范围**:
|
|||
|
|
- 第一批: 101-120
|
|||
|
|
- 第二批: 201-228
|
|||
|
|
- 第三批: 301-314
|
|||
|
|
|
|||
|
|
**配置项**:
|
|||
|
|
- 升星次数: 1-100
|
|||
|
|
- 图鉴升级次数: 1-100
|
|||
|
|
- 领取奖励: 开关
|
|||
|
|
- 领取奖励次数: 1-100
|
|||
|
|
|
|||
|
|
**执行顺序**: 固定为先升星后图鉴
|
|||
|
|
|
|||
|
|
**UI显示**:
|
|||
|
|
- 进度条
|
|||
|
|
- 当前操作说明
|
|||
|
|
- 配置项输入
|
|||
|
|
- 开始升级按钮
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 四、身份牌 (IdentityCard.vue)
|
|||
|
|
**组件位置**: `src/components/IdentityCard.vue`
|
|||
|
|
|
|||
|
|
**功能描述**: 显示玩家基本信息
|
|||
|
|
|
|||
|
|
**数据来源**: `tokenStore.gameData.roleInfo`
|
|||
|
|
|
|||
|
|
**UI显示**:
|
|||
|
|
- 玩家头像
|
|||
|
|
- 玩家名称
|
|||
|
|
- 等级、战力等基本信息
|
|||
|
|
- 嵌入式显示模式
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 重构方案
|
|||
|
|
|
|||
|
|
### 新的组件结构
|
|||
|
|
```
|
|||
|
|
GameStatus.vue (使用 n-tabs)
|
|||
|
|
├── IdentityCard (常驻顶部)
|
|||
|
|
├── Tab 1: 每日
|
|||
|
|
│ ├── TeamStatus
|
|||
|
|
│ ├── DailyTaskStatus
|
|||
|
|
│ ├── TowerStatus
|
|||
|
|
│ ├── HangUpStatus (新建组件)
|
|||
|
|
│ ├── StudyStatus (新建组件)
|
|||
|
|
│ └── BottleHelperStatus (新建组件)
|
|||
|
|
├── Tab 2: 俱乐部
|
|||
|
|
│ ├── LegionSigninStatus (新建组件)
|
|||
|
|
│ ├── CarManagement
|
|||
|
|
│ ├── ClubInfo
|
|||
|
|
│ └── LegionMatchStatus (新建组件)
|
|||
|
|
└── Tab 3: 活动
|
|||
|
|
├── MonthlyTaskStatus (新建组件)
|
|||
|
|
└── UpgradeModule
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 需要提取的内联组件
|
|||
|
|
1. HangUpStatus - 挂机时间
|
|||
|
|
2. StudyStatus - 咸鱼大冲关
|
|||
|
|
3. BottleHelperStatus - 盐罐机器人
|
|||
|
|
4. LegionSigninStatus - 俱乐部签到
|
|||
|
|
5. LegionMatchStatus - 俱乐部排位
|
|||
|
|
6. MonthlyTaskStatus - 月度任务
|
|||
|
|
|
|||
|
|
这些组件将保持原有的逻辑和UI,仅从GameStatus.vue中分离出来。
|
|||
|
|
|