def instanceColonizeBattle_712(dynamicId, request_proto): '''副本殖民战斗''' argument = ColonizationBattle712_pb2.FightRequest() argument.ParseFromString(request_proto) response = ColonizationBattle712_pb2.FightResponse() dynamicId = dynamicId cid = argument.id #角色id 挑战方ids instanceid = argument.copyId #副本id(难度最小的那个) player = PlayersManager().getPlayerByID(cid) res = CanDoServer(cid) if not res['result']: pushOtherMessage(905, res.get('message', u''), [dynamicId]) return res if player: player.quest.specialTaskHandle(106, state=0) #特殊任务处理 else: log.err(u"instanceColonize_net-76row-not playerid-%s-error" % cid) iname = InstanceColonizeGuerdon.getInstancenameByinstanceid(instanceid) if not InstanceColonizeGuerdon.goClonizeGue(cid): #如果没有战书 response.result = False response.message = Lg().g(611) return response.SerializeToString() list1, zon, pid = InstanceColonizeGuerdon.getBattlePlayer( instanceid, cid) #返回 list,zon if not list1: response.result = False response.message = zon response.data.setData.itemsBonus.extend([]) response.data.setData.sceneName = u"" response.data.battleResult = 0 response.data.centerX = 0 response.data.centerY = 0 return response.SerializeToString() data1 = InstanceColonizeGuerdon.getFightData(cid, list1, zon, instanceid) response.result = True response.data.battleResult = data1.battleResult response.data.centerX = data1.center response.data.centerY = 325 rResArr = response.data.rResArr startData = response.data.startData setpdata = response.data.stepData data1.SerializationResource(rResArr) data1.SerializationInitBattleData(startData) data1.SerializationStepData(setpdata) pids = InstanceColonizeGuerdon.getPidByinstanceid(instanceid) cb = False #入侵成功或者失败 ,默认失败 if data1.battleResult == 1: cb = True else: cb = False if pids > 0: if pids == cid: response.result = False response.message = Lg().g(612) response.data.setData.itemsBonus.extend([]) response.data.setData.sceneName = iname return response.SerializeToString() else: pushObjectNetInterface.pushEnterPlace_new(pid, [dynamicId]) #推送进入场景 else: pushObjectNetInterface.pushEnterPlace_new(pid, [dynamicId]) #推送进入场景 itemList = instance_app.dropItem( cid, instanceid, cb, iname) ##########添加成功失败记录,获取掉落物品,返回物品列表和副本名称 if (not itemList) or (len(itemList)) < 1: response.data.setData.itemsBonus.extend([]) else: it = response.data.setData.itemsBonus.add() for item in itemList: item.SerializationItemInfo(it) response.data.setData.sceneName = iname ct = InstanceColonizeGuerdon.getWinningCount(cid) response.data.setData.sucNum = ct #连胜次数 plv = player.level.getLevel() response.data.setData.goldNum = plv * 1000 #连胜奖金 return response.SerializeToString()
def instanceColonizeBattle_712(dynamicId, request_proto): '''副本殖民战斗''' argument = ColonizationBattle712_pb2.FightRequest() argument.ParseFromString(request_proto) response = ColonizationBattle712_pb2.FightResponse() dynamicId = dynamicId cid = argument.id #角色id 挑战方ids instanceid = argument.copyId #副本id(难度最小的那个) player=PlayersManager().getPlayerByID(cid) res = CanDoServer(cid) if not res['result']: pushOtherMessage(905, res.get('message',u''), [dynamicId]) return res if player: player.quest.specialTaskHandle(106,state=0) #特殊任务处理 else: log.err(u"instanceColonize_net-76row-not playerid-%s-error"%cid) iname=InstanceColonizeGuerdon.getInstancenameByinstanceid(instanceid) if not InstanceColonizeGuerdon.goClonizeGue(cid): #如果没有战书 response.result = False response.message=Lg().g(611) return response.SerializeToString() list1,zon,pid= InstanceColonizeGuerdon.getBattlePlayer(instanceid,cid) #返回 list,zon if not list1: response.result = False response.message=zon; response.data.setData.itemsBonus.extend([]) response.data.setData.sceneName=u"" response.data.battleResult = 0 response.data.centerX = 0 response.data.centerY = 0 return response.SerializeToString() data1=InstanceColonizeGuerdon.getFightData(cid, list1, zon,instanceid) response.result = True response.data.battleResult = data1.battleResult response.data.centerX = data1.center response.data.centerY = 325 rResArr = response.data.rResArr startData = response.data.startData setpdata = response.data.stepData data1.SerializationResource(rResArr) data1.SerializationInitBattleData(startData) data1.SerializationStepData(setpdata) pids=InstanceColonizeGuerdon.getPidByinstanceid(instanceid) cb=False #入侵成功或者失败 ,默认失败 if data1.battleResult==1: cb=True else: cb=False if pids>0: if pids==cid: response.result = False response.message=Lg().g(612) response.data.setData.itemsBonus.extend([]) response.data.setData.sceneName=iname return response.SerializeToString() else: pushObjectNetInterface.pushEnterPlace_new(pid,[dynamicId]) #推送进入场景 else: pushObjectNetInterface.pushEnterPlace_new(pid,[dynamicId]) #推送进入场景 itemList=instance_app.dropItem(cid, instanceid, cb,iname)##########添加成功失败记录,获取掉落物品,返回物品列表和副本名称 if (not itemList) or (len(itemList))<1: response.data.setData.itemsBonus.extend([]) else: it=response.data.setData.itemsBonus.add() for item in itemList: item.SerializationItemInfo(it) response.data.setData.sceneName=iname ct=InstanceColonizeGuerdon.getWinningCount(cid) response.data.setData.sucNum=ct#连胜次数 plv=player.level.getLevel() response.data.setData.goldNum=plv*1000 #连胜奖金 return response.SerializeToString()