📖 character_arena_stats 表
角色竞技场统计表,记录玩家在每个竞技场槽位(2v2/3v3/5v5)的 MMR 匹配分数据。
📋 表概述
character_arena_stats 表存储每个角色在各个竞技场槽位(slot 0/1/2 分别对应 2v2/3v3/5v5)的匹配分(MMR)数据。记录了当前匹配分和历史最高匹配分,用于竞技场匹配和排名计算。
- 主键:(guid, slot)
- 引擎:InnoDB
- 关联表:characters(guid)、arena_team
📊 表结构
| 字段名 | 数据类型 | 默认值 | 说明 |
|---|---|---|---|
guid | int UNSIGNED | 0 | 角色唯一标识,关联 characters.guid |
slot | tinyint UNSIGNED | 0 | 竞技场槽位:0=2v2, 1=3v3, 2=5v5, 3=单排 |
matchMakerRating | smallint UNSIGNED | 0 | 当前匹配分(MMR),用于系统匹配玩家 |
maxMMR | smallint | (无) | 历史最高匹配分,用于赛季奖励判定 |
🔍 重要字段详解
slot — 竞技场槽位
竞技场类型标识。WoW 3.3.5 版本中,0 代表 2v2、1 代表 3v3、2 代表 5v5。每个角色可以有多个 slot 记录,对应不同类型。
matchMakerRating — 匹配分(MMR)
MMR 是系统用来匹配实力相当的玩家的隐藏分数,与可见的 rating(竞技场等级)不同。MMR 的升降幅度取决于对手实力和比赛结果。
maxMMR — 历史最高匹配分
记录角色在当前赛季中达到的最高 MMR 值。赛季结束时,奖励装备需要达到特定的最高等级门槛,maxMMR 就是判定的依据。
💡 SQL查询示例
查询某个角色的所有竞技场 MMR 数据
SELECT slot, matchMakerRating, maxMMR
FROM character_arena_stats
WHERE guid = 12345;
查询 3v3 竞技场 MMR 排名前10的玩家
SELECT c.name, cas.matchMakerRating, cas.maxMMR
FROM character_arena_stats cas
JOIN characters c ON cas.guid = c.guid
WHERE cas.slot = 1
ORDER BY cas.matchMakerRating DESC
LIMIT 10;
❓ 常见问题
Q: MMR 和竞技场等级有什么区别?
MMR 是系统内部用于匹配的隐藏分数,竞技场等级是玩家可见的排名分数。两者通常相近但不完全相同。匹配系统使用 MMR 来寻找实力相当的对手。
Q: 如何重置某个角色的竞技场数据?
删除 character_arena_stats 中对应 guid 的记录即可。注意这会将所有槽位的数据清空:DELETE FROM character_arena_stats WHERE guid = 12345;