示例#1
0
        public static void Run(string[] args)
        {
            Link.RequestCompleted += Link_RequestCompleted;
            Link.RequestErrored   += Link_RequestErrored;

            if (args.Length > 0)
            {
                Callsign = args[0];
            }

            GetList(Callsign, args.Length > 1 ? args[1] : string.Empty);

            RegisterHandlers();

            client = new Peer();
            client.MessageReceived += Client_HostMessageReceived;
            client.TCPConnected    += Client_TCPConnected;

            var server = Link.FindServerWithMostPlayers();

            if (server == null || false)
            {
                server = new GameList.ListServerData("bzflag.allejo.io", 5170);
            }

            client.Connect(server.Host, server.Port);

            WriteLine("Connecting to " + server.Name);

            while (true)
            {
                client.Update();
                Thread.Sleep(100);
            }
        }
示例#2
0
        public static void TestClients(List <Tuple <string, string, string> > players, string host, int port)
        {
            List <ClientTester> clients = new List <ClientTester>();


            GameList.ListServerData server = new GameList.ListServerData();

            if (host != string.Empty)
            {
                server.Host = host;
                server.Port = port;
            }
            else
            {
                GetList("A_REGULAR_HUMAN_PLAYER", string.Empty);
                server = Link.FindServerWithMostPlayers();
            }


            for (int i = 0; i < players.Count; i++)
            {
                ClientTester t = BuildClient(i + 1, server.Host, server.Port, players[i].Item1, players[i].Item2, players[i].Item3);
                clients.Add(t);
                if (useThreads)
                {
                    t.Run();
                }

                if (delayJoin)
                {
                    Thread.Sleep(2000);
                }
            }

            if (!useThreads)
            {
                while (true)
                {
                    foreach (var t in clients)
                    {
                        t.Update();
                    }

                    Thread.Sleep(10);
                }
            }
            else
            {
                while (true)
                {
                    Thread.Sleep(100);
                }
            }
        }
示例#3
0
        private void ServerList_SelectedIndexChanged(object sender, EventArgs e)
        {
            ServerInfo.Text = string.Empty;
            GameList.ListServerData server = ServerList.SelectedItem as GameList.ListServerData;
            if (server == null)
            {
                return;
            }

            StringBuilder sb = new StringBuilder();

            sb.AppendLine(server.Name);
            sb.AppendLine("Address : " + server.Address);
            sb.AppendLine("Players : " + server.Info.TotalPlayers.ToString());
            sb.AppendLine(server.Description);

            ServerInfo.Text = sb.ToString();
        }
示例#4
0
        private void Join_Click(object sender, EventArgs e)
        {
            GameList.ListServerData server = ServerList.SelectedItem as GameList.ListServerData;
            if (server == null)
            {
                return;
            }

            BZFlag.Game.ClientParams p = new BZFlag.Game.ClientParams();
            p.Callsign = ListServerLink.LastCallsign;
            p.Token    = ListServerLink.LastToken;

            p.Host = server.Host;
            p.Port = server.Port;

            p.Motto       = Motto.Text;
            p.DesiredTeam = BZFlag.Data.Teams.TeamColors.ObserverTeam;
            p.CacheFolder = string.Empty;

            this.AuthPannel.Enabled = false;

            PlayersList.Items.Clear();

            GameClient = new BZFlag.Game.Client(p);

            GameClient.Chat.ChatMessageReceived      += Chat_ChatMessageReceived;
            GameClient.PlayerList.PlayerInfoUpdated  += PlayerList_PlayerInfoUpdated;
            GameClient.PlayerList.PlayerStateUpdated += PlayerList_PlayerStateUpdated;

            GameClient.ClientAccepted        += GameClient_ClientAccepted;
            GameClient.WorldDownloadProgress += GameClient_WorldDownloadProgress;

            //    GameClient.FlagCreated += GameClient_FlagCreated;

            timer1.Start();
        }