Example #1
1
        /// <summary>
        /// 初始化用户信息
        /// </summary>
        /// <param name="gameInfo"></param>
        public void InitUser(ISFSObject gameInfo)
        {
            if (gameInfo.ContainsKey("user"))
            {
                InitUserGameState(gameInfo.GetSFSObject("user"));
            }

            //初始化其他玩家信息
            if (gameInfo.ContainsKey("users"))
            {
                //初始化每个玩家的信息
                ISFSArray users = gameInfo.GetSFSArray(RequestKey.KeyUserList);
                foreach (ISFSObject user in users)
                {
                    InitUserGameState(user);
                }

                ResultMgr.DoResult();
            }
            var gdata = App.GetGameData <SssGameData>();

            gdata.GetPlayer <SelfPanel>().SetReadyBtnActive(!gdata.IsPlaying);

            //初始化庄家标识
            if (gameInfo.ContainsKey("banker"))
            {
                int bankerSeat = gameInfo.GetInt("banker");
                gdata.BankerSeat    = bankerSeat;
                gdata.IsBankerModel = true;
                gdata.GetPlayer <SssPlayer>(bankerSeat, true).SetBankerMarkActive();
            }
        }
Example #2
0
        /// <summary>
        /// 结算信息检测
        /// </summary>
        /// <param name="users"></param>
        /// <param name="ownerId"></param>
        private void CheckResultInfo(ISFSArray users, int ownerId)
        {
            var usersCount = Data.PlayerNum;

            playerData = new OverData[usersCount];
            int maxScore = 0, minScore = 0;
            var winList  = new List <int>();
            var loseList = new List <int>();

            for (int i = 0; i < usersCount; i++)
            {
                ISFSObject obj      = users.GetSFSObject(i);
                var        item     = playerData[i] = new OverData(obj, ownerId);
                var        itemGold = item.gold;
                CheckMaxValue(i, itemGold, ref maxScore, winList);
                CheckMinValue(i, itemGold, ref minScore, loseList);
            }
            var winCount = winList.Count;

            for (int i = 0; i < winCount; i++)
            {
                playerData[winList[i]].isYingJia = true;
            }
            var loseCount = loseList.Count;

            for (int i = 0; i < loseCount; i++)
            {
                playerData[loseList[i]].isPaoShou = true;
            }
        }
Example #3
0
        private ISFSArray UnrollArray(ArrayList arr)
        {
            ISFSArray   iSFSArray  = SFSArray.NewInstance();
            IEnumerator enumerator = arr.GetEnumerator();

            try
            {
                while (enumerator.MoveNext())
                {
                    object         current        = enumerator.Current;
                    SFSDataWrapper sFSDataWrapper = WrapField(current);
                    if (sFSDataWrapper == null)
                    {
                        throw new SFSCodecError(string.Concat("Cannot serialize field of array: ", current, " -- unsupported type!"));
                    }
                    iSFSArray.Add(sFSDataWrapper);
                }
                return(iSFSArray);
            }
            finally
            {
                IDisposable disposable;
                if ((disposable = enumerator as IDisposable) != null)
                {
                    disposable.Dispose();
                }
            }
        }
Example #4
0
        private void ConvertCsObj(object csObj, ISFSObject sfsObj)
        {
            Type   type     = csObj.GetType();
            string fullName = type.FullName;
            SerializableSFSType serializableSFSType = csObj as SerializableSFSType;

            if (serializableSFSType == null)
            {
                throw new SFSCodecError(string.Concat("Cannot serialize object: ", csObj, ", type: ", fullName, " -- It doesn't implement the SerializableSFSType interface"));
            }
            ISFSArray iSFSArray = SFSArray.NewInstance();

            sfsObj.PutUtfString(CLASS_MARKER_KEY, fullName);
            sfsObj.PutSFSArray(CLASS_FIELDS_KEY, iSFSArray);
            FieldInfo[] fields = type.GetFields(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);
            FieldInfo[] array  = fields;
            foreach (FieldInfo fieldInfo in array)
            {
                string         name           = fieldInfo.Name;
                object         value          = fieldInfo.GetValue(csObj);
                ISFSObject     iSFSObject     = SFSObject.NewInstance();
                SFSDataWrapper sFSDataWrapper = WrapField(value);
                if (sFSDataWrapper != null)
                {
                    iSFSObject.PutUtfString(FIELD_NAME_KEY, name);
                    iSFSObject.Put(FIELD_VALUE_KEY, sFSDataWrapper);
                    iSFSArray.AddSFSObject(iSFSObject);
                    continue;
                }
                throw new SFSCodecError(string.Concat("Cannot serialize field of object: ", csObj, ", field: ", name, ", type: ", fieldInfo.GetType().Name, " -- unsupported type!"));
            }
        }
