コード例 #1
0
    def updateCoin(self,coin,state=1):
        if coin ==self._coin:
            return
        if coin-self._coin>0:
            msg = Lg().g(311)%abs(coin-self._coin)
        else:
            msg = Lg().g(312)%abs(coin-self._coin)
        if coin>= self.MAXCOIN:
            msg = msg.join(["\n",Lg().g(313)])
            self._coin = self.MAXCOIN 
        else:
            self._coin = coin
#        dbaccess.updateCharacter(self._owner.baseInfo.id, 'coin', self._coin)
        pushObjectNetInterface.pushUpdatePlayerInfo(self._owner.getDynamicId())
        if state:
            pushPromptedMessage( msg, [self._owner.getDynamicId()])
        else:
            self._owner.msgbox.putFightMsg(msg)#将消息加入战后消息处理中
コード例 #2
0
 def JointGuild(self, characterId):
     '''将角色加入国'''
     curMenberNum = dbGuild.countGuildMenberNum(self.id)
     info = self.guildinfo
     maxMemberCount = 20 + ((info['emblemLevel'] - 1) * 30)
     if curMenberNum >= maxMemberCount:
         return {'result': False, 'message': Lg().g(83)}
     result = dbGuild.insertCharacterGuildInfo(characterId, self.id)
     dbGuild.delCharacterAllApply(characterId)
     if result:
         player = PlayersManager().getPlayerByID(characterId)
         if player:
             player.quest.specialTaskHandle(ADDGUILDTASKTYPE)
             player.guild.updateID(self.id)
             chatnoderemote.callRemote('updateGuild', characterId, self.id,
                                       1)  #同步聊天角色中的行会
             player.updatePlayerInfo()
         return {'result': True, 'message': Lg().g(530)}  #同意申请成功
     return {'result': True, 'message': Lg().g(531)}  #同意申请失败
コード例 #3
0
 def searchGuildMemberInfo(self, searchCriteria, curPage, limit=10):
     '''搜索行会成员
     @param searchCriteria: str 成员的名称
     '''
     MemberInfoList = {}
     infos = []
     maxPage = math.ceil(
         dbGuild.countSearchMemberNum(self.id, searchCriteria) /
         float(limit))
     if maxPage == 0:
         maxPage = 1
     members = dbGuild.searchGuildMemberInfo(self.id, searchCriteria,
                                             curPage, limit)
     for member in members:
         data = {}
         data['memberliId'] = member['characterId']
         data['memberName'] = member['nickname']
         data['memberLevel'] = member['level']
         data['memberProfession'] = member['profession']
         #data['memberRank'] = Lg().g(516)#{0:Lg().g(516),1:Lg().g(517),2:Lg().g(518),3:Lg().g(519),4:Lg().g(520)}.get(member['post'])
         if data['memberliId'] == self.president:
             data['memberRank'] = Lg().g(520)
         elif data['memberliId'] in eval("[" + self.guildinfo['veterans'] +
                                         "]"):
             data['memberRank'] = Lg().g(519)
         elif data['memberliId'] in eval("[" +
                                         self.guildinfo['staffOfficers'] +
                                         "]"):
             data['memberRank'] = Lg().g(518)
         elif data['memberliId'] in eval("[" + self.guildinfo['senators'] +
                                         "]"):
             data['memberRank'] = Lg().g(517)
         else:
             data['memberRank'] = Lg().g(516)
         data['onlineState'] = self.getCharacterOnlineState(
             member['isOnline'], member['outtime'])
         data['memberContribution'] = member['contribution']
         infos.append(data)
     MemberInfoList['curPage'] = curPage
     MemberInfoList['MemberListBaseInfo'] = infos
     MemberInfoList['maxPage'] = maxPage
     return MemberInfoList
