Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

关于DX无印版的GetGameSettingApi和服务端对于不同地区的数据响应 #33

Open
Zaphkito opened this issue May 8, 2024 · 3 comments

Comments

@Zaphkito
Copy link
Contributor

Zaphkito commented May 8, 2024

这个会影响到无印版本的自检,请查看另一本地服的PR(该代码已测试,无印版本可用)
https://gitea.tendokyu.moe/Hay1tsme/artemis/pulls/125

简单解释一下,关于oldserveruri部分,我们需要给DX返回一个不包含MaimaiServlet的旧框使用的uri,DX会在这个uri后面自动加入MaimaiServlet和他想要的endpoint
如果设置错误,就会影响游戏的自检(标题服务器 bad,进入游戏后黄网),目前来看暂时不影响正常游玩,但我没进行空返回的进一步测试

较新的版本会请求这些内容,但是并不会拿这些参数做什么(除了国际服和国服会用baseuri + movieserveruri组成的链接来作为真正的标题服务器uri,所以不要往DX以上版本的movieServerUri, deliverServerUri 和 usbDlServerUri返回任何内容)

@Zaphkito
Copy link
Contributor Author

Zaphkito commented Aug 2, 2024

追加更新:作为服务端,应当做到的是尽可能还原官方服务器的响应
在国际服的通讯中,联网时会在后方追加MaimaiExp和C3Exp(对于SDGS 1.05之前,则会返回Exp)
在国服的通讯中,则会追加MaimaiChn和C3Chn
因此,服务器应当能够判断日服的Endpoint和国际服、国服的Endpoint,如在服务器端检测到这些则直接剔除,或以其他方式让*、*MaimaiExp、*MaimaiChn共存,中二同理
而并非通过魔改游戏的方式直接把一部分游戏代码干掉,这是不妥的,最高限度的网络修改应当只有关闭TLS、https和网络加密,希望管理者能考虑一下这个问题
另外通过爆改游戏来将baseuri + movieserveruri直接修正为baseuri也是不妥的,你完全可以通过修改GetGameSettingApi的内容来解决该错误,来减少游戏不必要的修改,关于这点请查看上面,DX版本开始,movieserveruri就必须是一个空值,无论是哪个地区的版本,只是游戏遗留代码会发一下然后服务器返回个空值罢了,华丽的舞萌DX是这么处理的
另外:日服、国际服和国服存在一些它有,但其它版本没有的物品、跑图等,所以应当实现不同端的数据库分离,切勿三端共用一个账号,否则可能会出现不可预知的卡死闪退报错等问题

@Zaphkito Zaphkito changed the title 关于maimai DX无印版本的GetGameSettingApi相关 关于DX无印版的GetGameSettingApi和服务端对于不同地区的数据响应 Aug 2, 2024
@clansty
Copy link
Collaborator

clansty commented Aug 2, 2024

就算不改掉这个后缀应该也需要魔改游戏来移除加密吧,而且一般移除加密的同时 mod 也会移除后缀

@Zaphkito
Copy link
Contributor Author

Zaphkito commented Aug 2, 2024

就算不改掉这个后缀应该也需要魔改游戏来移除加密吧,而且一般移除加密的同时 mod 也会移除后缀

网络加密和后缀是分开的俩东西,我可以在加密的情况下包含该后缀,也可以在加密的情况下不需要这个后缀
移除掉所有的加密后,你看到的是GetGameSettingApiMaimaiExp,而不是经过任意处理的其他内容

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants