Exemplo n.º 1
0
 def __init__(self, petId=0, name=u'小伙伴', templateId=0, owner=0, level=1):
     '''初始化宠物的信息'''
     #角色类型
     self._pid = petId
     self.name = name
     self.templateId = templateId
     self._owner = owner  #宠物的拥有者的ID
     self.skill_1 = 0  #宠物的主动技能
     self.skill_2 = 0  #宠物的被动技能
     self.skill_3 = 0  #宠物的被动技能
     self.attribute = AttributeComponent(self)
     if self._pid:
         self.initData()
Exemplo n.º 2
0
 def __init__(self,petId = 0,name = u'小伙伴',templateId = 0,owner = 0,level =1):
     '''初始化宠物的信息'''
     #角色类型
     self._pid = petId
     self.name = name
     self.templateId = templateId
     self._owner = owner#宠物的拥有者的ID
     self.skill_1 = 0#宠物的主动技能
     self.skill_2 = 0#宠物的被动技能
     self.skill_3 = 0#宠物的被动技能
     self.attribute = AttributeComponent(self)
     if self._pid:
         self.initData()
Exemplo n.º 3
0
class Pet:
    '''宠物类'''
    def __init__(self, petId=0, name=u'小伙伴', templateId=0, owner=0, level=1):
        '''初始化宠物的信息'''
        #角色类型
        self._pid = petId
        self.name = name
        self.templateId = templateId
        self._owner = owner  #宠物的拥有者的ID
        self.skill_1 = 0  #宠物的主动技能
        self.skill_2 = 0  #宠物的被动技能
        self.skill_3 = 0  #宠物的被动技能
        self.attribute = AttributeComponent(self)
        if self._pid:
            self.initData()

    def initData(self):
        '''不存在实例时的初始化方式'''
        pass

    def initItemInstance(self, pet_data):
        '''存在数据库实例时的初始化方式'''
        self._owner = pet_data['owner']
        self.skill_1 = pet_data['skill_1']
        self.skill_2 = pet_data['skill_2']
        self.skill_3 = pet_data['skill_3']

    def InsertIntoDB(self):
        '''将不存在的实例写入数据库,生成数据库中的实例'''
        characterId = self._owner
        data = {
            'owner': characterId,
            'name': u'',
            'templateID': self.templateId,
            'skill_1': 0,
            'skill_2': 0,
            'skill_3': 0
        }
        petmmode = tbpetadmin.new(data)
        petId = int(petmmode._name.split(':')[1])
        if petId:
            self.baseInfo.setId(petId)
            return True
        return False

    def updateSkill(self, space, skill_id):
        """更新伙伴的技能设置
        """
        _skill_space_name = "skill_%d" % space
        setattr(self, _skill_space_name, skill_id)
        _pet_mmode = tbpetadmin.getObj(self._pid)
        _pet_mmode.update_multi({_skill_space_name: skill_id})

    def getActiveSkillList(self):
        """获取角色的主动技能
        """
        if not self.skill_1:
            skill_list = [610101]
        else:
            skillid = dbSkill.ALL_SKILL_TEMPLATE.get(self.skill_1)['skillid']
            skill_list = [skillid]
        return skill_list

    def getFightData(self):
        '''获取怪物战斗数据'''
        attr_info = self.attribute.getAtrribute()
        fightdata = {}
        fightdata['chaId'] = self._pid  #角色的ID
        fightdata['chaName'] = self.name  #角色的昵称
        fightdata['difficulty'] = 1
        fightdata['chaLevel'] = 1  #角色的等级
        fightdata['chaBattleId'] = 0  #角色在战场中的id
        fightdata['chaCurrentHp'] = attr_info['MaxHp']  #角色当前血量
        fightdata['chaCurrentPower'] = attr_info['power']  #角色的当前能量
        fightdata['chaTotalHp'] = attr_info['MaxHp']  #角色的最大血量s
        fightdata['chaTotalPower'] = MAXPOWER  #角色的最大能量
        fightdata['physicalAttack'] = attr_info['PhyAtt']
        fightdata['physicalDefense'] = attr_info['PhyDef']
        fightdata['speed'] = attr_info['Speed']
        fightdata['hitRate'] = attr_info['HitRate']
        fightdata['critRate'] = attr_info['CriRate']
        fightdata['block'] = attr_info['Block']
        fightdata['dodgeRate'] = attr_info['Dodge']
        fightdata['ActiveSkillList'] = self.getActiveSkillList(
        )  #self.skill#角色的主动攻击技能
        fightdata['ordSkill'] = 610101  #角色的普通攻击技能
        fightdata['canDoMagicSkill'] = 1  #可否释放魔法技能
        fightdata['canDoPhysicalSkill'] = 1  #可否释放物理技能
        fightdata['canDoOrdSkill'] = 1  #可否进行普通攻击
        fightdata['canBeTreat'] = 1  #可否被治疗
        fightdata['canBeAttacked'] = 1  #可否被攻击
        fightdata['canDied'] = 1  #是否可死亡
        fightdata['skillIDByAttack'] = 0  #被攻击的技能的ID 普通攻击为 0
        return fightdata

    def formatInfo(self):
        '''格式化角色信息
        '''
        info = {}
        return info
