hykilpikonna / AquaDX

A certain magical arcade server
https://aquadx.net
Other
249 stars 56 forks source link

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

Open Zaphkito opened 4 months ago

Zaphkito commented 4 months ago

这个会影响到无印版本的自检,请查看另一本地服的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 commented 1 month ago

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

clansty commented 1 month ago

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

Zaphkito commented 1 month ago

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

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