Ejemplo n.º 1
0
    public override bool FromSFSObject(Sfs2X.Entities.Data.ISFSObject data)
    {
        // We just pull the data straight out of the packet because we don't have a GetByteArray that works with encryption
        bool retVal = false;

        if (data.ContainsKey("key"))
        {
            ISFSObject publicKeyData = data.GetSFSObject("key");
            var        tempParams    = new RSAParameters();
            tempParams.Modulus  = publicKeyData.GetByteArray("mod").Bytes;
            tempParams.Exponent = publicKeyData.GetByteArray("exp").Bytes;
            parameters          = tempParams;
        }
        return(retVal);
    }
Ejemplo n.º 2
0
 public double GetDouble(ISFSObject data, string key)
 {
     if (receiveEncrypted)
     {
         return(provider.DecryptDouble(data.GetByteArray(key)));
     }
     else
     {
         return(data.GetDouble(key));
     }
 }
Ejemplo n.º 3
0
 public float GetFloat(ISFSObject data, string key)
 {
     if (receiveEncrypted)
     {
         return(provider.DecryptFloat(data.GetByteArray(key)));
     }
     else
     {
         return(data.GetFloat(key));
     }
 }
Ejemplo n.º 4
0
 public bool GetBool(ISFSObject data, string key)
 {
     if (receiveEncrypted)
     {
         return(provider.DecryptBool(data.GetByteArray(key)));
     }
     else
     {
         return(data.GetBool(key));
     }
 }
Ejemplo n.º 5
0
 public long GetLong(ISFSObject data, string key)
 {
     if (receiveEncrypted)
     {
         return(provider.DecryptLong(data.GetByteArray(key)));
     }
     else
     {
         return(data.GetLong(key));
     }
 }
Ejemplo n.º 6
0
    public static VoiceChatPacket GetVoicePacketFromMsg(ISFSObject msgObj)
    {
        VoiceChatPacket packet = new VoiceChatPacket();

        packet.Compression = (VoiceChatCompression)msgObj.GetByte("c");
        packet.Length      = msgObj.GetInt("l");
        Sfs2X.Util.ByteArray t = msgObj.GetByteArray("d");
        packet.Data      = t.Bytes;
        packet.NetworkId = msgObj.GetInt("i");
        return(packet);
    }
Ejemplo n.º 7
0
 public float GetFloat(ISFSObject data, string key)
 {
     if (receiveEncrypted)
     {
         return provider.DecryptFloat(data.GetByteArray(key));
     }
     else
     {
         return data.GetFloat(key);
     }
 }
Ejemplo n.º 8
0
 public double GetDouble(ISFSObject data, string key)
 {
     if (receiveEncrypted)
     {
         return provider.DecryptDouble(data.GetByteArray(key));
     }
     else
     {
         return data.GetDouble(key);
     }
 }
Ejemplo n.º 9
0
 public bool GetBool(ISFSObject data, string key)
 {
     if (receiveEncrypted)
     {
         return provider.DecryptBool(data.GetByteArray(key));
     }
     else
     {
         return data.GetBool(key);
     }
 }
