接收数据整理

出自Arcaea中文维基
< User:在咕咕咕的咕子
於 2024年11月30日 (六) 15:56 由 在咕咕咕的咕子留言 | 貢獻 所做的修訂 (咕)
(差異) ←上個修訂 | 最新修訂 (差異) | 下個修訂→ (差異)

前言

  • 這裡只是對616新加的東西的整理頁面,主要記載服務端。
  • 不保證全版本收錄/版本實時更新,排列無規律,請善用目錄。
  • 服務端使用Python編寫的Arcaea-Server。

研究歸檔

新增接口

/applog/me

  • 用於記錄在世界模式結算中出現的異常。
  • 於5.3.0新增。

/notification/me

  • 用於獲取Link Play的邀請通知。
    • 每切換一次界面遊戲都會朝著此接口發送一次GET請求,不論玩家在設置中對邀請通知的設置。
  • 於5.10.0新增。

/insight/me/complete/<condition>

  • 用於記錄用戶當前的洞燭解鎖狀態。
    • 返回{'insight_state': UserInfo.insight_state}
    • <condition>
      • 接口後方拼接的解鎖條件,目前只有eden_append_1lephon兩個條件。
        • 當條件為eden_append_1時,返回的insight_state為1。
        • 當條件為lephon時,返回的insight_state為3。
  • 於6.0.0新增。

/user/me/toggle_invasion

  • 用於切換用戶洞燭的技能激活狀態。
    • 返回{'insight_state': UserInfo.insight_state}
  • 於6.0.0新增。

Lucent Historia

相關鍵

  • hp_interval_bonus: int
    • 這個不是我找到的,但我還是要寫)
    • 會在調用/score/song接口時給出。
      • 本質上是為了服務skill_chinatsu而添加的,具體實現見Arcaea-server的dev分支。
  • insight_state: int
    • 返回用戶當前的洞燭解鎖狀態。
    • 需要在UserInfo.to_dict中給出數據。
      • 其值應存儲在user表內。
      • 使用0/1/2/3/4/5/6表示不同的解鎖狀態。

世界模式相關

Arcaea Online

  • 616在5.7.0中新加的有關online的東西。
  • 目前,Arcaea-server的dev分支尚未支持此部分內容。

相關鍵

  • custom_banner: str
    • 返回用戶在Arcaea Online中設定的自定義名片,為空時默認使用擁有的最高級的段位挑戰名片。
    • 需要在UserInfo.to_dict中給出數據。
  • memory_boost_ticket: int
    • 返回用戶擁有的源韻強化兌換券數量,為0時不啟用兌換券相關功能。
    • 需要在UserInfo.to_dictUserPlay.to_dict中給出數據。
  • subscription_multiplier: int
    • 返回用戶當前的世界強化百分比。
      • 數軸:以100為原點,向右為正方向,單位長度為1。
    • 需要在UserInfo.to_dict中給出數據。

世界模式相關

  • progress_before_sub_boost: float
    • 返回計算世界強化百分比前的步數進度。
    • 世界強化功能可用時,需要在WorldPlay.to_dict中給出數據。
  • progress_sub_boost_amount: float
    • 似乎是返回用於計算的世界強化百分比(我測試時無論給什麼都是-100,待考究)。
    • 世界強化功能可用時,需要在WorldPlay.to_dict中給出數據
  • subscription_multiply: int
    • 返回用於計算的世界強化乘數(實際返回值為上文的subscription_multiplier)。
    • 世界強化功能可用時,需要在BeyondWorldPlay.to_dict中給出數據。

5.3.0世界改動

  • 616在5.3.0中對世界模式服務端的返回數據做了改動,這裡用來記錄5.3.0時616新加的鍵。
    • 值得一提的是,下列的鍵已經在5.4.0/5.5.0中正式合併入步數計算內;
      如果返回數據內不存在這些鍵,遊戲會用0.0來代替顯示數據,以防因數據缺失導致遊戲崩潰的情況。
  • 目前,Arcaea-server的master分支已經支持此部分內容。
    • 因為其更改重構了整個WorldPlay類,此處有關服務端的記載只適用v2.11.3及以前的版本。

