一机多区公用账号公用角色独立各区互相不可见的思路

奇迹GS自身就有设置会员线的功能,当修改ServerInfo.dat 的下的参数:
ConnectMemberLoad     = 0;

将其改为1 就开启了会员线的功能。

当如果开启后 进入本GS将会验证ConnectMember.txt 的账号信息,如果ConnectMember.txt包含此账号则可进入本GS 如果无此账号 则提示账号错误。

现在的奇迹私服 人气十分让人困扰,根本不需要一个区开多个GS  节省资源,可以使用本机 开3个区 公用攻城线GS , 单区对应一条GS。

大致设置:1区1线普通线 2线攻城线  2区1线普通线 2线攻城线

下面需要修改登录器实现 注册账号时 将注册成功的账号自动写入1区1线普通线ConnectMember.txt 如,注册成功后直接进入游戏即可,当开一个区时 这样是体验不出来了。

下面设置2区修改登录器实现 注册账号时 将注册成功的账号自动写入2区1线普通线ConnectMember.txt 这样一来 2区注册的账号只能进入2区1线普通线 1区账号只能进入1区1线普通线。
攻城线不做限制,也就是 1区是1区 2区是2区 两个区公用相同攻城线, 攻城时可以互相可见,平时又分别不再一起,当然这是我的设置思路,也可以全部独立 只要修改登录器写入即可,或者使用网页注册时 通过网页注册写入实现。

这样一来一台机器可以开多区GS,一个GS对应一个区。合区操作无需玩家操作了。我们只要将1区1线的ConnectMember.txt 的账号拷贝到2区1线ConnectMember.txt 中即可,无重复账号,无重复角色名。因为本来就用了一个数据库。

这个方法只供大家参考,实际实现方面还有很多问题,如非本区账号登录器此区 可能会提示账号错误,修改客户端返回信息,改为非本区账号或账号不存在什么的。
其实就是当玩家注册成功后,对应的GS需要重读选项信息。略微会使用OD的GM估计都能搞的定,监控对应线路的ConnectMember.txt 文件大小,若大小变动直接想对应GS发数据包使之重读选项信息。

以上仅是思路,希望大家有更好的思路提出本文出自 7j45 > 奇迹一条龙