Example #5
0
        private ISFSArray DecodeSFSArray(ByteArray buffer)
        {
            //Discarded unreachable code: IL_00c1
            ISFSArray   iSFSArray   = SFSArray.NewInstance();
            SFSDataType sFSDataType = (SFSDataType)Convert.ToInt32(buffer.ReadByte());

            if (sFSDataType != SFSDataType.SFS_ARRAY)
            {
                throw new SFSCodecError(string.Concat("Invalid SFSDataType. Expected: ", SFSDataType.SFS_ARRAY, ", found: ", sFSDataType));
            }
            int num = buffer.ReadShort();

            if (num < 0)
            {
                throw new SFSCodecError("Can't decode SFSArray. Size is negative: " + num);
            }
            try
            {
                for (int i = 0; i < num; i++)
                {
                    SFSDataWrapper sFSDataWrapper = DecodeObject(buffer);
                    if (sFSDataWrapper != null)
                    {
                        iSFSArray.Add(sFSDataWrapper);
                        continue;
                    }
                    throw new SFSCodecError("Could not decode SFSArray item at index: " + i);
                }
                return(iSFSArray);
            }
            catch (SFSCodecError sFSCodecError)
            {
                throw sFSCodecError;
            }
        }
Example #6
0
 public void refreshInventory(ISFSArray inv)
 {
     for(int i = 0; i<9; i++)
     {
         sw[i] = (String) inv.GetElementAt(i);
     }
 }
Example #7
0
        public void ProcessUsersInfo(ISFSArray usersInfo)
        {
            foreach (ISFSObject user in usersInfo)
            {
                if (!user.ContainsKey("betGolds"))
                {
                    return;
                }
                var selfSeat = App.GameData.SelfSeat;
                int seat     = user.GetInt("seat");


                var betArray = user.GetIntArray("betGolds");
                int len      = betArray.Length;

                for (int i = 0; i < len; i++)
                {
                    var betV = betArray[i];
                    if (betV == 0)
                    {
                        continue;
                    }
                    if (seat == selfSeat)
                    {
                        SelfBet(i, betV);
                    }
                    else
                    {
                        GameInfoBet(i, betV);
                    }
                }
            }
        }
Example #8
0
        public void BeginGiveCards(ISFSObject responseData)
        {
            var gdata = App.GetGameData <BrnnGameData>();

            Pg  = new[] { 0, 0, 0, 0 };
            Bpg = new[] { 0, 0, 0, 0 };
            if (responseData.ContainsKey("total"))
            {
                gdata.GetPlayerInfo().CoinA = responseData.GetLong("total");
            }
            if (responseData.ContainsKey("pg"))
            {
                Pg = responseData.GetIntArray("pg");
            }
            if (responseData.ContainsKey("bpg"))
            {
                Bpg = responseData.GetIntArray("bpg");
            }
            gdata.ResultUserTotal   = responseData.ContainsKey("win") ? responseData.GetInt("win") : 0;
            gdata.ResultBnakerTotal = responseData.ContainsKey("bwin") ? responseData.GetLong("bwin") : 0;
            Cards = responseData.GetSFSArray("cards");

            Nn = responseData.GetSFSArray("nn");
            BeginClone();
            InvokeRepeating("ReadyGiveCards", 0, 0.1f);
        }
Example #9
0
 protected override void InitGameData(ISFSObject gameInfo)
 {
     base.InitGameData(gameInfo);
     BankList  = gameInfo.GetSFSArray("bankers");
     B         = gameInfo.GetInt("banker");
     Bkmingold = gameInfo.GetInt("bkmingold");
 }
