void _Packet(ScMazeEnterScene p) { Logger.LogInfo("收到enter 回复 result = {0}", p.result); if (p.result == 0) { areaRewardDic.Clear(); for (int i = (int)EnumLabyrinthArea.DemotionArea; i <= (int)EnumLabyrinthArea.PromotionArea; i++) { areaRewardDic.Add((EnumLabyrinthArea)i, new List <PItem2>()); } if (p.mazeInfo.rewardList != null) { for (int i = 0; i < p.mazeInfo.rewardList.Length; i++) { var r = p.mazeInfo.rewardList[i]; if (r == null) { continue; } var area = (EnumLabyrinthArea)((int)EnumLabyrinthArea.PromotionArea - i); if (!areaRewardDic.ContainsKey(area)) { continue; } areaRewardDic[area].AddRange(GetPItem2FromPreward(r)); } } pmazeInfo = null; p.mazeInfo.CopyTo(ref pmazeInfo); Logger.LogDetail("maze id ={0},maxLayer = {1},rise ={2},keep = {3},down = {4} level = {5}", pmazeInfo.mazeId, pmazeInfo.mazeMaxLayer, pmazeInfo.riseNum, pmazeInfo.keepNum, pmazeInfo.downNum, pmazeInfo.mazeLevel); labyrinthInfo = ConfigManager.Get <LabyrinthInfo>(currentLabyrinthID); if (labyrinthInfo == null) { labyrinthInfo = ConfigManager.GetAll <LabyrinthInfo>().GetValue(0); Logger.LogError("cannot finded a labyrinth info with Id {0},we will use id = {1} to instead of", currentLabyrinthID, labyrinthInfo ? labyrinthInfo.ID : -1); } LABYRINTH_LEVEL_ID = labyrinthInfo.levelId; Game.LoadLevel(LABYRINTH_LEVEL_ID); } else { ShowErrorTip(10007, p.result); } DispatchModuleEvent(EventEnterlabyrinth, p.result, true); }
/// <summary> /// 退出的时候清空 /// </summary> private void InitLabyrinthData() { areaPlayerDic.Clear(); m_labyrinthPropDic.Clear(); labyrinthReports.Clear(); m_labyrinthTrapDic.Clear(); //初始化的时候清空该数据 m_isSendBattleReport = false; pmazeInfo = null; areaRewardDic.Clear(); m_labyrinthSelfInfo = null; OnSneakSettleOver(); m_sendUnlockMsg = false; moveMentKey = 0; }