📖 表说明

引用掉落模板表定义了可重复引用的掉落模板组合,允许多个掉落源共享相同的掉落配置,提高配置的复用性和维护效率。

数据来源: 本文档基于AzerothCore官方Wiki和官方数据表借鉴.sql编写,确保字段定义的准确性和权威性。

官方文档: AzerothCore Wiki - loot_template

📊 表结构

字段名 数据类型 属性 默认值 描述
Entry int UNSIGNED 不为空 主键 0 引用模板ID,被其他*_loot_template.reference引用
Item int UNSIGNED 不为空 主键 0 物品ID,对应item_template.entry
Reference int 不为空 0 引用ID,如果不为0则引用其他reference_loot_template
Chance float 不为空 100 掉落几率(百分比)
QuestRequired tinyint 不为空 0 是否需要任务(0=否,1=是)
LootMode smallint UNSIGNED 不为空 1 掉落模式(位掩码)
GroupId tinyint UNSIGNED 不为空 0 组ID,同一组中只会掉落一个物品
MinCount tinyint UNSIGNED 不为空 1 最小掉落数量
MaxCount tinyint UNSIGNED 不为空 1 最大掉落数量(引用时作为重复因子)
Comment varchar(255) 可为空 NULL 注释说明

主键: (Entry, Item)

注意: reference_loot_template的GroupId不是主键,与creature_loot_template不同

🔑 核心字段详解

🆔 Entry - 引用模板ID

详细说明:引用掉落模板的唯一标识ID,被其他掉落模板表通过Reference字段引用。 取值范围:正整数
  • 主键字段,标识引用掉落模板
  • 被*_loot_template表的Reference字段引用
  • 可以定义通用的掉落组合,供多个掉落源使用
  • 重要:不允许自引用(Entry不能等于Reference),会导致服务器崩溃

示例:

  • Entry=10000 - 引用模板ID为10000
  • Entry=20000 - 引用模板ID为20000

📦 Item - 物品ID

详细说明:可能掉落的物品ID,对应item_template表中的entry字段。 取值范围:对应item_template.entry
  • 主键字段,标识掉落的物品
  • 必须对应item_template表中存在的entry
  • 当Reference不为0时,此字段应为0
  • 用于定义具体掉落的物品

示例:

  • Item=25 - 物品ID为25的物品
  • Item=19019 - 雷霆之怒,逐风者的祝福之剑

🔗 Reference - 引用ID

详细说明:引用其他reference_loot_template的ID,实现嵌套引用。 取值范围:对应reference_loot_template.entry
  • 如果不为0,则引用其他reference_loot_template中的定义
  • Item和Reference不能同时非零
  • 重要:不允许自引用(Entry不能等于Reference),会导致服务器崩溃
  • 用于创建嵌套的引用掉落模板

示例:

  • Reference=10000 - 引用ID为10000的reference_loot_template
  • Reference=0 - 不使用引用,直接掉落Item指定的物品

🎲 Chance - 掉落几率

详细说明:物品掉落的百分比几率。 取值范围:0.0 - 100.0(浮点数)
  • 同一GroupId的所有条目的Chance总和不能超过100
  • 如果Chance为0,则同一GroupId且chance=0的所有条目几率相等
  • Chance=100表示必定掉落(如果GroupId=0)
  • Chance=0表示物品不会掉落(仅允许分组条目使用)

示例:

  • Chance=50.0 - 50%的掉落几率
  • Chance=100 - 100%必定掉落
  • Chance=0.5 - 0.5%的极低掉落几率

📋 QuestRequired - 任务需求

详细说明:物品是否需要特定任务才能掉落。 取值范围:0 或 1
说明
0 掉落总是可用,不需要任务
1 只有当玩家有任务且物品ID在quest_template.RequiredItemId1-6中时才能掉落

示例:

  • QuestRequired=0 - 任何玩家都可以获得此掉落
  • QuestRequired=1 - 只有接了相关任务的玩家才能获得

⚙️ LootMode - 掉落模式

详细说明:掉落模式的位掩码,用于分离条件掉落。 取值范围:位掩码值(通常为1)
  • 用于分离条件掉落,如奥杜尔的困难模式掉落
  • 核心可以随时更改活动的掉落模式
  • 大多数情况下此字段为1
  • 可以组合多个模式(如LootMode=3表示模式1和模式2)

示例:

  • LootMode=1 - 默认模式,正常掉落
  • LootMode=2 - 困难模式掉落
  • LootMode=3 - 同时支持模式1和模式2

👥 GroupId - 组ID

详细说明:用于在同一引用模板中分组物品。 取值范围:0 - 255
  • GroupId=0表示独立掉落,不参与分组
  • GroupId>0表示参与分组,组中只有一个物品可以掉落
  • 如果组的Chance总和为100,则必定掉落一个物品
  • 如果组的Chance总和小于100,则可能空掉落
  • 引用掉落可以是组的一部分
  • 重要:客户端只能显示16个物品在掉落窗口中(包括金币),因此不建议使用超过16个组

示例:

  • GroupId=0 - 独立掉落,与其他物品无关
  • GroupId=1 - 组1中的物品,只会掉落其中一个
  • GroupId=2 - 组2中的物品,只会掉落其中一个

