def save_player(self, player): char_data = CharacterManager.get_char_data(player.guid) with DB.atomic() as transaction: try: ObjectManager.save_object_coords(player, char_data.position) ObjectManager.save_object_fields(player, char_data) _UnitManager.save_unit_fields(player, char_data) _PlayerManager.save_player_fields(player, char_data) char_data.save() except PeeweeException as exc: LOG.error("An error occured while creating character:") LOG.error(str(exc)) transaction.rollback() return None
def process(self): self._parse_packet(self.packet) char_values = { "account": self.conn.account, "name": self.char_name, "race": self.char_race, "class": self.char_class, "gender": self.char_gender, "features": { "skin": self.char_features[0], "face": self.char_features[1], "hair_style": self.char_features[2], "hair_color": self.char_features[3], "facial_hair": self.char_features[4] } } manager_code = CharacterManager.create_char(char_values) packet = self._get_response_packet(manager_code) return None, packet
def process(self): guid = self.PACKET_BIN.unpack(self.packet)[0] manager_code = CharacterManager.delete_char(guid) packet = self._get_response_packet(manager_code) return None, packet