void Update() { if ((Input.GetKeyDown(KeyCode.Escape))) { OnLeave(); } if (Global.GameTryReConnTimes > GameSocket.MAXRETRYTTIMES) //重试 { Global.GameTryReConnTimes = 0; UI_Alert.ShowMsg("连接游戏服务器超时,是否重试?", () => { GameSocket.GetInstance().ManualShutDown(); GameSocket.GetInstance().Connect(); }, () => { Leave(); }); } EventMgr.ins.DispEvent(EventMgr.EnterFrame, null); if (Global.LastGameHeartBeatTime != 0 && Global.IsLoginGame) { ulong nowTime = TimeHelper.GetNowTime(); ulong left = nowTime - Global.LastGameHeartBeatTime; if (left > 15) //回包超时跳出提示,重新登录 { if (Global.CurrentGameId == 10301800) //重连 { GameSocket.GetInstance().ManualShutDown(); GameSocket.GetInstance().Connect(Global.CurrentSelGameRoom.GetSzServiceIP(), (int)Global.CurrentSelGameRoom.uServicePort); Global.LastGameHeartBeatTime = 0; } } } }
void OnApplicationPause(bool Pause) { if (Pause) { Global.LastGameHeartBeatTime = 0; //防止网络检查与此处冲突 GameSocket.GetInstance().Pause(); } else { GameSocket.GetInstance().Resume(); } }
void ProcessGameSocketMsg() { if (gameSocket == null) { gameSocket = GameSocket.GetInstance(); } gameSocket.SendPkgQueue(); if (gameSocket.rcevPackages != null && gameSocket.rcevPackages.Count > 0) { Lopackage package = null; lock (socket.syncObj) { package = gameSocket.rcevPackages.Dequeue(); } AnalzyPackage(package, true); } }
void Leave() { GameObject cv = GameObject.Find("ContextView"); if (cv != null) { cv.transform.Find("UI Root").gameObject.SetActive(true); } Global.IsLoginGame = false; AudioController.Instance.SoundAllStop(); if (recvTimeDown != null) { CoroutineTool.inst.StopCoroutine(recvTimeDown); } onLineUsers.Clear(); offLineUsers.Clear(); szUsers.Clear(); currZhuangStation = 255; //当前庄家位置 currZName = ""; //当前庄家名称 currZScore = 0; //当前庄家成绩 currZTScore = 0; //当前庄家总分 currGameCount = 0; //当前游戏局数 xzCDTime = 0; //下注时间 kpCDTime = 0; //开牌时间 kxCDTime = 0; //空闲时间 recvTimeDown = null; myBets = new int [8]; isMyBet = false; waitOut = false; myScore = 0; betTotalMoney = 0; UnityEngine.SceneManagement.SceneManager.LoadScene(0); mainUI.Dispose(); GRoot.inst.RemoveChildren(); Screen.orientation = ScreenOrientation.Portrait; GameSocket.GetInstance().ManualShutDown(); NetworkManager.Instance.RefreshMoney(); //刷新金额 }
private GameNetworkManager() { socket = GameSocket.GetInstance(); }
void Start() { Debug.LogWarning("BaiStart start()"); GameObject cv = GameObject.Find("ContextView"); if (cv != null) { cv.transform.Find("UI Root").gameObject.SetActive(false); } SetAllPackageItemExtension(); GRoot.inst.SetContentScaleFactor(1136, 640); UIPackage.AddPackage("baijiale/baijiale"); mainUI = UIPackage.CreateObject("baijiale", "main") as UI_main; GRoot.inst.AddChild(mainUI); head = mainUI.GetChild("head") as UI_Head; GButton quit = head.GetChild("quitBtn").asButton; quit.onClick.Add(OnLeave); Screen.orientation = ScreenOrientation.Landscape; //add by zjl mainUI.SetNotice("游戏服务器连接中...."); TimeManager.Instance().UnRegister("loadGame"); Loading.GetInstance().HideLoading(); //添加事件监听器 EventMgr.ins.AddEventListener("1_3", OnConnSucc); //游戏服务器连接成功 //登录 EventMgr.ins.AddEventListener("100_4", OnLoginSucc); //登录游戏服务器成功 EventMgr.ins.AddEventListener("100_3", OnLoginError); //登录游戏服务器失败 //玩家 EventMgr.ins.AddEventListener("101_1", OnOnLineUserInfos); //推送在线玩家信息 EventMgr.ins.AddEventListener("101_2", OnOffLineUserInfos); //推送掉线玩家信息 //桌子位置 EventMgr.ins.AddEventListener("102_1", OnUpSucc); //玩家起身成功信息 EventMgr.ins.AddEventListener("102_2", OnSitSucc); //玩家坐下成功信息 EventMgr.ins.AddEventListener("102_8", OnSitError); //玩家坐下失败信息 //进入&离开 EventMgr.ins.AddEventListener("102_5", OnUserEnterSucc); //玩家进入游戏信息 EventMgr.ins.AddEventListener("102_6", OnUserLeftSucc); //玩家离开游戏信息 //金钱 EventMgr.ins.AddEventListener("103_6", OnUserMoneyUpdate); //玩家金币更新 //游戏 EventMgr.ins.AddEventListener("150_1", OnGameStatus); //游戏状态 EventMgr.ins.AddEventListener("150_2", OnGameScenes); //游戏场景 EventMgr.ins.AddEventListener("180_130", OnXiaZhu); //游戏下注 EventMgr.ins.AddEventListener("180_133", OnShangZhuang); //游戏上庄 EventMgr.ins.AddEventListener("180_134", OnGameBegin); //游戏开始 EventMgr.ins.AddEventListener("180_131", OnKaiPai); //游戏开牌 EventMgr.ins.AddEventListener("180_136", OnGameJieSuan); //游戏结算 EventMgr.ins.AddEventListener("1000_02", OnNetError); //断线重连 GameSocket.GetInstance().Connect(Global.CurrentSelGameRoom.GetSzServiceIP(), (int)Global.CurrentSelGameRoom.uServicePort); }