skill_fishing_base_level 表
skill_fishing_base_level表定义各区域钓鱼所需的最低技能等级,防止低技能玩家在高级区域钓鱼。
表概述
skill_fishing_base_level表是Fishing System(钓鱼系统)的配置表。每个水域区域(Area)都有一个最低钓鱼技能等级要求,低于此等级的玩家在该区域钓鱼将频繁失败。
主键为 entry(对应AreaTable.dbc中的区域ID),每条记录定义了一个区域的钓鱼技能门槛。
表结构
| 字段名 | 数据类型 | 默认值 | 说明 |
|---|---|---|---|
| entry | INT UNSIGNED | 0 | 区域ID,对应AreaTable.dbc(主键) |
| skill | SMALLINT | 0 | 该区域需要的最低钓鱼技能等级 |
重要字段详解
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: 玩家钓鱼总是失败,显示"鱼逃跑了",如何解决?
可能原因:
- 玩家钓鱼技能等级低于该区域的skill要求
- 玩家没有装备鱼竿
- skill_fishing_base_level表中该区域没有记录(默认使用较低值)
Q: 如何取消钓鱼技能的区域限制?
将skill_fishing_base_level表中所有记录的skill设为1即可。