单机传奇服务端启动正常、能注册账号也能登录选人界面,但一点"创建角色"就弹"角色名已存在"或报错误代码2,哪怕换十几个新名字都一样,这基本不是你取的名字真被占用,而是数据库残留、DBServer配置、角色数据文件损坏或引擎参数限制了新建人物。下面按出现概率从高到低逐一排查。
一、清空数据库中残留的角色记录
大多数情况是HeroDB(BDE/DBC2000数据库)里的RoleDB表还留着空记录、乱码或上个测试用的角色,引擎读到异常记录就判定名字冲突。
1. 关闭所有服务端程序(M2Server、DBServer、LoginGate等)。
2. 打开BDE Administrator或DBC2000,加载你配置好的HeroDB数据源,指向MirServer\Mir200\Mud2\DB。
3. 打开RoleDB表,全选删除所有行(单机测试环境可直接清空);同时检查UserDB表里有无绑定的角色关联记录一并删掉。
4. 保存后关闭,重启全套服务端再试。
如果RoleDB或IdDB文件本身损坏,可从原始解压包复制Mir200\Mud2\DB下对应文件覆盖。
二、确认DBServer勾选了允许建立新人物
部分引擎默认或误操作时关闭了建号开关,导致写入被拒从而误报重名。
• 打开MirServer\DBServer\DBServer.exe,点击菜单选项 → 基本设置(部分版本叫参数设置)。
- 找到允许建立新人物/允许创建新角色,确保打勾。
• 保存设置并重启DBServer和M2Server。
三、检查IdDB和FDB目录下的账号角色数据库文件
GOM/HERO引擎的角色与账号索引存放在:
- MirServer\Mir200\Mud2\Logsrv\IdDB\(存账号ID信息)
• MirServer\Mir200\Mud2\DBServer\FDB\(存角色关联)
若这些目录下的.db或索引文件损坏也会触发错误代码2。先备份,然后删除这两个目录下的所有文件(不含文件夹本身),重启DBServer让它自动重建;不行就从同版本纯净端复制覆盖。
四、角色名命名规范与引擎字符限制
引擎对角色名有硬性要求,不符合时报错也可能伪装成"已存在":
• 用2~3个纯汉字(如"测试甲")先测,避开纯数字、纯英文、带空格或特殊符号@#$。
• GOM/GEE引擎进M2Server→选项→游戏设置→角色设置,确认角色名最小长度≥2、最大≤12(汉字按2字节计),取消勾选"禁止建立含数字人名"这类限制后再试。
五、清理登录器缓存与检查版本匹配
登录器本地缓存了旧角色名列表,数据库清了它还在读缓存。
• 删除客户端目录下的Cache文件夹、*.tmp临时文件。
• 确认登录器是用当前服务端配套登录器配置器生成的,不要混用GOM登录器连GEE服务端或反之。
• 关闭杀毒软件(特别是Windows Defender),检查SelGate.exe、LoginGate.exe是否被隔离,隔离了需恢复并加信任,否则数据包传不到DBServer导致建号失败。
六、检查预留名与配置文件限制
部分版本在MirServer\Mir200\!Setup.txt或HConfig.ini(HERO引擎)/QFunction脚本中有预留角色名(GM、管理员等),若你试的名字碰巧在列表里也会提示重复。打开对应配置文件搜索ReservedName或GM,把冲突的名字改掉或删掉该项后重启M2。
七、数据库路径与文件权限
• DBC2000里HeroDB的PATH必须精确指向D:\MirServer\Mir200\Mud2\DB(根据你实际盘符),不能有中文或多余斜杠。
• 右键Mir200\Mud2\DB文件夹→属性→安全→给Users或当前用户勾选完全控制,防止写入失败被引擎误判为重名。
按以上顺序操作,通常清完RoleDB残留并确认DBServer允许建号就能解决。若仍不行,建议重新解压一份纯净端对照路径再架一次排除文件损坏因素。
单机传奇架设后创建角色一直显示名字重复或已存在错误的排查修复方法
来源:
作者:
点击:

