Ejemplo n.º 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();
            }
        }
Ejemplo n.º 2
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);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 初始化用户信息
        /// </summary>
        /// <param name="gameInfo"></param>
        public virtual void InitUser(ISFSObject gameInfo)
        {
            var gdata    = App.GetGameData <TexasGameData>();
            var selfInfo = gameInfo.GetSFSObject(RequestKey.KeyUser);
            var selfSeat = gdata.SelfSeat;

            if (selfInfo.ContainsKey("cards"))
            {
                DealerMagr.SmallDeal(selfSeat, selfInfo.GetIntArray("cards"));
            }

            var userData = gameInfo.GetSFSObject("user");

            //如果游戏正在游戏中,初始化玩家下注信息
            if (gdata.GStatus > YxEGameStatus.Ready)
            {
                //下过的筹码 除当前轮
                int allBetV = 0;
                InitPanelBet(userData);
                allBetV += GetPlayerBet(userData);
                var selfPanel = gdata.GetPlayer <PlayerPanel>();
                if (selfPanel.ReadyState && selfPanel.CurGameType != PlayerGameType.Fold)
                {
                    gdata.GStatus = YxEGameStatus.PlayAndConfine;
                }

                foreach (ISFSObject user in gameInfo.GetSFSArray("users"))
                {
                    InitPanelBet(user);
                    allBetV += GetPlayerBet(userData);
                }

                //下过筹码才有收
                if (allBetV > 0)
                {
                    BetMagr.CollectBetValue();
                }
            }
            //打开选择携带钱界面
            else if (gdata.GStatus == YxEGameStatus.Normal)
            {
                GetGoldMagr.AutoShowPanel(gdata.GetPlayerInfo());
            }

            //有这个字段,说明游戏在继续
            if (gameInfo.ContainsKey("opData"))
            {
                var opData = gameInfo.GetSFSObject("opData");
                var type   = opData.GetInt(RequestKey.KeyType);
                GameResponseStatus(type, opData);

                //当前谁说话
                if (gameInfo.ContainsKey("current"))
                {
                    StartCoroutine(Speaker(gameInfo.GetInt("current")));
                }
            }

            ResultData.Clear();
        }
Ejemplo n.º 4
0
        private void CheckReadyBtnShow(ISFSObject data)
        {
            bool showReadyBtn = true;

            if (data.ContainsKey(NewRequestKey.KeyCargs2))
            {
                var cargsInfo = data.GetSFSObject(NewRequestKey.KeyCargs2);
                if (cargsInfo.ContainsKey(NewRequestKey.KeyReadyBtn))
                {
                    showReadyBtn = cargsInfo.GetUtfString(NewRequestKey.KeyReadyBtn) == "1";
                }
            }

            //如果不显示准备按钮,则直接自动准备
            if (!showReadyBtn)
            {
                App.GetRServer <DdzGameServer>().SendPlayerReadyServCmd();
                return;
            }

            if (!data.ContainsKey(RequestKey.KeyUser))
            {
                return;
            }
            var  userData = data.GetSFSObject(RequestKey.KeyUser);
            bool active   = !App.GetGameData <DdzGameData>().IsGameStart &&     //游戏没有开始
                            userData.ContainsKey(RequestKey.KeyState) &&
                            userData.GetBool(RequestKey.KeyState) == false;     //检测玩家状态没有准备

            SetReadyBtnActive(active);
        }
Ejemplo n.º 5
0
        // Response
        private static bool SFDispatchRequestPatch(ref ISFSObject __0)
        {
            ISFSObject raw = __0;
            bool       log = true;

            // System
            if (raw.GetByte("c") == 0)
            {
                ISFSObject p = raw.GetSFSObject("p");
                // Player movements
                int a = Convert.ToInt32(raw.GetShort("a"));
                if (a == 1000 || a == 1002 || a == 1004 || a == 11 || a == 12)
                {
                    log = false;
                }
            }
            // Game
            else if (raw.GetByte("c") == 1)
            {
                ISFSObject p = raw.GetSFSObject("p");
                if (p.GetUtfString("c") == "GameStart")
                {
                    ISFSObject p2 = p.GetSFSObject("p");
                    //NetworkMonster monster1 = p2.GetSFSArray("teamMonsters").GetClass(0) as NetworkMonster;
                    //monster1.luma = true;
                    //monster1.Nickname = "gay";
                    //p2.PutUtfString("nck", "nitro.");
                    //p2.PutInt("tid", 1337);
                }

                // Player movements
                int a = Convert.ToInt32(raw.GetShort("a"));
                //if (a == 1000 || a == 1002 || a == 1004 || a == 11) log = false;
                if (a == 13)
                {
                    string c = p.GetUtfString("c");
                    if (c == "UPP" || c.StartsWith("PA."))
                    {
                        log = false;
                    }
                }
            }
            if (log)
            {
                Logger.LogLine($"Receiving message (ID {Convert.ToInt32(raw.GetShort("a"))}):\n{raw.GetDump()}", ConsoleColor.Cyan);
            }
            return(true);
        }
