KO
|
EN
gitlite — search
Search
#typescript
#ai-agents
#deepseek-harness
#dsh-plugin
#open-source
#ai
#claude-code
#cli
#windows
#codex
#developer-tools
#dsh
SmartRTE.github.io
★ 32
Open GitHub ↗
No description available.
Download README (.md)
Explore Similar Repositories
Ultra-Tuner
:
No description available.
tophub-api
:
今日热榜官方API使用手册
TalkingStyle
:
The official pytorch code for TalkingStyle: Personalized Speech-Driven Facial Animation with Style Preservation
vue3-draggable-grid
:
基于vue3+grid布局实现的拖拽布局
WTF-Huff
:
Huff极简教程,学习编写优化的智能合约。Minimal tutorials for Huff to write optimized smart contracts.
// repository documentation
Was this content helpful?
★ 0
(0 ratings)
Select Rating:
★
★
★
★
★
Submit Feedback
Recent Feedback
×
Download README
Do you want to download the
README.md
file for
SmartRTE.github.io
?
Download (.md)
# 写在前面 自己一厢情愿写的st3网页解析以及b30图片生成 RTE的代码能力太差,放出来怕污染环境,所以一直只是在自己的服务器上跑一跑 但是有朋友需要就还是放到github上了,白嫖了一个子域,访问也算比较方便 占用了公共资源,非常抱歉😬 ## 原理 Arcaea的本地分数储存在本地的一个**sqlite数据库文件**内,命名为 **st3** ,对于安卓版本的Arcaea,st3文件位于data分区下,具体路径为 ` data/data/moe.low.arc/files/st3 ` 我们要做的很简单,就是把这个**sqlite数据库文件**提取出来,然后用sqlite查询语句查询想要的曲目成绩结果 ## 数据来源 ` st3 `内有多张表,其中存有**本地记录的全部曲目成绩**的是scores表 scores表有以下属性: ` id `: 分数行计入的顺序号。这里的“计入”是指**本曲目本难度首次出现在st3中** ` version `: 全为1,用途我不知道 ` score `: 歌曲结算分数,也就是本地的最高分数 ` shinyPerfectCount `: 精确Perfect判定的数量,俗称的**大P**数 ` perfectCount `: Perfect判定的数量 ` nearCount `: Far判定的数量 ` missCount `: Lost判定的数量 ` date `: 取得最高分数的时间,以**时间戳**为记,缺的位数在尾端补齐0即可转换为标准时间 ` songId `: 每首歌对应的曲目ID,是**查分的核心**。 songId绑定了一首歌与其歌曲标题、音频文件、曲绘文件的关系。加上四种难度的配合(指` songDifficulty `)可以有不同的曲绘、定数甚至音频(如白魔王和白复生)。 ` songDifficulty `: 曲目难度,分为大家喜闻乐见的0、1、2、3,对应Past、Present、Future、Beyond难度 ` health `: 通关时的血量 ` modifier `: 大约是与角色技能或者能影响谱面的因素有关,我不知道 ` ct `: Clear Type,通关类型,简单/普通/困难血条之分 st3内大致能刨出这些信息来。但是最重要的元素之一: **定数表** 并不能简单的获取。 好在我们有` Arcaea Wiki `,里面有歌曲标题对应的四种难度的定数表。 但是st3内没有曲目标题的信息,仍不能直接使用。好在曲目标题和曲目ID的对应关系都写在了` songlist `内。 ` songlist `是Arcaea用来储存曲目全部可显示信息的文件,解包可得:` Arcaea.apk/assets/songs/songlist ` 是一个json格式的文件,从中提取出 ` "id": "..." ` 以及对应的 ` "title_localized": "..." `信息聚合成一张表,即可将其与定数表进行**连接**,得到以songId为核心的对应的定数表。(**有特殊情况,Genesis 和 Quon有重名情况,连接后手动修改即正常*) 最后将生成的带songId的定数表与scores表进行连接,使用SQL语句进行查询,即可导出游玩成绩详表,包括分数、P/F/L、定数、单曲PTT等所有信息 当然为了方便以及实用,这里我只选择查询了能用到的信息 ## 网页实现 这里用到了` sql.js `,一个能够在网页端读取sqlite数据库文件并进行查询的js库 通过上传(实际上是网页选取本地文件,并没有上传到网页服务器和后端)st3文件,准备好的sql查询语句执行,建表、连接、查询,然后通过js动态生成表格并显示出来。就得到了详细的分数表 很简单 ## 数据缓存 利用了Web浏览器的localStorage, 将每次手动输入会让人发疯的玩家ID、好友码、个人潜力值,以及生成B30图片要用到的csv文件暂存在本地。 全程没有一个文件上传到网页服务器(如你所见,我甚至用github.io),自己不泄露的情况下理论上是完全安全的。