Skip to content

Commit 4e039cf

Browse files
committed
Merge remote-tracking branch 'origin/dev' into dev
2 parents 9afe3d3 + 68122b3 commit 4e039cf

4 files changed

Lines changed: 52 additions & 4 deletions

File tree

‎tasks/Component/GeneralBattle/assets.py‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -209,6 +209,8 @@ class GeneralBattleAssets:
209209
C_END_FRIENDS_32 = RuleClick(roi_front=(0,0,100,100), roi_back=(0,0,100,100), name="end_friends_32")
210210
# description
211211
C_END_FRIENDS_23 = RuleClick(roi_front=(0,0,100,100), roi_back=(0,0,100,100), name="end_friends_23")
212+
# 御魂过多的【去清理】按钮
213+
C_OVERFLOW_GHOST = RuleClick(roi_front=(456, 381, 160, 82), roi_back=(456, 381, 160, 82), name="overflow_ghost")
212214

213215

214216
# Click Rule Assets

‎tasks/Component/GeneralBattle/battle_wait.py‎

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@ class OptionSuccessDefault:
158158
'C_END_MESSAGE_RIGHT_TOP', 'C_END_BUFF_AREA_1',
159159
'C_END_BUFF_AREA_2', 'C_END_SOUL_RECORD', 'C_END_SOUL_DETAILS',
160160
'C_END_1_1', 'C_END_1_2', 'C_END_1_3', 'C_END_1_4',
161-
'C_END_1_5', 'C_END_1_6',
161+
'C_END_1_5', 'C_END_1_6', "C_OVERFLOW_GHOST",
162162
])
163163

164164

@@ -1152,6 +1152,10 @@ def _bw_completion_default(self, pub: PublicContext, pri: PrivateContext) -> Hoo
11521152

11531153
def _bw_interrupt_default(self, pub: PublicContext, pri: PrivateContext) -> HookSignal:
11541154
# 比如 御魂溢出
1155+
1156+
# 结算的时候御魂溢出提示,点击【知道了】
1157+
self.appear_then_click(self.I_OVER_GHOST)
1158+
11551159
return HookSignal.CONTINUE
11561160

11571161
def _bw_success_default(self, pub: PublicContext, pri: PrivateContext) -> HookSignal:
@@ -1180,6 +1184,14 @@ def _bw_success_default(self, pub: PublicContext, pri: PrivateContext) -> HookSi
11801184
while 1:
11811185
self.screenshot()
11821186

1187+
# 发现御魂溢出,直接跳出,在interupt里面处理
1188+
if self.appear(self.I_OVER_GHOST):
1189+
return HookSignal.CONTINUE
1190+
1191+
# 结算的时候御魂溢出提示,点击【知道了】
1192+
if self.appear(self.I_OVER_GHOST):
1193+
self.click(self.I_OVER_GHOST)
1194+
11831195
# 不小心点到了具体的奖励,他会弹出这个物品的详细描述 里面必定包含有“获取途径”
11841196
if self.appear(self.I_END_FIX_1) or self.appear(self.I_END_FIX_2):
11851197
self.click(self.C_REWARD_2, interval=1.5)

‎tasks/Delegation/script_task.py‎

Lines changed: 29 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -56,22 +56,44 @@ def ui_click(click, stop):
5656
if not self.ocr_appear(self.O_D_NAME):
5757
logger.warning(f'Delegation: {name} not found')
5858
return False
59+
enter_timer = Timer(15).start()
5960
while 1:
6061
self.screenshot()
6162
if self.appear(self.I_D_START):
6263
break
64+
if enter_timer.reached():
65+
logger.warning(f'Delegation: {name} enter timeout')
66+
return False
67+
68+
# 检测到弹出的勾玉确认框,优先点击取消保护勾玉
69+
if self.appear_then_click(self.I_UI_CANCEL, interval=1):
70+
continue
71+
6372
# 如果出现’召回‘ ’返回‘ 说明这个是现在委派中
6473
# 需要退出
6574
if self.appear(self.I_D_BACK):
6675
logger.warning(f'Delegation: {name} is in delegation')
67-
self.ui_click_until_disappear(self.I_D_BACK)
68-
self.wait_until_appear(self.I_REWARDS_MIN)
76+
back_timer = Timer(6).start()
77+
while 1:
78+
self.screenshot()
79+
if not self.appear(self.I_D_BACK):
80+
break
81+
if back_timer.reached():
82+
logger.warning('Exit delegation detail timeout')
83+
break
84+
# 若此时被取消弹窗遮挡返回,优先点取消
85+
if self.appear_then_click(self.I_UI_CANCEL, interval=1):
86+
continue
87+
if self.appear_then_click(self.I_D_BACK, interval=1.2):
88+
continue
89+
self.wait_until_appear(self.I_REWARDS_MIN, wait_time=3)
6990
return False
7091
if self.appear_then_click(self.I_D_SKIP, interval=0.8):
7192
continue
7293
if self.appear_then_click(self.I_D_CONFIRM, interval=0.8):
7394
continue
74-
if self.ocr_appear_click(self.O_D_NAME, interval=1):
95+
# 点击委派任务名:防抖由 1s 提升至 3s,杜绝跨页面过渡时误触右上角"完成(30勾玉)"
96+
if self.ocr_appear_click(self.O_D_NAME, interval=3):
7597
continue
7698
# 进入委派 fefe e fe
7799
logger.info(f'Enter Delegation: {name}')
@@ -81,10 +103,14 @@ def ui_click(click, stop):
81103
ui_click(self.C_D_4, self.I_D_SELECT_4)
82104
# 委派开始
83105
logger.info(f'Delegation: {name} start')
106+
start_timer = Timer(10).start()
84107
while 1:
85108
self.screenshot()
86109
if not self.appear(self.I_D_START):
87110
break
111+
if start_timer.reached():
112+
logger.warning(f'Delegation: {name} start timeout')
113+
break
88114
if self.click(self.C_D_5, interval=0.8):
89115
continue
90116
if self.appear_then_click(self.I_D_START, interval=1.8):

‎tasks/Orochi/script_task.py‎

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -433,6 +433,10 @@ def battle_wait(self, random_click_swipt_enable: bool) -> bool:
433433
continue
434434
while 1:
435435
self.screenshot()
436+
# 处理御魂溢出
437+
if self.appear_then_click(self.I_OVER_GHOST):
438+
continue
439+
436440
action_click = random.choice([self.C_REWARD_1, self.C_REWARD_2, self.C_REWARD_3])
437441
if not self.appear(self.I_GREED_GHOST):
438442
break
@@ -445,6 +449,10 @@ def battle_wait(self, random_click_swipt_enable: bool) -> bool:
445449
appear_greed_ghost = self.appear(self.I_GREED_GHOST)
446450
while 1:
447451
self.screenshot()
452+
# 处理御魂溢出
453+
if self.appear_then_click(self.I_OVER_GHOST):
454+
continue
455+
448456
action_click = random.choice([self.C_REWARD_1, self.C_REWARD_2, self.C_REWARD_3])
449457
if self.appear_then_click(self.I_REWARD, action=action_click, interval=1.5):
450458
continue

0 commit comments

Comments
 (0)