Ejemplo n.º 6
0
        protected override void InitGameData(ISFSObject gameInfo)
        {
            base.InitGameData(gameInfo);
            Ante       = gameInfo.GetInt("ante");
            MaxPoolNum = gameInfo.GetInt("betLimit");
            if (gameInfo.ContainsKey("cargs2"))
            {
                ISFSObject cargs2 = gameInfo.GetSFSObject("cargs2");
                if (cargs2.ContainsKey("-maxp"))
                {
                    int maxp = int.Parse(cargs2.GetUtfString("-maxp"));
                    int len  = PlayerList.Length;
                    if (maxp < len)
                    {
                        var list = new YxFramwork.Framework.YxBaseGamePlayer[maxp];
                        for (int i = 0; i < maxp; i++)
                        {
                            list[i] = PlayerList[i];
                        }
                        PlayerList = list;
                    }
                }
            }

            if (gameInfo.ContainsKey("ownerId"))
            {
                _ownerId = gameInfo.GetInt("ownerId");
            }

            GStatus = (YxFramwork.Enums.YxEGameStatus)gameInfo.GetInt("state");
        }
Ejemplo n.º 7
0
        protected override void InitGameData(ISFSObject gameInfo)
        {
            base.InitGameData(gameInfo);
            var cargs2 = gameInfo.ContainsKey(InteractParameter.Cargs2) ? gameInfo.GetSFSObject(InteractParameter.Cargs2) : null;

            if (cargs2 != null)
            {
                var tout = cargs2.ContainsKey(InteractParameter.HupTime) ? cargs2.GetUtfString(InteractParameter.HupTime) : "300";
                HupTime = int.Parse(tout);
                var bankLimit = cargs2.ContainsKey(InteractParameter.Banklimit)
                    ? cargs2.GetUtfString(InteractParameter.Banklimit)
                    : "0";
                BankLimit = int.Parse(bankLimit) * 10000;
                var isHideRule = cargs2.ContainsKey(InteractParameter.Hrule)
                     ? cargs2.GetUtfString(InteractParameter.Hrule)
                     : "0";
                IsHideRule = int.Parse(isHideRule) != 0;
                var endCardFlop = cargs2.ContainsKey(InteractParameter.EndCardFlop)
                    ? cargs2.GetUtfString(InteractParameter.EndCardFlop)
                    : "1";
                IsEndCardFlop = int.Parse(endCardFlop) != 0;
            }
            RoomType = gameInfo.GetInt(InteractParameter.Rid);
            if (RoomType != 0)
            {
                IsKaiFang = true;
            }
            CurrentRound = gameInfo.GetInt(InteractParameter.Round);
            MaxRound     = gameInfo.GetInt(InteractParameter.MaxRound);
            OwnerId      = gameInfo.ContainsKey("ownerId") ? gameInfo.GetInt("ownerId") : 0;
        }
Ejemplo n.º 8
0
        // Request
        private static bool SFOnDataWritePatch(ref IMessage __0)
        {
            ISFSObject raw = __0.Content;
            bool       log = true;

            // System
            if (raw.GetByte("c") == 0)
            {
            }
            // Game
            else if (raw.GetByte("c") == 1)
            {
                ISFSObject p = raw.GetSFSObject("p");
                // Player movements
                string c = p.GetUtfString("c");
                if (c == "spawnMonster")
                {
                    ISFSObject p2 = p.GetSFSObject("p");
                    p2.PutBool("sp", true);
                }
                if (c == "UPP" || c == "playerAction.CM")
                {
                    log = false;
                }
            }
            if (log)
            {
                Logger.LogLine($"Sending request (ID {Convert.ToInt32(raw.GetShort("a"))}):\n{raw.GetDump()}", ConsoleColor.Green);
            }
            return(true);
        }
Ejemplo n.º 9
0
        private void UpdateUserData()
        {
            if (_isUpdataUserDateFlag < 2)
            {
                return;
            }
            _isUpdataUserDateFlag = 1;
            _win           = _userData.ContainsKey(InteractParameter.Gold) ? _userData.GetInt(InteractParameter.Gold) : 0;
            NameLabel.text = _userData.GetUtfString(InteractParameter.Nick);

            SetWinText(_win);
            var cards = _userData.GetIntArray(InteractParameter.Cards);
            var count = cards.Length < Cards.Count ? cards.Length : Cards.Count;
            var z     = _userData.GetBool(InteractParameter.IsZ);

            ZhuangObj.gameObject.SetActive(z);
            ZhuangRate.text = z ? _userData.GetUtfString(InteractParameter.ZhuangData) : "";
            for (var i = 0; i < count; i++)
            {
                Cards[i].GetComponent <UISprite>().spriteName = "0x" + cards[i].ToString("X");
            }
            var nd = _userData.GetSFSObject(InteractParameter.NiuData);

            NiuRate.text = "x" + nd.GetInt(InteractParameter.Rate);

            if (z || nd.GetBool(InteractParameter.IsWin))
            {
                NiuRate.color = new Color32(255, 255, 255, 255);
            }
            else
            {
                NiuRate.color = new Color32(0, 240, 2, 255);
            }
            NiuLabel.text = GetNiuName(nd);
        }
