public override byte[] ProcessAction() { int roomId = int.Parse(Context.HttpQueryString["RoomID"]); CsMjGameRoom room = CsGameRoomManager.GetRoomById(roomId); return(null); }
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; }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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()); }
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); }
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(); }
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()); }