📋 表概述

item_loot_template 表定义游戏中可开启物品的掉落内容。当玩家使用某个物品(如打开宝箱、礼包、包裹等),系统根据此表决定能获得什么物品。

🎯 核心概念:Entry 字段对应 item_template.entry,表示"哪个物品被打开时产生这个掉落"。Item 字段指定掉落的物品ID。所有掉落模板表结构完全相同,只是用途不同。

📊 表结构

字段名数据类型默认值说明
EntryINT UNSIGNED0物品ID(对应 item_template.entry,联合主键)
ItemINT UNSIGNED0掉落的物品ID(联合主键)
ReferenceINT0引用掉落组ID(引用 reference_loot_template.Entry,0=直接掉落)
ChanceFLOAT100掉落几率(%,0-100)
QuestRequiredTINYINT0任务需求标记(0=普通掉落, 1=仅有对应任务时才掉落)
LootModeSMALLINT UNSIGNED1掉落模式(1=普通, 2=专业, 4=钓鱼, 8=剥皮等按位标记)
GroupIdTINYINT UNSIGNED0掉落组ID(同组内只随机掉落一个物品,0=不分组)
MinCountTINYINT UNSIGNED1最少掉落数量
MaxCountTINYINT UNSIGNED1最多掉落数量
CommentVARCHAR(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.minMoneyLootmaxMoneyLoot 字段。此表只处理物品掉落。