skill_fishing_base_level - 钓鱼基础等级表

钓鱼基础等级表定义了不同区域钓鱼所需的最低技能等级。这个表控制着玩家在各个区域进行钓鱼时的成功率和可钓到的鱼类,确保钓鱼技能的进阶性和区域特色。

表结构

字段名 类型 描述
entry mediumint unsigned 区域ID (主键)
详细说明:指定钓鱼区域的唯一标识符。对应AreaTable.dbc文件中的区域ID,决定了这个钓鱼等级要求适用于哪个区域。
取值范围:1 - 16777215 (mediumint unsigned的范围)
区域类型:
  • 新手区域 - 如艾尔文森林、提瑞斯法林地等1-10级区域
  • 低级区域 - 如西部荒野、银松森林等10-20级区域
  • 中级区域 - 如暮色森林、千针石林等20-40级区域
  • 高级区域 - 如费伍德森林、冬泉谷等40-60级区域
  • 副本区域 - 各种副本内的钓鱼点
  • 特殊区域 - 如主城、特殊事件区域等

常见区域ID示例:
  • 12 - 艾尔文森林
  • 85 - 提瑞斯法林地
  • 11 - 湿地
  • 51 - 灼热峡谷
  • 139 - 东瘟疫之地

注意:确保区域ID在AreaTable.dbc中存在且为有效的钓鱼区域
skill smallint 所需钓鱼技能等级
详细说明:指定在该区域进行有效钓鱼所需的最低钓鱼技能等级。玩家的钓鱼技能必须达到或超过这个等级才能在该区域成功钓鱼。
取值范围:1 - 450 (根据版本而定)
技能等级分布:
  • 1-75 - 新手区域,适合初学者练习钓鱼
  • 75-150 - 低级区域,需要一定的钓鱼基础
  • 150-225 - 中级区域,需要熟练的钓鱼技能
  • 225-300 - 高级区域,需要专家级钓鱼技能
  • 300-375 - 外域区域 (TBC扩展)
  • 375-450 - 诺森德区域 (WotLK扩展)

版本限制:
  • 经典版 - 最高300级钓鱼技能
  • 燃烧的远征 - 最高375级钓鱼技能
  • 巫妖王之怒 - 最高450级钓鱼技能

设置原则:
  • 新手区域设置较低的技能要求
  • 高级区域设置较高的技能要求
  • 副本区域通常要求更高的技能等级
  • 特殊鱼类的钓点要求相应的技能等级

影响因素:
  • 钓鱼成功率 - 技能等级越接近要求,成功率越高
  • 可钓鱼类 - 不同技能等级可钓到不同的鱼类
  • 技能提升 - 在合适等级的区域钓鱼可以提升技能
  • 特殊物品 - 某些稀有物品需要特定的技能等级

功能说明

主要用途

工作机制

当玩家在某个区域尝试钓鱼时,系统会:

  1. 检查玩家当前所在的区域ID
  2. 查找该区域在此表中的技能要求
  3. 比较玩家的钓鱼技能等级与要求等级
  4. 根据技能差距计算钓鱼成功率
  5. 决定可钓到的鱼类和特殊物品

配置示例

经典版区域钓鱼等级设置

-- 新手区域 (1-10级区域)
INSERT INTO skill_fishing_base_level (entry, skill) VALUES
(12, 1),    -- 艾尔文森林,钓鱼技能要求1级
(85, 1),    -- 提瑞斯法林地,钓鱼技能要求1级
(141, 1),   -- 丹莫罗,钓鱼技能要求1级
(215, 1);   -- 莫高雷,钓鱼技能要求1级

-- 低级区域 (10-25级区域)
INSERT INTO skill_fishing_base_level (entry, skill) VALUES
(40, 55),   -- 西部荒野,钓鱼技能要求55级
(130, 55),  -- 银松森林,钓鱼技能要求55级
(11, 75),   -- 湿地,钓鱼技能要求75级
(17, 75);   -- 贫瘠之地,钓鱼技能要求75级

中高级区域钓鱼等级设置

-- 中级区域 (25-40级区域)
INSERT INTO skill_fishing_base_level (entry, skill) VALUES
(10, 130),  -- 暮色森林,钓鱼技能要求130级
(400, 150), -- 千针石林,钓鱼技能要求150级
(8, 175),   -- 沼泽之地,钓鱼技能要求175级
(15, 200);  -- 尘泥沼泽,钓鱼技能要求200级

-- 高级区域 (40-60级区域)
INSERT INTO skill_fishing_base_level (entry, skill) VALUES
(361, 250), -- 费伍德森林,钓鱼技能要求250级
(618, 275), -- 冬泉谷,钓鱼技能要求275级
(139, 300), -- 东瘟疫之地,钓鱼技能要求300级
(28, 300);  -- 西瘟疫之地,钓鱼技能要求300级

特殊区域和副本钓鱼设置

-- 主城区域 (通常较低要求)
INSERT INTO skill_fishing_base_level (entry, skill) VALUES
(1519, 1),  -- 暴风城,钓鱼技能要求1级
(1637, 1),  -- 奥格瑞玛,钓鱼技能要求1级
(1657, 1),  -- 达纳苏斯,钓鱼技能要求1级
(1638, 1);  -- 雷霆崖,钓鱼技能要求1级

-- 副本区域 (通常较高要求)
INSERT INTO skill_fishing_base_level (entry, skill) VALUES
(2557, 225), -- 黑石深渊,钓鱼技能要求225级
(1584, 300), -- 黑翼之巢,钓鱼技能要求300级
(3456, 275); -- 祖尔格拉布,钓鱼技能要求275级

查询示例

查看所有区域的钓鱼要求

SELECT sfbl.entry, sfbl.skill, at.AreaName
FROM skill_fishing_base_level sfbl
LEFT JOIN areatable_template at ON sfbl.entry = at.ID
ORDER BY sfbl.skill, sfbl.entry;

查找适合特定技能等级的钓鱼区域

-- 查找适合150级钓鱼技能的区域
SELECT sfbl.entry, sfbl.skill, at.AreaName
FROM skill_fishing_base_level sfbl
LEFT JOIN areatable_template at ON sfbl.entry = at.ID
WHERE sfbl.skill <= 150 AND sfbl.skill >= 100  -- 技能要求在100-150之间
ORDER BY sfbl.skill DESC;

统计各技能等级段的区域数量

SELECT 
    CASE 
        WHEN skill <= 75 THEN '新手区域 (1-75)'
        WHEN skill <= 150 THEN '低级区域 (76-150)'
        WHEN skill <= 225 THEN '中级区域 (151-225)'
        WHEN skill <= 300 THEN '高级区域 (226-300)'
        WHEN skill <= 375 THEN '外域区域 (301-375)'
        ELSE '诺森德区域 (376+)'
    END as skill_range,
    COUNT(*) as area_count,
    MIN(skill) as min_skill,
    MAX(skill) as max_skill
FROM skill_fishing_base_level
GROUP BY 
    CASE 
        WHEN skill <= 75 THEN 1
        WHEN skill <= 150 THEN 2
        WHEN skill <= 225 THEN 3
        WHEN skill <= 300 THEN 4
        WHEN skill <= 375 THEN 5
        ELSE 6
    END
ORDER BY min_skill;

注意事项

⚠️ 重要提醒