一、先弄明白宝宝是怎么被召唤出来的
单机端的道士召唤,其实由两块东西拼起来:一块是引擎里的技能逻辑,也就是 M2Server.exe;另一块是数据库里的怪物本体,也就是 Monster.DB 之类存怪物的表。召唤骷髅、召唤神兽、召唤月灵这三个技能,本身不会凭空造出一只怪,它只是按你事先写好的规则,去数据库里点名,把某个名字的怪物拉到场上当宝宝。
所以召唤这件事本质上是一个查表动作。技能里写的是名字,数据库里存的也是名字,两边对不上,引擎就不知道你要拉谁,结果就是技能放出去了,符也消耗了,场上什么都没有。很多人把这种情况当成技能出问题,去翻 Magic.DB,其实方向从一开始就偏了。
M2 的召唤设置是按人物等级分段的:多少级召唤哪只怪、一次召几只、召出来的宝宝是多少级,一行一条。等级段可以很多行,比如 1 级到 20 级召一只,21 级到 40 级召另一只,往上再换更强的。这也是为什么同一个技能在不同版本里,道士的宝宝会长得完全不一样,不是客户端的事,纯粹是引擎配置里换了名字。
二、在 M2 里改召唤宝宝的完整操作
打开引擎主程序 M2Server.exe,在菜单栏点选项,往下找到功能设置,再进技能魔法,里面有个道士技能分类。左侧列表里能看到召唤骷髅、召唤神兽这几项,有的端还多一个召唤月灵。选中其中一个,右边就是它的参数区。
参数区里有个高级设置按钮,点开才是真正决定宝宝是什么的东西。里面一排排的字段,横着看过去大概是:人物等级、怪物名称、数量、宝宝等级。你要做的就是把等级填成起始等级,怪物名称填成数据库里那只怪的确切名字,数量填召唤只数,宝宝等级填召出来时自带的等级。
这里有个坑要单独说。怪物名称那一栏,在很多端里是下拉选择的,能从列表里挑就千万别手打。手打进去的名字只要差一个字符,整行就作废,而且界面上看不出任何异常,它照样保存、照样不报错。你以为保存成功了,进游戏一试,符扔出去没反应。
不用的等级段要删干净,别留下半行空的或者填了一半的行。M2 启动或者保存的时候,会去校验这些名字,遇到对不上的就会弹出提示,大意是怪物名称设置错误,请查看数据库里有没有对应的怪物。你提到的 M2AE 那种改怪物名字的工具,本质上动的也是这张怪物表,名字写错、只改一处不改引用,最后的症状都一样。
保存完之后还没完。要么在 M2 里点控制,选重新加载对应的数据库,要么干脆把服务端重启一遍。改数据不重载,等于没改。另外测试的时候要先把旧宝宝放掉或者打死,再重新召唤,场上已经存在的宝宝不会因为你改了配置就自动变。
三、召唤骷髅点下去没宝宝的排查顺序
第一条也是最常见的一条,名字对不上。数据库里叫神兽,你 M2 里写的是神兽加一个空格;或者数据库里用的是全角括号,你填的是半角;再或者名字里混进了看不见的空格。这类问题肉眼几乎看不出来,只能把两边名字复制出来放在一起比对长度。
第二条,数据库里根本没有这个名字。改名之后最容易踩。你把 Monster.DB 里那只怪的名字从旧名换成新名,M2 的召唤设置还写着旧名,引擎去查表查不到,召唤自然落空。这里要记住,改名是牵一发动全身的动作,不是改一个字段就结束。
第三条,等级段没覆盖到你的人物等级。比如你只写了 40 级以上的召唤规则,用 35 级的号去测,什么都没发生,这不算故障。或者数量那一栏填了 0,同样召不出来。
第四条,高级设置里有残留的无效行。删技能配置的时候只删了一半,剩下几行空的或者只填了等级没填名字,M2 校验不过去,整个技能都可能被判定为配置错误。
第五条,技能参数里的召唤控制选项。有的端在这里做了互斥勾选,比如召唤月灵之后不能再召唤神兽、或者不能再召唤骷髅。勾上了,前一个宝宝在场时后一个技能就是召不出来。这是设计如此,不是 bug,想两个宝宝共存就把勾去掉。
第六条,地图限制。某些地图的参数里禁止召唤,或者禁止某些技能的召唤,站在这种地图上试技能,永远试不出来。换个普通地图再测一次就能排除。
第七条,角色本身的条件。技能没学、学会了但没拖到快捷栏、等级不够、有的端还卡道术下限。这些在人物面板和技能面板里能直接看出来,检查一遍花不了几分钟。
第八条,改完没重载数据库、没重启服务端。这条最容易被忽略,因为前面改了半天,界面里看着都是对的,就是游戏里没动静。
第九条,引擎之间的差异。GOM、GEE、BLUE、LEG、HERO 这几套引擎,道士召唤的设置位置和字段名不完全一样,有的在技能魔法里,有的拆到别的地方,照着一套教程操作另一套引擎,很容易找不到对应的地方。
第十条,宝宝其实召出来了,只是看不见。这跟召唤逻辑无关,是客户端补丁的问题,怪物外观的 Appr 值指向的资源你没打上,或者打错了。判断方法很简单,看地上有没有一个看不见但会攻击、会被打的东西,或者看 M2 的怪物数量有没有增加。
四、怪物名称改错为什么会连锁失效
传奇服务端里的怪物名字,被引用的地方远不止 M2 的召唤设置一处。刷怪文件 MonGen.txt 是按名字刷的,怪物掉落文件 MonItems 是按名字挂的,任务脚本、NPC 对话、地图事件里到处都有名字。你只改数据库里那一个字段,其余的引用全都悬空了,结果是怪刷不出来、掉落不掉、任务接不了,你以为是新问题,其实全是改名带出来的。
还有一种更隐蔽的情况,两只不同的怪被起了同一个名字。引擎按顺序匹配,先撞上谁就是谁,你想召的是 B,实际出来的是 A,属性外观全不对。名字重复在拼凑的版本里很常见,拿名字去数据库里搜一遍能看出来有几条。
名字里带特殊符号、空格、全角字符,或者中英文混用,也都是隐患。最稳妥的办法是维持原编码和原格式,别在名字里加花哨的东西。
真要改名,正确做法是先决定新名字,再拿文本编辑器在整个服务端目录里做全局搜索替换,把所有引用一起改掉,改完再重载。嫌麻烦的话,还有一条更省事的路:不动老怪的名字,复制一行新建一只怪,把新名字写进 M2 的召唤设置。这样老引用一根都不碰,风险小得多。
五、用 DBC2000 改宝宝本体的属性
召唤规则管的是召谁,宝宝本体管的是召出来有多强,这两件事分开处理。
传统 DBC 端的做法是打开 DBC2000,新建一个别名,名字填 MIRDB,路径指向服务端里的 Mud2\DB 目录,确认保存后双击别名连上去,找到 Monster.DB 打开。在里面按名字搜到宝宝那只怪,能改的字段有血量 HP、物理防御 AC、魔法防御 MAC、最小攻击 DC、最大攻击 DCMAX、攻速 WALK_SPD,还有决定这只怪行为模式的 Race。
有一个经常被问到的点,想让道士的神兽攻击速度真的按你改的数值走,得把这只怪的 Race 值改成 81,不然后面那个攻速字段改了也白改。
字段改完保存,回到 M2 点控制,重新加载怪物数据库。已经站在场上的宝宝属性不会变,得等它死掉之后重新召唤,新属性才生效。这一点在测数值的时候尤其要注意,不然你会怀疑自己根本没改成功。
六、不用 DBC 的端怎么改
现在不少端已经不用 DBC 那套老引擎了。GEE、较新的 GOM、BLUE 这些逐渐换成 MDB、SQLite,甚至 MySQL,也有拿 Excel 表做数据源的。改法思路没变,还是找到怪物表,改字段、重载,区别只在工具和文件格式。用引擎自带的编辑器,或者用支持多格式的可视化工具打开都行。
要注意的是,别把一套引擎的怪物表整个导进另一套引擎。字段顺序一错位,血量跑到攻击栏、掉落概率跑到需求等级栏,表面上数据都在,实际上全乱了,而且很难回头排查。拿到新端之后先别急着改,把怪物表打开逐列看一遍字段名,跟引擎说明对一下,再动手。
七、动手前后的收尾动作
改之前,把整个 MirServer 文件夹复制一份做备份,这一步别省。改崩了直接拿备份覆盖回去,比在一堆错误的表里找问题是天壤之别。
改完之后按顺序做三件事:重新加载对应数据库或者重启服务端,清掉旧的角色数据或者换个新号测试,进游戏用对应等级的道士把技能挨个放一遍。改的是召唤配置就测召唤,改的是宝宝属性就打死重召看数值。三次动作都过了,才算这个改动真的落地。
单机端的召唤问题,九成落在名字对不对得上这一件事上。把 M2 的设置和数据库里的名字并排放一起,逐字符核一遍,比翻十篇教程都管用。
单机传奇道士召唤宝宝修改方法及召唤骷髅不出宝宝怪物名称设置错误排查
来源:
作者:
点击:

