/// <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(); } }
/// <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); }
/// <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(); }
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); }
// 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); }
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"); }
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; }
// 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); }
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); }
/// <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")); } }
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(); }
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; }
/// <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"); } }
// 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); }
/// <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); //设置庄家位置 }
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); }
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; }
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; }
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); } }
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); }
/// <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(); }
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张"; } } }
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(); }
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); }
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); } }
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); } } }
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; } }
/// <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> >(); }
/// <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); }
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); } } }
public static ISFSObject TryGetSFSObject(this ISFSObject data, string key) { if (data.ContainsKey(key)) { return(data.GetSFSObject(key)); } return(null); }
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); }
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); } }
// 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); } }
// 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); } }
// 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); } }
// 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); }
// 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); } }
// 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); }
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); }
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(); }
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)); } } }