1
0
mirror of https://github.com/sui-feng-cb/AzurLaneAutoScript1.git synced 2026-08-07 17:49:05 +08:00

Merge pull request #5716 from LmeSzinc/dev

Bug fix
This commit is contained in:
LmeSzinc
2026-06-11 23:49:33 +08:00
committed by GitHub
9 changed files with 37 additions and 14 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.2 KiB

After

Width:  |  Height:  |  Size: 4.0 KiB

View File

@@ -58,6 +58,7 @@ class CampaignBase(CampaignBase_):
Fixed number of scrolls until give up, may need to Fixed number of scrolls until give up, may need to
increase as more war archives campaigns are added increase as more war archives campaigns are added
""" """
loading_checked = False
for _ in range(20): for _ in range(20):
if skip_first_screenshot: if skip_first_screenshot:
skip_first_screenshot = False skip_first_screenshot = False
@@ -71,14 +72,25 @@ class CampaignBase(CampaignBase_):
# before starting next search attempt # before starting next search attempt
while not self.appear(WAR_ARCHIVES_CHECK): while not self.appear(WAR_ARCHIVES_CHECK):
self.ui_ensure(destination=page_archives) self.ui_ensure(destination=page_archives)
loading_checked = False
while not self._archives_loading_complete(): # check entrance first, because game can remember last scrolling position
self.device.screenshot() # if you stays at page_campaign_menu
# and bypass _archives_loading_complete if reached entrance
entrance = self._get_archives_entrance(name) entrance = self._get_archives_entrance(name)
if entrance is not None: if entrance is not None:
return entrance return entrance
if not loading_checked:
# _archives_loading_complete might take 1~2s if archive list is not at top
while not self._archives_loading_complete():
self.device.screenshot()
loading_checked = True
entrance = self._get_archives_entrance(name)
if entrance is not None:
return entrance
if WAR_ARCHIVES_SCROLL.appear(main=self): if WAR_ARCHIVES_SCROLL.appear(main=self):
if WAR_ARCHIVES_SCROLL.at_bottom(main=self): if WAR_ARCHIVES_SCROLL.at_bottom(main=self):
WAR_ARCHIVES_SCROLL.set_top(main=self) WAR_ARCHIVES_SCROLL.set_top(main=self)

View File

@@ -84,6 +84,7 @@
"cn_channel-2", "cn_channel-2",
"cn_channel-3", "cn_channel-3",
"cn_channel-4", "cn_channel-4",
"cn_channel-5",
"en-0", "en-0",
"en-1", "en-1",
"en-2", "en-2",

View File