Ejemplo n.º 10
0
        /// <summary>
        /// 接收到新的游戏结果后的处理
        /// </summary>
        /// <param name="data"></param>
        public void InitNewResult(ISFSObject data)
        {
            System.Array.Copy(Bets, PerBets, Bets.Length);
            //最后一局结果
            var res = data.GetInt(LSConstant.KeyRes);

            AddHistory(res);
            //时间
            ShowTime = data.GetInt(LSConstant.KeyCDTime);
            //倍数
            Mulpitle = data.GetInt(LSConstant.KeyMultiple);
            var user    = data.GetSFSObject(RequestKey.KeyUser);
            var winGold = user.GetInt(RequestKey.KeyGold);

            //最后的指针位置
            LastTurnTableIndex = data.GetInt(LSConstant.KeyPointIndex);
            SetDetialResult(LastTurnTableIndex, ShowTime, Mulpitle, winGold);
            if (user.IsNull("win"))
            {
                YxDebug.Log("本局未下注,所以赢得金币为0");
            }
            else
            {
                YxDebug.Log("服务器返回下注获得金币为(不包括下注金币):" + user.GetInt("win"));
            }
        }
Ejemplo n.º 11
0
 public void SetData(ISFSObject data)
 {
     //解析cargs
     Cargs = data.GetUtfString(ProtocolKey.KeyCargs);
     string[] strkey = Cargs.Split(',');
     for (int i = 0; i < strkey.Length; i++)
     {
         string key = strkey[i];
         if (mCargs.ContainsKey(key))
         {
             mCargs[key] = int.Parse(strkey[i + 1]);
         }
     }
     //解析cargs2
     if (data.ContainsKey("cargs2"))
     {
         mCargs2 = data.GetSFSObject("cargs2");
     }
     //游戏规则
     if (data.ContainsKey(ProtocolKey.KeyRule))
     {
         LocalConfig.DefaultGameRule = data.GetUtfString(ProtocolKey.KeyRule);
     }
     //玩家总数
     MaxPlayerCount = data.TryGetInt(ProtocolKey.KeyPlayerNum);
     ParseConfig();
 }
Ejemplo n.º 12
0
        public override void OnGetGameInfo(ISFSObject gameInfo)
        {
            Data.FreshPlayers = false;
            FireInitEvent();
            switch (Data.ReqStatus)
            {
            case ServerRequest.ReqBeginBet:
                OnBeginBet(gameInfo);
                PlayersBet(Data.GameInfoBetDatas);
                break;

            case ServerRequest.ReqGiveCards:
                if (gameInfo.ContainsKey(ConstantData.KeyRollResult))
                {
                    var rollResult = gameInfo.GetSFSObject(ConstantData.KeyRollResult);
                    OnCardsResult(rollResult, ConstantData.KeyQuickModel);
                }
                PlayersBet(Data.GameInfoBetDatas);
                break;

            case ServerRequest.ChinaUnicom:
                Facade.EventCenter.DispatchEvent(LocalRequest.Init, 1);
                break;

            case ServerRequest.ChinaMobile:
                OnChinaMoble();
                break;
            }
            Data.IsInitData = false;
        }
Ejemplo n.º 13
0
        /// <summary>
        /// 初始化游戏信息
        /// </summary>
        /// <param name="gameInfo"></param>
        private void InitGame(ISFSObject gameInfo)
        {
            var gdata = App.GetGameData <FillpitGameData>();

            if (gdata.IsRoomGame)
            {
                if (gameInfo.ContainsKey("hupstart"))
                {
                    DismissRoomMgr.ShowDismissOnRejion(gameInfo);
                }
            }

            if (gameInfo.ContainsKey("ttbet"))
            {
                LaddyMgr.AllBetMoney = gameInfo.GetInt("ttbet");
            }

            if (gameInfo.ContainsKey("lastdata"))
            {
                var lastData = gameInfo.GetSFSObject("lastdata");
                if (lastData.ContainsKey("follow"))
                {
                    gdata.LastBetValue = lastData.GetInt("follow");
                }
                var type = lastData.GetInt("type");
                GameResponseStatus(type, lastData);
            }

            if (Clock)
            {
                StartCoroutine("ReduceTime");
            }
        }
