mirror of
https://gitee.com/sui-feng-cb/AzurLaneAutoScript1
synced 2026-03-23 10:58:01 +08:00
fix: SHOP_BUY_CONFIRM_AMOUNT behavior on slower devices (#3998)
* fix: SHOP_BUY_CONFIRM_AMOUNT behavior on slower devices * fix: set interval and reset flag
This commit is contained in:
@@ -22,6 +22,7 @@ class OSShop(PortShop, AkashiShop):
|
|||||||
in: PORT_SUPPLY_CHECK
|
in: PORT_SUPPLY_CHECK
|
||||||
"""
|
"""
|
||||||
success = False
|
success = False
|
||||||
|
amount_finish = False
|
||||||
self.interval_clear(PORT_SUPPLY_CHECK)
|
self.interval_clear(PORT_SUPPLY_CHECK)
|
||||||
self.interval_clear(SHOP_BUY_CONFIRM)
|
self.interval_clear(SHOP_BUY_CONFIRM)
|
||||||
self.interval_clear(SHOP_BUY_CONFIRM_AMOUNT)
|
self.interval_clear(SHOP_BUY_CONFIRM_AMOUNT)
|
||||||
@@ -33,22 +34,25 @@ class OSShop(PortShop, AkashiShop):
|
|||||||
else:
|
else:
|
||||||
self.device.screenshot()
|
self.device.screenshot()
|
||||||
|
|
||||||
if self.handle_map_get_items(interval=1):
|
if self.handle_map_get_items(interval=3):
|
||||||
self.interval_reset(PORT_SUPPLY_CHECK)
|
self.interval_reset(PORT_SUPPLY_CHECK)
|
||||||
success = True
|
success = True
|
||||||
continue
|
continue
|
||||||
|
|
||||||
if self.appear_then_click(SHOP_BUY_CONFIRM, offset=(20, 20), interval=1):
|
if self.appear_then_click(SHOP_BUY_CONFIRM, offset=(20, 20), interval=3):
|
||||||
self.interval_reset(SHOP_BUY_CONFIRM)
|
self.interval_reset(SHOP_BUY_CONFIRM)
|
||||||
continue
|
continue
|
||||||
|
|
||||||
if self.appear_then_click(OS_SHOP_BUY_CONFIRM, offset=(20, 20), interval=1):
|
if self.appear_then_click(OS_SHOP_BUY_CONFIRM, offset=(20, 20), interval=3):
|
||||||
self.interval_reset(OS_SHOP_BUY_CONFIRM)
|
self.interval_reset(OS_SHOP_BUY_CONFIRM)
|
||||||
continue
|
continue
|
||||||
|
|
||||||
if self.appear(SHOP_BUY_CONFIRM_AMOUNT, offset=(20, 20), interval=1):
|
if not amount_finish and self.appear(SHOP_BUY_CONFIRM_AMOUNT, offset=(20, 20)):
|
||||||
self.shop_buy_amount_handler(button)
|
self.shop_buy_amount_handler(button)
|
||||||
self.device.click(SHOP_BUY_CONFIRM_AMOUNT)
|
amount_finish = True
|
||||||
|
continue
|
||||||
|
|
||||||
|
if amount_finish and self.appear_then_click(SHOP_BUY_CONFIRM_AMOUNT, offset=(20, 20), interval=3):
|
||||||
self.interval_reset(SHOP_BUY_CONFIRM_AMOUNT)
|
self.interval_reset(SHOP_BUY_CONFIRM_AMOUNT)
|
||||||
continue
|
continue
|
||||||
|
|
||||||
@@ -56,6 +60,7 @@ class OSShop(PortShop, AkashiShop):
|
|||||||
continue
|
continue
|
||||||
|
|
||||||
if not success and self.appear(PORT_SUPPLY_CHECK, offset=(20, 20), interval=5):
|
if not success and self.appear(PORT_SUPPLY_CHECK, offset=(20, 20), interval=5):
|
||||||
|
amount_finish = False
|
||||||
self.device.click(button)
|
self.device.click(button)
|
||||||
continue
|
continue
|
||||||
|
|
||||||
@@ -86,7 +91,7 @@ class OSShop(PortShop, AkashiShop):
|
|||||||
logger.warning('Too many items to buy, stopped')
|
logger.warning('Too many items to buy, stopped')
|
||||||
return count
|
return count
|
||||||
|
|
||||||
def shop_buy_amount_handler(self, item):
|
def shop_buy_amount_handler(self, item, skip_first_screenshot=True):
|
||||||
"""
|
"""
|
||||||
Handler item amount to buy.
|
Handler item amount to buy.
|
||||||
|
|
||||||
@@ -137,17 +142,18 @@ class OSShop(PortShop, AkashiShop):
|
|||||||
else:
|
else:
|
||||||
limit = 10
|
limit = 10
|
||||||
|
|
||||||
if set_to_max:
|
self.interval_clear(AMOUNT_MAX)
|
||||||
while True:
|
while set_to_max:
|
||||||
self.appear_then_click(AMOUNT_MAX, offset=(50, 50))
|
if skip_first_screenshot:
|
||||||
self.device.sleep((0.3, 0.5))
|
skip_first_screenshot = False
|
||||||
|
else:
|
||||||
self.device.screenshot()
|
self.device.screenshot()
|
||||||
amount = OCR_SHOP_AMOUNT.ocr(self.device.image)
|
|
||||||
if amount > 1:
|
if self.appear_then_click(AMOUNT_MAX, offset=(50, 50), interval=3):
|
||||||
break
|
continue
|
||||||
if retry.reached():
|
|
||||||
raise GameStuckError('Amount OCR failed.')
|
if OCR_SHOP_AMOUNT.ocr(self.device.image) > 1:
|
||||||
retry.reset()
|
break
|
||||||
|
|
||||||
self.ui_ensure_index(limit, letter=OCR_SHOP_AMOUNT, prev_button=AMOUNT_MINUS, next_button=AMOUNT_PLUS,
|
self.ui_ensure_index(limit, letter=OCR_SHOP_AMOUNT, prev_button=AMOUNT_MINUS, next_button=AMOUNT_PLUS,
|
||||||
skip_first_screenshot=True)
|
skip_first_screenshot=True)
|
||||||
|
|||||||
Reference in New Issue
Block a user