📊 MinCount - 最小数量

详细说明:单次掉落中物品的最小数量。 取值范围:1 - 255(不能为0)
  • 定义掉落物品的最小数量
  • 不能为0,零值没有意义且不应使用
  • 通常与MaxCount相同,表示固定数量
  • 可以小于MaxCount,表示数量范围

示例:

  • MinCount=1 - 至少掉落1个
  • MinCount=5 - 至少掉落5个

📈 MaxCount - 最大数量

详细说明:单次掉落中物品的最大数量,或引用的重复因子。 取值范围:1 - 255
  • 对于非引用条目:单次掉落中物品的最大数量
  • 对于引用条目:MaxCount用作引用的重复因子,引用将不只处理一次,而是恰好MaxCount次
  • 通常与MinCount相同,表示固定数量
  • 可以大于MinCount,表示数量范围

示例:

  • MaxCount=1 - 最多掉落1个
  • MaxCount=5 - 最多掉落5个
  • MaxCount=3(引用)- 引用模板将被处理3次

💬 Comment - 注释说明

详细说明:用于记录掉落项的说明和备注。 取值范围:文本字符串(最多255字符)
  • 可为空(NULL)
  • 用于记录掉落项的用途、来源等信息
  • 帮助管理员理解和维护掉落配置

示例:

  • Comment='通用金币掉落模板'
  • Comment='史诗装备掉落模板'

💡 实际案例

引用 引用模板ID 10000 - 通用金币掉落

定义一个通用的金币掉落模板,可被多个生物引用

-- 引用模板ID 10000:通用金币掉落 DELETE FROM reference_loot_template WHERE Entry = 10000; INSERT INTO reference_loot_template VALUES (10000, 0, 0, 100, 0, 1, 0, 1, 5, '通用金币掉落');

使用方式: 在creature_loot_template中添加:(1000, 0, 10000, 100, 0, 1, 0, 1, 1, '引用金币模板')

引用 引用模板ID 20000 - 分组掉落模板

定义一个分组掉落模板,组中只掉落一个物品

-- 引用模板ID 20000:分组掉落模板 -- 组1:三选一掉落,总几率100% DELETE FROM reference_loot_template WHERE Entry = 20000; INSERT INTO reference_loot_template VALUES (20000, 200, 0, 40, 0, 1, 1, 1, 1, '组1-物品A'), (20000, 201, 0, 30, 0, 1, 1, 1, 1, '组1-物品B'), (20000, 202, 0, 30, 0, 1, 1, 1, 1, '组1-物品C');

使用方式: 在creature_loot_template中添加:(5000, 0, 20000, 100, 0, 1, 0, 1, 1, '引用分组模板')

引用 引用模板ID 30000 - 嵌套引用示例

定义一个嵌套引用模板,引用其他reference_loot_template

-- 引用模板ID 30000:嵌套引用 -- 引用ID 10000和20000,MaxCount=2表示引用模板将被处理2次 DELETE FROM reference_loot_template WHERE Entry = 30000; INSERT INTO reference_loot_template VALUES (30000, 0, 10000, 100, 0, 1, 0, 1, 2, '引用金币模板2次'), (30000, 0, 20000, 50, 0, 1, 0, 1, 1, '引用分组模板');

效果: 引用模板10000将被处理2次(可能掉落2-10金币),引用模板20000有50%几率被处理1次。

⚡ 快速参考

引用掉落模板用途

用途 说明 示例
复用掉落配置 多个掉落源共享相同的掉落配置 多个生物使用相同的金币掉落模板
简化维护 修改引用模板即可更新所有引用源的掉落 修改金币掉落模板,所有生物的金币掉落自动更新
嵌套引用 引用模板可以引用其他引用模板 引用模板A引用引用模板B,实现复杂掉落组合
重复处理 使用MaxCount控制引用的处理次数 MaxCount=3表示引用模板将被处理3次

重要规则

表关系

🔗 相关表格

❓ 常见问题

Q1: 如何创建引用掉落模板?
使用INSERT语句添加记录,指定Entry、Item、Chance等字段。例如:INSERT INTO reference_loot_template VALUES (10000, 0, 0, 100, 0, 1, 0, 1, 5, '通用金币掉落');
Q2: 如何在其他掉落模板中使用引用?
在creature_loot_template或其他掉落模板表中,将Reference字段设置为引用模板的Entry值,Item字段设置为0。例如:(1000, 0, 10000, 100, 0, 1, 0, 1, 1, '引用金币模板');
Q3: 引用模板可以嵌套引用吗?
可以。reference_loot_template可以引用其他reference_loot_template,实现复杂的嵌套掉落组合。但要注意不允许自引用(Entry不能等于Reference)。
Q4: MaxCount字段在引用中有特殊含义吗?
是的。对于引用条目,MaxCount用作引用的重复因子。例如MaxCount=3表示引用模板将被处理3次,可能掉落更多物品。
Q5: 为什么reference_loot_template的GroupId不是主键?
因为reference_loot_template允许同一Entry下有多个GroupId相同的条目,用于实现分组掉落。而creature_loot_template需要GroupId作为主键来区分不同的掉落组。