From d298ac872c8e8cd9035cb36690c4c532bbfdf659 Mon Sep 17 00:00:00 2001 From: DLmaster Date: Fri, 25 Oct 2024 15:04:05 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E8=87=AA=E5=AE=9A=E4=B9=89?= =?UTF-8?q?=E5=9F=BA=E5=BB=BA=E9=85=8D=E7=BD=AE=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AUTO_MAA.py | 485 +++++++++++++++++++++++++++++---------------------- README.md | 30 ++-- 更新说明.txt | 1 + 3 files changed, 296 insertions(+), 220 deletions(-) diff --git a/AUTO_MAA.py b/AUTO_MAA.py index 8912b0e..d79b7d6 100644 --- a/AUTO_MAA.py +++ b/AUTO_MAA.py @@ -837,7 +837,7 @@ class MaaRunner(QtCore.QThread): "Fight.UseExpiringMedicine" ] = "True" # 无限吃48小时内过期的理智药 # 自定义基建配置 - if self.data[index][11] == "-": + if self.data[index][11] == "n": data["Configurations"]["Default"][ "Infrast.CustomInfrastEnabled" ] = "False" # 禁用自定义基建配置 @@ -851,11 +851,12 @@ class MaaRunner(QtCore.QThread): data["Configurations"]["Default"][ "Infrast.IsCustomInfrastFileReadOnly" ] = "False" # 自定义基建配置文件只读 - data["Configurations"]["Default"][ - "Infrast.CustomInfrastFile" - ] = self.data[index][ - 11 - ] # 自定义基建配置文件地址 + data["Configurations"]["Default"]["Infrast.CustomInfrastFile"] = ( + self.json_path + + "/simple/" + + str(self.data[index][16]) + + "/infrastructure/infrastructure.json" + ) # 自定义基建配置文件地址 # 覆写配置文件 with open(self.set_path, "w", encoding="utf-8") as f: json.dump(data, f, indent=4) @@ -960,6 +961,7 @@ class Main(QWidget): self.key_path = self.app_path + "/data/key" self.gameid_path = self.app_path + "/data/gameid.txt" self.PASSWORD = PASSWARD + self.if_user_list_editable = True self.if_update_database = True self.if_update_config = True self.user_mode_list = ["simple", "beta"] @@ -1080,7 +1082,7 @@ class Main(QWidget): self.maa_path.setReadOnly(True) self.get_maa_path = self.ui.findChild(QPushButton, "pushButton_getMAApath") - self.get_maa_path.clicked.connect(lambda: self.read("file_path")) + self.get_maa_path.clicked.connect(lambda: self.read("file_path_maa")) self.set_maa = self.ui.findChild(QPushButton, "pushButton_setMAA") self.set_maa.clicked.connect(lambda: self.maa_set_starter("设置MAA_全局")) @@ -1144,7 +1146,7 @@ class Main(QWidget): self.MaaRunner.update_gui.connect(self.update_board) self.MaaRunner.update_user_info.connect(self.change_user_info) self.MaaRunner.push_notification.connect(self.push_notification) - self.MaaRunner.accomplish.connect(self.routine_ender) + self.MaaRunner.accomplish.connect(lambda: self.maa_ender("日常代理_结束")) self.MaaRunner.get_json.connect(self.get_maa_config) self.MainTimer = MainTimer(self.config) @@ -1294,6 +1296,21 @@ class Main(QWidget): cur.execute("DELETE FROM version WHERE v = ?", ("v1.0",)) cur.execute("INSERT INTO version VALUES(?)", ("v1.1",)) db.commit() + # v1.1-->v1.2 + if version[0][0] == "v1.1": + cur.execute("SELECT * FROM adminx WHERE True") + data = cur.fetchall() + for i in range(len(data)): + cur.execute( + "UPDATE adminx SET infrastructure = 'n' WHERE mode = ? AND uid = ?", + ( + data[i][15], + data[i][16], + ), + ) + cur.execute("DELETE FROM version WHERE v = ?", ("v1.1",)) + cur.execute("INSERT INTO version VALUES(?)", ("v1.2",)) + db.commit() cur.close() db.close() @@ -1462,134 +1479,143 @@ class Main(QWidget): if operation == "clear": self.PASSWORD = "" + elif operation == "read_only": + self.if_user_list_editable = False + elif operation == "editable": + self.if_user_list_editable = True self.if_update_database = False - if self.user_set.currentIndex() == 0: - data = [_ for _ in data if _[15] == "simple"] - self.user_list_simple.setRowCount(len(data)) - for i, row in enumerate(data): - for j, value in enumerate(row): - if self.userlist_simple_index[j] == "-": - continue - if j == 2: - item = QComboBox() - item.addItems(["官服", "B服"]) - if value == "Official": - item.setCurrentIndex(0) - elif value == "Bilibili": - item.setCurrentIndex(1) - item.currentIndexChanged.connect( - partial( - self.change_user_CellWidget, - data[i][16], - self.user_column[j], - ) + + data_simple = [_ for _ in data if _[15] == "simple"] + self.user_list_simple.setRowCount(len(data_simple)) + for i, row in enumerate(data_simple): + for j, value in enumerate(row): + if self.userlist_simple_index[j] == "-": + continue + if j == 2: + item = QComboBox() + item.addItems(["官服", "B服"]) + if value == "Official": + item.setCurrentIndex(0) + elif value == "Bilibili": + item.setCurrentIndex(1) + item.currentIndexChanged.connect( + partial( + self.change_user_CellWidget, + data_simple[i][16], + self.user_column[j], ) - elif j in [4, 10]: - item = QComboBox() - item.addItems(["启用", "禁用"]) - if value == "y": - item.setCurrentIndex(0) - elif value == "n": - item.setCurrentIndex(1) - item.currentIndexChanged.connect( - partial( - self.change_user_CellWidget, - data[i][16], - self.user_column[j], - ) + ) + elif j in [4, 10, 11]: + item = QComboBox() + item.addItems(["启用", "禁用"]) + if value == "y": + item.setCurrentIndex(0) + elif value == "n": + item.setCurrentIndex(1) + item.currentIndexChanged.connect( + partial( + self.change_user_CellWidget, + data_simple[i][16], + self.user_column[j], ) - elif j == 5: - curdate = server_date() - if curdate != value: - item = QTableWidgetItem("今日未代理") - else: - item = QTableWidgetItem( - "今日已代理" + str(data[i][14]) + "次" - ) + ) + elif j == 5: + curdate = server_date() + if curdate != value: + item = QTableWidgetItem("今日未代理") + else: + item = QTableWidgetItem( + "今日已代理" + str(data_simple[i][14]) + "次" + ) + item.setFlags(QtCore.Qt.ItemIsSelectable | QtCore.Qt.ItemIsEnabled) + elif j == 12: + if self.PASSWORD == "": + item = QTableWidgetItem("******") item.setFlags( QtCore.Qt.ItemIsSelectable | QtCore.Qt.ItemIsEnabled ) - elif j == 11: - item = QTableWidgetItem(str(value).replace("\\", "/")) - elif j == 12: - if self.PASSWORD == "": - item = QTableWidgetItem("******") + else: + result = self.decryptx(value) + item = QTableWidgetItem(result) + if result == "管理密钥错误": item.setFlags( QtCore.Qt.ItemIsSelectable | QtCore.Qt.ItemIsEnabled ) - else: - result = self.decryptx(value) - item = QTableWidgetItem(result) - if result == "管理密钥错误": - item.setFlags( - QtCore.Qt.ItemIsSelectable | QtCore.Qt.ItemIsEnabled - ) + else: + item = QTableWidgetItem(str(value)) + if j in [2, 4, 10, 11]: + if not self.if_user_list_editable: + item.setEnabled(False) + self.user_list_simple.setCellWidget( + data_simple[i][16], self.userlist_simple_index[j], item + ) + else: + self.user_list_simple.setItem( + data_simple[i][16], self.userlist_simple_index[j], item + ) + + data_beta = [_ for _ in data if _[15] == "beta"] + self.user_list_beta.setRowCount(len(data_beta)) + for i, row in enumerate(data_beta): + for j, value in enumerate(row): + if self.userlist_beta_index[j] == "-": + continue + if j in [4, 9, 10]: + item = QComboBox() + item.addItems(["启用", "禁用"]) + if value == "y": + item.setCurrentIndex(0) + elif value == "n": + item.setCurrentIndex(1) + item.currentIndexChanged.connect( + partial( + self.change_user_CellWidget, + data_beta[i][16], + self.user_column[j], + ) + ) + elif j == 5: + curdate = server_date() + if curdate != value: + item = QTableWidgetItem("今日未代理") else: - item = QTableWidgetItem(str(value)) - if j in [2, 4, 10]: - self.user_list_simple.setCellWidget( - data[i][16], self.userlist_simple_index[j], item + item = QTableWidgetItem( + "今日已代理" + str(data_beta[i][14]) + "次" ) - else: - self.user_list_simple.setItem( - data[i][16], self.userlist_simple_index[j], item - ) - elif self.user_set.currentIndex() == 1: - data = [_ for _ in data if _[15] == "beta"] - self.user_list_beta.setRowCount(len(data)) - for i, row in enumerate(data): - for j, value in enumerate(row): - if self.userlist_beta_index[j] == "-": - continue - if j in [4, 9, 10]: - item = QComboBox() - item.addItems(["启用", "禁用"]) - if value == "y": - item.setCurrentIndex(0) - elif value == "n": - item.setCurrentIndex(1) - item.currentIndexChanged.connect( - partial( - self.change_user_CellWidget, - data[i][16], - self.user_column[j], - ) - ) - elif j == 5: - curdate = server_date() - if curdate != value: - item = QTableWidgetItem("今日未代理") - else: - item = QTableWidgetItem( - "今日已代理" + str(data[i][14]) + "次" - ) + item.setFlags(QtCore.Qt.ItemIsSelectable | QtCore.Qt.ItemIsEnabled) + elif j == 12: + if self.PASSWORD == "": + item = QTableWidgetItem("******") item.setFlags( QtCore.Qt.ItemIsSelectable | QtCore.Qt.ItemIsEnabled ) - elif j == 12: - if self.PASSWORD == "": - item = QTableWidgetItem("******") + else: + result = self.decryptx(value) + item = QTableWidgetItem(result) + if result == "管理密钥错误": item.setFlags( QtCore.Qt.ItemIsSelectable | QtCore.Qt.ItemIsEnabled ) - else: - result = self.decryptx(value) - item = QTableWidgetItem(result) - if result == "管理密钥错误": - item.setFlags( - QtCore.Qt.ItemIsSelectable | QtCore.Qt.ItemIsEnabled - ) - else: - item = QTableWidgetItem(str(value)) - if j in [4, 9, 10]: - self.user_list_beta.setCellWidget( - data[i][16], self.userlist_beta_index[j], item - ) - else: - self.user_list_beta.setItem( - data[i][16], self.userlist_beta_index[j], item - ) + else: + item = QTableWidgetItem(str(value)) + if j in [4, 9, 10]: + if not self.if_user_list_editable: + item.setEnabled(False) + self.user_list_beta.setCellWidget( + data_beta[i][16], self.userlist_beta_index[j], item + ) + else: + self.user_list_beta.setItem( + data_beta[i][16], self.userlist_beta_index[j], item + ) + if self.if_user_list_editable: + self.user_list_simple.setEditTriggers(QTableWidget.AllEditTriggers) + self.user_list_beta.setEditTriggers(QTableWidget.AllEditTriggers) + else: + self.user_list_simple.setEditTriggers(QTableWidget.NoEditTriggers) + self.user_list_beta.setEditTriggers(QTableWidget.NoEditTriggers) + # 设置QComboBox为可编辑 self.if_update_database = True self.user_list_simple.horizontalHeader().setSectionResizeMode( QHeaderView.Stretch @@ -1792,16 +1818,6 @@ class Main(QWidget): self.app_path + "/data/MAAconfig/" + self.user_mode_list[1 - self.user_set.currentIndex()] - + "/-1", - ) - os.rename( - self.app_path - + "/data/MAAconfig/" - + self.user_mode_list[1 - self.user_set.currentIndex()] - + "/-1", - self.app_path - + "/data/MAAconfig/" - + self.user_mode_list[1 - self.user_set.currentIndex()] + "/" + str(other_numb), ) @@ -1826,9 +1842,12 @@ class Main(QWidget): self.update_user_info("normal") def change_user_set(self): - """修改用户配置的详细文件""" + """执行用户配置列表的进一步配置""" if self.user_set.currentIndex() == 0: - QMessageBox.critical(self.ui, "错误", "该项目无法进一步配置") + if self.user_list_simple.currentColumn() in [10]: + self.get_maa_config([0, self.user_list_simple.currentRow(), 2]) + else: + QMessageBox.critical(self.ui, "错误", "该项目无法进一步配置") elif self.user_set.currentIndex() == 1: if self.user_list_beta.currentColumn() in [4, 5]: self.MaaRunner.get_json_path = [ @@ -1855,6 +1874,33 @@ class Main(QWidget): self.config["Default"]["MaaSet.path"] + "/config/gui.json", self.app_path + "/data/MAAconfig/Default", ) + elif info[2] == 2: + infrastructure_path = self.read("file_path_infrastructure") + if infrastructure_path: + os.makedirs( + self.app_path + + "/data/MAAconfig/" + + set_book1[info[0]] + + str(info[1]) + + "/infrastructure", + exist_ok=True, + ) + shutil.copy( + infrastructure_path, + self.app_path + + "/data/MAAconfig/" + + set_book1[info[0]] + + str(info[1]) + + "/infrastructure/infrastructure.json", + ) + return True + else: + QMessageBox.critical( + self.ui, + "错误", + "未选择自定义基建文件", + ) + return False else: os.makedirs( self.app_path @@ -1917,6 +1963,22 @@ class Main(QWidget): """将GUI中发生修改的用户配置表中的CellWidget类信息同步至本地数据库""" if not self.if_update_database: return None + if ( + self.user_set.currentIndex() == 0 + and column == "infrastructure" + and index == 0 + ): + if not os.path.exists( + self.app_path + + "/data/MAAconfig/" + + self.user_mode_list[self.user_set.currentIndex()] + + "/" + + str(row) + + "/infrastructure/infrastructure.json", + ): + result = self.get_maa_config([0, row, 2]) + if not result: + index = 1 if self.user_set.currentIndex() == 0 and column == "server": server_list = ["Official", "Bilibili"] self.cur.execute( @@ -2039,11 +2101,17 @@ class Main(QWidget): self.MaaRunner.question_choice = "Yes" elif choice == QMessageBox.No: self.MaaRunner.question_choice = "No" - # 读入文件目录 - elif operation == "file_path": + # 读入MAA文件目录 + elif operation == "file_path_maa": file_path = QFileDialog.getExistingDirectory(self.ui, "选择MAA文件夹") - if file_path != "": + if file_path: self.maa_path.setText(file_path) + # 读入自定义基建文件目录 + elif operation == "file_path_infrastructure": + file_path, _ = QFileDialog.getOpenFileName( + self.ui, "选择自定义基建文件", "", "JSON 文件 (*.json)" + ) + return file_path def check_maa_path(self): if os.path.exists( @@ -2056,36 +2124,12 @@ class Main(QWidget): else: return False - def routine_ender(self): - """中止日常代理进程""" - self.MaaRunner.if_run = False - self.MaaRunner.wait() - self.MainTimer.is_maa_run = False - shutil.copy( - self.app_path + "/data/MAAconfig/Default/gui.json", - self.config["Default"]["MaaSet.path"] + "/config", - ) - self.check_start.setEnabled(True) - self.set_maa.setEnabled(True) - self.user_changeset.setEnabled(True) - self.run_now.clicked.disconnect() - self.run_now.setText("立即执行") - self.run_now.clicked.connect(self.routine_starter) - def routine_starter(self): """启动MaaRunner线程运行日常代理任务""" if not self.check_maa_path(): QMessageBox.critical(self.ui, "错误", "您还未正确配置MAA路径!") return None - # 运行过程中修改部分组件 - self.MaaRunner.accomplish.disconnect() - self.MaaRunner.accomplish.connect(self.routine_ender) - self.check_start.setEnabled(False) - self.set_maa.setEnabled(False) - self.user_changeset.setEnabled(False) - self.run_now.clicked.disconnect() - self.run_now.setText("结束运行") - self.run_now.clicked.connect(self.routine_ender) + self.maa_running_set("日常代理_开始") # 配置参数 self.MaaRunner.set_path = ( self.config["Default"]["MaaSet.path"] + "/config/gui.json" @@ -2105,36 +2149,12 @@ class Main(QWidget): self.MainTimer.is_maa_run = True self.MaaRunner.start() - def check_ender(self): - """中止人工排查进程""" - self.MaaRunner.if_run = False - self.MaaRunner.wait() - self.MainTimer.is_maa_run = False - shutil.copy( - self.app_path + "/data/MAAconfig/Default/gui.json", - self.config["Default"]["MaaSet.path"] + "/config", - ) - self.run_now.setEnabled(True) - self.set_maa.setEnabled(True) - self.user_changeset.setEnabled(True) - self.check_start.clicked.disconnect() - self.check_start.setText("开始排查") - self.check_start.clicked.connect(self.check_starter) - def check_starter(self): """启动MaaRunner线程运行人工排查任务""" if not self.check_maa_path(): QMessageBox.critical(self.ui, "错误", "您还未正确配置MAA路径!") return None - # 运行过程中修改部分组件 - self.MaaRunner.accomplish.disconnect() - self.MaaRunner.accomplish.connect(self.check_ender) - self.run_now.setEnabled(False) - self.set_maa.setEnabled(False) - self.user_changeset.setEnabled(False) - self.check_start.clicked.disconnect() - self.check_start.setText("中止排查") - self.check_start.clicked.connect(self.check_ender) + self.maa_running_set("人工排查_开始") # 配置参数 self.MaaRunner.set_path = ( self.config["Default"]["MaaSet.path"] + "/config/gui.json" @@ -2151,33 +2171,12 @@ class Main(QWidget): self.MainTimer.is_maa_run = True self.MaaRunner.start() - def maa_set_ender(self): - """中止MAA设置进程""" - self.MaaRunner.if_run = False - self.MaaRunner.wait() - self.MainTimer.is_maa_run = False - if self.MaaRunner.mode == "设置MAA_用户": - shutil.copy( - self.app_path + "/data/MAAconfig/Default/gui.json", - self.config["Default"]["MaaSet.path"] + "/config", - ) - self.set_maa.setEnabled(True) - self.user_changeset.setEnabled(True) - self.run_now.setEnabled(True) - self.check_start.setEnabled(True) - def maa_set_starter(self, mode): """启动MaaRunner线程进行MAA设置""" if not self.check_maa_path(): QMessageBox.critical(self.ui, "错误", "您还未正确配置MAA路径!") return None - # 运行过程中修改部分组件 - self.MaaRunner.accomplish.disconnect() - self.MaaRunner.accomplish.connect(self.maa_set_ender) - self.set_maa.setEnabled(False) - self.user_changeset.setEnabled(False) - self.run_now.setEnabled(False) - self.check_start.setEnabled(False) + self.maa_running_set("设置MAA_开始") # 配置参数 self.MaaRunner.set_path = ( self.config["Default"]["MaaSet.path"] + "/config/gui.json" @@ -2191,6 +2190,82 @@ class Main(QWidget): self.MainTimer.is_maa_run = True self.MaaRunner.start() + def maa_ender(self, mode): + """中止MAA线程""" + self.MaaRunner.if_run = False + self.MaaRunner.wait() + self.MainTimer.is_maa_run = False + self.maa_running_set(mode) + + def maa_running_set(self, mode): + """处理MAA运行过程中的GUI组件变化""" + if "开始" in mode: + + self.MaaRunner.accomplish.disconnect() + self.user_add.setEnabled(False) + self.user_del.setEnabled(False) + self.user_switch.setEnabled(False) + self.user_changeset.setEnabled(False) + self.set_maa.setEnabled(False) + # self.update_user_info("read_only") + + if mode == "日常代理_开始": + self.MaaRunner.accomplish.connect( + lambda: self.maa_ender("日常代理_结束") + ) + self.check_start.setEnabled(False) + self.run_now.clicked.disconnect() + self.run_now.setText("结束运行") + self.run_now.clicked.connect(lambda: self.maa_ender("日常代理_结束")) + + elif mode == "人工排查_开始": + self.MaaRunner.accomplish.connect( + lambda: self.maa_ender("人工排查_结束") + ) + self.run_now.setEnabled(False) + self.check_start.clicked.disconnect() + self.check_start.setText("中止排查") + self.check_start.clicked.connect( + lambda: self.maa_ender("人工排查_结束") + ) + + elif mode == "设置MAA_开始": + self.MaaRunner.accomplish.connect( + lambda: self.maa_ender("设置MAA_结束") + ) + self.run_now.setEnabled(False) + self.check_start.setEnabled(False) + + elif "结束" in mode: + + shutil.copy( + self.app_path + "/data/MAAconfig/Default/gui.json", + self.config["Default"]["MaaSet.path"] + "/config", + ) + self.user_add.setEnabled(True) + self.user_del.setEnabled(True) + self.user_switch.setEnabled(True) + self.user_changeset.setEnabled(True) + self.set_maa.setEnabled(True) + # self.update_user_info("editable") + + if mode == "设置MAA_结束": + self.run_now.setEnabled(True) + self.check_start.setEnabled(True) + + elif mode == "人工排查_结束": + + self.run_now.setEnabled(True) + self.check_start.clicked.disconnect() + self.check_start.setText("开始排查") + self.check_start.clicked.connect(self.check_starter) + + elif mode == "日常代理_结束": + self.check_start.setEnabled(True) + self.run_now.clicked.disconnect() + self.run_now.setText("立即执行") + self.run_now.clicked.connect(self.routine_starter) + def push_notification(self, title, message, ticker, t): """推送系统通知""" notification.notify( diff --git a/README.md b/README.md index 865fad9..ca1d8c9 100644 --- a/README.md +++ b/README.md @@ -109,11 +109,11 @@ MAA多账号管理与自动化软件 - 本项目已基本完成GUI开发,您可以直接在用户页配置AUTO_MAA相关信息,以下是对该页面的一些讲解: - `新建`、`删除`:新建一个用户到当前用户配置列表、删除当前所选第一行所对应的用户。 - `转为高级/简洁`:将当前所选第一行所对应的用户转为高级/简洁配置模式。 - - `修改配置`:修改更深层的用户配置信息,当前支持该项的有`高级用户配置列表的日常、剿灭栏目`。 + - `修改配置`:修改更深层的用户配置信息,当前支持该项的有`简洁用户配置列表的自定义基建栏目`、`高级用户配置列表的日常、剿灭栏目`。 - `显示密码`:输入管理密钥以显示用户密码,仅当管理密钥正确时能够修改`密码栏目`。 - `刷新`:清除临时保存的管理密钥。 - `简洁用户配置列表`:仅支持核心代理选项的设置,其它设置选项沿用MAA的全局设置,部分代理核心功能选项由程序托管。 - - `高级用户配置列表`:支持几乎所有代理选项的设置,仅部分代理核心功能选项由程序托管。 + - `高级用户配置列表`:支持几乎所有代理选项的设置,通过`修改配置`进行MAA自定义,仅部分代理核心功能选项由程序托管。 - 特别的: - 对于`简洁用户配置列表的关卡、备选关卡-1、备选关卡-2栏目`您可以自定义关卡号替换方案。 @@ -160,18 +160,6 @@ MAA多账号管理与自动化软件 - [ ] 添加更多通知手段 - [ ] GUI界面美化 -## 交流与赞助 - -欢迎加入AUTO_MAA项目组,欢迎反馈bug - -- QQ群:957750551 - ---- - -如果喜欢这个项目的话,给作者来杯咖啡吧! - -![payid](https://github.com/DLmaster361/AUTO_MAA/blob/main/res/README/payid.png "payid") - ## 贡献者 感谢以下贡献者对本项目做出的贡献 @@ -186,4 +174,16 @@ MAA多账号管理与自动化软件 ## Star History -[![Star History Chart](https://api.star-history.com/svg?repos=DLmaster361/AUTO_MAA&type=Date)](https://star-history.com/#DLmaster361/AUTO_MAA&Date) \ No newline at end of file +[![Star History Chart](https://api.star-history.com/svg?repos=DLmaster361/AUTO_MAA&type=Date)](https://star-history.com/#DLmaster361/AUTO_MAA&Date) + +## 交流与赞助 + +欢迎加入AUTO_MAA项目组,欢迎反馈bug + +- QQ群:957750551 + +--- + +如果喜欢这个项目的话,给作者来杯咖啡吧! + +![payid](https://github.com/DLmaster361/AUTO_MAA/blob/main/res/README/payid.png "payid") \ No newline at end of file diff --git a/更新说明.txt b/更新说明.txt index acba3e1..d3fb1fc 100644 --- a/更新说明.txt +++ b/更新说明.txt @@ -6,6 +6,7 @@ v4.0_beta - 修复无用户进行代理时的逻辑错误 ## 程序优化 - 进一步优化MAA配置流程 +- 优化自定义基建配置方法 #7 - `gameid.txt`改由主程序进行初始化 - log获取部分集成为1个函数 - 消除部分if嵌套