Ejemplo n.º 14
0
    // Creating NetworkTransform from SFS object
    public static NetworkTransform FromSFSObject(ISFSObject data)
    {
        NetworkTransform trans         = new NetworkTransform();
        ISFSObject       transformData = data.GetSFSObject("transform");

        float x = Convert.ToSingle(transformData.GetDouble("x"));
        float y = Convert.ToSingle(transformData.GetDouble("y"));
        float z = Convert.ToSingle(transformData.GetDouble("z"));

        float rx = Convert.ToSingle(transformData.GetDouble("rx"));
        float ry = Convert.ToSingle(transformData.GetDouble("ry"));
        float rz = Convert.ToSingle(transformData.GetDouble("rz"));

        trans.position      = new Vector3(x, y, z);
        trans.angleRotation = new Vector3(rx, ry, rz);

        if (transformData.ContainsKey("t"))
        {
            trans.TimeStamp = Convert.ToDouble(transformData.GetLong("t"));
        }
        else
        {
            trans.TimeStamp = 0;
        }

        return(trans);
    }
Ejemplo n.º 15
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); //设置庄家位置
        }
Ejemplo n.º 16
0
        private void UpdateUserData()
        {
            if (_isUpdataUserDateFlag < 2)
            {
                return;
            }
            _isUpdataUserDateFlag = 1;
            _win           = _userData.ContainsKey(InteractParameter.Gold) ? _userData.GetInt(InteractParameter.Gold) : 0;
            NameLabel.text = _userData.GetUtfString(InteractParameter.Nick);

            SetWinText(_win);
            var cards = _userData.GetIntArray(InteractParameter.Cards);
            var count = cards.Length < Cards.Count ? cards.Length : Cards.Count;
            var z     = _userData.GetBool(InteractParameter.IsBanker);

            ZhuangObj.gameObject.SetActive(z);
            ZhuangRate.text = z ? _userData.GetUtfString(InteractParameter.ZhuangData) : "";
            for (var i = 0; i < count; i++)
            {
                Cards[i].GetComponent <UISprite>().spriteName = "A_" + cards[i];
            }
            var nd = _userData.GetSFSObject(InteractParameter.NiuData);

            NiuLabel.text = GetNiuName(nd);
        }
Ejemplo n.º 17
0
        public void GiveCardsOnFrist(ISFSObject gameInfo)
        {
            if (!gameInfo.ContainsKey(Parameter.RollResult))
            {
                return;
            }
            var data            = gameInfo.GetSFSObject(Parameter.RollResult);
            var cardsValueFrist = data.GetSFSArray(Parameter.Cards);
            int temp            = 0;

            for (int i = 0; i < FirstCardsNum; i++)
            {
                var go = Cards[i];
                go.transform.parent        = Target[temp].GetComponent <BrttzCardPostion>().TargetPositions[i % 2];
                go.transform.localScale    = Vector3.one;
                go.transform.localPosition = Vector3.zero;
                var mj = go.GetComponent <MjCard>();
                mj.Mahjong.spriteName = "card";
                mj.Mahjong.MakePixelPerfect();
                var values = cardsValueFrist.GetSFSObject(temp).GetIntArray(Parameter.Cards);
                mj.Target.spriteName = "A_" + values[i % 2];
                mj.Target.gameObject.SetActive(true);
                if (i % 2 != 0)
                {
                    temp++;
                }
            }
            for (int i = 0; i < 4; i++)
            {
                int type  = cardsValueFrist.GetSFSObject(i).GetInt(Parameter.Type);
                int value = cardsValueFrist.GetSFSObject(i).GetInt(Parameter.Value);
                CardPoints[i].ShowPointValue(type, value);
            }
            IsRejoin = true;
        }
Ejemplo n.º 18
0
    public static NetworkTransform FromSFSObject(ISFSObject data)
    {
        NetworkTransform trans = new NetworkTransform();
        ISFSObject transformData = data.GetSFSObject("transform");

        float x = Convert.ToSingle(transformData.GetDouble("x"));
        float y = Convert.ToSingle(transformData.GetDouble("y"));
        float z = Convert.ToSingle(transformData.GetDouble("z"));

        float rx = Convert.ToSingle(transformData.GetDouble("rx"));
        float ry = Convert.ToSingle(transformData.GetDouble("ry"));
        float rz = Convert.ToSingle(transformData.GetDouble("rz"));

        trans.position = new Vector3(x, y, z);
        trans.angleRotation = new Vector3(rx, ry, rz);

        if (transformData.ContainsKey("t")) {
            trans.TimeStamp = Convert.ToDouble(transformData.GetLong("t"));
        }
        else {
            trans.TimeStamp = 0;
        }

        return trans;
    }
Ejemplo n.º 19
0
        private void InitUserDic(ISFSObject data)
        {
            if (data.ContainsKey(RequestKey.KeyUser))
            {
                SetContryInfo(data.GetSFSObject(RequestKey.KeyUser));
            }

            if (!data.ContainsKey(RequestKey.KeyUserList))
            {
                Debug.LogError("此isfobj data  不能获得玩家其他玩家的数据集合");
                return;
            }
            //其他玩家数据集合
            var otherUsers = data.GetSFSArray(RequestKey.KeyUserList);

            foreach (ISFSObject user in otherUsers)
            {
                if (user.ContainsKey(RequestKey.KeySeat))
                {
                    _userinfoDic[user.GetInt(RequestKey.KeySeat)] = SetUserData(user);
                }
            }

            if (data.ContainsKey(NewRequestKey.KeyPlayerNum) && data.GetInt(NewRequestKey.KeyPlayerNum) < 3)
            {
                GpsBtn.SetActive(false);
            }
            else
            {
                GpsBtn.SetActive(true);
            }
        }
