钓鱼掉落模板表定义了在不同钓鱼区域可以钓到的物品及其概率。这个表控制着钓鱼系统的核心机制,决定了玩家在各个水域钓鱼时能够获得什么物品,包括鱼类、宝箱、垃圾物品等。
字段名 | 类型 | 描述 |
---|---|---|
Entry | mediumint unsigned | 钓鱼区域ID |
详细说明:指定钓鱼区域的唯一标识符。对应AreaTable.dbc中的区域ID,决定了这个掉落模板适用于哪个钓鱼区域。
取值范围:1 - 16777215 (mediumint unsigned的范围) 常见钓鱼区域:
注意:Entry必须对应有效的钓鱼区域,且在AreaTable.dbc中存在 |
||
Item | mediumint unsigned | 物品ID |
详细说明:指定可以钓到的物品ID。对应item_template表中的entry字段。
物品类型:
常见钓鱼物品:
|
||
Reference | mediumint unsigned | 引用模板ID |
详细说明:引用其他掉落模板的ID。当设置此字段时,Item字段被忽略,系统会使用reference_loot_template表中对应ID的掉落配置。
使用场景:
注意:Reference和Item字段互斥,只能设置其中一个 |
||
Chance | float | 掉落概率 |
详细说明:指定物品的掉落概率,以百分比表示。
取值范围:0.0 - 100.0 概率设置建议:
平衡考虑:确保所有物品的概率总和合理,避免过高或过低的掉落率 |
||
QuestRequired | tinyint | 是否需要任务 |
详细说明:指定是否只有在接受特定任务时才能钓到此物品。
取值:
使用场景:任务专用的钓鱼物品,如特定的任务鱼类 |
||
LootMode | smallint unsigned | 掉落模式 |
详细说明:指定掉落的模式标志,用于控制在什么情况下此物品会掉落。
常用值:
注意:对于钓鱼系统,通常设置为1(普通模式) |
||
GroupId | tinyint unsigned | 掉落组ID |
详细说明:将物品分组,同一组内的物品遵循特定的掉落规则。
分组用途:
|
||
MinCount | tinyint unsigned | 最小数量 |
详细说明:指定物品掉落的最小数量。
取值范围:1 - 255 常见设置:大多数钓鱼物品设置为1 |
||
MaxCount | tinyint unsigned | 最大数量 |
详细说明:指定物品掉落的最大数量。实际掉落数量在MinCount和MaxCount之间随机。
取值范围:1 - 255 注意:MaxCount必须大于等于MinCount |
||
Comment | varchar(255) | 备注说明 |
详细说明:可选的备注字段,用于记录这个掉落配置的说明或特殊注意事项。
建议用途:记录物品用途、掉落原因、版本信息等 |
-- 艾尔文森林钓鱼掉落
INSERT INTO fishing_loot_template (Entry, Item, Reference, Chance, QuestRequired, LootMode, GroupId, MinCount, MaxCount, Comment) VALUES
(12, 6291, 0, 60.0, 0, 1, 0, 1, 1, '生鳞鱼 - 常见鱼类'),
(12, 6308, 0, 25.0, 0, 1, 0, 1, 1, '生鲑鱼 - 较常见鱼类'),
(12, 6522, 0, 10.0, 0, 1, 0, 1, 1, '偏斜的靴子 - 垃圾物品'),
(12, 6256, 0, 3.0, 0, 1, 0, 1, 1, '钓鱼宝箱 - 稀有物品'),
(12, 6643, 0, 2.0, 0, 1, 0, 1, 1, '健壮的鱼竿 - 极稀有');
-- 冬泉谷钓鱼掉落
INSERT INTO fishing_loot_template (Entry, Item, Reference, Chance, QuestRequired, LootMode, GroupId, MinCount, MaxCount, Comment) VALUES
(618, 13754, 0, 40.0, 0, 1, 0, 1, 1, '生白鳞鲑鱼 - 高级鱼类'),
(618, 13755, 0, 30.0, 0, 1, 0, 1, 1, '冬鱿鱼 - 高级鱼类'),
(618, 13756, 0, 15.0, 0, 1, 0, 1, 1, '生彩虹鳍鲑鱼 - 稀有鱼类'),
(618, 6522, 0, 8.0, 0, 1, 0, 1, 1, '偏斜的靴子 - 垃圾物品'),
(618, 19808, 0, 5.0, 0, 1, 0, 1, 1, '精致的珍珠 - 珍贵物品'),
(618, 6643, 0, 2.0, 0, 1, 0, 1, 1, '健壮的鱼竿 - 极稀有');
SELECT flt.*, it.name as item_name, it.Quality
FROM fishing_loot_template flt
JOIN item_template it ON flt.Item = it.entry
WHERE flt.Entry = 12 -- 艾尔文森林
ORDER BY flt.Chance DESC;
SELECT flt.Entry, flt.Item, it.name, it.Quality, flt.Chance
FROM fishing_loot_template flt
JOIN item_template it ON flt.Item = it.entry
WHERE it.Quality >= 2 -- 绿色品质以上
ORDER BY it.Quality DESC, flt.Chance ASC;