public void ExecuteCommand(GameSession session, ProtobufRequestInfo requestInfo) { if (!Gongyong.userlist.Any(w => w.session.SessionID.Equals(session.SessionID))) { session.Logger.Debug("UserRemove : 非法连接"); session.Close(); return; } var getdata = SendRemove.ParseFrom(requestInfo.Body); mjuser usermj = Gongyong.mulist.Find(u => u.Openid == getdata.Openid); //判断是否存在该玩家 if (usermj == null) { return; } if (usermj.IsHomeowner) //如果是房主则不能是退出房间,而应该是解散牌桌 { session.Logger.Debug("房主请求退出"); return; } new UserExitLogic().UserExit(usermj, getdata.RoomID, getdata.Openid, requestInfo.MessageNum, session); }
/// <summary> ///发送请求退出房间 /// </summary> public void SendQuitMessage() { //SendRemove quitRequire = SendRemove.CreateBuilder() // .SetOpenid(GameInfo.OpenID) // .SetRoomID(GameInfo.room_id) // .SetUnionid(GameInfo.unionid) // .Build(); //byte[] body = quitRequire.ToByteArray(); SendRemove quitRequire = new SendRemove(); quitRequire.openid = GameInfo.OpenID; quitRequire.RoomID = GameInfo.room_id; quitRequire.unionid = GameInfo.unionid; byte[] body = ProtobufUtility.GetByteFromProtoBuf(quitRequire); byte[] data = CreateHead.CreateMessage(CreateHead.CSXYNUM + 5008, body.Length, 0, body); GameInfo.cs.Send(data); }
/// <summary> /// warningPanel显示以后,点击是,则发送请求开始游戏。点击否,就发送推出消息 /// </summary> void OnNoButtonClick() {///用户请求退出房间 +5008 // message SendRemove{ // required string openid = 1;//用户openid // required int32 RoomID = 2;//房间号 // } // ///服务端返回退出玩家 +5009(未接受到则为客服端判断错误) // message ReturnRemoveUser{ // required string openid = 1;//退出的用户ID // } //var mp = SendRemove.CreateBuilder().SetOpenid(GameInfo.OpenID).SetRoomID(GameInfo.room_id).Build(); //byte[] body = mp.ToByteArray(); SendRemove mp = new SendRemove(); mp.openid = GameInfo.OpenID; mp.RoomID = GameInfo.room_id; byte[] body = ProtobufUtility.GetByteFromProtoBuf(mp); byte[] data = CreateHead.CreateMessage(CreateHead.CSXYNUM + 5008, body.Length, 0, body); GameInfo.cs.Send(data); }