1
0
mirror of https://gitee.com/sui-feng-cb/AzurLaneAutoScript1 synced 2026-03-09 13:59:02 +08:00
This commit is contained in:
GH Action - Upstream Sync 2025-02-23 14:17:30 +00:00
commit 42f9b79229
15 changed files with 32 additions and 22 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

View File

@ -9,7 +9,7 @@ jellyfish==0.11.2
lz4 lz4
mxnet==1.6.0 mxnet==1.6.0
numpy numpy
onepush==1.3.0 onepush==1.4.0
pillow pillow
prettytable==2.2.1 prettytable==2.2.1
psutil==5.9.3 psutil==5.9.3

View File

@ -27,7 +27,7 @@ prettytable==2.2.1
anyio==1.3.1 anyio==1.3.1
# Pushing # Pushing
onepush==1.3.0 onepush==1.4.0
pycryptodome==3.9.9 pycryptodome==3.9.9
pypresence==4.2.1 pypresence==4.2.1

View File

@ -27,7 +27,7 @@ prettytable==2.2.1
anyio==1.3.1 anyio==1.3.1
# Pushing # Pushing
onepush==1.3.0 onepush==1.4.0
pycryptodome==3.9.9 pycryptodome==3.9.9
pypresence==4.2.1 pypresence==4.2.1

View File

@ -497,6 +497,22 @@ def location2node(location):
return col2name(x) + str(y) return col2name(x) + str(y)
def xywh2xyxy(area):
"""
Convert (x, y, width, height) to (x1, y1, x2, y2)
"""
x, y, w, h = area
return x, y, x + w, y + h
def xyxy2xywh(area):
"""
Convert (x1, y1, x2, y2) to (x, y, width, height)
"""
x1, y1, x2, y2 = area
return min(x1, x2), min(y1, y2), abs(x2 - x1), abs(y2 - y1)
def load_image(file, area=None): def load_image(file, area=None):
""" """
Load an image like pillow and drop alpha channel. Load an image like pillow and drop alpha channel.

View File

@ -1,6 +1,7 @@
import ctypes import ctypes
import os import os
import subprocess import subprocess
import time
import typing as t import typing as t
from dataclasses import dataclass from dataclasses import dataclass
from functools import wraps from functools import wraps
@ -333,13 +334,3 @@ class LDOpenGL(Platform):
image = cv2.flip(image, 0) image = cv2.flip(image, 0)
cv2.cvtColor(image, cv2.COLOR_BGR2RGB, dst=image) cv2.cvtColor(image, cv2.COLOR_BGR2RGB, dst=image)
return image return image
if __name__ == '__main__':
ld = LDOpenGLImpl('E:/ProgramFiles/LDPlayer9', instance_id=1)
for _ in range(5):
import time
start = time.time()
ld.screenshot()
print(time.time() - start)

View File

