一、只改SabukW.txt不重载M2缓存
沙巴克主配置文件Mir200\Castle\0\SabukW.txt的[Setup]段里CastleName=沙巴克改完新名后,M2进程内存里仍缓存旧值。直接进游戏测试,城门血条、攻城公告、GM命令回显全部还是老名字。
正确做法:改完文件后,进M2控制台→控制→重新加载→重新加载沙巴克设置。如果是热修不开区,也必须执行这一步。M2日志里出现“重新加载沙巴克配置完成”才算生效。部分引擎版本还需要在!Setup.txt的[Setup]段同步CastleName字段,否则M2重启后又会读回旧名。
二、漏改Monster.DB导致城门血条显示旧名
这是出现频率最高的问题。沙巴克的城门和城墙在游戏中是怪物实体,名字存在Mud2\DB\Monster.DB里,跟SabukW.txt的MainDoorName、LeftWallName等字段是两套独立存储。
用DB_Commander.exe打开Monster.DB后,搜Name字段包含“沙巴克”的记录,通常能找到:沙巴克城门、沙巴克左城墙、沙巴克中城墙、沙巴克右城墙。部分版本还有沙巴克皇宫门、沙巴克秘道守卫。把这些记录的Name字段逐条改成与SabukW.txt里CastleName完全一致的新名。
常见错误操作:
•只改了城门没改城墙,打城墙时飘血名还是旧称
•DB_Commander里点到了结构编辑页改了Appr或坐标字段,导致城门刷新异常或坐标偏移
•改完没关表就强制结束进程,DBC2000没写盘,重新打开发现改动丢失
•用BDEAdministrator时路径没指到Mud2\DB,打开的是空表,改了个寂寞
三、Envir脚本和地图文件里硬编码“沙巴克”字面量未替换
Mir200\Envir目录下大量脚本文件里直接写了“沙巴克”四个字,不是从CastleName变量读取。漏掉这些文件会导致:NPC对话还叫沙巴克、攻城公告喊旧名、城主封号前缀不变、行会排行榜显示错位。
必须全文搜索并替换的文件清单:
脚本层:
•Npcs.txt、Merchant.txt——沙城传送员、药店老板对话文案
•MapInfo.txt——地图描述行和暗道连接备注里的“沙巴克”字样
•market_def\0sbkkmy-3.txt(沙城药店)、0gzlfy-0150.txt(攻城司令)、0sbkdc-0150.txt(沙城武器店)、0bqgw-0122.txt(补区管理员)、0gmdgw-8045.txt(光芒道馆)
•QuestDiary目录下所有攻沙通知、城主福利、沙城税收脚本
•String.ini——封号格式行CastleGuildName=(%castlename)%guildname【%rankname】,如果脚本里硬写了“沙巴克”字面量也要替换
•GMCommand.txt——@攻城、@结束攻城等命令的回执文本
•QManage.txt、QFunction-0.txt——攻城开始/结束触发标签里的广播内容
引擎层:
•部分GEE/BLUE引擎的M2Server.exe和LoginGate.exe内部字符串表里也编译了“沙巴克”宽字节串。用UE或Notepad++以二进制模式打开exe文件,搜“沙巴克”宽字符(每个汉字中间插\00),找到后替换为等长新名(不够用空格补齐,不能改变文件长度)。操作前必须备份原exe。
行会数据层:
•GuildBase\GuildList.txt——如果旧城主行会名带“沙巴克”前缀(如“沙巴克丨某某行会”),也要替换,否则排行榜和城主令显示错位。
地图编号不能动:3(沙城主城)、0150(沙城药店区)、0151-0156(沙城各子区)、D701(沙城暗道)。这些编号绑定在CastleMapList.txt里控制攻城区域判定,只换显示名不动地图号,动地图号会脱离攻城绑定导致攻城逻辑失效。
改完后的核验顺序:启M2→重载沙巴克→建号进盟重→走3.map进沙城→看小地图名称、城门血条名、NPC对话内容、GM输入@攻城回执文本、城主行会封号前缀、攻城结束公告。任何一处仍显示“沙巴克”就说明对应文件没替全,按上面清单逐条反查。
沙巴克主配置文件Mir200\Castle\0\SabukW.txt的[Setup]段里CastleName=沙巴克改完新名后,M2进程内存里仍缓存旧值。直接进游戏测试,城门血条、攻城公告、GM命令回显全部还是老名字。
正确做法:改完文件后,进M2控制台→控制→重新加载→重新加载沙巴克设置。如果是热修不开区,也必须执行这一步。M2日志里出现“重新加载沙巴克配置完成”才算生效。部分引擎版本还需要在!Setup.txt的[Setup]段同步CastleName字段,否则M2重启后又会读回旧名。
二、漏改Monster.DB导致城门血条显示旧名
这是出现频率最高的问题。沙巴克的城门和城墙在游戏中是怪物实体,名字存在Mud2\DB\Monster.DB里,跟SabukW.txt的MainDoorName、LeftWallName等字段是两套独立存储。
用DB_Commander.exe打开Monster.DB后,搜Name字段包含“沙巴克”的记录,通常能找到:沙巴克城门、沙巴克左城墙、沙巴克中城墙、沙巴克右城墙。部分版本还有沙巴克皇宫门、沙巴克秘道守卫。把这些记录的Name字段逐条改成与SabukW.txt里CastleName完全一致的新名。
常见错误操作:
•只改了城门没改城墙,打城墙时飘血名还是旧称
•DB_Commander里点到了结构编辑页改了Appr或坐标字段,导致城门刷新异常或坐标偏移
•改完没关表就强制结束进程,DBC2000没写盘,重新打开发现改动丢失
•用BDEAdministrator时路径没指到Mud2\DB,打开的是空表,改了个寂寞
三、Envir脚本和地图文件里硬编码“沙巴克”字面量未替换
Mir200\Envir目录下大量脚本文件里直接写了“沙巴克”四个字,不是从CastleName变量读取。漏掉这些文件会导致:NPC对话还叫沙巴克、攻城公告喊旧名、城主封号前缀不变、行会排行榜显示错位。
必须全文搜索并替换的文件清单:
脚本层:
•Npcs.txt、Merchant.txt——沙城传送员、药店老板对话文案
•MapInfo.txt——地图描述行和暗道连接备注里的“沙巴克”字样
•market_def\0sbkkmy-3.txt(沙城药店)、0gzlfy-0150.txt(攻城司令)、0sbkdc-0150.txt(沙城武器店)、0bqgw-0122.txt(补区管理员)、0gmdgw-8045.txt(光芒道馆)
•QuestDiary目录下所有攻沙通知、城主福利、沙城税收脚本
•String.ini——封号格式行CastleGuildName=(%castlename)%guildname【%rankname】,如果脚本里硬写了“沙巴克”字面量也要替换
•GMCommand.txt——@攻城、@结束攻城等命令的回执文本
•QManage.txt、QFunction-0.txt——攻城开始/结束触发标签里的广播内容
引擎层:
•部分GEE/BLUE引擎的M2Server.exe和LoginGate.exe内部字符串表里也编译了“沙巴克”宽字节串。用UE或Notepad++以二进制模式打开exe文件,搜“沙巴克”宽字符(每个汉字中间插\00),找到后替换为等长新名(不够用空格补齐,不能改变文件长度)。操作前必须备份原exe。
行会数据层:
•GuildBase\GuildList.txt——如果旧城主行会名带“沙巴克”前缀(如“沙巴克丨某某行会”),也要替换,否则排行榜和城主令显示错位。
地图编号不能动:3(沙城主城)、0150(沙城药店区)、0151-0156(沙城各子区)、D701(沙城暗道)。这些编号绑定在CastleMapList.txt里控制攻城区域判定,只换显示名不动地图号,动地图号会脱离攻城绑定导致攻城逻辑失效。
改完后的核验顺序:启M2→重载沙巴克→建号进盟重→走3.map进沙城→看小地图名称、城门血条名、NPC对话内容、GM输入@攻城回执文本、城主行会封号前缀、攻城结束公告。任何一处仍显示“沙巴克”就说明对应文件没替全,按上面清单逐条反查。

