Exemplo n.º 1
0
    /// <summary>
    /// 服务器广播总结算信息
    /// </summary>
    /// <param name="obj"></param>
    private void OnServerResultInfo(byte[] obj)
    {
        AppDebug.Log("服务器广播总结算信息");

        PAIGOW_ROOM_TOTALSETTLE proto = PAIGOW_ROOM_TOTALSETTLE.decode(obj);

        if (proto.hasPaigowRoom())
        {
            m_Result = proto.paigow_room;
            RoomPaiJiuProxy.Instance.RoomResult(m_Result);
        }
    }
Exemplo n.º 2
0
 /// <summary>
 /// 打开结束界面(总结)
 /// </summary>
 private void OpenResultView()
 {
     if (m_UISettleView != null)
     {
         m_UISettleView.Close();
     }
     if (m_Result == null)
     {
         return;
     }
     UIViewUtil.Instance.LoadWindowAsync(UIWindowType.RankList_PaiJiu, (GameObject go) =>
     {
         m_UIResultView = go.GetComponent <UIRankerListView_PaiJiu>();
         m_UIResultView.SetUI(RoomPaiJiuProxy.Instance.CurrentRoom);
         m_Result = null;
     });
 }
Exemplo n.º 3
0
    //PAIGOW_ROOM_CHANGEBANKER



    #region OnServerGameOver 服务器广播游戏结束
    /// <summary>
    /// 服务器广播游戏结束
    /// </summary>
    /// <param name="obj"></param>
    private void OnServerGameOver(byte[] obj)
    {
        AppDebug.Log("服务器广播游戏结束");

        PAIGOW_ROOM_GAMEOVER proto = PAIGOW_ROOM_GAMEOVER.decode(obj);

        if (proto.hasPaigowRoom() && proto.paigow_room.roomId > 0)
        {
            m_Result = proto.paigow_room;
            RoomPaiJiuProxy.Instance.RoomResult(m_Result);
        }
        //else
        //{
        //  //现在根据loop加载总结算 该消息有信息时不再结算
        //  SeeResult();
        //}
        SeeResult();
    }
Exemplo n.º 4
0
    public void RoomResult(PAIGOW_ROOM room)
    {
        CurrentRoom.SetRoom(room);
        int maxScore = 0;

        for (int i = 0; i < CurrentRoom.SeatList.Count; ++i)
        {
            if (CurrentRoom.SeatList[i].PlayerId > 0 && CurrentRoom.SeatList[i].TotalEarnings > maxScore)
            {
                maxScore = CurrentRoom.SeatList[i].TotalEarnings;
            }
        }
        for (int i = 0; i < CurrentRoom.SeatList.Count; i++)
        {
            if (CurrentRoom.SeatList[i].PlayerId > 0)
            {
                CurrentRoom.SeatList[i].isBigWinner = (CurrentRoom.SeatList[i].TotalEarnings > 0 && CurrentRoom.SeatList[i].TotalEarnings >= maxScore);
            }
        }
    }
Exemplo n.º 5
0
    /// <summary>
    ///  结算
    /// </summary>
    /// <param name="proto"></param>
    public void OnServerResult(PAIGOW_ROOM_OPENPOKERRESULT proto)
    {
        PAIGOW_ROOM room = proto.paigow_room;

        CurrentRoom.isCutPan = false;
        CurrentRoom.SetRoom(room);
        CurrentRoom.roomStatus = ROOM_STATUS.SETTLE;

        for (int i = 0; i < CurrentRoom.SeatList.Count; i++)
        {
            Debug.Log(string.Format("服务器发送{0}总收益{1}", CurrentRoom.SeatList[i].Pos, CurrentRoom.SeatList[i].TotalEarnings));
        }

        //设置倒计时
        if (room.hasUnixtime())
        {
            SetCountDown(room.unixtime);
        }
        //刷新房间 座位信息
        SendRoomInfoChangeNotify();
    }
