From 1f0a6fbb96d32b0a3e8dbc7ae74de230a34937f6 Mon Sep 17 00:00:00 2001 From: Hammanek Date: Thu, 15 Aug 2024 18:30:06 +0200 Subject: [PATCH 1/4] BoB info popup fixed --- activities.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/activities.py b/activities.py index e3df065..5f41d11 100644 --- a/activities.py +++ b/activities.py @@ -917,7 +917,7 @@ def handleBattleofBlood(battles=3): clickXY(550, 1250, seconds=1) clickXY(350, 1250, seconds=1) clickXY(550, 1850, seconds=1) - if isVisible('buttons/confirm_small', retry=3, region=(600, 1220, 200, 80)): + if isVisible('buttons/confirm_small', retry=3, region=(600, 1240, 200, 80)): clickXY(325, 1200) clickXY(700, 1270) # Place cards 3-4, click ready From e96b280869e6de417596fab2fe09b28d6eb58107 Mon Sep 17 00:00:00 2001 From: Hammanek Date: Thu, 22 Aug 2024 07:56:48 +0200 Subject: [PATCH 2/4] 0.2 update --- AutoAFK.py | 6 +++++- activities.py | 8 ++++---- img/buttons/level_up.png | Bin 0 -> 19102 bytes img/labels/reso_lvl_progress.png | Bin 26880 -> 0 bytes tools.py | 16 ++++++++-------- 5 files changed, 17 insertions(+), 13 deletions(-) create mode 100644 img/buttons/level_up.png delete mode 100644 img/labels/reso_lvl_progress.png diff --git a/AutoAFK.py b/AutoAFK.py index a07de19..262747f 100644 --- a/AutoAFK.py +++ b/AutoAFK.py @@ -35,7 +35,7 @@ settings = os.path.join(cwd, 'settings.ini') config.read(settings) -version = "0.19.6" +version = "0.20" repo_releases = requests.get('https://api.github.com/repos/Hammanek/AutoAFK/releases/latest') json = repo_releases.json() if repo_releases and repo_releases.status_code == 200 else None @@ -1084,6 +1084,10 @@ def dailies(): useBagConsumables() if pauseOrStopEventCheck(app.dailies_pause_event, app.dailies_stop_event): break # Exit the loop if stop event is set + if config.getboolean('DAILIES', 'levelup'): + levelUp() + if pauseOrStopEventCheck(app.dailies_pause_event, app.dailies_stop_event): + break # Exit the loop if stop event is set printGreen('Dailies done!') if config.getboolean('ADVANCED', 'enable_afkjourney'): diff --git a/activities.py b/activities.py index 5f41d11..b19ab3d 100644 --- a/activities.py +++ b/activities.py @@ -427,7 +427,7 @@ def pushTower(tower, formation=3, duration=1, app=None): printWarning('No victory found, checking again in ' + str(config.get('PUSH', 'victoryCheck') + ' minutes.')) click('buttons/cancel', retry=3, suppress=True, region=boundaries['cancelAB']) else: # If we don't see 0 we assume victory. We exit the battle, clear victory screen and clear time limited rewards screen - printGreen('Victory found! Loading the ' + str(config.get('PUSH', 'formation') + ' formation for the current stage..')) + printGreen('Victory found! Loading formation for the current stage..') click('buttons/exit', retry=3, suppress=True, region=boundaries['exitAB']) click('buttons/pause', 0.8, retry=3, suppress=True, region=boundaries['pauseBattle']) # 3 retries as ulting heroes can cover the button click('buttons/exitbattle', retry=2, suppress=True, region=boundaries['exitBattle']) @@ -459,7 +459,7 @@ def pushCampaign(formation=3, duration=1,app=None): click('buttons/cancel', retry=3, suppress=True, region=boundaries['cancelAB']) wait((duration * 60) - 30) # Sleep for the wait duration else: # If it's not 0 we have passed a stage - printGreen('Victory found! Loading the ' + str(config.get('PUSH', 'formation') + ' formation for the current stage..')) + printGreen('Victory found! Loading formation for the current stage..') click('buttons/exit', suppress=True, retry=3, region=boundaries['exitAB']) click('buttons/pause', confidence=0.8, retry=3, suppress=True, region=boundaries['pauseBattle']) # 3 retries as ulting heroes can cover the button click('buttons/exitbattle', suppress=True, retry=3, region=boundaries['exitBattle']) @@ -1578,8 +1578,8 @@ def levelUp(): confirmLocation('ranhorn', region=boundaries['ranhornSelect']) clickXY(700, 1500, seconds=2) # Resonating crystal clickXY(520, 1860, seconds=2) # Level up - clickXY(710, 1260) # Confirm - if not isVisible("labels/reso_lvl_progress"): + clickXY(710, 1260, seconds=2) # Confirm + if not isVisible("buttons/level_up"): for _ in range(10): clickXY(520, 1860) printGreen('Leveled up successfully') diff --git a/img/buttons/level_up.png b/img/buttons/level_up.png new file mode 100644 index 0000000000000000000000000000000000000000..1822d7a3193ca327aa6e6761f6a65dbab1b33037 GIT binary patch literal 19102 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 literal 0 HcmV?d00001 diff --git a/img/labels/reso_lvl_progress.png b/img/labels/reso_lvl_progress.png deleted file mode 100644 index cf5cc815c5998fe810129677e7d1c1c230537ec7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26880 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 0: printWarning(str(len(ports.decode().splitlines())) + ' ports found, trying them..') @@ -195,7 +195,7 @@ def portScan(): for port in ports.decode().splitlines(): # Split by linebreak port = int(port) if port % 2 != 0: # ADB will only use odd port numbers - connectmessage = Popen([adbpath, 'connect', '127.0.0.1:' + str(port)], stdout=PIPE).communicate()[0] + connectmessage = Popen([adbpath, 'connect', '127.0.0.1:' + str(port)], stdout=PIPE, startupinfo=STARTUPINFO(), creationflags=CREATE_NO_WINDOW).communicate()[0] if connectmessage.decode().split(' ')[0] == 'failed': printError(connectmessage.decode().rstrip()) elif connectmessage.decode().split(' ')[0] == 'connected': From 29adb927e95eb13943cf5b5f1bb22fcb0be98c12 Mon Sep 17 00:00:00 2001 From: Hammanek Date: Tue, 27 Aug 2024 12:53:51 +0200 Subject: [PATCH 3/4] 0.21 --- AutoAFK.py | 2 +- tools.py | 23 ++++++++++++++--------- 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/AutoAFK.py b/AutoAFK.py index 262747f..2f8644c 100644 --- a/AutoAFK.py +++ b/AutoAFK.py @@ -35,7 +35,7 @@ settings = os.path.join(cwd, 'settings.ini') config.read(settings) -version = "0.20" +version = "0.21" repo_releases = requests.get('https://api.github.com/repos/Hammanek/AutoAFK/releases/latest') json = repo_releases.json() if repo_releases and repo_releases.status_code == 200 else None diff --git a/tools.py b/tools.py index 56becee..8897f0e 100644 --- a/tools.py +++ b/tools.py @@ -57,7 +57,7 @@ def connect_device(): else: was_running = True - printGreen('Attempting to connect..') + printGreen('Attempting to connect...') if connected is True: # Skip if we've ran through and connected succesfully already this session waitUntilGameActive() # but still confirm we start from the right place @@ -79,7 +79,7 @@ def connect_device(): printBlue('This usually means the port is wrong as there is no device present') elif str(e) == 'ERROR: \'FAIL\' 0006closed': printError('PPADB Error: ' + str(e) + ', retrying ' + str(connect_counter) + '/3') - printBlue('The selected port is not responding, is ADB enabled? Retrying..') + printBlue('The selected port is not responding, is ADB enabled? Retrying...') else: printError('PPADB Error: ' + str(e) + ', retrying ' + str(connect_counter) + '/3') wait(3) @@ -107,6 +107,10 @@ def connect_device(): if connected is True: printGreen('Device: ' + str(device.serial) + ' successfully connected!') + if(float(device.shell('getprop ro.build.version.release')) > 7): + printWarning("Your android emulator is out of date, please update first!") + sys.exit(1) + scrcpyClient = scrcpy.Client(device=device.serial) scrcpyClient.max_fps = max_fps scrcpyClient.bitrate = bitrate @@ -149,7 +153,7 @@ def configureADB(): if port == '': port == 0 # So we don't throw a NaN error if the field's blank if ':' in str(port): - printError('Port entered includes the : symbol, it should only be the last 4 or 5 digits not the full IP:Port address. Exiting..') + printError('Port entered includes the : symbol, it should only be the last 4 or 5 digits not the full IP:Port address. Exiting...') sys.exit(1) if int(port) == 5037: printError('Port 5037 has been entered, this is the port of the ADB connection service not the emulator, check BlueStacks Settings - Preferences to get the ADB port number') @@ -175,7 +179,7 @@ def configureADB(): return adb_device # If none of the above work we exit - printError('No device found! Exiting..') + printError('No device found! Exiting...') sys.exit(1) # This takes all Listening ports opened by HD-Player.exe and tries to connect to them with ADB @@ -184,12 +188,12 @@ def portScan(): if system() != 'Windows' or not os.path.exists(adbpath): adbpath = which('adb') # If we're not on Windows or can't find adb.exe in the working directory we try and find it in the PATH - printWarning('No ADB devices found connected already, and no configured port in settings. Manually scanning for the port..') + printWarning('No ADB devices found connected already, and no configured port in settings. Manually scanning for the port...') # Powershell command that returns all listening ports in use by HD-Player.exe ports = Popen(["powershell.exe", "Get-NetTCPConnection -State Listen | Where-Object OwningProcess -eq (Get-Process hd-player | Select-Object -ExpandProperty Id) | Select-Object -ExpandProperty LocalPort"], stdout=PIPE, startupinfo=STARTUPINFO(), creationflags=CREATE_NO_WINDOW).communicate()[0] if len(ports.decode().splitlines()) > 0: - printWarning(str(len(ports.decode().splitlines())) + ' ports found, trying them..') + printWarning(str(len(ports.decode().splitlines())) + ' ports found, trying them...') # Scan ports for port in ports.decode().splitlines(): # Split by linebreak @@ -212,10 +216,10 @@ def expandMenus(): # Checks if AFK Arena process is running, if not we launch it def afkRunningCheck(): if args['test']: - # printError('AFK Arena Test Server is not running, launching..') + # printError('AFK Arena Test Server is not running, launching...') device.shell('monkey -p com.lilithgames.hgame.gp.id 1') elif not args['test']: - # printError('AFK Arena is not running, launching..') + # printError('AFK Arena is not running, launching...') device.shell('monkey -p com.lilithgame.hgame.gp 1') if config.getboolean('ADVANCED', 'debug') is True: print('Game check passed\n') @@ -223,7 +227,7 @@ def afkRunningCheck(): # Confirms that the game has loaded by checking for the campaign_selected button. We press a few buttons to navigate back if needed # May also require a ClickXY over Campaign to clear Time Limited Deals that appear def waitUntilGameActive(): - printWarning('Searching for Campaign screen..') + printWarning('Searching for Campaign screen...') loadingcounter = 0 timeoutcounter = 0 if args['dailies']: @@ -232,6 +236,7 @@ def waitUntilGameActive(): loaded = 1 while loadingcounter < loaded: + afkRunningCheck() clickXY(420, 50) # Neutral location for closing reward pop ups etc, should never be an in game button here buttons = [os.path.join('buttons', 'campaign_unselected'), os.path.join('buttons', 'exitmenu_trial'), os.path.join('buttons', 'back')] for button in buttons: From b0a57b3994cae58f604321c8c3e9a0713248ce27 Mon Sep 17 00:00:00 2001 From: Hammanek Date: Thu, 29 Aug 2024 19:51:48 +0200 Subject: [PATCH 4/4] fixes --- README.md | 2 +- tools.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 5d987fb..50f0d91 100644 --- a/README.md +++ b/README.md @@ -43,7 +43,7 @@ Configure your MuMu Player client so that: * DPI is 240 * AFK's language is set to English -Then download the latest [release](https://github.com/Hammanek/AutoAFK), unzip and run AutoAFK.exe. +Then download the latest [release](https://github.com/Hammanek/AutoAFK/releases/), unzip and run AutoAFK.exe. # Road map The following features will be added soon(tm) diff --git a/tools.py b/tools.py index 8897f0e..0f540be 100644 --- a/tools.py +++ b/tools.py @@ -107,7 +107,7 @@ def connect_device(): if connected is True: printGreen('Device: ' + str(device.serial) + ' successfully connected!') - if(float(device.shell('getprop ro.build.version.release')) > 7): + if(float(device.shell('getprop ro.build.version.release')) < 7): printWarning("Your android emulator is out of date, please update first!") sys.exit(1)