9lanx1N
9lanx1N
先说结论:我阴差阳错地通过某种方式解决了上述bug所带给我的困扰(并且找到了这个bug出现的原因)。但是我同样发现了诸多MAA的不合理之处,处理它们花费了我两个多小时的时间。因此,我把我的解决历程贴于此,主要是把我遇到的这些问题表达出来(以下6条中,每一条均包含我遇到的MAA的问题),供大佬们参考。 以下为我的历程: 1. 我为了换基建,设定了最短间隔1个小时的定时(用于凌晨4点最大限度地刷信赖值)。不过我同样用MAA刷肉鸽,**我发现,MAA会继承上一次的选择,然而无论上一次的自动肉鸽是如何选择的,新开启的MAA都不会选择自动肉鸽。**(不知道是bug还是大佬们故意设计的。) 2. 那我手动点上自动肉鸽呗,就麻烦一些,也还行。然而**我却发现,有时候换基建的定时已经到了,前一个任务的肉鸽还没刷完,从而开启不了新的一轮任务,这让MAA的定时系统形同虚设,从而不能在固定时间换基建。**(如果能有一个选项,就是在定时的时间达到以后强行结束现有未结束的进程而开启下一轮进程,就好很多了。) 3. 既然MAA内置的定时系统形同虚设,那我就干脆不用它,而使用Windows自带的“任务计划程序”软件定时开启MAA呗。所以,我就没有让MAA常驻后台的必要了,于是设置了“完成后退出MAA和模拟器”,然后**就遇到了我正文所说的bug**。 4. 其实3.的问题对我影响不大,因为我的主要矛盾是解决2.。所以为了解决它,我在3.的基础上,同时增添了“强制关闭MAA”的操作(就是`taskkill`),让系统到时间时先关闭MAA,再打开它。不过我在调试时**发现,同一个号的MAA能够被打开两次(是的,在现有一个MAA的情况下再点击一次桌面的快捷方式,就可以再打开一个,就这么简单),然后这两个双胞胎MAA就开始互相掣肘,你操作你的,我操作我的,把基建搞得天翻地覆。**(如果能再新打开一个MAA时判定,如果仍存在原先的MAA(同一路径下的,复制过的别的路径下的MAA不算)的进程,那就不要再打开了,就更好了,这样更有鲁棒性一些。) 5. 好在4.的bug我实际几乎不会遇到,只是调试时偶然发现。于是,我就开始挂肉鸽,然后试运行了。结果,我(并不意外地)**发现,当方舟处于肉鸽内界面(如战斗暂停界面或战斗结算界面等)时,MAA并没能成功返回至主页面然后开始任务,而是僵持在肉鸽原界面然后过五分钟直接显示任务已完成。**(如果你们新增一个功能,就是在打开MAA时,如果方舟此时所在界面MAA并不能识别,则直接重启方舟APP(而不是僵持5分钟摆烂),就好了) 6. (阴差阳错解决3.)那看来,我不光要重启MAA,我还要重启方舟了。不过我翻了半天代码,还是没能找到你们是怎么达成“仅退出明日方舟而不关闭模拟器”的。所以我只好用笨办法,就是“强制关闭夜神模拟器,再由MAA打开”。然而此时我才发现,夜神模拟器在任务管理器中似乎有着许多(4)个进程,包括`Nox.exe`、`NoxVMHandle.exe`、`NoxVMSVC.exe`、`nox_adb.exe`。然而在3.中,MAA却只退出了第2个和第4个进程,它显示已打开,但是其实没打开,于是就怎么都打不开了,除非把`Nox.exe`这一进程结束掉。我也确实是这么做的,然后就能打开了。至此,在我看来,3.的问题应该算是解决了。接下来,我就去看,如果只结束`Nox.exe`进程而不结束其他进程,能否重新打开夜神模拟器。结论是,能(虽然因为没全部结束而还是占着电脑内存,不过我就无所谓了,反正关闭后还会秒开)。那问题就解决了。(**真诚希望你们的新UI能给使用者更多的自定义选项,比如老生常谈的基建宿舍刷信赖策略,优先选低信赖值而非目前的优先选高信赖值**) 至此,我通过强制关闭MAA和夜神模拟器的方式,达成无论在这之前MAA和方舟处于一个怎样的状态,我都可以强制让它重新开始新一轮的任务,以达成基建的固定时间换人。虽然暴力了些,但终归是可喜可贺。 不过,正如上面所言,我自认为还是发现了MAA许多问题和许多功能的缺失的。如果大佬们能在后续改进,那就再好不过了。谢谢各位大佬。