diff --git a/README.md b/README.md index e388cd482..008fc5191 100644 --- a/README.md +++ b/README.md @@ -11,12 +11,11 @@ Star Rail auto script | 星铁速溶茶,崩坏:星穹铁道脚本,基于 ## 功能 -- **打本**:每日副本,双倍活动副本,历战余响。 +- **打本**:[角色养成规划](https://github.com/LmeSzinc/StarRailCopilot/wiki/Planner_cn),每日副本,双倍活动副本,历战余响。 - **收获**:完成每日任务,收派委托,收取无名勋礼奖励。 -- **模拟宇宙**:刷模拟宇宙至每周积分上限,使用开拓力刷内圈遗器。 +- **模拟宇宙**:刷模拟宇宙,使用开拓力刷内圈遗器。 - **后台托管**:自动启动模拟器和游戏,后台托管清体力和每日,通过仪表盘了解资源情况。 - - +- **云游戏**:(仅国服)支持云崩坏星穹铁道。 ## 安装 [![](https://img.shields.io/github/downloads/LmeSzinc/StarRailCopilot/total?color=4e4c97)](https://github.com/LmeSzinc/StarRailCopilot/releases) @@ -26,8 +25,6 @@ Star Rail auto script | 星铁速溶茶,崩坏:星穹铁道脚本,基于 > **模拟器的性能表现如何?** Lme 的 8700k+1080ti 使用 MuMu 12 模拟器画质设置非常高是有 40fps 的,如果你的配置稍微新一点的话,特效最高 60fps 不是问题。 - - ## 开发 Discord https://discord.gg/aJkt3mKDEr QQ群 752620927 @@ -38,8 +35,6 @@ Discord https://discord.gg/aJkt3mKDEr QQ群 752620927 > **如何添加多语言/多服务器支持?** 需要适配 assets,参考 [开发文档 “添加一个 Button” 一节](https://github.com/LmeSzinc/AzurLaneAutoScript/wiki/4.1.-Detection-objects#%E6%B7%BB%E5%8A%A0%E4%B8%80%E4%B8%AA-button)。 - - ## 关于 Alas SRC 基于碧蓝航线脚本 [AzurLaneAutoScript](https://github.com/LmeSzinc/AzurLaneAutoScript) 开发,Alas 经过三年的发展现在已经达到一个高完成度,但也累积了不少屎山难以改动,我们希望在新项目上解决这些问题。 diff --git a/README_en.md b/README_en.md index 815691f82..844fa7914 100644 --- a/README_en.md +++ b/README_en.md @@ -6,16 +6,13 @@ Star Rail Instant Tea, a bot for Honkai: Star Rail, based on the next generation ![gui](https://raw.githubusercontent.com/wiki/LmeSzinc/StarRailCopilot/README.assets/gui_en.png) - - ## Features -- **Dungeons**: Dungeons, dungeons at double event, echo of war. +- **Dungeons**: [Character Planner](https://github.com/LmeSzinc/StarRailCopilot/wiki/Planner_cn), Dungeons, dungeons at double event, echo of war. - **Rewards**: Complete daily quests, do assignment, claim nameless horner rewards. -- **Simulated Universe**: Farm SU til reaching weekly point limit, farm planers using trailbalze power. +- **Simulated Universe**: Farm SU, farm planers using trailbalze power. - **AFK Auto Farming**: Automatically launch emulators and games, do dungeons and quests at background, keep track of resources through dashboard. - - +- **Cloud Gaming**: [CN only] Support Cloud HSR. ## Install [![](https://img.shields.io/github/downloads/LmeSzinc/StarRailCopilot/total?color=4e4c97)](https://github.com/LmeSzinc/StarRailCopilot/releases) @@ -25,9 +22,7 @@ Refers to [Installation tutorial](https://github.com/LmeSzinc/StarRailCopilot/wi > **How's the performance?** Lme's 8700k+1080ti using MuMu12 emulator with graphic settings very high gets 40 fps. It shouldn't be a problem to run with maximum graphic settings and 60 fps if you have newer PC specs. - - -## Development +## Develpment Discord https://discord.gg/aJkt3mKDEr @@ -39,8 +34,6 @@ Discord https://discord.gg/aJkt3mKDEr > **How to add multi-language or multi-server support?** Need assets updates, see ["Adding a Button" in development docs](https://github.com/LmeSzinc/AzurLaneAutoScript/wiki/4.1.-Detection-objects#%E6%B7%BB%E5%8A%A0%E4%B8%80%E4%B8%AA-button). - - ## About ALAS SRC is based on an Azur Lane bot [AzurLaneAutoScript](https://github.com/LmeSzinc/AzurLaneAutoScript). After 3 years of development, ALAS has reached a high degree of completion, but it has also accumulated a lot of shit code that is difficult to change. We hope that Fix these issues on a new project. diff --git a/README_es.md b/README_es.md index d425b8a71..8acdc4e05 100644 --- a/README_es.md +++ b/README_es.md @@ -7,10 +7,11 @@ Star Rail Copilot, un bot para Honkai: Star Rail, basado en la siguiente generac ## Características -- **Mazmorras**: Mazmorras, y mazmorras en eventos de doble recompensa (materiales de XP de personaje, de conos de luz, rastros, ascensión, artefactos...), ecos de la guerra. +- **Mazmorras**: [Planificador de personajes](https://github.com/LmeSzinc/StarRailCopilot/wiki/Planner_cn), Mazmorras, y mazmorras en eventos de doble recompensa (materiales de XP de personaje, de conos de luz, rastros, ascensión, artefactos...), ecos de la guerra. - **Recompensas diarias**: Se completan las misiones de actividad diarias, la misión diaria, las misiones de Honor Anónimo... - **Universo Simulado**: Farm SU hasta alcanzar el límite de puntos semanal, farm planars usando poder trazacaminos. - **Farmeo automático AFK**: El bot lo hace todo de manera automática, abre los emuladores, completa las misiones y realiza las tareas diarias, realice un seguimiento de los recursos a través del panel. +- **Juegos en la nube**: [solo CN] Compatible con Cloud HSR. ## Instalación [![](https://img.shields.io/github/downloads/LmeSzinc/StarRailCopilot/total?color=4e4c97)](https://github.com/LmeSzinc/StarRailCopilot/releases) Dirígete a la [Guía de Instalación](https://github.com/LmeSzinc/StarRailCopilot/wiki/Installation_en) para consultar cómo hacer la instalación automática, el manual de uso, etc. diff --git a/assets/share/base/page/PLANNER_CHECK.png b/assets/share/base/page/PLANNER_CHECK.png new file mode 100644 index 000000000..2d9e274ac Binary files /dev/null and b/assets/share/base/page/PLANNER_CHECK.png differ diff --git a/tasks/base/assets/assets_base_page.py b/tasks/base/assets/assets_base_page.py index c43a575ae..757d1ae26 100644 --- a/tasks/base/assets/assets_base_page.py +++ b/tasks/base/assets/assets_base_page.py @@ -377,6 +377,16 @@ MISSION_CHECK = ButtonWrapper( button=(44, 33, 70, 55), ), ) +PLANNER_CHECK = ButtonWrapper( + name='PLANNER_CHECK', + share=Button( + file='./assets/share/base/page/PLANNER_CHECK.png', + area=(39, 47, 74, 74), + search=(19, 27, 94, 94), + color=(148, 131, 98), + button=(39, 47, 74, 74), + ), +) ROGUE_CHECK = ButtonWrapper( name='ROGUE_CHECK', share=Button( diff --git a/tasks/base/page.py b/tasks/base/page.py index 5d3a56921..e7fc23956 100644 --- a/tasks/base/page.py +++ b/tasks/base/page.py @@ -158,3 +158,7 @@ page_forgotten_hall.link(CLOSE, destination=page_main) # Rogue, Simulated Universe page_rogue = Page(ROGUE_CHECK) page_rogue.link(CLOSE, destination=page_main) + +# Planner result +page_planner = Page(PLANNER_CHECK) +page_planner.link(CLOSE, destination=page_menu) diff --git a/tasks/base/ui.py b/tasks/base/ui.py index 0c159cce3..2571c66a3 100644 --- a/tasks/base/ui.py +++ b/tasks/base/ui.py @@ -57,6 +57,11 @@ class UI(MainPage): def rotation_check(): self.device.get_orientation() + @run_once + def cloud_login(): + from tasks.login.login import Login + Login(config=self.config, device=self.device).cloud_login() + timeout = Timer(10, count=20).start() while 1: if skip_first_screenshot: @@ -101,6 +106,7 @@ class UI(MainPage): app_check() minicap_check() rotation_check() + cloud_login() # Unknown page, need manual switching logger.warning("Unknown ui page") diff --git a/tasks/login/cloud.py b/tasks/login/cloud.py index d4339e34a..b54bc2104 100644 --- a/tasks/login/cloud.py +++ b/tasks/login/cloud.py @@ -367,6 +367,31 @@ class LoginAndroidCloud(ModuleBase): logger.error('Failed to enter cloud game after 3 trials') return False + def is_in_cloud_page(self): + if self.appear(XPath.START_GAME): + logger.info('Cloud game is in main page') + return True + elif self.appear(XPath.FLOAT_DELAY): + logger.info('Cloud game is in game with float window expanded') + return True + elif self.appear(XPath.POPUP_CONFIRM): + logger.info('Cloud game have a popup') + return True + + logger.info('Not in cloud page') + return False + + def cloud_login(self): + if not self.config.is_cloud_game: + return False + + self.device.dump_hierarchy() + if self.is_in_cloud_page(): + self.cloud_ensure_ingame() + return True + + return False + def cloud_keep_alive(self): """ Randomly do something to prevent being kicked diff --git a/tasks/login/login.py b/tasks/login/login.py index 7bc6b0905..09fbffcc5 100644 --- a/tasks/login/login.py +++ b/tasks/login/login.py @@ -91,7 +91,7 @@ class Login(UI, LoginAndroidCloud): self.cloud_ensure_ingame() else: self.device.app_start() - self.handle_app_login() + self.handle_app_login() def app_restart(self): logger.hr('App restart') @@ -100,7 +100,7 @@ class Login(UI, LoginAndroidCloud): self.cloud_ensure_ingame() else: self.device.app_start() - self.handle_app_login() + self.handle_app_login() self.config.task_delay(server_update=True) def cloud_start(self):