Exemple #1
0
    void _Packet(ScChatGroup p)
    {
        var black = moduleFriend.BlackList.Exists(a => a.roleId == p.sendId);

        if (black)
        {
            return;
        }

        ScChatGroup info = p.Clone();

        string[] mes = info.tag.Split('/');
        if (mes.Length < 5)
        {
            Logger.LogError("chat mes error");
            return;
        }
        m_newUnionMes = true;
        if (m_unionChat.Count >= ChatNum)
        {
            m_unionChat.Dequeue();
        }
        m_unionChat.Enqueue(info);
        DispatchModuleEvent(EventChatRecUnionMes, info);
    }
Exemple #2
0
    public ScChatGroup SetUnionSend(string content, int sysType)//systype (文字 图片 语音)
    {
        ScChatGroup p = PacketObject.Create <ScChatGroup>();

        p.sendId  = modulePlayer.id_;
        p.type    = (sbyte)sysType;
        p.tag     = ChatTag();
        p.content = content;
        return(p);
    }
Exemple #3
0
    public void AddChatList(string str, bool addChat)
    {
        //110 系统 111 是公会
        ScChatGroup p = PacketObject.Create <ScChatGroup>();

        p.sendId  = 111;
        p.type    = 0;
        p.content = str;
        if (m_unionChat.Count > ChatNum)
        {
            m_unionChat.Dequeue();
        }

        if (addChat)
        {
            m_unionChat.Enqueue(p);
            DispatchModuleEvent(EventChatRecUnionMes, p);
        }
    }
Exemple #4
0
    private void AddUnionMes(ScChatGroup union)
    {
        if (union == null)
        {
            return;
        }

        if (union.sendId == 111)
        {
            SysAdd(union.content);
        }
        else
        {
            if (string.IsNullOrEmpty(union.tag))
            {
                Logger.LogError("no tag");
                return;
            }
            if (union.sendId == modulePlayer.id_)
            {
                string[] unionMes = union.tag.Split('/');
                if (unionMes.Length < 4)
                {
                    return;
                }
                SetClone(true, union.type, union.content, union.sendId);
            }
            else
            {
                string[] unionMes = union.tag.Split('/');
                if (unionMes.Length < 5)
                {
                    return;
                }
                SetClone(false, union.type, union.content, modulePlayer.id_, unionMes);
            }
        }
    }
Exemple #5
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;
        }
    }