作者:传奇之家类别:常见问题
更新:2026-11-11查看次数:168
上周六合区,两边各有一批叫"无双"的号。合完第二天,其中一边的人登录就弹"角色名已存在,请重新输入",进不去。群里有人说删号重建,有人说是客户端缓存。
我先看了数据库。两个服的角色表合并进一张,名字字段没有唯一约束,理论上允许重名。但登录器拉角色列表时按名字取,重名就冲突,于是弹这个提示。
这里有个坑:合区脚本大多数人只搬角色数据,忘了处理重名。搬完不报错,等到玩家登录才暴露,那时候人已经在群里骂了。
处理办法有两条。一条是给重名的号加后缀,比如"无双_2",让玩家自己改;另一条是直接删掉后合的号,让那边的人重建,补偿发到账号上。两条都能用,前一条麻烦在要通知,后一条麻烦在有人会闹。
我们先走第一条。写了个脚本,把重名里等级低的那个改成"名字加区号",改完全服发公告。改完发现还是有人登不上,查了半天,是角色表改了,但账号表里记录的最后登录角色还指向旧名字。登录器读账号表,自然找不到。
所以改完名字要同步两处:角色表的名字,和账号表里记录的最后角色。漏一处,玩家还是卡在登录界面。
第二次合区前,我把重名检测加进了合区流程。先跑一遍统计,把重名的号列出来,开区前一天通知到人,让人自己改。有准备的改,比合完再补省事得多。
顺便说一句,重名判断别只看完全一样。"无双"和"無双"、"无双"后面带个空格,登录器有时候会当成同一个,也一起处理掉。