相關鍵

  • progress_partial_after_stat: float
    • 返回經由搭檔Step/Over值影響後的步數。
    • 需要在WorldPlay.to_dict中給出數據。
  • partner_adjusted_prog: float
    • 返回用於計算步數的搭檔Step值。
      • 可參考百合咲美香Ilith & IvyHikari & Vanessa的技能,
        三個搭檔的技能都是在結算時暫時變化自身的數值,步數結算完成後回歸搭檔頁面中顯示的數值。
        服務端的返回值即為返回結算時變化的搭檔Step值。
    • 在正常地圖遊玩時,需要在WorldPlay.to_dict中給出數據。
  • character_bonus_progress_normalized: float
    • 存在character_bonus_progress時,返回character_bonus_progress
    • 需要在WorldPlay.to_dict中給出數據。
  • pre_boost_progress: float
    • 返回遊玩Beyond地圖結算時的基礎步數(精彩程度)。
    • 在Beyond地圖遊玩時,需要在WorldPlay.to_dict中給出數據。
  • partner_multiply: float
    • 返回搭檔Over值÷50後的浮點數。
    • 在Beyond地圖遊玩時,需要在WorldPlay.to_dict中給出數據。
      • 在Breach地圖遊玩時,如果地圖的disable_over不為true,需要在WorldPlay.to_dict中給出數據。
  • affinity_multiply: float
    • 返回搭檔在遊玩地圖中的相性倍率(相性契合)。
    • 在Beyond地圖遊玩時,需要在WorldPlay.to_dict中給出數據。
      • 在Breach地圖遊玩時,不需要給出數據。
  • new_law_multiply: float
    • 返回將搭檔數值套入地圖法則後計算出來的倍率(鐫刻法則)。
      • 在Breach地圖遊玩時,需要在WorldPlay.to_dict中給出數據。

skill_kanae_uncap

  • 群願的覺醒技能。
  • 目前,Arcaea-server的master分支已經支持此部分內容。
    • 因為其更改重構了整個WorldPlay類,此處有關服務端的記載只適用v2.11.3及以前的版本。

相關鍵

  • kanae_stored_prog: float
    • 返回用戶當前存儲的步數。
      • 其值應存儲在user表內,以.1f的形式存儲。
    • 需要在UserInfo.to_dict中給出數據。
  • kanae_stored_progress: float
    • 返回此次遊玩中被用於存儲的步數。
    • 當地圖所需體力不為0,並且使用的搭檔技能為skill_kanae_uncap時,需要在WorldPlay.to_dict中給出數據。
  • kanae_added_progress: float
    • 返回此次遊玩中增加的步數。
      • 實際上返回的就是之前存儲在kanae_stored_prog的值。
    • 需要在WorldPlay.to_dict中給出數據。

beyond_chain_2

使用處

{
    "chain_info": {
        "id": "beyond_chain_2",
        "index": 0  # 0/1/2/3/4
    }
}
  • 填於地圖數據內的chain_info鍵。
    • "id": "beyond_chain_2"
      • 聲明該地圖處於陷落第一章的鏈式解鎖中。
      • 會使其對應地圖邊框變為鏈式解鎖的特殊樣式[1]
    • "index": 0/1/2/3/4
      • 聲明該地圖處於鏈式解鎖中的第幾環。
      • 當填入值為4時,則會發生以下特殊變化:

鏈式解鎖順序

  • 僅會出現在鏈式解鎖地圖的選擇界面下方。
    • 會根據所連接的鏈式解鎖地圖排列地圖[2]
      • 其排列順序為:0-2-4-3-1。

法則機制

地圖語句

法則機制擁有以下三種鍵:

{
    "is_breached": false,
    "disable_over": false,
    "new_law": ""
}
  • is_breached: bool
    • 用於確認是否啟用陷落章的地圖機制。
  • disable_over: bool
    • 用於確認是否禁止搭檔的Over值參與進度計算。
  • new_law: str
    • 用於設置該地圖所使用的法則。

法則列表

5.3.0版本中,可用的法則有:

[
    "over100_step50",
    "frag50",
    "lowlevel",
    "antiheroism"
]
  • over100_step50
    • 對應地圖是否禁用Over值:是
    • 介紹:用雙腳丈量這個世界,這固然值得令人欽佩。但也別忘了,有時事情可是會事倍功半的哦。
    • 公式:進度 = 超量 + 步數/2
  • frag50
    • 對應地圖是否禁用Over值:否
    • 介紹:渴望獲得更多……貪婪,是人性的本能。那麼,更多的殘片,是否足夠填補你的空虛呢?
    • 公式:進度 x= 搭檔殘片值
  • lowlevel
    • 對應地圖是否禁用Over值:否
    • 介紹:這回,弱小的你,年少的你,也將大放異彩。所謂的弱者,從來就不存在。
    • 公式:進度 x= max(1.0, 2.0 - 0.1 x 等級)
  • antiheroism
    • 對應地圖是否禁用Over值:是
    • 介紹:「你所仰仗的,都將灰飛煙滅。」這一點,【絕對】無誤。
    • 公式:進度 = 超量 - | |超量-殘數|-|超量-步數| |

注釋

  1. 專屬於鏈式解鎖的連接線僅在其地圖的最終獎勵為ObliviaLibertasEinherjar JokerPurple Verse的Beyond難度時才會出現。
  2. 如果所連接的鏈式解鎖地圖index的值缺失了0/1/2/3/4,則不會顯示鏈式解鎖順序