跳到内容
折叠侧栏
搜索
创建账号
个人工具
创建账号
登录
导航
首页
最近更改
随机页面
编者用页面
方针
指引
讨论版
格式手册
挂起清单
维护清单
玩法条目
游戏玩法
界面
机制
搭档
潜力值
Link Play
世界模式
故事模式
段位挑战
解歌系统
成就系统
版本更新日志
列表条目
定数表
曲目列表
曲包列表
曲师列表
谱师列表
画师列表
背景列表
友情链接
Rotaeno中文维基
工具
链入页面
相关更改
用户贡献
日志
查看用户组
特殊页面
页面信息
查看头像
查看“User:WYXkk/关于查分器的小科普”的源代码
用户页
讨论
不转换
不转换
简体
繁體
大陆简体
香港繁體
澳門繁體
大马简体
新加坡简体
臺灣正體
阅读
查看源代码
查看历史
更多
阅读
查看源代码
查看历史
←
User:WYXkk/关于查分器的小科普
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
你可以在各种音游群,特别是Arcaea群,看到各种Arcaea查分bot。 你还可以找到网页查分器。 那么查分是怎么实现的呢? ---- 众所周知,各种查分器都会在查分前要求你提供好友码(或用户名,下面会解释)。 这说明查分器的操作都是通过好友码实现的。 实际上原理非常简单: * 查分器登录一个查分用账号 * 使用此账号加你提供的好友码的好友 * 根据需要查询的信息进行查询: ** 点开好友列表,获取ptt,用户名和最近游玩信息 ** 点开歌曲好友榜,获取你的最好成绩信息 * 查分器删除你提供的好友码的好友 * 根据查询到的信息生成成绩图然后发送消息(或者其他展示方式) 当然,游戏内操作全部都是通过逆向获得的api完成,而不是真的打开游戏然后文字识别。 这也是为什么能获取到比如pure/far/lost数而不仅仅是分数的原因。 ---- 虽然通过逆向得到的api查询能查到更丰富的信息,但是也不是什么都能查到。 毕竟原理就是加好友,那么简单来说,'''你完全看不到的查分器仍然看不到'''。 比如,'''ptt的小数点后第三位是查不到的''',查分器和你一样只能看到第二位。 再比如,'''所谓的r10也是查不到的'''。有的查分器提供了r10平均值,那也是通过(ptt*40-b30)/10计算的,而且这个ptt还只是那个精确到0.01的ptt。不过b30当然是完全精确的。 这就导致了一种现象,如果你在b30里推了分但是ptt没动,那么'''显示的'''r10就会降低。 再比如,历史ptt也是查不到的。提供了此功能的查分器仅仅是根据你的全部或部分查分记录生成。 再比如,你的段位信息也是查不到的,除非你给密码让他上你号。段位是完全的给自己看的内容。世界排名(头像右下角的#xxx)同理。 ---- 上面说了能查最近游玩和单曲,那么b30是如何实现的呢? 实现方法就是一个优化的暴力:定数从高到低查询全部谱面,直到已查询成绩的第30大的单曲ptt不小于接下来需要查询的谱面的定数+2。 这就是通常的b30的查询原理。 不过,除了上面这个也没有什么能保证不出错的优化。因为别人无法知道你购买了什么曲包/单曲,所有前置条件又可以通过借档跳过或者不上传。 另外有的查分器在查询b30时提供了一个official选项,即使用官方api查询。 这是因为此前616宣布提供了一个直接返回b30信息或者其他信息的接口(Arcaea Limited API,通常简称ala),不过需要申请,而且调用次数有限制:每天至多2000次和100个玩家,每分钟至多120次,而且此接口只保证在2022年2月1日前可用(虽然目前似乎仍然可用)。 关于ala的更详细信息可以参考[https://www.bilibili.com/read/cv14491110 这篇文章]。 ---- 有的查分器允许使用用户名查分,或者可以通过用户名查询好友码。 实际上,并没有任何通过用户名在服务器上获取好友码的方法。 所有查分器在这一步使用的方法都是查询本地存储的映射表。 某个时间点之前存在遍历全部用户的方法,另外有几个查分器是互相共用一个表的,所以你能查到若干远古用户,或者在使用某个查分器前能通过用户名查到自己的号。 ---- 如还有疑问可以发在评论区,我会尝试补充。如果发现有错误也欢迎纠正。
返回
User:WYXkk/关于查分器的小科普
。