Exemplo n.º 6
0
    /// <summary>
    /// 初始化房间信息  构建房间
    /// </summary>
    /// <param name="proto"></param>
    public void InitRoom(PAIGOW_ROOM protoRoom)   //------------------------使用协议类 接收全部信息  例骰子--------------------------------------------
    {
        BankerSeat = null;

        CurrentRoom = new PaiJiu.Room()
        {
            currentLoop = protoRoom.loop,
            roomId      = protoRoom.roomId,
            //matchId = protoRoom.matchId,//比赛场
            roomStatus = protoRoom.room_status,
            maxLoop    = protoRoom.maxLoop,
            mahJongSum = protoRoom.mahJongSum,
        };


        if (protoRoom.hasLoopEnd())
        {
            CurrentRoom.loopEnd = protoRoom.loopEnd;
        }
        if (protoRoom.hasRemainMahjong())
        {
            CurrentRoom.remainMahjong = protoRoom.remainMahjong;
        }
        Debug.Log("初始化房间信息  构建房间  CurrentRoom 房间ID" + CurrentRoom.roomId + "状态:" + CurrentRoom.roomStatus);


        //收到数据存到模型基类<------------------------------<保存配置>----------------------------------------
        CurrentRoom.Config.Clear();
        for (int i = 0; i < protoRoom.getSettingIdList().Count; i++)
        {
            cfg_settingEntity settingEntity = cfg_settingDBModel.Instance.Get(protoRoom.getSettingId(i));
            if (settingEntity != null)
            {
                CurrentRoom.Config.Add(settingEntity);
            }
        }

        //NiuNiu.RoomNiuNiuProxy
        //获得当前游戏模式
        for (int i = 0; i < CurrentRoom.Config.Count; i++)
        {
            if (CurrentRoom.Config[i].tags.Equals("banker"))
            {
                CurrentRoom.roomModel = (ROOM_MODEL)(CurrentRoom.Config[i].value - 1);
                Debug.Log("服务器发送的房间 庄模式为为:" + CurrentRoom.Config[i].value);
            }
        }
        //------------------------------------------------骰子数据
        Debug.Log("-----剩余牌墙具体信息---protoRoom.hasMahjongs_remain()--------" + protoRoom.hasMahjongs_remain());
        //剩余牌墙具体信息
        if (protoRoom.hasMahjongs_remain())
        {
            Debug.Log("-----剩余牌墙具体信息-----------" + protoRoom.getMahjongs_remainList().Count);
            List <PAIGOW_MAHJONG> Mahjongs_remain = protoRoom.getMahjongs_remainList();
            CurrentRoom.pokerWall.Clear();
            for (int i = 0; i < Mahjongs_remain.Count; i++)
            {
                Poker poker = new Poker();
                poker.SetPoker(Mahjongs_remain[i]);
                CurrentRoom.pokerWall.Add(poker);
                Debug.Log("-----剩余牌墙具体信息-----------" + poker.ToChinese());
            }
        }

        //座位
        CurrentRoom.SeatList = new List <PaiJiu.Seat>();
        for (int i = 0; i < protoRoom.paigowSeatCount(); ++i)
        {
            PAIGOW_SEAT paijiu_Seat = protoRoom.getPaigowSeat(i);

            PaiJiu.Seat seat = new PaiJiu.Seat();

            AppDebug.Log(string.Format("手牌长度" + paijiu_Seat.paigowMahjongCount()));
            //创建牌 接收
            for (int j = 0; j < paijiu_Seat.paigowMahjongCount(); j++)
            {
                //添加空牌
                seat.PokerList.Add(new Poker((j + 1), 0, 0, PAIGOW_STATUS.HIDE));
            }

            for (int j = 0; j < paijiu_Seat.getPaigowMahjongList().Count; j++)
            {
                AppDebug.Log(string.Format("---------------------------手牌" + paijiu_Seat.getPaigowMahjongList()[j].type + "_" + paijiu_Seat.getPaigowMahjongList()[j].size));
            }

            seat.SetSeat(paijiu_Seat);
            CurrentRoom.SeatList.Add(seat);
            if (paijiu_Seat.isBanker)
            {
                BankerSeat = seat;                      //庄家Pos
            }
            if (paijiu_Seat.isBanker)
            {
                Debug.Log(string.Format("庄家pos:{0}  下注{1}", paijiu_Seat.pos, paijiu_Seat.pour));
            }
        }

        //已操作解散房间座位
        if (protoRoom.hasOperatePosList())
        {
            for (int i = 0; i < protoRoom.getOperatePosListList().Count; i++)
            {
                CurrentRoom.OperatePosList.Add(protoRoom.getOperatePosListList()[i]);
            }
        }
        //正在选庄座位
        if (protoRoom.hasChooseBankerPos())
        {
            CurrentRoom.ChooseBankerSeat = GetSeatBySeatId(protoRoom.chooseBankerPos);
        }

        //(时间戳)
        if (protoRoom.hasUnixtime())
        {
            CurrentRoom.Unixtime = protoRoom.unixtime;
        }

        if (protoRoom.hasDealTime())
        {
            CurrentRoom.dealTime = protoRoom.dealTime;
        }

        CalculateSeatIndex(CurrentRoom);

        PeopleCounting();

        //同意房间解散人数
        //if (CurrentRoom.roomStatus == PAIGOW_ENUM_ROOM_STATUS.DISSOLVE)
        //{
        //    //计算当前同意解散人数
        //    ADHEnterRoom(protoRoom.getPaigowSeatList());

        //}

        //座位抢庄状态
        if (BankerSeat != null && CurrentRoom.roomStatus == ROOM_STATUS.GRABBANKER)
        {
            for (int i = 0; i < CurrentRoom.SeatList.Count; i++)
            {
                CurrentRoom.SeatList[i].isGrabBanker = 0;
            }
        }


        AppDebug.Log(string.Format("第一个玩家信息 位置{0} 庄{1} 转化索引{2} 玩家ID{3}", CurrentRoom.SeatList[0].Pos, CurrentRoom.SeatList[0].IsBanker, CurrentRoom.SeatList[0].Index, CurrentRoom.SeatList[0].PlayerId));
        AppDebug.Log(string.Format("自己玩家位置{0}", PlayerSeat.Pos));
    }
