MaaX
MaaX copied to clipboard
新 UI 设想:使用节点——一劳永逸的任务规划系统
说说你遇到的问题?
鉴于添加功能,添加几个新按钮的 issue 层出不穷,不断往上打补丁也不是好办法(shi山是怎样炼成的),有必要使用一个更加灵活的解决方案,可以满足玩家大幅度的自定义需求。
有什么好的想法?
我们可以使用节点式的任务系统,将整个系统拆分成功能节点,再额外添加几个流控制节点,就至少可以实现当前的任务系统功能。
我们可以默认提供此套实现,玩家以此为基础可以构建自己的方案,并将方案保存为蓝图,可以分享给其他玩家使用。
如果要添加新功能,就只需添加对应的新节点即可,而无需在页面上再做改动。
其他内容
参考图:
Blender 节点系统
UE 蓝图系统
Godot Visual Script
Coding 可视化持续集成 流水线
低代码平台啊,我们负责人心心念念的东西,听他的描述这这东西似乎有点磨人。类似的东西有玩家庭物联网比较常用的Node-RED。
这么一说感觉可以通过node-red调用maa的api来完成一些定时功能,就是ui会有点丑
这个想法确实不错,但是低代码平台用下来,总感觉差强人意 这个还得framework那边支持 @MistEO
我们可以从粗粒度开始,再逐渐添加更细粒度的选项/节点。例如一开始我们可以提供和当前 MAA 的一键长草相同的功能节点和一些流程控制节点。
再加入几个 input,例如当前时间,当前理智量,当前仓库中某个物品的数量,结合 if else 就能实现很多高级内容了。
感觉这是自定义任务流程的终极解决方案了,~但是似乎相当难实现~
AirFlow 如何? 这里是官方文档:https://airflow.apache.org/docs/apache-airflow/stable/index.html
这个也是一个功能强大的 workflow 平台,并且有类似 Python 的 DSL 语言可以让用户自定义流程。
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()