Esempio n. 1
0
        private void InitChatEmoticonConfigCsv(string strPath)
        {
            ScpReader reader = new ScpReader(strPath, true, 2);

            for (int i = 0; i < reader.GetRecordCount(); i++)
            {
                SSchemeChatEmoticonData sConfig = new SSchemeChatEmoticonData();
                sConfig.nEmoticonID       = reader.GetInt(i, (int)EChatEmoticonConfig.EEmoticon_ID, 0);
                sConfig.nEmoticonSerialID = reader.GetInt(i, (int)EChatEmoticonConfig.EEmoticon_Serial, 0);
                sConfig.eEmoticonType     = (EMChatEmoticonType)Enum.Parse(typeof(EMChatEmoticonType), reader.GetString(i, (int)EChatEmoticonConfig.EEmoticon_Type, ""));
                sConfig.szEmoticonKey     = reader.GetString(i, (int)EChatEmoticonConfig.EEmoticon_Key, string.Empty);
                sConfig.szCharInput       = reader.GetString(i, (int)EChatEmoticonConfig.EEmoticon_CharInput, string.Empty);
                sConfig.szTipDesc         = reader.GetString(i, (int)EChatEmoticonConfig.EEmoticon_TipDesc, string.Empty);
                sConfig.nEmoticonSellID   = reader.GetInt(i, (int)EChatEmoticonConfig.EEmoticon_SellID, 0);
                sConfig.nEmoticonSkillID  = reader.GetInt(i, (int)EChatEmoticonConfig.EEmoticon_skillID, 0);

                if (m_dicChatEmoticonConfig.ContainsKey(sConfig.nEmoticonID))
                {
                    Trace.LogWarning("有相同的聊天表情ID" + sConfig.nEmoticonID + "表第" + i + "行");
                }
                else
                {
                    m_dicChatEmoticonConfig.Add(sConfig.nEmoticonID, sConfig);
                }

                if (!m_chatEmoticonSerialList.ContainsKey(sConfig.nEmoticonSerialID))
                {
                    m_chatEmoticonSerialList.Add(sConfig.nEmoticonSerialID, new List <SSchemeChatEmoticonData>());
                }
                m_chatEmoticonSerialList[sConfig.nEmoticonSerialID].Add(sConfig);
            }
            reader.Dispose();
            reader = null;
        }
Esempio n. 2
0
        public void ReplaceChatEmoticonChar(ref string content)
        {
            if (string.IsNullOrEmpty(content))
            {
                return;
            }

            foreach (KeyValuePair <int, SSchemeChatEmoticonData> data in m_dicChatEmoticonConfig)
            {
                SSchemeChatEmoticonData emotionData = data.Value;
                if (emotionData.szCharInput != "")
                {
                    // 只有小表情才能通过输入快捷缩写发送)
                    if (emotionData.eEmoticonType != EMChatEmoticonType.Emoticon_Default)
                    {
                        continue;
                    }

                    while (content.Contains(emotionData.szCharInput))
                    {
                        //string newContent = (char)21 + "[emo id=" + data.Key + " " + "animKey=" + emotionData.szEmoticonKey.ToString() + "]" + "[/emo]";
                        string newContent = String.Format("{0}[emo id={1} serialid={2} animkey={3} type={4}] [/emo]", (char)21, data.Key, emotionData.nEmoticonSerialID, emotionData.szEmoticonKey, emotionData.eEmoticonType);
                        content = content.Replace(emotionData.szCharInput, newContent);
                    }
                }
            }
        }