示例#1
0
    /// <summary>
    /// 创建任务目标
    /// </summary>
    /// <param name="missionTid">子任务id</param>
    /// <returns></returns>
    private MissionTargetVO CreateMissionTargetVO(uint missionTid)
    {
        MissionTarget   cfg = GetCfgMissionProxy().GetMissionTargetByKey(GetCfgMissionProxy().GetMissionByKey(missionTid).TargetId);
        MissionTargetVO vo  = new MissionTargetVO();

        vo.Tid = cfg.Id;
        vo.MissionTargetConfig = cfg;
        vo.MissionTargetType   = (MissionTargetType)cfg.Type;
        vo.DoneToFinish        = cfg.FinishType == 1; //1是达成型即完成
        vo.HudVisible          = cfg.HudVisible == 1; //1是可见

        return(vo);
    }
示例#2
0
    /// <summary>
    /// 构建任务数据
    /// </summary>
    /// <param name="tid"></param>
    /// <param name="uid"></param>
    /// <returns></returns>
    private MissionVO CreateMission(uint tid)
    {
        MissionData missionCfg = GetCfgMissionProxy().GetMissionByKey(tid);

        //任务总表的数据  第一层
        MissionVO mission = new MissionVO();

        mission.MissionConfig = missionCfg;
        mission.Tid           = tid;
        mission.MissionType   = (MissionType)missionCfg.Type;

        //主线 或者 支线任务
        //需要 加入npc数据
        if (mission.MissionType == MissionType.Main || mission.MissionType == MissionType.Branch)
        {
            mission.MissionMainConfig = GetCfgMissionProxy().GetMissionMainByKey(tid);
        }

        //任务首节点
        MissionTreeNode firstNode = GetCfgMissionProxy().GetMissionFirstNodeByTid(mission.MissionConfig.FirstNode);

        int groupCount = firstNode.GroupsLength;

        for (int i = 0; i < groupCount; i++)
        {
            //组 第三层
            MissionNodeGroup group = GetCfgMissionProxy().GetMissionNodeGroup(firstNode.Groups(i));
            if (!mission.MissionGroupTargetList.ContainsKey(group.Id))
            {
                mission.MissionGroupTargetList.Add(group.Id, new SortedDictionary <uint, MissionTargetVO>());
            }
            int missionCount = group.SubMissionsLength;
            for (int j = 0; j < missionCount; j++)
            {
                //任务目标 第四层
                if (!mission.MissionGroupTargetList[group.Id].ContainsKey(group.SubMissions(j)))
                {
                    MissionTargetVO targetVO = CreateMissionTargetVO(group.SubMissions(j));
                    mission.MissionGroupTargetList[group.Id].Add(targetVO.Tid, targetVO);
                }
            }
        }

        return(mission);
    }