public void OnGetServerListDone()
    {
        //拉取到服务器列表后
        Control("Servercfg").GetComponent <Button>().onClick.RemoveAllListeners();
        Control("Servercfg").GetComponent <Button>().onClick.AddListener(() =>
        {
            Main.Ins.DialogStateManager.ChangeState(Main.Ins.DialogStateManager.ServerListDialogState);
        });

        Main.Ins.CombatData.Server = Main.Ins.CombatData.Servers[0];
        GameObject Services = Control("Services", WndObject);

        serverRoot = Control("Content", Services);
        int childNum = serverRoot.transform.childCount;

        for (int i = 0; i < childNum; i++)
        {
            GameObject.Destroy(serverRoot.transform.GetChild(i).gameObject);
        }
        for (int i = 0; i < Main.Ins.CombatData.Servers.Count; i++)
        {
            InsertServerItem(Main.Ins.CombatData.Servers[i], i);
        }
        TcpClientProxy.ReStart();
    }
Esempio n. 2
0
    void Init()
    {
        recDir = string.Format("{0}/record/", Application.persistentDataPath);
        Prefab = Resources.Load("UI/Dialogs/RecordItem") as GameObject;
        if (System.IO.Directory.Exists(recDir))
        {
            RefreshAuto();
        }
        else
        {
            System.IO.Directory.CreateDirectory(recDir);
        }

        //一次加载全部录像存到
        root       = Control("content");
        recCurrent = 0;
        //打开本地已存储的录像列表,UI上带新建,选择,删除,关闭/退出等
        Control("Colse").GetComponent <Button>().onClick.AddListener(() =>
        {
            OnPreviousPress();
        });

        Control("Deleted").GetComponent <Button>().onClick.AddListener(() =>
        {
            //如果当前选择了某个录像,则删除
            if (recCurrent != -1 && recList.Count > recCurrent)
            {
                string file = recList[recCurrent];
                if (System.IO.File.Exists(file))
                {
                    System.IO.File.Delete(file);
                }
                GameObject removed = recItems[recCurrent];
                recList.RemoveAt(recCurrent);
                recItems.RemoveAt(recCurrent);
                GameObject.Destroy(removed);
                recCurrent -= 1;
            }
        });

        Control("Play").GetComponent <Button>().onClick.AddListener(() =>
        {
            if (recCurrent > -1 && recData.Count > recCurrent)
            {
                //播放一个路线,弹出2级菜单.
                GameRecord rec = recData[recCurrent];
                U3D.PlayRecord(rec);
            }
        });

        Control("Upload").GetComponent <Button>().onClick.AddListener(() => {
            if (recCurrent > -1 && recData.Count > recCurrent)
            {
                U3D.PopupTip("上传录像");
                //播放一个路线,弹出2级菜单.
                GameRecord rec = recData[recCurrent];
                TcpClientProxy.UploadRecord(rec);
            }
        });
    }
 void OnJoinRoom()
 {
     if (SelectRoomId != -1)
     {
         TcpClientProxy.JoinRoom(SelectRoomId);
     }
 }
 private void Awake()
 {
     Instance = this;
     TcpClientProxy.Init();
     UdpClientProxy.Init();
     actions = new List <FrameCommand>();
 }
Esempio n. 5
0
 public bool SplashScreenHidden = false;//开屏splash图是否隐藏.隐藏后其他界面才能开始更新
 void OnApplicationQuit()
 {
     //主线程阻塞到下载线程结束.
     HttpManager.Instance.Quit();
     //释放日志占用
     Log.Uninit();
     TcpClientProxy.Exit();
     FtpLog.Uninit();
     UpdateHelper.SaveCache();
 }
 static void OnVerifyResult(ProtocolVerifyRsp rsp)
 {
     if (rsp.result == 1)
     {
         TcpClientProxy.UpdateGameServer();//取得房间列表
     }
     else
     {
         U3D.PopupTip(string.Format("客户端版本过低-无法连接到服务器"));
         TcpClientProxy.Exit();
     }
 }
