using System.Text; using System.Collections; using vnxbqy.UI; using System; public class ChatData { // public ChatData(string content) // { // _content = content; // if (ChatCenter.s_VoiceRegex.IsMatch(_content)) // { // _content = ChatCenter.s_VoiceRegex.Replace(_content, string.Empty); // } // richText = new StringBuilder(); // richText.Length = 0; // createTime = DateTime.Now; // } private string _content = string.Empty; public string content { get { if (richText.Length > 0) { return richText.ToString(); } return _content; } protected set { _content = value; } } // public ChatInfoType type { get; protected set; } // public DateTime createTime { get; set; } // private ChatInfoType m_DetailType = ChatInfoType.World; // public ChatInfoType detailType // { // get // { // return m_DetailType; // } // set // { // m_DetailType = value; // } // } public StringBuilder richText; public ArrayList infoList = new ArrayList(); } public class ChatUeseData : ChatData { public ChatUeseData() { } public ChatUeseData(string _content, int player, string name, string extra)// : base(_content) { this.player = player; this.name = name; extra = UIHelper.ServerStringTrim(extra); this.extra = extra; this.job = 1; IsSound = false; var extraLength = extra.Length; if (extraLength > 1) { vipLv = int.Parse(extra.Substring(0, 2)); } if (extraLength > 2) { isGm = byte.Parse(extra.Substring(2, 1)) == 1; } if (extraLength > 3) { job = byte.Parse(extra.Substring(3, 1)); } if (extraLength > 4) { bubbleId = int.Parse(extra.Substring(4, extraLength > 5 ? 2 : 1)); } if (extraLength > 12) { serverGroupId = int.Parse(extra.Substring(6, 7)); } if (extraLength > 16) { level = int.Parse(extra.Substring(13, 4)); } // if (ChatCenter.s_VoiceRegex.IsMatch(_content)) // { // var _match = ChatCenter.s_VoiceRegex.Match(_content); // soundTick = long.Parse(_match.Groups[1].Value); // soundLength = byte.Parse(_match.Groups[2].Value)/10.0f; // IsSound = true; // } string[] parts = extra.Split('|'); face = (parts.Length > 4 && int.TryParse(parts[4], out var result1)) ? result1 : 0; facePic = (parts.Length > 5 && int.TryParse(parts[5], out var result2)) ? result2 : 0; } public int player { get; protected set; } public string name { get; protected set; } public string extra { get; protected set; } public int vipLv { get; protected set; } public bool isGm { get; protected set; } public int job { get; protected set; } public int bubbleId { get; protected set; } public long soundTick { get; private set; } public bool IsSound { get; private set; } public float soundLength { get; private set; } public int serverGroupId { get; private set; } public int level { get; private set; } public int face { get; private set; } public int facePic { get; private set; } } public class ChatSystemData : ChatData { // public ChatSystemData(string content) : base(content) // { // type = ChatInfoType.System; // } } // 喇叭暂时不要了 // public class ChatTrumpetData : ChatUeseData // { // public ChatTrumpetData(string content, int player, string name, string extra, byte speakType, string accId) : base(content, player, name, extra) // { // this.speakType = speakType; // this.accId = accId; // // type = ChatInfoType.Trumpet; // } // public byte speakType { get; protected set; } // public string accId { get; protected set; } // } public class ChatWorldData : ChatUeseData { // public ChatWorldData(string content, int player, string name, string extra) : base(content, player, name, extra) // { // type = ChatInfoType.World; // } } public class ChatAreaData : ChatUeseData { // public ChatAreaData(string content, int player, string name, string extra) : base(content, player, name, extra) // { // type = ChatInfoType.Area; // } } public class ChatCrossServerData : ChatUeseData { // public ChatCrossServerData(string content, int player, string name, string extra) : base(content, player, name, extra) // { // type = ChatInfoType.CrossServer; // } } public class ChatFactionData : ChatUeseData { // public ChatFactionData(string content, int player, string name, string extra, ChatInfoType detailType = ChatInfoType.default1) : base(content, player, name, extra) // { // type = ChatInfoType.default1; // this.detailType = detailType; // } } public class ChatTeamData : ChatUeseData { // public ChatTeamData(string content, int player, string name, string extra, ChatInfoType detailType = ChatInfoType.Team) : base(content, player, name, extra) // { // type = ChatInfoType.Team; // this.detailType = detailType; // } } public class ChatFamilyData : ChatUeseData { // public ChatFamilyData(string content, int player, string name, string extra, ChatInfoType detailType = ChatInfoType.Fairy) : base(content, player, name, extra) // { // type = ChatInfoType.Fairy; // this.detailType = detailType; // } } public class ChatInviteData : ChatUeseData { // public ChatInviteData(string content, int player, string name, string extra) : base(content, player, name, extra) // { // type = ChatInfoType.Invite; // } } public class ChatFriendData : ChatUeseData { // public ChatFriendData(string content, int player, string name, string extra, string toName, byte talkType, uint toPlayer) : base(content, player, name, extra) // { // type = ChatInfoType.Friend; // this.toName = toName; // this.talkType = talkType; // this.toPlayer = (int)toPlayer; // } public string toName { get; protected set; } public byte talkType { get; protected set; } public int toPlayer { get; protected set; } }