mirror of
https://github.com/W1NDes/M-AzurLaneAutoScript.git
synced 2026-05-14 07:08:04 +08:00
Upd(7Dtask): 支持活动准备界面的7日小任务领取以及自动完成任务修复
This commit is contained in:
parent
ad3afb3b00
commit
5ceed7d4aa
BIN
assets/cn/smallevent/EVENT_PREPARE_ENTRY.png
Normal file
BIN
assets/cn/smallevent/EVENT_PREPARE_ENTRY.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 9.4 KiB |
BIN
assets/cn/smallevent/EVENT_PREPARE_PAGE.png
Normal file
BIN
assets/cn/smallevent/EVENT_PREPARE_PAGE.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 12 KiB |
BIN
assets/cn/ui/EVENTPRE_GOTO_MAIN.png
Normal file
BIN
assets/cn/ui/EVENTPRE_GOTO_MAIN.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 6.7 KiB |
@ -12,6 +12,8 @@ ACTIVITY_ONE_PAGE = Button(area={'cn': (102, 515, 277, 600), 'en': (102, 515, 27
|
||||
ACTIVITY_SELECTED_GRID = Button(area={'cn': (4, 241, 30, 344), 'en': (4, 241, 30, 344), 'jp': (4, 241, 30, 344), 'tw': (4, 241, 30, 344)}, color={'cn': (165, 118, 77), 'en': (165, 118, 77), 'jp': (165, 118, 77), 'tw': (165, 118, 77)}, button={'cn': (4, 241, 30, 344), 'en': (4, 241, 30, 344), 'jp': (4, 241, 30, 344), 'tw': (4, 241, 30, 344)}, file={'cn': './assets/cn/smallevent/ACTIVITY_SELECTED_GRID.png', 'en': './assets/cn/smallevent/ACTIVITY_SELECTED_GRID.png', 'jp': './assets/cn/smallevent/ACTIVITY_SELECTED_GRID.png', 'tw': './assets/cn/smallevent/ACTIVITY_SELECTED_GRID.png'})
|
||||
EVENT_NOTIFY_ENTRY = Button(area={'cn': (1182, 164, 1258, 186), 'en': (1182, 164, 1258, 186), 'jp': (1182, 164, 1258, 186), 'tw': (1182, 164, 1258, 186)}, color={'cn': (110, 112, 115), 'en': (110, 112, 115), 'jp': (110, 112, 115), 'tw': (110, 112, 115)}, button={'cn': (1182, 164, 1258, 186), 'en': (1182, 164, 1258, 186), 'jp': (1182, 164, 1258, 186), 'tw': (1182, 164, 1258, 186)}, file={'cn': './assets/cn/smallevent/EVENT_NOTIFY_ENTRY.png', 'en': './assets/cn/smallevent/EVENT_NOTIFY_ENTRY.png', 'jp': './assets/cn/smallevent/EVENT_NOTIFY_ENTRY.png', 'tw': './assets/cn/smallevent/EVENT_NOTIFY_ENTRY.png'})
|
||||
EVENT_NOTIFY_PAGE = Button(area={'cn': (117, 9, 337, 46), 'en': (117, 9, 337, 46), 'jp': (117, 9, 337, 46), 'tw': (117, 9, 337, 46)}, color={'cn': (82, 90, 118), 'en': (82, 90, 118), 'jp': (82, 90, 118), 'tw': (82, 90, 118)}, button={'cn': (117, 9, 337, 46), 'en': (117, 9, 337, 46), 'jp': (117, 9, 337, 46), 'tw': (117, 9, 337, 46)}, file={'cn': './assets/cn/smallevent/EVENT_NOTIFY_PAGE.png', 'en': './assets/cn/smallevent/EVENT_NOTIFY_PAGE.png', 'jp': './assets/cn/smallevent/EVENT_NOTIFY_PAGE.png', 'tw': './assets/cn/smallevent/EVENT_NOTIFY_PAGE.png'})
|
||||
EVENT_PREPARE_ENTRY = Button(area={'cn': (1077, 165, 1145, 188), 'en': (1077, 165, 1145, 188), 'jp': (1077, 165, 1145, 188), 'tw': (1077, 165, 1145, 188)}, color={'cn': (125, 126, 129), 'en': (125, 126, 129), 'jp': (125, 126, 129), 'tw': (125, 126, 129)}, button={'cn': (1077, 165, 1145, 188), 'en': (1077, 165, 1145, 188), 'jp': (1077, 165, 1145, 188), 'tw': (1077, 165, 1145, 188)}, file={'cn': './assets/cn/smallevent/EVENT_PREPARE_ENTRY.png', 'en': './assets/cn/smallevent/EVENT_PREPARE_ENTRY.png', 'jp': './assets/cn/smallevent/EVENT_PREPARE_ENTRY.png', 'tw': './assets/cn/smallevent/EVENT_PREPARE_ENTRY.png'})
|
||||
EVENT_PREPARE_PAGE = Button(area={'cn': (92, 18, 213, 48), 'en': (92, 18, 213, 48), 'jp': (92, 18, 213, 48), 'tw': (92, 18, 213, 48)}, color={'cn': (100, 105, 116), 'en': (100, 105, 116), 'jp': (100, 105, 116), 'tw': (100, 105, 116)}, button={'cn': (92, 18, 213, 48), 'en': (92, 18, 213, 48), 'jp': (92, 18, 213, 48), 'tw': (92, 18, 213, 48)}, file={'cn': './assets/cn/smallevent/EVENT_PREPARE_PAGE.png', 'en': './assets/cn/smallevent/EVENT_PREPARE_PAGE.png', 'jp': './assets/cn/smallevent/EVENT_PREPARE_PAGE.png', 'tw': './assets/cn/smallevent/EVENT_PREPARE_PAGE.png'})
|
||||
SEVEND_TASK_20250320 = Button(area={'cn': (323, 103, 823, 271), 'en': (323, 103, 823, 271), 'jp': (323, 103, 823, 271), 'tw': (323, 103, 823, 271)}, color={'cn': (215, 164, 151), 'en': (215, 164, 151), 'jp': (215, 164, 151), 'tw': (215, 164, 151)}, button={'cn': (323, 103, 823, 271), 'en': (323, 103, 823, 271), 'jp': (323, 103, 823, 271), 'tw': (323, 103, 823, 271)}, file={'cn': './assets/cn/smallevent/SEVEND_TASK_20250320.png', 'en': './assets/cn/smallevent/SEVEND_TASK_20250320.png', 'jp': './assets/cn/smallevent/SEVEND_TASK_20250320.png', 'tw': './assets/cn/smallevent/SEVEND_TASK_20250320.png'})
|
||||
SEVEND_TASK_FINISH_20250320 = Button(area={'cn': (322, 293, 373, 341), 'en': (322, 293, 373, 341), 'jp': (322, 293, 373, 341), 'tw': (322, 293, 373, 341)}, color={'cn': (219, 214, 211), 'en': (219, 214, 211), 'jp': (219, 214, 211), 'tw': (219, 214, 211)}, button={'cn': (322, 293, 373, 341), 'en': (322, 293, 373, 341), 'jp': (322, 293, 373, 341), 'tw': (322, 293, 373, 341)}, file={'cn': './assets/cn/smallevent/SEVEND_TASK_FINISH_20250320.png', 'en': './assets/cn/smallevent/SEVEND_TASK_FINISH_20250320.png', 'jp': './assets/cn/smallevent/SEVEND_TASK_FINISH_20250320.png', 'tw': './assets/cn/smallevent/SEVEND_TASK_FINISH_20250320.png'})
|
||||
SEVEND_TASK_GET1_20250320 = Button(area={'cn': (704, 381, 866, 425), 'en': (704, 381, 866, 425), 'jp': (704, 381, 866, 425), 'tw': (704, 381, 866, 425)}, color={'cn': (157, 86, 79), 'en': (157, 86, 79), 'jp': (157, 86, 79), 'tw': (157, 86, 79)}, button={'cn': (704, 381, 866, 425), 'en': (704, 381, 866, 425), 'jp': (704, 381, 866, 425), 'tw': (704, 381, 866, 425)}, file={'cn': './assets/cn/smallevent/SEVEND_TASK_GET1_20250320.png', 'en': './assets/cn/smallevent/SEVEND_TASK_GET1_20250320.png', 'jp': './assets/cn/smallevent/SEVEND_TASK_GET1_20250320.png', 'tw': './assets/cn/smallevent/SEVEND_TASK_GET1_20250320.png'})
|
||||
|
||||
@ -275,9 +275,8 @@ class SmallEvent(UI):
|
||||
if self.appear_then_click(GET_ITEMS_1,offset=(10, 10), interval=1):
|
||||
continue
|
||||
|
||||
def goto_sevenD_page(self,page_area,orc_api):
|
||||
def goto_sevenD_page(self,page_area,orc_api,button_text,exclude_text,skip_first_screenshot=True):
|
||||
self.ui_ensure(page_main)
|
||||
skip_first_screenshot = True
|
||||
CLICK_COUNT = 0
|
||||
NOCLICK_COUNT = 0
|
||||
NOCLICK_TIMER =Timer(3,count=10)
|
||||
@ -354,6 +353,54 @@ class SmallEvent(UI):
|
||||
break
|
||||
return False,None
|
||||
|
||||
def goto_sevenD_page_v2(self,page_area,orc_api,button_text,exclude_text,skip_first_screenshot=True):#for the event prepare page
|
||||
self.ui_ensure(page_main)
|
||||
NOCLICK_COUNT = 0
|
||||
NOCLICK_TIMER =Timer(3,count=10)
|
||||
while 1:
|
||||
if skip_first_screenshot:
|
||||
skip_first_screenshot = False
|
||||
else:
|
||||
self.device.screenshot()
|
||||
if self.appear_then_click(EVENT_PREPARE_ENTRY, offset=(5, 5), interval=3):
|
||||
continue
|
||||
|
||||
if self.appear(EVENT_PREPARE_PAGE, offset=(5,5)):
|
||||
all_words = self.recognize_activity_page(self.device.image,page_area,orc_api)
|
||||
# all_words = None
|
||||
if not all_words:
|
||||
event_pre_button_location = self.locate_button_by_text(self.device.image, button_text, exclude_text, page_area,interval=5,orc_api=orc_api)
|
||||
if isinstance(event_pre_button_location, dict):
|
||||
event_pre_button = self.location_2_button(event_pre_button_location, button_text, base_loc=page_area)
|
||||
self.device.click(event_pre_button)
|
||||
self.device.sleep(0.3)
|
||||
continue
|
||||
elif event_pre_button_location == "cooldowning":
|
||||
# 冷却中,等待
|
||||
continue
|
||||
else:
|
||||
# 未找到按钮,跳出循环或进行其他处理
|
||||
logger.warning(f"未找到{button_text}按钮")
|
||||
break
|
||||
else:
|
||||
go_count = self.recognize_activiy_status(all_words)
|
||||
if go_count >= 2:
|
||||
logger.warning("七天小任务当前没有可领取项")
|
||||
return "no_get",all_words
|
||||
return True,all_words
|
||||
|
||||
if self.story_skip(): #the prepare page may appear story
|
||||
continue
|
||||
|
||||
NOCLICK_TIMER.start()
|
||||
if NOCLICK_TIMER.reached():
|
||||
NOCLICK_COUNT += 1
|
||||
NOCLICK_TIMER.reset()
|
||||
if NOCLICK_COUNT >= 5:
|
||||
logger.info("GOTO_SEVEND_TASK No click TIMER REACHED")
|
||||
break
|
||||
return False,None
|
||||
|
||||
def ocr_api_init(self):
|
||||
if self.config.Smallevent_OcrModel == "baidu":
|
||||
if self.config.DropRecord_BaiduAPIKey != "null" and self.config.DropRecord_BaiduAPISecret != "null":
|
||||
@ -372,48 +419,34 @@ class SmallEvent(UI):
|
||||
else:
|
||||
logger.warning("未配置OcrModel")
|
||||
return False
|
||||
|
||||
|
||||
def sevenD_harvest(self, page_area, ORC_API, goto_sevenD_page_func, button_text=None,exclude_text=None):
|
||||
goPage_result = goto_sevenD_page_func(page_area, ORC_API, button_text,exclude_text)
|
||||
if goPage_result[0] == "no_get":
|
||||
self.resolve_task(goPage_result[1])
|
||||
elif goPage_result[0] is True:
|
||||
self.get_reward(page_area, ORC_API)
|
||||
if self.resolve_task(goPage_result[1]):
|
||||
logger.info("resolved the task, skip the update immediately")
|
||||
# return True
|
||||
if self.config.Smallevent_UpdateInfoImmediately == True:
|
||||
self.device.sleep(1)
|
||||
self.device.screenshot()
|
||||
update_words = self.recognize_activity_page(self.device.image,page_area ,ORC_API)
|
||||
if update_words:
|
||||
self.recognize_activiy_status(update_words)
|
||||
else:
|
||||
logger.warning("未成功进入七天小任务页面")
|
||||
|
||||
def run(self):
|
||||
# # LogRes(self.config).SevenDayStatus += 11
|
||||
# # logger.hr(LogRes(self.config).SevenDayStatus)
|
||||
# # logger.hr(self.config.cross_get('Dashboard.SevenDayStatus.Value'))
|
||||
# if self.config.Smallevent_SevenDayTask == True:
|
||||
# task_icon = f"SEVEND_TASK_{self.SEVEND_DATE}"
|
||||
# task_get1 = f"SEVEND_TASK_GET1_{self.SEVEND_DATE}"
|
||||
# task_get2 = f"SEVEND_TASK_GET2_{self.SEVEND_DATE}"
|
||||
# task_finish = f"SEVEND_TASK_FINISH_{self.SEVEND_DATE}"
|
||||
# # task_unget1 = f"SEVEND_TASK_UNGET1_{self.SEVEND_DATE}"
|
||||
# # task_unget2 = f"SEVEND_TASK_UNGET2_{self.SEVEND_DATE}"
|
||||
# self.SevenDayTask(
|
||||
# SEVEND_TASK_ICON_MAIN=globals()[task_icon],
|
||||
# SEVEND_TASK_GET1=globals()[task_get1],
|
||||
# SEVEND_TASK_GET2=globals()[task_get2],
|
||||
# SEVEND_TASK_FINISH=globals()[task_finish],
|
||||
# # SEVEND_TASK_UNGET1=globals()[task_unget1],
|
||||
# # SEVEND_TASK_UNGET2=globals()[task_unget2]
|
||||
# )
|
||||
# else:LogRes(self.config).SevenDayStatus = 0
|
||||
if datetime.now() < datetime(2025, 9, 25, 12, 0, 0):#eventSet
|
||||
ORC_API = self.ocr_api_init()
|
||||
if ORC_API:
|
||||
page_area = (281, 79, 1254, 560)
|
||||
# page_area =(0,0,1280,720)
|
||||
goPage_result = self.goto_sevenD_page(page_area, ORC_API)
|
||||
if goPage_result[0] == "no_get":
|
||||
pass
|
||||
elif goPage_result[0] is True:
|
||||
self.get_reward(page_area, ORC_API)
|
||||
if self.resolve_task(goPage_result[1]):
|
||||
logger.info("resolved the task, skip the update immediately")
|
||||
# return True
|
||||
if self.config.Smallevent_UpdateInfoImmediately == True:
|
||||
self.device.sleep(1)
|
||||
self.device.screenshot()
|
||||
update_words = self.recognize_activity_page(self.device.image,page_area ,ORC_API)
|
||||
if update_words:
|
||||
self.recognize_activiy_status(update_words)
|
||||
else:
|
||||
logger.warning("未成功进入七天小任务页面")
|
||||
self.sevenD_harvest(page_area,ORC_API,goto_sevenD_page_func=self.goto_sevenD_page)
|
||||
page_area = (0, 0, 1280, 720)
|
||||
self.sevenD_harvest(page_area,ORC_API,goto_sevenD_page_func=self.goto_sevenD_page_v2,
|
||||
button_text="的邀约",exclude_text=["无"])#eventSet
|
||||
else:
|
||||
logger.warning("Ocr API 初始化失败")
|
||||
else:
|
||||
|
||||
@ -38,6 +38,7 @@ DORM_FEED_CANCEL = Button(area={'cn': (494, 510, 547, 536), 'en': (445, 491, 594
|
||||
DORM_GOTO_MAIN = Button(area={'cn': (40, 30, 62, 60), 'en': (40, 30, 62, 60), 'jp': (40, 30, 62, 60), 'tw': (40, 30, 62, 60)}, color={'cn': (255, 226, 133), 'en': (255, 226, 133), 'jp': (255, 226, 133), 'tw': (255, 226, 133)}, button={'cn': (40, 30, 62, 60), 'en': (40, 30, 62, 60), 'jp': (40, 30, 62, 60), 'tw': (40, 30, 62, 60)}, file={'cn': './assets/cn/ui/DORM_GOTO_MAIN.png', 'en': './assets/en/ui/DORM_GOTO_MAIN.png', 'jp': './assets/jp/ui/DORM_GOTO_MAIN.png', 'tw': './assets/tw/ui/DORM_GOTO_MAIN.png'})
|
||||
DORM_INFO = Button(area={'cn': (1071, 609, 1142, 640), 'en': (1072, 620, 1142, 632), 'jp': (1073, 615, 1140, 644), 'tw': (1070, 609, 1143, 642)}, color={'cn': (155, 182, 220), 'en': (146, 177, 214), 'jp': (157, 185, 222), 'tw': (149, 180, 223)}, button={'cn': (1071, 609, 1142, 640), 'en': (1072, 620, 1142, 632), 'jp': (1073, 615, 1140, 644), 'tw': (1070, 609, 1143, 642)}, file={'cn': './assets/cn/ui/DORM_INFO.png', 'en': './assets/en/ui/DORM_INFO.png', 'jp': './assets/jp/ui/DORM_INFO.png', 'tw': './assets/tw/ui/DORM_INFO.png'})
|
||||
DORM_TROPHY_CONFIRM = Button(area={'cn': (590, 473, 690, 508), 'en': (589, 470, 689, 510), 'jp': (588, 472, 689, 509), 'tw': (590, 473, 690, 508)}, color={'cn': (245, 167, 88), 'en': (233, 161, 87), 'jp': (243, 166, 89), 'tw': (245, 167, 88)}, button={'cn': (590, 473, 690, 508), 'en': (589, 470, 689, 510), 'jp': (588, 472, 689, 509), 'tw': (590, 473, 690, 508)}, file={'cn': './assets/cn/ui/DORM_TROPHY_CONFIRM.png', 'en': './assets/en/ui/DORM_TROPHY_CONFIRM.png', 'jp': './assets/jp/ui/DORM_TROPHY_CONFIRM.png', 'tw': './assets/tw/ui/DORM_TROPHY_CONFIRM.png'})
|
||||
EVENTPRE_GOTO_MAIN = Button(area={'cn': (1218, 17, 1261, 60), 'en': (1218, 17, 1261, 60), 'jp': (1218, 17, 1261, 60), 'tw': (1218, 17, 1261, 60)}, color={'cn': (215, 215, 215), 'en': (215, 215, 215), 'jp': (215, 215, 215), 'tw': (215, 215, 215)}, button={'cn': (1218, 17, 1261, 60), 'en': (1218, 17, 1261, 60), 'jp': (1218, 17, 1261, 60), 'tw': (1218, 17, 1261, 60)}, file={'cn': './assets/cn/ui/EVENTPRE_GOTO_MAIN.png', 'en': './assets/cn/ui/EVENTPRE_GOTO_MAIN.png', 'jp': './assets/cn/ui/EVENTPRE_GOTO_MAIN.png', 'tw': './assets/cn/ui/EVENTPRE_GOTO_MAIN.png'})
|
||||
EVENT_CHECK = Button(area={'cn': (123, 63, 206, 109), 'en': (123, 63, 206, 109), 'jp': (123, 63, 206, 109), 'tw': (123, 63, 206, 109)}, color={'cn': (88, 104, 138), 'en': (88, 104, 138), 'jp': (88, 104, 138), 'tw': (88, 104, 138)}, button={'cn': (123, 63, 206, 109), 'en': (123, 63, 206, 109), 'jp': (123, 63, 206, 109), 'tw': (123, 63, 206, 109)}, file={'cn': './assets/cn/ui/EVENT_CHECK.png', 'en': './assets/en/ui/EVENT_CHECK.png', 'jp': './assets/jp/ui/EVENT_CHECK.png', 'tw': './assets/tw/ui/EVENT_CHECK.png'})
|
||||
EVENT_LIST_CHECK = Button(area={'cn': (123, 15, 232, 39), 'en': (123, 15, 223, 39), 'jp': (122, 14, 233, 39), 'tw': (123, 15, 232, 39)}, color={'cn': (151, 166, 206), 'en': (109, 122, 163), 'jp': (86, 96, 131), 'tw': (166, 181, 216)}, button={'cn': (123, 15, 232, 39), 'en': (123, 15, 223, 39), 'jp': (122, 14, 233, 39), 'tw': (123, 15, 232, 39)}, file={'cn': './assets/cn/ui/EVENT_LIST_CHECK.png', 'en': './assets/en/ui/EVENT_LIST_CHECK.png', 'jp': './assets/jp/ui/EVENT_LIST_CHECK.png', 'tw': './assets/tw/ui/EVENT_LIST_CHECK.png'})
|
||||
EXERCISE_CHECK = Button(area={'cn': (1065, 340, 1204, 382), 'en': (1078, 343, 1190, 382), 'jp': (1063, 339, 1205, 382), 'tw': (1066, 342, 1203, 381)}, color={'cn': (129, 166, 220), 'en': (138, 174, 225), 'jp': (130, 165, 219), 'tw': (138, 172, 222)}, button={'cn': (1065, 340, 1204, 382), 'en': (1078, 343, 1190, 382), 'jp': (1063, 339, 1205, 382), 'tw': (1066, 342, 1203, 381)}, file={'cn': './assets/cn/ui/EXERCISE_CHECK.png', 'en': './assets/en/ui/EXERCISE_CHECK.png', 'jp': './assets/jp/ui/EXERCISE_CHECK.png', 'tw': './assets/tw/ui/EXERCISE_CHECK.png'})
|
||||
|
||||
@ -8,7 +8,7 @@ from module.retire.assets import DOCK_CHECK,IN_RETIREMENT_CHECK
|
||||
from module.ui.assets import *
|
||||
from module.ui_white.assets import *
|
||||
from module.ship_ir.assets import HANDBOOK_CHECK,MAIN_GOTO_COLLECTION,MAIN_GOTO_COLLECTION_WHITE,COLLECTION_CHECK,COLLECTION_GOTO_HANDBOOK
|
||||
|
||||
from module.smallevent.assets import EVENT_PREPARE_PAGE,EVENT_PREPARE_ENTRY
|
||||
class Page:
|
||||
# Key: str, page name like "page_main"
|
||||
# Value: Page, page instance
|
||||
@ -357,3 +357,7 @@ page_rpg_city.link(button=RPG_HOME, destination=page_main)
|
||||
page_hospital = Page(HOSIPITAL_CHECK)
|
||||
page_hospital.link(button=GOTO_MAIN_WHITE, destination=page_main)
|
||||
page_campaign_menu.link(button=CAMPAIGN_MENU_GOTO_EVENT, destination=page_hospital)
|
||||
|
||||
#event prepare page
|
||||
page_event_prepare = Page(EVENT_PREPARE_PAGE)
|
||||
page_event_prepare.link(button=EVENTPRE_GOTO_MAIN, destination=page_main)
|
||||
Loading…
x
Reference in New Issue
Block a user