表概述

skill_fishing_base_level表是Fishing System(钓鱼系统)的配置表。每个水域区域(Area)都有一个最低钓鱼技能等级要求,低于此等级的玩家在该区域钓鱼将频繁失败。

主键为 entry(对应AreaTable.dbc中的区域ID),每条记录定义了一个区域的钓鱼技能门槛。

表结构

字段名数据类型默认值说明
entryINT UNSIGNED0区域ID,对应AreaTable.dbc(主键)
skillSMALLINT0该区域需要的最低钓鱼技能等级

重要字段详解

entry (区域ID)

对应AreaTable.dbc中的区域编号。常见钓鱼区域:

  • 艾尔文森林、杜隆塔尔等新手区 → 低技能要求
  • 荆棘谷、塔纳利斯等中级区 → 中等技能要求
  • 外域、诺森德等高级区 → 高技能要求
skill (最低钓鱼技能)

该区域钓鱼所需的最小技能等级:

  • 1 - 新手区域,任何等级都可钓鱼
  • 50-150 - 中级区域
  • 200-300 - 高级区域
  • 350+ - 顶级区域(诺森德等)

低于skill值的玩家在该区域钓鱼时会显示"你的鱼逃跑了"。

实战案例

查询所有区域的钓鱼技能要求:
SELECT entry, skill
FROM skill_fishing_base_level
ORDER BY skill DESC;
查询高级钓鱼区域(技能300+):
SELECT sfbl.entry, sfbl.skill, at.AreaName_Lang_zhCN AS area_name
FROM skill_fishing_base_level sfbl
LEFT JOIN areatable_dbc at ON sfbl.entry = at.ID
WHERE sfbl.skill >= 300
ORDER BY sfbl.skill DESC;
添加新区域的钓鱼要求:
INSERT INTO skill_fishing_base_level (entry, skill)
VALUES (9999, 250);

常见问题

Q: 玩家钓鱼总是失败,显示"鱼逃跑了",如何解决?

可能原因:

  1. 玩家钓鱼技能等级低于该区域的skill要求
  2. 玩家没有装备鱼竿
  3. skill_fishing_base_level表中该区域没有记录(默认使用较低值)

Q: 如何取消钓鱼技能的区域限制?

将skill_fishing_base_level表中所有记录的skill设为1即可。