当前位置 : 145z游戏站 | 热血传奇 | 技术教程 | 

传奇沙巴克改名必改三处:SabukW与NPC脚本及Monster.DB操作

热度:
改沙巴克名字看起来简单,但实际操作中有一半以上的人改完进游戏发现名字没变全,或者攻城命令直接失效。问题出在只改了表面那几处,漏掉了数据库和核心程序里的关联字段。下面把三个必改文件拆开讲,附带DB_Commander.exe的完整操作步骤。

**第一处:SabukW.txt的五个字段**

服务端路径MirServer\Mir200\Castle\0\SabukW.txt,这个文件是沙巴克配置的核心。打开之后找到五个需要改的地方:

CastleName=沙巴克
MainDoorName=沙巴克城门
LeftWallName=沙巴克左城墙
CenterWallName=沙巴克中城墙
RightWallName=沙巴克右城墙

等号后面的"沙巴克"全部换成新名字,其他配置行不要动。这里有个细节,城门和城墙的名字里面包含"沙巴克"三个字,如果只改了CastleName而漏了后面四个,游戏里显示出来就是城主称号变了但城门名字还是旧的。

如果服务端正在开区状态,改完这个文件之后要到M2上点控制-重新加载-重新加载沙巴克设置,否则改动不会生效。

**第二处:NPC脚本和地图配置里的所有沙巴克字样**

第二个坑藏在Mir200\Envir目录下的多个文件里。需要逐个打开检查替换的包括:

MirServer\Mir200\Envir\Npcs.txt
Mirserver\Mir200\Envir\merchant.txt
Mirserver\Mir200\Envir\MapInfo.txt
Mirserver\Mir200\Envir\market_def\0sbkkmy-3.txt
Mirserver\Mir200\Envir\market_def\0gzlfy-0150.txt
Mirserver\Mir200\Envir\market_def\0sbkdc-0150.txt
Mirserver\Mir200\Envir\market_def\0bqgw-0122.txt
Mirserver\Mir200\Envir\market_def\0gmdgw-8045.txt

用文本编辑器打开每个文件,查找"沙巴克"全部替换成新名字,然后保存。注意market_def目录下那些带数字的文件名,不同版本可能略有差异,但凡是文件名里带sbk或者沙巴克字样的都要查一遍。

**第三处:Monster.DB里的城墙怪物名**

这一处是90%的人会漏掉的。服务端怪物数据库Monster.DB里面存了沙巴克城墙的怪物记录,不改的话进游戏看地图,城门和城墙上的名字还是"沙巴克城门"。

操作用DB_Commander.exe。桌面上的快捷方式打开之后,点File-Open,选Left,路径指向Mirserver\Mud2\DB,选中Monster.DB文件。

打开之后点工具栏里的放大镜图标(Find),弹出的对话框里FIELD选"Name",Texttofind输入"沙巴克",点FindNext。左边列表会依次定位到:

沙巴克城门
沙巴克左城墙
沙巴克中城墙
沙巴克右城墙

用键盘方向键上下翻动找到每条记录,把名字里的"沙巴克"改成新名字,改完直接关闭窗口,软件会自动保存。

DBC2000本身是传奇服务端架设的标准数据库工具,专门用来修改Monster.DB、StdItems.DB这些核心数据文件。安装之后注意控制面板里DBEadministrator的路径设置要指向Mirserver\Mud2\DB,否则引擎读不到数据库。

**额外的攻城命令失效问题**

上面三个文件全部改完之后,进游戏看沙巴克名字应该已经齐全了。但如果用@攻城命令提示沙巴克攻城战已结束,问题不在配置文件,在引擎主程序M2Server.exe里对"沙巴克"这个字符串做了硬编码比对。新版商业引擎大多修复了这个问题,但老版本引擎和免费引擎遇到这个坑的概率很高。

解决办法是用十六进制编辑器打开M2Server.exe,搜索"沙巴克"字符串替换成新名字,操作时需要小心字符串长度保持一致,否则程序会出问题。
[顶部]