Example #1
0
        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);
        }
Example #2
0
        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);
        }
Example #3
0
 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()));
         }
     }
 }