Ejemplo n.º 20
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);
        }
Ejemplo n.º 21
0
        /// <summary>
        /// 获得玩家列表
        /// </summary>
        /// <param name="data"></param>
        public void GetUsersList(ISFSObject data)
        {
            var users = data.GetSFSArray(ConstantData.KeyUsers);

            Players = new List <NbjlPlayerInfo>();
            var  count      = users.Count;
            bool localExist = false;

            for (int i = 0; i < count; i++)
            {
                var items = users.GetSFSObject(i);
                var info  = new NbjlPlayerInfo();
                info.Parse(items);
                Players.Add(info);
                if (info.Seat.Equals(SelfSeat))
                {
                    CurPlayerInfo = info;
                    localExist    = true;
                }
            }
            if (!localExist)
            {
                var user = data.GetSFSObject(ConstantData.KeyUser);
                if (user != null)
                {
                    var userInfo = new NbjlPlayerInfo();
                    userInfo.Parse(user);
                    CurPlayerInfo = userInfo;
                }
                Players.Add(CurPlayerInfo);
            }
            RoundPlayersFresh();
        }
Ejemplo n.º 22
0
        private void CheckModelUpdateLftCds(ISFSObject data, string key)
        {
            IdlePorkGob.SetActive(false);
            //判断玩家人数决定显示leftIdleCesListener的显示
            if (data.ContainsKey(NewRequestKey.KeyPlayerNum))
            {
                if (data.GetInt(NewRequestKey.KeyPlayerNum) != 2)
                {
                    return;
                }
            }
            else
            {
                return;
            }

            IdlePorkGob.SetActive(true);
            if (data.ContainsKey(key))
            {
                var roomData = data.GetSFSObject(key);
                if (roomData.ContainsKey(NewRequestKey.KeyModel))
                {
                    LeftCdsLabel.text = roomData.GetUtfString(NewRequestKey.KeyModel).Equals("2") ? "15张" : "16张";
                }
            }
        }
Ejemplo n.º 23
0
        public void OnGetGameInfo(ISFSObject gameInfo)
        {
            if (!App.GetGameData <TexasGameData>().IsRoomGame)
            {
                gameObject.SetActive(false);
                return;
            }
            _userInfoList.Clear();

            if (!gameInfo.ContainsKey(RequestKey.KeyCargs2))
            {
                return;
            }

            //var cargs2 = gameInfo.GetSFSObject(RequestKey.KeyCargs2);
            //gameObject.SetActive(cargs2.ContainsKey(TtScoreKey) && (int.Parse(cargs2.GetUtfString(TtScoreKey)) > 0));
            gameObject.SetActive(true);

            if (gameInfo.ContainsKey(RequestKey.KeyUser))
            {
                AddUserInfoToList(gameInfo.GetSFSObject(RequestKey.KeyUser));
            }
            if (gameInfo.ContainsKey(RequestKey.KeyUserList))
            {
                var userDataArray = gameInfo.GetSFSArray(RequestKey.KeyUserList);
                foreach (ISFSObject userData in userDataArray)
                {
                    AddUserInfoToList(userData);
                }
            }

            RefreshItems();
            SetBgSize();
        }
Ejemplo n.º 24
0
        private void DispatchRequest(ISFSObject requestObject)
        {
            IMessage message = new Message();

            if (requestObject.IsNull(CONTROLLER_ID))
            {
                throw new SFSCodecError("Request rejected: No Controller ID in request!");
            }
            if (requestObject.IsNull(ACTION_ID))
            {
                throw new SFSCodecError("Request rejected: No Action ID in request!");
            }
            message.Id      = Convert.ToInt32(requestObject.GetShort(ACTION_ID));
            message.Content = requestObject.GetSFSObject(PARAM_ID);
            message.IsUDP   = requestObject.ContainsKey(UDP_PACKET_ID);
            if (message.IsUDP)
            {
                message.PacketId = requestObject.GetLong(UDP_PACKET_ID);
            }
            int         @byte      = requestObject.GetByte(CONTROLLER_ID);
            IController controller = bitSwarm.GetController(@byte);

            if (controller == null)
            {
                throw new SFSError("Cannot handle server response. Unknown controller, id: " + @byte);
            }
            controller.HandleMessage(message);
        }
