コード例 #1
0
ファイル: quest.py プロジェクト: JaydenGui/crossapp-demo
def TaskExcuteTalk(dynamicId, characterId, task_id, npc_id):
    '''任务交谈'''
    player = PlayersManager().getPlayerByID(characterId)
    if not player or not player.CheckClient(dynamicId):
        return {'result': False}
    data = player.quest.talkWithNpc(npc_id, task_id)
    return {'result': data, 'message': u''}
コード例 #2
0
def GroupPK4403(dynamicId, characterId, pkId):
    '''国战申请
    '''
    HAOJIAO = 20700072
    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)}
    if not FortressManager().checkCanApply(guildId):
        return {'result': False, 'message': Lg().g(648)}

    fortress = FortressManager().getFortressById(pkId)
    if not fortress:
        return {'result': False}
    itemcount = player.pack.countItemTemplateId(HAOJIAO)  #检测战斗号角数量
    if itemcount < 1:
        return {'result': False, 'message': Lg().g(656)}
    data = fortress.SignUp(guildId)
    result = data.get('result', False)
    if result:
        player.pack.delItemByTemplateId(HAOJIAO, 1)  #扣除战斗号角
    msgID = data.get('msgID', 0)
    message = u''
    if msgID:
        message = Lg().g(msgID)
    return {'result': result, 'message': message}
コード例 #3
0
ファイル: quest.py プロジェクト: JaydenGui/crossapp-demo
def TaskPlayerTaskList(dynamicId, characterId):
    '''获取角色已接任务列表'''
    player = PlayersManager().getPlayerByID(characterId)
    if not player or not player.CheckClient(dynamicId):
        return {'result': False, 'message': Lg().g(18)}
    data = player.quest.getTaskProcessInfo()
    return {'result': True, 'tasks': data}
コード例 #4
0
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
コード例 #5
0
def enterGuildBattleField(dynamicId,characterId):
    '''进入行会战副本
    @param dynamicId: int 客户端的动态id
    @param characterId: int 角色的id
    '''
    res = CanDoServer(characterId)
    if not res['result']:
        return res        
    player = PlayersManager().getPlayerByID(characterId)
    if  not player.CheckClient(dynamicId):
        return {'result':False,'message':Lg().g(18)}
    if not player.status.getLifeStatus():
        return {'result':False,'message':Lg().g(97)}
    if player.baseInfo.getState()==1:
        return {'result':False,'message':Lg().g(98)}
    guildId = player.guild.getID()
    if not guildId:
        return {'result':False,'message':Lg().g(79)}
    battleArea = BattleAreaManager().getGuildBattleAreaIdByGuildId(guildId)
    if not battleArea:
        return {'result':False,'message':Lg().g(99)}
    nowSceneId = battleArea.enterGuildBattleField(guildId,characterId)
    if not nowSceneId:
        return {'result':False,'message':Lg().g(100)}
    lastscene = SceneManager_new().getSceneById(player.baseInfo.getLocation())
    lastscene.dropPlayer(player.baseInfo.id)
    player.baseInfo.setState(2)
    data = {'placeId':nowSceneId}
    return {'result':True,'data':data}
    

    
    
        
        
コード例 #6
0
def GetGroupLingDiInfo4400(dynamicId, characterId):
    '''获取国领地信息
    '''
    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)
    guildInfo = guild.guildinfo
    info = {}
    ldID = FortressManager().getGuildFortressId(guildId)
    fortress = FortressManager().getFortressById(ldID)
    if fortress:
        if not fortress.isOccupied:
            fortress = None
    info['ldType'] = ldID if fortress else 0
    info['groupName'] = guildInfo['name']
    info['groupLevel'] = guildInfo['level']
    info['groupLeader'] = guildInfo['presidentname']
    info['obtainJL'] = True if fortress else False
    info['icon'] = guildInfo['emblemLevel']
    info['battleInfo'] = [] if not fortress else fortress.fightlog
    info['battleTime'] = 0 if not fortress else fortress.getNextFightTime()
    return {'result': True, 'data': info}
