📖 character_one_life 表
一命模式角色表,用于硬核(Hardcore)/一命模式服务器的死亡追踪与奖励系统。
📋 表概述
character_one_life 表是特色功能表,用于"一命模式"(铁人/硬核)服务器。记录了一命角色的生存状态、死亡原因(被哪个怪物或玩家杀死),以及奖励领取情况。是硬核服务器核心数据表之一。
- 主键:(GUID)
- 引擎:InnoDB
- 关联表:characters(通过 GUID)
📊 表结构
| 字段名 | 数据类型 | 默认值 | 说明 |
|---|---|---|---|
GUID | int UNSIGNED | 0 | 角色 guidLow,关联 characters.guid |
NAME | varchar(12) | NULL | 角色名称 |
DEAD | tinyint | 0 | 是否已死亡:0=存活, 1=已死亡 |
KILLER_CREATURE | text | (无) | 杀死该玩家的怪物信息 |
KILLER_PLAYER | varchar(12) | '0' | 杀死该玩家的玩家名称 |
Q_Name | varchar(12) | NULL | 领取奖励的玩家名称 |
Q_ID | int UNSIGNED | 0 | 领取奖励任务的ID |
🔍 重要字段详解
DEAD — 死亡标记
一命模式的核心字段。当角色死亡时设为 1,角色将被标记为"已死亡"状态,无法再进行正常游戏(通常无法复活)。一命角色死亡即永久失效。
KILLER_CREATURE / KILLER_PLAYER — 死亡原因
记录导致角色死亡的元凶。KILLER_CREATURE 存储怪物名称或生物 ID(被杀死的怪物),KILLER_PLAYER 存储玩家名称(被玩家击杀)。这两个字段用于死亡榜和死亡原因展示。
Q_Name / Q_ID — 奖励领取
一命模式通常允许其他玩家"继承"死亡角色未领取的奖励。Q_Name 记录领取奖励的玩家名,Q_ID 记录对应的任务或奖励 ID。
💡 SQL查询示例
查询所有存活的一命角色
SELECT GUID, NAME FROM character_one_life WHERE DEAD = 0;
查询一命玩家死亡排行榜(按死亡原因统计)
SELECT KILLER_CREATURE, COUNT(*) AS 击杀数
FROM character_one_life
WHERE DEAD = 1 AND KILLER_CREATURE IS NOT NULL
GROUP BY KILLER_CREATURE
ORDER BY 击杀数 DESC
LIMIT 10;
❓ 常见问题
Q: 一命角色死亡后还能恢复吗?
技术上可以将 DEAD 字段改回 0 来恢复角色。但在一命模式服务器中,GM 不应随意复活硬核角色,这会破坏游戏规则的公平性和严肃性。
Q: 如何开启一命模式功能?
一命模式通常是服务端 C++ 模块或 Lua 脚本实现的特色功能,需要在服务端配置中启用相应模块。数据库表只是数据存储,功能逻辑需要代码支持。