Skip to content

abc21086999/maple_script

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MapleScript

一個基於視覺辨識、Seeed Studio Xiao ESP32S3、CircuitPython 的自動化腳本程式。 現在已升級為具備 圖形化控制中心 (GUI) 的完整應用程式,提供更直覺的操作與更高的安全性。

主要目的是打造有耳朵的鍵盤、滑鼠,能夠一邊聽(辨識畫面),一邊按下按鍵或是一邊移動滑鼠。

✨ 主要特色

  • 現代化控制中心:基於 PySide6 的深色主題介面,操作直覺。
  • 安全掛機:具備緊急停止 (Emergency Stop) 機制,可隨時中斷當前腳本。
  • 即時回報:GUI 介面即時顯示執行日誌 (Log),清楚掌握腳本進度。
  • 全自動化功能
    • 自動練功 (Auto Grind):依據小地圖判斷位置並執行巡邏路徑。
    • 每日任務全自動:每日任務、每週任務、戰地硬幣、HD 獎勵、里程領取。
    • Boss 挑戰:自動挑戰每日 Boss (如:炎魔、暴君、希拉、阿卡伊農等)。
    • 其他輔助:怪物蒐藏、自動分解裝備、拍賣場管理、倉庫密碼輸入、跳舞機活動。

🛠️ 環境需求與安裝

  1. 硬體準備
    • 需要一塊 能刷入 CircuitPython 的開發板 (推薦 Seeed Studio Xiao ESP32S3)。
    • XiaoCode/ 資料夾內的程式碼燒錄至開發板。
  2. 軟體安裝
    • 安裝 Python 3.10+。
    • 安裝相依套件:
      pip install -r requirements.txt
    • 設定 config/config.yaml (技能按鍵、圖片路徑) 與 .env (敏感資料)。

🚀 使用方式

方式一:圖形化控制中心 (推薦)

這是最簡單的使用方式,啟動後會出現視窗介面。

python main.py
  • 點擊左側按鈕啟動對應任務。
  • 點擊紅色 「🔴 緊急停止」 按鈕可立即中斷腳本。
  • 右側面板會顯示執行紀錄。

方式二:指令模式 (CLI)

適合開發者除錯或習慣使用終端機的用戶。

python -m src <任務指令>
功能 指令 說明
自動練功 python -m src grind 執行自動打怪腳本
每日任務 python -m src daily 執行每日例行事項
每日 Boss python -m src daily_boss 自動挑戰每日 Boss
怪物蒐藏 python -m src collection 領取怪物蒐藏
倉庫存取 python -m src storage 自動輸入倉庫密碼
跳舞機 python -m src dance 執行跳舞機活動腳本

🏗️ 軟體架構流程

現在的架構採用 多執行緒 (Multi-threading) 設計,確保介面流暢且操作安全。

graph TD
    User[使用者] -->|點擊按鈕| GUI[圖形介面 (PySide6)]
    
    subgraph "前端 (Main Thread)"
        GUI -->|啟動任務| TaskManager[任務管家]
        GUI -->|按下停止| TaskManager
        LogSignal[Log 信號橋樑] -.->|更新文字| GUI
    end

    subgraph "後端 (Worker Thread)"
        TaskManager -->|產生獨立執行緒| Worker[工作執行緒]
        Worker -->|執行邏輯| Script[MapleScript (練功/打王...)]
        
        Script -->|回報進度| LogSignal
        Script -->|檢查停止信號| StopEvent{是否停止?}
        
        Script -->|視覺辨識| Vision[電腦視覺 (OpenCV)]
        Script -->|控制指令| Controller[Xiao 控制器]
    end

    subgraph "硬體層"
        Controller ==>|USB Serial| XiaoBoard[Xiao ESP32S3]
        XiaoBoard ==>|HID| Game[楓之谷視窗]
    end
Loading

🔌 硬體互動原理

%%{init: {'theme': 'forest'} }%%
graph LR;

step1[Xiao初始化為鍵盤、滑鼠]

step2[電腦辨識畫面]

step3[存入list]

step4[取出傳送給Xiao]

step5[Xiao按下按鍵]

step6[電腦收到]

step7[Xiao移動滑鼠]

step8[電腦計算滑鼠要移動的距離]

step9[滑鼠滾輪要上下滾動]

step10[Xiao滾輪上下滑動]

step11[Xiao點擊]

step12[有要按下的按鍵]

step13[有要長壓之後放開的按鍵]

step14[Xiao長壓後放開]

%% 流程線 -->
step1 ==> step2
step1 ==> step8
step1 ==> step9
step1 ==> step12
step1 ==> step13
step5 ==> step6
step14 ==> step6
step11 ==> step6
step10 ==> step6

subgraph 鍵盤
step2 ==> step3 ==> step4 ==> step5
step12 ==> step5
step13 ==> step14
end
subgraph 滑鼠
step8 ==> step7 ==> step11
step9 ==> step10
end
Loading

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages