Ejemplo n.º 1
0
        public override byte[] ProcessAction()
        {
            int          roomId = int.Parse(Context.HttpQueryString["RoomID"]);
            CsMjGameRoom room   = CsGameRoomManager.GetRoomById(roomId);

            return(null);
        }
Ejemplo n.º 2
0
 public override byte[] ProcessAction()
 {
     int card = int.Parse(Context.HttpQueryString["Card"]);
     int roomId = int.Parse(Context.HttpQueryString["RoomID"]);
     CsMjGameRoom room = CsGameRoomManager.GetRoomById(roomId);
     room.DaHaidi(Context.Session.User.Uid, card);
     return null;
 }
Ejemplo n.º 3
0
        public override byte[] ProcessAction()
        {
            string       uid    = Context.Session.User.Uid;
            int          roomId = int.Parse(Context.HttpQueryString["RoomID"]);
            int          huType = int.Parse(Context.HttpQueryString["HuType"]);
            CsMjGameRoom room   = CsGameRoomManager.GetRoomById(roomId);

            return(null);
        }
Ejemplo n.º 4
0
        public override byte[] ProcessAction()
        {
            int          card   = int.Parse(Context.HttpQueryString["Card"]);
            int          roomId = int.Parse(Context.HttpQueryString["RoomID"]);
            string       desUid = Context.HttpQueryString["DesUid"];
            CsMjGameRoom room   = CsGameRoomManager.GetRoomById(roomId);

            room.Peng(Context.Session.User.Uid, desUid, card);
            return(null);
        }
Ejemplo n.º 5
0
        public override byte[] ProcessAction()
        {
            int          roomId      = int.Parse(Context.HttpQueryString["RoomID"]);
            string       message     = Context.HttpQueryString["Message"];
            string       messageType = Context.HttpQueryString["MessageType"];
            CsMjGameRoom room        = CsGameRoomManager.GetRoomById(roomId);

            room.SendMessage(Context.HttpQueryString["Uid"], message, messageType);
            return(null);
        }
Ejemplo n.º 6
0
        public override byte[] ProcessAction()
        {
            int          roomId = int.Parse(Context.HttpQueryString["RoomID"]);
            int          card1  = int.Parse(Context.HttpQueryString["Card1"]);
            int          card2  = int.Parse(Context.HttpQueryString["Card2"]);
            CsMjGameRoom room   = CsGameRoomManager.GetRoomById(roomId);

            room.GangDaPai(this.Context.Session.User.Uid, card1, card2);
            return(null);
        }
Ejemplo n.º 7
0
        public override byte[] ProcessAction()
        {
            int          roomId = int.Parse(Context.HttpQueryString["RoomID"]);
            int          huType = int.Parse(Context.HttpQueryString["HuType"]);
            int          card   = int.Parse(Context.HttpQueryString["Card"]);
            int          card1  = Context.HttpQueryString.ContainsKey("Card1") ? int.Parse(Context.HttpQueryString["Card1"]) : -1;
            string       desUid = Context.HttpQueryString["DesUid"];
            CsMjGameRoom room   = CsGameRoomManager.GetRoomById(roomId);

            room.ZhuoPao(Context.Session.User.Uid, desUid, huType, card, card1);
            return(null);
        }
Ejemplo n.º 8
0
        public override byte[] ProcessAction()
        {
            CsMjGameRoom room = CsGameRoomManager.JoinRoom(Context.Session.User as GameUser, int.Parse(Context.HttpQueryString["RoomID"]));

            if (room == null)
            {
                A9999DataErrorResponse.Builder error = A9999DataErrorResponse.CreateBuilder();
                error.ErrorCode = 2;
                error.ErrorInfo = ErrorInfo.ErrorDic[2];
                WebSocketServerWrappe.SendPackgeWithUser(Context.Session.User.Uid, 9999, error.Build().ToByteArray());
            }
            return(null);
        }
Ejemplo n.º 9
0
        public override byte[] ProcessAction()
        {
            int          card   = int.Parse(Context.HttpQueryString["Card"]);
            int          roomId = int.Parse(Context.HttpQueryString["RoomID"]);
            string       desUid = Context.HttpQueryString.ContainsKey("DesUid") ? Context.HttpQueryString["DesUid"] : null;
            CsMjGameRoom room   = CsGameRoomManager.GetRoomById(roomId);

            if (desUid != null)
            {
                room.MingBuzhang(Context.Session.User.Uid, card, desUid);
            }
            else
            {
                room.AnBuZhang(Context.Session.User.Uid, card);
            }
            return(null);
        }
