コード例 #1
0
ファイル: Server.cs プロジェクト: menohack/GlebForgeServer
            public NetworkState Send(Server server)
            {
                server.Write(BitConverter.GetBytes(AUTHENTICATION_SERVER_VALUE), 0, 4);
                //Console.WriteLine("Authentication successful!");

                return(new UsernameAndPasswordState());
            }
コード例 #2
0
ファイル: Server.cs プロジェクト: menohack/GlebForgeServer
            public NetworkState Send(Server server)
            {
                //Find the first other player.
                List <Player> otherPlayers     = players.GetNearbyPlayers(server.player.Name);
                int           numNearbyPlayers = otherPlayers.Count;

                //Write the number of players for which we are going to send data
                server.Write(BitConverter.GetBytes(numNearbyPlayers), 0, 4);

                WritePlayerData(server, otherPlayers);

                return(this);
            }
コード例 #3
0
ファイル: Server.cs プロジェクト: menohack/GlebForgeServer
 public NetworkState Send(Server server)
 {
     if (loggedIn)
     {
         Console.WriteLine("{0} successfully logged in with {1}", server.player.Name, server.player.Password);
         server.Write(BitConverter.GetBytes(LOGIN_SUCCESSFUL_VALUE), 0, 4);
         return(new PositionState());
     }
     else
     {
         //This should retry in the future, rather than closing the server
         throw new ApplicationException("Login failed");
     }
 }
コード例 #4
0
ファイル: Server.cs プロジェクト: menohack/GlebForgeServer
            private void WritePlayerData(Server server, IList <Player> otherPlayers)
            {
                byte[] buffer = new byte[otherPlayers.Count * 8];
                int    index  = 0;

                //Write the data for each player into a buffer
                foreach (Player p in otherPlayers)
                {
                    Buffer.BlockCopy(BitConverter.GetBytes(p.Position.x), 0, buffer, index, 4);
                    Buffer.BlockCopy(BitConverter.GetBytes(p.Position.y), 0, buffer, index + 4, 4);
                    //Console.Write("({0}, {1})",p.Position.x, p.Position.y);

                    index += 8;
                    //Check for buffer full
                }

                //Write the buffer of player data
                server.Write(buffer, 0, index);
            }
コード例 #5
0
ファイル: Server.cs プロジェクト: menohack/GlebForgeServer
 public NetworkState Send(Server server)
 {
     if (loggedIn)
     {
         Console.WriteLine("{0} successfully logged in with {1}", server.player.Name, server.player.Password);
         server.Write(BitConverter.GetBytes(LOGIN_SUCCESSFUL_VALUE), 0, 4);
         return new PositionState();
     }
     else
         //This should retry in the future, rather than closing the server
         throw new ApplicationException("Login failed");
 }
コード例 #6
0
ファイル: Server.cs プロジェクト: menohack/GlebForgeServer
            private void WritePlayerData(Server server, IList<Player> otherPlayers)
            {
                byte[] buffer = new byte[otherPlayers.Count * 8];
                int index = 0;
                //Write the data for each player into a buffer
                foreach (Player p in otherPlayers)
                {
                    Buffer.BlockCopy(BitConverter.GetBytes(p.Position.x), 0, buffer, index, 4);
                    Buffer.BlockCopy(BitConverter.GetBytes(p.Position.y), 0, buffer, index + 4, 4);
                    //Console.Write("({0}, {1})",p.Position.x, p.Position.y);

                    index += 8;
                    //Check for buffer full
                }

                //Write the buffer of player data
                server.Write(buffer, 0, index);
            }
コード例 #7
0
ファイル: Server.cs プロジェクト: menohack/GlebForgeServer
            public NetworkState Send(Server server)
            {
                //Find the first other player.
                List<Player> otherPlayers = players.GetNearbyPlayers(server.player.Name);
                int numNearbyPlayers = otherPlayers.Count;

                //Write the number of players for which we are going to send data
                server.Write(BitConverter.GetBytes(numNearbyPlayers), 0, 4);

                WritePlayerData(server, otherPlayers);

                return this;
            }
コード例 #8
0
ファイル: Server.cs プロジェクト: menohack/GlebForgeServer
            public NetworkState Send(Server server)
            {
                server.Write(BitConverter.GetBytes(AUTHENTICATION_SERVER_VALUE), 0, 4);
                //Console.WriteLine("Authentication successful!");

                return new UsernameAndPasswordState();
            }