MaaX icon indicating copy to clipboard operation
MaaX copied to clipboard

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

Open Hapenia-Lans opened this issue 11 months ago • 7 comments

说说你遇到的问题?

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

有什么好的想法?

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

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

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

其他内容

参考图:

Blender 节点系统

image

UE 蓝图系统

image

Godot Visual Script

image

Coding 可视化持续集成 流水线

image

Hapenia-Lans avatar Jul 08 '23 14:07 Hapenia-Lans

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

flower-knight avatar Jul 09 '23 16:07 flower-knight

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

flower-knight avatar Jul 09 '23 16:07 flower-knight

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

ChingCdesu avatar Jul 10 '23 02:07 ChingCdesu

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

image

Hapenia-Lans avatar Jul 10 '23 04:07 Hapenia-Lans

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

Hapenia-Lans avatar Jul 10 '23 04:07 Hapenia-Lans

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

bakashigure avatar Jul 11 '23 11:07 bakashigure

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()

fghpdf avatar Jul 22 '23 13:07 fghpdf