传奇如何添加技能书
采用传统 mirserver/dbc 结构的传奇服务端时,添加技能书必须同时处理技能数据和物品数据,单独增加其中一项通常只能看到物品,无法真正学会技能。操作前先关闭登录器、网关、游戏引擎等服务程序,完整备份服务端数据库、客户端资源和脚本文件,再确认当前引擎使用的是 magic.db、magicdb,还是独立的 skill 技能表;不同引擎的字段名称可能不同,但技能记录+技能书物品+使用脚本或绑定关系是基本组成。传统服务端通常将 magic 作为技能效果、职业和等级条件的来源,将 stditems 作为技能书名称、编号、外观及物品属性的来源。

先在技能表中复制一条效果相近、已经可以正常学习的技能记录,再按实际需求修改名称、职业和等级条件。job 通常使用数字 0、1、2,分别对应战士、法师和道士;needl1、needl2、needl3 分别控制技能第1、2、3级的学习等级,l1train、l2train、l3train则对应各级修炼所需数值。若只是让其他职业学习已有技能,应优先沿用原技能的 magid 或技能代号,避免改动引擎已经识别的效果;若要制作全新攻击动作、伤害逻辑或召唤效果,则必须确认引擎本身支持该技能代号,不能只在数据库里随意填写名称。技能表中的编号、职业和等级条件有一项不匹配,使用技能书后就可能没有反应,或出现无法学习。
再在 stditems.db 或对应物品表中复制一本同类型技能书,修改物品编号、名称、职业限制、使用等级、重量、售价和显示外观,并将它绑定到前面确定的技能代号。物品编号必须唯一;部分传统引擎还要求编号递增或连续,新增记录最好接在当前最大编号不要插入中间或重复旧编号。技能书的 stdmode、shape、looks 等字段不要凭经验重填,应直接参考同职业、同类型的现成技能书,否则可能出现图标为空、无法捡取、右键无效或使用后消失但技能不增加等问题。客户端没有对应图标或物品资源时,数据库中的名称可能正常显示,但背包图标会变成空白,因此新增外观时还要同步检查客户端资源文件。
完成修改后先保存数据库,再启动服务端进行单人测试,依次检查物品能否获得、右键使用是否消耗、技能栏是否出现技能,以及角色达到 needl1、needl2、needl3 的条件后能否分别学习1至3级。测试时至少准备一个符合职业条件的角色和一个不符合条件的角色:前者应能正常使用,后者应被职业或等级限制拦截。最常见的错误是只添加了技能书,没有添加技能记录;技能表和物品表使用了不同的技能代号;job 填写错误;物品编号重复;修改后未重启引擎导致旧数据仍在缓存中。若目标只是增加一本已有技能的书,复制现成记录并调整编号、名称和限制即可;若目标是增加全新技能效果,还需要同步脚本、客户端动作和引擎支持,不能依靠增加一本技能书单独实现。
相关内容



