📊 表结构

字段名 数据类型 默认值 说明
Entry INT UNSIGNED 0 掉落模板ID (主键1)
Item INT UNSIGNED 0 物品ID (主键2)
Reference INT 0 引用模板ID
Chance FLOAT 100 掉落几率(%)
QuestRequired TINYINT 0 需要任务
LootMode SMALLINT UNSIGNED 1 掉落模式
GroupId TINYINT UNSIGNED 0 组ID
MinCount TINYINT UNSIGNED 1 最小数量
MaxCount TINYINT UNSIGNED 1 最大数量
Comment VARCHAR(255) NULL 注释

🔑 核心字段详解

🆔 Entry - 掉落模板ID

详细说明:掉落模板的唯一标识符,对应gameobject_template的数据字段或自定义ID。 取值范围:自定义或对应gameobject_template
  • 复合主键的一部分
  • 一个模板可包含多个掉落物品
  • 通常对应游戏对象的模板ID
  • 可以创建自定义掉落模板

📦 Item - 物品ID

详细说明:掉落的物品ID,对应item_template.entry。 取值范围:对应item_template.entry
  • 复合主键的一部分
  • 指定掉落的具体物品
  • 必须是已存在的物品
  • Reference不为0时,Item字段无意义

🔗 Reference - 引用模板ID

详细说明:引用其他掉落模板,实现掉落模板的复用。 取值范围:对应reference_loot_template.Entry
  • 0 - 不引用,使用Item字段
  • 正数 - 引用reference_loot_template
  • 引用时Item字段无效
  • 用于共享掉落列表

🎲 Chance - 掉落几率

详细说明:物品掉落的百分比几率。 取值范围:0 - 100
  • 100 - 必定掉落
  • 50 - 50%几率掉落
  • 10 - 10%几率掉落
  • GroupId>0时,Chance为组内相对几率
  • 实际掉落由随机数决定

📋 QuestRequired - 需要任务

详细说明:是否需要特定任务才能掉落该物品。 取值范围:0 - 1
  • 0 - 不需要任务,正常掉落
  • 1 - 需要相关任务才掉落
  • 用于任务物品掉落
  • 玩家必须有任务才会看到物品

🎯 LootMode - 掉落模式

详细说明:掉落模式标志,控制掉落的条件。 取值范围:位标志组合
模式值模式名说明
1LOOT_MODE_DEFAULT默认模式
2LOOT_MODE_HARD_MODE_1困难模式1
4LOOT_MODE_HARD_MODE_2困难模式2
其他自定义其他模式

📊 GroupId - 组ID

详细说明:掉落组ID,同一组中只会掉落一个物品。 取值范围:0 - 255
  • 0 - 不分组,独立掉落
  • 正数 - 分组掉落
  • 同一组中只掉落一个物品
  • 组内Chance为相对几率
  • 用于随机选择物品

📈 MinCount/MaxCount - 数量范围

详细说明:掉落物品的数量范围。 取值范围:1 - 255
  • MinCount - 最小掉落数量
  • MaxCount - 最大掉落数量
  • 实际数量在范围内随机
  • MinCount=MaxCount时固定数量
  • 用于可堆叠物品

💡 实际案例

普通掉落 配置普通物品掉落

Entry=12345, Item=1000, Chance=50, MinCount=1, MaxCount=3

INSERT INTO gameobject_loot_template VALUES( 12345, 1000, 0, 50, 0, 1, 0, 1, 3, '普通材料' );

必掉物品 配置必定掉落物品

Entry=12346, Item=1001, Chance=100, MinCount=1, MaxCount=1

INSERT INTO gameobject_loot_template VALUES( 12346, 1001, 0, 100, 0, 1, 0, 1, 1, '必定掉落' );

分组掉落 配置分组随机掉落

Entry=12347, GroupId=1, 三个物品随机掉落一个

-- 第一个物品,50%相对几率 INSERT INTO gameobject_loot_template VALUES(12347, 1002, 0, 50, 0, 1, 1, 1, 1, '物品A'); -- 第二个物品,30%相对几率 INSERT INTO gameobject_loot_template VALUES(12347, 1003, 0, 30, 0, 1, 1, 1, 1, '物品B'); -- 第三个物品,20%相对几率 INSERT INTO gameobject_loot_template VALUES(12347, 1004, 0, 20, 0, 1, 1, 1, 1, '物品C');

任务物品 配置任务相关掉落

Entry=12348, Item=1005, QuestRequired=1

INSERT INTO gameobject_loot_template VALUES( 12348, 1005, 0, 100, 1, 1, 0, 1, 1, '任务物品' );

引用模板 配置引用掉落模板

Entry=12349, Reference=10000(引用reference_loot_template)

INSERT INTO gameobject_loot_template VALUES( 12349, 0, 10000, 100, 0, 1, 0, 1, 1, '引用模板' );

查询 查询游戏对象的掉落列表

查询Entry=12345的所有掉落物品

SELECT glt.Entry, glt.Item, glt.Chance, glt.MinCount, glt.MaxCount, it.name FROM gameobject_loot_template glt JOIN item_template it ON glt.Item = it.entry WHERE glt.Entry = 12345 ORDER BY glt.GroupId, glt.Chance DESC;

⚡ 快速参考

掉落几率

100必定掉落
5050%几率
1010%几率
分组相对几率

掉落模式

1默认模式
2困难模式1
4困难模式2
组合位标志

分组规则

GroupId=0独立掉落
GroupId>0组内随机
组内Chance相对几率
每组一个随机选择

关联表

gameobject_template游戏对象模板
item_template物品模板
reference_loot_template引用模板
creature_loot_template生物掉落

🔗 相关表格

❓ 常见问题

Q1: 如何配置必定掉落?
设置Chance=100,GroupId=0,表示该物品必定掉落,不受分组影响。
Q2: 分组掉落如何工作?
GroupId>0的物品属于同一组,组内Chance为相对几率,只会掉落组内一个物品。
Q3: Reference字段的作用?
Reference不为0时,引用reference_loot_template中的掉落列表,实现掉落模板的复用。
Q4: QuestRequired=1会怎样?
玩家必须有相关任务才能看到并拾取该物品,用于任务物品掉落。