Ejemplo n.º 25
0
        protected override void OnGangGold(ISFSObject data)
        {
            //先判断是否是切猪头
            if (data.ContainsKey("qzt"))
            {
                var goldsSfsObj = data.GetSFSObject("qzt");

                var list = new List <int>();
                foreach (var key in goldsSfsObj.GetKeys())
                {
                    list.Add(goldsSfsObj.GetInt(key));
                }
                var len      = list.Count;
                var glodList = new int[len];
                for (int i = 0; i < len; i++)
                {
                    int chair = GetChairId(i);
                    glodList[chair] = list[i];
                }
                EventDispatch.Dispatch((int)UIEventId.UserGlodChange, new EventData(glodList));
            }
            else
            {
                base.OnGangGold(data);
            }
        }
Ejemplo n.º 26
0
        protected override void InitGameData(ISFSObject gameInfo)
        {
            OwnerId = gameInfo.ContainsKey("ownerId") ? gameInfo.GetInt("ownerId") : -1;

            MaxUserCnt = gameInfo.GetInt("playerNum");

            IsGameStart = gameInfo.ContainsKey(RequestKey.KeyPlaying) && gameInfo.GetBool(RequestKey.KeyPlaying);

            if (IsGameStart)
            {
                BankerSeat = gameInfo.GetInt(JhRequestConstKey.KeyBanker);
                if (gameInfo.ContainsKey("currentP"))
                {
                    gameInfo.GetSFSObject(RequestKey.KeyUser).PutInt("currentP", gameInfo.GetInt("currentP"));
                    CurrenPlayer = gameInfo.GetInt("currentP");
                }

                TotalBet = gameInfo.ContainsKey("totalBet") ? gameInfo.GetInt("totalBet") : 0;

                LastTime = gameInfo.GetLong("lasttime");

                CdTime = gameInfo.GetInt("cdTime");

                IsCanCompare = gameInfo.ContainsKey(JhRequestConstKey.KeyCompare) &&
                               gameInfo.GetBool(JhRequestConstKey.KeyCompare);

                IsCanLook = gameInfo.ContainsKey(JhRequestConstKey.KeyLook) &&
                            gameInfo.GetBool(JhRequestConstKey.KeyLook);

                IsCanGiveUp = gameInfo.ContainsKey(JhRequestConstKey.KeyGiveUp) &&
                              gameInfo.GetBool(JhRequestConstKey.KeyGiveUp);

                SingleBet = gameInfo.ContainsKey("minGold") ? gameInfo.GetInt("minGold") : AnteRate[0];

                CurRound = gameInfo.GetInt("jhround");
            }
            ReadyOutTime = gameInfo.GetInt("");
            maxRound     = gameInfo.GetInt("maxLun");

            BiPaiBeiShu = gameInfo.GetInt("bpbeishu");

            if (gameInfo.ContainsKey("status"))
            {
                RStatus = (RoomStatus)gameInfo.GetInt("status");
            }

            HupUp.FrashHupUpUser();

            IsCreatRoom = CreateRoomInfo != null;


            if (gameInfo.ContainsKey("readyCd"))
            {
                int readyCd = gameInfo.GetInt("readyCd");
                if (readyCd > 0)
                {
                    OnStartTime(readyCd);
                }
            }
        }
Ejemplo n.º 27
0
    public void createStarship(int userId, string userName, bool isMine, string type)
    {
        if (starships.ContainsKey(userId))
        {
            return;
        }
        Starship ship = null;

        switch (type)
        {
        case "Astro":
            ship = Instantiate(shipAstro) as Starship;
            break;

        case "Raptor":
            ship = Instantiate(shipRaptor) as Starship;
            break;

        case "Viking":
            ship = Instantiate(shipViking) as Starship;
            break;
        }
        ship.userId   = userId;
        ship.username = userName;
        ship.settings = starshipTypes.GetSFSObject(type);

        // Add starship to array container
        starships.Add(userId, ship);

        if (isMine)
        {
            myStarship        = ship;
            myStarship.isMine = true;
        }
    }
Ejemplo n.º 28
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> >();
        }
Ejemplo n.º 29
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);
        }
Ejemplo n.º 30
0
        private void CheckReadyBtnShow(ISFSObject data)
        {
            if (data.ContainsKey(RequestKey.KeyUser))
            {
                var userData = data.GetSFSObject(RequestKey.KeyUser);
                if (!App.GetGameData <GlobalData>().IsStartGame &&
                    userData.ContainsKey(RequestKey.KeyState) && userData.GetBool(RequestKey.KeyState) == false)
                {
                    if (data.ContainsKey(NewRequestKey.KeyCurRound) && data.GetInt(NewRequestKey.KeyCurRound) > 1)
                    {
                        OnReadyBtnClick();
                    }
                    else
                    {
                        ReadyBtnSprite.SetActive(true);
                        LeaveRoomBtn.SetActive(true);
                    }
                }

                else
                {
                    ReadyBtnSprite.SetActive(false);
                    LeaveRoomBtn.SetActive(false);
                }
            }
        }
Ejemplo n.º 31
0
 public static ISFSObject TryGetSFSObject(this ISFSObject data, string key)
 {
     if (data.ContainsKey(key))
     {
         return(data.GetSFSObject(key));
     }
     return(null);
 }
