예제 #1
0
    public ScChatRoomMessage SetWorldSend(string content, int sysType)//systype (文字 图片 语音)
    {
        ScChatRoomMessage p = PacketObject.Create <ScChatRoomMessage>();

        p.sendId  = modulePlayer.id_;
        p.type    = (sbyte)sysType;
        p.tag     = ChatTag();
        p.content = content;
        return(p);
    }
예제 #2
0
    void _Packet(ScChatRoomMessage p)
    {
        ScChatRoomMessage info = p.Clone();

        string[] mes = info.tag.Split('/');
        if (mes.Length < 5)
        {
            Logger.LogError("chat mes error");
            return;
        }
        m_newWordMes = true;
        if (word_chat_mes.Count >= ChatNum)
        {
            word_chat_mes.Dequeue();
        }
        word_chat_mes.Enqueue(info);// 本地 载入界面的时候进行调用

        DispatchModuleEvent(EventChatRecWordMes, info);
    }
예제 #3
0
    public void SysChatMes(ScChatRoomMessage info, int sysType)
    {
        if (info.sendId == 110)
        {
            m_newSysMes = true;

            if (sys_chat_mes.Count >= ChatNum)
            {
                sys_chat_mes.Dequeue();
            }
            sys_chat_mes.Enqueue(info);

            if (sysType != (int)SysMesType.Wish && sysType != (int)SysMesType.Team)
            {
                if (word_chat_mes.Count >= ChatNum)
                {
                    word_chat_mes.Dequeue();
                }
                word_chat_mes.Enqueue(info);
            }
            DispatchModuleEvent(EventChatRecSysMes, info.content);
        }
    }
예제 #4
0
    private void _ME(ModuleEvent <Module_Chat> e)
    {
        switch (e.moduleEvent)
        {
        case Module_Chat.EventChatRecWordMes:
            if (!word_mes.isOn)
            {
                return;
            }
            ScChatRoomMessage wordmes = e.msg as ScChatRoomMessage;
            string[]          info    = wordmes.tag.Split('/');
            if (info.Length < 5)
            {
                return;
            }
            SetClone(false, wordmes.type, wordmes.content, wordmes.sendId, info);
            SetTipTxtShow(OpenWhichChat.WorldChat);
            break;

        case Module_Chat.EventChatRecSysMes:
            if (!sys_mes.isOn)
            {
                return;
            }
            string sysmes = e.param1.ToString();
            SysAdd(sysmes);
            SetTipTxtShow(OpenWhichChat.SysChat);
            break;

        case Module_Chat.EventChatRecUnionMes:
            if (!m_unionBtn.isOn)
            {
                return;
            }
            ScChatGroup union = e.msg as ScChatGroup;
            AddUnionMes(union);
            SetTipTxtShow(OpenWhichChat.UnionChat);
            break;

        case Module_Chat.EventChatRecTeamMes:
            RecieveMsg(e.msg as ScChatPrivate);
            break;

        case Module_Chat.EventChatSendTeamMes:
            SendPrivateMsg(e.msg as CsChatPrivate);
            break;

        case Module_Chat.EventChatChangeRoom:
            int result = Util.Parse <int>(e.param1.ToString());
            ChangeRoom(result);
            break;

        case Module_Chat.EventChatRoomList:
            roomchange_btn.interactable = true;
            roomchange_btn_txt.text     = moduleChat.RoomChatNum.ToString();
            room_all.text = moduleChat.Chat_list.Count.ToString();
            break;

        case Module_Chat.EventChatPlayerDetails:
            var playerInfo = e.msg as PPlayerInfo;
            FriendDetailInfo playerDetail = m_detailPlane.GetComponentDefault <FriendDetailInfo>();
            playerDetail.IsfriendDetails(playerInfo, true, SetInvate);
            m_detailPlane.gameObject.SetActive(true);
            break;

        case Module_Chat.EventChatWindowHide:
            if (actived)
            {
                Hide(true);
            }
            break;
        }
    }