来源:夜神 | 更新时间:2026-09-19 08:06
添加技能书不能只新建一条物品记录,正确做法是先在 magic.db 中定义技能,再在 stditems.db 中建立对应的技能书;如果该版本采用脚本触发双击学习,还要补充物品触发脚本,并根据需要配置客户端图标。magic.db 负责技能名称、职业、学习等级和技能效果,stditems.db 负责技能书作为道具时的名称、职业限制、需求条件及显示数据,三处数据能够相互对应,技能书才会正常生成、使用和学习。

添加前先关闭登录网关、角色服务器和游戏服务,备份 magic.db、stditems.db 以及相关脚本,再使用 dbc2000 打开服务端数据库;常见路径为服务端目录下的 mud2\db,但不同引擎的文件位置可能不同。magic.db 中应复制一条已经可以正常学习的同类技能作为模板,优先修改 magname、job、needl1、l1train、needl2、l2train、needl3 和 l3train。job 通常使用 0 表示战士、1 表示法师、2 表示道士;needl1 至 needl3 分别控制技能一至三级的等级门槛,train 字段控制对应修炼经验。若只是让其他职业学习现有技能,可以沿用原技能的 magid;若要制作全新技能效果,则必须确认当前引擎已经支持对应技能逻辑,不能只填写一个新编号就期待自动产生新效果。effecttype、effect 等字段应直接参考同类技能,传统数据中召唤骷髅常见效果值为 15,召唤神兽常见效果值为 28,但这些数值必须以当前引擎已有技能为准。
完成技能记录后,在 stditems.db 最后一行或同类技能书附近新增物品,并确保 idx 使用未占用的序号,例如现有最大序号为 600 时可使用 601;name 必须与 magic.db 的 magname 完全一致,包含汉字、空格和标点。shape 通常用 0、1、2 分别对应战士、法师、道士,need 用 0 表示等级限制、1 表示攻击限制、2 表示魔法限制、3 表示道术限制,needlevel 再填写具体数值,例如 need=0、needlevel=48 就是等级 48 才能学习。最稳妥的方式是复制一本同职业、同类型技能书的完整数据,只替换 idx、name、shape、need 和 needlevel,避免因引擎字段顺序不同而漏填 stdmode、looks 或其他触发参数。若双击后没有学习效果,检查该版本是否使用 stdmodefunc 触发;支持此机制的版本通常需要为技能书指定未占用的触发编号,并在 qfunction-0 等脚本中用 checkskill 判断技能等级,再用 addskill 写入技能。自定义图标还要同步客户端补丁,数据库中的 looks 只解决显示编号,不能替代实际图片文件。

测试时应先重启服务端,让数据库重新载入,再用测试角色领取技能书,分别验证符合条件和不符合条件的角色、不同职业角色以及等级不足时的表现;双击后要确认技能列表出现目标技能,技能等级、魔法消耗、动作效果和实际伤害均与 magic.db 设定一致,并完成下线、重新登录和再次使用测试。新手技能适合沿用原职业基础技能的学习等级和修炼经验,避免角色刚进入游戏就获得后期能力;中期技能可通过提高 needl1 至 needl3 和 train 数值拉开成长周期;跨职业技能则应同时核对 job、shape 和技能效果,确保只是改变学习职业,不会误改技能本身的攻击逻辑。确认单人学习、重复使用、交易流转和客户端显示均正常后,再把技能书加入商店、怪物掉落或任务奖励。
传奇百科 | 联系我们 | 精选专题 | 网站帮助 | 人才招聘
Copyright 2015-2026 lts-lab.com All Rights Reserved. 欧仕通新服网 版权所有 鄂ICP备2022013052号-11