📖 game_event_condition_save 表
游戏事件条件保存表,记录世界事件中条件任务的完成进度。
📋 表概述
game_event_condition_save 表用于跟踪世界事件中带条件的子任务的完成进度。某些世界事件(如安其拉开门)需要玩家完成一系列条件任务才能推进,该表记录每个条件的完成数值(done),用于持久化事件进度。
- 主键:(eventEntry, condition_id)
- 引擎:InnoDB
- 关联表:game_event_save(eventEntry)、world 库 game_event
📊 表结构
| 字段名 | 数据类型 | 默认值 | 说明 |
|---|---|---|---|
eventEntry | tinyint UNSIGNED | (无) | 事件ID |
condition_id | int UNSIGNED | 0 | 条件任务ID,标识事件中的子条件 |
done | float | 0 | 条件完成进度值(可为小数,如百分比) |
🔍 重要字段详解
condition_id — 条件标识
世界事件中的子条件编号。一个大型世界事件可能包含多个条件任务(如收集物资、击杀首领、完成任务等),每个条件有独立的 condition_id 和完成进度。
done — 完成进度
使用 float 类型存储进度值。可以是绝对数值(如已收集物资数量),也可以是百分比(如 0.0 到 1.0)。当 done 值达到事件定义的目标后,条件即视为完成,事件推进到下一阶段。
💡 SQL查询示例
查看某个事件的所有条件进度
SELECT eventEntry, condition_id, done,
CASE WHEN done >= 1 THEN '已完成' ELSE '进行中' END AS 状态
FROM game_event_condition_save
WHERE eventEntry = 1;
手动完成某个事件条件
UPDATE game_event_condition_save
SET done = 100
WHERE eventEntry = 1 AND condition_id = 5;
❓ 常见问题
Q: done 字段为什么是 float 而不是整数?
使用 float 可以表示小数进度(如百分比 0.75 表示 75%)。某些事件条件需要精确到小数的进度值,如物资收集可能需要 10000 个物品,当前收集了 7500 个,done = 0.75。
Q: 这个表的数据会被自动清理吗?
通常不会自动清理。事件结束后数据保留作为历史记录。如果需要清理,可以手动删除已结束事件的记录。