private void SetData(VisitingRuleRes res) { VisitChapterDir = new Dictionary <PlayerPB, List <VisitChapterVo> >(); VisitChapterDir[PlayerPB.TangYiChen] = new List <VisitChapterVo>(); VisitChapterDir[PlayerPB.QinYuZhe] = new List <VisitChapterVo>(); VisitChapterDir[PlayerPB.YanJi] = new List <VisitChapterVo>(); VisitChapterDir[PlayerPB.ChiYu] = new List <VisitChapterVo>(); //LevelPB pb = null; for (int i = 0; i < res.LevelRules.Count; i++) { VisitLevelVo level = new VisitLevelVo(res.LevelRules[i], _plotRule, _infoRule); VisitChapterVo visitChapterVo = VisitChapterDir[level.NpcId].Find((m) => { return(m.ChapterId == level.ChapterGroup); }); if (visitChapterVo == null) { visitChapterVo = new VisitChapterVo("123", level.ChapterGroup, true);//I provisionally do it; VisitChapterDir[level.NpcId].Add(visitChapterVo); } visitChapterVo.LevelList.Add(level); level.VisitChapter = visitChapterVo; foreach (var v in res.LevelFirstPassRules) { if (v.LevelId != level.LevelId) { continue; } level.levelFirstPassPB = v; break; } } }
public void InitRule(VisitingRuleRes res) { _weatherRules = new List <WeatherPB>(); _weatherBlessRules = new List <WeatherBlessPB>(); _levelRules = new List <VisitingLevelRulePB>(); _levelFirstPassRules = new List <LevelFirstPassPB>(); _challengeCardNumRule = new List <ChallengeCardNumRulePB>(); _weatherBlessCostPBs = new List <WeatherBlessCostPB>(); _visitingResetConsumptionPBs = new List <VisitingResetConsumptionPB>(); CommentRule = res.CommentRules; _infoRule = res.InfoRules; _plotRule = res.PlotRules; _weatherRules.AddRange(res.WeatherRules); _weatherBlessRules.AddRange(res.WeatherBlessRules); _levelRules.AddRange(res.LevelRules); _levelFirstPassRules.AddRange(res.LevelFirstPassRules); _challengeCardNumRule.AddRange(res.CardNumRules); _weatherBlessCostPBs.AddRange(res.WeatherBlessCostRules); _visitingResetConsumptionPBs.AddRange(res.VisitingResetConsumptionRules); SetData(res); }
static Dictionary <string, List <string> > FindVisitStoryAudio() { DirectoryInfo dir = new DirectoryInfo(Application.persistentDataPath + "/DataCache/visiting_c"); if (dir.Exists == false) { Debug.LogError("visiting_c文件夹不存在!"); return(null); } FileInfo[] files = dir.GetFiles("*"); FileInfo targetFile = null; foreach (FileInfo file in files) { if (file.Name.ToLower().StartsWith("rules")) { targetFile = file; break; } } if (targetFile == null) { Debug.LogError("visiting_c/rules文件不存在!"); return(null); } Dictionary <string, List <string> > fileDict = new Dictionary <string, List <string> >(); EditorUtility.DisplayProgressBar("查找VisitStory音频", "", 0); byte[] dataFile = FileUtil.GetBytesFile(targetFile.DirectoryName, targetFile.Name); MemoryStream m = new MemoryStream(dataFile); MessageParser <VisitingRuleRes> parser = new MessageParser <VisitingRuleRes>(() => new VisitingRuleRes()); VisitingRuleRes res = parser.ParseFrom(m); int count = 0; foreach (var rule in res.LevelRules) { count++; if (rule.Type == LevelTypePB.Story) { string playerId = ((int)rule.Player) + ""; if (fileDict.ContainsKey(playerId) == false) { fileDict.Add(playerId, new List <string>()); } fileDict[playerId].AddRange(GetStoryAudio(rule.LevelMark)); EditorUtility.DisplayProgressBar("查找VisitStory音频", "playerId:" + playerId + "(" + count + ")", 1); } } string str = JsonConvert.SerializeObject(fileDict, Formatting.Indented); FileUtil.SaveFileText(GetPackageDir(), "VisitStoryAudio.json", str); EditorUtility.ClearProgressBar(); return(fileDict); }
private void OnVisitingRuleHandler(VisitingRuleRes res) { _visitModel.InitRule(res); NetWorkManager.Instance.Send <MyVisitingRes>(CMD.VISITINGC_MYVISITINGS, null, OnMyVisitingHandler); }