Example #10
0
    public void InitPlayerCards(SFSObject dataObject)
    {
        ISFSArray hand       = dataObject.GetSFSArray("hand");
        ISFSArray hideCards  = dataObject.GetSFSArray("hide");
        ISFSArray dropCards  = dataObject.GetSFSArray("drop");
        ISFSArray fieldCards = dataObject.GetSFSArray("field");

        dropNumber.text = dropCards.Size().ToString();
        deckNumber.text = hideCards.Size().ToString();

        for (int i = 0; i < tmpInst.Count; i++)
        {
            Destroy(tmpInst[i]);
        }
        tmpInst.Clear();


        for (int i = 0; i < fieldTMPInst.Count; i++)
        {
            Destroy(fieldTMPInst[i]);
        }
        fieldTMPInst.Clear();

        for (int i = 0; i < hand.Size(); i++)
        {
            GiveCardToHand(hand.GetSFSObject(i));
        }

        for (int i = 0; i < fieldCards.Size(); i++)
        {
            addCardToField(fieldCards.GetSFSObject(i));
        }
    }
Example #11
0
        private void OnResult(object data)
        {
            ISFSArray arr = (ISFSArray)data;

            for (int i = 0; i < arr.Count; i++)
            {
                ISFSObject obj    = arr.GetSFSObject(i);
                int        result = obj.GetInt("ResultType");
                int        chair  = obj.GetInt("Chair");
                if (result == 0)
                {
                    int win = obj.GetInt("WinGold");
                    BeatPool.ResultMoveChips(Players[chair].gameObject, new EventDelegate(() =>
                    {
                        Players[chair].ShowMoveGold(win);
                        Players[chair].RefreshCoin();
                        StartCoroutine(DelayReset());
                    }));
                }
                if (obj.ContainsKey("Cards"))
                {
                    int[] cards = obj.GetIntArray("Cards");
                    Players[chair].SetPlayerCards(cards);
                }
            }

            EventObj.SendEvent("TableViewEvent", "Result", null);
        }
Example #12
0
        /// <summary>
        /// 初始化4:下注中状态
        /// </summary>
        private void InitAnteing(ISFSObject requestData)
        {
            var users = requestData.GetSFSArray(RequestKey.KeyUserList);
            var me    = requestData.GetSFSObject(RequestKey.KeyUser);

            var bankerSeat = requestData.GetInt(InteractParameter.Bkp);

            _userSfsArray = users;
            _serverSearInts.Clear();
            _giveCardsTarget.Clear();

            if (App.GameKey == "nn41")
            {
                _giveCardsIndex = 0;
                SetUserCard(me);
                GiveCardsA();
            }
            var count = _userSfsArray.Count;

            for (var i = 0; i < count; i++)
            {
                var userSfsObject = _userSfsArray.GetSFSObject(i);

                if (App.GameKey == "nn41")
                {
                    SetUserCard(userSfsObject);
                    GiveCardsA();
                }
            }
            IsNeedReday(false);
            ReSetBanker(bankerSeat); //设置庄家位置
        }
Example #13
0
        public void GroupRefreshNum(ISFSObject responseData)
        {
            if (!responseData.ContainsKey("coin"))
            {
                return;
            }
            ISFSArray sfsArray = responseData.GetSFSArray("coin");
            var       gdata    = App.GetGameData <BjlGameData>();
            int       selfSeat = gdata.GetPlayerInfo().Seat;

            foreach (ISFSObject item in sfsArray)
            {
                int seat = item.GetInt("seat");
                if (seat == selfSeat)
                {
                    continue;
                }

                int gold = item.GetInt("gold");
                int p    = item.GetInt("p");
                ZBet[p] += gold;
                SetNumLabel(ZLabels[p], ZBet[p]);
                gdata.ZNumber[p] += gold;
            }
        }
Example #14
0
 private void AddHistoryResult(ISFSArray Datas)
 {
     foreach (ISFSObject data in Datas)
     {
         ResultListCtrl.AddResult(data.GetIntArray("win"));
     }
 }
Example #15
0
        public List <CpgSaveData> Read(int chair)
        {
            if (_saveList[chair].Count != 0)
            {
                return(_saveList[chair]);
            }

            string key       = SaveDataKey + chair;
            string valueJson = PlayerPrefs.GetString(key, "");

            if (valueJson == "")
            {
                YxDebug.Log("当前本地 无吃碰杠保存数据");
                return(null);
            }

            ISFSArray array = SFSArray.NewFromJsonData(valueJson);

            for (int i = 0; i < array.Size(); i++)
            {
                ISFSObject  arrayObj = array.GetSFSObject(i);
                CpgSaveData data     = new CpgSaveData();
                data.type  = (EnGroupType)arrayObj.GetInt(CpgType);
                data.value = arrayObj.GetIntArray(CpgValue);
                data.index = arrayObj.GetInt(CpgIndex);


                _saveList[chair].Add(data);
            }

            return(_saveList[chair]);
        }
