Example #1
0
def iteranceInstance(characterId):
    '''重打副本'''
    player= PlayersManager().getPlayerByID(characterId) #获取角色
    if not player:
        return {'result':False,'message':Lg().g(18)}
    instanceId=player.baseInfo.getInstanceid() #获取角色所在副本Id
    
    tag=player.baseInfo.getInstancetag() #副本动态Id
    Instance=InstanceManager().getInstanceByIdTag(tag) #获取 副本
    if not Instance:
        log.err(u"不存在副本动态id %s"%tag)
    Instance.initInstance() #初始化副本
    #start角色有队伍境况下组队进入副本
    loaduser=[]#记录需要推送消息的角色对象
    if player.teamcom.amisteam(): #如果角色有队伍
        if player.teamcom.amITeamLeader(): #判断是否是队长
            sceneid=player.baseInfo.getLocation() #获取队长当前场景Id
            members=player.teamcom.getMyTeamMember() #获取队伍成员列表 
            if members:
                if len(members)>1:
                    for py1 in members: #遍历所有队员
                        if py1.baseInfo.getLocation()==sceneid:#判断当前角色是否和队长在同一个场景中
                            enterplay(py1,instanceId,Instance) #角色进入副本操作
                        else:#若该成员和队长不在同一场景,推送是否进入副本提示框消息
                            loaduser.append(py1.getDynamicId())
                    pushObjectNetInterface.pushLeaderInstance(loaduser,player.baseInfo.getId())
        else:#如果请求的人有队伍并且不是队长
            return {'result':False,'message':u'在队伍中的成员中只有队长才能开启副本'}
    #end  角色有队伍境况下组队进入副本 
    else:
        enterplay(player,instanceId,Instance) #角色进入副本操作
    data = {'placeId':Instance.getSceneResourceidByid(Instance._inSceneid)}
    return {'result':True,'message':u'进入副本','data':data}