/// <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); }
/// <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); }