Ejemplo n.º 10
0
    public void OnObjectMessage(int userID, ISFSObject msgObj)
    {
        //if player is stealth, don't show a mouse sphere to others
        if (GameManager.Inst.playerManager != null && GameManager.Inst.playerManager.GetPlayer(userID) != null && GameManager.Inst.playerManager.GetPlayer(userID).Type == PlayerType.STEALTH)
        {
            return;
        }
        // Light-bandwidth mouse browers index, horizontal, vertical.
        else if (msgObj.ContainsKey("mpx"))
        {
            PlayerMouseVisual visual = GetVisual(userID);
            if (visual == null)
            {
                return;
            }

            Sfs2X.Util.ByteArray mouseBytes = msgObj.GetByteArray("mpx");

            int mouseBrowserID     = mouseBytes.ReadByte();
            int mouseBrowserCoordX = mouseBytes.ReadByte();
            int mouseBrowserCoordY = mouseBytes.ReadByte();
            visual.mouseDown = mouseBytes.ReadBool();
            visual.browserId = mouseBrowserID;

            CollabBrowserTexture mouseBrowser = CollabBrowserTexture.GetAll()[mouseBrowserID];
            if (mouseBrowser)
            {
                visual.SetPosition(mouseBrowserCoordX, mouseBrowserCoordY);
                visual.textureScaleMult = Mathf.Min(mouseBrowser.transform.lossyScale.x, mouseBrowser.transform.lossyScale.y) * 0.1f;
            }
        }
        else if (msgObj.ContainsKey("mp"))
        {
            PlayerMouseVisual visual = GetVisual(userID);
            if (visual == null)
            {
                return;
            }

            Sfs2X.Util.ByteArray mouseBytes = msgObj.GetByteArray("mp");

            int   mouseBrowserID     = mouseBytes.ReadByte();
            float mouseBrowserCoordX = mouseBytes.ReadFloat();
            float mouseBrowserCoordY = mouseBytes.ReadFloat();
            visual.mouseDown = mouseBytes.ReadBool();
            visual.browserId = mouseBrowserID;

            CollabBrowserTexture mouseBrowser = CollabBrowserTexture.GetAll()[mouseBrowserID];
            if (mouseBrowser)
            {
                visual.SetPosition(mouseBrowserCoordX, mouseBrowserCoordY);
                visual.textureScaleMult = Mathf.Min(mouseBrowser.transform.lossyScale.x, mouseBrowser.transform.lossyScale.y) * 0.1f;
            }
        }
        else if (msgObj.ContainsKey("me"))
        {
            PlayerMouseVisual visual = GetVisual(userID);
            if (visual == null)
            {
                return;
            }

            visual.SetVisibility(false);
        }
    }
Ejemplo n.º 11
0
        public void OnExtensionRespones(ISFSObject sfsObj)
        {
            byte[] bytes = sfsObj.GetByteArray("data").Bytes;
            NiuNiuProtobufSerializer niuNiuProtobufSerializer = new NiuNiuProtobufSerializer();
            MemoryStream             source = new MemoryStream(bytes);
            Msg msg = niuNiuProtobufSerializer.Deserialize(source, null, typeof(Msg)) as Msg;

            switch (msg.msgType)
            {
            case Msg.MsgType.SyncInfo:
                GameMain.Instance.uiManager.pokerNum = sfsObj.GetInt("pokerNum");
                GameMain.Instance.uiManager.UpdatePokerNum();
                GameMain.Instance.uiManager.ShowRoomInfo(sfsObj.GetUtfString("site"), sfsObj.GetUtfString("roomIndex"));
                GameMain.Instance.uiManager.minDownBet = sfsObj.GetDouble("minDownBet");
                GameMain.Instance.uiManager.seatCoin   = sfsObj.GetDouble("seatCoin");
                GameMain.Instance.SyncServer(msg);
                break;

            case Msg.MsgType.GameState:
                GameMain.Instance.SetCurGameState(msg.gameState);
                break;

            case Msg.MsgType.Time:
                GameMain.Instance.uiManager.UpdateTime(msg.time);
                break;

            case Msg.MsgType.SitDownInfo:
                GameMain.Instance.uiManager.ShowSitDownPlayer(msg.allPlayer[0]);
                break;

            case Msg.MsgType.BankerInfo:
                GameMain.Instance.uiManager.ShowBankerTip(msg.bankerInfo.bankerSeat);
                GameDataManager.Instance.SetBankerData(msg.bankerInfo);
                GameMain.Instance.uiManager.UpdateBankerDownBet(msg.bankerInfo.curCoin, false);
                break;

            case Msg.MsgType.DownBetInfo:
                GameMain.Instance.uiManager.AcceptServerUpdateBetNums(msg.downBetInfo[0]);
                break;

            case Msg.MsgType.Card:
                GameDataManager.Instance.allCards = msg.allCards;
                break;

            case Msg.MsgType.UpdatePlayer:
                GameMain.Instance.uiManager.UpdatePlayerShow(msg.allPlayer[0]);
                break;

            case Msg.MsgType.BankerDownBet:
                GameMain.Instance.uiManager.UpdateBankerDownBet(msg.bankerDownBetCoin, true);
                break;

            case Msg.MsgType.PlayDice:
                GameMain.Instance.uiManager.PlayDiceAnim(msg.allDiceInfo[0], msg.allDiceInfo[1]);
                break;

            case Msg.MsgType.OpenPoker:
                for (int i = 0; i < msg.openPokerSeat.Count; i++)
                {
                    GameMain.Instance.uiManager.IsShowCowCount(true, msg.openPokerSeat[i], true);
                }
                break;

            case Msg.MsgType.ShowWin:
                for (int j = 0; j < msg.isWin.Count; j++)
                {
                    GameDataManager.Instance.IsWins[j] = msg.isWin[j];
                }
                GameMain.Instance.uiManager.IsShowCowMultiple(true);
                if (GameDataManager.Instance.isBanker)
                {
                    GameMain.Instance.uiManager.IsShowFengZhuangBtn(true);
                }
                break;

            case Msg.MsgType.RemovePlayer:
                GameMain.Instance.uiManager.RemovePlayer(msg.allPlayer[0]);
                break;

            case Msg.MsgType.JoinRoomPlayer:
                GameMain.Instance.uiManager.SetPlayerInfo(msg.allPlayer);
                break;

            case Msg.MsgType.Score:
                GameDataManager.Instance.score       = msg.allScore.selfScore;
                GameDataManager.Instance.bankerScore = msg.allScore.bankerScore;
                GameMain.Instance.uiManager.IsShowScore(true);
                break;

            case Msg.MsgType.BankerTip:
                GameMain.Instance.uiManager.IsShowBankerTip(true, msg.bankerTipNum);
                break;

            case Msg.MsgType.HideBanker:
                GameMain.Instance.uiManager.HideBankerShow();
                break;

            case Msg.MsgType.FeedbackTip:
                TipManager.Instance.ShowFeedbackTipsBar(msg.feedbackTip);
                break;

            case Msg.MsgType.GameChat:
                GameMain.Instance.uiManager.ShowGameChat(msg);
                break;
            }
        }
