예제 #1
0
        public static bool JudgeCanEnterOnTime(ZhuanShengMapInfo mapInfo)
        {
            DateTime now       = TimeUtil.NowDateTime();
            DateTime startTime = DateTime.Parse(mapInfo.TimePoints[0]);
            DateTime endTime   = startTime.AddMinutes((double)(mapInfo.ReadyTime / 60));

            return(now > startTime && now <= endTime);
        }
예제 #2
0
        public static void LoadZhuanShengShiLianXml()
        {
            string fileName = "";

            try
            {
                fileName = Global.GameResPath(ThemeDataConst.ThemeActivityZhuanSheng);
                XElement xml = CheckHelper.LoadXml(fileName, true);
                if (null != xml)
                {
                    ZhuanShengShiLian.ZhuanShengRunTimeData.ThemeZSActivity.FromDate       = "-1";
                    ZhuanShengShiLian.ZhuanShengRunTimeData.ThemeZSActivity.ToDate         = "-1";
                    ZhuanShengShiLian.ZhuanShengRunTimeData.ThemeZSActivity.AwardStartDate = "-1";
                    ZhuanShengShiLian.ZhuanShengRunTimeData.ThemeZSActivity.AwardEndDate   = "-1";
                    Dictionary <int, ZhuanShengMapInfo> mapInfoDict = new Dictionary <int, ZhuanShengMapInfo>();
                    List <int>             mapList = new List <int>();
                    IEnumerable <XElement> nodes   = xml.Elements();
                    foreach (XElement xmlItem in nodes)
                    {
                        int      mapCode  = Convert.ToInt32(Global.GetDefAttributeStr(xmlItem, "MapID", "0"));
                        string[] minLevel = Global.GetDefAttributeStr(xmlItem, "MinLevel", "0").Split(new char[]
                        {
                            '|'
                        });
                        if (minLevel.Length >= 2)
                        {
                            string[] maxLevel = Global.GetDefAttributeStr(xmlItem, "MaxLevel", "0").Split(new char[]
                            {
                                '|'
                            });
                            if (maxLevel.Length >= 2)
                            {
                                ZhuanShengMapInfo mapInfo = new ZhuanShengMapInfo
                                {
                                    MonstersID     = Convert.ToInt32(Global.GetDefAttributeStr(xmlItem, "MonstersID", "0")),
                                    MapCode        = mapCode,
                                    ReadyTime      = Convert.ToInt32(Global.GetDefAttributeStr(xmlItem, "ReadyTime", "0")),
                                    FightSecs      = Convert.ToInt32(Global.GetDefAttributeStr(xmlItem, "FightSecs", "0")),
                                    ClearRolesSecs = Convert.ToInt32(Global.GetDefAttributeStr(xmlItem, "ClearRolesSecs", "0")),
                                    MaxEnterNum    = Convert.ToInt32(Global.GetDefAttributeStr(xmlItem, "MaxEnterNum", "0")),
                                    BornX          = Convert.ToInt32(Global.GetDefAttributeStr(xmlItem, "X", "0")),
                                    BornY          = Convert.ToInt32(Global.GetDefAttributeStr(xmlItem, "Y", "0")),
                                    MinZhuanSheng  = Convert.ToInt32(minLevel[0]),
                                    MinLevel       = Convert.ToInt32(minLevel[1]),
                                    MaxZhuanSheng  = Convert.ToInt32(maxLevel[0]),
                                    MaxLevel       = Convert.ToInt32(maxLevel[1])
                                };
                                List <string> timePointsList = new List <string>();
                                string        timePoints     = Global.GetDefAttributeStr(xmlItem, "TimePoints", "0");
                                if (!string.IsNullOrEmpty(timePoints))
                                {
                                    string[] sField = timePoints.Split(new char[]
                                    {
                                        '-'
                                    });
                                    for (int i = 0; i < sField.Length; i++)
                                    {
                                        timePointsList.Add(sField[i].Trim());
                                    }
                                }
                                mapInfo.TimePoints   = timePointsList;
                                mapInfoDict[mapCode] = mapInfo;
                            }
                        }
                    }
                    lock (ZhuanShengShiLian.ZhuanShengRunTimeData.Mutex)
                    {
                        ZhuanShengShiLian.ZhuanShengRunTimeData.ZhuanShengMapDict = mapInfoDict;
                    }
                    fileName = Global.GameResPath(ThemeDataConst.ThemeActivityZhuanShengReward);
                    xml      = CheckHelper.LoadXml(fileName, true);
                    if (null != xml)
                    {
                        Dictionary <int, List <ShiLianReward> > shiLianDict = new Dictionary <int, List <ShiLianReward> >();
                        nodes = xml.Elements();
                        foreach (XElement xmlItem in nodes)
                        {
                            int mapCode = Convert.ToInt32(Global.GetDefAttributeStr(xmlItem, "MapID", "0"));
                            List <ShiLianReward> shiLianList;
                            if (!shiLianDict.TryGetValue(mapCode, out shiLianList))
                            {
                                shiLianList          = new List <ShiLianReward>();
                                shiLianDict[mapCode] = shiLianList;
                            }
                            shiLianList.Add(new ShiLianReward
                            {
                                MinRank         = Convert.ToInt32(Global.GetDefAttributeStr(xmlItem, "MinRank", "0")),
                                MaxRank         = Convert.ToInt32(Global.GetDefAttributeStr(xmlItem, "MaxRank", "0")),
                                WinRewardItem   = Global.GetDefAttributeStr(xmlItem, "WinRewardItem", ""),
                                WinrewardExp    = Convert.ToInt32(Global.GetDefAttributeStr(xmlItem, "WinrewardExp", "0")),
                                WinRewardMoney  = Convert.ToInt32(Global.GetDefAttributeStr(xmlItem, "WinRewardMoney", "0")),
                                LoseRewardItem  = Global.GetDefAttributeStr(xmlItem, "LoseRewardItem", "0"),
                                LoseRewardExp   = Convert.ToInt32(Global.GetDefAttributeStr(xmlItem, "LoseRewardExp", "0")),
                                LoseRewardMoney = Convert.ToInt32(Global.GetDefAttributeStr(xmlItem, "LoseRewardMoney", "0"))
                            });
                        }
                        List <int> goodsList = new List <int>();
                        string     goodsStr  = GameManager.systemParamsList.GetParamValueByName("ThemeActivityZhuanShengGoods");
                        if (!string.IsNullOrEmpty(goodsStr))
                        {
                            goodsList = Array.ConvertAll <string, int>(goodsStr.Split(new char[]
                            {
                                ','
                            }), (string _x) => Convert.ToInt32(_x)).ToList <int>();
                        }
                        lock (ZhuanShengShiLian.ZhuanShengRunTimeData.Mutex)
                        {
                            ZhuanShengShiLian.ZhuanShengRunTimeData.ShiLianRewardDict = shiLianDict;
                            ZhuanShengShiLian.ZhuanShengRunTimeData.BroadGoodsIDList  = goodsList;
                        }
                        ZhuanShengShiLian.ZhuanShengRunTimeData.ThemeZSActivity.ActivityType = 157;
                        ZhuanShengShiLian.ZhuanShengRunTimeData.ThemeZSActivity.PredealDateTime();
                    }
                }
            }
            catch (Exception ex)
            {
                LogManager.WriteLog(LogTypes.Fatal, string.Format("加载xml配置文件:{0}, 失败。", fileName), ex, true);
            }
        }