Skip to content

GoneTone/genshin-impact-wish-gacha-analyzer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,768 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

原神祈願卡池分析 Genshin Impact Wish Gacha Analyzer

繁體中文 | 简体中文 | English | 日本語

Crowdin

我開發了一套用來分析祈願卡池歷史記錄的軟體,一開啟各種數據清清楚楚,不用再手動計算啦!

本軟體原理是按下「更新資料」後會在本機啟動一個只跑在您電腦上的代理伺服器,並自動安裝一張本機產生的根憑證,藉此攔截原神 WebView 對 miHoYo 卡池歷史 API 的請求,所以要在按下更新後再到遊戲內開啟卡池歷史記錄才能攔到,取得網址後拆解參數,參數會用於 miHoYo 原神相關的 API。

第一次按下「更新資料」會加載您完整的卡池歷史,這可能需要一些時間,完成後會將資料存放在您的電腦內,這樣下次開啟軟體就不用再花時間等待資料加載。之後想取得新資料按一下「更新資料」即可,軟體會記住先前攔到的網址,能用就直接用、不用每次重新攔截;如果網址過期,軟體會請您再到遊戲開一次卡池歷史頁面以重新取得網址。

請放心:本軟體不會讀取或竄改任何遊戲檔案、記憶體與遊戲傳輸的資料,只會在 WebView 開啟卡池歷史頁面時攔下那一條請求網址,所以不會有被封鎖帳號的風險。如果有被封號,請思考您是不是其他原因被封鎖,不要怪罪我們。

文章:

多國語言

請協助我們將軟體翻譯成各國語言!

https://crowdin.com/project/genshin-impact-wish-gacha-analyzer

下載軟體

軟體在安裝或執行時有可能會被防毒軟體阻擋。原因是本軟體會自行產生並安裝一張本機根憑證、並在按下更新時短暫設定系統代理以攔截原神 WebView 的卡池歷史請求──這類行為與惡意程式相似,但本軟體只攔截 *.hoyoverse.com 上的 getGachaLog(祈願)與 getBeyondGachaLog(頌願)這兩條卡池歷史 API,且憑證只留在您的電腦。如果無法正常執行,請嘗試關閉防毒軟體後再執行看看,本軟體保證無毒。

https://github.com/GoneTone/genshin-impact-wish-gacha-analyzer/releases

也有支援其他遊戲的版本

使用方式

  1. 啟動原神,先別開啟卡池歷史頁面。
  2. 開啟本軟體並按下「更新資料」,軟體會在背景啟動本機代理伺服器並等候攔截。
  3. 切回遊戲,到「祈願 → 歷史記錄」開啟卡池歷史頁面。
  4. 軟體攔到網址後會自動關閉代理、還原系統代理設定並開始抓取資料;之後想再更新只要重複步驟 2,網址未過期就會直接套用。