Exemplo n.º 4
0
class Pet:
    '''宠物类'''
    
    def __init__(self,petId = 0,name = u'小伙伴',templateId = 0,owner = 0,level =1):
        '''初始化宠物的信息'''
        #角色类型
        self._pid = petId
        self.name = name
        self.templateId = templateId
        self._owner = owner#宠物的拥有者的ID
        self.skill_1 = 0#宠物的主动技能
        self.skill_2 = 0#宠物的被动技能
        self.skill_3 = 0#宠物的被动技能
        self.attribute = AttributeComponent(self)
        if self._pid:
            self.initData()
        
    def initData(self):
        '''不存在实例时的初始化方式'''
        pass
        
    def initItemInstance(self,pet_data):
        '''存在数据库实例时的初始化方式'''
        self._owner = pet_data['owner']
        self.skill_1 = pet_data['skill_1']
        self.skill_2 = pet_data['skill_2']
        self.skill_3 = pet_data['skill_3']
        
    def InsertIntoDB(self):
        '''将不存在的实例写入数据库,生成数据库中的实例'''
        characterId = self._owner
        data = {'owner':characterId,
                'name':u'',
                'templateID':self.templateId,
                'skill_1':0,
                'skill_2':0,
                'skill_3':0}
        petmmode = tbpetadmin.new(data)
        petId = int(petmmode._name.split(':')[1])
        if petId:
            self.baseInfo.setId(petId)
            return True
        return False
    
    def updateSkill(self, space, skill_id):
        """更新伙伴的技能设置
        """
        _skill_space_name = "skill_%d"%space
        setattr(self, _skill_space_name, skill_id)
        _pet_mmode = tbpetadmin.getObj(self._pid)
        _pet_mmode.update_multi({_skill_space_name:skill_id})
    
    def getActiveSkillList(self):
        """获取角色的主动技能
        """
        if not self.skill_1:
            skill_list = [610101]
        else:
            skillid = dbSkill.ALL_SKILL_TEMPLATE.get(self.skill_1)['skillid']
            skill_list = [skillid]
        return skill_list
        
        
    def getFightData(self):
        '''获取怪物战斗数据'''
        attr_info = self.attribute.getAtrribute()
        fightdata = {}
        fightdata['chaId'] = self._pid          #角色的ID
        fightdata['chaName'] = self.name  #角色的昵称
        fightdata['difficulty'] = 1
        fightdata['chaLevel'] = 1#角色的等级
        fightdata['chaBattleId'] = 0                        #角色在战场中的id
        fightdata['chaCurrentHp'] = attr_info['MaxHp']#角色当前血量
        fightdata['chaCurrentPower'] = attr_info['power']#角色的当前能量
        fightdata['chaTotalHp'] = attr_info['MaxHp']#角色的最大血量s
        fightdata['chaTotalPower'] = MAXPOWER#角色的最大能量
        fightdata['physicalAttack'] = attr_info['PhyAtt']
        fightdata['physicalDefense'] = attr_info['PhyDef']
        fightdata['speed'] = attr_info['Speed']
        fightdata['hitRate'] = attr_info['HitRate']
        fightdata['critRate'] = attr_info['CriRate']
        fightdata['block'] = attr_info['Block']
        fightdata['dodgeRate'] = attr_info['Dodge']
        fightdata['ActiveSkillList'] = self.getActiveSkillList()#self.skill#角色的主动攻击技能
        fightdata['ordSkill'] = 610101#角色的普通攻击技能
        fightdata['canDoMagicSkill'] = 1#可否释放魔法技能
        fightdata['canDoPhysicalSkill'] = 1#可否释放物理技能
        fightdata['canDoOrdSkill'] = 1#可否进行普通攻击
        fightdata['canBeTreat'] = 1#可否被治疗
        fightdata['canBeAttacked'] = 1#可否被攻击
        fightdata['canDied'] = 1#是否可死亡
        fightdata['skillIDByAttack'] = 0#被攻击的技能的ID 普通攻击为 0
        return fightdata
        
    def formatInfo(self):
        '''格式化角色信息
        '''
        info = {}
        return info