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])
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])
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)
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()
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
def iscolonManage(pid, dynamicId): data = InstanceColonizeGuerdon.iscoloBypid(pid) #角色是否有殖民地 if data: #如果有殖民地 icon_app.add(pid, 2) else: icon_app.clear(pid, 2)