def dropPetInMatrix(self, petId):
     """丢弃阵法中的宠物
     """
     if petId not in self._matrixSetting.values():
         return False
     for eye, _petId in self._matrixSetting.items():
         if petId == _petId:
             characterId = self._owner.baseInfo.id
             props = {eye: -1}
             self._matrixSetting[eye] = -1
             dbCharacterMatrix.updateCharacterMatrixInfo(characterId, props)
             return True
     return False
 def dropPetInMatrix(self,petId):
     """丢弃阵法中的宠物
     """
     if petId not in self._matrixSetting.values():
         return False
     for eye,_petId in self._matrixSetting.items():
         if petId == _petId:
             characterId = self._owner.baseInfo.id
             props = {eye:-1}
             self._matrixSetting[eye]=-1
             dbCharacterMatrix.updateCharacterMatrixInfo(characterId, props)
             return True
     return False
     
     
     
     
    def updateMatrix(self, petId, operationType, fromPos, toPos):
        '''更新阵法位置信息
        @param petId: int 宠物的ID 为0时表示是角色自身
        @param operationType: int 操作类型0从宠物列表到阵法1从阵法到宠物列表2从阵法到阵法
        @param fromPos: int 起始位置
        @param toPos: int 结束位置
        '''
        characterId = self._owner.baseInfo.id
        fromEyeNo = fromPos + 1
        toEyeNo = toPos + 1
        if operationType == 0:
            pet = self._owner.pet._pets.get(petId)
            if not pet:
                return {'result': False, 'message': Lg().g(159)}
            petlevel = pet.level.getLevel()
            leveldelta = petlevel - self._owner.level.getLevel()
            if leveldelta >= 5:
                return {'result': False, 'message': Lg().g(366) % (petlevel)}

            if petId in self._matrixSetting.values():
                return {'result': False, 'message': Lg().g(367)}
            if self._matrixSetting.get('eyes_%d' % toEyeNo) == 0:
                return {'result': False, 'message': Lg().g(368)}
            topetId = self._matrixSetting.get('eyes_%d' % toEyeNo)
            nowcnt = self.getNowCnt()
            maxcnt = self.getMatrixMaxEyesCnt()
            if nowcnt >= maxcnt:
                if topetId == -1 or (topetId
                                     not in self._owner.pet._pets.keys()):
                    return {'result': False, 'message': Lg().g(369)}
            props = {'eyes_%d' % (toEyeNo): petId}
            self._matrixSetting['eyes_%d' % (toEyeNo)] = petId
            dbCharacterMatrix.updateCharacterMatrixInfo(characterId, props)
            self._owner.quest.specialTaskHandle(109)  #特殊任务处理
            return {'result': True}
        elif operationType == 1:

            petId = self._matrixSetting.get('eyes_%d' % fromEyeNo)
            if petId == -1:
                return {'result': False, 'message': Lg().g(370)}
            if petId == 0:
                return {'result': False, 'message': Lg().g(368)}
            props = {'eyes_%d' % (fromEyeNo): -1}
            self._owner.pet.addLastRemove(petId)
            self._matrixSetting['eyes_%d' % (fromEyeNo)] = -1
            dbCharacterMatrix.updateCharacterMatrixInfo(characterId, props)
            return {'result': True}
        else:
            fromPid = self._matrixSetting.get('eyes_%d' % fromEyeNo, -1)
            toPid = self._matrixSetting.get('eyes_%d' % toEyeNo, -1)
            if fromPid == -1:
                return {'result': False, 'message': Lg().g(370)}
            props = {
                'eyes_%d' % (toEyeNo): fromPid,
                'eyes_%d' % (fromEyeNo): toPid
            }
            self._matrixSetting['eyes_%d' % (toEyeNo)] = fromPid
            self._matrixSetting['eyes_%d' % (fromEyeNo)] = toPid
            dbCharacterMatrix.updateCharacterMatrixInfo(characterId, props)
            return {'result': True}
 def updateMatrix(self,petId,operationType,fromPos,toPos):
     '''更新阵法位置信息
     @param petId: int 宠物的ID 为0时表示是角色自身
     @param operationType: int 操作类型0从宠物列表到阵法1从阵法到宠物列表2从阵法到阵法
     @param fromPos: int 起始位置
     @param toPos: int 结束位置
     '''
     characterId = self._owner.baseInfo.id
     fromEyeNo = fromPos+1
     toEyeNo = toPos+1
     if operationType==0:
         pet = self._owner.pet._pets.get(petId)
         if not pet:
             return {'result':False,'message':Lg().g(159)}
         petlevel = pet.level.getLevel()
         leveldelta = petlevel -self._owner.level.getLevel()
         if leveldelta>=5:
             return {'result':False,'message':Lg().g(366)%(petlevel)}
         
         if petId in self._matrixSetting.values():
             return {'result':False,'message':Lg().g(367)}
         if self._matrixSetting.get('eyes_%d'%toEyeNo)==0:
             return {'result':False,'message':Lg().g(368)}
         topetId = self._matrixSetting.get('eyes_%d'%toEyeNo)
         nowcnt = self.getNowCnt()
         maxcnt = self.getMatrixMaxEyesCnt()
         if nowcnt>=maxcnt:
             if topetId ==-1 or (topetId not in self._owner.pet._pets.keys()):
                 return {'result':False,'message':Lg().g(369)}
         props = {'eyes_%d'%(toEyeNo):petId}
         self._matrixSetting['eyes_%d'%(toEyeNo)] = petId
         dbCharacterMatrix.updateCharacterMatrixInfo(characterId, props)
         self._owner.quest.specialTaskHandle(109)#特殊任务处理
         return {'result':True}
     elif operationType == 1:
         
         petId = self._matrixSetting.get('eyes_%d'%fromEyeNo)
         if petId==-1:
             return {'result':False,'message':Lg().g(370)}
         if petId==0:
             return {'result':False,'message':Lg().g(368)}
         props = {'eyes_%d'%(fromEyeNo):-1}
         self._owner.pet.addLastRemove(petId)
         self._matrixSetting['eyes_%d'%(fromEyeNo)] = -1
         dbCharacterMatrix.updateCharacterMatrixInfo(characterId, props)
         return {'result':True}
     else:
         fromPid = self._matrixSetting.get('eyes_%d'%fromEyeNo,-1)
         toPid =  self._matrixSetting.get('eyes_%d'%toEyeNo,-1)
         if fromPid==-1:
             return {'result':False,'message':Lg().g(370)}
         props = {'eyes_%d'%(toEyeNo):fromPid,'eyes_%d'%(fromEyeNo):toPid}
         self._matrixSetting['eyes_%d'%(toEyeNo)] = fromPid
         self._matrixSetting['eyes_%d'%(fromEyeNo)] = toPid
         dbCharacterMatrix.updateCharacterMatrixInfo(characterId, props)
         return {'result':True}