コード例 #4
0
ファイル: pet.py プロジェクト: JaydenGui/crossapp-demo
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
コード例 #5
0
ファイル: lodge.py プロジェクト: JaydenGui/crossapp-demo
def getRestRoomInfo(dynamicId, characterId, placeId):
    '''获取宿屋信息
    @param dynamicId: int 客户端的动态id
    @param characterId: int 角色的id
    @param placeId: int 场景的id 
    '''
    player = PlayersManager().getPlayerByID(characterId)
    if not player or not player.CheckClient(dynamicId):
        return {'result': False, 'message': Lg().g(18)}
    restNum = player.attribute.getRestNum()
    return {'result': True, 'data': restNum}
コード例 #6
0
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
コード例 #7
0
 def readMail(self, mailID):
     '''阅读邮件(将邮件未读状态改为以读状态)
     @param mailID: int 邮件的ID
     '''
     result = self.checkMyMail(mailID)
     if not result:
         return {'result': False, 'message': Lg().g(360)}
     m = Mail(id=mailID)
     m.updateMainInfo({'isReaded': 1})
     data = m.formatMailInfo()
     return {'result': True, 'data': data}
コード例 #8
0
ファイル: quest.py プロジェクト: JaydenGui/crossapp-demo
def getQuestListOnNpc(dynamicId, characterId, npcId):
    '''获取npc身上任务列表
    @param dynamicId: int 客户端动态Id
    @param characterId: int 角色的id
    @param npcId: int npc的id
    '''
    player = PlayersManager().getPlayerByID(characterId)
    if not player or not player.CheckClient(dynamicId):
        return {'result': False, 'message': Lg().g(18)}
    player.quest.pushPlayerScenceNpcQuestStatus()
    return {'result': True}
コード例 #9
0
 def receiveBound(self, step):
     '''领取奖励
     @param step: int 步骤
     '''
     if self.schedule['bound_%d' % step]:
         return {'result': False, 'message': Lg().g(287)}
     boundinfo = dbSchedule.SCHEDULE_BOUND.get(step)
     if not boundinfo:
         return {'result': False, 'message': Lg().g(464)}
     activityrequired = boundinfo.get('vitality_required', 100)
     if activityrequired > self.schedule.get('activity'):
         return {'result': False, 'message': Lg().g(456)}
     itembound = boundinfo.get('item_bound')
     if self._owner.pack._package._PropsPagePack.findSparePositionNum() < 1:
         return {'result': False, 'message': Lg().g(16)}
     self._owner.pack.putNewItemsInPackage(itembound, 1)
     self.schedule['bound_%d' % step] = 1
     dbSchedule.updateSchedule(self._owner.baseInfo.id,
                               {'bound_%d' % step: 1})
     return {'result': True, 'message': Lg().g(288)}
コード例 #10
0
def KickRoomMember(dynamicId, characterId, tocharacterId):
    '''踢出房间成员
    @param dynamicId: int 客户端的动态Id
    @param characterId: int 角色的id
    @param tocharacterId: int 房间成衣店的ID 
    '''
    player = PlayersManager().getPlayerByID(characterId)
    if not player:
        return {'result': False, 'message': Lg().g(18)}
    if characterId == tocharacterId:
        return {'result': False, 'message': Lg().g(110)}
    areahall = Hall().getAreaHallById(1)
    roomId = player.baseInfo.getQueueRoom()
    if not roomId:
        return {'result': False, 'message': Lg().g(104)}
    room = areahall.getQueueRoomById(roomId)
    result = room.dropmember(tocharacterId)
    if result == 0:
        return {'result': False, 'message': Lg().g(111)}
    return {'result': True, 'message': Lg().g(112)}
コード例 #11
0
ファイル: mail.py プロジェクト: JaydenGui/crossapp-demo
def getMailList(dynamicId, characterId, mailType, pageCount):
    '''获取邮件列表
    @param characterId: int 角色的ID
    @param mailType: int 邮件的类型
    @param pageCount: int 页面数
    '''
    player = PlayersManager().getPlayerByID(characterId)
    if not player or not player.CheckClient(dynamicId):
        return {'result': False, 'message': Lg().g(18)}
    mailListInfo = player.mail.getMailList(mailType, pageCount)
    return {'result': True, 'data': mailListInfo}
