一、只改 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 没写盘,重新打开发现改动丢失
• 用 BDE Administrator 时路径没指到 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 输入 @攻城 回执文本、城主行会封号前缀、攻城结束公告。任何一处仍显示“沙巴克”就说明对应文件没替全,按上面清单逐条反查。
修改传奇沙巴克名称90%人会犯的3个错误:完整避坑与修正手册
来源:
作者:
点击:

