Esempio n. 1
0
 private void Parse(ISFSObject data)
 {
     GameTools.TryGetValueWitheKey(data, out Type, RequestKey.KeyType);
     GameTools.TryGetValueWitheKey(data, out Cards, RequestKey.KeyCards);
     GameTools.TryGetValueWitheKey(data, out Sit, RequestKey.KeySeat);
     GameTools.TryGetValueWitheKey(data, out OpCard, RequestKey.KeyOpCard);
     GameTools.TryGetValueWitheKey(data, out Card, RequestKey.KeyCard);
     GameTools.TryGetValueWitheKey(data, out Op, RequestKey.KeyMenuOperation);
     GameTools.TryGetValueWitheKey(data, out Seq, RequestKey.KeySeq);
     if (Cards.Length > 0)
     {
         if (Card == 0)
         {
             Card = Cards[0];
         }
     }
     if (Op > 0)
     {
         GameTools.TryGetValueWitheKey(data, out TingOutCards, RequestKey.KeyTingOutCards);
     }
 }
Esempio n. 2
0
        /// <summary>
        ///     将GameInfo放到本地
        /// </summary>
        /// <param name="data"></param>
        public void InitData(ISFSObject data)
        {
            #region 解析数据

            string     pCards;
            int        pNum;
            int        round;
            int        state;
            ISFSArray  otherUsers;
            int        bank0;
            ISFSObject currentUser;
            int        rate;
            int        gtype;
            int        ante;
            string     roomName;
            int        quan;
            int        cardLenth;
            int        id;
            string     cargs;
            bool       rejoin;
            int        showRoomID;
            int        totalRound;
            GameTools.TryGetValueWitheKey(data, out pCards, RequestKey.KeyPCards);
            GameTools.TryGetValueWitheKey(data, out pNum, RequestKey.KeyPlayerNum);
            GameTools.TryGetValueWitheKey(data, out round, RequestKey.KeyNowRound);
            GameTools.TryGetValueWitheKey(data, out state, RequestKey.KeyState);
            GameTools.TryGetValueWitheKey(data, out otherUsers, RequestKey.KeyUsers);
            GameTools.TryGetValueWitheKey(data, out bank0, RequestKey.KeyBanker0);
            GameTools.TryGetValueWitheKey(data, out currentUser, RequestKey.KeyUser);
            GameTools.TryGetValueWitheKey(data, out rate, RequestKey.KeyRate);
            GameTools.TryGetValueWitheKey(data, out gtype, RequestKey.KeyGameType);
            GameTools.TryGetValueWitheKey(data, out roomName, RequestKey.KeyRoomName);
            GameTools.TryGetValueWitheKey(data, out cardLenth, RequestKey.KeyCardLenth);
            GameTools.TryGetValueWitheKey(data, out id, RequestKey.KeyId);
            GameTools.TryGetValueWitheKey(data, out cargs, RequestKey.KeyCargs);
            GameTools.TryGetValueWitheKey(data, out rejoin, RequestKey.KeyRejoin);
            GameTools.TryGetValueWitheKey(data, out showRoomID, RequestKey.KeyShowRoomID);
            GameTools.TryGetValueWitheKey(data, out totalRound, RequestKey.KeyTotalRound);
            GameTools.TryGetValueWitheKey(data, out CurrentGame.RuleInfo, RequestKey.KeyRule);
            GameTools.TryGetValueWitheKey(data, out CurrentGame.OwnerId, RequestKey.KeyOwnerId);
            YxDebug.LogError("当前局的起始庄座位号是:" + bank0);

            #endregion

            #region 处理数据

            var index = 0;
            _typeList.Clear();
            //检查牌型
            while (index < pCards.Length)
            {
                _typeList.Add(Convert.ToInt32(pCards.Substring(index, 2), 16));
                index += 2;
            }
            YxDebug.LogError(string.Format("当前游戏中的牌型有{0}种", _typeList.Count));
            if (!(PlayerNum * _typeList.Count).Equals(cardLenth))
            {
                YxDebug.LogError(string.Format("所有玩家总牌数为{0},玩家的牌数是{1}", _typeList.Count, cardLenth));
            }
            SetGameEnv(cargs);
            if (data.ContainsKey(RequestKey.KeyQuan))
            {
                IsQuanExist = true;
                GameTools.TryGetValueWitheKey(data, out quan, RequestKey.KeyQuan);
                CurrentGame.Quan = quan;
            }
            Bank0 = bank0;
            CurrentGame.RealRoomId   = id;
            CurrentGame.GameRoomType = gtype;
            CurrentGame.ShowRoomId   = showRoomID;
            CurrentGame.NowRound     = round;
            CurrentGame.IsQuanExist  = IsQuanExist;
            CurrentGame.Ante         = 0;
            CurrentGame.Rate         = rate;
            CurrentGame.TotalRound   = totalRound;
            TotalNum        = cardLenth;
            GameTotalStatus = (TotalState)state;
            LeftNum         = TotalNum;
            UserDatas       = new List <ISFSObject>();
            UserDatas.Add(currentUser);
            foreach (ISFSObject user in otherUsers)
            {
                UserDatas.Add(user);
            }

            #endregion
        }