Example #16
0
        public override ISFSArray ToSFSArray()
        {
            ISFSArray iSFSArray = base.ToSFSArray();

            iSFSArray.AddBool(isPrivate);
            return(iSFSArray);
        }
Example #17
0
    }                                               //end OnViewNotificationsButtonclicked

    public void ViewMyNotifications(ISFSObject objIn)
    {                                                                //this function will get notifications from server and display it to the member
        ISFSArray AuctionReq = objIn.GetSFSArray("AuctionRequests"); //get auction requests
        //get membership in auction requests
        ISFSArray MembershipReq = objIn.GetSFSArray("membershipRequests");
        ISFSArray CreditCard    = objIn.GetSFSArray("CreditCard");//get cridit cards

        Debug.Log(AuctionReq.Size());
        Debug.Log(MembershipReq.Size());
        //to store auction requests
        Transverser.AuctionReq    = AuctionReq;
        Transverser.MembershipReq = MembershipReq;        //to store membership  requests
        Transverser.CreditCard    = CreditCard;           //to store cridit cards
        Debug.Log(CreditCard.Size());
        Debug.Log("Display Notifications");
        //display form that will show the notifications
        NotificationForm.gameObject.SetActive(true);
        //class that will deal with notification form contents
        ScrollableAdminNotificationsPanel m = new ScrollableAdminNotificationsPanel();

        if (display > 0)        //to allaw request notification from server each time
        {
            m.Start();
        }
        display++;
    }    //end ViewMyNotifications
Example #18
0
        public void GroupRefreshNum(ISFSObject responseData)
        {
            if (!responseData.ContainsKey("coin"))
            {
                return;
            }

            var gdata = App.GetGameData <BrnnGameData>();

            ISFSArray sfsArray = responseData.GetSFSArray("coin");
            int       total    = 0;
            var       selfSeat = gdata.GetPlayerInfo().Seat;

            foreach (ISFSObject item in sfsArray)
            {
                if (selfSeat == item.GetInt("seat"))
                {
                    continue;
                }
                total += item.GetInt("gold");
            }
            NumVal   = NumVal - total; //(Int32.Parse(Num.text) - gold);
            Num.text = YxUtiles.ReduceNumber(NumVal);
            gdata.CurrentCanInGold = NumVal;
        }
Example #19
0
        /// <summary>
        /// 设置总结算数据
        /// </summary>
        public void SetData(ISFSObject data)
        {
            ISFSArray userArray = data.GetSFSArray("users");

            DDzUtil.ClearPlayerGrid(GridGob);
            int bigWinnerSeat = -1;
            int bigScore      = -1;

            for (int i = 0; i < userArray.Count; i++)
            {
                var gob = GridGob.AddChild(ItemsOrgGob);
                gob.SetActive(true);
                var userInfo   = userArray.GetSFSObject(i);
                var resultItem = gob.GetComponent <ResultItem>();
                resultItem.SetUserInfo(userInfo);
                int tempScore = userInfo.GetInt("gold");
                if (tempScore > bigScore)
                {
                    bigScore      = tempScore;
                    bigWinnerSeat = userInfo.GetInt("seat");
                }
            }

            GridGob.GetComponent <UIGrid>().repositionNow = true;

            if (_bigWinnerImg != null)
            {
                var gdata         = App.GetGameData <DdzGameData>();
                var bigWinnerInfo = gdata.GetOnePlayerInfo(bigWinnerSeat, true);
                YxFramwork.Common.DataBundles.PortraitDb.SetPortrait(bigWinnerInfo.AvatarX, _bigWinnerImg,
                                                                     bigWinnerInfo.SexI);
            }

            InfoAbout(data);
        }
