📊 表结构

字段名 数据类型 默认值 说明
entry INT UNSIGNED 0 任务ID (主键)
pool_entry INT UNSIGNED 0 池ID
description VARCHAR(255) NULL 描述

🔑 核心字段详解

🆔 entry - 任务ID

详细说明:任务ID,对应quest_template.ID。 取值范围:对应quest_template.ID
  • 表的主键
  • 一个任务只能属于一个池
  • 池刷新时随机选择任务
  • 必须是已存在的任务

🔗 pool_entry - 池ID

详细说明:池ID,对应pool_template.entry。 取值范围:对应pool_template.entry
  • 任务所属的池
  • 池可以包含多个任务
  • 池刷新时选择任务
  • 实现任务随机刷新

📝 description - 描述

详细说明:任务池关系的描述文本。
  • 用于说明任务在池中的作用
  • 方便理解和维护
  • 可以为NULL
  • 建议填写有意义的描述

💡 实际案例

单一任务 配置任务池成员

entry=1000(任务), pool_entry=100(池)

INSERT INTO pool_quest VALUES( 1000, 100, '任务A在池中' );

多任务 配置多个任务池成员

池100包含任务1001、1002、1003

-- 第一个任务 INSERT INTO pool_quest VALUES(1001, 100, '任务A'); -- 第二个任务 INSERT INTO pool_quest VALUES(1002, 100, '任务B'); -- 第三个任务 INSERT INTO pool_quest VALUES(1003, 100, '任务C');

随机任务 配置随机刷新任务

池200包含每日随机任务

-- 每日任务池 INSERT INTO pool_template VALUES(200, 1, '每日随机任务池'); -- 任务1 INSERT INTO pool_quest VALUES(2001, 200, '每日任务1'); -- 任务2 INSERT INTO pool_quest VALUES(2002, 200, '每日任务2'); -- 任务3 INSERT INTO pool_quest VALUES(2003, 200, '每日任务3');

查询 查询池包含的任务

查询池100包含的所有任务

SELECT pq.entry, pq.pool_entry, pq.description, qt.Title FROM pool_quest pq JOIN quest_template qt ON pq.entry = qt.ID WHERE pq.pool_entry = 100;

⚡ 快速参考

任务池结构

包含任务
任务池成员
随机选择池刷新时
单一任务每次一个

用途说明

每日任务随机刷新
周常任务周期刷新
随机任务任务池
动态任务条件刷新

刷新规则

池刷新选择任务
随机选择一个任务
任务激活玩家可接
任务完成池再刷新

关联表

pool_template池模板
quest_template任务模板
pool_creature生物池
pool_gameobject对象池

🔗 相关表格

❓ 常见问题

Q1: 任务池的作用?
将多个任务放入池中,池刷新时随机选择一个任务激活,实现任务的随机刷新逻辑,如每日随机任务。
Q2: 任务可以属于多个池吗?
不可以,entry是主键,一个任务只能属于一个池,不能同时属于多个池。
Q3: 池刷新时如何选择任务?
池刷新时,从池中的所有任务中随机选择一个任务激活,玩家可以接受该任务。
Q4: 任务池和生物池的区别?
任务池管理任务的随机刷新,生物池管理生物的随机刷新,两者工作原理相同,但管理的对象不同。