def ColonizeBattleAfter_713(dynamicId, request_proto):
    '''副本殖民战斗之后回到原场景'''
    argument = EscColonizationBattle713_pb2.EscColonizationBattleRequest()
    argument.ParseFromString(request_proto)
    response = EscColonizationBattle713_pb2.EscColonizationBattleResponse()
    
    dynamicId = dynamicId
    cid = argument.id #角色id
    battleResult=argument.battleResult #副本战斗结果
    instanceid=argument.sceneId #副本id
    InstanceColonizeGuerdon.backScnee(cid,instanceid,battleResult)
    response.result = True
    response.message = u''
    pushObjectNetInterface.pushApplyMessage(713, response.SerializeToString(), [dynamicId])
Example #2
0
def ColonizeBattleAfter_713(dynamicId, request_proto):
    '''副本殖民战斗之后回到原场景'''
    argument = EscColonizationBattle713_pb2.EscColonizationBattleRequest()
    argument.ParseFromString(request_proto)
    response = EscColonizationBattle713_pb2.EscColonizationBattleResponse()

    dynamicId = dynamicId
    cid = argument.id  #角色id
    battleResult = argument.battleResult  #副本战斗结果
    instanceid = argument.sceneId  #副本id
    InstanceColonizeGuerdon.backScnee(cid, instanceid, battleResult)
    response.result = True
    response.message = u''
    pushObjectNetInterface.pushApplyMessage(713, response.SerializeToString(),
                                            [dynamicId])
Example #3
0
def GetColonizationSceneInfo_2405(dynamicId, request_proto):
    '''殖民管理获取当前页副本及其相关信息'''
    argument = GetColonizationSceneInfo2405_pb2.GetColonizationSceneInfoRequest(
    )
    argument.ParseFromString(request_proto)
    response = GetColonizationSceneInfo2405_pb2.GetColonizationSceneInfoResponse(
    )
    pid = argument.id
    page = argument.curPage  #当前页数
    data, zong = InstanceColonizeGuerdon.getInstanceinfoBypid(pid, page)
    if len(data) < 1:
        response.data.curPage = page
        response.data.maxPage = zong
        response.message = Lg().g(613)
        response.result = False
        return response.SerializeToString()
    response.message = u''
    response.result = True
    response.data.curPage = page
    response.data.maxPage = zong
    for val in data:
        info = response.data.copyInfo.add()
        info.c_id = val.get('id', 0)
        info.c_name = val.get('name', u'')
        info.li_liang = val.get('liliang', 0)
        info.add_li_liang = val.get('jialiliang', 0)
        info.min_jie = val.get('minjie', 0)
        info.add_min_jie = val.get('jiaminjie', 0)
        info.zhi_li = val.get('zhili', 0)
        info.add_zhi_li = val.get('jiazhili', 0)
        info.nai_li = val.get('naili', 0)
        info.add_nai_li = val.get('jianaili', 0)
        info.ji_shen = val.get('jingshen', 0)
        info.add_ji_shen = val.get('jiajingshen', 0)
        info.wu_gong = val.get('wugong', 0)
        info.wu_fang = val.get('wu_fang', 0)
        info.mo_gong = val.get('mogong', 0)
        info.mo_fang = val.get('mofang', 0)
        info.gong_su = val.get('gongsu', 0)
        info.ming_zhong = val.get('mingzhong', 0)
        info.bao_ji = val.get('baoji', 0)
        info.shan_bi = val.get('shanbi', 0)
        d = val.get('state', None)
        info.liliang_info.status = d[1]['status']
        info.liliang_info.remainTime = d[1]['remainTime']
        info.minjie_info.status = d[2]['status']
        info.minjie_info.remainTime = d[2]['remainTime']
        info.zhili_info.status = d[3]['status']
        info.zhili_info.remainTime = d[3]['remainTime']
        info.naili_info.status = d[4]['status']
        info.naili_info.remainTime = d[4]['remainTime']
        info.jingshen_info.status = d[5]['status']
        info.jingshen_info.remainTime = d[5]['remainTime']
    return response.SerializeToString()
