class AppGUID: Release = b"\x10\x5e\x62\xa7\x96\x1a\xd2\x11\x9a\xfc\x00\x60\x08\x45\xe5\x71" Beta = b'j\xfbF/Le\xedJ\x8c\x0b\x06@\x14f\x9b\xfd' class MapID: ID = { "MvM_L1": 19, "MvM_L2": 20, "MvM_L3": 21, "RvR_L1": 22, "RvR_L2": 23, "RvR_L3": 24, "3W_L1": 25, "3W_L2": 26, "3W_L3": 27, "MvM_LW1": 28, "RvR_LW1": 29, "3W_LW1": 30, "MvM_L6": 31, } @staticmethod def get_id(name): if name in MapID.ID: return MapID.ID[name] else: return 0xFF @staticmethod def get_name(map_id): for _map_name in MapID.ID: _map_id = MapID.ID[_map_name] if _map_id == map_id: return _map_name return None class Teams: @staticmethod def get_name_by_id(team_id): for prop in Teams.__dict__: if Teams.__dict__[prop] == team_id: return prop return "Unknown" @staticmethod def get_groupid_by_team_id(_id, teams): print("get_groupid_by_team_id: %s %s" % (_id, teams)) if teams == Teams.MvK: if _id == 1: return 2 if _id == 2: return 1 if teams == Teams.MvMvM or teams == Teams.MvM: return 2 if teams == Teams.RvR: return 3 if teams == Teams.MvR: if _id == 1: return 2 if _id == 2: return 3 if teams == Teams.MvRvK: if _id == 1: return 2 if _id == 2: return 3 if _id == 3: return 1 if teams == Teams.RvK: if _id == 1: return 3 if _id == 2: return 1 return 0 MvM = 0x00 MvMvM = 0x01 RvR = 0x02 MvR = 0x03 MvRvK = 0x04 MvK = 0x05 RvK = 0x06 TeamB = 0x07 TeamB = 0x08 TeamB = 0x0c TeamB = 0x10 class GameTypes: @staticmethod def get_name_by_id(gametype_id): for prop in GameTypes.__dict__: if GameTypes.__dict__[prop] == gametype_id: return prop return "Unknown" # 00: Team Deathmatch # 01: Team Deathmatch with full base # 02: Capture Smartie # 03: Capture Smartie with full base # 04: Base Build Deathmatch # 05: Base Build and Capture the Smartie # 06: Defend Base # 07: Defend Base and Capture the Smartie # 08: GTypeStone # 09: GTypeWood # 0a: crash to desktop # 0b: crash to desktop # 0c: GType(null) # 0d: crash to desktop # 0e: crash to desktop # 0f: crash to desktop # 10: crash to desktop # aa: crash to desktop # ff: crash to desktop TeamDeathmatch = 0x00 TeamDeathmatchWithFullBase = 0x01 CaptureSmartie = 0x02 CaptureSmartieWithFullBase = 0x03 BaseBuildDeathmatch = 0x04 BaseBuildCaptureSmartie = 0x05 DefendBase = 0x06 DefendBaseCaptureSmartie = 0x07 GTypeStone = 0x08 GTypeWood = 0x09 Crash = 0x0a GTypeNull = 0x0c