def LevelUpEmblem(self, operator): '''升级军徽 @param operator: int 操作者的id ''' if self.MAXLEVEL <= self.get('emblemLevel'): return {'result': False, 'message': Lg().g(542)} player = PlayersManager().getPlayerByID(operator) self.emblemLevel += 1 result = True if result: msg = Lg().g(543)%\ (self.guildinfo['emblemLevel']) pushOtherMessage(905, msg, [player.getDynamicId()]) if self.guildinfo['emblemLevel'] == 20: utype = { 1: Lg().g(544), 2: Lg().g(545) }.get(self.guildinfo['camp'], Lg().g(546)) palyername = player.baseInfo.getName(0) gname = self.getGuildName() sendmsg = Lg().g(547) % (utype, palyername, gname) chatnoderemote.callRemote('pushSystemToInfo', sendmsg) return { 'result': True, 'message': Lg().g(548) % (self.guildinfo['emblemLevel']) } return {'result': False, 'message': Lg().g(549)}
def CorpsInviteOther(dynamicId,characterId,otherid,otername): '''邀请加入行会 @param dynamicId: int 客户端的动态id @param characterId: int 角色的id @param otherid: int 对方的Id @param otername: 对方的名称 ''' player = PlayersManager().getPlayerByID(characterId) if not player or not player.CheckClient(dynamicId): return {'result':False,'message':Lg().g(18)} guildId = player.guild.getID() if not guildId: return {'result':False,'message':Lg().g(79)} toplayer = PlayersManager().getPlayerByID(otherid) if not toplayer: return {'result':False,'message':Lg().g(91)} if toplayer.level.getLevel()<LEVELREQUIRED: return {'result':False,'message':Lg().g(86)} guild = GuildManager().getGuildById(guildId) if guild.guildinfo.get('curMenberNum',50)>=guild.guildinfo.get('memberCount',50): return {'result':False,'message':Lg().g(83)} sendList = [toplayer.getDynamicId()] pushInviteOtherJoinGuild(characterId, guildId, player.baseInfo.getName(),\ guild.getGuildName(), sendList) msg = Lg().g(92) pushOtherMessage(905, msg, [dynamicId]) return {'result':True}
def GetGroupLingDiInfo_4400(dynamicId, request_proto): '''获取国领地信息 ''' argument = GetGroupLingDiInfo4400_pb2.GetGroupLingDiInfoRequest() argument.ParseFromString(request_proto) response = GetGroupLingDiInfo4400_pb2.GetGroupLingDiInfoResponse() characterId = argument.id data = campaign.GetGroupLingDiInfo4400(dynamicId, characterId) response.result = data.get('result', False) msg = data.get('message', '') if msg: pushOtherMessage(905, msg, [dynamicId]) response.message = msg if data.get('data', None): LingdiInfo = data.get('data') response.groupInfo.ldType = LingdiInfo['ldType'] response.groupInfo.groupName = LingdiInfo['groupName'] response.groupInfo.groupLevel = LingdiInfo['groupLevel'] response.groupInfo.groupLeader = LingdiInfo['groupLeader'] response.groupInfo.obtainJL = LingdiInfo['obtainJL'] response.groupInfo.icon = LingdiInfo['icon'] response.groupInfo.battleInfo.extend(LingdiInfo['battleInfo']) response.groupInfo.battleTime = LingdiInfo['battleTime'] return response.SerializeToString()
def LevelUpEmblem(dynamicId,characterId): '''升级军徽 @param dynamicId: int 客户端的动态id @param characterId: int 角色的id ''' player = PlayersManager().getPlayerByID(characterId) if not player or not player.CheckClient(dynamicId): return {'result':False,'message':Lg().g(18)} guildId = player.guild.getID() if not guildId: return {'result':False,'message':Lg().g(79)} guild = GuildManager().getGuildById(guildId) emblemlevel = guild.guildinfo.get('emblemLevel',0) goldRequired = {1:100,2:200,3:500,4:1000,5:2000,6:5000,7:10000,8:20000,9:50000,10:10000} goldcons = goldRequired.get(emblemlevel,100) if goldcons > player.finance.getGold(): msg = Lg().g(190) pushOtherMessage(905, msg, [dynamicId]) return {'result':False,'message':msg} data = guild.LevelUpEmblem(characterId) if data.get('result',False): player.finance.consGold(goldcons,6)#升级军徽消耗钻 player.guild.addContribution(int(goldcons*1.5)) player.updatePlayerInfo() else: pushOtherMessage(905, data.get('message',''), [dynamicId]) return data
def addPlayerFriend(dynamicId, characterId, friendName, friendType, isSheildedMail=0): '''添加好友 @param dynamicId: int 客户端的动态id @param characterId: int 角色的id @param friendName: string 对方的昵称 @param friendType: int(1,2) 好友的类型 1:好友 2:黑名单 @param isSheildedMail: 是否屏蔽邮件 ''' player = PlayersManager().getPlayerByID(characterId) if not player: return {'result': False, 'message': Lg().g(18)} friendId = dbaccess.getCharacterIdByNickName(friendName) #返回好友角色id [id] if not friendId: msg = Lg().g(75) pushObjectNetInterface.pushOtherMessage(905, msg, [player.getDynamicId()]) return {'result': False, 'message': Lg().g(68)} pyid = -1 #关系好友动态id -1表示角色没有在线 其他表示角色动态id py1 = PlayersManager().getPlayerByID(friendId[0]) if py1 and py1.friend.getTypeByid(characterId) == 0: #如果好友在线 pyid = py1.getDynamicId() result = player.friend.addFriend(characterId, friendId[0], friendType, pyid) if result: pushObjectNetInterface.pushOtherMessage(905, result['message'], [player.getDynamicId()]) return {'result': True, 'message': Lg().g(69)} return {'result': False, 'message': Lg().g(70)}
def StartUpGuaJi(dynamicId,characterId): '''角色开始挂机 @param characterId: int 角色的ID ''' from app.scense.core.campaign.FortressManager import FortressManager player = PlayersManager().getPlayerByID(characterId) if not player or not player.CheckClient(dynamicId): return {'result':False,'message':Lg().g(18)} #判断是否有冥想加成 if player.baseInfo.getState()==1: #如果角色在副本 state = 0 else: guildId = player.guild.getID() sceneId = player.baseInfo.getTown() fortress= FortressManager().getFortressBySceneId(sceneId) if not fortress.isOccupied: state = 0 else: if fortress.kimori==guildId and guildId!=0: state=1 else: state = 0 result = player.afk.startMeditation(state=state) if not result.get('result'): msg = result.get('message') sendId = player.getDynamicId() pushOtherMessage(905, msg, [sendId]) return result
def buyItemInMall_214(dynamicId,request_proto): '''购买商城中的物品''' argument = buyItemInMall214_pb2.buyItemInMallRequest() argument.ParseFromString(request_proto) response = buyItemInMall214_pb2.buyItemInMallResponse() dynamicId = dynamicId characterId = argument.id itemTemplateId = argument.itemTemplateId count=argument.count priceType=argument.priceType# buyType=argument.buyType presentName=argument.presentName data = shop.buyItemInMall(dynamicId, characterId, itemTemplateId,count,priceType,buyType,presentName) message = data.get('message',u'') response.result = data.get('result',False) response.message = message if message: pushOtherMessage(905, message, [dynamicId]) data1=data.get('data',None) if data1: response.data.recharge=data1.get('recharge',False) response.data.priceType=data1.get('priceType',0) response.data.itemTemplateId=data1.get('itemTemplateId',-1) response.data.count=data1.get('count',-1) response.data.buyType=buyType response.data.presentName=presentName return response.SerializeToString()
def GetGroupLingDiInfo_4400(dynamicId, request_proto): """获取国领地信息 """ argument = GetGroupLingDiInfo4400_pb2.GetGroupLingDiInfoRequest() argument.ParseFromString(request_proto) response = GetGroupLingDiInfo4400_pb2.GetGroupLingDiInfoResponse() characterId = argument.id data = campaign.GetGroupLingDiInfo4400(dynamicId, characterId) response.result = data.get("result", False) msg = data.get("message", "") if msg: pushOtherMessage(905, msg, [dynamicId]) response.message = msg if data.get("data", None): LingdiInfo = data.get("data") response.groupInfo.ldType = LingdiInfo["ldType"] response.groupInfo.groupName = LingdiInfo["groupName"] response.groupInfo.groupLevel = LingdiInfo["groupLevel"] response.groupInfo.groupLeader = LingdiInfo["groupLeader"] response.groupInfo.obtainJL = LingdiInfo["obtainJL"] response.groupInfo.icon = LingdiInfo["icon"] response.groupInfo.battleInfo.extend(LingdiInfo["battleInfo"]) response.groupInfo.battleTime = LingdiInfo["battleTime"] return response.SerializeToString()
def activationSkill(self, skillGroup): '''学习技能 @skillGroup 技能组的ID ''' characterId = self._owner.baseInfo.id reason = dbSkill.LearnSkill(characterId, skillGroup) if not reason: return False LearnedSkillInfo = {'skillId': skillGroup, 'skillLevel': 1} self.learned_skillpool[skillGroup] = LearnedSkillInfo skillInfo = dbSkill.SKILL_GROUP[skillGroup].get(1) # coinRequired = skillInfo.get('levelUpMoney') # itemTemplateID = skillInfo.get('itemRequired') # requiredCount = skillInfo.get('itemCountRequired') # itemInfo = dbaccess.all_ItemTemplate.get(itemTemplateID) # self._owner.finance.updateCoin(self._owner.finance.getCoin()-coinRequired) # if skillGroup ==self.CATCHPETSKILLGROUP: # self._owner.quest.specialTaskHandle(108)#特殊抓宠任务处理 ## else: ## #特殊任务处理 # if itemTemplateID and requiredCount: # self._owner.pack.delItemByTemplateId(itemTemplateID,requiredCount) self._owner.daily.noticeDaily(11, 0, -1) msg = Lg().g(475) % skillInfo.get('skillName') pushOtherMessage(905, msg, [self._owner.getDynamicId()]) return True
def activationSkill(self,skillGroup): '''学习技能 @skillGroup 技能组的ID ''' characterId = self._owner.baseInfo.id reason = dbSkill.LearnSkill(characterId, skillGroup) if not reason: return False LearnedSkillInfo = {'skillId':skillGroup,'skillLevel':1} self.learned_skillpool[skillGroup] = LearnedSkillInfo skillInfo = dbSkill.SKILL_GROUP[skillGroup].get(1) # coinRequired = skillInfo.get('levelUpMoney') # itemTemplateID = skillInfo.get('itemRequired') # requiredCount = skillInfo.get('itemCountRequired') # itemInfo = dbaccess.all_ItemTemplate.get(itemTemplateID) # self._owner.finance.updateCoin(self._owner.finance.getCoin()-coinRequired) # if skillGroup ==self.CATCHPETSKILLGROUP: # self._owner.quest.specialTaskHandle(108)#特殊抓宠任务处理 ## else: ## #特殊任务处理 # if itemTemplateID and requiredCount: # self._owner.pack.delItemByTemplateId(itemTemplateID,requiredCount) self._owner.daily.noticeDaily(11,0,-1) msg = Lg().g(475)%skillInfo.get('skillName') pushOtherMessage(905, msg, [self._owner.getDynamicId()]) return True
def CorpsInviteOther(dynamicId, characterId, otherid, otername): '''邀请加入行会 @param dynamicId: int 客户端的动态id @param characterId: int 角色的id @param otherid: int 对方的Id @param otername: 对方的名称 ''' player = PlayersManager().getPlayerByID(characterId) if not player or not player.CheckClient(dynamicId): return {'result': False, 'message': Lg().g(18)} guildId = player.guild.getID() if not guildId: return {'result': False, 'message': Lg().g(79)} toplayer = PlayersManager().getPlayerByID(otherid) if not toplayer: return {'result': False, 'message': Lg().g(91)} if toplayer.level.getLevel() < LEVELREQUIRED: return {'result': False, 'message': Lg().g(86)} guild = GuildManager().getGuildById(guildId) if guild.guildinfo.get('curMenberNum', 50) >= guild.guildinfo.get( 'memberCount', 50): return {'result': False, 'message': Lg().g(83)} sendList = [toplayer.getDynamicId()] pushInviteOtherJoinGuild(characterId, guildId, player.baseInfo.getName(),\ guild.getGuildName(), sendList) msg = Lg().g(92) pushOtherMessage(905, msg, [dynamicId]) return {'result': True}
def ObtainItem_2408(dynamicId, request_proto): '''放到自己背包中''' argument = ObtainItem2408_pb2.ObtainItemRequest() argument.ParseFromString(request_proto) response = ObtainItem2408_pb2.ObtainItemResponse() id = argument.id #角色id type = argument.type #0获取所有 1获取单个 pos = argument.pos # 单个在背包的位置 player = PlayersManager().getPlayerByID(id) #角色实例 if type == 0: data = player.instance.putAllItemsInPack() if not data: response.result = False response.message = Lg().g(16) pushObjectNetInterface.pushOtherMessage(905, Lg().g(16), [player.getDynamicId()]) return response.SerializeToString() else: data = player.instance.getOneItemInPackByPosition(pos) if not data: response.result = False response.message = Lg().g(16) return response.SerializeToString() response.result = True response.message = u'' return response.SerializeToString()
def __StrengthenOne(player,item,qlevel,characterid): '''强化装备ing @param player: obj 角色 @param itemid: obj 物品 @param qlevel: int 强化等级 ''' # player.pack.delItemByItemId(item1id) # r=random.randint(1,100) if True: #如果强化成功 item.attribute.updateStrengthen(item.attribute.getStrengthen()+1) #强化+1 # sstime=player.qhtime.add(item.attribute.getStrengthen()-1)#增加冷却时间,返回增加后的剩余秒数 # pushObjectNetInterface.StrengthenTime2120(player.baseInfo.id,sstime)#推送心冷却时间到客户端 pushObjectNetInterface.pushOtherMessage(905, Lg().g(201), [player.getDynamicId()]) pushStrengthenSys(player,item,True) # msg=u'玩家['+player.baseInfo.getNickName()+u']强化'+item.baseInfo.getName()+'+'+str(item.attribute.getStrengthen())+' 成功' player.quest.specialTaskHandle(102)#特殊任务处理 player.schedule.noticeSchedule(2,goal = 1) player.daily.noticeDaily(8,0,item.attribute.getStrengthen()+1) return {'result':True,'message':u'','data':None} # chat.sendAnnouncement(msg) #公告 # chat.sendSysInfomation(msg1, player.baseInfo.id)#系统提示 else: #如果强化失败 # msg='玩家['+player.baseInfo.getNickName()+']强化'+item.baseInfo.getName()+'+'+str(item.attribute.getStrengthen())+' 失败' # chat.sendAnnouncement(msg) #公告 # chat.sendSysInfomation(msg1, player.baseInfo.id)#系统提示 pushStrengthenSys(player,item,False) pushObjectNetInterface.pushOtherMessage(905, Lg().g(202), [player.getDynamicId()]) return {'result':False,'message':u'','data':None}
def enterPlace_601(dynamicId, characterId, placeId,force,player): '''进入场景''' state = 0 if not player: player = PlayerCharacter(characterId,dynamicId = dynamicId) player.setlastOnline(datetime.datetime.now()) pushPlayerGonggaoXinxi(player) else: player = cPickle.loads(player) player.startAllTimer() state = 1 #判断是否满足进入场景的需求 sceneInfo = dbMap.ALL_MAP_INFO.get(placeId,{}) levelRequired = sceneInfo['level'] if player.level.getLevel()<sceneInfo['level']: msg = Lg().g(607)%levelRequired pushOtherMessage(905, msg, [dynamicId]) return {'result':False,'message':Lg().g(332)} player.baseInfo.setTown( placeId) player.baseInfo.setState(0) PlayersManager().addPlayer(player) defencelog_app.isReward(player.baseInfo.id, player.getDynamicId()) scene = MapManager().getMapId(placeId) scenename = scene.getSceneName() chatnoderemote.callRemote('JoinRoom',characterId,placeId,scenename) scene.addPlayer(characterId) player.quest.setNpcList(scene._npclist) scene.pushEnterPlace([dynamicId]) # if not state: # publicnoderemote.callRemote('addPcharacter',characterId,getNodeId()) # else: # publicnoderemote.callRemote('updatePCharacterNodeId',characterId,getNodeId()) return {'result':True,'message':'','data':{'placeId':placeId}}
def getSxzy(characterid, item1, item2): '''获取属性转移后的效果及其花费信息 @param item1: int 物品id (转移后强化等级变成0的那个物品的id) @param item: int 物品id ''' if item1 == item2: pushObjectNetInterface.pushOtherMessageByCharacterId( Lg().g(206), [characterid]) return {'result': False, 'message': Lg().g(206), 'data': None} player = PlayersManager().getPlayerByID(characterid) #角色实例 if not player: return {'result': False, 'message': Lg().g(199), 'data': None} if player.level.getLevel() < 30: return {'result': False, 'message': Lg().g(205), 'data': None} items1 = getItemByplayer(player, item1) if not items1: return {'result': False, 'message': Lg().g(189), 'data': None} items2 = getItemByplayer(player, item2) if not items2: return {'result': False, 'message': Lg().g(189), 'data': None} if items1.getWQtype() != items2.getWQtype(): return {'qh': None, 'coin': 0} level = Sxzy(items1, items2) zyyh = level + items2.attribute.getStrengthen() #转移以后装备的强化等级 if player.level.getLevel() < zyyh: pushObjectNetInterface.pushOtherMessage(905, Lg().g(207) % zyyh, [player.getDynamicId()]) Zcion = getSxzyCoin(items1, items2) #转移花费金币 return {'qh': level, 'coin': Zcion}
def addPlayerFriend(dynamicId,characterId,friendName,friendType,isSheildedMail=0): '''添加好友 @param dynamicId: int 客户端的动态id @param characterId: int 角色的id @param friendName: string 对方的昵称 @param friendType: int(1,2) 好友的类型 1:好友 2:黑名单 @param isSheildedMail: 是否屏蔽邮件 ''' player = PlayersManager().getPlayerByID(characterId) if not player: return {'result':False,'message':Lg().g(18)} friendId = dbaccess.getCharacterIdByNickName(friendName)#返回好友角色id [id] if not friendId: msg =Lg().g(75) pushObjectNetInterface.pushOtherMessage(905,msg, [player.getDynamicId()]) return {'result':False,'message':Lg().g(68)} pyid=-1 #关系好友动态id -1表示角色没有在线 其他表示角色动态id py1=PlayersManager().getPlayerByID(friendId[0]) if py1 and py1.friend.getTypeByid(characterId)==0:#如果好友在线 pyid=py1.getDynamicId() result = player.friend.addFriend(characterId,friendId[0],friendType,pyid) if result: pushObjectNetInterface.pushOtherMessage(905, result['message'], [player.getDynamicId()]) return {'result':True,'message':Lg().g(69)} return {'result':False,'message':Lg().g(70)}
def isHaveQH(characterid,itemid): '''判断是否能够强化 @param characterid: int 角色id @param itemid: int 物品1(item)表主键id ''' item1=None#物品实例1 player=PlayersManager().getPlayerByID(characterid) if itemid>0:#如果物品1存在 if player.pack._package._PropsPagePack.getPositionByItemId(itemid)!=-1:#背包中没有此物品 item1=player.pack._package._PropsPagePack.getItemInfoByItemid(itemid)#获取物品实例 else: item1=player.pack._equipmentSlot.getItemInfoByItemid(itemid) if not item1: return {'result':False,'message':Lg().g(189),'data':None} wqtype=item1.getWQtype()#武器类型 #装备类型id #0=衣服#1=裤子 #2=头盔#3=手套#4=靴子#5=护肩#6=项链#7=戒指#8=主武器#9=副武器#10=双手 if wqtype<0 or wqtype>10: #装备类型id pushObjectNetInterface.pushOtherMessage(905, Lg().g(196), [player.getDynamicId()]) return {'result':False,'message':Lg().g(197),'data':None} baseQuality=item1.baseInfo.getItemTemplateInfo().get("baseQuality",0)#基础品质 1灰 2白 3绿 4蓝 5紫 6橙 7红 itemlevel=item1.baseInfo.getItemTemplateInfo().get("levelRequire",0) #装备等级 qlevel=item1.attribute.getStrengthen() #物品当前的强化等级 jinbi= coinCount(qlevel,baseQuality,wqtype,itemlevel) return qq(player, itemid,wqtype,baseQuality,jinbi,item1)
def argeeApplyGroup(id, tid): '''同意申请入队 @param id: int 申请入队者id @param tid: int 有队的伍角色id ''' player = PlayersManager().getPlayerByID(id) #申请入队者 toplayer = PlayersManager().getPlayerByID(tid) #有队伍的角色id sendPlayer = toplayer.teamcom.getMyTeamLeader() #队长角色 if not player: return {'result': False, 'message': Lg().g(18)} if not toplayer: return {'result': False, 'message': Lg().g(256)} if player.teamcom.amITeamMember(): return {'result': False, 'message': Lg().g(254)} if not player.teamcom.amITeamMember(): return {'result': False, 'message': Lg().g(255)} if sendPlayer.teamcom.amITeamMember(): #如果队长有队伍 data = sendPlayer.teamcom.addTeamMember(player) if data['result']: player.teamcom.pushTeamMemberInfo() pushObjectNetInterface.pushOtherMessage(905, Lg().g(257), [sendPlayer.dynamicId]) return data
def agreeGroup(dynamicId,id,tid): '''同意组队邀请 (别人进来) @param dynamicId: int 客户端的id @param id: int 被邀请人id @param tid: int 邀请人id ''' player = PlayersManager().getPlayerByID(id)#被邀请人 toplayer = PlayersManager().getPlayerByID(tid)#邀请人 sendPlayer=None #队长角色 if not player: return {'result':False,'message':Lg().g(18)} if not toplayer: return {'result':False,'message':Lg().g(256)} if player.teamcom.amITeamMember() and toplayer.teamcom.amITeamMember():#如果都有组队 return {'result':False,'message':Lg().g(251)} elif not player.teamcom.amITeamMember() and not toplayer.teamcom.amITeamMember():#如果都没有队伍 data = toplayer.teamcom.addTeamMember(player)#邀请者为队长 sendPlayer=toplayer else: sendPlayer = toplayer.teamcom.getMyTeamLeader()#队长角色 data = sendPlayer.teamcom.addTeamMember(player) if data['result']: player.teamcom.pushTeamMemberInfo() pushObjectNetInterface.pushOtherMessage(905,Lg().g(257),sendPlayer.dynamicId) return data
def buyItemInMall_214(dynamicId, request_proto): '''购买商城中的物品''' argument = buyItemInMall214_pb2.buyItemInMallRequest() argument.ParseFromString(request_proto) response = buyItemInMall214_pb2.buyItemInMallResponse() dynamicId = dynamicId characterId = argument.id itemTemplateId = argument.itemTemplateId count = argument.count priceType = argument.priceType # buyType = argument.buyType presentName = argument.presentName data = shop.buyItemInMall(dynamicId, characterId, itemTemplateId, count, priceType, buyType, presentName) message = data.get('message', u'') response.result = data.get('result', False) response.message = message if message: pushOtherMessage(905, message, [dynamicId]) data1 = data.get('data', None) if data1: response.data.recharge = data1.get('recharge', False) response.data.priceType = data1.get('priceType', 0) response.data.itemTemplateId = data1.get('itemTemplateId', -1) response.data.count = data1.get('count', -1) response.data.buyType = buyType response.data.presentName = presentName return response.SerializeToString()
def ObtainItem_2408(dynamicId, request_proto): '''放到自己背包中''' argument=ObtainItem2408_pb2.ObtainItemRequest() argument.ParseFromString(request_proto) response=ObtainItem2408_pb2.ObtainItemResponse() id=argument.id #角色id type=argument.type #0获取所有 1获取单个 pos=argument.pos # 单个在背包的位置 player=PlayersManager().getPlayerByID(id) #角色实例 if type==0: data=player.instance.putAllItemsInPack() if not data: response.result=False response.message=Lg().g(16) pushObjectNetInterface.pushOtherMessage(905, Lg().g(16), [player.getDynamicId()]) return response.SerializeToString() else: data=player.instance.getOneItemInPackByPosition(pos) if not data: response.result=False response.message=Lg().g(16) return response.SerializeToString() response.result=True response.message=u'' return response.SerializeToString()
def agreeGroup(dynamicId, id, tid): '''同意组队邀请 (别人进来) @param dynamicId: int 客户端的id @param id: int 被邀请人id @param tid: int 邀请人id ''' player = PlayersManager().getPlayerByID(id) #被邀请人 toplayer = PlayersManager().getPlayerByID(tid) #邀请人 sendPlayer = None #队长角色 if not player: return {'result': False, 'message': Lg().g(18)} if not toplayer: return {'result': False, 'message': Lg().g(256)} if player.teamcom.amITeamMember() and toplayer.teamcom.amITeamMember( ): #如果都有组队 return {'result': False, 'message': Lg().g(251)} elif not player.teamcom.amITeamMember( ) and not toplayer.teamcom.amITeamMember(): #如果都没有队伍 data = toplayer.teamcom.addTeamMember(player) #邀请者为队长 sendPlayer = toplayer else: sendPlayer = toplayer.teamcom.getMyTeamLeader() #队长角色 data = sendPlayer.teamcom.addTeamMember(player) if data['result']: player.teamcom.pushTeamMemberInfo() pushObjectNetInterface.pushOtherMessage(905, Lg().g(257), sendPlayer.dynamicId) return data
def ObtainReward(pid,did): '''领取单个保卫奖励 @param pid: int 角色id @param did: int 保卫奖励表主键id ''' msg=u"" flg=True player=PlayersManager().getPlayerByID(pid)#获得角色id info=dbDefenceBonus.getByid(did) #根据奖励主键id获得奖励信息 if not info: pushObjectNetInterface.pushOtherMessage(905, Lg().g(61), [player.getDynamicId()]) return False,Lg().g(61) reward=info['reward'] player.finance.updatePrestige(player.finance.getPrestige()+reward) if not dbDefenceBonus.delByid(info['id']) : msg+=Lg().g(62) flg=False # item=Item(itemTemplateId=20030061) # item.pack.setStack(info['reward']) #物品的数量 # rs1=player.pack._package.canPutItem(item,info['reward']) #判断背包中是否可以放入这些数量的物品 # if rs1: #如果可以放进去 # player.pack.putNewItemsInPackage(20030061,info['reward']) # del item # if not dbDefenceBonus.delByid(info['id']) : # msg+=Lg().g(62) # flg=False # else: #如果一个奖励所获得物品不能放入背包 # del item # pushObjectNetInterface.pushOtherMessage(905, Lg().g(16), [player.getDynamicId()]) # return False,Lg().g(16) return flg,msg
def guyongpet(pid, petid, typeid): """雇用宠物 @param pid: int 角色id @param petid: int 宠物模板id @param typeid: int #1表示金币兑换的宠物 2表示幸运值兑换 """ from app.scense.utils.dbopera import dbCharacterPet player = PlayersManager().getPlayerByID(pid) if not player: return {"result": False, "message": Lg().g(18)} alls = dbCharacterPet.PET_TEMPLATE if alls.has_key(petid): pet = alls.get(petid) coin = pet["coin"] xy = pet["xy"] if typeid == 1: # 扣除金币 pcoin = player.finance.getCoin() if pcoin >= coin: petlevel = 1 # 宠物等级 for i in player.petShop.shop1: # i[宠物模板id,宠物等级] if i[0]["id"] == petid: petlevel = i[1] flg = player.pet.addPet(petid, level=petlevel) # 添加宠物并返回 if flg == -1: pushObjectNetInterface.pushOtherMessage(905, Lg().g(167), [player.getDynamicId()]) return {"result": True, "message": Lg().g(167)} elif flg == -2: pushObjectNetInterface.pushOtherMessage(905, Lg().g(168), [player.getDynamicId()]) return {"result": True, "message": Lg().g(168)} player.finance.updateCoin(pcoin - coin) player.quest.specialTaskHandle(115) # 特殊任务处理 player.schedule.noticeSchedule(16, goal=1) return {"result": True, "message": Lg().g(166)} else: return {"result": False, "message": Lg().g(88)} else: # 扣除幸运值 pxy = player.petShop.xy if pxy < xy: pushObjectNetInterface.pushOtherMessage(905, Lg().g(169), [player.getDynamicId()]) return {"result": True, "message": Lg().g(169)} if pxy >= xy: flg = player.pet.addPet(petid) if flg == -1: pushObjectNetInterface.pushOtherMessage(905, Lg().g(167), [player.getDynamicId()]) return {"result": False, "message": Lg().g(167)} elif flg == -2: pushObjectNetInterface.pushOtherMessage(905, Lg().g(168), [player.getDynamicId()]) return {"result": True, "message": Lg().g(168)} player.petShop.xy = pxy - xy player.quest.specialTaskHandle(115) # 特殊任务处理 player.schedule.noticeSchedule(16, goal=1) return {"result": True, "message": Lg().g(166)} else: return {"result": False, "message": Lg().g(169)} else: return {"result": False, "message": Lg().g(170)}
def isHaveQH(characterid, itemid): '''判断是否能够强化 @param characterid: int 角色id @param itemid: int 物品1(item)表主键id ''' item1 = None #物品实例1 player = PlayersManager().getPlayerByID(characterid) if itemid > 0: #如果物品1存在 if player.pack._package._PropsPagePack.getPositionByItemId( itemid) != -1: #背包中没有此物品 item1 = player.pack._package._PropsPagePack.getItemInfoByItemid( itemid) #获取物品实例 else: item1 = player.pack._equipmentSlot.getItemInfoByItemid(itemid) if not item1: return {'result': False, 'message': Lg().g(189), 'data': None} wqtype = item1.getWQtype( ) #武器类型 #装备类型id #0=衣服#1=裤子 #2=头盔#3=手套#4=靴子#5=护肩#6=项链#7=戒指#8=主武器#9=副武器#10=双手 if wqtype < 0 or wqtype > 10: #装备类型id pushObjectNetInterface.pushOtherMessage(905, Lg().g(196), [player.getDynamicId()]) return {'result': False, 'message': Lg().g(197), 'data': None} baseQuality = item1.baseInfo.getItemTemplateInfo().get( "baseQuality", 0) #基础品质 1灰 2白 3绿 4蓝 5紫 6橙 7红 itemlevel = item1.baseInfo.getItemTemplateInfo().get("levelRequire", 0) #装备等级 qlevel = item1.attribute.getStrengthen() #物品当前的强化等级 jinbi = coinCount(qlevel, baseQuality, wqtype, itemlevel) return qq(player, itemid, wqtype, baseQuality, jinbi, item1)
def ObtainReward(pid, did): '''领取单个保卫奖励 @param pid: int 角色id @param did: int 保卫奖励表主键id ''' msg = u"" flg = True player = PlayersManager().getPlayerByID(pid) #获得角色id info = dbDefenceBonus.getByid(did) #根据奖励主键id获得奖励信息 if not info: pushObjectNetInterface.pushOtherMessage(905, Lg().g(61), [player.getDynamicId()]) return False, Lg().g(61) reward = info['reward'] player.finance.updatePrestige(player.finance.getPrestige() + reward) if not dbDefenceBonus.delByid(info['id']): msg += Lg().g(62) flg = False # item=Item(itemTemplateId=20030061) # item.pack.setStack(info['reward']) #物品的数量 # rs1=player.pack._package.canPutItem(item,info['reward']) #判断背包中是否可以放入这些数量的物品 # if rs1: #如果可以放进去 # player.pack.putNewItemsInPackage(20030061,info['reward']) # del item # if not dbDefenceBonus.delByid(info['id']) : # msg+=Lg().g(62) # flg=False # else: #如果一个奖励所获得物品不能放入背包 # del item # pushObjectNetInterface.pushOtherMessage(905, Lg().g(16), [player.getDynamicId()]) # return False,Lg().g(16) return flg, msg
def getSxzy(characterid,item1,item2): '''获取属性转移后的效果及其花费信息 @param item1: int 物品id (转移后强化等级变成0的那个物品的id) @param item: int 物品id ''' if item1==item2: pushObjectNetInterface.pushOtherMessageByCharacterId(Lg().g(206), [characterid]) return {'result':False,'message':Lg().g(206),'data':None} player=PlayersManager().getPlayerByID(characterid) #角色实例 if not player: return {'result':False,'message':Lg().g(199),'data':None} if player.level.getLevel()<30: return {'result':False,'message':Lg().g(205),'data':None} items1=getItemByplayer(player, item1) if not items1: return {'result':False,'message':Lg().g(189),'data':None} items2=getItemByplayer(player, item2) if not items2: return {'result':False,'message':Lg().g(189),'data':None} if items1.getWQtype()!=items2.getWQtype(): return {'qh':None,'coin':0} level=Sxzy(items1, items2) zyyh=level+items2.attribute.getStrengthen()#转移以后装备的强化等级 if player.level.getLevel()<zyyh: pushObjectNetInterface.pushOtherMessage(905, Lg().g(207)%zyyh, [player.getDynamicId()]) Zcion=getSxzyCoin(items1, items2)#转移花费金币 return {'qh':level,'coin':Zcion}
def ActiveGodhead(dynamicId, characterId, godheadid): """激活神格""" player = PlayersManager().getPlayerByID(characterId) if not player: return {"result": False, "message": Lg().g(18)} data = player.godhead.ActiveGodhead(godheadid) pushOtherMessage(905, data.get("message", u""), [dynamicId]) return data
def OpenBattleSpace(dynamicId,characterId,spacePos): '''激活技能槽''' player = PlayersManager().getPlayerByID(characterId) if not player: return {'result':False,'message':Lg().g(18)} result = player.skill.OpenBattleSpace(spacePos) pushOtherMessage(905,result.get('message',''), [dynamicId]) return result
def skillLevelUp(dynamicId, characterId, skillId): '''技能升级''' player = PlayersManager().getPlayerByID(characterId) if not player: return {'result': False, 'message': Lg().g(18)} result = player.skill.LevelUpSkill(skillId) pushOtherMessage(905, result.get('message', ''), [dynamicId]) return result
def ActiveGodhead(dynamicId, characterId, godheadid): '''激活神格''' player = PlayersManager().getPlayerByID(characterId) if not player: return {'result': False, 'message': Lg().g(18)} data = player.godhead.ActiveGodhead(godheadid) pushOtherMessage(905, data.get('message', u''), [dynamicId]) return data
def OpenBattleSpace(dynamicId, characterId, spacePos): '''激活技能槽''' player = PlayersManager().getPlayerByID(characterId) if not player: return {'result': False, 'message': Lg().g(18)} result = player.skill.OpenBattleSpace(spacePos) pushOtherMessage(905, result.get('message', ''), [dynamicId]) return result
def skillLevelUp(dynamicId,characterId,skillId): '''技能升级''' player = PlayersManager().getPlayerByID(characterId) if not player: return {'result':False,'message':Lg().g(18)} result = player.skill.LevelUpSkill(skillId) pushOtherMessage(905,result.get('message',''), [dynamicId]) return result
def GetBattleInfo_4406(dynamicId, request_proto): '''获取国战的信息 ''' argument = GetBattleInfo4406_pb2.GetBattleInfoRequest() argument.ParseFromString(request_proto) response = GetBattleInfo4406_pb2.GetBattleInfoResponse() characterId = argument.id data = campaign.GetBattleInfo4406(dynamicId, characterId) response.result = data.get('result', False) msg = data.get('message', '') if msg: pushOtherMessage(905, msg, [dynamicId]) response.message = msg if data.get('data', None): BattleInfos = data.get('data') dataResponse = response.groupBattleInfo dataResponse.roundCount = BattleInfos.get('roundCount') dataResponse.remainTime = BattleInfos.get('remainTime') dataResponse.jishaCount = BattleInfos.get('jishaCount') dataResponse.failCount = BattleInfos.get('failCount') dataResponse.obtainCoin = BattleInfos.get('obtainCoin') dataResponse.obtainSw = BattleInfos.get('obtainSw') battleListResponse = dataResponse.battleInfoList for battleInfo in BattleInfos['battleInfoList']: battleResponse = battleListResponse.add() battleResponse.roleId1 = battleInfo.get('roleId1') battleResponse.roleName1 = battleInfo.get('roleName1') battleResponse.roleId2 = battleInfo.get('roleId2') battleResponse.roleName2 = battleInfo.get('roleName2') battleResponse.sucObCoin = battleInfo.get('sucObCoin') guild1Info = BattleInfos['group1Info'] group1InfoResponse = dataResponse.group1Info group1InfoResponse.groupName = guild1Info.get('groupName', u'') group1InfoResponse.groupCount = guild1Info.get('groupCount', 0) group1InfoResponse.icon = guild1Info.get('icon', 0) group1MemberListResponse = group1InfoResponse.groupMember for role in guild1Info.get('groupMember', []): roleResponse = group1MemberListResponse.add() roleResponse.memberId = role['memberId'] roleResponse.memberName = role['memberName'] guild2Info = BattleInfos['group2Info'] group2InfoResponse = dataResponse.group2Info group2InfoResponse.groupName = guild2Info.get('groupName', u'') group2InfoResponse.groupCount = guild2Info.get('groupCount', 0) group2InfoResponse.icon = guild2Info.get('icon', 0) group2MemberListResponse = group2InfoResponse.groupMember for role in guild2Info.get('groupMember', []): roleResponse = group2MemberListResponse.add() roleResponse.memberId = role['memberId'] roleResponse.memberName = role['memberName'] return response.SerializeToString()
def GetBattleInfo_4406(dynamicId, request_proto): """获取国战的信息 """ argument = GetBattleInfo4406_pb2.GetBattleInfoRequest() argument.ParseFromString(request_proto) response = GetBattleInfo4406_pb2.GetBattleInfoResponse() characterId = argument.id data = campaign.GetBattleInfo4406(dynamicId, characterId) response.result = data.get("result", False) msg = data.get("message", "") if msg: pushOtherMessage(905, msg, [dynamicId]) response.message = msg if data.get("data", None): BattleInfos = data.get("data") dataResponse = response.groupBattleInfo dataResponse.roundCount = BattleInfos.get("roundCount") dataResponse.remainTime = BattleInfos.get("remainTime") dataResponse.jishaCount = BattleInfos.get("jishaCount") dataResponse.failCount = BattleInfos.get("failCount") dataResponse.obtainCoin = BattleInfos.get("obtainCoin") dataResponse.obtainSw = BattleInfos.get("obtainSw") battleListResponse = dataResponse.battleInfoList for battleInfo in BattleInfos["battleInfoList"]: battleResponse = battleListResponse.add() battleResponse.roleId1 = battleInfo.get("roleId1") battleResponse.roleName1 = battleInfo.get("roleName1") battleResponse.roleId2 = battleInfo.get("roleId2") battleResponse.roleName2 = battleInfo.get("roleName2") battleResponse.sucObCoin = battleInfo.get("sucObCoin") guild1Info = BattleInfos["group1Info"] group1InfoResponse = dataResponse.group1Info group1InfoResponse.groupName = guild1Info.get("groupName", u"") group1InfoResponse.groupCount = guild1Info.get("groupCount", 0) group1InfoResponse.icon = guild1Info.get("icon", 0) group1MemberListResponse = group1InfoResponse.groupMember for role in guild1Info.get("groupMember", []): roleResponse = group1MemberListResponse.add() roleResponse.memberId = role["memberId"] roleResponse.memberName = role["memberName"] guild2Info = BattleInfos["group2Info"] group2InfoResponse = dataResponse.group2Info group2InfoResponse.groupName = guild2Info.get("groupName", u"") group2InfoResponse.groupCount = guild2Info.get("groupCount", 0) group2InfoResponse.icon = guild2Info.get("icon", 0) group2MemberListResponse = group2InfoResponse.groupMember for role in guild2Info.get("groupMember", []): roleResponse = group2MemberListResponse.add() roleResponse.memberId = role["memberId"] roleResponse.memberName = role["memberName"] return response.SerializeToString()
def QueRenExchange(dynamicId, characterId, fateId): '''积分兑换星运''' player = PlayersManager().getPlayerByID(characterId) if not player or not player.CheckClient(dynamicId): return {'result': False, 'message': Lg().g(18)} result = player.fate.ExchangeFate(fateId) msg = result.get('message', '') if msg: pushOtherMessage(905, msg, [dynamicId]) return result
def AddJingJiCount3703(dynamicId,characterId): '''添加竞技次数''' player = PlayersManager().getPlayerByID(characterId) if not player or not player.CheckClient(dynamicId): return {'result':False,'message':Lg().g(18)} result = player.arena.AddSurplustimes() msg = result.get('message',u'') if msg: pushOtherMessage(905, result.get('message',u''), [dynamicId]) return result
def WeiChiAndTiHuan(dynamicId, characterId, petId, ttype): """维持或者替换成长""" player = PlayersManager().getPlayerByID(characterId) if not player: return {"result": False, "message": Lg().g(18)} result = player.pet.Tihuan(petId, ttype) msg = result.get("message", "") if msg: pushOtherMessage(905, msg, [dynamicId]) return result
def TrainingPet(dynamicId, characterId, petId, trainingType): """宠物培养""" player = PlayersManager().getPlayerByID(characterId) if not player: return {"result": False, "message": Lg().g(18)} result = player.pet.Training(petId, trainingType) msg = result.get("message", "") if msg: pushOtherMessage(905, msg, [dynamicId]) return result
def ZhaoHuan(dynamicId, characterId, petId): """宠物召唤""" player = PlayersManager().getPlayerByID(characterId) if not player: return {"result": False, "message": Lg().g(18)} result = player.pet.ZhaoHuan(petId) msg = result.get("message", 0) if msg: pushOtherMessage(905, msg, [dynamicId]) return result
def updateQuestTraceStatu(dynamicId, characterId, taskID, traceStatu): '''更新任务追踪状态''' player = PlayersManager().getPlayerByID(characterId) if not player or not player.CheckClient(dynamicId): return {'result': False, 'message': Lg().g(18)} data = player.quest.updateQuestTraceStatu(taskID, traceStatu) if data.get('result', False) and traceStatu == 1: msg = u'该任务已添加至追踪列表' pushOtherMessage(905, msg, [dynamicId]) return data
def ResurPet(dynamicId, characterId, petId): """复活宠物""" player = PlayersManager().getPlayerByID(characterId) if not player: return {"result": False, "message": Lg().g(18)} result = player.pet.ResurPet(petId) msg = result.get("message", "") if msg: pushOtherMessage(905, msg, [dynamicId]) return result
def SettingMatrix(dynamicId, characterId, matrixID, petId, operationType, fromPos, toPos): """阵法设置""" player = PlayersManager().getPlayerByID(characterId) if not player: return {"result": False, "message": Lg().g(18)} result = player.matrix.updateMatrix(petId, operationType, fromPos, toPos) if not result.get("result"): msg = result.get("message", "") pushOtherMessage(905, msg, [dynamicId]) return result
def updateQuestTraceStatu(dynamicId,characterId,taskID,traceStatu): '''更新任务追踪状态''' player = PlayersManager().getPlayerByID(characterId) if not player or not player.CheckClient(dynamicId): return {'result':False,'message':Lg().g(18)} data = player.quest.updateQuestTraceStatu(taskID,traceStatu) if data.get('result',False) and traceStatu==1: msg = u'该任务已添加至追踪列表' pushOtherMessage(905,msg,[dynamicId]) return data
def WeiChiAndTiHuan(dynamicId, characterId, petId, ttype): '''维持或者替换成长''' player = PlayersManager().getPlayerByID(characterId) if not player: return {'result': False, 'message': Lg().g(18)} result = player.pet.Tihuan(petId, ttype) msg = result.get('message', '') if msg: pushOtherMessage(905, msg, [dynamicId]) return result
def ZhaoHuan(dynamicId, characterId, petId): '''宠物召唤''' player = PlayersManager().getPlayerByID(characterId) if not player: return {'result': False, 'message': Lg().g(18)} result = player.pet.ZhaoHuan(petId) msg = result.get('message', 0) if msg: pushOtherMessage(905, msg, [dynamicId]) return result
def TrainingPet(dynamicId, characterId, petId, trainingType): '''宠物培养''' player = PlayersManager().getPlayerByID(characterId) if not player: return {'result': False, 'message': Lg().g(18)} result = player.pet.Training(petId, trainingType) msg = result.get('message', '') if msg: pushOtherMessage(905, msg, [dynamicId]) return result
def ResurPet(dynamicId, characterId, petId): '''复活宠物''' player = PlayersManager().getPlayerByID(characterId) if not player: return {'result': False, 'message': Lg().g(18)} result = player.pet.ResurPet(petId) msg = result.get('message', '') if msg: pushOtherMessage(905, msg, [dynamicId]) return result
def TaskNpcSubTask(dynamicId, characterId, task_id, npc_id): '''提交任务''' player = PlayersManager().getPlayerByID(characterId) if not player or not player.CheckClient(dynamicId): return {'result': False} data = player.quest.commitQuest(task_id, npc_id) data['task_id'] = task_id msg = data.get('message', '') if msg: pushOtherMessage(905, msg, [dynamicId]) return data
def JingJiCleanCD_2705(dynamicId,characterId): '''清除竞技场CD ''' player = PlayersManager().getPlayerByID(characterId) if not player or not player.CheckClient(dynamicId): return {'result':False,'message':Lg().g(18)} result = player.arena.clearCD() msg = result.get('message',u'') if msg: pushOtherMessage(905, result.get('message',u''), [dynamicId]) return result
def updateSpirit(pid, contxt): """修改角色心情 @param pid: int 角色id @param context: str 心情 """ player = PlayersManager().getPlayerByID(pid) if player.baseInfo.updateSpirit(contxt): pushObjectNetInterface.pushOtherMessage(905, Lg().g(175), [player.getDynamicId()]) else: pushObjectNetInterface.pushOtherMessage(905, Lg().g(176), [player.getDynamicId()]) return {"result": True, "message": u""}
def PetChuanCheng(dynamicId, characterId, petFrom, petTo): '''宠物传承 ''' player = PlayersManager().getPlayerByID(characterId) if not player: return {'result': False, 'message': Lg().g(18)} data = player.pet.TransferExp(petFrom, petTo) msg = data.get('message', 0) if msg: pushOtherMessage(905, msg, [dynamicId]) return data
def SettingMatrix(dynamicId, characterId, matrixID, petId, operationType, fromPos, toPos): '''阵法设置''' player = PlayersManager().getPlayerByID(characterId) if not player: return {'result': False, 'message': Lg().g(18)} result = player.matrix.updateMatrix(petId, operationType, fromPos, toPos) if not result.get('result'): msg = result.get('message', '') pushOtherMessage(905, msg, [dynamicId]) return result
def TaskNpcSubTask(dynamicId,characterId,task_id,npc_id): '''提交任务''' player = PlayersManager().getPlayerByID(characterId) if not player or not player.CheckClient(dynamicId): return {'result':False} data = player.quest.commitQuest(task_id,npc_id) data['task_id'] = task_id msg = data.get('message','') if msg: pushOtherMessage(905,msg,[dynamicId]) return data
def GMInfo4000(dynamicId, characterId, gmmsg): '''gm消息 ''' player = PlayersManager().getPlayerByID(characterId) if not player or not player.CheckClient(dynamicId): return {'result': False, 'message': Lg().g(18)} characterName = player.baseInfo.getName() dbBeginner.insertGMmsg(characterName, gmmsg) msg = Lg().g(26) pushOtherMessage(905, msg, [dynamicId]) return {'result': True}
def PetChuanCheng(dynamicId, characterId, petFrom, petTo): """宠物传承 """ player = PlayersManager().getPlayerByID(characterId) if not player: return {"result": False, "message": Lg().g(18)} data = player.pet.TransferExp(petFrom, petTo) msg = data.get("message", 0) if msg: pushOtherMessage(905, msg, [dynamicId]) return data
def MoveXingYun(dynamicId, characterId, opear, opeType, frompos, topos): '''移动星运 ''' player = PlayersManager().getPlayerByID(characterId) if not player or not player.CheckClient(dynamicId): return {'result': False, 'message': Lg().g(18)} data = player.fate.MoveFate(opeType, opear, frompos, topos) msg = data.get('message', '') if msg: pushOtherMessage(905, msg, [dynamicId]) return data