Exemplo n.º 7
0
        public void SetRoom(PAIGOW_ROOM prRoom)
        {
            if (prRoom.hasRoomStatus())
            {
                roomStatus = prRoom.room_status;
            }

            if (prRoom.hasLoop())
            {
                currentLoop = prRoom.loop;
            }

            if (prRoom.hasMaxLoop())
            {
                maxLoop = prRoom.maxLoop;
            }

            if (prRoom.hasUnixtime())
            {
                Unixtime = prRoom.unixtime;
            }
            if (prRoom.hasRemainMahjong())
            {
                remainMahjong = prRoom.remainMahjong;
            }
            if (prRoom.hasLoopEnd())
            {
                loopEnd = prRoom.loopEnd;
            }

            if (prRoom.hasMahJongSum())
            {
                mahJongSum = prRoom.mahJongSum;
            }

            if (prRoom.hasDealTime())
            {
                dealTime = prRoom.dealTime;
            }

            if (prRoom.hasIsCutPan())
            {
                isCutPan = prRoom.isCutPan;
            }
            if (prRoom.hasIsBombPan())
            {
                isBombPan = prRoom.isBombPan;
            }

            List <PAIGOW_SEAT> prPokerList = prRoom.getPaigowSeatList();

            for (int i = 0; i < prPokerList.Count; i++)
            {
                if (prPokerList[i] != null && prPokerList[i].pos > 0 || prPokerList[i].playerId > 0)
                {
                    //--------------1-----------------
                    for (int j = 0; j < SeatList.Count; j++)
                    {
                        if (prPokerList[i].pos == SeatList[j].Pos)
                        {
                            SeatList[j].SetSeat(prPokerList[i]);
                            break;
                        }
                    }
                }
            }
        }