private void OnCurrPlayer(object data) { AddBeat.Hide(); foreach (JhPlayer jhPlayer in Players) { jhPlayer.ResetHeadClick(); } ISFSObject sendObj = (ISFSObject)data; int chair = sendObj.GetInt("Chair"); double cdTime = sendObj.GetDouble("CdTime"); int singleBet = sendObj.GetInt("SingleBet"); long playerGold = sendObj.GetLong("PlayerGold"); bool isGzyz = sendObj.ContainsKey("IsGzyz") && sendObj.GetBool("IsGzyz"); bool isAutoFollow = sendObj.ContainsKey("IsAutoFollow") && sendObj.GetBool("IsAutoFollow"); AddBeat.SetBetShow(singleBet, playerGold); foreach (JhPlayer jhPlayer in Players) { jhPlayer.ResetTimer(); } SetUserContrl(chair, sendObj); SetCurrChair(chair, cdTime, 0, !isGzyz && isAutoFollow); }
private void HandleServerTime(ISFSObject data) { double time = data.GetDouble("t"); TimeManager.Instance.Synchronize(time); guiText.text = "Ping: " + (int)TimeManager.Instance.AveragePing + " ms"; //print ("Ping: " + ((Time.time - lastTime) * 1000) + " ms"); lastTime = Time.time; }
public double GetDouble(ISFSObject data, string key) { if (receiveEncrypted) { return(provider.DecryptDouble(data.GetByteArray(key))); } else { return(data.GetDouble(key)); } }
public double GetDouble(ISFSObject data, string key) { if (receiveEncrypted) { return provider.DecryptDouble(data.GetByteArray(key)); } else { return data.GetDouble(key); } }
public static NetworkTransform fromSFSObject(ISFSObject data) { NetworkTransform nTransform = new NetworkTransform(); nTransform.position = new Vector3(data.GetFloat("x"), data.GetFloat("y"), data.GetFloat("z")); nTransform.rotation = Quaternion.Euler(new Vector3(data.GetFloat("rx"), data.GetFloat("ry"), data.GetFloat("rz"))); nTransform.timeStamp = data.GetDouble("time"); //Debug.Log("fromSFSObject, timeStamp: " + data.GetDouble("time")); return(nTransform); }
// 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); }
protected void OnAutoFollow(object data) { ISFSObject sendObj = (ISFSObject)data; bool isCurr = sendObj.GetBool("IsCurrPlayer"); if (isCurr) { double cdTime = sendObj.GetDouble("CdTime"); Players[0].ResetTimer(); Players[0].OnPlayerTrun(cdTime, 0); LeaveTimeTip.text = ""; } SetUserContrl(isCurr ? 0 : -1, sendObj); }
// When someon shots handle it and play corresponding animation private void HandleShotFired(ISFSObject dt) { int userId = dt.GetInt ("id"); if (userId != smartFox.MySelf.Id) { double sx, sy, sz, ex, ey, ez; sx = dt.GetDouble ("sx"); sy = dt.GetDouble ("sy"); sz = dt.GetDouble ("sz"); ex = dt.GetDouble ("ex"); ey = dt.GetDouble ("ey"); ez = dt.GetDouble ("ez"); Vector3 start = new Vector3 ((float)sx, (float)sy, (float)sz); Vector3 end = new Vector3 ((float)ex, (float)ey, (float)ez); string shooterName = smartFox.LastJoinedRoom.GetUserById (userId).Name; //SoundManager.Instance.PlayShot(PlayerManager.Instance.GetRecipient(userId).audio); //PlayerManager.Instance.SyncAnimation(userId, "Shot", 1); Attack.instance.shot (start, end, shooterName); } }
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; } }
public void Setup(ISFSObject obj) { particleSystem.renderer.sortingLayerName = "2 Middle Lower UI"; this.gwName = obj.GetUtfString("NAME"); this.state = obj.GetUtfString("STATE"); this.owner = obj.GetUtfString("OWNER"); this.atk = obj.GetInt("ATK"); this.def = obj.GetInt("DEF"); this.type = obj.GetUtfString("TYPE"); ISFSArray sws = obj.GetSFSArray("SW"); this.region = obj.GetUtfString("REGION"); this.sw = new string[3]; this.sw[0] = (string) sws.GetElementAt(0); this.sw[1] = (string) sws.GetElementAt(1); this.sw[2] = (string) sws.GetElementAt(2); mg = GameObject.Find("Manager").GetComponent<Manager>(); gameObject.transform.position = new Vector3((float)obj.GetDouble("X")*mg.getScale().x,(float)obj.GetDouble("Y")*mg.getScale().y,1F); gameObject.transform.localScale = new Vector3(0.25f,0.25f,0.25f); }
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; } }
protected void OnGameStatus(object data) { ISFSObject obj = (ISFSObject)data; bool isPlaying = obj.GetBool("IsPlaying"); Reset(isPlaying || !DonotResetOnGameResult); //初始化 加注 int[] antes = obj.GetIntArray("Antes"); AddBeat.SetBeatInfo(antes); int singleBet = obj.GetInt("SingleBet"); long playerGold = obj.GetLong("PlayerGold"); AddBeat.SetBetShow(singleBet, playerGold); _showTimeTip = obj.GetBool("isShowTimeTip"); if (isPlaying) { int banker = obj.GetInt("Banker"); SetBanker(banker); int curChair = obj.GetInt("CurChair"); long lastTime = obj.GetLong("LastTime"); double cdTime = obj.GetDouble("CdTime"); double passTime = (int)(JhFunc.GetTimeStamp(false) - lastTime); if (passTime / 1000.0f >= cdTime) { passTime = 0; } bool isGzyz = obj.ContainsKey("IsGzyz") && obj.GetBool("IsGzyz"); bool isAutoFollow = obj.ContainsKey("IsAutoFollow") && obj.GetBool("IsAutoFollow"); SetCurrChair(curChair, cdTime, passTime / 1000.0f, !isGzyz && isAutoFollow); SetUserContrl(curChair, obj); //chip pool if (obj.ContainsKey("ChipList")) { ISFSArray chips = obj.GetSFSArray("ChipList"); for (int i = 0; i < chips.Count; i++) { ISFSObject arrItem = chips.GetSFSObject(i); int chipValue = arrItem.GetInt("ChipValue"); int chipIndex = arrItem.GetInt("ChipIndex"); int chipCnt = arrItem.GetInt("ChipCnt"); for (int j = 0; j < chipCnt; j++) { BeatPool.Beat(chipIndex, chipValue); } } } } else { UserContrl.QiPaiShow(); } //玩家信息 ISFSArray array = obj.GetSFSArray("Players"); foreach (ISFSObject arrItem in array) { int chair = arrItem.GetInt("Chair"); Players[chair].SetReady(arrItem.ContainsKey("IsReady") && arrItem.GetBool("IsReady")); if (arrItem.ContainsKey("IsPlaying") && arrItem.GetBool("IsPlaying")) { Players[chair].ShowCardsBack(); if (arrItem.ContainsKey("Cards")) { Players[chair].SetPlayerCards(arrItem.GetIntArray("Cards")); } if (arrItem.ContainsKey("IsLook")) { if (arrItem.GetBool("IsLook")) { Players[chair].SetPlayerCardsStatus(JhCardGroup.GroupStatus.Look); } } if (arrItem.ContainsKey("IsGiveUp")) { if (arrItem.GetBool("IsGiveUp")) { Players[chair].SetPlayerCardsStatus(JhCardGroup.GroupStatus.GiveUp); Players[chair].ShowCardsGray(); } } if (arrItem.ContainsKey("IsFail")) { if (arrItem.GetBool("IsFail")) { Players[chair].SetPlayerCardsStatus(JhCardGroup.GroupStatus.CompareOut); Players[chair].ShowCardsGray(); } } if (arrItem.ContainsKey("AllBeat")) { Players[chair].SetBeat(arrItem.GetInt("AllBeat")); } } } }