@@ -20,7 +20,7 @@ class GeneratedConfig:
# Group `Emulator` # Group `Emulator`
Emulator_Serial = 'auto' Emulator_Serial = 'auto'
Emulator_PackageName = 'auto' # auto, com.bilibili.azurlane, com.YoStarEN.AzurLane, com.YoStarJP.AzurLane, com.hkmanjuu.azurlane.gp, com.bilibili.blhx.huawei, com.bilibili.blhx.honor, com.bilibili.blhx.mi, com.tencent.tmgp.bilibili.blhx, com.bilibili.blhx.baidu, com.bilibili.blhx.qihoo, com.bilibili.blhx.nearme.gamecenter, com.bilibili.blhx.vivo, com.bilibili.blhx.mz, com.bilibili.blhx.dl, com.bilibili.blhx.lenovo, com.bilibili.blhx.uc, com.bilibili.blhx.mzw, com.yiwu.blhx.yx15, com.bilibili.blhx.m4399, com.bilibili.blhx.bilibiliMove, com.hkmanjuu.azurlane.gp.mc Emulator_PackageName = 'auto' # auto, com.bilibili.azurlane, com.YoStarEN.AzurLane, com.YoStarJP.AzurLane, com.hkmanjuu.azurlane.gp, com.bilibili.blhx.huawei, com.bilibili.blhx.honor, com.bilibili.blhx.mi, com.tencent.tmgp.bilibili.blhx, com.bilibili.blhx.baidu, com.bilibili.blhx.qihoo, com.bilibili.blhx.nearme.gamecenter, com.bilibili.blhx.vivo, com.bilibili.blhx.mz, com.bilibili.blhx.dl, com.bilibili.blhx.lenovo, com.bilibili.blhx.uc, com.bilibili.blhx.mzw, com.yiwu.blhx.yx15, com.bilibili.blhx.m4399, com.bilibili.blhx.bilibiliMove, com.hkmanjuu.azurlane.gp.mc
Emulator_ServerName = 'disabled' # disabled, cn_android-0, cn_android-1, cn_android-2, cn_android-3, cn_android-4, cn_android-5, cn_android-6, cn_android-7, cn_android-8, cn_android-9, cn_android-10, cn_android-11, cn_android-12, cn_android-13, cn_android-14, cn_android-15, cn_android-16, cn_android-17, cn_android-18, cn_android-19, cn_android-20, cn_android-21, cn_android-22, cn_android-23, cn_android-24, cn_android-25, cn_android-26, cn_android-27, cn_android-28, cn_ios-0, cn_ios-1, cn_ios-2, cn_ios-3, cn_ios-4, cn_ios-5, cn_ios-6, cn_ios-7, cn_ios-8, cn_ios-9, cn_ios-10, cn_channel-0, cn_channel-1, cn_channel-2, cn_channel-3, cn_channel-4, en-0, en-1, en-2, en-3, en-4, en-5, jp-0, jp-1, jp-2, jp-3, jp-4, jp-5, jp-6, jp-7, jp-8, jp-9, jp-10, jp-11, jp-12, jp-13, jp-14, jp-15, jp-16, jp-17 Emulator_ServerName = 'disabled' # disabled, cn_android-0, cn_android-1, cn_android-2, cn_android-3, cn_android-4, cn_android-5, cn_android-6, cn_android-7, cn_android-8, cn_android-9, cn_android-10, cn_android-11, cn_android-12, cn_android-13, cn_android-14, cn_android-15, cn_android-16, cn_android-17, cn_android-18, cn_android-19, cn_android-20, cn_android-21, cn_android-22, cn_android-23, cn_android-24, cn_android-25, cn_android-26, cn_android-27, cn_android-28, cn_ios-0, cn_ios-1, cn_ios-2, cn_ios-3, cn_ios-4, cn_ios-5, cn_ios-6, cn_ios-7, cn_ios-8, cn_ios-9, cn_ios-10, cn_channel-0, cn_channel-1, cn_channel-2, cn_channel-3, cn_channel-4, cn_channel-5, en-0, en-1, en-2, en-3, en-4, en-5, jp-0, jp-1, jp-2, jp-3, jp-4, jp-5, jp-6, jp-7, jp-8, jp-9, jp-10, jp-11, jp-12, jp-13, jp-14, jp-15, jp-16, jp-17
Emulator_ScreenshotMethod = 'auto' # auto, ADB, ADB_nc, uiautomator2, aScreenCap, aScreenCap_nc, DroidCast, DroidCast_raw, nemu_ipc, ldopengl Emulator_ScreenshotMethod = 'auto' # auto, ADB, ADB_nc, uiautomator2, aScreenCap, aScreenCap_nc, DroidCast, DroidCast_raw, nemu_ipc, ldopengl
Emulator_ControlMethod = 'MaaTouch' # ADB, uiautomator2, minitouch, Hermit, MaaTouch Emulator_ControlMethod = 'MaaTouch' # ADB, uiautomator2, minitouch, Hermit, MaaTouch
Emulator_ScreenshotDedithering = False Emulator_ScreenshotDedithering = False

View File

@@ -395,6 +395,7 @@
"cn_channel-2": "[国服] 十字军行动", "cn_channel-2": "[国服] 十字军行动",
"cn_channel-3": "[国服] 龙骑兵行动", "cn_channel-3": "[国服] 龙骑兵行动",
"cn_channel-4": "[国服] 冥王星行动", "cn_channel-4": "[国服] 冥王星行动",
"cn_channel-5": "[国服] 群岛计划",
"en-0": "[EN] Avrora", "en-0": "[EN] Avrora",
"en-1": "[EN] Lexington", "en-1": "[EN] Lexington",
"en-2": "[EN] Sandy", "en-2": "[EN] Sandy",