コード例 #12
0
ファイル: award.py プロジェクト: JaydenGui/crossapp-demo
def getAwardInfo(dynamicId, characterId, awardtype):
    '''获取奖励信息
    @param dynamicId: int 客户端的动态id
    @param characterId: int 角色的id
    @param awardtype: int 奖励的类型
    '''
    player = PlayersManager().getPlayerByID(characterId)
    if not player.CheckClient(dynamicId):
        return {'result': False, 'message': Lg().g(18)}
    awardInfo = player.award.getAwardInfo(awardtype)
    return {'result': True, 'message': u'', 'rewardInfo': awardInfo}
コード例 #13
0
def LevelMailPrompt(level, receiverId):
    '''等级邮件提示
    '''
    if dbMail.LEVEL_MAIL.has_key(level):
        mailinfo = dbMail.LEVEL_MAIL.get(level)
        title = mailinfo.get('title')
        senderId = -1
        sender = Lg().g(128)
        content = mailinfo.get('content')
        mtype = 1
        sendMail(title, senderId, sender, receiverId, content, mtype)
コード例 #14
0
ファイル: schedule.py プロジェクト: JaydenGui/crossapp-demo
def ObtainTargetReward(characterId, taskId):
    '''领取每日目标奖励
    '''
    player = PlayersManager().getPlayerByID(characterId)
    if not player:
        return {'result': False, 'message': Lg().g(18)}
    data = player.daily.receiveBound(taskId)
    msg = data.get('message', '')
    if msg:
        pushOtherMessage(905, msg, [player.dynamicId])
    return data
コード例 #15
0
ファイル: shop.py プロジェクト: JaydenGui/crossapp-demo
def buyItemInMyshop(dynamicId, characterId, itemTemplateId):
    '''获取商城信息
    @param dynamicId: int 客户端的id
    @param characterId: int 角色的id
    @param itemTemplateId: int 物品的模板Id
    '''
    player = PlayersManager().getPlayerByID(characterId)
    if not player or not player.CheckClient(dynamicId):
        return {'result': False, 'message': Lg().g(18)}
    data = player.shop.buyItemInMyshop(itemTemplateId)
    return data
コード例 #16
0
def sendMail(title, senderId, sender, receiverId, content, type):
    '''发送邮件
    @param senderId: int 发送者的ID ,系统发送时为-1
    @param sender: str 发送者的名称 ,系统发送时为Lg().g(128)
    @param memberId: int 接受者的ID
    @param content: str 邮件的类容
    @param type: int#邮件的类型(1.系统信函  2.玩家信函  )
    '''
    m = Mail( title=title,type =0, senderId =senderId, receiverId=receiverId,\
                            sender = Lg().g(128),content=content)
    m.mailIntoDB()
コード例 #17
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()
コード例 #18
0
 def SellFate(self, fateId):
     '''卖掉命格
     @param fateId: int 命格的ID
     '''
     fate = self.fates.get(fateId)
     if not fate:
         return False
     price = fate.templateinfo.get('price')
     fate.destroyByDB()
     del self.fates[fateId]
     self.outside.remove(fateId)
     self._owner.finance.addCoin(price)
     name = fate.templateinfo.get('name')
     try:
         msg = Lg().g(300) % (name, price)
     except:
         msg = Lg().g(300) % (name.decode('utf8'), price)
     dynamicId = self._owner.dynamicId
     pushOtherMessage(905, msg, [dynamicId])
     return True
