MaaAssistantArknights / MaaX

MAA GUI with Electron & Vue3
https://www.maa.plus
GNU Affero General Public License v3.0
370 stars 75 forks source link

新 UI 设想:使用节点——一劳永逸的任务规划系统 #192

Open Hapenia-Lans opened 1 year ago

Hapenia-Lans commented 1 year ago

说说你遇到的问题?

鉴于添加功能,添加几个新按钮的 issue 层出不穷,不断往上打补丁也不是好办法(shi山是怎样炼成的),有必要使用一个更加灵活的解决方案,可以满足玩家大幅度的自定义需求。

有什么好的想法?

我们可以使用节点式的任务系统,将整个系统拆分成功能节点,再额外添加几个流控制节点,就至少可以实现当前的任务系统功能。

我们可以默认提供此套实现,玩家以此为基础可以构建自己的方案,并将方案保存为蓝图,可以分享给其他玩家使用。

如果要添加新功能,就只需添加对应的新节点即可,而无需在页面上再做改动。

其他内容

参考图:

Blender 节点系统

image

UE 蓝图系统

image

Godot Visual Script

image

Coding 可视化持续集成 流水线

image

flower-knight commented 1 year ago

低代码平台啊,我们负责人心心念念的东西,听他的描述这这东西似乎有点磨人。类似的东西有玩家庭物联网比较常用的Node-RED。 image

flower-knight commented 1 year ago

这么一说感觉可以通过node-red调用maa的api来完成一些定时功能,就是ui会有点丑

ChingCdesu commented 1 year ago

这个想法确实不错,但是低代码平台用下来,总感觉差强人意 这个还得framework那边支持 @MistEO

Hapenia-Lans commented 1 year ago

我们可以从粗粒度开始,再逐渐添加更细粒度的选项/节点。例如一开始我们可以提供和当前 MAA 的一键长草相同的功能节点和一些流程控制节点。

image
Hapenia-Lans commented 1 year ago

再加入几个 input,例如当前时间,当前理智量,当前仓库中某个物品的数量,结合 if else 就能实现很多高级内容了。

bakashigure commented 1 year ago

感觉这是自定义任务流程的终极解决方案了,~但是似乎相当难实现~

fghpdf commented 1 year ago

AirFlow 如何? 这里是官方文档:https://airflow.apache.org/docs/apache-airflow/stable/index.html

这个也是一个功能强大的 workflow 平台,并且有类似 Python 的 DSL 语言可以让用户自定义流程。

image

from datetime import datetime

from airflow import DAG
from airflow.decorators import task
from airflow.operators.bash import BashOperator

# A DAG represents a workflow, a collection of tasks
with DAG(dag_id="demo", start_date=datetime(2022, 1, 1), schedule="0 0 * * *") as dag:

    # Tasks are represented as operators
    hello = BashOperator(task_id="hello", bash_command="echo hello")

    @task()
    def airflow():
        print("airflow")

    # Set dependencies between tasks
    hello >> airflow()