mirror of
https://github.com/ok-oldking/ok-wuthering-waves.git
synced 2025-04-24 08:25:16 +00:00
减少声骸拾取战斗结束等待
增加声骸识别概率 拾取声骸不再转向
This commit is contained in:
parent
2e4e5dc86d
commit
fe780c6ab4
11
config.py
11
config.py
@ -107,9 +107,9 @@ config = {
|
||||
'require_bg': True
|
||||
},
|
||||
'window_size': {
|
||||
'width': 800,
|
||||
'width': 820,
|
||||
'height': 600,
|
||||
'min_width': 800,
|
||||
'min_width': 820,
|
||||
'min_height': 600,
|
||||
},
|
||||
'supported_resolution': {
|
||||
@ -130,15 +130,16 @@ config = {
|
||||
'default': {
|
||||
'github': 'https://github.com/ok-oldking/ok-wuthering-waves',
|
||||
'discord': 'https://discord.gg/vVyCatEBgA',
|
||||
'sponsor': 'https://patreon.com/ok_oldking?utm_medium=unknown&utm_source=join_link&utm_campaign=creatorshare_creator&utm_content=copyLink',
|
||||
'share': 'Download OK-WW from https://github.com/ok-oldking/ok-wuthering-waves/releases/latest',
|
||||
'faq': 'https://github.com/ok-oldking/ok-wuthering-waves/blob/master/README_en.md'
|
||||
'faq': 'https://github.com/ok-oldking/ok-wuthering-waves/blob/master/README.md'
|
||||
},
|
||||
'zh_CN': {
|
||||
'github': 'https://github.com/ok-oldking/ok-wuthering-waves',
|
||||
'discord': 'https://discord.gg/vVyCatEBgA',
|
||||
'sponsor': 'https://afdian.com/a/ok-oldking',
|
||||
'share': 'OK-WW 夸克网盘下载:https://pan.quark.cn/s/75b55ef72a34 GitHub下载: https://github.com/ok-oldking/ok-wuthering-waves/releases/latest',
|
||||
'qq_group': 'https://qm.qq.com/q/ufUCrCEq6A',
|
||||
'faq': 'https://g-frfh1513.coding.net/public/ok-wuthering-waves/ok-wuthering-waves/git/files',
|
||||
'faq': 'https://cnb.cool/ok-oldking/ok-wuthering-waves/-/blob/master/README_cn.md',
|
||||
},
|
||||
},
|
||||
'about': """
|
||||
|
@ -28,6 +28,7 @@ class CombatCheck(BaseWWTask):
|
||||
self.last_in_realm_not_combat = 0
|
||||
self._last_liberation = 0
|
||||
self.target_enemy_time_out = 3
|
||||
self.combat_end_condition = None
|
||||
|
||||
@property
|
||||
def in_liberation(self):
|
||||
@ -119,6 +120,8 @@ class CombatCheck(BaseWWTask):
|
||||
if self.has_target():
|
||||
self.last_in_realm_not_combat = 0
|
||||
return True
|
||||
if self.combat_end_condition is not None and self.combat_end_condition():
|
||||
return self.reset_to_false(recheck=True, reason='end condition reached')
|
||||
if self.target_enemy(wait=True):
|
||||
logger.debug(f'retarget enemy succeeded')
|
||||
return True
|
||||
|
@ -114,9 +114,6 @@ class BaseCombatTask(CombatCheck):
|
||||
break
|
||||
self.combat_end()
|
||||
self.wait_in_team_and_world(time_out=10)
|
||||
self.sleep(1)
|
||||
self.middle_click()
|
||||
self.sleep(1)
|
||||
|
||||
def run_in_circle_to_find_echo(self, circle_count=3):
|
||||
directions = ['w', 'a', 's', 'd']
|
||||
|
@ -155,24 +155,24 @@ class BaseWWTask(BaseTask):
|
||||
if not echos:
|
||||
if no_echo_start == 0:
|
||||
no_echo_start = time.time()
|
||||
elif time.time() - no_echo_start > 1.5:
|
||||
elif time.time() - no_echo_start > 3:
|
||||
self.log_debug(f'walk front to_echo, no echos found, break')
|
||||
break
|
||||
continue
|
||||
next_direction = 'w'
|
||||
else:
|
||||
no_echo_start = 0
|
||||
echo = echos[0]
|
||||
center_distance = echo.center()[0] - self.width_of_screen(0.5)
|
||||
threshold = 0.05 if not last_direction else 0.15
|
||||
if abs(center_distance) < self.height_of_screen(threshold):
|
||||
if echo.y + echo.height > self.height_of_screen(0.65):
|
||||
next_direction = 's'
|
||||
echo = echos[0]
|
||||
center_distance = echo.center()[0] - self.width_of_screen(0.5)
|
||||
threshold = 0.05 if not last_direction else 0.15
|
||||
if abs(center_distance) < self.height_of_screen(threshold):
|
||||
if echo.y + echo.height > self.height_of_screen(0.65):
|
||||
next_direction = 's'
|
||||
else:
|
||||
next_direction = 'w'
|
||||
elif center_distance > 0:
|
||||
next_direction = 'd'
|
||||
else:
|
||||
next_direction = 'w'
|
||||
elif center_distance > 0:
|
||||
next_direction = 'd'
|
||||
else:
|
||||
next_direction = 'a'
|
||||
next_direction = 'a'
|
||||
last_direction = self._walk_direction(last_direction, next_direction)
|
||||
self._stop_last_direction(last_direction)
|
||||
|
||||
@ -438,7 +438,7 @@ class BaseWWTask(BaseTask):
|
||||
result = self.executor.ocr_lib(image, use_det=True, use_cls=False, use_rec=True)
|
||||
self.logger.info(f'ocr_result {result}')
|
||||
|
||||
def find_echos(self, threshold=0.6):
|
||||
def find_echos(self, threshold=0.46):
|
||||
"""
|
||||
Main function to load ONNX model, perform inference, draw bounding boxes, and display the output image.
|
||||
|
||||
|
@ -26,6 +26,7 @@ class FarmEchoTask(WWOneTimeTask, BaseCombatTask):
|
||||
self.config_type["Boss"] = {'type': "drop_down", 'options': ['Hecate', 'Dreamless', 'Jue', 'Fleurdelys']}
|
||||
|
||||
self.icon = FluentIcon.ALBUM
|
||||
self.combat_end_condition = self.find_echos
|
||||
self.add_exit_after_config()
|
||||
|
||||
def run(self):
|
||||
@ -56,13 +57,13 @@ class FarmEchoTask(WWOneTimeTask, BaseCombatTask):
|
||||
|
||||
self.combat_once()
|
||||
logger.info(f'farm echo move {self.config.get("Boss")} yolo_find_echo')
|
||||
dropped = self.yolo_find_echo()[0]
|
||||
dropped = self.yolo_find_echo(turn=False)[0]
|
||||
self.incr_drop(dropped)
|
||||
self.sleep(0.5)
|
||||
self.send_key('esc', after_sleep=0.5)
|
||||
self.wait_click_feature('confirm_btn_hcenter_vcenter', relative_x=-1, raise_if_not_found=True,
|
||||
post_action=lambda: self.send_key('esc', after_sleep=1),
|
||||
settle_time=2)
|
||||
settle_time=1)
|
||||
self.wait_in_team_and_world(time_out=120)
|
||||
self.sleep(2)
|
||||
|
||||
|
@ -44,6 +44,7 @@ class FarmWorldBossTask(WWOneTimeTask, BaseCombatTask):
|
||||
self.config_type["Entrance Direction"] = {'type': "drop_down", 'options': ['Forward', 'Backward']}
|
||||
self.crownless_pos = (0.9, 0.4)
|
||||
self.icon = FluentIcon.GLOBE
|
||||
self.combat_end_condition = self.find_echos
|
||||
self.add_exit_after_config()
|
||||
|
||||
# not current in use because not stable, right now using one click to scroll down
|
||||
@ -90,7 +91,7 @@ class FarmWorldBossTask(WWOneTimeTask, BaseCombatTask):
|
||||
self.sleep(5)
|
||||
logger.info(f'farm echo move forward walk_until_f to find echo')
|
||||
|
||||
dropped = self.yolo_find_echo()[0]
|
||||
dropped = self.yolo_find_echo(turn=False)[0]
|
||||
self.incr_drop(dropped)
|
||||
|
||||
if count < 2:
|
||||
|
@ -14,12 +14,14 @@ class TestEcho(TaskTestCase):
|
||||
|
||||
def test_find_echo(self):
|
||||
self.set_image('tests/images/echo.png')
|
||||
echos = self.task.find_echo()
|
||||
echos = self.task.find_echos()
|
||||
self.task.log_info('Found1 {} echos'.format(len(echos)))
|
||||
self.assertEqual(1, len(echos))
|
||||
time.sleep(1)
|
||||
self.task.screenshot('echo1', show_box=True)
|
||||
self.set_image('tests/images/echo2.png')
|
||||
echos = self.task.find_echo()
|
||||
echos = self.task.find_echos()
|
||||
self.task.log_info('Found2 {} echos'.format(len(echos)))
|
||||
time.sleep(1)
|
||||
self.task.screenshot('echo2', show_box=True)
|
||||
self.assertEqual(1, len(echos))
|
||||
|
Binary file not shown.
Before Width: | Height: | Size: 2.5 MiB After Width: | Height: | Size: 1.8 MiB |
Binary file not shown.
Before Width: | Height: | Size: 2.8 MiB After Width: | Height: | Size: 9.4 MiB |
Loading…
x
Reference in New Issue
Block a user