注意 - Lost-MSth/Arcaea-server GitHub Wiki

游戏机制

PTT 计算

PTT 的计算主要是参考 Arcaea 中文维基,但由于 Recent30 的计算方式不明朗,可能导致与官方的 PTT 不一致,见谅。

Recent 30 计算规则

维护一个队列,从左边进右边出,以下是一些规则:

  1. 若 30 首未满,则新成绩从左边进队列,全体右移
  2. 若新成绩的加入导致歌曲总数小于 10,则从右边开始向左寻找一个成绩,使 Recent30 刷新后歌曲种类数大于等于 10,若找不到,则退出最右边成绩;否则,退出找到的元素,并右移,把新成绩放在左端
  3. EX 成绩、Hard 模式 Track Lost 成绩以及初见成绩会得到保护,若 Recent30 的改变会降低 PTT,则维持 Recent30 不变,并且若此成绩高于 Recent30 内同样铺面的成绩,会从最早的记录开始进行刷新

定数表

歌曲数据库来自 BotArcAPI releases 若缺少某些歌曲,服务器会认为歌曲 Unranked,评分默认设为 0 并不计入 Recent30,请自己在数据库里添加某些歌曲的定数,当然可以添加自制铺面定数。

世界排名

以歌曲数据库里所有曲目的 FTRBYD 谱面定数大于 0 的用户谱面最高分数和作为依据

搭档角色

  • 解锁了所有角色,并且设定在满级觉醒状态
  • v1.5 以后添加了角色技能
  • v2.5 以后完善了角色系统,包括升级、觉醒等机制

世界模式

从 v1.3 版本开始,世界模式可用,而且允许自定义地图

因为数据缺少,给出的地图并不多,可以自行抓包添加。在 event 章节给出了几个自制的循环地图,可以作为参考

注意事项

  • 地图配置必须无误,可以参考官方图进行制作
  • 最后一格必须有奖励,否则可能导致 Arcaea 崩溃
  • 如果是歌曲解锁奖励,请保证 Arcaea 中拥有这些曲目,否则可能导致 Arcaea 崩溃
  • Beyond 地图与其它图有所不同,请参考官方图,多加小心

歌曲解锁

  • 从 v1.3 开始会尝试提前进行一些解锁,但不保证全部解锁
  • 从 v1.7 开始购买系统上线
  • 对于其它歌曲使用云端存档同步可以解锁

歌曲下载

从 v1.4 开始可以进行自定义的歌曲下载

  • 请确保文件名正确,文件完整
  • 请确保存在所需的所有文件,所有缺少的难度铺面和歌曲文件
  • 对于以整个曲包来下载的情况,需要准备好曲包内所有歌曲的缺失文件
  • 谱面文件可能有最小物量,物量太少的铺面无法下载
  • 服务器运行期间对歌曲文件夹内容进行修改后,请在后台刷新歌曲谱面Hash信息
  • 禁止在下载非官方铺面后登入官方服务器上传铺面成绩,若被封号,概不负责

登录与注册

注册的时候不会考虑邮箱地址,请随便填写。
从 v2.4 开始,邮箱地址会被记录并排重,但仍然不会去检查邮箱可用性。

多设备登录

从 v2.2 开始支持多设备登录,但请尽量不要使用,以免产生各种奇怪问题
多设备登录也包括相同设备的多应用共存登录

数据同步

  • 服务端支持数据同步且不做数据检查,完全允许从官方服务器下载数据后上传至本地服务器
  • 后台允许将云存档覆盖到 best_score 表中,上传会直接覆盖 Best 成绩表,且没有 Recent30 数据,所以更新的 PTT 会不准确
  • 数据下载也是支持的,但请不要将数据向官方同步,若发生封号,概不负责

购买

没有用。记忆源点默认 114514

从v1.7开始购买系统上线,且支持修改一些信息,比如价格和折扣,记忆源点默认 0

奖励系统

从 v1.9 开始添加了奖励系统,允许在后台设置一些奖励,虽然看起来没啥用

  • 奖励描述请精简,太长了在客户端会无法显示完整
  • v2.6 以下奖励只支持记忆源点和碎片
  • 曲包奖励会导致客户端闪退
  • 奖励物品中只有第一条会被客户端处理
  • 过期的奖励不会分发
  • 奖励在登录时领取,只能领取一次

兑换码系统

从 v2.0 开始添加了兑换码系统,允许在后台设置一些奖励,虽然看起来没啥用

  • 兑换码目前不会过期
  • v2.6 以下奖励只支持记忆源点和碎片
  • 奖励物品都会被处理

目前,客户端似乎没有反馈,但奖励物品能被服务器正确处理

剧情

当使用全解锁云端存档时,同步时若是从服务器下载,会默认全部解锁。(大概)

好友系统

  • 正常使用,默认好友位 50 个。(大概可用)
  • 没有对立和光两个默认账户,但是有一个测试账号 admin。(好友ID:123456789)

排名系统

正常使用,但好像没什么用。

Link Play

v2.8 版本开始,支持联机模式,可能存在各种奇妙 bug,请谨慎使用

课题模式

v2.9 版本开始,支持课题模式

运行与环境搭建部分

服务端

  • 运行后请不要点击 CMD 窗口内内容,以免进入选择状态卡住服务器。(按回车键取消选择即可)
  • 服务器性能和安全性没有保障,没有经过并发测试,没有经过各种安全性测试,请不要在外网搭建服务器。

当然有一个非常重要的理由是 616 可能会找上门。

  • 可能出现端口冲突导致无法使用,请检查所使用的端口。

客户端

  • 确保设备与服务器在同一网络下,其实就是能访问到服务器。
  • 确保设置好代理,这样 Charles 才能引导 Arcaea 访问本地服务器。
  • 安卓 7 以上和 iOS 系统有更加复杂的设定,请参考说明文档和指示。

Arcaea v3.6.0 版本以后,客户端需要做一些更加复杂的设定(你懂的)

服务器建设与程序设计

Flask

HTTPS

Flask 是支持 SSL 的,如有需要,请自行开启。

前端

前端采用 Jinja2 进行设计,当然没有一丁点美化,CSS 文件来自官方模板

为了能兼容各种各样的情况,使用非常原始的网页设计,没有采用前后端分离的模式,一点点 JS 什么的也没有

数据库

为了能兼容各种各样的情况,使用了 SQLite

乱建的数据库,可能有某些地方不妥,不过应该是基本满足 BC 范式的。几乎什么数据约束也没有,没有半个函数和触发器,也没有视图,效率堪忧,安全性等于零。

日志

从 v2.3 开始会记录报错日志,同时可以在配置文件中选择开启更加详细的日志