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)