/// <summary> /// 服务器广播有人请求解散房间 /// </summary> /// <param name="obj"></param> private void OnServerBroadcastApplyDisband(byte[] obj) { Debug.Log("有人发起解散房间"); NN_ROOM_ASK_DISMISS proto = NN_ROOM_ASK_DISMISS.decode(obj); if (!proto.hasPos()) { return; } //判断是否是自己发起 if (proto.pos != RoomNiuNiuProxy.Instance.PlayerSeat.Pos) { //倒计时?? UIViewManager.Instance.ShowMessage("提示", "有人发起解散房间,是否同意", MessageViewType.OkAndCancel, ClientSendAgreeDisbandRoom, ClientSendRefuseDisbandRoom, 5f); RoomNiuNiuProxy.Instance.SetApplicationDissolution(proto); } else if (proto.pos == RoomNiuNiuProxy.Instance.PlayerSeat.Pos) { Debug.Log("发起人为自己"); //说明是自己申请解散 //加载提示同意人数窗口 RoomNiuNiuProxy.Instance.SetApplicationDissolution(proto); LoadDisbandSumView(RoomNiuNiuProxy.Instance.agreeDissolveCount, RoomNiuNiuProxy.Instance.CurrentRoom.serverTime); } RoomNiuNiuProxy.Instance.CurrentRoom.roomStatus = NN_ENUM_ROOM_STATUS.DISSOLVE; //禁止点击开始按钮 开启遮罩 TransferData data = new TransferData(); data.SetValue <bool>("OnOff", true); ModelDispatcher.Instance.Dispatch(ConstDefine_NiuNiu.ObKey_EnableAllowStartBtn, data);//设置开始游戏按钮遮罩 }
//处理申请解散消息内容 public void SetApplicationDissolution(NN_ROOM_ASK_DISMISS proto) { Debug.Log("有人申请解散房间 服务器发送:是否有倒计时" + proto.hasUnixtime()); if (proto.hasUnixtime()) { CurrentRoom.serverTime = proto.unixtime; } if (agreeDissolveCount == 0) { agreeDissolveCount = 1; } CurrentRoom.roomStatus = NN_ENUM_ROOM_STATUS.DISSOLVE; }