钓鱼基础等级表定义了不同区域钓鱼所需的最低技能等级。这个表控制着玩家在各个区域进行钓鱼时的成功率和可钓到的鱼类,确保钓鱼技能的进阶性和区域特色。
字段名 | 类型 | 描述 |
---|---|---|
entry | mediumint unsigned | 区域ID (主键) |
详细说明:指定钓鱼区域的唯一标识符。对应AreaTable.dbc文件中的区域ID,决定了这个钓鱼等级要求适用于哪个区域。
取值范围:1 - 16777215 (mediumint unsigned的范围) 区域类型:
常见区域ID示例:
注意:确保区域ID在AreaTable.dbc中存在且为有效的钓鱼区域 |
||
skill | smallint | 所需钓鱼技能等级 |
详细说明:指定在该区域进行有效钓鱼所需的最低钓鱼技能等级。玩家的钓鱼技能必须达到或超过这个等级才能在该区域成功钓鱼。
取值范围:1 - 450 (根据版本而定) 技能等级分布:
版本限制:
设置原则:
影响因素:
|
当玩家在某个区域尝试钓鱼时,系统会:
-- 新手区域 (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;