private void ParseTeachStep() { _teachStepDic = new Dictionary <int, TeachStepParser>(); TableHandler handler = TableHandler.OpenFromResmap("TeachStep"); for (int i = 0; i < handler.GetRecordsNum() - 1; i++) { int key = int.Parse(handler.GetValue(i, 0)); TeachStepParser info = new TeachStepParser() { sn = int.Parse(handler.GetValue(i, 0)), syncSn = int.Parse(handler.GetValue(i, 1)), }; } }
//同步数据到服务器 public void SycnServer(int structSn, int stepSn) { if (_finishDic.ContainsKey(structSn)) { return; //教程已经完成了,不需要同步到服务器 } TeachStepParser stepParser = Data.Inst.TeachStep(stepSn); if (stepParser.syncSn == SYCN_FINISH) //本地记录下已完成 { _finishDic.Add(structSn, true); } else if (stepParser.syncSn == SYCN_NOT) //不需要同步给服务器 { return; } //同步服务器 // SendMsg(structSn, stepSn); }
/// <summary> /// 教程管理器初始化接口,游戏启动的第一步。从服务器获取到教程相关数据。 /// 服务器需要记录的数据:哪些类别的教程已经完成、正在进行中的教程,处理到哪一步 /// </summary> public void InitData() { //---------模拟服务器数据 开始----------- //服务器需要下发每个struct的sn,同时需要发送该Struct记录的StepSn List <ServerData> serList = new List <ServerData>() { new ServerData(10001, 1000102) }; //---------模拟服务器数据 结束----------- //开始数据解析 for (int i = 0; i < serList.Count; i++) { ServerData serverData = serList[i]; TeachStepParser stepParser = Data.Inst.TeachStep(serverData.stepSn); if (stepParser.syncSn == SYCN_FINISH) // 教程已经完成 { _finishDic.Add(serverData.structSn, true); } else //有正在进行中的教程 { if (isTeaching) { Debug.LogError("<TeachMgr> 已经有进行中的教程,数据错误,请检查!"); return; } isTeaching = true; _structParser = Data.Inst.TeachStruct(serverData.structSn); for (int j = 0; j < _structParser.steps.Length; j++) { if (_structParser.steps[j] == serverData.stepSn) { _stepNum = j; break; } } } } }