Beispiel #1
0
        public bool addRoom(int roomId, User user, string password)
        {
            Room r = this.rooms[roomId];

            //有房间密码
            if (r.Password != null && r.Password.Length > 0)
            {
                if (password.Length <= 0)
                {
                    ByteBuffer buf = ByteBuffer.CreateByteBufferType(Protcol.通知玩家房间有密码);
                    buf.writeInt(roomId);
                    user.Send(buf);
                    return(false);
                }
                if (!r.Password.Equals(password))
                {
                    user.Send(ConstomMessage.getError("房间密码不对"));
                    return(false);
                }
            }
            bool f = r.AddRoom(user);

            if (!f)
            {
                user.Send(ConstomMessage.getError("房间已满"));
            }
            return(f);
        }
Beispiel #2
0
        //把房间所有信息发给某个玩家
        private void RoomTosSend(User user)
        {
            ByteBuffer bf = ByteBuffer.CreateByteBufferType(Protcol.玩家第一次进入房间, 1000);    //7000

            bf.writeInt(this.Roomid);
            bf.writeString(this.Roomname);
            bf.writeString(this.Password);

            User[] users = this.getUsers();
            bf.writeInt(users.Length);

            foreach (User u in users)
            {
                //要判断玩家是否中途退出
                if (u != null)
                {
                    bf.writeString(u.UserName);
                    bf.writeString(u.ChinaName);
                    bf.writeInt(u.DeskPos);
                    bf.writeString(u.Image);
                    bf.writeInt(u.Ready);
                }
            }
            user.Send(bf);
        }
Beispiel #3
0
        public void setRoomPassword(int roomId, User user, string pwd)
        {
            Room r = this.rooms[roomId];

            if (!user.roomOwner)
            {
                user.Send(ConstomMessage.getError("你不是房主,不能设置密码"));
                return;
            }
            if (r.getRoomState() == 1)
            {
                user.Send(ConstomMessage.getError("游戏正在进行中,不能设置房间密码"));
                return;
            }
            if (!r.Contains(user))
            {
                user.Send(ConstomMessage.getError("警告:只能设置自己所在房间的密码!"));
                return;
            }
            r.Password = pwd;
            user.Send(ConstomMessage.getError("房间密码成功设置为:[" + pwd + "]请牢记"));
        }
Beispiel #4
0
        public void addRoom(int roomId, User user, string pwd = null)
        {
            if (user.room != null)
            {
                user.Send(ConstomMessage.getError("你已经在别的房间,请先退出,再加入"));
                return;
            }
            bool f = RoomManager.shareRoomManager().addRoom(roomId, user, pwd);

            if (f)
            {
                UpdateRoomInfomation(user, 1);
            }
        }
Beispiel #5
0
        public void SiLiaoMessage(User user, ByteBuffer buf)
        {
            ByteBuffer buffer   = ByteBuffer.CreateByteBufferType(Protcol.用户私聊, 1024);
            string     userName = buf.readString(); //取出用户,s要发给谁的
            string     msg      = buf.readString(); //要说什么

            buffer.writeString(user.UserName);
            buffer.writeString(user.ChinaName);
            buffer.writeString(msg);

            User user1 = this[userName];

            if (user1 != null)
            {
                user1.Send(buffer);
            }
        }
Beispiel #6
0
        //私聊
        public void _do2002(MessageNode node)
        {
            ClientNode client = node.socket;
            ByteBuffer buff   = node.buffer;
            string     dfUser = buff.readString();
            string     wrod   = buff.readString();
            User       user   = g.getUser(dfUser);

            if (user != null)
            {
                ByteBuffer buf = new ByteBuffer(Protcol.用户私聊);
                buf.writeInt(Protcol.用户私聊);
                buf.writeString(client.user.UserName);
                buf.writeString(client.user.ChinaName);
                buf.writeString(wrod);
                user.Send(buf);
            }
        }
Beispiel #7
0
 public static void sendError(User user, string str)
 {
     user.Send(getError(str));
 }
Beispiel #8
0
 public void SendSingleUser(User user, ByteBuffer buf)
 {
     user.Send(buf);
 }
Beispiel #9
0
 public void sendSingleMessage(User user,ByteBuffer buffer)
 {
     user.Send(buffer);
 }