Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

abc21086999/maple_script

Repository files navigation

MapleScript

Release Python Downloads

English | 繁體中文

程式預覽 一個基於電腦視覺、Seeed Studio Xiao ESP32S3、CircuitPython 與 PySide6 GUI 的自動化腳本程式,提供直覺的操作與路徑錄製功能。

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

✨ 主要特色

  • 現代化控制中心:深色主題的圖形介面。
  • 路徑錄製與重播:支援手動錄製練功循環路徑,並實現高精度的時間序列重播。
  • 全自動化功能:
    • 自動練功 (Auto Grind - 狀態機架構):
      • 採用 Finite State Machine (FSM) 設計,將練功行為拆分為獨立模組狀態:Stationary (定點)、Walker (走圖)、Wander (亂逛)、RuneSolver (解輪) 與 Pause (暫停)。
      • 堆疊中斷機制 (Stack-based Interrupt):當偵測到不安全狀況(如偵測到紅點、出現符文、失去視窗焦點)時,狀態機會將當前狀態推入堆疊並切換至中斷狀態;當環境恢復安全後,能自動彈出(Pop)並無縫恢復先前狀態 — 完整保留內部計時(如冷卻時間)
    • 每日行程全自動:自動處理每日/每週任務、戰地硬幣、HD、里程、拍賣場、小屋等。
    • 輔助工具:怪物蒐藏、裝備分解、倉庫密碼自動輸入。

🛠️ 環境需求與安裝

  1. 硬體準備:
  2. 執行可執行檔(exe)
  3. 或是安裝 Python 和相依套件後本地運行:
    • 安裝 Python 3.11+
    • 建立並啟動虛擬環境:
      python -m venv venv
      .\venv\Scripts\activate
    • 安裝相依套件:
      pip install -r requirements.txt
    • 啟動主程式:
      python main.py
  4. 自動配置:
    • 啟動程式後,透過各任務旁的 ⚙️ 設定按鈕 即可完成技能按鍵、圖片擷取與路徑錄製。

🏗️ 軟體架構流程

現在的架構採用 多執行緒 (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"]
 subgraph "所有腳本"
 Daily["每日任務腳本\n(線性腳本)"]
 subgraph "練功狀態機 (MapleMachine)"
 FSM["狀態機管理器 (Machine)"]
 State["定點 / 走圖 / 亂逛 / 解輪"]
 PauseState["暫停 / 解輪"]
 FSM -->|"check_status() → 狀態字串"| State
 FSM -->|"偵測到不安全:推入狀態至堆疊"| PauseState
 PauseState -.->|"恢復安全時:從堆疊彈出狀態"| FSM
 end
 end
 Script -->|"每日/戰地/拍賣...\n(線性腳本)"| Daily
 Script -->|MapleGrind 啟動| FSM
 Script -->|回報進度| LogSignal
 Script -->|檢查停止信號| StopEvent{"是否停止?"}
 Script -->|電腦視覺| Vision["電腦視覺 (OpenCV)"]
 Script -->|控制指令| Controller["Xiao 控制器"]
 end
 subgraph "硬體層"
 Controller ==>|USB Serial| XiaoBoard["Xiao ESP32S3"]
 XiaoBoard ==>|HID| Game["楓之谷視窗"]
 end
Loading

Note

關於自動練功狀態機的詳細轉移邏輯、冷卻設計與堆疊暫停運作原理,請參考 狀態機系統說明文件

🔌 硬體互動原理

%%{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

📄 License & Disclaimer

本專案採用 GNU General Public License v3.0 授權。使用本軟體前,請務必閱讀並同意 LICENSE.txt 檔案中所列之免責聲明

⭐ Star History

Star History Chart

About

A comprehensive MapleStory automation solution leveraging Python, OpenCV, and CircuitPython-powered hardware simulation.

Resources

License

Stars

Watchers

Forks

Packages

Contributors

Languages

AltStyle によって変換されたページ (->オリジナル) /