public void HandleHandShake(BaseEvent evt) { ISFSObject iSFSObject = evt.Params["message"] as ISFSObject; if (iSFSObject.IsNull(BaseRequest.KEY_ERROR_CODE)) { sessionToken = iSFSObject.GetUtfString(HandshakeRequest.KEY_SESSION_TOKEN); socketClient.CompressionThreshold = iSFSObject.GetInt(HandshakeRequest.KEY_COMPRESSION_THRESHOLD); socketClient.MaxMessageSize = iSFSObject.GetInt(HandshakeRequest.KEY_MAX_MESSAGE_SIZE); if (debug) { log.Debug($"Handshake response: tk => {sessionToken}, ct => {socketClient.CompressionThreshold}"); } if (socketClient.IsReconnecting) { socketClient.IsReconnecting = false; DispatchEvent(new SFSEvent(SFSEvent.CONNECTION_RESUME)); return; } isConnecting = false; Hashtable hashtable = new Hashtable(); hashtable["success"] = true; DispatchEvent(new SFSEvent(SFSEvent.CONNECTION, hashtable)); } else { short @short = iSFSObject.GetShort(BaseRequest.KEY_ERROR_CODE); string errorMessage = SFSErrorCodes.GetErrorMessage(@short, log, iSFSObject.GetUtfStringArray(BaseRequest.KEY_ERROR_PARAMS)); Hashtable hashtable2 = new Hashtable(); hashtable2["success"] = false; hashtable2["errorMessage"] = errorMessage; hashtable2["errorCode"] = @short; DispatchEvent(new SFSEvent(SFSEvent.CONNECTION, hashtable2)); } }
public void HandleResponse(ISFSObject anObjectIn, GameLobbyManager ourGLM) { foreach (string playerName in anObjectIn.GetUtfStringArray("PlayerNameArray")) { ourGLM.getUserInterface().alterOnlinePlayerText(playerName); } }
public void SetSlots(ISFSObject objIn, bool x) { int end = 0; string info = objIn.GetUtfString("slots"); end = info.Length; for (int i = 0; i < end; i++) { daysSlots [i] = int.Parse(info [i] + ""); } string[] d; if (x) { d = objIn.GetUtfStringArray("dates"); dates.Add("Auction Date"); for (int i = 0; i < d.Length; i++) { dates.Add(d [i]); } AucDate.ClearOptions(); AucDate.AddOptions(dates); } else if (!x) { ErrorMessage.text = "Your auction not rigesterd, try choose another time"; } }
public void OnGetPlayers(ISFSObject responseData) { if (responseData.ContainsKey("playerlist")) { string[] playerStr = responseData.GetUtfStringArray("playerlist"); App.GetGameManager <BjlGameManager>().UserListCtrl.RefreshPlayer(playerStr); } }
public virtual void OnGetPlayers(ISFSObject responseData) { if (!responseData.IsNull("playerlist")) { string[] playerStr = responseData.GetUtfStringArray("playerlist"); UserListCtrl.RefreshPlayer(playerStr); } }
public void OnGetPlayers(ISFSObject responseData) { if (responseData.ContainsKey("playerlist")) { var playerStr = responseData.GetUtfStringArray("playerlist"); UserListCtrl.RefreshPlayer(playerStr); } }
public void AddNpcs(ISFSObject gameInfo) { if (!gameInfo.ContainsKey("npc")) { return; } _npcs = gameInfo.GetUtfStringArray("npc"); StartCoroutine(CheckNpcs(gameInfo)); }
private IEnumerator CheckNpcs(ISFSObject gameInfo) { var npslist = gameInfo.GetUtfStringArray("npc"); YxDebug.LogArray(npslist); var maxNpcIndex = npslist.Length - 1; var isInit = true; var gdata = App.GetGameData <FishGameData>(); var self = App.GameData.GetPlayerInfo(); var batterys = GameMain.Singleton.PlayersBatterys; var coin = gdata.NeedUpperScore ? batterys.MaxGunStyle * 30 : self.CoinA; while (true) { //查找所有空缺位置 var vacants = new List <Player>(); foreach (var player in _playerList) { if (!player.IsHide()) { continue; } if (Random.Range(0, 100) < 40) { continue; } vacants.Add(player); } YxDebug.Log("---准备加入rb【{0}】-----", "PlayerBatterys", null, vacants.Count); foreach (var player in vacants) { var index = Random.Range(0, maxNpcIndex);//随机获取机器人 var npcName = _npcs[index]; if (string.IsNullOrEmpty(npcName)) { continue; //忽略 } var obj = new SFSObject(); var x1 = Random.Range(coin * 0.8f, coin * 1.5f);//随机 //max*Random.Range(20, 100) + Random.Range(35342, 105480) var ncoin = isInit ? x1 : 0; obj.PutInt(RequestKey.KeyCoin, (int)ncoin); obj.PutInt(RequestKey.KeySeat, player.Idx); obj.PutInt("nid", index); obj.PutUtfString(RequestKey.KeyName, npcName); _npcs[index] = null; AddPlayer(obj, true); } isInit = false; YxDebug.LogArray(_npcs); yield return(new WaitForSeconds(Random.Range(300f, 600f))); } }
public void HandleResponse(ISFSObject anObjectIn, GameWorldManager ourGWM) { Debug.Log("Inventory Update Recieved"); int[] iDArray = anObjectIn.GetIntArray("IDArray"); int[] itemArray = anObjectIn.GetIntArray("ItemIDArray"); int[] quantityArray = anObjectIn.GetIntArray("QuantityArray"); string[] nameArray = anObjectIn.GetUtfStringArray("NameArray"); string[] descriptionArray = anObjectIn.GetUtfStringArray("DescriptionArray"); string[] locationArray = anObjectIn.GetUtfStringArray("SubLocationArray"); bool reopenInventory = false; if(GameObject.Find("InventoryPanel") != null) { GameObject.Find("SceneScriptsObject").GetComponent<GameUI>().openInventory(); reopenInventory = true; } if(itemArray.Length != quantityArray.Length) { Debug.Log("Item array and quantity array are not the same size."); } int iPos = 0; foreach (int ID in iDArray) { //If the inventory already has this item in it, simply update its data. if(ourGWM.getLPC().getInventory().ContainsKey(ID)) { ourGWM.getLPC().getInventory()[ID].updateItemData(itemArray[iPos], quantityArray[iPos], nameArray[iPos], descriptionArray[iPos], locationArray[iPos]); } else if(!ourGWM.getLPC().getInventory().ContainsKey(ID)) { ourGWM.getLPC().getInventory().Add(ID, new Item(ID, itemArray[iPos], quantityArray[iPos], nameArray[iPos], descriptionArray[iPos], locationArray[iPos])); } iPos++; } if(reopenInventory) { GameObject.Find("SceneScriptsObject").GetComponent<GameUI>().openInventory(); } }
public void HandleResponse(ISFSObject anObjectIn, GameWorldManager ourGWM) { string[] types = anObjectIn.GetUtfStringArray("Type"); int[] levels = anObjectIn.GetIntArray("Level"); string[] location = anObjectIn.GetUtfStringArray("Location"); for(int i = 0; i < levels.Length; i++) { GameObject aNode; if(levels[i] == 0) { aNode = ourGWM.createObject("Prefabs/Settlements/WoodSign"); } else { aNode = ourGWM.createObject("Prefabs/Settlements/" + types[i] + "/" + levels[i].ToString()); } aNode.name = "Node_" + types[i] + "_" + levels[i]; aNode.transform.position = new Vector3(Convert.ToSingle(location[i].Split(',')[0]), Convert.ToSingle(location[i].Split(',')[1]), Convert.ToSingle(location[i].Split(',')[2])); aNode.transform.rotation = new Quaternion(0, Convert.ToSingle(location[i].Split(',')[3]), 0, 0); } }
/// <summary> /// /// </summary> /// <param name="gameInfo"></param> protected override void InitGameData(ISFSObject gameInfo) { base.InitGameData(gameInfo); Ante = gameInfo.GetInt("ante"); Caichi = gameInfo.GetLong("caichi"); if (gameInfo.ContainsKey("jilu")) { var sfZhongJiangJiLu = gameInfo.GetUtfStringArray("jilu"); foreach (var t in sfZhongJiangJiLu) { // 保存启动时服务器发来的中奖纪录 AddPrizeData(t, false); } YxDebug.LogError("cuol"); } }
public override void OnGetGameInfo(ISFSObject requestData) { base.OnGetGameInfo(requestData); if (requestData.ContainsKey("bkmingold")) { ((ProgressCtrl02)ProgressCtrl).SetBankerLimitLabel(requestData.GetInt("bkmingold")); } if (GameSetting != null) { var music = YxFramwork.Framework.Core.Facade.Instance <YxFramwork.Manager.MusicManager>(); MusicToggle.StartsActive = music.MusicVolume > 0; GameSetting.SetSound(music.MusicVolume > 0); } if (requestData.ContainsKey("record")) { var strArray = requestData.GetUtfStringArray("record"); AddHistoryResultList(strArray); } }
protected override void InitGameData(ISFSObject gameInfo) { base.InitGameData(gameInfo); Ante = gameInfo.GetInt("ante"); Caichi = gameInfo.GetInt("caichi"); Config = gameInfo.GetUtfString("config"); var gdata = App.GetGameData <SlyzGameData>(); var sfZhongJiangJiLu = gameInfo.GetUtfStringArray("jilu"); var len = sfZhongJiangJiLu.Length; for (var i = len - 1; 0 <= i; i--) { // 保存启动时服务器发来的中奖纪录 gdata.AddPrizeData(sfZhongJiangJiLu[i], false); } var sfHaoPaiJiLu = gameInfo.GetSFSObject("user").GetUtfStringArray("goodCards"); mStartData.ParseCardRecordInGameInfo(sfHaoPaiJiLu); }
public void HandleResponse(ISFSObject anObjectIn, GameLobbyManager ourGLM) { //Define variables GameObject formationsPanel = ourGLM.createObject("UI/FormationsPanel"); formationsPanel.name = "FormationsPanel"; formationsPanel.transform.SetParent(GameObject.Find("Canvas").transform); formationsPanel.transform.localPosition = new Vector3(); if (anObjectIn.GetInt("NumberOfFormations") > 0) { string[] formationButtonNames = anObjectIn.GetUtfStringArray("FormationNames"); for (int i = 0; i < formationButtonNames.Length; i++) { Transform aFormationButton = formationsPanel.transform.FindChild("New 1v1 Formation"); aFormationButton.GetComponentInChildren <Text>().text = formationButtonNames[i]; aFormationButton.name = formationButtonNames[i]; //Add Button Event Listener and Button to the ButtonDictionary ourGLM.getUserInterface().getButtonDictionary().Add(aFormationButton.GetComponent <Button>(), new GetFormationButtonHandler()); aFormationButton.GetComponent <Button>().onClick.AddListener(() => { ourGLM.buttonClicked(aFormationButton.GetComponent <Button>()); }); } } }
public override void GameResponseStatus(int type, ISFSObject response) { YxDebug.Log("Request == " + (RequestType)type); if (response.ContainsKey("playerlist")) { BankerMgr.RefreshPlayerList(response.GetUtfStringArray("playerlist")); } switch ((RequestType)type) { case RequestType.Bet: if (response.ContainsKey("golds")) // -- 统一走else逻辑 { YxDebug.Log("收到重复上轮"); var golds = response.GetIntArray("golds"); var seat = response.GetInt("seat"); if (seat == App.GameData.SelfSeat) { RightBottomMgr.LastTime.isEnabled = true; } for (int i = 0; i < golds.Length; i++) { AddBet(golds[i], i, seat, true); } } else { int p = response.GetInt("p"); int gold = response.GetInt("gold"); int seat = response.GetInt("seat"); AddBet(gold, p, seat); } break; case RequestType.Reward: break; case RequestType.ApplyBanker: break; case RequestType.ApplyQuit: break; case RequestType.BeginBet: CanQuit = true; Loading.SetActive(false); RightBottomMgr.CurNum++; ResultManager.GetInstance().CloseResult(); ClearAllBet(); BetManager.GetInstance().IsBeginBet = true; StartCountNum(); Wheel.GetInstance().Selected.GetComponent <TweenAlpha>().enabled = false; Wheel.GetInstance().Selected.GetComponent <TweenAlpha>().value = Wheel.GetInstance().Selected.GetComponent <TweenAlpha>().from; break; case RequestType.EndBet: Loading.SetActive(false); BetManager.GetInstance().IsBeginBet = false; //开始摇奖 Wheel.GetInstance().StartTrun(); RefreshRepeatData(RightBottomMgr.UpBetValue.ToArray()); break; case RequestType.GiveCards: int carIndex = response.GetInt("carInx"); //针对超过20的服务器反馈进行处理 if (carIndex >= 20 && Wheel.GetInstance().Items.Length <= 20) //=>条件2考虑兼容问题 { carIndex = carIndex % 8; } LuckIndex = carIndex; Wheel.GetInstance().StopTrun(carIndex, OnDrawFinish); break; case RequestType.Result: CanQuit = true; Loading.SetActive(false); RightBottomMgr.RefreshLastTimeBtn(); if (!BankerMgr.IsBanker(-1)) { BankerMgr.Banker.WinTotalCoin += response.GetInt("bankWin"); var bankerCoin = "¥" + YxUtiles.ReduceNumber(BankerMgr.Banker.WinTotalCoin); BankerMgr.Banker.WinTotalCoinLabel.Text(bankerCoin); } var self = App.GameData.GetPlayer(); self.Coin = response.GetLong("total"); self.WinTotalCoin += response.GetInt("win"); YxDebug.Log("---------结算-----------"); ResultManager.GetInstance().OpenResult(response); HistoryRecord.GetInstance().RefreshData(response.GetInt("carInx"), 1); //YxDebug.Log("result"); break; case RequestType.BankerList: //UserManager.GetInstance().BankerSeat = response.GetInt("banker"); if (response.GetInt("banker") == -1) { BankerMgr.SetBankerInfo(null); } BankerMgr.RefreshBankerList(response.GetSFSArray("bankers"), response.GetInt("banker")); break; default: YxDebug.Log("不存在的服务器交互!"); break; } }
public override void GameResponseStatus(int type, ISFSObject response) { if (response.ContainsKey("playerlist") && !response.IsNull("playerlist")) { var playerStr = response.GetUtfStringArray("playerlist"); UserListCtrl.RefreshPlayer(playerStr); } var gdata = App.GetGameData <BtwGameData>(); switch ((BtwRequestType)type) { case BtwRequestType.Bet: YxDebug.Log("-----------------下注--------------"); WaitWin.Hide(); BetCtrl.Bet(response); ShowNumCtrl.RefreshNum(response); break; case BtwRequestType.BankerList: YxDebug.Log("-----------------上庄列表--------------"); WaitWin.Hide(); UserListCtrl.RefreshBanker(response); ProgressCtrl.SetNum(response); BetCtrl.ShowChip(); break; case BtwRequestType.BeginBet: YxDebug.Log("-----------------开始下注--------------"); WaitWin.Hide(); gdata.BeginBet = true; CardsCtrl.ReSetPonits(); CardsCtrl.gameObject.SetActive(false); ShowNumCtrl.Reset(); ReSetGame(); BetCtrl.ShowChip(); ProgressCtrl.ReSetCountdown(15); ProgressCtrl.BeginCountdown(); ApplyCtrl.RefreshBanker(); TimeBet.gameObject.SetActive(true); YxMessageTip.Show("开始下注"); break; case BtwRequestType.EndBet: YxDebug.Log("-----------------停止下注--------------"); gdata.BeginBet = false; BetCtrl.HideChip(); ProgressCtrl.EndCountdown(); TimeBet.gameObject.SetActive(false); WaitWin.Hide(); break; case BtwRequestType.GiveCards: YxDebug.Log("-----------------发牌--------------"); CardsCtrl.BeginGiveCards(response); CardsCtrl.gameObject.SetActive(true); WaitWin.Hide(); break; case BtwRequestType.Result: YxDebug.Log("-----------------结算--------------"); gdata.GStatus = YxEGameStatus.Normal; if (ResultWin != null) { ResultWin.ShowWithData(response); } UserListCtrl.RefreshBanker(response); ProgressCtrl.SetNum(response); ApplyCtrl.HideApplyBanker(); WaitWin.Hide(); break; } }
/// <summary> /// 打开结算界面 /// </summary> public void OpenResult(ISFSObject data = null) { var selfRd = GetData(Self); if (data != null) { var pwins = data.GetUtfStringArray("pwins"); var index = 0; foreach (var pwin in pwins) { var info = pwin.Split(','); if (index < Top.Length && int.Parse(info[1]) != 0) { var topRd = GetData(Top[index]); topRd.Top.text = (index + 1).ToString(); topRd.Name.text = info[2]; long coin; long.TryParse(info[1], out coin); topRd.Gold.text = "¥" + YxUtiles.GetShowNumberForm(coin); index++; } } for (var i = index; i < Top.Length; i++) { var topRd = GetData(Top[i]); SetDataNull(topRd); } selfRd.Top.text = "本家"; selfRd.Gold.text = "¥" + YxUtiles.GetShowNumberForm(data.GetInt("win")); if (data.GetInt("win") > 0) { Facade.Instance <MusicManager>().Play("Win"); var gameMgr = App.GetGameManager <CschGameManager>(); //gameMgr.LeftLampCtrl.PlayLamp(); //gameMgr.RightLampCtrl.PlayLamp(); } selfRd.Name.text = App.GameData.GetPlayer().Nick; var bankerRd = GetData(Banker); bankerRd.Name.text = App.GetGameManager <CschGameManager>().BankerMgr.Banker.Nick; bankerRd.Gold.text = "¥" + YxUtiles.GetShowNumberForm(data.GetInt("bankWin")); PlayerRecord.GetInstance().ShowRealResultRecord(); } else { SetDataNull(selfRd); foreach (var t in Top) { var topRd = GetData(t); SetDataNull(topRd); } } BG.SetActive(true); var game = App.GetGameManager <CschGameManager>(); var rbMgr = App.GetGameManager <CschGameManager>().RightBottomMgr; var upBetValue = rbMgr.UpBetValue; if (!game.Execute) { for (var i = 0; i < game.Regions.Length; i++) { upBetValue[i] = 0; } } else { game.Execute = false; } RecordCtrl.GetInstance().AssignmentLastRound(); for (var i = 0; i < game.Regions.Length; i++) { upBetValue[i] = 0; } CoinSpriteVisCtrl(); }