Starry-Wind / StarRailAssistant

崩坏:星穹铁道自动化 | 崩坏:星穹铁道自动锄大地 | 崩坏:星穹铁道锄大地 | 自动锄大地 | 基于模拟按键
GNU General Public License v3.0
2.81k stars 237 forks source link

1.5更新后,自动大世界经常出现打完怪就在原地发呆,打完怪就停止 #760

Open dConstantineb opened 11 months ago

dConstantineb commented 11 months ago

问题描述

[WARNING 2023-11-16 12:42:48,856 _showwarnmsg:109] E:\Program Files\Python310\lib\site-packages\torchvision\transforms\functional.py:1603: UserWarning: The default value of the antialias parameter of all the resizing transforms (Resize(), RandomResizedCrop(), etc.) will change from None to True in v0.17, in order to be consistent across the PIL and Tensor backends. To suppress this warning, directly pass antialias=True (recommended, future default), antialias=None (current default, which means False for Tensors and True for PIL), or antialias=False (only works on Tensors - PIL will still use antialiasing). This also applies if you are using the inference transforms from the models weights: update the call to weights.transforms(antialias=True). warnings.warn(

预期行为

打完怪继续寻怪

实际行为

打完怪就原地不动

截图或录屏

在黑塔空间站第一个怪点就停下5分钟以上。

自动锄大地脚本版本

1.7.3.4

星穹铁道区服

国服

运行的客户端

PC

日志

[Uploading 日志文件.2023-10-07_18-15-18_343289.log…]()

yinghaodang commented 11 months ago

我也是来找答案的...不过,这个问题目前有个临时解决方案,程序默认退出战斗的时间是300s,锄大地练度高的话,修改成60s即可。 真要定位问题的话,还需要排查。 utils/config.py 中的fight_time从300改成60或者30。

yinghaodang commented 11 months ago

如果还是不太行的话,可以在这份文件中( calculated.py) 搜索这一行:self.compare_lists(self.get_pix_hsv(game_pos=(1435, 58)), [0, 0, 240]) and 在wait_fight_end这个函数里,注释掉试试。我不知道有什么后果,但是我注释掉就很丝滑了。害,这里作者没写注释,周末再研究吧。

cncqc commented 11 months ago

我也是来找答案的...不过,这个问题目前有个临时解决方案,程序默认退出战斗的时间是300s,锄大地练度高的话,修改成60s即可。 真要定位问题的话,还需要排查。 utils/config.py 中的fight_time从300改成60或者30。

我也是来找答案的,还需要修改 config.json,昨天我也是先改的这个,保险点60,这个办法倒是可以缓解。同时,查找“入画”代码处,此处有个死循环且没有超时退出,所以还需要加个最大时长10-20s左右强退。表现形式是:空间站支援舱段-3,永久挂起。

cncqc commented 11 months ago

如果还是不太行的话,可以在这份文件中( calculated.py) 搜索这一行:self.compare_lists(self.get_pix_hsv(game_pos=(1435, 58)), [0, 0, 240]) and 在wait_fight_end这个函数里,注释掉试试。我不知道有什么后果,但是我注释掉就很丝滑了。害,这里作者没写注释,周末再研究吧。

已测试,这个方法可以,没注释,不知道作者是以什么条件在判断。同时,calculated.py 中共有3处需要注释。

cncqc commented 11 months ago

花了点时间,打了点日志,知道作者的目的了。原因是右上角图标变化导致的,改为检测倒数第二个团队图标,就应该可以稳定运行很久吧,为什么不是最后一个,是有原因的 在此不表。以下是修改方法:

calculated.py,查找(1435, 58),修改为(1766, 30),共3处。

修改之后,丝般顺滑,已测试。网络问题,就不PR了。

dConstantineb commented 11 months ago

如果还是不太行的话,可以在这份文件中( calculated.py) 搜索这一行:self.compare_lists(self.get_pix_hsv(game_pos=(1435, 58)), [0, 0, 240]) and 在wait_fight_end这个函数里,注释掉试试。我不知道有什么后果,但是我注释掉就很丝滑了。害,这里作者没写注释,周末再研究吧。

‘’‘ if ( self.compare_lists([0, 0, 222], self.get_pix_hsv(game_pos=(1435, 58))) and self.compare_lists(self.get_pix_hsv(game_pos=(1435, 58)), [0, 0, 240]) and self.compare_lists([20, 90, 80], self.get_pix_hsv(game_pos=(88, 979))) and self.compare_lists(self.get_pix_hsv(gamepos=(88, 979)), [25, 100, 90]) ): log.info(("完成自动战斗")) break ‘’’ 这个好像是判断是否战斗的代码,在utils.caculated.py里的505行,但是我看不懂

dConstantineb commented 11 months ago

花了点时间,打了点日志,知道作者的目的了。原因是右上角图标变化导致的,改为检测倒数第二个团队图标,就应该可以稳定运行很久吧,为什么不是最后一个,是有原因的 在此不表。以下是修改方法:

calculated.py,查找(1435, 58),修改为(1766, 30),共3处。

修改之后,丝般顺滑,已测试。网络问题,就不PR了。

我这里搜到6个,两个是在line899的teleport函数里,两个在line463的check_fighting里,两个在line477的wait_fight_end里

cncqc commented 11 months ago

花了点时间,打了点日志,知道作者的目的了。原因是右上角图标变化导致的,改为检测倒数第二个团队图标,就应该可以稳定运行很久吧,为什么不是最后一个,是有原因的 在此不表。以下是修改方法: calculated.py,查找(1435, 58),修改为(1766, 30),共3处。 修改之后,丝般顺滑,已测试。网络问题,就不PR了。

我这里搜到6个,两个是在line899的teleport函数里,两个在line463的check_fighting里,两个在line477的wait_fight_end里

你是对的,有6个需要替换,我指的3个方法。

YuchuLiao commented 11 months ago

花了点时间,打了点日志,知道作者的目的了。原因是右上角图标变化导致的,改为检测倒数第二个团队图标,就应该可以稳定运行很久吧,为什么不是最后一个,是有原因的 在此不表。以下是修改方法:

calculated.py,查找(1435, 58),修改为(1766, 30),共3处。

修改之后,丝般顺滑,已测试。网络问题,就不PR了。

太感谢了!按照这个修改之后,不会卡了,完美解决