mirror of
https://github.com/LmeSzinc/StarRailCopilot.git
synced 2024-11-23 00:52:22 +00:00
Fix: 修复夜间委托捕捉
This commit is contained in:
parent
1c2db1ec26
commit
f9f0b59657
@ -136,7 +136,6 @@ python -m uiautomator2 init
|
|||||||
|
|
||||||
- **GUI启动慢, uiautomator2启动慢**
|
- **GUI启动慢, uiautomator2启动慢**
|
||||||
- **无法处理网络波动** 重连弹窗, 跳小黄鸡
|
- **无法处理网络波动** 重连弹窗, 跳小黄鸡
|
||||||
- **处理夜间委托的弹窗可能出错** 有捕捉, 但是可能会在一些奇怪的时间弹出来
|
|
||||||
- **会显示绿脸黄脸红脸, 红脸出击确认** 这个是瓜游心情值更新BUG的锅了, 只要填对了`RECOVER_PER_HOUR` 和 `EMOTION_LIMIT` 就不会红脸出击, 或者保证一直处于经验加成状态.
|
- **会显示绿脸黄脸红脸, 红脸出击确认** 这个是瓜游心情值更新BUG的锅了, 只要填对了`RECOVER_PER_HOUR` 和 `EMOTION_LIMIT` 就不会红脸出击, 或者保证一直处于经验加成状态.
|
||||||
- **演习可能SL失败** 演习看的是屏幕上方的血槽, 血槽可能被立绘遮挡, 因此需要一定时间(默认1s)血量低于一定值(默认40%)才会触发SL. 一个血皮后排就有30%左右的血槽, 所以别以为在1s内被打掉40%是不可能的. 另外如果后排立绘过大且CD重叠严重, 建议增大确认时间(比如3s), 或者换皮肤, 这样可以减少误判.
|
- **演习可能SL失败** 演习看的是屏幕上方的血槽, 血槽可能被立绘遮挡, 因此需要一定时间(默认1s)血量低于一定值(默认40%)才会触发SL. 一个血皮后排就有30%左右的血槽, 所以别以为在1s内被打掉40%是不可能的. 另外如果后排立绘过大且CD重叠严重, 建议增大确认时间(比如3s), 或者换皮肤, 这样可以减少误判.
|
||||||
- **极少数情况下ADB和uiautomator2会抽风**
|
- **极少数情况下ADB和uiautomator2会抽风**
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
from datetime import datetime, time
|
from datetime import datetime, time
|
||||||
|
|
||||||
from module.base.timer import Timer
|
|
||||||
from module.device.app import AppControl
|
from module.device.app import AppControl
|
||||||
from module.device.control import Control
|
from module.device.control import Control
|
||||||
from module.device.screenshot import Screenshot
|
from module.device.screenshot import Screenshot
|
||||||
@ -9,7 +8,7 @@ from module.logger import logger
|
|||||||
|
|
||||||
|
|
||||||
class Device(Screenshot, Control, AppControl):
|
class Device(Screenshot, Control, AppControl):
|
||||||
def handle_night_commission(self, hour=21, threshold=5):
|
def handle_night_commission(self, hour=21, threshold=30):
|
||||||
"""
|
"""
|
||||||
Args:
|
Args:
|
||||||
hour (int): Hour that night commission refresh.
|
hour (int): Hour that night commission refresh.
|
||||||
@ -24,35 +23,20 @@ class Device(Screenshot, Control, AppControl):
|
|||||||
if now > time(hour, 0, threshold):
|
if now > time(hour, 0, threshold):
|
||||||
return False
|
return False
|
||||||
|
|
||||||
logger.info('Handling night commission')
|
if GET_MISSION.match(self.image, offset=True):
|
||||||
wait = Timer(10)
|
logger.info('Night commission appear.')
|
||||||
wait.start()
|
self.click(GET_MISSION)
|
||||||
|
return True
|
||||||
|
|
||||||
while 1:
|
return False
|
||||||
super().screenshot()
|
|
||||||
|
|
||||||
if GET_MISSION.appear_on(self.image):
|
|
||||||
super().click(GET_MISSION)
|
|
||||||
|
|
||||||
if wait.reached():
|
|
||||||
break
|
|
||||||
|
|
||||||
logger.info('Handle night commission finished')
|
|
||||||
return True
|
|
||||||
|
|
||||||
def screenshot(self):
|
def screenshot(self):
|
||||||
"""
|
"""
|
||||||
Returns:
|
Returns:
|
||||||
PIL.Image.Image:
|
PIL.Image.Image:
|
||||||
"""
|
"""
|
||||||
self.handle_night_commission()
|
super().screenshot()
|
||||||
return super().screenshot()
|
if self.handle_night_commission():
|
||||||
|
super().screenshot()
|
||||||
def click(self, button):
|
|
||||||
self.handle_night_commission()
|
|
||||||
return super().click(button)
|
|
||||||
|
|
||||||
def swipe(self, vector, box=(123, 159, 1193, 628), random_range=(0, 0, 0, 0), padding=15, duration=(0.1, 0.2)):
|
|
||||||
self.handle_night_commission()
|
|
||||||
return super().swipe(vector=vector, box=box, random_range=random_range, padding=padding, duration=duration)
|
|
||||||
|
|
||||||
|
return self.image
|
||||||
|
Loading…
Reference in New Issue
Block a user