Ejemplo n.º 10
0
        public void CalculationResultXiaohuTest()
        {
            LinkedListNode <CsGamePlayer> linker = new LinkedListNode <CsGamePlayer>(new CsGamePlayer(new Entity.GameUser()
            {
                Uid = "1"
            }));

            linker.Value.HuType = 1;
            LinkedListNode <CsGamePlayer> linker1 = new LinkedListNode <CsGamePlayer>(new CsGamePlayer(new Entity.GameUser()
            {
                Uid = "2"
            }));

            linker1.Value.HuType = 1;
            LinkedListNode <CsGamePlayer> linker2 = new LinkedListNode <CsGamePlayer>(new CsGamePlayer(new Entity.GameUser()
            {
                Uid = "3"
            }));
            LinkedListNode <CsGamePlayer> linker3 = new LinkedListNode <CsGamePlayer>(new CsGamePlayer(new Entity.GameUser()
            {
                Uid = "4"
            }));

            CsMjGameRoom room = new CsMjGameRoom("1");

            room.Players = new LinkedList <CsGamePlayer>();
            room.Players.AddLast(linker);
            room.Players.AddLast(linker1);
            room.Players.AddLast(linker2);
            room.Players.AddLast(linker3);

            CalculationScore.Calculation(room.Players, "1", "1");

            Assert.AreEqual(linker.Value.AddScore, 18);
            Assert.AreEqual(linker.Value.SubScore, 6);

            Assert.AreEqual(linker1.Value.AddScore, 8);
            Assert.AreEqual(linker1.Value.SubScore, 6);

            Assert.AreEqual(linker2.Value.AddScore, 0);
            Assert.AreEqual(linker2.Value.SubScore, 7);

            Assert.AreEqual(linker3.Value.AddScore, 0);
            Assert.AreEqual(linker3.Value.SubScore, 7);
        }
Ejemplo n.º 11
0
        public override byte[] ProcessAction()
        {
            GameUser user = RedisContext.GlobalContext.FindHashEntityByKey <GameUser>(Context.HttpQueryString["Uid"]);

            if (user.RoomCard <= 0)
            {
                A9999DataErrorResponse.Builder error = A9999DataErrorResponse.CreateBuilder();
                error.ErrorCode = 4;
                error.ErrorInfo = ErrorInfo.ErrorDic[4];
                WebSocketServerWrappe.SendPackgeWithUser(Context.Session.User.Uid, 9999, error.Build().ToByteArray());
                return(null);
            }

            CsMjGameRoom room = CsGameRoomManager.CreateRoom(user, int.Parse(Context.HttpQueryString["RoomPeopleType"]));

            A1002Response.Builder response = A1002Response.CreateBuilder();
            response.RoomID   = room.RoomId;
            response.RoomType = int.Parse(Context.HttpQueryString["RoomType"]);

            return(response.Build().ToByteArray());
        }
Ejemplo n.º 12
0
        public void CalculationResultDianPaoTest()
        {
            LinkedListNode <CsGamePlayer> linker = new LinkedListNode <CsGamePlayer>(new CsGamePlayer(new Entity.GameUser()
            {
                Uid = "1"
            }));

            linker.Value.PaoHuType = 4 | 128;
            LinkedListNode <CsGamePlayer> linker1 = new LinkedListNode <CsGamePlayer>(new CsGamePlayer(new Entity.GameUser()
            {
                Uid = "2"
            }));
            LinkedListNode <CsGamePlayer> linker2 = new LinkedListNode <CsGamePlayer>(new CsGamePlayer(new Entity.GameUser()
            {
                Uid = "3"
            }));
            LinkedListNode <CsGamePlayer> linker3 = new LinkedListNode <CsGamePlayer>(new CsGamePlayer(new Entity.GameUser()
            {
                Uid = "4"
            }));

            linker.Value.DianPaoPlayer = linker2;
            CsMjGameRoom room = new CsMjGameRoom("1");

            room.Players = new LinkedList <CsGamePlayer>();
            room.Players.AddLast(linker);
            room.Players.AddLast(linker1);
            room.Players.AddLast(linker2);
            room.Players.AddLast(linker3);

            CalculationScore.Calculation(room.Players, "1", "1");

            Assert.AreEqual(linker.Value.AddScore, 27);
            Assert.AreEqual(linker.Value.SubScore, 0);

            Assert.AreEqual(linker2.Value.SubScore, 27);
        }
