Example #1
0
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()