📋 表结构
| 字段名 | 数据类型 | 默认值 | 说明 |
|---|---|---|---|
| Entry | MEDIUMINT UNSIGNED | 0 | 生物模板ID |
| Item | MEDIUMINT UNSIGNED | 0 | 物品ID或引用ID |
| Reference | MEDIUMINT UNSIGNED | 0 | 引用模板ID |
| Chance | FLOAT | 100 | 掉落几率(百分比) |
| QuestRequired | TINYINT UNSIGNED | 0 | 是否需要任务 |
| LootMode | SMALLINT UNSIGNED | 1 | 掉落模式 |
| GroupId | TINYINT UNSIGNED | 0 | 组ID(互斥掉落) |
| MinCount | TINYINT UNSIGNED | 1 | 最小掉落数量 |
| MaxCount | TINYINT UNSIGNED | 1 | 最大掉落数量 |
| Comment | VARCHAR(255) | '' | 注释说明 |
🔍 核心字段详解
Entry - 生物模板ID
字段说明:定义哪种生物会掉落这些物品
取值范围:1 - 16777215
关联关系:对应creature_template表中的entry字段
取值范围:1 - 16777215
关联关系:对应creature_template表中的entry字段
Item - 物品ID
字段说明:定义生物死亡时可能掉落的物品
取值范围:1 - 16777215
特殊说明:如果Reference字段不为0,则Item字段表示引用的掉落模板ID
取值范围:1 - 16777215
特殊说明:如果Reference字段不为0,则Item字段表示引用的掉落模板ID
Reference - 引用模板ID
字段说明:引用另一个掉落模板,实现可重用的掉落组
取值范围:0表示不引用,非0表示引用reference_loot_template中的ID
使用场景:多个生物共享同一掉落组
取值范围:0表示不引用,非0表示引用reference_loot_template中的ID
使用场景:多个生物共享同一掉落组
Chance - 掉落几率
字段说明:物品掉落的概率,以百分比表示
取值范围:0 - 100
特殊值:0表示只在特定条件下掉落
取值范围:0 - 100
特殊值:0表示只在特定条件下掉落
| 几率值 | 说明 |
|---|---|
| 100 | 100%几率掉落,保证掉落 |
| 50 | 50%几率掉落 |
| 1 | 1%几率掉落 |
| 0.1 | 0.1%几率掉落(稀有物品) |
| 0 | 0%几率,特殊情况下使用 |
QuestRequired - 是否需要任务
字段说明:物品是否只有在玩家有相关任务时才会掉落
取值范围:0 - 1
取值范围:0 - 1
| 值 | 说明 |
|---|---|
| 0 | 不需要任务,任何玩家都可以拾取 |
| 1 | 需要任务,只有有相关任务的玩家才能看到和拾取 |
LootMode - 掉落模式
字段说明:控制物品在哪些模式下掉落
取值范围:位掩码值,可以组合多个标志
取值范围:位掩码值,可以组合多个标志
| 值 | 模式 |
|---|---|
| 1 | 默认模式 |
| 2 | 困难模式 |
| 4 | 英雄模式 |
| 7(1+2+4) | 所有模式 |
GroupId - 组ID
字段说明:同一组中只会掉落一个物品,实现互斥掉落
取值范围:0 - 255
特殊值:0表示不属于任何组,独立掉落
取值范围:0 - 255
特殊值:0表示不属于任何组,独立掉落
组掉落机制:同一组中的物品掉落几率总和不需要等于100%。如果总和小于100%,则有可能不掉落任何物品。
MinCount/MaxCount - 数量范围
字段说明:定义物品掉落时的数量范围
取值范围:1 - 255
随机机制:系统会在这个范围内随机选择一个数量
取值范围:1 - 255
随机机制:系统会在这个范围内随机选择一个数量
| 设置 | 掉落数量 |
|---|---|
| MinCount=1, MaxCount=1 | 固定掉落1个 |
| MinCount=1, MaxCount=3 | 随机掉落1-3个 |
| MinCount=2, MaxCount=5 | 随机掉落2-5个 |
💡 实际案例
基础 添加简单掉落
生物1260有50%几率掉落亚麻布1-3个
INSERT INTO creature_loot_template VALUES(
1260, 2589, 0, 50, 0, 1, 0, 1, 3, '亚麻布');组掉落 互斥掉落组
生物7427掉落武器组,该组中只会掉落一种武器
INSERT INTO creature_loot_template VALUES
(7427, 7786, 0, 30, 0, 1, 1, 1, 1, '图样:粗制毛皮手套'),
(7427, 7787, 0, 30, 0, 1, 1, 1, 1, '图样:粗制毛皮披风'),
(7427, 7788, 0, 40, 0, 1, 1, 1, 1, '图样:粗制毛皮外套');引用 引用掉落模板
生物1260引用ID为10000的掉落模板
INSERT INTO creature_loot_template VALUES(
1260, 10000, 10000, 100, 0, 1, 0, 1, 1, '引用掉落组');任务 任务物品掉落
只有有相关任务的玩家才能看到和拾取
INSERT INTO creature_loot_template VALUES(
1260, 2640, 0, 100, 1, 1, 0, 1, 1, '矿工的工具(任务物品)');保证 100%掉落
BOSS必定掉落的物品
INSERT INTO creature_loot_template VALUES(
12345, 50000, 0, 100, 0, 1, 0, 1, 1, 'BOSS必掉物品');⚙️ 掉落机制详解
独立掉落 vs 组掉落
| 类型 | GroupId | 机制 |
|---|---|---|
| 独立掉落 | 0 | 每个物品独立判断掉落几率 |
| 组掉落 | 非0 | 同一组中只会掉落一个物品 |
组掉落计算示例
-- 组1包含3个物品,几率分别为30%、30%、40%
-- 总几率 = 30 + 30 + 40 = 100%
-- 必定掉落其中一个物品
-- 组2包含2个物品,几率分别为20%、30%
-- 总几率 = 20 + 30 = 50%
-- 有50%几率不掉落任何物品,50%几率掉落其中一个引用掉落机制
引用掉落允许创建可重用的掉落组:
- 多个生物可以共享同一个掉落组
- 修改引用模板会影响所有引用该模板的生物
- 减少数据冗余,便于维护
❓ 常见问题
如何设置稀有物品掉落?
设置较低的Chance值,例如0.1表示0.1%几率掉落。稀有物品通常Chance值在0.1-5之间。
组掉落的几率如何计算?
同一组中的物品按几率比例分配。如果组总几率小于100%,则有可能不掉落任何物品。如果组总几率大于100%,系统会自动调整。
如何让多个生物共享掉落?
使用Reference字段引用同一个掉落模板。在reference_loot_template表中定义共享的掉落组,然后在creature_loot_template中引用。
⚡ 快速参考
掉落几率
| 100 | 必定掉落 |
| 50 | 一半几率 |
| 1 | 1%几率 |
| 0.1 | 稀有掉落 |
掉落模式
| 1 | 默认 |
| 2 | 困难 |
| 4 | 英雄 |
组掉落
| GroupId=0 | 独立掉落 |
| GroupId>0 | 互斥掉落 |
🔗 相关表格
- creature_template - 生物模板
- item_template - 物品模板
- reference_loot_template - 引用掉落模板
- gameobject_loot_template - 游戏对象掉落
- skinning_loot_template - 剥皮掉落