def updateMatrix(self,petId,chatype,operationType,fromEyeNo,toEyeNo):
     '''更新阵法位置信息
     @param petId: int 宠物的ID 为0时表示是角色自身
     @param operationType: int 操作类型0从宠物列表到阵法1从阵法到宠物列表2从阵法到阵法
     @param fromPos: int 起始位置
     @param toPos: int 结束位置
     '''
     characterId = self._owner.baseInfo.id
     if operationType==0:
         if chatype==3:
             pet = self._owner.pet._pets.get(petId)
             if not pet:
                 return {'result':False,'message':""}
             petlevel = pet.level.getLevel()
             leveldelta = petlevel -self._owner.level.getLevel()
             if leveldelta>=5:
                 return {'result':False,'message':""}
         else:
             if not petId in self._owner.friend._guyong:
                 return {'result':False,'message':""}
         if petId in self._matrixSetting.values():
             return {'result':False,'message':""}
         if self._matrixSetting.get('eyes_%d'%toEyeNo)==0:
             return {'result':False,'message':""}
         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':""}
         props = {'eyes_%d'%(toEyeNo):petId}
         self._matrixSetting['eyes_%d'%(toEyeNo)] = petId
         return {'result':True}
     elif operationType == 1:
         
         petId = self._matrixSetting.get('eyes_%d'%fromEyeNo)
         if petId==-1:
             return {'result':False,'message':""}
         if petId==0:
             return {'result':False,'message':""}
         props = {'eyes_%d'%(fromEyeNo):-1}
         self._owner.pet.addLastRemove(petId)
         self._matrixSetting['eyes_%d'%(fromEyeNo)] = -1
         matrixMmode = tb_matrix_amin.getObj(characterId)
         matrixMmode.update_multi(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':""}
         props = {'eyes_%d'%(toEyeNo):fromPid,'eyes_%d'%(fromEyeNo):toPid}
         self._matrixSetting['eyes_%d'%(toEyeNo)] = fromPid
         self._matrixSetting['eyes_%d'%(fromEyeNo)] = toPid
         matrixMmode = tb_matrix_amin.getObj(characterId)
         matrixMmode.update_multi(props)
         return {'result':True}
 def initMatrixInfo(self):
     '''初始化阵法设置信息'''
     characterId = self._owner.baseInfo.id
     matrixMmode = tb_matrix_amin.getObj(characterId)
     if not matrixMmode:
         characterId = self._owner.baseInfo.id
         self._matrixSetting = {'eyes_1':-1,
                                'eyes_2':-1,'eyes_3':-1,'eyes_4':-1,'eyes_5':0,
                                'eyes_6':-1,'eyes_7':-1,'eyes_8':-1,'eyes_9':-1,
                                'characterId':characterId,'matrixId':0}
         tb_matrix_amin.new(self._matrixSetting)
     else:
         self._matrixSetting = matrixMmode.get("data")
 def dropPetInMatrix(self, petId):
     """丢弃阵法中的宠物
     """
     if not self.IsInMatrix(petId):
         return False
     for eye, _petId in self._matrixSetting.items():
         if petId == _petId:
             characterId = self._owner.baseInfo.id
             props = {eye: -1}
             self._matrixSetting[eye] = -1
             matrixMmode = tb_matrix_amin.getObj(characterId)
             matrixMmode.update_multi(props)
             return True
     return False
 def dropPetInMatrix(self,petId):
     """丢弃阵法中的宠物
     """
     if not self.IsInMatrix(petId):
         return False
     for eye,_petId in self._matrixSetting.items():
         if petId == _petId:
             characterId = self._owner.baseInfo.id
             props = {eye:-1}
             self._matrixSetting[eye]=-1
             matrixMmode = tb_matrix_amin.getObj(characterId)
             matrixMmode.update_multi(props)
             return True
     return False
 def WriteMatrixInDB(self):
     self.cleanMatrixSetting()
     characterId = self._owner.baseInfo.id
     newsetting = self._matrixSetting
     matrixMmode = tb_matrix_amin.getObj(characterId)
     matrixMmode.update_multi(newsetting)
 def WriteMatrixInDB(self):
     self.cleanMatrixSetting()
     characterId = self._owner.baseInfo.id
     newsetting = self._matrixSetting
     matrixMmode = tb_matrix_amin.getObj(characterId)
     matrixMmode.update_multi(newsetting)