Acore-world数据库之各类loot-template表全面解释
前言
Acore-world
数据库涉及到掉落(不含扒窃)的表一共有11个,分别是:
序号 | 表名 | 说明 |
---|---|---|
1 | creature_loot_template | 生物掉落表,其entry 值对应creature_template 表的和lootid 值 |
2 | disenchant_loot_template | 附魔分解掉落表,其entry 值对应item_template 表的DisenchantID 值 |
3 | fishing_loot_template | 钓鱼掉落表,其entry 值对应区域ID |
4 | gameobject_loot_template | 游戏静物掉落表,如宝箱、矿石、草药、鱼群等,其entry 值对应gameobject_template 表的data1 值,但只有gameobject_template 表的type 为3 或者25 时,data1 才被作为该表entry`值 |
5 | item_loot_template | 物品掉落表,其entry 值对应item_template 表的entry 值 |
6 | pickpocketing_loot_template | 拾取物掉落表,其entry 值对应creature_template 表的pickpocketloot 值 |
7 | prospecting_loot_template | 选矿掉落表,其entry 值对应item_template 表的entry 值 |
8 | skinning_loot_template | 剥皮(或从生物掉落的矿石草药)掉落表,其entry 值对应creature_template 表的skinloot 值 |
9 | reference_loot_template | 参考(辅助)掉落表,对应其他各个掉落表的Mincount 或Reference 值 |
10 | milling_loot_template | 信件掉落表,其entry 值对应item_template 表的entry 值 |
11 | spell_loot_template | 法术掉落表,其entry 值对应Spell.dbc 文件的的Spellid 值 |
这几张表的字段基本一样,所以本文合并一起解释。
字段解释
Entry
上表有entry
值的对应,请注意entry
值可以有多个。
Item
掉落的物品ID。
Reference
从另一个掉落模板reference_loot_template
表里,读取掉落数据合并到当前的掉落模板里,这里不能填写自身的掉落模板数据,否则会引起服务端崩溃。
ChanceOrQuestChance
掉落概率,表示该物品掉落的百分比,上限100
,即便你输入1000
,也视同为100
,游戏里物品的最终掉落概率等于这里的Chance
值乘以worldserver.conf
文件里的Rate.Drop.Item.XXX
值 。
如果前面你写了Reference
值,则表示引用reference_loot_template
掉落模板的概率。
如果你设置为0,则它将参考本文Groupid
字段。
QuestRequired
掉落发生所需要的任务,玩家只有在接到相关任务,并且该任务表(即quest_template
)的RequiredItemId
或者RequiredSourceItemId
字段里包含该表掉落物品Item
的ID,并且玩家现有的物品数量比任务表(即quest_template
)内需要的物品数量(RequiredItemCount
或者RequiredSourceItemCount
)要少时,这个掉落才生效。
LootMode
掉落模式。掉落模式一般为1
,其他值(如2、4、8、16、32、64、128、256、512、1024、2048、4096、16384、32768等)在困难模式下才使用。举个例子,奥杜尔的烈焰巨兽BOSS掉落模式:
LootMode | Use |
---|---|
1 | 普通模式(0塔) |
2 | 困难模式(1塔) |
4 | 困难模式(2塔) |
8 | 困难模式(3塔) |
16 | 困难模式(4塔) |
GroupId
掉落组。掉落组指的是一组物品,在发生掉落后,只能从组的物品中获得1个(或0个)的物品。组由具有相同条目和GroupId
字段值的物品定义组成。
- 如果这个值是
0
,那么所有这个物品的group
编号是0
的物品全都会掉落; - 如果这个数值>
0
,那么这个物品所有相同group
编号下的物品最多只掉落其中之一; GroupId
编号相同且大于0
的那些掉落数据,所有chance
加起来必须不超过100
,否则服务端红字;GroupId
编号相同且大于0
的那些掉落数据,所有chance
加起来不足100
的,只有chance%
的概率掉落一件物品;
举例说明:
- 如果这个物品的
GroupId
编号为0
的数据有5
个,每次物品掉落时,这5
个物品全部都会掉落出来; - 如果这个物品的
GroupId
为1
的数据有5
个,那每次物品掉落时,这5
个物品中只有一个物品会以roll点的方式被挑选出来,挑选的概率跟Chance
有关; - 如果这个物品的
GroupId
编号从0
、1
、2
、3
、4
,那么编号是0
的那些物品全都会掉落,编号1
到4
的这4组里面,每组都会随机抽取一个掉落出来(每组只有一个掉落); - 如果这个物品某个
GroupId
编号的数据的chance
加起来只有80
,那只有80%
的概率从这组里选择一个物品掉落,也可能什么都不掉; - 最终的掉落总数如果超过
16
,那就只掉落前面的16
个,后面多余的你看不到也得不到。
MinCount
掉落物品的最少数量,最小是1,不能为0。
MaxCount
掉落物品的最大数量。
Agreements
这些协议对于不同的战利品表是不同的。