View File

@@ -395,6 +395,7 @@
"cn_channel-2": "[国服] 十字军行动", "cn_channel-2": "[国服] 十字军行动",
"cn_channel-3": "[国服] 龙骑兵行动", "cn_channel-3": "[国服] 龙骑兵行动",
"cn_channel-4": "[国服] 冥王星行动", "cn_channel-4": "[国服] 冥王星行动",
"cn_channel-5": "[国服] 群岛计划",
"en-0": "[EN] Avrora", "en-0": "[EN] Avrora",
"en-1": "[EN] Lexington", "en-1": "[EN] Lexington",
"en-2": "[EN] Sandy", "en-2": "[EN] Sandy",

View File

@@ -395,6 +395,7 @@
"cn_channel-2": "[国服] 十字军行动", "cn_channel-2": "[国服] 十字军行动",
"cn_channel-3": "[国服] 龙骑兵行动", "cn_channel-3": "[国服] 龙骑兵行动",
"cn_channel-4": "[国服] 冥王星行动", "cn_channel-4": "[国服] 冥王星行动",
"cn_channel-5": "[国服] 群岛计划",
"en-0": "[EN] Avrora", "en-0": "[EN] Avrora",
"en-1": "[EN] Lexington", "en-1": "[EN] Lexington",
"en-2": "[EN] Sandy", "en-2": "[EN] Sandy",

View File

@@ -395,6 +395,7 @@
"cn_channel-2": "[国服] 十字军行动", "cn_channel-2": "[国服] 十字军行动",
"cn_channel-3": "[国服] 龙骑兵行动", "cn_channel-3": "[国服] 龙骑兵行动",
"cn_channel-4": "[国服] 冥王星行动", "cn_channel-4": "[国服] 冥王星行动",
"cn_channel-5": "[国服] 群岛计划",
"en-0": "[EN] Avrora", "en-0": "[EN] Avrora",
"en-1": "[EN] Lexington", "en-1": "[EN] Lexington",
"en-2": "[EN] Sandy", "en-2": "[EN] Sandy",

View File

@@ -203,24 +203,30 @@ class InfoHandler(ModuleBase):
return False return False
if self.appear(USE_DATA_KEY, offset=(20, 20)): if self.appear(USE_DATA_KEY, offset=(20, 20)):
skip_first_screenshot = True # enable USE_DATA_KEY_NOTIFIED
while 1: for _ in self.loop():
if skip_first_screenshot:
skip_first_screenshot = False
else:
self.device.screenshot()
enabled = self.image_color_count( enabled = self.image_color_count(
USE_DATA_KEY_NOTIFIED, color=(140, 207, 66), threshold=180, count=10) USE_DATA_KEY_NOTIFIED, color=(140, 207, 66), threshold=180, count=10)
if enabled: if enabled:
break break
if self.appear(USE_DATA_KEY, offset=(20, 20), interval=5): if self.appear(USE_DATA_KEY, offset=(20, 20), interval=5):
self.device.click(USE_DATA_KEY_NOTIFIED) self.device.click(USE_DATA_KEY_NOTIFIED)
continue continue
self.config.USE_DATA_KEY = False # Reset on success as task can be stopped before can be recovered self.config.USE_DATA_KEY = False # Reset on success as task can be stopped before can be recovered
return self.handle_popup_confirm('USE_DATA_KEY')
# click confirm
# POPUP_CONFIRM from data key page has minor differece from the standard one
# so we just bind clicking it
self.interval_clear(USE_DATA_KEY, interval=5)
for _ in self.loop():
if not self.appear(USE_DATA_KEY, offset=(20, 20)):
break
if self.appear(USE_DATA_KEY, offset=(20, 20), interval=5):
self.device.click(POPUP_CONFIRM)
continue
return True
return False return False
@@ -553,4 +559,4 @@ class InfoHandler(ModuleBase):
self.wait_until_manjuu_disappear() self.wait_until_manjuu_disappear()
return True return True
else: else:
return False return False