传奇服务端添加技能书,必须同时处理技能数据和物品数据:先在 magic.db 中定义可学习的技能,再在 stditems.db 中建立对应的技能书,最后配置商店、怪物掉落或 npc 发放。修改前先关闭 m2server,备份 mirserver\mud2\db 目录下的原始数据库,避免字段写错后无法启动或造成存档异常。使用 dbc 2000 打开数据库时,应优先复制现有同类技能和技能书记录,再修改名称、职业和等级限制,不建议直接新建空白行。

magic.db 决定技能能否被学习以及学习后的效果,操作顺序是找到目标技能,复制整行数据,然后修改 magname、job、needl1、needl2、needl3 和对应的修炼经验。job 通常使用 0 代表战士、1 代表法师、2 代表道士;例如让战士学习法师火墙,可复制火墙数据,将名称改成战士火墙,job 改为 0,一级学习等级设为 40,二级、三级等级和修炼经验根据服务器成长节奏设置。若只是让另一职业使用原技能效果,可沿用原技能的 magid;若要制作全新技能,则应使用该引擎允许的未占用技能编号,并确认客户端拥有对应动作、图标和特效资源。

stditems.db 决定技能书是否作为物品存在,复制一本现有技能书后,先把 idx 改成数据库当前最大序号加 1,再把 name 改成与 magic.db 中 magname 完全一致,大小写、空格和字符都不能不同。shape 用于限制职业,战士填 0、法师填 1、道士填 2;若要求等级学习,need 填 0,needlevel 填具体等级,例如 needlevel=40 就表示角色达到 40 级后才能使用。书籍价格、外观、重量和库存量可参照同等级技能书调整。最常见的错误是只添加 stditems.db 而没有 magic.db 记录,或两个表的名称不一致,这会导致技能书无法使用、使用后无反应,甚至出现数据库读取异常。
完成两张表后,还要配置技能书的实际来源:商店出售时,把物品名称加入对应 npc 的货物列表;怪物掉落时,在爆率或掉落配置中加入完全相同的技能书名称;任务奖励或管理员发放时,也必须使用 stditems.db 中的标准名称。重启服务端后,用战士、法师、道士角色分别测试一次,依次检查背包显示、职业限制、40级前后使用结果、技能栏是否出现、技能等级是否能正常修炼,以及释放时的消耗和效果。确认学习、释放、升级和重新登录均正常后,再将技能书投入正式掉落或商店系统。