private ChatTypeIndexes GetChatKeyName(string name) { ChatTypeIndexes keyName = ChatTypeIndexes.Max; if (name.Equals("WorldChats") || name.Equals("chat_world_level")) { keyName = ChatTypeIndexes.World; } else if (name.Equals("FamilyChats") || name.Equals("chat_family_level")) { keyName = ChatTypeIndexes.Faction; } else if (name.Equals("TeamChats") || name.Equals("chat_team_level")) { keyName = ChatTypeIndexes.Team; } else if (name.Equals("PrivateChats") || name.Equals("chat_private_level")) { keyName = ChatTypeIndexes.Private; } else if (name.Equals("NearChats") || name.Equals("chat_near_level")) { keyName = ChatTypeIndexes.Map; } return(keyName); }
private string GetPlatChatLevelLimitConfig(string paramName) { string str = null; ChatTypeIndexes keyName = this.GetChatKeyName(paramName); List <ChatLevelLimitConfig> chatConfigList = null; lock (this._PlatConfigChatLevelLimitDic) { chatConfigList = this._PlatConfigChatLevelLimitDic[keyName]; } string result; if (chatConfigList == null) { result = null; } else { IOrderedEnumerable <ChatLevelLimitConfig> query = from items in chatConfigList orderby items.Day select items; DateTime t = TimeUtil.NowDateTime(); DateTime t2 = Global.GetKaiFuTime(); int elapsedDays = Global.GetDaysSpanNum(TimeUtil.NowDateTime(), t2, true); foreach (ChatLevelLimitConfig v in query) { str = v.Limit; if (elapsedDays <= v.Day) { break; } } try { string[] szLevelLimit = str.Split(new char[] { ',' }); int minChangeLife = Convert.ToInt32(szLevelLimit[0]); int minLevel = Convert.ToInt32(szLevelLimit[1]); str = (minChangeLife * 100 + minLevel).ToString(); } catch (Exception e) { return(null); } result = str; } return(result); }
private void LoadChatLevelLimitConfig(XElement xml, Dictionary <ChatTypeIndexes, List <ChatLevelLimitConfig> > chatLevelLimitDic) { lock (chatLevelLimitDic) { try { XElement xmlEle = Global.GetSafeXElement(xml, "Chats"); IEnumerable <XElement> chatsNodes = xmlEle.Elements(); foreach (XElement xmlNode in chatsNodes) { ChatTypeIndexes keyName = this.GetChatKeyName(xmlNode.Name.LocalName); if (keyName == ChatTypeIndexes.Max) { throw new InvalidDataException(string.Format("{0} 不在聊天类型中 !!!", xmlNode.Name.LocalName)); } List <ChatLevelLimitConfig> ChatLevelLimitConfigList = new List <ChatLevelLimitConfig>(); chatLevelLimitDic[keyName] = ChatLevelLimitConfigList; foreach (XElement xmlSubNode in xmlNode.Elements()) { ChatLevelLimitConfig chatLevelLimitConfig = new ChatLevelLimitConfig(); string ID = Global.GetSafeAttributeStr(xmlSubNode, "ID"); string Day = Global.GetSafeAttributeStr(xmlSubNode, "Day"); string Limit = Global.GetSafeAttributeStr(xmlSubNode, "Limit"); chatLevelLimitConfig.ID = Convert.ToInt32(ID); chatLevelLimitConfig.Day = Convert.ToInt32(Day); chatLevelLimitConfig.Limit = Limit; ChatLevelLimitConfigList.Add(chatLevelLimitConfig); } } } catch (Exception e) { throw new Exception(string.Format("加载系统配置参数配置文件:{0}, 失败。{1} 节点配置错误! {2}", this.fileName, "Chats", e.ToString())); } } }