清理数据库残留数据
出现“角色名已经存在”且伴随错误代码2,通常是因为数据库中已经残留了该角色的记录。即使你是在新安装的单机版中第一次尝试创建,如果之前的安装没有卸载干净,或者数据库文件是别人用过的,就会导致这个问题。
打开服务端的数据库管理工具(通常是DBC2000或SQL Server管理器)。找到HeroDB数据库,查看其中的Character表(角色表)。在这里你会看到所有已存在的角色名。如果这里有你试图创建的名字,直接删除该条目。
如果无法确定是哪个名字冲突,或者想彻底重置,可以清空Character表中的所有数据。注意不要删除Account表(账号表)中的管理员账号,除非你想重置GM权限。清空后,重启DBServer和M2Server,再次尝试创建角色,通常就能恢复正常。
检查角色名命名规范
虽然提示是“角色名已存在”,但有时候命名不符合引擎规则也会报这个错。传奇引擎对角色名的字符有严格限制。
确保角色名只包含汉字、英文字母或数字。不要使用特殊符号(如@、#、$、空格等)。部分老版本引擎不支持纯数字或纯英文的角色名,尝试使用标准的2-3个汉字组合进行测试。
检查角色名长度。大多数引擎限制角色名在2到10个字符之间。如果名字过短或过长,数据库写入时会失败,从而反馈一个模糊的错误代码。尝试使用像“战士01”或“测试号”这样简单的名字进行排查。
修复服务端文件与权限
错误代码2有时也代表文件写入失败。如果服务端没有权限在数据库文件中写入新数据,系统可能会误报为“已存在”。
检查杀毒软件拦截记录。查看Windows Defender或第三方杀毒软件的隔离区,看是否有DBServer或M2Server的相关组件被隔离。如果有,将其恢复并添加至信任列表。
以管理员身份运行游戏。右键点击GameCenter或登录器,选择“以管理员身份运行”。这能确保服务端有权限读写D盘根目录下的Mirserver文件夹。同时,检查Mirserver文件夹的属性,确保“只读”选项未被勾选。
核对登录器与服务端版本
如果登录器与服务端的引擎版本不匹配,数据包传输会出现异常,导致创建角色的指令无法被正确解析。
确认你使用的登录器是使用当前服务端配套的“登录器配置器”生成的。不要混用不同版本的登录器(例如用GOM的登录器去连GEE的服务端)。
检查登录器配置器中的“角色名检测”设置。有些配置器允许设置是否允许重名或检测规则,确保这里的设置与M2Server中的设置一致。如果不确定,重新用配置器生成一个新的登录器,覆盖旧文件后再试。