Example #20
0
        public void GroupRefreshNum(ISFSObject responseData)
        {
            if (!responseData.ContainsKey(Parameter.Coin))
            {
                return;
            }
            ISFSArray sfsArray = responseData.GetSFSArray(Parameter.Coin);
            var       gdata    = App.GetGameData <BrttzGameData>();
            int       selfSeat = gdata.GetPlayerInfo().Seat;

            foreach (ISFSObject item in sfsArray)
            {
                int seat = item.GetInt(Parameter.Seat);
                if (seat == selfSeat)
                {
                    continue;
                }

                int    gold   = item.GetInt(Parameter.Gold);
                string p      = item.GetUtfString(Parameter.P);
                int    target = App.GetGameManager <BrttzGameManager>().BetCtrl.GetInt(p);
                ZBet[target] += gold;
                if (ZBet[target] > 0)
                {
                    ZLabels[target].text = YxUtiles.ReduceNumber(ZBet[target]);
                    ZLabels[target].transform.parent.gameObject.SetActive(true);
                }
                gdata.ZNumber[target] += gold;
            }
        }
Example #21
0
        public void UpOrDown(ISFSArray data)
        {
            bool haveSelf = false;

            for (int i = 0; i < data.Count; i++)
            {
                if (data.GetSFSObject(i).GetInt("seat") == App.GameData.SelfSeat)
                {
                    haveSelf = true;
                }
            }
            if (haveSelf)
            {
                DownBankerBtn.SetActive(true);
                UpBankerBtn.SetActive(false);
            }
            else
            {
                //DownBankerBtn.GetComponent<UIButton>().isEnabled = true;
                DownBankerBtn.SetActive(false);
                UpBankerBtn.SetActive(true);
                App.GetGameData <GlobalData>().BankerApplying = false;
                ChangeTheBt();
            }
        }
Example #22
0
        /// <summary>
        /// 处理和显示总结算信息
        /// </summary>
        /// <param name="dataArray"></param>
        public void InitAccount(ISFSArray dataArray)
        {
            //用于记录有多少个玩家,同时作为数组索引使用
            int count    = 0;
            int maxPoint = 0;           //本局最高分点数

            //对小结窗口玩家信息进行初始化
            foreach (ISFSObject data in dataArray)
            {
                if (data.ContainsKey("seat"))
                {
                    AccItem acc = _accItems[count++].GetComponent <AccItem>();
                    acc.InitAccItem(data);
                    int point = data.GetInt("gold");        //当前玩家的得分数
                    if (point > maxPoint)
                    {
                        maxPoint = point;
                    }
                }
            }

            //显示大赢家标记
            for (int i = 0; i < _accItems.Length; i++)
            {
                _accItems[i].SetBigWinnerMark(_accItems[i].PlayerScore >= maxPoint);
                _accItems[i].gameObject.SetActive(i < count);       //有数据的显示,没有数据的隐藏
            }
            _accountGrid.Reposition();
        }
Example #23
0
        /// <summary>
        /// 初始化用户信息
        /// </summary>
        /// <param name="gameInfo"></param>
        public void InitUser(ISFSObject gameInfo)
        {
            var gdata = App.GameData;
            //初始化自己的信息
            ISFSObject selfIsfs  = gameInfo.GetSFSObject(RequestKey.KeyUser);
            var        selfPanel = gdata.GetPlayer <DuifenPlayerPanel>();

            RefreshSomeone(selfPanel, selfIsfs);

            SpeakMgr.RejionRefreshBtns(selfIsfs.GetInt("btnstatus"),
                                       gameInfo.ContainsKey("current") && gameInfo.GetInt("current") == gdata.SelfSeat);


            //初始化每个玩家的信息
            ISFSArray users = gameInfo.GetSFSArray(RequestKey.KeyUserList);

            foreach (ISFSObject user in users)
            {
                int seat  = user.GetInt(RequestKey.KeySeat);
                var panel = gdata.GetPlayer <DuifenPlayerPanel>(seat, true);
                RefreshSomeone(panel, user);
            }

            ResultData = new Dictionary <int, List <ISFSObject> >();
        }
Example #24
0
        /// <summary>
        /// 初始化2:发牌中状态
        /// </summary>
        private void InitDealing(ISFSObject requestData)
        {
            var users = requestData.GetSFSArray(RequestKey.KeyUserList);
            var me    = requestData.GetSFSObject(RequestKey.KeyUser);

            _userSfsArray = users;

            _serverSearInts.Clear();
            _giveCardsTarget.Clear();

            _giveCardsIndex = 0;

            SetUserCard(me);

            GiveCardsA();
            var count = _userSfsArray.Count;

            for (var i = 0; i < count; i++)
            {
                var userSfsObject = _userSfsArray.GetSFSObject(i);

                SetUserCard(userSfsObject);

                GiveCardsA();
            }

            IsNeedReday(false);
        }