Ejemplo n.º 12
0
    private void OnExtensionRespones(BaseEvent evt)
    {
        string     text   = (string)evt.Params["cmd"];
        ISFSObject sfsObj = (SFSObject)evt.Params["params"];

        switch (text)
        {
        case "Msg":
            this.OnMsgMessageHandle(sfsObj.GetByteArray("data").Bytes);
            break;

        case "GetHeartbeat":
            this.heartbeat = (float)sfsObj.GetInt("data");
            break;

        case "username":
            SingletonMono <DataManager, AllScene> .Instance.username = sfsObj.GetUtfString("username");
            this.smartfox.Send(new LogoutRequest());
            PlayerPrefs.SetString("username", SingletonMono <DataManager, AllScene> .Instance.username);
            PlayerPrefs.SetString("nick", SingletonMono <DataManager, AllScene> .Instance.nick);
            PlayerPrefs.SetString("sex", SingletonMono <DataManager, AllScene> .Instance.sex);
            PlayerPrefs.SetString("headUrl", SingletonMono <DataManager, AllScene> .Instance.headUrl);
            break;

        case "LoginSuccess":
            if ((sfsObj.GetBool("isRepair") && sfsObj.GetBool("IsRepairUser")) || !sfsObj.GetBool("isRepair"))
            {
                if (sfsObj.GetUtfString("Version") == SingletonMono <Main, AllScene> .Instance.AppVer)
                {
                    SingletonMono <DataManager, AllScene> .Instance.headUrl              = sfsObj.GetUtfString("headUrl");
                    SingletonMono <DataManager, AllScene> .Instance.isPlaying            = sfsObj.GetBool("isPlaying");
                    SingletonMono <DataManager, AllScene> .Instance.coin                 = sfsObj.GetDouble("coin");
                    SingletonMono <DataManager, AllScene> .Instance.diamond              = sfsObj.GetDouble("diamond");
                    SingletonMono <DataManager, AllScene> .Instance.vip                  = sfsObj.GetUtfString("vip");
                    SingletonMono <DataManager, AllScene> .Instance.safeCoin             = sfsObj.GetDouble("safeCoin");
                    SingletonMono <DataManager, AllScene> .Instance.signCount            = sfsObj.GetInt("signCount");
                    SingletonMono <DataManager, AllScene> .Instance.isCanSign            = sfsObj.GetBool("isCanSign");
                    SingletonMono <DataManager, AllScene> .Instance.tuiGuangPeopleCount  = sfsObj.GetDouble("tuiGuangPeopleCount");
                    SingletonMono <DataManager, AllScene> .Instance.tuiGuangLeiJiCoin    = sfsObj.GetDouble("tuiGuangLeiJiCoin");
                    SingletonMono <DataManager, AllScene> .Instance.tuiGuangLeiJiDiamond = sfsObj.GetDouble("tuiGuangLeiJiDiamond");
                    SingletonMono <DataManager, AllScene> .Instance.phone                = sfsObj.GetUtfString("phone");
                    SingletonMono <DataManager, AllScene> .Instance.agentname            = sfsObj.GetUtfString("agentname");
                    SingletonMono <DataManager, AllScene> .Instance.accountstate         = sfsObj.GetUtfString("accountstate");
                    SingletonMono <DataManager, AllScene> .Instance.isCanGive            = sfsObj.GetUtfString("isCanGive");
                    SingletonMono <DataManager, AllScene> .Instance.isGlobalCanGive      = sfsObj.GetUtfString("isGlobalCanGive");
                    SingletonMono <DataManager, AllScene> .Instance.isRecordOperation    = sfsObj.GetUtfString("isRecordOperation");
                    SingletonMono <DataManager, AllScene> .Instance.serverTime           = sfsObj.GetLong("serverTime");
                    SingletonMono <DataManager, AllScene> .Instance.clientTime           = DataManager.ConvertDateTimeToInt(DateTime.Now);
                    if (SingletonMono <DataManager, AllScene> .Instance.IsRecordOperation())
                    {
                        SingletonMono <DataManager, AllScene> .Instance.curAllOperation.Add(new OperationRecord("login"));
                    }
                    if (SingletonMono <DataManager, AllScene> .Instance.accountstate.Equals("1"))
                    {
                        TipManager.Instance.ShowTipsBar("您当前登录的帐号已被管理员封停,请联系客服了解相关情况!", null);
                    }
                    else
                    {
                        byte[] bytes = sfsObj.GetByteArray("siteInfo").Bytes;
                        this.OnMsgMessageHandle(bytes);
                        byte[] bytes2 = sfsObj.GetByteArray("noticeInfo").Bytes;
                        this.OnMsgMessageHandle(bytes2);
                        byte[] bytes3 = sfsObj.GetByteArray("allFriend").Bytes;
                        this.OnMsgMessageHandle(bytes3);
                        byte[] bytes4 = sfsObj.GetByteArray("message").Bytes;
                        this.OnMsgMessageHandle(bytes4);
                        PlayerPrefs.SetString("AppVer", SingletonMono <Main, AllScene> .Instance.AppVer);
                        TipManager.Instance.HideWaitTip();
                        SingletonMono <Main, AllScene> .Instance.SetGameStates(LobbyState.GameSelect);
                    }
                }
                else
                {
                    TipManager.Instance.ShowTipsBar("请更新最新版本", delegate
                    {
                        Application.OpenURL(sfsObj.GetUtfString("AppUrl"));
                        Application.Quit();
                    });
                }
            }
            else
            {
                if (sfsObj.GetUtfString("isRepairReason") == string.Empty)
                {
                    TipManager.Instance.ShowTipsBar("系统正在维护中,请稍后...", null);
                }
                else
                {
                    TipManager.Instance.ShowTipsBar(sfsObj.GetUtfString("isRepairReason"), null);
                }
            }
            break;

        case "DaiLiFeedback":
            TipManager.Instance.ShowTips(sfsObj.GetUtfString("msg"), 2f);
            if (sfsObj.GetUtfString("state").Equals("true"))
            {
                UIManager.Instance.IsShowDaiLiBar(false);
            }
            break;

        case "OpenSafe":
            SingletonMono <DataManager, AllScene> .Instance.coin = sfsObj.GetDouble("coin");
            UIManager.Instance.UpdateUserInfoShow();
            if (sfsObj.GetBool("isSuccess"))
            {
                UIManager.Instance.ShowSafeBar();
            }
            else
            {
                TipManager.Instance.HideWaitTip();
                TipManager.Instance.ShowTips("你正在游戏中,不可操作保险箱...", 3f);
            }
            break;

        case "NoticeText":
            FloatNoticeManager.Instance.ShowNotice(sfsObj.GetUtfString("noticeText"));
            break;

        case "TaskInfo":
            TipManager.Instance.HideWaitTip();
            SingletonMono <DataManager, AllScene> .Instance.signCoin = sfsObj.GetDouble("signCoin");
            UIManager.Instance.ShowTaskBar();
            break;

        case "UpdateCoin":
            SingletonMono <DataManager, AllScene> .Instance.coin = sfsObj.GetDouble("coin");
            UIManager.Instance.UpdateUserInfoShow();
            break;

        case "IsPlaying":
            SingletonMono <DataManager, AllScene> .Instance.isPlaying = sfsObj.GetBool("isPlaying");
            break;

        case "SaveSafeFail":
            TipManager.Instance.HideWaitTip();
            TipManager.Instance.ShowTipsBar("数据异常", null);
            break;

        case "SaveSafeSuccess":
            TipManager.Instance.HideWaitTip();
            SingletonMono <DataManager, AllScene> .Instance.coin     = sfsObj.GetDouble("coin");
            SingletonMono <DataManager, AllScene> .Instance.safeCoin = sfsObj.GetDouble("safeCoin");
            if (sfsObj.GetDouble("offsetCoin") < 0.0)
            {
                TipManager.Instance.ShowTips("你存入了" + sfsObj.GetDouble("offsetSafeCoin") + "金币", 2f);
            }
            else
            {
                TipManager.Instance.ShowTips("你取出了" + sfsObj.GetDouble("offsetCoin") + "金币", 2f);
            }
            UIManager.Instance.RefreshSafeShow();
            UIManager.Instance.UpdateUserInfoShow();
            break;

        case "GiveGetUserInfoFail":
            TipManager.Instance.HideWaitTip();
            TipManager.Instance.ShowFeedbackTipsBar("请输入正确的玩家Id");
            break;

        case "GiveGetUserInfo":
        {
            TipManager.Instance.HideWaitTip();
            double giveCoin = sfsObj.GetDouble("giveCoin");
            TipManager.Instance.ShowConfirmBar("你确定要赠送" + DataManager.ChangeDanWei(giveCoin) + "金币给玩家:" + sfsObj.GetUtfString("nick"), delegate
                {
                    SingletonMono <NetManager, AllScene> .Instance.SendIdGiveInfo(sfsObj.GetUtfString("usernum"), sfsObj.GetUtfString("nick"), giveCoin);
                    TipManager.Instance.ShowWaitTip(string.Empty);
                }, delegate
                {
                    UIManager.Instance.UpdateUserInfoShow();
                });
            break;
        }

        case "GiveCoinFail":
            TipManager.Instance.HideWaitTip();
            TipManager.Instance.ShowTipsBar("数据异常", null);
            break;

        case "GiveCoinSuccess":
        {
            TipManager.Instance.HideWaitTip();
            TipManager.Instance.ShowTips("赠送成功...", 2f);
            SingletonMono <DataManager, AllScene> .Instance.coin = sfsObj.GetDouble("coin");
            UIManager.Instance.UpdateUserInfoShow();
            Record record = new Record();
            record.username = sfsObj.GetUtfString("id");
            record.nick     = sfsObj.GetUtfString("nick");
            record.coin     = sfsObj.GetDouble("giveCoin");
            record.time     = sfsObj.GetUtfString("time");
            SingletonMono <DataManager, AllScene> .Instance.allGiveRecord.Add(record);

            UIManager.Instance.AddGiveRecord(record);
            break;
        }

        case "ReceiveGift":
        {
            SingletonMono <DataManager, AllScene> .Instance.safeCoin += sfsObj.GetDouble("giveCoin");
            Record record2 = new Record();
            if (SingletonMono <DataManager, AllScene> .Instance.isGotGiveRecord)
            {
                record2.username = sfsObj.GetUtfString("giveId");
                record2.nick     = sfsObj.GetUtfString("giveNick");
                record2.coin     = sfsObj.GetDouble("giveCoin");
                record2.time     = sfsObj.GetUtfString("time");
                SingletonMono <DataManager, AllScene> .Instance.allReceiveRecord.Add(record2);
            }
            TipManager.Instance.ShowTips(string.Concat(new string[]
                {
                    "你收到",
                    sfsObj.GetUtfString("giveNick"),
                    "赠送的",
                    DataManager.ChangeDanWei(sfsObj.GetDouble("giveCoin")),
                    "金币,注意查看保险箱"
                }), 2f);
            if (SingletonMono <Main, AllScene> .Instance.cutState != LobbyState.PlayGame)
            {
                if (UIManager.Instance.RefreshSafeShow != null)
                {
                    UIManager.Instance.RefreshSafeShow();
                }
                if (SingletonMono <DataManager, AllScene> .Instance.isGotGiveRecord)
                {
                    UIManager.Instance.AddReceiveRecord(record2);
                }
            }
            break;
        }

        case "SignSuccess":
            SingletonMono <DataManager, AllScene> .Instance.coin      = sfsObj.GetDouble("coin");
            SingletonMono <DataManager, AllScene> .Instance.signCoin  = sfsObj.GetDouble("signCoin");
            SingletonMono <DataManager, AllScene> .Instance.signCount = sfsObj.GetInt("signCount");
            SingletonMono <DataManager, AllScene> .Instance.isCanSign = false;
            UIManager.Instance.UpdateSignShow();
            TipManager.Instance.HideWaitTip();
            UIManager.Instance.UpdateUserInfoShow();
            break;

        case "RechargeMessage":
        {
            double @double = sfsObj.GetDouble("rechargeCoin");
            SingletonMono <DataManager, AllScene> .Instance.safeCoin += @double;
            if (SingletonMono <Main, AllScene> .Instance.cutState != LobbyState.PlayGame && UIManager.Instance.RefreshSafeShow != null)
            {
                UIManager.Instance.RefreshSafeShow();
            }
            TipManager.Instance.ShowTips("您充值的" + @double + "金币以存入保险箱,请注意查收", 2f);
            break;
        }

        case "UserFengTing":
            SingletonMono <DataManager, AllScene> .Instance.accountstate = "1";
            this.smartfox.Disconnect();
            break;

        case "ChangeVip":
            SingletonMono <DataManager, AllScene> .Instance.vip = sfsObj.GetUtfString("vip");
            if (SingletonMono <Main, AllScene> .Instance.cutState != LobbyState.PlayGame && UIManager.Instance.UpdateUserInfoShow != null)
            {
                UIManager.Instance.UpdateUserInfoShow();
            }
            break;

        case "ChangeGlobalCanGive":
            SingletonMono <DataManager, AllScene> .Instance.isGlobalCanGive = sfsObj.GetUtfString("isGlobalCanGive");
            break;

        case "ChangeUserIsCanGive":
            SingletonMono <DataManager, AllScene> .Instance.isCanGive = sfsObj.GetUtfString("isCanGive");
            break;

        case "NiuNiuData":
            if (NiuNiuNetManager.Instance != null)
            {
                NiuNiuNetManager.Instance.OnExtensionRespones(sfsObj);
            }
            break;
        }
    }
Ejemplo n.º 13
0
 public long GetLong(ISFSObject data, string key)
 {
     if (receiveEncrypted)
     {
         return provider.DecryptLong(data.GetByteArray(key));
     }
     else
     {
         return data.GetLong(key);
     }
 }