📋 表概述

character_one_life 表是特色功能表,用于"一命模式"(铁人/硬核)服务器。记录了一命角色的生存状态、死亡原因(被哪个怪物或玩家杀死),以及奖励领取情况。是硬核服务器核心数据表之一。

📊 表结构

字段名数据类型默认值说明
GUIDint UNSIGNED0角色 guidLow,关联 characters.guid
NAMEvarchar(12)NULL角色名称
DEADtinyint0是否已死亡:0=存活, 1=已死亡
KILLER_CREATUREtext(无)杀死该玩家的怪物信息
KILLER_PLAYERvarchar(12)'0'杀死该玩家的玩家名称
Q_Namevarchar(12)NULL领取奖励的玩家名称
Q_IDint UNSIGNED0领取奖励任务的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 脚本实现的特色功能,需要在服务端配置中启用相应模块。数据库表只是数据存储,功能逻辑需要代码支持。