Example #25
0
    public void OnDeleteButtonClicked()
    {     //on delete a friend button clicked,
        //send the request to server
        //to get clicked button name (delete)
        string name = EventSystem.current.currentSelectedGameObject.name;

        Friends = Transverser.Friends;                            //get friends
        Room_ID = Transverser.RoomID;                             //get requested room id
        int    SpaceIndex       = name.IndexOf(" ");              //get space index
        string DeleteButtonName = name.Substring(0, SpaceIndex);  //get the decision
        string DBIndex          = name.Substring(SpaceIndex + 1); //get the request index in DB
        int    index            = int.Parse(DBIndex);             //parse it to integer

        decision = DeleteButtonName;
        //get username of the requster
        username = Friends.GetSFSObject(index).GetUtfString("username");
        Debug.Log("username: "******" decision: " + decision + " room " + Room_ID);
        ISFSObject objOut = new SFSObject();

        objOut.PutUtfString("Room_ID", Room_ID);
        objOut.PutUtfString("username", username);
        objOut.PutUtfString("decision", decision);
        Debug.Log("username: "******" decision: " + decision + " room " + Room_ID);
        //send the delete friend decision to server
        NetworkManager.Instance.Decision(objOut, "DeleteFriend");
    }
Example #26
0
        /// <summary>
        /// 初始化玩家的手牌信息
        /// </summary>
        /// <param name="info"></param>
        /// <returns></returns>
        UserMatchInfo GetMatchInfo(ISFSObject info)
        {
            UserMatchInfo userMatchInfo = ParseMatchInfo(info);

            ISFSArray cardInfos = info.GetSFSArray("duninfo") ?? info.GetSFSObject("duns").GetSFSArray("duninfo");

            AddDunInfo(ref userMatchInfo, cardInfos);

            //检测
            YxDebug.LogArray(userMatchInfo.Cards);
            if (userMatchInfo.Cards.Count != 13)
            {
                Debug.LogError("手牌不是十三张!!");
                string errorMsg = string.Empty;
                foreach (var card in userMatchInfo.Cards)
                {
                    errorMsg += card + " , ";
                }
                Debug.LogError(errorMsg);
            }

            ISFSObject userScore = info.GetSFSObject("userscore");

            AddScoreInfo(ref userMatchInfo, userScore);

            if (info.ContainsKey("daqiang"))
            {
                userMatchInfo.Shoot = GetShootInfo(info);
            }

            return(userMatchInfo);
        }
Example #27
0
        /// <summary>
        /// 显示游戏动画
        /// </summary>
        public void ShowWinAnim(ISFSArray userinfoArray)
        {
            var gdata = App.GetGameData <FillpitGameData>();

            if (gdata.IsLanDi)
            {
                return;                //烂底没赢家
            }
            foreach (ISFSObject userInfo in userinfoArray)
            {
                if (userInfo.GetInt("win") > 0)
                {
                    int seat     = userInfo.GetInt("seat");
                    var winPanel = GetPlayerPanel(seat, true);
                    winPanel.PlayerWin();
                    //飞筹码
                    BetMgr.MoveAllChipToSomewhere(winPanel.HeadPortrait.transform);
                    //双王通杀和四通通杀只能选择一个
                    if (gdata.Sfak && userInfo.ContainsKey("sameFour") && userInfo.GetBool("sameFour"))
                    {
                        AnimationMgr.ShowSfak();
                    }
                    else if (gdata.Dkak && userInfo.ContainsKey("doubleKing") && userInfo.GetBool("doubleKing"))
                    {
                        AnimationMgr.ShowDkak();
                    }
                }
            }
        }
