def process_bytes(self, bytes): if not configuration.player_kill_information: return if len(bytes) < 26: return if bytes[0 : 2] != [0x5a, 0x06]: return #print utility.get_packet_string(bytes) victim_name = utility.read_name(bytes, 8) killer_name = utility.read_name(bytes, 24) #self.lame_print(victim_name, killer_name) victim = utility.get_player_data_by_name(victim_name) killer = utility.get_player_data_by_name(killer_name) if victim == None or killer == None: return self.request_lock.acquire() self.pending_requests.append(player_kill_whois_request(victim_name, killer_name)) self.request_lock.release() self.bncs_handler.whois(victim_name, self.victim_whois_handler)
def parse_join(bytes): if len(bytes) < 26 or bytes[0] != 0x5B: return None player_id = utility.read_bytes(bytes, 3, 4) player_name = utility.read_name(bytes, 8) character_class = bytes[7] level = utility.read_bytes(bytes, 24, 2) return player_id, player_name, character_class, level
def parse_assignment(bytes): if len(bytes) < 26 or bytes[0] != 0x59: return None player_id = utility.read_bytes(bytes, 1, 4) character_class = bytes[5] player_name = utility.read_name(bytes, 6) x = utility.read_bytes(bytes, 22, 2) y = utility.read_bytes(bytes, 24, 2) return player_id, character_class, player_name, x, y