コード例 #7
0
ファイル: guild.py プロジェクト: JaydenGui/crossapp-demo
def AcceptOrRefuseApply(dynamicId, characterId, operType, appliId):
    '''拒绝或同意申请
    @param dynamicId: int 客户端的动态id
    @param characterId: int 客户端的动态id
    @param operType: int 操作类型 0 接受 1 拒绝
    @param appliId: 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)
    if operType == 0:
        data = guild.acceptGuildApply(characterId, appliId)
        reason = {0:Lg().g(80),-1:Lg().g(81),-2:Lg().g(82),\
                  -3:Lg().g(83),-4:Lg().g(84)}
        if data == 1:

            result = {'result': True, 'message': Lg().g(85)}
        else:
            result = {'result': False, 'message': reason[data]}
    else:
        data = guild.refuseGuildApply(characterId, appliId)
        reason = {0: Lg().g(80), -1: Lg().g(81), -4: Lg().g(84)}
        if data == 1:
            result = {'result': True, 'message': Lg().g(85)}
        else:
            result = {'result': False, 'message': reason[data]}
    return result
コード例 #8
0
def GetCityListInfo4402(dynamicId, characterId):
    '''获取城镇征战信息列表'''
    player = PlayersManager().getPlayerByID(characterId)
    if not player or not player.CheckClient(dynamicId):
        return {'result': False, 'message': Lg().g(18)}
    info = FortressManager().getAllFortressInfo()
    return {'result': True, 'data': info}
コード例 #9
0
ファイル: guild.py プロジェクト: JaydenGui/crossapp-demo
def CorpsInviteReply(dynamicId, characterId, union_id, is_ok):
    '''邀请加入行会的反馈信息
    @param dynamicId: int 客户端的动态id
    @param characterId: int 角色的id
    @param union_id: int 行会的id(邀请者的ID)
    @param is_ok: int 是否同意 0否 1是
    '''
    player = PlayersManager().getPlayerByID(characterId)
    fplayer = PlayersManager().getPlayerByID(union_id)
    if not player or not player.CheckClient(dynamicId):
        return {'result': False, 'message': Lg().g(18)}
    nowguildId = player.guild.getID()
    toguildId = dbGuild.getCharacterGuildId(union_id)
    if fplayer and not is_ok:
        msg = "%s拒绝了你的邀请" % player.baseInfo.getName()
        pushOtherMessage(905, msg, [fplayer.getDynamicId()])
        return {'result': True}
    if nowguildId:
        return {'result': False, 'message': Lg().g(94)}
    guild = GuildManager().getGuildById(toguildId)
    if not guild:
        return {'result': False, 'message': Lg().g(95)}
    surplushours = player.guild.getCanJoinTime()
    if surplushours:
        return {'result': False, 'message': Lg().g(647) % surplushours}
    result = guild.JointGuild(characterId)
    if result.get('result', False):

        msg = u'成功加入%s' % guild.getGuildName()
        pushOtherMessage(905, msg, [dynamicId])
    else:
        nmsg = result.get('message', '')
        pushOtherMessage(905, nmsg, [dynamicId])
    return result
コード例 #10
0
def ReviveTeamMember(dynamicId,characterId,victimerId,paytype):
    '''复活队友
    @param dynamicId: int 客户端的id
    @param characterId: int 角色的id
    @param victimerId: int 复活者的id
    @param paytype: int 支付类型 1 物品 2 金币
    '''
    player = PlayersManager().getPlayerByID(characterId)
    toplayer = PlayersManager().getPlayerByID(victimerId)
    if not player or not player.CheckClient(dynamicId):
        data = {'faildtype':0,'goldprice':0}
        return {'result':False,'message':Lg().g(18),'data':data}
    if not toplayer:
        data = {'faildtype':0,'goldprice':0}
        return {'result':False,'message':Lg().g(66),'data':data}
    if not player.teamcom.IsMyTeamMember(victimerId):
        data = {'faildtype':0,'goldprice':0}
        return {'result':False,'message':Lg().g(250),'data':data}
    if toplayer.status.getLifeStatus():
        data = {'faildtype':0,'goldprice':0}
        return {'result':False,'message':Lg().g(185),'data':data}
    if paytype==1:
        if True:
            data = {'faildtype':1,'goldprice':100}
            return {'result':False,'message':Lg().g(248),'data':data}
    else:
        if True:
            data = {'faildtype':2,'goldprice':100}
            return {'result':False,'message':Lg().g(88),'data':data}
    toplayer.status.updateLifeStatus(1)
    toplayer.attribute.updateHp(int(player.attribute.getMaxHp()*0.01)+1)
    toplayer.attribute.updateMp(int(player.attribute.getMaxMp()*0.01)+1)
    player.teamcom.pushTeamMemberInfo()
    return {'result':True,'message':Lg().g(249)}
コード例 #11
0
ファイル: guild.py プロジェクト: JaydenGui/crossapp-demo
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}
コード例 #12
0
ファイル: fight.py プロジェクト: JaydenGui/crossapp-demo
def FightInScene(dynamicId, characterId, monsterId):
    '''副本战斗
    @param dynamicId: int 客户端的动态id
    @param characterId: int 角色的id
    @param monsterId: int 碰撞的怪物在场景中的id
    '''
    res = CanDoServer(characterId)
    if not res['result']:
        return res
    player = PlayersManager().getPlayerByID(characterId)
    if not player.CheckClient(dynamicId):
        return {'result': False, 'message': Lg().g(18)}
    if not player.status.getLifeStatus():
        return {'result': False, 'message': Lg().g(97)}
    if player.baseInfo.getState() == 1:  #如果角色在副本
        dtid = player.baseInfo.getInstancetag()  #副本动态Id
        instance = InstanceManager().getInstanceByIdTag(dtid)  #获取副本实例
        sceneId = player.baseInfo.getLocation()
        nowScene = instance._Scenes[sceneId]  #获取场景实例
    else:
        town = player.baseInfo.getTown()
        nowScene = MapManager().getMapId(town)
#        return {'result':False,'message':Lg().g(64)}
    data = nowScene.FightInScene(monsterId,
                                 int(player.baseInfo.getPosition()[0]),
                                 characterId)
    if data.get('result'):
        player.baseInfo.setStatus(4)  #角色状态设置为战斗状态
    return data
コード例 #13
0
ファイル: quest.py プロジェクト: JaydenGui/crossapp-demo
def TaskPlayerDropTask(dynamicId, characterId, task_id):
    '''放弃任务'''
    player = PlayersManager().getPlayerByID(characterId)
    if not player or not player.CheckClient(dynamicId):
        return {'result': False, 'message': Lg().g(18)}
    data = player.quest.abandonQuest(task_id)
    return data
コード例 #14
0
ファイル: zhanyi.py プロジェクト: JaydenGui/crossapp-demo
def getZhanYiInfo(dynamicId, characterId, index):
    '''获取角色的战役信息
    '''
    player = PlayersManager().getPlayerByID(characterId)
    if not player or not player.CheckClient(dynamicId):
        return {'result': False, 'message': Lg().g(18)}
    zhanyiinfo = player.zhanyi.getZhanYiInfo(index)
    return {'result': True, 'data': zhanyiinfo}
コード例 #15
0
ファイル: zhanyi.py プロジェクト: JaydenGui/crossapp-demo
def zhangjieFight(dynamicId, characterId, zhangjieid):
    '''章节战斗
    '''
    player = PlayersManager().getPlayerByID(characterId)
    if not player or not player.CheckClient(dynamicId):
        return {'result': False, 'message': Lg().g(18)}
    fightresult = player.zhanyi.doZhangJie(zhangjieid)
    return fightresult
コード例 #16
0
def packageArrange(dynamicId,characterId,packageType):
    '''包裹整理'''
    player = PlayersManager().getPlayerByID(characterId)
    if not player or not player.CheckClient(dynamicId):
        return {'result':False,'message':Lg().g(18)}
    player.pack.packageArrange(packageType)
    pushPromptedMessage(Lg().g(158),[player.getDynamicId()])
    return {'result':True,'message':Lg().g(158)}
コード例 #17
0
def YiJianHeCheng(dynamicId, characterId):
    '''一键合成
    '''
    player = PlayersManager().getPlayerByID(characterId)
    if not player or not player.CheckClient(dynamicId):
        return {'result': False, 'message': Lg().g(18)}
    result = player.fate.HeChengAll()
    return result
コード例 #18
0
def GetRoleAndPetList(dynamicId, characterId):
    '''获取角色和宠物的星运装备栏信息
    '''
    player = PlayersManager().getPlayerByID(characterId)
    if not player or not player.CheckClient(dynamicId):
        return {'result': False, 'message': Lg().g(18)}
    data = player.fate.GetRoleAndPetFateList()
    return {'result': True, 'data': data}
コード例 #19
0
ファイル: quest.py プロジェクト: JaydenGui/crossapp-demo
def getCanReceivedquestList(dynamicId, characterId):
    '''获取可接任务列表'''
    player = PlayersManager().getPlayerByID(characterId)
    if not player or not player.CheckClient(dynamicId):
        return {'result': False, 'message': Lg().g(18)}
    result = player.quest.getCanReceivedquestList()
    data = {'result': True, 'message': u'', 'data': result}
    return data
コード例 #20
0
def GetPackXingYunListInfo(dynamicId, characterId):
    '''获取占星包裹信息
    '''
    player = PlayersManager().getPlayerByID(characterId)
    if not player or not player.CheckClient(dynamicId):
        return {'result': False, 'message': Lg().g(18)}
    data = player.fate.getZhanXingPack()
    return {'result': True, 'data': data}
コード例 #21
0
def GetJiFengShopInfo(dynamicId, characterId, page):
    '''获取星运积分商城信息
    '''
    player = PlayersManager().getPlayerByID(characterId)
    if not player or not player.CheckClient(dynamicId):
        return {'result': False, 'message': Lg().g(18)}
    info = FateShop().getShopInfo(page)
    info['score'] = player.fate.score
    return {'result': True, 'data': info}
コード例 #22
0
ファイル: quest.py プロジェクト: JaydenGui/crossapp-demo
def TaskNpcAcceptTask(dynamicId, characterId, task_id, npc_id):
    '''接受任务
    @param dynamicId: int 客户端的动态id
    '''
    player = PlayersManager().getPlayerByID(characterId)
    if not player or not player.CheckClient(dynamicId):
        return {'result': False}
    data = player.quest.applyQuest(task_id, npc_id)
    return data
コード例 #23
0
ファイル: fight.py プロジェクト: JaydenGui/crossapp-demo
def FightWithPlayer(dynamicId, characterId, tid):
    '''玩家PK
    @param dynamicId: int 客户端的动态id
    @param characterId: int 角色的id
    @param tid: int 对方的id
    '''
    res = CanDoServer(characterId)
    if not res['result']:
        return res
    player = PlayersManager().getPlayerByID(characterId)
    if not player or not player.CheckClient(dynamicId):
        return {'result': False, 'message': Lg().g(18)}
    toplayer = PlayersManager().getPlayerByID(tid)
    if not toplayer:
        return {'result': False, 'message': Lg().g(66)}
    guildid = player.guild.getID()
    tguildid = toplayer.guild.getID()
    town = player.baseInfo.getTown()
    ttown = toplayer.baseInfo.getTown()
    if not player.pvp.checktime():
        return {'result': False, 'message': u"PK战斗CD中"}
    if not toplayer.pvp.checktime():
        return {'result': False, 'message': u"对方PK战斗CD中"}
    if town != ttown:
        return {'result': False, 'message': u"不在统一场景无法进行战斗"}
    if player.guild.getID() == toplayer.guild.getID() or 0 in [
            guildid, tguildid
    ]:
        return {'result': False, 'message': u"不允许本国之间战斗"}
    level = player.level.getLevel()
    tlevel = player.level.getLevel()
    if level < 25 or tlevel < 25:
        return {'result': False, 'message': u"低于25级不能进行战斗"}
    player.pvp.recordtime()
    toplayer.pvp.recordtime()
    data = DoFight([player], [toplayer], now_X=550)
    #战后的处理
    battleresult = data.battleResult
    nowscene = MapManager().getMapId(ttown)  #获取当前场景
    if battleresult == 1:  #如果主动方胜利
        nowscene.dropPlayer(tid)  #在当前场景中移除被攻击的玩家
        toscene = MapManager().getMapId(1000)  #扔回其他场景
        toscene.addPlayer(tid)
        toscene.pushEnterPlace([toplayer.dynamicId])
        toplayer.baseInfo.setTown(1000)
    else:
        nowscene.dropPlayer(characterId)  #在当前场景中移主动攻击的玩家
        toscene = MapManager().getMapId(1000)  #扔回其他场景
        toscene.addPlayer(characterId)
        toscene.pushEnterPlace([player.dynamicId])
        player.baseInfo.setTown(1000)
    return {
        'result': True,
        'data': data,
        'sendlist': [dynamicId, toplayer.dynamicId]
    }
コード例 #24
0
def terminatePractice(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)}
    data = player.practice.terminatePractice()
    return data
コード例 #25
0
def GetXingYunList(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)}
    result = player.fate.getZhanXingInfo()
    return result
コード例 #26
0
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
コード例 #27
0
ファイル: quest.py プロジェクト: JaydenGui/crossapp-demo
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
コード例 #28
0
ファイル: guild.py プロジェクト: JaydenGui/crossapp-demo
def ChangeUnionColor(dynamicId, characterId, color):
    '''修改本国势力颜色'''
    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)
    return guild.changeColor(characterId, color)
コード例 #29
0
ファイル: quest.py プロジェクト: JaydenGui/crossapp-demo
def TaskPlayerAcceptTaskList(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)}
    data = player.quest.getCanReceivedQuestList()
    return {'result': True, 'tasks': data}
コード例 #30
0
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