def parse_lobby(self, player_var, rating_var, team_var, lobby): """Fill the ui with info about the players in an AoE2 lobby.""" try: pm.load_process("AoK HD.exe") except ProcessLookupError as err: print(err) print("Autoparsing was disabled. Try restarting when AoE2HD is running.") else: try: lobby.update() except NullAddress: print("nulladdy") else: for i, player in enumerate(lobby.players): if player.name is None: if player_var[i-1].get(): player_var[i-1].set("") if rating_var[i-1].get(): rating_var[i-1].set("") if team_var[i-1].get(): team_var[i-1].set("") continue name = player.name.decode(encoding="utf-8", errors="replace") # try: # name = player.name.decode("utf-8") # except UnicodeDecodeError: # name = f"Player {player.number}" player_var[player.number-1].set(name) self.root.after(1000, BalanceTeamsUi.parse_lobby, self, player_var, rating_var, team_var, lobby)
def __load_process_loop__(self): self.print_info(f"Loading the process {AOK_PROCESS_NAME}. Be sure it is running.") try: pm.load_process(AOK_PROCESS_NAME) except ProcessLookupError: return self.state = 0 self.process_timer.stop() self.app.exit()
elo = min(stuff) current.append(elo) stuff.remove(elo) current = team1 #t1, t2, diff, numbers = lobby.balance_minmax() teams = [team1, team2] team1 = [p[1] for p in team1] team2 = [p[1] for p in team2] return None, make_str(players, team1, team2), teams if __name__ == '__main__': import time proc_name = "AoK HD.exe" pm.load_process(proc_name) lobby = Lobby() lobby.update() for player in lobby.players: if player.name is None: continue try: name = player.name.decode("utf-8").ljust(32) except: name = f"Player #{player.number}".ljust(32) print(f"{name} {player.rating}") diff, string, teams = lobby.balance_minmax() print(f"{diff}:: {string}:: {teams}") diff, string, teams = lobby.balance_diff()