Esempio n. 7
0
 void Init()
 {
     Version.text = Main.Ins.AppInfo.MeteorVersion;
     SinglePlayerMode.onClick.AddListener(() =>
     {
         subMenuOpen = !subMenuOpen;
         SubMenu.SetActive(subMenuOpen);
     });
     //单机关卡-官方剧情
     SinglePlayer.onClick.AddListener(() =>
     {
         OnSinglePlayer();
     });
     DlcLevel.onClick.AddListener(() =>
     {
         OnDlcWnd();
     });
     //教学关卡-教导使用招式方式
     TeachingLevel.onClick.AddListener(() =>
     {
         OnTeachingLevel();
     });
     //创建房间-各种单机玩法
     CreateBattle.onClick.AddListener(() =>
     {
         OnCreateRoom();
     });
     //多人游戏-联机
     MultiplePlayer.onClick.AddListener(() =>
     {
         OnlineGame();
     });
     //设置面板
     PlayerSetting.onClick.AddListener(() =>
     {
         OnSetting();
     });
     Replay.onClick.AddListener(() =>
     {
         OnReplay();
     });
     EnterQueue.onClick.AddListener(() =>
     {
         OnEnterQueue();
     });
     if (Main.Ins.GameStateMgr.gameStatus.GodLike)
     {
         UploadLog.gameObject.SetActive(true);
     }
     UploadLog.onClick.AddListener(() => { FtpLog.UploadStart(); });
     TcpClientProxy.Exit();
 }
Esempio n. 8
0
    // Start is called before the first frame update
    void Start()
    {
        TcpClientProxy client = GetComponent <TcpClientProxy>();

        TestButton.onClick.AddListener(() =>
        {
            client?.Send(TestInput.text);
            TestInput.text = "";
        });
        client?.ReceiveEvent.AddListener((s) =>
        {
            Debug.Log(s);
        });
    }
Esempio n. 9
0
        public void TestTcp()
        {
            LogHelper.WriteLog = (s, p) =>
            {
                Console.WriteLine(s);
            };
            var hex   = "01 30 30 37 37 02 7B 22 74 79 70 65 22 3A 22 67 65 74 54 6F 6B 65 6E 22 2C 22 76 65 72 73 69 6F 6E 22 3A 22 31 2E 30 2E 30 2E 30 22 7D 03 36 36 63 33 39 65 62 62 64 32 61 63 36 30 32 66 33 64 32 34 32 32 36 35 31 65 33 61 66 61 31 66 04";
            var bytes = DataHelper.HexToByte(hex);

            TcpClientProxy socketClient = new TcpClientProxy(new ClientOption()
            {
                Ip           = "139.155.104.69",
                Port         = 10007,
                NoDelay      = true,
                ProtocolType = ProtocolType.Tcp
            });

            socketClient.OnConnected += (s) =>
            {
            };
            socketClient.OnReceived += (s, r) =>
            {
                LogHelper.Info($"【{socketClient.LocalEndPoint}】收到数据:{r.Raw.ToHexWithSpace()}");
            };
            socketClient.OnClosed += (s) =>
            {
                LogHelper.Info($"【{socketClient.LocalEndPoint}】断开连接");
            };

            Task.Run(async() =>
            {
                await socketClient.ConnectAsync();

                Assert.IsTrue(socketClient.Socket.Connected);
            });

            while (true)
            {
                Thread.Sleep(500);
                if (socketClient.Socket.Connected)
                {
                    socketClient.Send(bytes);
                }
            }
        }
 static void OnConnect(int result, string message)
 {
     //取得房间信息
     if (result == 1)
     {
         retryNum = 3;
         TcpClientProxy.UpdateGameServer();
         //TcpClientProxy.AutoLogin();//验证客户端的合法性
     }
     else
     {
         //链接失败,重置对战
         U3D.PopupTip(message);
         Main.Ins.NetWorkBattle.OnDisconnect();
         retryNum--;
         if (retryNum <= 0)
         {
             TcpClientProxy.Exit();//重试3次,等待切换服务器再激活链接服务器的定时器.
             retryNum = 3;
         }
     }
 }
    void InsertServerItem(ServerInfo svr, int i)
    {
        GameObject btn = GameObject.Instantiate(ResMng.Load("ButtonNormal")) as GameObject;

        btn.transform.SetParent(serverRoot.transform);
        btn.transform.localScale    = Vector3.one;
        btn.transform.localPosition = Vector3.zero;
        btn.transform.localRotation = Quaternion.identity;
        btn.GetComponent <Button>().onClick.AddListener(() =>
        {
            if (Main.Ins.CombatData.Server == Main.Ins.CombatData.Servers[i])
            {
                TcpClientProxy.CheckNeedReConnect();
                return;
            }
            TcpClientProxy.Exit();
            ClearRooms();
            Main.Ins.CombatData.Server = svr;
            TcpClientProxy.ReStart();
        });
        btn.GetComponentInChildren <Text>().text = svr.ServerName;
    }
 void OnRefresh()
 {
     TcpClientProxy.UpdateGameServer();
 }