def GetColonizationSceneInfo_2405(dynamicId, request_proto):
    '''殖民管理获取当前页副本及其相关信息'''
    argument=GetColonizationSceneInfo2405_pb2.GetColonizationSceneInfoRequest()
    argument.ParseFromString(request_proto)
    response=GetColonizationSceneInfo2405_pb2.GetColonizationSceneInfoResponse()
    pid=argument.id
    page=argument.curPage #当前页数
    data,zong=InstanceColonizeGuerdon.getInstanceinfoBypid(pid, page)
    if len(data)<1:
        response.data.curPage=page
        response.data.maxPage=zong
        response.message=Lg().g(613)
        response.result=False
        return response.SerializeToString()
    response.message=u''
    response.result=True
    response.data.curPage=page
    response.data.maxPage=zong
    for val in data:
        info=response.data.copyInfo.add()
        info.c_id=val.get('id',0)
        info.c_name=val.get('name',u'')
        info.li_liang=val.get('liliang',0)
        info.add_li_liang=val.get('jialiliang',0)
        info.min_jie=val.get('minjie',0)
        info.add_min_jie=val.get('jiaminjie',0)
        info.zhi_li=val.get('zhili',0)
        info.add_zhi_li=val.get('jiazhili',0)
        info.nai_li=val.get('naili',0)
        info.add_nai_li=val.get('jianaili',0)
        info.ji_shen=val.get('jingshen',0)
        info.add_ji_shen=val.get('jiajingshen',0)
        info.wu_gong=val.get('wugong',0)
        info.wu_fang=val.get('wu_fang',0)
        info.mo_gong=val.get('mogong',0)
        info.mo_fang=val.get('mofang',0)
        info.gong_su=val.get('gongsu',0)
        info.ming_zhong=val.get('mingzhong',0)
        info.bao_ji=val.get('baoji',0)
        info.shan_bi=val.get('shanbi',0)
        d=val.get('state',None)
        info.liliang_info.status=d[1]['status']
        info.liliang_info.remainTime=d[1]['remainTime']
        info.minjie_info.status=d[2]['status']
        info.minjie_info.remainTime=d[2]['remainTime']
        info.zhili_info.status=d[3]['status']
        info.zhili_info.remainTime=d[3]['remainTime']
        info.naili_info.status=d[4]['status']
        info.naili_info.remainTime=d[4]['remainTime']
        info.jingshen_info.status=d[5]['status']
        info.jingshen_info.remainTime=d[5]['remainTime']
    return response.SerializeToString()
def iscolonManage(pid,dynamicId):
    data=InstanceColonizeGuerdon.iscoloBypid(pid)#角色是否有殖民地
    if data:#如果有殖民地
        icon_app.add(pid, 2)
    else:
        icon_app.clear(pid, 2)
Example #6
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()
Example #8
0
def dropItem(cid,instanceid,battle,iname): #进入殖民战瞬间所做的
    from app.scense.applyInterface import   defencelog_app,instanceColonizeChallenge
    from app.scense.applyInterface import  InstanceColonizeGuerdon
    from app.scense.core.instance.WinManager import WinManager
    from app.scense.applyInterface import winning_app
    from app.scense.core.instance.ColonizeManage import ColonizeManage
    from app.scense.core.character.PlayerCharacter import PlayerCharacter
    player=PlayersManager().getPlayerByID(cid) #挑战方角色
    zyname=player.guild.getUnionTypeStr()+Lg().g(129)#获取阵营名称
    pname=player.baseInfo.getName()
    instancegroupid=InstanceGroupManage().getFristInstanceBy(instanceid) #副本组id
    instanceinfo=ColonizeManage().getInstanceInfoByid(instancegroupid) #根据副本组id获取副本殖民信息
    pid=instanceinfo['pid']#元始领主的角色id#通过副本组id获取占领者id pid<0表示这个副本的领主是怪物
#    gid=0
#    gname=Lg().g(143)
#    if player.guild.getID()>0:
#        gid=player.guild.getID()
#        gname=player.guild.getGuildName()
    plv=player.level.getLevel()
    player2=None#原始领主实例
    p2name='' #元始领主角色名称
    datas=None #返回掉落信息
    if pid>0:#如果挑战者挑战其他角色
        p2name=instanceinfo['pname'] #元始领主角色名称
        datas=objectVal(cid, iname, pid, battle, pname, p2name)
        player2=PlayersManager().getPlayerByID(pid)#元始领主角色
        if not player2:
            player2=PlayerCharacter(pid)