@ -11,6 +11,6 @@ META_REWARD_NOTICE = Button(area={'cn': (1070, 508, 1075, 523), 'en': (1070, 508
REWARD_CHECK = Button(area={'cn': (31, 486, 64, 543), 'en': (35, 487, 62, 541), 'jp': (31, 486, 64, 543), 'tw': (31, 486, 64, 543)}, color={'cn': (199, 164, 165), 'en': (203, 169, 170), 'jp': (206, 172, 174), 'tw': (199, 164, 165)}, button={'cn': (31, 486, 64, 543), 'en': (35, 487, 62, 541), 'jp': (31, 486, 64, 543), 'tw': (31, 486, 64, 543)}, file={'cn': './assets/cn/meta_reward/REWARD_CHECK.png', 'en': './assets/en/meta_reward/REWARD_CHECK.png', 'jp': './assets/jp/meta_reward/REWARD_CHECK.png', 'tw': './assets/cn/meta_reward/REWARD_CHECK.png'}) REWARD_CHECK = Button(area={'cn': (31, 486, 64, 543), 'en': (35, 487, 62, 541), 'jp': (31, 486, 64, 543), 'tw': (31, 486, 64, 543)}, color={'cn': (199, 164, 165), 'en': (203, 169, 170), 'jp': (206, 172, 174), 'tw': (199, 164, 165)}, button={'cn': (31, 486, 64, 543), 'en': (35, 487, 62, 541), 'jp': (31, 486, 64, 543), 'tw': (31, 486, 64, 543)}, file={'cn': './assets/cn/meta_reward/REWARD_CHECK.png', 'en': './assets/en/meta_reward/REWARD_CHECK.png', 'jp': './assets/jp/meta_reward/REWARD_CHECK.png', 'tw': './assets/cn/meta_reward/REWARD_CHECK.png'})
REWARD_ENTER = Button(area={'cn': (1109, 535, 1187, 554), 'en': (1106, 532, 1199, 544), 'jp': (1108, 535, 1188, 554), 'tw': (1109, 535, 1187, 554)}, color={'cn': (199, 195, 201), 'en': (213, 212, 217), 'jp': (215, 207, 214), 'tw': (199, 195, 201)}, button={'cn': (1109, 535, 1187, 554), 'en': (1106, 532, 1199, 544), 'jp': (1108, 535, 1188, 554), 'tw': (1109, 535, 1187, 554)}, file={'cn': './assets/cn/meta_reward/REWARD_ENTER.png', 'en': './assets/en/meta_reward/REWARD_ENTER.png', 'jp': './assets/jp/meta_reward/REWARD_ENTER.png', 'tw': './assets/cn/meta_reward/REWARD_ENTER.png'}) REWARD_ENTER = Button(area={'cn': (1109, 535, 1187, 554), 'en': (1106, 532, 1199, 544), 'jp': (1108, 535, 1188, 554), 'tw': (1109, 535, 1187, 554)}, color={'cn': (199, 195, 201), 'en': (213, 212, 217), 'jp': (215, 207, 214), 'tw': (199, 195, 201)}, button={'cn': (1109, 535, 1187, 554), 'en': (1106, 532, 1199, 544), 'jp': (1108, 535, 1188, 554), 'tw': (1109, 535, 1187, 554)}, file={'cn': './assets/cn/meta_reward/REWARD_ENTER.png', 'en': './assets/en/meta_reward/REWARD_ENTER.png', 'jp': './assets/jp/meta_reward/REWARD_ENTER.png', 'tw': './assets/cn/meta_reward/REWARD_ENTER.png'})
REWARD_RECEIVE = Button(area={'cn': (1031, 601, 1215, 638), 'en': (1067, 608, 1182, 633), 'jp': (1043, 604, 1203, 635), 'tw': (1031, 601, 1215, 638)}, color={'cn': (149, 62, 62), 'en': (164, 92, 93), 'jp': (150, 64, 64), 'tw': (149, 62, 62)}, button={'cn': (1031, 601, 1215, 638), 'en': (1067, 608, 1182, 633), 'jp': (1043, 604, 1203, 635), 'tw': (1031, 601, 1215, 638)}, file={'cn': './assets/cn/meta_reward/REWARD_RECEIVE.png', 'en': './assets/en/meta_reward/REWARD_RECEIVE.png', 'jp': './assets/jp/meta_reward/REWARD_RECEIVE.png', 'tw': './assets/cn/meta_reward/REWARD_RECEIVE.png'}) REWARD_RECEIVE = Button(area={'cn': (1031, 601, 1215, 638), 'en': (1067, 608, 1182, 633), 'jp': (1043, 604, 1203, 635), 'tw': (1031, 601, 1215, 638)}, color={'cn': (149, 62, 62), 'en': (164, 92, 93), 'jp': (150, 64, 64), 'tw': (149, 62, 62)}, button={'cn': (1031, 601, 1215, 638), 'en': (1067, 608, 1182, 633), 'jp': (1043, 604, 1203, 635), 'tw': (1031, 601, 1215, 638)}, file={'cn': './assets/cn/meta_reward/REWARD_RECEIVE.png', 'en': './assets/en/meta_reward/REWARD_RECEIVE.png', 'jp': './assets/jp/meta_reward/REWARD_RECEIVE.png', 'tw': './assets/cn/meta_reward/REWARD_RECEIVE.png'})
SYNC_ENTER = Button(area={'cn': (866, 351, 943, 370), 'en': (866, 351, 943, 370), 'jp': (866, 351, 943, 370), 'tw': (866, 351, 943, 370)}, color={'cn': (183, 175, 177), 'en': (183, 175, 177), 'jp': (183, 175, 177), 'tw': (183, 175, 177)}, button={'cn': (866, 351, 943, 370), 'en': (866, 351, 943, 370), 'jp': (866, 351, 943, 370), 'tw': (866, 351, 943, 370)}, file={'cn': './assets/cn/meta_reward/SYNC_ENTER.png', 'en': './assets/cn/meta_reward/SYNC_ENTER.png', 'jp': './assets/cn/meta_reward/SYNC_ENTER.png', 'tw': './assets/cn/meta_reward/SYNC_ENTER.png'}) SYNC_ENTER = Button(area={'cn': (866, 351, 943, 370), 'en': (866, 351, 943, 370), 'jp': (866, 351, 944, 370), 'tw': (866, 351, 943, 370)}, color={'cn': (183, 175, 177), 'en': (132, 117, 119), 'jp': (185, 176, 179), 'tw': (183, 175, 177)}, button={'cn': (866, 351, 943, 370), 'en': (866, 351, 943, 370), 'jp': (866, 351, 944, 370), 'tw': (866, 351, 943, 370)}, file={'cn': './assets/cn/meta_reward/SYNC_ENTER.png', 'en': './assets/en/meta_reward/SYNC_ENTER.png', 'jp': './assets/jp/meta_reward/SYNC_ENTER.png', 'tw': './assets/cn/meta_reward/SYNC_ENTER.png'})
SYNC_REWARD_NOTICE = Button(area={'cn': (977, 337, 981, 352), 'en': (977, 337, 981, 352), 'jp': (977, 337, 981, 352), 'tw': (977, 337, 981, 352)}, color={'cn': (250, 182, 57), 'en': (250, 182, 57), 'jp': (250, 182, 57), 'tw': (250, 182, 57)}, button={'cn': (977, 337, 981, 352), 'en': (977, 337, 981, 352), 'jp': (977, 337, 981, 352), 'tw': (977, 337, 981, 352)}, file={'cn': './assets/cn/meta_reward/SYNC_REWARD_NOTICE.png', 'en': './assets/cn/meta_reward/SYNC_REWARD_NOTICE.png', 'jp': './assets/cn/meta_reward/SYNC_REWARD_NOTICE.png', 'tw': './assets/cn/meta_reward/SYNC_REWARD_NOTICE.png'}) SYNC_REWARD_NOTICE = Button(area={'cn': (977, 337, 981, 352), 'en': (977, 337, 981, 352), 'jp': (977, 337, 981, 352), 'tw': (977, 337, 981, 352)}, color={'cn': (250, 182, 57), 'en': (250, 182, 57), 'jp': (250, 182, 57), 'tw': (250, 182, 57)}, button={'cn': (977, 337, 981, 352), 'en': (977, 337, 981, 352), 'jp': (977, 337, 981, 352), 'tw': (977, 337, 981, 352)}, file={'cn': './assets/cn/meta_reward/SYNC_REWARD_NOTICE.png', 'en': './assets/cn/meta_reward/SYNC_REWARD_NOTICE.png', 'jp': './assets/cn/meta_reward/SYNC_REWARD_NOTICE.png', 'tw': './assets/cn/meta_reward/SYNC_REWARD_NOTICE.png'})
SYNC_TAP = Button(area={'cn': (581, 339, 707, 377), 'en': (581, 339, 707, 377), 'jp': (581, 339, 707, 377), 'tw': (581, 339, 707, 377)}, color={'cn': (168, 112, 111), 'en': (168, 112, 111), 'jp': (168, 112, 111), 'tw': (168, 112, 111)}, button={'cn': (581, 339, 707, 377), 'en': (581, 339, 707, 377), 'jp': (581, 339, 707, 377), 'tw': (581, 339, 707, 377)}, file={'cn': './assets/cn/meta_reward/SYNC_TAP.png', 'en': './assets/cn/meta_reward/SYNC_TAP.png', 'jp': './assets/cn/meta_reward/SYNC_TAP.png', 'tw': './assets/cn/meta_reward/SYNC_TAP.png'}) SYNC_TAP = Button(area={'cn': (581, 339, 707, 377), 'en': (581, 339, 707, 377), 'jp': (564, 340, 720, 377), 'tw': (581, 339, 707, 377)}, color={'cn': (168, 112, 111), 'en': (129, 80, 80), 'jp': (176, 119, 119), 'tw': (168, 112, 111)}, button={'cn': (581, 339, 707, 377), 'en': (581, 339, 707, 377), 'jp': (564, 340, 720, 377), 'tw': (581, 339, 707, 377)}, file={'cn': './assets/cn/meta_reward/SYNC_TAP.png', 'en': './assets/en/meta_reward/SYNC_TAP.png', 'jp': './assets/jp/meta_reward/SYNC_TAP.png', 'tw': './assets/cn/meta_reward/SYNC_TAP.png'})

View File

@ -146,9 +146,8 @@ class BeaconReward(Combat, UI):
self.ui_ensure(page_meta) self.ui_ensure(page_meta)
if self.config.SERVER in ['cn']: if self.meta_sync_notice_appear():
if self.meta_sync_notice_appear(): self.meta_sync_receive()
self.meta_sync_receive()
if self.meta_reward_notice_appear(): if self.meta_reward_notice_appear():
self.meta_reward_receive() self.meta_reward_receive()

View File

@ -77,7 +77,7 @@ class OSMapOperation(MapOrderHandler, MissionHandler, PortHandler, StorageHandle
@Config.when(SERVER='jp') @Config.when(SERVER='jp')
def get_zone_name(self): def get_zone_name(self):
# For JP only # For JP only
ocr = Ocr(MAP_NAME, lang='jp', letter=(185, 192, 201), threshold=127, name='OCR_OS_MAP_NAME') ocr = Ocr(MAP_NAME, lang='jp', letter=(201, 218, 239), threshold=220, name='OCR_OS_MAP_NAME')
name = ocr.ocr(self.device.image) name = ocr.ocr(self.device.image)
self.is_zone_name_hidden = '安全' in name self.is_zone_name_hidden = '安全' in name
# Remove punctuations # Remove punctuations

View File

@ -1,4 +1,5 @@
from typing import List from typing import List
import module.config.server as server
from module.logger import logger from module.logger import logger
from module.ocr.ocr import DigitYuv, Ocr from module.ocr.ocr import DigitYuv, Ocr
from module.statistics.item import Item, ItemGrid from module.statistics.item import Item, ItemGrid
@ -48,7 +49,10 @@ class CounterOcr(Ocr):
COUNTER_OCR = CounterOcr([], threshold=96, name='Counter_ocr') COUNTER_OCR = CounterOcr([], threshold=96, name='Counter_ocr')
PRICE_OCR = PriceOcr([], letter=(255, 223, 57), threshold=32, name='Price_ocr') if server.server in ['jp']:
PRICE_OCR = PriceOcr([], letter=(245, 214, 58), threshold=32, name='Price_ocr')
else:
PRICE_OCR = PriceOcr([], letter=(255, 223, 57), threshold=32, name='Price_ocr')
class OSShopItem(Item): class OSShopItem(Item):

View File

@ -27,7 +27,7 @@ prettytable==2.2.1
anyio==1.3.1 anyio==1.3.1
# Pushing # Pushing
onepush==1.3.0 onepush==1.4.0
pycryptodome==3.9.9 pycryptodome==3.9.9
pypresence==4.2.1 pypresence==4.2.1

View File

@ -47,7 +47,7 @@ matplotlib==3.4.3 # via gluoncv
msgpack==1.0.3 # via zerorpc msgpack==1.0.3 # via zerorpc
mxnet==1.6.0 # via -r requirements-in.txt, cnocr mxnet==1.6.0 # via -r requirements-in.txt, cnocr
numpy==1.16.6 # via -r requirements-in.txt, cnocr, gluoncv, imageio, matplotlib, mxnet, opencv-python, scipy numpy==1.16.6 # via -r requirements-in.txt, cnocr, gluoncv, imageio, matplotlib, mxnet, opencv-python, scipy
onepush==1.3.0 # via -r requirements-in.txt onepush==1.4.0 # via -r requirements-in.txt
opencv-python==4.5.3.56 # via -r requirements-in.txt opencv-python==4.5.3.56 # via -r requirements-in.txt
packaging==20.9 # via deprecation, uiautomator2 packaging==20.9 # via deprecation, uiautomator2
pillow==8.3.2 # via -r requirements-in.txt, cnocr, gluoncv, imageio, matplotlib, uiautomator2 pillow==8.3.2 # via -r requirements-in.txt, cnocr, gluoncv, imageio, matplotlib, uiautomator2