功能與特色

  • 自動攔截原神 WebView 對 miHoYo 卡池歷史 API(透過本機代理伺服器與自簽根憑證),不需手動貼網址
  • 支援國際服 (暫不支援中國服)
  • 涵蓋 7 種卡池:角色活動祈願、武器活動祈願、集錄祈願、常駐祈願、新手祈願、活動頌願、常駐頌願
  • 多帳號 (UID) 管理:自訂別名、拖曳排序、一鍵切換
  • 自動合併新舊資料,不覆蓋過去記錄,不會因為官方歷史記錄過時而消失
  • 總抽數及 5★ / 4★ / 3★ / 2★ 件數與占比統計
  • 5★ 與 4★ 雙保底進度條,並顯示距離保底剩餘抽數
  • 5★ / 4★ 平均出貨抽數統計(各卡池與整體)
  • 各卡池 5★ 時間軸
  • 5★ 總覽:橫向陳列抽到過的所有不重複 5★,每個附累計次數徽章、可點開詳情;各卡池頁、綜合數據頁與分享圖皆會顯示
  • 各卡池最高稀有度件數比較長條圖
  • 稀有度分布圓餅圖
  • 類型分布圓餅圖
  • 歷史記錄表格:多欄排序、模糊搜尋、稀有度與物品類型篩選、分頁
  • 自動補上角色 / 武器的圖示與資料(來源:HoYoWiki):表格與時間軸都附圖示;點擊物品可查看官方插圖、描述與標籤,並一鍵跳轉 HoYoWiki
  • 一鍵生成分享圖(可選深色 / 淺色主題、UID 全顯或只留前三碼遮罩),自動存檔並複製到剪貼簿
  • 帳號資料匯出 / 匯入 JSON
  • 雲端同步:連結您自己的 Google 帳號後,卡池記錄自動備份到您的 Google 雲端硬碟,並在多台電腦間雙向同步;刪除帳號時可勾選一併從雲端移除
  • 深色 / 淺色主題切換
  • 多國語言(協助翻譯
  • 可在設定開啟介面 UID 遮罩(只顯示前三碼),保護隱私
  • 啟動時自動檢查新版本,也可在設定頁手動觸發
  • 所有資料預設留在本機、不上傳;雲端同步為選擇性功能,啟用後也只會備份到您自己的 Google 雲端硬碟

截圖

綜合數據頁 角色活動祈願頁 武器活動祈願頁 活動頌願頁 設定頁 分享圖生成設定 分享圖 物品詳情顯示

開發

前置需求

  • 目前僅支援 Windows
  • Flutter SDK(最新穩定版)
  • Rust toolchain(stable)
  • 執行 flutter doctor,依提示補齊缺少的工具

取得原始碼並安裝依賴

git clone https://github.com/GoneTone/genshin-impact-wish-gacha-analyzer.git
cd genshin-impact-wish-gacha-analyzer
flutter pub get

Rust 會在 flutter run / flutter build 時由 rust_builder/ 的 cargokit 自動編譯,不需手動 cargo build(但需先安裝 Rust toolchain)。

開發模式執行

flutter run -d windows

雲端同步憑證(選用)

雲端同步(Google 雲端硬碟備份)需要 Google OAuth 憑證。未設定時其他功能完全不受影響,僅設定頁的雲端同步區塊顯示未設定提示。

要在自己的建置啟用:

  1. Google Cloud Console 建立專案,啟用 Google Drive API,設定 OAuth 同意畫面(scopes:.../auth/drive.appdataemail),建立「電腦版應用程式」類型的 OAuth 用戶端。

  2. 在專案根目錄建立 secrets/cloud_sync_defines.json(已被 git 忽略):

    {
      "CLOUD_SYNC_CLIENT_ID": "你的 client id",
      "CLOUD_SYNC_CLIENT_SECRET": "你的 client secret"
    }
  3. 執行時帶入該檔(JetBrains IDE 可直接選內建的「main.dart (cloud sync)」執行設定;build_release.ps1 打包時會自動偵測):

    flutter run -d windows --dart-define-from-file=secrets/cloud_sync_defines.json

Rust ↔ Dart 橋接程式碼產生

修改 rust/src/api/ 內的 Rust 函式後,重新產生橋接程式碼。第一次使用前先安裝 codegen 工具:

cargo install flutter_rust_bridge_codegen --version 2.12.0

之後每次修改 API 都執行:

flutter_rust_bridge_codegen generate

產生的檔案位於 lib/src/rust/

編譯生產版

flutter build windows --release

輸出:build\windows\x64\runner\Release\

執行測試

flutter test
cargo test --manifest-path rust/Cargo.toml

About

原神祈願卡池分析 Genshin Impact Wish Gacha Analyzer | A utility for analyzing gacha history, where all data and numbers are well-organized in a convenient manner!

Topics

Resources

License

Stars

153 stars

Watchers

3 watching

Forks

Sponsor this project

Contributors