Ejemplo n.º 13
0
        static void Main(string[] args)
        {
            RedisContext.InitRedisContext("localhost,allowAdmin=true", Assembly.GetAssembly(typeof(Program)));
            ControllerFactory.InitController(Assembly.GetAssembly(typeof(Program)));
            ControllerBase.InitGameUserType <GameUser>();
            WebSocketServerWrappe.Init(ConfigurationManager.AppSettings["ip"], int.Parse(ConfigurationManager.AppSettings["port"]));
            WebSocketServerWrappe.OnErrorMessage = (message, exption) =>
            {
                LogManager.Log.Error(message, exption);
                A9999DataErrorResponse.Builder response = A9999DataErrorResponse.CreateBuilder();
                response.ErrorCode = 9999;
                response.ErrorInfo = "服务器繁忙!";
                return(response.Build().ToByteArray());
            };

            WebSocketServerWrappe.OnRevice = (message) =>
            {
                LogManager.Log.Debug("收到消息:" + message);
            };

            WebSocketServerWrappe.OnSend = (message) =>
            {
                LogManager.Log.Debug("发送消息:" + ByteUtil.ByteToHex(message));
            };

            WebSocketServerWrappe.OnOpen = (message) =>
            {
                LogManager.Log.Debug("收到连接:" + message);
            };

            WebSocketServerWrappe.OnClose = (message, user) =>
            {
                LogManager.Log.Debug("客户端断开:" + message);
                if (user != null)
                {
                    CsMjGameRoom room = CsGameRoomManager.GetRoomByUserId(user.Uid);

                    if (room != null)
                    {
                        A9998ClientCloseResponse.Builder response = A9998ClientCloseResponse.CreateBuilder();
                        response.Uid = user.Uid;

                        var responseArray = response.Build().ToByteArray();

                        foreach (var row in room.Players)
                        {
                            WebSocketServerWrappe.SendPackgeWithUser(row.PlayerUser.Uid, 9998, responseArray);
                        }
                    }
                }
            };

            WebSocketServerWrappe.DesKey  = "f1u2c3k4";
            WebSocketServerWrappe.DesIv   = "N1Q2J3C4";
            WebSocketServerWrappe.SignKey = "3f261d4f2f8941eafffffcf7507f021b";


            MQServer.RunMQ((object o) =>
            {
                SerializerUtil.JavaScriptJosnDeserialize <AddUserRoomCard>(o.ToString()).Process();
            });

            LogManager.Log.Info("服务器启动成功端口9001");



            Console.ReadKey();
        }
