mirror of
https://github.com/LmeSzinc/AzurLaneAutoScript.git
synced 2025-01-09 05:47:30 +08:00
Fix: Handle MEOWFFICER_TRAIN_EVALUATE in _meow_skip_lock() (#3917)
This commit is contained in:
parent
d1b16a99c2
commit
ea68f68dc9
@ -86,3 +86,14 @@ class AdbManager(DeployConfig):
|
|||||||
|
|
||||||
initer._device.shell(["rm", "/data/local/tmp/minicap"])
|
initer._device.shell(["rm", "/data/local/tmp/minicap"])
|
||||||
initer._device.shell(["rm", "/data/local/tmp/minicap.so"])
|
initer._device.shell(["rm", "/data/local/tmp/minicap.so"])
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
import psutil
|
||||||
|
for c in psutil.net_connections():
|
||||||
|
# print(type(c.laddr), c.laddr, type(c.raddr), c.raddr)
|
||||||
|
try:
|
||||||
|
if c.laddr.port == 5038 or c.raddr.port == 5038:
|
||||||
|
print(c.status, c.pid)
|
||||||
|
except AttributeError:
|
||||||
|
continue
|
@ -219,7 +219,7 @@ class AssetExtractor:
|
|||||||
modules = [m for m in os.listdir(AzurLaneConfig.ASSETS_FOLDER + '/cn')
|
modules = [m for m in os.listdir(AzurLaneConfig.ASSETS_FOLDER + '/cn')
|
||||||
if os.path.isdir(os.path.join(AzurLaneConfig.ASSETS_FOLDER + '/cn', m))]
|
if os.path.isdir(os.path.join(AzurLaneConfig.ASSETS_FOLDER + '/cn', m))]
|
||||||
|
|
||||||
process_map(worker, modules)
|
process_map(worker, modules, max_workers=2)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
@ -38,7 +38,7 @@ class Config:
|
|||||||
MAP_SWIPE_MULTIPLY_MINITOUCH = (1.276, 0.974)
|
MAP_SWIPE_MULTIPLY_MINITOUCH = (1.276, 0.974)
|
||||||
|
|
||||||
|
|
||||||
cfg = AzurLaneConfig('alas', task='Alas').merge(Config())
|
cfg = AzurLaneConfig('alas5', task='Alas').merge(Config())
|
||||||
cfg.DETECTION_BACKEND = 'perspective'
|
cfg.DETECTION_BACKEND = 'perspective'
|
||||||
az = CampaignBase(cfg)
|
az = CampaignBase(cfg)
|
||||||
az.map = MAP
|
az.map = MAP
|
||||||
@ -165,4 +165,4 @@ if __name__ == '__main__':
|
|||||||
-- -- -- -- -- --
|
-- -- -- -- -- --
|
||||||
After run, Result is ready to copy.
|
After run, Result is ready to copy.
|
||||||
"""
|
"""
|
||||||
sim = SwipeSimulate((420, 0)).run()
|
sim = SwipeSimulate((380, 0)).run()
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
import shutil
|
import shutil
|
||||||
|
|
||||||
import numpy as np
|
|
||||||
from tqdm import tqdm
|
from tqdm import tqdm
|
||||||
|
|
||||||
import module.config.server as server
|
import module.config.server as server
|
||||||
@ -8,8 +7,8 @@ import module.config.server as server
|
|||||||
server.server = 'cn' # Edit your server here.
|
server.server = 'cn' # Edit your server here.
|
||||||
|
|
||||||
from module.logger import logger
|
from module.logger import logger
|
||||||
from module.statistics.battle_status import BattleStatusStatistics
|
from module.statistics.image.battle_status import BattleStatusStatistics
|
||||||
from module.statistics.get_items import GetItemsStatistics
|
from module.statistics.image.get_items import GetItemsStatistics
|
||||||
from module.statistics.utils import *
|
from module.statistics.utils import *
|
||||||
|
|
||||||
STATUS_ITEMS_INTERVAL = 10
|
STATUS_ITEMS_INTERVAL = 10
|
||||||
|
@ -304,15 +304,15 @@ class MapData:
|
|||||||
|
|
||||||
# portal
|
# portal
|
||||||
self.portal = []
|
self.portal = []
|
||||||
if self.map_id in MAP_EVENT_LIST:
|
# if self.map_id in MAP_EVENT_LIST:
|
||||||
for event_id in MAP_EVENT_LIST[self.map_id]['event_list'].values():
|
# for event_id in MAP_EVENT_LIST[self.map_id]['event_list'].values():
|
||||||
event = MAP_EVENT_TEMPLATE[event_id]
|
# event = MAP_EVENT_TEMPLATE[event_id]
|
||||||
for effect in event['effect'].values():
|
# for effect in event['effect'].values():
|
||||||
if effect[0] == 'jump':
|
# if effect[0] == 'jump':
|
||||||
address = event['address']
|
# address = event['address']
|
||||||
address = location2node((address[1], address[0]))
|
# address = location2node((address[1], address[0]))
|
||||||
target = location2node((effect[2], effect[1]))
|
# target = location2node((effect[2], effect[1]))
|
||||||
self.portal.append((address, target))
|
# self.portal.append((address, target))
|
||||||
|
|
||||||
# land_based
|
# land_based
|
||||||
# land_based = {{6, 7, 1}, ...}
|
# land_based = {{6, 7, 1}, ...}
|
||||||
@ -676,8 +676,8 @@ Arguments:
|
|||||||
adapted for war_archives usage
|
adapted for war_archives usage
|
||||||
"""
|
"""
|
||||||
FILE = '../AzurLaneLuaScripts'
|
FILE = '../AzurLaneLuaScripts'
|
||||||
FOLDER = './campaign/test'
|
FOLDER = './campaign/event_20240521_cn'
|
||||||
KEYWORD = ''
|
KEYWORD = '1810001'
|
||||||
SELECT = True
|
SELECT = True
|
||||||
OVERWRITE = True
|
OVERWRITE = True
|
||||||
IS_WAR_ARCHIVES = False
|
IS_WAR_ARCHIVES = False
|
||||||
@ -686,8 +686,8 @@ ENEMY_FILTER = '1L > 1M > 1E > 1C > 2L > 2M > 2E > 2C > 3L > 3M > 3E > 3C'
|
|||||||
LOADER = LuaLoader(FILE, server='CN')
|
LOADER = LuaLoader(FILE, server='CN')
|
||||||
DATA = LOADER.load('./sharecfgdata/chapter_template.lua')
|
DATA = LOADER.load('./sharecfgdata/chapter_template.lua')
|
||||||
DATA_LOOP = LOADER.load('./sharecfgdata/chapter_template_loop.lua')
|
DATA_LOOP = LOADER.load('./sharecfgdata/chapter_template_loop.lua')
|
||||||
MAP_EVENT_LIST = LOADER.load('./sharecfg/map_event_list.lua')
|
# MAP_EVENT_LIST = LOADER.load('./sharecfg/map_event_list.lua')
|
||||||
MAP_EVENT_TEMPLATE = LOADER.load('./sharecfg/map_event_template.lua')
|
# MAP_EVENT_TEMPLATE = LOADER.load('./sharecfg/map_event_template.lua')
|
||||||
EXPECTATION_DATA = LOADER.load('./sharecfgdata/expedition_data_template.lua')
|
EXPECTATION_DATA = LOADER.load('./sharecfgdata/expedition_data_template.lua')
|
||||||
|
|
||||||
ct = ChapterTemplate()
|
ct = ChapterTemplate()
|
||||||
|
@ -126,7 +126,7 @@ Arguments:
|
|||||||
FILE: Path to repository, such as 'xxx/AzurLaneLuaScripts'
|
FILE: Path to repository, such as 'xxx/AzurLaneLuaScripts'
|
||||||
SAVE: File to save, 'module/os/map_data.py'
|
SAVE: File to save, 'module/os/map_data.py'
|
||||||
"""
|
"""
|
||||||
FOLDER = ''
|
FOLDER = r'E:\ProgramData\Pycharm\AzurLaneLuaScripts'
|
||||||
SAVE = 'module/os/map_data.py'
|
SAVE = 'module/os/map_data.py'
|
||||||
|
|
||||||
LOADER = LuaLoader(FOLDER)
|
LOADER = LuaLoader(FOLDER)
|
||||||
|
@ -15,15 +15,28 @@ class Config:
|
|||||||
"""
|
"""
|
||||||
Paste the config of map file here
|
Paste the config of map file here
|
||||||
"""
|
"""
|
||||||
pass
|
INTERNAL_LINES_FIND_PEAKS_PARAMETERS = {
|
||||||
|
'height': (80, 255 - 17),
|
||||||
|
'width': (0.9, 10),
|
||||||
|
'prominence': 10,
|
||||||
|
'distance': 35,
|
||||||
|
}
|
||||||
|
EDGE_LINES_FIND_PEAKS_PARAMETERS = {
|
||||||
|
'height': (255 - 17, 255),
|
||||||
|
'prominence': 10,
|
||||||
|
'distance': 50,
|
||||||
|
'wlen': 1000
|
||||||
|
}
|
||||||
|
HOMO_EDGE_COLOR_RANGE = (0, 17)
|
||||||
|
HOMO_EDGE_HOUGHLINES_THRESHOLD = 210
|
||||||
|
|
||||||
from module.os.config import OSConfig
|
from module.os.config import OSConfig
|
||||||
cfg = AzurLaneConfig('alas').merge(OSConfig())
|
cfg = AzurLaneConfig('alas5').merge(Config())
|
||||||
|
|
||||||
# Folder to save temp images
|
# Folder to save temp images
|
||||||
folder = './screenshots/relative_crop'
|
folder = './screenshots/relative_crop'
|
||||||
# Put Screenshot here
|
# Put Screenshot here
|
||||||
file = ''
|
file = r'E:\ProgramData\Pycharm\StarRailCopilot\screenshots\dev_screenshots\2023-12-22_00-41-21-728648.png'
|
||||||
|
|
||||||
i = load_image(file)
|
i = load_image(file)
|
||||||
grids = View(cfg)
|
grids = View(cfg)
|
||||||
@ -36,7 +49,7 @@ os.makedirs(folder, exist_ok=True)
|
|||||||
for grid in grids:
|
for grid in grids:
|
||||||
# Find more relative_crop area in module/map/grid_predictor.py
|
# Find more relative_crop area in module/map/grid_predictor.py
|
||||||
# This one is for `predict_enemy_genre`
|
# This one is for `predict_enemy_genre`
|
||||||
piece = rgb2gray(grid.relative_crop((-0.5, -1, 0.5, 0), shape=(60, 60)))
|
piece = rgb2gray(grid.relative_crop((-0, -0.2, 0.8, 0.2), shape=(40, 20)))
|
||||||
|
|
||||||
file = '%s_%s_%s.png' % (int(time.time()), grid.location[0], grid.location[1])
|
file = '%s_%s_%s.png' % (int(time.time()), grid.location[0], grid.location[1])
|
||||||
file = os.path.join(folder, file)
|
file = os.path.join(folder, file)
|
||||||
|
@ -17,7 +17,19 @@ class Config:
|
|||||||
"""
|
"""
|
||||||
Paste the config of map file here
|
Paste the config of map file here
|
||||||
"""
|
"""
|
||||||
pass
|
INTERNAL_LINES_FIND_PEAKS_PARAMETERS = {
|
||||||
|
'height': (80, 255 - 17),
|
||||||
|
'width': (0.9, 10),
|
||||||
|
'prominence': 10,
|
||||||
|
'distance': 35,
|
||||||
|
}
|
||||||
|
EDGE_LINES_FIND_PEAKS_PARAMETERS = {
|
||||||
|
'height': (255 - 17, 255),
|
||||||
|
'prominence': 10,
|
||||||
|
'distance': 50,
|
||||||
|
'wlen': 1000
|
||||||
|
}
|
||||||
|
HOMO_EDGE_COLOR_RANGE = (0, 17)
|
||||||
|
|
||||||
|
|
||||||
"""
|
"""
|
||||||
@ -41,10 +53,11 @@ Arguments:
|
|||||||
NAME: Siren name, images will save in <FOLDER>/<NAME>
|
NAME: Siren name, images will save in <FOLDER>/<NAME>
|
||||||
NODE: Node in local map view, that you are going to crop.
|
NODE: Node in local map view, that you are going to crop.
|
||||||
"""
|
"""
|
||||||
CONFIG = 'alas'
|
CONFIG = 'alas5'
|
||||||
FOLDER = ''
|
FOLDER = r'E:\ProgramData\Pycharm\Azurlane-image\screenshot\record'
|
||||||
NAME = 'Deutschland'
|
NAME = 'huiguangzhihe'
|
||||||
NODE = 'D5'
|
NODE = 'E5'
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
for folder in [FOLDER, os.path.join(FOLDER, NAME)]:
|
for folder in [FOLDER, os.path.join(FOLDER, NAME)]:
|
||||||
|
@ -27,7 +27,7 @@ Arguments:
|
|||||||
"""
|
"""
|
||||||
# FOLDER = ''
|
# FOLDER = ''
|
||||||
# NAME = 'Deutschland'
|
# NAME = 'Deutschland'
|
||||||
AREA = (32, 32, 54, 52)
|
AREA = (25, 16, 37, 34)
|
||||||
THRESHOLD = 0.92
|
THRESHOLD = 0.92
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
@ -137,7 +137,7 @@ Arguments:
|
|||||||
FILE: Path to AzurLaneData, '<your_folder>/AzurLaneData'
|
FILE: Path to AzurLaneData, '<your_folder>/AzurLaneData'
|
||||||
SAVE: File to save, 'module/research/project_data.py'
|
SAVE: File to save, 'module/research/project_data.py'
|
||||||
"""
|
"""
|
||||||
FOLDER = ''
|
FOLDER = r'E:\ProgramData\Pycharm\AzurLaneLuaScripts'
|
||||||
SAVE = 'module/research/project_data.py'
|
SAVE = 'module/research/project_data.py'
|
||||||
|
|
||||||
TechnologyTemplate().write(SAVE)
|
TechnologyTemplate().write(SAVE)
|
||||||
|
@ -20,7 +20,7 @@ class LuaLoader:
|
|||||||
]
|
]
|
||||||
|
|
||||||
def __init__(self, folder, server='zh-CN'):
|
def __init__(self, folder, server='zh-CN'):
|
||||||
self.folder = folder
|
self.folder = os.path.abspath(folder)
|
||||||
self._server = ''
|
self._server = ''
|
||||||
self.server = server
|
self.server = server
|
||||||
|
|
||||||
|
@ -15,6 +15,7 @@ from module.retire.retirement import Retirement
|
|||||||
from module.statistics.azurstats import DropImage
|
from module.statistics.azurstats import DropImage
|
||||||
from module.template.assets import TEMPLATE_COMBAT_LOADING
|
from module.template.assets import TEMPLATE_COMBAT_LOADING
|
||||||
from module.ui.assets import BACK_ARROW, MUNITIONS_CHECK
|
from module.ui.assets import BACK_ARROW, MUNITIONS_CHECK
|
||||||
|
from module.ui.page import page_event
|
||||||
|
|
||||||
|
|
||||||
class Combat(Level, HPBalancer, Retirement, SubmarineCall, CombatAuto, CombatManual, AutoSearchHandler):
|
class Combat(Level, HPBalancer, Retirement, SubmarineCall, CombatAuto, CombatManual, AutoSearchHandler):
|
||||||
|
@ -67,7 +67,44 @@ def filepath_config(filename, mod_name='alas'):
|
|||||||
def filepath_code():
|
def filepath_code():
|
||||||
return './module/config/config_generated.py'
|
return './module/config/config_generated.py'
|
||||||
|
|
||||||
|
def show_function_call():
|
||||||
|
"""
|
||||||
|
INFO 21:07:31.554 │ Function calls:
|
||||||
|
<string> L1 <module>
|
||||||
|
spawn.py L116 spawn_main()
|
||||||
|
spawn.py L129 _main()
|
||||||
|
process.py L314 _bootstrap()
|
||||||
|
process.py L108 run()
|
||||||
|
process_manager.py L149 run_process()
|
||||||
|
alas.py L285 loop()
|
||||||
|
alas.py L69 run()
|
||||||
|
src.py L55 rogue()
|
||||||
|
rogue.py L36 run()
|
||||||
|
rogue.py L18 rogue_once()
|
||||||
|
entry.py L335 rogue_world_enter()
|
||||||
|
path.py L193 rogue_path_select()
|
||||||
|
"""
|
||||||
|
import os
|
||||||
|
import traceback
|
||||||
|
stack = traceback.extract_stack()
|
||||||
|
func_list = []
|
||||||
|
for row in stack:
|
||||||
|
filename, line_number, function_name, _ = row
|
||||||
|
filename = os.path.basename(filename)
|
||||||
|
# /tasks/character/switch.py:64 character_update()
|
||||||
|
func_list.append([filename, str(line_number), function_name])
|
||||||
|
max_filename = max([len(row[0]) for row in func_list])
|
||||||
|
max_linenum = max([len(row[1]) for row in func_list]) + 1
|
||||||
|
|
||||||
|
def format_(file, line, func):
|
||||||
|
file = file.rjust(max_filename, " ")
|
||||||
|
line = f'L{line}'.rjust(max_linenum, " ")
|
||||||
|
if not func.startswith('<'):
|
||||||
|
func = f'{func}()'
|
||||||
|
return f'{file} {line} {func}'
|
||||||
|
|
||||||
|
func_list = [f'\n{format_(*row)}' for row in func_list]
|
||||||
|
print('Function calls:' + ''.join(func_list))
|
||||||
def read_file(file):
|
def read_file(file):
|
||||||
"""
|
"""
|
||||||
Read a file, support both .yaml and .json format.
|
Read a file, support both .yaml and .json format.
|
||||||
|
@ -173,8 +173,8 @@ class Benchmark(DaemonBase, CampaignUI):
|
|||||||
def get_test_methods(self) -> t.Tuple[t.Tuple[str], t.Tuple[str]]:
|
def get_test_methods(self) -> t.Tuple[t.Tuple[str], t.Tuple[str]]:
|
||||||
device = self.config.Benchmark_DeviceType
|
device = self.config.Benchmark_DeviceType
|
||||||
# device == 'emulator'
|
# device == 'emulator'
|
||||||
screenshot = ['ADB', 'ADB_nc', 'uiautomator2', 'aScreenCap', 'aScreenCap_nc', 'DroidCast', 'DroidCast_raw']
|
screenshot = ['DroidCast_raw']
|
||||||
click = ['ADB', 'uiautomator2', 'minitouch']
|
click = ['ADB', 'uiautomator2', 'minitouch', 'MaaTouch']
|
||||||
|
|
||||||
def remove(*args):
|
def remove(*args):
|
||||||
return [l for l in screenshot if l not in args]
|
return [l for l in screenshot if l not in args]
|
||||||
@ -205,8 +205,8 @@ class Benchmark(DaemonBase, CampaignUI):
|
|||||||
def run(self):
|
def run(self):
|
||||||
self.config.override(Emulator_ScreenshotMethod='ADB')
|
self.config.override(Emulator_ScreenshotMethod='ADB')
|
||||||
self.device.uninstall_minicap()
|
self.device.uninstall_minicap()
|
||||||
self.ui_goto_campaign()
|
# self.ui_goto_campaign()
|
||||||
self.campaign_set_chapter('7-2')
|
# self.campaign_set_chapter('7-2')
|
||||||
|
|
||||||
logger.attr('DeviceType', self.config.Benchmark_DeviceType)
|
logger.attr('DeviceType', self.config.Benchmark_DeviceType)
|
||||||
logger.attr('TestScene', self.config.Benchmark_TestScene)
|
logger.attr('TestScene', self.config.Benchmark_TestScene)
|
||||||
|
@ -7,6 +7,7 @@ from module.map.map_operation import FLEET_PREPARATION, MAP_PREPARATION
|
|||||||
|
|
||||||
class AzurLaneDaemon(DaemonBase, CampaignBase):
|
class AzurLaneDaemon(DaemonBase, CampaignBase):
|
||||||
def run(self):
|
def run(self):
|
||||||
|
self.config.override(Emotion_Mode='ignore')
|
||||||
while 1:
|
while 1:
|
||||||
self.device.screenshot()
|
self.device.screenshot()
|
||||||
|
|
||||||
@ -61,6 +62,8 @@ class AzurLaneDaemon(DaemonBase, CampaignBase):
|
|||||||
|
|
||||||
# End
|
# End
|
||||||
# No end condition, stop it manually.
|
# No end condition, stop it manually.
|
||||||
|
if self.handle_popup_confirm():
|
||||||
|
continue
|
||||||
|
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
@ -14,6 +14,7 @@ from adbutils.errors import AdbError
|
|||||||
|
|
||||||
from module.base.decorator import Config, cached_property, del_cached_property, run_once
|
from module.base.decorator import Config, cached_property, del_cached_property, run_once
|
||||||
from module.base.utils import ensure_time
|
from module.base.utils import ensure_time
|
||||||
|
from module.config.config import AzurLaneConfig
|
||||||
from module.config.server import VALID_CHANNEL_PACKAGE, VALID_PACKAGE, set_server
|
from module.config.server import VALID_CHANNEL_PACKAGE, VALID_PACKAGE, set_server
|
||||||
from module.device.connection_attr import ConnectionAttr
|
from module.device.connection_attr import ConnectionAttr
|
||||||
from module.device.method.utils import (PackageNotInstalled, RETRY_TRIES, get_serial_pair, handle_adb_error,
|
from module.device.method.utils import (PackageNotInstalled, RETRY_TRIES, get_serial_pair, handle_adb_error,
|
||||||
@ -1014,3 +1015,16 @@ class Connection(ConnectionAttr):
|
|||||||
f'Multiple AzurLane packages found, auto package detection cannot decide which to choose, '
|
f'Multiple AzurLane packages found, auto package detection cannot decide which to choose, '
|
||||||
'please copy one of the available devices listed above to Alas.Emulator.PackageName')
|
'please copy one of the available devices listed above to Alas.Emulator.PackageName')
|
||||||
raise RequestHumanTakeover
|
raise RequestHumanTakeover
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
cfg = AzurLaneConfig('alas')
|
||||||
|
cfg.override(Emulator_Serial='127.0.0.1:16416')
|
||||||
|
self = Connection(cfg)
|
||||||
|
with self.adb_client.open as c:
|
||||||
|
list_cmd = f"framebuffer:"
|
||||||
|
c.send_command(list_cmd)
|
||||||
|
c.check_okay()
|
||||||
|
|
||||||
|
version = c.read_string_block()
|
||||||
|
print(version)
|
@ -306,3 +306,12 @@ class Device(Screenshot, Control, AppControl):
|
|||||||
super().app_stop()
|
super().app_stop()
|
||||||
self.stuck_record_clear()
|
self.stuck_record_clear()
|
||||||
self.click_record_clear()
|
self.click_record_clear()
|
||||||
|
if __name__ == '__main__':
|
||||||
|
self = Device('alas')
|
||||||
|
# self.maatouch_uninstall()
|
||||||
|
# self.maatouch_install()
|
||||||
|
# self.click_maatouch(300, 300)
|
||||||
|
# self.click_maatouch(300, 300)
|
||||||
|
# self.drag_maatouch((800, 300), (300, 300))
|
||||||
|
self.swipe_minitouch((300, 300), (800, 300))
|
||||||
|
self.swipe_minitouch((800, 300), (300, 300))
|
||||||
|
@ -344,3 +344,12 @@ class DroidCast(Uiautomator2):
|
|||||||
for proc in self._iter_droidcast_proc():
|
for proc in self._iter_droidcast_proc():
|
||||||
logger.info(f'Kill pid={proc.pid}')
|
logger.info(f'Kill pid={proc.pid}')
|
||||||
self.adb_shell(['kill', '-s', 9, proc.pid])
|
self.adb_shell(['kill', '-s', 9, proc.pid])
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
self = DroidCast('alas')
|
||||||
|
# self.adb_shell(["rm", self.config.DROIDCAST_FILEPATH_REMOTE])
|
||||||
|
# self.droidcast_stop()
|
||||||
|
for _ in range(5):
|
||||||
|
self.image = self.screenshot_droidcast_raw()
|
||||||
|
from PIL import Image
|
||||||
|
Image.fromarray(self.image).show()
|
||||||
|
@ -190,6 +190,6 @@ class SettingExtractor:
|
|||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
# Path to AzurLaneLuaScripts\CN
|
# Path to AzurLaneLuaScripts\CN
|
||||||
FOLDER = r''
|
FOLDER = r'E:\ProgramData\Pycharm\AzurLaneLuaScripts\CN'
|
||||||
ex = SettingExtractor()
|
ex = SettingExtractor()
|
||||||
ex.generate(FOLDER)
|
ex.generate(FOLDER)
|
||||||
|
@ -10,6 +10,12 @@ class GameSettingsGenerated:
|
|||||||
# PlayerPrefs.GetInt("autoBotIsAcitve" .. slot6, 0)
|
# PlayerPrefs.GetInt("autoBotIsAcitve" .. slot6, 0)
|
||||||
autoBotIsAcitve = Field(formatter=int, default=0, regex='autoBotIsAcitve(.*)')
|
autoBotIsAcitve = Field(formatter=int, default=0, regex='autoBotIsAcitve(.*)')
|
||||||
|
|
||||||
|
# /controller/command/stage/trackingcommand.lua
|
||||||
|
# PlayerPrefs.GetString("remaster_tip")
|
||||||
|
remaster_tip = Field(formatter=str, default='', regex='remaster_tip')
|
||||||
|
# PlayerPrefs.GetInt("chapter_autofight_flag_" .. uv0.id, 1)
|
||||||
|
chapter_autofight_flag = Field(formatter=int, default=1, regex='chapter_autofight_flag_(.*)')
|
||||||
|
|
||||||
# /gamecfg/activity/entrancedata.lua
|
# /gamecfg/activity/entrancedata.lua
|
||||||
# PlayerPrefs.GetString("permanent_time", "")
|
# PlayerPrefs.GetString("permanent_time", "")
|
||||||
permanent_time = Field(formatter=str, default='', regex='permanent_time')
|
permanent_time = Field(formatter=str, default='', regex='permanent_time')
|
||||||
@ -94,6 +100,10 @@ class GameSettingsGenerated:
|
|||||||
# PlayerPrefs.GetInt(AUTOFIGHT_DOWN_FRAME, 0)
|
# PlayerPrefs.GetInt(AUTOFIGHT_DOWN_FRAME, 0)
|
||||||
pass # Unknown
|
pass # Unknown
|
||||||
|
|
||||||
|
# /mod/experiment/world/model/worldatlas.lua
|
||||||
|
# PlayerPrefs.GetInt(string.format("world_new_shop_unlock_count_in_port_%d_%d_%d", getProxy(PlayerProxy):getRawData().id, nowWorld().activateCount, slot1), -1)
|
||||||
|
world_new_shop_unlock_count_in_port__d__d__d = Field(formatter=int, default=0, regex='world_new_shop_unlock_count_in_port_%d_%d_%d')
|
||||||
|
|
||||||
# /mod/experiment/world/model/worldconst.lua
|
# /mod/experiment/world/model/worldconst.lua
|
||||||
# PlayerPrefs.GetInt("world_help_progress")
|
# PlayerPrefs.GetInt("world_help_progress")
|
||||||
world_help_progress = Field(formatter=int, default=0, regex='world_help_progress')
|
world_help_progress = Field(formatter=int, default=0, regex='world_help_progress')
|
||||||
@ -123,12 +133,14 @@ class GameSettingsGenerated:
|
|||||||
auto_switch_mode = Field(formatter=int, default=0, regex='auto_switch_mode')
|
auto_switch_mode = Field(formatter=int, default=0, regex='auto_switch_mode')
|
||||||
# PlayerPrefs.GetString("auto_switch_difficult_safe", "only")
|
# PlayerPrefs.GetString("auto_switch_difficult_safe", "only")
|
||||||
auto_switch_difficult_safe = Field(formatter=str, default='only', regex='auto_switch_difficult_safe')
|
auto_switch_difficult_safe = Field(formatter=str, default='only', regex='auto_switch_difficult_safe')
|
||||||
|
# PlayerPrefs.GetInt("auto_switch_mode", 0)
|
||||||
|
pass # Duplicate
|
||||||
# PlayerPrefs.GetString("auto_switch_difficult_base", "all")
|
# PlayerPrefs.GetString("auto_switch_difficult_base", "all")
|
||||||
auto_switch_difficult_base = Field(formatter=str, default='all', regex='auto_switch_difficult_base')
|
auto_switch_difficult_base = Field(formatter=str, default='all', regex='auto_switch_difficult_base')
|
||||||
|
# PlayerPrefs.GetString("auto_switch_difficult_safe", "only")
|
||||||
# /mod/experiment/world/view/wsmapright.lua
|
|
||||||
# PlayerPrefs.GetInt("world_skip_precombat", 0)
|
|
||||||
pass # Duplicate
|
pass # Duplicate
|
||||||
|
# PlayerPrefs.GetString("auto_switch_difficult_treasure", "all")
|
||||||
|
auto_switch_difficult_treasure = Field(formatter=str, default='all', regex='auto_switch_difficult_treasure')
|
||||||
|
|
||||||
# /model/const/chapterconst.lua
|
# /model/const/chapterconst.lua
|
||||||
# PlayerPrefs.GetInt("chapter_skip_battle")
|
# PlayerPrefs.GetInt("chapter_skip_battle")
|
||||||
@ -221,6 +233,10 @@ class GameSettingsGenerated:
|
|||||||
SetScreenRatio = Field(formatter=float, default=0.0, regex='SetScreenRatio')
|
SetScreenRatio = Field(formatter=float, default=0.0, regex='SetScreenRatio')
|
||||||
# PlayerPrefs.GetInt("story_autoplay_flag", 0)
|
# PlayerPrefs.GetInt("story_autoplay_flag", 0)
|
||||||
story_autoplay_flag = Field(formatter=int, default=0, regex='story_autoplay_flag')
|
story_autoplay_flag = Field(formatter=int, default=0, regex='story_autoplay_flag')
|
||||||
|
# PlayerPrefs.GetInt("ActBossTipLastTime", 0)
|
||||||
|
ActBossTipLastTime = Field(formatter=int, default=0, regex='ActBossTipLastTime')
|
||||||
|
# PlayerPrefs.GetInt("ActBossTip", 0)
|
||||||
|
ActBossTip = Field(formatter=int, default=0, regex='ActBossTip')
|
||||||
# PlayerPrefs.GetInt("collection_Help", 0)
|
# PlayerPrefs.GetInt("collection_Help", 0)
|
||||||
collection_Help = Field(formatter=int, default=0, regex='collection_Help')
|
collection_Help = Field(formatter=int, default=0, regex='collection_Help')
|
||||||
# PlayerPrefs.GetInt("main_scene_word_toggle", 1)
|
# PlayerPrefs.GetInt("main_scene_word_toggle", 1)
|
||||||
@ -251,6 +267,8 @@ class GameSettingsGenerated:
|
|||||||
event_act_help1 = Field(formatter=int, default=0, regex='event_act_help1(.*)')
|
event_act_help1 = Field(formatter=int, default=0, regex='event_act_help1(.*)')
|
||||||
# PlayerPrefs.GetInt("story_speed_flag" .. ((not getProxy(PlayerProxy) or getProxy(PlayerProxy):getRawData().id) and 1), 0)
|
# PlayerPrefs.GetInt("story_speed_flag" .. ((not getProxy(PlayerProxy) or getProxy(PlayerProxy):getRawData().id) and 1), 0)
|
||||||
story_speed_flag = Field(formatter=int, default=0, regex='story_speed_flag(.*)')
|
story_speed_flag = Field(formatter=int, default=0, regex='story_speed_flag(.*)')
|
||||||
|
# PlayerPrefs.GetInt("Painting_Download_Prefs", 0)
|
||||||
|
Painting_Download_Prefs = Field(formatter=int, default=0, regex='Painting_Download_Prefs')
|
||||||
# PlayerPrefs.GetInt("tipLimitSkinShopTime_", 0)
|
# PlayerPrefs.GetInt("tipLimitSkinShopTime_", 0)
|
||||||
tipLimitSkinShopTime = Field(formatter=int, default=0, regex='tipLimitSkinShopTime_')
|
tipLimitSkinShopTime = Field(formatter=int, default=0, regex='tipLimitSkinShopTime_')
|
||||||
# PlayerPrefs.GetString("_WorldBossProgressTipFlag_", slot1[1] .. "&" .. slot1[1] + slot1[2])
|
# PlayerPrefs.GetString("_WorldBossProgressTipFlag_", slot1[1] .. "&" .. slot1[1] + slot1[2])
|
||||||
@ -265,6 +283,18 @@ class GameSettingsGenerated:
|
|||||||
IsTipNewTheme = Field(formatter=int, default=0, regex='(.*)IsTipNewTheme(.*)')
|
IsTipNewTheme = Field(formatter=int, default=0, regex='(.*)IsTipNewTheme(.*)')
|
||||||
# PlayerPrefs.GetString(getProxy(PlayerProxy):getRawData().id .. "IsTipNewGenFurniture")
|
# PlayerPrefs.GetString(getProxy(PlayerProxy):getRawData().id .. "IsTipNewGenFurniture")
|
||||||
IsTipNewGenFurniture = Field(formatter=str, default='', regex='(.*)IsTipNewGenFurniture')
|
IsTipNewGenFurniture = Field(formatter=str, default='', regex='(.*)IsTipNewGenFurniture')
|
||||||
|
# PlayerPrefs.GetString("RandomFlagShipList" .. slot1:getRawData().id, "")
|
||||||
|
RandomFlagShipList = Field(formatter=str, default='', regex='RandomFlagShipList(.*)')
|
||||||
|
# PlayerPrefs.GetInt("RandomFlagShipTime" .. getProxy(PlayerProxy):getRawData().id, 0)
|
||||||
|
RandomFlagShipTime = Field(formatter=int, default=0, regex='RandomFlagShipTime(.*)')
|
||||||
|
# PlayerPrefs.GetInt("AutoBotCOFlag" .. getProxy(PlayerProxy):getRawData().id, 0)
|
||||||
|
AutoBotCOFlag = Field(formatter=int, default=0, regex='AutoBotCOFlag(.*)')
|
||||||
|
# PlayerPrefs.GetInt("WorkbenchDailyTip" .. getProxy(PlayerProxy):getRawData().id, 0)
|
||||||
|
WorkbenchDailyTip = Field(formatter=int, default=0, regex='WorkbenchDailyTip(.*)')
|
||||||
|
# PlayerPrefs.GetInt(BATTLERESULT_SKIP_DISPAY_PAINTING)
|
||||||
|
pass # Unknown
|
||||||
|
# PlayerPrefs.GetInt(BATTLERESULT_DISPAY_PAINTING, 0)
|
||||||
|
pass # Unknown
|
||||||
|
|
||||||
# /model/proxy/technologyproxy.lua
|
# /model/proxy/technologyproxy.lua
|
||||||
# PlayerPrefs.GetInt("technology_version")
|
# PlayerPrefs.GetInt("technology_version")
|
||||||
@ -293,11 +323,13 @@ class GameSettingsGenerated:
|
|||||||
# /model/vo/activity.lua
|
# /model/vo/activity.lua
|
||||||
# PlayerPrefs.GetInt("ACTIVITY_TYPE_EVENT_" .. slot0.id .. "_" .. getProxy(PlayerProxy):getData().id)
|
# PlayerPrefs.GetInt("ACTIVITY_TYPE_EVENT_" .. slot0.id .. "_" .. getProxy(PlayerProxy):getData().id)
|
||||||
ACTIVITY_TYPE_EVENT = Field(formatter=int, default=0, regex='ACTIVITY_TYPE_EVENT_(.*)_(.*)')
|
ACTIVITY_TYPE_EVENT = Field(formatter=int, default=0, regex='ACTIVITY_TYPE_EVENT_(.*)_(.*)')
|
||||||
|
# PlayerPrefs.GetInt("DAY_TIP_" .. uv0.id .. "_" .. getProxy(PlayerProxy):getData().id .. "_" .. uv0:getDayIndex())
|
||||||
|
DAY_TIP = Field(formatter=int, default=0, regex='DAY_TIP_(.*)_(.*)_(.*)')
|
||||||
|
|
||||||
# /model/vo/chapter.lua
|
# /model/vo/chapter.lua
|
||||||
# PlayerPrefs.GetInt("chapter_quickPlay_flag_" .. slot0.id, 0)
|
# PlayerPrefs.GetInt("chapter_quickPlay_flag_" .. slot0.id, 0)
|
||||||
chapter_quickPlay_flag = Field(formatter=int, default=0, regex='chapter_quickPlay_flag_(.*)')
|
chapter_quickPlay_flag = Field(formatter=int, default=0, regex='chapter_quickPlay_flag_(.*)')
|
||||||
# PlayerPrefs.GetInt(uv0.GetChapterLastFleetCacheKey(slot0), 0)
|
# PlayerPrefs.GetInt(Chapter.GetSPOperationItemCacheKey(slot0.id), 0)
|
||||||
pass # Unknown
|
pass # Unknown
|
||||||
|
|
||||||
# /model/vo/chapterfleet.lua
|
# /model/vo/chapterfleet.lua
|
||||||
@ -313,6 +345,10 @@ class GameSettingsGenerated:
|
|||||||
paint_hide_other_obj = Field(formatter=int, default=0, regex='paint_hide_other_obj_(.*)')
|
paint_hide_other_obj = Field(formatter=int, default=0, regex='paint_hide_other_obj_(.*)')
|
||||||
# PlayerPrefs.GetString("equipment_record" .. "_" .. slot1 .. "_" .. slot0.id)
|
# PlayerPrefs.GetString("equipment_record" .. "_" .. slot1 .. "_" .. slot0.id)
|
||||||
equipment_record = Field(formatter=str, default='', regex='equipment_record_(.*)_(.*)')
|
equipment_record = Field(formatter=str, default='', regex='equipment_record_(.*)_(.*)')
|
||||||
|
# PlayerPrefs.GetString("spweapon_record" .. "_" .. slot1 .. "_" .. slot0.id, "")
|
||||||
|
spweapon_record = Field(formatter=str, default='', regex='spweapon_record_(.*)_(.*)')
|
||||||
|
# PlayerPrefs.GetInt("SHIP_NAME_COLOR", PLATFORM_CODE == PLATFORM_CH and 1 or 0)
|
||||||
|
SHIP_NAME_COLOR = Field(formatter=int, default=0, regex='SHIP_NAME_COLOR')
|
||||||
|
|
||||||
# /model/vo/guild/events/guildmission.lua
|
# /model/vo/guild/events/guildmission.lua
|
||||||
# PlayerPrefs.GetInt("guild_mission_formation_tip" .. slot0.configId, 0)
|
# PlayerPrefs.GetInt("guild_mission_formation_tip" .. slot0.configId, 0)
|
||||||
@ -322,17 +358,27 @@ class GameSettingsGenerated:
|
|||||||
# PlayerPrefs.GetInt(slot0:prefKey())
|
# PlayerPrefs.GetInt(slot0:prefKey())
|
||||||
pass # Unknown
|
pass # Unknown
|
||||||
|
|
||||||
|
# /model/vo/task/activitytask.lua
|
||||||
|
# PlayerPrefs.GetInt("ryza_task_" .. getProxy(PlayerProxy):getRawData().id .. "_" .. slot0.id)
|
||||||
|
ryza_task = Field(formatter=int, default=0, regex='ryza_task_(.*)_(.*)')
|
||||||
|
# PlayerPrefs.GetInt("ryza_task_" .. getProxy(PlayerProxy):getRawData().id .. "_" .. slot0.id)
|
||||||
|
pass # Duplicate
|
||||||
|
|
||||||
# /support/helpers/m02.lua
|
# /support/helpers/m02.lua
|
||||||
# PlayerPrefs.GetInt("paint_hide_other_obj_" .. slot1, 0)
|
# PlayerPrefs.GetInt("paint_hide_other_obj_" .. slot1, 0)
|
||||||
pass # Duplicate
|
pass # Duplicate
|
||||||
# PlayerPrefs.GetInt("paint_hide_other_obj_" .. slot1, 0)
|
# PlayerPrefs.GetInt("paint_hide_other_obj_" .. slot1, 0)
|
||||||
pass # Duplicate
|
pass # Duplicate
|
||||||
|
# PlayerPrefs.GetInt("paint_hide_other_obj_" .. slot1, 0)
|
||||||
|
pass # Duplicate
|
||||||
|
|
||||||
# /support/utils/hxset.lua
|
# /support/utils/hxset.lua
|
||||||
# PlayerPrefs.GetInt(uv0.codeModeKey)
|
# PlayerPrefs.GetInt(uv0.codeModeKey)
|
||||||
pass # Unknown
|
pass # Unknown
|
||||||
# PlayerPrefs.GetInt("localization_use", 0)
|
# PlayerPrefs.GetInt("localization_time_1_" .. getProxy(PlayerProxy):getData().id, 0)
|
||||||
localization_use = Field(formatter=int, default=0, regex='localization_use')
|
localization_time_1 = Field(formatter=int, default=0, regex='localization_time_1_(.*)')
|
||||||
|
# PlayerPrefs.GetInt("localization_time_2_" .. slot2, 0)
|
||||||
|
localization_time_2 = Field(formatter=int, default=0, regex='localization_time_2_(.*)')
|
||||||
|
|
||||||
# /view/activity/activitymediator.lua
|
# /view/activity/activitymediator.lua
|
||||||
# PlayerPrefs.GetString("permanent_time", "")
|
# PlayerPrefs.GetString("permanent_time", "")
|
||||||
@ -354,9 +400,33 @@ class GameSettingsGenerated:
|
|||||||
# PlayerPrefs.GetInt(string.format("cursing_%d_task_week_%d", slot0.activity.id, slot5), 0)
|
# PlayerPrefs.GetInt(string.format("cursing_%d_task_week_%d", slot0.activity.id, slot5), 0)
|
||||||
cursing__d_task_week__d = Field(formatter=int, default=0, regex='cursing_%d_task_week_%d')
|
cursing__d_task_week__d = Field(formatter=int, default=0, regex='cursing_%d_task_week_%d')
|
||||||
|
|
||||||
# /view/activity/refluxmediator.lua
|
# /view/activity/ryzataskscene.lua
|
||||||
# PlayerPrefs.GetInt(slot6.id .. "_" .. slot2.data2)
|
# PlayerPrefs.GetInt("ryza_task_help_" .. getProxy(PlayerProxy):getRawData().id)
|
||||||
pass # Unknown
|
ryza_task_help = Field(formatter=int, default=0, regex='ryza_task_help_(.*)')
|
||||||
|
|
||||||
|
# /view/activity/atelier/atelierbufflayer.lua
|
||||||
|
# PlayerPrefs.GetInt("first_enter_ryza_buff_" .. getProxy(PlayerProxy):getRawData().id, 0)
|
||||||
|
first_enter_ryza_buff = Field(formatter=int, default=0, regex='first_enter_ryza_buff_(.*)')
|
||||||
|
|
||||||
|
# /view/activity/atelier/ateliercompositescene.lua
|
||||||
|
# PlayerPrefs.GetInt("first_enter_ryza_atelier_" .. getProxy(PlayerProxy):getRawData().id, 0)
|
||||||
|
first_enter_ryza_atelier = Field(formatter=int, default=0, regex='first_enter_ryza_atelier_(.*)')
|
||||||
|
|
||||||
|
# /view/activity/backhills/anniversaryisland2023/anniversaryislandcomposite2023scene.lua
|
||||||
|
# PlayerPrefs.GetInt("workbench_show_composite_avaliable", 0)
|
||||||
|
workbench_show_composite_avaliable = Field(formatter=int, default=0, regex='workbench_show_composite_avaliable')
|
||||||
|
|
||||||
|
# /view/activity/backhills/anniversaryisland2023/anniversaryislandhotspringscene.lua
|
||||||
|
# PlayerPrefs.GetString("hotspring_ship_pos_2023", "")
|
||||||
|
hotspring_ship_pos_2023 = Field(formatter=str, default='', regex='hotspring_ship_pos_2023')
|
||||||
|
|
||||||
|
# /view/activity/backhills/newyearfestival/newyearhotspringscene.lua
|
||||||
|
# PlayerPrefs.GetString("hotspring_ship_pos", "")
|
||||||
|
hotspring_ship_pos = Field(formatter=str, default='', regex='hotspring_ship_pos')
|
||||||
|
|
||||||
|
# /view/activity/backhills/springfestival2023/fireworkpanellayer.lua
|
||||||
|
# PlayerPrefs.GetInt("fireworks_" .. slot0.playerId .. "_pos_" .. slot5)
|
||||||
|
fireworks = Field(formatter=int, default=0, regex='fireworks_(.*)_pos_(.*)')
|
||||||
|
|
||||||
# /view/activity/banaiactivity/blackwhitegridlayer.lua
|
# /view/activity/banaiactivity/blackwhitegridlayer.lua
|
||||||
# PlayerPrefs.GetString("BlackWhiteGridMapData-" .. slot1.id .. "-" .. slot0.player.id, "")
|
# PlayerPrefs.GetString("BlackWhiteGridMapData-" .. slot1.id .. "-" .. slot0.player.id, "")
|
||||||
@ -364,6 +434,10 @@ class GameSettingsGenerated:
|
|||||||
# PlayerPrefs.GetInt("BlackWhiteGridMapIndex-" .. slot0.player.id, 1)
|
# PlayerPrefs.GetInt("BlackWhiteGridMapIndex-" .. slot0.player.id, 1)
|
||||||
BlackWhiteGridMapIndex = Field(formatter=int, default=1, regex='BlackWhiteGridMapIndex-(.*)')
|
BlackWhiteGridMapIndex = Field(formatter=int, default=1, regex='BlackWhiteGridMapIndex-(.*)')
|
||||||
|
|
||||||
|
# /view/activity/bossrush/bossrushfleetselectmediator.lua
|
||||||
|
# PlayerPrefs.GetInt("series_mode_flag" .. slot1.id, -1)
|
||||||
|
series_mode_flag = Field(formatter=int, default=-1, regex='series_mode_flag(.*)')
|
||||||
|
|
||||||
# /view/activity/decodegame/game/decodegameview.lua
|
# /view/activity/decodegame/game/decodegameview.lua
|
||||||
# PlayerPrefs.GetInt("DecodeGameHelpBg" .. getProxy(PlayerProxy):getRawData().id .. slot1, 0)
|
# PlayerPrefs.GetInt("DecodeGameHelpBg" .. getProxy(PlayerProxy):getRawData().id .. slot1, 0)
|
||||||
DecodeGameHelpBg = Field(formatter=int, default=0, regex='DecodeGameHelpBg(.*)(.*)')
|
DecodeGameHelpBg = Field(formatter=int, default=0, regex='DecodeGameHelpBg(.*)(.*)')
|
||||||
@ -388,6 +462,10 @@ class GameSettingsGenerated:
|
|||||||
# PlayerPrefs.GetInt("SuperBurinPopUp_" .. getProxy(PlayerProxy):getRawData().id, 0)
|
# PlayerPrefs.GetInt("SuperBurinPopUp_" .. getProxy(PlayerProxy):getRawData().id, 0)
|
||||||
SuperBurinPopUp = Field(formatter=int, default=0, regex='SuperBurinPopUp_(.*)')
|
SuperBurinPopUp = Field(formatter=int, default=0, regex='SuperBurinPopUp_(.*)')
|
||||||
|
|
||||||
|
# /view/activity/subpages/cardpuzzlepage.lua
|
||||||
|
# PlayerPrefs.GetInt("DAY_TIP_" .. slot0.activity.id .. "_" .. getProxy(PlayerProxy):getData().id .. "_" .. slot0.activity:getDayIndex())
|
||||||
|
pass # Duplicate
|
||||||
|
|
||||||
# /view/activity/subpages/collectioneventptpage.lua
|
# /view/activity/subpages/collectioneventptpage.lua
|
||||||
# PlayerPrefs.GetInt("ACTIVITY_TYPE_EVENT_" .. slot0.activity.id .. "_" .. getProxy(PlayerProxy):getData().id)
|
# PlayerPrefs.GetInt("ACTIVITY_TYPE_EVENT_" .. slot0.activity.id .. "_" .. getProxy(PlayerProxy):getData().id)
|
||||||
pass # Duplicate
|
pass # Duplicate
|
||||||
@ -428,6 +506,10 @@ class GameSettingsGenerated:
|
|||||||
# PlayerPrefs.GetInt("wwf_todo_task_num_" .. getProxy(PlayerProxy):getData().id)
|
# PlayerPrefs.GetInt("wwf_todo_task_num_" .. getProxy(PlayerProxy):getData().id)
|
||||||
pass # Duplicate
|
pass # Duplicate
|
||||||
|
|
||||||
|
# /view/activity/worldboss/activitybosstotalrewardpanel.lua
|
||||||
|
# PlayerPrefs.GetInt(AUTO_BATTLE_LABEL, 0)
|
||||||
|
pass # Unknown
|
||||||
|
|
||||||
# /view/activity/worldinpicture/worldinpicturescene.lua
|
# /view/activity/worldinpicture/worldinpicturescene.lua
|
||||||
# PlayerPrefs.GetString("WorldInPictureScene_1" .. getProxy(PlayerProxy):getRawData().id, "0#0")
|
# PlayerPrefs.GetString("WorldInPictureScene_1" .. getProxy(PlayerProxy):getRawData().id, "0#0")
|
||||||
WorldInPictureScene_1 = Field(formatter=str, default='0#0', regex='WorldInPictureScene_1(.*)')
|
WorldInPictureScene_1 = Field(formatter=str, default='0#0', regex='WorldInPictureScene_1(.*)')
|
||||||
@ -457,12 +539,18 @@ class GameSettingsGenerated:
|
|||||||
chapter_submarine_ai_type = Field(formatter=int, default=0, regex='chapter_submarine_ai_type_(.*)')
|
chapter_submarine_ai_type = Field(formatter=int, default=0, regex='chapter_submarine_ai_type_(.*)')
|
||||||
|
|
||||||
# /view/battle/levelscene.lua
|
# /view/battle/levelscene.lua
|
||||||
# PlayerPrefs.GetInt("ex_mapId")
|
# PlayerPrefs.GetInt("ex_mapId", 0)
|
||||||
ex_mapId = Field(formatter=int, default=0, regex='ex_mapId')
|
ex_mapId = Field(formatter=int, default=0, regex='ex_mapId')
|
||||||
# PlayerPrefs.GetString("remaster_tip")
|
# PlayerPrefs.GetInt("first_enter_ryza_buff_" .. getProxy(PlayerProxy):getRawData().id, 0)
|
||||||
remaster_tip = Field(formatter=str, default='', regex='remaster_tip')
|
pass # Duplicate
|
||||||
# PlayerPrefs.GetInt("chapter_autofight_flag_" .. uv2.id, 1)
|
|
||||||
chapter_autofight_flag = Field(formatter=int, default=1, regex='chapter_autofight_flag_(.*)')
|
# /view/battle/battleresult/pages/newbattleresultdisplayawardpage.lua
|
||||||
|
# PlayerPrefs.GetInt(DISPLAY_SHIP_GET_EFFECT)
|
||||||
|
pass # Unknown
|
||||||
|
|
||||||
|
# /view/battle/battleresult/util/newbattleresultdataextender.lua
|
||||||
|
# PlayerPrefs.GetInt(AUTO_BATTLE_LABEL, 0)
|
||||||
|
pass # Unknown
|
||||||
|
|
||||||
# /view/collection/galleryconst.lua
|
# /view/collection/galleryconst.lua
|
||||||
# PlayerPrefs.GetInt(uv0.Set_BG_Func_Save_Tag .. getProxy(PlayerProxy):getRawData().id)
|
# PlayerPrefs.GetInt(uv0.Set_BG_Func_Save_Tag .. getProxy(PlayerProxy):getRawData().id)
|
||||||
@ -484,12 +572,16 @@ class GameSettingsGenerated:
|
|||||||
# PlayerPrefs.GetInt("Tec_Ship_Gift_Enter_Tag", 0)
|
# PlayerPrefs.GetInt("Tec_Ship_Gift_Enter_Tag", 0)
|
||||||
Tec_Ship_Gift_Enter_Tag = Field(formatter=int, default=0, regex='Tec_Ship_Gift_Enter_Tag')
|
Tec_Ship_Gift_Enter_Tag = Field(formatter=int, default=0, regex='Tec_Ship_Gift_Enter_Tag')
|
||||||
|
|
||||||
# /view/level/levelfleetview.lua
|
# /view/level/levelcontinuousoperationtotalrewardpanel.lua
|
||||||
# PlayerPrefs.GetInt("autoFight_firstUse_sp", 0)
|
# PlayerPrefs.GetInt("autoFight_firstUse_sp", 0)
|
||||||
autoFight_firstUse_sp = Field(formatter=int, default=0, regex='autoFight_firstUse_sp')
|
autoFight_firstUse_sp = Field(formatter=int, default=0, regex='autoFight_firstUse_sp')
|
||||||
|
|
||||||
|
# /view/level/levelfleetview.lua
|
||||||
|
# PlayerPrefs.GetInt("autoFight_firstUse_sp", 0)
|
||||||
|
pass # Duplicate
|
||||||
# PlayerPrefs.GetInt(uv0, 1)
|
# PlayerPrefs.GetInt(uv0, 1)
|
||||||
pass # Unknown
|
pass # Unknown
|
||||||
# PlayerPrefs.GetInt(uv0, 1)
|
# PlayerPrefs.GetInt(uv1, 1)
|
||||||
pass # Unknown
|
pass # Unknown
|
||||||
# PlayerPrefs.GetInt("lastFleetDuty_" .. (slot0.chapter.id or 0), 0)
|
# PlayerPrefs.GetInt("lastFleetDuty_" .. (slot0.chapter.id or 0), 0)
|
||||||
lastFleetDuty = Field(formatter=int, default=0, regex='lastFleetDuty_(.*)')
|
lastFleetDuty = Field(formatter=int, default=0, regex='lastFleetDuty_(.*)')
|
||||||
@ -503,15 +595,13 @@ class GameSettingsGenerated:
|
|||||||
pass # Unknown
|
pass # Unknown
|
||||||
# PlayerPrefs.GetInt(uv0, 1)
|
# PlayerPrefs.GetInt(uv0, 1)
|
||||||
pass # Unknown
|
pass # Unknown
|
||||||
# PlayerPrefs.GetInt(Chapter.GetSPOperationItemCacheKey(slot0.chapter.id), 0)
|
|
||||||
pass # Unknown
|
|
||||||
|
|
||||||
# /view/level/levelinfoview.lua
|
# /view/level/levelinfoview.lua
|
||||||
# PlayerPrefs.GetInt("chapter_loop_flag_" .. slot1.id, -1)
|
# PlayerPrefs.GetInt("chapter_loop_flag_" .. slot1.id, -1)
|
||||||
chapter_loop_flag = Field(formatter=int, default=-1, regex='chapter_loop_flag_(.*)')
|
chapter_loop_flag = Field(formatter=int, default=-1, regex='chapter_loop_flag_(.*)')
|
||||||
# PlayerPrefs.GetInt("chapter_autofight_flag_" .. slot1.id, 1)
|
# PlayerPrefs.GetInt("chapter_autofight_flag_" .. slot1.id, 1)
|
||||||
pass # Duplicate
|
pass # Duplicate
|
||||||
# PlayerPrefs.GetInt("chapter_quickPlay_flag_" .. slot1.id, 0)
|
# PlayerPrefs.GetInt("chapter_quickPlay_flag_" .. slot1.id, 1)
|
||||||
pass # Duplicate
|
pass # Duplicate
|
||||||
|
|
||||||
# /view/level/leveloperationitempanel.lua
|
# /view/level/leveloperationitempanel.lua
|
||||||
@ -534,18 +624,40 @@ class GameSettingsGenerated:
|
|||||||
# PlayerPrefs.GetInt("help_displayed_on_" .. uv1.id, 0)
|
# PlayerPrefs.GetInt("help_displayed_on_" .. uv1.id, 0)
|
||||||
help_displayed_on = Field(formatter=int, default=0, regex='help_displayed_on_(.*)')
|
help_displayed_on = Field(formatter=int, default=0, regex='help_displayed_on_(.*)')
|
||||||
|
|
||||||
|
# /view/limitchallenge/limitchallengeconst.lua
|
||||||
|
# PlayerPrefs.GetInt(uv0.RedPointKey, 0)
|
||||||
|
pass # Unknown
|
||||||
|
|
||||||
# /view/login/loginscene.lua
|
# /view/login/loginscene.lua
|
||||||
# PlayerPrefs.GetString("op_ver", "")
|
# PlayerPrefs.GetString("op_ver", "")
|
||||||
op_ver = Field(formatter=str, default='', regex='op_ver')
|
op_ver = Field(formatter=str, default='', regex='op_ver')
|
||||||
|
|
||||||
|
# /view/main/mailmediator.lua
|
||||||
|
# PlayerPrefs.GetInt("help_research_package", 0)
|
||||||
|
help_research_package = Field(formatter=int, default=0, regex='help_research_package')
|
||||||
|
|
||||||
# /view/main/trainingcampscene.lua
|
# /view/main/trainingcampscene.lua
|
||||||
# PlayerPrefs.GetInt("TrainCamp_Tec_Catchup_First_Tag", 0)
|
# PlayerPrefs.GetInt("TrainCamp_Tec_Catchup_First_Tag", 0)
|
||||||
TrainCamp_Tec_Catchup_First_Tag = Field(formatter=int, default=0, regex='TrainCamp_Tec_Catchup_First_Tag')
|
TrainCamp_Tec_Catchup_First_Tag = Field(formatter=int, default=0, regex='TrainCamp_Tec_Catchup_First_Tag')
|
||||||
|
|
||||||
|
# /view/main/skinshop/skinshopscene.lua
|
||||||
|
# PlayerPrefs.GetInt("skinShop#l2dPreViewToggle" .. getProxy(PlayerProxy):getRawData().id, 0)
|
||||||
|
skinShop#l2dPreViewToggle = Field(formatter=int, default=0, regex='skinShop#l2dPreViewToggle(.*)')
|
||||||
|
|
||||||
|
# /view/mediacollection/worldmediacollectionmemorygrouplayer.lua
|
||||||
|
# PlayerPrefs.GetInt("MEMORY_GROUP_NOTIFICATION" .. getProxy(PlayerProxy):getRawData().id .. " " .. slot3.id, 0)
|
||||||
|
pass # Duplicate
|
||||||
|
# PlayerPrefs.GetInt("MEMORY_GROUP_NOTIFICATION" .. slot2 .. " " .. slot7.id, 0)
|
||||||
|
pass # Duplicate
|
||||||
|
|
||||||
# /view/minigame/gameview/decodeminigameview.lua
|
# /view/minigame/gameview/decodeminigameview.lua
|
||||||
# PlayerPrefs.GetInt("DecodeGameMapId", 1)
|
# PlayerPrefs.GetInt("DecodeGameMapId", 1)
|
||||||
DecodeGameMapId = Field(formatter=int, default=1, regex='DecodeGameMapId')
|
DecodeGameMapId = Field(formatter=int, default=1, regex='DecodeGameMapId')
|
||||||
|
|
||||||
|
# /view/minigame/gameview/gameroomqteview.lua
|
||||||
|
# PlayerPrefs.GetInt("QTEGameGuide", 0)
|
||||||
|
QTEGameGuide = Field(formatter=int, default=0, regex='QTEGameGuide')
|
||||||
|
|
||||||
# /view/minigame/gameview/musicgameview.lua
|
# /view/minigame/gameview/musicgameview.lua
|
||||||
# PlayerPrefs.GetInt("musicgame_first_" .. getProxy(PlayerProxy):getData().id)
|
# PlayerPrefs.GetInt("musicgame_first_" .. getProxy(PlayerProxy):getData().id)
|
||||||
musicgame_first = Field(formatter=int, default=0, regex='musicgame_first_(.*)')
|
musicgame_first = Field(formatter=int, default=0, regex='musicgame_first_(.*)')
|
||||||
@ -554,7 +666,11 @@ class GameSettingsGenerated:
|
|||||||
|
|
||||||
# /view/minigame/gameview/qtegameview.lua
|
# /view/minigame/gameview/qtegameview.lua
|
||||||
# PlayerPrefs.GetInt("QTEGameGuide", 0)
|
# PlayerPrefs.GetInt("QTEGameGuide", 0)
|
||||||
QTEGameGuide = Field(formatter=int, default=0, regex='QTEGameGuide')
|
pass # Duplicate
|
||||||
|
|
||||||
|
# /view/minigame/gameview/ryzaminigameview.lua
|
||||||
|
# PlayerPrefs.GetInt("ryza_minigame_help", 0)
|
||||||
|
ryza_minigame_help = Field(formatter=int, default=0, regex='ryza_minigame_help')
|
||||||
|
|
||||||
# /view/minigame/gameview/volleyballgameview.lua
|
# /view/minigame/gameview/volleyballgameview.lua
|
||||||
# PlayerPrefs.GetInt("volleyballgame_first_" .. getProxy(PlayerProxy):getData().id)
|
# PlayerPrefs.GetInt("volleyballgame_first_" .. getProxy(PlayerProxy):getData().id)
|
||||||
@ -578,6 +694,12 @@ class GameSettingsGenerated:
|
|||||||
# PlayerPrefs.GetInt("ItemIconChange_" .. slot2.equipID, 0)
|
# PlayerPrefs.GetInt("ItemIconChange_" .. slot2.equipID, 0)
|
||||||
ItemIconChange = Field(formatter=int, default=0, regex='ItemIconChange_(.*)')
|
ItemIconChange = Field(formatter=int, default=0, regex='ItemIconChange_(.*)')
|
||||||
|
|
||||||
|
# /view/newmain/sequence/mainguidesequence.lua
|
||||||
|
# PlayerPrefs.GetInt("ryza_task_help_" .. getProxy(PlayerProxy):getRawData().id, 0)
|
||||||
|
pass # Duplicate
|
||||||
|
# PlayerPrefs.GetInt("first_enter_ryza_atelier_" .. getProxy(PlayerProxy):getRawData().id, 0)
|
||||||
|
pass # Duplicate
|
||||||
|
|
||||||
# /view/newmain/view/mainchatroomview.lua
|
# /view/newmain/view/mainchatroomview.lua
|
||||||
# PlayerPrefs.GetInt(HIDE_CHAT_FLAG)
|
# PlayerPrefs.GetInt(HIDE_CHAT_FLAG)
|
||||||
pass # Unknown
|
pass # Unknown
|
||||||
@ -590,6 +712,14 @@ class GameSettingsGenerated:
|
|||||||
# PlayerPrefs.GetInt("paint_hide_other_obj_" .. slot0.painting.paintingName, 0)
|
# PlayerPrefs.GetInt("paint_hide_other_obj_" .. slot0.painting.paintingName, 0)
|
||||||
pass # Duplicate
|
pass # Duplicate
|
||||||
|
|
||||||
|
# /view/reflux/refluxscene.lua
|
||||||
|
# PlayerPrefs.GetInt(getProxy(PlayerProxy):getRawData().id .. "_" .. getProxy(RefluxProxy).returnTimestamp, 0)
|
||||||
|
pass # Unknown
|
||||||
|
|
||||||
|
# /view/reflux/refluxshopview.lua
|
||||||
|
# PlayerPrefs.GetInt("RefluxShop_Enter_Day", 0)
|
||||||
|
RefluxShop_Enter_Day = Field(formatter=int, default=0, regex='RefluxShop_Enter_Day')
|
||||||
|
|
||||||
# /view/setting/newsettingsscene.lua
|
# /view/setting/newsettingsscene.lua
|
||||||
# PlayerPrefs.GetFloat("firstIntoOtherPanel")
|
# PlayerPrefs.GetFloat("firstIntoOtherPanel")
|
||||||
pass # Duplicate
|
pass # Duplicate
|
||||||
@ -694,6 +824,10 @@ class GameSettingsGenerated:
|
|||||||
# PlayerPrefs.GetInt("newserver_shop_first_" .. slot0.playerId)
|
# PlayerPrefs.GetInt("newserver_shop_first_" .. slot0.playerId)
|
||||||
pass # Duplicate
|
pass # Duplicate
|
||||||
|
|
||||||
|
# /view/shops/skinshop/views/newskinshopmainview.lua
|
||||||
|
# PlayerPrefs.GetInt("skinShop#l2dPreViewToggle" .. getProxy(PlayerProxy):getRawData().id, 0)
|
||||||
|
pass # Duplicate
|
||||||
|
|
||||||
# /view/snapshot/snapshotscene.lua
|
# /view/snapshot/snapshotscene.lua
|
||||||
# PlayerPrefs.GetInt("hadShowForVideoTip")
|
# PlayerPrefs.GetInt("hadShowForVideoTip")
|
||||||
hadShowForVideoTip = Field(formatter=int, default=0, regex='hadShowForVideoTip')
|
hadShowForVideoTip = Field(formatter=int, default=0, regex='hadShowForVideoTip')
|
||||||
@ -704,6 +838,10 @@ class GameSettingsGenerated:
|
|||||||
# PlayerPrefs.GetInt("snapshotAgress")
|
# PlayerPrefs.GetInt("snapshotAgress")
|
||||||
snapshotAgress = Field(formatter=int, default=0, regex='snapshotAgress')
|
snapshotAgress = Field(formatter=int, default=0, regex='snapshotAgress')
|
||||||
|
|
||||||
|
# /view/technology/selecttechnologymediator.lua
|
||||||
|
# PlayerPrefs.GetString("technology_day_mark", "")
|
||||||
|
technology_day_mark = Field(formatter=str, default='', regex='technology_day_mark')
|
||||||
|
|
||||||
# /view/technology/technologysettingslayer.lua
|
# /view/technology/technologysettingslayer.lua
|
||||||
# PlayerPrefs.GetInt("isShowFinishCatchupVersion")
|
# PlayerPrefs.GetInt("isShowFinishCatchupVersion")
|
||||||
isShowFinishCatchupVersion = Field(formatter=int, default=0, regex='isShowFinishCatchupVersion')
|
isShowFinishCatchupVersion = Field(formatter=int, default=0, regex='isShowFinishCatchupVersion')
|
||||||
@ -715,6 +853,12 @@ class GameSettingsGenerated:
|
|||||||
pass # Duplicate
|
pass # Duplicate
|
||||||
# PlayerPrefs.GetInt("world_sub_call_line", 0)
|
# PlayerPrefs.GetInt("world_sub_call_line", 0)
|
||||||
pass # Duplicate
|
pass # Duplicate
|
||||||
|
# PlayerPrefs.GetInt("world_skip_precombat", 0)
|
||||||
|
pass # Duplicate
|
||||||
|
# PlayerPrefs.GetInt("auto_switch_mode", 0)
|
||||||
|
pass # Duplicate
|
||||||
|
# PlayerPrefs.GetInt("auto_switch_mode", 0)
|
||||||
|
pass # Duplicate
|
||||||
# PlayerPrefs.GetInt("auto_switch_mode", 0)
|
# PlayerPrefs.GetInt("auto_switch_mode", 0)
|
||||||
pass # Duplicate
|
pass # Duplicate
|
||||||
|
|
||||||
@ -727,11 +871,7 @@ class GameSettingsGenerated:
|
|||||||
auto_switch_wait_2 = Field(formatter=int, default=0, regex='auto_switch_wait_2')
|
auto_switch_wait_2 = Field(formatter=int, default=0, regex='auto_switch_wait_2')
|
||||||
# PlayerPrefs.GetInt("auto_switch_mode", 0)
|
# PlayerPrefs.GetInt("auto_switch_mode", 0)
|
||||||
pass # Duplicate
|
pass # Duplicate
|
||||||
# PlayerPrefs.GetString(slot6, slot7)
|
# PlayerPrefs.GetString(slot4, slot5)
|
||||||
|
pass # Unknown
|
||||||
|
# PlayerPrefs.GetString(slot4, slot5)
|
||||||
pass # Unknown
|
pass # Unknown
|
||||||
|
|
||||||
# /view/world/worldmediacollection/worldmediacollectionmemorygrouplayer.lua
|
|
||||||
# PlayerPrefs.GetInt("MEMORY_GROUP_NOTIFICATION" .. getProxy(PlayerProxy):getRawData().id .. " " .. slot3.id, 0)
|
|
||||||
pass # Duplicate
|
|
||||||
# PlayerPrefs.GetInt("MEMORY_GROUP_NOTIFICATION" .. slot2 .. " " .. slot7.id, 0)
|
|
||||||
pass # Duplicate
|
|
||||||
|
@ -148,12 +148,19 @@ class MeowfficerCollect(MeowfficerBase):
|
|||||||
Handle skip transitions; proceeds slowly
|
Handle skip transitions; proceeds slowly
|
||||||
with caution to prevent unintentional actions
|
with caution to prevent unintentional actions
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
def additional():
|
||||||
|
if self.appear(MEOWFFICER_TRAIN_EVALUATE, offset=(20, 20), interval=3):
|
||||||
|
self.device.click(MEOWFFICER_TRAIN_EVALUATE)
|
||||||
|
return True
|
||||||
|
return False
|
||||||
|
|
||||||
# Trigger lock popup appearance to initiate sequence
|
# Trigger lock popup appearance to initiate sequence
|
||||||
self.ui_click(MEOWFFICER_TRAIN_CLICK_SAFE_AREA,
|
self.ui_click(MEOWFFICER_TRAIN_CLICK_SAFE_AREA,
|
||||||
appear_button=MEOWFFICER_GET_CHECK, check_button=MEOWFFICER_CONFIRM,
|
appear_button=MEOWFFICER_GET_CHECK, check_button=MEOWFFICER_CONFIRM, additional=additional,
|
||||||
offset=(40, 40), retry_wait=3, skip_first_screenshot=True)
|
offset=(40, 40), retry_wait=3, skip_first_screenshot=True)
|
||||||
|
|
||||||
self.ui_click(MEOWFFICER_CANCEL, check_button=self._meow_check_popup_exit,
|
self.ui_click(MEOWFFICER_CANCEL, check_button=self._meow_check_popup_exit, additional=additional,
|
||||||
offset=(40, 20), retry_wait=3, skip_first_screenshot=True)
|
offset=(40, 20), retry_wait=3, skip_first_screenshot=True)
|
||||||
self.device.click_record.pop()
|
self.device.click_record.pop()
|
||||||
self.device.click_record.pop()
|
self.device.click_record.pop()
|
||||||
|
@ -872,7 +872,7 @@ class OperationSiren(OSMap):
|
|||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
self = OperationSiren('month_test', task='OpsiMonthBoss')
|
self = OperationSiren('alas', task='OpsiExplore')
|
||||||
from module.os.config import OSConfig
|
from module.os.config import OSConfig
|
||||||
|
|
||||||
self.config = self.config.merge(OSConfig())
|
self.config = self.config.merge(OSConfig())
|
||||||
@ -880,5 +880,5 @@ if __name__ == '__main__':
|
|||||||
self.device.screenshot()
|
self.device.screenshot()
|
||||||
self.os_init()
|
self.os_init()
|
||||||
|
|
||||||
logger.hr("OS clear Month Boss", level=1)
|
# logger.hr("OS clear Month Boss", level=1)
|
||||||
self.clear_month_boss()
|
self.os_shop()
|
||||||
|
@ -24,6 +24,7 @@ ENTRANCE_3 = Button(area={'cn': (540, 135, 732, 265), 'en': (540, 135, 732, 265)
|
|||||||
ENTRANCE_4 = Button(area={'cn': (782, 159, 951, 275), 'en': (782, 159, 951, 275), 'jp': (782, 159, 951, 275), 'tw': (782, 159, 951, 275)}, color={'cn': (80, 153, 218), 'en': (80, 153, 218), 'jp': (80, 153, 218), 'tw': (80, 153, 218)}, button={'cn': (782, 159, 951, 275), 'en': (782, 159, 951, 275), 'jp': (782, 159, 951, 275), 'tw': (782, 159, 951, 275)}, file={'cn': './assets/cn/research/ENTRANCE_4.png', 'en': './assets/en/research/ENTRANCE_4.png', 'jp': './assets/jp/research/ENTRANCE_4.png', 'tw': './assets/tw/research/ENTRANCE_4.png'})
|
ENTRANCE_4 = Button(area={'cn': (782, 159, 951, 275), 'en': (782, 159, 951, 275), 'jp': (782, 159, 951, 275), 'tw': (782, 159, 951, 275)}, color={'cn': (80, 153, 218), 'en': (80, 153, 218), 'jp': (80, 153, 218), 'tw': (80, 153, 218)}, button={'cn': (782, 159, 951, 275), 'en': (782, 159, 951, 275), 'jp': (782, 159, 951, 275), 'tw': (782, 159, 951, 275)}, file={'cn': './assets/cn/research/ENTRANCE_4.png', 'en': './assets/en/research/ENTRANCE_4.png', 'jp': './assets/jp/research/ENTRANCE_4.png', 'tw': './assets/tw/research/ENTRANCE_4.png'})
|
||||||
ENTRANCE_5 = Button(area={'cn': (1025, 186, 1169, 287), 'en': (1025, 186, 1169, 287), 'jp': (1025, 186, 1169, 287), 'tw': (1025, 186, 1169, 287)}, color={'cn': (80, 153, 218), 'en': (80, 153, 218), 'jp': (80, 153, 218), 'tw': (80, 153, 218)}, button={'cn': (1025, 186, 1169, 287), 'en': (1025, 186, 1169, 287), 'jp': (1025, 186, 1169, 287), 'tw': (1025, 186, 1169, 287)}, file={'cn': './assets/cn/research/ENTRANCE_5.png', 'en': './assets/en/research/ENTRANCE_5.png', 'jp': './assets/jp/research/ENTRANCE_5.png', 'tw': './assets/tw/research/ENTRANCE_5.png'})
|
ENTRANCE_5 = Button(area={'cn': (1025, 186, 1169, 287), 'en': (1025, 186, 1169, 287), 'jp': (1025, 186, 1169, 287), 'tw': (1025, 186, 1169, 287)}, color={'cn': (80, 153, 218), 'en': (80, 153, 218), 'jp': (80, 153, 218), 'tw': (80, 153, 218)}, button={'cn': (1025, 186, 1169, 287), 'en': (1025, 186, 1169, 287), 'jp': (1025, 186, 1169, 287), 'tw': (1025, 186, 1169, 287)}, file={'cn': './assets/cn/research/ENTRANCE_5.png', 'en': './assets/en/research/ENTRANCE_5.png', 'jp': './assets/jp/research/ENTRANCE_5.png', 'tw': './assets/tw/research/ENTRANCE_5.png'})
|
||||||
GET_ITEMS_RESEARCH_SAVE = Button(area={'cn': (357, 643, 497, 701), 'en': (357, 643, 497, 701), 'jp': (357, 643, 497, 701), 'tw': (357, 643, 497, 701)}, color={'cn': (54, 65, 83), 'en': (54, 65, 83), 'jp': (54, 65, 83), 'tw': (54, 65, 83)}, button={'cn': (357, 643, 497, 701), 'en': (357, 643, 497, 701), 'jp': (357, 643, 497, 701), 'tw': (357, 643, 497, 701)}, file={'cn': './assets/cn/research/GET_ITEMS_RESEARCH_SAVE.png', 'en': './assets/en/research/GET_ITEMS_RESEARCH_SAVE.png', 'jp': './assets/jp/research/GET_ITEMS_RESEARCH_SAVE.png', 'tw': './assets/tw/research/GET_ITEMS_RESEARCH_SAVE.png'})
|
GET_ITEMS_RESEARCH_SAVE = Button(area={'cn': (357, 643, 497, 701), 'en': (357, 643, 497, 701), 'jp': (357, 643, 497, 701), 'tw': (357, 643, 497, 701)}, color={'cn': (54, 65, 83), 'en': (54, 65, 83), 'jp': (54, 65, 83), 'tw': (54, 65, 83)}, button={'cn': (357, 643, 497, 701), 'en': (357, 643, 497, 701), 'jp': (357, 643, 497, 701), 'tw': (357, 643, 497, 701)}, file={'cn': './assets/cn/research/GET_ITEMS_RESEARCH_SAVE.png', 'en': './assets/en/research/GET_ITEMS_RESEARCH_SAVE.png', 'jp': './assets/jp/research/GET_ITEMS_RESEARCH_SAVE.png', 'tw': './assets/tw/research/GET_ITEMS_RESEARCH_SAVE.png'})
|
||||||
|
HAS_RESEARCH_QUEUE = Button(area={'cn': (44, 216, 64, 236), 'en': (44, 216, 64, 236), 'jp': (44, 216, 64, 236), 'tw': (44, 216, 64, 236)}, color={'cn': (50, 54, 82), 'en': (50, 54, 82), 'jp': (50, 54, 82), 'tw': (50, 54, 82)}, button={'cn': (44, 216, 64, 236), 'en': (44, 216, 64, 236), 'jp': (44, 216, 64, 236), 'tw': (44, 216, 64, 236)}, file={'cn': './assets/cn/research/HAS_RESEARCH_QUEUE.png', 'en': './assets/cn/research/HAS_RESEARCH_QUEUE.png', 'jp': './assets/cn/research/HAS_RESEARCH_QUEUE.png', 'tw': './assets/cn/research/HAS_RESEARCH_QUEUE.png'})
|
||||||
ITEMS_3_SWIPE = Button(area={'cn': (693, 219, 715, 503), 'en': (693, 219, 715, 503), 'jp': (693, 219, 715, 503), 'tw': (693, 219, 715, 503)}, color={'cn': (78, 70, 55), 'en': (78, 70, 55), 'jp': (78, 70, 55), 'tw': (78, 70, 55)}, button={'cn': (693, 219, 715, 503), 'en': (693, 219, 715, 503), 'jp': (693, 219, 715, 503), 'tw': (693, 219, 715, 503)}, file={'cn': './assets/cn/research/ITEMS_3_SWIPE.png', 'en': './assets/en/research/ITEMS_3_SWIPE.png', 'jp': './assets/jp/research/ITEMS_3_SWIPE.png', 'tw': './assets/tw/research/ITEMS_3_SWIPE.png'})
|
ITEMS_3_SWIPE = Button(area={'cn': (693, 219, 715, 503), 'en': (693, 219, 715, 503), 'jp': (693, 219, 715, 503), 'tw': (693, 219, 715, 503)}, color={'cn': (78, 70, 55), 'en': (78, 70, 55), 'jp': (78, 70, 55), 'tw': (78, 70, 55)}, button={'cn': (693, 219, 715, 503), 'en': (693, 219, 715, 503), 'jp': (693, 219, 715, 503), 'tw': (693, 219, 715, 503)}, file={'cn': './assets/cn/research/ITEMS_3_SWIPE.png', 'en': './assets/en/research/ITEMS_3_SWIPE.png', 'jp': './assets/jp/research/ITEMS_3_SWIPE.png', 'tw': './assets/tw/research/ITEMS_3_SWIPE.png'})
|
||||||
OCR_RESEARCH_1 = Button(area={'cn': (78, 277, 249, 330), 'en': (78, 277, 249, 330), 'jp': (78, 277, 249, 330), 'tw': (78, 277, 249, 330)}, color={'cn': (139, 160, 196), 'en': (139, 160, 196), 'jp': (139, 160, 196), 'tw': (139, 160, 196)}, button={'cn': (78, 277, 249, 330), 'en': (78, 277, 249, 330), 'jp': (78, 277, 249, 330), 'tw': (78, 277, 249, 330)}, file={'cn': './assets/cn/research/OCR_RESEARCH_1.png', 'en': './assets/en/research/OCR_RESEARCH_1.png', 'jp': './assets/jp/research/OCR_RESEARCH_1.png', 'tw': './assets/tw/research/OCR_RESEARCH_1.png'})
|
OCR_RESEARCH_1 = Button(area={'cn': (78, 277, 249, 330), 'en': (78, 277, 249, 330), 'jp': (78, 277, 249, 330), 'tw': (78, 277, 249, 330)}, color={'cn': (139, 160, 196), 'en': (139, 160, 196), 'jp': (139, 160, 196), 'tw': (139, 160, 196)}, button={'cn': (78, 277, 249, 330), 'en': (78, 277, 249, 330), 'jp': (78, 277, 249, 330), 'tw': (78, 277, 249, 330)}, file={'cn': './assets/cn/research/OCR_RESEARCH_1.png', 'en': './assets/en/research/OCR_RESEARCH_1.png', 'jp': './assets/jp/research/OCR_RESEARCH_1.png', 'tw': './assets/tw/research/OCR_RESEARCH_1.png'})
|
||||||
OCR_RESEARCH_2 = Button(area={'cn': (292, 263, 490, 325), 'en': (292, 263, 490, 325), 'jp': (292, 263, 490, 325), 'tw': (292, 263, 490, 325)}, color={'cn': (122, 153, 201), 'en': (122, 153, 201), 'jp': (122, 153, 201), 'tw': (122, 153, 201)}, button={'cn': (292, 263, 490, 325), 'en': (292, 263, 490, 325), 'jp': (292, 263, 490, 325), 'tw': (292, 263, 490, 325)}, file={'cn': './assets/cn/research/OCR_RESEARCH_2.png', 'en': './assets/en/research/OCR_RESEARCH_2.png', 'jp': './assets/jp/research/OCR_RESEARCH_2.png', 'tw': './assets/tw/research/OCR_RESEARCH_2.png'})
|
OCR_RESEARCH_2 = Button(area={'cn': (292, 263, 490, 325), 'en': (292, 263, 490, 325), 'jp': (292, 263, 490, 325), 'tw': (292, 263, 490, 325)}, color={'cn': (122, 153, 201), 'en': (122, 153, 201), 'jp': (122, 153, 201), 'tw': (122, 153, 201)}, button={'cn': (292, 263, 490, 325), 'en': (292, 263, 490, 325), 'jp': (292, 263, 490, 325), 'tw': (292, 263, 490, 325)}, file={'cn': './assets/cn/research/OCR_RESEARCH_2.png', 'en': './assets/en/research/OCR_RESEARCH_2.png', 'jp': './assets/jp/research/OCR_RESEARCH_2.png', 'tw': './assets/tw/research/OCR_RESEARCH_2.png'})
|
||||||
@ -32,7 +33,17 @@ OCR_RESEARCH_4 = Button(area={'cn': (752, 263, 950, 325), 'en': (752, 263, 950,
|
|||||||
OCR_RESEARCH_5 = Button(area={'cn': (998, 276, 1169, 329), 'en': (998, 276, 1169, 329), 'jp': (998, 276, 1169, 329), 'tw': (998, 276, 1169, 329)}, color={'cn': (124, 156, 204), 'en': (124, 156, 204), 'jp': (124, 156, 204), 'tw': (124, 156, 204)}, button={'cn': (998, 276, 1169, 329), 'en': (998, 276, 1169, 329), 'jp': (998, 276, 1169, 329), 'tw': (998, 276, 1169, 329)}, file={'cn': './assets/cn/research/OCR_RESEARCH_5.png', 'en': './assets/en/research/OCR_RESEARCH_5.png', 'jp': './assets/jp/research/OCR_RESEARCH_5.png', 'tw': './assets/tw/research/OCR_RESEARCH_5.png'})
|
OCR_RESEARCH_5 = Button(area={'cn': (998, 276, 1169, 329), 'en': (998, 276, 1169, 329), 'jp': (998, 276, 1169, 329), 'tw': (998, 276, 1169, 329)}, color={'cn': (124, 156, 204), 'en': (124, 156, 204), 'jp': (124, 156, 204), 'tw': (124, 156, 204)}, button={'cn': (998, 276, 1169, 329), 'en': (998, 276, 1169, 329), 'jp': (998, 276, 1169, 329), 'tw': (998, 276, 1169, 329)}, file={'cn': './assets/cn/research/OCR_RESEARCH_5.png', 'en': './assets/en/research/OCR_RESEARCH_5.png', 'jp': './assets/jp/research/OCR_RESEARCH_5.png', 'tw': './assets/tw/research/OCR_RESEARCH_5.png'})
|
||||||
QUEUE_CHECK = Button(area={'cn': (118, 16, 227, 39), 'en': (117, 16, 215, 38), 'jp': (116, 14, 232, 42), 'tw': (118, 14, 227, 39)}, color={'cn': (149, 166, 205), 'en': (125, 139, 179), 'jp': (147, 163, 199), 'tw': (155, 171, 210)}, button={'cn': (118, 16, 227, 39), 'en': (117, 16, 215, 38), 'jp': (116, 14, 232, 42), 'tw': (118, 14, 227, 39)}, file={'cn': './assets/cn/research/QUEUE_CHECK.png', 'en': './assets/en/research/QUEUE_CHECK.png', 'jp': './assets/jp/research/QUEUE_CHECK.png', 'tw': './assets/tw/research/QUEUE_CHECK.png'})
|
QUEUE_CHECK = Button(area={'cn': (118, 16, 227, 39), 'en': (117, 16, 215, 38), 'jp': (116, 14, 232, 42), 'tw': (118, 14, 227, 39)}, color={'cn': (149, 166, 205), 'en': (125, 139, 179), 'jp': (147, 163, 199), 'tw': (155, 171, 210)}, button={'cn': (118, 16, 227, 39), 'en': (117, 16, 215, 38), 'jp': (116, 14, 232, 42), 'tw': (118, 14, 227, 39)}, file={'cn': './assets/cn/research/QUEUE_CHECK.png', 'en': './assets/en/research/QUEUE_CHECK.png', 'jp': './assets/jp/research/QUEUE_CHECK.png', 'tw': './assets/tw/research/QUEUE_CHECK.png'})
|
||||||
QUEUE_CLAIM_REWARD = Button(area={'cn': (1230, 275, 1272, 420), 'en': (1225, 258, 1270, 448), 'jp': (1219, 254, 1279, 460), 'tw': (1219, 253, 1280, 460)}, color={'cn': (249, 182, 121), 'en': (249, 171, 97), 'jp': (249, 170, 97), 'tw': (249, 174, 102)}, button={'cn': (1230, 275, 1272, 420), 'en': (1225, 258, 1270, 448), 'jp': (1219, 254, 1279, 460), 'tw': (1219, 253, 1280, 460)}, file={'cn': './assets/cn/research/QUEUE_CLAIM_REWARD.png', 'en': './assets/en/research/QUEUE_CLAIM_REWARD.png', 'jp': './assets/jp/research/QUEUE_CLAIM_REWARD.png', 'tw': './assets/tw/research/QUEUE_CLAIM_REWARD.png'})
|
QUEUE_CLAIM_REWARD = Button(area={'cn': (1230, 275, 1272, 420), 'en': (1225, 258, 1270, 448), 'jp': (1219, 254, 1279, 460), 'tw': (1219, 253, 1280, 460)}, color={'cn': (249, 182, 121), 'en': (249, 171, 97), 'jp': (249, 170, 97), 'tw': (249, 174, 102)}, button={'cn': (1230, 275, 1272, 420), 'en': (1225, 258, 1270, 448), 'jp': (1219, 254, 1279, 460), 'tw': (1219, 253, 1280, 460)}, file={'cn': './assets/cn/research/QUEUE_CLAIM_REWARD.png', 'en': './assets/en/research/QUEUE_CLAIM_REWARD.png', 'jp': './assets/jp/research/QUEUE_CLAIM_REWARD.png', 'tw': './assets/tw/research/QUEUE_CLAIM_REWARD.png'})
|
||||||
|
QUEUE_OCR_RESEARCH_1 = Button(area={'cn': (56, 280, 270, 346), 'en': (56, 280, 270, 346), 'jp': (56, 280, 270, 346), 'tw': (56, 280, 270, 346)}, color={'cn': (122, 154, 200), 'en': (122, 154, 200), 'jp': (122, 154, 200), 'tw': (122, 154, 200)}, button={'cn': (56, 280, 270, 346), 'en': (56, 280, 270, 346), 'jp': (56, 280, 270, 346), 'tw': (56, 280, 270, 346)}, file={'cn': './assets/cn/research/QUEUE_OCR_RESEARCH_1.png', 'en': './assets/cn/research/QUEUE_OCR_RESEARCH_1.png', 'jp': './assets/cn/research/QUEUE_OCR_RESEARCH_1.png', 'tw': './assets/cn/research/QUEUE_OCR_RESEARCH_1.png'})
|
||||||
|
QUEUE_OCR_RESEARCH_2 = Button(area={'cn': (283, 281, 497, 347), 'en': (283, 281, 497, 347), 'jp': (283, 281, 497, 347), 'tw': (283, 281, 497, 347)}, color={'cn': (202, 178, 142), 'en': (202, 178, 142), 'jp': (202, 178, 142), 'tw': (202, 178, 142)}, button={'cn': (283, 281, 497, 347), 'en': (283, 281, 497, 347), 'jp': (283, 281, 497, 347), 'tw': (283, 281, 497, 347)}, file={'cn': './assets/cn/research/QUEUE_OCR_RESEARCH_2.png', 'en': './assets/cn/research/QUEUE_OCR_RESEARCH_2.png', 'jp': './assets/cn/research/QUEUE_OCR_RESEARCH_2.png', 'tw': './assets/cn/research/QUEUE_OCR_RESEARCH_2.png'})
|
||||||
|
QUEUE_OCR_RESEARCH_3 = Button(area={'cn': (513, 280, 727, 346), 'en': (513, 280, 727, 346), 'jp': (513, 280, 727, 346), 'tw': (513, 280, 727, 346)}, color={'cn': (122, 155, 203), 'en': (122, 155, 203), 'jp': (122, 155, 203), 'tw': (122, 155, 203)}, button={'cn': (513, 280, 727, 346), 'en': (513, 280, 727, 346), 'jp': (513, 280, 727, 346), 'tw': (513, 280, 727, 346)}, file={'cn': './assets/cn/research/QUEUE_OCR_RESEARCH_3.png', 'en': './assets/cn/research/QUEUE_OCR_RESEARCH_3.png', 'jp': './assets/cn/research/QUEUE_OCR_RESEARCH_3.png', 'tw': './assets/cn/research/QUEUE_OCR_RESEARCH_3.png'})
|
||||||
|
QUEUE_OCR_RESEARCH_4 = Button(area={'cn': (739, 281, 953, 347), 'en': (739, 281, 953, 347), 'jp': (739, 281, 953, 347), 'tw': (739, 281, 953, 347)}, color={'cn': (202, 178, 143), 'en': (202, 178, 143), 'jp': (202, 178, 143), 'tw': (202, 178, 143)}, button={'cn': (739, 281, 953, 347), 'en': (739, 281, 953, 347), 'jp': (739, 281, 953, 347), 'tw': (739, 281, 953, 347)}, file={'cn': './assets/cn/research/QUEUE_OCR_RESEARCH_4.png', 'en': './assets/cn/research/QUEUE_OCR_RESEARCH_4.png', 'jp': './assets/cn/research/QUEUE_OCR_RESEARCH_4.png', 'tw': './assets/cn/research/QUEUE_OCR_RESEARCH_4.png'})
|
||||||
|
QUEUE_OCR_RESEARCH_5 = Button(area={'cn': (969, 280, 1183, 346), 'en': (969, 280, 1183, 346), 'jp': (969, 280, 1183, 346), 'tw': (969, 280, 1183, 346)}, color={'cn': (124, 156, 205), 'en': (124, 156, 205), 'jp': (124, 156, 205), 'tw': (124, 156, 205)}, button={'cn': (969, 280, 1183, 346), 'en': (969, 280, 1183, 346), 'jp': (969, 280, 1183, 346), 'tw': (969, 280, 1183, 346)}, file={'cn': './assets/cn/research/QUEUE_OCR_RESEARCH_5.png', 'en': './assets/cn/research/QUEUE_OCR_RESEARCH_5.png', 'jp': './assets/cn/research/QUEUE_OCR_RESEARCH_5.png', 'tw': './assets/cn/research/QUEUE_OCR_RESEARCH_5.png'})
|
||||||
QUEUE_REMAIN = Button(area={'cn': (156, 605, 272, 637), 'en': (151, 580, 278, 617), 'jp': (157, 605, 277, 636), 'tw': (165, 582, 275, 613)}, color={'cn': (193, 212, 240), 'en': (191, 210, 238), 'jp': (188, 208, 239), 'tw': (192, 211, 241)}, button={'cn': (156, 605, 272, 637), 'en': (151, 580, 278, 617), 'jp': (157, 605, 277, 636), 'tw': (165, 582, 275, 613)}, file={'cn': './assets/cn/research/QUEUE_REMAIN.png', 'en': './assets/en/research/QUEUE_REMAIN.png', 'jp': './assets/jp/research/QUEUE_REMAIN.png', 'tw': './assets/tw/research/QUEUE_REMAIN.png'})
|
QUEUE_REMAIN = Button(area={'cn': (156, 605, 272, 637), 'en': (151, 580, 278, 617), 'jp': (157, 605, 277, 636), 'tw': (165, 582, 275, 613)}, color={'cn': (193, 212, 240), 'en': (191, 210, 238), 'jp': (188, 208, 239), 'tw': (192, 211, 241)}, button={'cn': (156, 605, 272, 637), 'en': (151, 580, 278, 617), 'jp': (157, 605, 277, 636), 'tw': (165, 582, 275, 613)}, file={'cn': './assets/cn/research/QUEUE_REMAIN.png', 'en': './assets/en/research/QUEUE_REMAIN.png', 'jp': './assets/jp/research/QUEUE_REMAIN.png', 'tw': './assets/tw/research/QUEUE_REMAIN.png'})
|
||||||
|
QUEUE_SETIES_1 = Button(area={'cn': (66, 127, 99, 151), 'en': (66, 127, 99, 151), 'jp': (66, 127, 99, 151), 'tw': (66, 127, 99, 151)}, color={'cn': (196, 107, 90), 'en': (196, 107, 90), 'jp': (196, 107, 90), 'tw': (196, 107, 90)}, button={'cn': (66, 127, 99, 151), 'en': (66, 127, 99, 151), 'jp': (66, 127, 99, 151), 'tw': (66, 127, 99, 151)}, file={'cn': './assets/cn/research/QUEUE_SETIES_1.png', 'en': './assets/cn/research/QUEUE_SETIES_1.png', 'jp': './assets/cn/research/QUEUE_SETIES_1.png', 'tw': './assets/cn/research/QUEUE_SETIES_1.png'})
|
||||||
|
QUEUE_SETIES_2 = Button(area={'cn': (294, 127, 327, 151), 'en': (294, 127, 327, 151), 'jp': (294, 127, 327, 151), 'tw': (294, 127, 327, 151)}, color={'cn': (80, 98, 204), 'en': (80, 98, 204), 'jp': (80, 98, 204), 'tw': (80, 98, 204)}, button={'cn': (294, 127, 327, 151), 'en': (294, 127, 327, 151), 'jp': (294, 127, 327, 151), 'tw': (294, 127, 327, 151)}, file={'cn': './assets/cn/research/QUEUE_SETIES_2.png', 'en': './assets/cn/research/QUEUE_SETIES_2.png', 'jp': './assets/cn/research/QUEUE_SETIES_2.png', 'tw': './assets/cn/research/QUEUE_SETIES_2.png'})
|
||||||
|
QUEUE_SETIES_3 = Button(area={'cn': (523, 127, 556, 151), 'en': (523, 127, 556, 151), 'jp': (523, 127, 556, 151), 'tw': (523, 127, 556, 151)}, color={'cn': (200, 113, 98), 'en': (200, 113, 98), 'jp': (200, 113, 98), 'tw': (200, 113, 98)}, button={'cn': (523, 127, 556, 151), 'en': (523, 127, 556, 151), 'jp': (523, 127, 556, 151), 'tw': (523, 127, 556, 151)}, file={'cn': './assets/cn/research/QUEUE_SETIES_3.png', 'en': './assets/cn/research/QUEUE_SETIES_3.png', 'jp': './assets/cn/research/QUEUE_SETIES_3.png', 'tw': './assets/cn/research/QUEUE_SETIES_3.png'})
|
||||||
|
QUEUE_SETIES_4 = Button(area={'cn': (751, 127, 784, 151), 'en': (751, 127, 784, 151), 'jp': (751, 127, 784, 151), 'tw': (751, 127, 784, 151)}, color={'cn': (80, 101, 211), 'en': (80, 101, 211), 'jp': (80, 101, 211), 'tw': (80, 101, 211)}, button={'cn': (751, 127, 784, 151), 'en': (751, 127, 784, 151), 'jp': (751, 127, 784, 151), 'tw': (751, 127, 784, 151)}, file={'cn': './assets/cn/research/QUEUE_SETIES_4.png', 'en': './assets/cn/research/QUEUE_SETIES_4.png', 'jp': './assets/cn/research/QUEUE_SETIES_4.png', 'tw': './assets/cn/research/QUEUE_SETIES_4.png'})
|
||||||
|
QUEUE_SETIES_5 = Button(area={'cn': (979, 127, 1012, 151), 'en': (979, 127, 1012, 151), 'jp': (979, 127, 1012, 151), 'tw': (979, 127, 1012, 151)}, color={'cn': (200, 114, 100), 'en': (200, 114, 100), 'jp': (200, 114, 100), 'tw': (200, 114, 100)}, button={'cn': (979, 127, 1012, 151), 'en': (979, 127, 1012, 151), 'jp': (979, 127, 1012, 151), 'tw': (979, 127, 1012, 151)}, file={'cn': './assets/cn/research/QUEUE_SETIES_5.png', 'en': './assets/cn/research/QUEUE_SETIES_5.png', 'jp': './assets/cn/research/QUEUE_SETIES_5.png', 'tw': './assets/cn/research/QUEUE_SETIES_5.png'})
|
||||||
RESEARCH_COST_CHECKER = Button(area={'cn': (809, 365, 972, 386), 'en': (809, 365, 972, 386), 'jp': (809, 365, 972, 386), 'tw': (809, 365, 972, 386)}, color={'cn': (105, 114, 128), 'en': (105, 114, 128), 'jp': (105, 114, 128), 'tw': (105, 114, 128)}, button={'cn': (809, 365, 972, 386), 'en': (809, 365, 972, 386), 'jp': (809, 365, 972, 386), 'tw': (809, 365, 972, 386)}, file={'cn': './assets/cn/research/RESEARCH_COST_CHECKER.png', 'en': './assets/en/research/RESEARCH_COST_CHECKER.png', 'jp': './assets/jp/research/RESEARCH_COST_CHECKER.png', 'tw': './assets/tw/research/RESEARCH_COST_CHECKER.png'})
|
RESEARCH_COST_CHECKER = Button(area={'cn': (809, 365, 972, 386), 'en': (809, 365, 972, 386), 'jp': (809, 365, 972, 386), 'tw': (809, 365, 972, 386)}, color={'cn': (105, 114, 128), 'en': (105, 114, 128), 'jp': (105, 114, 128), 'tw': (105, 114, 128)}, button={'cn': (809, 365, 972, 386), 'en': (809, 365, 972, 386), 'jp': (809, 365, 972, 386), 'tw': (809, 365, 972, 386)}, file={'cn': './assets/cn/research/RESEARCH_COST_CHECKER.png', 'en': './assets/en/research/RESEARCH_COST_CHECKER.png', 'jp': './assets/jp/research/RESEARCH_COST_CHECKER.png', 'tw': './assets/tw/research/RESEARCH_COST_CHECKER.png'})
|
||||||
RESEARCH_DETAIL_QUIT = Button(area={'cn': (695, 656, 784, 707), 'en': (695, 656, 784, 707), 'jp': (695, 656, 784, 707), 'tw': (695, 656, 784, 707)}, color={'cn': (50, 57, 74), 'en': (50, 57, 74), 'jp': (50, 57, 74), 'tw': (50, 57, 74)}, button={'cn': (695, 656, 784, 707), 'en': (695, 656, 784, 707), 'jp': (695, 656, 784, 707), 'tw': (695, 656, 784, 707)}, file={'cn': './assets/cn/research/RESEARCH_DETAIL_QUIT.png', 'en': './assets/en/research/RESEARCH_DETAIL_QUIT.png', 'jp': './assets/jp/research/RESEARCH_DETAIL_QUIT.png', 'tw': './assets/tw/research/RESEARCH_DETAIL_QUIT.png'})
|
RESEARCH_DETAIL_QUIT = Button(area={'cn': (695, 656, 784, 707), 'en': (695, 656, 784, 707), 'jp': (695, 656, 784, 707), 'tw': (695, 656, 784, 707)}, color={'cn': (50, 57, 74), 'en': (50, 57, 74), 'jp': (50, 57, 74), 'tw': (50, 57, 74)}, button={'cn': (695, 656, 784, 707), 'en': (695, 656, 784, 707), 'jp': (695, 656, 784, 707), 'tw': (695, 656, 784, 707)}, file={'cn': './assets/cn/research/RESEARCH_DETAIL_QUIT.png', 'en': './assets/en/research/RESEARCH_DETAIL_QUIT.png', 'jp': './assets/jp/research/RESEARCH_DETAIL_QUIT.png', 'tw': './assets/tw/research/RESEARCH_DETAIL_QUIT.png'})
|
||||||
RESEARCH_FINISHED = Button(area={'cn': (384, 547, 502, 585), 'en': (382, 545, 504, 587), 'jp': (383, 546, 503, 586), 'tw': (384, 547, 502, 585)}, color={'cn': (233, 163, 69), 'en': (235, 174, 92), 'jp': (229, 159, 63), 'tw': (233, 163, 69)}, button={'cn': (384, 547, 502, 585), 'en': (382, 545, 504, 587), 'jp': (383, 546, 503, 586), 'tw': (384, 547, 502, 585)}, file={'cn': './assets/cn/research/RESEARCH_FINISHED.png', 'en': './assets/en/research/RESEARCH_FINISHED.png', 'jp': './assets/jp/research/RESEARCH_FINISHED.png', 'tw': './assets/tw/research/RESEARCH_FINISHED.png'})
|
RESEARCH_FINISHED = Button(area={'cn': (384, 547, 502, 585), 'en': (382, 545, 504, 587), 'jp': (383, 546, 503, 586), 'tw': (384, 547, 502, 585)}, color={'cn': (233, 163, 69), 'en': (235, 174, 92), 'jp': (229, 159, 63), 'tw': (233, 163, 69)}, button={'cn': (384, 547, 502, 585), 'en': (382, 545, 504, 587), 'jp': (383, 546, 503, 586), 'tw': (384, 547, 502, 585)}, file={'cn': './assets/cn/research/RESEARCH_FINISHED.png', 'en': './assets/en/research/RESEARCH_FINISHED.png', 'jp': './assets/jp/research/RESEARCH_FINISHED.png', 'tw': './assets/tw/research/RESEARCH_FINISHED.png'})
|
||||||
@ -60,6 +71,7 @@ STATUS_3 = Button(area={'cn': (549, 598, 556, 605), 'en': (549, 598, 556, 605),
|
|||||||
STATUS_4 = Button(area={'cn': (790, 570, 796, 576), 'en': (790, 570, 796, 576), 'jp': (790, 570, 796, 576), 'tw': (790, 570, 796, 576)}, color={'cn': (115, 166, 222), 'en': (115, 166, 222), 'jp': (115, 166, 222), 'tw': (115, 166, 222)}, button={'cn': (790, 570, 796, 576), 'en': (790, 570, 796, 576), 'jp': (790, 570, 796, 576), 'tw': (790, 570, 796, 576)}, file={'cn': './assets/cn/research/STATUS_4.png', 'en': './assets/en/research/STATUS_4.png', 'jp': './assets/jp/research/STATUS_4.png', 'tw': './assets/tw/research/STATUS_4.png'})
|
STATUS_4 = Button(area={'cn': (790, 570, 796, 576), 'en': (790, 570, 796, 576), 'jp': (790, 570, 796, 576), 'tw': (790, 570, 796, 576)}, color={'cn': (115, 166, 222), 'en': (115, 166, 222), 'jp': (115, 166, 222), 'tw': (115, 166, 222)}, button={'cn': (790, 570, 796, 576), 'en': (790, 570, 796, 576), 'jp': (790, 570, 796, 576), 'tw': (790, 570, 796, 576)}, file={'cn': './assets/cn/research/STATUS_4.png', 'en': './assets/en/research/STATUS_4.png', 'jp': './assets/jp/research/STATUS_4.png', 'tw': './assets/tw/research/STATUS_4.png'})
|
||||||
STATUS_5 = Button(area={'cn': (1031, 541, 1037, 547), 'en': (1031, 541, 1037, 547), 'jp': (1031, 541, 1037, 547), 'tw': (1031, 541, 1037, 547)}, color={'cn': (115, 166, 222), 'en': (115, 166, 222), 'jp': (115, 166, 222), 'tw': (115, 166, 222)}, button={'cn': (1031, 541, 1037, 547), 'en': (1031, 541, 1037, 547), 'jp': (1031, 541, 1037, 547), 'tw': (1031, 541, 1037, 547)}, file={'cn': './assets/cn/research/STATUS_5.png', 'en': './assets/en/research/STATUS_5.png', 'jp': './assets/jp/research/STATUS_5.png', 'tw': './assets/tw/research/STATUS_5.png'})
|
STATUS_5 = Button(area={'cn': (1031, 541, 1037, 547), 'en': (1031, 541, 1037, 547), 'jp': (1031, 541, 1037, 547), 'tw': (1031, 541, 1037, 547)}, color={'cn': (115, 166, 222), 'en': (115, 166, 222), 'jp': (115, 166, 222), 'tw': (115, 166, 222)}, button={'cn': (1031, 541, 1037, 547), 'en': (1031, 541, 1037, 547), 'jp': (1031, 541, 1037, 547), 'tw': (1031, 541, 1037, 547)}, file={'cn': './assets/cn/research/STATUS_5.png', 'en': './assets/en/research/STATUS_5.png', 'jp': './assets/jp/research/STATUS_5.png', 'tw': './assets/tw/research/STATUS_5.png'})
|
||||||
TEMPLATE_DETAIL = Template(file={'cn': './assets/cn/research/TEMPLATE_DETAIL.png', 'en': './assets/en/research/TEMPLATE_DETAIL.png', 'jp': './assets/jp/research/TEMPLATE_DETAIL.png', 'tw': './assets/tw/research/TEMPLATE_DETAIL.png'})
|
TEMPLATE_DETAIL = Template(file={'cn': './assets/cn/research/TEMPLATE_DETAIL.png', 'en': './assets/en/research/TEMPLATE_DETAIL.png', 'jp': './assets/jp/research/TEMPLATE_DETAIL.png', 'tw': './assets/tw/research/TEMPLATE_DETAIL.png'})
|
||||||
|
TEMPLATE_FINISHED = Template(file={'cn': './assets/cn/research/TEMPLATE_FINISHED.png', 'en': './assets/cn/research/TEMPLATE_FINISHED.png', 'jp': './assets/cn/research/TEMPLATE_FINISHED.png', 'tw': './assets/cn/research/TEMPLATE_FINISHED.png'})
|
||||||
TEMPLATE_RUNNING = Template(file={'cn': './assets/cn/research/TEMPLATE_RUNNING.png', 'en': './assets/en/research/TEMPLATE_RUNNING.png', 'jp': './assets/jp/research/TEMPLATE_RUNNING.png', 'tw': './assets/tw/research/TEMPLATE_RUNNING.png'})
|
TEMPLATE_RUNNING = Template(file={'cn': './assets/cn/research/TEMPLATE_RUNNING.png', 'en': './assets/en/research/TEMPLATE_RUNNING.png', 'jp': './assets/jp/research/TEMPLATE_RUNNING.png', 'tw': './assets/tw/research/TEMPLATE_RUNNING.png'})
|
||||||
TEMPLATE_S1 = Template(file={'cn': './assets/cn/research/TEMPLATE_S1.png', 'en': './assets/en/research/TEMPLATE_S1.png', 'jp': './assets/jp/research/TEMPLATE_S1.png', 'tw': './assets/tw/research/TEMPLATE_S1.png'})
|
TEMPLATE_S1 = Template(file={'cn': './assets/cn/research/TEMPLATE_S1.png', 'en': './assets/en/research/TEMPLATE_S1.png', 'jp': './assets/jp/research/TEMPLATE_S1.png', 'tw': './assets/tw/research/TEMPLATE_S1.png'})
|
||||||
TEMPLATE_S2 = Template(file={'cn': './assets/cn/research/TEMPLATE_S2.png', 'en': './assets/en/research/TEMPLATE_S2.png', 'jp': './assets/jp/research/TEMPLATE_S2.png', 'tw': './assets/tw/research/TEMPLATE_S2.png'})
|
TEMPLATE_S2 = Template(file={'cn': './assets/cn/research/TEMPLATE_S2.png', 'en': './assets/en/research/TEMPLATE_S2.png', 'jp': './assets/jp/research/TEMPLATE_S2.png', 'tw': './assets/tw/research/TEMPLATE_S2.png'})
|
||||||
|
@ -7,3 +7,4 @@ from module.base.template import Template
|
|||||||
CAMPAIGN_BONUS = Button(area={'cn': (404, 149, 439, 166), 'en': (406, 150, 477, 162), 'jp': (404, 150, 476, 167), 'tw': (404, 149, 439, 166)}, color={'cn': (188, 195, 207), 'en': (199, 204, 212), 'jp': (207, 211, 218), 'tw': (188, 195, 207)}, button={'cn': (404, 149, 439, 166), 'en': (406, 150, 477, 162), 'jp': (404, 150, 476, 167), 'tw': (404, 149, 439, 166)}, file={'cn': './assets/cn/statistics/CAMPAIGN_BONUS.png', 'en': './assets/en/statistics/CAMPAIGN_BONUS.png', 'jp': './assets/jp/statistics/CAMPAIGN_BONUS.png', 'tw': './assets/cn/statistics/CAMPAIGN_BONUS.png'})
|
CAMPAIGN_BONUS = Button(area={'cn': (404, 149, 439, 166), 'en': (406, 150, 477, 162), 'jp': (404, 150, 476, 167), 'tw': (404, 149, 439, 166)}, color={'cn': (188, 195, 207), 'en': (199, 204, 212), 'jp': (207, 211, 218), 'tw': (188, 195, 207)}, button={'cn': (404, 149, 439, 166), 'en': (406, 150, 477, 162), 'jp': (404, 150, 476, 167), 'tw': (404, 149, 439, 166)}, file={'cn': './assets/cn/statistics/CAMPAIGN_BONUS.png', 'en': './assets/en/statistics/CAMPAIGN_BONUS.png', 'jp': './assets/jp/statistics/CAMPAIGN_BONUS.png', 'tw': './assets/cn/statistics/CAMPAIGN_BONUS.png'})
|
||||||
ENEMY_NAME = Button(area={'cn': (781, 283, 965, 322), 'en': (781, 283, 965, 322), 'jp': (781, 283, 965, 322), 'tw': (781, 283, 965, 322)}, color={'cn': (92, 102, 119), 'en': (92, 102, 119), 'jp': (92, 102, 119), 'tw': (92, 102, 119)}, button={'cn': (781, 283, 965, 322), 'en': (781, 283, 965, 322), 'jp': (781, 283, 965, 322), 'tw': (781, 283, 965, 322)}, file={'cn': './assets/cn/statistics/ENEMY_NAME.png', 'en': './assets/en/statistics/ENEMY_NAME.png', 'jp': './assets/jp/statistics/ENEMY_NAME.png', 'tw': './assets/tw/statistics/ENEMY_NAME.png'})
|
ENEMY_NAME = Button(area={'cn': (781, 283, 965, 322), 'en': (781, 283, 965, 322), 'jp': (781, 283, 965, 322), 'tw': (781, 283, 965, 322)}, color={'cn': (92, 102, 119), 'en': (92, 102, 119), 'jp': (92, 102, 119), 'tw': (92, 102, 119)}, button={'cn': (781, 283, 965, 322), 'en': (781, 283, 965, 322), 'jp': (781, 283, 965, 322), 'tw': (781, 283, 965, 322)}, file={'cn': './assets/cn/statistics/ENEMY_NAME.png', 'en': './assets/en/statistics/ENEMY_NAME.png', 'jp': './assets/jp/statistics/ENEMY_NAME.png', 'tw': './assets/tw/statistics/ENEMY_NAME.png'})
|
||||||
GET_ITEMS_ODD = Button(area={'cn': (628, 294, 653, 397), 'en': (628, 294, 653, 397), 'jp': (628, 294, 653, 397), 'tw': (628, 294, 653, 397)}, color={'cn': (98, 103, 121), 'en': (98, 103, 121), 'jp': (98, 103, 121), 'tw': (98, 103, 121)}, button={'cn': (628, 294, 653, 397), 'en': (628, 294, 653, 397), 'jp': (628, 294, 653, 397), 'tw': (628, 294, 653, 397)}, file={'cn': './assets/cn/statistics/GET_ITEMS_ODD.png', 'en': './assets/en/statistics/GET_ITEMS_ODD.png', 'jp': './assets/jp/statistics/GET_ITEMS_ODD.png', 'tw': './assets/tw/statistics/GET_ITEMS_ODD.png'})
|
GET_ITEMS_ODD = Button(area={'cn': (628, 294, 653, 397), 'en': (628, 294, 653, 397), 'jp': (628, 294, 653, 397), 'tw': (628, 294, 653, 397)}, color={'cn': (98, 103, 121), 'en': (98, 103, 121), 'jp': (98, 103, 121), 'tw': (98, 103, 121)}, button={'cn': (628, 294, 653, 397), 'en': (628, 294, 653, 397), 'jp': (628, 294, 653, 397), 'tw': (628, 294, 653, 397)}, file={'cn': './assets/cn/statistics/GET_ITEMS_ODD.png', 'en': './assets/en/statistics/GET_ITEMS_ODD.png', 'jp': './assets/jp/statistics/GET_ITEMS_ODD.png', 'tw': './assets/tw/statistics/GET_ITEMS_ODD.png'})
|
||||||
|
OPSI_REWARD = Button(area={'cn': (334, 149, 369, 165), 'en': (334, 149, 369, 165), 'jp': (334, 149, 369, 165), 'tw': (334, 149, 369, 165)}, color={'cn': (182, 193, 204), 'en': (182, 193, 204), 'jp': (182, 193, 204), 'tw': (182, 193, 204)}, button={'cn': (334, 149, 369, 165), 'en': (334, 149, 369, 165), 'jp': (334, 149, 369, 165), 'tw': (334, 149, 369, 165)}, file={'cn': './assets/cn/statistics/OPSI_REWARD.png', 'en': './assets/cn/statistics/OPSI_REWARD.png', 'jp': './assets/cn/statistics/OPSI_REWARD.png', 'tw': './assets/cn/statistics/OPSI_REWARD.png'})
|
||||||
|
Loading…
Reference in New Issue
Block a user