pool_template 表
pool_template表定义资源池模板,控制生物、游戏物体、任务等游戏元素的分组和随机刷新机制。
表概述
pool_template表是pool系统的核心配置表。通过entry定义pool分组,通过max_limit控制每组最多同时激活的对象数量。pool系统用于实现稀有生物随机刷新、矿点/草药点随机分布、任务随机分配等功能。
主键为 entry,被pool_creature、pool_gameobject、pool_quest、pool_pool等子表引用。
表结构
| 字段名 | 数据类型 | 默认值 | 说明 |
|---|---|---|---|
| entry | INT UNSIGNED | 0 | Pool模板ID(主键) |
| max_limit | INT UNSIGNED | 0 | Pool中同时激活的最大对象数 |
| description | VARCHAR(255) | NULL | Pool描述注释 |
重要字段详解
entry (Pool模板ID)
主键,被pool_creature等子表引用。同一pool中的所有对象共享max_limit限制。
例如:entry=1000的pool中包含5个稀有生物位置,max_limit=1表示同时只刷新其中1个。
max_limit (最大激活数)
定义pool中同时处于激活状态的最大对象数量:
- 0 - 无限制,所有对象可同时激活
- 1 - 最多1个激活(用于稀有NPC随机刷新)
- 其他值 - 自定义限制数量
实战案例
查询所有稀有生物刷新池:
SELECT pt.entry, pt.max_limit, pt.description,
COUNT(pc.guid) AS creature_count
FROM pool_template pt
JOIN pool_creature pc ON pt.entry = pc.pool_entry
WHERE pt.max_limit = 1
GROUP BY pt.entry
ORDER BY pt.entry;
创建稀有矿石刷新池(3个矿点只刷1个):
INSERT INTO pool_template (entry, max_limit, description)
VALUES (9999, 1, '稀有矿石刷新池 - 3选1');
查询所有pool配置及其子表分布:
SELECT pt.entry, pt.max_limit, pt.description,
COUNT(DISTINCT pc.guid) AS creatures,
COUNT(DISTINCT pgo.guid) AS gameobjects
FROM pool_template pt
LEFT JOIN pool_creature pc ON pt.entry = pc.pool_entry
LEFT JOIN pool_gameobject pgo ON pt.entry = pgo.pool_entry
GROUP BY pt.entry
ORDER BY pt.entry;
常见问题
Q: 稀有生物不刷新,如何排查?
检查pool_template.entry对应的max_limit值和pool_creature中的配置,确认chance值设置正确。
Q: max_limit设置为0是什么意思?
max_limit = 0表示无数量限制,pool中所有对象都可以同时处于激活状态。