コード例 #19
0
def getItemsInPackage(dynamicId,characterId,packCategory,page):
    '''获取角色包裹信息
    @param dynamicId: int 客户端的id
    @param characterId: int 角色的id
    @param packCategory: int 1:普通物品  2:任务
    '''
    player = PlayersManager().getPlayerByID(characterId)
    if not player:
        return {'result':False,'message':Lg().g(18)}
    packageItemInfo = player.pack._package.getCategoryPageItemInfo(packCategory,page)
    return {'result':True,'message':u'','data':packageItemInfo}
コード例 #20
0
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
コード例 #21
0
ファイル: guild.py プロジェクト: JaydenGui/crossapp-demo
def ModifyJoinLevel(dynamicId, characterId, levelrequired):
    '''修改申请加入等级限制
    @param dynamicId: int 客户端的动态id
    @param characterId: int 角色的id
    @param levelrequired: int 等级限制
    '''
    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)
    data = guild.ModifyJoinLevel(characterId, levelrequired)
    reason = {0: Lg().g(80), -1: Lg().g(81)}
    if data == 1:
        result = {'result': True, 'message': Lg().g(85)}
    else:
        result = {'result': False, 'message': reason[data]}
    return result
コード例 #22
0
def getMonsterPracticeExp(dynamicId, characterId, monsterId):
    '''获取单个怪物修炼所得经验
    @param dynamicId: int 客户端的动态id
    @param characterId: int 角色的id
    @param monsterId: int 怪物的模板id
    '''
    player = PlayersManager().getPlayerByID(characterId)
    if not player or not player.CheckClient(dynamicId):
        return {'result': False, 'message': Lg().g(18)}
    data = player.practice.getMonsterPracticeExp(monsterId)
    return data
コード例 #23
0
ファイル: quest.py プロジェクト: JaydenGui/crossapp-demo
def applyQuest(dynamicId, characterId, taskId):
    '''接受任务
    @param dynamicId: int 任务的id
    @param characterId: int 角色的id
    @param taskId: int 任务的id
    '''
    player = PlayersManager().getPlayerByID(characterId)
    if not player.CheckClient(dynamicId):
        return {'result': False, 'message': Lg().g(18)}
    data = player.quest.applyQuest(taskId)
    return data
コード例 #24
0
def pingFen_2002(dynamicId, request_proto):
    argument = GetMyScoreInfo2002_pb2.GetMyScoreInfoRequest()
    argument.ParseFromString(request_proto)
    response = GetMyScoreInfo2002_pb2.GetMyScoreInfoResponse()

    characterid = argument.id  #角色id
    data = pingfen.getPFenByCharacterId(characterid)
    if not data or len(data) < 1:
        response.result = False
        response.message = Lg().g(622)
        return response.SerializeToString()
    response.result = True
    response.message = Lg().g(166)

    for item in data:
        it = response.data.add()
        it.score = item.get('pf')  #评分
        itemm = item.get('item')
        itemm.SerializationItemInfo(it.itemsInfo)
    return response.SerializeToString()
コード例 #25
0
def YiJianObtainAndDrop(dynamicId, characterId, opearType):
    '''一键拾取或卖出
    '''
    player = PlayersManager().getPlayerByID(characterId)
    if not player or not player.CheckClient(dynamicId):
        return {'result': False, 'message': Lg().g(18)}
    if opearType:
        result = player.fate.SellAll()
    else:
        result = player.fate.PickUpAll()
    return result
コード例 #26
0
 def itemConsignment(self, position, payNum, page, payType=1):
     '''物品寄卖
     @param position: int 物品在包裹中的位置
     '''
     package = self._package.getPropsPagePack()
     position = package.getRealPostion(position, page)
     item = package.getItemByPosition(position)
     if not item:
         return {'result': False, 'message': Lg().g(189)}
     if item.attribute.getIsBound():
         return {'result': False, 'message': Lg().g(384)}
     result = db_package.itemConsignment(self._owner.baseInfo.getId(),\
                                          item, payNum, payType)
     if not result:
         return {'result': False}
     result = db_package.updateItemInPackStack(3, item, 0, tag=0)
     if not result:
         return {'result': False}
     package.removeItemByPosition(position)
     return {'result': True, 'message': Lg().g(385)}
