예제 #1
0
 private void OnMsg_chatviewCountDown(MobaMessage msg)
 {
     HomeChatCtrl.GetInstance().sendState = SendState.Nothing;
     this.content.value       = string.Empty;
     this.content.isSelected  = false;
     this.content.label.color = Color.white;
     this.content.defaultText = "[d60d0d]60秒[-][005586]后方可输入[-]";
     this.CheckInputState(true);
 }
예제 #2
0
 public void Init()
 {
     this.mgs = new object[]
     {
         ClientV2C.chatviewOpenView,
         ClientV2C.chatviewSendChatToServer
     };
     HomeChatCtrl.GetInstance().sendState = SendState.Nothing;
     this.Register();
 }
예제 #3
0
 private void OnMsg_ReceiveHallChatMessage(MobaMessage msg)
 {
     if (msg != null)
     {
         ChatMessageNew chatMessageNew = (ChatMessageNew)msg.Param;
         if (chatMessageNew.Client.UserId == Singleton <HomeChatview> .Instance.UserID)
         {
             this.DisplayData(chatMessageNew, true);
         }
         else
         {
             this.DisplayData(chatMessageNew, false);
         }
         HomeChatCtrl.GetInstance().sendState = SendState.Nothing;
     }
 }
예제 #4
0
 public static HomeChatCtrl GetInstance()
 {
     if (HomeChatCtrl.instance == null)
     {
         object obj = HomeChatCtrl.obj_lock;
         lock (obj)
         {
             if (HomeChatCtrl.instance == null)
             {
                 HomeChatCtrl.instance = new HomeChatCtrl();
                 return(HomeChatCtrl.instance);
             }
         }
     }
     return(HomeChatCtrl.instance);
 }
예제 #5
0
 private void OnMsg_chatviewFillChatHistory(MobaMessage msg)
 {
     if (msg.Param != null)
     {
         bool flag = (bool)msg.Param;
         long num  = long.Parse(ModelManager.Instance.Get_userData_X().UserId);
         Queue <ChatMessageNew> source = new Queue <ChatMessageNew>();
         source = ModelManager.Instance.Get_TempHallChatView();
         List <ChatMessageNew> chatMessageArray = (!flag) ? source.ToList <ChatMessageNew>() : ModelManager.Instance.Get_Hall_Chat_DataX().ToList <ChatMessageNew>();
         int i;
         for (i = 0; i != chatMessageArray.Count; i++)
         {
             string        str = chatMessageArray[i].Message;
             AgentBaseInfo abi = chatMessageArray[i].Client;
             if (chatMessageArray[i].ChatType == 8)
             {
                 str = "#e062" + str;
             }
             bool isSelf = chatMessageArray[i].Client.UserId == num;
             GridHelper.AddToGrid <ChatItem>(this.transGrid, (!isSelf) ? this.otherChatItem : this.myChatItem, isSelf, delegate(int idx, ChatItem comp)
             {
                 comp.Init(abi, str, idx, isSelf, (ChatType)chatMessageArray[i].ChatType);
                 comp.name = idx.ToString();
                 this.queueChat.Enqueue(comp);
             });
             if (this.queueChat.Count > 40)
             {
                 ChatItem chatItem = this.queueChat.Dequeue();
                 UnityEngine.Object.Destroy(chatItem.gameObject);
             }
         }
         this.usv.contentPivot = UIWidget.Pivot.Bottom;
         this.usv.ResetPosition();
         this.JudgePosition();
         ModelManager.Instance.Set_ReSetTempHallChatView();
         HomeChatCtrl.GetInstance().sendState = SendState.Nothing;
     }
 }
예제 #6
0
 private void OnEnable()
 {
     this.Register();
     HomeChatCtrl.GetInstance().sendState = SendState.Nothing;
     base.InvokeRepeating("SendGetGlobleChatMsg", 0.5f, 3f);
 }
예제 #7
0
        private void SendChat(GameObject obj)
        {
            if (HomeChatCtrl.GetInstance().sendState == SendState.Sending)
            {
                return;
            }
            if (this.task_countDown != null && this.task_countDown.Running)
            {
                Singleton <TipView> .Instance.ShowViewSetText("休息一下 稍后再发", 1f);

                return;
            }
            HomeChatCtrl.GetInstance().sendState = SendState.Sending;
            this.GetSetEmojiPanelState(false);
            string nickName       = ModelManager.Instance.Get_userData_X().NickName;
            long   userId         = long.Parse(ModelManager.Instance.Get_userData_X().UserId);
            int    userLevel      = CharacterDataMgr.instance.GetUserLevel(ModelManager.Instance.Get_userData_X().Exp);
            int    ladder         = ToolsFacade.Instance.ToInt32(ModelManager.Instance.Get_userData_X().LadderScore);
            int    botLevel       = ModelManager.Instance.Get_BottleData_Level();
            int    head           = ModelManager.Instance.Get_userData_filed_X("Avatar");
            int    headFrame      = ModelManager.Instance.Get_userData_filed_X("PictureFrame");
            int    charmRankvalue = ModelManager.Instance.Get_userData_filed_X("CharmRankValue");
            string value          = this.content.value;
            bool   flag           = false;

            if (!string.IsNullOrEmpty(value) && value.Length > 1 && value[0] == '/')
            {
                flag = true;
            }
            AgentBaseInfo client = new AgentBaseInfo
            {
                NickName       = nickName,
                UserId         = userId,
                head           = head,
                headFrame      = headFrame,
                Level          = userLevel,
                Ladder         = ladder,
                BotLevel       = botLevel,
                CharmRankvalue = charmRankvalue
            };

            if (!flag)
            {
                if (!ToolsFacade.Instance.IsLegalString(ref value))
                {
                    UnityEngine.Debug.LogError("return");
                    return;
                }
            }
            ChatMessageNew data = new ChatMessageNew
            {
                Client   = client,
                ChatType = 3,
                Message  = value,
                TargetId = null,
                TimeTick = ToolsFacade.ServerCurrentTime.Ticks
            };
            Dictionary <byte, object> dictionary = new Dictionary <byte, object>();

            dictionary.Add(100, SerializeHelper.Serialize <ChatMessageNew>(data));
            dictionary.Add(5, Model_HomeChat.LastMsgId);
            MobaMessageManagerTools.SendClientMsg(ClientV2C.chatviewSendChatToServer, dictionary, false);
        }
예제 #8
0
 private void OnPeerDisconnected(MobaMessage msg)
 {
     this.CheckInputState(true);
     HomeChatCtrl.GetInstance().sendState = SendState.Nothing;
 }
예제 #9
0
 public void UnInit()
 {
     this.UnRegister();
     HomeChatCtrl.GetInstance().sendState = SendState.Nothing;
 }