Exemple #1
0
    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);
    }
Exemple #2
0
    /// <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;
    }