log_encounter - 副本首领战斗日志
基于 AzerothCore Characters 数据库 · 副本首领击杀/团灭战斗记录表
📋 表概述
log_encounter 表记录副本中首领战斗的完成情况,包括击杀记录和团灭记录。每次首领战斗结束(击杀或团灭)都会生成一条记录,包含参与玩家列表、副本信息、困难度和战斗类型等。
- 首领击杀记录
- 团灭记录追踪
- 参与玩家存档
- 副本进度审计
该表无主键(日志型设计)。playersInfo 为TEXT类型,存储参与玩家的序列化信息。creditType/creditEntry 记录战斗的触发方式。
📊 表结构
| 字段名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| time | datetime | NOT NULL | 战斗发生时间 |
| map | smallint UNSIGNED | NOT NULL | 副本地图ID |
| difficulty | tinyint UNSIGNED | NOT NULL | 副本难度 |
| creditType | tinyint UNSIGNED | NOT NULL | 计数类型(0=击杀,1=团灭) |
| creditEntry | int UNSIGNED | NOT NULL | 首领/怪物entry ID |
| playersInfo | text | NOT NULL | 参与玩家信息(序列化数据) |
🔍 重要字段详解
⚔️ creditType - 战斗结果
详细说明:标识此次战斗的结果是击杀还是团灭。
- 0 = 首领被击杀(进度推进)
- 1 = 团灭(全队死亡/战斗失败)
- 击杀记录用于副本进度锁定
- 团灭记录用于难度分析和数据统计
🐉 creditEntry - 首领ID
详细说明:被击杀/导致团灭的首领entry ID。
- 对应 creature_template.entry 中的首领ID
- 例如:巫妖王=36597,尤格萨隆=33288
- 配合 map 字段精确定位是哪场战斗
👥 playersInfo - 参与玩家
详细说明:TEXT类型,存储战斗中所有参与玩家的序列化数据。
- 包含玩家GUID、名称、职业等信息
- 序列化格式,通常为JSON或自定义分隔格式
- 用于战斗记录回查和玩家参与追踪
💡 SQL示例
示例1:查询最近的首领击杀记录
SELECT
time, map, difficulty,
creditType, creditEntry,
LEFT(playersInfo, 100) AS players_preview
FROM log_encounter
WHERE creditType = 0
ORDER BY time DESC
LIMIT 20;示例2:统计各首领的击杀和团灭次数
SELECT
map, creditEntry,
SUM(CASE WHEN creditType = 0 THEN 1 ELSE 0 END) AS kills,
SUM(CASE WHEN creditType = 1 THEN 1 ELSE 0 END) AS wipes
FROM log_encounter
GROUP BY map, creditEntry
ORDER BY map, kills DESC;❓ 常见问题
Q1: 日志数据会一直保留吗?
是的,此表为日志型存储,建议定期清理或归档历史数据。数据量大的副本服务器可能需要更频繁地清理。
Q2: playersInfo 格式是什么?
由服务器代码序列化生成,通常是分隔符连接的玩家数据串,具体格式取决于AzerothCore版本的实现。