コード例 #27
0
 def AfterGetNewEqupment(self,item):
     '''获取新的装备奖励后的处理'''
     toposition = item.baseInfo.getItemBodyType()
     if toposition==-1:
         return
     recCharacterId = self._owner.baseInfo.id
     sysOpeType = 1
     tishiStr = Lg().g(450)
     contentStr = Lg().g(451)
     caozuoStr = Lg().g(452)
     icon = item.baseInfo.getItemTemplateInfo().get('icon',0)
     itype = item.baseInfo.getItemTemplateInfo().get('type',0)
     package = self._owner.pack._package.getPropsPagePack()
     realpos = package.getPositionByItemId(item.baseInfo.id)
     curPage = realpos/30+1
     pos = realpos%30
     pushCorpsApplication(recCharacterId, sysOpeType, tishiStr,
                           contentStr, caozuoStr, icon = icon,
                           type = itype, pos = pos, curPage= curPage,
                           toposition = toposition)
コード例 #28
0
ファイル: TopList.py プロジェクト: JaydenGui/crossapp-demo
 def updateGuild(self,typeid):
     '''更新行会排行数据
     @param typeid: int 1国等级 2国实力
     '''
     resu=dbGuild.getTop100(typeid)
     if not resu or len(resu)<1:
             return{'result':False,'message':Lg().g(586),'data:':None}
     if typeid==1:
         self.glevel=resu
     elif typeid==2:
         self.gstrength=resu
コード例 #29
0
ファイル: pet.py プロジェクト: JaydenGui/crossapp-demo
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
コード例 #30
0
 def addTeamMember(self, characterId):
     '''添加队伍成员'''
     if characterId == self._owner.baseInfo.id:
         return {'result': False, 'message': Lg().g(491)}
     if self._teamId == -1:
         team = TeamManager().creatTeam(self._owner.baseInfo.id)
     else:
         team = TeamManager().getTeamByID(self._teamId)
     result = team.addMember(characterId)
     team.pushTeamMemberInfo()
     return result
コード例 #31
0
def StrengthenItem_2118(dynamicId, request_proto):
    '''获取转移后的属性效果'''
    argument = StrengthenItem2118_pb2.StrengthenItemRequest()
    argument.ParseFromString(request_proto)
    response = StrengthenItem2118_pb2.StrengthenItemResponse()
    characterid = argument.id #角色id
    itemid1 = argument.itemId1 #装备id
    itemid2 = argument.itemId2 #装备id
    
    result = strengthen.getSxzy(characterid, itemid1,itemid2)

    response.result = True
    response.message = Lg().g(166)
    if result.get('qh',None)==None:
        response.result =False
        response.message = Lg().g(620)
    else:
        response.qh=result.get('qh',-1)
        response.coin=result.get('coin',-1)
    return response.SerializeToString()
コード例 #32
0
    def promote(self):
        '''升级爵位
        return bool
        '''
        info=self.getNextInfo()#下级爵位信息
        if not info:
            return False
        ww=info['prestige']#升爵位所需威望值
        nowww=self.owner.finance.getPrestige()#角色当前威望值
        if nowww>=ww:
            self.owner.finance.updatePrestige(nowww-ww)#更新威望值
            self._level+=1#内存更改爵位等级
#            dbaccess.updateCharacter(self._owner.baseInfo.id, 'NobilityLevel', self._level)#数据库更改爵位等级
            me=Lg().g(376)%self.getName()
            self.clear()#清除所有限制
            me=me.replace("\\\\", "\\")
            dbNobilityHistory.add(self._owner.baseInfo.id, me, self._level)
            self._owner.daily.noticeDaily(18,0,self._level)
            self._owner.quest.specialTaskHandle(128)
            return True
        else:
            return False