fishing_loot_template - 钓鱼掉落模板表

钓鱼掉落模板表定义了在不同钓鱼区域可以钓到的物品及其概率。这个表控制着钓鱼系统的核心机制,决定了玩家在各个水域钓鱼时能够获得什么物品,包括鱼类、宝箱、垃圾物品等。

表结构

字段名 类型 描述
Entry mediumint unsigned 钓鱼区域ID
详细说明:指定钓鱼区域的唯一标识符。对应AreaTable.dbc中的区域ID,决定了这个掉落模板适用于哪个钓鱼区域。
取值范围:1 - 16777215 (mediumint unsigned的范围)
常见钓鱼区域:
  • 1 - 暴风城护城河
  • 12 - 艾尔文森林水域
  • 85 - 提瑞斯法林地水域
  • 400 - 千针石林绿洲
  • 618 - 冬泉谷湖泊

注意:Entry必须对应有效的钓鱼区域,且在AreaTable.dbc中存在
Item mediumint unsigned 物品ID
详细说明:指定可以钓到的物品ID。对应item_template表中的entry字段。
物品类型:
  • 鱼类 - 各种可食用的鱼类
  • 宝箱 - 包含随机物品的宝箱
  • 垃圾物品 - 破靴子、空瓶子等
  • 特殊物品 - 珍珠、宝石等稀有物品
  • 任务物品 - 特定任务需要的钓鱼物品

常见钓鱼物品:
  • 6291 - 生鳞鱼
  • 6308 - 生鲑鱼
  • 6522 - 偏斜的靴子
  • 6256 - 钓鱼宝箱
Reference mediumint unsigned 引用模板ID
详细说明:引用其他掉落模板的ID。当设置此字段时,Item字段被忽略,系统会使用reference_loot_template表中对应ID的掉落配置。
使用场景:
  • 共享掉落 - 多个区域使用相同的掉落配置
  • 复杂掉落 - 需要多层嵌套的掉落逻辑
  • 模块化管理 - 便于维护和修改掉落配置

注意:Reference和Item字段互斥,只能设置其中一个
Chance float 掉落概率
详细说明:指定物品的掉落概率,以百分比表示。
取值范围:0.0 - 100.0
概率设置建议:
  • 50.0 - 80.0 - 常见鱼类
  • 10.0 - 30.0 - 垃圾物品
  • 1.0 - 10.0 - 稀有鱼类
  • 0.1 - 1.0 - 极稀有物品和宝箱

平衡考虑:确保所有物品的概率总和合理,避免过高或过低的掉落率
QuestRequired tinyint 是否需要任务
详细说明:指定是否只有在接受特定任务时才能钓到此物品。
取值:
  • 0 - 无任务要求,任何玩家都可以钓到
  • 1 - 需要特定任务,只有接受相关任务的玩家才能钓到

使用场景:任务专用的钓鱼物品,如特定的任务鱼类
LootMode smallint unsigned 掉落模式
详细说明:指定掉落的模式标志,用于控制在什么情况下此物品会掉落。
常用值:
  • 1 - 普通模式
  • 2 - 英雄模式
  • 4 - 团队模式

注意:对于钓鱼系统,通常设置为1(普通模式)
GroupId tinyint unsigned 掉落组ID
详细说明:将物品分组,同一组内的物品遵循特定的掉落规则。
分组用途:
  • 0 - 独立掉落,不受组限制
  • 1+ - 组内掉落,可以设置组内掉落数量限制
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;

注意事项

⚠️ 重要提醒