Example #28
0
        /// <summary>
        /// 将数据加入到战绩中
        /// </summary>
        /// <param name="data">传入的数据</param>
        public void GetHistoryInfo(ISFSObject data)
        {
            if (_curHistoryItemInfo.RoundVal <= 0)
            {
                return;
            }

            ISFSArray dataArray = data.GetSFSArray("players");

            foreach (ISFSObject item in dataArray)
            {
                //没有参与的玩家不用处理
                if (!item.GetBool("isPlayed"))
                {
                    continue;
                }

                int seat = item.GetInt("seat");
                List <HistoryUserInfo> hisUsers = _curHistoryItemInfo.Users;

                for (int i = 0; i < hisUsers.Count; i++)
                {
                    HistoryUserInfo tempUser = hisUsers[i];
                    if (tempUser.Seat != seat)
                    {
                        continue;
                    }

                    tempUser.IsFold = item.GetBool("isGiveUp");

                    tempUser.Score  = item.GetInt("gold");
                    tempUser.Pokers = ToList(item.GetIntArray("cardArr"));

                    if (item.ContainsKey("teax"))
                    {
                        tempUser.PokerType = item.GetSFSObject("teax").GetInt("type");
                    }
                    else
                    {
                        tempUser.PokerType = 0;
                    }

                    hisUsers[i] = tempUser;
                }

                _curHistoryItemInfo.PublicPokers = GetPublicPokerVal();
            }

            HistoryList.Add(_curHistoryItemInfo);

            //调整存储的个数
            if (MaxCount == 0)   //如果是0,则不限制个数
            {
                return;
            }
            while (HistoryList.Count > MaxCount)
            {
                HistoryList.Remove(HistoryList[0]);
            }
        }
Example #29
0
        public override void SendMingCardFirst(ISFSObject gameInfo)
        {
            if (!gameInfo.ContainsKey(Parameter.RollResult))
            {
                return;
            }
            var data = gameInfo.GetSFSObject(Parameter.RollResult);

            MingCardsValue = data.GetSFSArray(Parameter.Cards);
            int temp      = 0;
            int cardIndex = 2;

            for (int i = 0; i < FirstCardsNum; i++)
            {
                cardIndex = cardIndex >= 8 ? cardIndex % 8 : cardIndex;
                var go = Cards[cardIndex];
                go.transform.parent        = Target[temp].GetComponent <BrttzCardPostion>().TargetPositions[i % 2];
                go.transform.localScale    = Vector3.one * CardsBgScaleNums[1];
                go.transform.localPosition = Vector3.zero;
                if (i % 2 != 0)
                {
                    temp++;
                }
                cardIndex++;
            }
            CardsArrindex = 2;
            ShowMingCards(true);
        }
Example #30
0
        public void BeginGiveCards(ISFSObject responseData)
        {
            Init();

            ISFSArray cards     = responseData.GetSFSArray("cards");
            var       longArray = cards.GetIntArray(0);
            var       huArray   = cards.GetIntArray(1);

            LongGroup.SetSideGroup(longArray);
            HuGroup.SetSideGroup(huArray);

            var pointArray = responseData.GetIntArray("cardsV");    //获得龙虎结果的数组,0号位是龙数据,1号位是虎数据
            //获取比牌的结果
            int longPoint = pointArray[0];
            int huPoint   = pointArray[1];

            _point = longPoint - huPoint;
            AddResult(_point);

            SetCardCtrlActive(true);

            if (MatchEffect != null)
            {
                MatchEffect.SetActive(true);
            }

            BeginMatch();
        }
Example #31
0
        public void GroupRefreshNum(ISFSObject responseData)
        {
            if (!responseData.ContainsKey("coin"))
            {
                return;
            }
            ISFSArray sfsArray = responseData.GetSFSArray("coin");
            var       gdata    = App.GetGameData <BrnnGameData>();
            int       selfSeat = gdata.GetPlayerInfo().Seat;

            foreach (ISFSObject item in sfsArray)
            {
                int seat = item.GetInt("seat");
                if (seat == selfSeat)
                {
                    continue;
                }

                int gold = item.GetInt("gold");
                int p    = item.GetInt("p");
                ZBet[p]        += gold;
                ZLabels[p].text = YxUtiles.ReduceNumber(ZBet[p]);
                ZLabels[p].gameObject.SetActive(true);
                gdata.ZNumber[p] += gold;
            }
        }
