コード例 #1
0
ファイル: CharacterManager.py プロジェクト: etem/idewave-core
    def to_bytes(player: Player):
        name_bytes = player.name.encode('utf-8') + b'\x00'
        data = pack(
            '<Q{name_len}s3B5BB2I3f2IB3I'.format(name_len=len(name_bytes)),
            player.guid,                                # guid             0
            player.name.encode('utf-8') + b'\x00',      # name             1
            player.race,                                # race             2
            player.char_class,                          # class            3
            player.gender,                              # gender           4
            player.skin,                                # skin             5
            player.face,                                # face             5
            player.hair_style,                          # hair style       5
            player.hair_color,                          # hair color       5
            player.facial_hair,                         # facial hair      6
            player.level,                               # level            7
            player.region.identifier,                   # zone id          8
            player.map_id,                              # map id           9
            player.x,                                   # x                10
            player.y,                                   # y                11
            player.z,                                   # z                12
            0,                                          # guild            13
            0,                                          # char flags ?     14
            0,                                          # first login      15
            0,                                          # pet display id   16
            0,                                          # pet level        17
            0                                           # pet family       18
        )

        # Equipment: display_id - item_type - enchant
        with EquipmentManager() as equipment_mgr:
            equipment = equipment_mgr.get_equipment(player).to_bytes()
            return data + equipment
コード例 #2
0
    def prepare(self):
        super(PlayerManager, self).prepare()

        with EquipmentManager() as equipment_mgr:
            self.equipment = equipment_mgr.get_equipment(player=self.player).get_items()
            self.add_player_fields()
            return self
コード例 #3
0
    def set_default_equipment(self):
        self.session.expunge(self.player.region)
        self.session.expunge(self.player.account)
        self.session.expunge(self.player)

        with EquipmentManager() as equipment_mgr:
            self.equipment = equipment_mgr.set_default_equipment(
                player=self.player).get_items()
            return self
コード例 #4
0
    def set_default_equipment(self):
        self.session.expunge(self.player.region)
        self.session.expunge(self.player.account)
        self.session.expunge(self.player)

        with EquipmentManager() as equipment_mgr:
            try:
                self.equipment = equipment_mgr.set_default_equipment(
                    player=self.player).get_items()
            except Exception as e:
                Logger.error('[PlayerMgr]: equipment error = {}'.format(e))
コード例 #5
0
 def prepare(self):
     super(PlayerManager, self).prepare()
     self.equipment = EquipmentManager(session=self.session).get_equipment(
         player=self.player).get_items()
     self.add_player_fields()
     return self
コード例 #6
0
 def _set_default_equipment(self):
     self.equipment = EquipmentManager(
         session=self.session).set_default_equipment(
             player=self.player).get_items()