#        winning_app.updateWinning(cid, battle)#设置连胜
    if battle: #殖民是否成功
        player.daily.noticeDaily(23,0,-1)
        if pid<1:#如果此副本没有被殖民,角色打得是怪物
            data = InstanceColonizeGuerdon.addInstanceColonizelog(cid, instancegroupid,iname)
            if data: #添加副本殖民成功
                coin=plv*1000
                player.finance.updateCoin(player.finance.getCoin()+coin,0)
                mname=instanceColonizeChallenge.getMosterNameByinstanceid(instancegroupid)
                mg=Lg().g(130)%(zyname,pname,mname,iname,str(coin));
                
                mmg=Lg().g(131)%(iname,mname,pname)
                ch=WinManager().getName(cid) #获得称号
                if ch:
                    mmg+=Lg().g(132)%ch
                winning_app.addmessage(mmg,type=1,id=instancegroupid)
                plist= ColonizeManage().getprotalBypid(cid)#获取主宰的传送门名称
                if plist and len(plist)>0:
                    for nme in plist:
                        sett=Lg().g(133)%(iname,mname,pname,nme)
                        winning_app.addmessage(sett)
                        player.msgbox.putSystem(sett)
                player.msgbox.putSystem(mg)

        else: #如果此副本被殖民了
#            lev=player2.level.getLevel()-player.level.getLevel()
#            if lev<0:
#                lev=0
#            ww= player.level.getLevel()*13+lev*10#殖民成功获得的威望
            ww= player.level.getLevel()*5#殖民成功获得的威望
            player.finance.updatePrestige(player.finance.getPrestige()+ww,0)
            
#            if player2:
#                defencelog_app.iscolonManage(player2.baseInfo.id, player.getDynamicId()) #刷新挑战者殖民管理图标
            defencelog_app.addDefeated_fail_logTrue(instancegroupid, cid, pname,pid,p2name,instanceinfo['name'])
            defencelog_app.updateColonize(instancegroupid,iname,cid, pid,pname) #更改殖民信息
            WinManager().add(cid)#添加连胜次数
            ColonizeManage().updateWm0(instancegroupid)
            mg=Lg().g(134)%(zyname,pname,p2name,iname)
            player.msgbox.putSystem(mg)
            
            mmg=Lg().g(135)%(iname,p2name,pname)
            ch=WinManager().getName(cid) #获得称号
            if ch:
                mmg+=Lg().g(136)%ch
            winning_app.addmessage(mmg,type=1,id=instancegroupid)
            player.msgbox.putSystem(mmg)
            plist= ColonizeManage().getprotalBypid(cid)#获取主宰的传送门名称

            if plist and len(plist)>0:
                for nme in plist:
                    sett=Lg().g(137)%(iname,p2name,pname,nme)
                    winning_app.addmessage(sett)
                    player.msgbox.putSystem(sett)
           
            
    else:#殖民失败
        if pid>0:##如果此副本被殖民了
#            ww= int(math.ceil((player.level.getLevel()*5.0)))#殖民成功获得的威望
            ww=player.level.getLevel()#殖民成功获得的威望
            player.finance.updatePrestige(player.finance.getPrestige()+ww,0)
            winning_app.updateWinning(pid, True)#增加元始领主连胜次数
#            dcount=winning_app.getWinning(pid)#获取连胜次数
            defencelog_app.addDefeated_fail_log(instancegroupid, cid, pname,pid,p2name,instanceinfo['name'])
            dcount=ColonizeManage().AddWm(instancegroupid)#增加卫冕次数
            RqManage().addSb(instancegroupid, iname, pid, p2name, cid, pname)#添加挑战失败记录
            mg=Lg().g(138)%(zyname,p2name,iname,pname,str(dcount))
            player.msgbox.putSystem(mg)
            ch=WinManager().getName(cid) #获得称号
            if not ch:
                ch=u""
            else:
                ch+=Lg().g(139)
            mmg=Lg().g(140)%(iname,p2name,ch,pname,dcount)
            winning_app.addmessage(mmg,type=1,id=instancegroupid)
            player.msgbox.putSystem(mmg)
            plist= ColonizeManage().getprotalBypid(cid)#获取主宰的传送门名称
            if plist and len(plist)>0:
                for nme in plist:
                    sett=Lg().g(141)%(iname,p2name,nme,pname,dcount)
                    winning_app.addmessage(sett)
                    player.msgbox.putSystem(sett)
            
#            if player2:
#                defencelog_app.iscolonManage(player2.baseInfo.id, player.getDynamicId()) #刷新挑战者殖民管理图标
        else:
            mname=instanceColonizeChallenge.getMosterNameByinstanceid(instancegroupid)
            mg=Lg().g(142)%(zyname,pname,iname,mname)
            player.msgbox.putSystem(mg)
#    defencelog_app.iscolonManage(cid, player.getDynamicId()) #刷新挑战者殖民管理图标
    return datas
Example #9
0
def iscolonManage(pid, dynamicId):
    data = InstanceColonizeGuerdon.iscoloBypid(pid)  #角色是否有殖民地
    if data:  #如果有殖民地
        icon_app.add(pid, 2)
    else:
        icon_app.clear(pid, 2)