Ejemplo n.º 32
0
    public override void OnHandleMessage(ISFSObject data)
    {
        maxCharacters = data.GetInt("maxCharacters");
        ISFSObject characters = data.GetSFSObject("characters");
        Character character;
        foreach (string key in characters.GetKeys())
        {
            character = new Character();
            Debug.Log("Adding character: " + key);
            if (character.FromSFSObject(characters.GetSFSObject(key)))
            {
                characterList.Add(character);
            }
        }

        Debug.Log("Max: " + maxCharacters);
        Debug.Log("Characters: " + characterList.Count);
    }
Ejemplo n.º 33
0
    public void ReceiveStatus(ISFSObject sObj)
    {
        if(!sObj.ContainsKey(NetSyncObjCharacter.statusDS)){
            Debug.LogError("no status init");
            return;
        }

        ISFSObject statusObj = sObj.GetSFSObject(NetSyncObjCharacter.statusDS);

        if(statusObj.ContainsKey("currentHP")){
            component.HP = statusObj.GetFloat("currentHP");
            Debug.Log ("Receiving HP Change : " + component.HP);
        }

        if(statusObj.ContainsKey("team")){
            component.Team = statusObj.GetInt("team");
            Debug.Log ("Team Change: " + component.Team);
        }
    }
Ejemplo n.º 34
0
    // Instantiating player (our local FPS model, or remote 3rd person model)
    private void HandleInstantiatePlayer(ISFSObject dt)
    {
        ISFSObject playerData = dt.GetSFSObject("player");
        int userId = playerData.GetInt("id");
        int score = playerData.GetInt("score");
        NetworkTransform ntransform = NetworkTransform.FromSFSObject(playerData);

        User user = smartFox.UserManager.GetUserById(userId);
        string name = user.Name;

        if (userId == smartFox.MySelf.Id) {
            PlayerManager.Instance.SpawnPlayer(ntransform, name, score);
        }
        else {
            PlayerManager.Instance.SpawnEnemy(userId, ntransform, name, score);
        }
    }
Ejemplo n.º 35
0
    // Instantiating player (our local FPS model, or remote 3rd person model)
    private void HandleInstantiatePlayer(ISFSObject dt)
    {
        ISFSObject playerData = dt.GetSFSObject("player");

        int userId = playerData.GetInt("id");
        int score = playerData.GetInt("score");
        string avatar = playerData.GetUtfString("avatar");
        Debug.Log("DaToS: UID " + userId + "; Avatar " + avatar);
        //	string textura = playerData.GetUtfString("textura");
        //Debug.Log("avatar en handle ="+avatar);

        /* prueba*/
        if (avatar.Equals("masculino"))
                avatar = "Jane-20";

        //	Debug.Log("textura en handle ="+textura);
        NetworkTransform ntransform = NetworkTransform.FromSFSObject(playerData);

        User user = smartFox.UserManager.GetUserById(userId);
        userName = user.Name;
        Debug.Log("Nombreeeeeeeeeeeeeee:"+userName);
        if (userId == smartFox.MySelf.Id) {
        //			Debug.Log("my id = " + userId);
            PlayerManager.Instance.SpawnPlayer(ntransform, userName, score, avatar);
        }
        else {
            string animacion = dt.GetUtfString("anim");
            PlayerManager.Instance.SpawnEnemy(userId, ntransform, userName, score, avatar,animacion);
        }
    }
Ejemplo n.º 36
0
    // Instantiating player (our local FPS model, or remote 3rd person model)
    private void HandleInstantiatePlayer(ISFSObject dt)
    {
        Debug.Log ("dt : " + dt);
        ISFSObject playerData = dt.GetSFSObject("player");
        int userId = playerData.GetInt("id");
        //int score = playerData.GetInt("score");
        Debug.Log ("userID " + userId);
        //Debug.Log ("score " + score);
        NetworkTransform ntransform = NetworkTransform.FromSFSObject(playerData);

        User user = sfs.UserManager.GetUserById(userId);

        string name = user.Name;
        Debug.Log (name);

        if (userId == sfs.MySelf.Id) {
            PlayerManager.GetInstance.SpawnPlayer(ntransform, name, 0);
        }
        else {
            PlayerManager.GetInstance.SpawnRemotePlayer(userId, ntransform, name, 0);
        }
    }
Ejemplo n.º 37
0
    // Removing item (hwen it was picked up by someone)
    private void HandleRemoveItem(ISFSObject dt)
    {
        int playerId = dt.GetInt("playerId");
        ISFSObject item = dt.GetSFSObject("item");
        int id = item.GetInt("id");
        string type = item.GetUtfString("type");
        if (playerId == smartFox.MySelf.Id) {
            if (type == "HealthPack") {
                SoundManager.Instance.PlayPickupHealthPack(PlayerManager.Instance.GetPlayerObject().audio);
            }
            else if (type == "Ammo") {
                SoundManager.Instance.PlayPickupAmmo(PlayerManager.Instance.GetPlayerObject().audio);
            }
        }

        PlayerManager.Instance.RemoveItem(id);
    }
