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); }
public double GetDouble(ISFSObject data, string key) { if (receiveEncrypted) { return(provider.DecryptDouble(data.GetByteArray(key))); } else { return(data.GetDouble(key)); } }
public float GetFloat(ISFSObject data, string key) { if (receiveEncrypted) { return(provider.DecryptFloat(data.GetByteArray(key))); } else { return(data.GetFloat(key)); } }
public bool GetBool(ISFSObject data, string key) { if (receiveEncrypted) { return(provider.DecryptBool(data.GetByteArray(key))); } else { return(data.GetBool(key)); } }
public long GetLong(ISFSObject data, string key) { if (receiveEncrypted) { return(provider.DecryptLong(data.GetByteArray(key))); } else { return(data.GetLong(key)); } }
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); }
public float GetFloat(ISFSObject data, string key) { if (receiveEncrypted) { return provider.DecryptFloat(data.GetByteArray(key)); } else { return data.GetFloat(key); } }
public double GetDouble(ISFSObject data, string key) { if (receiveEncrypted) { return provider.DecryptDouble(data.GetByteArray(key)); } else { return data.GetDouble(key); } }
public bool GetBool(ISFSObject data, string key) { if (receiveEncrypted) { return provider.DecryptBool(data.GetByteArray(key)); } else { return data.GetBool(key); } }
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); } }
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; } }
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; } }
public long GetLong(ISFSObject data, string key) { if (receiveEncrypted) { return provider.DecryptLong(data.GetByteArray(key)); } else { return data.GetLong(key); } }