コード例 #1
0
        public static void ExperienceCopyMapCreateMonster(GameClient client, ExperienceCopyScene ExperienceMapInfo, ExperienceCopyMapDataInfo exMap, int nWave)
        {
            ExperienceMapInfo.m_ExperienceCopyMapCreateMonsterFlag = 1;
            ExperienceMapInfo.m_ExperienceCopyMapCreateMonsterWave++;
            GameMap gameMap = null;

            if (!GameManager.MapMgr.DictMaps.TryGetValue(ExperienceMapInfo.m_MapCodeID, out gameMap))
            {
                LogManager.WriteLog(LogTypes.Error, string.Format("经验副本 地图配置 ID = {0}", ExperienceMapInfo.m_MapCodeID), null, true);
            }
            else
            {
                int        gridX    = gameMap.CorrectWidthPointToGridPoint(exMap.posX) / gameMap.MapGridWidth;
                int        gridY    = gameMap.CorrectHeightPointToGridPoint(exMap.posZ) / gameMap.MapGridHeight;
                int        gridNum  = gameMap.CorrectWidthPointToGridPoint(exMap.Radius);
                int        nTotal   = 0;
                List <int> nListID  = exMap.MonsterIDList[nWave];
                List <int> nListNum = exMap.MonsterNumList[nWave];
                for (int i = 0; i < nListID.Count; i++)
                {
                    int nID  = nListID[i];
                    int nNum = nListNum[i];
                    GameManager.MonsterZoneMgr.AddDynamicMonsters(ExperienceMapInfo.m_MapCodeID, nID, ExperienceMapInfo.m_CopyMapID, nNum, gridX, gridY, gridNum, 0, SceneUIClasses.Normal, null, null);
                    nTotal += nNum;
                    ExperienceMapInfo.m_ExperienceCopyMapCreateMonsterNum += nNum;
                    ExperienceMapInfo.m_ExperienceCopyMapRemainMonsterNum += nNum;
                }
                ExperienceMapInfo.m_ExperienceCopyMapNeedKillMonsterNum = ExperienceMapInfo.m_ExperienceCopyMapCreateMonsterNum * exMap.CreateNextWaveMonsterCondition[nWave] / 100;
                if (client != null)
                {
                    ExperienceCopySceneManager.SendMsgToClientForExperienceCopyMapInfo(client, ExperienceMapInfo.m_ExperienceCopyMapCreateMonsterWave);
                }
            }
        }
コード例 #2
0
        public static void ExperienceCopyMapKillMonster(GameClient client, Monster monster)
        {
            ExperienceCopyMapDataInfo TmpExInfo = null;

            if (Data.ExperienceCopyMapDataInfoList.TryGetValue(client.ClientData.MapCode, out TmpExInfo))
            {
                ExperienceCopyScene tmpExSceneInfo = null;
                lock (ExperienceCopySceneManager.m_ExperienceListCopyMapsInfo)
                {
                    if (!ExperienceCopySceneManager.m_ExperienceListCopyMapsInfo.TryGetValue(client.ClientData.FuBenSeqID, out tmpExSceneInfo))
                    {
                        return;
                    }
                }
                if (tmpExSceneInfo != null)
                {
                    CopyMap TmpCopyMapInfo = null;
                    if (ExperienceCopySceneManager.m_ExperienceListCopyMaps.TryGetValue(client.ClientData.FuBenSeqID, out TmpCopyMapInfo))
                    {
                        if (TmpCopyMapInfo != null)
                        {
                            tmpExSceneInfo.m_ExperienceCopyMapKillMonsterNum++;
                            tmpExSceneInfo.m_ExperienceCopyMapKillMonsterTotalNum++;
                            tmpExSceneInfo.m_ExperienceCopyMapRemainMonsterNum--;
                            if (tmpExSceneInfo.m_ExperienceCopyMapCreateMonsterFlag == 1 && tmpExSceneInfo.m_ExperienceCopyMapKillMonsterNum == tmpExSceneInfo.m_ExperienceCopyMapNeedKillMonsterNum)
                            {
                                tmpExSceneInfo.m_ExperienceCopyMapCreateMonsterFlag = 0;
                                tmpExSceneInfo.m_ExperienceCopyMapKillMonsterNum    = 0;
                                tmpExSceneInfo.m_ExperienceCopyMapCreateMonsterNum  = 0;
                            }
                            if (tmpExSceneInfo.m_ExperienceCopyMapCreateMonsterWave == TmpExInfo.MonsterIDList.Count && tmpExSceneInfo.m_ExperienceCopyMapKillMonsterTotalNum == TmpExInfo.MonsterSum)
                            {
                                ExperienceCopySceneManager.SendMsgToClientForExperienceCopyMapAward(client);
                            }
                            int nWave = tmpExSceneInfo.m_ExperienceCopyMapCreateMonsterWave;
                            if (tmpExSceneInfo.m_ExperienceCopyMapKillMonsterTotalNum == TmpExInfo.MonsterSum || tmpExSceneInfo.m_ExperienceCopyMapRemainMonsterNum == 0)
                            {
                                nWave++;
                            }
                            ExperienceCopySceneManager.SendMsgToClientForExperienceCopyMapInfo(client, nWave);
                        }
                    }
                }
            }
        }