Ejemplo n.º 38
0
    // Creating NetworkTransform from SFS object
    public static LaunchPacket FromSFSObject(ISFSObject data)
    {
        LaunchPacket launchMessage = new LaunchPacket();

        ISFSObject launchData = data.GetSFSObject("launchMessage");

        launchMessage.type = launchData.GetUtfString("messageType");

        //cube hit id
        launchMessage.cubeID = launchData.GetInt("cubeID");

        //side hit id
        launchMessage.sideID = launchData.GetInt("sideID");

        //get launch pos
        float sx = launchData.GetFloat("sx");
        float sy = launchData.GetFloat("sy");
        float sz = launchData.GetFloat("sz");

        //set lauch pos in object
        launchMessage.launchPosition = new Vector3(sx, sy, sz);

        //get launch destination
        float ex = launchData.GetFloat("ex");
        float ey = launchData.GetFloat("ey");
        float ez = launchData.GetFloat("ez");

        //set lauch pos in object
        launchMessage.launchDestination = new Vector3(ex, ey, ez);

        //get & set senders local game time
        launchMessage.localGameTime = launchData.GetDouble("localGameTime");

        //get & set senders local game time
        launchMessage.gameTimeETA = launchData.GetDouble("gameTimeETA");

        return launchMessage;
    }
    private void HandleTriggerEnter(ISFSObject dt)
    {
        ISFSObject sObj = dt.GetSFSObject("collide_info");

        int colliderId = sObj.GetInt("colliderId");
        int targetId = sObj.GetInt ("targetId");

         	NetSyncObj recipient = PlayerSpawner.Instance.GetRecipient(colliderId);
        NetSyncObj obj = PlayerSpawner.Instance.GetRecipient(targetId);
        if(recipient != null && obj != null){
            recipient.HandleCollide(obj);
        }
        else{
            Debug.LogError("network trigger enter error, collider: " + recipient + ", target: " + obj);
        }
    }
Ejemplo n.º 40
0
    // New item spawned message. Instantiating the item object.
    private void HandleItem(ISFSObject dt)
    {
        ISFSObject item = dt.GetSFSObject("item");
        int id = item.GetInt("id");
        string itemType = item.GetUtfString("type");
        NetworkTransform ntransform = NetworkTransform.FromSFSObject(item);

        PlayerManager.Instance.SpawnItem(id, ntransform, itemType);
    }
Ejemplo n.º 41
0
 private void UpdateWorldSetup(ISFSObject data)
 {
     String[] keys = data.GetKeys();
     foreach(String currentKey in keys)
     {
         ISFSObject currentObject = data.GetSFSObject(currentKey);
         GameObject currentGw = GameObject.Find(currentObject.GetUtfString("STATE"));
         Gateway gw = currentGw.GetComponent<Gateway>();
         gw.Update(currentObject);
         gw.GetComponent<SpriteRenderer>().color = playerColors[gw.getOwner()];
     }
     ExtensionRequest objectiveRequest = new ExtensionRequest("getObjectives", new SFSObject(), smartFox.LastJoinedRoom);
     smartFox.Send(objectiveRequest);
 }
Ejemplo n.º 42
0
 private void UpdateObjective(ISFSObject data)
 {
     foreach(string currentKey in data.GetKeys())
     {
         ISFSObject currentObject = data.GetSFSObject(currentKey);
         GameObject currentObj = GameObject.Find(currentKey);
         currentObj.GetComponent<UILabel>().text = currentObject.GetInt("SPOTCONQUERED").ToString();
     }
     askPolicePosition();
 }
Ejemplo n.º 43
0
    private void InstantiateWorld(ISFSObject data)
    {
        String[] keys = data.GetKeys();

        foreach(String currentKey in keys)
        {
            ISFSObject currentObject = data.GetSFSObject(currentKey);
            GameObject currentGw = Instantiate(GatewayPrefab) as GameObject;
            currentGw.transform.name = currentObject.GetUtfString("STATE");
            Gateway gw = currentGw.GetComponent<Gateway>();

            gameObject.GetComponent<Manager>().stopParticle(gw);

            GameObject region=GameObject.Find(currentObject.GetUtfString("REGION"));
            gw.transform.parent=region.transform;
            gw.GetComponent<SpriteRenderer>().sprite = gameObject.GetComponent<ResourcesManager>().getGwImage(currentObject.GetUtfString("TYPE"));
            gw.Setup(currentObject);
            gw.GetComponent<SpriteRenderer>().color = playerColors[gw.getOwner()];

            if(gw.getOwner() == smartFox.MySelf.Name)
            {
                gameObject.GetComponent<Manager>().startParticle(gw);
                StartCoroutine( gameObject.GetComponent<Manager>().stopParticle(gw, 6.0f));
            }
        }
    }