示例#1
0
    private void SendPrivateMsg(CsChatPrivate msg)
    {
        var tag = Util.Parse <int>(msg.tag);

        if (tag == 2)
        {
            tag = 0;
        }
        AllChatMesClone(true, msg.type, msg.content, my_speak, modulePlayer.name_, modulePlayer.avatar, modulePlayer.id_, modulePlayer.gender, modulePlayer.avatarBox, modulePlayer.proto, tag);
        moduleChat.DispatchModuleEvent(Module_Chat.EventChatSeeTeamMsg);
    }
示例#2
0
    public void SendFriendMessage(string content, int type, ulong playerid, int tag = 0)//tag=0 好友之间私聊 1组队邀请显示 2组队之间聊天不显示 3 协作邀请 4 公会悬赏消息
    {
        if (modulePlayer.BanChat == 2)
        {
            if (tag == 0 || tag == 2)
            {
                moduleGlobal.ShowMessage(630, 0);
                return;
            }
        }

        if (playerid == 0)
        {
            if (moduleAwakeMatch.IsInTeam)
            {
                CsChatPrivate m = PacketObject.Create <CsChatPrivate>();
                m.content = content;
                m.type    = (sbyte)type;
                m.recvId  = playerid;
                m.tag     = tag.ToString();
                DispatchModuleEvent(EventChatSendTeamMes, m.Clone());
                team_chat_record.Enqueue(m);
                m.Destroy();
            }
            else
            {
                Logger.LogError("target playerid is 0");
            }
            return;
        }

        if (tag != 2)
        {
            bool have = Friend_Id_key.Exists(a => a == playerid);
            if (!have)
            {
                Friend_Id_key.Add(playerid);//不存在填进去
            }
            //我发了一条消息 所以是一条置顶自己发的加入到聊天记录
            Late_reset(playerid);
            AddSelfChat(type, content, playerid, tag.ToString());
        }

        CsChatPrivate p = PacketObject.Create <CsChatPrivate>();

        p.content = content;
        p.type    = (sbyte)type;
        p.recvId  = playerid;
        p.tag     = tag.ToString();
        if (moduleAwakeMatch.IsInTeam || tag == 1 || tag == 2)
        {
            DispatchModuleEvent(EventChatSendTeamMes, p);
            team_chat_record.Enqueue(p);
        }

        var black = moduleFriend.BlackList.Exists(a => a.roleId == playerid);

        if (!black)
        {
            Send(p);
        }

        //playerid 在哪个好友的聊天记录里 type 发送的内容形式 matter 发送的具体内容 send_id 是我发的还是对方发的
        //Record(playerid.ToString(), type.ToString(), content, modulePlayer.roleInfo.roleId.ToString());
    }