Ejemplo n.º 14
0
        public override byte[] ProcessAction()
        {
            A1001Response.Builder response = A1001Response.CreateBuilder();
            GameUserMapping       mapping  = RedisContext.GlobalContext.FindHashEntityByKey <GameUserMapping>(Context.HttpQueryString["Uid"].ToString());

            GameUser user = null;

            if (mapping == null)
            {
                user            = new GameUser();
                user.RoomCard   = 8;
                user.OnlimeDate = DateTime.Now;

                mapping = new GameUserMapping();

                mapping.Uid    = Context.HttpQueryString["Uid"].ToString();
                mapping.UserId = RedisContext.GlobalContext.HashLength(mapping);
                RedisContext.GlobalContext.AddHashEntity(mapping);
            }
            else
            {
                user = RedisContext.GlobalContext.FindHashEntityByKey <GameUser>(mapping.UserId.ToString());
                if (int.Parse(user.OnlimeDate.ToString("yyyyMMdd")) < int.Parse(DateTime.Now.ToString("yyyyMMdd")))
                {
                    user.RoomCard += 2;
                }
            }

            user.OnlimeDate = DateTime.Now;
            user.Uid        = mapping.UserId.ToString();
            user.NickName   = Context.HttpQueryString["Nickname"].ToString();
            user.Sex        = int.Parse(Context.HttpQueryString["Sex"].ToString());
            user.Province   = Context.HttpQueryString["Province"].ToString();
            user.City       = Context.HttpQueryString["City"].ToString();
            user.Country    = Context.HttpQueryString["Country"].ToString();
            user.HeadImgurl = Context.HttpQueryString["Headimgurl"].ToString();

            RedisContext.GlobalContext.AddHashEntity(user);


            CsMjGameRoom room = CsGameRoomManager.GetRoomByUserId(user.Uid);

            if (room != null)
            {
                var currentPlayer = room.FindPlayer(user.Uid);
                response.RoomId   = room.RoomId;
                response.RoomType = room.RoomType;

                if (room.Players.Count == 4)
                {
                    response.IsEnd = room.IsEnd ? 1 : 0;
                    if (!room.IsEnd)
                    {
                        response.IsFrist    = room.IsFrist ? 1 : 0;
                        response.CurrentUid = room.Player.Value.PlayerUser.Uid;
                        response.AddRangeNeedGangDaPai(currentPlayer.Value.NeedGangDaPai);
                        response.AddRangeCurrentCard(room.CurrentCard);
                        response.HaidiPai = currentPlayer.Value.HaidiPai;
                    }
                }

                A9997ClientConnectionResponse.Builder a9997Response =
                    A9997ClientConnectionResponse.CreateBuilder();

                a9997Response.Uid = user.Uid;

                byte[] a9997Array = a9997Response.Build().ToByteArray();

                foreach (var row in room.Players)
                {
                    A1001User.Builder roomUser = A1001User.CreateBuilder();
                    roomUser.Uid = row.PlayerUser.Uid;

                    if (row.ChiCards != null && row.ChiCards.Count > 0)
                    {
                        roomUser.AddRangeChiArray(row.ChiCards);
                    }

                    if (row.PengCards != null && row.PengCards.Count > 0)
                    {
                        roomUser.AddRangePengArray(row.PengCards);
                    }
                    if (row.GangCards != null && row.GangCards.Count > 0)
                    {
                        roomUser.AddRangeGangArray(row.GangCards);
                    }
                    if (row.wCards != null && row.wCards.Count > 0)
                    {
                        roomUser.AddRangeWArray(row.wCards);
                        roomUser.WNumber      = row.wNumber;
                        roomUser.WTotalNumber = row.twNumber;
                    }

                    if (row.tCards != null && row.tCards.Count > 0)
                    {
                        roomUser.AddRangeTArray(row.tCards);
                        roomUser.TNumber      = row.tNumber;
                        roomUser.TTotalNumber = row.ttNumber;
                    }


                    if (row.sCards != null && row.sCards.Count > 0)
                    {
                        roomUser.AddRangeSArray(row.sCards);
                        roomUser.SNumber      = row.sNumber;
                        roomUser.STotalNumber = row.tsNumber;
                    }

                    if (row.zhuoCards != null && row.zhuoCards.Count > 0)
                    {
                        roomUser.AddRangeOutCard(row.zhuoCards);
                    }

                    if (row.AnGangCards != null && row.AnGangCards.Count > 0)
                    {
                        roomUser.AddRangeAnGangArray(row.AnGangCards);
                    }
                    if (row.BuZhangCards != null && row.BuZhangCards.Count > 0)
                    {
                        roomUser.AddRangeBuZhangArray(row.BuZhangCards);
                    }


                    roomUser.Name     = row.PlayerUser.NickName;
                    roomUser.HatImage = row.PlayerUser.HeadImgurl;
                    roomUser.Sex      = row.PlayerUser.Sex;
                    roomUser.HuType   = row.HuType;
                    roomUser.Sore     = row.Score;


                    response.AddUsers(roomUser);

                    WebSocketServerWrappe.SendPackgeWithUser(row.PlayerUser.Uid, 9997, a9997Array);
                }

                if (room.JuShu != 0)
                {
                    response.JuShu = room.JuShu;
                }
                if (room.CardIndex != 0)
                {
                    response.ZhangShu = room.CardIndex + 1;
                }
            }


            response.Uid          = user.Uid;
            response.ImageUrl     = user.HeadImgurl;
            response.NickName     = user.NickName;
            response.RoomCard     = user.RoomCard;
            response.FriendNumber = user.FriendNumber;
            response.IsLingQu     = user.IsLingQu;

            Context.Session.User = user;
            GameUserManager.AddOrUpdateUser(user.Uid, Context.Session);
            return(response.Build().ToByteArray());
        }