Example #32
0
    public void UpdatePlayerInventory(ISFSArray data)
    {
        foreach(GameObject g in GameObject.FindGameObjectsWithTag("invItem"))
            Destroy(g);

        int i = 0;
        refreshInventory(data);
        while (i < sw.Length)
        {
            GameObject currentSW = Instantiate(ItemPrefab) as GameObject;
            currentSW.transform.name = sw[i];
            switch(i)
            {
                case 0:
                    currentSW.transform.parent = GameObject.Find("Inv1").transform;
                    break;
                case 1:
                    currentSW.transform.parent = GameObject.Find("Inv2").transform;
                    break;
                case 2:
                    currentSW.transform.parent = GameObject.Find("Inv3").transform;
                    break;
                case 3:
                    currentSW.transform.parent = GameObject.Find("Inv4").transform;
                    break;
                case 4:
                    currentSW.transform.parent = GameObject.Find("Inv5").transform;
                    break;
                case 5:
                    currentSW.transform.parent = GameObject.Find("Inv6").transform;
                    break;
                case 6:
                    currentSW.transform.parent = GameObject.Find("Inv7").transform;
                    break;
                case 7:
                    currentSW.transform.parent = GameObject.Find("Inv8").transform;
                    break;
                case 8:
                    currentSW.transform.parent = GameObject.Find("Inv9").transform;
                    break;
            }

            currentSW.transform.localPosition = new Vector3 (0,0,0);
            currentSW.transform.localScale = new Vector3 (0.6F, 0.6F, 1F);
            currentSW.GetComponent<SpriteRenderer>().sprite = gameObject.GetComponent<ResourcesManager>().getSlotImage(sw[i]);
            i++;
        }
    }
Example #33
0
 /// <summary>
 /// Установим информацию о кружочках
 /// </summary>
 /// <param name="circlesArr"></param>
 void SetupCircles(ISFSArray circlesArr)
 {
     for (int i = 0; i < circlesArr.Size(); i++)
     {
         ISFSObject circleObj = circlesArr.GetSFSObject(i);
         PlayerTeam circleTeam = (PlayerTeam)System.Enum.Parse(typeof(PlayerTeam), circleObj.GetUtfString("team"));
         if (circleTeam != this.team)
             continue;
         int id = circleObj.GetInt("id");
         Circle circle = Circles.Instance.GetCircle(id);
         if (circleObj.GetBool("selected"))
             circle.Select();
         else
             circle.UnSelect();
         circle.team = circleTeam;
         circle.SetPlayer(ServerPlayers.GetPlayer(circleObj.GetUtfString("lastPressedUserName")));
         circle.lastPressTime = circleObj.GetInt("lastPressTime");
         circle.pressDelay = circleObj.GetInt("pressDelay");
         circle.score = circleObj.GetInt("score");
     }
 }
Example #34
0
 /// <summary>
 /// Send local transform to the server
 /// </summary>
 /// <param name="ntransform">
 /// A <see cref="NetworkTransform"/>
 /// </param>
 public void SendTransform(ISFSArray buffer)
 {
     if(send){
         Room room = smartFox.LastJoinedRoom;
         ISFSObject data = new SFSObject();
         data.PutSFSArray("transformBuffer",buffer);
         ExtensionRequest request = new ExtensionRequest("sendTransform", data, room, true); // True flag = UDP
         smartFox.Send(request);
     }
 }
 private void sendBuffer()
 {
     NetworkManager.Instance.SendTransform(buffer);
     buffer = new SFSArray();
 }
Example #36
0
    /// <summary>
    /// Установим массив серверных игроков на клиенте
    /// </summary>
    /// <param name="playersArr"></param>
    void SetupServerPlayers(ISFSArray playersArr)
    {
        List<ServerPlayer> playersList = new List<ServerPlayer>();
        for (int i = 0; i < playersArr.Size(); i++)
        {
            ISFSObject playerObj = playersArr.GetSFSObject(i);
            ServerPlayer serverPlayer = new ServerPlayer();
            serverPlayer.userName = playerObj.GetUtfString("userName");
            serverPlayer.userNick = playerObj.GetUtfString("userNick");
            serverPlayer.score = playerObj.GetInt("score");
            serverPlayer.team = (PlayerTeam)System.Enum.Parse(typeof(PlayerTeam), playerObj.GetUtfString("team"));

            playersList.Add(serverPlayer);

            if (serverPlayer.userName.Equals(IOL.Instance.Connection.Server.MySelf.Name))
                team = serverPlayer.team;
        }

        serverPlayers.data = playersList;
    }
 void Start()
 {
     instance=this;
     buffer = new SFSArray();
     thisTransform = this.transform;
     lastState = NetworkTransform.FromTransform(thisTransform);
 }