📖 item_loot_template 物品掉落模板表
定义可开启物品(箱子、背包、礼包等)的掉落内容
📋 表概述
item_loot_template 表定义游戏中可开启物品的掉落内容。当玩家使用某个物品(如打开宝箱、礼包、包裹等),系统根据此表决定能获得什么物品。
🎯 核心概念:Entry 字段对应
item_template.entry,表示"哪个物品被打开时产生这个掉落"。Item 字段指定掉落的物品ID。所有掉落模板表结构完全相同,只是用途不同。📊 表结构
| 字段名 | 数据类型 | 默认值 | 说明 |
|---|---|---|---|
| Entry | INT UNSIGNED | 0 | 物品ID(对应 item_template.entry,联合主键) |
| Item | INT UNSIGNED | 0 | 掉落的物品ID(联合主键) |
| Reference | INT | 0 | 引用掉落组ID(引用 reference_loot_template.Entry,0=直接掉落) |
| Chance | FLOAT | 100 | 掉落几率(%,0-100) |
| QuestRequired | TINYINT | 0 | 任务需求标记(0=普通掉落, 1=仅有对应任务时才掉落) |
| LootMode | SMALLINT UNSIGNED | 1 | 掉落模式(1=普通, 2=专业, 4=钓鱼, 8=剥皮等按位标记) |
| GroupId | TINYINT UNSIGNED | 0 | 掉落组ID(同组内只随机掉落一个物品,0=不分组) |
| MinCount | TINYINT UNSIGNED | 1 | 最少掉落数量 |
| MaxCount | TINYINT UNSIGNED | 1 | 最多掉落数量 |
| Comment | VARCHAR(255) | NULL | 注释 |
🔍 重要字段详解
🎲 Chance - 掉落几率
详细说明:控制物品的掉落概率。0-100%
- 100 - 必定掉落
- 0.01-99.99 - 按概率掉落
- 0 - 不掉落(可用于Reference引用)
💡 示例:设置50%掉落几率 →
Chance = 50🔗 GroupId - 掉落组
详细说明:相同GroupId的物品组成一个掉落组,每次只从组中随机选择一个掉落。0=不分组
- GroupId=1,Chance=50 → 50%几率掉这个组中的某一个
- 不同GroupId的掉落互不影响
📦 Reference - 引用掉落组
详细说明:通过Reference引用
reference_loot_template中的掉落组,实现掉落复用。💡 实战案例
给宝箱添加掉落
物品ID 4632(华丽的宝箱)打开后掉落金币+宝石
-- 宝箱打开后100%掉落5-10金币
INSERT INTO item_loot_template (Entry, Item, Chance, MinCount, MaxCount)
VALUES (4632, 90001, 100, 5, 10);
-- 30%几率掉落蓝宝石
INSERT INTO item_loot_template (Entry, Item, Chance)
VALUES (4632, 12361, 30);查询某物品的所有掉落
SELECT ilt.Item, it.name AS item_name, ilt.Chance, ilt.MinCount, ilt.MaxCount
FROM item_loot_template ilt
LEFT JOIN item_template it ON ilt.Item = it.entry
WHERE ilt.Entry = 4632
ORDER BY ilt.GroupId, ilt.Chance DESC;❓ 常见问题
Q: 物品掉落后玩家看不见?
检查 LootMode 是否正确设置。如果设置为2(专业掉落),只有对应专业的玩家才能看到掉落。
Q: 怎么让物���同时掉落铜币和物品?
金币掉落不走此表。设置金币去 item_template.minMoneyLoot 和 maxMoneyLoot 字段。此表只处理物品掉落。